diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
new file mode 100644
index 0000000..ad67939
--- /dev/null
+++ b/.github/workflows/ci.yml
@@ -0,0 +1,48 @@
+name: CI
+
+on:
+ push:
+ branches: [ master ]
+ pull_request:
+ branches: [ '**' ]
+
+env:
+ DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true
+ DOTNET_CLI_TELEMETRY_OPTOUT: true
+
+jobs:
+ build-and-test:
+ runs-on: ${{ matrix.os }}
+ permissions:
+ contents: read
+ strategy:
+ fail-fast: false
+ matrix:
+ os: [ubuntu-latest, windows-latest]
+
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Setup .NET
+ uses: actions/setup-dotnet@v4
+ with:
+ dotnet-version: '10.0.102'
+ cache: true
+ cache-dependency-path: '**/packages.lock.json'
+
+ - name: Restore dependencies
+ run: dotnet restore
+
+ - name: Build
+ run: dotnet build --configuration Release --no-restore
+
+ - name: Test (Linux)
+ if: runner.os == 'Linux'
+ run: dotnet test --configuration Release --no-build --verbosity normal
+
+ - name: Test (Windows - excluding Linux-only projects)
+ if: runner.os == 'Windows'
+ run: |
+ dotnet test test/Magma.Common.Facts --configuration Release --no-build --verbosity normal
+ dotnet test test/Magma.Internet.Ip.Facts --configuration Release --no-build --verbosity normal
+ dotnet test test/Magma.Link.Facts --configuration Release --no-build --verbosity normal
diff --git a/Directory.Build.props b/Directory.Build.props
index 21f8017..1b8fc3a 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -2,6 +2,7 @@
disable
disable
+ true
diff --git a/benchmarks/Magma.Performance/packages.lock.json b/benchmarks/Magma.Performance/packages.lock.json
new file mode 100644
index 0000000..3b881b1
--- /dev/null
+++ b/benchmarks/Magma.Performance/packages.lock.json
@@ -0,0 +1,44 @@
+{
+ "version": 1,
+ "dependencies": {
+ "net10.0": {
+ "BenchmarkDotNet": {
+ "type": "Direct",
+ "requested": "[0.10.14, )",
+ "resolved": "0.10.14",
+ "contentHash": "pPM8h3fv4NUg9P3Qh5ga+Klmvh3FpJ0tblBHwTcsh0XjSHvwGc4/vRJYM6ix06evf58NQcge5Cyv1PBY83ZCwg==",
+ "dependencies": {
+ "BenchmarkDotNet.Core": "0.10.14"
+ }
+ },
+ "BenchmarkDotNet.Core": {
+ "type": "Transitive",
+ "resolved": "0.10.14",
+ "contentHash": "f2B6ERn4sBCv4VVt699FYtfRfqX0NuMZoG1lXrzNkCKyPRjRWvreqqJ5aRTMf4PnosfUaylQezpi1yoITncCRQ==",
+ "dependencies": {
+ "Microsoft.DotNet.InternalAbstractions": "1.0.0",
+ "Microsoft.DotNet.PlatformAbstractions": "1.1.1",
+ "System.Xml.XPath.XmlDocument": "4.3.0"
+ }
+ },
+ "Microsoft.DotNet.InternalAbstractions": {
+ "type": "Transitive",
+ "resolved": "1.0.0",
+ "contentHash": "AAguUq7YyKk3yDWPoWA8DrLZvURxB/LrDdTn1h5lmPeznkFUpfC3p459w5mQYQE0qpquf/CkSQZ0etiV5vRHFA=="
+ },
+ "Microsoft.DotNet.PlatformAbstractions": {
+ "type": "Transitive",
+ "resolved": "1.1.1",
+ "contentHash": "m+IIxUg8Ev+g34H7CIcuILm3ZWWJNclsgYqc/j5n/QCKhcvRAeAn0byDI7zCqlDUwn6byXYrJxuZpuZh/5C/6g=="
+ },
+ "System.Xml.XPath.XmlDocument": {
+ "type": "Transitive",
+ "resolved": "4.3.0",
+ "contentHash": "A/uxsWi/Ifzkmd4ArTLISMbfFs6XpRPsXZonrIqyTY70xi8t+mDtvSM5Os0RqyRDobjMBwIDHDL4NOIbkDwf7A=="
+ },
+ "magma.common": {
+ "type": "Project"
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/sample/Magma.NetMap.PlaintextApp/packages.lock.json b/sample/Magma.NetMap.PlaintextApp/packages.lock.json
new file mode 100644
index 0000000..8a65914
--- /dev/null
+++ b/sample/Magma.NetMap.PlaintextApp/packages.lock.json
@@ -0,0 +1,51 @@
+{
+ "version": 1,
+ "dependencies": {
+ "net10.0": {
+ "Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "OJ53lhivBAjVmNMWiwB8hiXZ6IW8xKlhkWAG8gHTWruCaH4ofqIK1HjVcFgsf1Olu4/sc2jGGBmMWMSoTb5e1A=="
+ },
+ "magma.common": {
+ "type": "Project"
+ },
+ "magma.internet.ip": {
+ "type": "Project",
+ "dependencies": {
+ "Magma.Common": "[1.0.0, )"
+ }
+ },
+ "magma.link": {
+ "type": "Project"
+ },
+ "magma.netmap": {
+ "type": "Project",
+ "dependencies": {
+ "Magma.Common": "[1.0.0, )",
+ "Magma.Link": "[1.0.0, )",
+ "Magma.Network.Abstractions": "[1.0.0, )",
+ "Magma.PCap": "[1.0.0, )",
+ "Magma.Transport.Tcp": "[1.0.0, )",
+ "Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions": "[2.1.0-rc1-final, )"
+ }
+ },
+ "magma.network.abstractions": {
+ "type": "Project"
+ },
+ "magma.pcap": {
+ "type": "Project"
+ },
+ "magma.transport.tcp": {
+ "type": "Project",
+ "dependencies": {
+ "Magma.Common": "[1.0.0, )",
+ "Magma.Internet.Ip": "[1.0.0, )",
+ "Magma.Link": "[1.0.0, )",
+ "Magma.Network.Abstractions": "[1.0.0, )",
+ "Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions": "[2.1.0-rc1-final, )"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/sample/Magma.NetMap.TcpHost/packages.lock.json b/sample/Magma.NetMap.TcpHost/packages.lock.json
new file mode 100644
index 0000000..a20051e
--- /dev/null
+++ b/sample/Magma.NetMap.TcpHost/packages.lock.json
@@ -0,0 +1,150 @@
+{
+ "version": 1,
+ "dependencies": {
+ "net10.0": {
+ "Microsoft.AspNetCore.Connections.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "1eE+Hml8yITBaNO+5P2f5G8FIN/lX+FOfdw2SrgNLfSlg0inlmSKHqwDz6OzrsK2Pqu4RHWd/v9P6FLfLiaeQA==",
+ "dependencies": {
+ "Microsoft.AspNetCore.Http.Features": "2.1.0-rc1-final"
+ }
+ },
+ "Microsoft.AspNetCore.Hosting.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "ZS9+q2D4gDRy9egkX5iOAztWYtOcmMbuPpGh3Vh2ayDgZ0qnOF4n/BYN+kZgCWE+KtLeunAwmXspNj7aHXJYgw==",
+ "dependencies": {
+ "Microsoft.AspNetCore.Hosting.Server.Abstractions": "2.1.0-rc1-final",
+ "Microsoft.AspNetCore.Http.Abstractions": "2.1.0-rc1-final",
+ "Microsoft.Extensions.Hosting.Abstractions": "2.1.0-rc1-final"
+ }
+ },
+ "Microsoft.AspNetCore.Hosting.Server.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "9zEHPWJduVTLanNVRuptCB2zrhY1D7/n6vgdPypmRtq3eR51fgfYyDsalZXQeFNOsKdVaD4PuSEP3DiLed8bYg==",
+ "dependencies": {
+ "Microsoft.AspNetCore.Http.Features": "2.1.0-rc1-final",
+ "Microsoft.Extensions.Configuration.Abstractions": "2.1.0-rc1-final"
+ }
+ },
+ "Microsoft.AspNetCore.Http.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "k8rteCcVexd8yh5DLi4Vo4UU3vyQpHP43d13jalWixImsHSgvDjkjuOUE8MK9oTlHd9utSsl8Vyeh1v2vABVvg==",
+ "dependencies": {
+ "Microsoft.AspNetCore.Http.Features": "2.1.0-rc1-final"
+ }
+ },
+ "Microsoft.AspNetCore.Http.Features": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "BwPSAufLsQjTyeGhm//f+GXhV9s68dJRPGIPy0tH5vPgRiTxMxTOqhi3ReJOR9fYnLkf1zxf/dLEly4INk1+dg==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "2.1.0-rc1-final"
+ }
+ },
+ "Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "OJ53lhivBAjVmNMWiwB8hiXZ6IW8xKlhkWAG8gHTWruCaH4ofqIK1HjVcFgsf1Olu4/sc2jGGBmMWMSoTb5e1A==",
+ "dependencies": {
+ "Microsoft.AspNetCore.Connections.Abstractions": "2.1.0-rc1-final"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "U0Q+2iXLHmLrYNl0afYa/Co0J8E/q5E81n3InSa8D8w25OiqOU5ETaOT4/ridVtHTNTcGao34LtMWTnOl/Ly+A==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "2.1.0-rc1-final"
+ }
+ },
+ "Microsoft.Extensions.DependencyInjection.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "WDSDj1JvNlBYfGyU+4TwDrN7LhJX15RmTnTeH5nVOvDOpju17vqx39yChgXeEAwm9kVwCXrRvs5RQWGVLd1cuw=="
+ },
+ "Microsoft.Extensions.FileProviders.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "o4C2e7UUiwAUtNrF+itJKBKNSVGXEE4i3tCtkK2oLk1/CJ88hnEHU+A299NKpUloMbsXH4Z+29lPUbNsKHoeTw==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "2.1.0-rc1-final"
+ }
+ },
+ "Microsoft.Extensions.Hosting.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "G+UwVxCWW8p6aEQy5iPt1gt4H4L+LbXyOGVXMZwOVE03KJpg6IxBFd7VkgEsnVhXsjuGdCV0m/76MnJuTMvs+w==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "2.1.0-rc1-final",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.0-rc1-final",
+ "Microsoft.Extensions.FileProviders.Abstractions": "2.1.0-rc1-final",
+ "Microsoft.Extensions.Logging.Abstractions": "2.1.0-rc1-final"
+ }
+ },
+ "Microsoft.Extensions.Logging.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "wbv9lUGJPJ+nKMyHWBiImSI99n70nynYW+lKQhUa8fJTr3G2sNUaN12uXh3+riNwnNX+YJldhdo38v8s6N8ZSA=="
+ },
+ "Microsoft.Extensions.Options": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "uRkR6l93U/2FVlijdHfdb8NafesLr46dB1RkHtgt8p+lVPy6MspXxvbftEPKFSlT9uT0wWlGw8FEyZSQsex23w==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.0-rc1-final",
+ "Microsoft.Extensions.Primitives": "2.1.0-rc1-final"
+ }
+ },
+ "Microsoft.Extensions.Primitives": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "UR92OPDCSSBckjDELE1ZOzioml4jrMTYo2LmP3d+HhY56GeS6gwVwTNTxMb3VL1KXKzkYzdbQSo3xVwN6z9Ogg=="
+ },
+ "magma.common": {
+ "type": "Project"
+ },
+ "magma.internet.ip": {
+ "type": "Project",
+ "dependencies": {
+ "Magma.Common": "[1.0.0, )"
+ }
+ },
+ "magma.link": {
+ "type": "Project"
+ },
+ "magma.netmap": {
+ "type": "Project",
+ "dependencies": {
+ "Magma.Common": "[1.0.0, )",
+ "Magma.Link": "[1.0.0, )",
+ "Magma.Network.Abstractions": "[1.0.0, )",
+ "Magma.PCap": "[1.0.0, )",
+ "Magma.Transport.Tcp": "[1.0.0, )",
+ "Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions": "[2.1.0-rc1-final, )"
+ }
+ },
+ "magma.network.abstractions": {
+ "type": "Project"
+ },
+ "magma.pcap": {
+ "type": "Project"
+ },
+ "magma.transport.tcp": {
+ "type": "Project",
+ "dependencies": {
+ "Magma.Common": "[1.0.0, )",
+ "Magma.Internet.Ip": "[1.0.0, )",
+ "Magma.Link": "[1.0.0, )",
+ "Magma.Network.Abstractions": "[1.0.0, )",
+ "Microsoft.AspNetCore.Hosting.Abstractions": "[2.1.0-rc1-final, )",
+ "Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions": "[2.1.0-rc1-final, )",
+ "Microsoft.Extensions.Options": "[2.1.0-rc1-final, )"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/sample/Magma.WinTun.TcpHost/packages.lock.json b/sample/Magma.WinTun.TcpHost/packages.lock.json
new file mode 100644
index 0000000..3d8c986
--- /dev/null
+++ b/sample/Magma.WinTun.TcpHost/packages.lock.json
@@ -0,0 +1,455 @@
+{
+ "version": 1,
+ "dependencies": {
+ "net10.0": {
+ "Microsoft.AspNetCore.Connections.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "1eE+Hml8yITBaNO+5P2f5G8FIN/lX+FOfdw2SrgNLfSlg0inlmSKHqwDz6OzrsK2Pqu4RHWd/v9P6FLfLiaeQA==",
+ "dependencies": {
+ "Microsoft.AspNetCore.Http.Features": "2.1.0-rc1-final"
+ }
+ },
+ "Microsoft.AspNetCore.Hosting.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "ZS9+q2D4gDRy9egkX5iOAztWYtOcmMbuPpGh3Vh2ayDgZ0qnOF4n/BYN+kZgCWE+KtLeunAwmXspNj7aHXJYgw==",
+ "dependencies": {
+ "Microsoft.AspNetCore.Hosting.Server.Abstractions": "2.1.0-rc1-final",
+ "Microsoft.AspNetCore.Http.Abstractions": "2.1.0-rc1-final",
+ "Microsoft.Extensions.Hosting.Abstractions": "2.1.0-rc1-final"
+ }
+ },
+ "Microsoft.AspNetCore.Hosting.Server.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "9zEHPWJduVTLanNVRuptCB2zrhY1D7/n6vgdPypmRtq3eR51fgfYyDsalZXQeFNOsKdVaD4PuSEP3DiLed8bYg==",
+ "dependencies": {
+ "Microsoft.AspNetCore.Http.Features": "2.1.0-rc1-final",
+ "Microsoft.Extensions.Configuration.Abstractions": "2.1.0-rc1-final"
+ }
+ },
+ "Microsoft.AspNetCore.Http.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "k8rteCcVexd8yh5DLi4Vo4UU3vyQpHP43d13jalWixImsHSgvDjkjuOUE8MK9oTlHd9utSsl8Vyeh1v2vABVvg==",
+ "dependencies": {
+ "Microsoft.AspNetCore.Http.Features": "2.1.0-rc1-final"
+ }
+ },
+ "Microsoft.AspNetCore.Http.Features": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "BwPSAufLsQjTyeGhm//f+GXhV9s68dJRPGIPy0tH5vPgRiTxMxTOqhi3ReJOR9fYnLkf1zxf/dLEly4INk1+dg==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "2.1.0-rc1-final"
+ }
+ },
+ "Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "OJ53lhivBAjVmNMWiwB8hiXZ6IW8xKlhkWAG8gHTWruCaH4ofqIK1HjVcFgsf1Olu4/sc2jGGBmMWMSoTb5e1A==",
+ "dependencies": {
+ "Microsoft.AspNetCore.Connections.Abstractions": "2.1.0-rc1-final"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "U0Q+2iXLHmLrYNl0afYa/Co0J8E/q5E81n3InSa8D8w25OiqOU5ETaOT4/ridVtHTNTcGao34LtMWTnOl/Ly+A==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "2.1.0-rc1-final"
+ }
+ },
+ "Microsoft.Extensions.DependencyInjection.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "WDSDj1JvNlBYfGyU+4TwDrN7LhJX15RmTnTeH5nVOvDOpju17vqx39yChgXeEAwm9kVwCXrRvs5RQWGVLd1cuw=="
+ },
+ "Microsoft.Extensions.FileProviders.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "o4C2e7UUiwAUtNrF+itJKBKNSVGXEE4i3tCtkK2oLk1/CJ88hnEHU+A299NKpUloMbsXH4Z+29lPUbNsKHoeTw==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "2.1.0-rc1-final"
+ }
+ },
+ "Microsoft.Extensions.Hosting.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "G+UwVxCWW8p6aEQy5iPt1gt4H4L+LbXyOGVXMZwOVE03KJpg6IxBFd7VkgEsnVhXsjuGdCV0m/76MnJuTMvs+w==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "2.1.0-rc1-final",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.0-rc1-final",
+ "Microsoft.Extensions.FileProviders.Abstractions": "2.1.0-rc1-final",
+ "Microsoft.Extensions.Logging.Abstractions": "2.1.0-rc1-final"
+ }
+ },
+ "Microsoft.Extensions.Logging.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "wbv9lUGJPJ+nKMyHWBiImSI99n70nynYW+lKQhUa8fJTr3G2sNUaN12uXh3+riNwnNX+YJldhdo38v8s6N8ZSA=="
+ },
+ "Microsoft.Extensions.Options": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "uRkR6l93U/2FVlijdHfdb8NafesLr46dB1RkHtgt8p+lVPy6MspXxvbftEPKFSlT9uT0wWlGw8FEyZSQsex23w==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.0-rc1-final",
+ "Microsoft.Extensions.Primitives": "2.1.0-rc1-final"
+ }
+ },
+ "Microsoft.Extensions.Primitives": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "UR92OPDCSSBckjDELE1ZOzioml4jrMTYo2LmP3d+HhY56GeS6gwVwTNTxMb3VL1KXKzkYzdbQSo3xVwN6z9Ogg=="
+ },
+ "Microsoft.NETCore.Platforms": {
+ "type": "Transitive",
+ "resolved": "2.0.0",
+ "contentHash": "VdLJOCXhZaEMY7Hm2GKiULmn7IEPFE4XC5LPSfBVCUIA8YLZVh846gtfBJalsPQF2PlzdD7ecX7DZEulJ402ZQ=="
+ },
+ "Microsoft.Win32.Registry.AccessControl": {
+ "type": "Transitive",
+ "resolved": "4.5.0",
+ "contentHash": "f2aT8NLc9DsB1VEaM4jlYF9DFLA12+ccmWzWA0HEVC3Vgac7tGLSgrU6jtUG+VO1/R5zA6AomQ2pKqJ+5SDWyQ=="
+ },
+ "Microsoft.Win32.SystemEvents": {
+ "type": "Transitive",
+ "resolved": "4.5.0",
+ "contentHash": "LuI1oG+24TUj1ZRQQjM5Ew73BKnZE5NZ/7eAdh1o8ST5dPhUnJvIkiIn2re3MwnkRy6ELRnvEbBxHP8uALKhJw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "2.0.0"
+ }
+ },
+ "Microsoft.Windows.Compatibility": {
+ "type": "Transitive",
+ "resolved": "2.0.0",
+ "contentHash": "grF6lUwE8U9iclB4KfNhQXwPxqxWK13ivOPTxJ3ebjWlPlmy4DVPjKoqM4tz30gQ+B1TAe5uHW25/EhefuWKuw==",
+ "dependencies": {
+ "Microsoft.Win32.Registry.AccessControl": "4.5.0",
+ "Microsoft.Win32.SystemEvents": "4.5.0",
+ "Microsoft.Windows.Compatibility.Shims": "2.0.0",
+ "System.CodeDom": "4.5.0",
+ "System.ComponentModel.Composition": "4.5.0",
+ "System.Configuration.ConfigurationManager": "4.5.0",
+ "System.Data.DataSetExtensions": "4.5.0",
+ "System.Data.Odbc": "4.5.0",
+ "System.Data.SqlClient": "4.5.0",
+ "System.Diagnostics.EventLog": "4.5.0",
+ "System.Diagnostics.PerformanceCounter": "4.5.0",
+ "System.DirectoryServices": "4.5.0",
+ "System.DirectoryServices.AccountManagement": "4.5.0",
+ "System.DirectoryServices.Protocols": "4.5.0",
+ "System.Drawing.Common": "4.5.0",
+ "System.IO.FileSystem.AccessControl": "4.5.0",
+ "System.IO.Packaging": "4.5.0",
+ "System.IO.Ports": "4.5.0",
+ "System.Management": "4.5.0",
+ "System.Runtime.Caching": "4.5.0",
+ "System.Security.Cryptography.Pkcs": "4.5.0",
+ "System.Security.Cryptography.ProtectedData": "4.5.0",
+ "System.Security.Cryptography.Xml": "4.5.0",
+ "System.Security.Permissions": "4.5.0",
+ "System.ServiceModel.Duplex": "4.4.1",
+ "System.ServiceModel.Http": "4.4.1",
+ "System.ServiceModel.NetTcp": "4.4.1",
+ "System.ServiceModel.Primitives": "4.4.1",
+ "System.ServiceModel.Security": "4.4.1",
+ "System.ServiceModel.Syndication": "4.5.0",
+ "System.ServiceProcess.ServiceController": "4.5.0"
+ }
+ },
+ "Microsoft.Windows.Compatibility.Shims": {
+ "type": "Transitive",
+ "resolved": "2.0.0",
+ "contentHash": "jDrm39dTk/JpeiPjXWVquPfLOIBYG8N1q4mQcppYaWuFu15p/+h6/dNKg/NJpWAbVZpFOqBGH/Di1Xbz8hiynQ=="
+ },
+ "runtime.native.System.Data.SqlClient.sni": {
+ "type": "Transitive",
+ "resolved": "4.4.0",
+ "contentHash": "A8v6PGmk+UGbfWo5Ixup0lPM4swuSwOiayJExZwKIOjTlFFQIsu3QnDXECosBEyrWSPryxBVrdqtJyhK3BaupQ==",
+ "dependencies": {
+ "runtime.win-arm64.runtime.native.System.Data.SqlClient.sni": "4.4.0",
+ "runtime.win-x64.runtime.native.System.Data.SqlClient.sni": "4.4.0",
+ "runtime.win-x86.runtime.native.System.Data.SqlClient.sni": "4.4.0"
+ }
+ },
+ "runtime.win-arm64.runtime.native.System.Data.SqlClient.sni": {
+ "type": "Transitive",
+ "resolved": "4.4.0",
+ "contentHash": "LbrynESTp3bm5O/+jGL8v0Qg5SJlTV08lpIpFesXjF6uGNMWqFnUQbYBJwZTeua6E/Y7FIM1C54Ey1btLWupdg=="
+ },
+ "runtime.win-x64.runtime.native.System.Data.SqlClient.sni": {
+ "type": "Transitive",
+ "resolved": "4.4.0",
+ "contentHash": "38ugOfkYJqJoX9g6EYRlZB5U2ZJH51UP8ptxZgdpS07FgOEToV+lS11ouNK2PM12Pr6X/PpT5jK82G3DwH/SxQ=="
+ },
+ "runtime.win-x86.runtime.native.System.Data.SqlClient.sni": {
+ "type": "Transitive",
+ "resolved": "4.4.0",
+ "contentHash": "YhEdSQUsTx+C8m8Bw7ar5/VesXvCFMItyZF7G1AUY+OM0VPZUOeAVpJ4Wl6fydBGUYZxojTDR3I6Bj/+BPkJNA=="
+ },
+ "System.CodeDom": {
+ "type": "Transitive",
+ "resolved": "4.5.0",
+ "contentHash": "gqpR1EeXOuzNQWL7rOzmtdIz3CaXVjSQCiaGOs2ivjPwynKSJYm39X81fdlp7WuojZs/Z5t1k5ni7HtKQurhjw=="
+ },
+ "System.ComponentModel.Composition": {
+ "type": "Transitive",
+ "resolved": "4.5.0",
+ "contentHash": "+iB9FoZnfdqMEGq6np28X6YNSUrse16CakmIhV3h6PxEWt7jYxUN3Txs1D8MZhhf4QmyvK0F/EcIN0f4gGN0dA==",
+ "dependencies": {
+ "System.Security.Permissions": "4.5.0"
+ }
+ },
+ "System.Configuration.ConfigurationManager": {
+ "type": "Transitive",
+ "resolved": "4.5.0",
+ "contentHash": "UIFvaFfuKhLr9u5tWMxmVoDPkFeD+Qv8gUuap4aZgVGYSYMdERck4OhLN/2gulAc0nYTEigWXSJNNWshrmxnng==",
+ "dependencies": {
+ "System.Security.Cryptography.ProtectedData": "4.5.0",
+ "System.Security.Permissions": "4.5.0"
+ }
+ },
+ "System.Data.DataSetExtensions": {
+ "type": "Transitive",
+ "resolved": "4.5.0",
+ "contentHash": "221clPs1445HkTBZPL+K9sDBdJRB8UN8rgjO3ztB0CQ26z//fmJXtlsr6whGatscsKGBrhJl5bwJuKSA8mwFOw=="
+ },
+ "System.Data.Odbc": {
+ "type": "Transitive",
+ "resolved": "4.5.0",
+ "contentHash": "9FEiWrYDNt/5KrqWr2V8eK3lgE61uhx0VV3mPwRCD6MBm1zurGd46LV87RsligKlThbHPpvLkIQnQ0Xv0YZLCg=="
+ },
+ "System.Data.SqlClient": {
+ "type": "Transitive",
+ "resolved": "4.5.0",
+ "contentHash": "7xeDd8j7T/j2/OWsbVCx1QmCaHf2AnML0FXslTeo4My3F9tAcdSzrnrLdIi49bzNazHykQIfyU5nb3+jmE/CoQ==",
+ "dependencies": {
+ "runtime.native.System.Data.SqlClient.sni": "4.4.0"
+ }
+ },
+ "System.Diagnostics.EventLog": {
+ "type": "Transitive",
+ "resolved": "4.5.0",
+ "contentHash": "QaQAhEk18QSBPSu4VjXcznvjlg45IoXcJJNS5hcoqyyLj58g/SzQwpYXUrdzo+UtHV0grmOzFwABxhCYSTTp5Q==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "2.0.0",
+ "System.Security.Permissions": "4.5.0"
+ }
+ },
+ "System.Diagnostics.PerformanceCounter": {
+ "type": "Transitive",
+ "resolved": "4.5.0",
+ "contentHash": "JUO5/moXgchWZBMBElgmPebZPKCgwW8kY3dFwVJavaNR2ftcc/YjXXGjOaCjly2KBXT7Ld5l/GTkMVzNv41yZA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "2.0.0",
+ "System.Configuration.ConfigurationManager": "4.5.0"
+ }
+ },
+ "System.DirectoryServices": {
+ "type": "Transitive",
+ "resolved": "4.5.0",
+ "contentHash": "6Uty9sMaeBG0/GIRTW4+DUTvuB/od5E6rY45JbEz1c2xMoPSA9GLov4KdiBEpjsEcsgORa6sC3vfh70tEJJaOw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "2.0.0",
+ "System.IO.FileSystem.AccessControl": "4.5.0"
+ }
+ },
+ "System.DirectoryServices.AccountManagement": {
+ "type": "Transitive",
+ "resolved": "4.5.0",
+ "contentHash": "m9Blc7UXAVMG60+CWhC9KC4y+4azuiHu3QOvII27BYfV8TDmaay6smZrrx1u7DhfJ4Gjt14eKzj8VO2aR9/aBw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "2.0.0",
+ "System.Configuration.ConfigurationManager": "4.5.0",
+ "System.DirectoryServices": "4.5.0",
+ "System.DirectoryServices.Protocols": "4.5.0",
+ "System.IO.FileSystem.AccessControl": "4.5.0"
+ }
+ },
+ "System.DirectoryServices.Protocols": {
+ "type": "Transitive",
+ "resolved": "4.5.0",
+ "contentHash": "EpWC9CW2GdFiWzhWEIcXX8tMPGRdrpL+1BI4WyBYG4G1TlOuMXO3bpyLydEo5/3ThDFPzWfp0Yp0u360dGwvJQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "2.0.0"
+ }
+ },
+ "System.Drawing.Common": {
+ "type": "Transitive",
+ "resolved": "4.5.0",
+ "contentHash": "AiJFxxVPdeITstiRS5aAu8+8Dpf5NawTMoapZ53Gfirml24p7HIfhjmCRxdXnmmf3IUA3AX3CcW7G73CjWxW/Q==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "2.0.0",
+ "Microsoft.Win32.SystemEvents": "4.5.0"
+ }
+ },
+ "System.IO.FileSystem.AccessControl": {
+ "type": "Transitive",
+ "resolved": "4.5.0",
+ "contentHash": "TYe6xstoqT5MlTly0OtPU6u9zWuNScLVMEx6sTCjjx+Hqdp0wCXoG6fnzMpTPMQACXQzi9pd2N5Tloow+5jQdQ=="
+ },
+ "System.IO.Packaging": {
+ "type": "Transitive",
+ "resolved": "4.5.0",
+ "contentHash": "OjtW5pGp1E7KE3ontBrzy+nSFJCM6pcbVDdo3gg4DauTfdtZKdeKvMVlADF4fSY+OfXWUp4qCvOSxIltt37LbA=="
+ },
+ "System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "4.5.0",
+ "contentHash": "7bd6tcZZbTeNKOLUm2KZboJug0VRP8IW7HEC/zuILEO1THGXrHWhskIYtfiKOeCEEfqskK34MeVO6zWjr2Vlpw=="
+ },
+ "System.Management": {
+ "type": "Transitive",
+ "resolved": "4.5.0",
+ "contentHash": "Z6ac0qPGr3yJtwZEX1SRkhwWa0Kf5NJxx7smLboYsGrApQFECNFdqhGy252T4lrZ5Nwzhd9VQiaifndR3bfHdg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "2.0.0",
+ "System.CodeDom": "4.5.0"
+ }
+ },
+ "System.Net.Http.WinHttpHandler": {
+ "type": "Transitive",
+ "resolved": "4.4.0",
+ "contentHash": "ZmsFZIZ4PL2UfUlfj4KCzzAGGE2SF39ENIqtvfgu0bwMEAe3J3CqZr765E2W6eQQtNK08/8DpHcsA0sAKZdEtA=="
+ },
+ "System.Private.ServiceModel": {
+ "type": "Transitive",
+ "resolved": "4.4.1",
+ "contentHash": "EG5r4+WK/WpGqdeib+/Qb3tgBmpzqxcaYOfG2EdWkHeR98xaOaiKOx+U2f76ERCW+snmorf7vlV+5XwQ5VLJoQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "2.0.0",
+ "System.Net.Http.WinHttpHandler": "4.4.0"
+ }
+ },
+ "System.Runtime.Caching": {
+ "type": "Transitive",
+ "resolved": "4.5.0",
+ "contentHash": "95j9KShuaAENf2gLbQ/9YoJDHIWAnoaFYA71xo4QVQyLkOMginn34cD1+6RcYIrqJamLkMXgvgUnOzwzBk+U0w==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "2.0.0",
+ "System.Configuration.ConfigurationManager": "4.5.0"
+ }
+ },
+ "System.Security.Cryptography.Pkcs": {
+ "type": "Transitive",
+ "resolved": "4.5.0",
+ "contentHash": "TGQX51gxpY3K3I6LJlE2LAftVlIMqJf0cBGhz68Y89jjk3LJCB6SrwiD+YN1fkqemBvWGs+GjyMJukl6d6goyQ=="
+ },
+ "System.Security.Cryptography.ProtectedData": {
+ "type": "Transitive",
+ "resolved": "4.5.0",
+ "contentHash": "wLBKzFnDCxP12VL9ANydSYhk59fC4cvOr9ypYQLPnAj48NQIhqnjdD2yhP8yEKyBJEjERWS9DisKL7rX5eU25Q=="
+ },
+ "System.Security.Cryptography.Xml": {
+ "type": "Transitive",
+ "resolved": "4.5.0",
+ "contentHash": "i2Jn6rGXR63J0zIklImGRkDIJL4b1NfPSEbIVHBlqoIb12lfXIigCbDRpDmIEzwSo/v1U5y/rYJdzZYSyCWxvg==",
+ "dependencies": {
+ "System.Security.Cryptography.Pkcs": "4.5.0",
+ "System.Security.Permissions": "4.5.0"
+ }
+ },
+ "System.Security.Permissions": {
+ "type": "Transitive",
+ "resolved": "4.5.0",
+ "contentHash": "9gdyuARhUR7H+p5CjyUB/zPk7/Xut3wUSP8NJQB6iZr8L3XUXTMdoLeVAg9N4rqF8oIpE7MpdqHdDHQ7XgJe0g=="
+ },
+ "System.ServiceModel.Duplex": {
+ "type": "Transitive",
+ "resolved": "4.4.1",
+ "contentHash": "yqoKih7MgUgLPdoA0nspo6u0YTQuj55jPlzyCwRWNWQfCe2hgVmKT6/N8BWiBeuf8zLs9gDKFj+eZLKJMD+pTA==",
+ "dependencies": {
+ "System.Private.ServiceModel": "4.4.1",
+ "System.ServiceModel.Primitives": "4.4.1"
+ }
+ },
+ "System.ServiceModel.Http": {
+ "type": "Transitive",
+ "resolved": "4.4.1",
+ "contentHash": "i/ji0BRTGRACR/NegTMvgsOh2bA1FnHzLVgNBOz4Xxxwovd3z3pE+YKKtkrxE3MNm00pf30HW13CHf7i2VzBQA==",
+ "dependencies": {
+ "System.Private.ServiceModel": "4.4.1",
+ "System.ServiceModel.Primitives": "4.4.1"
+ }
+ },
+ "System.ServiceModel.NetTcp": {
+ "type": "Transitive",
+ "resolved": "4.4.1",
+ "contentHash": "MzPX/s4x1IVV327kvXu1XWPUUOHjGqEScOcaTGUzxWJ0VGyPX6Tbe85re4/nlPdRyfetsCChmmUuKylnrbJ1Jw==",
+ "dependencies": {
+ "System.Private.ServiceModel": "4.4.1",
+ "System.ServiceModel.Primitives": "4.4.1"
+ }
+ },
+ "System.ServiceModel.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.4.1",
+ "contentHash": "vp7zTf2xEq8shjlT6IZj0nkmIl+3eoPVrxrFtMS14ldFyDHqe9KB6YNOc6oirkg0udPnF5tSpxlrtTqANDGoMQ==",
+ "dependencies": {
+ "System.Private.ServiceModel": "4.4.1"
+ }
+ },
+ "System.ServiceModel.Security": {
+ "type": "Transitive",
+ "resolved": "4.4.1",
+ "contentHash": "BKb4d8SyRjQ9pKEbcUch+UKK1AbHzxlU9klpym2WNbZkKOK10B/j9PGrYRrg+36jxt8SdO9FolIRlzP/N/e0IA==",
+ "dependencies": {
+ "System.Private.ServiceModel": "4.4.1",
+ "System.ServiceModel.Primitives": "4.4.1"
+ }
+ },
+ "System.ServiceModel.Syndication": {
+ "type": "Transitive",
+ "resolved": "4.5.0",
+ "contentHash": "Tm3vhsv0PnrU7avYEP6vSQiqr+Dhe7N8NPbnInWMhSSmIMmutyfSg349pqnv0JboK3l/9eHNiX4KD5NMUsvhmQ=="
+ },
+ "System.ServiceProcess.ServiceController": {
+ "type": "Transitive",
+ "resolved": "4.5.0",
+ "contentHash": "8DGUtcNHf9TlvSVemKMFiqcOWJ4OdGBgvpcGL/cYossGf5ApMQdPUQS8vXHTBmlbYAcG+JXsjMFGAHp2oJrr+Q==",
+ "dependencies": {
+ "System.Diagnostics.EventLog": "4.5.0"
+ }
+ },
+ "magma.common": {
+ "type": "Project"
+ },
+ "magma.internet.ip": {
+ "type": "Project",
+ "dependencies": {
+ "Magma.Common": "[1.0.0, )"
+ }
+ },
+ "magma.link": {
+ "type": "Project"
+ },
+ "magma.network.abstractions": {
+ "type": "Project"
+ },
+ "magma.transport.tcp": {
+ "type": "Project",
+ "dependencies": {
+ "Magma.Common": "[1.0.0, )",
+ "Magma.Internet.Ip": "[1.0.0, )",
+ "Magma.Link": "[1.0.0, )",
+ "Magma.Network.Abstractions": "[1.0.0, )",
+ "Microsoft.AspNetCore.Hosting.Abstractions": "[2.1.0-rc1-final, )",
+ "Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions": "[2.1.0-rc1-final, )",
+ "Microsoft.Extensions.Options": "[2.1.0-rc1-final, )"
+ }
+ },
+ "magma.wintun": {
+ "type": "Project",
+ "dependencies": {
+ "Magma.Internet.Ip": "[1.0.0, )",
+ "Magma.Link": "[1.0.0, )",
+ "Magma.Network.Abstractions": "[1.0.0, )",
+ "Microsoft.Windows.Compatibility": "[2.0.0, )"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Magma.AF_XDP/packages.lock.json b/src/Magma.AF_XDP/packages.lock.json
new file mode 100644
index 0000000..f85c796
--- /dev/null
+++ b/src/Magma.AF_XDP/packages.lock.json
@@ -0,0 +1,143 @@
+{
+ "version": 1,
+ "dependencies": {
+ "net10.0": {
+ "Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions": {
+ "type": "Direct",
+ "requested": "[2.1.0-rc1-final, )",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "OJ53lhivBAjVmNMWiwB8hiXZ6IW8xKlhkWAG8gHTWruCaH4ofqIK1HjVcFgsf1Olu4/sc2jGGBmMWMSoTb5e1A==",
+ "dependencies": {
+ "Microsoft.AspNetCore.Connections.Abstractions": "2.1.0-rc1-final"
+ }
+ },
+ "System.Runtime.CompilerServices.Unsafe": {
+ "type": "Direct",
+ "requested": "[4.5.0-rc1, )",
+ "resolved": "4.5.0-rc1",
+ "contentHash": "OwKsQab6XaJDGKexQ9/fX3oLbwG5Hio4nHX2niFyZz1VWOzobEKx52x9IKVS42lDfjO8fEd2dtM/nuguM+1SCg=="
+ },
+ "Microsoft.AspNetCore.Connections.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "1eE+Hml8yITBaNO+5P2f5G8FIN/lX+FOfdw2SrgNLfSlg0inlmSKHqwDz6OzrsK2Pqu4RHWd/v9P6FLfLiaeQA==",
+ "dependencies": {
+ "Microsoft.AspNetCore.Http.Features": "2.1.0-rc1-final"
+ }
+ },
+ "Microsoft.AspNetCore.Hosting.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "ZS9+q2D4gDRy9egkX5iOAztWYtOcmMbuPpGh3Vh2ayDgZ0qnOF4n/BYN+kZgCWE+KtLeunAwmXspNj7aHXJYgw==",
+ "dependencies": {
+ "Microsoft.AspNetCore.Hosting.Server.Abstractions": "2.1.0-rc1-final",
+ "Microsoft.AspNetCore.Http.Abstractions": "2.1.0-rc1-final",
+ "Microsoft.Extensions.Hosting.Abstractions": "2.1.0-rc1-final"
+ }
+ },
+ "Microsoft.AspNetCore.Hosting.Server.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "9zEHPWJduVTLanNVRuptCB2zrhY1D7/n6vgdPypmRtq3eR51fgfYyDsalZXQeFNOsKdVaD4PuSEP3DiLed8bYg==",
+ "dependencies": {
+ "Microsoft.AspNetCore.Http.Features": "2.1.0-rc1-final",
+ "Microsoft.Extensions.Configuration.Abstractions": "2.1.0-rc1-final"
+ }
+ },
+ "Microsoft.AspNetCore.Http.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "k8rteCcVexd8yh5DLi4Vo4UU3vyQpHP43d13jalWixImsHSgvDjkjuOUE8MK9oTlHd9utSsl8Vyeh1v2vABVvg==",
+ "dependencies": {
+ "Microsoft.AspNetCore.Http.Features": "2.1.0-rc1-final"
+ }
+ },
+ "Microsoft.AspNetCore.Http.Features": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "BwPSAufLsQjTyeGhm//f+GXhV9s68dJRPGIPy0tH5vPgRiTxMxTOqhi3ReJOR9fYnLkf1zxf/dLEly4INk1+dg==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "2.1.0-rc1-final"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "U0Q+2iXLHmLrYNl0afYa/Co0J8E/q5E81n3InSa8D8w25OiqOU5ETaOT4/ridVtHTNTcGao34LtMWTnOl/Ly+A==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "2.1.0-rc1-final"
+ }
+ },
+ "Microsoft.Extensions.DependencyInjection.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "WDSDj1JvNlBYfGyU+4TwDrN7LhJX15RmTnTeH5nVOvDOpju17vqx39yChgXeEAwm9kVwCXrRvs5RQWGVLd1cuw=="
+ },
+ "Microsoft.Extensions.FileProviders.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "o4C2e7UUiwAUtNrF+itJKBKNSVGXEE4i3tCtkK2oLk1/CJ88hnEHU+A299NKpUloMbsXH4Z+29lPUbNsKHoeTw==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "2.1.0-rc1-final"
+ }
+ },
+ "Microsoft.Extensions.Hosting.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "G+UwVxCWW8p6aEQy5iPt1gt4H4L+LbXyOGVXMZwOVE03KJpg6IxBFd7VkgEsnVhXsjuGdCV0m/76MnJuTMvs+w==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "2.1.0-rc1-final",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.0-rc1-final",
+ "Microsoft.Extensions.FileProviders.Abstractions": "2.1.0-rc1-final",
+ "Microsoft.Extensions.Logging.Abstractions": "2.1.0-rc1-final"
+ }
+ },
+ "Microsoft.Extensions.Logging.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "wbv9lUGJPJ+nKMyHWBiImSI99n70nynYW+lKQhUa8fJTr3G2sNUaN12uXh3+riNwnNX+YJldhdo38v8s6N8ZSA=="
+ },
+ "Microsoft.Extensions.Options": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "uRkR6l93U/2FVlijdHfdb8NafesLr46dB1RkHtgt8p+lVPy6MspXxvbftEPKFSlT9uT0wWlGw8FEyZSQsex23w==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.0-rc1-final",
+ "Microsoft.Extensions.Primitives": "2.1.0-rc1-final"
+ }
+ },
+ "Microsoft.Extensions.Primitives": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "UR92OPDCSSBckjDELE1ZOzioml4jrMTYo2LmP3d+HhY56GeS6gwVwTNTxMb3VL1KXKzkYzdbQSo3xVwN6z9Ogg=="
+ },
+ "magma.common": {
+ "type": "Project"
+ },
+ "magma.internet.ip": {
+ "type": "Project",
+ "dependencies": {
+ "Magma.Common": "[1.0.0, )"
+ }
+ },
+ "magma.link": {
+ "type": "Project"
+ },
+ "magma.network.abstractions": {
+ "type": "Project"
+ },
+ "magma.transport.tcp": {
+ "type": "Project",
+ "dependencies": {
+ "Magma.Common": "[1.0.0, )",
+ "Magma.Internet.Ip": "[1.0.0, )",
+ "Magma.Link": "[1.0.0, )",
+ "Magma.Network.Abstractions": "[1.0.0, )",
+ "Microsoft.AspNetCore.Hosting.Abstractions": "[2.1.0-rc1-final, )",
+ "Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions": "[2.1.0-rc1-final, )",
+ "Microsoft.Extensions.Options": "[2.1.0-rc1-final, )"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Magma.Common/packages.lock.json b/src/Magma.Common/packages.lock.json
new file mode 100644
index 0000000..588c9d7
--- /dev/null
+++ b/src/Magma.Common/packages.lock.json
@@ -0,0 +1,19 @@
+{
+ "version": 1,
+ "dependencies": {
+ "net10.0": {
+ "System.Memory": {
+ "type": "Direct",
+ "requested": "[4.5.0-rc1, )",
+ "resolved": "4.5.0-rc1",
+ "contentHash": "dAwx/m2GUX2G5kTOXfqgCN+3gkvwlWMjiE8vLAjbvHnircdcHfSHHBs57KM7c/FYJt+3tMLyCuL9Dxi+MEfx/w=="
+ },
+ "System.Runtime.CompilerServices.Unsafe": {
+ "type": "Direct",
+ "requested": "[4.5.0-rc1, )",
+ "resolved": "4.5.0-rc1",
+ "contentHash": "OwKsQab6XaJDGKexQ9/fX3oLbwG5Hio4nHX2niFyZz1VWOzobEKx52x9IKVS42lDfjO8fEd2dtM/nuguM+1SCg=="
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Magma.Internet.Icmp/packages.lock.json b/src/Magma.Internet.Icmp/packages.lock.json
new file mode 100644
index 0000000..d7d168b
--- /dev/null
+++ b/src/Magma.Internet.Icmp/packages.lock.json
@@ -0,0 +1,22 @@
+{
+ "version": 1,
+ "dependencies": {
+ "net10.0": {
+ "System.Memory": {
+ "type": "Direct",
+ "requested": "[4.5.0-rc1, )",
+ "resolved": "4.5.0-rc1",
+ "contentHash": "dAwx/m2GUX2G5kTOXfqgCN+3gkvwlWMjiE8vLAjbvHnircdcHfSHHBs57KM7c/FYJt+3tMLyCuL9Dxi+MEfx/w=="
+ },
+ "System.Runtime.CompilerServices.Unsafe": {
+ "type": "Direct",
+ "requested": "[4.5.0-rc1, )",
+ "resolved": "4.5.0-rc1",
+ "contentHash": "OwKsQab6XaJDGKexQ9/fX3oLbwG5Hio4nHX2niFyZz1VWOzobEKx52x9IKVS42lDfjO8fEd2dtM/nuguM+1SCg=="
+ },
+ "magma.common": {
+ "type": "Project"
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Magma.Internet.Ip/packages.lock.json b/src/Magma.Internet.Ip/packages.lock.json
new file mode 100644
index 0000000..d7d168b
--- /dev/null
+++ b/src/Magma.Internet.Ip/packages.lock.json
@@ -0,0 +1,22 @@
+{
+ "version": 1,
+ "dependencies": {
+ "net10.0": {
+ "System.Memory": {
+ "type": "Direct",
+ "requested": "[4.5.0-rc1, )",
+ "resolved": "4.5.0-rc1",
+ "contentHash": "dAwx/m2GUX2G5kTOXfqgCN+3gkvwlWMjiE8vLAjbvHnircdcHfSHHBs57KM7c/FYJt+3tMLyCuL9Dxi+MEfx/w=="
+ },
+ "System.Runtime.CompilerServices.Unsafe": {
+ "type": "Direct",
+ "requested": "[4.5.0-rc1, )",
+ "resolved": "4.5.0-rc1",
+ "contentHash": "OwKsQab6XaJDGKexQ9/fX3oLbwG5Hio4nHX2niFyZz1VWOzobEKx52x9IKVS42lDfjO8fEd2dtM/nuguM+1SCg=="
+ },
+ "magma.common": {
+ "type": "Project"
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Magma.Link/packages.lock.json b/src/Magma.Link/packages.lock.json
new file mode 100644
index 0000000..588c9d7
--- /dev/null
+++ b/src/Magma.Link/packages.lock.json
@@ -0,0 +1,19 @@
+{
+ "version": 1,
+ "dependencies": {
+ "net10.0": {
+ "System.Memory": {
+ "type": "Direct",
+ "requested": "[4.5.0-rc1, )",
+ "resolved": "4.5.0-rc1",
+ "contentHash": "dAwx/m2GUX2G5kTOXfqgCN+3gkvwlWMjiE8vLAjbvHnircdcHfSHHBs57KM7c/FYJt+3tMLyCuL9Dxi+MEfx/w=="
+ },
+ "System.Runtime.CompilerServices.Unsafe": {
+ "type": "Direct",
+ "requested": "[4.5.0-rc1, )",
+ "resolved": "4.5.0-rc1",
+ "contentHash": "OwKsQab6XaJDGKexQ9/fX3oLbwG5Hio4nHX2niFyZz1VWOzobEKx52x9IKVS42lDfjO8fEd2dtM/nuguM+1SCg=="
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Magma.NetMap/packages.lock.json b/src/Magma.NetMap/packages.lock.json
new file mode 100644
index 0000000..c89929d
--- /dev/null
+++ b/src/Magma.NetMap/packages.lock.json
@@ -0,0 +1,146 @@
+{
+ "version": 1,
+ "dependencies": {
+ "net10.0": {
+ "Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions": {
+ "type": "Direct",
+ "requested": "[2.1.0-rc1-final, )",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "OJ53lhivBAjVmNMWiwB8hiXZ6IW8xKlhkWAG8gHTWruCaH4ofqIK1HjVcFgsf1Olu4/sc2jGGBmMWMSoTb5e1A==",
+ "dependencies": {
+ "Microsoft.AspNetCore.Connections.Abstractions": "2.1.0-rc1-final"
+ }
+ },
+ "System.Runtime.CompilerServices.Unsafe": {
+ "type": "Direct",
+ "requested": "[4.5.0-rc1, )",
+ "resolved": "4.5.0-rc1",
+ "contentHash": "OwKsQab6XaJDGKexQ9/fX3oLbwG5Hio4nHX2niFyZz1VWOzobEKx52x9IKVS42lDfjO8fEd2dtM/nuguM+1SCg=="
+ },
+ "Microsoft.AspNetCore.Connections.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "1eE+Hml8yITBaNO+5P2f5G8FIN/lX+FOfdw2SrgNLfSlg0inlmSKHqwDz6OzrsK2Pqu4RHWd/v9P6FLfLiaeQA==",
+ "dependencies": {
+ "Microsoft.AspNetCore.Http.Features": "2.1.0-rc1-final"
+ }
+ },
+ "Microsoft.AspNetCore.Hosting.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "ZS9+q2D4gDRy9egkX5iOAztWYtOcmMbuPpGh3Vh2ayDgZ0qnOF4n/BYN+kZgCWE+KtLeunAwmXspNj7aHXJYgw==",
+ "dependencies": {
+ "Microsoft.AspNetCore.Hosting.Server.Abstractions": "2.1.0-rc1-final",
+ "Microsoft.AspNetCore.Http.Abstractions": "2.1.0-rc1-final",
+ "Microsoft.Extensions.Hosting.Abstractions": "2.1.0-rc1-final"
+ }
+ },
+ "Microsoft.AspNetCore.Hosting.Server.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "9zEHPWJduVTLanNVRuptCB2zrhY1D7/n6vgdPypmRtq3eR51fgfYyDsalZXQeFNOsKdVaD4PuSEP3DiLed8bYg==",
+ "dependencies": {
+ "Microsoft.AspNetCore.Http.Features": "2.1.0-rc1-final",
+ "Microsoft.Extensions.Configuration.Abstractions": "2.1.0-rc1-final"
+ }
+ },
+ "Microsoft.AspNetCore.Http.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "k8rteCcVexd8yh5DLi4Vo4UU3vyQpHP43d13jalWixImsHSgvDjkjuOUE8MK9oTlHd9utSsl8Vyeh1v2vABVvg==",
+ "dependencies": {
+ "Microsoft.AspNetCore.Http.Features": "2.1.0-rc1-final"
+ }
+ },
+ "Microsoft.AspNetCore.Http.Features": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "BwPSAufLsQjTyeGhm//f+GXhV9s68dJRPGIPy0tH5vPgRiTxMxTOqhi3ReJOR9fYnLkf1zxf/dLEly4INk1+dg==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "2.1.0-rc1-final"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "U0Q+2iXLHmLrYNl0afYa/Co0J8E/q5E81n3InSa8D8w25OiqOU5ETaOT4/ridVtHTNTcGao34LtMWTnOl/Ly+A==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "2.1.0-rc1-final"
+ }
+ },
+ "Microsoft.Extensions.DependencyInjection.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "WDSDj1JvNlBYfGyU+4TwDrN7LhJX15RmTnTeH5nVOvDOpju17vqx39yChgXeEAwm9kVwCXrRvs5RQWGVLd1cuw=="
+ },
+ "Microsoft.Extensions.FileProviders.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "o4C2e7UUiwAUtNrF+itJKBKNSVGXEE4i3tCtkK2oLk1/CJ88hnEHU+A299NKpUloMbsXH4Z+29lPUbNsKHoeTw==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "2.1.0-rc1-final"
+ }
+ },
+ "Microsoft.Extensions.Hosting.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "G+UwVxCWW8p6aEQy5iPt1gt4H4L+LbXyOGVXMZwOVE03KJpg6IxBFd7VkgEsnVhXsjuGdCV0m/76MnJuTMvs+w==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "2.1.0-rc1-final",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.0-rc1-final",
+ "Microsoft.Extensions.FileProviders.Abstractions": "2.1.0-rc1-final",
+ "Microsoft.Extensions.Logging.Abstractions": "2.1.0-rc1-final"
+ }
+ },
+ "Microsoft.Extensions.Logging.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "wbv9lUGJPJ+nKMyHWBiImSI99n70nynYW+lKQhUa8fJTr3G2sNUaN12uXh3+riNwnNX+YJldhdo38v8s6N8ZSA=="
+ },
+ "Microsoft.Extensions.Options": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "uRkR6l93U/2FVlijdHfdb8NafesLr46dB1RkHtgt8p+lVPy6MspXxvbftEPKFSlT9uT0wWlGw8FEyZSQsex23w==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.0-rc1-final",
+ "Microsoft.Extensions.Primitives": "2.1.0-rc1-final"
+ }
+ },
+ "Microsoft.Extensions.Primitives": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "UR92OPDCSSBckjDELE1ZOzioml4jrMTYo2LmP3d+HhY56GeS6gwVwTNTxMb3VL1KXKzkYzdbQSo3xVwN6z9Ogg=="
+ },
+ "magma.common": {
+ "type": "Project"
+ },
+ "magma.internet.ip": {
+ "type": "Project",
+ "dependencies": {
+ "Magma.Common": "[1.0.0, )"
+ }
+ },
+ "magma.link": {
+ "type": "Project"
+ },
+ "magma.network.abstractions": {
+ "type": "Project"
+ },
+ "magma.pcap": {
+ "type": "Project"
+ },
+ "magma.transport.tcp": {
+ "type": "Project",
+ "dependencies": {
+ "Magma.Common": "[1.0.0, )",
+ "Magma.Internet.Ip": "[1.0.0, )",
+ "Magma.Link": "[1.0.0, )",
+ "Magma.Network.Abstractions": "[1.0.0, )",
+ "Microsoft.AspNetCore.Hosting.Abstractions": "[2.1.0-rc1-final, )",
+ "Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions": "[2.1.0-rc1-final, )",
+ "Microsoft.Extensions.Options": "[2.1.0-rc1-final, )"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Magma.Network.Abstractions/packages.lock.json b/src/Magma.Network.Abstractions/packages.lock.json
new file mode 100644
index 0000000..cb901bb
--- /dev/null
+++ b/src/Magma.Network.Abstractions/packages.lock.json
@@ -0,0 +1,13 @@
+{
+ "version": 1,
+ "dependencies": {
+ "net10.0": {
+ "System.Memory": {
+ "type": "Direct",
+ "requested": "[4.5.0-rc1, )",
+ "resolved": "4.5.0-rc1",
+ "contentHash": "dAwx/m2GUX2G5kTOXfqgCN+3gkvwlWMjiE8vLAjbvHnircdcHfSHHBs57KM7c/FYJt+3tMLyCuL9Dxi+MEfx/w=="
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Magma.Network/packages.lock.json b/src/Magma.Network/packages.lock.json
new file mode 100644
index 0000000..6a58e8f
--- /dev/null
+++ b/src/Magma.Network/packages.lock.json
@@ -0,0 +1,22 @@
+{
+ "version": 1,
+ "dependencies": {
+ "net10.0": {
+ "magma.common": {
+ "type": "Project"
+ },
+ "magma.internet.ip": {
+ "type": "Project",
+ "dependencies": {
+ "Magma.Common": "[1.0.0, )"
+ }
+ },
+ "magma.link": {
+ "type": "Project"
+ },
+ "magma.network.abstractions": {
+ "type": "Project"
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Magma.PCap/packages.lock.json b/src/Magma.PCap/packages.lock.json
new file mode 100644
index 0000000..903ed2e
--- /dev/null
+++ b/src/Magma.PCap/packages.lock.json
@@ -0,0 +1,13 @@
+{
+ "version": 1,
+ "dependencies": {
+ "net10.0": {
+ "System.Runtime.CompilerServices.Unsafe": {
+ "type": "Direct",
+ "requested": "[4.5.0-rc1, )",
+ "resolved": "4.5.0-rc1",
+ "contentHash": "OwKsQab6XaJDGKexQ9/fX3oLbwG5Hio4nHX2niFyZz1VWOzobEKx52x9IKVS42lDfjO8fEd2dtM/nuguM+1SCg=="
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Magma.Transport.Tcp/packages.lock.json b/src/Magma.Transport.Tcp/packages.lock.json
new file mode 100644
index 0000000..bafa480
--- /dev/null
+++ b/src/Magma.Transport.Tcp/packages.lock.json
@@ -0,0 +1,127 @@
+{
+ "version": 1,
+ "dependencies": {
+ "net10.0": {
+ "Microsoft.AspNetCore.Hosting.Abstractions": {
+ "type": "Direct",
+ "requested": "[2.1.0-rc1-final, )",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "ZS9+q2D4gDRy9egkX5iOAztWYtOcmMbuPpGh3Vh2ayDgZ0qnOF4n/BYN+kZgCWE+KtLeunAwmXspNj7aHXJYgw==",
+ "dependencies": {
+ "Microsoft.AspNetCore.Hosting.Server.Abstractions": "2.1.0-rc1-final",
+ "Microsoft.AspNetCore.Http.Abstractions": "2.1.0-rc1-final",
+ "Microsoft.Extensions.Hosting.Abstractions": "2.1.0-rc1-final"
+ }
+ },
+ "Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions": {
+ "type": "Direct",
+ "requested": "[2.1.0-rc1-final, )",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "OJ53lhivBAjVmNMWiwB8hiXZ6IW8xKlhkWAG8gHTWruCaH4ofqIK1HjVcFgsf1Olu4/sc2jGGBmMWMSoTb5e1A==",
+ "dependencies": {
+ "Microsoft.AspNetCore.Connections.Abstractions": "2.1.0-rc1-final"
+ }
+ },
+ "Microsoft.Extensions.Options": {
+ "type": "Direct",
+ "requested": "[2.1.0-rc1-final, )",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "uRkR6l93U/2FVlijdHfdb8NafesLr46dB1RkHtgt8p+lVPy6MspXxvbftEPKFSlT9uT0wWlGw8FEyZSQsex23w==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.0-rc1-final",
+ "Microsoft.Extensions.Primitives": "2.1.0-rc1-final"
+ }
+ },
+ "Microsoft.AspNetCore.Connections.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "1eE+Hml8yITBaNO+5P2f5G8FIN/lX+FOfdw2SrgNLfSlg0inlmSKHqwDz6OzrsK2Pqu4RHWd/v9P6FLfLiaeQA==",
+ "dependencies": {
+ "Microsoft.AspNetCore.Http.Features": "2.1.0-rc1-final"
+ }
+ },
+ "Microsoft.AspNetCore.Hosting.Server.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "9zEHPWJduVTLanNVRuptCB2zrhY1D7/n6vgdPypmRtq3eR51fgfYyDsalZXQeFNOsKdVaD4PuSEP3DiLed8bYg==",
+ "dependencies": {
+ "Microsoft.AspNetCore.Http.Features": "2.1.0-rc1-final",
+ "Microsoft.Extensions.Configuration.Abstractions": "2.1.0-rc1-final"
+ }
+ },
+ "Microsoft.AspNetCore.Http.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "k8rteCcVexd8yh5DLi4Vo4UU3vyQpHP43d13jalWixImsHSgvDjkjuOUE8MK9oTlHd9utSsl8Vyeh1v2vABVvg==",
+ "dependencies": {
+ "Microsoft.AspNetCore.Http.Features": "2.1.0-rc1-final"
+ }
+ },
+ "Microsoft.AspNetCore.Http.Features": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "BwPSAufLsQjTyeGhm//f+GXhV9s68dJRPGIPy0tH5vPgRiTxMxTOqhi3ReJOR9fYnLkf1zxf/dLEly4INk1+dg==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "2.1.0-rc1-final"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "U0Q+2iXLHmLrYNl0afYa/Co0J8E/q5E81n3InSa8D8w25OiqOU5ETaOT4/ridVtHTNTcGao34LtMWTnOl/Ly+A==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "2.1.0-rc1-final"
+ }
+ },
+ "Microsoft.Extensions.DependencyInjection.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "WDSDj1JvNlBYfGyU+4TwDrN7LhJX15RmTnTeH5nVOvDOpju17vqx39yChgXeEAwm9kVwCXrRvs5RQWGVLd1cuw=="
+ },
+ "Microsoft.Extensions.FileProviders.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "o4C2e7UUiwAUtNrF+itJKBKNSVGXEE4i3tCtkK2oLk1/CJ88hnEHU+A299NKpUloMbsXH4Z+29lPUbNsKHoeTw==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "2.1.0-rc1-final"
+ }
+ },
+ "Microsoft.Extensions.Hosting.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "G+UwVxCWW8p6aEQy5iPt1gt4H4L+LbXyOGVXMZwOVE03KJpg6IxBFd7VkgEsnVhXsjuGdCV0m/76MnJuTMvs+w==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "2.1.0-rc1-final",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.0-rc1-final",
+ "Microsoft.Extensions.FileProviders.Abstractions": "2.1.0-rc1-final",
+ "Microsoft.Extensions.Logging.Abstractions": "2.1.0-rc1-final"
+ }
+ },
+ "Microsoft.Extensions.Logging.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "wbv9lUGJPJ+nKMyHWBiImSI99n70nynYW+lKQhUa8fJTr3G2sNUaN12uXh3+riNwnNX+YJldhdo38v8s6N8ZSA=="
+ },
+ "Microsoft.Extensions.Primitives": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "UR92OPDCSSBckjDELE1ZOzioml4jrMTYo2LmP3d+HhY56GeS6gwVwTNTxMb3VL1KXKzkYzdbQSo3xVwN6z9Ogg=="
+ },
+ "magma.common": {
+ "type": "Project"
+ },
+ "magma.internet.ip": {
+ "type": "Project",
+ "dependencies": {
+ "Magma.Common": "[1.0.0, )"
+ }
+ },
+ "magma.link": {
+ "type": "Project"
+ },
+ "magma.network.abstractions": {
+ "type": "Project"
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Magma.Transport.Udp/packages.lock.json b/src/Magma.Transport.Udp/packages.lock.json
new file mode 100644
index 0000000..337863d
--- /dev/null
+++ b/src/Magma.Transport.Udp/packages.lock.json
@@ -0,0 +1,6 @@
+{
+ "version": 1,
+ "dependencies": {
+ "net10.0": {}
+ }
+}
\ No newline at end of file
diff --git a/src/Magma.WinTun/packages.lock.json b/src/Magma.WinTun/packages.lock.json
new file mode 100644
index 0000000..1bb474d
--- /dev/null
+++ b/src/Magma.WinTun/packages.lock.json
@@ -0,0 +1,333 @@
+{
+ "version": 1,
+ "dependencies": {
+ "net10.0": {
+ "Microsoft.Windows.Compatibility": {
+ "type": "Direct",
+ "requested": "[2.0.0, )",
+ "resolved": "2.0.0",
+ "contentHash": "grF6lUwE8U9iclB4KfNhQXwPxqxWK13ivOPTxJ3ebjWlPlmy4DVPjKoqM4tz30gQ+B1TAe5uHW25/EhefuWKuw==",
+ "dependencies": {
+ "Microsoft.Win32.Registry.AccessControl": "4.5.0",
+ "Microsoft.Win32.SystemEvents": "4.5.0",
+ "Microsoft.Windows.Compatibility.Shims": "2.0.0",
+ "System.CodeDom": "4.5.0",
+ "System.ComponentModel.Composition": "4.5.0",
+ "System.Configuration.ConfigurationManager": "4.5.0",
+ "System.Data.DataSetExtensions": "4.5.0",
+ "System.Data.Odbc": "4.5.0",
+ "System.Data.SqlClient": "4.5.0",
+ "System.Diagnostics.EventLog": "4.5.0",
+ "System.Diagnostics.PerformanceCounter": "4.5.0",
+ "System.DirectoryServices": "4.5.0",
+ "System.DirectoryServices.AccountManagement": "4.5.0",
+ "System.DirectoryServices.Protocols": "4.5.0",
+ "System.Drawing.Common": "4.5.0",
+ "System.IO.FileSystem.AccessControl": "4.5.0",
+ "System.IO.Packaging": "4.5.0",
+ "System.IO.Ports": "4.5.0",
+ "System.Management": "4.5.0",
+ "System.Runtime.Caching": "4.5.0",
+ "System.Security.Cryptography.Pkcs": "4.5.0",
+ "System.Security.Cryptography.ProtectedData": "4.5.0",
+ "System.Security.Cryptography.Xml": "4.5.0",
+ "System.Security.Permissions": "4.5.0",
+ "System.ServiceModel.Duplex": "4.4.1",
+ "System.ServiceModel.Http": "4.4.1",
+ "System.ServiceModel.NetTcp": "4.4.1",
+ "System.ServiceModel.Primitives": "4.4.1",
+ "System.ServiceModel.Security": "4.4.1",
+ "System.ServiceModel.Syndication": "4.5.0",
+ "System.ServiceProcess.ServiceController": "4.5.0"
+ }
+ },
+ "Microsoft.NETCore.Platforms": {
+ "type": "Transitive",
+ "resolved": "2.0.0",
+ "contentHash": "VdLJOCXhZaEMY7Hm2GKiULmn7IEPFE4XC5LPSfBVCUIA8YLZVh846gtfBJalsPQF2PlzdD7ecX7DZEulJ402ZQ=="
+ },
+ "Microsoft.Win32.Registry.AccessControl": {
+ "type": "Transitive",
+ "resolved": "4.5.0",
+ "contentHash": "f2aT8NLc9DsB1VEaM4jlYF9DFLA12+ccmWzWA0HEVC3Vgac7tGLSgrU6jtUG+VO1/R5zA6AomQ2pKqJ+5SDWyQ=="
+ },
+ "Microsoft.Win32.SystemEvents": {
+ "type": "Transitive",
+ "resolved": "4.5.0",
+ "contentHash": "LuI1oG+24TUj1ZRQQjM5Ew73BKnZE5NZ/7eAdh1o8ST5dPhUnJvIkiIn2re3MwnkRy6ELRnvEbBxHP8uALKhJw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "2.0.0"
+ }
+ },
+ "Microsoft.Windows.Compatibility.Shims": {
+ "type": "Transitive",
+ "resolved": "2.0.0",
+ "contentHash": "jDrm39dTk/JpeiPjXWVquPfLOIBYG8N1q4mQcppYaWuFu15p/+h6/dNKg/NJpWAbVZpFOqBGH/Di1Xbz8hiynQ=="
+ },
+ "runtime.native.System.Data.SqlClient.sni": {
+ "type": "Transitive",
+ "resolved": "4.4.0",
+ "contentHash": "A8v6PGmk+UGbfWo5Ixup0lPM4swuSwOiayJExZwKIOjTlFFQIsu3QnDXECosBEyrWSPryxBVrdqtJyhK3BaupQ==",
+ "dependencies": {
+ "runtime.win-arm64.runtime.native.System.Data.SqlClient.sni": "4.4.0",
+ "runtime.win-x64.runtime.native.System.Data.SqlClient.sni": "4.4.0",
+ "runtime.win-x86.runtime.native.System.Data.SqlClient.sni": "4.4.0"
+ }
+ },
+ "runtime.win-arm64.runtime.native.System.Data.SqlClient.sni": {
+ "type": "Transitive",
+ "resolved": "4.4.0",
+ "contentHash": "LbrynESTp3bm5O/+jGL8v0Qg5SJlTV08lpIpFesXjF6uGNMWqFnUQbYBJwZTeua6E/Y7FIM1C54Ey1btLWupdg=="
+ },
+ "runtime.win-x64.runtime.native.System.Data.SqlClient.sni": {
+ "type": "Transitive",
+ "resolved": "4.4.0",
+ "contentHash": "38ugOfkYJqJoX9g6EYRlZB5U2ZJH51UP8ptxZgdpS07FgOEToV+lS11ouNK2PM12Pr6X/PpT5jK82G3DwH/SxQ=="
+ },
+ "runtime.win-x86.runtime.native.System.Data.SqlClient.sni": {
+ "type": "Transitive",
+ "resolved": "4.4.0",
+ "contentHash": "YhEdSQUsTx+C8m8Bw7ar5/VesXvCFMItyZF7G1AUY+OM0VPZUOeAVpJ4Wl6fydBGUYZxojTDR3I6Bj/+BPkJNA=="
+ },
+ "System.CodeDom": {
+ "type": "Transitive",
+ "resolved": "4.5.0",
+ "contentHash": "gqpR1EeXOuzNQWL7rOzmtdIz3CaXVjSQCiaGOs2ivjPwynKSJYm39X81fdlp7WuojZs/Z5t1k5ni7HtKQurhjw=="
+ },
+ "System.ComponentModel.Composition": {
+ "type": "Transitive",
+ "resolved": "4.5.0",
+ "contentHash": "+iB9FoZnfdqMEGq6np28X6YNSUrse16CakmIhV3h6PxEWt7jYxUN3Txs1D8MZhhf4QmyvK0F/EcIN0f4gGN0dA==",
+ "dependencies": {
+ "System.Security.Permissions": "4.5.0"
+ }
+ },
+ "System.Configuration.ConfigurationManager": {
+ "type": "Transitive",
+ "resolved": "4.5.0",
+ "contentHash": "UIFvaFfuKhLr9u5tWMxmVoDPkFeD+Qv8gUuap4aZgVGYSYMdERck4OhLN/2gulAc0nYTEigWXSJNNWshrmxnng==",
+ "dependencies": {
+ "System.Security.Cryptography.ProtectedData": "4.5.0",
+ "System.Security.Permissions": "4.5.0"
+ }
+ },
+ "System.Data.DataSetExtensions": {
+ "type": "Transitive",
+ "resolved": "4.5.0",
+ "contentHash": "221clPs1445HkTBZPL+K9sDBdJRB8UN8rgjO3ztB0CQ26z//fmJXtlsr6whGatscsKGBrhJl5bwJuKSA8mwFOw=="
+ },
+ "System.Data.Odbc": {
+ "type": "Transitive",
+ "resolved": "4.5.0",
+ "contentHash": "9FEiWrYDNt/5KrqWr2V8eK3lgE61uhx0VV3mPwRCD6MBm1zurGd46LV87RsligKlThbHPpvLkIQnQ0Xv0YZLCg=="
+ },
+ "System.Data.SqlClient": {
+ "type": "Transitive",
+ "resolved": "4.5.0",
+ "contentHash": "7xeDd8j7T/j2/OWsbVCx1QmCaHf2AnML0FXslTeo4My3F9tAcdSzrnrLdIi49bzNazHykQIfyU5nb3+jmE/CoQ==",
+ "dependencies": {
+ "runtime.native.System.Data.SqlClient.sni": "4.4.0"
+ }
+ },
+ "System.Diagnostics.EventLog": {
+ "type": "Transitive",
+ "resolved": "4.5.0",
+ "contentHash": "QaQAhEk18QSBPSu4VjXcznvjlg45IoXcJJNS5hcoqyyLj58g/SzQwpYXUrdzo+UtHV0grmOzFwABxhCYSTTp5Q==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "2.0.0",
+ "System.Security.Permissions": "4.5.0"
+ }
+ },
+ "System.Diagnostics.PerformanceCounter": {
+ "type": "Transitive",
+ "resolved": "4.5.0",
+ "contentHash": "JUO5/moXgchWZBMBElgmPebZPKCgwW8kY3dFwVJavaNR2ftcc/YjXXGjOaCjly2KBXT7Ld5l/GTkMVzNv41yZA==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "2.0.0",
+ "System.Configuration.ConfigurationManager": "4.5.0"
+ }
+ },
+ "System.DirectoryServices": {
+ "type": "Transitive",
+ "resolved": "4.5.0",
+ "contentHash": "6Uty9sMaeBG0/GIRTW4+DUTvuB/od5E6rY45JbEz1c2xMoPSA9GLov4KdiBEpjsEcsgORa6sC3vfh70tEJJaOw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "2.0.0",
+ "System.IO.FileSystem.AccessControl": "4.5.0"
+ }
+ },
+ "System.DirectoryServices.AccountManagement": {
+ "type": "Transitive",
+ "resolved": "4.5.0",
+ "contentHash": "m9Blc7UXAVMG60+CWhC9KC4y+4azuiHu3QOvII27BYfV8TDmaay6smZrrx1u7DhfJ4Gjt14eKzj8VO2aR9/aBw==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "2.0.0",
+ "System.Configuration.ConfigurationManager": "4.5.0",
+ "System.DirectoryServices": "4.5.0",
+ "System.DirectoryServices.Protocols": "4.5.0",
+ "System.IO.FileSystem.AccessControl": "4.5.0"
+ }
+ },
+ "System.DirectoryServices.Protocols": {
+ "type": "Transitive",
+ "resolved": "4.5.0",
+ "contentHash": "EpWC9CW2GdFiWzhWEIcXX8tMPGRdrpL+1BI4WyBYG4G1TlOuMXO3bpyLydEo5/3ThDFPzWfp0Yp0u360dGwvJQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "2.0.0"
+ }
+ },
+ "System.Drawing.Common": {
+ "type": "Transitive",
+ "resolved": "4.5.0",
+ "contentHash": "AiJFxxVPdeITstiRS5aAu8+8Dpf5NawTMoapZ53Gfirml24p7HIfhjmCRxdXnmmf3IUA3AX3CcW7G73CjWxW/Q==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "2.0.0",
+ "Microsoft.Win32.SystemEvents": "4.5.0"
+ }
+ },
+ "System.IO.FileSystem.AccessControl": {
+ "type": "Transitive",
+ "resolved": "4.5.0",
+ "contentHash": "TYe6xstoqT5MlTly0OtPU6u9zWuNScLVMEx6sTCjjx+Hqdp0wCXoG6fnzMpTPMQACXQzi9pd2N5Tloow+5jQdQ=="
+ },
+ "System.IO.Packaging": {
+ "type": "Transitive",
+ "resolved": "4.5.0",
+ "contentHash": "OjtW5pGp1E7KE3ontBrzy+nSFJCM6pcbVDdo3gg4DauTfdtZKdeKvMVlADF4fSY+OfXWUp4qCvOSxIltt37LbA=="
+ },
+ "System.IO.Ports": {
+ "type": "Transitive",
+ "resolved": "4.5.0",
+ "contentHash": "7bd6tcZZbTeNKOLUm2KZboJug0VRP8IW7HEC/zuILEO1THGXrHWhskIYtfiKOeCEEfqskK34MeVO6zWjr2Vlpw=="
+ },
+ "System.Management": {
+ "type": "Transitive",
+ "resolved": "4.5.0",
+ "contentHash": "Z6ac0qPGr3yJtwZEX1SRkhwWa0Kf5NJxx7smLboYsGrApQFECNFdqhGy252T4lrZ5Nwzhd9VQiaifndR3bfHdg==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "2.0.0",
+ "System.CodeDom": "4.5.0"
+ }
+ },
+ "System.Net.Http.WinHttpHandler": {
+ "type": "Transitive",
+ "resolved": "4.4.0",
+ "contentHash": "ZmsFZIZ4PL2UfUlfj4KCzzAGGE2SF39ENIqtvfgu0bwMEAe3J3CqZr765E2W6eQQtNK08/8DpHcsA0sAKZdEtA=="
+ },
+ "System.Private.ServiceModel": {
+ "type": "Transitive",
+ "resolved": "4.4.1",
+ "contentHash": "EG5r4+WK/WpGqdeib+/Qb3tgBmpzqxcaYOfG2EdWkHeR98xaOaiKOx+U2f76ERCW+snmorf7vlV+5XwQ5VLJoQ==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "2.0.0",
+ "System.Net.Http.WinHttpHandler": "4.4.0"
+ }
+ },
+ "System.Runtime.Caching": {
+ "type": "Transitive",
+ "resolved": "4.5.0",
+ "contentHash": "95j9KShuaAENf2gLbQ/9YoJDHIWAnoaFYA71xo4QVQyLkOMginn34cD1+6RcYIrqJamLkMXgvgUnOzwzBk+U0w==",
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "2.0.0",
+ "System.Configuration.ConfigurationManager": "4.5.0"
+ }
+ },
+ "System.Security.Cryptography.Pkcs": {
+ "type": "Transitive",
+ "resolved": "4.5.0",
+ "contentHash": "TGQX51gxpY3K3I6LJlE2LAftVlIMqJf0cBGhz68Y89jjk3LJCB6SrwiD+YN1fkqemBvWGs+GjyMJukl6d6goyQ=="
+ },
+ "System.Security.Cryptography.ProtectedData": {
+ "type": "Transitive",
+ "resolved": "4.5.0",
+ "contentHash": "wLBKzFnDCxP12VL9ANydSYhk59fC4cvOr9ypYQLPnAj48NQIhqnjdD2yhP8yEKyBJEjERWS9DisKL7rX5eU25Q=="
+ },
+ "System.Security.Cryptography.Xml": {
+ "type": "Transitive",
+ "resolved": "4.5.0",
+ "contentHash": "i2Jn6rGXR63J0zIklImGRkDIJL4b1NfPSEbIVHBlqoIb12lfXIigCbDRpDmIEzwSo/v1U5y/rYJdzZYSyCWxvg==",
+ "dependencies": {
+ "System.Security.Cryptography.Pkcs": "4.5.0",
+ "System.Security.Permissions": "4.5.0"
+ }
+ },
+ "System.Security.Permissions": {
+ "type": "Transitive",
+ "resolved": "4.5.0",
+ "contentHash": "9gdyuARhUR7H+p5CjyUB/zPk7/Xut3wUSP8NJQB6iZr8L3XUXTMdoLeVAg9N4rqF8oIpE7MpdqHdDHQ7XgJe0g=="
+ },
+ "System.ServiceModel.Duplex": {
+ "type": "Transitive",
+ "resolved": "4.4.1",
+ "contentHash": "yqoKih7MgUgLPdoA0nspo6u0YTQuj55jPlzyCwRWNWQfCe2hgVmKT6/N8BWiBeuf8zLs9gDKFj+eZLKJMD+pTA==",
+ "dependencies": {
+ "System.Private.ServiceModel": "4.4.1",
+ "System.ServiceModel.Primitives": "4.4.1"
+ }
+ },
+ "System.ServiceModel.Http": {
+ "type": "Transitive",
+ "resolved": "4.4.1",
+ "contentHash": "i/ji0BRTGRACR/NegTMvgsOh2bA1FnHzLVgNBOz4Xxxwovd3z3pE+YKKtkrxE3MNm00pf30HW13CHf7i2VzBQA==",
+ "dependencies": {
+ "System.Private.ServiceModel": "4.4.1",
+ "System.ServiceModel.Primitives": "4.4.1"
+ }
+ },
+ "System.ServiceModel.NetTcp": {
+ "type": "Transitive",
+ "resolved": "4.4.1",
+ "contentHash": "MzPX/s4x1IVV327kvXu1XWPUUOHjGqEScOcaTGUzxWJ0VGyPX6Tbe85re4/nlPdRyfetsCChmmUuKylnrbJ1Jw==",
+ "dependencies": {
+ "System.Private.ServiceModel": "4.4.1",
+ "System.ServiceModel.Primitives": "4.4.1"
+ }
+ },
+ "System.ServiceModel.Primitives": {
+ "type": "Transitive",
+ "resolved": "4.4.1",
+ "contentHash": "vp7zTf2xEq8shjlT6IZj0nkmIl+3eoPVrxrFtMS14ldFyDHqe9KB6YNOc6oirkg0udPnF5tSpxlrtTqANDGoMQ==",
+ "dependencies": {
+ "System.Private.ServiceModel": "4.4.1"
+ }
+ },
+ "System.ServiceModel.Security": {
+ "type": "Transitive",
+ "resolved": "4.4.1",
+ "contentHash": "BKb4d8SyRjQ9pKEbcUch+UKK1AbHzxlU9klpym2WNbZkKOK10B/j9PGrYRrg+36jxt8SdO9FolIRlzP/N/e0IA==",
+ "dependencies": {
+ "System.Private.ServiceModel": "4.4.1",
+ "System.ServiceModel.Primitives": "4.4.1"
+ }
+ },
+ "System.ServiceModel.Syndication": {
+ "type": "Transitive",
+ "resolved": "4.5.0",
+ "contentHash": "Tm3vhsv0PnrU7avYEP6vSQiqr+Dhe7N8NPbnInWMhSSmIMmutyfSg349pqnv0JboK3l/9eHNiX4KD5NMUsvhmQ=="
+ },
+ "System.ServiceProcess.ServiceController": {
+ "type": "Transitive",
+ "resolved": "4.5.0",
+ "contentHash": "8DGUtcNHf9TlvSVemKMFiqcOWJ4OdGBgvpcGL/cYossGf5ApMQdPUQS8vXHTBmlbYAcG+JXsjMFGAHp2oJrr+Q==",
+ "dependencies": {
+ "System.Diagnostics.EventLog": "4.5.0"
+ }
+ },
+ "magma.common": {
+ "type": "Project"
+ },
+ "magma.internet.ip": {
+ "type": "Project",
+ "dependencies": {
+ "Magma.Common": "[1.0.0, )"
+ }
+ },
+ "magma.link": {
+ "type": "Project"
+ },
+ "magma.network.abstractions": {
+ "type": "Project"
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/test/Magma.Common.Facts/packages.lock.json b/test/Magma.Common.Facts/packages.lock.json
new file mode 100644
index 0000000..3646dc3
--- /dev/null
+++ b/test/Magma.Common.Facts/packages.lock.json
@@ -0,0 +1,107 @@
+{
+ "version": 1,
+ "dependencies": {
+ "net10.0": {
+ "Microsoft.NET.Test.Sdk": {
+ "type": "Direct",
+ "requested": "[17.12.0, )",
+ "resolved": "17.12.0",
+ "contentHash": "kt/PKBZ91rFCWxVIJZSgVLk+YR+4KxTuHf799ho8WNiK5ZQpJNAEZCAWX86vcKrs+DiYjiibpYKdGZP6+/N17w==",
+ "dependencies": {
+ "Microsoft.CodeCoverage": "17.12.0",
+ "Microsoft.TestPlatform.TestHost": "17.12.0"
+ }
+ },
+ "xunit": {
+ "type": "Direct",
+ "requested": "[2.6.6, )",
+ "resolved": "2.6.6",
+ "contentHash": "MAbOOMtZIKyn2lrAmMlvhX0BhDOX/smyrTB+8WTXnSKkrmTGBS2fm8g1PZtHBPj91Dc5DJA7fY+/81TJ/yUFZw==",
+ "dependencies": {
+ "xunit.analyzers": "1.10.0",
+ "xunit.assert": "2.6.6",
+ "xunit.core": "[2.6.6]"
+ }
+ },
+ "xunit.runner.visualstudio": {
+ "type": "Direct",
+ "requested": "[2.8.0, )",
+ "resolved": "2.8.0",
+ "contentHash": "mqQbS2zr8dfgSWxkNOC6UTzO8JoqpTmM5+FFn2XR/2nVmx2JvEY0YbM5pt2FmXVg9YVe+jKUPHd6KrroyCl67w=="
+ },
+ "Microsoft.CodeCoverage": {
+ "type": "Transitive",
+ "resolved": "17.12.0",
+ "contentHash": "4svMznBd5JM21JIG2xZKGNanAHNXplxf/kQDFfLHXQ3OnpJkayRK/TjacFjA+EYmoyuNXHo/sOETEfcYtAzIrA=="
+ },
+ "Microsoft.TestPlatform.ObjectModel": {
+ "type": "Transitive",
+ "resolved": "17.12.0",
+ "contentHash": "TDqkTKLfQuAaPcEb3pDDWnh7b3SyZF+/W9OZvWFp6eJCIiiYFdSB6taE2I6tWrFw5ywhzOb6sreoGJTI6m3rSQ=="
+ },
+ "Microsoft.TestPlatform.TestHost": {
+ "type": "Transitive",
+ "resolved": "17.12.0",
+ "contentHash": "MiPEJQNyADfwZ4pJNpQex+t9/jOClBGMiCiVVFuELCMSX2nmNfvUor3uFVxNNCg30uxDP8JDYfPnMXQzsfzYyg==",
+ "dependencies": {
+ "Microsoft.TestPlatform.ObjectModel": "17.12.0",
+ "Newtonsoft.Json": "13.0.1"
+ }
+ },
+ "Newtonsoft.Json": {
+ "type": "Transitive",
+ "resolved": "13.0.1",
+ "contentHash": "ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A=="
+ },
+ "xunit.abstractions": {
+ "type": "Transitive",
+ "resolved": "2.0.3",
+ "contentHash": "pot1I4YOxlWjIb5jmwvvQNbTrZ3lJQ+jUGkGjWE3hEFM0l5gOnBWS+H3qsex68s5cO52g+44vpGzhAt+42vwKg=="
+ },
+ "xunit.analyzers": {
+ "type": "Transitive",
+ "resolved": "1.10.0",
+ "contentHash": "Lw8CiDy5NaAWcO6keqD7iZHYUTIuCOcoFrUHw5Sv84ITZ9gFeDybdkVdH0Y2maSlP9fUjtENyiykT44zwFQIHA=="
+ },
+ "xunit.assert": {
+ "type": "Transitive",
+ "resolved": "2.6.6",
+ "contentHash": "74Cm9lAZOk5TKCz2MvCBCByKsS23yryOKDIMxH3XRDHXmfGM02jKZWzRA7g4mGB41GnBnv/pcWP3vUYkrCtEcg=="
+ },
+ "xunit.core": {
+ "type": "Transitive",
+ "resolved": "2.6.6",
+ "contentHash": "tqi7RfaNBqM7t8zx6QHryuBPzmotsZXKGaWnopQG2Ez5UV7JoWuyoNdT6gLpDIcKdGYey6YTXJdSr9IXDMKwjg==",
+ "dependencies": {
+ "xunit.extensibility.core": "[2.6.6]",
+ "xunit.extensibility.execution": "[2.6.6]"
+ }
+ },
+ "xunit.extensibility.core": {
+ "type": "Transitive",
+ "resolved": "2.6.6",
+ "contentHash": "ty6VKByzbx4Toj4/VGJLEnlmOawqZiMv0in/tLju+ftA+lbWuAWDERM+E52Jfhj4ZYHrAYVa14KHK5T+dq0XxA==",
+ "dependencies": {
+ "xunit.abstractions": "2.0.3"
+ }
+ },
+ "xunit.extensibility.execution": {
+ "type": "Transitive",
+ "resolved": "2.6.6",
+ "contentHash": "UDjIVGj2TepVKN3n32/qXIdb3U6STwTb9L6YEwoQO2A8OxiJS5QAVv2l1aT6tDwwv/9WBmm8Khh/LyHALipcng==",
+ "dependencies": {
+ "xunit.extensibility.core": "[2.6.6]"
+ }
+ },
+ "magma.common": {
+ "type": "Project"
+ },
+ "magma.internet.icmp": {
+ "type": "Project",
+ "dependencies": {
+ "Magma.Common": "[1.0.0, )"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/test/Magma.Internet.Ip.Facts/packages.lock.json b/test/Magma.Internet.Ip.Facts/packages.lock.json
new file mode 100644
index 0000000..a49b91f
--- /dev/null
+++ b/test/Magma.Internet.Ip.Facts/packages.lock.json
@@ -0,0 +1,227 @@
+{
+ "version": 1,
+ "dependencies": {
+ "net10.0": {
+ "Microsoft.NET.Test.Sdk": {
+ "type": "Direct",
+ "requested": "[17.12.0, )",
+ "resolved": "17.12.0",
+ "contentHash": "kt/PKBZ91rFCWxVIJZSgVLk+YR+4KxTuHf799ho8WNiK5ZQpJNAEZCAWX86vcKrs+DiYjiibpYKdGZP6+/N17w==",
+ "dependencies": {
+ "Microsoft.CodeCoverage": "17.12.0",
+ "Microsoft.TestPlatform.TestHost": "17.12.0"
+ }
+ },
+ "xunit": {
+ "type": "Direct",
+ "requested": "[2.6.6, )",
+ "resolved": "2.6.6",
+ "contentHash": "MAbOOMtZIKyn2lrAmMlvhX0BhDOX/smyrTB+8WTXnSKkrmTGBS2fm8g1PZtHBPj91Dc5DJA7fY+/81TJ/yUFZw==",
+ "dependencies": {
+ "xunit.analyzers": "1.10.0",
+ "xunit.assert": "2.6.6",
+ "xunit.core": "[2.6.6]"
+ }
+ },
+ "xunit.runner.visualstudio": {
+ "type": "Direct",
+ "requested": "[2.8.0, )",
+ "resolved": "2.8.0",
+ "contentHash": "mqQbS2zr8dfgSWxkNOC6UTzO8JoqpTmM5+FFn2XR/2nVmx2JvEY0YbM5pt2FmXVg9YVe+jKUPHd6KrroyCl67w=="
+ },
+ "Microsoft.AspNetCore.Connections.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "1eE+Hml8yITBaNO+5P2f5G8FIN/lX+FOfdw2SrgNLfSlg0inlmSKHqwDz6OzrsK2Pqu4RHWd/v9P6FLfLiaeQA==",
+ "dependencies": {
+ "Microsoft.AspNetCore.Http.Features": "2.1.0-rc1-final"
+ }
+ },
+ "Microsoft.AspNetCore.Hosting.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "ZS9+q2D4gDRy9egkX5iOAztWYtOcmMbuPpGh3Vh2ayDgZ0qnOF4n/BYN+kZgCWE+KtLeunAwmXspNj7aHXJYgw==",
+ "dependencies": {
+ "Microsoft.AspNetCore.Hosting.Server.Abstractions": "2.1.0-rc1-final",
+ "Microsoft.AspNetCore.Http.Abstractions": "2.1.0-rc1-final",
+ "Microsoft.Extensions.Hosting.Abstractions": "2.1.0-rc1-final"
+ }
+ },
+ "Microsoft.AspNetCore.Hosting.Server.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "9zEHPWJduVTLanNVRuptCB2zrhY1D7/n6vgdPypmRtq3eR51fgfYyDsalZXQeFNOsKdVaD4PuSEP3DiLed8bYg==",
+ "dependencies": {
+ "Microsoft.AspNetCore.Http.Features": "2.1.0-rc1-final",
+ "Microsoft.Extensions.Configuration.Abstractions": "2.1.0-rc1-final"
+ }
+ },
+ "Microsoft.AspNetCore.Http.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "k8rteCcVexd8yh5DLi4Vo4UU3vyQpHP43d13jalWixImsHSgvDjkjuOUE8MK9oTlHd9utSsl8Vyeh1v2vABVvg==",
+ "dependencies": {
+ "Microsoft.AspNetCore.Http.Features": "2.1.0-rc1-final"
+ }
+ },
+ "Microsoft.AspNetCore.Http.Features": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "BwPSAufLsQjTyeGhm//f+GXhV9s68dJRPGIPy0tH5vPgRiTxMxTOqhi3ReJOR9fYnLkf1zxf/dLEly4INk1+dg==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "2.1.0-rc1-final"
+ }
+ },
+ "Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "OJ53lhivBAjVmNMWiwB8hiXZ6IW8xKlhkWAG8gHTWruCaH4ofqIK1HjVcFgsf1Olu4/sc2jGGBmMWMSoTb5e1A==",
+ "dependencies": {
+ "Microsoft.AspNetCore.Connections.Abstractions": "2.1.0-rc1-final"
+ }
+ },
+ "Microsoft.CodeCoverage": {
+ "type": "Transitive",
+ "resolved": "17.12.0",
+ "contentHash": "4svMznBd5JM21JIG2xZKGNanAHNXplxf/kQDFfLHXQ3OnpJkayRK/TjacFjA+EYmoyuNXHo/sOETEfcYtAzIrA=="
+ },
+ "Microsoft.Extensions.Configuration.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "U0Q+2iXLHmLrYNl0afYa/Co0J8E/q5E81n3InSa8D8w25OiqOU5ETaOT4/ridVtHTNTcGao34LtMWTnOl/Ly+A==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "2.1.0-rc1-final"
+ }
+ },
+ "Microsoft.Extensions.DependencyInjection.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "WDSDj1JvNlBYfGyU+4TwDrN7LhJX15RmTnTeH5nVOvDOpju17vqx39yChgXeEAwm9kVwCXrRvs5RQWGVLd1cuw=="
+ },
+ "Microsoft.Extensions.FileProviders.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "o4C2e7UUiwAUtNrF+itJKBKNSVGXEE4i3tCtkK2oLk1/CJ88hnEHU+A299NKpUloMbsXH4Z+29lPUbNsKHoeTw==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "2.1.0-rc1-final"
+ }
+ },
+ "Microsoft.Extensions.Hosting.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "G+UwVxCWW8p6aEQy5iPt1gt4H4L+LbXyOGVXMZwOVE03KJpg6IxBFd7VkgEsnVhXsjuGdCV0m/76MnJuTMvs+w==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "2.1.0-rc1-final",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.0-rc1-final",
+ "Microsoft.Extensions.FileProviders.Abstractions": "2.1.0-rc1-final",
+ "Microsoft.Extensions.Logging.Abstractions": "2.1.0-rc1-final"
+ }
+ },
+ "Microsoft.Extensions.Logging.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "wbv9lUGJPJ+nKMyHWBiImSI99n70nynYW+lKQhUa8fJTr3G2sNUaN12uXh3+riNwnNX+YJldhdo38v8s6N8ZSA=="
+ },
+ "Microsoft.Extensions.Options": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "uRkR6l93U/2FVlijdHfdb8NafesLr46dB1RkHtgt8p+lVPy6MspXxvbftEPKFSlT9uT0wWlGw8FEyZSQsex23w==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.0-rc1-final",
+ "Microsoft.Extensions.Primitives": "2.1.0-rc1-final"
+ }
+ },
+ "Microsoft.Extensions.Primitives": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "UR92OPDCSSBckjDELE1ZOzioml4jrMTYo2LmP3d+HhY56GeS6gwVwTNTxMb3VL1KXKzkYzdbQSo3xVwN6z9Ogg=="
+ },
+ "Microsoft.TestPlatform.ObjectModel": {
+ "type": "Transitive",
+ "resolved": "17.12.0",
+ "contentHash": "TDqkTKLfQuAaPcEb3pDDWnh7b3SyZF+/W9OZvWFp6eJCIiiYFdSB6taE2I6tWrFw5ywhzOb6sreoGJTI6m3rSQ=="
+ },
+ "Microsoft.TestPlatform.TestHost": {
+ "type": "Transitive",
+ "resolved": "17.12.0",
+ "contentHash": "MiPEJQNyADfwZ4pJNpQex+t9/jOClBGMiCiVVFuELCMSX2nmNfvUor3uFVxNNCg30uxDP8JDYfPnMXQzsfzYyg==",
+ "dependencies": {
+ "Microsoft.TestPlatform.ObjectModel": "17.12.0",
+ "Newtonsoft.Json": "13.0.1"
+ }
+ },
+ "Newtonsoft.Json": {
+ "type": "Transitive",
+ "resolved": "13.0.1",
+ "contentHash": "ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A=="
+ },
+ "xunit.abstractions": {
+ "type": "Transitive",
+ "resolved": "2.0.3",
+ "contentHash": "pot1I4YOxlWjIb5jmwvvQNbTrZ3lJQ+jUGkGjWE3hEFM0l5gOnBWS+H3qsex68s5cO52g+44vpGzhAt+42vwKg=="
+ },
+ "xunit.analyzers": {
+ "type": "Transitive",
+ "resolved": "1.10.0",
+ "contentHash": "Lw8CiDy5NaAWcO6keqD7iZHYUTIuCOcoFrUHw5Sv84ITZ9gFeDybdkVdH0Y2maSlP9fUjtENyiykT44zwFQIHA=="
+ },
+ "xunit.assert": {
+ "type": "Transitive",
+ "resolved": "2.6.6",
+ "contentHash": "74Cm9lAZOk5TKCz2MvCBCByKsS23yryOKDIMxH3XRDHXmfGM02jKZWzRA7g4mGB41GnBnv/pcWP3vUYkrCtEcg=="
+ },
+ "xunit.core": {
+ "type": "Transitive",
+ "resolved": "2.6.6",
+ "contentHash": "tqi7RfaNBqM7t8zx6QHryuBPzmotsZXKGaWnopQG2Ez5UV7JoWuyoNdT6gLpDIcKdGYey6YTXJdSr9IXDMKwjg==",
+ "dependencies": {
+ "xunit.extensibility.core": "[2.6.6]",
+ "xunit.extensibility.execution": "[2.6.6]"
+ }
+ },
+ "xunit.extensibility.core": {
+ "type": "Transitive",
+ "resolved": "2.6.6",
+ "contentHash": "ty6VKByzbx4Toj4/VGJLEnlmOawqZiMv0in/tLju+ftA+lbWuAWDERM+E52Jfhj4ZYHrAYVa14KHK5T+dq0XxA==",
+ "dependencies": {
+ "xunit.abstractions": "2.0.3"
+ }
+ },
+ "xunit.extensibility.execution": {
+ "type": "Transitive",
+ "resolved": "2.6.6",
+ "contentHash": "UDjIVGj2TepVKN3n32/qXIdb3U6STwTb9L6YEwoQO2A8OxiJS5QAVv2l1aT6tDwwv/9WBmm8Khh/LyHALipcng==",
+ "dependencies": {
+ "xunit.extensibility.core": "[2.6.6]"
+ }
+ },
+ "magma.common": {
+ "type": "Project"
+ },
+ "magma.internet.ip": {
+ "type": "Project",
+ "dependencies": {
+ "Magma.Common": "[1.0.0, )"
+ }
+ },
+ "magma.link": {
+ "type": "Project"
+ },
+ "magma.network.abstractions": {
+ "type": "Project"
+ },
+ "magma.transport.tcp": {
+ "type": "Project",
+ "dependencies": {
+ "Magma.Common": "[1.0.0, )",
+ "Magma.Internet.Ip": "[1.0.0, )",
+ "Magma.Link": "[1.0.0, )",
+ "Magma.Network.Abstractions": "[1.0.0, )",
+ "Microsoft.AspNetCore.Hosting.Abstractions": "[2.1.0-rc1-final, )",
+ "Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions": "[2.1.0-rc1-final, )",
+ "Microsoft.Extensions.Options": "[2.1.0-rc1-final, )"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/test/Magma.Link.Facts/packages.lock.json b/test/Magma.Link.Facts/packages.lock.json
new file mode 100644
index 0000000..4b972ea
--- /dev/null
+++ b/test/Magma.Link.Facts/packages.lock.json
@@ -0,0 +1,101 @@
+{
+ "version": 1,
+ "dependencies": {
+ "net10.0": {
+ "Microsoft.NET.Test.Sdk": {
+ "type": "Direct",
+ "requested": "[17.12.0, )",
+ "resolved": "17.12.0",
+ "contentHash": "kt/PKBZ91rFCWxVIJZSgVLk+YR+4KxTuHf799ho8WNiK5ZQpJNAEZCAWX86vcKrs+DiYjiibpYKdGZP6+/N17w==",
+ "dependencies": {
+ "Microsoft.CodeCoverage": "17.12.0",
+ "Microsoft.TestPlatform.TestHost": "17.12.0"
+ }
+ },
+ "xunit": {
+ "type": "Direct",
+ "requested": "[2.6.6, )",
+ "resolved": "2.6.6",
+ "contentHash": "MAbOOMtZIKyn2lrAmMlvhX0BhDOX/smyrTB+8WTXnSKkrmTGBS2fm8g1PZtHBPj91Dc5DJA7fY+/81TJ/yUFZw==",
+ "dependencies": {
+ "xunit.analyzers": "1.10.0",
+ "xunit.assert": "2.6.6",
+ "xunit.core": "[2.6.6]"
+ }
+ },
+ "xunit.runner.visualstudio": {
+ "type": "Direct",
+ "requested": "[2.8.0, )",
+ "resolved": "2.8.0",
+ "contentHash": "mqQbS2zr8dfgSWxkNOC6UTzO8JoqpTmM5+FFn2XR/2nVmx2JvEY0YbM5pt2FmXVg9YVe+jKUPHd6KrroyCl67w=="
+ },
+ "Microsoft.CodeCoverage": {
+ "type": "Transitive",
+ "resolved": "17.12.0",
+ "contentHash": "4svMznBd5JM21JIG2xZKGNanAHNXplxf/kQDFfLHXQ3OnpJkayRK/TjacFjA+EYmoyuNXHo/sOETEfcYtAzIrA=="
+ },
+ "Microsoft.TestPlatform.ObjectModel": {
+ "type": "Transitive",
+ "resolved": "17.12.0",
+ "contentHash": "TDqkTKLfQuAaPcEb3pDDWnh7b3SyZF+/W9OZvWFp6eJCIiiYFdSB6taE2I6tWrFw5ywhzOb6sreoGJTI6m3rSQ=="
+ },
+ "Microsoft.TestPlatform.TestHost": {
+ "type": "Transitive",
+ "resolved": "17.12.0",
+ "contentHash": "MiPEJQNyADfwZ4pJNpQex+t9/jOClBGMiCiVVFuELCMSX2nmNfvUor3uFVxNNCg30uxDP8JDYfPnMXQzsfzYyg==",
+ "dependencies": {
+ "Microsoft.TestPlatform.ObjectModel": "17.12.0",
+ "Newtonsoft.Json": "13.0.1"
+ }
+ },
+ "Newtonsoft.Json": {
+ "type": "Transitive",
+ "resolved": "13.0.1",
+ "contentHash": "ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A=="
+ },
+ "xunit.abstractions": {
+ "type": "Transitive",
+ "resolved": "2.0.3",
+ "contentHash": "pot1I4YOxlWjIb5jmwvvQNbTrZ3lJQ+jUGkGjWE3hEFM0l5gOnBWS+H3qsex68s5cO52g+44vpGzhAt+42vwKg=="
+ },
+ "xunit.analyzers": {
+ "type": "Transitive",
+ "resolved": "1.10.0",
+ "contentHash": "Lw8CiDy5NaAWcO6keqD7iZHYUTIuCOcoFrUHw5Sv84ITZ9gFeDybdkVdH0Y2maSlP9fUjtENyiykT44zwFQIHA=="
+ },
+ "xunit.assert": {
+ "type": "Transitive",
+ "resolved": "2.6.6",
+ "contentHash": "74Cm9lAZOk5TKCz2MvCBCByKsS23yryOKDIMxH3XRDHXmfGM02jKZWzRA7g4mGB41GnBnv/pcWP3vUYkrCtEcg=="
+ },
+ "xunit.core": {
+ "type": "Transitive",
+ "resolved": "2.6.6",
+ "contentHash": "tqi7RfaNBqM7t8zx6QHryuBPzmotsZXKGaWnopQG2Ez5UV7JoWuyoNdT6gLpDIcKdGYey6YTXJdSr9IXDMKwjg==",
+ "dependencies": {
+ "xunit.extensibility.core": "[2.6.6]",
+ "xunit.extensibility.execution": "[2.6.6]"
+ }
+ },
+ "xunit.extensibility.core": {
+ "type": "Transitive",
+ "resolved": "2.6.6",
+ "contentHash": "ty6VKByzbx4Toj4/VGJLEnlmOawqZiMv0in/tLju+ftA+lbWuAWDERM+E52Jfhj4ZYHrAYVa14KHK5T+dq0XxA==",
+ "dependencies": {
+ "xunit.abstractions": "2.0.3"
+ }
+ },
+ "xunit.extensibility.execution": {
+ "type": "Transitive",
+ "resolved": "2.6.6",
+ "contentHash": "UDjIVGj2TepVKN3n32/qXIdb3U6STwTb9L6YEwoQO2A8OxiJS5QAVv2l1aT6tDwwv/9WBmm8Khh/LyHALipcng==",
+ "dependencies": {
+ "xunit.extensibility.core": "[2.6.6]"
+ }
+ },
+ "magma.link": {
+ "type": "Project"
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/test/Magma.NetMap.Facts/packages.lock.json b/test/Magma.NetMap.Facts/packages.lock.json
new file mode 100644
index 0000000..1d3dc0e
--- /dev/null
+++ b/test/Magma.NetMap.Facts/packages.lock.json
@@ -0,0 +1,241 @@
+{
+ "version": 1,
+ "dependencies": {
+ "net10.0": {
+ "Microsoft.NET.Test.Sdk": {
+ "type": "Direct",
+ "requested": "[17.12.0, )",
+ "resolved": "17.12.0",
+ "contentHash": "kt/PKBZ91rFCWxVIJZSgVLk+YR+4KxTuHf799ho8WNiK5ZQpJNAEZCAWX86vcKrs+DiYjiibpYKdGZP6+/N17w==",
+ "dependencies": {
+ "Microsoft.CodeCoverage": "17.12.0",
+ "Microsoft.TestPlatform.TestHost": "17.12.0"
+ }
+ },
+ "xunit": {
+ "type": "Direct",
+ "requested": "[2.6.6, )",
+ "resolved": "2.6.6",
+ "contentHash": "MAbOOMtZIKyn2lrAmMlvhX0BhDOX/smyrTB+8WTXnSKkrmTGBS2fm8g1PZtHBPj91Dc5DJA7fY+/81TJ/yUFZw==",
+ "dependencies": {
+ "xunit.analyzers": "1.10.0",
+ "xunit.assert": "2.6.6",
+ "xunit.core": "[2.6.6]"
+ }
+ },
+ "xunit.runner.visualstudio": {
+ "type": "Direct",
+ "requested": "[2.8.0, )",
+ "resolved": "2.8.0",
+ "contentHash": "mqQbS2zr8dfgSWxkNOC6UTzO8JoqpTmM5+FFn2XR/2nVmx2JvEY0YbM5pt2FmXVg9YVe+jKUPHd6KrroyCl67w=="
+ },
+ "Microsoft.AspNetCore.Connections.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "1eE+Hml8yITBaNO+5P2f5G8FIN/lX+FOfdw2SrgNLfSlg0inlmSKHqwDz6OzrsK2Pqu4RHWd/v9P6FLfLiaeQA==",
+ "dependencies": {
+ "Microsoft.AspNetCore.Http.Features": "2.1.0-rc1-final"
+ }
+ },
+ "Microsoft.AspNetCore.Hosting.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "ZS9+q2D4gDRy9egkX5iOAztWYtOcmMbuPpGh3Vh2ayDgZ0qnOF4n/BYN+kZgCWE+KtLeunAwmXspNj7aHXJYgw==",
+ "dependencies": {
+ "Microsoft.AspNetCore.Hosting.Server.Abstractions": "2.1.0-rc1-final",
+ "Microsoft.AspNetCore.Http.Abstractions": "2.1.0-rc1-final",
+ "Microsoft.Extensions.Hosting.Abstractions": "2.1.0-rc1-final"
+ }
+ },
+ "Microsoft.AspNetCore.Hosting.Server.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "9zEHPWJduVTLanNVRuptCB2zrhY1D7/n6vgdPypmRtq3eR51fgfYyDsalZXQeFNOsKdVaD4PuSEP3DiLed8bYg==",
+ "dependencies": {
+ "Microsoft.AspNetCore.Http.Features": "2.1.0-rc1-final",
+ "Microsoft.Extensions.Configuration.Abstractions": "2.1.0-rc1-final"
+ }
+ },
+ "Microsoft.AspNetCore.Http.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "k8rteCcVexd8yh5DLi4Vo4UU3vyQpHP43d13jalWixImsHSgvDjkjuOUE8MK9oTlHd9utSsl8Vyeh1v2vABVvg==",
+ "dependencies": {
+ "Microsoft.AspNetCore.Http.Features": "2.1.0-rc1-final"
+ }
+ },
+ "Microsoft.AspNetCore.Http.Features": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "BwPSAufLsQjTyeGhm//f+GXhV9s68dJRPGIPy0tH5vPgRiTxMxTOqhi3ReJOR9fYnLkf1zxf/dLEly4INk1+dg==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "2.1.0-rc1-final"
+ }
+ },
+ "Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "OJ53lhivBAjVmNMWiwB8hiXZ6IW8xKlhkWAG8gHTWruCaH4ofqIK1HjVcFgsf1Olu4/sc2jGGBmMWMSoTb5e1A==",
+ "dependencies": {
+ "Microsoft.AspNetCore.Connections.Abstractions": "2.1.0-rc1-final"
+ }
+ },
+ "Microsoft.CodeCoverage": {
+ "type": "Transitive",
+ "resolved": "17.12.0",
+ "contentHash": "4svMznBd5JM21JIG2xZKGNanAHNXplxf/kQDFfLHXQ3OnpJkayRK/TjacFjA+EYmoyuNXHo/sOETEfcYtAzIrA=="
+ },
+ "Microsoft.Extensions.Configuration.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "U0Q+2iXLHmLrYNl0afYa/Co0J8E/q5E81n3InSa8D8w25OiqOU5ETaOT4/ridVtHTNTcGao34LtMWTnOl/Ly+A==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "2.1.0-rc1-final"
+ }
+ },
+ "Microsoft.Extensions.DependencyInjection.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "WDSDj1JvNlBYfGyU+4TwDrN7LhJX15RmTnTeH5nVOvDOpju17vqx39yChgXeEAwm9kVwCXrRvs5RQWGVLd1cuw=="
+ },
+ "Microsoft.Extensions.FileProviders.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "o4C2e7UUiwAUtNrF+itJKBKNSVGXEE4i3tCtkK2oLk1/CJ88hnEHU+A299NKpUloMbsXH4Z+29lPUbNsKHoeTw==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "2.1.0-rc1-final"
+ }
+ },
+ "Microsoft.Extensions.Hosting.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "G+UwVxCWW8p6aEQy5iPt1gt4H4L+LbXyOGVXMZwOVE03KJpg6IxBFd7VkgEsnVhXsjuGdCV0m/76MnJuTMvs+w==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "2.1.0-rc1-final",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.0-rc1-final",
+ "Microsoft.Extensions.FileProviders.Abstractions": "2.1.0-rc1-final",
+ "Microsoft.Extensions.Logging.Abstractions": "2.1.0-rc1-final"
+ }
+ },
+ "Microsoft.Extensions.Logging.Abstractions": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "wbv9lUGJPJ+nKMyHWBiImSI99n70nynYW+lKQhUa8fJTr3G2sNUaN12uXh3+riNwnNX+YJldhdo38v8s6N8ZSA=="
+ },
+ "Microsoft.Extensions.Options": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "uRkR6l93U/2FVlijdHfdb8NafesLr46dB1RkHtgt8p+lVPy6MspXxvbftEPKFSlT9uT0wWlGw8FEyZSQsex23w==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "2.1.0-rc1-final",
+ "Microsoft.Extensions.Primitives": "2.1.0-rc1-final"
+ }
+ },
+ "Microsoft.Extensions.Primitives": {
+ "type": "Transitive",
+ "resolved": "2.1.0-rc1-final",
+ "contentHash": "UR92OPDCSSBckjDELE1ZOzioml4jrMTYo2LmP3d+HhY56GeS6gwVwTNTxMb3VL1KXKzkYzdbQSo3xVwN6z9Ogg=="
+ },
+ "Microsoft.TestPlatform.ObjectModel": {
+ "type": "Transitive",
+ "resolved": "17.12.0",
+ "contentHash": "TDqkTKLfQuAaPcEb3pDDWnh7b3SyZF+/W9OZvWFp6eJCIiiYFdSB6taE2I6tWrFw5ywhzOb6sreoGJTI6m3rSQ=="
+ },
+ "Microsoft.TestPlatform.TestHost": {
+ "type": "Transitive",
+ "resolved": "17.12.0",
+ "contentHash": "MiPEJQNyADfwZ4pJNpQex+t9/jOClBGMiCiVVFuELCMSX2nmNfvUor3uFVxNNCg30uxDP8JDYfPnMXQzsfzYyg==",
+ "dependencies": {
+ "Microsoft.TestPlatform.ObjectModel": "17.12.0",
+ "Newtonsoft.Json": "13.0.1"
+ }
+ },
+ "Newtonsoft.Json": {
+ "type": "Transitive",
+ "resolved": "13.0.1",
+ "contentHash": "ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A=="
+ },
+ "xunit.abstractions": {
+ "type": "Transitive",
+ "resolved": "2.0.3",
+ "contentHash": "pot1I4YOxlWjIb5jmwvvQNbTrZ3lJQ+jUGkGjWE3hEFM0l5gOnBWS+H3qsex68s5cO52g+44vpGzhAt+42vwKg=="
+ },
+ "xunit.analyzers": {
+ "type": "Transitive",
+ "resolved": "1.10.0",
+ "contentHash": "Lw8CiDy5NaAWcO6keqD7iZHYUTIuCOcoFrUHw5Sv84ITZ9gFeDybdkVdH0Y2maSlP9fUjtENyiykT44zwFQIHA=="
+ },
+ "xunit.assert": {
+ "type": "Transitive",
+ "resolved": "2.6.6",
+ "contentHash": "74Cm9lAZOk5TKCz2MvCBCByKsS23yryOKDIMxH3XRDHXmfGM02jKZWzRA7g4mGB41GnBnv/pcWP3vUYkrCtEcg=="
+ },
+ "xunit.core": {
+ "type": "Transitive",
+ "resolved": "2.6.6",
+ "contentHash": "tqi7RfaNBqM7t8zx6QHryuBPzmotsZXKGaWnopQG2Ez5UV7JoWuyoNdT6gLpDIcKdGYey6YTXJdSr9IXDMKwjg==",
+ "dependencies": {
+ "xunit.extensibility.core": "[2.6.6]",
+ "xunit.extensibility.execution": "[2.6.6]"
+ }
+ },
+ "xunit.extensibility.core": {
+ "type": "Transitive",
+ "resolved": "2.6.6",
+ "contentHash": "ty6VKByzbx4Toj4/VGJLEnlmOawqZiMv0in/tLju+ftA+lbWuAWDERM+E52Jfhj4ZYHrAYVa14KHK5T+dq0XxA==",
+ "dependencies": {
+ "xunit.abstractions": "2.0.3"
+ }
+ },
+ "xunit.extensibility.execution": {
+ "type": "Transitive",
+ "resolved": "2.6.6",
+ "contentHash": "UDjIVGj2TepVKN3n32/qXIdb3U6STwTb9L6YEwoQO2A8OxiJS5QAVv2l1aT6tDwwv/9WBmm8Khh/LyHALipcng==",
+ "dependencies": {
+ "xunit.extensibility.core": "[2.6.6]"
+ }
+ },
+ "magma.common": {
+ "type": "Project"
+ },
+ "magma.internet.ip": {
+ "type": "Project",
+ "dependencies": {
+ "Magma.Common": "[1.0.0, )"
+ }
+ },
+ "magma.link": {
+ "type": "Project"
+ },
+ "magma.netmap": {
+ "type": "Project",
+ "dependencies": {
+ "Magma.Common": "[1.0.0, )",
+ "Magma.Link": "[1.0.0, )",
+ "Magma.Network.Abstractions": "[1.0.0, )",
+ "Magma.PCap": "[1.0.0, )",
+ "Magma.Transport.Tcp": "[1.0.0, )",
+ "Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions": "[2.1.0-rc1-final, )"
+ }
+ },
+ "magma.network.abstractions": {
+ "type": "Project"
+ },
+ "magma.pcap": {
+ "type": "Project"
+ },
+ "magma.transport.tcp": {
+ "type": "Project",
+ "dependencies": {
+ "Magma.Common": "[1.0.0, )",
+ "Magma.Internet.Ip": "[1.0.0, )",
+ "Magma.Link": "[1.0.0, )",
+ "Magma.Network.Abstractions": "[1.0.0, )",
+ "Microsoft.AspNetCore.Hosting.Abstractions": "[2.1.0-rc1-final, )",
+ "Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions": "[2.1.0-rc1-final, )",
+ "Microsoft.Extensions.Options": "[2.1.0-rc1-final, )"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file