Soenneker.SemanticKernel.Cache 3.0.41

Prefix Reserved
There is a newer version of this package available.
See the version list below for details.
dotnet add package Soenneker.SemanticKernel.Cache --version 3.0.41
                    
NuGet\Install-Package Soenneker.SemanticKernel.Cache -Version 3.0.41
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Soenneker.SemanticKernel.Cache" Version="3.0.41" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Soenneker.SemanticKernel.Cache" Version="3.0.41" />
                    
Directory.Packages.props
<PackageReference Include="Soenneker.SemanticKernel.Cache" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Soenneker.SemanticKernel.Cache --version 3.0.41
                    
#r "nuget: Soenneker.SemanticKernel.Cache, 3.0.41"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Soenneker.SemanticKernel.Cache@3.0.41
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Soenneker.SemanticKernel.Cache&version=3.0.41
                    
Install as a Cake Addin
#tool nuget:?package=Soenneker.SemanticKernel.Cache&version=3.0.41
                    
Install as a Cake Tool

alternate text is missing from this package README image alternate text is missing from this package README image alternate text is missing from this package README image

alternate text is missing from this package README image Soenneker.SemanticKernel.Cache

Providing async thread-safe singleton Semantic Kernel instances

Why?

When using Microsoft.SemanticKernel, it's recommended to maintain long-lived kernel instances rather than re-creating them for each consumer or request. This avoids the overhead of reconfiguring connectors or plugins every time you need to perform a semantic operation. The SemanticKernelCache provides a thread-safe singleton cache per key via dependency injection. Kernel instances are created lazily using customizable options and disposed on application shutdown (or manually if needed).

Installation

Install the package via the .NET CLI:

dotnet add package Soenneker.SemanticKernel.Cache

Usage

1. Register the Cache in Dependency Injection

In your Program.cs (or equivalent startup file), register the cache with the DI container:

using Soenneker.SemanticKernel.Cache;

public static async Task Main(string[] args)
{
    var builder = WebApplication.CreateBuilder(args);

    // Register SemanticKernelCache as a singleton service.
    builder.Services.AddSemanticKernelCacheAsSingleton();

    // Other configuration...
}

2. Inject and Retrieve a Kernel Instance

Inject ISemanticKernelCache into your classes and retrieve a Microsoft.SemanticKernel.Kernel instance by providing the required options.

using System.Threading;
using System.Threading.Tasks;
using Microsoft.SemanticKernel;
using Microsoft.SemanticKernel.Chat;
using Soenneker.SemanticKernel.Cache;

public class TestClass
{
    private readonly ISemanticKernelCache _semanticKernelCache;
    private readonly SemanticKernelOptions _options;

    public TestClass(ISemanticKernelCache semanticKernelCache)
    {
        _semanticKernelCache = semanticKernelCache;
        
        // Create the options object once. Replace these with your actual values.
        var options = new SemanticKernelOptions
        {
            ModelId = "deepseek-r1:32b",
            Endpoint = "http://localhost:11434",
            KernelFactory = (opts, ct) =>
            {
                IKernelBuilder builder = Kernel.CreateBuilder().AddOllamaChatCompletion(opts.ModelId, new Uri(opts.Endpoint));

                return ValueTask.FromResult(builder);
            }
        };
    }

    public async async ValueTask<string> GetKernelResponse(string input, CancellationToken cancellationToken = default)
    {
        // Retrieve (or create) the kernel instance using a key (here, nameof(TestClass)).
        Kernel kernel = await _semanticKernelCache.Get(nameof(TestClass), _options, cancellationToken);

        // Retrieve the chat completion service from the kernel.
        var chatCompletionService = kernel.GetRequiredService<IChatCompletionService>();

        // Create a chat history and add the user's message.
        var history = new ChatHistory();
        history.AddUserMessage(input);

        // Request a chat completion using the chat service.
        var chatResult = await chatCompletionService.GetChatMessageContentAsync(history, kernel: kernel);

        // Return the chat result (or process it further as needed).
        return chatResult.ToString();
    }
}

Extending for Different Connectors/Plugins

