From b133d7ecdd42a498d09dc3e60094fae94e1e899c Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Fri, 31 Jul 2026 13:48:11 +0200
Subject: [PATCH 01/58] chore(deps): bump ch.qos.logback:logback-classic from
1.5.38 to 1.6.1 (#916)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Bumps
[ch.qos.logback:logback-classic](https://github.com/qos-ch/logback) from
1.5.38 to 1.6.1.
Sourced from ch.qos.logback:logback-classic's
releases. 2026-07-28 Release of logback version 1.6.1 • In TimeBasedRollingPolicy, when the file option is set, the
intermediate file renamed before asynchronous compression now receives
the target archive name without the compression suffix (e.g.
• On GZ, ZIP, or XZ compression failure, the original (uncompressed)
log file is no longer deleted. Compression strategies now delete the
source file only after successful compression and emit a warning that
the original was left intact. • ConsoleAppender with now probes JLine's
org.jline.jansi.AnsiConsole first and falls back to the legacy
FuseSource org.fusesource.jansi.AnsiConsole class. This keeps ANSI
coloring working after Jansi moved under the JLine project. The optional
org.jline:jansi-core artifact is declared as a dependency alongside the
existing FuseSource jansi dependency. A preferredJansiClassName property
was added for tests. This issue was reported in issues/1043
by seonwoo_jung who also
provided the relevant PR. • LayoutWrappingEncoder now reports an error at start() when no
layout is set and guards encode() against a null layout. Previously, a
missing layout (for example after an ignored // branch) allowed
the encoder to start and then fail with a NullPointerException on every
event, resulting in silent log loss. This issue was reported in issues/1046
by seonwoo_jung who also
provided the relevant PR. • FileCollisionAnalyser now detects file collisions involving nested
appenders of SiftingAppender. When the nested file or fileNamePattern
does not textually reference the discriminator key (e.g. ${userId}), a
warning is issued at configuration time naming the appender, the key,
and the shared target. This closes a gap where statically declared file
appenders were checked but sifted nested appenders were not. This
enhancement was contributed in [PR #1041](qos-ch/logback#1041)
by seonwoo_jung. • More defensive handling in SyslogOutputStream and
SyslogAppenderBase: the close() method now ensures that resources are
closed, writes and flushes check that the underlying resources are in a
valid state and fallback to no-op otherwise. • A bit-wise identical binary of this version can be reproduced by
building from source code at commit
57759f433000a133088ef0441038963134437fbd associated with the tag
v_1.6.1. The release was built using Java "21" 2023-10-17 LTS
build 21.0.1.+12-LTS-29 under Linux Debian 11.6. • See https://logback.qos.ch/news.html#1.6.1
for the original text. 2026-07-23 Release of logback version 1.6.0 • Removed certain deprecated variables, methods, and classes. For the
list of removed members see release_1.6.0.txt. • In • Bump SLF4J dependency to version 2.0.18. • See also the overview of the 1.6.x
series. • A bit-wise identical binary of this version can be reproduced by
building from source code at commit
b07adf36019b51a10f824fdd94009985c587b1d3 associated with the tag
v_1.6.0. The release was built using Java "21" 2023-10-17 LTS
build 21.0.1.+12-LTS-29 under Linux Debian 11.6. Sourced from ch.qos.logback:logback-classic's
releases. 2026-07-28 Release of logback version 1.6.1 • In TimeBasedRollingPolicy, when the file option is set, the
intermediate file renamed before asynchronous compression now receives
the target archive name without the compression suffix (e.g.
• On GZ, ZIP, or XZ compression failure, the original (uncompressed)
log file is no longer deleted. Compression strategies now delete the
source file only after successful compression and emit a warning that
the original was left intact. • ConsoleAppender with now probes JLine's
org.jline.jansi.AnsiConsole first and falls back to the legacy
FuseSource org.fusesource.jansi.AnsiConsole class. This keeps ANSI
coloring working after Jansi moved under the JLine project. The optional
org.jline:jansi-core artifact is declared as a dependency alongside the
existing FuseSource jansi dependency. A preferredJansiClassName property
was added for tests. This issue was reported in issues/1043
by seonwoo_jung who also
provided the relevant PR. • LayoutWrappingEncoder now reports an error at start() when no
layout is set and guards encode() against a null layout. Previously, a
missing layout (for example after an ignored // branch) allowed
the encoder to start and then fail with a NullPointerException on every
event, resulting in silent log loss. This issue was reported in issues/1046
by seonwoo_jung who also
provided the relevant PR. • FileCollisionAnalyser now detects file collisions involving nested
appenders of SiftingAppender. When the nested file or fileNamePattern
does not textually reference the discriminator key (e.g. ${userId}), a
warning is issued at configuration time naming the appender, the key,
and the shared target. This closes a gap where statically declared file
appenders were checked but sifted nested appenders were not. This
enhancement was contributed in [PR #1041](qos-ch/logback#1041)
by seonwoo_jung. • More defensive handling in SyslogOutputStream and
SyslogAppenderBase: the close() method now ensures that resources are
closed, writes and flushes check that the underlying resources are in a
valid state and fallback to no-op otherwise. • A bit-wise identical binary of this version can be reproduced by
building from source code at commit
57759f433000a133088ef0441038963134437fbd associated with the tag
v_1.6.1. The release was built using Java "21" 2023-10-17 LTS
build 21.0.1.+12-LTS-29 under Linux Debian 11.6. • See https://logback.qos.ch/news.html#1.6.1
for the original text. Sourced from io.modelcontextprotocol:kotlin-sdk-client's
releases. This release makes inbound message handling concurrent after the
initialization handshake, adds SSE heartbeats and elicitation schema
validation, and fixes several Streamable HTTP response and
session-lifecycle bugs. Concurrent inbound dispatch by Inbound messages were processed serially on the transport read loop,
so one slow or peer-awaiting handler (sampling, elicitation, roots)
blocked every later message on the connection, including the responses
and Duplicate feature names are rejected at registration
by The parameter was never read or written: a stateless endpoint answers
... (truncated) Sourced from io.modelcontextprotocol:kotlin-sdk-client's
releases. This release makes inbound message handling concurrent after the
initialization handshake, adds SSE heartbeats and elicitation schema
validation, and fixes several Streamable HTTP response and
session-lifecycle bugs. Concurrent inbound dispatch by Inbound messages were processed serially on the transport read loop,
so one slow or peer-awaiting handler (sampling, elicitation, roots)
blocked every later message on the connection, including the responses
and Duplicate feature names are rejected at registration
by The parameter was never read or written: a stateless endpoint answers
... (truncated) Sourced from io.modelcontextprotocol:kotlin-sdk-server's
releases. This release makes inbound message handling concurrent after the
initialization handshake, adds SSE heartbeats and elicitation schema
validation, and fixes several Streamable HTTP response and
session-lifecycle bugs. Concurrent inbound dispatch by Inbound messages were processed serially on the transport read loop,
so one slow or peer-awaiting handler (sampling, elicitation, roots)
blocked every later message on the connection, including the responses
and Duplicate feature names are rejected at registration
by The parameter was never read or written: a stateless endpoint answers
... (truncated) Sourced from io.modelcontextprotocol:kotlin-sdk-server's
releases. This release makes inbound message handling concurrent after the
initialization handshake, adds SSE heartbeats and elicitation schema
validation, and fixes several Streamable HTTP response and
session-lifecycle bugs. Concurrent inbound dispatch by Inbound messages were processed serially on the transport read loop,
so one slow or peer-awaiting handler (sampling, elicitation, roots)
blocked every later message on the connection, including the responses
and Duplicate feature names are rejected at registration
by The parameter was never read or written: a stateless endpoint answers
... (truncated) Sourced from io.modelcontextprotocol:kotlin-sdk-client's
releases. This release makes inbound message handling concurrent after the
initialization handshake, adds SSE heartbeats and elicitation schema
validation, and fixes several Streamable HTTP response and
session-lifecycle bugs. Concurrent inbound dispatch by Inbound messages were processed serially on the transport read loop,
so one slow or peer-awaiting handler (sampling, elicitation, roots)
blocked every later message on the connection, including the responses
and Duplicate feature names are rejected at registration
by The parameter was never read or written: a stateless endpoint answers
... (truncated) Sourced from io.modelcontextprotocol:kotlin-sdk-testing's
releases. This release makes inbound message handling concurrent after the
initialization handshake, adds SSE heartbeats and elicitation schema
validation, and fixes several Streamable HTTP response and
session-lifecycle bugs. Concurrent inbound dispatch by Inbound messages were processed serially on the transport read loop,
so one slow or peer-awaiting handler (sampling, elicitation, roots)
blocked every later message on the connection, including the responses
and Duplicate feature names are rejected at registration
by The parameter was never read or written: a stateless endpoint answers
... (truncated) Sourced from io.modelcontextprotocol:kotlin-sdk-client's
releases. This release makes inbound message handling concurrent after the
initialization handshake, adds SSE heartbeats and elicitation schema
validation, and fixes several Streamable HTTP response and
session-lifecycle bugs. Concurrent inbound dispatch by Inbound messages were processed serially on the transport read loop,
so one slow or peer-awaiting handler (sampling, elicitation, roots)
blocked every later message on the connection, including the responses
and Duplicate feature names are rejected at registration
by The parameter was never read or written: a stateless endpoint answers
... (truncated) Sourced from io.modelcontextprotocol:kotlin-sdk-server's
releases. This release makes inbound message handling concurrent after the
initialization handshake, adds SSE heartbeats and elicitation schema
validation, and fixes several Streamable HTTP response and
session-lifecycle bugs. Concurrent inbound dispatch by Inbound messages were processed serially on the transport read loop,
so one slow or peer-awaiting handler (sampling, elicitation, roots)
blocked every later message on the connection, including the responses
and Duplicate feature names are rejected at registration
by The parameter was never read or written: a stateless endpoint answers
... (truncated) Sourced from io.modelcontextprotocol:kotlin-sdk-client's
releases. This release makes inbound message handling concurrent after the
initialization handshake, adds SSE heartbeats and elicitation schema
validation, and fixes several Streamable HTTP response and
session-lifecycle bugs. Concurrent inbound dispatch by Inbound messages were processed serially on the transport read loop,
so one slow or peer-awaiting handler (sampling, elicitation, roots)
blocked every later message on the connection, including the responses
and Duplicate feature names are rejected at registration
by The parameter was never read or written: a stateless endpoint answers
... (truncated) Sourced from io.modelcontextprotocol:kotlin-sdk-server's
releases. This release makes inbound message handling concurrent after the
initialization handshake, adds SSE heartbeats and elicitation schema
validation, and fixes several Streamable HTTP response and
session-lifecycle bugs. Concurrent inbound dispatch by Inbound messages were processed serially on the transport read loop,
so one slow or peer-awaiting handler (sampling, elicitation, roots)
blocked every later message on the connection, including the responses
and Duplicate feature names are rejected at registration
by The parameter was never read or written: a stateless endpoint answers
... (truncated) Sourced from gradle/actions's
releases. This release brings significant behaviour improvements to
Enhanced caching, improvements to the generated Job
Summary, and a number of correctness and security fixes. Full Changelog: https://github.com/gradle/actions/compare/v6.1.1...v6.2.0 This release updates various dependency versions, resolving several
reported security vulnerabilities.
No functional changes are included Full Changelog: https://github.com/gradle/actions/compare/v6.1.0...v6.1.1 A new MIT-licensed Basic Caching provider is now
available as an alternative to the proprietary Enhanced
Caching provided by ... (truncated) Sourced from actions/stale's
releases. Full Changelog: https://github.com/actions/stale/compare/v10...v11.0.0 Full Changelog: https://github.com/actions/stale/compare/v10.3.0...v10.4.0 Full Changelog: https://github.com/actions/stale/compare/v10...v10.3.0 Full Changelog: https://github.com/actions/stale/compare/v10...v10.2.0 ... (truncated) Sourced from actions/stale's
changelog. ... (truncated) Sourced from github/codeql-action's
releases. No user facing changes. No user facing changes. No user facing changes. ... (truncated) Sourced from github/codeql-action's
changelog. No user facing changes. No user facing changes. Sourced from org.jetbrains.kotlin:kotlin-gradle-plugin's
releases. ... (truncated) Sourced from org.jetbrains.kotlin:kotlin-gradle-plugin's
changelog. Sourced from org.jetbrains.kotlin:kotlin-serialization's
releases. ... (truncated) Sourced from org.jetbrains.kotlin:kotlin-serialization's
changelog. Sourced from org.jetbrains.kotlin:kotlin-serialization's
releases. ... (truncated) Sourced from org.jetbrains.kotlin:kotlin-serialization's
changelog. Sourced from ip-address's
releases. Full Changelog: https://github.com/beaugunderson/ip-address/compare/v10.3.1...v10.4.0 Full Changelog: https://github.com/beaugunderson/ip-address/compare/v10.3.0...v10.3.1 Full Changelog: https://github.com/beaugunderson/ip-address/compare/v10.2.2...v10.3.0 Full Changelog: https://github.com/beaugunderson/ip-address/compare/v10.2.1...v10.2.2 Full Changelog: https://github.com/beaugunderson/ip-address/compare/v10.2.0...v10.2.1 This version was pushed to npm by GitHub Actions, a new
releaser for ip-address since your current version. This version adds Sourced from @hono/node-server's
releases. Full Changelog: https://github.com/honojs/node-server/compare/v2.0.12...v2.1.0 Full Changelog: https://github.com/honojs/node-server/compare/v2.0.11...v2.0.12 Full Changelog: https://github.com/honojs/node-server/compare/v2.0.10...v2.0.11 This release includes a fix for the following security issue: Affects: Users of ... (truncated) This version was pushed to npm by GitHub Actions, a new
releaser for Sourced from @modelcontextprotocol/sdk's
releases. Full Changelog: https://github.com/modelcontextprotocol/typescript-sdk/compare/v1.29.0...1.30.0 This version was pushed to npm by GitHub Actions, a new
releaser for Sourced from org.jetbrains.kotlin.jvm's
releases. ... (truncated) Sourced from org.jetbrains.kotlin.jvm's
changelog. Sourced from org.jetbrains.kotlin.plugin.serialization's
releases. ... (truncated) Sourced from org.jetbrains.kotlin.plugin.serialization's
changelog. Sourced from org.jetbrains.kotlin.jvm's
releases. ... (truncated) Sourced from org.jetbrains.kotlin.jvm's
changelog. Sourced from org.jetbrains.kotlin.plugin.serialization's
releases. ... (truncated) Sourced from org.jetbrains.kotlin.plugin.serialization's
changelog. Sourced from org.jetbrains.kotlin.jvm's
releases. ... (truncated) Sourced from org.jetbrains.kotlin.jvm's
changelog. Sourced from org.jetbrains.kotlin.plugin.serialization's
releases. ... (truncated) Sourced from org.jetbrains.kotlin.plugin.serialization's
changelog. Sourced from org.jetbrains.kotlin.jvm's
releases. ... (truncated) Sourced from org.jetbrains.kotlin.jvm's
changelog. Sourced from org.jetbrains.kotlin.plugin.serialization's
releases. ... (truncated) Sourced from org.jetbrains.kotlin.plugin.serialization's
changelog. Sourced from fast-uri's
releases. Fix for https://github.com/fastify/fast-uri/security/advisories/GHSA-7p8r-x3mc-p8w7 Full Changelog: https://github.com/fastify/fast-uri/compare/v3.1.4...v3.1.5 Sourced from tsx's
releases. This release is also available on: This release is also available on: This release is also available on: Sourced from @hono/node-server's
releases. Full Changelog: https://github.com/honojs/node-server/compare/v2.0.12...v2.1.0 Full Changelog: https://github.com/honojs/node-server/compare/v2.0.11...v2.0.12 Full Changelog: https://github.com/honojs/node-server/compare/v2.0.10...v2.0.11 This release includes a fix for the following security issue: Affects: Users of ... (truncated) This version was pushed to npm by GitHub Actions, a new
releaser for Sourced from hono's
releases. Full Changelog: https://github.com/honojs/hono/compare/v4.13.0...v4.13.1 Hono v4.13.0 is now available! The highlight of this release is performance: a batch of low-level
optimizations makes the core request/response path significantly faster
— up to 1.25x on common routes in our benchmark. This release also adds
first-class support for the HTTP QUERY method, defined in RFC 10008, a new
Method Not Allowed middleware, and more. This release includes a series of small optimizations: skipping
unnecessary Here is The individual changes: In addition, the RegExpRouter rewrite described below makes route
registration plus the first match roughly 20% faster. Thanks The QUERY method — a safe, idempotent method that carries a request
body — is now a first-class citizen in Hono. You can define QUERY
handlers with </tr></table>Release notes
Logback 1.6.1
.gz, .zip, .xz). Previously it
used a nanotime-based .tmp suffix. This makes the file
easier to identify if compression fails during rollover. (See also the
following paragraph.)Logback 1.6.0
AsyncAppenderBase, the
put(ILoggingEvent) method now has the protected modifier to
allow access from derived classes. This change was requested by Thomas
Skjølberg in pr#1053.Commits
57759f4
prepare release 1.6.1175f99f
fix imports4b8773e
add compressionFailureLeavesOriginalFileIntact test for XZ
compressioncafaf11
do not delete original file if compression failsee50125
let the temporary file before compression be target file without the .gz
or ....5626acc
minor refactoringd97da4f
minor refactoring159c045
more defensive coding in SyslogOutputStream and in
SyslogAppenderBase9427d6b
slight refactoring for clarity79c4179
slight refactoring
Signed-off-by: dependabot[bot] Release notes
Logback 1.6.1
.gz, .zip, .xz). Previously it
used a nanotime-based .tmp suffix. This makes the file
easier to identify if compression fails during rollover. (See also the
following paragraph.)Commits
57759f4
prepare release 1.6.1175f99f
fix imports4b8773e
add compressionFailureLeavesOriginalFileIntact test for XZ
compressioncafaf11
do not delete original file if compression failsee50125
let the temporary file before compression be target file without the .gz
or ....5626acc
minor refactoringd97da4f
minor refactoring159c045
more defensive coding in SyslogOutputStream and in
SyslogAppenderBase9427d6b
slight refactoring for clarity79c4179
slight refactoring
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show Release notes
0.15.0
Description
Breaking Changes
@devcrocod in #884notifications/cancelled those handlers depend on. After
the handshake, handlers may now run concurrently; processing stays
serial during initialization.
ProtocolOptions / ClientOptions /
ServerOptions gain a handlerCoroutineContext
parameter (defaults to Dispatchers.Default). Concurrency is
bounded internally; there is no opt-out flag by design.RequestHandlerExtra is now a
CoroutineContext.Element and is no longer
user-constructible. It exposes requestId,
method, sendRequest, and
sendNotification, and can be read inside a handler via the
new currentRequestHandlerExtra().- val extra = RequestHandlerExtra()
+ val extra = currentRequestHandlerExtra()
@devcrocod
in #883addTool/addPrompt/addResource/addResourceTemplate
silently replaced an existing entry and emitted a spurious
list_changed notification. They now throw
IllegalArgumentException and leave the existing
registration intact. The batch variants
(addTools/addPrompts/addResources)
are all-or-nothing. To replace a feature, remove it first.- server.addTool(name = "search", ...)
// silently overwrote
+ server.removeTool("search")
+ server.addTool(name = "search", ...)
eventStore removed from
mcpStatelessStreamableHttp by @devcrocod in #909GET with 405, so no stream exists to store or
replay events on. The old overload is retained at
DeprecationLevel.ERROR with a ReplaceWith
migration hint. Use mcpStreamableHttp when you need
resumability. application.mcpStatelessStreamableHttp(
path = "/mcp",
- eventStore = myEventStore,
) { server }
Features
mcpStreamableHttp(sseHeartbeatConfig = { ... }), keeping
long-lived streams alive against clients that disconnect on idle.
Heartbeats stay off by default, by @UnscientificJsZhai
in #761requestedSchema; a mismatch fails
createElicitation with McpException
(INVALID_PARAMS) instead of reaching server code unchecked,
by @rea9r in #896Mcp-Method and Mcp-Name POST headers, by @AndreKalberer
in #894Fixed
@KlyneChrysler
in #872text/event-stream, by @devcrocod in #911Commits
76b8e7d
release: 0.15.0 (#918)dab340f
fix(server): drop inert eventStore from stateless Streamable HTTP (#909)24c3cd3
fix(server): match Accept header as media ranges (#912)7fa438c
feat(client): send MCP standard POST headers (#894)94745e6
chore(deps): bump the kotest group across 1 directory with 3 updates (#915)2b494b7
chore(deps): bump the other-dependencies group across 5 directories with
3 up...82fe56e
fix(server): preserve Streamable HTTP response status and body (#911)a06d699
feat: SSE heartbeat (#761)cab669b
fix: classify malformed request params as invalid params (#886)b6cb547
fix(server): preserve id on duplicate initialize errors (#868)
Signed-off-by: dependabot[bot] Release notes
0.15.0
Description
Breaking Changes
@devcrocod in #884notifications/cancelled those handlers depend on. After
the handshake, handlers may now run concurrently; processing stays
serial during initialization.
ProtocolOptions / ClientOptions /
ServerOptions gain a handlerCoroutineContext
parameter (defaults to Dispatchers.Default). Concurrency is
bounded internally; there is no opt-out flag by design.RequestHandlerExtra is now a
CoroutineContext.Element and is no longer
user-constructible. It exposes requestId,
method, sendRequest, and
sendNotification, and can be read inside a handler via the
new currentRequestHandlerExtra().- val extra = RequestHandlerExtra()
+ val extra = currentRequestHandlerExtra()
@devcrocod
in #883addTool/addPrompt/addResource/addResourceTemplate
silently replaced an existing entry and emitted a spurious
list_changed notification. They now throw
IllegalArgumentException and leave the existing
registration intact. The batch variants
(addTools/addPrompts/addResources)
are all-or-nothing. To replace a feature, remove it first.- server.addTool(name = "search", ...)
// silently overwrote
+ server.removeTool("search")
+ server.addTool(name = "search", ...)
eventStore removed from
mcpStatelessStreamableHttp by @devcrocod in #909GET with 405, so no stream exists to store or
replay events on. The old overload is retained at
DeprecationLevel.ERROR with a ReplaceWith
migration hint. Use mcpStreamableHttp when you need
resumability. application.mcpStatelessStreamableHttp(
path = "/mcp",
- eventStore = myEventStore,
) { server }
Features
mcpStreamableHttp(sseHeartbeatConfig = { ... }), keeping
long-lived streams alive against clients that disconnect on idle.
Heartbeats stay off by default, by @UnscientificJsZhai
in #761requestedSchema; a mismatch fails
createElicitation with McpException
(INVALID_PARAMS) instead of reaching server code unchecked,
by @rea9r in #896Mcp-Method and Mcp-Name POST headers, by @AndreKalberer
in #894Fixed
@KlyneChrysler
in #872text/event-stream, by @devcrocod in #911Commits
76b8e7d
release: 0.15.0 (#918)dab340f
fix(server): drop inert eventStore from stateless Streamable HTTP (#909)24c3cd3
fix(server): match Accept header as media ranges (#912)7fa438c
feat(client): send MCP standard POST headers (#894)94745e6
chore(deps): bump the kotest group across 1 directory with 3 updates (#915)2b494b7
chore(deps): bump the other-dependencies group across 5 directories with
3 up...82fe56e
fix(server): preserve Streamable HTTP response status and body (#911)a06d699
feat: SSE heartbeat (#761)cab669b
fix: classify malformed request params as invalid params (#886)b6cb547
fix(server): preserve id on duplicate initialize errors (#868)
Updates `io.modelcontextprotocol:kotlin-sdk-server` from 0.14.0 to
0.15.0
Release notes
0.15.0
Description
Breaking Changes
@devcrocod in #884notifications/cancelled those handlers depend on. After
the handshake, handlers may now run concurrently; processing stays
serial during initialization.
ProtocolOptions / ClientOptions /
ServerOptions gain a handlerCoroutineContext
parameter (defaults to Dispatchers.Default). Concurrency is
bounded internally; there is no opt-out flag by design.RequestHandlerExtra is now a
CoroutineContext.Element and is no longer
user-constructible. It exposes requestId,
method, sendRequest, and
sendNotification, and can be read inside a handler via the
new currentRequestHandlerExtra().- val extra = RequestHandlerExtra()
+ val extra = currentRequestHandlerExtra()
@devcrocod
in #883addTool/addPrompt/addResource/addResourceTemplate
silently replaced an existing entry and emitted a spurious
list_changed notification. They now throw
IllegalArgumentException and leave the existing
registration intact. The batch variants
(addTools/addPrompts/addResources)
are all-or-nothing. To replace a feature, remove it first.- server.addTool(name = "search", ...)
// silently overwrote
+ server.removeTool("search")
+ server.addTool(name = "search", ...)
eventStore removed from
mcpStatelessStreamableHttp by @devcrocod in #909GET with 405, so no stream exists to store or
replay events on. The old overload is retained at
DeprecationLevel.ERROR with a ReplaceWith
migration hint. Use mcpStreamableHttp when you need
resumability. application.mcpStatelessStreamableHttp(
path = "/mcp",
- eventStore = myEventStore,
) { server }
Features
mcpStreamableHttp(sseHeartbeatConfig = { ... }), keeping
long-lived streams alive against clients that disconnect on idle.
Heartbeats stay off by default, by @UnscientificJsZhai
in #761requestedSchema; a mismatch fails
createElicitation with McpException
(INVALID_PARAMS) instead of reaching server code unchecked,
by @rea9r in #896Mcp-Method and Mcp-Name POST headers, by @AndreKalberer
in #894Fixed
@KlyneChrysler
in #872text/event-stream, by @devcrocod in #911Commits
76b8e7d
release: 0.15.0 (#918)dab340f
fix(server): drop inert eventStore from stateless Streamable HTTP (#909)24c3cd3
fix(server): match Accept header as media ranges (#912)7fa438c
feat(client): send MCP standard POST headers (#894)94745e6
chore(deps): bump the kotest group across 1 directory with 3 updates (#915)2b494b7
chore(deps): bump the other-dependencies group across 5 directories with
3 up...82fe56e
fix(server): preserve Streamable HTTP response status and body (#911)a06d699
feat: SSE heartbeat (#761)cab669b
fix: classify malformed request params as invalid params (#886)b6cb547
fix(server): preserve id on duplicate initialize errors (#868)
Signed-off-by: dependabot[bot] Release notes
0.15.0
Description
Breaking Changes
@devcrocod in #884notifications/cancelled those handlers depend on. After
the handshake, handlers may now run concurrently; processing stays
serial during initialization.
ProtocolOptions / ClientOptions /
ServerOptions gain a handlerCoroutineContext
parameter (defaults to Dispatchers.Default). Concurrency is
bounded internally; there is no opt-out flag by design.RequestHandlerExtra is now a
CoroutineContext.Element and is no longer
user-constructible. It exposes requestId,
method, sendRequest, and
sendNotification, and can be read inside a handler via the
new currentRequestHandlerExtra().- val extra = RequestHandlerExtra()
+ val extra = currentRequestHandlerExtra()
@devcrocod
in #883addTool/addPrompt/addResource/addResourceTemplate
silently replaced an existing entry and emitted a spurious
list_changed notification. They now throw
IllegalArgumentException and leave the existing
registration intact. The batch variants
(addTools/addPrompts/addResources)
are all-or-nothing. To replace a feature, remove it first.- server.addTool(name = "search", ...)
// silently overwrote
+ server.removeTool("search")
+ server.addTool(name = "search", ...)
eventStore removed from
mcpStatelessStreamableHttp by @devcrocod in #909GET with 405, so no stream exists to store or
replay events on. The old overload is retained at
DeprecationLevel.ERROR with a ReplaceWith
migration hint. Use mcpStreamableHttp when you need
resumability. application.mcpStatelessStreamableHttp(
path = "/mcp",
- eventStore = myEventStore,
) { server }
Features
mcpStreamableHttp(sseHeartbeatConfig = { ... }), keeping
long-lived streams alive against clients that disconnect on idle.
Heartbeats stay off by default, by @UnscientificJsZhai
in #761requestedSchema; a mismatch fails
createElicitation with McpException
(INVALID_PARAMS) instead of reaching server code unchecked,
by @rea9r in #896Mcp-Method and Mcp-Name POST headers, by @AndreKalberer
in #894Fixed
@KlyneChrysler
in #872text/event-stream, by @devcrocod in #911Commits
76b8e7d
release: 0.15.0 (#918)dab340f
fix(server): drop inert eventStore from stateless Streamable HTTP (#909)24c3cd3
fix(server): match Accept header as media ranges (#912)7fa438c
feat(client): send MCP standard POST headers (#894)94745e6
chore(deps): bump the kotest group across 1 directory with 3 updates (#915)2b494b7
chore(deps): bump the other-dependencies group across 5 directories with
3 up...82fe56e
fix(server): preserve Streamable HTTP response status and body (#911)a06d699
feat: SSE heartbeat (#761)cab669b
fix: classify malformed request params as invalid params (#886)b6cb547
fix(server): preserve id on duplicate initialize errors (#868)
Updates `io.modelcontextprotocol:kotlin-sdk-client` from 0.14.0 to
0.15.0
Release notes
0.15.0
Description
Breaking Changes
@devcrocod in #884notifications/cancelled those handlers depend on. After
the handshake, handlers may now run concurrently; processing stays
serial during initialization.
ProtocolOptions / ClientOptions /
ServerOptions gain a handlerCoroutineContext
parameter (defaults to Dispatchers.Default). Concurrency is
bounded internally; there is no opt-out flag by design.RequestHandlerExtra is now a
CoroutineContext.Element and is no longer
user-constructible. It exposes requestId,
method, sendRequest, and
sendNotification, and can be read inside a handler via the
new currentRequestHandlerExtra().- val extra = RequestHandlerExtra()
+ val extra = currentRequestHandlerExtra()
@devcrocod
in #883addTool/addPrompt/addResource/addResourceTemplate
silently replaced an existing entry and emitted a spurious
list_changed notification. They now throw
IllegalArgumentException and leave the existing
registration intact. The batch variants
(addTools/addPrompts/addResources)
are all-or-nothing. To replace a feature, remove it first.- server.addTool(name = "search", ...)
// silently overwrote
+ server.removeTool("search")
+ server.addTool(name = "search", ...)
eventStore removed from
mcpStatelessStreamableHttp by @devcrocod in #909GET with 405, so no stream exists to store or
replay events on. The old overload is retained at
DeprecationLevel.ERROR with a ReplaceWith
migration hint. Use mcpStreamableHttp when you need
resumability. application.mcpStatelessStreamableHttp(
path = "/mcp",
- eventStore = myEventStore,
) { server }
Features
mcpStreamableHttp(sseHeartbeatConfig = { ... }), keeping
long-lived streams alive against clients that disconnect on idle.
Heartbeats stay off by default, by @UnscientificJsZhai
in #761requestedSchema; a mismatch fails
createElicitation with McpException
(INVALID_PARAMS) instead of reaching server code unchecked,
by @rea9r in #896Mcp-Method and Mcp-Name POST headers, by @AndreKalberer
in #894Fixed
@KlyneChrysler
in #872text/event-stream, by @devcrocod in #911Commits
76b8e7d
release: 0.15.0 (#918)dab340f
fix(server): drop inert eventStore from stateless Streamable HTTP (#909)24c3cd3
fix(server): match Accept header as media ranges (#912)7fa438c
feat(client): send MCP standard POST headers (#894)94745e6
chore(deps): bump the kotest group across 1 directory with 3 updates (#915)2b494b7
chore(deps): bump the other-dependencies group across 5 directories with
3 up...82fe56e
fix(server): preserve Streamable HTTP response status and body (#911)a06d699
feat: SSE heartbeat (#761)cab669b
fix: classify malformed request params as invalid params (#886)b6cb547
fix(server): preserve id on duplicate initialize errors (#868)
Updates `io.modelcontextprotocol:kotlin-sdk-testing` from 0.14.0 to
0.15.0
Release notes
0.15.0
Description
Breaking Changes
@devcrocod in #884notifications/cancelled those handlers depend on. After
the handshake, handlers may now run concurrently; processing stays
serial during initialization.
ProtocolOptions / ClientOptions /
ServerOptions gain a handlerCoroutineContext
parameter (defaults to Dispatchers.Default). Concurrency is
bounded internally; there is no opt-out flag by design.RequestHandlerExtra is now a
CoroutineContext.Element and is no longer
user-constructible. It exposes requestId,
method, sendRequest, and
sendNotification, and can be read inside a handler via the
new currentRequestHandlerExtra().- val extra = RequestHandlerExtra()
+ val extra = currentRequestHandlerExtra()
@devcrocod
in #883addTool/addPrompt/addResource/addResourceTemplate
silently replaced an existing entry and emitted a spurious
list_changed notification. They now throw
IllegalArgumentException and leave the existing
registration intact. The batch variants
(addTools/addPrompts/addResources)
are all-or-nothing. To replace a feature, remove it first.- server.addTool(name = "search", ...)
// silently overwrote
+ server.removeTool("search")
+ server.addTool(name = "search", ...)
eventStore removed from
mcpStatelessStreamableHttp by @devcrocod in #909GET with 405, so no stream exists to store or
replay events on. The old overload is retained at
DeprecationLevel.ERROR with a ReplaceWith
migration hint. Use mcpStreamableHttp when you need
resumability. application.mcpStatelessStreamableHttp(
path = "/mcp",
- eventStore = myEventStore,
) { server }
Features
mcpStreamableHttp(sseHeartbeatConfig = { ... }), keeping
long-lived streams alive against clients that disconnect on idle.
Heartbeats stay off by default, by @UnscientificJsZhai
in #761requestedSchema; a mismatch fails
createElicitation with McpException
(INVALID_PARAMS) instead of reaching server code unchecked,
by @rea9r in #896Mcp-Method and Mcp-Name POST headers, by @AndreKalberer
in #894Fixed
@KlyneChrysler
in #872text/event-stream, by @devcrocod in #911Commits
76b8e7d
release: 0.15.0 (#918)dab340f
fix(server): drop inert eventStore from stateless Streamable HTTP (#909)24c3cd3
fix(server): match Accept header as media ranges (#912)7fa438c
feat(client): send MCP standard POST headers (#894)94745e6
chore(deps): bump the kotest group across 1 directory with 3 updates (#915)2b494b7
chore(deps): bump the other-dependencies group across 5 directories with
3 up...82fe56e
fix(server): preserve Streamable HTTP response status and body (#911)a06d699
feat: SSE heartbeat (#761)cab669b
fix: classify malformed request params as invalid params (#886)b6cb547
fix(server): preserve id on duplicate initialize errors (#868)
Signed-off-by: dependabot[bot] Release notes
0.15.0
Description
Breaking Changes
@devcrocod in #884notifications/cancelled those handlers depend on. After
the handshake, handlers may now run concurrently; processing stays
serial during initialization.
ProtocolOptions / ClientOptions /
ServerOptions gain a handlerCoroutineContext
parameter (defaults to Dispatchers.Default). Concurrency is
bounded internally; there is no opt-out flag by design.RequestHandlerExtra is now a
CoroutineContext.Element and is no longer
user-constructible. It exposes requestId,
method, sendRequest, and
sendNotification, and can be read inside a handler via the
new currentRequestHandlerExtra().- val extra = RequestHandlerExtra()
+ val extra = currentRequestHandlerExtra()
@devcrocod
in #883addTool/addPrompt/addResource/addResourceTemplate
silently replaced an existing entry and emitted a spurious
list_changed notification. They now throw
IllegalArgumentException and leave the existing
registration intact. The batch variants
(addTools/addPrompts/addResources)
are all-or-nothing. To replace a feature, remove it first.- server.addTool(name = "search", ...)
// silently overwrote
+ server.removeTool("search")
+ server.addTool(name = "search", ...)
eventStore removed from
mcpStatelessStreamableHttp by @devcrocod in #909GET with 405, so no stream exists to store or
replay events on. The old overload is retained at
DeprecationLevel.ERROR with a ReplaceWith
migration hint. Use mcpStreamableHttp when you need
resumability. application.mcpStatelessStreamableHttp(
path = "/mcp",
- eventStore = myEventStore,
) { server }
Features
mcpStreamableHttp(sseHeartbeatConfig = { ... }), keeping
long-lived streams alive against clients that disconnect on idle.
Heartbeats stay off by default, by @UnscientificJsZhai
in #761requestedSchema; a mismatch fails
createElicitation with McpException
(INVALID_PARAMS) instead of reaching server code unchecked,
by @rea9r in #896Mcp-Method and Mcp-Name POST headers, by @AndreKalberer
in #894Fixed
@KlyneChrysler
in #872text/event-stream, by @devcrocod in #911Commits
76b8e7d
release: 0.15.0 (#918)dab340f
fix(server): drop inert eventStore from stateless Streamable HTTP (#909)24c3cd3
fix(server): match Accept header as media ranges (#912)7fa438c
feat(client): send MCP standard POST headers (#894)94745e6
chore(deps): bump the kotest group across 1 directory with 3 updates (#915)2b494b7
chore(deps): bump the other-dependencies group across 5 directories with
3 up...82fe56e
fix(server): preserve Streamable HTTP response status and body (#911)a06d699
feat: SSE heartbeat (#761)cab669b
fix: classify malformed request params as invalid params (#886)b6cb547
fix(server): preserve id on duplicate initialize errors (#868)
Updates `io.modelcontextprotocol:kotlin-sdk-server` from 0.14.0 to
0.15.0
Release notes
0.15.0
Description
Breaking Changes
@devcrocod in #884notifications/cancelled those handlers depend on. After
the handshake, handlers may now run concurrently; processing stays
serial during initialization.
ProtocolOptions / ClientOptions /
ServerOptions gain a handlerCoroutineContext
parameter (defaults to Dispatchers.Default). Concurrency is
bounded internally; there is no opt-out flag by design.RequestHandlerExtra is now a
CoroutineContext.Element and is no longer
user-constructible. It exposes requestId,
method, sendRequest, and
sendNotification, and can be read inside a handler via the
new currentRequestHandlerExtra().- val extra = RequestHandlerExtra()
+ val extra = currentRequestHandlerExtra()
@devcrocod
in #883addTool/addPrompt/addResource/addResourceTemplate
silently replaced an existing entry and emitted a spurious
list_changed notification. They now throw
IllegalArgumentException and leave the existing
registration intact. The batch variants
(addTools/addPrompts/addResources)
are all-or-nothing. To replace a feature, remove it first.- server.addTool(name = "search", ...)
// silently overwrote
+ server.removeTool("search")
+ server.addTool(name = "search", ...)
eventStore removed from
mcpStatelessStreamableHttp by @devcrocod in #909GET with 405, so no stream exists to store or
replay events on. The old overload is retained at
DeprecationLevel.ERROR with a ReplaceWith
migration hint. Use mcpStreamableHttp when you need
resumability. application.mcpStatelessStreamableHttp(
path = "/mcp",
- eventStore = myEventStore,
) { server }
Features
mcpStreamableHttp(sseHeartbeatConfig = { ... }), keeping
long-lived streams alive against clients that disconnect on idle.
Heartbeats stay off by default, by @UnscientificJsZhai
in #761requestedSchema; a mismatch fails
createElicitation with McpException
(INVALID_PARAMS) instead of reaching server code unchecked,
by @rea9r in #896Mcp-Method and Mcp-Name POST headers, by @AndreKalberer
in #894Fixed
@KlyneChrysler
in #872text/event-stream, by @devcrocod in #911Commits
76b8e7d
release: 0.15.0 (#918)dab340f
fix(server): drop inert eventStore from stateless Streamable HTTP (#909)24c3cd3
fix(server): match Accept header as media ranges (#912)7fa438c
feat(client): send MCP standard POST headers (#894)94745e6
chore(deps): bump the kotest group across 1 directory with 3 updates (#915)2b494b7
chore(deps): bump the other-dependencies group across 5 directories with
3 up...82fe56e
fix(server): preserve Streamable HTTP response status and body (#911)a06d699
feat: SSE heartbeat (#761)cab669b
fix: classify malformed request params as invalid params (#886)b6cb547
fix(server): preserve id on duplicate initialize errors (#868)
Signed-off-by: dependabot[bot] Release notes
0.15.0
Description
Breaking Changes
@devcrocod in #884notifications/cancelled those handlers depend on. After
the handshake, handlers may now run concurrently; processing stays
serial during initialization.
ProtocolOptions / ClientOptions /
ServerOptions gain a handlerCoroutineContext
parameter (defaults to Dispatchers.Default). Concurrency is
bounded internally; there is no opt-out flag by design.RequestHandlerExtra is now a
CoroutineContext.Element and is no longer
user-constructible. It exposes requestId,
method, sendRequest, and
sendNotification, and can be read inside a handler via the
new currentRequestHandlerExtra().- val extra = RequestHandlerExtra()
+ val extra = currentRequestHandlerExtra()
@devcrocod
in #883addTool/addPrompt/addResource/addResourceTemplate
silently replaced an existing entry and emitted a spurious
list_changed notification. They now throw
IllegalArgumentException and leave the existing
registration intact. The batch variants
(addTools/addPrompts/addResources)
are all-or-nothing. To replace a feature, remove it first.- server.addTool(name = "search", ...)
// silently overwrote
+ server.removeTool("search")
+ server.addTool(name = "search", ...)
eventStore removed from
mcpStatelessStreamableHttp by @devcrocod in #909GET with 405, so no stream exists to store or
replay events on. The old overload is retained at
DeprecationLevel.ERROR with a ReplaceWith
migration hint. Use mcpStreamableHttp when you need
resumability. application.mcpStatelessStreamableHttp(
path = "/mcp",
- eventStore = myEventStore,
) { server }
Features
mcpStreamableHttp(sseHeartbeatConfig = { ... }), keeping
long-lived streams alive against clients that disconnect on idle.
Heartbeats stay off by default, by @UnscientificJsZhai
in #761requestedSchema; a mismatch fails
createElicitation with McpException
(INVALID_PARAMS) instead of reaching server code unchecked,
by @rea9r in #896Mcp-Method and Mcp-Name POST headers, by @AndreKalberer
in #894Fixed
@KlyneChrysler
in #872text/event-stream, by @devcrocod in #911Commits
76b8e7d
release: 0.15.0 (#918)dab340f
fix(server): drop inert eventStore from stateless Streamable HTTP (#909)24c3cd3
fix(server): match Accept header as media ranges (#912)7fa438c
feat(client): send MCP standard POST headers (#894)94745e6
chore(deps): bump the kotest group across 1 directory with 3 updates (#915)2b494b7
chore(deps): bump the other-dependencies group across 5 directories with
3 up...82fe56e
fix(server): preserve Streamable HTTP response status and body (#911)a06d699
feat: SSE heartbeat (#761)cab669b
fix: classify malformed request params as invalid params (#886)b6cb547
fix(server): preserve id on duplicate initialize errors (#868)
Updates `io.modelcontextprotocol:kotlin-sdk-server` from 0.14.0 to
0.15.0
Release notes
0.15.0
Description
Breaking Changes
@devcrocod in #884notifications/cancelled those handlers depend on. After
the handshake, handlers may now run concurrently; processing stays
serial during initialization.
ProtocolOptions / ClientOptions /
ServerOptions gain a handlerCoroutineContext
parameter (defaults to Dispatchers.Default). Concurrency is
bounded internally; there is no opt-out flag by design.RequestHandlerExtra is now a
CoroutineContext.Element and is no longer
user-constructible. It exposes requestId,
method, sendRequest, and
sendNotification, and can be read inside a handler via the
new currentRequestHandlerExtra().- val extra = RequestHandlerExtra()
+ val extra = currentRequestHandlerExtra()
@devcrocod
in #883addTool/addPrompt/addResource/addResourceTemplate
silently replaced an existing entry and emitted a spurious
list_changed notification. They now throw
IllegalArgumentException and leave the existing
registration intact. The batch variants
(addTools/addPrompts/addResources)
are all-or-nothing. To replace a feature, remove it first.- server.addTool(name = "search", ...)
// silently overwrote
+ server.removeTool("search")
+ server.addTool(name = "search", ...)
eventStore removed from
mcpStatelessStreamableHttp by @devcrocod in #909GET with 405, so no stream exists to store or
replay events on. The old overload is retained at
DeprecationLevel.ERROR with a ReplaceWith
migration hint. Use mcpStreamableHttp when you need
resumability. application.mcpStatelessStreamableHttp(
path = "/mcp",
- eventStore = myEventStore,
) { server }
Features
mcpStreamableHttp(sseHeartbeatConfig = { ... }), keeping
long-lived streams alive against clients that disconnect on idle.
Heartbeats stay off by default, by @UnscientificJsZhai
in #761requestedSchema; a mismatch fails
createElicitation with McpException
(INVALID_PARAMS) instead of reaching server code unchecked,
by @rea9r in #896Mcp-Method and Mcp-Name POST headers, by @AndreKalberer
in #894Fixed
@KlyneChrysler
in #872text/event-stream, by @devcrocod in #911Commits
76b8e7d
release: 0.15.0 (#918)dab340f
fix(server): drop inert eventStore from stateless Streamable HTTP (#909)24c3cd3
fix(server): match Accept header as media ranges (#912)7fa438c
feat(client): send MCP standard POST headers (#894)94745e6
chore(deps): bump the kotest group across 1 directory with 3 updates (#915)2b494b7
chore(deps): bump the other-dependencies group across 5 directories with
3 up...82fe56e
fix(server): preserve Streamable HTTP response status and body (#911)a06d699
feat: SSE heartbeat (#761)cab669b
fix: classify malformed request params as invalid params (#886)b6cb547
fix(server): preserve id on duplicate initialize errors (#868)
Signed-off-by: dependabot[bot] Release notes
v6.2.0
Highlights
What's Changed
@bigdaz in gradle/actions#981@bigdaz in gradle/actions#983@Vampire in gradle/actions#938@SimonMarquis
in gradle/actions#902@bigdaz in gradle/actions#984@bigdaz in gradle/actions#985New Contributors
@Vampire made
their first contribution in gradle/actions#938v6.1.1
What's Changed
@bot-githubaction
in gradle/actions#961@bot-githubaction
in gradle/actions#962@bot-githubaction
in gradle/actions#963@bot-githubaction
in gradle/actions#964@bot-githubaction
in gradle/actions#965@github-actions[bot]
in gradle/actions#937@dependabot[bot]
in gradle/actions#976@dependabot[bot]
in gradle/actions#970@bot-githubaction
in gradle/actions#973@dependabot[bot]
in gradle/actions#977@actions/cache and
@actions/artifact, stop ignoring them in Dependabot by @bigdaz in gradle/actions#978@bigdaz in gradle/actions#980v6.1.0
New: Basic Cache Provider
gradle-actions-caching. Choose
Basic Caching by setting cache-provider: basic on
setup-gradle or dependency-submission
actions.
@actions/cache -- fully open sourceCommits
b6eebf3
[bot] Update dist directory9901393
Remove unnecessary dependency overrides (#981)20ce680
Update RELEASING.md5e2ebd0
[bot] Update dist directory9e2c1cc
Resolve npm security vulnerabilities via dependency overrides (#980)657f690
[bot] Update dist directory9d6bacd
Update @actions/cache and @actions/artifact,
stop ignoring them in Dependabot...79f6b19
[bot] Update dist directory6781648
Bump the npm-dependencies group in /sources with 5 updates (#977)a3b40d2
[bot] Update dist directory
Updates `actions/stale` from 10 to 11
Release notes
v11.0.0
What's Changed
Enhancement
@chiranjib-swain
in actions/stale#1350Dependency Update
@dependabot in actions/stale#1351v10.4.0
What's Changed
Bug Fix
only-issue-types validation by @trueberryless
in actions/stale#1338Dependency Updates
@dependabot in actions/stale#1342New Contributors
@trueberryless
made their first contribution in actions/stale#1338v10.3.0
What's Changed
Bug Fix
@shamoon in actions/stale#1311Dependency Updates
@actions/core,
@octokit/plugin-retry, @typescript-eslint)
by @Copilot in actions/stale#1335New Contributors
@shamoon made
their first contribution in actions/stale#1311v10.2.0
What's Changed
Bug Fix
@itchyny in actions/stale#1152Dependency Updates
@dependabot in actions/stale#1304@dependabot in actions/stale#1313@chiranjib-swain
in actions/stale#1312New Contributors
@itchyny made
their first contribution in actions/stale#1152Changelog
Changelog
[10.1.0]
What's Changed
@Bibo-Joshi in actions/stale#1255[10.0.0]
What's Changed
Breaking Changes
@salmanmkc in actions/stale#1279
Make sure your runner is on version v2.327.1 or later to ensure
compatibility with this release. Release
NotesEnhancement
@suyashgaonkar
in actions/stale#1254Dependency Upgrades
@dependabot[bot]
in actions/stale#1186@dependabot[bot]
in actions/stale#1201@action/cache from 4.0.0 to 4.0.2 by @aparnajyothi-y
in actions/stale#1226@action/cache from 4.0.2 to 4.0.3 by @suyashgaonkar
in actions/stale#1233@dependabot[bot]
in actions/stale#1251@gowridurgad in
actions/stale#1277Documentation changes
@suyashgaonkar
in actions/stale#1224@ghadimir in actions/stale#1248[9.1.0]
What's Changed
@Marukome0743
in actions/stale#1116@Jcambass in actions/stale#1179@dependabot in actions/stale#1150@dependabot in actions/stale#1091@dependabot in actions/stale#1147@dependabot in actions/stale#1175@actions/core from 1.10.1 to 1.11.1 by @dependabot in actions/stale#1191@types/jest from 29.5.11 to 29.5.14 by @dependabot in actions/stale#1193@actions/cache from 3.2.2 to 4.0.0 by @dependabot in actions/stale#1194[9.0.0]
Breaking Changes
Commits
4391f3d
Fix 24 high severity vulnerabilities by overriding brace-expansion to
5.0.8 (...eaf9131
refactor: update imports to use ES module syntax and improve test
structure (...
Updates `github/codeql-action` from 4 to 4.37.4
Release notes
v4.37.4
tools input for the codeql-action/init step to
be specified using a github-codeql-tools repository
property. This feature will gradually be rolled out following the
release of this version. Once rolled out, this allows for the CodeQL CLI
version that is used in GitHub-managed workflows, such as Default Setup,
to be set to a custom value. For example, customers who run into issues
with rate limits when a new CodeQL CLI version is released can set the
value to toolcache to always use the CodeQL CLI version
that is available in the runner toolcache. For Advanced Setup workflows,
the value provided for tools in the workflow definition
always takes precedence unless the value of the repository property
starts with !. #4037v4.37.3
v4.37.2
config-file input that
was introduced in CodeQL Action 4.37.0 is now enabled by default. In
addition to the format described there, the remote= prefix
can now be used to explicitly indicate that the input refers to a remote
file. All previous input formats continue to be accepted as well. #4023v4.37.1
v4.37.0
config-file input for the codeql-action/init
step will soon support a new [owner/]repo[@ref][:path]
format. All components except the repository name are optional. If
omitted, owner defaults to the same owner as the repository
the analysis is running for, ref to main, and
path to .github/codeql-action.yaml. Support
for this format ships in this version of the CodeQL Action, but will
only be enabled over the coming weeks. #3973v4.36.3
v4.36.2
v4.36.1
v4.36.0
v4.35.5
analysis-kinds input, only code-scanning will
be enabled. The analysis-kinds input is experimental, for
GitHub-internal use only, and may change without notice at any time. #3892v4.35.4
v4.35.3
GET requests instead of HEAD for better
compatibility with various registry implementations. For NuGet feeds,
the test is now always performed against the service index. #3853Changelog
4.37.4 - 29 Jul 2026
tools input for the codeql-action/init step to
be specified using a github-codeql-tools repository
property. This feature will gradually be rolled out following the
release of this version. Once rolled out, this allows for the CodeQL CLI
version that is used in GitHub-managed workflows, such as Default Setup,
to be set to a custom value. For example, customers who run into issues
with rate limits when a new CodeQL CLI version is released can set the
value to toolcache to always use the CodeQL CLI version
that is available in the runner toolcache. For Advanced Setup workflows,
the value provided for tools in the workflow definition
always takes precedence unless the value of the repository property
starts with !. #40374.37.3 - 22 Jul 2026
4.37.2 - 21 Jul 2026
config-file input that
was introduced in CodeQL Action 4.37.0 is now enabled by default. In
addition to the format described there, the remote= prefix
can now be used to explicitly indicate that the input refers to a remote
file. All previous input formats continue to be accepted as well. #40234.37.1 - 16 Jul 2026
4.37.0 - 08 Jul 2026
config-file input for the codeql-action/init
step will soon support a new [owner/]repo[@ref][:path]
format. All components except the repository name are optional. If
omitted, owner defaults to the same owner as the repository
the analysis is running for, ref to main, and
path to .github/codeql-action.yaml. Support
for this format ships in this version of the CodeQL Action, but will
only be enabled over the coming weeks. #39734.36.3 - 01 Jul 2026
Commits
18420e3
Merge pull request #4043
from github/mbg/ts/changelog7e8d897
Merge pull request #4046
from github/mbg/repo-prop/code-quality2d4c474
Log !analysisKindSupported case98c05a1
Fix argument validation in rollback-changelog.ts8289a49
Ignore repository property for unsupported analysis kinds2a8731c
Move config-file computation after determining the
analysisKinds3434fbb
Merge pull request #4044
from github/mbg/ff/promote-toolcache3013ac0
Promote AllowToolcacheInput feature74b15aa
Install JS deps if needed in post-release-mergeback
workflowf00f809
Fix checking keys rather than values
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show Release notes
Kotlin 2.4.10
Changelog
Backend. Wasm
KT-87066
K/Wasm: Not all files are presented in compiler output directory with
multimodule-closed-world and incremental compilationCompiler
KT-86939
JVM: IllegalStateException "No value for annotation parameter"
when using const val in nested Java annotation array argumentKT-83766
K2: Wrong sourcePsi is set for SymbolPsiLiteral in SLC for
annotation arguments referencing a const valKT-86728
Reified type inference: expected type not propagated into inline call
inside lambda with elvis operatorCompose Compiler
b/522127447
Compose Compiler 2.4: classes previously inferred stable
now reported runtime/UncertainKlibs
KT-86501
Native: IrTypeAliasSymbolImpl is already bound. Signature:
kotlinx.datetime/Instant|null[0] on iosSimulatorArm64Tools. CLI
KT-86930
Introduce kotlinr in the Kotlin distributionTools. Gradle. BCV
KT-87223
Gradle, BCV: open version range in kotlinAbiValidationCompatClasspath
causes kotlin-build-tools-impl to resolve to 2.4.20-Beta1 instead of
2.4.0Tools. Gradle. JS
KT-87304
jsBrowserTest fails with "exited with errors (exit code:
1)"KT-86057
kotlinUpgradeYarnLock skips lock file regeneration when kotlinNpmInstall
is up-to-date, causing kotlinStoreYarnLock to failTools. Gradle. Multiplatform
KT-87084
False positive warning for JS and Wasm compilations when CRI is
enabledTools. Scripts
KT-87076
@file:CompilerOptions("-jvm-target", ...) ignored
in .main.kts scripts in Kotlin 2.4.0, falling back to JVM target
1.8KT-86352
K2 scripting: FirResolvedTypeRef exception when resolving extension
functions from imported scriptsKotlin 2.4.10-RC2
Changelog
Backend. Wasm
KT-87066
K/Wasm: Not all files are presented in compiler output directory with
multimodule-closed-world and incremental compilationChangelog
2.4.10
Backend. Wasm
KT-87066
K/Wasm: Not all files are presented in compiler output directory with
multimodule-closed-world and incremental compilationCompiler
KT-86939
JVM: IllegalStateException "No value for annotation parameter"
when using const val in nested Java annotation array argumentKT-83766
K2: Wrong sourcePsi is set for SymbolPsiLiteral in SLC for
annotation arguments referencing a const valKT-86728
Reified type inference: expected type not propagated into inline call
inside lambda with elvis operatorCompose Compiler
b/522127447
Compose Compiler 2.4: classes previously inferred stable
now reported runtime/UncertainKlibs
KT-86501
Native: IrTypeAliasSymbolImpl is already bound. Signature:
kotlinx.datetime/Instant|null[0] on iosSimulatorArm64Tools. CLI
KT-86930
Introduce kotlinr in the Kotlin distributionTools. Gradle. BCV
KT-87223
Gradle, BCV: open version range in kotlinAbiValidationCompatClasspath
causes kotlin-build-tools-impl to resolve to 2.4.20-Beta1 instead of
2.4.0Tools. Gradle. JS
KT-87304
jsBrowserTest fails with "exited with errors (exit code:
1)"KT-86057
kotlinUpgradeYarnLock skips lock file regeneration when kotlinNpmInstall
is up-to-date, causing kotlinStoreYarnLock to failTools. Gradle. Multiplatform
KT-87084
False positive warning for JS and Wasm compilations when CRI is
enabledTools. Scripts
Commits
5687445
Add Changelog for 2.4.10-RC2ba30392
[Wasm] Support regenerate unchanged modules flag on KGP6307e73
[Wasm] Implement Xwasm-IC-generate-unchanged-modules flag39d7aee
Add ChangeLog for 2.4.10-RC2a2956be
[Gradle] Update karma.conf.js to use 'require(...)' instead plain
strings9b1361c
[Gradle] KT-87223: Updated regression testa4c153a
[Gradle] KT-87223: Fix toochain to 2.4.0 for abiValidation compat
configbc04b90
Add ChangeLog for 2.4.10-RCbbcb94b
[CRI] explicitly disable CRI generation for non-JVM targets to avoid
false-po...6c2c458
Scripting: fix jvmTarget processing from script annotations
Updates `org.jetbrains.kotlin:kotlin-serialization` from 2.4.0 to 2.4.10
Release notes
Kotlin 2.4.10
Changelog
Backend. Wasm
KT-87066
K/Wasm: Not all files are presented in compiler output directory with
multimodule-closed-world and incremental compilationCompiler
KT-86939
JVM: IllegalStateException "No value for annotation parameter"
when using const val in nested Java annotation array argumentKT-83766
K2: Wrong sourcePsi is set for SymbolPsiLiteral in SLC for
annotation arguments referencing a const valKT-86728
Reified type inference: expected type not propagated into inline call
inside lambda with elvis operatorCompose Compiler
b/522127447
Compose Compiler 2.4: classes previously inferred stable
now reported runtime/UncertainKlibs
KT-86501
Native: IrTypeAliasSymbolImpl is already bound. Signature:
kotlinx.datetime/Instant|null[0] on iosSimulatorArm64Tools. CLI
KT-86930
Introduce kotlinr in the Kotlin distributionTools. Gradle. BCV
KT-87223
Gradle, BCV: open version range in kotlinAbiValidationCompatClasspath
causes kotlin-build-tools-impl to resolve to 2.4.20-Beta1 instead of
2.4.0Tools. Gradle. JS
KT-87304
jsBrowserTest fails with "exited with errors (exit code:
1)"KT-86057
kotlinUpgradeYarnLock skips lock file regeneration when kotlinNpmInstall
is up-to-date, causing kotlinStoreYarnLock to failTools. Gradle. Multiplatform
KT-87084
False positive warning for JS and Wasm compilations when CRI is
enabledTools. Scripts
KT-87076
@file:CompilerOptions("-jvm-target", ...) ignored
in .main.kts scripts in Kotlin 2.4.0, falling back to JVM target
1.8KT-86352
K2 scripting: FirResolvedTypeRef exception when resolving extension
functions from imported scriptsKotlin 2.4.10-RC2
Changelog
Backend. Wasm
KT-87066
K/Wasm: Not all files are presented in compiler output directory with
multimodule-closed-world and incremental compilationChangelog
2.4.10
Backend. Wasm
KT-87066
K/Wasm: Not all files are presented in compiler output directory with
multimodule-closed-world and incremental compilationCompiler
KT-86939
JVM: IllegalStateException "No value for annotation parameter"
when using const val in nested Java annotation array argumentKT-83766
K2: Wrong sourcePsi is set for SymbolPsiLiteral in SLC for
annotation arguments referencing a const valKT-86728
Reified type inference: expected type not propagated into inline call
inside lambda with elvis operatorCompose Compiler
b/522127447
Compose Compiler 2.4: classes previously inferred stable
now reported runtime/UncertainKlibs
KT-86501
Native: IrTypeAliasSymbolImpl is already bound. Signature:
kotlinx.datetime/Instant|null[0] on iosSimulatorArm64Tools. CLI
KT-86930
Introduce kotlinr in the Kotlin distributionTools. Gradle. BCV
KT-87223
Gradle, BCV: open version range in kotlinAbiValidationCompatClasspath
causes kotlin-build-tools-impl to resolve to 2.4.20-Beta1 instead of
2.4.0Tools. Gradle. JS
KT-87304
jsBrowserTest fails with "exited with errors (exit code:
1)"KT-86057
kotlinUpgradeYarnLock skips lock file regeneration when kotlinNpmInstall
is up-to-date, causing kotlinStoreYarnLock to failTools. Gradle. Multiplatform
KT-87084
False positive warning for JS and Wasm compilations when CRI is
enabledTools. Scripts
Commits
5687445
Add Changelog for 2.4.10-RC2ba30392
[Wasm] Support regenerate unchanged modules flag on KGP6307e73
[Wasm] Implement Xwasm-IC-generate-unchanged-modules flag39d7aee
Add ChangeLog for 2.4.10-RC2a2956be
[Gradle] Update karma.conf.js to use 'require(...)' instead plain
strings9b1361c
[Gradle] KT-87223: Updated regression testa4c153a
[Gradle] KT-87223: Fix toochain to 2.4.0 for abiValidation compat
configbc04b90
Add ChangeLog for 2.4.10-RCbbcb94b
[CRI] explicitly disable CRI generation for non-JVM targets to avoid
false-po...6c2c458
Scripting: fix jvmTarget processing from script annotations
Updates `org.jetbrains.kotlin:kotlin-serialization` from 2.4.0 to 2.4.10
Release notes
Kotlin 2.4.10
Changelog
Backend. Wasm
KT-87066
K/Wasm: Not all files are presented in compiler output directory with
multimodule-closed-world and incremental compilationCompiler
KT-86939
JVM: IllegalStateException "No value for annotation parameter"
when using const val in nested Java annotation array argumentKT-83766
K2: Wrong sourcePsi is set for SymbolPsiLiteral in SLC for
annotation arguments referencing a const valKT-86728
Reified type inference: expected type not propagated into inline call
inside lambda with elvis operatorCompose Compiler
b/522127447
Compose Compiler 2.4: classes previously inferred stable
now reported runtime/UncertainKlibs
KT-86501
Native: IrTypeAliasSymbolImpl is already bound. Signature:
kotlinx.datetime/Instant|null[0] on iosSimulatorArm64Tools. CLI
KT-86930
Introduce kotlinr in the Kotlin distributionTools. Gradle. BCV
KT-87223
Gradle, BCV: open version range in kotlinAbiValidationCompatClasspath
causes kotlin-build-tools-impl to resolve to 2.4.20-Beta1 instead of
2.4.0Tools. Gradle. JS
KT-87304
jsBrowserTest fails with "exited with errors (exit code:
1)"KT-86057
kotlinUpgradeYarnLock skips lock file regeneration when kotlinNpmInstall
is up-to-date, causing kotlinStoreYarnLock to failTools. Gradle. Multiplatform
KT-87084
False positive warning for JS and Wasm compilations when CRI is
enabledTools. Scripts
KT-87076
@file:CompilerOptions("-jvm-target", ...) ignored
in .main.kts scripts in Kotlin 2.4.0, falling back to JVM target
1.8KT-86352
K2 scripting: FirResolvedTypeRef exception when resolving extension
functions from imported scriptsKotlin 2.4.10-RC2
Changelog
Backend. Wasm
KT-87066
K/Wasm: Not all files are presented in compiler output directory with
multimodule-closed-world and incremental compilationChangelog
2.4.10
Backend. Wasm
KT-87066
K/Wasm: Not all files are presented in compiler output directory with
multimodule-closed-world and incremental compilationCompiler
KT-86939
JVM: IllegalStateException "No value for annotation parameter"
when using const val in nested Java annotation array argumentKT-83766
K2: Wrong sourcePsi is set for SymbolPsiLiteral in SLC for
annotation arguments referencing a const valKT-86728
Reified type inference: expected type not propagated into inline call
inside lambda with elvis operatorCompose Compiler
b/522127447
Compose Compiler 2.4: classes previously inferred stable
now reported runtime/UncertainKlibs
KT-86501
Native: IrTypeAliasSymbolImpl is already bound. Signature:
kotlinx.datetime/Instant|null[0] on iosSimulatorArm64Tools. CLI
KT-86930
Introduce kotlinr in the Kotlin distributionTools. Gradle. BCV
KT-87223
Gradle, BCV: open version range in kotlinAbiValidationCompatClasspath
causes kotlin-build-tools-impl to resolve to 2.4.20-Beta1 instead of
2.4.0Tools. Gradle. JS
KT-87304
jsBrowserTest fails with "exited with errors (exit code:
1)"KT-86057
kotlinUpgradeYarnLock skips lock file regeneration when kotlinNpmInstall
is up-to-date, causing kotlinStoreYarnLock to failTools. Gradle. Multiplatform
KT-87084
False positive warning for JS and Wasm compilations when CRI is
enabledTools. Scripts
Commits
5687445
Add Changelog for 2.4.10-RC2ba30392
[Wasm] Support regenerate unchanged modules flag on KGP6307e73
[Wasm] Implement Xwasm-IC-generate-unchanged-modules flag39d7aee
Add ChangeLog for 2.4.10-RC2a2956be
[Gradle] Update karma.conf.js to use 'require(...)' instead plain
strings9b1361c
[Gradle] KT-87223: Updated regression testa4c153a
[Gradle] KT-87223: Fix toochain to 2.4.0 for abiValidation compat
configbc04b90
Add ChangeLog for 2.4.10-RCbbcb94b
[CRI] explicitly disable CRI generation for non-JVM targets to avoid
false-po...6c2c458
Scripting: fix jvmTarget processing from script annotations
Signed-off-by: dependabot[bot] Release notes
v10.4.0
What's Changed
@beaugunderson
in beaugunderson/ip-address#213@beaugunderson
in beaugunderson/ip-address#216@beaugunderson
in beaugunderson/ip-address#217v10.3.1
v10.3.0
v10.2.2
v10.2.1
Commits
fbb8db2
10.4.045a2b11
Validate the byte arrays Address6 is given (#217)bac8810
Keep the package loadable on node 12, and enforce it (#216)9b3d848
Add a security policy and a README section on security posturee84a7b3
Order the README API reference Address4, Address6, AddressError015160b
Collapse each class in the README API reference34061a8
Pin checkout and setup-node to commits in the release jobc5fae5d
Pin action-gh-release to a commit and move it to 3.0.2e0ef048
Replace CircleCI with GitHub Actions5e3ceb7
Add GitHub Actions CI across Node 20, 22, 24 and 25 (#213)Maintainer changes
Install script changes
prepare script that runs during
installation. Review the package contents before updating.
Signed-off-by: dependabot[bot] Release notes
v2.1.0
What's Changed
@bilal-azam in honojs/node-server#378@mohamedramadan14
in honojs/node-server#383New Contributors
@bilal-azam made
their first contribution in honojs/node-server#378@mohamedramadan14
made their first contribution in honojs/node-server#383v2.0.12
What's Changed
@BlankParticle
in honojs/node-server#379@yusukebe in honojs/node-server#382v2.0.11
What's Changed
@BlankParticle
in honojs/node-server#377@usualoma in honojs/node-server#376@yusukebe in honojs/node-server#380v2.0.10
Security fixes
Unauthenticated memory-leak DoS via aborted WebSocket handshake
upgradeWebSocket. A WebSocket upgrade request
with a missing or malformed Sec-WebSocket-Key header leaked
the request's IncomingMessage and left a promise pending,
even though no connection was established. Since the route is reachable
pre-handshake without authentication, an attacker could flood it to
gradually exhaust memory. GHSA-9mqv-5hh9-4cgg
upgradeWebSocket are encouraged to upgrade to
this version.v2.0.9
What's Changed
@otnc in honojs/node-server#371@otnc in honojs/node-server#372@usualoma in honojs/node-server#375New Contributors
@otnc made their
first contribution in honojs/node-server#371Commits
82ba34e
2.1.01f2909a
fix(listener): avoid uncaught error when force-closing a non-standard
socket ...977a242
feat: add Early Hints (HTTP 103) middleware (#378)a813b6c
2.0.12caf48ba
fix(response): copy headers when init is a foreign Response (#382)3b1dd68
test: replace supertest (#379)834e54f
2.0.11ba72bcd
perf(request): fast-path PATCH method (#380)962baa4
perf(request): fast-path QUERY methods (#376)62284d6
test: use a custom helper for path traversal tests (#377)Maintainer changes
@hono/node-server since your current
version.
Updates `@modelcontextprotocol/sdk` from 1.29.0 to 1.30.0
Release notes
1.30.0
What's Changed
@mozmo15 in modelcontextprotocol/typescript-sdk#1503@felixweinberger
in modelcontextprotocol/typescript-sdk#1839@felixweinberger
in modelcontextprotocol/typescript-sdk#2167@KKonstantinov
in modelcontextprotocol/typescript-sdk#2239@mattzcarey in modelcontextprotocol/typescript-sdk#2368@felixweinberger
in modelcontextprotocol/typescript-sdk#2444@mattzcarey in modelcontextprotocol/typescript-sdk#2538@hono/node-server past
GHSA-frvp-7c67-39w9 by @arimu1 in modelcontextprotocol/typescript-sdk#2549@felixweinberger
in modelcontextprotocol/typescript-sdk#2547@felixweinberger
in modelcontextprotocol/typescript-sdk#2563New Contributors
@mozmo15 made
their first contribution in modelcontextprotocol/typescript-sdk#1503@arimu1 made
their first contribution in modelcontextprotocol/typescript-sdk#2549Commits
2d889f2
chore: bump version to 1.30.0 (#2563)e3f3daa
Fix SSE keep-alive timer lifecycle in Streamable HTTP server transport
(v1.x)...bb5a718
fix(deps): widen @hono/node-server past
GHSA-frvp-7c67-39w9 (#2549)1dad263
fix: send SSE keep-alive comment frames from Streamable HTTP server
transport...69749aa
Validate Content-Type by parsed media type instead of substring match
(v1.x) ...369513d
fix: support Zod 3.25 method literals (#2368)e7ee57c
v1 stdio buffer limit (#2239)c36e1ef
Add end-to-end test suite (#2167)bf1e022
chore(ci): switch publish to OIDC trusted publishing (#1839)9edbab7
fix(server): prioritize zod issues and format them (#1503)Maintainer changes
@modelcontextprotocol/sdk since your current
version.
Signed-off-by: dependabot[bot] Release notes
Kotlin 2.4.10
Changelog
Backend. Wasm
KT-87066
K/Wasm: Not all files are presented in compiler output directory with
multimodule-closed-world and incremental compilationCompiler
KT-86939
JVM: IllegalStateException "No value for annotation parameter"
when using const val in nested Java annotation array argumentKT-83766
K2: Wrong sourcePsi is set for SymbolPsiLiteral in SLC for
annotation arguments referencing a const valKT-86728
Reified type inference: expected type not propagated into inline call
inside lambda with elvis operatorCompose Compiler
b/522127447
Compose Compiler 2.4: classes previously inferred stable
now reported runtime/UncertainKlibs
KT-86501
Native: IrTypeAliasSymbolImpl is already bound. Signature:
kotlinx.datetime/Instant|null[0] on iosSimulatorArm64Tools. CLI
KT-86930
Introduce kotlinr in the Kotlin distributionTools. Gradle. BCV
KT-87223
Gradle, BCV: open version range in kotlinAbiValidationCompatClasspath
causes kotlin-build-tools-impl to resolve to 2.4.20-Beta1 instead of
2.4.0Tools. Gradle. JS
KT-87304
jsBrowserTest fails with "exited with errors (exit code:
1)"KT-86057
kotlinUpgradeYarnLock skips lock file regeneration when kotlinNpmInstall
is up-to-date, causing kotlinStoreYarnLock to failTools. Gradle. Multiplatform
KT-87084
False positive warning for JS and Wasm compilations when CRI is
enabledTools. Scripts
KT-87076
@file:CompilerOptions("-jvm-target", ...) ignored
in .main.kts scripts in Kotlin 2.4.0, falling back to JVM target
1.8KT-86352
K2 scripting: FirResolvedTypeRef exception when resolving extension
functions from imported scriptsKotlin 2.4.10-RC2
Changelog
Backend. Wasm
KT-87066
K/Wasm: Not all files are presented in compiler output directory with
multimodule-closed-world and incremental compilationChangelog
2.4.10
Backend. Wasm
KT-87066
K/Wasm: Not all files are presented in compiler output directory with
multimodule-closed-world and incremental compilationCompiler
KT-86939
JVM: IllegalStateException "No value for annotation parameter"
when using const val in nested Java annotation array argumentKT-83766
K2: Wrong sourcePsi is set for SymbolPsiLiteral in SLC for
annotation arguments referencing a const valKT-86728
Reified type inference: expected type not propagated into inline call
inside lambda with elvis operatorCompose Compiler
b/522127447
Compose Compiler 2.4: classes previously inferred stable
now reported runtime/UncertainKlibs
KT-86501
Native: IrTypeAliasSymbolImpl is already bound. Signature:
kotlinx.datetime/Instant|null[0] on iosSimulatorArm64Tools. CLI
KT-86930
Introduce kotlinr in the Kotlin distributionTools. Gradle. BCV
KT-87223
Gradle, BCV: open version range in kotlinAbiValidationCompatClasspath
causes kotlin-build-tools-impl to resolve to 2.4.20-Beta1 instead of
2.4.0Tools. Gradle. JS
KT-87304
jsBrowserTest fails with "exited with errors (exit code:
1)"KT-86057
kotlinUpgradeYarnLock skips lock file regeneration when kotlinNpmInstall
is up-to-date, causing kotlinStoreYarnLock to failTools. Gradle. Multiplatform
KT-87084
False positive warning for JS and Wasm compilations when CRI is
enabledTools. Scripts
Commits
5687445
Add Changelog for 2.4.10-RC2ba30392
[Wasm] Support regenerate unchanged modules flag on KGP6307e73
[Wasm] Implement Xwasm-IC-generate-unchanged-modules flag39d7aee
Add ChangeLog for 2.4.10-RC2a2956be
[Gradle] Update karma.conf.js to use 'require(...)' instead plain
strings9b1361c
[Gradle] KT-87223: Updated regression testa4c153a
[Gradle] KT-87223: Fix toochain to 2.4.0 for abiValidation compat
configbc04b90
Add ChangeLog for 2.4.10-RCbbcb94b
[CRI] explicitly disable CRI generation for non-JVM targets to avoid
false-po...6c2c458
Scripting: fix jvmTarget processing from script annotations
Updates `org.jetbrains.kotlin.plugin.serialization` from 2.4.0 to 2.4.10
Release notes
Kotlin 2.4.10
Changelog
Backend. Wasm
KT-87066
K/Wasm: Not all files are presented in compiler output directory with
multimodule-closed-world and incremental compilationCompiler
KT-86939
JVM: IllegalStateException "No value for annotation parameter"
when using const val in nested Java annotation array argumentKT-83766
K2: Wrong sourcePsi is set for SymbolPsiLiteral in SLC for
annotation arguments referencing a const valKT-86728
Reified type inference: expected type not propagated into inline call
inside lambda with elvis operatorCompose Compiler
b/522127447
Compose Compiler 2.4: classes previously inferred stable
now reported runtime/UncertainKlibs
KT-86501
Native: IrTypeAliasSymbolImpl is already bound. Signature:
kotlinx.datetime/Instant|null[0] on iosSimulatorArm64Tools. CLI
KT-86930
Introduce kotlinr in the Kotlin distributionTools. Gradle. BCV
KT-87223
Gradle, BCV: open version range in kotlinAbiValidationCompatClasspath
causes kotlin-build-tools-impl to resolve to 2.4.20-Beta1 instead of
2.4.0Tools. Gradle. JS
KT-87304
jsBrowserTest fails with "exited with errors (exit code:
1)"KT-86057
kotlinUpgradeYarnLock skips lock file regeneration when kotlinNpmInstall
is up-to-date, causing kotlinStoreYarnLock to failTools. Gradle. Multiplatform
KT-87084
False positive warning for JS and Wasm compilations when CRI is
enabledTools. Scripts
KT-87076
@file:CompilerOptions("-jvm-target", ...) ignored
in .main.kts scripts in Kotlin 2.4.0, falling back to JVM target
1.8KT-86352
K2 scripting: FirResolvedTypeRef exception when resolving extension
functions from imported scriptsKotlin 2.4.10-RC2
Changelog
Backend. Wasm
KT-87066
K/Wasm: Not all files are presented in compiler output directory with
multimodule-closed-world and incremental compilationChangelog
2.4.10
Backend. Wasm
KT-87066
K/Wasm: Not all files are presented in compiler output directory with
multimodule-closed-world and incremental compilationCompiler
KT-86939
JVM: IllegalStateException "No value for annotation parameter"
when using const val in nested Java annotation array argumentKT-83766
K2: Wrong sourcePsi is set for SymbolPsiLiteral in SLC for
annotation arguments referencing a const valKT-86728
Reified type inference: expected type not propagated into inline call
inside lambda with elvis operatorCompose Compiler
b/522127447
Compose Compiler 2.4: classes previously inferred stable
now reported runtime/UncertainKlibs
KT-86501
Native: IrTypeAliasSymbolImpl is already bound. Signature:
kotlinx.datetime/Instant|null[0] on iosSimulatorArm64Tools. CLI
KT-86930
Introduce kotlinr in the Kotlin distributionTools. Gradle. BCV
KT-87223
Gradle, BCV: open version range in kotlinAbiValidationCompatClasspath
causes kotlin-build-tools-impl to resolve to 2.4.20-Beta1 instead of
2.4.0Tools. Gradle. JS
KT-87304
jsBrowserTest fails with "exited with errors (exit code:
1)"KT-86057
kotlinUpgradeYarnLock skips lock file regeneration when kotlinNpmInstall
is up-to-date, causing kotlinStoreYarnLock to failTools. Gradle. Multiplatform
KT-87084
False positive warning for JS and Wasm compilations when CRI is
enabledTools. Scripts
Commits
5687445
Add Changelog for 2.4.10-RC2ba30392
[Wasm] Support regenerate unchanged modules flag on KGP6307e73
[Wasm] Implement Xwasm-IC-generate-unchanged-modules flag39d7aee
Add ChangeLog for 2.4.10-RC2a2956be
[Gradle] Update karma.conf.js to use 'require(...)' instead plain
strings9b1361c
[Gradle] KT-87223: Updated regression testa4c153a
[Gradle] KT-87223: Fix toochain to 2.4.0 for abiValidation compat
configbc04b90
Add ChangeLog for 2.4.10-RCbbcb94b
[CRI] explicitly disable CRI generation for non-JVM targets to avoid
false-po...6c2c458
Scripting: fix jvmTarget processing from script annotations
Signed-off-by: dependabot[bot] Release notes
Kotlin 2.4.10
Changelog
Backend. Wasm
KT-87066
K/Wasm: Not all files are presented in compiler output directory with
multimodule-closed-world and incremental compilationCompiler
KT-86939
JVM: IllegalStateException "No value for annotation parameter"
when using const val in nested Java annotation array argumentKT-83766
K2: Wrong sourcePsi is set for SymbolPsiLiteral in SLC for
annotation arguments referencing a const valKT-86728
Reified type inference: expected type not propagated into inline call
inside lambda with elvis operatorCompose Compiler
b/522127447
Compose Compiler 2.4: classes previously inferred stable
now reported runtime/UncertainKlibs
KT-86501
Native: IrTypeAliasSymbolImpl is already bound. Signature:
kotlinx.datetime/Instant|null[0] on iosSimulatorArm64Tools. CLI
KT-86930
Introduce kotlinr in the Kotlin distributionTools. Gradle. BCV
KT-87223
Gradle, BCV: open version range in kotlinAbiValidationCompatClasspath
causes kotlin-build-tools-impl to resolve to 2.4.20-Beta1 instead of
2.4.0Tools. Gradle. JS
KT-87304
jsBrowserTest fails with "exited with errors (exit code:
1)"KT-86057
kotlinUpgradeYarnLock skips lock file regeneration when kotlinNpmInstall
is up-to-date, causing kotlinStoreYarnLock to failTools. Gradle. Multiplatform
KT-87084
False positive warning for JS and Wasm compilations when CRI is
enabledTools. Scripts
KT-87076
@file:CompilerOptions("-jvm-target", ...) ignored
in .main.kts scripts in Kotlin 2.4.0, falling back to JVM target
1.8KT-86352
K2 scripting: FirResolvedTypeRef exception when resolving extension
functions from imported scriptsKotlin 2.4.10-RC2
Changelog
Backend. Wasm
KT-87066
K/Wasm: Not all files are presented in compiler output directory with
multimodule-closed-world and incremental compilationChangelog
2.4.10
Backend. Wasm
KT-87066
K/Wasm: Not all files are presented in compiler output directory with
multimodule-closed-world and incremental compilationCompiler
KT-86939
JVM: IllegalStateException "No value for annotation parameter"
when using const val in nested Java annotation array argumentKT-83766
K2: Wrong sourcePsi is set for SymbolPsiLiteral in SLC for
annotation arguments referencing a const valKT-86728
Reified type inference: expected type not propagated into inline call
inside lambda with elvis operatorCompose Compiler
b/522127447
Compose Compiler 2.4: classes previously inferred stable
now reported runtime/UncertainKlibs
KT-86501
Native: IrTypeAliasSymbolImpl is already bound. Signature:
kotlinx.datetime/Instant|null[0] on iosSimulatorArm64Tools. CLI
KT-86930
Introduce kotlinr in the Kotlin distributionTools. Gradle. BCV
KT-87223
Gradle, BCV: open version range in kotlinAbiValidationCompatClasspath
causes kotlin-build-tools-impl to resolve to 2.4.20-Beta1 instead of
2.4.0Tools. Gradle. JS
KT-87304
jsBrowserTest fails with "exited with errors (exit code:
1)"KT-86057
kotlinUpgradeYarnLock skips lock file regeneration when kotlinNpmInstall
is up-to-date, causing kotlinStoreYarnLock to failTools. Gradle. Multiplatform
KT-87084
False positive warning for JS and Wasm compilations when CRI is
enabledTools. Scripts
Commits
5687445
Add Changelog for 2.4.10-RC2ba30392
[Wasm] Support regenerate unchanged modules flag on KGP6307e73
[Wasm] Implement Xwasm-IC-generate-unchanged-modules flag39d7aee
Add ChangeLog for 2.4.10-RC2a2956be
[Gradle] Update karma.conf.js to use 'require(...)' instead plain
strings9b1361c
[Gradle] KT-87223: Updated regression testa4c153a
[Gradle] KT-87223: Fix toochain to 2.4.0 for abiValidation compat
configbc04b90
Add ChangeLog for 2.4.10-RCbbcb94b
[CRI] explicitly disable CRI generation for non-JVM targets to avoid
false-po...6c2c458
Scripting: fix jvmTarget processing from script annotations
Updates `org.jetbrains.kotlin.plugin.serialization` from 2.4.0 to 2.4.10
Release notes
Kotlin 2.4.10
Changelog
Backend. Wasm
KT-87066
K/Wasm: Not all files are presented in compiler output directory with
multimodule-closed-world and incremental compilationCompiler
KT-86939
JVM: IllegalStateException "No value for annotation parameter"
when using const val in nested Java annotation array argumentKT-83766
K2: Wrong sourcePsi is set for SymbolPsiLiteral in SLC for
annotation arguments referencing a const valKT-86728
Reified type inference: expected type not propagated into inline call
inside lambda with elvis operatorCompose Compiler
b/522127447
Compose Compiler 2.4: classes previously inferred stable
now reported runtime/UncertainKlibs
KT-86501
Native: IrTypeAliasSymbolImpl is already bound. Signature:
kotlinx.datetime/Instant|null[0] on iosSimulatorArm64Tools. CLI
KT-86930
Introduce kotlinr in the Kotlin distributionTools. Gradle. BCV
KT-87223
Gradle, BCV: open version range in kotlinAbiValidationCompatClasspath
causes kotlin-build-tools-impl to resolve to 2.4.20-Beta1 instead of
2.4.0Tools. Gradle. JS
KT-87304
jsBrowserTest fails with "exited with errors (exit code:
1)"KT-86057
kotlinUpgradeYarnLock skips lock file regeneration when kotlinNpmInstall
is up-to-date, causing kotlinStoreYarnLock to failTools. Gradle. Multiplatform
KT-87084
False positive warning for JS and Wasm compilations when CRI is
enabledTools. Scripts
KT-87076
@file:CompilerOptions("-jvm-target", ...) ignored
in .main.kts scripts in Kotlin 2.4.0, falling back to JVM target
1.8KT-86352
K2 scripting: FirResolvedTypeRef exception when resolving extension
functions from imported scriptsKotlin 2.4.10-RC2
Changelog
Backend. Wasm
KT-87066
K/Wasm: Not all files are presented in compiler output directory with
multimodule-closed-world and incremental compilationChangelog
2.4.10
Backend. Wasm
KT-87066
K/Wasm: Not all files are presented in compiler output directory with
multimodule-closed-world and incremental compilationCompiler
KT-86939
JVM: IllegalStateException "No value for annotation parameter"
when using const val in nested Java annotation array argumentKT-83766
K2: Wrong sourcePsi is set for SymbolPsiLiteral in SLC for
annotation arguments referencing a const valKT-86728
Reified type inference: expected type not propagated into inline call
inside lambda with elvis operatorCompose Compiler
b/522127447
Compose Compiler 2.4: classes previously inferred stable
now reported runtime/UncertainKlibs
KT-86501
Native: IrTypeAliasSymbolImpl is already bound. Signature:
kotlinx.datetime/Instant|null[0] on iosSimulatorArm64Tools. CLI
KT-86930
Introduce kotlinr in the Kotlin distributionTools. Gradle. BCV
KT-87223
Gradle, BCV: open version range in kotlinAbiValidationCompatClasspath
causes kotlin-build-tools-impl to resolve to 2.4.20-Beta1 instead of
2.4.0Tools. Gradle. JS
KT-87304
jsBrowserTest fails with "exited with errors (exit code:
1)"KT-86057
kotlinUpgradeYarnLock skips lock file regeneration when kotlinNpmInstall
is up-to-date, causing kotlinStoreYarnLock to failTools. Gradle. Multiplatform
KT-87084
False positive warning for JS and Wasm compilations when CRI is
enabledTools. Scripts
Commits
5687445
Add Changelog for 2.4.10-RC2ba30392
[Wasm] Support regenerate unchanged modules flag on KGP6307e73
[Wasm] Implement Xwasm-IC-generate-unchanged-modules flag39d7aee
Add ChangeLog for 2.4.10-RC2a2956be
[Gradle] Update karma.conf.js to use 'require(...)' instead plain
strings9b1361c
[Gradle] KT-87223: Updated regression testa4c153a
[Gradle] KT-87223: Fix toochain to 2.4.0 for abiValidation compat
configbc04b90
Add ChangeLog for 2.4.10-RCbbcb94b
[CRI] explicitly disable CRI generation for non-JVM targets to avoid
false-po...6c2c458
Scripting: fix jvmTarget processing from script annotations
Signed-off-by: dependabot[bot] Release notes
Kotlin 2.4.10
Changelog
Backend. Wasm
KT-87066
K/Wasm: Not all files are presented in compiler output directory with
multimodule-closed-world and incremental compilationCompiler
KT-86939
JVM: IllegalStateException "No value for annotation parameter"
when using const val in nested Java annotation array argumentKT-83766
K2: Wrong sourcePsi is set for SymbolPsiLiteral in SLC for
annotation arguments referencing a const valKT-86728
Reified type inference: expected type not propagated into inline call
inside lambda with elvis operatorCompose Compiler
b/522127447
Compose Compiler 2.4: classes previously inferred stable
now reported runtime/UncertainKlibs
KT-86501
Native: IrTypeAliasSymbolImpl is already bound. Signature:
kotlinx.datetime/Instant|null[0] on iosSimulatorArm64Tools. CLI
KT-86930
Introduce kotlinr in the Kotlin distributionTools. Gradle. BCV
KT-87223
Gradle, BCV: open version range in kotlinAbiValidationCompatClasspath
causes kotlin-build-tools-impl to resolve to 2.4.20-Beta1 instead of
2.4.0Tools. Gradle. JS
KT-87304
jsBrowserTest fails with "exited with errors (exit code:
1)"KT-86057
kotlinUpgradeYarnLock skips lock file regeneration when kotlinNpmInstall
is up-to-date, causing kotlinStoreYarnLock to failTools. Gradle. Multiplatform
KT-87084
False positive warning for JS and Wasm compilations when CRI is
enabledTools. Scripts
KT-87076
@file:CompilerOptions("-jvm-target", ...) ignored
in .main.kts scripts in Kotlin 2.4.0, falling back to JVM target
1.8KT-86352
K2 scripting: FirResolvedTypeRef exception when resolving extension
functions from imported scriptsKotlin 2.4.10-RC2
Changelog
Backend. Wasm
KT-87066
K/Wasm: Not all files are presented in compiler output directory with
multimodule-closed-world and incremental compilationChangelog
2.4.10
Backend. Wasm
KT-87066
K/Wasm: Not all files are presented in compiler output directory with
multimodule-closed-world and incremental compilationCompiler
KT-86939
JVM: IllegalStateException "No value for annotation parameter"
when using const val in nested Java annotation array argumentKT-83766
K2: Wrong sourcePsi is set for SymbolPsiLiteral in SLC for
annotation arguments referencing a const valKT-86728
Reified type inference: expected type not propagated into inline call
inside lambda with elvis operatorCompose Compiler
b/522127447
Compose Compiler 2.4: classes previously inferred stable
now reported runtime/UncertainKlibs
KT-86501
Native: IrTypeAliasSymbolImpl is already bound. Signature:
kotlinx.datetime/Instant|null[0] on iosSimulatorArm64Tools. CLI
KT-86930
Introduce kotlinr in the Kotlin distributionTools. Gradle. BCV
KT-87223
Gradle, BCV: open version range in kotlinAbiValidationCompatClasspath
causes kotlin-build-tools-impl to resolve to 2.4.20-Beta1 instead of
2.4.0Tools. Gradle. JS
KT-87304
jsBrowserTest fails with "exited with errors (exit code:
1)"KT-86057
kotlinUpgradeYarnLock skips lock file regeneration when kotlinNpmInstall
is up-to-date, causing kotlinStoreYarnLock to failTools. Gradle. Multiplatform
KT-87084
False positive warning for JS and Wasm compilations when CRI is
enabledTools. Scripts
Commits
5687445
Add Changelog for 2.4.10-RC2ba30392
[Wasm] Support regenerate unchanged modules flag on KGP6307e73
[Wasm] Implement Xwasm-IC-generate-unchanged-modules flag39d7aee
Add ChangeLog for 2.4.10-RC2a2956be
[Gradle] Update karma.conf.js to use 'require(...)' instead plain
strings9b1361c
[Gradle] KT-87223: Updated regression testa4c153a
[Gradle] KT-87223: Fix toochain to 2.4.0 for abiValidation compat
configbc04b90
Add ChangeLog for 2.4.10-RCbbcb94b
[CRI] explicitly disable CRI generation for non-JVM targets to avoid
false-po...6c2c458
Scripting: fix jvmTarget processing from script annotations
Updates `org.jetbrains.kotlin.plugin.serialization` from 2.4.0 to 2.4.10
Release notes
Kotlin 2.4.10
Changelog
Backend. Wasm
KT-87066
K/Wasm: Not all files are presented in compiler output directory with
multimodule-closed-world and incremental compilationCompiler
KT-86939
JVM: IllegalStateException "No value for annotation parameter"
when using const val in nested Java annotation array argumentKT-83766
K2: Wrong sourcePsi is set for SymbolPsiLiteral in SLC for
annotation arguments referencing a const valKT-86728
Reified type inference: expected type not propagated into inline call
inside lambda with elvis operatorCompose Compiler
b/522127447
Compose Compiler 2.4: classes previously inferred stable
now reported runtime/UncertainKlibs
KT-86501
Native: IrTypeAliasSymbolImpl is already bound. Signature:
kotlinx.datetime/Instant|null[0] on iosSimulatorArm64Tools. CLI
KT-86930
Introduce kotlinr in the Kotlin distributionTools. Gradle. BCV
KT-87223
Gradle, BCV: open version range in kotlinAbiValidationCompatClasspath
causes kotlin-build-tools-impl to resolve to 2.4.20-Beta1 instead of
2.4.0Tools. Gradle. JS
KT-87304
jsBrowserTest fails with "exited with errors (exit code:
1)"KT-86057
kotlinUpgradeYarnLock skips lock file regeneration when kotlinNpmInstall
is up-to-date, causing kotlinStoreYarnLock to failTools. Gradle. Multiplatform
KT-87084
False positive warning for JS and Wasm compilations when CRI is
enabledTools. Scripts
KT-87076
@file:CompilerOptions("-jvm-target", ...) ignored
in .main.kts scripts in Kotlin 2.4.0, falling back to JVM target
1.8KT-86352
K2 scripting: FirResolvedTypeRef exception when resolving extension
functions from imported scriptsKotlin 2.4.10-RC2
Changelog
Backend. Wasm
KT-87066
K/Wasm: Not all files are presented in compiler output directory with
multimodule-closed-world and incremental compilationChangelog
2.4.10
Backend. Wasm
KT-87066
K/Wasm: Not all files are presented in compiler output directory with
multimodule-closed-world and incremental compilationCompiler
KT-86939
JVM: IllegalStateException "No value for annotation parameter"
when using const val in nested Java annotation array argumentKT-83766
K2: Wrong sourcePsi is set for SymbolPsiLiteral in SLC for
annotation arguments referencing a const valKT-86728
Reified type inference: expected type not propagated into inline call
inside lambda with elvis operatorCompose Compiler
b/522127447
Compose Compiler 2.4: classes previously inferred stable
now reported runtime/UncertainKlibs
KT-86501
Native: IrTypeAliasSymbolImpl is already bound. Signature:
kotlinx.datetime/Instant|null[0] on iosSimulatorArm64Tools. CLI
KT-86930
Introduce kotlinr in the Kotlin distributionTools. Gradle. BCV
KT-87223
Gradle, BCV: open version range in kotlinAbiValidationCompatClasspath
causes kotlin-build-tools-impl to resolve to 2.4.20-Beta1 instead of
2.4.0Tools. Gradle. JS
KT-87304
jsBrowserTest fails with "exited with errors (exit code:
1)"KT-86057
kotlinUpgradeYarnLock skips lock file regeneration when kotlinNpmInstall
is up-to-date, causing kotlinStoreYarnLock to failTools. Gradle. Multiplatform
KT-87084
False positive warning for JS and Wasm compilations when CRI is
enabledTools. Scripts
Commits
5687445
Add Changelog for 2.4.10-RC2ba30392
[Wasm] Support regenerate unchanged modules flag on KGP6307e73
[Wasm] Implement Xwasm-IC-generate-unchanged-modules flag39d7aee
Add ChangeLog for 2.4.10-RC2a2956be
[Gradle] Update karma.conf.js to use 'require(...)' instead plain
strings9b1361c
[Gradle] KT-87223: Updated regression testa4c153a
[Gradle] KT-87223: Fix toochain to 2.4.0 for abiValidation compat
configbc04b90
Add ChangeLog for 2.4.10-RCbbcb94b
[CRI] explicitly disable CRI generation for non-JVM targets to avoid
false-po...6c2c458
Scripting: fix jvmTarget processing from script annotations
Signed-off-by: dependabot[bot] Release notes
Kotlin 2.4.10
Changelog
Backend. Wasm
KT-87066
K/Wasm: Not all files are presented in compiler output directory with
multimodule-closed-world and incremental compilationCompiler
KT-86939
JVM: IllegalStateException "No value for annotation parameter"
when using const val in nested Java annotation array argumentKT-83766
K2: Wrong sourcePsi is set for SymbolPsiLiteral in SLC for
annotation arguments referencing a const valKT-86728
Reified type inference: expected type not propagated into inline call
inside lambda with elvis operatorCompose Compiler
b/522127447
Compose Compiler 2.4: classes previously inferred stable
now reported runtime/UncertainKlibs
KT-86501
Native: IrTypeAliasSymbolImpl is already bound. Signature:
kotlinx.datetime/Instant|null[0] on iosSimulatorArm64Tools. CLI
KT-86930
Introduce kotlinr in the Kotlin distributionTools. Gradle. BCV
KT-87223
Gradle, BCV: open version range in kotlinAbiValidationCompatClasspath
causes kotlin-build-tools-impl to resolve to 2.4.20-Beta1 instead of
2.4.0Tools. Gradle. JS
KT-87304
jsBrowserTest fails with "exited with errors (exit code:
1)"KT-86057
kotlinUpgradeYarnLock skips lock file regeneration when kotlinNpmInstall
is up-to-date, causing kotlinStoreYarnLock to failTools. Gradle. Multiplatform
KT-87084
False positive warning for JS and Wasm compilations when CRI is
enabledTools. Scripts
KT-87076
@file:CompilerOptions("-jvm-target", ...) ignored
in .main.kts scripts in Kotlin 2.4.0, falling back to JVM target
1.8KT-86352
K2 scripting: FirResolvedTypeRef exception when resolving extension
functions from imported scriptsKotlin 2.4.10-RC2
Changelog
Backend. Wasm
KT-87066
K/Wasm: Not all files are presented in compiler output directory with
multimodule-closed-world and incremental compilationChangelog
2.4.10
Backend. Wasm
KT-87066
K/Wasm: Not all files are presented in compiler output directory with
multimodule-closed-world and incremental compilationCompiler
KT-86939
JVM: IllegalStateException "No value for annotation parameter"
when using const val in nested Java annotation array argumentKT-83766
K2: Wrong sourcePsi is set for SymbolPsiLiteral in SLC for
annotation arguments referencing a const valKT-86728
Reified type inference: expected type not propagated into inline call
inside lambda with elvis operatorCompose Compiler
b/522127447
Compose Compiler 2.4: classes previously inferred stable
now reported runtime/UncertainKlibs
KT-86501
Native: IrTypeAliasSymbolImpl is already bound. Signature:
kotlinx.datetime/Instant|null[0] on iosSimulatorArm64Tools. CLI
KT-86930
Introduce kotlinr in the Kotlin distributionTools. Gradle. BCV
KT-87223
Gradle, BCV: open version range in kotlinAbiValidationCompatClasspath
causes kotlin-build-tools-impl to resolve to 2.4.20-Beta1 instead of
2.4.0Tools. Gradle. JS
KT-87304
jsBrowserTest fails with "exited with errors (exit code:
1)"KT-86057
kotlinUpgradeYarnLock skips lock file regeneration when kotlinNpmInstall
is up-to-date, causing kotlinStoreYarnLock to failTools. Gradle. Multiplatform
KT-87084
False positive warning for JS and Wasm compilations when CRI is
enabledTools. Scripts
Commits
5687445
Add Changelog for 2.4.10-RC2ba30392
[Wasm] Support regenerate unchanged modules flag on KGP6307e73
[Wasm] Implement Xwasm-IC-generate-unchanged-modules flag39d7aee
Add ChangeLog for 2.4.10-RC2a2956be
[Gradle] Update karma.conf.js to use 'require(...)' instead plain
strings9b1361c
[Gradle] KT-87223: Updated regression testa4c153a
[Gradle] KT-87223: Fix toochain to 2.4.0 for abiValidation compat
configbc04b90
Add ChangeLog for 2.4.10-RCbbcb94b
[CRI] explicitly disable CRI generation for non-JVM targets to avoid
false-po...6c2c458
Scripting: fix jvmTarget processing from script annotations
Updates `org.jetbrains.kotlin.plugin.serialization` from 2.4.0 to 2.4.10
Release notes
Kotlin 2.4.10
Changelog
Backend. Wasm
KT-87066
K/Wasm: Not all files are presented in compiler output directory with
multimodule-closed-world and incremental compilationCompiler
KT-86939
JVM: IllegalStateException "No value for annotation parameter"
when using const val in nested Java annotation array argumentKT-83766
K2: Wrong sourcePsi is set for SymbolPsiLiteral in SLC for
annotation arguments referencing a const valKT-86728
Reified type inference: expected type not propagated into inline call
inside lambda with elvis operatorCompose Compiler
b/522127447
Compose Compiler 2.4: classes previously inferred stable
now reported runtime/UncertainKlibs
KT-86501
Native: IrTypeAliasSymbolImpl is already bound. Signature:
kotlinx.datetime/Instant|null[0] on iosSimulatorArm64Tools. CLI
KT-86930
Introduce kotlinr in the Kotlin distributionTools. Gradle. BCV
KT-87223
Gradle, BCV: open version range in kotlinAbiValidationCompatClasspath
causes kotlin-build-tools-impl to resolve to 2.4.20-Beta1 instead of
2.4.0Tools. Gradle. JS
KT-87304
jsBrowserTest fails with "exited with errors (exit code:
1)"KT-86057
kotlinUpgradeYarnLock skips lock file regeneration when kotlinNpmInstall
is up-to-date, causing kotlinStoreYarnLock to failTools. Gradle. Multiplatform
KT-87084
False positive warning for JS and Wasm compilations when CRI is
enabledTools. Scripts
KT-87076
@file:CompilerOptions("-jvm-target", ...) ignored
in .main.kts scripts in Kotlin 2.4.0, falling back to JVM target
1.8KT-86352
K2 scripting: FirResolvedTypeRef exception when resolving extension
functions from imported scriptsKotlin 2.4.10-RC2
Changelog
Backend. Wasm
KT-87066
K/Wasm: Not all files are presented in compiler output directory with
multimodule-closed-world and incremental compilationChangelog
2.4.10
Backend. Wasm
KT-87066
K/Wasm: Not all files are presented in compiler output directory with
multimodule-closed-world and incremental compilationCompiler
KT-86939
JVM: IllegalStateException "No value for annotation parameter"
when using const val in nested Java annotation array argumentKT-83766
K2: Wrong sourcePsi is set for SymbolPsiLiteral in SLC for
annotation arguments referencing a const valKT-86728
Reified type inference: expected type not propagated into inline call
inside lambda with elvis operatorCompose Compiler
b/522127447
Compose Compiler 2.4: classes previously inferred stable
now reported runtime/UncertainKlibs
KT-86501
Native: IrTypeAliasSymbolImpl is already bound. Signature:
kotlinx.datetime/Instant|null[0] on iosSimulatorArm64Tools. CLI
KT-86930
Introduce kotlinr in the Kotlin distributionTools. Gradle. BCV
KT-87223
Gradle, BCV: open version range in kotlinAbiValidationCompatClasspath
causes kotlin-build-tools-impl to resolve to 2.4.20-Beta1 instead of
2.4.0Tools. Gradle. JS
KT-87304
jsBrowserTest fails with "exited with errors (exit code:
1)"KT-86057
kotlinUpgradeYarnLock skips lock file regeneration when kotlinNpmInstall
is up-to-date, causing kotlinStoreYarnLock to failTools. Gradle. Multiplatform
KT-87084
False positive warning for JS and Wasm compilations when CRI is
enabledTools. Scripts
Commits
5687445
Add Changelog for 2.4.10-RC2ba30392
[Wasm] Support regenerate unchanged modules flag on KGP6307e73
[Wasm] Implement Xwasm-IC-generate-unchanged-modules flag39d7aee
Add ChangeLog for 2.4.10-RC2a2956be
[Gradle] Update karma.conf.js to use 'require(...)' instead plain
strings9b1361c
[Gradle] KT-87223: Updated regression testa4c153a
[Gradle] KT-87223: Fix toochain to 2.4.0 for abiValidation compat
configbc04b90
Add ChangeLog for 2.4.10-RCbbcb94b
[CRI] explicitly disable CRI generation for non-JVM targets to avoid
false-po...6c2c458
Scripting: fix jvmTarget processing from script annotations
Signed-off-by: dependabot[bot] Release notes
v3.1.5
⚠️ Security Warning
Commits
5e179cb
Bumped v3.1.52cad02d
Merge commit from fork
Signed-off-by: dependabot[bot] Commits
Updates `tsx` from 4.23.1 to 4.23.4
Release notes
v4.23.4
4.23.4
(2026-08-02)
Bug Fixes
v4.23.3
4.23.3
(2026-08-02)
Bug Fixes
v4.23.2
4.23.2
(2026-08-02)
Bug Fixes
Commits
2afc7bb
fix(cli): allow async process.once() signal handlers to finish (#827)b6574d4
fix: preserve listenerCount overload semantics (#823)0b00bc8
fix(watch): exit with 128 + signal number when interrupted (#820)3216332
docs(faq): minor grammar nit (#686)5828ffe
chore: require cross-spawn 7.0.6 (#815)33afa36
ci: gate releases on test workflow
Signed-off-by: dependabot[bot] Release notes
v2.1.0
What's Changed
@bilal-azam in honojs/node-server#378@mohamedramadan14
in honojs/node-server#383New Contributors
@bilal-azam made
their first contribution in honojs/node-server#378@mohamedramadan14
made their first contribution in honojs/node-server#383v2.0.12
What's Changed
@BlankParticle
in honojs/node-server#379@yusukebe in honojs/node-server#382v2.0.11
What's Changed
@BlankParticle
in honojs/node-server#377@usualoma in honojs/node-server#376@yusukebe in honojs/node-server#380v2.0.10
Security fixes
Unauthenticated memory-leak DoS via aborted WebSocket handshake
upgradeWebSocket. A WebSocket upgrade request
with a missing or malformed Sec-WebSocket-Key header leaked
the request's IncomingMessage and left a promise pending,
even though no connection was established. Since the route is reachable
pre-handshake without authentication, an attacker could flood it to
gradually exhaust memory. GHSA-9mqv-5hh9-4cgg
upgradeWebSocket are encouraged to upgrade to
this version.v2.0.9
What's Changed
@otnc in honojs/node-server#371@otnc in honojs/node-server#372@usualoma in honojs/node-server#375New Contributors
@otnc made their
first contribution in honojs/node-server#371Commits
82ba34e
2.1.01f2909a
fix(listener): avoid uncaught error when force-closing a non-standard
socket ...977a242
feat: add Early Hints (HTTP 103) middleware (#378)a813b6c
2.0.12caf48ba
fix(response): copy headers when init is a foreign Response (#382)3b1dd68
test: replace supertest (#379)834e54f
2.0.11ba72bcd
perf(request): fast-path PATCH method (#380)962baa4
perf(request): fast-path QUERY methods (#376)62284d6
test: use a custom helper for path traversal tests (#377)Maintainer changes
@hono/node-server since your current
version.
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show Release notes
v4.13.1
What's Changed
@Jaybhade in honojs/hono#5189@Sriharsha-dev369
in honojs/hono#4988@na-trium-144
in honojs/hono#5196New Contributors
@Jaybhade
made their first contribution in honojs/hono#5189@Sriharsha-dev369
made their first contribution in honojs/hono#4988v4.13.0
Performance improvements
Headers allocations, replacing regex tests with
indexOf, allocating internal state lazily, and more.benchmarks/fetch
comparing v4.12 and v4.13 (ROUNDS=5 ./compare.sh, Bun
1.4.0, Apple Silicon — each measurement runs in a fresh process, and the
variant order is reversed every round to avoid warm-up bias):
Benchmark
v4.12
v4.13
Speedup
ping — GET /165.83 ns
163.99 ns
1.01x
query — GET /id/1?name=bun674.40 ns
616.99 ns
1.09x
json — GET /user528.99 ns
422.44 ns
1.25x
body — POST /json1.16 µs
1.00 µs
1.15x
for..in
honojs/hono#5118indexOf honojs/hono#5121Headers creation when there are no
headers to merge honojs/hono#5122tryDecodeURIComponent honojs/hono#5158#validatedData lazily honojs/hono#5175@kibertoad for the
contributions!First-class QUERY method support
app.query():const app = new Hono()
... (truncated)
cf78528
4.13.1f6aa913
fix(etag): skip unsafe methods or error responses on non-* case (#5196)cd31bc1
fix(utils/stream): re-acquire writer lock when pipe() throws (#4988)569b419
fix(trie-router): count every slash a pattern consumes (#5189)192768f
4.13.0b0c2d90
Merge pull request #5154
from honojs/next8f07028
fix(compress): set Vary: Accept-Encoding on negotiated responses (#5137)8a0b18f
feat(reg-exp-router): throw UnsupportedPathError during route
registration (#...3feb355
fix(jsx): allow a function component to return an array (#5179)5d911d2
feat(utils/headers): add HTTP fields newly registered with IANA (#5153)Sourced from io.ktor:ktor-client-apache5's releases.
3.5.2
Published 31 July 2026
Improvements
- KTOR-8032 RateLimit: Allow limit requests based on authentication result
- KTOR-9719
ApplicationCall.isStaticContentreturns false when called from plugin interceptors- KTOR-8450 ContentNegotiation: it doesn't handle content type suffixes
- KTOR-7892 SwaggerUI: Missing oauth2-redirect.html support in the plugin
- KTOR-9759 Reject whitespace in URL hosts during parsing
- KTOR-9681 Update kotlinx-io to 0.9.1
- KTOR-9743 ByteReadChannel.readLineStrict: Misleading definition of limit parameter in KDocs
- KTOR-9504 Improve KDoc for EmbeddedServer.addShutdownHook
Bugfixes
- KTOR-9741 CIO: request-handler coroutine leak on half-closed idle connection after ≥1MB response
- KTOR-7661 Maven + YAML config file does not work
- KTOR-9585 OpenAPI: JsonSchema title is truncated when it contains a dot
- KTOR-9704 UTF-8 encoding in ktor-io bypasses JVM String.getBytes intrinsics, slowing every text response by 5-7x
- KTOR-9588 SSE client (CIO engine) sends spurious
Content-Length: 0on body-less GET (RFC 9110 § 8.6 violation; rejected by AWS ELB)- KTOR-9679 ByteReadChannel.readLine corrupts multi-byte UTF-8 by splitting a character at a buffer boundary
- KTOR-9767 ByteReadChannel.readLineTo: Return read bytes count instead of decoded characters count
- KTOR-8992 HoconConfigLoader is not loaded when ktor-server-config-yaml on the classpath
- KTOR-9698 OpenAPI: schema for kotlinx.serialization sealed types omits discriminator property in variant schemas
- KTOR-9690 Netty: in-flight requests are aborted on stop(), ignoring shutdown grace period
- KTOR-8903 Netty: Close channel connection on errors properly
- KTOR-9707 SaveBody performance regression
- KTOR-9703 Inefficient text reading function in DefaultTransform
- KTOR-9711 Netty HTTP/2: a single client-canceled stream (RST_STREAM) breaks response flushing for the whole connection
- KTOR-9688 RateLimit: No access to principal when wrapped with authentication since 3.5.1
- KTOR-9677 Auto-reloading: server is reloaded only once since 3.5.0
- KTOR-9683 Sockets: Canceling a SelectorManager job doesn't close it properly
- KTOR-9671 Darwin: Semicolons in URL path are sanitized
Sourced from io.ktor:ktor-client-apache5's changelog.
3.5.2
Published 31 July 2026
Improvements
- KTOR-8032 RateLimit: Allow limit requests based on authentication result
- KTOR-9719
ApplicationCall.isStaticContentreturns false when called from plugin interceptors- KTOR-8450 ContentNegotiation: it doesn't handle content type suffixes
- KTOR-7892 SwaggerUI: Missing oauth2-redirect.html support in the plugin
- KTOR-9759 Reject whitespace in URL hosts during parsing
- KTOR-9681 Update kotlinx-io to 0.9.1
- KTOR-9743 ByteReadChannel.readLineStrict: Misleading definition of limit parameter in KDocs
- KTOR-9504 Improve KDoc for EmbeddedServer.addShutdownHook
Bugfixes
- KTOR-9741 CIO: request-handler coroutine leak on half-closed idle connection after ≥1MB response
- KTOR-7661 Maven + YAML config file does not work
- KTOR-9585 OpenAPI: JsonSchema title is truncated when it contains a dot
- KTOR-9704 UTF-8 encoding in ktor-io bypasses JVM String.getBytes intrinsics, slowing every text response by 5-7x
- KTOR-9588 SSE client (CIO engine) sends spurious
Content-Length: 0on body-less GET (RFC 9110 § 8.6 violation; rejected by AWS ELB)- KTOR-9679 ByteReadChannel.readLine corrupts multi-byte UTF-8 by splitting a character at a buffer boundary
- KTOR-9767 ByteReadChannel.readLineTo: Return read bytes count instead of decoded characters count
- KTOR-8992 HoconConfigLoader is not loaded when ktor-server-config-yaml on the classpath
- KTOR-9698 OpenAPI: schema for kotlinx.serialization sealed types omits discriminator property in variant schemas
- KTOR-9690 Netty: in-flight requests are aborted on stop(), ignoring shutdown grace period
- KTOR-8903 Netty: Close channel connection on errors properly
- KTOR-9707 SaveBody performance regression
- KTOR-9703 Inefficient text reading function in DefaultTransform
- KTOR-9711 Netty HTTP/2: a single client-canceled stream (RST_STREAM) breaks response flushing for the whole connection
- KTOR-9688 RateLimit: No access to principal when wrapped with authentication since 3.5.1
- KTOR-9677 Auto-reloading: server is reloaded only once since 3.5.0
- KTOR-9683 Sockets: Canceling a SelectorManager job doesn't close it properly
- KTOR-9671 Darwin: Semicolons in URL path are sanitized
01c469a
Release 3.5.2 (#5781)c965a0c
KTOR-9741 Prevent CIO request handler leak (#5783)74df458
chore: fix some comments to improve readability2672567
[KTOR-9704] Optimized encoding flow for UTF-8 (#5743)d5680ed
KTOR-5391: Document ECDSA certificate limitation for client
authentication (#...9b0f356
something::javaClass.name is not the name of the class of
something but `"j...58256cd
KTOR-9743 Clarify readLine documentation088bd60
KTOR-9679 Fix regressions caused by adding buffering167176a
KTOR-9588 Do not send Content-Length: 0 for body-less GET requests (#5620)7fb0844
KTOR-9585 Fix schema title trimmingSourced from io.ktor:ktor-client-auth's releases.
3.5.2
Published 31 July 2026
Improvements
- KTOR-8032 RateLimit: Allow limit requests based on authentication result
- KTOR-9719
ApplicationCall.isStaticContentreturns false when called from plugin interceptors- KTOR-8450 ContentNegotiation: it doesn't handle content type suffixes
- KTOR-7892 SwaggerUI: Missing oauth2-redirect.html support in the plugin
- KTOR-9759 Reject whitespace in URL hosts during parsing
- KTOR-9681 Update kotlinx-io to 0.9.1
- KTOR-9743 ByteReadChannel.readLineStrict: Misleading definition of limit parameter in KDocs
- KTOR-9504 Improve KDoc for EmbeddedServer.addShutdownHook
Bugfixes
- KTOR-9741 CIO: request-handler coroutine leak on half-closed idle connection after ≥1MB response
- KTOR-7661 Maven + YAML config file does not work
- KTOR-9585 OpenAPI: JsonSchema title is truncated when it contains a dot
- KTOR-9704 UTF-8 encoding in ktor-io bypasses JVM String.getBytes intrinsics, slowing every text response by 5-7x
- KTOR-9588 SSE client (CIO engine) sends spurious
Content-Length: 0on body-less GET (RFC 9110 § 8.6 violation; rejected by AWS ELB)- KTOR-9679 ByteReadChannel.readLine corrupts multi-byte UTF-8 by splitting a character at a buffer boundary
- KTOR-9767 ByteReadChannel.readLineTo: Return read bytes count instead of decoded characters count
- KTOR-8992 HoconConfigLoader is not loaded when ktor-server-config-yaml on the classpath
- KTOR-9698 OpenAPI: schema for kotlinx.serialization sealed types omits discriminator property in variant schemas
- KTOR-9690 Netty: in-flight requests are aborted on stop(), ignoring shutdown grace period
- KTOR-8903 Netty: Close channel connection on errors properly
- KTOR-9707 SaveBody performance regression
- KTOR-9703 Inefficient text reading function in DefaultTransform
- KTOR-9711 Netty HTTP/2: a single client-canceled stream (RST_STREAM) breaks response flushing for the whole connection
- KTOR-9688 RateLimit: No access to principal when wrapped with authentication since 3.5.1
- KTOR-9677 Auto-reloading: server is reloaded only once since 3.5.0
- KTOR-9683 Sockets: Canceling a SelectorManager job doesn't close it properly
- KTOR-9671 Darwin: Semicolons in URL path are sanitized
Sourced from io.ktor:ktor-client-auth's changelog.
3.5.2
Published 31 July 2026
Improvements
- KTOR-8032 RateLimit: Allow limit requests based on authentication result
- KTOR-9719
ApplicationCall.isStaticContentreturns false when called from plugin interceptors- KTOR-8450 ContentNegotiation: it doesn't handle content type suffixes
- KTOR-7892 SwaggerUI: Missing oauth2-redirect.html support in the plugin
- KTOR-9759 Reject whitespace in URL hosts during parsing
- KTOR-9681 Update kotlinx-io to 0.9.1
- KTOR-9743 ByteReadChannel.readLineStrict: Misleading definition of limit parameter in KDocs
- KTOR-9504 Improve KDoc for EmbeddedServer.addShutdownHook
Bugfixes
- KTOR-9741 CIO: request-handler coroutine leak on half-closed idle connection after ≥1MB response
- KTOR-7661 Maven + YAML config file does not work
- KTOR-9585 OpenAPI: JsonSchema title is truncated when it contains a dot
- KTOR-9704 UTF-8 encoding in ktor-io bypasses JVM String.getBytes intrinsics, slowing every text response by 5-7x
- KTOR-9588 SSE client (CIO engine) sends spurious
Content-Length: 0on body-less GET (RFC 9110 § 8.6 violation; rejected by AWS ELB)- KTOR-9679 ByteReadChannel.readLine corrupts multi-byte UTF-8 by splitting a character at a buffer boundary
- KTOR-9767 ByteReadChannel.readLineTo: Return read bytes count instead of decoded characters count
- KTOR-8992 HoconConfigLoader is not loaded when ktor-server-config-yaml on the classpath
- KTOR-9698 OpenAPI: schema for kotlinx.serialization sealed types omits discriminator property in variant schemas
- KTOR-9690 Netty: in-flight requests are aborted on stop(), ignoring shutdown grace period
- KTOR-8903 Netty: Close channel connection on errors properly
- KTOR-9707 SaveBody performance regression
- KTOR-9703 Inefficient text reading function in DefaultTransform
- KTOR-9711 Netty HTTP/2: a single client-canceled stream (RST_STREAM) breaks response flushing for the whole connection
- KTOR-9688 RateLimit: No access to principal when wrapped with authentication since 3.5.1
- KTOR-9677 Auto-reloading: server is reloaded only once since 3.5.0
- KTOR-9683 Sockets: Canceling a SelectorManager job doesn't close it properly
- KTOR-9671 Darwin: Semicolons in URL path are sanitized
01c469a
Release 3.5.2 (#5781)c965a0c
KTOR-9741 Prevent CIO request handler leak (#5783)74df458
chore: fix some comments to improve readability2672567
[KTOR-9704] Optimized encoding flow for UTF-8 (#5743)d5680ed
KTOR-5391: Document ECDSA certificate limitation for client
authentication (#...9b0f356
something::javaClass.name is not the name of the class of
something but `"j...58256cd
KTOR-9743 Clarify readLine documentation088bd60
KTOR-9679 Fix regressions caused by adding buffering167176a
KTOR-9588 Do not send Content-Length: 0 for body-less GET requests (#5620)7fb0844
KTOR-9585 Fix schema title trimmingSourced from io.ktor:ktor-client-core's releases.
3.5.2
Published 31 July 2026
Improvements
- KTOR-8032 RateLimit: Allow limit requests based on authentication result
- KTOR-9719
ApplicationCall.isStaticContentreturns false when called from plugin interceptors- KTOR-8450 ContentNegotiation: it doesn't handle content type suffixes
- KTOR-7892 SwaggerUI: Missing oauth2-redirect.html support in the plugin
- KTOR-9759 Reject whitespace in URL hosts during parsing
- KTOR-9681 Update kotlinx-io to 0.9.1
- KTOR-9743 ByteReadChannel.readLineStrict: Misleading definition of limit parameter in KDocs
- KTOR-9504 Improve KDoc for EmbeddedServer.addShutdownHook
Bugfixes
- KTOR-9741 CIO: request-handler coroutine leak on half-closed idle connection after ≥1MB response
- KTOR-7661 Maven + YAML config file does not work
- KTOR-9585 OpenAPI: JsonSchema title is truncated when it contains a dot
- KTOR-9704 UTF-8 encoding in ktor-io bypasses JVM String.getBytes intrinsics, slowing every text response by 5-7x
- KTOR-9588 SSE client (CIO engine) sends spurious
Content-Length: 0on body-less GET (RFC 9110 § 8.6 violation; rejected by AWS ELB)- KTOR-9679 ByteReadChannel.readLine corrupts multi-byte UTF-8 by splitting a character at a buffer boundary
- KTOR-9767 ByteReadChannel.readLineTo: Return read bytes count instead of decoded characters count
- KTOR-8992 HoconConfigLoader is not loaded when ktor-server-config-yaml on the classpath
- KTOR-9698 OpenAPI: schema for kotlinx.serialization sealed types omits discriminator property in variant schemas
- KTOR-9690 Netty: in-flight requests are aborted on stop(), ignoring shutdown grace period
- KTOR-8903 Netty: Close channel connection on errors properly
- KTOR-9707 SaveBody performance regression
- KTOR-9703 Inefficient text reading function in DefaultTransform
- KTOR-9711 Netty HTTP/2: a single client-canceled stream (RST_STREAM) breaks response flushing for the whole connection
- KTOR-9688 RateLimit: No access to principal when wrapped with authentication since 3.5.1
- KTOR-9677 Auto-reloading: server is reloaded only once since 3.5.0
- KTOR-9683 Sockets: Canceling a SelectorManager job doesn't close it properly
- KTOR-9671 Darwin: Semicolons in URL path are sanitized
Sourced from io.ktor:ktor-client-core's changelog.
3.5.2
Published 31 July 2026
Improvements
- KTOR-8032 RateLimit: Allow limit requests based on authentication result
- KTOR-9719
ApplicationCall.isStaticContentreturns false when called from plugin interceptors- KTOR-8450 ContentNegotiation: it doesn't handle content type suffixes
- KTOR-7892 SwaggerUI: Missing oauth2-redirect.html support in the plugin
- KTOR-9759 Reject whitespace in URL hosts during parsing
- KTOR-9681 Update kotlinx-io to 0.9.1
- KTOR-9743 ByteReadChannel.readLineStrict: Misleading definition of limit parameter in KDocs
- KTOR-9504 Improve KDoc for EmbeddedServer.addShutdownHook
Bugfixes
- KTOR-9741 CIO: request-handler coroutine leak on half-closed idle connection after ≥1MB response
- KTOR-7661 Maven + YAML config file does not work
- KTOR-9585 OpenAPI: JsonSchema title is truncated when it contains a dot
- KTOR-9704 UTF-8 encoding in ktor-io bypasses JVM String.getBytes intrinsics, slowing every text response by 5-7x
- KTOR-9588 SSE client (CIO engine) sends spurious
Content-Length: 0on body-less GET (RFC 9110 § 8.6 violation; rejected by AWS ELB)- KTOR-9679 ByteReadChannel.readLine corrupts multi-byte UTF-8 by splitting a character at a buffer boundary
- KTOR-9767 ByteReadChannel.readLineTo: Return read bytes count instead of decoded characters count
- KTOR-8992 HoconConfigLoader is not loaded when ktor-server-config-yaml on the classpath
- KTOR-9698 OpenAPI: schema for kotlinx.serialization sealed types omits discriminator property in variant schemas
- KTOR-9690 Netty: in-flight requests are aborted on stop(), ignoring shutdown grace period
- KTOR-8903 Netty: Close channel connection on errors properly
- KTOR-9707 SaveBody performance regression
- KTOR-9703 Inefficient text reading function in DefaultTransform
- KTOR-9711 Netty HTTP/2: a single client-canceled stream (RST_STREAM) breaks response flushing for the whole connection
- KTOR-9688 RateLimit: No access to principal when wrapped with authentication since 3.5.1
- KTOR-9677 Auto-reloading: server is reloaded only once since 3.5.0
- KTOR-9683 Sockets: Canceling a SelectorManager job doesn't close it properly
- KTOR-9671 Darwin: Semicolons in URL path are sanitized
01c469a
Release 3.5.2 (#5781)c965a0c
KTOR-9741 Prevent CIO request handler leak (#5783)74df458
chore: fix some comments to improve readability2672567
[KTOR-9704] Optimized encoding flow for UTF-8 (#5743)d5680ed
KTOR-5391: Document ECDSA certificate limitation for client
authentication (#...9b0f356
something::javaClass.name is not the name of the class of
something but `"j...58256cd
KTOR-9743 Clarify readLine documentation088bd60
KTOR-9679 Fix regressions caused by adding buffering167176a
KTOR-9588 Do not send Content-Length: 0 for body-less GET requests (#5620)7fb0844
KTOR-9585 Fix schema title trimmingSourced from io.ktor:ktor-client-logging's releases.
3.5.2
Published 31 July 2026
Improvements
- KTOR-8032 RateLimit: Allow limit requests based on authentication result
- KTOR-9719
ApplicationCall.isStaticContentreturns false when called from plugin interceptors- KTOR-8450 ContentNegotiation: it doesn't handle content type suffixes
- KTOR-7892 SwaggerUI: Missing oauth2-redirect.html support in the plugin
- KTOR-9759 Reject whitespace in URL hosts during parsing
- KTOR-9681 Update kotlinx-io to 0.9.1
- KTOR-9743 ByteReadChannel.readLineStrict: Misleading definition of limit parameter in KDocs
- KTOR-9504 Improve KDoc for EmbeddedServer.addShutdownHook
Bugfixes
- KTOR-9741 CIO: request-handler coroutine leak on half-closed idle connection after ≥1MB response
- KTOR-7661 Maven + YAML config file does not work
- KTOR-9585 OpenAPI: JsonSchema title is truncated when it contains a dot
- KTOR-9704 UTF-8 encoding in ktor-io bypasses JVM String.getBytes intrinsics, slowing every text response by 5-7x
- KTOR-9588 SSE client (CIO engine) sends spurious
Content-Length: 0on body-less GET (RFC 9110 § 8.6 violation; rejected by AWS ELB)- KTOR-9679 ByteReadChannel.readLine corrupts multi-byte UTF-8 by splitting a character at a buffer boundary
- KTOR-9767 ByteReadChannel.readLineTo: Return read bytes count instead of decoded characters count
- KTOR-8992 HoconConfigLoader is not loaded when ktor-server-config-yaml on the classpath
- KTOR-9698 OpenAPI: schema for kotlinx.serialization sealed types omits discriminator property in variant schemas
- KTOR-9690 Netty: in-flight requests are aborted on stop(), ignoring shutdown grace period
- KTOR-8903 Netty: Close channel connection on errors properly
- KTOR-9707 SaveBody performance regression
- KTOR-9703 Inefficient text reading function in DefaultTransform
- KTOR-9711 Netty HTTP/2: a single client-canceled stream (RST_STREAM) breaks response flushing for the whole connection
- KTOR-9688 RateLimit: No access to principal when wrapped with authentication since 3.5.1
- KTOR-9677 Auto-reloading: server is reloaded only once since 3.5.0
- KTOR-9683 Sockets: Canceling a SelectorManager job doesn't close it properly
- KTOR-9671 Darwin: Semicolons in URL path are sanitized
Sourced from io.ktor:ktor-client-logging's changelog.
3.5.2
Published 31 July 2026
Improvements
- KTOR-8032 RateLimit: Allow limit requests based on authentication result
- KTOR-9719
ApplicationCall.isStaticContentreturns false when called from plugin interceptors- KTOR-8450 ContentNegotiation: it doesn't handle content type suffixes
- KTOR-7892 SwaggerUI: Missing oauth2-redirect.html support in the plugin
- KTOR-9759 Reject whitespace in URL hosts during parsing
- KTOR-9681 Update kotlinx-io to 0.9.1
- KTOR-9743 ByteReadChannel.readLineStrict: Misleading definition of limit parameter in KDocs
- KTOR-9504 Improve KDoc for EmbeddedServer.addShutdownHook
Bugfixes
- KTOR-9741 CIO: request-handler coroutine leak on half-closed idle connection after ≥1MB response
- KTOR-7661 Maven + YAML config file does not work
- KTOR-9585 OpenAPI: JsonSchema title is truncated when it contains a dot
- KTOR-9704 UTF-8 encoding in ktor-io bypasses JVM String.getBytes intrinsics, slowing every text response by 5-7x
- KTOR-9588 SSE client (CIO engine) sends spurious
Content-Length: 0on body-less GET (RFC 9110 § 8.6 violation; rejected by AWS ELB)- KTOR-9679 ByteReadChannel.readLine corrupts multi-byte UTF-8 by splitting a character at a buffer boundary
- KTOR-9767 ByteReadChannel.readLineTo: Return read bytes count instead of decoded characters count
- KTOR-8992 HoconConfigLoader is not loaded when ktor-server-config-yaml on the classpath
- KTOR-9698 OpenAPI: schema for kotlinx.serialization sealed types omits discriminator property in variant schemas
- KTOR-9690 Netty: in-flight requests are aborted on stop(), ignoring shutdown grace period
- KTOR-8903 Netty: Close channel connection on errors properly
- KTOR-9707 SaveBody performance regression
- KTOR-9703 Inefficient text reading function in DefaultTransform
- KTOR-9711 Netty HTTP/2: a single client-canceled stream (RST_STREAM) breaks response flushing for the whole connection
- KTOR-9688 RateLimit: No access to principal when wrapped with authentication since 3.5.1
- KTOR-9677 Auto-reloading: server is reloaded only once since 3.5.0
- KTOR-9683 Sockets: Canceling a SelectorManager job doesn't close it properly
- KTOR-9671 Darwin: Semicolons in URL path are sanitized
01c469a
Release 3.5.2 (#5781)c965a0c
KTOR-9741 Prevent CIO request handler leak (#5783)74df458
chore: fix some comments to improve readability2672567
[KTOR-9704] Optimized encoding flow for UTF-8 (#5743)d5680ed
KTOR-5391: Document ECDSA certificate limitation for client
authentication (#...9b0f356
something::javaClass.name is not the name of the class of
something but `"j...58256cd
KTOR-9743 Clarify readLine documentation088bd60
KTOR-9679 Fix regressions caused by adding buffering167176a
KTOR-9588 Do not send Content-Length: 0 for body-less GET requests (#5620)7fb0844
KTOR-9585 Fix schema title trimmingSourced from io.ktor:ktor-server-content-negotiation's releases.
3.5.2
Published 31 July 2026
Improvements
- KTOR-8032 RateLimit: Allow limit requests based on authentication result
- KTOR-9719
ApplicationCall.isStaticContentreturns false when called from plugin interceptors- KTOR-8450 ContentNegotiation: it doesn't handle content type suffixes
- KTOR-7892 SwaggerUI: Missing oauth2-redirect.html support in the plugin
- KTOR-9759 Reject whitespace in URL hosts during parsing
- KTOR-9681 Update kotlinx-io to 0.9.1
- KTOR-9743 ByteReadChannel.readLineStrict: Misleading definition of limit parameter in KDocs
- KTOR-9504 Improve KDoc for EmbeddedServer.addShutdownHook
Bugfixes
- KTOR-9741 CIO: request-handler coroutine leak on half-closed idle connection after ≥1MB response
- KTOR-7661 Maven + YAML config file does not work
- KTOR-9585 OpenAPI: JsonSchema title is truncated when it contains a dot
- KTOR-9704 UTF-8 encoding in ktor-io bypasses JVM String.getBytes intrinsics, slowing every text response by 5-7x
- KTOR-9588 SSE client (CIO engine) sends spurious
Content-Length: 0on body-less GET (RFC 9110 § 8.6 violation; rejected by AWS ELB)- KTOR-9679 ByteReadChannel.readLine corrupts multi-byte UTF-8 by splitting a character at a buffer boundary
- KTOR-9767 ByteReadChannel.readLineTo: Return read bytes count instead of decoded characters count
- KTOR-8992 HoconConfigLoader is not loaded when ktor-server-config-yaml on the classpath
- KTOR-9698 OpenAPI: schema for kotlinx.serialization sealed types omits discriminator property in variant schemas
- KTOR-9690 Netty: in-flight requests are aborted on stop(), ignoring shutdown grace period
- KTOR-8903 Netty: Close channel connection on errors properly
- KTOR-9707 SaveBody performance regression
- KTOR-9703 Inefficient text reading function in DefaultTransform
- KTOR-9711 Netty HTTP/2: a single client-canceled stream (RST_STREAM) breaks response flushing for the whole connection
- KTOR-9688 RateLimit: No access to principal when wrapped with authentication since 3.5.1
- KTOR-9677 Auto-reloading: server is reloaded only once since 3.5.0
- KTOR-9683 Sockets: Canceling a SelectorManager job doesn't close it properly
- KTOR-9671 Darwin: Semicolons in URL path are sanitized
Sourced from io.ktor:ktor-server-content-negotiation's changelog.
3.5.2
Published 31 July 2026
Improvements
- KTOR-8032 RateLimit: Allow limit requests based on authentication result
- KTOR-9719
ApplicationCall.isStaticContentreturns false when called from plugin interceptors- KTOR-8450 ContentNegotiation: it doesn't handle content type suffixes
- KTOR-7892 SwaggerUI: Missing oauth2-redirect.html support in the plugin
- KTOR-9759 Reject whitespace in URL hosts during parsing
- KTOR-9681 Update kotlinx-io to 0.9.1
- KTOR-9743 ByteReadChannel.readLineStrict: Misleading definition of limit parameter in KDocs
- KTOR-9504 Improve KDoc for EmbeddedServer.addShutdownHook
Bugfixes
- KTOR-9741 CIO: request-handler coroutine leak on half-closed idle connection after ≥1MB response
- KTOR-7661 Maven + YAML config file does not work
- KTOR-9585 OpenAPI: JsonSchema title is truncated when it contains a dot
- KTOR-9704 UTF-8 encoding in ktor-io bypasses JVM String.getBytes intrinsics, slowing every text response by 5-7x
- KTOR-9588 SSE client (CIO engine) sends spurious
Content-Length: 0on body-less GET (RFC 9110 § 8.6 violation; rejected by AWS ELB)- KTOR-9679 ByteReadChannel.readLine corrupts multi-byte UTF-8 by splitting a character at a buffer boundary
- KTOR-9767 ByteReadChannel.readLineTo: Return read bytes count instead of decoded characters count
- KTOR-8992 HoconConfigLoader is not loaded when ktor-server-config-yaml on the classpath
- KTOR-9698 OpenAPI: schema for kotlinx.serialization sealed types omits discriminator property in variant schemas
- KTOR-9690 Netty: in-flight requests are aborted on stop(), ignoring shutdown grace period
- KTOR-8903 Netty: Close channel connection on errors properly
- KTOR-9707 SaveBody performance regression
- KTOR-9703 Inefficient text reading function in DefaultTransform
- KTOR-9711 Netty HTTP/2: a single client-canceled stream (RST_STREAM) breaks response flushing for the whole connection
- KTOR-9688 RateLimit: No access to principal when wrapped with authentication since 3.5.1
- KTOR-9677 Auto-reloading: server is reloaded only once since 3.5.0
- KTOR-9683 Sockets: Canceling a SelectorManager job doesn't close it properly
- KTOR-9671 Darwin: Semicolons in URL path are sanitized
01c469a
Release 3.5.2 (#5781)c965a0c
KTOR-9741 Prevent CIO request handler leak (#5783)74df458
chore: fix some comments to improve readability2672567
[KTOR-9704] Optimized encoding flow for UTF-8 (#5743)d5680ed
KTOR-5391: Document ECDSA certificate limitation for client
authentication (#...9b0f356
something::javaClass.name is not the name of the class of
something but `"j...58256cd
KTOR-9743 Clarify readLine documentation088bd60
KTOR-9679 Fix regressions caused by adding buffering167176a
KTOR-9588 Do not send Content-Length: 0 for body-less GET requests (#5620)7fb0844
KTOR-9585 Fix schema title trimmingSourced from io.ktor:ktor-client-content-negotiation's releases.
3.5.2
Published 31 July 2026
Improvements
- KTOR-8032 RateLimit: Allow limit requests based on authentication result
- KTOR-9719
ApplicationCall.isStaticContentreturns false when called from plugin interceptors- KTOR-8450 ContentNegotiation: it doesn't handle content type suffixes
- KTOR-7892 SwaggerUI: Missing oauth2-redirect.html support in the plugin
- KTOR-9759 Reject whitespace in URL hosts during parsing
- KTOR-9681 Update kotlinx-io to 0.9.1
- KTOR-9743 ByteReadChannel.readLineStrict: Misleading definition of limit parameter in KDocs
- KTOR-9504 Improve KDoc for EmbeddedServer.addShutdownHook
Bugfixes
- KTOR-9741 CIO: request-handler coroutine leak on half-closed idle connection after ≥1MB response
- KTOR-7661 Maven + YAML config file does not work
- KTOR-9585 OpenAPI: JsonSchema title is truncated when it contains a dot
- KTOR-9704 UTF-8 encoding in ktor-io bypasses JVM String.getBytes intrinsics, slowing every text response by 5-7x
- KTOR-9588 SSE client (CIO engine) sends spurious
Content-Length: 0on body-less GET (RFC 9110 § 8.6 violation; rejected by AWS ELB)- KTOR-9679 ByteReadChannel.readLine corrupts multi-byte UTF-8 by splitting a character at a buffer boundary
- KTOR-9767 ByteReadChannel.readLineTo: Return read bytes count instead of decoded characters count
- KTOR-8992 HoconConfigLoader is not loaded when ktor-server-config-yaml on the classpath
- KTOR-9698 OpenAPI: schema for kotlinx.serialization sealed types omits discriminator property in variant schemas
- KTOR-9690 Netty: in-flight requests are aborted on stop(), ignoring shutdown grace period
- KTOR-8903 Netty: Close channel connection on errors properly
- KTOR-9707 SaveBody performance regression
- KTOR-9703 Inefficient text reading function in DefaultTransform
- KTOR-9711 Netty HTTP/2: a single client-canceled stream (RST_STREAM) breaks response flushing for the whole connection
- KTOR-9688 RateLimit: No access to principal when wrapped with authentication since 3.5.1
- KTOR-9677 Auto-reloading: server is reloaded only once since 3.5.0
- KTOR-9683 Sockets: Canceling a SelectorManager job doesn't close it properly
- KTOR-9671 Darwin: Semicolons in URL path are sanitized
Sourced from io.ktor:ktor-client-content-negotiation's changelog.
3.5.2
Published 31 July 2026
Improvements
- KTOR-8032 RateLimit: Allow limit requests based on authentication result
- KTOR-9719
ApplicationCall.isStaticContentreturns false when called from plugin interceptors- KTOR-8450 ContentNegotiation: it doesn't handle content type suffixes
- KTOR-7892 SwaggerUI: Missing oauth2-redirect.html support in the plugin
- KTOR-9759 Reject whitespace in URL hosts during parsing
- KTOR-9681 Update kotlinx-io to 0.9.1
- KTOR-9743 ByteReadChannel.readLineStrict: Misleading definition of limit parameter in KDocs
- KTOR-9504 Improve KDoc for EmbeddedServer.addShutdownHook
Bugfixes
- KTOR-9741 CIO: request-handler coroutine leak on half-closed idle connection after ≥1MB response
- KTOR-7661 Maven + YAML config file does not work
- KTOR-9585 OpenAPI: JsonSchema title is truncated when it contains a dot
- KTOR-9704 UTF-8 encoding in ktor-io bypasses JVM String.getBytes intrinsics, slowing every text response by 5-7x
- KTOR-9588 SSE client (CIO engine) sends spurious
Content-Length: 0on body-less GET (RFC 9110 § 8.6 violation; rejected by AWS ELB)- KTOR-9679 ByteReadChannel.readLine corrupts multi-byte UTF-8 by splitting a character at a buffer boundary
- KTOR-9767 ByteReadChannel.readLineTo: Return read bytes count instead of decoded characters count
- KTOR-8992 HoconConfigLoader is not loaded when ktor-server-config-yaml on the classpath
- KTOR-9698 OpenAPI: schema for kotlinx.serialization sealed types omits discriminator property in variant schemas
- KTOR-9690 Netty: in-flight requests are aborted on stop(), ignoring shutdown grace period
- KTOR-8903 Netty: Close channel connection on errors properly
- KTOR-9707 SaveBody performance regression
- KTOR-9703 Inefficient text reading function in DefaultTransform
- KTOR-9711 Netty HTTP/2: a single client-canceled stream (RST_STREAM) breaks response flushing for the whole connection
- KTOR-9688 RateLimit: No access to principal when wrapped with authentication since 3.5.1
- KTOR-9677 Auto-reloading: server is reloaded only once since 3.5.0
- KTOR-9683 Sockets: Canceling a SelectorManager job doesn't... _Description has been truncated_ Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 051e361..7257a7d 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -17,7 +17,7 @@ collections-immutable = "0.5.1" coroutines = "1.11.0" kotest = "6.2.3" kotlinx-io = "0.9.1" -ktor = "3.5.1" +ktor = "3.5.2" logging = "8.0.4" mockk = "1.14.11" serialization = "1.11.0" From 68042497a0038253afce1093a36837b7af42699a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Aug 2026 14:59:51 +0200 Subject: [PATCH 22/58] chore(deps): bump the other-dependencies group across 5 directories with 1 update (#942) Bumps the other-dependencies group with 1 update in the /samples/kotlin-mcp-client directory: [gradle-wrapper](https://github.com/gradle/gradle). Bumps the other-dependencies group with 1 update in the /samples/kotlin-mcp-server directory: [gradle-wrapper](https://github.com/gradle/gradle). Bumps the other-dependencies group with 1 update in the /samples/kotlinlang-mcp-server directory: [gradle-wrapper](https://github.com/gradle/gradle). Bumps the other-dependencies group with 1 update in the /samples/simple-streamable-server directory: [gradle-wrapper](https://github.com/gradle/gradle). Bumps the other-dependencies group with 1 update in the /samples/weather-stdio-server directory: [gradle-wrapper](https://github.com/gradle/gradle). Updates `gradle-wrapper` from 9.6.1 to 9.7.0 Release notes
Sourced from gradle-wrapper's releases.
9.7.0
The Gradle team is excited to announce Gradle 9.7.0.
Here are the highlights of this release:
- Isolated Projects graduates to incubating
- Broader Configuration Cache compatibility
- More source locations in problem reports
We would like to thank the following community members for their contributions to this release of Gradle: Adam, Aman Gautam, Aman Kumar, Anton Dubrouski, Aurimas, gbhavya07, Josh Friend, nicklauslittle-gov, Pragati, project516, Qin Mi, Ravi, sk-reddy17, Suvrat Acharya, Yongshun Ye.
Upgrade instructions
Switch your build to use Gradle 9.7.0 by updating your wrapper:
./gradlew :wrapper --gradle-version=9.7.0 && ./gradlew :wrapperSee the Gradle 9.x upgrade guide to learn about deprecations, breaking changes and other considerations when upgrading.
For Java, Groovy, Kotlin and Android compatibility, see the full compatibility notes.
Reporting problems
If you find a problem with this release, please file a bug on GitHub Issues adhering to our issue guidelines. If you're not sure you're encountering a bug, please use the forum.
We hope you will build happiness with Gradle, and we look forward to your feedback via Twitter or on GitHub.
9.7.0 RC3
The Gradle team is excited to announce Gradle 9.7.0 RC3.
Here are the highlights of this release:
- Isolated Projects graduates to incubating
... (truncated)
Commits
3defbfcmake DistributionIntegrationSpec more permissive for releases (#38766)f176043make DistributionIntegrationSpec more permissive for releasesb0828daPrepare release notes for Gradle 9.7.0GA (#38756)064b6d6cleanupdfe7bdcadd new training to release notes7561968add release notes for 3780168a1f35cherrypick 38367 to releasea462c95Rebalance AllVersionsCrossVersion buckets for agents without TestDistribution...820e2b1Update Gradle wrapper to version 9.7.0-rc-3 (#38743)75ea3d7Update Gradle wrapper to version 9.7.0-rc-3- Additional commits viewable in compare view
Updates `gradle-wrapper` from 9.6.1 to 9.7.0Release notes
Sourced from gradle-wrapper's releases.
9.7.0
The Gradle team is excited to announce Gradle 9.7.0.
Here are the highlights of this release:
- Isolated Projects graduates to incubating
- Broader Configuration Cache compatibility
- More source locations in problem reports
We would like to thank the following community members for their contributions to this release of Gradle: Adam, Aman Gautam, Aman Kumar, Anton Dubrouski, Aurimas, gbhavya07, Josh Friend, nicklauslittle-gov, Pragati, project516, Qin Mi, Ravi, sk-reddy17, Suvrat Acharya, Yongshun Ye.
Upgrade instructions
Switch your build to use Gradle 9.7.0 by updating your wrapper:
./gradlew :wrapper --gradle-version=9.7.0 && ./gradlew :wrapperSee the Gradle 9.x upgrade guide to learn about deprecations, breaking changes and other considerations when upgrading.
For Java, Groovy, Kotlin and Android compatibility, see the full compatibility notes.
Reporting problems
If you find a problem with this release, please file a bug on GitHub Issues adhering to our issue guidelines. If you're not sure you're encountering a bug, please use the forum.
We hope you will build happiness with Gradle, and we look forward to your feedback via Twitter or on GitHub.
9.7.0 RC3
The Gradle team is excited to announce Gradle 9.7.0 RC3.
Here are the highlights of this release:
- Isolated Projects graduates to incubating
... (truncated)
Commits
3defbfcmake DistributionIntegrationSpec more permissive for releases (#38766)f176043make DistributionIntegrationSpec more permissive for releasesb0828daPrepare release notes for Gradle 9.7.0GA (#38756)064b6d6cleanupdfe7bdcadd new training to release notes7561968add release notes for 3780168a1f35cherrypick 38367 to releasea462c95Rebalance AllVersionsCrossVersion buckets for agents without TestDistribution...820e2b1Update Gradle wrapper to version 9.7.0-rc-3 (#38743)75ea3d7Update Gradle wrapper to version 9.7.0-rc-3- Additional commits viewable in compare view
Updates `gradle-wrapper` from 9.6.1 to 9.7.0Release notes
Sourced from gradle-wrapper's releases.
9.7.0
The Gradle team is excited to announce Gradle 9.7.0.
Here are the highlights of this release:
- Isolated Projects graduates to incubating
- Broader Configuration Cache compatibility
- More source locations in problem reports
We would like to thank the following community members for their contributions to this release of Gradle: Adam, Aman Gautam, Aman Kumar, Anton Dubrouski, Aurimas, gbhavya07, Josh Friend, nicklauslittle-gov, Pragati, project516, Qin Mi, Ravi, sk-reddy17, Suvrat Acharya, Yongshun Ye.
Upgrade instructions
Switch your build to use Gradle 9.7.0 by updating your wrapper:
./gradlew :wrapper --gradle-version=9.7.0 && ./gradlew :wrapperSee the Gradle 9.x upgrade guide to learn about deprecations, breaking changes and other considerations when upgrading.
For Java, Groovy, Kotlin and Android compatibility, see the full compatibility notes.
Reporting problems
If you find a problem with this release, please file a bug on GitHub Issues adhering to our issue guidelines. If you're not sure you're encountering a bug, please use the forum.
We hope you will build happiness with Gradle, and we look forward to your feedback via Twitter or on GitHub.
9.7.0 RC3
The Gradle team is excited to announce Gradle 9.7.0 RC3.
Here are the highlights of this release:
- Isolated Projects graduates to incubating
... (truncated)
Commits
3defbfcmake DistributionIntegrationSpec more permissive for releases (#38766)f176043make DistributionIntegrationSpec more permissive for releasesb0828daPrepare release notes for Gradle 9.7.0GA (#38756)064b6d6cleanupdfe7bdcadd new training to release notes7561968add release notes for 3780168a1f35cherrypick 38367 to releasea462c95Rebalance AllVersionsCrossVersion buckets for agents without TestDistribution...820e2b1Update Gradle wrapper to version 9.7.0-rc-3 (#38743)75ea3d7Update Gradle wrapper to version 9.7.0-rc-3- Additional commits viewable in compare view
Updates `gradle-wrapper` from 9.6.1 to 9.7.0Release notes
Sourced from gradle-wrapper's releases.
9.7.0
The Gradle team is excited to announce Gradle 9.7.0.
Here are the highlights of this release:
- Isolated Projects graduates to incubating
- Broader Configuration Cache compatibility
- More source locations in problem reports
We would like to thank the following community members for their contributions to this release of Gradle: Adam, Aman Gautam, Aman Kumar, Anton Dubrouski, Aurimas, gbhavya07, Josh Friend, nicklauslittle-gov, Pragati, project516, Qin Mi, Ravi, sk-reddy17, Suvrat Acharya, Yongshun Ye.
Upgrade instructions
Switch your build to use Gradle 9.7.0 by updating your wrapper:
./gradlew :wrapper --gradle-version=9.7.0 && ./gradlew :wrapperSee the Gradle 9.x upgrade guide to learn about deprecations, breaking changes and other considerations when upgrading.
For Java, Groovy, Kotlin and Android compatibility, see the full compatibility notes.
Reporting problems
If you find a problem with this release, please file a bug on GitHub Issues adhering to our issue guidelines. If you're not sure you're encountering a bug, please use the forum.
We hope you will build happiness with Gradle, and we look forward to your feedback via Twitter or on GitHub.
9.7.0 RC3
The Gradle team is excited to announce Gradle 9.7.0 RC3.
Here are the highlights of this release:
- Isolated Projects graduates to incubating
... (truncated)
Commits
3defbfcmake DistributionIntegrationSpec more permissive for releases (#38766)f176043make DistributionIntegrationSpec more permissive for releasesb0828daPrepare release notes for Gradle 9.7.0GA (#38756)064b6d6cleanupdfe7bdcadd new training to release notes7561968add release notes for 3780168a1f35cherrypick 38367 to releasea462c95Rebalance AllVersionsCrossVersion buckets for agents without TestDistribution...820e2b1Update Gradle wrapper to version 9.7.0-rc-3 (#38743)75ea3d7Update Gradle wrapper to version 9.7.0-rc-3- Additional commits viewable in compare view
Updates `gradle-wrapper` from 9.6.1 to 9.7.0Release notes
Sourced from gradle-wrapper's releases.
9.7.0
The Gradle team is excited to announce Gradle 9.7.0.
Here are the highlights of this release:
- Isolated Projects graduates to incubating
- Broader Configuration Cache compatibility
- More source locations in problem reports
We would like to thank the following community members for their contributions to this release of Gradle: Adam, Aman Gautam, Aman Kumar, Anton Dubrouski, Aurimas, gbhavya07, Josh Friend, nicklauslittle-gov, Pragati, project516, Qin Mi, Ravi, sk-reddy17, Suvrat Acharya, Yongshun Ye.
Upgrade instructions
Switch your build to use Gradle 9.7.0 by updating your wrapper:
./gradlew :wrapper --gradle-version=9.7.0 && ./gradlew :wrapperSee the Gradle 9.x upgrade guide to learn about deprecations, breaking changes and other considerations when upgrading.
For Java, Groovy, Kotlin and Android compatibility, see the full compatibility notes.
Reporting problems
If you find a problem with this release, please file a bug on GitHub Issues adhering to our issue guidelines. If you're not sure you're encountering a bug, please use the forum.
We hope you will build happiness with Gradle, and we look forward to your feedback via Twitter or on GitHub.
9.7.0 RC3
The Gradle team is excited to announce Gradle 9.7.0 RC3.
Here are the highlights of this release:
- Isolated Projects graduates to incubating
... (truncated)
Commits
3defbfcmake DistributionIntegrationSpec more permissive for releases (#38766)f176043make DistributionIntegrationSpec more permissive for releasesb0828daPrepare release notes for Gradle 9.7.0GA (#38756)064b6d6cleanupdfe7bdcadd new training to release notes7561968add release notes for 3780168a1f35cherrypick 38367 to releasea462c95Rebalance AllVersionsCrossVersion buckets for agents without TestDistribution...820e2b1Update Gradle wrapper to version 9.7.0-rc-3 (#38743)75ea3d7Update Gradle wrapper to version 9.7.0-rc-3- Additional commits viewable in compare view
Updates `gradle-wrapper` from 9.6.1 to 9.7.0Release notes
Sourced from gradle-wrapper's releases.
9.7.0
The Gradle team is excited to announce Gradle 9.7.0.
Here are the highlights of this release:
- Isolated Projects graduates to incubating
- Broader Configuration Cache compatibility
- More source locations in problem reports
We would like to thank the following community members for their contributions to this release of Gradle: Adam, Aman Gautam, Aman Kumar, Anton Dubrouski, Aurimas, gbhavya07, Josh Friend, nicklauslittle-gov, Pragati, project516, Qin Mi, Ravi, sk-reddy17, Suvrat Acharya, Yongshun Ye.
Upgrade instructions
Switch your build to use Gradle 9.7.0 by updating your wrapper:
./gradlew :wrapper --gradle-version=9.7.0 && ./gradlew :wrapperSee the Gradle 9.x upgrade guide to learn about deprecations, breaking changes and other considerations when upgrading.
For Java, Groovy, Kotlin and Android compatibility, see the full compatibility notes.
Reporting problems
If you find a problem with this release, please file a bug on GitHub Issues adhering to our issue guidelines. If you're not sure you're encountering a bug, please use the forum.
We hope you will build happiness with Gradle, and we look forward to your feedback via Twitter or on GitHub.
9.7.0 RC3
The Gradle team is excited to announce Gradle 9.7.0 RC3.
Here are the highlights of this release:
- Isolated Projects graduates to incubating
... (truncated)
Commits
3defbfcmake DistributionIntegrationSpec more permissive for releases (#38766)f176043make DistributionIntegrationSpec more permissive for releasesb0828daPrepare release notes for Gradle 9.7.0GA (#38756)064b6d6cleanupdfe7bdcadd new training to release notes7561968add release notes for 3780168a1f35cherrypick 38367 to releasea462c95Rebalance AllVersionsCrossVersion buckets for agents without TestDistribution...820e2b1Update Gradle wrapper to version 9.7.0-rc-3 (#38743)75ea3d7Update Gradle wrapper to version 9.7.0-rc-3- Additional commits viewable in compare view
Updates `gradle-wrapper` from 9.6.1 to 9.7.0Release notes
Sourced from gradle-wrapper's releases.
9.7.0
The Gradle team is excited to announce Gradle 9.7.0.
Here are the highlights of this release:
- Isolated Projects graduates to incubating
- Broader Configuration Cache compatibility
- More source locations in problem reports
We would like to thank the following community members for their contributions to this release of Gradle: Adam, Aman Gautam, Aman Kumar, Anton Dubrouski, Aurimas, gbhavya07, Josh Friend, nicklauslittle-gov, Pragati, project516, Qin Mi, Ravi, sk-reddy17, Suvrat Acharya, Yongshun Ye.
Upgrade instructions
Switch your build to use Gradle 9.7.0 by updating your wrapper:
./gradlew :wrapper --gradle-version=9.7.0 && ./gradlew :wrapperSee the Gradle 9.x upgrade guide to learn about deprecations, breaking changes and other considerations when upgrading.
For Java, Groovy, Kotlin and Android compatibility, see the full compatibility notes.
Reporting problems
If you find a problem with this release, please file a bug on GitHub Issues adhering to our issue guidelines. If you're not sure you're encountering a bug, please use the forum.
We hope you will build happiness with Gradle, and we look forward to your feedback via Twitter or on GitHub.
9.7.0 RC3
The Gradle team is excited to announce Gradle 9.7.0 RC3.
Here are the highlights of this release:
- Isolated Projects graduates to incubating
... (truncated)
Commits
3defbfcmake DistributionIntegrationSpec more permissive for releases (#38766)f176043make DistributionIntegrationSpec more permissive for releasesb0828daPrepare release notes for Gradle 9.7.0GA (#38756)064b6d6cleanupdfe7bdcadd new training to release notes7561968add release notes for 3780168a1f35cherrypick 38367 to releasea462c95Rebalance AllVersionsCrossVersion buckets for agents without TestDistribution...820e2b1Update Gradle wrapper to version 9.7.0-rc-3 (#38743)75ea3d7Update Gradle wrapper to version 9.7.0-rc-3- Additional commits viewable in compare view
Updates `gradle-wrapper` from 9.6.1 to 9.7.0Release notes
Sourced from gradle-wrapper's releases.
9.7.0
The Gradle team is excited to announce Gradle 9.7.0.
Here are the highlights of this release:
- Isolated Projects graduates to incubating
- Broader Configuration Cache compatibility
- More source locations in problem reports
We would like to thank the following community members for their contributions to this release of Gradle: Adam, Aman Gautam, Aman Kumar, Anton Dubrouski, Aurimas, gbhavya07, Josh Friend, nicklauslittle-gov, Pragati, project516, Qin Mi, Ravi, sk-reddy17, Suvrat Acharya, Yongshun Ye.
Upgrade instructions
Switch your build to use Gradle 9.7.0 by updating your wrapper:
./gradlew :wrapper --gradle-version=9.7.0 && ./gradlew :wrapperSee the Gradle 9.x upgrade guide to learn about deprecations, breaking changes and other considerations when upgrading.
For Java, Groovy, Kotlin and Android compatibility, see the full compatibility notes.
Reporting problems
If you find a problem with this release, please file a bug on GitHub Issues adhering to our issue guidelines. If you're not sure you're encountering a bug, please use the forum.
We hope you will build happiness with Gradle, and we look forward to your feedback via Twitter or on GitHub.
9.7.0 RC3
The Gradle team is excited to announce Gradle 9.7.0 RC3.
Here are the highlights of this release:
- Isolated Projects graduates to incubating
... (truncated)
Commits
3defbfcmake DistributionIntegrationSpec more permissive for releases (#38766)f176043make DistributionIntegrationSpec more permissive for releasesb0828daPrepare release notes for Gradle 9.7.0GA (#38756)064b6d6cleanupdfe7bdcadd new training to release notes7561968add release notes for 3780168a1f35cherrypick 38367 to releasea462c95Rebalance AllVersionsCrossVersion buckets for agents without TestDistribution...820e2b1Update Gradle wrapper to version 9.7.0-rc-3 (#38743)75ea3d7Update Gradle wrapper to version 9.7.0-rc-3- Additional commits viewable in compare view
Updates `gradle-wrapper` from 9.6.1 to 9.7.0Release notes
Sourced from gradle-wrapper's releases.
9.7.0
The Gradle team is excited to announce Gradle 9.7.0.
Here are the highlights of this release:
- Isolated Projects graduates to incubating
- Broader Configuration Cache compatibility
- More source locations in problem reports
We would like to thank the following community members for their contributions to this release of Gradle: Adam, Aman Gautam, Aman Kumar, Anton Dubrouski, Aurimas, gbhavya07, Josh Friend, nicklauslittle-gov, Pragati, project516, Qin Mi, Ravi, sk-reddy17, Suvrat Acharya, Yongshun Ye.
Upgrade instructions
Switch your build to use Gradle 9.7.0 by updating your wrapper:
./gradlew :wrapper --gradle-version=9.7.0 && ./gradlew :wrapperSee the Gradle 9.x upgrade guide to learn about deprecations, breaking changes and other considerations when upgrading.
For Java, Groovy, Kotlin and Android compatibility, see the full compatibility notes.
Reporting problems
If you find a problem with this release, please file a bug on GitHub Issues adhering to our issue guidelines. If you're not sure you're encountering a bug, please use the forum.
We hope you will build happiness with Gradle, and we look forward to your feedback via Twitter or on GitHub.
9.7.0 RC3
The Gradle team is excited to announce Gradle 9.7.0 RC3.
Here are the highlights of this release:
- Isolated Projects graduates to incubating
... (truncated)
Commits
3defbfcmake DistributionIntegrationSpec more permissive for releases (#38766)f176043make DistributionIntegrationSpec more permissive for releasesb0828daPrepare release notes for Gradle 9.7.0GA (#38756)064b6d6cleanupdfe7bdcadd new training to release notes7561968add release notes for 3780168a1f35cherrypick 38367 to releasea462c95Rebalance AllVersionsCrossVersion buckets for agents without TestDistribution...820e2b1Update Gradle wrapper to version 9.7.0-rc-3 (#38743)75ea3d7Update Gradle wrapper to version 9.7.0-rc-3- Additional commits viewable in compare view
Updates `gradle-wrapper` from 9.6.1 to 9.7.0Release notes
Sourced from gradle-wrapper's releases.
9.7.0
The Gradle team is excited to announce Gradle 9.7.0.
Here are the highlights of this release:
- Isolated Projects graduates to incubating
- Broader Configuration Cache compatibility
- More source locations in problem reports
We would like to thank the following community members for their contributions to this release of Gradle: Adam, Aman Gautam, Aman Kumar, Anton Dubrouski, Aurimas, gbhavya07, Josh Friend, nicklauslittle-gov, Pragati, project516, Qin Mi, Ravi, sk-reddy17, Suvrat Acharya, Yongshun Ye.
Upgrade instructions
Switch your build to use Gradle 9.7.0 by updating your wrapper:
./gradlew :wrapper --gradle-version=9.7.0 && ./gradlew :wrapperSee the Gradle 9.x upgrade guide to learn about deprecations, breaking changes and other considerations when upgrading.
For Java, Groovy, Kotlin and Android compatibility, see the full compatibility notes.
Reporting problems
If you find a problem with this release, please file a bug on GitHub Issues adhering to our issue guidelines. If you're not sure you're encountering a bug, please use the forum.
We hope you will build happiness with Gradle, and we look forward to your feedback via Twitter or on GitHub.
9.7.0 RC3
The Gradle team is excited to announce Gradle 9.7.0 RC3.
Here are the highlights of this release:
- Isolated Projects graduates to incubating
... (truncated)
Commits
3defbfcmake DistributionIntegrationSpec more permissive for releases (#38766)f176043make DistributionIntegrationSpec more permissive for releasesb0828daPrepare release notes for Gradle 9.7.0GA (#38756)064b6d6cleanupdfe7bdcadd new training to release notes7561968add release notes for 3780168a1f35cherrypick 38367 to releasea462c95Rebalance AllVersionsCrossVersion buckets for agents without TestDistribution...820e2b1Update Gradle wrapper to version 9.7.0-rc-3 (#38743)75ea3d7Update Gradle wrapper to version 9.7.0-rc-3- Additional commits viewable in compare view
Updates `gradle-wrapper` from 9.6.1 to 9.7.0Release notes
Sourced from gradle-wrapper's releases.
9.7.0
The Gradle team is excited to announce Gradle 9.7.0.
Here are the highlights of this release:
- Isolated Projects graduates to incubating
- Broader Configuration Cache compatibility
- More source locations in problem reports
We would like to thank the following community members for their contributions to this release of Gradle: Adam, Aman Gautam, Aman Kumar, Anton Dubrouski, Aurimas, gbhavya07, Josh Friend, nicklauslittle-gov, Pragati, project516, Qin Mi, Ravi, sk-reddy17, Suvrat Acharya, Yongshun Ye.
Upgrade instructions
Switch your build to use Gradle 9.7.0 by updating your wrapper:
./gradlew :wrapper --gradle-version=9.7.0 && ./gradlew :wrapperSee the Gradle 9.x upgrade guide to learn about deprecations, breaking changes and other considerations when upgrading.
For Java, Groovy, Kotlin and Android compatibility, see the full compatibility notes.
Reporting problems
If you find a problem with this release, please file a bug on GitHub Issues adhering to our issue guidelines. If you're not sure you're encountering a bug, please use the forum.
We hope you will build happiness with Gradle, and we look forward to your feedback via Twitter or on GitHub.
9.7.0 RC3
The Gradle team is excited to announce Gradle 9.7.0 RC3.
Here are the highlights of this release:
- Isolated Projects graduates to incubating
... (truncated)
Commits
3defbfcmake DistributionIntegrationSpec more permissive for releases (#38766)f176043make DistributionIntegrationSpec more permissive for releasesb0828daPrepare release notes for Gradle 9.7.0GA (#38756)064b6d6cleanupdfe7bdcadd new training to release notes7561968add release notes for 3780168a1f35cherrypick 38367 to releasea462c95Rebalance AllVersionsCrossVersion buckets for agents without TestDistribution...820e2b1Update Gradle wrapper to version 9.7.0-rc-3 (#38743)75ea3d7Update Gradle wrapper to version 9.7.0-rc-3- Additional commits viewable in compare view
Updates `gradle-wrapper` from 9.6.1 to 9.7.0Release notes
Sourced from gradle-wrapper's releases.
9.7.0
The Gradle team is excited to announce Gradle 9.7.0.
Here are the highlights of this release:
- Isolated Projects graduates to incubating
- Broader Configuration Cache compatibility
- More source locations in problem reports
We would like to thank the following community members for their contributions to this release of Gradle: Adam, Aman Gautam, Aman Kumar, Anton Dubrouski, Aurimas, gbhavya07, Josh Friend, nicklauslittle-gov, Pragati, project516, Qin Mi, Ravi, sk-reddy17, Suvrat Acharya, Yongshun Ye.
Upgrade instructions
Switch your build to use Gradle 9.7.0 by updating your wrapper:
./gradlew :wrapper --gradle-version=9.7.0 && ./gradlew :wrapperSee the Gradle 9.x upgrade guide to learn about deprecations, breaking changes and other considerations when upgrading.
For Java, Groovy, Kotlin and Android compatibility, see the full compatibility notes.
Reporting problems
If you find a problem with this release, please file a bug on GitHub Issues adhering to our issue guidelines. If you're not sure you're encountering a bug, please use the forum.
We hope you will build happiness with Gradle, and we look forward to your feedback via Twitter or on GitHub.
9.7.0 RC3
The Gradle team is excited to announce Gradle 9.7.0 RC3.
Here are the highlights of this release:
- Isolated Projects graduates to incubating
... (truncated)
Commits
3defbfcmake DistributionIntegrationSpec more permissive for releases (#38766)f176043make DistributionIntegrationSpec more permissive for releasesb0828daPrepare release notes for Gradle 9.7.0GA (#38756)064b6d6cleanupdfe7bdcadd new training to release notes7561968add release notes for 3780168a1f35cherrypick 38367 to releasea462c95Rebalance AllVersionsCrossVersion buckets for agents without TestDistribution...820e2b1Update Gradle wrapper to version 9.7.0-rc-3 (#38743)75ea3d7Update Gradle wrapper to version 9.7.0-rc-3- Additional commits viewable in compare view
Updates `gradle-wrapper` from 9.6.1 to 9.7.0Release notes
Sourced from gradle-wrapper's releases.
9.7.0
The Gradle team is excited to announce Gradle 9.7.0.
Here are the highlights of this release:
- Isolated Projects graduates to incubating
- Broader Configuration Cache compatibility
- More source locations in problem reports
We would like to thank the following community members for their contributions to this release of Gradle: Adam, Aman Gautam, Aman Kumar, Anton Dubrouski, Aurimas, gbhavya07, Josh Friend, nicklauslittle-gov, Pragati, project516, Qin Mi, Ravi, sk-reddy17, Suvrat Acharya, Yongshun Ye.
Upgrade instructions
Switch your build to use Gradle 9.7.0 by updating your wrapper:
./gradlew :wrapper --gradle-version=9.7.0 && ./gradlew :wrapperSee the Gradle 9.x upgrade guide to learn about deprecations, breaking changes and other considerations when upgrading.
For Java, Groovy, Kotlin and Android compatibility, see the full compatibility notes.
Reporting problems
If you find a problem with this release, please file a bug on GitHub Issues adhering to our issue guidelines. If you're not sure you're encountering a bug, please use the forum.
We hope you will build happiness with Gradle, and we look forward to your feedback via Twitter or on GitHub.
9.7.0 RC3
The Gradle team is excited to announce Gradle 9.7.0 RC3.
Here are the highlights of this release:
- Isolated Projects graduates to incubating
... (truncated)
Commits
3defbfcmake DistributionIntegrationSpec more permissive for releases (#38766)f176043make DistributionIntegrationSpec more permissive for releasesb0828daPrepare release notes for Gradle 9.7.0GA (#38756)064b6d6cleanupdfe7bdcadd new training to release notes7561968add release notes for 3780168a1f35cherrypick 38367 to releasea462c95Rebalance AllVersionsCrossVersion buckets for agents without TestDistribution...820e2b1Update Gradle wrapper to version 9.7.0-rc-3 (#38743)- Date: Mon, 10 Aug 2026 15:51:01 +0200 Subject: [PATCH 23/58] chore(deps): bump io.ktor:ktor-bom from 3.5.1 to 3.5.2 in /samples/kotlin-mcp-client (#944) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [io.ktor:ktor-bom](https://github.com/ktorio/ktor) from 3.5.1 to 3.5.2.
Release notes
Sourced from io.ktor:ktor-bom's releases.
3.5.2
Published 31 July 2026
Improvements
- KTOR-8032 RateLimit: Allow limit requests based on authentication result
- KTOR-9719
ApplicationCall.isStaticContentreturns false when called from plugin interceptors- KTOR-8450 ContentNegotiation: it doesn't handle content type suffixes
- KTOR-7892 SwaggerUI: Missing oauth2-redirect.html support in the plugin
- KTOR-9759 Reject whitespace in URL hosts during parsing
- KTOR-9681 Update kotlinx-io to 0.9.1
- KTOR-9743 ByteReadChannel.readLineStrict: Misleading definition of limit parameter in KDocs
- KTOR-9504 Improve KDoc for EmbeddedServer.addShutdownHook
Bugfixes
- KTOR-9741 CIO: request-handler coroutine leak on half-closed idle connection after ≥1MB response
- KTOR-7661 Maven + YAML config file does not work
- KTOR-9585 OpenAPI: JsonSchema title is truncated when it contains a dot
- KTOR-9704 UTF-8 encoding in ktor-io bypasses JVM String.getBytes intrinsics, slowing every text response by 5-7x
- KTOR-9588 SSE client (CIO engine) sends spurious
Content-Length: 0on body-less GET (RFC 9110 § 8.6 violation; rejected by AWS ELB)- KTOR-9679 ByteReadChannel.readLine corrupts multi-byte UTF-8 by splitting a character at a buffer boundary
- KTOR-9767 ByteReadChannel.readLineTo: Return read bytes count instead of decoded characters count
- KTOR-8992 HoconConfigLoader is not loaded when ktor-server-config-yaml on the classpath
- KTOR-9698 OpenAPI: schema for kotlinx.serialization sealed types omits discriminator property in variant schemas
- KTOR-9690 Netty: in-flight requests are aborted on stop(), ignoring shutdown grace period
- KTOR-8903 Netty: Close channel connection on errors properly
- KTOR-9707 SaveBody performance regression
- KTOR-9703 Inefficient text reading function in DefaultTransform
- KTOR-9711 Netty HTTP/2: a single client-canceled stream (RST_STREAM) breaks response flushing for the whole connection
- KTOR-9688 RateLimit: No access to principal when wrapped with authentication since 3.5.1
- KTOR-9677 Auto-reloading: server is reloaded only once since 3.5.0
- KTOR-9683 Sockets: Canceling a SelectorManager job doesn't close it properly
- KTOR-9671 Darwin: Semicolons in URL path are sanitized
Changelog
Sourced from io.ktor:ktor-bom's changelog.
3.5.2
Published 31 July 2026
Improvements
- KTOR-8032 RateLimit: Allow limit requests based on authentication result
- KTOR-9719
ApplicationCall.isStaticContentreturns false when called from plugin interceptors- KTOR-8450 ContentNegotiation: it doesn't handle content type suffixes
- KTOR-7892 SwaggerUI: Missing oauth2-redirect.html support in the plugin
- KTOR-9759 Reject whitespace in URL hosts during parsing
- KTOR-9681 Update kotlinx-io to 0.9.1
- KTOR-9743 ByteReadChannel.readLineStrict: Misleading definition of limit parameter in KDocs
- KTOR-9504 Improve KDoc for EmbeddedServer.addShutdownHook
Bugfixes
- KTOR-9741 CIO: request-handler coroutine leak on half-closed idle connection after ≥1MB response
- KTOR-7661 Maven + YAML config file does not work
- KTOR-9585 OpenAPI: JsonSchema title is truncated when it contains a dot
- KTOR-9704 UTF-8 encoding in ktor-io bypasses JVM String.getBytes intrinsics, slowing every text response by 5-7x
- KTOR-9588 SSE client (CIO engine) sends spurious
Content-Length: 0on body-less GET (RFC 9110 § 8.6 violation; rejected by AWS ELB)- KTOR-9679 ByteReadChannel.readLine corrupts multi-byte UTF-8 by splitting a character at a buffer boundary
- KTOR-9767 ByteReadChannel.readLineTo: Return read bytes count instead of decoded characters count
- KTOR-8992 HoconConfigLoader is not loaded when ktor-server-config-yaml on the classpath
- KTOR-9698 OpenAPI: schema for kotlinx.serialization sealed types omits discriminator property in variant schemas
- KTOR-9690 Netty: in-flight requests are aborted on stop(), ignoring shutdown grace period
- KTOR-8903 Netty: Close channel connection on errors properly
- KTOR-9707 SaveBody performance regression
- KTOR-9703 Inefficient text reading function in DefaultTransform
- KTOR-9711 Netty HTTP/2: a single client-canceled stream (RST_STREAM) breaks response flushing for the whole connection
- KTOR-9688 RateLimit: No access to principal when wrapped with authentication since 3.5.1
- KTOR-9677 Auto-reloading: server is reloaded only once since 3.5.0
- KTOR-9683 Sockets: Canceling a SelectorManager job doesn't close it properly
- KTOR-9671 Darwin: Semicolons in URL path are sanitized
Commits
01c469aRelease 3.5.2 (#5781)c965a0cKTOR-9741 Prevent CIO request handler leak (#5783)74df458chore: fix some comments to improve readability2672567[KTOR-9704] Optimized encoding flow for UTF-8 (#5743)d5680edKTOR-5391: Document ECDSA certificate limitation for client authentication (#...9b0f356something::javaClass.nameis not the name of the class of something but `"j...58256cdKTOR-9743 Clarify readLine documentation088bd60KTOR-9679 Fix regressions caused by adding buffering167176aKTOR-9588 Do not send Content-Length: 0 for body-less GET requests (#5620)7fb0844KTOR-9585 Fix schema title trimming- Additional commits viewable in compare view
Signed-off-by: dependabot[bot]Most Recent Ignore Conditions Applied to This Pull Request
| Dependency Name | Ignore Conditions | | --- | --- | | io.ktor:ktor-bom | [>= 3.4.a, < 3.5] |Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- samples/kotlin-mcp-client/gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/kotlin-mcp-client/gradle/libs.versions.toml b/samples/kotlin-mcp-client/gradle/libs.versions.toml index ea0043d..4e1f8bb 100644 --- a/samples/kotlin-mcp-client/gradle/libs.versions.toml +++ b/samples/kotlin-mcp-client/gradle/libs.versions.toml @@ -1,7 +1,7 @@ [versions] anthropic = "2.52.0" kotlin = "2.4.10" -ktor = "3.5.1" +ktor = "3.5.2" mcp-kotlin = "0.15.0" shadow = "9.6.1" slf4j = "2.0.18" From 05c5953a18e351795e793e76ad321c77db810388 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Aug 2026 16:11:51 +0200 Subject: [PATCH 24/58] chore(deps): bump io.ktor:ktor-bom from 3.5.1 to 3.5.2 in /samples/kotlin-mcp-server (#945) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [io.ktor:ktor-bom](https://github.com/ktorio/ktor) from 3.5.1 to 3.5.2. Release notes
Sourced from io.ktor:ktor-bom's releases.
3.5.2
Published 31 July 2026
Improvements
- KTOR-8032 RateLimit: Allow limit requests based on authentication result
- KTOR-9719
ApplicationCall.isStaticContentreturns false when called from plugin interceptors- KTOR-8450 ContentNegotiation: it doesn't handle content type suffixes
- KTOR-7892 SwaggerUI: Missing oauth2-redirect.html support in the plugin
- KTOR-9759 Reject whitespace in URL hosts during parsing
- KTOR-9681 Update kotlinx-io to 0.9.1
- KTOR-9743 ByteReadChannel.readLineStrict: Misleading definition of limit parameter in KDocs
- KTOR-9504 Improve KDoc for EmbeddedServer.addShutdownHook
Bugfixes
- KTOR-9741 CIO: request-handler coroutine leak on half-closed idle connection after ≥1MB response
- KTOR-7661 Maven + YAML config file does not work
- KTOR-9585 OpenAPI: JsonSchema title is truncated when it contains a dot
- KTOR-9704 UTF-8 encoding in ktor-io bypasses JVM String.getBytes intrinsics, slowing every text response by 5-7x
- KTOR-9588 SSE client (CIO engine) sends spurious
Content-Length: 0on body-less GET (RFC 9110 § 8.6 violation; rejected by AWS ELB)- KTOR-9679 ByteReadChannel.readLine corrupts multi-byte UTF-8 by splitting a character at a buffer boundary
- KTOR-9767 ByteReadChannel.readLineTo: Return read bytes count instead of decoded characters count
- KTOR-8992 HoconConfigLoader is not loaded when ktor-server-config-yaml on the classpath
- KTOR-9698 OpenAPI: schema for kotlinx.serialization sealed types omits discriminator property in variant schemas
- KTOR-9690 Netty: in-flight requests are aborted on stop(), ignoring shutdown grace period
- KTOR-8903 Netty: Close channel connection on errors properly
- KTOR-9707 SaveBody performance regression
- KTOR-9703 Inefficient text reading function in DefaultTransform
- KTOR-9711 Netty HTTP/2: a single client-canceled stream (RST_STREAM) breaks response flushing for the whole connection
- KTOR-9688 RateLimit: No access to principal when wrapped with authentication since 3.5.1
- KTOR-9677 Auto-reloading: server is reloaded only once since 3.5.0
- KTOR-9683 Sockets: Canceling a SelectorManager job doesn't close it properly
- KTOR-9671 Darwin: Semicolons in URL path are sanitized
Changelog
Sourced from io.ktor:ktor-bom's changelog.
3.5.2
Published 31 July 2026
Improvements
- KTOR-8032 RateLimit: Allow limit requests based on authentication result
- KTOR-9719
ApplicationCall.isStaticContentreturns false when called from plugin interceptors- KTOR-8450 ContentNegotiation: it doesn't handle content type suffixes
- KTOR-7892 SwaggerUI: Missing oauth2-redirect.html support in the plugin
- KTOR-9759 Reject whitespace in URL hosts during parsing
- KTOR-9681 Update kotlinx-io to 0.9.1
- KTOR-9743 ByteReadChannel.readLineStrict: Misleading definition of limit parameter in KDocs
- KTOR-9504 Improve KDoc for EmbeddedServer.addShutdownHook
Bugfixes
- KTOR-9741 CIO: request-handler coroutine leak on half-closed idle connection after ≥1MB response
- KTOR-7661 Maven + YAML config file does not work
- KTOR-9585 OpenAPI: JsonSchema title is truncated when it contains a dot
- KTOR-9704 UTF-8 encoding in ktor-io bypasses JVM String.getBytes intrinsics, slowing every text response by 5-7x
- KTOR-9588 SSE client (CIO engine) sends spurious
Content-Length: 0on body-less GET (RFC 9110 § 8.6 violation; rejected by AWS ELB)- KTOR-9679 ByteReadChannel.readLine corrupts multi-byte UTF-8 by splitting a character at a buffer boundary
- KTOR-9767 ByteReadChannel.readLineTo: Return read bytes count instead of decoded characters count
- KTOR-8992 HoconConfigLoader is not loaded when ktor-server-config-yaml on the classpath
- KTOR-9698 OpenAPI: schema for kotlinx.serialization sealed types omits discriminator property in variant schemas
- KTOR-9690 Netty: in-flight requests are aborted on stop(), ignoring shutdown grace period
- KTOR-8903 Netty: Close channel connection on errors properly
- KTOR-9707 SaveBody performance regression
- KTOR-9703 Inefficient text reading function in DefaultTransform
- KTOR-9711 Netty HTTP/2: a single client-canceled stream (RST_STREAM) breaks response flushing for the whole connection
- KTOR-9688 RateLimit: No access to principal when wrapped with authentication since 3.5.1
- KTOR-9677 Auto-reloading: server is reloaded only once since 3.5.0
- KTOR-9683 Sockets: Canceling a SelectorManager job doesn't close it properly
- KTOR-9671 Darwin: Semicolons in URL path are sanitized
Commits
01c469aRelease 3.5.2 (#5781)c965a0cKTOR-9741 Prevent CIO request handler leak (#5783)74df458chore: fix some comments to improve readability2672567[KTOR-9704] Optimized encoding flow for UTF-8 (#5743)d5680edKTOR-5391: Document ECDSA certificate limitation for client authentication (#...9b0f356something::javaClass.nameis not the name of the class of something but `"j...58256cdKTOR-9743 Clarify readLine documentation088bd60KTOR-9679 Fix regressions caused by adding buffering167176aKTOR-9588 Do not send Content-Length: 0 for body-less GET requests (#5620)7fb0844KTOR-9585 Fix schema title trimming- Additional commits viewable in compare view
Signed-off-by: dependabot[bot]Most Recent Ignore Conditions Applied to This Pull Request
| Dependency Name | Ignore Conditions | | --- | --- | | io.ktor:ktor-bom | [>= 3.4.a, < 3.5] |Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- samples/kotlin-mcp-server/gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/kotlin-mcp-server/gradle/libs.versions.toml b/samples/kotlin-mcp-server/gradle/libs.versions.toml index ba4f306..5f8b83f 100644 --- a/samples/kotlin-mcp-server/gradle/libs.versions.toml +++ b/samples/kotlin-mcp-server/gradle/libs.versions.toml @@ -1,6 +1,6 @@ [versions] kotlin = "2.4.10" -ktor = "3.5.1" +ktor = "3.5.2" mcp-kotlin = "0.15.0" slf4j = "2.0.18" shadow = "9.6.1" From df346975054ef7495f2fac0d45ddc8f3c3072b99 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Aug 2026 16:43:19 +0200 Subject: [PATCH 25/58] chore(deps): bump io.ktor:ktor-bom from 3.5.1 to 3.5.2 in /samples/kotlinlang-mcp-server (#946) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [io.ktor:ktor-bom](https://github.com/ktorio/ktor) from 3.5.1 to 3.5.2. Release notes
Sourced from io.ktor:ktor-bom's releases.
3.5.2
Published 31 July 2026
Improvements
- KTOR-8032 RateLimit: Allow limit requests based on authentication result
- KTOR-9719
ApplicationCall.isStaticContentreturns false when called from plugin interceptors- KTOR-8450 ContentNegotiation: it doesn't handle content type suffixes
- KTOR-7892 SwaggerUI: Missing oauth2-redirect.html support in the plugin
- KTOR-9759 Reject whitespace in URL hosts during parsing
- KTOR-9681 Update kotlinx-io to 0.9.1
- KTOR-9743 ByteReadChannel.readLineStrict: Misleading definition of limit parameter in KDocs
- KTOR-9504 Improve KDoc for EmbeddedServer.addShutdownHook
Bugfixes
- KTOR-9741 CIO: request-handler coroutine leak on half-closed idle connection after ≥1MB response
- KTOR-7661 Maven + YAML config file does not work
- KTOR-9585 OpenAPI: JsonSchema title is truncated when it contains a dot
- KTOR-9704 UTF-8 encoding in ktor-io bypasses JVM String.getBytes intrinsics, slowing every text response by 5-7x
- KTOR-9588 SSE client (CIO engine) sends spurious
Content-Length: 0on body-less GET (RFC 9110 § 8.6 violation; rejected by AWS ELB)- KTOR-9679 ByteReadChannel.readLine corrupts multi-byte UTF-8 by splitting a character at a buffer boundary
- KTOR-9767 ByteReadChannel.readLineTo: Return read bytes count instead of decoded characters count
- KTOR-8992 HoconConfigLoader is not loaded when ktor-server-config-yaml on the classpath
- KTOR-9698 OpenAPI: schema for kotlinx.serialization sealed types omits discriminator property in variant schemas
- KTOR-9690 Netty: in-flight requests are aborted on stop(), ignoring shutdown grace period
- KTOR-8903 Netty: Close channel connection on errors properly
- KTOR-9707 SaveBody performance regression
- KTOR-9703 Inefficient text reading function in DefaultTransform
- KTOR-9711 Netty HTTP/2: a single client-canceled stream (RST_STREAM) breaks response flushing for the whole connection
- KTOR-9688 RateLimit: No access to principal when wrapped with authentication since 3.5.1
- KTOR-9677 Auto-reloading: server is reloaded only once since 3.5.0
- KTOR-9683 Sockets: Canceling a SelectorManager job doesn't close it properly
- KTOR-9671 Darwin: Semicolons in URL path are sanitized
Changelog
Sourced from io.ktor:ktor-bom's changelog.
3.5.2
Published 31 July 2026
Improvements
- KTOR-8032 RateLimit: Allow limit requests based on authentication result
- KTOR-9719
ApplicationCall.isStaticContentreturns false when called from plugin interceptors- KTOR-8450 ContentNegotiation: it doesn't handle content type suffixes
- KTOR-7892 SwaggerUI: Missing oauth2-redirect.html support in the plugin
- KTOR-9759 Reject whitespace in URL hosts during parsing
- KTOR-9681 Update kotlinx-io to 0.9.1
- KTOR-9743 ByteReadChannel.readLineStrict: Misleading definition of limit parameter in KDocs
- KTOR-9504 Improve KDoc for EmbeddedServer.addShutdownHook
Bugfixes
- KTOR-9741 CIO: request-handler coroutine leak on half-closed idle connection after ≥1MB response
- KTOR-7661 Maven + YAML config file does not work
- KTOR-9585 OpenAPI: JsonSchema title is truncated when it contains a dot
- KTOR-9704 UTF-8 encoding in ktor-io bypasses JVM String.getBytes intrinsics, slowing every text response by 5-7x
- KTOR-9588 SSE client (CIO engine) sends spurious
Content-Length: 0on body-less GET (RFC 9110 § 8.6 violation; rejected by AWS ELB)- KTOR-9679 ByteReadChannel.readLine corrupts multi-byte UTF-8 by splitting a character at a buffer boundary
- KTOR-9767 ByteReadChannel.readLineTo: Return read bytes count instead of decoded characters count
- KTOR-8992 HoconConfigLoader is not loaded when ktor-server-config-yaml on the classpath
- KTOR-9698 OpenAPI: schema for kotlinx.serialization sealed types omits discriminator property in variant schemas
- KTOR-9690 Netty: in-flight requests are aborted on stop(), ignoring shutdown grace period
- KTOR-8903 Netty: Close channel connection on errors properly
- KTOR-9707 SaveBody performance regression
- KTOR-9703 Inefficient text reading function in DefaultTransform
- KTOR-9711 Netty HTTP/2: a single client-canceled stream (RST_STREAM) breaks response flushing for the whole connection
- KTOR-9688 RateLimit: No access to principal when wrapped with authentication since 3.5.1
- KTOR-9677 Auto-reloading: server is reloaded only once since 3.5.0
- KTOR-9683 Sockets: Canceling a SelectorManager job doesn't close it properly
- KTOR-9671 Darwin: Semicolons in URL path are sanitized
Commits
01c469aRelease 3.5.2 (#5781)c965a0cKTOR-9741 Prevent CIO request handler leak (#5783)74df458chore: fix some comments to improve readability2672567[KTOR-9704] Optimized encoding flow for UTF-8 (#5743)d5680edKTOR-5391: Document ECDSA certificate limitation for client authentication (#...9b0f356something::javaClass.nameis not the name of the class of something but `"j...58256cdKTOR-9743 Clarify readLine documentation088bd60KTOR-9679 Fix regressions caused by adding buffering167176aKTOR-9588 Do not send Content-Length: 0 for body-less GET requests (#5620)7fb0844KTOR-9585 Fix schema title trimming- Additional commits viewable in compare view
Signed-off-by: dependabot[bot]Most Recent Ignore Conditions Applied to This Pull Request
| Dependency Name | Ignore Conditions | | --- | --- | | io.ktor:ktor-bom | [>= 3.4.a, < 3.5] |Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- samples/kotlinlang-mcp-server/gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/kotlinlang-mcp-server/gradle/libs.versions.toml b/samples/kotlinlang-mcp-server/gradle/libs.versions.toml index feecf5b..cf37f51 100644 --- a/samples/kotlinlang-mcp-server/gradle/libs.versions.toml +++ b/samples/kotlinlang-mcp-server/gradle/libs.versions.toml @@ -1,6 +1,6 @@ [versions] kotlin = "2.4.10" -ktor = "3.5.1" +ktor = "3.5.2" mcp-kotlin = "0.15.0" serialization = "1.11.0" coroutines = "1.11.0" From 9482283aa325a04973a890cdfb09cd6bd11df66c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Aug 2026 17:03:14 +0200 Subject: [PATCH 26/58] chore(deps): bump io.ktor:ktor-bom from 3.5.1 to 3.5.2 in /samples/simple-streamable-server (#947) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [io.ktor:ktor-bom](https://github.com/ktorio/ktor) from 3.5.1 to 3.5.2. Release notes
Sourced from io.ktor:ktor-bom's releases.
3.5.2
Published 31 July 2026
Improvements
- KTOR-8032 RateLimit: Allow limit requests based on authentication result
- KTOR-9719
ApplicationCall.isStaticContentreturns false when called from plugin interceptors- KTOR-8450 ContentNegotiation: it doesn't handle content type suffixes
- KTOR-7892 SwaggerUI: Missing oauth2-redirect.html support in the plugin
- KTOR-9759 Reject whitespace in URL hosts during parsing
- KTOR-9681 Update kotlinx-io to 0.9.1
- KTOR-9743 ByteReadChannel.readLineStrict: Misleading definition of limit parameter in KDocs
- KTOR-9504 Improve KDoc for EmbeddedServer.addShutdownHook
Bugfixes
- KTOR-9741 CIO: request-handler coroutine leak on half-closed idle connection after ≥1MB response
- KTOR-7661 Maven + YAML config file does not work
- KTOR-9585 OpenAPI: JsonSchema title is truncated when it contains a dot
- KTOR-9704 UTF-8 encoding in ktor-io bypasses JVM String.getBytes intrinsics, slowing every text response by 5-7x
- KTOR-9588 SSE client (CIO engine) sends spurious
Content-Length: 0on body-less GET (RFC 9110 § 8.6 violation; rejected by AWS ELB)- KTOR-9679 ByteReadChannel.readLine corrupts multi-byte UTF-8 by splitting a character at a buffer boundary
- KTOR-9767 ByteReadChannel.readLineTo: Return read bytes count instead of decoded characters count
- KTOR-8992 HoconConfigLoader is not loaded when ktor-server-config-yaml on the classpath
- KTOR-9698 OpenAPI: schema for kotlinx.serialization sealed types omits discriminator property in variant schemas
- KTOR-9690 Netty: in-flight requests are aborted on stop(), ignoring shutdown grace period
- KTOR-8903 Netty: Close channel connection on errors properly
- KTOR-9707 SaveBody performance regression
- KTOR-9703 Inefficient text reading function in DefaultTransform
- KTOR-9711 Netty HTTP/2: a single client-canceled stream (RST_STREAM) breaks response flushing for the whole connection
- KTOR-9688 RateLimit: No access to principal when wrapped with authentication since 3.5.1
- KTOR-9677 Auto-reloading: server is reloaded only once since 3.5.0
- KTOR-9683 Sockets: Canceling a SelectorManager job doesn't close it properly
- KTOR-9671 Darwin: Semicolons in URL path are sanitized
Changelog
Sourced from io.ktor:ktor-bom's changelog.
3.5.2
Published 31 July 2026
Improvements
- KTOR-8032 RateLimit: Allow limit requests based on authentication result
- KTOR-9719
ApplicationCall.isStaticContentreturns false when called from plugin interceptors- KTOR-8450 ContentNegotiation: it doesn't handle content type suffixes
- KTOR-7892 SwaggerUI: Missing oauth2-redirect.html support in the plugin
- KTOR-9759 Reject whitespace in URL hosts during parsing
- KTOR-9681 Update kotlinx-io to 0.9.1
- KTOR-9743 ByteReadChannel.readLineStrict: Misleading definition of limit parameter in KDocs
- KTOR-9504 Improve KDoc for EmbeddedServer.addShutdownHook
Bugfixes
- KTOR-9741 CIO: request-handler coroutine leak on half-closed idle connection after ≥1MB response
- KTOR-7661 Maven + YAML config file does not work
- KTOR-9585 OpenAPI: JsonSchema title is truncated when it contains a dot
- KTOR-9704 UTF-8 encoding in ktor-io bypasses JVM String.getBytes intrinsics, slowing every text response by 5-7x
- KTOR-9588 SSE client (CIO engine) sends spurious
Content-Length: 0on body-less GET (RFC 9110 § 8.6 violation; rejected by AWS ELB)- KTOR-9679 ByteReadChannel.readLine corrupts multi-byte UTF-8 by splitting a character at a buffer boundary
- KTOR-9767 ByteReadChannel.readLineTo: Return read bytes count instead of decoded characters count
- KTOR-8992 HoconConfigLoader is not loaded when ktor-server-config-yaml on the classpath
- KTOR-9698 OpenAPI: schema for kotlinx.serialization sealed types omits discriminator property in variant schemas
- KTOR-9690 Netty: in-flight requests are aborted on stop(), ignoring shutdown grace period
- KTOR-8903 Netty: Close channel connection on errors properly
- KTOR-9707 SaveBody performance regression
- KTOR-9703 Inefficient text reading function in DefaultTransform
- KTOR-9711 Netty HTTP/2: a single client-canceled stream (RST_STREAM) breaks response flushing for the whole connection
- KTOR-9688 RateLimit: No access to principal when wrapped with authentication since 3.5.1
- KTOR-9677 Auto-reloading: server is reloaded only once since 3.5.0
- KTOR-9683 Sockets: Canceling a SelectorManager job doesn't close it properly
- KTOR-9671 Darwin: Semicolons in URL path are sanitized
Commits
01c469aRelease 3.5.2 (#5781)c965a0cKTOR-9741 Prevent CIO request handler leak (#5783)74df458chore: fix some comments to improve readability2672567[KTOR-9704] Optimized encoding flow for UTF-8 (#5743)d5680edKTOR-5391: Document ECDSA certificate limitation for client authentication (#...9b0f356something::javaClass.nameis not the name of the class of something but `"j...58256cdKTOR-9743 Clarify readLine documentation088bd60KTOR-9679 Fix regressions caused by adding buffering167176aKTOR-9588 Do not send Content-Length: 0 for body-less GET requests (#5620)7fb0844KTOR-9585 Fix schema title trimming- Additional commits viewable in compare view
Signed-off-by: dependabot[bot]Most Recent Ignore Conditions Applied to This Pull Request
| Dependency Name | Ignore Conditions | | --- | --- | | io.ktor:ktor-bom | [>= 3.4.a, < 3.5] |Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- samples/simple-streamable-server/gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/simple-streamable-server/gradle/libs.versions.toml b/samples/simple-streamable-server/gradle/libs.versions.toml index 328b154..966a7e2 100644 --- a/samples/simple-streamable-server/gradle/libs.versions.toml +++ b/samples/simple-streamable-server/gradle/libs.versions.toml @@ -1,6 +1,6 @@ [versions] kotlin = "2.4.10" -ktor = "3.5.1" +ktor = "3.5.2" junit = "6.1.2" mcp-kotlin = "0.15.0" slf4j = "2.0.18" From 5ca99555006662ecf1300ca921c5744d304712f4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Aug 2026 17:53:45 +0200 Subject: [PATCH 27/58] chore(deps): bump io.ktor:ktor-bom from 3.5.1 to 3.5.2 in /samples/weather-stdio-server (#948) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [io.ktor:ktor-bom](https://github.com/ktorio/ktor) from 3.5.1 to 3.5.2. Release notes
Sourced from io.ktor:ktor-bom's releases.
3.5.2
Published 31 July 2026
Improvements
- KTOR-8032 RateLimit: Allow limit requests based on authentication result
- KTOR-9719
ApplicationCall.isStaticContentreturns false when called from plugin interceptors- KTOR-8450 ContentNegotiation: it doesn't handle content type suffixes
- KTOR-7892 SwaggerUI: Missing oauth2-redirect.html support in the plugin
- KTOR-9759 Reject whitespace in URL hosts during parsing
- KTOR-9681 Update kotlinx-io to 0.9.1
- KTOR-9743 ByteReadChannel.readLineStrict: Misleading definition of limit parameter in KDocs
- KTOR-9504 Improve KDoc for EmbeddedServer.addShutdownHook
Bugfixes
- KTOR-9741 CIO: request-handler coroutine leak on half-closed idle connection after ≥1MB response
- KTOR-7661 Maven + YAML config file does not work
- KTOR-9585 OpenAPI: JsonSchema title is truncated when it contains a dot
- KTOR-9704 UTF-8 encoding in ktor-io bypasses JVM String.getBytes intrinsics, slowing every text response by 5-7x
- KTOR-9588 SSE client (CIO engine) sends spurious
Content-Length: 0on body-less GET (RFC 9110 § 8.6 violation; rejected by AWS ELB)- KTOR-9679 ByteReadChannel.readLine corrupts multi-byte UTF-8 by splitting a character at a buffer boundary
- KTOR-9767 ByteReadChannel.readLineTo: Return read bytes count instead of decoded characters count
- KTOR-8992 HoconConfigLoader is not loaded when ktor-server-config-yaml on the classpath
- KTOR-9698 OpenAPI: schema for kotlinx.serialization sealed types omits discriminator property in variant schemas
- KTOR-9690 Netty: in-flight requests are aborted on stop(), ignoring shutdown grace period
- KTOR-8903 Netty: Close channel connection on errors properly
- KTOR-9707 SaveBody performance regression
- KTOR-9703 Inefficient text reading function in DefaultTransform
- KTOR-9711 Netty HTTP/2: a single client-canceled stream (RST_STREAM) breaks response flushing for the whole connection
- KTOR-9688 RateLimit: No access to principal when wrapped with authentication since 3.5.1
- KTOR-9677 Auto-reloading: server is reloaded only once since 3.5.0
- KTOR-9683 Sockets: Canceling a SelectorManager job doesn't close it properly
- KTOR-9671 Darwin: Semicolons in URL path are sanitized
Changelog
Sourced from io.ktor:ktor-bom's changelog.
3.5.2
Published 31 July 2026
Improvements
- KTOR-8032 RateLimit: Allow limit requests based on authentication result
- KTOR-9719
ApplicationCall.isStaticContentreturns false when called from plugin interceptors- KTOR-8450 ContentNegotiation: it doesn't handle content type suffixes
- KTOR-7892 SwaggerUI: Missing oauth2-redirect.html support in the plugin
- KTOR-9759 Reject whitespace in URL hosts during parsing
- KTOR-9681 Update kotlinx-io to 0.9.1
- KTOR-9743 ByteReadChannel.readLineStrict: Misleading definition of limit parameter in KDocs
- KTOR-9504 Improve KDoc for EmbeddedServer.addShutdownHook
Bugfixes
- KTOR-9741 CIO: request-handler coroutine leak on half-closed idle connection after ≥1MB response
- KTOR-7661 Maven + YAML config file does not work
- KTOR-9585 OpenAPI: JsonSchema title is truncated when it contains a dot
- KTOR-9704 UTF-8 encoding in ktor-io bypasses JVM String.getBytes intrinsics, slowing every text response by 5-7x
- KTOR-9588 SSE client (CIO engine) sends spurious
Content-Length: 0on body-less GET (RFC 9110 § 8.6 violation; rejected by AWS ELB)- KTOR-9679 ByteReadChannel.readLine corrupts multi-byte UTF-8 by splitting a character at a buffer boundary
- KTOR-9767 ByteReadChannel.readLineTo: Return read bytes count instead of decoded characters count
- KTOR-8992 HoconConfigLoader is not loaded when ktor-server-config-yaml on the classpath
- KTOR-9698 OpenAPI: schema for kotlinx.serialization sealed types omits discriminator property in variant schemas
- KTOR-9690 Netty: in-flight requests are aborted on stop(), ignoring shutdown grace period
- KTOR-8903 Netty: Close channel connection on errors properly
- KTOR-9707 SaveBody performance regression
- KTOR-9703 Inefficient text reading function in DefaultTransform
- KTOR-9711 Netty HTTP/2: a single client-canceled stream (RST_STREAM) breaks response flushing for the whole connection
- KTOR-9688 RateLimit: No access to principal when wrapped with authentication since 3.5.1
- KTOR-9677 Auto-reloading: server is reloaded only once since 3.5.0
- KTOR-9683 Sockets: Canceling a SelectorManager job doesn't close it properly
- KTOR-9671 Darwin: Semicolons in URL path are sanitized
Commits
01c469aRelease 3.5.2 (#5781)c965a0cKTOR-9741 Prevent CIO request handler leak (#5783)74df458chore: fix some comments to improve readability2672567[KTOR-9704] Optimized encoding flow for UTF-8 (#5743)d5680edKTOR-5391: Document ECDSA certificate limitation for client authentication (#...9b0f356something::javaClass.nameis not the name of the class of something but `"j...58256cdKTOR-9743 Clarify readLine documentation088bd60KTOR-9679 Fix regressions caused by adding buffering167176aKTOR-9588 Do not send Content-Length: 0 for body-less GET requests (#5620)7fb0844KTOR-9585 Fix schema title trimming- Additional commits viewable in compare view
Signed-off-by: dependabot[bot]Most Recent Ignore Conditions Applied to This Pull Request
| Dependency Name | Ignore Conditions | | --- | --- | | io.ktor:ktor-bom | [>= 3.4.a, < 3.5] |Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- samples/weather-stdio-server/gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/weather-stdio-server/gradle/libs.versions.toml b/samples/weather-stdio-server/gradle/libs.versions.toml index 5f92a6c..b84a655 100644 --- a/samples/weather-stdio-server/gradle/libs.versions.toml +++ b/samples/weather-stdio-server/gradle/libs.versions.toml @@ -1,7 +1,7 @@ [versions] coroutines = "1.11.0" kotlin = "2.4.10" -ktor = "3.5.1" +ktor = "3.5.2" logging = "8.0.4" mcp-kotlin = "0.15.0" shadow = "9.6.1" From d6235597e07541c07a70053e516668b5b881f4d6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 11 Aug 2026 00:12:50 +0200 Subject: [PATCH 28/58] chore(deps): bump gradle-wrapper from 9.6.1 to 9.7.0 (#949) Bumps [gradle-wrapper](https://github.com/gradle/gradle) from 9.6.1 to 9.7.0. Release notes
Sourced from gradle-wrapper's releases.
9.7.0
The Gradle team is excited to announce Gradle 9.7.0.
Here are the highlights of this release:
- Isolated Projects graduates to incubating
- Broader Configuration Cache compatibility
- More source locations in problem reports
We would like to thank the following community members for their contributions to this release of Gradle: Adam, Aman Gautam, Aman Kumar, Anton Dubrouski, Aurimas, gbhavya07, Josh Friend, nicklauslittle-gov, Pragati, project516, Qin Mi, Ravi, sk-reddy17, Suvrat Acharya, Yongshun Ye.
Upgrade instructions
Switch your build to use Gradle 9.7.0 by updating your wrapper:
./gradlew :wrapper --gradle-version=9.7.0 && ./gradlew :wrapperSee the Gradle 9.x upgrade guide to learn about deprecations, breaking changes and other considerations when upgrading.
For Java, Groovy, Kotlin and Android compatibility, see the full compatibility notes.
Reporting problems
If you find a problem with this release, please file a bug on GitHub Issues adhering to our issue guidelines. If you're not sure you're encountering a bug, please use the forum.
We hope you will build happiness with Gradle, and we look forward to your feedback via Twitter or on GitHub.
9.7.0 RC3
The Gradle team is excited to announce Gradle 9.7.0 RC3.
Here are the highlights of this release:
- Isolated Projects graduates to incubating
... (truncated)
Commits
3defbfcmake DistributionIntegrationSpec more permissive for releases (#38766)f176043make DistributionIntegrationSpec more permissive for releasesb0828daPrepare release notes for Gradle 9.7.0GA (#38756)064b6d6cleanupdfe7bdcadd new training to release notes7561968add release notes for 3780168a1f35cherrypick 38367 to releasea462c95Rebalance AllVersionsCrossVersion buckets for agents without TestDistribution...820e2b1Update Gradle wrapper to version 9.7.0-rc-3 (#38743)75ea3d7Update Gradle wrapper to version 9.7.0-rc-3- Additional commits viewable in compare view
Signed-off-by: dependabot[bot]Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- gradle/wrapper/gradle-wrapper.jar | Bin 48462 -> 47505 bytes gradle/wrapper/gradle-wrapper.properties | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index b1b8ef56b44f16b14dc800fa8103a6d89abb526f..eddabd2eef8d94a5437d6168ff9c87a78ff725b3 100644 GIT binary patch delta 39079 zcmXt (}X *9-$vqRyg+4M6*I6`{n_)4-0DrW&l`u!}gMTBwyP!X>63$b2y9g z;(~-IG8UhkP$Q(emT4KjRY>foHo|f0EUEpn_(Vz^4iOq0SGVisX;M1dg7Q-rFZ>{L z*H_YIa`u7Jxi0t8me*Mq4qFrZ@<|407@6O_r$vwJr8uKLLZ<`XU_`LEO=XYFm;Kmt z{ 2aYQaP)!Febt$h0Ua z5A|38D|G`E3^B}4U^=r?hQg%OZD^aZZK0Kxs61N_Dhnl4EEQ@j%feP6(W=7lPN}%0 zq5M6TTRjSNPB!6pfxj3%Q8qY9=*HGFd=I%d0uR%F|2{kke8*#C?b_G~(DpB0YHOe% z)L?KJN!JD;t~ks8fSLD-X>owB3>ZM)#PM7O>;})-!di^Fto3Mb@29iC>;E=x^7~CI z5$~rll{RHJ;9r{ZS(9$1W~SpS+@M~_$tA!gRMmY2ZXv6+m2MLyGmnmFQLD3ZLCnKc zNRYmWW3+J`ua^|B>jdPWi{f~6dN8Ur*!*=-)$C*j36G8#LqHY?{FH~Zg_@twckNXJ zV13)tIWq3HLZHzN*rNQUc$8{2x8I|Z*hCjNn1Y5P(SoFgBzU$6ms}m-T-8n%1}(AQ z<7s*O9n!-o2I~w4;g1(km$|pL2qzO0(^BqkQxhIq9amCY3MX04b01t{_Sb0#gAx=4 z;$8D}If|B{IDhnywrX-L>0Df`Igd?Vfb>BgH#5}00ha |G2JwcCU2KjBNb=M8Gj?wPXUZv%_w6aEf}d5z0h>q$S0*x4IU=^tCALWM z2@-C!n9LlF`x)myO;Rm?t96G22LsDV`Ho=%F#1o1LJR54M)HN^uQhF zthADV5f}B{-kqLG{pnUaS?)<}X|UHtDz??_S#dWc=I>$j>tPzJ3uo{pwe`q=p>hD| z=)Q|>AjB>~`#`91>Q5(+8c>xFHkkjAu?mQ;uMEWAvF&8$Lk@?JN+UcPJ{m5yIvAwI z4eL2-O{2==t2L$lQ)$PI)oNs>Uu#kOo;O-* lN{V9$cd(Iciym?)$XCVs^_AbE?Hv2h?6nWB$x8MHP8=rrkpEI_cEk+Zb z;-~4)$5%6>M0_miQPZC@S}(8Pc#N2{kF_fZ*9<3bSYzMsNj7J|HouQOz_Vyml3!LK z5V={|E;6*Ue6-$+*8}aK*3B>PQ*uEbR1WSVSCc@++s4NG5qp$7cojpCm$n!AsVD zd}nscp-$Di82c6>vcd1yEb?2(L@U*_!zfkCsI{eT1U~9*5qiL1-@uTdpWs@rJdo=3 zb}+PMkrGD;kG(brgMdT)-BiHn_^7xR9h`Hjx=wICd-^zIPKqD?vDJ`k{3EtAbNL~- zNTMu@%1L^!q2sego_WWVH4V Jj<&avCa}uA_64l%BQO-1 zyXbQE*WFNjbHUK+MeC8}%2X*9;jWnjhr?Dz0q7S^0^;74**y|?5`TIAQ&(Iy-Iv@y zab>5N 9%OFLp*&rm3yV71L1DK_BF%gv}tE+ z9|~`NuQHM1op*@E238B}MVFb^;>F*cbKqjjEV)zH$9eBL9{B;+9y38NpGOQ}8FvVS zCMtP+?+IiT3N}@ai_)>={0vayXv$mHe07btvQ*&Uc&;is@-LlD#bTE@wsF& z*LQ&w?DE}3%f3cS-MA@MY)K3W=*u%f_dB+@(0Igf8-*2?V{x%@vGH^O=|0>;t12^x z{T63fpxb1vB?C7L0eKakzxQ(GQkx$0X_@YR3&rJ7>}tKE_(pu^CT;UEl_#5G_#5+b zx08~KTc?$tcRPTA(v!opQ)^4k&{7rN% bpaUMH_oj0^1fYf&iU43YUA-s-Msv>v>rRS!<2Zy~ zp?BCHo0SxJCqa5>%!3hIk~j(|5y$FT>xybQ5{4r$ya3u+QWW%HQteIF>YDfCGCQZt zkS#M)2erRZ2*kfB2Q6*QUtVw2j#&rQu0;NRyLZ&lz_hdUmldNA<2?-*rwB)|ZS@R& zn4XXgIS0^uSnb$#&R4)KbU*20)L?!Nx!Q~LX9As5g@_ETc{k*hy3!z*3V82C3GXZ+ z4-ms(9N7v|Q`mrVmD gh#wZ3Gv?4Fb| (`R}(|v>1~A3`SC8__6m? z$;R9DZ)W5ud3Wd8hMWqCG6=(0u$ gI?=LM^ip9>xWe`?fvA_`cxjxdov>N9$RqK2(gM4hv AkPIuhoUoJ zl|zY+5rqv4kBT{?v`t*ajgViFE0^`sGSJFJg~2@0yYZ6j-jv%zKEK~yI%BkAx(T}P z_xXT$+eL9@ii{Y!(bS6MCPMN%t<^XQw8{Uta^ZdYGn*d>zY85W=6XLAEx=C_69* z=4=m`tF^V}%!;zEHZ DZDk$hOQ zRGy~s3TZGp*x+xTwsi1Ge@Vbb45OxQyF#T`@@#Rj+v%cuQx(FM@CDJY;syV9b_F`6 z=U$DiS6bi3#}@iL>bB?D+tY0w!f0;nJ&yp47qU2E?nCoMI8G~>Gf>Ujg6F0YE)7OV z4YnT({?%4`A%#~G? &^E_^gBMp%AWUbCoF&gl~bP3DW^O?eM?~R>qBa6Lgh}hOr zD(3w4=xch2JKH9(jy$;vR3 %rff=O+jXt!_$;GS+g41ma@#0YD?GO@%aK7o)MxpaP9TiFOsq%Su?bIBS9>v z(75MDRhy;S&Dt(x8yjws^+bpk38vj0Hf9;Wl9!ulvxbR=n+%7wM%# 9k$qyXYmr4AE`7=1s}wPd4Rdxla*;v zNg1RATIneJ^v>2wWj>d1$VI|*ht2U-e^3qq&b$Mro|>j6>Nr)i2;AuDz*%d0o)ffG zsZ{3T7F%hkafU8=axAgmTuIb2@8$Wk+L9!dYPo&EIT7sNE}xJ`eL$C<4wn0pSV& ~7SBHJ z6s&eHEU#76xv6dRW6?mP7X2ptqhIjPEpHxbYJN#mg>l9$CzU|ZWz R*0r=NbSk6VY} z%y5!VzNd7bki6B23Hw(^ae`;qz*itv!#6VLHp0y^=NaWMhg@E3yF?LkYQ`shI{YgE z7hm>CHC)VTXVFe?{L9#S{`_(E?A!7e>V+psxc@0d!k#+XCg4-tIeY_V3GI%~2X4vE zx=Up`;3i6SA>(x6cf7PG-U2Oot@(`{PQy!y!)m~M^Oc^uD@gL|tE| A z53iapviWQqk8`xlO)3!o0%Kt{F=s?;y3o$>gM{7EH~%wZjzh8+mfKtd%qt6a5wsAC z)leAq3UIp$0IU+Rm|f6GnxBz>O9ydj4qPY9n5kq{FTdmsZa=zS${r|jw3UW$7moCx zBPWjc<8A)wrLQV%)an?BQLgTXAui7%LEAdKb9h{Zi|0BtWs*ZBuZ?Wr*j-ognDXch zy} }^wywi!Q}s; zdiCxhn@mcuc2I>^HqNduX?P^8u0#Zt96ESiEs39L;ito>g#MH)PN$DU{xtm^r?C88 zL_&g`PBNwxqa>xy)Pyl9o(A8;3X92P7(ycMMe9`VRwvrFhGhV)?T&&OzD=7vh{g U6B=^?9D#Z4VvP{`N~Oi{bJsmazu9j>i|K{le*^? t z%61DUemA5bVMDMY6RAe)8hI%-2~UbT8z@=fWu8Aig3y-pJ&^FhilrPT?;3J>=HL zcvZ}F@>-f@eNUrz1Ky7oGnQ3TWsw*$ntU+v&Kw6AaU8uK2KXLHs4e?7mhS!f(`=mg zhnQUonNun^R|QCucFb aia=^6U=mjc79z&nfd7sY!WWl|05}xCcf>VyF`m}9X=%G!^PD&K?lW06 zh{gMj8(y71z`wzYIu)~^pD}4rm>9wQduj4_17I5Y3DSLxKspLI!3a(+Qk~D3zhJHO zOW&LUVvm@tVQY}tih`r$)$HHdB;`S$ B(`UA(iLfIurW8 zb*6<<5pbrAp@#X%ywOyuJ3$?V5MRKwr7Ai>UV_d^-Hd8W`GnG*+s*{Rv2Z+tNhXcH zGfHBwi>?$1Ml#`B24$tdpR#$Ba}#LO-TU?T70MJ|0Wlv1Wo3b6iG0O7qNd8DQd|9? zQoErNIBryIPE#GjEXy20*G3`RKAjuh!qj9`4zT7sH;m4XkE&X7AJ|_C-*cNfH>a*q zLDw#uy;9&>pzO~}L~ckX&CO9(R<6nqG(`-FlUK6ePcwrDX2vj DTIF zw?0*y{orCIB9qanGPcb`G0c gSn(^(@0X?B;Km+rgG(n0 07zAbB^BQ)>5cYfMlBfuzv)I zYNj@7dx+4Qo#kP>YwCUUf&k31k36h=boBSOkWYk9*!s!FCcz!`OA%|jye{6EHtrwU zHn9kDG5;=fxyerP8)~`1aF>K|`TFsL0svM_8x=1^l6WQL z *-jF*J$_LOA~OC535 b{_sLaH9Hwx{oq!w8pAmGOv`VjWXaqNN{y>aZR8 zw_o0*>p7h&Vb}o8e;>o- IE1#u9cYmK0 zPZ5qL6LATBH4(J{?%u3?Lf9V1ad=@v8%!NlsLU<*#T)b|YO+LDCRDIMOF*he6@PyO zraExgzWljNl|RxyW*^ljvLaB@4t#~?Gh8Ij*4FZORLzGZ8$Xj&mI?}C-778AC&GV% zS+V? eFE z404k5A!C!q0HD)g{O +iLnb*vKXLP_<_f|KkQI;fh<{t5V$`tKIAvP5yP-<~*DP!#9#4h%qd(t&^1g!!gp zEJNG1Pc8ZT;i>~IffYglQ9elcxaDx7l_giWLk)T!ab89|`t)bNx!;R7RAYTk7~)|R z@huDt-Iip=V4Exe+Tds=Uz&$q{Lj^v05nvMwXctduLrxpSNbgzua<1Km~j iE6 z=1b{UgbkH~zLMHZ>Zs{iD)m4CE(A_-pP0uWQS{;nW;2a3ovB;vn6qk=Qr__CHp3x} zr)j+$cWz(oymkTD9j12S&sX$ns_G|`XmRv~Jjyptv_=Hf`d6s`K1}L++IYynLXP=Y z$PNIfe`p;wIK2gPLXYuC32GRlnaL?3Dja+SQZ6 k YnjV1qjkPeGeYITPh`TelMz6o=zUTpkg@G 6i@;BmOodA0qG9Bgj)1d<9`4>*R~{>&Hnt6E3!poqgFMkco4vrAcen zt<6D`NvCUn9>@Kyrt`+1Wb4Vl;+C@o?N*c$&Bk{TYx~>EWa6zvMxo)AJP6vz8W81X z$By_PGhcDM&RUlyWm+j&{2m-)rOLt~BPdNEBIcj3TZ<)Vh1&jw*NI`M6d0UxcygZ& zKi`%oj*bUKhxkYlQVkBZBJLt7M)D@%5=-V3vkUd2Q?lk7P9S;f1Ruc6Hesq12(LZh zHg$ZjlWQ^I@vFr7hbZmOA;}niz;^rq&Q_im?nD}al2^7lI=xeL3;7>ChkUccCNGM5 zM<*%y&vyGi{f(h^n>V9Ef~I5Mw6f$lpX5L>$gBMohX8Su^oI?2_@8oQ3FH!iY0e0P zrnKfYdyC ?SLQWKsbzFnRM1UfDM)^;AMwpuB zHvf7;8|43oe<}8P6#wpxSScNBD1aa>10M`6%ui&wOisu`I-D@6d06W15;gdircH5L zb-NUK1TNLsa*pzG(758yOprD+{2NRl2652daC6spx(WT$-z>s^5dISBzhrWj>U3z+ zoLv5yX?^*877qCQd()Z$7Qe>;gn79!x$ectK0dEzZC({s%#HRM)vPj{Ljqi%r)M%6 zWRZ3~SsI zm>eT@$3Z(DUF9#nm&RbRWW3H=PFjW_q<+-qOY=%wk7-o8C6ESQmEmz2cTu)^>_&V& z)+?U(&S9(H#I7}4T6PbeCP1g(8@Rl=I^@c1FjgiL32$*09bGu72ONunsqN@UYLrr& zDj#XPfZrf2!H8^^$YIwx>AJqPldwg+#2;j?+Si+9itTK1#)j*RIU)CvFYY48YctdJ z(3#R($l~yL;y~O``3L>-tZ%9KYk~C$onfk=0Z?OzgqQ #iMLJNgf)VeGz_bM$ym{ojbhl}Qu*cK{ zg9oa6F(iJ{Y2_c%n&+>TmL2jUB!N8JeoVr(x}K-1$Me^*;Gl9&_+g-BR%wnQCw&nq zn~Z^*n2hLL^oL!x{}&dIGOUfIn92d8#ARBi*&wQvbIFxCpqWw8$JQ7tj~9N1D@v!- zwYHKVi&9ucD0{EWu3fFxZqA>o=njn8F{xvv7bgsNfK@AAhn|zccmtZCTYV;jm7Go* zk9nwgGur+4o_?Cbf^HPE4(CLie6)rOyn#+Jee{IZIaMUJ1ZQ4sfJlU|3K(ApZS7K9 zUI045R?1ESz)kOs2!)*DK%{Z5U2~uc;2D3;VubplwLeoM`v510k#Oz_s)t&^F3S2@ zXuSw4TU_LoLafdDw62$Kz`Rr*m;UHa>a-CUQu}J7ZfhgyV;JK*jb-=vTzQ?$D({JJ zk4mVSwLJ9J`h-6NsRl+@svF1F99$BIFkW(C%|T`Z;8A4ouPIQRIMqbC*7yAOOr;&k z-sMPxj*v#GxM>dS5?J>=hvAWFJjRbFoPOQAZ`cXCR}T2pY&gRg?#C#*dBS-@uNC^_ z;(pP(XwS4{w3!mNC)_>-;)yY%iBt7TKfVk93k%vz)0)tpTo`y}v@M(~1!XKGMCDla zT}KfD>MZS&QnG{bwr`(>_2-7lPcoVUHZ~ykX8w{7u+-B4?9c)P0R5l&q+j5^9#8?W z8-k7wZNGr6A1L|c`0+wA`*i#lyDp%JYyO{4b92; U=Im#{G$#YzpdD@k4^B3kTGQz~H6}z9Dk?S<^++1kaBcKA;RQNUll%5wNS9KA`Nq zayxvOQVQq*lnk}(eG{4$|AV6x%T&0ckP+jGXzOAkF3>_}tL_S+E6xzO4dibkeTk%y z_4aiTEcqgB2vQmN*rmICSPlAu_^)s3GZQl*K!JfF!u@X(`Y)q#!A%KB(=yT_utE(s zM%RT6NpDiMm6~t5PeL)Dl%Z3q3VcjKrPpM|GRU}8&|SR*ZXty>3%$W~t%!gO1Yrut z`1D=6ZeL-#9&LOJ-L|L8kd$WB#?5TlGc#W@{f=`#o^D8jAz5R~5lw^wxJ8~Ro5*dr z+iJr{Br=y&IaAr({j>lnPD>yQK8Za`p7s%|9}5W%jaZY_cT+&EF}=b&Exq5qoT;-T z?(V{6F@!o;!B&cR uu? zj$|@(mbP_K*{n)_G{5x88_5dKD}%xci+iPyL!_WpzWRztXh6qd;b0O5SjuqaLAEk| z3DTTgg~T?M|44OaI5Wu%JPS!y#EL=itHSz*rVf%XdZ=&?4jPj!Rxl1OzE*a2qtj3D zJ5i{^&f1SGlA8jZoW)Vpicg~furSHNq#|s-C80-(P+N|HC^lcO(ZG(J&QRV7!qLuw z8+EQfSWOwSiL67QcNYrvXQDeZO->#6lYs=bxhyk7A#Q+JsacZfkl#Jj0N=6+((iTk z-{}`^WV!(f{k?juj>3fuFNj(;ZH9bs7!24*>LYpVoN@cG8x4+BqL3$3*)8Ltm2^4l zLPvv5v`n|_gL~#u#R%?Ic&$)sUUQ}t*Yms+e*}$O{~6~ex+R#-NL4Nl*%%LNJY5rt zV_Q|n;y^%ie99U1!vVz9k3=XDYSy#jySK!`@vAT1e!U_C4TJ~}f_d^sGA%45;$C}l z_q7I+-jspQD0oJqzQhW>T|hRD7$6 XfIIW0Po9 z>)hn5g4D|+?pe-6mFKcxKnE_IeKpF9q_OCeS`XmHVCkz_T*AXpS$hP)G-}Y4Pt!w3 zw0U>J)=Vi!6q35wNKjI9B5tD4H 2kc_FsPD>plP zwgH&M)Ka;hl;zDe7Vi5+(NvxSa~c(xFhh}p^~N{f$?%v*k%QwO_4wocR7Dz@ZR{4Q zHpM-2j|!N;nw2NimnIaOB0;b1PWwq5-%cFuc0 I_eW%h^%tD2BCrm zw}{3Zolf*At~x;bOG J-M7WPU z=(srSduG^#NcM**aIddBs3g7OwJ)epa;Uh(AAR;mZ^X-;=?hj10=NNzAbMFQL~WGw zNp^Vn!-t9||0_Oh!fR8s!?n2qDSj8F%Ys?JX>iDJrjQ|J(xwDTwB9$q+?bL1BwYYM zAwr<%_XHx&{HXF`A!Y|=`u_9s#4U*9=s*0)5@z;HSOX^L2pqiy!d(I3j`}4g@q)+| zM_mNYWe~O^YPcTqj^7x_Mg1x$X#mI_*&<>!Skp+_hk$QC@+?o|(N`i@e+|yprc^6x zz?>OTW?~q?%>Ivew!ginpZ{}^;Clbp4m$;e0N`qvLUn91G?R7fEkC7Fd1nSn#>rs| zl|t1}+X80 @hwr(5Vg>=FFFYbM;h>>Vxl#?Ty=MLz@6lko@2I*cZqz~EgHRN_F-JqWviPva zZ=sz&n)KL@`>Z8upc6C#%8O~mLs)u_j)K~Pxgnxh>nRnbL%4ecdiF9{ lXOI=nqW%7!z1D*z(!dP`UD9j(L(rKhC3pRz71RA}` zwk6F- jd>~1Rc)(|F;<;pV5d({M!su{+9$q zp+`yiF2t6iBn1b+UUlk-Xbe<{prQ@ubdsb^y)Q%+Ew&Q_Uo>srbaqZD&EB%|Sx`sA z?7dCVi4?vYsoGbh_m&RyT*TQ4T*Ui?x8cm|v{Rt-8j0NA79#2OxaRBixPK7Y`2sU# zac0|W3;s~NS$c)#84cHneHosf^QCw0z?yCRhgXz!hM55H$?pT$f~X~o4+WEq2p)_T z+M&KXw5O;XU!=XW@AuKBydXCbL;4=uCz?Uo=Ih2Ko(-eE}d*POg7mtK=G9{ z*og(>SG$p8`d` 9(^P)5Yuy+`i|&c7z973&U!IsPrc&7ZAZ#n4axfM|XfZZ-qJY@iKqu9z zgBLvX`OZ76DiM6^{9#rJ{Qbb)d7`)u|MB(*A6|o(bfNkybABf=|7oXq(m-R?yY gHDNR2RfudxCp8M)zP5>eyDF^s>D-BPt;=-Qqki{hDd)QU8s`DBhRx*cx$ZM{aAz zGk5PWg6G~PHT?#~aGU5!Kf*R=i;mbx23fsC(>wSS@LCU4d7Q0~AlNaV<`G@oKBj#+ z27LR^ks}zGULgK+ 0m@g0cM6G )xK2(si?2SE>Z|J|{ElG0^GR^m$uuca!TI+IGk=bIbEE*&vKV0*_K zYda$OFYDCde&>R+e(Qq!CXjSG|LlkzF~&hUqMXd8V48EavfQ*`T8F6*Js_@lx LQ-?#6Dx^6xIfI zZp`y)%4|6d<#wzr!)ed-@VeQwUpaX^5byFy9y07HaC#_CA!!_Z8HGtxfjGHI^g^Cc z9V}jDlRDrvPjM;2*bR$ek$}8D)-)V6qMw^{@A4XU%#g&jB;4fuDA~YR#4D#9);}Vv zgF+$km6O8S^-ZzgfZ$bMiuFeH=T`o@Shgg$(vZ-R{Kc(W_(>nSld!L&RDi)G#w>gZ z&sCEkY*PD9!j(4vf!5tljyK?ugYqiVs51mY+0)*RTK<+AOtHahG1E;O%PrQG$_ipj z=HbCNn}nac7JED}%lEhz^-F>qZ~t4QbivF0^8ZaZhW|TaNQnTnH#9JGaKDIB+T^0L zAhGJ0%CHB3iTW;48Q8S;Szy|t1U17}9^h5kTWxC @=J1;>ew=2E9pU9>#!Io{_Pv>*blSyb&LX&ZhB@{)+ z (UWBq5 zu@501g%}dzR!7?mnAXA-9JL|Cm}0tdfGDAY)kE$!lgEHpSs}4+>ebL%y6hK TS zE{n}_8Uv8esg3jYS#d=)C0c%;`;NpxmQ!M tmc(0LG_6;MT}!YY zsz@)Ai)EDPN ;ScWp#{MHocG=bOH?AN HZ78@W9N%9YFqT}--JL%yIAObGxVct)tD(xy_y8C>_IZ|%Eby2qcOUWD4tyz?n z8o5J%vg({BY9?hK@O}?S8(1a|>(HB0K1q2t?h?m3-;Wutk!C?gPiJN`Xc88z`z1T! za|KAerH^~3Z4E$N@ VNz7-u3b;$ zIfqdU?Sppv&CER{{F8!~;){rfzoXQJ@NX#Sc8oX~Tl!LWG$~Au*Z!lOZM&CVKraQd zbl1?4Jb~=~wQXGjp*5}F@GiTlBs6!_VE{p#29FY3gBW{+d6=d^v6Jz@9!mxaejj_% zy~ofWmFs9+>m!-5Xd;*u92G=CHc8jQYQ4mh>~LIhPJ(*fHU#a7UYy8yf6YURZXJvH zeU7-XorbXoc{@yTPf8d6j_o0GL5S#(ms2UKXujSor;%qa&SsO!$YSEL4kHYZT`T$JJSz4#_y^O3p2YYlSY_3<*ptxSfy-!XWu{b1mP ze20G55DJ3n^34X8h@P_i)NWz3iD_?>_MaZR|M9^mkF6B*^JXt-PML)DHHJ#swiXc1Qt>Yf5R<^tRcl?BT6gP3)HB2b*(g2>kI(+Z z2!)6FF Zin4P@u|C~^zFBknBNpgQ8e(}jgYM?0&8v?6RR z9rEm!rGS+mx~jY(i)*avD)~jJCl@3$dSNsM!aQk2A$al1O$40c6m8(rQ)rC1F5Q1i zRaDHA^xpsGo_V`UIrF&(q5||)hh4Cdhg;$+=^m5XgAt>Vh$MPb6?$USQ|h6B_$7&Q z>cEM}Gr`u;vIm^`&)Vy4UTqk0+RRb*&{i!T15i!?1Nb37yq{*2-FLz_ye7RI($Psa z3uRX2UA~pJegCn9siX;;WFD4NC`)&*5)d4gI^K5p&Bt+ FGYxY(jQk1Yr!* hxCsGsImJQ7IB-he_FjkmW+mOAKQiJ z?(;05uqyd(p$n#U4|0EUcHc0=P2|YA=0RYr12aEF79WeW&EPS~j6{wI$O0yR zy#4QdVST$4Nc1nb<$>_Op`WKH{BP(JuwfEHm@RMyQigzxaggCAthMGUzR@FV?n`R@ zO5!arCN{P?7 SUEQ@&Cy55WW$aSj*KS@#U6^B}>KlRmB#G-?>Ukk;=#`$JnXA0%RoEBhFv_ z2q{xx{PWy!fAM^res6C1nia{x9~^3KgeqsByLs+_5&H7L6E9#NE7Pvza7q;w`0a*k z5EBdU!g$o)xM!E%K5%y=bmqA`#&7jv?5B&iO1Quk0i5Uk>&m4)@Aq#$GwbF?JWQn~ z`*8;drb21&oNIPsgdAzV1Bznc^K^C#Cm@p5kCaVYy*@#Jz|XI^kl*}q2^$&U0zOm_ z5(}w3=3&>L<<~zQ@v;-_xAX)Tp}N8e6%azMmNg2s9L+jIp|ijlZhXBe3Wts$^X@X3 z*xU_-O>S#OXmJ(ZMe3iCbX6}_+emnHd!|mk&YN#m|8$^6K@ErXBK_yZ*rncM0RM(M z)c=P1yEsb9P6=#^aXV~ESQ`r >-hc{Q9;4mM+!xtAUAvTSdHN3gkxo@d2~XFd9pO|f^y$B-Dn*Q0axC!G{P zYS=F!mSIG!JypxvI?#rLuRwGSG#@$LNF%<{A ^NM-7L(N* zSIf@L&&}rPAqKMm=?4@3+|N3I2X>IGY6 4L4hWqu7fUmC6E;wT`#?Egj_<8Evg%T9^Eb-MIyAV1FBwd|-mg8n? noCT zB37fo*@6Dso2yz`{2}Tn5KQ e1pZ748ZBI`TTjO O$Ox@<$Dj#UUy4_&Pf=Yr9uwY=#@DtHa6pi?IW{jx#gz; z7U%piw05tkRzQm{zTYu;>+z4ii_e++A%dKWAas+F0S>7T(~wEHESI*>n5m-5!cY#) zlD5Cdi!$h3qpW}|Qo`PK-H*pwy0`mI9kyB5ze=b2mr}|qgl#64xFV|?)6Tm$l $Iczq?6RO6tBx)2^eP_TOZe+O++X%qhjk5X2os1mFil2j0<1u~= zXbknKyp1^Sg0Kd&bD;c(hVT#8RZjYE>KmNvcZ;8^Z_Hi+BqPFQ?pXny8^)@{Mbd3| zUH1@`M_uA?y2fjxkHj;_W!R}F6^Cg;Ih|6&fT7)|d^Lv*lH$*5)<3&s&{ThKr3SW> zhu2pCVl5hmKQ{+y5^Rs*a-<0mk_#l6_w~tj>eI)tbJd9lu }i)C%K!m;nFXn9-&eCt9G6V zUdBZI#_Gd&B5?6B^Y``78N&A;Kh1pGdxSHBYFXSKqFtGSBzZEPg0~*!tv2>TuG)Vk z+rT9&?7?0msAIS1v;P1L1n%p|_Xsym5t%$*9En#BP0|TGvN=W T^*{C%e3C @YsrAm-c3a*d!}NLzc*iWgzT0g%K7n> z@uJT}+CPXS=Q_s*bA0vDgsFl6HHt>8=ST!G=T4&W_N!stX3Fol{$HcwVki<9mz&)% zen5^df 3%t2e7)H`g5ZJ&?z1z2 zz$TOBF@&7)ct71^CCDwSuv||-t$|1ZbdjfJMygzg(>T PNN4^nil(aZztG-KL82=g`2I1=-0Kuv3Nf7#fCy|!yNq%A=ib4j z6 l_2GzwG3i?@ia(hyxXRpN%se4wJ;gQe=ZiM6 zM|49^!2?_VDVu#)Jk4EYc0%D}EP~>ig(DFp!PsQTWvZoQ p%k>-BI)3iJaC!Z9O?w+;N-BNZNCuNT+`C5{qL`V=X-8|jkgVn zn1kQum&nQ2*F*jb-&f$-=xh*jAH(5R=%{k;dMn^8>6k)0aB7A!t9bfu@A&!HmpfOX ztXiBs`%KmbgZnN%x3Q*cdRUEN2aTlpz~YZN{|+Hhi@INDHy_V@Qj0s0T&bJQz;+v5 zLta3xQrg4dux3n@MN0~e7CE<<^QmEP;U6^&a#%#mAIh8CNs4QsT6#7m4nqy-be$J% z7DoX0mIW`BXJ6{HW_0MlP+;*gTNQ(qm2}55A)oyy0<=A36%OyRfX58xVo4(fMav+; z8}{nP39~acZuol*C!gJUcDr4{E+q$rA+oDqFAcQbINuuD=*-D`@}JOLwS6BZ$*zIX z^?*yWs-N_lyWJk~DZvt-lqYtzx29xvCs2SVVv=ET_NC^H3AcshSR>v%uMy}JI{^bm z*piHUCpqinh?>xB{aP~9n~smvIRgP_bEw&EYjQz_8VF_tXl=M!f(C@8F2kM1+L-Lj zv}v);?*tIKaoLb@90K0@f7I?BP2)`6CObaF7zd}naaz=nat0Xm^CveVbt#&zXNCei z-22K*<9=UL#NafW8iBPIrEN~@vx8=SkB46AMldQh1TL>_v*$tb&uK*>Z&JhdmJ}gw z3LDVWLg2;{a8A?M?;_i$HO#r>)3zlOBbsAeR}V@{LiNP{FxEG#nD85)!QT9T0GmK$ zzoq-O&e8~#w)S3CgMnAlwlu>o`(zN^x_2A4Q-9Dx*5hd|-Lk6&aW8fRV4#P4d3?W> zD%wHxdIatxlR5RAO)c|TnvYqK?>_8SOZMv}Yl8@&t`>gWA4Cw>>1-f~CEjc(h( I*IvKeqP7dX5$HWop zVt+)P?PUw-VnN9huvPM5#- S5q4mbY4rsy}ETIx_b zR>KC43u>vd0ak)Eo$91|+6g?YnZ+*b%zx$!LA=((J?i21W*sjsdV_c!Uau>Ul~=67 zXb^AocE8E<)%%OKLuY@phx|D~9g#a6Ya~rkf_STkf14oJGT-rk8cgrccFeQKJM{8* zQq9#m8913KSSRj15w~+%I1RA8uACvTuSgrD?W*;kXSnaMSn?8)LN=1KoV*<&9e)$= z6SQ7itie$ydt9?+nW6Uw@LoJY)g{VK=GK5&7WANGwo8lbW~~9iYK(y=%emfisA8`Y zH&oI} $)p?`gSRd;y|_wlYXcuE!hN!IoX7v06-VcW42dx`}n zFDk~iSf+lBWvQCa*{i> zd1Vq`V5?79%1dv zY|myg%n5EcuyT$JGi#J)91{VQaGu;)i9}UYx<}V7Xs-Eml&492R+aZ#EPq6CD-|!Y zQ?oVoY#VWd p`x9yl>3u{TYswPQl2j1 zasXez7bzVHm1$3RC%%?m-Sj2=zHa(5Rp;JjCCWR3_(N~$k18>vOzvc6ox|uKGvSWt zQO~8e)1!j;6HO=2<4-H)lYe&X%~UzSSF0EHR7K#Q3s%gPrn{I-CA7}`g<#nN;(Jc< zmjS$hzhV$*ZqG2>R#U=xo6EFl{J+81^~B%OCXwN+!#MBLNccNJ$3k~plhQvZrEktT zxj?a+fASyo weP<(&_`VVU^OrF*_jc|{r{l``~v<{u;{^V13#d{@EEn~Z+Wm=3&wxre*(CI ztFsz1GHh#S|6?Yuc+t_c<)P;GLmqZ>ke#jsFeQt4Aerwa3yxFF73@S%e44|i#P5gx zX#i;aN-iBJScPJK`+q1&*)C7_-A5;oS_!bnkUHMBQ1&q7I_^F0up4EWqa3{&0#Yvx z0a+rA%sQ2ZAadNwN0Kw#bea+p@WHZ-^^#APpsY}TTQAp>U_6!0+d)~WJ@ge>rL HIoVZhuxscw$z^?zvLl5H{jV z9HxY%WA|q>{d~a%rG<@;+$!rDV9)BlwZ)hAI_bc0eXVrPX{BD$uQxXcoABltbTV@+ zJ7#zFS?MDQYqwpnhOIdJmXn6C8?Q^xAOv5ozM*`MCq}c0omPgOSAK0@Hak|#UAwT) zIyiVTXa8)A-hY+XKD%!I>UJxY8la2NIbR_g0 RuX4~hax?$`6Jc7*csXD{+Oi4 z^6Ea3;xvN;%zk5J-QtZ|C;6~@;ZCM+{b^;ztbh0X^aGjpOiM C=@}$_ z)X3&LGgjI*S;ZZ_pK6Y)BQ`Nk3ENvXR`$rG3O TBE`mz2kPEpQz9B6ml=j5+$X=3zN& ^+Bl=P-B<`_JKlNgRx|jpJ44aQGaorg#Y> zmvLR#-<0I+66z;0#>3;tOrY=#xn3mi;P)VErf>s{8iU2tzy|kUvw@AkkI-dc8-Ec~ z)KTrc4c;910fJN5N@eOFE&)@nP9g8)X9*Tl$AV*6g!ge?tIrxwe|SG3gX7(kI1y`& z9XeFPBfF%pgj2gqc*E8bPDgzuyd~-{;qB3y*0%N=!ai!GW*qN&de OK8|O`akhl#VzJ$=?fe_l zbDt~W^G&~VxP;$33#)`baKB&qJf8m`dfG4I`4avtwxtnY{1|G^V8bN77Jr+>3$ay) zJI3+XC48gl?@RbrxTb`EF5%nb_?HWPVI%50gRhjw546Whcrog4Y{6$uYVW`9s_m}b zXomf5CHyFMM_|!Mad1Kwm!#%N>{xEDSr#~bsN33TuCWevFBKzQ`}l`Zx7=KP`tc{R zv~>+pcK2BvUVVDGS(0GbXn$M0EKrgrp4@15pPBlUG8mGj%1M|W+IklILbALh;gYN_ z$qmo+QHZ{Z6ytJZNFo&hLek7>tE+%-gk&uN%G5S4w_K G4$2MAP4cc8;M}^zbg~ti&sAjz#LoTeN!VloE3+t%xQ9R_rI)5tc@T;(n3V#S6 zcVQhB{sf+KVI39zBp !|Rvm~deo6~4fJU11#+zQP_ !txeQz#?Rz!d`}gUm1j*SHH_NM3;=>D&K0#aR`; zyqzoGn_e-<>}*oY+ 3sK$~; znIpIhoK`Q9%xx|io}DH{WXR>+Lupc~b< kk6uwEYx(nyq9-8$IrU*o3qm zcuuwevHrG@Y@Lv82ST!42PUGB+}klByJAs#V&kOr#QMWN8Go1EXK 9~YV>i=Q?VTJ(xydheW{T-ge_ba8SuOlQ6@SclQBsc92`})ry(pHiO zWBujZm}olmwyAG2=bV}PddFq>p5euhgydC+OJY5VXorT)F1@NRBynbpvod@Mbs-tm z++c>}Xw=u*#(yBfw?dNg?q`U#ca$V|QJmPWlH|!jYe@ S7a5ruL z8t! X~Ew(Rep?^3;!-eG7dFfola=Kxc3!bQe zeJ=QL1>Eg|udRUnE_kW}Mtv^)`f1pI7K726v)HdW{e{?}sM#JiV{QE3%KuuCV=O~v ztV1V;erm#|XJb0f8+7odZ9DdBN#he$s}wdDCw{?bg;s)Ry~|cX>5SHgVo2UGnn( z1yD-|2nv2zGVtLJ006HXlksI_e^5~TTm(wOb{~*fk(i(qc&Nd&l!T{d*qv^d&hBhx zcQM3B;!iRrXf*K$_@j)sMPn2ne3`jl=iGDe%(w5KzXEuKMTU20XU*Ch>xjF35qZ|S z<#w$V%T-| o zouS)Kgx*!5XeiasVgsWLlgIpoJCaAfvv+hX+| `vFi( z2M8YQvxUe3005bjkuDvR4@D1?-=qkWU}!jhTbIL_D7$fi(}V;PoV~>DvZZa5v;zq- ziPz%51MpA?mkA#%|DXN;^7qf@7XVzsP{7A-_mIEICF%{;M$V-! wo+ zL(Bs?!brSaVa)W3^d@#yl=A{zq_Om6R-w;qpK)#IDmPQU4f(&n=$vD)r4TulK|Yyf zO{O#XJ^&$L_}Fwo)2($RVAO v<-^%Br~3hM4pKJV26ZGCp5`}a~f6mYu6Eh>j~ zsqU9+(rpUI0#bS<-L)K;oL@XKID!=V5^Nd3Nk2it{Q#0*P)i30b>Mb6=l}o!6O&PX z9h0bOK7aq7naSMA%>ZFSgaLseM6*s(QCS920|^kB1WJH7fWpnpO)@ewH_igY9j#Ss zTf01KQ|+ru+q5oKDclLBidsv3O09j?+Qr&^v#nk1qOFpi-@P-*Ofm`h{(5{ua_{eV z&iS2v`Q7JEJoW^Db1bEV1J_)$dHIzUT}p6|8h;B__$q?k74;QCE!r23D9NxE^G3Ch z%Ik48qACfMH+z+YH`uEN_asu$M1`+gi6qqeioPCiRO$1E1&tLUb=mUJ*$f+Bp2hD@ zMIyYgSB)o_DlaT=IJe>Kb1SZPfCzGjmWl_}wc&_LsMO*;jXiNC6j2-Z#g)E3HQu<+ zcz^9Q-`bRLOoEM2dYQ6UX^bebp2m$`m#M*|1UtbN<$c0w)jRxS`yI)6IM%bWW*cF~ z*y@^yl1NC931vNMa#LJOG7;vlSu<%=RM(g^5^69N4=4K@$HT02!ii}zN-&+UU}{(i ztnq1l&>Gf>DKX*n2}g|WGI1BmWX!}Y!hf8}pd_3|C}FaGEoj(`6_X_zQ g6eRB|>?%f4o^&)@*m89$p!BXkc5JoP@PTL4UJx zlalOZBfgJdWro;)s`G`&%9IPwtS!OWGS0#|1lPoU2}_x!q-J{Ls9qREtT6U+tSG@U z_?VjlZYJTptT!0T?V90f&1&~rEfov3#N%3A!ueUHX2?pokRS<1WDcBIZR&0fGjd)y z7EYc&PB)`2?L-UK%4otm!t}nl+JC3Sv!O!RR45GcrK$0sO2kz*8LrH-x8fohMc6>7 zdk=^b+E_YuKRa-eb!x2^jBmuI613y}gt=o(ZcfFL;i%fOKdAPZm>q=K J@w4^7bCe?T}98*0(q3=G{qo-SodosLvE>hy2?zk591UY)TIDemcsvPK) zu}!GXE?{CIg13+dPEcazeAdTy><}b&5-e2>4qQ5pLe@@GQrImhC fr>Dd+3(lxVBH}64o{RBP^&~X2$F$_K#T7iHJC$2~pGO z+Lfs4gl4Ywu{w4(T&Bb;9e-daDrxA8YplRzSWP& cs>DKmb`C~J2* |OY1X}@3Ml0$3Hng=4q^p591?(n~zS({l<*NKgL#2;ytM-3%{kmk3(u^&ap Zl)MUb=cz-V1*5)zcJsFqi_f(4zQ}-*;zKB}y@is^M#n!55|6V1MQfoLQ z?&ecMY9bg9XLRH$ LSQ3Pm0@IyEwPs8~UI?6T^{1Uz_ zV-WXG)TiMBp&YGBc#su1Mq#~@=w*>5e1#hZ)3S-x{U)pIEPwud$Tp>qk9!1<3P(9O zfe>#?IK%=N3Q34i&E kP=_G9JPc zgrz47h04_`o6rpAj#O7>U&51wb=6Ziu8F;JJj4X$X83tp##8uuw%!`HYvp_`vXq2x zaPA9>x1<&qQh((ts5P_B>iH&~Ex|GT525~~Qkj1`l1h^4Kc77}kD`QcarWbuwq4zy zG>Q@j{I~I930}Z=xM_(Q%lXYs#^0QH3EvfPFSEZ!mHsZ3Pl_iuW<0!Lsb=D@;QKO; z;|E+Uyj}->#Kq#If;4qAyP2FM;m0BXPF3eWk?|US%6~F?y*n;lbxEBAKj)XIlH|TE z;lwWmH+A?G7luTtE0J;U^6J)tx%xNwt$_X==Upw9C++rAEC44J)g+i>IX?FH_=8Z{ z9|=p|JHCWJaYoCqE3DiUX9?d|eG0tfbMY7aRmPw3CR3}vAW@Ui=c hSRww?6w}h_V7QWm%nL7V1K;Gf`M~gLOQaNFD!RFyTa(e uFOB%4v@sEAW_2E%)aK#;Pdhrv%%7SrrusaPgil+Ti& z#vMsGme`>7JIN_}^}{rc&-XfL2CIzgG$*I5kbh2^i5CTbE<<(}hD%3MbIsI+5mRm4m#K zq<<6PX4EM3!ov?7w1l gnna-ys&hpjc zHcfWc2&tOcuUJ7%k%*JlnoH|O`?&_u&wn)-{T%TyeCA1}fYCCrgf<95{`|?-kU^q$ z(O(%?3r4Txq)puK(njKmXIdVc5_Oo i- z_b_c2xhT;R?GuOX 7LGL{pJum;>2kwmA(B>XE5i%q|NvP$5lCc*LOAtL#-hO03@mWk?=P zswN#Kx3Xc@vt9g}wkO4!if~G5Zdu#3)xTxey3I|^{+3-^J6bmHTEDTa#Yr)4BPmLn zc`1_B{5XS7F_O^b6c;99^_PyP?th>ZyAYFAV|$&n&jjSz#U59q+Fn-h6{a&}N0S^M z&hPogcKE=n=^8=j+PqvK%$+oPBRU|{^} dU{0cd_Yv5?WV7PP^KH{Cc^tW zn>M$%wy*QF_Qbfq3weU6M3SdpQ>z}~?;hdro=E2Ai09&1cep1dV8gKqaDP6JgKpt| zm?dlKN@x)t BF3VB3h4=K8m%1h1 FQTa5%PC+oLx64N= m z29Gg%wUAj(5|w7QC{Uj!Lljf=|83Jea%$X~iMwl*NTeey`ZfA09g^uF9cGp2gyH{R zCVP+fgBxkc1<( $P080MwjUEbnnUp$GCf1b2$xP3 zwkNT{$(YF;^{h-!6SszPFs^bzZZ_^jR!rqG`6+GuWi~xe#|6o6iS!-ra?rOq*up#- z#8o5Mob(+tdH*jb&H{(5*0dy#j!K_!17ptO#B-KJ-<9cQk$bn^yasOs~@Gc}?P$ zUN#_Cjz4g>5PwX?#Wkk6H2%uLTxB-ipg+m O!4|8< zCR;2P9*2v95iOxQEfP z#c=R{vVS=F?G=8u^53YdNXHBv O@ONY&MYln{8Ty=+Wdv^5>UL6pto!ON;dF8WWCE)rT1G?@xj4uq~fnhup z@PFBc@o>O<2w&B4B#p17ada3@1$;$bw=Iolj^H_h&+fJ#0cXwudfr_mp1((Ul1cj{ z9X}kP``wc3Rl_JVhw&QY3e=wsjvVLpU+DPt0Njiwu_<47ORV}gbo|X%G&u4g@BhQt zZxH*Xt91NpsQ@fz(05JH@*>-A Z zI}B+1AWDWw4y38%sF(2=)aPKi-430m4`7xc#?PbNP4{Mq`-%lru>p0XyGS^byLeX_ zl^WjE#csr#c!TBEscZmcSy@d+P8@Ud`f0wRqNR> !1E*kNRbaXWlWVQ}OLw$)8}> H9FO^`HD m|&(>*K=itao{8BEt?bdQh z2x7PG7KXO(GItLP->xg86=^zeh<{f5io}rtFSDDb7M<3Y(M3A7nI{~BlV9ETA==#O zwgp_b@EY^gd5A7{^TUn-bhz1Hn|yZHExgYDXRv&!?Rw!t=8Iyx53}8N rRmULN24S;`O<%Fw;V#bV!C2v_D{>c`3qy3BFwqUebYq}h zXyXnJ)~q)8VMm&79>9FBVRebE{vly?`iN !98zF|wZ5Z_zE(R#Pl`mziOfic zbQ?||!M%{o^k@7WknoU%;}Tu~-oa7{bqmj_8bO&z?IWD(90g$+On_JN-w~`U0QBc9 z& l=`*l&hB*}nNBfM!nuB(kvquxKhyM^FO$=r+tvu{ oivo6AHYXjz3SHf*wkGa;}m}l+A>DH?--+CPuSf9m0>znY{ zPQxPG0#w-Qu-Mj!O4~A=VLKmZ+Ac xI=!$#1X-Z1wv1ln7=JT7yoMe9r2$kh%FBVa zG<}cXe;8;xhSK^cY D9o_4Gi&PoqpQJZazQ2UOq&>*6Fut z`u!07rB Ea1gjwaTL5$t6PwXin &yK{5U^fo#StGU=pbJ%M0*lG*eYM1i6#poIMw`B(Zb%H1jD?LDu z&;$PgP)i30c8TZtkP-j@_$HHq6C42|lhLFW0ZEfyxfg#mjJ 2k7LP z;DMrs%oS3nO63VI_Du-f#Fm|(0TqeY>d*)1Lsb}6J;NEk^Yioj^$h^eFcWaSTt2e1 z+@n5GV`MIMAs15H+Et8gWt+6Nh9dXGgn?psz>w+#=~L+HAoBt_&_cR0t zG;Gl%@F3vvh&?LCrd03yBk4AQ=~Tc368MvVar6<4Z%|7I2xi0iz0Cjs0PFyh@ntiU zxO^pl%Sr<=6o&s;wY845t(T3vQP67JS=3^^;6@MyMNlYo8E4XIZ015TtqZZ>Be^Jo z3m?FT63 w&rsnp9+c$&2*auy%jHudwv0n>#T$8C|-xGT+uR*MC{mgd O7d zv>_`sTJ>hV(X=0PU<~=2XrNtjDwSZ^jI{6gntMt(_nODC(9U^i60X$7_kNPzpT#so z@s1C ygL4pti( )*S4AQIhUCI**>mPdz{2bV{aBcri+ zBoj*}nnsd?CdN}{+>E46Ob$oVP0?X9x+k3-NiPo#MdE2QxO{YX(@12rDJExJFleq@ zKez^KQ|k-+hqCcF2KJh%G)~39`sTIGYt}A*pNp8u)0@nuqUPpU++ nY9Z5tqZ5NfF5KCmtR3Z|8ZyCbEmUuF{CkB=_&A1(hJ1>kSVwsDXuB|%* zmuKedk26t!C6leL{z@;^&|D80RLivC|ABCWd>)!lwO*P{)oyaoLNB? G)umn#WWvw5*r%Z7)xhTv4N}@;`U@R!?d-oOKU%tY>{g=bd_wO7fTa=yEoKV z C!nz1yF5g`Hh&Z(=vdOC|Q<5o{hx^Mfsa>&1G62fx$9` z23EW1vQsE1=un$pr-wGv< cC)s(o6>u$xI-c zOk^UlL?DtF13i{xVrIHIuxbA&I_6*?lMD>S5`zJAe _HnWS|W z)4aOVDZtg+saLMv!L<5+X^sZL>sI`6^VXtykB9mw%w$i;4w%|lJH2!@?GjyF!?byI zfy*?QNd`v#R9^dW_HHwOBU nu`Uo+UxDj(crer-8SMsP zy_rY~QDo(L1`T^CCYD-1o%uv$L_$eM0#XH+*dsT^nbwr4R_=+Ugr}mC0~IU}j3r7j zCLb3&@+pmJZ3Q#?<7$Cd^loWuI)81eizEx_C22F7O~o=}E!~KJh6sflW4lf9AxN|e za@G1zM4`d+W;X50XFvvfX`hF(v>zUlNlF9 }pKEDmF zwQW?SV$i`tEGf?Fpk&bd5e5?GzRtvGHUr|!2&A;RuF_3ccg=KsfgQ}0odeSToIc>8 zo9O1k< gslb{twI@BZvczx~tp8;6F?s@z4k9qYyxLbTE>E91To$c8ZgH zoIWAaxwUYtmh6t 4BEl)IQVa=q(p?_9gYFi8sA48|XNJ9W5AE_$J>AQ+ zq^{%4k?cMp;fs=>ZpZ?0dFe|Mq3h|dg=k>24EXqp72NMfo`7++4WyItY{nG5c cDv0-51R1|Mc%b@}Gr;RrmXH#@RAFq%qYV`eM>cO8?vtgz9P z4;#(-d4#Qim{cH^hIgkVMj?a`%9cPR1=8|<47us+^4kMLspJU4Kqi$ p zm7|Nm&Qv@USe3?T{+vKp(h`w1Tnv~6=o<>GUX@;dy(-Zb%|Ib#!-4$7m9caz6By29 zM$@5|d@O91u$YI^B@o>r5zC53n)Kp?XeT)YUBz%ix%d#lJBKW34TzBhvT2AX5{QCH zuv@+~7)YC@R!Sh2NsF}i#$Z&4fk$CFL&?-g1onPGh4^!I1!z#ou)jga#1bC__ASkB z&n7Z|u@MuX(9B1d2@g$5I-dpL(VHC|O(C3_@aBc(R~H>rC%T8}xQ7nW-vA<6HVz~s z5NUceuD=TY8rML}S42 T;5DY5J8}#>HdXygX0DL}yu#in0h>bFxT`?IK zZ@qFF{KJlxt74-Tko>0#MC!c#jEA14Zy`*7nTd=fVkZAIXt*hn9Whhd>_GK*=)1E1 zd($o|TVl`;;OeNyx|1n$Q`{WEsfY~E2_}1%{uzNOVeZf5Cr*Vb#T5QSdR~_QE3(IF z>}=V+OqdiV;zIkdeLg?-EH~q#pr~%~%si%-NBONVONS;EjaJ9|LixBSShO$yrQ) z=lrh_9f 8Eltz^ij)4`2#-{kawLUPS~gh`T*IG$es&TQ*acMP7rXkiyCb znJ)X&b6EL7pzoLTD@kI%7KK(`V;R7Idgyif4brL3{$-@J)OA&s{)~C^E&8ok$A3Yw zl`b^scQECBKn~E^+mZ}_Pk)e)&&V!+ 8+K)c zTWP1ksPw(%u?cd>%i7Ge?A+eD!OJ$byIHXVAR8j;h)2?JlG Ay0b{Fcn z{2>NcS>~z}AJ2lhvX^Hwaf^#<;1t*n*$ N^>!~WluTdGeq7n?;>7~XIxAuVUdT&jB`V&<6>ce{B7+0qNIYj}D#mnH-E^VV zpDM%Uyu!oFcqL+OCfU~8(b?IXr|cX{7^?x-yEm?NaXn0A=Z?)y>s{PvNxXe5BVlQN zC9wbzaT7NS#VvUhCP0f(oo4xe{DK`KpA5IO$95MG5~D JCWP?%4!Gq zfup)p7Su2*w&f*>#}a#!d(4(DO>noFi3~-wSPZ@z?lV#vV0xz9PV)P(V>mgu1>g+D z!^*B?a!+=&Ldi7K#vNmSqvoGBXv*oqQcYMHDkk zw^ode`P#jr#{U24Pp1MDvMB#jNZ^`I4UN1!z|pxx4D>Wh2RfOT8@)WlVI)M}Em;vM z+TI+G?s4(;Oy_navjB?v1w@-*U{r4_)%yW}!GOHxSvcFp;C< bUF zV1OrAB9ch%h>cjU6PJ5A#c2=Uz!?Y0f7R`m+K8WhyikuqV%wp; zIe!3K8P%zQWGsh&N&uc|pUh*^U+@P#d?TY`or5B2!0eDZ^WE8)nTd~;Vk Ri7`TWsoG6f 3U^~ i=To~HY1K?T#TB>yRobWckwf) zyx7iILzbJ~x5f0nQ!2iS!Sl3g%ER9il=FSaIHey8cO1tW $}odP=Z<6!E49X?q_Z9E06cKW=bfb 8DjlMb}l;xUo5{ zW#LkDv;@-0_+I3n E`@TzNT!>` z?_8?Mdd|Kg|B~lbEhyLd26b*BlUYB1A4v>04TVZU?d&ar{IWT){VuiEt=6bk{i@oP z+y`u=D}r SA???7tMwJ`hXfBfU$t7m$kH1x_XN6@KDU8^Nd`3t*l^476$duQuy9S9O_xyfhDw zBnMrp6R~35+O;mVRa~pWQ ?ZkGp9m+EJ_@c-)B zaQb=ja;PFWQVjr7O;28_RCY9fV-A+N_n_Pjj%MXCs0E8oebll>A(`E37}!XmT6V_@ z=Xup0!9<@>fPM`n(}u?Y(wNa~M$kh57CaJ5%Rf>`i>V`VtAt#uF>{Z(PbUX8s*{7d z0SL8_^njA4KcQ<7t)!S16qHB?kgj8c0l^e9*X&YR$g(3j2=ktWKoQ-4(;XSzAw)1$ zi$nHgM+VGPex#=K^O>$@(lm!0WFULl@y$hUe48Ubrt8*AvvfO~s?oX$`_W^y54|8c zv4<$o5DxE}pn1n>et7EyEogX<{EZLN;^2d{wCO=Q`>4*1Zb^UEPJReCI?>K=$kFQC z$TLYTTgT}V^wxy8K1t4h@u@c&j?=nu_XMqf^kQ49-Dh8V4=ru*+0PG$968!>m^?v0 zzFg9Gvz^DMeiGc;@DRay4%0cuX>)kj+$|HdwJ}HA`sTh{K6A8l>v8G}bHfB(bp&g# zg~aYUeerb_7TX@8K}C<#3Jk6Yhr1i*4o%Q*5Pq2If|{0P!Q&Kv6JoDNe (d2j9e9+-1$ERL__7C~(Pms%R&(UX_a&%j`M?@B~ zPtfg;wmNLBP9M&=hnkyw&NXvr>fj`OAsjMt^jDB`mET@}b8e2t`*6M?g1y-ZqxfD> z4%-<9MPEKF^o4WuRml8Em+=T0Fj>&o&}(n(bp(5zO}%p;@Y^RT2Zc %qR=+Dt34Ua)Ei($uYV7iW4bh{Rx(*7&GjQ `?wf^u794{bAQ8FdGCoVFGu;1YW>*xBQNg_w!+JE!1Avpsjrkns0`?o}h-tM=!En zymZMu6lh#}e#kEF(cp*1c2Cliw~@nk|IIe&;m25i|JD18lEFK9F6Z3Q`c2Y<$=-oLd;+M-Rs=T9D$k1{i 9&qq zb$bC_tlQ1-K54sYmu`1aKYdb%fFa!uQ&P8C`iO4jQ`UV7vN(+PFx{>D_tE`S682pZ zKp=60p4Im7v?zZK^h@%+%<}Tn2EB+cvS=B9Im0huvt)eVZ0eAr;v50T|DpVaOGS ziig@I^5ieUS@zPb4q~U+o(DEJhz%b>3)hBqYYTAPi>1g$>ea@E#$)X4K1OH5nc35a zPL8Xg@>-sgV;{oF=aDmLw%_h^*ssg+qLAH>xg~`;kKZ10jMFT?T>=iD9da~=amFNn zugY;<$XUw`2waFJetZq)_}mLM!(Z<$Z?Hw+A;1b z9w=5QC&G^9NaGl93x`~VBdg@do^h&w^}7luzE4i gX62BCt0L{E!~S{^~R zL%1#Md+0Il=AKE;&f~o!wY>k9$T~ZRoPOt%)SDljZ~ye?Y4dSD5Dtr4-Va`X_@*4+ zB5MCoxcf<3>UTCx^2hLJ4n1|tBp(_l&sM*)dz=zMG$9~|2jJ}yzw-$?H;4?=@DQT_ z0e7Fn9=ZKv4anq2WU6e8yB{kM4vuU2HqG(=9N$sPcZuALX?!#U^F$PP`CZ`m3z}bS zytlNpxWJfUfzCIzJl-(DUw({#=ECbu^#b1qf8VRy8|lN+@-zGc)eO&gnP1iIulYB+ z{VzVL+mnjbS#TDca_Y89&C~5db(U_|sW!D8ZM)hc>(%9|TesWQF5O x4i~0Kx$zL2%Zx(kEh_Nr_So!^A3%==!-gkSJjZ~^c8wi zN1RK^efl)!T=e^V7OO5lppf3I6*7H`21@#@C0NNx-O));4@xH0g9aZk_(r?I2a8ur zroote9LUEsXKDFCYx#lva+i*O`jBD_mHP@~R66-=Ik{{&zg~cLakxNVqvY*F#bFVt zJO8j$0Du9Fx26q1I|ko>rvqsUeA^I61u@p(TP^5Zi!{0ey!2tTAG<${Grx$C`xW5F zqrd^rBTv1I6!B9?_axOYiU6*sxqLnfw6##|4)XCZ&F5!m0sop7svh#A23(|Wqs8h) z+&4$wRq{X~gFB=k*wGlA 7S zPTwuaW$EL*Oz NA8PmwdP(#gNA-tnCU_ z+59fB=I(X)Jz(#L{wlDC3+|!n`Ho$Pr}Oyv*gD6}25{SdMSlBZ5c171nV&< L}pmTJb zXcoj k5Q?%^e$ccm$K{7_pwzW} zAgIx#qoT@xUMN$UAYr6d{?TESRwylwO!AMz0svkC0C<9s-H-Sk5Ae_Z7 f28)2}e)nU=I3@0_ zf?(S6z6!BPC-PH+6JU&Zy-QseZgt(s%YDXeCszna5P&Im(Jf}t^8}r!Rn3#?ya&{} zoZ3*UF3PDkjhmjeN|>fv)d5zy=eXJ=MTgpd5^} %+Th)#bMS-dfdV?}zU?dneSk zoa%*SbLu^ZDI;>|5h)0W&8e#)fc}1nz;8eZ$JI4hIH9g>f;hBs)&c3N>q0KOM1_#s zhFIr!L4Ya>?Y;nXS%bfe eI1}UpXQ$CkRg{2SvyVDx*dD-CDJ`go#k0#At*sRy8PhZq)5Tx=FVmpj&l&h(4>^ z+vzUdeu=)S+aq*Lw~wQ~l=dllTDRY(=XCoL{Y 8o4R$8AVyx>d>q=(=C`rIr5I)dRXOt@IyMle#ah^dDA_=)Sble_TDM`_fAP zhw4YVFRk={s(zvS(n|kz^@i?CEB!asN!^zgeVfNtEq&dhZ^1#8p=IyTRt>>_`rf9R zljIdJU7dAYRNWed2N944X&9utOOOx{L>lStjscO*A&1TZrJF%O>Fy2zLAtw?kOo2E z&WHEv<(t2s-+K2u`}8?`t-d4rjW50W U?(u54`bpP?PY#Z2ibU2GMGhQEEeZkQK3AT0N5hqQvz=1_W zpsJWHPa0w%uFBl7*!Mwda}lo$q=D+9hnAb=n?_vXU=uC2!5 bvhd4LrQg;ALd61+NpTpGBLR(Zg`VCM#}zTUarlJ zU#ix0LNU#YEpo#X$PIBp5uXX6JdKI_#WT!YLc_s7%DO038TY;Tr;}fu8|5K5d9&z~ z8aktpl90aK^Xm7Tb2Xz6bUE0nPUDtpA_!+Lt;^ZMuM%F P%Xs@tKPD~qx4(Zj+}Wv)Z{ zh=1}gU=4KmmQxU$(jGo-LgUlH1G^&_#9el}!`NO_C8qCMoTVQ(ZOMNbtTi-jd7#ya z)|r}{%aE^WlfHA+Vf}%us3n)Zu))>~)-5sS5?(WhlXuneSQw|OZXghx)53CcO<95H zVj80BucacAYvojGB^xt`=~z6jm9N$6JorQM-OG;b1H`v<*;P#~O${Y2Pac?tPR;jC zb^DAx#^5P&u!0Pey&EyOm_H6GRoCytX$c_iym%tI4o|_A@KRgC^ZZ~GOXZWZNYi0` z&_IWe!G!^oggqjee%iSVCLiPKY{V#^clC|P7Ja`YOX*)OfKQ7TYHCJ|DE&2jgA^lK z@3gCy@DgU4K<8EjnH`|SuL;25vX}JW26Z`C_u^ALrmNFeTn55IxPnO_{p<*66&T?R zNCPrPSl CLW6Q6-nPtwj?IzxSl2Vb)LYq~o8FVypP2FU zd(k)fJ{_mq2$1)PBF!v5an87@ob1k`#3U>%CJ=;2Q&z`*IY!(UN#vBMun}A}Hk%4w zQi;uZ!eT@W Wbv~*;RPGASVnkyv=m(LeJ9o(I;3^-)>4h$L zpd4g(&4ow2UHQ^%+2Ulhd9`(n-u9Fb$-vNnolMC<4st#o)dVA|X-*;f&MTKNh_`U6 zN{+h&!IzQqo{5{p7Q$bgGq7p4&}Ek6G7} z&v8)mFa$kGyS4ecZLmkEsM>9?6+vR0L`tCbpMMykU|sGt{40p6yLDnhS)yP(O?Z|O zB~&qhnh00d27?WgiV74*s%%S8{u-Y9kzY oTQCbOf$8bo~N?aM`+30>-Oe6!Vn>?*9`;v$CBY^ZweNxOVZl# z^1>v8a5~cleHRQ>JP0Vi$Q2w1UD%+X5>_;Nd930YyknbTcxs|bH+168y_uk@J|siJ z-P=vw8q1^@Tbeo(!|@X)1992+Oi08?KI}gX>z|IH;zZ`Nyej$PKuT{JI%oe(-?ciY ze~heTQ(#_U$raRq8t64@sZsgJnZTLTxzuJyXLkJKThH>c&o0?n&}?w+;7j`fyr$Vu zGXb(; tKjxHLT;pXt3WAg z$yl3A+ZK-wi)d;XX*&Ba+Np6*vNXG8PPk6^vZON66qRQNAm*Xiffa7l0#V`whytCQ zBl9b18yD0JdL`-vO;q4waseZpOISEnn)x;-=u_XDhLv%Aii->h`FA810 H*jN<+~)%)|lg^d7P`o&=zU1 zFx&MNrrA3S-%Zzx2+<|A{p4KirIi>q)@w&X4jyl4 (=qmwO3RzV$@Fnu9uc$55 zm2t~lFV45iTY6eD$~Y1Ga$l$aoJLPIds$Fo+KaB{5XZi%@9mU+yTWKa1Fxn#3* (obw`MWD)OqHCF52Y!NA_!~sI1i=b|JWZ zYEHHItWZmB-_$tpg)w#X`X-i!nm1&aDb~3&_8Ij77}gNMk>}cCCa|JgMH3lM^%8GT zp4ZpN3@c`2s*d5+cB;=e88(hDcHigYdR1RfqXZNU5KJvjPtbn5l}FS%Vl!6rP&Kj! zccf^w?2}n2myoTxy7#z%_#2d0G}NN;+LgB^wx#5FT{K^SwXWZnl11hgc8Ddmyw?K} z@+Dki-{>}Eb e?? zByHV`A#Sd4>%Z1&%(uSh&z>74DLqGFo9|7^2`R?-8B7ZEvaqQ;t-G-d&uHxAW8Ewe zwCTInyQSfp=8~EeM&R?VKFYh%T_ve1m|=KC$8 6WS zK4mvI{S46=gPL?cm$(Pf#)p`u{R&YSZ67pEyTj)Uk=`MeXbezBLPP^0{t7O3arR@X zy85P6nybHRY+@lzS|>TzCq|q * z&)Bx|Xu$d^AcxV{_`W5}M$=qvE8gHj4m&)nim+8)xp_!K5E5ceGL<&_9+IG}oc$b| zjozx#k%Z|g3fQl;ceqFOGxgzsPsVYYQ-+hh1Ni#qAzmAe6^5abQtHI8&HEh*W3uls zc;aSGkx*{Awd1h!?r0y^!*42D0gVCii2LtO{J|q3C8BR9hMv^wDXaBfkA}v`S!^GU z<0uvNAWwY$t_>cpWqlkS?A)IiWCJ&S`S8Io-Uy@c-I|o;bGJ973~FNET} zg$Y%>C|06P&j(vL7>em|Ec<|mrX||*`?gX0aU;zSH;M5(okgr&ugjvT^fT3FI>u&) znk~WOe5p$?FRu0Pw`n>Fl~=b@%`1z3RH7`^$llFIbsI6nk241y*YPVpJXOF`0zUJ$ zjSgD#!mx`m{+Xl;YZoaOG97 &_mO^L)Na!6AaGrs7hu zosP92w#|I@Nd36mzS(u!ej+8Ll 9o9OOQtc zW7dkC7C|C0lQ ? zPgEccrI&W1hkM%}tD3FwePdOvdbt?+#%FIiYwVkMZ{mD4fd6gngL%}Mh1i8*LT&_F zv_n8~IRLwI*UfK~-)NOE_ZVpM+mC*dxRL!a{Pd212sQqo3I^G!PLcRx)tL4+BbhwM zH0OiFc2OK!r96JXX3h9fTPBNm8$-L2>}tBc>x^$|>fxohW{nHQ-eq}o^+=41F29EL zSkk1o)z|PU3bi6$Yf;$VaGnhGEO+!qKBWrV+I+ZviV7>qx? 0EfrC-XSt+-Lab zHq_7;ux!x806y5QcM7@6h>YHuk +f7YSkguMv&V1S6 z)#&A!tAs-NFu=Of!hFLwmk}ukrY=puDx#TC$Rt;)2F^?L93($akDEyW>G--MX=IEm z?G)x1u;*b#XC`RR#So?xY0<~kP!&J0#TH0P0pY8L*l)X`vKmU(E52`(?v!Ur4t@7g z`wJP8e+gpkR^?RtI4gsi%~$(eyJ_r4&d%)BQ)#cJxDb>qr?@Z&%DEqj&ek2>o^19O zQEKEW1cD(#x+|SJm PRYm;N>^(Wz0@OX7)!Op^rj#uTerflvA(*Z($;#Hcelfy;N*(vO9AWN z_}5Me-(6g-vB+AyJ(NJ=wk$Cg@;vQ8I#R=hnS>#U>4LT^>wRPa{WxtJ2eba6$%C>8 z;>Y0WQC@8am)p=BZ@&WL)b-i2QbDf<@^*0~!7d-ZCnHgpI+9PM8WMkc1zC{B1=?{V zl(D}Ua&^JTRE^-~XA{hu!$U|LdDD@8E9|x)keM;^<6AR_J_`~j%y Ze%Z|Jk2? PKU#lC_`Fu)(^uAuJPnGr3owVCi7{wC24 z>9N<44i^zqs;ea5IP8SAvP$fS*Msugg#r7dQlfKg{6M#v((|JZ3v9VLjH@z(XE~g^ zwJ4Dlz{13y{0*y-9)qndo{mnAMWJ6ds g__>uInKDkyhEPUQ#}3G=Y)Kk>pdcA$SA0pgJ!H1hgji7ZsIvgXb@ zPSeD*O_9-#c)jR>Va9#k(#3lAWtoS 7;?%mX$ zuOp`Y=Z< O=`+>C@oT_zvo566M91Pd&< zHC*8ck6K1%r>5S 1Q69r~Nop5ia6STxqcJ&rd62#8; Zu^fh0_lk`>Y7Nx^r72GiyT-DAFg)ug{&nzum}HZ&CTys#EyAUd$G#WbY|`d& zxaYbq;yz6hGCepU5b!GfkWnh#5u+fjocU?7a#aL^B@pL|{F+-2RxM#w|78$#*tumn za9+uH-K6w}T(rBQLFK}+-HDtmVV&{OOitAgJ 0F?A;S_}(cI_k6@1m)=G@q&<`vO@hNZEp4_o$nw8EejoEbOC zQHJcK72$Dt0oXaT4LYQf@d=8$z})X}klA(fM!80CTZ;)@R+^3! I_nwDjtKL7 zB0vDcGQkuEF{c?Yq^S$Gw=x!4)x2J2I@oet&iEY-Ph*@W_7(2L{tF#iTAGJS9^#&Y z2fy{wgzA+U0_i3ZO5VcHg=uiJVtN27d?mpDei1lO+zKG{xQq@M^^xgT1`egdudsOT zK{|MFhz6=z&H_|>L!e*|R~bP80EF*Bn1pu_gpd|0R*3`rDnV&G0w0eh-0eo>9=JgQ z2ep89bL9#A@Nxn0a`%;(sP2@=sedc|4ZZ)j(iqJh7*mN1rK;or-UYJ5dwvF26}VRt znc=@6C-6@QH@u1aUG6geQ4?e)xNG81Ff?3|`<|jb%N^XxN_q$We~ho_Jy4774jf}= zxC8&@R{nb?_&DJp^*^b
2 zB>;fx9$2jUUyuR#$EgQCHnw}vx(OVTCi`P*1OGqocZdVcss} u$9X1MtsM5qRDE19S7d8-1NO&D|9IeJBb5 zP~Owy^S%RLHPQqBJk)~kRTTFizvMe8qmd5y=eZ2L @Wcr?d>sY9fcGejtJhG-IIIVgdj-AOATz F{Rc_uT_ykk delta 40101 zcmXVX<6|9e({vhJC$??dwr$(iX>?+ =EoOC4O){~lJWubI=;sm#*96mq6WXv)r1OF7 z?LNed${_;{9|XkS+(%$g4-l-M_ma(L!@+6-(1-07&h*Qi3A=mF(#qXYqL3YXgF*68 z5D(* nwNtBww!zmXFbgr+KUsT&BNvP3@W=*#Y(&*xuPqHq(0bi-?no$~- zq3Z(;YyGv8Xz0K}s7}l}Z26(?IlSXt{;tJ*_p%bUHX?F-8F1BCHP_QMU@e@>!Mgy8 zkOevp?(>^}gJc7|lq}r}Q(<6*DmaI-pL4^*+fjvjt>`DdiaZSL5zK`Q={GPimv1Qx z KC%3?j} C|upaY77 zclHkB0?sS(8%%&EIXVZc&^!MJpf~a-LK?c!?DUUMt6tu{>94o fn( J{>DpDs)RKjjom>)CyAq7rOP8iCK4>OP)S^ zOY9lbgB?ht6nTpST}@i>OTPLs%>OCtmL8GLdqzuq{p 6T9oQP-^&YWkd z2~9BKBAp*<0yzi)F|fSEKAr<3mQ6yNJ5Nx<6%IJT!*tjbEwMl1qA9uOdWh5FpVfYh zkm0N+7Cbsn9-4jAjySYoAYCj^eHR^_-JUj#wC$wL`(P-VzFb=BLud4Q@YASb+?*_m z0Dd`#5EQZ5!ha%`My(3(;ytTyrK1S7q!EV?El%Yx#BK6p#DHYpP!FK~LVxwmdbaz> zV;Hy~sV52A%~Ia#ozAWfhLuSYg8xKTy_d1R*C8>n(R@r+gknp+Dv}X~KFcZJLheK( zefJ^jySoPq-Amfw>Aw|{5;~d`s{8CS79Qpi_dG