From 119d03a02bc60a7a4c3cf0818c5da92a3c801f50 Mon Sep 17 00:00:00 2001 From: QI Mingxuan Date: Thu, 21 May 2026 10:41:55 +0800 Subject: [PATCH] =?UTF-8?q?VarexDetector=EF=BC=9A=E5=A2=9E=E7=9B=8A?= =?UTF-8?q?=E6=A0=A1=E6=AD=A3=E7=BC=93=E5=86=B2=E5=8C=BA=E6=94=B9=E7=94=A8?= =?UTF-8?q?=20sizeof(uint)=20=E5=88=86=E9=85=8D=EF=BC=88=E4=B8=8E=20SDK=20?= =?UTF-8?q?DWORD=20=E5=86=99=E5=85=A5=E5=AF=B9=E9=BD=90=EF=BC=89=EF=BC=8C?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=20=5FpOffsetBuffer=20=E6=9C=89=E6=95=88?= =?UTF-8?q?=E6=80=A7=E6=A0=A1=E9=AA=8C=E5=92=8C=E5=88=86=E8=BE=A8=E7=8E=87?= =?UTF-8?q?=E5=8C=B9=E9=85=8D=E6=A3=80=E6=9F=A5=EF=BC=9B=E6=A0=A1=E6=AD=A3?= =?UTF-8?q?=E6=9C=9F=E9=97=B4=E8=AE=BE=E7=BD=AE=20=5FisCorrecting=20?= =?UTF-8?q?=E6=A0=87=E5=BF=97=E8=B7=B3=E8=BF=87=E5=B8=A7=E5=9B=9E=E8=B0=83?= =?UTF-8?q?=EF=BC=8C=E9=98=B2=E6=AD=A2=E7=BC=93=E5=86=B2=E5=8C=BA=E5=86=B2?= =?UTF-8?q?=E7=AA=81=EF=BC=9B=20VarexDetector=EF=BC=9ASetBinningMode/SetGa?= =?UTF-8?q?inMode=20=E5=8F=98=E6=9B=B4=E5=90=8E=E8=87=AA=E5=8A=A8=E9=87=8A?= =?UTF-8?q?=E6=94=BE=E6=97=A7=E6=A0=A1=E6=AD=A3=E7=BC=93=E5=86=B2=E5=8C=BA?= =?UTF-8?q?=EF=BC=9B=20DetectorService=EF=BC=9A=E6=9A=97=E5=9C=BA/?= =?UTF-8?q?=E4=BA=AE=E5=9C=BA/=E5=9D=8F=E5=83=8F=E7=B4=A0=E6=A0=A1?= =?UTF-8?q?=E6=AD=A3=E5=8F=8A=E5=8F=82=E6=95=B0=E5=BA=94=E7=94=A8=E5=89=8D?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E5=81=9C=E6=AD=A2=E9=87=87=E9=9B=86=EF=BC=8C?= =?UTF-8?q?=E5=AE=8C=E6=88=90=E5=90=8E=E6=81=A2=E5=A4=8D=EF=BC=8C=E9=81=BF?= =?UTF-8?q?=E5=85=8D=20SDK=20=E5=86=B2=E7=AA=81=EF=BC=9B=20DetectorConfigV?= =?UTF-8?q?iewModel=EF=BC=9A=E6=A0=A1=E6=AD=A3=E6=B5=81=E7=A8=8B=E4=B8=AD?= =?UTF-8?q?=E9=9B=86=E6=88=90=E5=81=9C=E6=AD=A2/=E6=81=A2=E5=A4=8D?= =?UTF-8?q?=E9=87=87=E9=9B=86=E9=80=BB=E8=BE=91=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Implementations/VarexDetector.cs | 178 ++- .../Services/DetectorService.cs | 106 ++ .../ViewModels/DetectorConfigViewModel.cs | 109 +- .../XP.Hardware.Detector.deps.json | 1362 ++++++++++++++++- 4 files changed, 1691 insertions(+), 64 deletions(-) diff --git a/XP.Hardware.Detector/Implementations/VarexDetector.cs b/XP.Hardware.Detector/Implementations/VarexDetector.cs index 16f7664..8dc1891 100644 --- a/XP.Hardware.Detector/Implementations/VarexDetector.cs +++ b/XP.Hardware.Detector/Implementations/VarexDetector.cs @@ -54,6 +54,7 @@ namespace XP.Hardware.Detector.Implementations // 采集控制 | Acquisition Control private bool _isAcquiring = false; + private volatile bool _isCorrecting = false; // 校正中标志,回调应忽略 | Correcting flag, callback should skip private CancellationTokenSource _acquisitionCts; private readonly object _acquisitionLock = new object(); @@ -61,6 +62,10 @@ namespace XP.Hardware.Detector.Implementations private uint _cachedRows; private uint _cachedColumns; + // 暗场校正时的分辨率快照(用于亮场校正时校验一致性)| Resolution snapshot at dark correction time (for gain correction validation) + private uint _offsetBufferRows; + private uint _offsetBufferColumns; + #endregion #region 属性 | Properties @@ -399,7 +404,7 @@ namespace XP.Hardware.Detector.Implementations 0, // 跳过帧数 | Skip frames (uint)XISLApi.HIS_SEQ_CONTINUOUS, _pOffsetBuffer, // 未校正时为 IntPtr.Zero | IntPtr.Zero before calibration - _pGainAvgBuffer, // 未校正时为 IntPtr.Zero,校正后为增益映射 | IntPtr.Zero before calibration, gain map after + _pGainBuffer, // 未校正时为 IntPtr.Zero,校正后为增益数据 | IntPtr.Zero before calibration, gain data after _pCorrList); // 未校正时为 IntPtr.Zero | IntPtr.Zero before calibration if (result != XISLApi.HIS_RETURN.HIS_ALL_OK) @@ -537,7 +542,7 @@ namespace XP.Hardware.Detector.Implementations // 等待硬件完全释放采集资源,避免后续操作出现 HIS_ERROR_TIMEOUT // Wait for hardware to fully release acquisition resources to avoid HIS_ERROR_TIMEOUT on subsequent operations - Thread.Sleep(200); + Thread.Sleep(500); _logger?.Info("采集已停止 | Acquisition stopped"); return DetectorResult.Success("采集已停止 | Acquisition stopped"); @@ -597,7 +602,7 @@ namespace XP.Hardware.Detector.Implementations 0, // 跳过帧数 | Skip frames (uint)XISLApi.HIS_SEQ_ONE_BUFFER, _pOffsetBuffer, - _pGainAvgBuffer, + _pGainBuffer, _pCorrList); if (result != XISLApi.HIS_RETURN.HIS_ALL_OK) @@ -646,6 +651,7 @@ namespace XP.Hardware.Detector.Implementations try { _logger?.Info($"开始暗场校正,帧数:{frameCount} | Starting dark correction, frame count: {frameCount}"); + _isCorrecting = true; // 1. 获取探测器配置信息 | Get detector configuration uint dwFrames, dwRows, dwColumns, dwDataType, dwSortFlags; @@ -660,16 +666,41 @@ namespace XP.Hardware.Detector.Implementations { var errorMsg = $"获取探测器配置失败 | Failed to get detector configuration: {result}"; _logger?.Error(null, errorMsg + $",返回码:{(int)result}"); + _isCorrecting = false; return DetectorResult.Failure(errorMsg, null, (int)result); } - // 2. 分配暗场缓冲区(如果尚未分配或大小不匹配)| Allocate offset buffer if not allocated or size mismatch + // 2. 分配暗场缓冲区(仅在未分配或分辨率变化时重新分配)| Allocate offset buffer (only when not allocated or resolution changed) int requiredSize = (int)(dwRows * dwColumns) * sizeof(ushort); - if (_pOffsetBuffer == IntPtr.Zero) + bool needReallocOffset = _pOffsetBuffer == IntPtr.Zero + || _offsetBufferRows != dwRows + || _offsetBufferColumns != dwColumns; + + if (needReallocOffset) { + if (_pOffsetBuffer != IntPtr.Zero) + { + Marshal.FreeHGlobal(_pOffsetBuffer); + _pOffsetBuffer = IntPtr.Zero; + } _pOffsetBuffer = Marshal.AllocHGlobal(requiredSize); - _logger?.Debug($"已分配暗场缓冲区,大小:{requiredSize} 字节 | Allocated offset buffer, size: {requiredSize} bytes"); + if (_pOffsetBuffer == IntPtr.Zero) + { + var errorMsg = $"分配暗场缓冲区失败,所需大小:{requiredSize} 字节 | Failed to allocate offset buffer, required size: {requiredSize} bytes"; + _logger?.Error(null, errorMsg); + _isCorrecting = false; + return DetectorResult.Failure(errorMsg, null, -1); + } + _offsetBufferRows = dwRows; + _offsetBufferColumns = dwColumns; + _logger?.Debug($"已分配暗场缓冲区,大小:{requiredSize} 字节,分辨率:{dwColumns}x{dwRows} | Allocated offset buffer, size: {requiredSize} bytes, resolution: {dwColumns}x{dwRows}"); } + else + { + _logger?.Debug($"复用已有暗场缓冲区,分辨率:{dwColumns}x{dwRows} | Reusing existing offset buffer, resolution: {dwColumns}x{dwRows}"); + } + // 零初始化缓冲区 | Zero-initialize buffer + unsafe { new Span((void*)_pOffsetBuffer, requiredSize).Clear(); } // 3. 调用 XISL API 采集暗场图像 | Call XISL API to acquire offset image _logger?.Debug($"调用 Acquisition_Acquire_OffsetImage,分辨率:{dwColumns}x{dwRows} | Calling Acquisition_Acquire_OffsetImage, resolution: {dwColumns}x{dwRows}"); @@ -680,6 +711,7 @@ namespace XP.Hardware.Detector.Implementations { var errorMsg = $"采集暗场图像失败 | Failed to acquire offset image: {result}"; _logger?.Error(null, errorMsg + $",返回码:{(int)result}"); + _isCorrecting = false; return DetectorResult.Failure(errorMsg, null, (int)result); } @@ -689,6 +721,7 @@ namespace XP.Hardware.Detector.Implementations { var errorMsg = $"等待暗场采集完成超时 | Timeout waiting for offset acquisition: {waitResult}"; _logger?.Warn(errorMsg); + _isCorrecting = false; return DetectorResult.Failure(errorMsg, null, (int)waitResult); } @@ -720,10 +753,12 @@ namespace XP.Hardware.Detector.Implementations PublishCorrectionCompleted(CorrectionType.Dark, correctionResult); _logger?.Info("暗场校正完成 | Dark correction completed"); + _isCorrecting = false; return correctionResult; } catch (Exception ex) { + _isCorrecting = false; var errorMsg = $"暗场校正异常 | Dark correction exception: {ex.Message}"; _logger?.Error(ex, errorMsg); var errorResult = DetectorResult.Failure(errorMsg, ex, -1); @@ -743,6 +778,7 @@ namespace XP.Hardware.Detector.Implementations try { _logger?.Info($"开始增益校正,帧数:{frameCount} | Starting gain correction, frame count: {frameCount}"); + _isCorrecting = true; // 1. 获取探测器配置信息 | Get detector configuration uint dwFrames, dwRows, dwColumns, dwDataType, dwSortFlags; @@ -757,27 +793,64 @@ namespace XP.Hardware.Detector.Implementations { var errorMsg = $"获取探测器配置失败 | Failed to get detector configuration: {result}"; _logger?.Error(null, errorMsg + $",返回码:{(int)result}"); + _isCorrecting = false; return DetectorResult.Failure(errorMsg, null, (int)result); } - // 2. 分配增益采集缓冲区(ushort,用于 Acquire_GainImage 输入)| Allocate gain acquisition buffer (ushort, for Acquire_GainImage) - int gainAcqSize = (int)(dwRows * dwColumns) * sizeof(ushort); + // 2. 校验 _pOffsetBuffer 有效性(必须由暗场校正填充,且分辨率一致) + // Validate _pOffsetBuffer (must be filled by dark correction with matching resolution) + if (_pOffsetBuffer == IntPtr.Zero) + { + var errorMsg = "暗场缓冲区为空,请先执行暗场校正 | Offset buffer is null, please perform dark correction first"; + _logger?.Error(null, errorMsg); + _isCorrecting = false; + return DetectorResult.Failure(errorMsg, null, -1); + } + if (_offsetBufferRows != dwRows || _offsetBufferColumns != dwColumns) + { + var errorMsg = $"暗场缓冲区分辨率({_offsetBufferColumns}x{_offsetBufferRows})与当前分辨率({dwColumns}x{dwRows})不匹配,请重新执行暗场校正 | " + + $"Offset buffer resolution ({_offsetBufferColumns}x{_offsetBufferRows}) does not match current resolution ({dwColumns}x{dwRows}), please redo dark correction"; + _logger?.Error(null, errorMsg); + _isCorrecting = false; + return DetectorResult.Failure(errorMsg, null, -1); + } + + // 3. 分配增益采集缓冲区(仅在大小不匹配时重新分配,避免频繁释放/分配导致指针失效) + // 注意:SDK 内部按 DWORD (uint, 4字节) 写入增益数据,必须用 sizeof(uint) 分配! + // Note: SDK writes gain data as DWORD (uint, 4 bytes), must allocate with sizeof(uint)! + int gainAcqSize = (int)(dwRows * dwColumns) * sizeof(uint); if (_pGainBuffer == IntPtr.Zero) { _pGainBuffer = Marshal.AllocHGlobal(gainAcqSize); - _logger?.Debug($"已分配增益采集缓冲区,大小:{gainAcqSize} 字节 | Allocated gain acquisition buffer, size: {gainAcqSize} bytes"); + if (_pGainBuffer == IntPtr.Zero) + { + var errorMsg = $"分配增益采集缓冲区失败 | Failed to allocate gain buffer, size: {gainAcqSize}"; + _logger?.Error(null, errorMsg); + _isCorrecting = false; + return DetectorResult.Failure(errorMsg, null, -1); + } } + // 零初始化 | Zero-initialize + unsafe { new Span((void*)_pGainBuffer, gainAcqSize).Clear(); } + _logger?.Debug($"增益采集缓冲区就绪,大小:{gainAcqSize} 字节(uint) | Gain acquisition buffer ready, size: {gainAcqSize} bytes (uint)"); - // 分配增益映射输出缓冲区(uint/DWORD,用于 CreateGainMap 输出)| Allocate gain map output buffer (uint/DWORD, for CreateGainMap) - int gainAvgSize = (int)(dwRows * dwColumns) * sizeof(uint); - if (_pGainAvgBuffer == IntPtr.Zero) + // 4. 设置采集数据标志为 ACQ_GAIN(告知 SDK 和回调当前处于增益校正模式) + // Set acquisition data flag to ACQ_GAIN (inform SDK and callback that we're in gain correction mode) + uint acqGainFlag = 4; // ACQ_GAIN = 4 + var setAcqResult = XISLApi.Acquisition_SetAcqData(_hAcqDesc, ref acqGainFlag); + if (setAcqResult != XISLApi.HIS_RETURN.HIS_ALL_OK) { - _pGainAvgBuffer = Marshal.AllocHGlobal(gainAvgSize); - _logger?.Debug($"已分配增益映射缓冲区,大小:{gainAvgSize} 字节 | Allocated gain map buffer, size: {gainAvgSize} bytes"); + _logger?.Warn($"设置 ACQ_GAIN 标志失败:{setAcqResult}(继续执行)| Failed to set ACQ_GAIN flag: {setAcqResult} (continuing)"); } - // 3. 调用 XISL API 采集增益图像 | Call XISL API to acquire gain image - _logger?.Debug($"调用 Acquisition_Acquire_GainImage,分辨率:{dwColumns}x{dwRows} | Calling Acquisition_Acquire_GainImage, resolution: {dwColumns}x{dwRows}"); + // 6. 等待 SDK 内部完全释放采集资源(防止 Abort 后 SDK 仍持有旧缓冲区引用) + // Wait for SDK to fully release acquisition resources (prevent SDK holding stale buffer references after Abort) + Thread.Sleep(500); + + // 6. 调用 XISL API 采集增益图像 | Call XISL API to acquire gain image + _logger?.Info($"调用 Acquisition_Acquire_GainImage:分辨率={dwColumns}x{dwRows},帧数={frameCount}," + + $"pOffsetBuffer=0x{_pOffsetBuffer:X},pGainBuffer=0x{_pGainBuffer:X} | " + + $"Calling Acquisition_Acquire_GainImage: resolution={dwColumns}x{dwRows}, frames={frameCount}"); result = XISLApi.Acquisition_Acquire_GainImage( _hAcqDesc, _pOffsetBuffer, _pGainBuffer, dwRows, dwColumns, (uint)frameCount); @@ -785,6 +858,7 @@ namespace XP.Hardware.Detector.Implementations { var errorMsg = $"采集增益图像失败 | Failed to acquire gain image: {result}"; _logger?.Error(null, errorMsg + $",返回码:{(int)result}"); + _isCorrecting = false; return DetectorResult.Failure(errorMsg, null, (int)result); } @@ -794,18 +868,15 @@ namespace XP.Hardware.Detector.Implementations { var errorMsg = $"等待增益采集完成超时 | Timeout waiting for gain acquisition: {waitResult}"; _logger?.Warn(errorMsg); + _isCorrecting = false; return DetectorResult.Failure(errorMsg, null, (int)waitResult); } - // 4. 创建增益映射(输入为采集的 ushort 数据,输出为 DWORD 映射)| Create gain map (input: ushort data, output: DWORD map) - _logger?.Debug("创建增益映射 | Creating gain map"); - result = XISLApi.Acquisition_CreateGainMap(_pGainBuffer, _pGainAvgBuffer, (int)(dwRows * dwColumns), frameCount); - if (result != XISLApi.HIS_RETURN.HIS_ALL_OK) - { - var errorMsg = $"创建增益映射失败 | Failed to create gain map: {result}"; - _logger?.Error(null, errorMsg + $",返回码:{(int)result}"); - return DetectorResult.Failure(errorMsg, null, (int)result); - } + // 4. 增益校正完成(Acquisition_Acquire_GainImage 已内部完成增益计算,pGainBuffer 可直接用于实时补偿) + // Gain correction done (Acquisition_Acquire_GainImage internally computes gain, pGainBuffer can be used directly for real-time compensation) + // 注意:旧代码不调用 CreateGainMap,SDK 内部已完成增益映射计算 + // Note: Old code does not call CreateGainMap, SDK internally completes gain map calculation + _logger?.Debug("增益校正采集完成,跳过 CreateGainMap(SDK 内部已处理)| Gain correction acquisition done, skipping CreateGainMap (SDK handles internally)"); // 5. 保存增益数据到配置的存储路径 | Save gain data to configured storage path if (_config.AutoSave && !string.IsNullOrEmpty(_config.SavePath)) @@ -817,7 +888,7 @@ namespace XP.Hardware.Detector.Implementations int bufferSize = (int)(dwRows * dwColumns * sizeof(uint)); byte[] gainData = new byte[bufferSize]; - Marshal.Copy(_pGainAvgBuffer, gainData, 0, bufferSize); + Marshal.Copy(_pGainBuffer, gainData, 0, bufferSize); System.IO.File.WriteAllBytes(gainFilePath, gainData); _logger?.Info($"增益数据已保存到:{gainFilePath} | Gain data saved to: {gainFilePath}"); } @@ -835,10 +906,12 @@ namespace XP.Hardware.Detector.Implementations PublishCorrectionCompleted(CorrectionType.Gain, correctionResult); _logger?.Info("增益校正完成 | Gain correction completed"); + _isCorrecting = false; return correctionResult; } catch (Exception ex) { + _isCorrecting = false; var errorMsg = $"增益校正异常 | Gain correction exception: {ex.Message}"; _logger?.Error(ex, errorMsg); var errorResult = DetectorResult.Failure(errorMsg, ex, -1); @@ -1086,6 +1159,7 @@ namespace XP.Hardware.Detector.Implementations /// /// 设置 Binning 模式 | Set binning mode + /// Binning 变化后校正数据失效,需要重新校正 | Correction data becomes invalid after binning change, recalibration needed /// public Task SetBinningModeAsync(BinningMode mode) { @@ -1096,6 +1170,31 @@ namespace XP.Hardware.Detector.Implementations var result = XISLApi.Acquisition_SetCameraBinningMode(_hAcqDesc, (uint)mode + 1); if (result == XISLApi.HIS_RETURN.HIS_ALL_OK) { + // Binning 变化后,旧的校正缓冲区大小不匹配新分辨率,必须释放 + // After binning change, old correction buffers don't match new resolution, must free them + if (_binningMode != mode) + { + _logger?.Info($"Binning 模式从 {_binningMode} 变更为 {mode},校正数据已失效 | Binning mode changed from {_binningMode} to {mode}, correction data invalidated"); + + if (_pOffsetBuffer != IntPtr.Zero) + { + Marshal.FreeHGlobal(_pOffsetBuffer); + _pOffsetBuffer = IntPtr.Zero; + _offsetBufferRows = 0; + _offsetBufferColumns = 0; + } + if (_pGainBuffer != IntPtr.Zero) + { + Marshal.FreeHGlobal(_pGainBuffer); + _pGainBuffer = IntPtr.Zero; + } + if (_pCorrList != IntPtr.Zero) + { + Marshal.FreeHGlobal(_pCorrList); + _pCorrList = IntPtr.Zero; + } + } + _binningMode = mode; return DetectorResult.Success($"Binning 模式已设置为 {mode} | Binning mode set to {mode}"); } @@ -1118,6 +1217,8 @@ namespace XP.Hardware.Detector.Implementations /// /// 设置增益模式 | Set gain mode + /// PGA 变化后校正数据在物理意义上失效(噪声特性不同),需要重新校正 + /// After PGA change, correction data is physically invalid (different noise characteristics), recalibration needed /// public Task SetGainModeAsync(GainMode mode) { @@ -1128,6 +1229,28 @@ namespace XP.Hardware.Detector.Implementations var result = XISLApi.Acquisition_SetCameraGain(_hAcqDesc, (uint)mode); if (result == XISLApi.HIS_RETURN.HIS_ALL_OK) { + // PGA 变化后校正数据失效(不会崩溃,但补偿结果不正确) + // Correction data invalidated after PGA change (won't crash, but compensation results are incorrect) + if (_gainMode != mode && _pOffsetBuffer != IntPtr.Zero) + { + _logger?.Info($"PGA 从 {_gainMode} 变更为 {mode},校正数据已失效 | PGA changed from {_gainMode} to {mode}, correction data invalidated"); + Marshal.FreeHGlobal(_pOffsetBuffer); + _pOffsetBuffer = IntPtr.Zero; + _offsetBufferRows = 0; + _offsetBufferColumns = 0; + + if (_pGainBuffer != IntPtr.Zero) + { + Marshal.FreeHGlobal(_pGainBuffer); + _pGainBuffer = IntPtr.Zero; + } + if (_pCorrList != IntPtr.Zero) + { + Marshal.FreeHGlobal(_pCorrList); + _pCorrList = IntPtr.Zero; + } + } + _gainMode = mode; return DetectorResult.Success($"增益模式已设置为 {mode} | Gain mode set to {mode}"); } @@ -1224,6 +1347,9 @@ namespace XP.Hardware.Detector.Implementations { try { + // 校正期间跳过帧回调(校正使用独立缓冲区,_pAcqBuffer 可能无效)| Skip during correction (correction uses separate buffers, _pAcqBuffer may be invalid) + if (_isCorrecting) return; + uint dwRows = _cachedRows; uint dwColumns = _cachedColumns; int imageSize = (int)(dwRows * dwColumns); diff --git a/XP.Hardware.Detector/Services/DetectorService.cs b/XP.Hardware.Detector/Services/DetectorService.cs index 715d20f..1e52b02 100644 --- a/XP.Hardware.Detector/Services/DetectorService.cs +++ b/XP.Hardware.Detector/Services/DetectorService.cs @@ -309,12 +309,39 @@ namespace XP.Hardware.Detector.Services { _logger?.Info("服务层:执行暗场校正,帧数:{FrameCount} | Service layer: Executing dark correction, frame count: {FrameCount}", frameCount); var detector = GetDetectorOrThrow(); + + // 如果正在采集,先停止(XISL SDK 不允许采集中执行校正)| Stop acquisition first if running + bool wasAcquiring = detector.Status == DetectorStatus.Acquiring; + if (wasAcquiring) + { + _logger?.Info("探测器正在采集,先停止采集再执行暗场校正 | Detector is acquiring, stopping before dark correction"); + var stopResult = await detector.StopAcquisitionAsync(cancellationToken); + if (!stopResult.IsSuccess) + { + _lastError = stopResult; + _logger?.Error(stopResult.Exception, "停止采集失败,无法执行暗场校正:{Message} | Failed to stop acquisition, cannot perform dark correction: {Message}", stopResult.ErrorMessage); + return DetectorResult.Failure($"停止采集失败,无法执行暗场校正 | Failed to stop acquisition: {stopResult.ErrorMessage}"); + } + } + var result = await detector.DarkCorrectionAsync(frameCount, cancellationToken); if (!result.IsSuccess) { _lastError = result; _logger?.Error(result.Exception, "暗场校正失败:{Message} | Dark correction failed: {Message}", result.ErrorMessage); } + + // 如果之前在采集,恢复采集 | Resume acquisition if it was running before + if (wasAcquiring) + { + _logger?.Info("暗场校正完成,恢复连续采集 | Dark correction done, resuming continuous acquisition"); + var startResult = await detector.StartAcquisitionAsync(cancellationToken); + if (!startResult.IsSuccess) + { + _logger?.Warn("恢复采集失败:{Message} | Failed to resume acquisition: {Message}", startResult.ErrorMessage); + } + } + return result; } catch (Exception ex) @@ -339,12 +366,39 @@ namespace XP.Hardware.Detector.Services { _logger?.Info("服务层:执行亮场校正,帧数:{FrameCount} | Service layer: Executing gain correction, frame count: {FrameCount}", frameCount); var detector = GetDetectorOrThrow(); + + // 如果正在采集,先停止(XISL SDK 不允许采集中执行校正)| Stop acquisition first if running + bool wasAcquiring = detector.Status == DetectorStatus.Acquiring; + if (wasAcquiring) + { + _logger?.Info("探测器正在采集,先停止采集再执行亮场校正 | Detector is acquiring, stopping before gain correction"); + var stopResult = await detector.StopAcquisitionAsync(cancellationToken); + if (!stopResult.IsSuccess) + { + _lastError = stopResult; + _logger?.Error(stopResult.Exception, "停止采集失败,无法执行亮场校正:{Message} | Failed to stop acquisition, cannot perform gain correction: {Message}", stopResult.ErrorMessage); + return DetectorResult.Failure($"停止采集失败,无法执行亮场校正 | Failed to stop acquisition: {stopResult.ErrorMessage}"); + } + } + var result = await detector.GainCorrectionAsync(frameCount, cancellationToken); if (!result.IsSuccess) { _lastError = result; _logger?.Error(result.Exception, "亮场校正失败:{Message} | Gain correction failed: {Message}", result.ErrorMessage); } + + // 如果之前在采集,恢复采集 | Resume acquisition if it was running before + if (wasAcquiring) + { + _logger?.Info("亮场校正完成,恢复连续采集 | Gain correction done, resuming continuous acquisition"); + var startResult = await detector.StartAcquisitionAsync(cancellationToken); + if (!startResult.IsSuccess) + { + _logger?.Warn("恢复采集失败:{Message} | Failed to resume acquisition: {Message}", startResult.ErrorMessage); + } + } + return result; } catch (Exception ex) @@ -368,12 +422,39 @@ namespace XP.Hardware.Detector.Services { _logger?.Info("服务层:执行坏像素校正 | Service layer: Executing bad pixel correction"); var detector = GetDetectorOrThrow(); + + // 如果正在采集,先停止(XISL SDK 不允许采集中执行校正)| Stop acquisition first if running + bool wasAcquiring = detector.Status == DetectorStatus.Acquiring; + if (wasAcquiring) + { + _logger?.Info("探测器正在采集,先停止采集再执行坏像素校正 | Detector is acquiring, stopping before bad pixel correction"); + var stopResult = await detector.StopAcquisitionAsync(cancellationToken); + if (!stopResult.IsSuccess) + { + _lastError = stopResult; + _logger?.Error(stopResult.Exception, "停止采集失败,无法执行坏像素校正:{Message} | Failed to stop acquisition, cannot perform bad pixel correction: {Message}", stopResult.ErrorMessage); + return DetectorResult.Failure($"停止采集失败,无法执行坏像素校正 | Failed to stop acquisition: {stopResult.ErrorMessage}"); + } + } + var result = await detector.BadPixelCorrectionAsync(cancellationToken); if (!result.IsSuccess) { _lastError = result; _logger?.Error(result.Exception, "坏像素校正失败:{Message} | Bad pixel correction failed: {Message}", result.ErrorMessage); } + + // 如果之前在采集,恢复采集 | Resume acquisition if it was running before + if (wasAcquiring) + { + _logger?.Info("坏像素校正完成,恢复连续采集 | Bad pixel correction done, resuming continuous acquisition"); + var startResult = await detector.StartAcquisitionAsync(cancellationToken); + if (!startResult.IsSuccess) + { + _logger?.Warn("恢复采集失败:{Message} | Failed to resume acquisition: {Message}", startResult.ErrorMessage); + } + } + return result; } catch (Exception ex) @@ -431,6 +512,20 @@ namespace XP.Hardware.Detector.Services // 通过 IVarexDetector 接口下发参数 | Apply parameters via IVarexDetector interface if (detector is IVarexDetector varexDetector) { + // 如果正在采集,先停止(XISL SDK 不允许采集中修改参数)| Stop acquisition first if running (XISL SDK does not allow parameter changes during acquisition) + bool wasAcquiring = detector.Status == DetectorStatus.Acquiring; + if (wasAcquiring) + { + _logger?.Info("探测器正在采集,先停止采集再应用参数 | Detector is acquiring, stopping before applying parameters"); + var stopResult = await detector.StopAcquisitionAsync(cancellationToken); + if (!stopResult.IsSuccess) + { + _lastError = stopResult; + _logger?.Error(stopResult.Exception, "停止采集失败,无法应用参数:{Message} | Failed to stop acquisition, cannot apply parameters: {Message}", stopResult.ErrorMessage); + return DetectorResult.Failure($"停止采集失败,无法应用参数 | Failed to stop acquisition, cannot apply parameters: {stopResult.ErrorMessage}"); + } + } + // 设置 Binning | Set binning var binningResult = await varexDetector.SetBinningModeAsync((BinningMode)binningIndex); if (!binningResult.IsSuccess) @@ -456,6 +551,17 @@ namespace XP.Hardware.Detector.Services return exposureResult; } + // 如果之前在采集,恢复采集 | Resume acquisition if it was running before + if (wasAcquiring) + { + _logger?.Info("参数应用完成,恢复连续采集 | Parameters applied, resuming continuous acquisition"); + var startResult = await detector.StartAcquisitionAsync(cancellationToken); + if (!startResult.IsSuccess) + { + _logger?.Warn("恢复采集失败:{Message}(参数已成功应用)| Failed to resume acquisition: {Message} (parameters were applied successfully)", startResult.ErrorMessage); + } + } + _logger?.Info("参数应用成功 | Parameters applied successfully"); return DetectorResult.Success("参数应用成功 | Parameters applied successfully"); } diff --git a/XP.Hardware.Detector/ViewModels/DetectorConfigViewModel.cs b/XP.Hardware.Detector/ViewModels/DetectorConfigViewModel.cs index 4625658..0779ccd 100644 --- a/XP.Hardware.Detector/ViewModels/DetectorConfigViewModel.cs +++ b/XP.Hardware.Detector/ViewModels/DetectorConfigViewModel.cs @@ -6,6 +6,7 @@ using Prism.Commands; using Prism.Events; using Prism.Mvvm; using XP.Common.GeneralForm.Views; +using XP.Common.Localization; using XP.Common.Logging.Interfaces; using XP.Hardware.Detector.Abstractions.Events; using XP.Hardware.Detector.Abstractions.Enums; @@ -253,6 +254,9 @@ namespace XP.Hardware.Detector.ViewModels // 从配置加载 UI 选项 | Load UI options from config LoadOptionsFromConfig(); + + // 初始化连接状态(ViewModel 可能在探测器已连接后才创建)| Initialize connection status (ViewModel may be created after detector is already connected) + IsConnected = _detectorService.IsConnected; } #endregion @@ -410,23 +414,14 @@ namespace XP.Hardware.Detector.ViewModels } /// - /// 探测器状态变更回调,用于扫描期间自动锁定/解锁参数 | Detector status changed callback + /// 探测器状态变更回调,用于同步连接状态 | Detector status changed callback for connection status sync + /// 注意:参数锁定由外部扫描流程通过 LockParameters()/UnlockParameters() 显式控制, + /// 普通预览采集不应锁定配置页面按钮 /// private void OnDetectorStatusChanged(DetectorStatus status) { // 同步连接状态:非 Uninitialized 即视为已连接 | Sync connection status: connected if not Uninitialized IsConnected = status != DetectorStatus.Uninitialized; - - if (status == DetectorStatus.Acquiring) - { - IsParametersLocked = true; - _logger?.Debug("探测器进入采集状态,参数已自动锁定 | Detector acquiring, parameters auto-locked"); - } - else if (status == DetectorStatus.Ready) - { - IsParametersLocked = false; - _logger?.Debug("探测器就绪,参数已自动解锁 | Detector ready, parameters auto-unlocked"); - } } /// @@ -492,8 +487,8 @@ namespace XP.Hardware.Detector.ViewModels { // 弹出用户确认对话框 | Show user confirmation dialog var confirmResult = MessageBox.Show( - "请确认射线源已关闭,即将开始暗场校正。\n\nPlease confirm the X-ray source is OFF before starting dark correction.", - "暗场校正确认 | Dark Correction Confirmation", + LocalizationHelper.Get("Detector_DarkCorrection_ConfirmMessage"), + LocalizationHelper.Get("Detector_DarkCorrection_ConfirmTitle"), MessageBoxButton.OKCancel, MessageBoxImage.Question); @@ -509,17 +504,31 @@ namespace XP.Hardware.Detector.ViewModels // 显示进度条窗口 | Show progress window var progressWindow = new ProgressWindow( - title: "暗场校正 | Dark Correction", - message: "正在应用参数... | Applying parameters...", + title: LocalizationHelper.Get("Detector_DarkCorrection_Title"), + message: LocalizationHelper.Get("Detector_Progress_ApplyingParameters"), isCancelable: false, logger: _logger); progressWindow.Show(); IsBusy = true; + bool wasAcquiring = false; try { - // 1. 应用参数到硬件 | Apply parameters to hardware - progressWindow.UpdateProgress("正在应用参数... | Applying parameters...", 10); + // 1. 如果正在采集,先停止(后续应用参数和校正都需要探测器空闲)| Stop acquisition if running + wasAcquiring = _detectorService.Status == DetectorStatus.Acquiring; + if (wasAcquiring) + { + progressWindow.UpdateProgress(LocalizationHelper.Get("Detector_Progress_StoppingAcquisition"), 5); + var stopResult = await _detectorService.StopAcquisitionAsync(); + if (!stopResult.IsSuccess) + { + _logger?.Error(stopResult.Exception, "停止采集失败,暗场校正中止:{Message} | Stop acquisition failed, dark correction aborted: {Message}", stopResult.ErrorMessage); + return; + } + } + + // 2. 应用参数到硬件 | Apply parameters to hardware + progressWindow.UpdateProgress(LocalizationHelper.Get("Detector_Progress_ApplyingParameters"), 10); var applyResult = await _detectorService.ApplyParametersAsync(_selectedBinningIndex, _selectedPga, _frameRate); if (!applyResult.IsSuccess) { @@ -527,13 +536,13 @@ namespace XP.Hardware.Detector.ViewModels return; } - // 2. 执行暗场校正(固定 64 帧)| Execute dark correction (fixed 64 frames) - progressWindow.UpdateProgress("正在采集暗场数据(64帧)... | Acquiring dark field data (64 frames)...", 30); + // 3. 执行暗场校正(固定 64 帧)| Execute dark correction (fixed 64 frames) + progressWindow.UpdateProgress(LocalizationHelper.Get("Detector_Progress_AcquiringDarkData"), 30); var result = await _detectorService.DarkCorrectionAsync(CorrectionFrameCount); if (result.IsSuccess) { - progressWindow.UpdateProgress("暗场校正完成 | Dark correction completed", 100); + progressWindow.UpdateProgress(LocalizationHelper.Get("Detector_Progress_DarkCorrectionDone"), 100); RecordDarkCorrectionParameters(); DarkCorrectionDone = true; _logger?.Info("暗场校正完成 | Dark correction completed"); @@ -550,6 +559,12 @@ namespace XP.Hardware.Detector.ViewModels } finally { + // 如果之前在采集,恢复连续采集 | Resume acquisition if it was running before + if (wasAcquiring) + { + _logger?.Info("暗场校正流程结束,恢复连续采集 | Dark correction flow done, resuming continuous acquisition"); + await _detectorService.StartAcquisitionAsync(); + } IsBusy = false; progressWindow.Close(); } @@ -565,8 +580,8 @@ namespace XP.Hardware.Detector.ViewModels { _logger?.Warn("暗场校正与亮场校正参数不一致,请重新进行暗场校正 | Parameter mismatch, please redo dark correction"); MessageBox.Show( - "当前参数与暗场校正时不一致,请重新进行暗场校正。\n\nCurrent parameters differ from dark correction. Please redo dark correction.", - "参数不一致 | Parameter Mismatch", + LocalizationHelper.Get("Detector_ParameterMismatch_Message"), + LocalizationHelper.Get("Detector_ParameterMismatch_Title"), MessageBoxButton.OK, MessageBoxImage.Warning); DarkCorrectionDone = false; @@ -575,8 +590,8 @@ namespace XP.Hardware.Detector.ViewModels // 弹出确认对话框:物体移出视野 | Confirm object removed from field of view var confirmObjectResult = MessageBox.Show( - "请确认物体已移出探测器视野。\n\nPlease confirm the object has been removed from the detector field of view.", - "亮场校正确认 | Light Correction Confirmation", + LocalizationHelper.Get("Detector_LightCorrection_ConfirmObjectMessage"), + LocalizationHelper.Get("Detector_LightCorrection_ConfirmObjectTitle"), MessageBoxButton.OKCancel, MessageBoxImage.Question); @@ -588,8 +603,8 @@ namespace XP.Hardware.Detector.ViewModels // 弹出确认对话框:射线源已开启 | Confirm X-ray source is ON var confirmRayResult = MessageBox.Show( - "请确认射线源已开启且稳定,即将开始亮场校正。\n\nPlease confirm the X-ray source is ON and stable before starting light correction.", - "亮场校正确认 | Light Correction Confirmation", + LocalizationHelper.Get("Detector_LightCorrection_ConfirmRayMessage"), + LocalizationHelper.Get("Detector_LightCorrection_ConfirmObjectTitle"), MessageBoxButton.OKCancel, MessageBoxImage.Question); @@ -605,17 +620,31 @@ namespace XP.Hardware.Detector.ViewModels // 显示进度条窗口 | Show progress window var progressWindow = new ProgressWindow( - title: "亮场校正 | Light Correction", - message: "正在采集亮场数据(64帧)... | Acquiring light field data (64 frames)...", + title: LocalizationHelper.Get("Detector_LightCorrection_Title"), + message: LocalizationHelper.Get("Detector_Progress_AcquiringLightData"), isCancelable: false, logger: _logger); progressWindow.Show(); IsBusy = true; + bool wasAcquiring = false; try { + // 0. 如果正在采集,先停止 | Stop acquisition if running + wasAcquiring = _detectorService.Status == DetectorStatus.Acquiring; + if (wasAcquiring) + { + progressWindow.UpdateProgress(LocalizationHelper.Get("Detector_Progress_StoppingAcquisition"), 5); + var stopResult = await _detectorService.StopAcquisitionAsync(); + if (!stopResult.IsSuccess) + { + _logger?.Error(stopResult.Exception, "停止采集失败,亮场校正中止:{Message} | Stop acquisition failed, light correction aborted: {Message}", stopResult.ErrorMessage); + return; + } + } + // 1. 执行亮场校正(固定 64 帧)| Execute light correction (fixed 64 frames) - progressWindow.UpdateProgress("正在采集亮场数据(64帧)... | Acquiring light field data (64 frames)...", 20); + progressWindow.UpdateProgress(LocalizationHelper.Get("Detector_Progress_AcquiringLightData"), 20); var result = await _detectorService.GainCorrectionAsync(CorrectionFrameCount); if (result.IsSuccess) @@ -623,17 +652,17 @@ namespace XP.Hardware.Detector.ViewModels _logger?.Info("亮场校正完成,开始执行坏像素校正 | Light correction completed, starting bad pixel correction"); // 2. 亮场校正完成后自动执行坏像素校正 | Auto execute bad pixel correction after light correction - progressWindow.UpdateProgress("正在执行坏像素校正... | Executing bad pixel correction...", 70); + progressWindow.UpdateProgress(LocalizationHelper.Get("Detector_Progress_BadPixelCorrecting"), 70); var badPixelResult = await _detectorService.BadPixelCorrectionAsync(); if (badPixelResult.IsSuccess) { - progressWindow.UpdateProgress("亮场校正及坏像素校正完成 | Light and bad pixel correction completed", 100); + progressWindow.UpdateProgress(LocalizationHelper.Get("Detector_Progress_LightAndBadPixelDone"), 100); _logger?.Info("亮场校正及坏像素校正全部完成 | Light correction and bad pixel correction all completed"); } else { - progressWindow.UpdateProgress("亮场校正完成,但坏像素校正失败 | Light correction done, bad pixel correction failed", 90); + progressWindow.UpdateProgress(LocalizationHelper.Get("Detector_Progress_LightDoneBadPixelFailed"), 90); _logger?.Error(badPixelResult.Exception, "坏像素校正失败:{Message} | Bad pixel correction failed: {Message}", badPixelResult.ErrorMessage); } } @@ -648,6 +677,12 @@ namespace XP.Hardware.Detector.ViewModels } finally { + // 如果之前在采集,恢复连续采集 | Resume acquisition if it was running before + if (wasAcquiring) + { + _logger?.Info("亮场校正流程结束,恢复连续采集 | Light correction flow done, resuming continuous acquisition"); + await _detectorService.StartAcquisitionAsync(); + } IsBusy = false; progressWindow.Close(); } @@ -662,8 +697,8 @@ namespace XP.Hardware.Detector.ViewModels // 显示进度条窗口 | Show progress window var progressWindow = new ProgressWindow( - title: "坏像素校正 | Bad Pixel Correction", - message: "正在检测坏像素... | Detecting bad pixels...", + title: LocalizationHelper.Get("Detector_BadPixelCorrection_Title"), + message: LocalizationHelper.Get("Detector_Progress_DetectingBadPixels"), isCancelable: false, logger: _logger); progressWindow.Show(); @@ -671,12 +706,12 @@ namespace XP.Hardware.Detector.ViewModels IsBusy = true; try { - progressWindow.UpdateProgress("正在检测坏像素... | Detecting bad pixels...", 30); + progressWindow.UpdateProgress(LocalizationHelper.Get("Detector_Progress_DetectingBadPixels"), 30); var result = await _detectorService.BadPixelCorrectionAsync(); if (result.IsSuccess) { - progressWindow.UpdateProgress("坏像素校正完成 | Bad pixel correction completed", 100); + progressWindow.UpdateProgress(LocalizationHelper.Get("Detector_Progress_BadPixelDone"), 100); _logger?.Info("坏像素校正完成 | Bad pixel correction completed"); } else diff --git a/XP.Hardware.Detector/bin/Debug/net8.0-windows7.0/XP.Hardware.Detector.deps.json b/XP.Hardware.Detector/bin/Debug/net8.0-windows7.0/XP.Hardware.Detector.deps.json index 841442d..fb5a616 100644 --- a/XP.Hardware.Detector/bin/Debug/net8.0-windows7.0/XP.Hardware.Detector.deps.json +++ b/XP.Hardware.Detector/bin/Debug/net8.0-windows7.0/XP.Hardware.Detector.deps.json @@ -29,6 +29,9 @@ }, "Emgu.CV/4.10.0.5680": { "dependencies": { + "System.Drawing.Primitives": "4.3.0", + "System.Runtime": "4.3.1", + "System.Runtime.InteropServices.RuntimeInformation": "4.3.0", "System.Text.Json": "10.0.0" }, "runtime": { @@ -77,9 +80,13 @@ "Microsoft.Bcl.AsyncInterfaces": "1.1.1", "Microsoft.Bcl.HashCode": "1.1.0", "Microsoft.EntityFrameworkCore.Abstractions": "3.1.5", + "Microsoft.EntityFrameworkCore.Analyzers": "3.1.5", "Microsoft.Extensions.Caching.Memory": "3.1.5", "Microsoft.Extensions.DependencyInjection": "3.1.5", - "Microsoft.Extensions.Logging": "3.1.5" + "Microsoft.Extensions.Logging": "3.1.5", + "System.Collections.Immutable": "1.7.1", + "System.ComponentModel.Annotations": "4.7.0", + "System.Diagnostics.DiagnosticSource": "4.7.1" }, "runtime": { "lib/netstandard2.0/Microsoft.EntityFrameworkCore.dll": { @@ -96,6 +103,7 @@ } } }, + "Microsoft.EntityFrameworkCore.Analyzers/3.1.5": {}, "Microsoft.Extensions.Caching.Abstractions/3.1.5": { "dependencies": { "Microsoft.Extensions.Primitives": "10.0.0" @@ -229,6 +237,8 @@ } } }, + "Microsoft.NETCore.Platforms/2.0.0": {}, + "Microsoft.NETCore.Targets/1.1.3": {}, "Microsoft.OData.Client/7.8.3": { "dependencies": { "Microsoft.OData.Core": "7.8.3" @@ -271,6 +281,14 @@ } } }, + "Microsoft.Win32.Primitives/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "2.0.0", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Runtime": "4.3.1" + } + }, + "Microsoft.Win32.SystemEvents/6.0.0": {}, "Microsoft.Xaml.Behaviors.Wpf/1.1.122": { "runtime": { "lib/net6.0-windows7.0/Microsoft.Xaml.Behaviors.dll": { @@ -279,6 +297,54 @@ } } }, + "NETStandard.Library/1.6.1": { + "dependencies": { + "Microsoft.NETCore.Platforms": "2.0.0", + "Microsoft.Win32.Primitives": "4.3.0", + "System.AppContext": "4.3.0", + "System.Collections": "4.3.0", + "System.Collections.Concurrent": "4.3.0", + "System.Console": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Diagnostics.Tools": "4.3.0", + "System.Diagnostics.Tracing": "4.3.0", + "System.Globalization": "4.3.0", + "System.Globalization.Calendars": "4.3.0", + "System.IO": "4.3.0", + "System.IO.Compression": "4.3.0", + "System.IO.Compression.ZipFile": "4.3.0", + "System.IO.FileSystem": "4.3.0", + "System.IO.FileSystem.Primitives": "4.3.0", + "System.Linq": "4.3.0", + "System.Linq.Expressions": "4.3.0", + "System.Net.Http": "4.3.0", + "System.Net.Primitives": "4.3.0", + "System.Net.Sockets": "4.3.0", + "System.ObjectModel": "4.3.0", + "System.Reflection": "4.3.0", + "System.Reflection.Extensions": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.1", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Runtime.InteropServices.RuntimeInformation": "4.3.0", + "System.Runtime.Numerics": "4.3.0", + "System.Security.Cryptography.Algorithms": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Security.Cryptography.X509Certificates": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Text.Encoding.Extensions": "4.3.0", + "System.Text.RegularExpressions": "4.3.0", + "System.Threading": "4.3.0", + "System.Threading.Tasks": "4.3.0", + "System.Threading.Timer": "4.3.0", + "System.Xml.ReaderWriter": "4.3.0", + "System.Xml.XDocument": "4.3.0" + } + }, "Prism.Container.Abstractions/9.0.106": { "dependencies": { "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.1" @@ -322,6 +388,54 @@ } } }, + "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.native.System/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "2.0.0", + "Microsoft.NETCore.Targets": "1.1.3" + } + }, + "runtime.native.System.IO.Compression/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "2.0.0", + "Microsoft.NETCore.Targets": "1.1.3" + } + }, + "runtime.native.System.Net.Http/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "2.0.0", + "Microsoft.NETCore.Targets": "1.1.3" + } + }, + "runtime.native.System.Security.Cryptography.Apple/4.3.0": { + "dependencies": { + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "4.3.0" + } + }, + "runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "dependencies": { + "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" + } + }, + "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple/4.3.0": {}, + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, "Serilog/4.3.1": { "runtime": { "lib/net8.0/Serilog.dll": { @@ -366,6 +480,9 @@ } }, "SharpDX/4.2.0": { + "dependencies": { + "NETStandard.Library": "1.6.1" + }, "runtime": { "lib/netstandard1.1/SharpDX.dll": { "assemblyVersion": "4.2.0.0", @@ -375,6 +492,7 @@ }, "SharpDX.D3DCompiler/4.2.0": { "dependencies": { + "NETStandard.Library": "1.6.1", "SharpDX": "4.2.0" }, "runtime": { @@ -386,6 +504,7 @@ }, "SharpDX.Direct2D1/4.2.0": { "dependencies": { + "NETStandard.Library": "1.6.1", "SharpDX": "4.2.0", "SharpDX.DXGI": "4.2.0" }, @@ -398,6 +517,7 @@ }, "SharpDX.Direct3D10/4.2.0": { "dependencies": { + "NETStandard.Library": "1.6.1", "SharpDX": "4.2.0", "SharpDX.D3DCompiler": "4.2.0", "SharpDX.DXGI": "4.2.0" @@ -411,6 +531,7 @@ }, "SharpDX.Direct3D9/4.2.0": { "dependencies": { + "NETStandard.Library": "1.6.1", "SharpDX": "4.2.0" }, "runtime": { @@ -422,6 +543,7 @@ }, "SharpDX.DXGI/4.2.0": { "dependencies": { + "NETStandard.Library": "1.6.1", "SharpDX": "4.2.0" }, "runtime": { @@ -433,6 +555,7 @@ }, "SharpDX.Mathematics/4.2.0": { "dependencies": { + "NETStandard.Library": "1.6.1", "SharpDX": "4.2.0" }, "runtime": { @@ -463,6 +586,9 @@ } }, "SQLitePCLRaw.core/2.1.11": { + "dependencies": { + "System.Memory": "4.5.3" + }, "runtime": { "lib/netstandard2.0/SQLitePCLRaw.core.dll": { "assemblyVersion": "2.1.11.2622", @@ -600,7 +726,63 @@ } } }, + "System.AppContext/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.1" + } + }, + "System.Buffers/4.3.0": { + "dependencies": { + "System.Diagnostics.Debug": "4.3.0", + "System.Diagnostics.Tracing": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.1", + "System.Threading": "4.3.0" + } + }, + "System.Collections/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "2.0.0", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Runtime": "4.3.1" + } + }, + "System.Collections.Concurrent/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Diagnostics.Tracing": "4.3.0", + "System.Globalization": "4.3.0", + "System.Reflection": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.1", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0", + "System.Threading.Tasks": "4.3.0" + } + }, + "System.Collections.Immutable/1.7.1": {}, + "System.ComponentModel.Annotations/4.7.0": {}, + "System.Configuration.ConfigurationManager/6.0.0": { + "dependencies": { + "System.Security.Cryptography.ProtectedData": "6.0.0", + "System.Security.Permissions": "6.0.0" + } + }, + "System.Console/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "2.0.0", + "Microsoft.NETCore.Targets": "1.1.3", + "System.IO": "4.3.0", + "System.Runtime": "4.3.1", + "System.Text.Encoding": "4.3.0" + } + }, "System.Data.OleDb/6.0.0": { + "dependencies": { + "System.Configuration.ConfigurationManager": "6.0.0", + "System.Diagnostics.PerformanceCounter": "6.0.0" + }, "runtime": { "lib/net6.0/System.Data.OleDb.dll": { "assemblyVersion": "6.0.0.0", @@ -616,6 +798,127 @@ } } }, + "System.Diagnostics.Debug/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "2.0.0", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Runtime": "4.3.1" + } + }, + "System.Diagnostics.DiagnosticSource/4.7.1": {}, + "System.Diagnostics.PerformanceCounter/6.0.0": { + "dependencies": { + "System.Configuration.ConfigurationManager": "6.0.0" + } + }, + "System.Diagnostics.Tools/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "2.0.0", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Runtime": "4.3.1" + } + }, + "System.Diagnostics.Tracing/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "2.0.0", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Runtime": "4.3.1" + } + }, + "System.Drawing.Common/6.0.0": { + "dependencies": { + "Microsoft.Win32.SystemEvents": "6.0.0" + } + }, + "System.Drawing.Primitives/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.1", + "System.Runtime.Extensions": "4.3.0" + } + }, + "System.Globalization/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "2.0.0", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Runtime": "4.3.1" + } + }, + "System.Globalization.Calendars/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "2.0.0", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Globalization": "4.3.0", + "System.Runtime": "4.3.1" + } + }, + "System.Globalization.Extensions/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "2.0.0", + "System.Globalization": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.1", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.InteropServices": "4.3.0" + } + }, + "System.IO/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "2.0.0", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Runtime": "4.3.1", + "System.Text.Encoding": "4.3.0", + "System.Threading.Tasks": "4.3.0" + } + }, + "System.IO.Compression/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "2.0.0", + "System.Buffers": "4.3.0", + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.1", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading": "4.3.0", + "System.Threading.Tasks": "4.3.0", + "runtime.native.System": "4.3.0", + "runtime.native.System.IO.Compression": "4.3.0" + } + }, + "System.IO.Compression.ZipFile/4.3.0": { + "dependencies": { + "System.Buffers": "4.3.0", + "System.IO": "4.3.0", + "System.IO.Compression": "4.3.0", + "System.IO.FileSystem": "4.3.0", + "System.IO.FileSystem.Primitives": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.1", + "System.Runtime.Extensions": "4.3.0", + "System.Text.Encoding": "4.3.0" + } + }, + "System.IO.FileSystem/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "2.0.0", + "Microsoft.NETCore.Targets": "1.1.3", + "System.IO": "4.3.0", + "System.IO.FileSystem.Primitives": "4.3.0", + "System.Runtime": "4.3.1", + "System.Runtime.Handles": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading.Tasks": "4.3.0" + } + }, + "System.IO.FileSystem.Primitives/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.1" + } + }, "System.IO.Pipelines/10.0.0": { "runtime": { "lib/net8.0/System.IO.Pipelines.dll": { @@ -624,7 +927,100 @@ } } }, + "System.Linq/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.1", + "System.Runtime.Extensions": "4.3.0" + } + }, + "System.Linq.Expressions/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.Linq": "4.3.0", + "System.ObjectModel": "4.3.0", + "System.Reflection": "4.3.0", + "System.Reflection.Emit": "4.3.0", + "System.Reflection.Emit.ILGeneration": "4.3.0", + "System.Reflection.Emit.Lightweight": "4.3.0", + "System.Reflection.Extensions": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Reflection.TypeExtensions": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.1", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0" + } + }, + "System.Memory/4.5.3": {}, + "System.Net.Http/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "2.0.0", + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Diagnostics.DiagnosticSource": "4.7.1", + "System.Diagnostics.Tracing": "4.3.0", + "System.Globalization": "4.3.0", + "System.Globalization.Extensions": "4.3.0", + "System.IO": "4.3.0", + "System.IO.FileSystem": "4.3.0", + "System.Net.Primitives": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.1", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Security.Cryptography.Algorithms": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.OpenSsl": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Security.Cryptography.X509Certificates": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading": "4.3.0", + "System.Threading.Tasks": "4.3.0", + "runtime.native.System": "4.3.0", + "runtime.native.System.Net.Http": "4.3.0", + "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" + } + }, + "System.Net.Primitives/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "2.0.0", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Runtime": "4.3.1", + "System.Runtime.Handles": "4.3.0" + } + }, + "System.Net.Sockets/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "2.0.0", + "Microsoft.NETCore.Targets": "1.1.3", + "System.IO": "4.3.0", + "System.Net.Primitives": "4.3.0", + "System.Runtime": "4.3.1", + "System.Threading.Tasks": "4.3.0" + } + }, + "System.ObjectModel/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.1", + "System.Threading": "4.3.0" + } + }, "System.Private.ServiceModel/4.7.0": { + "dependencies": { + "System.Reflection.DispatchProxy": "4.5.0", + "System.Security.Cryptography.Xml": "4.5.0", + "System.Security.Principal.Windows": "4.5.0" + }, "runtime": { "lib/netstandard2.0/System.Private.ServiceModel.dll": { "assemblyVersion": "4.7.0.0", @@ -632,6 +1028,252 @@ } } }, + "System.Reflection/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "2.0.0", + "Microsoft.NETCore.Targets": "1.1.3", + "System.IO": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.1" + } + }, + "System.Reflection.DispatchProxy/4.5.0": {}, + "System.Reflection.Emit/4.3.0": { + "dependencies": { + "System.IO": "4.3.0", + "System.Reflection": "4.3.0", + "System.Reflection.Emit.ILGeneration": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.1" + } + }, + "System.Reflection.Emit.ILGeneration/4.3.0": { + "dependencies": { + "System.Reflection": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.1" + } + }, + "System.Reflection.Emit.Lightweight/4.3.0": { + "dependencies": { + "System.Reflection": "4.3.0", + "System.Reflection.Emit.ILGeneration": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.1" + } + }, + "System.Reflection.Extensions/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "2.0.0", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Reflection": "4.3.0", + "System.Runtime": "4.3.1" + } + }, + "System.Reflection.Primitives/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "2.0.0", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Runtime": "4.3.1" + } + }, + "System.Reflection.TypeExtensions/4.3.0": { + "dependencies": { + "System.Reflection": "4.3.0", + "System.Runtime": "4.3.1" + } + }, + "System.Resources.ResourceManager/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "2.0.0", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Globalization": "4.3.0", + "System.Reflection": "4.3.0", + "System.Runtime": "4.3.1" + } + }, + "System.Runtime/4.3.1": { + "dependencies": { + "Microsoft.NETCore.Platforms": "2.0.0", + "Microsoft.NETCore.Targets": "1.1.3" + } + }, + "System.Runtime.Extensions/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "2.0.0", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Runtime": "4.3.1" + } + }, + "System.Runtime.Handles/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "2.0.0", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Runtime": "4.3.1" + } + }, + "System.Runtime.InteropServices/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "2.0.0", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Reflection": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.1", + "System.Runtime.Handles": "4.3.0" + } + }, + "System.Runtime.InteropServices.RuntimeInformation/4.3.0": { + "dependencies": { + "System.Reflection": "4.3.0", + "System.Reflection.Extensions": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.1", + "System.Runtime.InteropServices": "4.3.0", + "System.Threading": "4.3.0", + "runtime.native.System": "4.3.0" + } + }, + "System.Runtime.Numerics/4.3.0": { + "dependencies": { + "System.Globalization": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.1", + "System.Runtime.Extensions": "4.3.0" + } + }, + "System.Security.AccessControl/6.0.0": {}, + "System.Security.Cryptography.Algorithms/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "2.0.0", + "System.Collections": "4.3.0", + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.1", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Runtime.Numerics": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "runtime.native.System.Security.Cryptography.Apple": "4.3.0", + "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" + } + }, + "System.Security.Cryptography.Cng/4.5.0": {}, + "System.Security.Cryptography.Csp/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "2.0.0", + "System.IO": "4.3.0", + "System.Reflection": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.1", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Security.Cryptography.Algorithms": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading": "4.3.0" + } + }, + "System.Security.Cryptography.Encoding/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "2.0.0", + "System.Collections": "4.3.0", + "System.Collections.Concurrent": "4.3.0", + "System.Linq": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.1", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" + } + }, + "System.Security.Cryptography.OpenSsl/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.1", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Runtime.Numerics": "4.3.0", + "System.Security.Cryptography.Algorithms": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" + } + }, + "System.Security.Cryptography.Pkcs/4.5.0": { + "dependencies": { + "System.Security.Cryptography.Cng": "4.5.0" + } + }, + "System.Security.Cryptography.Primitives/4.3.0": { + "dependencies": { + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.1", + "System.Threading": "4.3.0", + "System.Threading.Tasks": "4.3.0" + } + }, + "System.Security.Cryptography.ProtectedData/6.0.0": {}, + "System.Security.Cryptography.X509Certificates/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "2.0.0", + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.Globalization.Calendars": "4.3.0", + "System.IO": "4.3.0", + "System.IO.FileSystem": "4.3.0", + "System.IO.FileSystem.Primitives": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.1", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Runtime.Numerics": "4.3.0", + "System.Security.Cryptography.Algorithms": "4.3.0", + "System.Security.Cryptography.Cng": "4.5.0", + "System.Security.Cryptography.Csp": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.OpenSsl": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading": "4.3.0", + "runtime.native.System": "4.3.0", + "runtime.native.System.Net.Http": "4.3.0", + "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" + } + }, + "System.Security.Cryptography.Xml/4.5.0": { + "dependencies": { + "System.Security.Cryptography.Pkcs": "4.5.0", + "System.Security.Permissions": "6.0.0" + } + }, + "System.Security.Permissions/6.0.0": { + "dependencies": { + "System.Security.AccessControl": "6.0.0", + "System.Windows.Extensions": "6.0.0" + } + }, + "System.Security.Principal.Windows/4.5.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "2.0.0" + } + }, "System.ServiceModel.Http/4.7.0": { "dependencies": { "System.Private.ServiceModel": "4.7.0", @@ -659,6 +1301,21 @@ } } }, + "System.Text.Encoding/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "2.0.0", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Runtime": "4.3.1" + } + }, + "System.Text.Encoding.Extensions/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "2.0.0", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Runtime": "4.3.1", + "System.Text.Encoding": "4.3.0" + } + }, "System.Text.Encodings.Web/10.0.0": { "runtime": { "lib/net8.0/System.Text.Encodings.Web.dll": { @@ -687,6 +1344,78 @@ } } }, + "System.Text.RegularExpressions/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.1" + } + }, + "System.Threading/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.1", + "System.Threading.Tasks": "4.3.0" + } + }, + "System.Threading.Tasks/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "2.0.0", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Runtime": "4.3.1" + } + }, + "System.Threading.Tasks.Extensions/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Runtime": "4.3.1", + "System.Threading.Tasks": "4.3.0" + } + }, + "System.Threading.Timer/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "2.0.0", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Runtime": "4.3.1" + } + }, + "System.Windows.Extensions/6.0.0": { + "dependencies": { + "System.Drawing.Common": "6.0.0" + } + }, + "System.Xml.ReaderWriter/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.IO.FileSystem": "4.3.0", + "System.IO.FileSystem.Primitives": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.1", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Text.Encoding.Extensions": "4.3.0", + "System.Text.RegularExpressions": "4.3.0", + "System.Threading.Tasks": "4.3.0", + "System.Threading.Tasks.Extensions": "4.3.0" + } + }, + "System.Xml.XDocument/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Diagnostics.Tools": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.Reflection": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.1", + "System.Runtime.Extensions": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading": "4.3.0", + "System.Xml.ReaderWriter": "4.3.0" + } + }, "Telerik.UI.for.Wpf.NetCore.Xaml/2024.1.408": { "dependencies": { "Microsoft.EntityFrameworkCore": "3.1.5", @@ -698,6 +1427,7 @@ "SharpDX.Direct3D9": "4.2.0", "SharpDX.Mathematics": "4.2.0", "System.Data.OleDb": "6.0.0", + "System.Drawing.Common": "6.0.0", "System.ServiceModel.Http": "4.7.0" }, "runtime": { @@ -1058,6 +1788,13 @@ "path": "microsoft.entityframeworkcore.abstractions/3.1.5", "hashPath": "microsoft.entityframeworkcore.abstractions.3.1.5.nupkg.sha512" }, + "Microsoft.EntityFrameworkCore.Analyzers/3.1.5": { + "type": "package", + "serviceable": true, + "sha512": "sha512-NhxlI6Qj/QUt79ApeBrpKo+a5TGt/UCddxd9rLHD7Zd6yLyfkDOMiyu4oPqhnMhpqmzo/gd79tW7BMwIxgEZCw==", + "path": "microsoft.entityframeworkcore.analyzers/3.1.5", + "hashPath": "microsoft.entityframeworkcore.analyzers.3.1.5.nupkg.sha512" + }, "Microsoft.Extensions.Caching.Abstractions/3.1.5": { "type": "package", "serviceable": true, @@ -1142,6 +1879,20 @@ "path": "microsoft.extensions.primitives/10.0.0", "hashPath": "microsoft.extensions.primitives.10.0.0.nupkg.sha512" }, + "Microsoft.NETCore.Platforms/2.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-VdLJOCXhZaEMY7Hm2GKiULmn7IEPFE4XC5LPSfBVCUIA8YLZVh846gtfBJalsPQF2PlzdD7ecX7DZEulJ402ZQ==", + "path": "microsoft.netcore.platforms/2.0.0", + "hashPath": "microsoft.netcore.platforms.2.0.0.nupkg.sha512" + }, + "Microsoft.NETCore.Targets/1.1.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3Wrmi0kJDzClwAC+iBdUBpEKmEle8FQNsCs77fkiOIw/9oYA07bL1EZNX0kQ2OMN3xpwvl0vAtOCYY3ndDNlhQ==", + "path": "microsoft.netcore.targets/1.1.3", + "hashPath": "microsoft.netcore.targets.1.1.3.nupkg.sha512" + }, "Microsoft.OData.Client/7.8.3": { "type": "package", "serviceable": true, @@ -1170,6 +1921,20 @@ "path": "microsoft.spatial/7.8.3", "hashPath": "microsoft.spatial.7.8.3.nupkg.sha512" }, + "Microsoft.Win32.Primitives/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-9ZQKCWxH7Ijp9BfahvL2Zyf1cJIk8XYLF6Yjzr2yi0b2cOut/HQ31qf1ThHAgCc3WiZMdnWcfJCgN82/0UunxA==", + "path": "microsoft.win32.primitives/4.3.0", + "hashPath": "microsoft.win32.primitives.4.3.0.nupkg.sha512" + }, + "Microsoft.Win32.SystemEvents/6.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-hqTM5628jSsQiv+HGpiq3WKBl2c8v1KZfby2J6Pr7pEPlK9waPdgEO6b8A/+/xn/yZ9ulv8HuqK71ONy2tg67A==", + "path": "microsoft.win32.systemevents/6.0.0", + "hashPath": "microsoft.win32.systemevents.6.0.0.nupkg.sha512" + }, "Microsoft.Xaml.Behaviors.Wpf/1.1.122": { "type": "package", "serviceable": true, @@ -1177,6 +1942,13 @@ "path": "microsoft.xaml.behaviors.wpf/1.1.122", "hashPath": "microsoft.xaml.behaviors.wpf.1.1.122.nupkg.sha512" }, + "NETStandard.Library/1.6.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-WcSp3+vP+yHNgS8EV5J7pZ9IRpeDuARBPN28by8zqff1wJQXm26PVU8L3/fYLBJVU7BtDyqNVWq2KlCVvSSR4A==", + "path": "netstandard.library/1.6.1", + "hashPath": "netstandard.library.1.6.1.nupkg.sha512" + }, "Prism.Container.Abstractions/9.0.106": { "type": "package", "serviceable": true, @@ -1205,6 +1977,118 @@ "path": "prism.wpf/9.0.537", "hashPath": "prism.wpf.9.0.537.nupkg.sha512" }, + "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-HdSSp5MnJSsg08KMfZThpuLPJpPwE5hBXvHwoKWosyHHfe8Mh5WKT0ylEOf6yNzX6Ngjxe4Whkafh5q7Ymac4Q==", + "path": "runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-+yH1a49wJMy8Zt4yx5RhJrxO/DBDByAiCzNwiETI+1S4mPdCu0OY4djdciC7Vssk0l22wQaDLrXxXkp+3+7bVA==", + "path": "runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-c3YNH1GQJbfIPJeCnr4avseugSqPrxwIqzthYyZDN6EuOyNOzq+y2KSUfRcXauya1sF4foESTgwM5e1A8arAKw==", + "path": "runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.native.System/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==", + "path": "runtime.native.system/4.3.0", + "hashPath": "runtime.native.system.4.3.0.nupkg.sha512" + }, + "runtime.native.System.IO.Compression/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-INBPonS5QPEgn7naufQFXJEp3zX6L4bwHgJ/ZH78aBTpeNfQMtf7C6VrAFhlq2xxWBveIOWyFzQjJ8XzHMhdOQ==", + "path": "runtime.native.system.io.compression/4.3.0", + "hashPath": "runtime.native.system.io.compression.4.3.0.nupkg.sha512" + }, + "runtime.native.System.Net.Http/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ZVuZJqnnegJhd2k/PtAbbIcZ3aZeITq3sj06oKfMBSfphW3HDmk/t4ObvbOk/JA/swGR0LNqMksAh/f7gpTROg==", + "path": "runtime.native.system.net.http/4.3.0", + "hashPath": "runtime.native.system.net.http.4.3.0.nupkg.sha512" + }, + "runtime.native.System.Security.Cryptography.Apple/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-DloMk88juo0OuOWr56QG7MNchmafTLYWvABy36izkrLI5VledI0rq28KGs1i9wbpeT9NPQrx/wTf8U2vazqQ3Q==", + "path": "runtime.native.system.security.cryptography.apple/4.3.0", + "hashPath": "runtime.native.system.security.cryptography.apple.4.3.0.nupkg.sha512" + }, + "runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-NS1U+700m4KFRHR5o4vo9DSlTmlCKu/u7dtE5sUHVIPB+xpXxYQvgBgA6wEIeCz6Yfn0Z52/72WYsToCEPJnrw==", + "path": "runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-b3pthNgxxFcD+Pc0WSEoC0+md3MyhRS6aCEeenvNE3Fdw1HyJ18ZhRFVJJzIeR/O/jpxPboB805Ho0T3Ul7w8A==", + "path": "runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-KeLz4HClKf+nFS7p/6Fi/CqyLXh81FpiGzcmuS8DGi9lUqSnZ6Es23/gv2O+1XVGfrbNmviF7CckBpavkBoIFQ==", + "path": "runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-kVXCuMTrTlxq4XOOMAysuNwsXWpYeboGddNGpIgNSZmv1b6r/s/DPk0fYMB7Q5Qo4bY68o48jt4T4y5BVecbCQ==", + "path": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple/4.3.0", + "hashPath": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple.4.3.0.nupkg.sha512" + }, + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-X7IdhILzr4ROXd8mI1BUCQMSHSQwelUlBjF1JyTKCjXaOGn2fB4EKBxQbCK2VjO3WaWIdlXZL3W6TiIVnrhX4g==", + "path": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-nyFNiCk/r+VOiIqreLix8yN+q3Wga9+SE8BCgkf+2BwEKiNx6DyvFjCgkfV743/grxv8jHJ8gUK4XEQw7yzRYg==", + "path": "runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ytoewC6wGorL7KoCAvRfsgoJPJbNq+64k2SqW6JcOAebWsFUvCCYgfzQMrnpvPiEl4OrblUlhF2ji+Q1+SVLrQ==", + "path": "runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-I8bKw2I8k58Wx7fMKQJn2R8lamboCAiHfHeV/pS65ScKWMMI0+wJkLYlEKvgW1D/XvSl/221clBoR2q9QNNM7A==", + "path": "runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-VB5cn/7OzUfzdnC8tqAIMQciVLiq2epm2NrAm1E9OjNRyG4lVhfR61SMcLizejzQP8R8Uf/0l5qOIbUEi+RdEg==", + "path": "runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, "Serilog/4.3.1": { "type": "package", "serviceable": true, @@ -1317,6 +2201,62 @@ "path": "sqlitepclraw.provider.e_sqlite3/2.1.11", "hashPath": "sqlitepclraw.provider.e_sqlite3.2.1.11.nupkg.sha512" }, + "System.AppContext/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-fKC+rmaLfeIzUhagxY17Q9siv/sPrjjKcfNg1Ic8IlQkZLipo8ljcaZQu4VtI4Jqbzjc2VTjzGLF6WmsRXAEgA==", + "path": "system.appcontext/4.3.0", + "hashPath": "system.appcontext.4.3.0.nupkg.sha512" + }, + "System.Buffers/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ratu44uTIHgeBeI0dE8DWvmXVBSo4u7ozRZZHOMmK/JPpYyo0dAfgSiHlpiObMQ5lEtEyIXA40sKRYg5J6A8uQ==", + "path": "system.buffers/4.3.0", + "hashPath": "system.buffers.4.3.0.nupkg.sha512" + }, + "System.Collections/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==", + "path": "system.collections/4.3.0", + "hashPath": "system.collections.4.3.0.nupkg.sha512" + }, + "System.Collections.Concurrent/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ztl69Xp0Y/UXCL+3v3tEU+lIy+bvjKNUmopn1wep/a291pVPK7dxBd6T7WnlQqRog+d1a/hSsgRsmFnIBKTPLQ==", + "path": "system.collections.concurrent/4.3.0", + "hashPath": "system.collections.concurrent.4.3.0.nupkg.sha512" + }, + "System.Collections.Immutable/1.7.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-B43Zsz5EfMwyEbnObwRxW5u85fzJma3lrDeGcSAV1qkhSRTNY5uXAByTn9h9ddNdhM+4/YoLc/CI43umjwIl9Q==", + "path": "system.collections.immutable/1.7.1", + "hashPath": "system.collections.immutable.1.7.1.nupkg.sha512" + }, + "System.ComponentModel.Annotations/4.7.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-0YFqjhp/mYkDGpU0Ye1GjE53HMp9UVfGN7seGpAMttAC0C40v5gw598jCgpbBLMmCo0E5YRLBv5Z2doypO49ZQ==", + "path": "system.componentmodel.annotations/4.7.0", + "hashPath": "system.componentmodel.annotations.4.7.0.nupkg.sha512" + }, + "System.Configuration.ConfigurationManager/6.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-7T+m0kDSlIPTHIkPMIu6m6tV6qsMqJpvQWW2jIc2qi7sn40qxFo0q+7mEQAhMPXZHMKnWrnv47ntGlM/ejvw3g==", + "path": "system.configuration.configurationmanager/6.0.0", + "hashPath": "system.configuration.configurationmanager.6.0.0.nupkg.sha512" + }, + "System.Console/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-DHDrIxiqk1h03m6khKWV2X8p/uvN79rgSqpilL6uzpmSfxfU5ng8VcPtW4qsDsQDHiTv6IPV9TmD5M/vElPNLg==", + "path": "system.console/4.3.0", + "hashPath": "system.console.4.3.0.nupkg.sha512" + }, "System.Data.OleDb/6.0.0": { "type": "package", "serviceable": true, @@ -1324,6 +2264,111 @@ "path": "system.data.oledb/6.0.0", "hashPath": "system.data.oledb.6.0.0.nupkg.sha512" }, + "System.Diagnostics.Debug/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==", + "path": "system.diagnostics.debug/4.3.0", + "hashPath": "system.diagnostics.debug.4.3.0.nupkg.sha512" + }, + "System.Diagnostics.DiagnosticSource/4.7.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-j81Lovt90PDAq8kLpaJfJKV/rWdWuEk6jfV+MBkee33vzYLEUsy4gXK8laa9V2nZlLM9VM9yA/OOQxxPEJKAMw==", + "path": "system.diagnostics.diagnosticsource/4.7.1", + "hashPath": "system.diagnostics.diagnosticsource.4.7.1.nupkg.sha512" + }, + "System.Diagnostics.PerformanceCounter/6.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-gbeE5tNp/oB7O8kTTLh3wPPJCxpNOphXPTWVs1BsYuFOYapFijWuh0LYw1qnDo4gwDUYPXOmpTIhvtxisGsYOQ==", + "path": "system.diagnostics.performancecounter/6.0.0", + "hashPath": "system.diagnostics.performancecounter.6.0.0.nupkg.sha512" + }, + "System.Diagnostics.Tools/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-UUvkJfSYJMM6x527dJg2VyWPSRqIVB0Z7dbjHst1zmwTXz5CcXSYJFWRpuigfbO1Lf7yfZiIaEUesfnl/g5EyA==", + "path": "system.diagnostics.tools/4.3.0", + "hashPath": "system.diagnostics.tools.4.3.0.nupkg.sha512" + }, + "System.Diagnostics.Tracing/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-rswfv0f/Cqkh78rA5S8eN8Neocz234+emGCtTF3lxPY96F+mmmUen6tbn0glN6PMvlKQb9bPAY5e9u7fgPTkKw==", + "path": "system.diagnostics.tracing/4.3.0", + "hashPath": "system.diagnostics.tracing.4.3.0.nupkg.sha512" + }, + "System.Drawing.Common/6.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-NfuoKUiP2nUWwKZN6twGqXioIe1zVD0RIj2t976A+czLHr2nY454RwwXs6JU9Htc6mwqL6Dn/nEL3dpVf2jOhg==", + "path": "system.drawing.common/6.0.0", + "hashPath": "system.drawing.common.6.0.0.nupkg.sha512" + }, + "System.Drawing.Primitives/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-1QU/c35gwdhvj77fkScXQQbjiVAqIL3fEYn/19NE0CV/ic5TN5PyWAft8HsrbRd4SBLEoErNCkWSzMDc0MmbRw==", + "path": "system.drawing.primitives/4.3.0", + "hashPath": "system.drawing.primitives.4.3.0.nupkg.sha512" + }, + "System.Globalization/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==", + "path": "system.globalization/4.3.0", + "hashPath": "system.globalization.4.3.0.nupkg.sha512" + }, + "System.Globalization.Calendars/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-GUlBtdOWT4LTV3I+9/PJW+56AnnChTaOqqTLFtdmype/L500M2LIyXgmtd9X2P2VOkmJd5c67H5SaC2QcL1bFA==", + "path": "system.globalization.calendars/4.3.0", + "hashPath": "system.globalization.calendars.4.3.0.nupkg.sha512" + }, + "System.Globalization.Extensions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-FhKmdR6MPG+pxow6wGtNAWdZh7noIOpdD5TwQ3CprzgIE1bBBoim0vbR1+AWsWjQmU7zXHgQo4TWSP6lCeiWcQ==", + "path": "system.globalization.extensions/4.3.0", + "hashPath": "system.globalization.extensions.4.3.0.nupkg.sha512" + }, + "System.IO/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==", + "path": "system.io/4.3.0", + "hashPath": "system.io.4.3.0.nupkg.sha512" + }, + "System.IO.Compression/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-YHndyoiV90iu4iKG115ibkhrG+S3jBm8Ap9OwoUAzO5oPDAWcr0SFwQFm0HjM8WkEZWo0zvLTyLmbvTkW1bXgg==", + "path": "system.io.compression/4.3.0", + "hashPath": "system.io.compression.4.3.0.nupkg.sha512" + }, + "System.IO.Compression.ZipFile/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-G4HwjEsgIwy3JFBduZ9quBkAu+eUwjIdJleuNSgmUojbH6O3mlvEIme+GHx/cLlTAPcrnnL7GqvB9pTlWRfhOg==", + "path": "system.io.compression.zipfile/4.3.0", + "hashPath": "system.io.compression.zipfile.4.3.0.nupkg.sha512" + }, + "System.IO.FileSystem/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==", + "path": "system.io.filesystem/4.3.0", + "hashPath": "system.io.filesystem.4.3.0.nupkg.sha512" + }, + "System.IO.FileSystem.Primitives/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-6QOb2XFLch7bEc4lIcJH49nJN2HV+OC3fHDgsLVsBVBk3Y4hFAnOBGzJ2lUu7CyDDFo9IBWkSsnbkT6IBwwiMw==", + "path": "system.io.filesystem.primitives/4.3.0", + "hashPath": "system.io.filesystem.primitives.4.3.0.nupkg.sha512" + }, "System.IO.Pipelines/10.0.0": { "type": "package", "serviceable": true, @@ -1331,6 +2376,55 @@ "path": "system.io.pipelines/10.0.0", "hashPath": "system.io.pipelines.10.0.0.nupkg.sha512" }, + "System.Linq/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-5DbqIUpsDp0dFftytzuMmc0oeMdQwjcP/EWxsksIz/w1TcFRkZ3yKKz0PqiYFMmEwPSWw+qNVqD7PJ889JzHbw==", + "path": "system.linq/4.3.0", + "hashPath": "system.linq.4.3.0.nupkg.sha512" + }, + "System.Linq.Expressions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-PGKkrd2khG4CnlyJwxwwaWWiSiWFNBGlgXvJpeO0xCXrZ89ODrQ6tjEWS/kOqZ8GwEOUATtKtzp1eRgmYNfclg==", + "path": "system.linq.expressions/4.3.0", + "hashPath": "system.linq.expressions.4.3.0.nupkg.sha512" + }, + "System.Memory/4.5.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3oDzvc/zzetpTKWMShs1AADwZjQ/36HnsufHRPcOjyRAAMLDlu2iD33MBI2opxnezcVUtXyqDXXjoFMOU9c7SA==", + "path": "system.memory/4.5.3", + "hashPath": "system.memory.4.5.3.nupkg.sha512" + }, + "System.Net.Http/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-sYg+FtILtRQuYWSIAuNOELwVuVsxVyJGWQyOnlAzhV4xvhyFnON1bAzYYC+jjRW8JREM45R0R5Dgi8MTC5sEwA==", + "path": "system.net.http/4.3.0", + "hashPath": "system.net.http.4.3.0.nupkg.sha512" + }, + "System.Net.Primitives/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-qOu+hDwFwoZPbzPvwut2qATe3ygjeQBDQj91xlsaqGFQUI5i4ZnZb8yyQuLGpDGivEPIt8EJkd1BVzVoP31FXA==", + "path": "system.net.primitives/4.3.0", + "hashPath": "system.net.primitives.4.3.0.nupkg.sha512" + }, + "System.Net.Sockets/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-m6icV6TqQOAdgt5N/9I5KNpjom/5NFtkmGseEH+AK/hny8XrytLH3+b5M8zL/Ycg3fhIocFpUMyl/wpFnVRvdw==", + "path": "system.net.sockets/4.3.0", + "hashPath": "system.net.sockets.4.3.0.nupkg.sha512" + }, + "System.ObjectModel/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-bdX+80eKv9bN6K4N+d77OankKHGn6CH711a6fcOpMQu2Fckp/Ft4L/kW9WznHpyR0NRAvJutzOMHNNlBGvxQzQ==", + "path": "system.objectmodel/4.3.0", + "hashPath": "system.objectmodel.4.3.0.nupkg.sha512" + }, "System.Private.ServiceModel/4.7.0": { "type": "package", "serviceable": true, @@ -1338,6 +2432,202 @@ "path": "system.private.servicemodel/4.7.0", "hashPath": "system.private.servicemodel.4.7.0.nupkg.sha512" }, + "System.Reflection/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==", + "path": "system.reflection/4.3.0", + "hashPath": "system.reflection.4.3.0.nupkg.sha512" + }, + "System.Reflection.DispatchProxy/4.5.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-+UW1hq11TNSeb+16rIk8hRQ02o339NFyzMc4ma/FqmxBzM30l1c2IherBB4ld1MNcenS48fz8tbt50OW4rVULA==", + "path": "system.reflection.dispatchproxy/4.5.0", + "hashPath": "system.reflection.dispatchproxy.4.5.0.nupkg.sha512" + }, + "System.Reflection.Emit/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-228FG0jLcIwTVJyz8CLFKueVqQK36ANazUManGaJHkO0icjiIypKW7YLWLIWahyIkdh5M7mV2dJepllLyA1SKg==", + "path": "system.reflection.emit/4.3.0", + "hashPath": "system.reflection.emit.4.3.0.nupkg.sha512" + }, + "System.Reflection.Emit.ILGeneration/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-59tBslAk9733NXLrUJrwNZEzbMAcu8k344OYo+wfSVygcgZ9lgBdGIzH/nrg3LYhXceynyvTc8t5/GD4Ri0/ng==", + "path": "system.reflection.emit.ilgeneration/4.3.0", + "hashPath": "system.reflection.emit.ilgeneration.4.3.0.nupkg.sha512" + }, + "System.Reflection.Emit.Lightweight/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-oadVHGSMsTmZsAF864QYN1t1QzZjIcuKU3l2S9cZOwDdDueNTrqq1yRj7koFfIGEnKpt6NjpL3rOzRhs4ryOgA==", + "path": "system.reflection.emit.lightweight/4.3.0", + "hashPath": "system.reflection.emit.lightweight.4.3.0.nupkg.sha512" + }, + "System.Reflection.Extensions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==", + "path": "system.reflection.extensions/4.3.0", + "hashPath": "system.reflection.extensions.4.3.0.nupkg.sha512" + }, + "System.Reflection.Primitives/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==", + "path": "system.reflection.primitives/4.3.0", + "hashPath": "system.reflection.primitives.4.3.0.nupkg.sha512" + }, + "System.Reflection.TypeExtensions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-7u6ulLcZbyxB5Gq0nMkQttcdBTx57ibzw+4IOXEfR+sXYQoHvjW5LTLyNr8O22UIMrqYbchJQJnos4eooYzYJA==", + "path": "system.reflection.typeextensions/4.3.0", + "hashPath": "system.reflection.typeextensions.4.3.0.nupkg.sha512" + }, + "System.Resources.ResourceManager/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==", + "path": "system.resources.resourcemanager/4.3.0", + "hashPath": "system.resources.resourcemanager.4.3.0.nupkg.sha512" + }, + "System.Runtime/4.3.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-abhfv1dTK6NXOmu4bgHIONxHyEqFjW8HwXPmpY9gmll+ix9UNo4XDcmzJn6oLooftxNssVHdJC1pGT9jkSynQg==", + "path": "system.runtime/4.3.1", + "hashPath": "system.runtime.4.3.1.nupkg.sha512" + }, + "System.Runtime.Extensions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==", + "path": "system.runtime.extensions/4.3.0", + "hashPath": "system.runtime.extensions.4.3.0.nupkg.sha512" + }, + "System.Runtime.Handles/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==", + "path": "system.runtime.handles/4.3.0", + "hashPath": "system.runtime.handles.4.3.0.nupkg.sha512" + }, + "System.Runtime.InteropServices/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==", + "path": "system.runtime.interopservices/4.3.0", + "hashPath": "system.runtime.interopservices.4.3.0.nupkg.sha512" + }, + "System.Runtime.InteropServices.RuntimeInformation/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-cbz4YJMqRDR7oLeMRbdYv7mYzc++17lNhScCX0goO2XpGWdvAt60CGN+FHdePUEHCe/Jy9jUlvNAiNdM+7jsOw==", + "path": "system.runtime.interopservices.runtimeinformation/4.3.0", + "hashPath": "system.runtime.interopservices.runtimeinformation.4.3.0.nupkg.sha512" + }, + "System.Runtime.Numerics/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-yMH+MfdzHjy17l2KESnPiF2dwq7T+xLnSJar7slyimAkUh/gTrS9/UQOtv7xarskJ2/XDSNvfLGOBQPjL7PaHQ==", + "path": "system.runtime.numerics/4.3.0", + "hashPath": "system.runtime.numerics.4.3.0.nupkg.sha512" + }, + "System.Security.AccessControl/6.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", + "path": "system.security.accesscontrol/6.0.0", + "hashPath": "system.security.accesscontrol.6.0.0.nupkg.sha512" + }, + "System.Security.Cryptography.Algorithms/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-W1kd2Y8mYSCgc3ULTAZ0hOP2dSdG5YauTb1089T0/kRcN2MpSAW1izOFROrJgxSlMn3ArsgHXagigyi+ibhevg==", + "path": "system.security.cryptography.algorithms/4.3.0", + "hashPath": "system.security.cryptography.algorithms.4.3.0.nupkg.sha512" + }, + "System.Security.Cryptography.Cng/4.5.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-WG3r7EyjUe9CMPFSs6bty5doUqT+q9pbI80hlNzo2SkPkZ4VTuZkGWjpp77JB8+uaL4DFPRdBsAY+DX3dBK92A==", + "path": "system.security.cryptography.cng/4.5.0", + "hashPath": "system.security.cryptography.cng.4.5.0.nupkg.sha512" + }, + "System.Security.Cryptography.Csp/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-X4s/FCkEUnRGnwR3aSfVIkldBmtURMhmexALNTwpjklzxWU7yjMk7GHLKOZTNkgnWnE0q7+BCf9N2LVRWxewaA==", + "path": "system.security.cryptography.csp/4.3.0", + "hashPath": "system.security.cryptography.csp.4.3.0.nupkg.sha512" + }, + "System.Security.Cryptography.Encoding/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==", + "path": "system.security.cryptography.encoding/4.3.0", + "hashPath": "system.security.cryptography.encoding.4.3.0.nupkg.sha512" + }, + "System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-h4CEgOgv5PKVF/HwaHzJRiVboL2THYCou97zpmhjghx5frc7fIvlkY1jL+lnIQyChrJDMNEXS6r7byGif8Cy4w==", + "path": "system.security.cryptography.openssl/4.3.0", + "hashPath": "system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "System.Security.Cryptography.Pkcs/4.5.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-TGQX51gxpY3K3I6LJlE2LAftVlIMqJf0cBGhz68Y89jjk3LJCB6SrwiD+YN1fkqemBvWGs+GjyMJukl6d6goyQ==", + "path": "system.security.cryptography.pkcs/4.5.0", + "hashPath": "system.security.cryptography.pkcs.4.5.0.nupkg.sha512" + }, + "System.Security.Cryptography.Primitives/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-7bDIyVFNL/xKeFHjhobUAQqSpJq9YTOpbEs6mR233Et01STBMXNAc/V+BM6dwYGc95gVh/Zf+iVXWzj3mE8DWg==", + "path": "system.security.cryptography.primitives/4.3.0", + "hashPath": "system.security.cryptography.primitives.4.3.0.nupkg.sha512" + }, + "System.Security.Cryptography.ProtectedData/6.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-rp1gMNEZpvx9vP0JW0oHLxlf8oSiQgtno77Y4PLUBjSiDYoD77Y8uXHr1Ea5XG4/pIKhqAdxZ8v8OTUtqo9PeQ==", + "path": "system.security.cryptography.protecteddata/6.0.0", + "hashPath": "system.security.cryptography.protecteddata.6.0.0.nupkg.sha512" + }, + "System.Security.Cryptography.X509Certificates/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-t2Tmu6Y2NtJ2um0RtcuhP7ZdNNxXEgUm2JeoA/0NvlMjAhKCnM1NX07TDl3244mVp3QU6LPEhT3HTtH1uF7IYw==", + "path": "system.security.cryptography.x509certificates/4.3.0", + "hashPath": "system.security.cryptography.x509certificates.4.3.0.nupkg.sha512" + }, + "System.Security.Cryptography.Xml/4.5.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-i2Jn6rGXR63J0zIklImGRkDIJL4b1NfPSEbIVHBlqoIb12lfXIigCbDRpDmIEzwSo/v1U5y/rYJdzZYSyCWxvg==", + "path": "system.security.cryptography.xml/4.5.0", + "hashPath": "system.security.cryptography.xml.4.5.0.nupkg.sha512" + }, + "System.Security.Permissions/6.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-T/uuc7AklkDoxmcJ7LGkyX1CcSviZuLCa4jg3PekfJ7SU0niF0IVTXwUiNVP9DSpzou2PpxJ+eNY2IfDM90ZCg==", + "path": "system.security.permissions/6.0.0", + "hashPath": "system.security.permissions.6.0.0.nupkg.sha512" + }, + "System.Security.Principal.Windows/4.5.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-U77HfRXlZlOeIXd//Yoj6Jnk8AXlbeisf1oq1os+hxOGVnuG+lGSfGqTwTZBoORFF6j/0q7HXIl8cqwQ9aUGqQ==", + "path": "system.security.principal.windows/4.5.0", + "hashPath": "system.security.principal.windows.4.5.0.nupkg.sha512" + }, "System.ServiceModel.Http/4.7.0": { "type": "package", "serviceable": true, @@ -1352,6 +2642,20 @@ "path": "system.servicemodel.primitives/4.7.0", "hashPath": "system.servicemodel.primitives.4.7.0.nupkg.sha512" }, + "System.Text.Encoding/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==", + "path": "system.text.encoding/4.3.0", + "hashPath": "system.text.encoding.4.3.0.nupkg.sha512" + }, + "System.Text.Encoding.Extensions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-YVMK0Bt/A43RmwizJoZ22ei2nmrhobgeiYwFzC4YAN+nue8RF6djXDMog0UCn+brerQoYVyaS+ghy9P/MUVcmw==", + "path": "system.text.encoding.extensions/4.3.0", + "hashPath": "system.text.encoding.extensions.4.3.0.nupkg.sha512" + }, "System.Text.Encodings.Web/10.0.0": { "type": "package", "serviceable": true, @@ -1366,6 +2670,62 @@ "path": "system.text.json/10.0.0", "hashPath": "system.text.json.10.0.0.nupkg.sha512" }, + "System.Text.RegularExpressions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-RpT2DA+L660cBt1FssIE9CAGpLFdFPuheB7pLpKpn6ZXNby7jDERe8Ua/Ne2xGiwLVG2JOqziiaVCGDon5sKFA==", + "path": "system.text.regularexpressions/4.3.0", + "hashPath": "system.text.regularexpressions.4.3.0.nupkg.sha512" + }, + "System.Threading/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==", + "path": "system.threading/4.3.0", + "hashPath": "system.threading.4.3.0.nupkg.sha512" + }, + "System.Threading.Tasks/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==", + "path": "system.threading.tasks/4.3.0", + "hashPath": "system.threading.tasks.4.3.0.nupkg.sha512" + }, + "System.Threading.Tasks.Extensions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-npvJkVKl5rKXrtl1Kkm6OhOUaYGEiF9wFbppFRWSMoApKzt2PiPHT2Bb8a5sAWxprvdOAtvaARS9QYMznEUtug==", + "path": "system.threading.tasks.extensions/4.3.0", + "hashPath": "system.threading.tasks.extensions.4.3.0.nupkg.sha512" + }, + "System.Threading.Timer/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Z6YfyYTCg7lOZjJzBjONJTFKGN9/NIYKSxhU5GRd+DTwHSZyvWp1xuI5aR+dLg+ayyC5Xv57KiY4oJ0tMO89fQ==", + "path": "system.threading.timer/4.3.0", + "hashPath": "system.threading.timer.4.3.0.nupkg.sha512" + }, + "System.Windows.Extensions/6.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-IXoJOXIqc39AIe+CIR7koBtRGMiCt/LPM3lI+PELtDIy9XdyeSrwXFdWV9dzJ2Awl0paLWUaknLxFQ5HpHZUog==", + "path": "system.windows.extensions/6.0.0", + "hashPath": "system.windows.extensions.6.0.0.nupkg.sha512" + }, + "System.Xml.ReaderWriter/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-GrprA+Z0RUXaR4N7/eW71j1rgMnEnEVlgii49GZyAjTH7uliMnrOU3HNFBr6fEDBCJCIdlVNq9hHbaDR621XBA==", + "path": "system.xml.readerwriter/4.3.0", + "hashPath": "system.xml.readerwriter.4.3.0.nupkg.sha512" + }, + "System.Xml.XDocument/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-5zJ0XDxAIg8iy+t4aMnQAu0MqVbqyvfoUVl1yDV61xdo3Vth45oA2FoY4pPkxYAH5f8ixpmTqXeEIya95x0aCQ==", + "path": "system.xml.xdocument/4.3.0", + "hashPath": "system.xml.xdocument.4.3.0.nupkg.sha512" + }, "Telerik.UI.for.Wpf.NetCore.Xaml/2024.1.408": { "type": "package", "serviceable": true,