The SemanticKernelOptions class includes an optional KernelFactory delegate. This allows you to override the default behavior (which uses the Azure Text Completion service) and create the kernel using a different connector or plugin. For example:

var openAiOptions = new SemanticKernelOptions
{
    ModelId = "openai-model-id",
    Endpoint = "https://api.openai.com/v1/",
    ApiKey = "your-openai-api-key",
    KernelFactory = (opts, ct) =>
    {
        Kernel kernel = new KernelBuilder().AddOpenAITextCompletionService(opts.ModelId, opts.Endpoint, opts.ApiKey);

        return ValueTask.FromResult(kernel);
    },
    ConfigureKernelAsync = async kernel =>
    {
        // Optionally, import skills or perform additional configuration.
        await ValueTask.CompletedTask;
    }
};

Kernel openAiKernel = await semanticKernelCache.Get("openaiKernel", openAiOptions);

This design makes it straightforward to support multiple types of Semantic Kernel configurations using the same caching mechanism.

Product Compatible and additional computed target framework versions.
.NET net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Soenneker.SemanticKernel.Cache:

Package Downloads
Soenneker.SemanticKernel.Pool

Manages a pool of Semantic Kernel instances with per-entry rate limiting.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
3.0.518 0 8/28/2025
3.0.517 6 8/27/2025
3.0.516 103 8/20/2025
3.0.515 93 8/20/2025
3.0.514 131 8/17/2025
3.0.513 97 8/17/2025
3.0.512 206 8/15/2025
3.0.511 165 8/14/2025
3.0.510 164 8/12/2025
3.0.509 128 8/12/2025
3.0.508 196 8/12/2025
3.0.507 128 8/12/2025
3.0.506 167 8/11/2025
3.0.505 134 8/11/2025
3.0.504 123 8/11/2025
3.0.503 173 8/11/2025
3.0.502 119 8/11/2025
3.0.501 203 8/11/2025
3.0.500 247 8/11/2025
3.0.499 139 8/11/2025
3.0.498 285 8/6/2025
3.0.497 265 8/5/2025
3.0.496 211 8/5/2025
3.0.495 252 8/5/2025
3.0.494 209 8/5/2025
3.0.493 204 7/30/2025
3.0.492 93 7/29/2025
3.0.491 443 7/24/2025
3.0.490 436 7/24/2025
3.0.489 346 7/9/2025
3.0.488 175 7/9/2025
3.0.487 151 7/9/2025
3.0.486 132 7/9/2025
3.0.485 184 7/8/2025
3.0.484 188 7/8/2025
3.0.483 363 7/4/2025
3.0.482 285 7/1/2025
3.0.481 134 7/1/2025
3.0.480 277 6/28/2025
3.0.479 85 6/28/2025
3.0.478 63 6/28/2025
3.0.477 148 6/28/2025
3.0.476 63 6/28/2025
3.0.475 162 6/28/2025
3.0.474 64 6/28/2025
3.0.473 62 6/28/2025
3.0.472 73 6/27/2025
3.0.471 71 6/27/2025
3.0.470 82 6/27/2025
3.0.469 289 6/26/2025
3.0.468 179 6/25/2025
3.0.467 206 6/25/2025
3.0.466 192 6/24/2025
3.0.465 336 6/16/2025
3.0.464 144 6/16/2025
3.0.463 369 6/11/2025
3.0.462 329 6/11/2025
3.0.461 351 6/11/2025
3.0.460 366 6/11/2025
3.0.459 282 6/11/2025
3.0.458 286 6/11/2025
3.0.457 280 6/11/2025
3.0.456 320 6/10/2025
3.0.455 408 6/3/2025
3.0.454 173 6/3/2025
3.0.453 319 6/3/2025
3.0.452 201 6/2/2025
3.0.451 193 6/2/2025
3.0.450 259 5/28/2025
3.0.449 198 5/28/2025
3.0.448 201 5/28/2025
3.0.447 146 5/28/2025
3.0.446 164 5/27/2025
3.0.445 144 5/27/2025
3.0.444 202 5/27/2025
3.0.443 147 5/27/2025
3.0.442 189 5/27/2025
3.0.441 141 5/27/2025
3.0.440 165 5/27/2025
3.0.439 303 5/26/2025
3.0.438 137 5/25/2025
3.0.437 141 5/25/2025
3.0.436 136 5/23/2025
3.0.435 153 5/23/2025
3.0.434 154 5/23/2025
3.0.433 118 5/23/2025
3.0.432 144 5/23/2025
3.0.431 123 5/23/2025
3.0.430 150 5/23/2025
3.0.429 171 5/23/2025
3.0.428 142 5/23/2025
3.0.427 149 5/22/2025
3.0.426 139 5/22/2025
3.0.425 172 5/22/2025
3.0.424 357 5/21/2025
3.0.423 174 5/21/2025
3.0.422 213 5/20/2025
3.0.421 144 5/20/2025
3.0.420 200 5/19/2025
3.0.419 312 5/18/2025
3.0.418 166 5/18/2025
3.0.417 165 5/18/2025
3.0.416 177 5/18/2025
3.0.414 105 5/18/2025
3.0.413 166 5/16/2025
3.0.412 189 5/16/2025
3.0.411 241 5/14/2025
3.0.410 231 5/14/2025
3.0.409 229 5/14/2025
3.0.408 229 5/14/2025
3.0.407 231 5/14/2025
3.0.406 144 5/8/2025
3.0.405 145 5/8/2025
3.0.404 147 5/8/2025
3.0.403 143 5/8/2025
3.0.402 142 5/8/2025
3.0.401 153 5/8/2025
3.0.400 149 5/8/2025
3.0.399 151 5/7/2025
3.0.398 150 5/6/2025
3.0.397 145 5/6/2025
3.0.396 147 5/6/2025
3.0.395 146 5/5/2025
3.0.394 156 5/5/2025
3.0.393 143 5/5/2025
3.0.392 150 5/5/2025
3.0.391 157 5/5/2025
3.0.390 144 5/5/2025
3.0.389 143 5/5/2025
3.0.388 144 5/5/2025
3.0.387 145 5/5/2025
3.0.386 147 5/5/2025
3.0.385 143 4/29/2025
3.0.384 140 4/27/2025
3.0.383 94 4/27/2025
3.0.382 91 4/26/2025
3.0.381 93 4/26/2025
3.0.380 181 4/18/2025
3.0.379 136 4/11/2025
3.0.378 172 4/9/2025
3.0.377 163 4/9/2025
3.0.376 183 4/9/2025
3.0.375 177 4/9/2025
3.0.374 171 4/8/2025
3.0.373 169 4/8/2025
3.0.372 165 4/8/2025
3.0.371 181 4/8/2025
3.0.370 172 4/8/2025
3.0.369 164 4/8/2025
3.0.368 170 4/8/2025
3.0.367 169 4/8/2025
3.0.366 161 4/8/2025
3.0.365 167 4/8/2025
3.0.364 174 4/8/2025
3.0.363 172 4/8/2025
3.0.362 166 4/8/2025
3.0.361 174 4/8/2025
3.0.360 174 4/8/2025
3.0.359 168 4/7/2025
3.0.358 159 4/7/2025
3.0.357 170 4/7/2025
3.0.356 171 4/7/2025
3.0.355 161 4/7/2025
3.0.354 164 4/7/2025
3.0.353 165 4/7/2025
3.0.352 169 4/7/2025
3.0.351 163 4/7/2025
3.0.350 168 4/7/2025
3.0.349 157 4/7/2025
3.0.348 170 4/7/2025
3.0.347 166 4/7/2025
3.0.346 163 4/7/2025
3.0.345 170 4/7/2025
3.0.344 169 4/7/2025
3.0.343 164 4/7/2025
3.0.342 173 4/6/2025
3.0.341 162 4/6/2025
3.0.340 166 4/6/2025
3.0.339 166 4/6/2025
3.0.338 162 4/6/2025
3.0.337 168 4/6/2025
3.0.336 170 4/6/2025
3.0.335 166 4/6/2025
3.0.334 145 4/6/2025
3.0.333 139 4/6/2025
3.0.332 140 4/6/2025
3.0.331 137 4/6/2025
3.0.330 149 4/6/2025
3.0.329 158 4/6/2025
3.0.328 110 4/6/2025
3.0.327 124 4/6/2025
3.0.326 109 4/6/2025
3.0.325 113 4/5/2025
3.0.324 127 4/5/2025
3.0.323 89 4/5/2025
3.0.322 88 4/5/2025
3.0.321 92 4/5/2025
3.0.320 95 4/5/2025
3.0.319 95 4/5/2025
3.0.318 102 4/5/2025
3.0.317 95 4/5/2025
3.0.316 106 4/4/2025
3.0.315 105 4/4/2025
3.0.314 105 4/4/2025
3.0.313 155 4/4/2025
3.0.312 157 4/4/2025
3.0.311 152 4/4/2025
3.0.310 174 4/4/2025
3.0.309 159 4/4/2025
3.0.308 166 4/3/2025
3.0.307 166 4/3/2025
3.0.306 161 4/2/2025
3.0.305 171 4/1/2025
3.0.304 164 4/1/2025
3.0.303 159 4/1/2025
3.0.302 159 4/1/2025
3.0.301 160 4/1/2025
3.0.300 154 4/1/2025
3.0.299 172 4/1/2025
3.0.298 162 4/1/2025
3.0.297 159 4/1/2025
3.0.296 150 4/1/2025
3.0.295 153 3/31/2025
3.0.294 165 3/31/2025
3.0.293 150 3/31/2025
3.0.292 171 3/31/2025
3.0.291 162 3/30/2025
3.0.290 159 3/29/2025
3.0.289 100 3/29/2025
3.0.288 100 3/29/2025
3.0.287 103 3/29/2025
3.0.286 96 3/29/2025
3.0.285 108 3/29/2025
3.0.284 139 3/27/2025
3.0.283 158 3/27/2025
3.0.282 141 3/27/2025
3.0.281 140 3/27/2025
3.0.280 144 3/26/2025
3.0.279 477 3/26/2025
3.0.278 477 3/26/2025
3.0.277 479 3/26/2025
3.0.276 483 3/25/2025
3.0.275 482 3/25/2025
3.0.274 476 3/25/2025
3.0.273 490 3/25/2025
3.0.272 485 3/25/2025
3.0.271 484 3/25/2025
3.0.270 495 3/25/2025
3.0.269 97 3/21/2025
3.0.268 91 3/21/2025
3.0.267 99 3/21/2025
3.0.266 117 3/21/2025
3.0.265 114 3/21/2025
3.0.264 144 3/21/2025
3.0.263 142 3/21/2025
3.0.262 151 3/20/2025
3.0.261 149 3/20/2025
3.0.260 146 3/19/2025
3.0.259 148 3/19/2025
3.0.258 145 3/18/2025
3.0.257 145 3/18/2025
3.0.256 143 3/18/2025
3.0.255 151 3/18/2025
3.0.254 150 3/18/2025
3.0.253 148 3/18/2025
3.0.252 148 3/18/2025
3.0.251 151 3/18/2025
3.0.250 93 3/15/2025
3.0.249 75 3/15/2025
3.0.248 80 3/15/2025
3.0.247 81 3/15/2025
3.0.246 75 3/15/2025
3.0.245 70 3/15/2025
3.0.244 159 3/12/2025
3.0.243 166 3/12/2025
3.0.242 166 3/12/2025
3.0.241 161 3/12/2025
3.0.240 151 3/12/2025
3.0.239 155 3/12/2025
3.0.238 160 3/12/2025
3.0.237 160 3/12/2025
3.0.236 159 3/12/2025
3.0.235 158 3/12/2025
3.0.234 158 3/12/2025
3.0.233 170 3/11/2025
3.0.232 165 3/11/2025
3.0.231 162 3/11/2025
3.0.230 170 3/11/2025
3.0.229 162 3/11/2025
3.0.228 170 3/11/2025
3.0.227 160 3/11/2025
3.0.226 160 3/11/2025
3.0.225 174 3/11/2025
3.0.224 167 3/11/2025
3.0.223 167 3/11/2025
3.0.222 169 3/11/2025
3.0.221 219 3/7/2025
3.0.220 212 3/7/2025
3.0.219 212 3/7/2025
3.0.218 229 3/7/2025
3.0.217 215 3/7/2025
3.0.216 218 3/7/2025
3.0.215 214 3/7/2025
3.0.214 216 3/7/2025
3.0.213 223 3/7/2025
3.0.212 217 3/3/2025
3.0.211 115 3/2/2025
3.0.210 118 3/2/2025
3.0.209 101 3/2/2025
3.0.208 105 3/2/2025
3.0.207 100 3/2/2025
3.0.206 102 3/2/2025
3.0.205 100 3/2/2025
3.0.204 119 3/2/2025
3.0.203 90 3/2/2025
3.0.202 97 3/2/2025
3.0.201 108 3/2/2025
3.0.200 101 3/2/2025
3.0.199 98 3/2/2025
3.0.198 106 3/1/2025
3.0.197 102 3/1/2025
3.0.196 103 3/1/2025
3.0.195 99 3/1/2025
3.0.194 100 3/1/2025
3.0.193 103 3/1/2025
3.0.192 103 3/1/2025
3.0.191 104 3/1/2025
3.0.190 94 3/1/2025
3.0.189 99 3/1/2025
3.0.188 107 3/1/2025
3.0.187 97 3/1/2025
3.0.186 103 2/28/2025
3.0.185 105 2/26/2025
3.0.184 107 2/26/2025
3.0.183 103 2/26/2025
3.0.182 110 2/26/2025
3.0.181 101 2/26/2025
3.0.180 109 2/25/2025
3.0.179 103 2/25/2025
3.0.178 109 2/25/2025
3.0.177 104 2/25/2025
3.0.176 111 2/25/2025
3.0.175 107 2/25/2025
3.0.174 100 2/25/2025
3.0.173 106 2/25/2025
3.0.172 107 2/25/2025
3.0.171 106 2/24/2025
3.0.170 107 2/24/2025
3.0.169 98 2/24/2025
3.0.168 135 2/23/2025
3.0.167 97 2/23/2025
3.0.166 101 2/23/2025
3.0.165 99 2/23/2025
3.0.164 108 2/23/2025
3.0.163 97 2/23/2025
3.0.162 103 2/23/2025
3.0.161 97 2/23/2025
3.0.160 108 2/22/2025
3.0.159 103 2/22/2025
3.0.158 106 2/22/2025
3.0.157 103 2/22/2025
3.0.156 99 2/22/2025
3.0.155 103 2/22/2025
3.0.154 96 2/22/2025
3.0.153 103 2/22/2025
3.0.152 108 2/22/2025
3.0.151 104 2/22/2025
3.0.150 106 2/22/2025
3.0.149 108 2/22/2025
3.0.148 109 2/22/2025
3.0.147 105 2/22/2025
3.0.146 110 2/22/2025
3.0.145 102 2/22/2025
3.0.144 104 2/22/2025
3.0.143 93 2/22/2025
3.0.142 106 2/22/2025
3.0.141 106 2/21/2025
3.0.140 101 2/21/2025
3.0.139 101 2/21/2025
3.0.138 104 2/21/2025
3.0.137 96 2/21/2025
3.0.136 106 2/21/2025
3.0.135 105 2/21/2025
3.0.134 109 2/20/2025
3.0.133 112 2/19/2025
3.0.132 112 2/19/2025
3.0.131 110 2/19/2025
3.0.130 108 2/19/2025
3.0.129 117 2/19/2025
3.0.128 116 2/19/2025
3.0.127 122 2/19/2025
3.0.126 107 2/19/2025
3.0.125 108 2/19/2025
3.0.124 111 2/19/2025
3.0.123 110 2/19/2025
3.0.122 113 2/18/2025
3.0.121 107 2/18/2025
3.0.120 117 2/18/2025
3.0.119 109 2/18/2025
3.0.118 118 2/18/2025
3.0.117 115 2/18/2025
3.0.116 128 2/18/2025
3.0.115 108 2/18/2025
3.0.114 114 2/16/2025
3.0.113 115 2/14/2025
3.0.112 104 2/14/2025
3.0.111 104 2/14/2025
3.0.110 106 2/14/2025
3.0.109 118 2/14/2025
3.0.108 126 2/14/2025
3.0.107 117 2/14/2025
3.0.106 128 2/14/2025
3.0.105 111 2/13/2025
3.0.104 106 2/13/2025
3.0.103 122 2/13/2025
3.0.102 99 2/13/2025
3.0.101 126 2/12/2025
3.0.100 114 2/12/2025
3.0.99 114 2/12/2025
3.0.98 121 2/12/2025
3.0.97 114 2/12/2025
3.0.96 119 2/12/2025
3.0.95 109 2/12/2025
3.0.94 115 2/12/2025
3.0.93 112 2/12/2025
3.0.92 113 2/12/2025
3.0.91 110 2/12/2025
3.0.90 114 2/12/2025
3.0.89 110 2/12/2025
3.0.88 112 2/12/2025
3.0.87 117 2/12/2025
3.0.86 111 2/12/2025
3.0.85 119 2/12/2025
3.0.84 117 2/12/2025
3.0.83 110 2/12/2025
3.0.82 107 2/11/2025
3.0.81 108 2/11/2025
3.0.80 115 2/11/2025
3.0.79 111 2/11/2025
3.0.78 118 2/11/2025
3.0.77 119 2/11/2025
3.0.76 109 2/11/2025
3.0.75 117 2/11/2025
3.0.74 117 2/11/2025
3.0.73 134 2/11/2025
3.0.72 113 2/11/2025
3.0.71 113 2/11/2025
3.0.70 114 2/10/2025
3.0.69 117 2/10/2025
3.0.68 124 2/10/2025
3.0.67 116 2/10/2025
3.0.66 110 2/10/2025
3.0.65 111 2/10/2025
3.0.64 115 2/9/2025
3.0.63 116 2/9/2025
3.0.62 99 2/9/2025
3.0.61 110 2/9/2025
3.0.60 109 2/9/2025
3.0.59 100 2/9/2025
3.0.58 116 2/8/2025
3.0.57 116 2/8/2025
3.0.56 103 2/8/2025
3.0.55 119 2/8/2025
3.0.54 109 2/8/2025
3.0.53 119 2/8/2025
3.0.52 112 2/8/2025
3.0.51 105 2/8/2025
3.0.50 111 2/8/2025
3.0.49 123 2/8/2025
3.0.48 111 2/8/2025
3.0.47 106 2/8/2025
3.0.46 119 2/7/2025
3.0.45 112 2/7/2025
3.0.44 123 2/7/2025
3.0.43 115 2/7/2025
3.0.42 111 2/7/2025
3.0.41 111 2/7/2025
3.0.40 127 2/7/2025
3.0.39 121 2/7/2025
3.0.38 122 2/7/2025
3.0.37 119 2/7/2025
3.0.36 112 2/7/2025
3.0.35 112 2/7/2025
3.0.34 107 2/7/2025
3.0.33 123 2/7/2025
3.0.32 117 2/7/2025
3.0.31 117 2/7/2025
3.0.30 109 2/6/2025
3.0.29 114 2/6/2025
3.0.28 102 2/6/2025
3.0.27 96 2/6/2025
3.0.26 116 2/6/2025
3.0.25 107 2/5/2025
3.0.24 113 2/5/2025
3.0.23 110 2/5/2025
3.0.22 126 2/5/2025
3.0.21 112 2/5/2025
3.0.20 113 2/5/2025
3.0.19 121 2/5/2025
3.0.18 116 2/5/2025
3.0.17 109 2/5/2025
3.0.16 117 2/5/2025
3.0.15 108 2/5/2025
3.0.14 116 2/5/2025
3.0.13 104 2/5/2025
3.0.12 112 2/5/2025
3.0.11 115 2/5/2025
3.0.10 116 2/5/2025
3.0.9 114 2/5/2025
3.0.8 108 2/5/2025
3.0.7 117 2/3/2025
3.0.6 118 2/3/2025
3.0.5 116 2/3/2025
3.0.4 120 2/3/2025
3.0.3 114 2/3/2025