Soenneker.SemanticKernel.Cache 3.0.497

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.497
                    
NuGet\Install-Package Soenneker.SemanticKernel.Cache -Version 3.0.497
                    
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.497" />
                    
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.497" />
                    
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.497
                    
#r "nuget: Soenneker.SemanticKernel.Cache, 3.0.497"
                    
#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.497
                    
#: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.497
                    
Install as a Cake Addin
#tool nuget:?package=Soenneker.SemanticKernel.Cache&version=3.0.497
                    
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 important to centralize and reuse kernel setup logic rather than repeating configuration for each consumer or request. This avoids the overhead of reinitializing connectors and plugins. SemanticKernelCache supports this by providing a thread-safe, per-key singleton cache that lazily creates Kernel instances using customizable options. Kernels are disposed at 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 206 8/28/2025
3.0.517 187 8/27/2025
3.0.516 185 8/20/2025
3.0.515 118 8/20/2025
3.0.514 150 8/17/2025
3.0.513 100 8/17/2025
3.0.512 219 8/15/2025
3.0.511 174 8/14/2025
3.0.510 168 8/12/2025
3.0.509 130 8/12/2025
3.0.508 198 8/12/2025
3.0.507 130 8/12/2025
3.0.506 169 8/11/2025
3.0.505 136 8/11/2025
3.0.504 125 8/11/2025
3.0.503 175 8/11/2025
3.0.502 121 8/11/2025
3.0.501 205 8/11/2025
3.0.500 250 8/11/2025
3.0.499 142 8/11/2025
3.0.498 287 8/6/2025
3.0.497 267 8/5/2025
3.0.496 213 8/5/2025
3.0.495 254 8/5/2025
3.0.494 211 8/5/2025
3.0.493 206 7/30/2025
3.0.492 95 7/29/2025
3.0.491 445 7/24/2025
3.0.490 438 7/24/2025
3.0.489 348 7/9/2025
3.0.488 177 7/9/2025
3.0.487 153 7/9/2025
3.0.486 134 7/9/2025
3.0.485 186 7/8/2025
3.0.484 190 7/8/2025
3.0.483 365 7/4/2025
3.0.482 287 7/1/2025
3.0.481 136 7/1/2025
3.0.480 278 6/28/2025
3.0.479 86 6/28/2025
3.0.478 64 6/28/2025
3.0.477 149 6/28/2025
3.0.476 64 6/28/2025
3.0.475 163 6/28/2025
3.0.474 65 6/28/2025
3.0.473 63 6/28/2025
3.0.472 74 6/27/2025
3.0.471 72 6/27/2025
3.0.470 83 6/27/2025
3.0.469 290 6/26/2025
3.0.468 181 6/25/2025
3.0.467 207 6/25/2025
3.0.466 194 6/24/2025
3.0.465 337 6/16/2025
3.0.464 146 6/16/2025
3.0.463 370 6/11/2025
3.0.462 330 6/11/2025
3.0.461 352 6/11/2025
3.0.460 367 6/11/2025
3.0.459 283 6/11/2025
3.0.458 287 6/11/2025
3.0.457 281 6/11/2025
3.0.456 321 6/10/2025
3.0.455 409 6/3/2025
3.0.454 174 6/3/2025
3.0.453 320 6/3/2025
3.0.452 202 6/2/2025
3.0.451 194 6/2/2025
3.0.450 261 5/28/2025
3.0.449 199 5/28/2025
3.0.448 202 5/28/2025
3.0.447 148 5/28/2025
3.0.446 165 5/27/2025
3.0.445 145 5/27/2025
3.0.444 203 5/27/2025
3.0.443 148 5/27/2025
3.0.442 190 5/27/2025
3.0.441 142 5/27/2025
3.0.440 166 5/27/2025
3.0.439 304 5/26/2025
3.0.438 138 5/25/2025
3.0.437 142 5/25/2025
3.0.436 137 5/23/2025
3.0.435 154 5/23/2025
3.0.434 155 5/23/2025
3.0.433 119 5/23/2025
3.0.432 145 5/23/2025
3.0.431 124 5/23/2025
3.0.430 151 5/23/2025
3.0.429 174 5/23/2025
3.0.428 143 5/23/2025
3.0.427 150 5/22/2025
3.0.426 140 5/22/2025
3.0.425 173 5/22/2025
3.0.424 358 5/21/2025
3.0.423 176 5/21/2025
3.0.422 214 5/20/2025
3.0.421 145 5/20/2025
3.0.420 201 5/19/2025
3.0.419 313 5/18/2025
3.0.418 168 5/18/2025
3.0.417 166 5/18/2025
3.0.416 178 5/18/2025
3.0.414 106 5/18/2025
3.0.413 168 5/16/2025
3.0.412 190 5/16/2025
3.0.411 242 5/14/2025
3.0.410 232 5/14/2025
3.0.409 231 5/14/2025
3.0.408 230 5/14/2025
3.0.407 232 5/14/2025
3.0.406 145 5/8/2025
3.0.405 146 5/8/2025
3.0.404 148 5/8/2025
3.0.403 144 5/8/2025
3.0.402 143 5/8/2025
3.0.401 154 5/8/2025
3.0.400 150 5/8/2025
3.0.399 152 5/7/2025
3.0.398 152 5/6/2025
3.0.397 146 5/6/2025
3.0.396 149 5/6/2025
3.0.395 147 5/5/2025
3.0.394 158 5/5/2025
3.0.393 144 5/5/2025
3.0.392 151 5/5/2025
3.0.391 158 5/5/2025
3.0.390 145 5/5/2025
3.0.389 145 5/5/2025
3.0.388 145 5/5/2025
3.0.387 146 5/5/2025
3.0.386 148 5/5/2025
3.0.385 144 4/29/2025
3.0.384 141 4/27/2025
3.0.383 95 4/27/2025
3.0.382 92 4/26/2025
3.0.381 94 4/26/2025
3.0.380 182 4/18/2025
3.0.379 137 4/11/2025
3.0.378 173 4/9/2025
3.0.377 164 4/9/2025
3.0.376 185 4/9/2025
3.0.375 178 4/9/2025
3.0.374 172 4/8/2025
3.0.373 170 4/8/2025
3.0.372 166 4/8/2025
3.0.371 182 4/8/2025
3.0.370 173 4/8/2025
3.0.369 165 4/8/2025
3.0.368 171 4/8/2025
3.0.367 170 4/8/2025
3.0.366 162 4/8/2025
3.0.365 168 4/8/2025
3.0.364 177 4/8/2025
3.0.363 173 4/8/2025
3.0.362 167 4/8/2025
3.0.361 175 4/8/2025
3.0.360 175 4/8/2025
3.0.359 169 4/7/2025
3.0.358 160 4/7/2025
3.0.357 171 4/7/2025
3.0.356 173 4/7/2025
3.0.355 162 4/7/2025
3.0.354 166 4/7/2025
3.0.353 167 4/7/2025
3.0.352 170 4/7/2025
3.0.351 164 4/7/2025
3.0.350 169 4/7/2025
3.0.349 158 4/7/2025
3.0.348 171 4/7/2025
3.0.347 167 4/7/2025
3.0.346 164 4/7/2025
3.0.345 172 4/7/2025
3.0.344 170 4/7/2025
3.0.343 165 4/7/2025
3.0.342 175 4/6/2025
3.0.341 163 4/6/2025
3.0.340 167 4/6/2025
3.0.339 167 4/6/2025
3.0.338 163 4/6/2025
3.0.337 169 4/6/2025
3.0.336 171 4/6/2025
3.0.335 168 4/6/2025
3.0.334 147 4/6/2025
3.0.333 140 4/6/2025
3.0.332 141 4/6/2025
3.0.331 139 4/6/2025
3.0.330 150 4/6/2025
3.0.329 159 4/6/2025
3.0.328 111 4/6/2025
3.0.327 125 4/6/2025
3.0.326 110 4/6/2025
3.0.325 114 4/5/2025
3.0.324 130 4/5/2025
3.0.323 90 4/5/2025
3.0.322 89 4/5/2025
3.0.321 93 4/5/2025
3.0.320 96 4/5/2025
3.0.319 96 4/5/2025
3.0.318 103 4/5/2025
3.0.317 96 4/5/2025
3.0.316 107 4/4/2025
3.0.315 106 4/4/2025
3.0.314 106 4/4/2025
3.0.313 156 4/4/2025
3.0.312 158 4/4/2025
3.0.311 153 4/4/2025
3.0.310 175 4/4/2025
3.0.309 160 4/4/2025
3.0.308 168 4/3/2025
3.0.307 167 4/3/2025
3.0.306 163 4/2/2025
3.0.305 172 4/1/2025
3.0.304 165 4/1/2025
3.0.303 160 4/1/2025
3.0.302 161 4/1/2025
3.0.301 161 4/1/2025
3.0.300 155 4/1/2025
3.0.299 173 4/1/2025
3.0.298 164 4/1/2025
3.0.297 161 4/1/2025
3.0.296 151 4/1/2025
3.0.295 154 3/31/2025
3.0.294 166 3/31/2025
3.0.293 151 3/31/2025
3.0.292 172 3/31/2025
3.0.291 163 3/30/2025
3.0.290 160 3/29/2025
3.0.289 101 3/29/2025
3.0.288 101 3/29/2025
3.0.287 104 3/29/2025
3.0.286 97 3/29/2025
3.0.285 109 3/29/2025
3.0.284 141 3/27/2025
3.0.283 159 3/27/2025
3.0.282 142 3/27/2025
3.0.281 141 3/27/2025
3.0.280 146 3/26/2025
3.0.279 478 3/26/2025
3.0.278 478 3/26/2025
3.0.277 480 3/26/2025
3.0.276 486 3/25/2025
3.0.275 484 3/25/2025
3.0.274 477 3/25/2025
3.0.273 491 3/25/2025
3.0.272 486 3/25/2025
3.0.271 485 3/25/2025
3.0.270 496 3/25/2025
3.0.269 98 3/21/2025
3.0.268 92 3/21/2025
3.0.267 100 3/21/2025
3.0.266 118 3/21/2025
3.0.265 115 3/21/2025
3.0.264 145 3/21/2025
3.0.263 143 3/21/2025
3.0.262 152 3/20/2025
3.0.261 150 3/20/2025
3.0.260 147 3/19/2025
3.0.259 149 3/19/2025
3.0.258 146 3/18/2025
3.0.257 146 3/18/2025
3.0.256 144 3/18/2025
3.0.255 152 3/18/2025
3.0.254 151 3/18/2025
3.0.253 149 3/18/2025
3.0.252 149 3/18/2025
3.0.251 152 3/18/2025
3.0.250 94 3/15/2025
3.0.249 76 3/15/2025
3.0.248 81 3/15/2025
3.0.247 82 3/15/2025
3.0.246 76 3/15/2025
3.0.245 71 3/15/2025
3.0.244 160 3/12/2025
3.0.243 168 3/12/2025
3.0.242 167 3/12/2025
3.0.241 162 3/12/2025
3.0.240 152 3/12/2025
3.0.239 156 3/12/2025
3.0.238 161 3/12/2025
3.0.237 161 3/12/2025
3.0.236 160 3/12/2025
3.0.235 159 3/12/2025
3.0.234 159 3/12/2025
3.0.233 171 3/11/2025
3.0.232 166 3/11/2025
3.0.231 163 3/11/2025
3.0.230 171 3/11/2025
3.0.229 163 3/11/2025
3.0.228 171 3/11/2025
3.0.227 161 3/11/2025
3.0.226 161 3/11/2025
3.0.225 176 3/11/2025
3.0.224 169 3/11/2025
3.0.223 168 3/11/2025
3.0.222 170 3/11/2025
3.0.221 220 3/7/2025
3.0.220 213 3/7/2025
3.0.219 214 3/7/2025
3.0.218 230 3/7/2025
3.0.217 216 3/7/2025
3.0.216 220 3/7/2025
3.0.215 215 3/7/2025
3.0.214 218 3/7/2025
3.0.213 225 3/7/2025
3.0.212 219 3/3/2025
3.0.211 116 3/2/2025
3.0.210 119 3/2/2025
3.0.209 102 3/2/2025
3.0.208 106 3/2/2025
3.0.207 101 3/2/2025
3.0.206 103 3/2/2025
3.0.205 101 3/2/2025
3.0.204 120 3/2/2025
3.0.203 91 3/2/2025
3.0.202 98 3/2/2025
3.0.201 109 3/2/2025
3.0.200 102 3/2/2025
3.0.199 99 3/2/2025
3.0.198 107 3/1/2025
3.0.197 103 3/1/2025
3.0.196 104 3/1/2025
3.0.195 100 3/1/2025
3.0.194 101 3/1/2025
3.0.193 104 3/1/2025
3.0.192 105 3/1/2025
3.0.191 106 3/1/2025
3.0.190 95 3/1/2025
3.0.189 101 3/1/2025
3.0.188 108 3/1/2025
3.0.187 98 3/1/2025
3.0.186 105 2/28/2025
3.0.185 107 2/26/2025
3.0.184 108 2/26/2025
3.0.183 104 2/26/2025
3.0.182 111 2/26/2025
3.0.181 102 2/26/2025
3.0.180 110 2/25/2025
3.0.179 104 2/25/2025
3.0.178 110 2/25/2025
3.0.177 105 2/25/2025
3.0.176 112 2/25/2025
3.0.175 108 2/25/2025
3.0.174 101 2/25/2025
3.0.173 107 2/25/2025
3.0.172 108 2/25/2025
3.0.171 108 2/24/2025
3.0.170 108 2/24/2025
3.0.169 99 2/24/2025
3.0.168 136 2/23/2025
3.0.167 98 2/23/2025
3.0.166 102 2/23/2025
3.0.165 100 2/23/2025
3.0.164 110 2/23/2025
3.0.163 98 2/23/2025
3.0.162 104 2/23/2025
3.0.161 98 2/23/2025
3.0.160 109 2/22/2025
3.0.159 105 2/22/2025
3.0.158 107 2/22/2025
3.0.157 104 2/22/2025
3.0.156 100 2/22/2025
3.0.155 104 2/22/2025
3.0.154 97 2/22/2025
3.0.153 104 2/22/2025
3.0.152 109 2/22/2025
3.0.151 105 2/22/2025
3.0.150 108 2/22/2025
3.0.149 109 2/22/2025
3.0.148 110 2/22/2025
3.0.147 106 2/22/2025
3.0.146 112 2/22/2025
3.0.145 105 2/22/2025
3.0.144 107 2/22/2025
3.0.143 94 2/22/2025
3.0.142 108 2/22/2025
3.0.141 107 2/21/2025
3.0.140 102 2/21/2025
3.0.139 103 2/21/2025
3.0.138 105 2/21/2025
3.0.137 97 2/21/2025
3.0.136 107 2/21/2025
3.0.135 106 2/21/2025
3.0.134 110 2/20/2025
3.0.133 115 2/19/2025
3.0.132 113 2/19/2025
3.0.131 111 2/19/2025
3.0.130 109 2/19/2025
3.0.129 118 2/19/2025
3.0.128 117 2/19/2025
3.0.127 123 2/19/2025
3.0.126 108 2/19/2025
3.0.125 109 2/19/2025
3.0.124 113 2/19/2025
3.0.123 111 2/19/2025
3.0.122 114 2/18/2025
3.0.121 108 2/18/2025
3.0.120 118 2/18/2025
3.0.119 110 2/18/2025
3.0.118 119 2/18/2025
3.0.117 116 2/18/2025
3.0.116 129 2/18/2025
3.0.115 109 2/18/2025
3.0.114 115 2/16/2025
3.0.113 116 2/14/2025
3.0.112 105 2/14/2025
3.0.111 105 2/14/2025
3.0.110 107 2/14/2025
3.0.109 120 2/14/2025
3.0.108 129 2/14/2025
3.0.107 119 2/14/2025
3.0.106 129 2/14/2025
3.0.105 112 2/13/2025
3.0.104 107 2/13/2025
3.0.103 123 2/13/2025
3.0.102 100 2/13/2025
3.0.101 127 2/12/2025
3.0.100 115 2/12/2025
3.0.99 116 2/12/2025
3.0.98 122 2/12/2025
3.0.97 115 2/12/2025
3.0.96 121 2/12/2025
3.0.95 111 2/12/2025
3.0.94 117 2/12/2025
3.0.93 113 2/12/2025
3.0.92 114 2/12/2025
3.0.91 111 2/12/2025
3.0.90 116 2/12/2025
3.0.89 111 2/12/2025
3.0.88 113 2/12/2025
3.0.87 118 2/12/2025
3.0.86 112 2/12/2025
3.0.85 120 2/12/2025
3.0.84 118 2/12/2025
3.0.83 111 2/12/2025
3.0.82 108 2/11/2025
3.0.81 109 2/11/2025
3.0.80 118 2/11/2025
3.0.79 112 2/11/2025
3.0.78 119 2/11/2025
3.0.77 120 2/11/2025
3.0.76 110 2/11/2025
3.0.75 118 2/11/2025
3.0.74 118 2/11/2025
3.0.73 135 2/11/2025
3.0.72 114 2/11/2025
3.0.71 114 2/11/2025
3.0.70 115 2/10/2025
3.0.69 118 2/10/2025
3.0.68 125 2/10/2025
3.0.67 117 2/10/2025
3.0.66 111 2/10/2025
3.0.65 112 2/10/2025
3.0.64 116 2/9/2025
3.0.63 117 2/9/2025
3.0.62 100 2/9/2025
3.0.61 111 2/9/2025
3.0.60 110 2/9/2025
3.0.59 101 2/9/2025
3.0.58 117 2/8/2025
3.0.57 117 2/8/2025
3.0.56 104 2/8/2025
3.0.55 122 2/8/2025
3.0.54 111 2/8/2025
3.0.53 120 2/8/2025
3.0.52 113 2/8/2025
3.0.51 106 2/8/2025
3.0.50 112 2/8/2025
3.0.49 124 2/8/2025
3.0.48 112 2/8/2025
3.0.47 107 2/8/2025
3.0.46 120 2/7/2025
3.0.45 113 2/7/2025
3.0.44 125 2/7/2025
3.0.43 116 2/7/2025
3.0.42 112 2/7/2025
3.0.41 112 2/7/2025
3.0.40 128 2/7/2025
3.0.39 122 2/7/2025
3.0.38 123 2/7/2025
3.0.37 121 2/7/2025
3.0.36 113 2/7/2025
3.0.35 113 2/7/2025
3.0.34 108 2/7/2025
3.0.33 124 2/7/2025
3.0.32 118 2/7/2025
3.0.31 118 2/7/2025
3.0.30 110 2/6/2025
3.0.29 115 2/6/2025
3.0.28 103 2/6/2025
3.0.27 97 2/6/2025
3.0.26 117 2/6/2025
3.0.25 108 2/5/2025
3.0.24 114 2/5/2025
3.0.23 111 2/5/2025
3.0.22 127 2/5/2025
3.0.21 113 2/5/2025
3.0.20 114 2/5/2025
3.0.19 122 2/5/2025
3.0.18 117 2/5/2025
3.0.17 111 2/5/2025
3.0.16 120 2/5/2025
3.0.15 109 2/5/2025
3.0.14 118 2/5/2025
3.0.13 105 2/5/2025
3.0.12 115 2/5/2025
3.0.11 116 2/5/2025
3.0.10 118 2/5/2025
3.0.9 115 2/5/2025
3.0.8 109 2/5/2025
3.0.7 118 2/3/2025
3.0.6 119 2/3/2025
3.0.5 117 2/3/2025
3.0.4 122 2/3/2025
3.0.3 115 2/3/2025