From f24e295fc062035cfe07fb68452f323f4aff5f24 Mon Sep 17 00:00:00 2001 From: Tad Fisher Date: Fri, 17 May 2024 17:50:06 -0700 Subject: [PATCH] Dogfood v2 --- app/build.gradle.kts | 1 - app/src/dist/share/gradle.nix | 292 ++ .../main/kotlin/org/nixos/gradle2nix/Main.kt | 49 +- default.nix | 11 +- flake.lock | 27 +- flake.nix | 17 +- gradle-env.nix | 453 --- gradle.lock | 3292 +++++++++++++++++ gradle.nix | 292 ++ gradle/libs.versions.toml | 16 +- gradle2nix.nix | 41 + 11 files changed, 3992 insertions(+), 499 deletions(-) create mode 100644 app/src/dist/share/gradle.nix delete mode 100644 gradle-env.nix create mode 100644 gradle.lock create mode 100644 gradle.nix create mode 100644 gradle2nix.nix diff --git a/app/build.gradle.kts b/app/build.gradle.kts index d3a29e1..3140c14 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -21,7 +21,6 @@ dependencies { isTransitive = false } - //testRuntimeOnly(kotlin("reflect")) testImplementation(libs.kotest.assertions) testImplementation(libs.kotest.runner) testImplementation(libs.ktor.server.core) diff --git a/app/src/dist/share/gradle.nix b/app/src/dist/share/gradle.nix new file mode 100644 index 0000000..dba9916 --- /dev/null +++ b/app/src/dist/share/gradle.nix @@ -0,0 +1,292 @@ +# This file is generated by gradle2nix. +# +# Example usage (e.g. in default.nix): +# +# with (import {}); +# let +# buildGradle = callPackage ./gradle.nix {}; +# in +# buildGradle { +# lockFile = ./gradle.lock; +# +# src = ./.; +# +# gradleFlags = [ "installDist" ]; +# +# installPhase = '' +# mkdir -p $out +# cp -r app/build/install/myproject $out +# ''; +# } + +{ lib +, stdenv +, buildEnv +, fetchs3 +, fetchurl +, gradle +, maven +, runCommandLocal +, symlinkJoin +, writeText +, writeTextDir +}: + +{ + # Path to the lockfile generated by gradle2nix (e.g. gradle.lock). + lockFile +, pname ? "project" +, version ? null +, enableParallelBuilding ? true +# Arguments to Gradle used to build the project in buildPhase. +, gradleFlags ? [ "build" ] +# Enable debugging for the Gradle build; this will cause Gradle to run a debug server +# and wait for a JVM debugging client to attach. +, enableDebug ? false +# Additional code to run in the Gradle init script (init.gradle). +, extraInit ? "" +# Override the default JDK used to run Gradle itself. +, buildJdk ? null +# Override functions which fetch dependency artifacts. +# Keys in this set are URL schemes such as "https" or "s3". +# Values are functions which take a dependency in the form +# `{ urls, hash }` and fetch into the Nix store. For example: +# +# { +# s3 = { name, urls, hash }: fetchs3 { +# s3url = builtins.head urls; +# # TODO This doesn't work without patching fetchs3 to accept SRI hashes +# inherit name hash; +# region = "us-west-2"; +# credentials = { +# access_key_id = "foo"; +# secret_access_key = "bar"; +# }; +# }; +# } +, fetchers ? { } +, ... } @ args: + +let + inherit (builtins) + attrValues concatStringsSep elemAt filter fromJSON getAttr hasAttr head length match + removeAttrs replaceStrings sort; + + inherit (lib) + assertMsg concatMapStringsSep findFirst foldl' groupBy' hasSuffix hasPrefix last mapAttrs + mapAttrsToList optionalAttrs optionalString readFile removeSuffix unique versionAtLeast + versionOlder; + + inherit (lib.strings) sanitizeDerivationName; + + lockedDeps = fromJSON (readFile lockFile); + + toCoordinates = id: + let + coords = builtins.split ":" id; + in rec { + group = elemAt coords 0; + module = elemAt coords 2; + version = elemAt coords 4; + versionParts = parseVersion version; + }; + + parseVersion = version: + let + parts = builtins.split ":" version; + base = elemAt parts 0; + in + { + inherit base; + exact = base; + } + // optionalAttrs (length parts >= 2) ( + let + snapshot = elemAt parts 2; + exact = replaceStrings [ "-SNAPSHOT" ] [ "-${snapshot}" ] base; + parts = builtins.split "-" timestamp; + timestamp = findFirst (match "[0-9]{8}\.[0-9]{6}") parts; + buildNumber = let lastPart = last parts; in if match "[0-9]+" lastPart then lastPart else null; + in + { inherit snapshot exact timestamp buildNumber; } + ); + + fetchers' = { + http = fetchurl; + https = fetchurl; + } // fetchers; + + # Fetch urls using the scheme for the first entry only; there isn't a + # straightforward way to tell Nix to try multiple fetchers in turn + # and short-circuit on the first successful fetch. + fetch = name: { urls, hash }: + let + first = head urls; + scheme = head (builtins.match "([a-z0-9+.-]+)://.*" first); + fetch' = getAttr scheme fetchers'; + urls' = filter (hasPrefix scheme) urls; + in + fetch' { urls = urls'; inherit hash; }; + + mkModule = id: artifacts: + let + coords = toCoordinates id; + modulePath = "${replaceStrings ["."] ["/"] coords.group}/${coords.module}/${coords.version}"; + in + stdenv.mkDerivation { + pname = sanitizeDerivationName "${coords.group}-${coords.module}"; + version = coords.versionParts.exact; + + srcs = mapAttrsToList fetch artifacts; + + dontPatch = true; + dontConfigure = true; + dontBuild = true; + dontFixup = true; + dontInstall = true; + + preUnpack = '' + mkdir -p "$out/${modulePath}" + ''; + + unpackCmd = '' + cp "$curSrc" "$out/${modulePath}/$(stripHash "$curSrc")" + ''; + + sourceRoot = "."; + + preferLocalBuild = true; + allowSubstitutes = false; + }; + + offlineRepo = symlinkJoin { + name = if version != null then "${pname}-${version}-gradle-repo" else "${pname}-gradle-repo"; + paths = mapAttrsToList mkModule lockedDeps; + }; + + initScript = + let + inSettings = pred: script: + optionalString pred ( + if versionAtLeast gradle.version "6.0" then '' + gradle.beforeSettings { + ${script} + } + '' else '' + gradle.settingsEvaluated { + ${script} + } + '' + ); + in + writeText "init.gradle" '' + static def offlineRepo(RepositoryHandler repositories) { + repositories.clear() + repositories.mavenLocal { + url 'file:${offlineRepo}' + metadataSources { + gradleMetadata() + mavenPom() + artifact() + } + } + } + + ${inSettings (versionAtLeast gradle.version "6.0") '' + offlineRepo(it.buildscript.repositories) + ''} + + ${inSettings true '' + offlineRepo(it.pluginManagement.repositories) + ''} + + gradle.projectsLoaded { + allprojects { + buildscript { + offlineRepo(repositories) + } + } + } + + ${if versionAtLeast gradle.version "6.8" + then '' + gradle.beforeSettings { + it.dependencyResolutionManagement { + offlineRepo(repositories) + repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS) + } + } + '' + else '' + gradle.projectsLoaded { + allprojects { + offlineRepo(repositories) + } + } + '' + } + + ${extraInit} + ''; + + buildProject = flags: '' + gradle --offline --no-daemon --no-build-cache \ + --info --full-stacktrace --warning-mode=all \ + --no-configuration-cache \ + -Dmaven.repo.local=${offlineRepo} \ + ${optionalString enableParallelBuilding "--parallel"} \ + ${optionalString enableDebug "-Dorg.gradle.debug=true"} \ + ${optionalString (buildJdk != null) "-Dorg.gradle.java.home=${buildJdk.home}"} \ + --init-script ${initScript} \ + ${concatStringsSep " " flags} + ''; + +in stdenv.mkDerivation ({ + + dontStrip = true; + + nativeBuildInputs = (args.nativeBuildInputs or []) ++ [ gradle ]; + + buildPhase = args.buildPhase or '' + runHook preBuild + + ( + set -eux + + ${optionalString (versionOlder gradle.version "8.0") '' + # Work around https://github.com/gradle/gradle/issues/1055 + TMPHOME="$(mktemp -d)" + mkdir -p "$TMPHOME/init.d" + export GRADLE_USER_HOME="$TMPHOME" + cp ${initScript} $TMPHOME/ + ''} + + gradle --offline --no-daemon --no-build-cache \ + --info --full-stacktrace --warning-mode=all \ + --no-configuration-cache --console=plain \ + -Dmaven.repo.local=${offlineRepo} \ + ${optionalString enableParallelBuilding "--parallel"} \ + ${optionalString enableDebug "-Dorg.gradle.debug=true"} \ + ${optionalString (buildJdk != null) "-Dorg.gradle.java.home=${buildJdk.home}"} \ + --init-script ${initScript} \ + ${concatStringsSep " " gradleFlags} + ) + + runHook postBuild + ''; + + passthru = (args.passthru or {}) // { + inherit offlineRepo; + }; + +} // (removeAttrs args [ + "nativeBuildInputs" + "passthru" + "lockFile" + "gradleFlags" + "gradle" + "enableDebug" + "extraInit" + "buildJdk" + "fetchers" +])) diff --git a/app/src/main/kotlin/org/nixos/gradle2nix/Main.kt b/app/src/main/kotlin/org/nixos/gradle2nix/Main.kt index 6e81f0a..c0074c0 100644 --- a/app/src/main/kotlin/org/nixos/gradle2nix/Main.kt +++ b/app/src/main/kotlin/org/nixos/gradle2nix/Main.kt @@ -2,7 +2,7 @@ package org.nixos.gradle2nix import com.github.ajalt.clikt.core.CliktCommand import com.github.ajalt.clikt.core.context -import com.github.ajalt.clikt.output.CliktHelpFormatter +import com.github.ajalt.clikt.output.MordantHelpFormatter import com.github.ajalt.clikt.parameters.arguments.argument import com.github.ajalt.clikt.parameters.arguments.multiple import com.github.ajalt.clikt.parameters.options.default @@ -10,7 +10,6 @@ import com.github.ajalt.clikt.parameters.options.flag import com.github.ajalt.clikt.parameters.options.multiple import com.github.ajalt.clikt.parameters.options.option import com.github.ajalt.clikt.parameters.options.validate -import com.github.ajalt.clikt.parameters.types.choice import com.github.ajalt.clikt.parameters.types.enum import com.github.ajalt.clikt.parameters.types.file import java.io.File @@ -69,14 +68,20 @@ class Gradle2Nix : CliktCommand( help = "Path to write generated files (default: PROJECT-DIR)") .file(canBeFile = false, canBeDir = true) - val envFile: String by option( - "--env", "-e", + val lockFile: String by option( + "--lock-file", "-l", metavar = "FILENAME", - help = "Prefix for environment files (.json and .nix)") - .default("gradle-env") + help = "Name of the generated lock file" + ).default("gradle.lock") + + val nixFile: String by option( + "--nix-file", "-n", + metavar = "FILENAME", + help = "Name of the generated Nix file" + ).default("gradle.nix") private val logLevel: LogLevel by option( - "--log", "-l", + "--log", metavar = "LEVEL", help = "Print messages with priority of at least LEVEL") .enum() @@ -118,22 +123,20 @@ class Gradle2Nix : CliktCommand( init { context { - helpFormatter = CliktHelpFormatter(showDefaultValues = true) + helpFormatter = { MordantHelpFormatter(it, showDefaultValues = true) } } } @OptIn(ExperimentalSerializationApi::class) override fun run() { - val appHome = System.getProperty("org.nixos.gradle2nix.share") - if (appHome == null) { - System.err.println("Error: could not locate the /share directory in the gradle2nix installation") - } - val gradleHome = - System.getenv("GRADLE_USER_HOME")?.let(::File) ?: File("${System.getProperty("user.home")}/.gradle") val logger = Logger(logLevel = logLevel, stacktrace = stacktrace) + val appHome = System.getProperty("org.nixos.gradle2nix.share")?.let(::File) + ?: error("could not locate the /share directory in the gradle2nix installation") + val gradleHome = + System.getenv("GRADLE_USER_HOME")?.let(::File) ?: File("${System.getProperty("user.home")}/.gradle") val config = Config( - File(appHome), + appHome, gradleHome, gradleVersion, gradleJdk, @@ -156,6 +159,8 @@ class Gradle2Nix : CliktCommand( } else { metadata.deleteOnExit() } + } else { + metadata.deleteOnExit() } val buildSrcs = connect(config).use { connection -> @@ -187,11 +192,19 @@ class Gradle2Nix : CliktCommand( logger.error("dependency parsing failed", e) } - val json = config.outDir.resolve("$envFile.json") - logger.info("Writing environment to $json") - json.outputStream().buffered().use { output -> + config.outDir.mkdirs() + + val outLockFile = config.outDir.resolve(lockFile) + logger.info("Writing lock file to $outLockFile") + outLockFile.outputStream().buffered().use { output -> JsonFormat.encodeToStream(env, output) } + + val inNixFile = config.appHome.resolve("gradle.nix").takeIf { it.exists() } + ?: error("Couldn't locate gradle.nix in the the gradle2nix installation: ${config.appHome}") + val outNixFile = config.outDir.resolve(nixFile) + logger.info("Writing Nix builder to $outNixFile") + inNixFile.copyTo(outNixFile, overwrite = true) } } diff --git a/default.nix b/default.nix index 9371914..6e568fb 100644 --- a/default.nix +++ b/default.nix @@ -3,10 +3,12 @@ with pkgs; let - buildGradle = callPackage ./gradle-env.nix {}; + buildGradle = callPackage ./gradle.nix {}; gradle2nix = buildGradle { - envSpec = ./gradle-env.json; + pname = "gradle2nix"; + version = "2.0.0"; + lockFile = ./gradle.lock; src = lib.cleanSourceWith { filter = lib.cleanSourceFilter; @@ -35,7 +37,4 @@ let }; }; -in buildGradle { - envSpec = ./gradle-env.json; - pname = "gradle2nix"; -} +in gradle2nix diff --git a/flake.lock b/flake.lock index b754bf5..cda6dde 100644 --- a/flake.lock +++ b/flake.lock @@ -1,15 +1,29 @@ { "nodes": { + "flake-compat": { + "locked": { + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "revCount": 57, + "type": "tarball", + "url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.0.1/018afb31-abd1-7bff-a5e4-cff7e18efb7a/source.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz" + } + }, "flake-utils": { "inputs": { "systems": "systems" }, "locked": { - "lastModified": 1701680307, - "narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=", + "lastModified": 1710146030, + "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", "owner": "numtide", "repo": "flake-utils", - "rev": "4022d587cbbfd70fe950c1e2083a02621806a725", + "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", "type": "github" }, "original": { @@ -20,11 +34,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1702855317, - "narHash": "sha256-5EXeUkoWvrfbZQQLVRn7Ebb9LOt3DkVm6T0M31/VhtM=", + "lastModified": 1715954240, + "narHash": "sha256-eC0zRYkazBc2cKz1VSzMLvCc9uHXlSQEr1Be+c5UV1w=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "3a16c6447466f4034c2d75fe7014477142c9513e", + "rev": "c2ea18b50a4c7fcb7c90402166769bf3b82b5aa9", "type": "github" }, "original": { @@ -36,6 +50,7 @@ }, "root": { "inputs": { + "flake-compat": "flake-compat", "flake-utils": "flake-utils", "nixpkgs": "nixpkgs" } diff --git a/flake.nix b/flake.nix index 38c1c52..23fbc87 100644 --- a/flake.nix +++ b/flake.nix @@ -2,20 +2,25 @@ description = "Wrap Gradle builds with Nix"; inputs = { + flake-compat.url = "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz"; flake-utils.url = "github:numtide/flake-utils"; nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable-small"; }; - outputs = { self, flake-utils, nixpkgs }: + outputs = { self, flake-utils, nixpkgs, ... }: flake-utils.lib.eachDefaultSystem (system: - let pkgs = nixpkgs.legacyPackages.${system}; - in rec { - packages.gradle2nix = import ./default.nix { inherit pkgs; }; - defaultPackage = packages.gradle2nix; + let + pkgs = nixpkgs.legacyPackages.${system}; + buildGradle = pkgs.callPackage ./gradle.nix {}; + + in { + packages.default = pkgs.callPackage ./gradle2nix.nix { + inherit buildGradle; + }; apps.default = { type = "app"; - program = "${packages.gradle2nix}/bin/gradle2nix"; + program = "${self.packages.gradle2nix}/bin/gradle2nix"; }; }); } diff --git a/gradle-env.nix b/gradle-env.nix deleted file mode 100644 index 9aa69c6..0000000 --- a/gradle-env.nix +++ /dev/null @@ -1,453 +0,0 @@ -# This file is generated by gradle2nix. -# -# Example usage (e.g. in default.nix): -# -# with (import {}); -# let -# buildGradle = callPackage ./gradle-env.nix {}; -# in -# buildGradle { -# envSpec = ./gradle-env.json; -# -# src = ./.; -# -# gradleFlags = [ "installDist" ]; -# -# installPhase = '' -# mkdir -p $out -# cp -r app/build/install/myproject $out -# ''; -# } - -{ lib -, stdenv -, buildEnv -, fetchs3 -, fetchurl -, gradleGen -, maven -, runCommandLocal -, symlinkJoin -, writeText -, writeTextDir -}: - -{ - # Path to the environment spec generated by gradle2nix (e.g. gradle-env.json). - envSpec -, pname ? "project" -, version ? null -, enableParallelBuilding ? true -# Arguments to Gradle used to build the project in buildPhase. -, gradleFlags ? [ "build" ] -# Gradle package to use instead of the one generated by gradle2nix. -, gradlePackage ? null -# Enable debugging for the Gradle build; this will cause Gradle to run a debug server -# and wait for a JVM debugging client to attach. -, enableDebug ? false -# Additional code to run in the Gradle init script (init.gradle). -, extraInit ? "" -# Override the default JDK used to run Gradle itself. -, buildJdk ? null -# Override functions which fetch dependency artifacts. -# Keys in this set are URL schemes such as "https" or "s3". -# Values are functions which take a dependency in the form -# `{ urls, sha256 }` and fetch into the Nix store. For example: -# -# { -# s3 = { name, urls, hash }: fetchs3 { -# s3url = builtins.head urls; -# # TODO This doesn't work without patching fetchs3 to accept SRI hashes -# inherit name hash; -# region = "us-west-2"; -# credentials = { -# access_key_id = "foo"; -# secret_access_key = "bar"; -# }; -# }; -# } -, fetchers ? { } -, ... } @ args: - -let - inherit (builtins) - attrValues concatStringsSep elemAt filter fromJSON getAttr hasAttr head length match - replaceStrings sort; - - inherit (lib) - assertMsg concatMapStringsSep foldl' groupBy' hasSuffix hasPrefix last mapAttrs - mapAttrsToList optionalAttrs optionalString readFile removeSuffix unique versionAtLeast - versionOlder; - - inherit (lib.strings) sanitizeDerivationName; - - toCoordinates = id: - let - coords = builtins.split ":" id; - in { - group = elemAt coords 0; - module = elemAt coords 2; - }; - - parseVersion = version: - let - parts = builtins.split ":" version; - base = elemAt parts 0; - in - { - inherit base; - exact = base; - } - // optionalAttrs (length parts >= 2) ( - let - snapshot = elemAt parts 2; - exact = replaceStrings [ "-SNAPSHOT" ] [ "-${snapshot}" ] base; - parts = builtins.split "-" timestamp; - timestamp = findFirst (match "[0-9]{8}\.[0-9]{6}") parts; - buildNumber = let lastPart = last parts; in if match "[0-9]+" lastPart then lastPart else null; - in - { inherit snapshot exact timestamp buildNumber; } - ); - - snapshotVersion = { revision, snapshot ? null, ... }: - if snapshot == null - then revision - else replaceStrings ["SNAPSHOT"] [snapshot] revision; - - fetchers' = { - http = fetchurl; - https = fetchurl; - } // fetchers; - - # Fetch urls using the scheme for the first entry only; there isn't a - # straightforward way to tell Nix to try multiple fetchers in turn - # and short-circuit on the first successful fetch. - fetch = _: { urls, hash }: - let - first = head urls; - scheme = head (builtins.match "([a-z0-9+.-]+)://.*" first); - fetch' = getAttr scheme fetchers'; - urls' = filter (hasPrefix scheme) urls; - in - fetch' { urls = urls'; inherit hash; }; - - mkModuleMetadata = deps: - let - metadata = group: module: versions: - let - latest = foldl' - (l: v: if l == null || versionOlder l v then v else l) - null - versions; - - release = foldl' - (l: v: if !(hasSuffix "-SNAPSHOT" v) && (l == null || versionOlder l v) then v else l) - null - versions; - - path = "${replaceStrings ["."] ["/"] group}/${module}/maven-metadata.xml"; - - in - writeTextDir path '' - - - ${group} - ${module} - - ${optionalString (latest != null) "${latest}"} - ${optionalString (release != null) "${release}"} - - ${concatMapStringsSep "\n " (v: "${v}") versions} - - - - ''; - - groupedModules = groupBy - ({ organisation, module, ... }: "${organisation}:${module}") - (mapAttrsToList (_: dep: dep.attrs) deps); - - in - map - - - # mkSnapshotMetadata = { group, module }: version: artifacts: - # let - # versions' = filter (hasAttr "timestamp") versions; - - - # in - # map ({ base, exact, snapshot, timestamp, buildNumber }: - - # ) versions'; - - mkModule = { attrs, artifacts }: - let - modulePath = "${replaceStrings ["."] ["/"] attrs.orgPath}/${attrs.module}/${attrs.revision}"; - in - stdenv.mkDerivation { - pname = "${attrs.group}-${attrs.module}"; - version = snapshotVersion attrs.revision; - - srcs = mapAttrsToList fetch artifacts; - - dontPatch = true; - dontConfigure = true; - dontBuild = true; - dontFixup = true; - dontInstall = true; - - preUnpack = '' - mkdir -p "$out/${modulePath}" - ''; - - unpackCmd = '' - cp "$curSrc" "$out/${modulePath}/$(stripHash "$curSrc")" - ''; - - sourceRoot = "."; - - preferLocalBuild = true; - allowSubstitutes = false; - }; - - mkModules = deps: - mapAttrsToList (_: m: mkModule m) deps; - - # mkSnapshotMetadata = deps: - # let - # snapshotDeps = filter (dep: dep ? build && dep ? timestamp) deps; - - # modules = groupBy' - # (meta: dep: - # let - # id = dep.id; - # isNewer = dep.build > meta.buildNumber; - # # Timestamp values can be bogus, e.g. jitpack.io - # updated = if (match "[0-9]{8}\.[0-9]{6}" dep.timestamp) != null - # then replaceStrings ["."] [""] dep.timestamp - # else ""; - # in { - # groupId = id.group; - # artifactId = id.name; - # version = id.version; - # timestamp = if isNewer then dep.timestamp else meta.timestamp; - # buildNumber = if isNewer then dep.build else meta.buildNumber; - # lastUpdated = if isNewer then updated else meta.lastUpdated; - # versions = meta.versions or [] ++ [{ - # classifier = id.classifier or ""; - # extension = id.extension; - # value = "${removeSuffix "-SNAPSHOT" id.version}-${dep.timestamp}-${toString dep.build}"; - # updated = updated; - # }]; - # } - # ) - # { - # timestamp = ""; - # buildNumber = -1; - # lastUpdated = ""; - # } - # (dep: "${replaceStrings ["."] ["/"] dep.id.group}/${dep.id.name}/${dep.id.version}/maven-metadata.xml") - # snapshotDeps; - - # mkSnapshotVersion = version: '' - # - # ${optionalString (version.classifier != "") "${version.classifier}"} - # ${version.extension} - # ${version.value} - # ${optionalString (version.updated != "") "${version.updated}"} - # - # ''; - - # in - # attrValues (mapAttrs (path: meta: - # with meta; writeTextDir path '' - # - # - # ${groupId} - # ${artifactId} - # ${version} - # - # - # ${optionalString (timestamp != "") "${timestamp}"} - # ${optionalString (buildNumber != -1) "${toString buildNumber}"} - # - # ${optionalString (lastUpdated != "") "${lastUpdated}"} - # - # ${concatMapStringsSep "\n " mkSnapshotVersion versions} - # - # - # - # '' - # ) modules); - - mkRepo = name: deps: symlinkJoin { - name = "${name}-gradle-repo"; - paths = mkModules deps ++ mkModuleMetadata deps ++ mkSnapshotMetadata deps; - }; - - mkInitScript = projectSpec: gradle: - let - repos = mapAttrs (mkRepo projectSpec.name) projectSpec.dependencies; - hasDependencies = mapAttrs (type: deps: deps != []) projectSpec.dependencies; - - inSettings = pred: script: - optionalString pred ( - if versionAtLeast gradle.version "6.0" then '' - gradle.beforeSettings { - ${script} - } - '' else '' - gradle.settingsEvaluated { - ${script} - } - '' - ); - in - assert (assertMsg (hasDependencies.settings -> versionAtLeast gradle.version "6.0") '' - Project `${projectSpec.name}' has settings script dependencies, such as settings - plugins, which are not supported by gradle2nix for Gradle versions prior to 6.0. - - Potential remedies: - - Pass `--gradle-version=' to the gradle2nix command. - - Patch the `settings.gradle[.kts]' file to remove script dependencies. - ''); - - writeText "init.gradle" '' - static def offlineRepo(RepositoryHandler repositories, String env, String path) { - repositories.clear() - repositories.maven { - name "Nix''${env.capitalize()}Offline" - url path - metadataSources { - it.gradleMetadata() - it.mavenPom() - it. - } - } - repositories.ivy { - name "Nix''${env.capitalize()}IvyOffline" - url path - layout "maven" - metadataSources { - it.gradleMetadata() - it.ivyDescriptor() - } - } - } - - ${inSettings (hasDependencies.settings && (versionAtLeast gradle.version "6.0")) '' - offlineRepo(it.buildscript.repositories, "settings", "${repos.settings}") - ''} - - ${inSettings (hasDependencies.plugin) '' - offlineRepo(it.pluginManagement.repositories, "plugin", "${repos.plugin}") - ''} - - ${optionalString (hasDependencies.buildscript) '' - gradle.projectsLoaded { - allprojects { - buildscript { - offlineRepo(repositories, "buildscript", "${repos.buildscript}") - } - } - } - ''} - - ${optionalString (hasDependencies.project) ( - if versionAtLeast gradle.version "6.8" - then '' - gradle.beforeSettings { - it.dependencyResolutionManagement { - offlineRepo(repositories, "project", "${repos.project}") - repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS) - } - } - '' - else '' - gradle.projectsLoaded { - allprojects { - offlineRepo(repositories, "project", "${repos.project}") - } - } - '' - )} - - ${extraInit} - ''; - - mkGradle = gradleSpec: - gradleGen.gradleGen { - inherit (gradleSpec) nativeVersion; - - name = "gradle-${gradleSpec.version}-${gradleSpec.type}"; - - src = fetchurl { - inherit (gradleSpec) url sha256; - }; - } // { - inherit (gradleSpec) version; - }; - - mkProjectEnv = projectSpec: rec { - inherit (projectSpec) name path version; - gradle = args.gradlePackage or mkGradle projectSpec.gradle; - initScript = mkInitScript projectSpec gradle; - }; - - gradleEnv = mapAttrs - (_: p: mkProjectEnv p) - (fromJSON (readFile envSpec)); - - projectEnv = gradleEnv.""; - pname = args.pname or projectEnv.name; - version = args.version or projectEnv.version; - - buildProject = env: flags: '' - cp ${env.initScript} "$GRADLE_USER_HOME/init.d" - - gradle --offline --no-daemon --no-build-cache \ - --info --full-stacktrace --warning-mode=all \ - ${optionalString enableParallelBuilding "--parallel"} \ - ${optionalString enableDebug "-Dorg.gradle.debug=true"} \ - ${optionalString (buildJdk != null) "-Dorg.gradle.java.home=${buildJdk.home}"} \ - --init-script ${env.initScript} \ - ${optionalString (env.path != "") ''-p "${env.path}"''} \ - ${concatStringsSep " " flags} - ''; - - buildIncludedProjects = - concatStringsSep "\n" (mapAttrsToList - (_: env: buildProject env [ "build" ]) - (removeAttrs gradleEnv [ "" ])); - - buildRootProject = buildProject projectEnv gradleFlags; - - # in stdenv.mkDerivation (args // { - - # inherit pname version; - - # nativeBuildInputs = (args.nativeBuildInputs or []) ++ [ projectEnv.gradle ]; - - # buildPhase = args.buildPhase or '' - # runHook preBuild - - # ( - # set -eux - - # # Work around https://github.com/gradle/gradle/issues/1055 - # TMPHOME="$(mktemp -d)" - # mkdir -p "$TMPHOME/init.d" - # export GRADLE_USER_HOME="$TMPHOME" - - # ${buildIncludedProjects} - # ${buildRootProject} - # ) - - # runHook postBuild - # ''; - - # dontStrip = true; - # }) - -in mkRepo pname (fromJSON (readFile envSpec)) diff --git a/gradle.lock b/gradle.lock new file mode 100644 index 0000000..0964060 --- /dev/null +++ b/gradle.lock @@ -0,0 +1,3292 @@ +{ + "com.fasterxml:oss-parent:48": { + "oss-parent-48.pom": { + "urls": [ + "https://plugins.gradle.org/m2/com/fasterxml/oss-parent/48/oss-parent-48.pom" + ], + "hash": "sha256-EbuiLYYxgW4JtiOiAHR0U9ZJGmbqyPXAicc9ordJAU8=" + } + }, + "com.fasterxml.jackson:jackson-bom:2.14.1": { + "jackson-bom-2.14.1.pom": { + "urls": [ + "https://plugins.gradle.org/m2/com/fasterxml/jackson/jackson-bom/2.14.1/jackson-bom-2.14.1.pom" + ], + "hash": "sha256-eP35nlBQ/EhfQRfauMzL+2+mxoOF6184oJtlU3HUpsw=" + } + }, + "com.fasterxml.jackson:jackson-parent:2.14": { + "jackson-parent-2.14.pom": { + "urls": [ + "https://plugins.gradle.org/m2/com/fasterxml/jackson/jackson-parent/2.14/jackson-parent-2.14.pom" + ], + "hash": "sha256-CQat2FWuOfkjV9Y/SFiJsI/KTEOl/kM1ItdTROB1exk=" + } + }, + "com.github.ajalt:colormath:1.2.0": { + "colormath-1.2.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/github/ajalt/colormath/1.2.0/colormath-1.2.0.jar" + ], + "hash": "sha256-hqUffbsyq+QQ1UMx7GGsBoSlQ7JO6Xlnu6wKTmcp8DE=" + }, + "colormath-1.2.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/github/ajalt/colormath/1.2.0/colormath-1.2.0.pom" + ], + "hash": "sha256-a3EKjQoQu+PgV5Xvf03ux3j9eQBbDBvA5cF4Ae5r3Z0=" + } + }, + "com.github.ajalt:mordant:1.2.1": { + "mordant-1.2.1.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/github/ajalt/mordant/1.2.1/mordant-1.2.1.jar" + ], + "hash": "sha256-enFOuNJbTZun8lalTHVZzKh9heyQ1pQ98ZE8rUPbldY=" + }, + "mordant-1.2.1.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/github/ajalt/mordant/1.2.1/mordant-1.2.1.pom" + ], + "hash": "sha256-8DLcV/gHnB9WJvvF8PZfz14SNA3ictgpsLVOkpeacro=" + } + }, + "com.github.ajalt.clikt:clikt:4.4.0": { + "clikt-4.4.0.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/github/ajalt/clikt/clikt/4.4.0/clikt-4.4.0.module" + ], + "hash": "sha256-Z84+Rk1+r4GaBRQVd6IERrjkWbfk6RqCzoh7WKiOrWg=" + }, + "clikt-4.4.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/github/ajalt/clikt/clikt/4.4.0/clikt-4.4.0.pom" + ], + "hash": "sha256-lrjYoujSS0misWTzN9LnAW3aiURAFFgNv/R4nilVZGk=" + } + }, + "com.github.ajalt.clikt:clikt-jvm:4.4.0": { + "clikt-jvm-4.4.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/github/ajalt/clikt/clikt-jvm/4.4.0/clikt-jvm-4.4.0.jar" + ], + "hash": "sha256-3UJMfEETwRTvwQPaP6uCzL7nSElwEpwHZKRXi1hnc3E=" + }, + "clikt-jvm-4.4.0.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/github/ajalt/clikt/clikt-jvm/4.4.0/clikt-jvm-4.4.0.module" + ], + "hash": "sha256-+7VuRAdirxrynHnd26lK40PX+e8ha6m57IjMkaxhoMs=" + }, + "clikt-jvm-4.4.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/github/ajalt/clikt/clikt-jvm/4.4.0/clikt-jvm-4.4.0.pom" + ], + "hash": "sha256-EsmrEMyQ/YPRPASDj5a8q/NksORNjdJ65V4VLGMxPA4=" + } + }, + "com.github.ajalt.colormath:colormath:3.5.0": { + "colormath-3.5.0.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/github/ajalt/colormath/colormath/3.5.0/colormath-3.5.0.module" + ], + "hash": "sha256-WgMLkC+VqHlsIUX2sppgwpeNxmQR4I6miLT7eK6p7wk=" + }, + "colormath-3.5.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/github/ajalt/colormath/colormath/3.5.0/colormath-3.5.0.pom" + ], + "hash": "sha256-HZZBrdkDXN1gex2qgJ7sFks8m6zFTysQOFHu1FHRefc=" + } + }, + "com.github.ajalt.colormath:colormath-jvm:3.5.0": { + "colormath-jvm-3.5.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/github/ajalt/colormath/colormath-jvm/3.5.0/colormath-jvm-3.5.0.jar" + ], + "hash": "sha256-Q5NdsGVYtKrD3ZAKd1vj6JtUyfSIYBRX3yfSoXQxZ7A=" + }, + "colormath-jvm-3.5.0.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/github/ajalt/colormath/colormath-jvm/3.5.0/colormath-jvm-3.5.0.module" + ], + "hash": "sha256-51pnwJ14NuUBlxvoNHiCxmFpsgcn3S4sQjmT8VLuAns=" + }, + "colormath-jvm-3.5.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/github/ajalt/colormath/colormath-jvm/3.5.0/colormath-jvm-3.5.0.pom" + ], + "hash": "sha256-YGXSHOrrGuPcE0P00XWKWojHTj5hwg60TUknp8G3MtY=" + } + }, + "com.github.ajalt.mordant:mordant:2.5.0": { + "mordant-2.5.0.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/github/ajalt/mordant/mordant/2.5.0/mordant-2.5.0.module" + ], + "hash": "sha256-KMoVBsOzOqA5GK9FWSHfiv49oLtN3O5sezdOAG3g4bY=" + }, + "mordant-2.5.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/github/ajalt/mordant/mordant/2.5.0/mordant-2.5.0.pom" + ], + "hash": "sha256-CM7jeOmaKfiAw1DUfe6R2H1ypc75WfaoysEd2FYT4VU=" + } + }, + "com.github.ajalt.mordant:mordant-jvm:2.5.0": { + "mordant-jvm-2.5.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/github/ajalt/mordant/mordant-jvm/2.5.0/mordant-jvm-2.5.0.jar" + ], + "hash": "sha256-E9wdFUB0kM+j6bxUAQ8DHWpcUrc100FcxxRPC0aAqtc=" + }, + "mordant-jvm-2.5.0.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/github/ajalt/mordant/mordant-jvm/2.5.0/mordant-jvm-2.5.0.module" + ], + "hash": "sha256-HDNjczAEy0z54b/mT9xjIiW8dTXVbrhxApdGf8V7wK8=" + }, + "mordant-jvm-2.5.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/github/ajalt/mordant/mordant-jvm/2.5.0/mordant-jvm-2.5.0.pom" + ], + "hash": "sha256-095n7fFjX1ytZvkcVnXx+IfJDTuVlPfngQUgfxK04F0=" + } + }, + "com.github.johnrengelman:shadow:8.1.1": { + "shadow-8.1.1.jar": { + "urls": [ + "https://plugins.gradle.org/m2/com/github/johnrengelman/shadow/8.1.1/shadow-8.1.1.jar" + ], + "hash": "sha256-CEGXVVWQpTuyG1lQijMwVZ9TbdtEjq/R7GdfVGIDb88=" + }, + "shadow-8.1.1.module": { + "urls": [ + "https://plugins.gradle.org/m2/com/github/johnrengelman/shadow/8.1.1/shadow-8.1.1.module" + ], + "hash": "sha256-nQ87SqpniYcj6vbF6c0nOHj5V03azWSqNwJDYgzgLko=" + }, + "shadow-8.1.1.pom": { + "urls": [ + "https://plugins.gradle.org/m2/com/github/johnrengelman/shadow/8.1.1/shadow-8.1.1.pom" + ], + "hash": "sha256-Mu55f8hDI3xM5cSeX0FSxYoIlK/OCg6SY25qLU/JjDU=" + } + }, + "com.github.johnrengelman.shadow:com.github.johnrengelman.shadow.gradle.plugin:8.1.1": { + "com.github.johnrengelman.shadow.gradle.plugin-8.1.1.pom": { + "urls": [ + "https://plugins.gradle.org/m2/com/github/johnrengelman/shadow/com.github.johnrengelman.shadow.gradle.plugin/8.1.1/com.github.johnrengelman.shadow.gradle.plugin-8.1.1.pom" + ], + "hash": "sha256-PLOIa5ffbgZvEIwxayGfJiyXw8st9tp4kn5kXetkPLA=" + } + }, + "com.gradle.plugin-publish:com.gradle.plugin-publish.gradle.plugin:1.2.1": { + "com.gradle.plugin-publish.gradle.plugin-1.2.1.pom": { + "urls": [ + "https://plugins.gradle.org/m2/com/gradle/plugin-publish/com.gradle.plugin-publish.gradle.plugin/1.2.1/com.gradle.plugin-publish.gradle.plugin-1.2.1.pom" + ], + "hash": "sha256-60lBRA8TGZbmT6SCDc264js95UhBi6ke9MY0pqcfVMs=" + } + }, + "com.gradle.publish:plugin-publish-plugin:1.2.1": { + "plugin-publish-plugin-1.2.1.jar": { + "urls": [ + "https://plugins.gradle.org/m2/com/gradle/publish/plugin-publish-plugin/1.2.1/plugin-publish-plugin-1.2.1.jar" + ], + "hash": "sha256-KY8MLpeVMhcaBaQWAyY3M7ZfiRE9ToCczQ4mmQFJ3hg=" + }, + "plugin-publish-plugin-1.2.1.module": { + "urls": [ + "https://plugins.gradle.org/m2/com/gradle/publish/plugin-publish-plugin/1.2.1/plugin-publish-plugin-1.2.1.module" + ], + "hash": "sha256-w98uuag1ZdO2MVDYa0344o9mG1XOzdRJJ+RpMxA2yxk=" + }, + "plugin-publish-plugin-1.2.1.pom": { + "urls": [ + "https://plugins.gradle.org/m2/com/gradle/publish/plugin-publish-plugin/1.2.1/plugin-publish-plugin-1.2.1.pom" + ], + "hash": "sha256-E6X+iu2+Rs/b6hLp/NcJemKygqpqtMkIZWuWzpoqX6M=" + } + }, + "com.squareup.okio:okio:3.9.0": { + "okio-3.9.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/squareup/okio/okio/3.9.0/okio-3.9.0.jar" + ], + "hash": "sha256-5RilmFYnOh/OGKx9E938aQ3vphItflzQDK4Zti0DR9k=" + }, + "okio-3.9.0.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/squareup/okio/okio/3.9.0/okio-3.9.0.module" + ], + "hash": "sha256-aNHIef9liTHQKzrb6vu1EuFjwgqQyt8H2QyNvqfnYhA=" + }, + "okio-3.9.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/squareup/okio/okio/3.9.0/okio-3.9.0.pom" + ], + "hash": "sha256-FPNR2puXtDaeP26PaWsK1ANtFNIbD9l6pcjG7BW+fZA=" + } + }, + "com.squareup.okio:okio-jvm:3.9.0": { + "okio-jvm-3.9.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/squareup/okio/okio-jvm/3.9.0/okio-jvm-3.9.0.jar" + ], + "hash": "sha256-3cOG/xS9JdXJNBZxlur0WxjeTyjhxVpNs3rllMv9N+Q=" + }, + "okio-jvm-3.9.0.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/squareup/okio/okio-jvm/3.9.0/okio-jvm-3.9.0.module" + ], + "hash": "sha256-z5coTsYbtR5t/Lx/K22VVsm3s+PLIswOLU8O7782GVs=" + }, + "okio-jvm-3.9.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/squareup/okio/okio-jvm/3.9.0/okio-jvm-3.9.0.pom" + ], + "hash": "sha256-VEiNRUqsyvaPcZnz3l3Ns4CBblfUYJBJF06FZSAROH4=" + } + }, + "com.typesafe:config:1.4.3": { + "config-1.4.3.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/typesafe/config/1.4.3/config-1.4.3.jar" + ], + "hash": "sha256-itpMGFznJBZxLWPgta/cXwCcDN9AXl8m7+zfFWql37Y=" + }, + "config-1.4.3.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/com/typesafe/config/1.4.3/config-1.4.3.pom" + ], + "hash": "sha256-tn6vqd0iD/h9ANumiACDpSlqXgxsAxA/XUuOHaEDD/M=" + } + }, + "commons-io:commons-io:2.11.0": { + "commons-io-2.11.0.jar": { + "urls": [ + "https://plugins.gradle.org/m2/commons-io/commons-io/2.11.0/commons-io-2.11.0.jar" + ], + "hash": "sha256-lhsvbYfbrMXVSr9Fq3puJJX4m3VZiWLYxyPOqbwhCQg=" + }, + "commons-io-2.11.0.pom": { + "urls": [ + "https://plugins.gradle.org/m2/commons-io/commons-io/2.11.0/commons-io-2.11.0.pom" + ], + "hash": "sha256-LgFv1+MkS18sIKytg02TqkeQSG7h5FZGQTYaPoMe71k=" + } + }, + "io.fabric8:kubernetes-client-bom:5.12.2": { + "kubernetes-client-bom-5.12.2.pom": { + "urls": [ + "https://plugins.gradle.org/m2/io/fabric8/kubernetes-client-bom/5.12.2/kubernetes-client-bom-5.12.2.pom" + ], + "hash": "sha256-6qA8FpVlaNVKa6Q31J1Ay/DdjpOXf5hDGCQldrZQvDs=" + } + }, + "io.github.classgraph:classgraph:4.8.172": { + "classgraph-4.8.172.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/github/classgraph/classgraph/4.8.172/classgraph-4.8.172.jar" + ], + "hash": "sha256-wWseIxpziZL3KVC1Jc774FSkCP9kLsy7IcrdVHCgXyI=" + }, + "classgraph-4.8.172.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/github/classgraph/classgraph/4.8.172/classgraph-4.8.172.pom" + ], + "hash": "sha256-gD2mlHTiB6oi/xnshXE3MGrU4ahz4V98Xv0sqer9W74=" + } + }, + "io.github.java-diff-utils:java-diff-utils:4.12": { + "java-diff-utils-4.12.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/github/java-diff-utils/java-diff-utils/4.12/java-diff-utils-4.12.jar" + ], + "hash": "sha256-mZCiA5d49rTMlHkBQcKGiGTqzuBiDGxFlFESGpAc1bU=" + }, + "java-diff-utils-4.12.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/github/java-diff-utils/java-diff-utils/4.12/java-diff-utils-4.12.pom" + ], + "hash": "sha256-wm4JftyOxoBdExmBfSPU5JbMEBXMVdxSAhEtj2qRZfw=" + } + }, + "io.github.java-diff-utils:java-diff-utils-parent:4.12": { + "java-diff-utils-parent-4.12.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/github/java-diff-utils/java-diff-utils-parent/4.12/java-diff-utils-parent-4.12.pom" + ], + "hash": "sha256-2BHPnxGMwsrRMMlCetVcF01MCm8aAKwa4cm8vsXESxk=" + } + }, + "io.github.pdvrieze.xmlutil:core:0.86.3": { + "core-0.86.3.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/github/pdvrieze/xmlutil/core/0.86.3/core-0.86.3.jar" + ], + "hash": "sha256-ikZHG7Y7PHhzlsu6WqL2TU4zOgOSAiRBrhIRHn5yjJE=" + }, + "core-0.86.3.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/github/pdvrieze/xmlutil/core/0.86.3/core-0.86.3.module" + ], + "hash": "sha256-MzlXsdCR2LrPqwYCCGgi+a2S9hMCy3Ru8g4Z9nprTbk=" + }, + "core-0.86.3.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/github/pdvrieze/xmlutil/core/0.86.3/core-0.86.3.pom" + ], + "hash": "sha256-ngeyUCJI+U7AYn9Wsn3wiBySBCrfzoCg35oa6sQWg4M=" + } + }, + "io.github.pdvrieze.xmlutil:core-jvm:0.86.3": { + "core-jvm-0.86.3.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/github/pdvrieze/xmlutil/core-jvm/0.86.3/core-jvm-0.86.3.jar" + ], + "hash": "sha256-kVJ9hv6gS9YYPRQKCfENqy3qcnrxLSfZFl7jQuo9Dt4=" + }, + "core-jvm-0.86.3.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/github/pdvrieze/xmlutil/core-jvm/0.86.3/core-jvm-0.86.3.module" + ], + "hash": "sha256-FgIJExZWo2dDGWXYAYk7J3fuguD3ZmaD+nXE+Wck/wc=" + }, + "core-jvm-0.86.3.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/github/pdvrieze/xmlutil/core-jvm/0.86.3/core-jvm-0.86.3.pom" + ], + "hash": "sha256-oBGIoPlVW1s7nZLlQz242AJ6vjleD/cIBRU+8v6qf4U=" + } + }, + "io.github.pdvrieze.xmlutil:serialization-jvm:0.86.3": { + "serialization-jvm-0.86.3.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/github/pdvrieze/xmlutil/serialization-jvm/0.86.3/serialization-jvm-0.86.3.jar" + ], + "hash": "sha256-nOJz3LhguSpb8uw2rR4qEbQa7YnGyYTKc+h+/17aG9A=" + }, + "serialization-jvm-0.86.3.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/github/pdvrieze/xmlutil/serialization-jvm/0.86.3/serialization-jvm-0.86.3.module" + ], + "hash": "sha256-3ppDm3mA++bMPDS8rZyEqIMVmdyHZNceD2c93Ho91Jo=" + }, + "serialization-jvm-0.86.3.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/github/pdvrieze/xmlutil/serialization-jvm/0.86.3/serialization-jvm-0.86.3.pom" + ], + "hash": "sha256-OX1XqPVTaUEf7HRETH1NTLaeyYANUkSTrGHekJIl4wc=" + } + }, + "io.kotest:kotest-assertions-api:5.9.0": { + "kotest-assertions-api-5.9.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-assertions-api/5.9.0/kotest-assertions-api-5.9.0.jar" + ], + "hash": "sha256-JmNIEcOE+VRVVMJUBfLZCMEaeupal1mZM/gsAIRsVAg=" + }, + "kotest-assertions-api-5.9.0.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-assertions-api/5.9.0/kotest-assertions-api-5.9.0.module" + ], + "hash": "sha256-qFQu4m/P0+8yxm5e3mjeuvjql90heZH0HSAje7UpT4U=" + }, + "kotest-assertions-api-5.9.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-assertions-api/5.9.0/kotest-assertions-api-5.9.0.pom" + ], + "hash": "sha256-GjEMzEBJd0cpFIPrOwUMbIle7KTONzPwHdkkZ6ZV8sw=" + } + }, + "io.kotest:kotest-assertions-api-jvm:5.9.0": { + "kotest-assertions-api-jvm-5.9.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-assertions-api-jvm/5.9.0/kotest-assertions-api-jvm-5.9.0.jar" + ], + "hash": "sha256-Sv9MqD6SBssjiDJd+HKXb1GekloGlJSr7CkuwxFMDQk=" + }, + "kotest-assertions-api-jvm-5.9.0.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-assertions-api-jvm/5.9.0/kotest-assertions-api-jvm-5.9.0.module" + ], + "hash": "sha256-XITlW45flkCcy1pCoS3ElCbl1ucWSnMy3wy4wrK21L4=" + }, + "kotest-assertions-api-jvm-5.9.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-assertions-api-jvm/5.9.0/kotest-assertions-api-jvm-5.9.0.pom" + ], + "hash": "sha256-1g6ynf1tj7NSGYTX+sJaE0AHFHa7ceksV1X70VpaZzY=" + } + }, + "io.kotest:kotest-assertions-core:5.9.0": { + "kotest-assertions-core-5.9.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-assertions-core/5.9.0/kotest-assertions-core-5.9.0.jar" + ], + "hash": "sha256-+uWJ9I5hs7uiaHvvMbbneu2Ji6dswFU3rdFQ7pSsmkY=" + }, + "kotest-assertions-core-5.9.0.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-assertions-core/5.9.0/kotest-assertions-core-5.9.0.module" + ], + "hash": "sha256-p3KZqaKYbphakO0KsWd0pzMPeu/CUnOT3E1HeNPI4sM=" + }, + "kotest-assertions-core-5.9.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-assertions-core/5.9.0/kotest-assertions-core-5.9.0.pom" + ], + "hash": "sha256-qvu+DMIo9BTt2Va2lHINRZLna47v+MiK211RRQRhu7o=" + } + }, + "io.kotest:kotest-assertions-core-jvm:5.9.0": { + "kotest-assertions-core-jvm-5.9.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-assertions-core-jvm/5.9.0/kotest-assertions-core-jvm-5.9.0.jar" + ], + "hash": "sha256-TIngmms4JoES/eJqC1LvVLsXhDtBv9IV958s9M3QJ4w=" + }, + "kotest-assertions-core-jvm-5.9.0.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-assertions-core-jvm/5.9.0/kotest-assertions-core-jvm-5.9.0.module" + ], + "hash": "sha256-OinQMJG5EyNIVgv1DKJKzEvBzIq+MGE8y/5alzt/F48=" + }, + "kotest-assertions-core-jvm-5.9.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-assertions-core-jvm/5.9.0/kotest-assertions-core-jvm-5.9.0.pom" + ], + "hash": "sha256-pmgjeAvzFo5CAqPmg6PWZ1K5yg4aaqx4FL/mng155NU=" + } + }, + "io.kotest:kotest-assertions-shared:5.9.0": { + "kotest-assertions-shared-5.9.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-assertions-shared/5.9.0/kotest-assertions-shared-5.9.0.jar" + ], + "hash": "sha256-EoSglpgVz7PTk/TOTF2tW1Dc1wvxN4h78MA0yqIVYeE=" + }, + "kotest-assertions-shared-5.9.0.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-assertions-shared/5.9.0/kotest-assertions-shared-5.9.0.module" + ], + "hash": "sha256-KK3K96Q94fICNFI+4csorIc7ztp2VESW8cU1NF2gCJM=" + }, + "kotest-assertions-shared-5.9.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-assertions-shared/5.9.0/kotest-assertions-shared-5.9.0.pom" + ], + "hash": "sha256-IGd1Qmuhf36c1WjpZMWGMMNCt2c67pNPIiFVLNDwBww=" + } + }, + "io.kotest:kotest-assertions-shared-jvm:5.9.0": { + "kotest-assertions-shared-jvm-5.9.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-assertions-shared-jvm/5.9.0/kotest-assertions-shared-jvm-5.9.0.jar" + ], + "hash": "sha256-b9wtfMr8N1c/rhZ/hOMditN/2DHArXclPzDbuyedJlY=" + }, + "kotest-assertions-shared-jvm-5.9.0.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-assertions-shared-jvm/5.9.0/kotest-assertions-shared-jvm-5.9.0.module" + ], + "hash": "sha256-VGmhRQo07HywKyDjaY3dkHYsEVH6tba/RlWXlrl4OAs=" + }, + "kotest-assertions-shared-jvm-5.9.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-assertions-shared-jvm/5.9.0/kotest-assertions-shared-jvm-5.9.0.pom" + ], + "hash": "sha256-VQxkW4k0LR9iU/CXo+CzdyLsOTFxctB+E02E7A8IxKY=" + } + }, + "io.kotest:kotest-common:5.9.0": { + "kotest-common-5.9.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-common/5.9.0/kotest-common-5.9.0.jar" + ], + "hash": "sha256-DGXHvQS/2EX3Lt6hmNrNtLWyBebrIbnsgzSvYMZNpfU=" + }, + "kotest-common-5.9.0.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-common/5.9.0/kotest-common-5.9.0.module" + ], + "hash": "sha256-lqW8WbrWuITytzfvAR+ytKiZW+NO9eTnDSw99nKoh4M=" + }, + "kotest-common-5.9.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-common/5.9.0/kotest-common-5.9.0.pom" + ], + "hash": "sha256-LGnqBsbRBz1dH/ruD2wS3Lv6W8qOYXgbi8QNi2t+BzY=" + } + }, + "io.kotest:kotest-common-jvm:5.9.0": { + "kotest-common-jvm-5.9.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-common-jvm/5.9.0/kotest-common-jvm-5.9.0.jar" + ], + "hash": "sha256-yLAfI5/3kmxV/2oDYRqXpWSdWS6a0GqhBPM9RJR2uIg=" + }, + "kotest-common-jvm-5.9.0.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-common-jvm/5.9.0/kotest-common-jvm-5.9.0.module" + ], + "hash": "sha256-uWwklcyvr/yACGF+Sk7NRBmR/tU8QyGhECjxxIspgLE=" + }, + "kotest-common-jvm-5.9.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-common-jvm/5.9.0/kotest-common-jvm-5.9.0.pom" + ], + "hash": "sha256-DJw4J3/CngNTIDXkXDgi3C4B4yC9lPysTGsxMUIJAhM=" + } + }, + "io.kotest:kotest-extensions:5.9.0": { + "kotest-extensions-5.9.0.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-extensions/5.9.0/kotest-extensions-5.9.0.module" + ], + "hash": "sha256-mr4zuEi4bBoBg3YOreTLxF1OEvxEySCz+Dnn6A146rs=" + }, + "kotest-extensions-5.9.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-extensions/5.9.0/kotest-extensions-5.9.0.pom" + ], + "hash": "sha256-r36/K79pkmBmSLcdzJdHqDG43LML6A/hCfMDgOf1veU=" + } + }, + "io.kotest:kotest-extensions-jvm:5.9.0": { + "kotest-extensions-jvm-5.9.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-extensions-jvm/5.9.0/kotest-extensions-jvm-5.9.0.jar" + ], + "hash": "sha256-Mb5rCyZdL3cS0KdeaOQv6wuOYV+r8BkInn+/5Zc04dA=" + }, + "kotest-extensions-jvm-5.9.0.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-extensions-jvm/5.9.0/kotest-extensions-jvm-5.9.0.module" + ], + "hash": "sha256-BOtQGGme33ZRDZkDA3UZf1+XLUhkfrBNVr4B2EgdTkU=" + }, + "kotest-extensions-jvm-5.9.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-extensions-jvm/5.9.0/kotest-extensions-jvm-5.9.0.pom" + ], + "hash": "sha256-6eDaRU1z0/8r4unJOC2QiGFdpHmLjeu6d71tQ0bOa9I=" + } + }, + "io.kotest:kotest-framework-api:5.9.0": { + "kotest-framework-api-5.9.0.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-framework-api/5.9.0/kotest-framework-api-5.9.0.module" + ], + "hash": "sha256-aGM5P0GVr+lxcVUTl0jDYdWU7KIlL+zs2qZQFg2moXI=" + }, + "kotest-framework-api-5.9.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-framework-api/5.9.0/kotest-framework-api-5.9.0.pom" + ], + "hash": "sha256-DR9H1blAce2rfDWIUeqSozNx5xpjl2AZiLf9cZEZCAs=" + } + }, + "io.kotest:kotest-framework-api-jvm:5.9.0": { + "kotest-framework-api-jvm-5.9.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-framework-api-jvm/5.9.0/kotest-framework-api-jvm-5.9.0.jar" + ], + "hash": "sha256-2SRLxofIOCISZyWzynZ25FZEemBRIQ4lF1z4qyDAtCM=" + }, + "kotest-framework-api-jvm-5.9.0.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-framework-api-jvm/5.9.0/kotest-framework-api-jvm-5.9.0.module" + ], + "hash": "sha256-losVlXIzbDC3+cKX/PvrfRyPgg6u1lx8d6TLMznY7WI=" + }, + "kotest-framework-api-jvm-5.9.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-framework-api-jvm/5.9.0/kotest-framework-api-jvm-5.9.0.pom" + ], + "hash": "sha256-+M0upKNYQEr5M+QjsDDRT5bGVfO+fqryE9H9cywekwg=" + } + }, + "io.kotest:kotest-framework-concurrency:5.9.0": { + "kotest-framework-concurrency-5.9.0.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-framework-concurrency/5.9.0/kotest-framework-concurrency-5.9.0.module" + ], + "hash": "sha256-3X24UL0kQmjOFPnvo70y25AKgbmAW5TYJCSnWJIDxB0=" + }, + "kotest-framework-concurrency-5.9.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-framework-concurrency/5.9.0/kotest-framework-concurrency-5.9.0.pom" + ], + "hash": "sha256-ML0NEgw6Tr0BJp5gw3CrNhStctHDX3/qq+/lDSlVC7I=" + } + }, + "io.kotest:kotest-framework-concurrency-jvm:5.9.0": { + "kotest-framework-concurrency-jvm-5.9.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-framework-concurrency-jvm/5.9.0/kotest-framework-concurrency-jvm-5.9.0.jar" + ], + "hash": "sha256-B5txinLAdedCmHOz+VGoVROoA2xeOnbd3ocWEPKbd7U=" + }, + "kotest-framework-concurrency-jvm-5.9.0.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-framework-concurrency-jvm/5.9.0/kotest-framework-concurrency-jvm-5.9.0.module" + ], + "hash": "sha256-p8YMX+xNYGBE50UAR+JfoGITADC4xYDfDikqYBWzTbQ=" + }, + "kotest-framework-concurrency-jvm-5.9.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-framework-concurrency-jvm/5.9.0/kotest-framework-concurrency-jvm-5.9.0.pom" + ], + "hash": "sha256-xoO5KKNSADRo0j5ZQOnEJEjpknBpfEu8pHOavXSLDbc=" + } + }, + "io.kotest:kotest-framework-discovery:5.9.0": { + "kotest-framework-discovery-5.9.0.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-framework-discovery/5.9.0/kotest-framework-discovery-5.9.0.module" + ], + "hash": "sha256-L+Hiv5t/+eBNzZXjEI7jtfFURkTgZAP7lLkHZIOVCUA=" + }, + "kotest-framework-discovery-5.9.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-framework-discovery/5.9.0/kotest-framework-discovery-5.9.0.pom" + ], + "hash": "sha256-ts05NMKO1qZRr4RysuNqOuQMRWldI7As5JE7IULEgnE=" + } + }, + "io.kotest:kotest-framework-discovery-jvm:5.9.0": { + "kotest-framework-discovery-jvm-5.9.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-framework-discovery-jvm/5.9.0/kotest-framework-discovery-jvm-5.9.0.jar" + ], + "hash": "sha256-miiiFNkV20R5bwZcHP+7s8I2uJtqazg5UFjYCrg+ggM=" + }, + "kotest-framework-discovery-jvm-5.9.0.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-framework-discovery-jvm/5.9.0/kotest-framework-discovery-jvm-5.9.0.module" + ], + "hash": "sha256-7Xaj5/OnkkcbTUm+u+5pKPGEU0gLopHp5yBJlgAASCE=" + }, + "kotest-framework-discovery-jvm-5.9.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-framework-discovery-jvm/5.9.0/kotest-framework-discovery-jvm-5.9.0.pom" + ], + "hash": "sha256-sGGEOZMEvWc0UeszHyP3aqPtPf1dpMeb8dbiIb2MjFs=" + } + }, + "io.kotest:kotest-framework-engine:5.9.0": { + "kotest-framework-engine-5.9.0.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-framework-engine/5.9.0/kotest-framework-engine-5.9.0.module" + ], + "hash": "sha256-gZN/CF6jy3S1hxETTtC7VsDymc/DFz27IUVCrMyVJxc=" + }, + "kotest-framework-engine-5.9.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-framework-engine/5.9.0/kotest-framework-engine-5.9.0.pom" + ], + "hash": "sha256-xBA8Jfhv52zZKiA1irX1jbAUMtcKuBphBChd2MW998U=" + } + }, + "io.kotest:kotest-framework-engine-jvm:5.9.0": { + "kotest-framework-engine-jvm-5.9.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-framework-engine-jvm/5.9.0/kotest-framework-engine-jvm-5.9.0.jar" + ], + "hash": "sha256-h6Dxzb4o39OyLp5GgSEzCx1zPdoFwkTvhs/ZHaoWYlU=" + }, + "kotest-framework-engine-jvm-5.9.0.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-framework-engine-jvm/5.9.0/kotest-framework-engine-jvm-5.9.0.module" + ], + "hash": "sha256-ESmBvZzHXpTgQAm6W7dkWm8AeVEwU79W72QiUnSoBDs=" + }, + "kotest-framework-engine-jvm-5.9.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-framework-engine-jvm/5.9.0/kotest-framework-engine-jvm-5.9.0.pom" + ], + "hash": "sha256-v8ljQokqqX+yqFM+r+m1elKQlQdCH6sw2K71m5QpGpI=" + } + }, + "io.kotest:kotest-runner-junit5:5.9.0": { + "kotest-runner-junit5-5.9.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-runner-junit5/5.9.0/kotest-runner-junit5-5.9.0.jar" + ], + "hash": "sha256-CJ4kQXv59sNO7Fcg7rssvMguooVezvkBM+sX4QedWGg=" + }, + "kotest-runner-junit5-5.9.0.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-runner-junit5/5.9.0/kotest-runner-junit5-5.9.0.module" + ], + "hash": "sha256-AfB70s+KHo+Z+dDmSpQ7X6cxE//szocwqMQ08nZSgvc=" + }, + "kotest-runner-junit5-5.9.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-runner-junit5/5.9.0/kotest-runner-junit5-5.9.0.pom" + ], + "hash": "sha256-xeE4b8vdz+kKt18wWVnzltXRxu7l2y/549Ik8QVsmpM=" + } + }, + "io.kotest:kotest-runner-junit5-jvm:5.9.0": { + "kotest-runner-junit5-jvm-5.9.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-runner-junit5-jvm/5.9.0/kotest-runner-junit5-jvm-5.9.0.jar" + ], + "hash": "sha256-dpV0ADmfVaJBZFgUGfKj0H9yfEiwPcOXLiV24YdH6iI=" + }, + "kotest-runner-junit5-jvm-5.9.0.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-runner-junit5-jvm/5.9.0/kotest-runner-junit5-jvm-5.9.0.module" + ], + "hash": "sha256-v6MTM0BhaveK/YqdH3bwAQ02Wx6GE2DWpzMqowrKy4s=" + }, + "kotest-runner-junit5-jvm-5.9.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/kotest/kotest-runner-junit5-jvm/5.9.0/kotest-runner-junit5-jvm-5.9.0.pom" + ], + "hash": "sha256-wuOpHya7dfndAfMnW8E5OL6Lp3KEIBwbov4DODC2xKo=" + } + }, + "io.ktor:ktor-events:2.3.11": { + "ktor-events-2.3.11.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-events/2.3.11/ktor-events-2.3.11.jar" + ], + "hash": "sha256-qfTivW7ALrt5prOcEEr++k281IA7ufrV2e1XCTRX8G0=" + }, + "ktor-events-2.3.11.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-events/2.3.11/ktor-events-2.3.11.module" + ], + "hash": "sha256-YScMYk6JE8UBLw87YF0ThAlwNl+5JOw8fuO0hLxTWXY=" + }, + "ktor-events-2.3.11.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-events/2.3.11/ktor-events-2.3.11.pom" + ], + "hash": "sha256-hcFsb/+tI+3auG+gJU68tB7hhOh9M3Va41ITctMZ8ug=" + } + }, + "io.ktor:ktor-events-jvm:2.3.11": { + "ktor-events-jvm-2.3.11.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-events-jvm/2.3.11/ktor-events-jvm-2.3.11.jar" + ], + "hash": "sha256-92Dmk7tpaq9srFhEXFI2hY0QzXwVCErCDHp1Ba50kac=" + }, + "ktor-events-jvm-2.3.11.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-events-jvm/2.3.11/ktor-events-jvm-2.3.11.module" + ], + "hash": "sha256-HW+ysABOvT9w8g0YdMXRR9zcSn4pjM1ogdM/msx9tkE=" + }, + "ktor-events-jvm-2.3.11.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-events-jvm/2.3.11/ktor-events-jvm-2.3.11.pom" + ], + "hash": "sha256-nssYQanQ3FgvP+/Yl7vKKpqntHd69GbL65epV0IHdAY=" + } + }, + "io.ktor:ktor-http:2.3.11": { + "ktor-http-2.3.11.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-http/2.3.11/ktor-http-2.3.11.jar" + ], + "hash": "sha256-9PADOhT6whJBqLu+HFzxkzvRA+3I6eJ37j7gwcvTRkI=" + }, + "ktor-http-2.3.11.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-http/2.3.11/ktor-http-2.3.11.module" + ], + "hash": "sha256-UBgBa5qlACv5oFBoGsFuBRp/uICUhPFWnvdqFpxKKiU=" + }, + "ktor-http-2.3.11.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-http/2.3.11/ktor-http-2.3.11.pom" + ], + "hash": "sha256-tw7Nks9eqraVRQQDQ19SvqCDJe1VtNKDM1FN0diI0Dc=" + } + }, + "io.ktor:ktor-http-cio:2.3.11": { + "ktor-http-cio-2.3.11.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-http-cio/2.3.11/ktor-http-cio-2.3.11.module" + ], + "hash": "sha256-/lHSv+0gYTxLvcY4yT1X1ZmldFlXloNtjO7Zybep+n8=" + }, + "ktor-http-cio-2.3.11.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-http-cio/2.3.11/ktor-http-cio-2.3.11.pom" + ], + "hash": "sha256-p4wT0HqIQfw3MAGgGVPYKT2YDL972n81+FR3+1Ya+RA=" + } + }, + "io.ktor:ktor-http-cio-jvm:2.3.11": { + "ktor-http-cio-jvm-2.3.11.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-http-cio-jvm/2.3.11/ktor-http-cio-jvm-2.3.11.jar" + ], + "hash": "sha256-bIKoW5GMwAsSSn2w9HTtOH8FFIpCKWgQWG7lkTRNDn8=" + }, + "ktor-http-cio-jvm-2.3.11.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-http-cio-jvm/2.3.11/ktor-http-cio-jvm-2.3.11.module" + ], + "hash": "sha256-HzV2/lizf5nFj9TuJFmgRmiEoeWTw9Qb5/2/wQ5STtU=" + }, + "ktor-http-cio-jvm-2.3.11.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-http-cio-jvm/2.3.11/ktor-http-cio-jvm-2.3.11.pom" + ], + "hash": "sha256-vy9Vnf0Mx1NzkCGv7nlbr8U3U8ajWIiGa2J0Fg3stdY=" + } + }, + "io.ktor:ktor-http-jvm:2.3.11": { + "ktor-http-jvm-2.3.11.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-http-jvm/2.3.11/ktor-http-jvm-2.3.11.jar" + ], + "hash": "sha256-BQMz4biz/zBwvjIW4fPuePqdZQrI0hEEHQW/SCWbTfY=" + }, + "ktor-http-jvm-2.3.11.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-http-jvm/2.3.11/ktor-http-jvm-2.3.11.module" + ], + "hash": "sha256-BIraZkNbJkbTFrDOjX+aXfau8yuP1KEQ6vaPiqI8zII=" + }, + "ktor-http-jvm-2.3.11.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-http-jvm/2.3.11/ktor-http-jvm-2.3.11.pom" + ], + "hash": "sha256-CI9yJI9u5cZPW8Wa4i6MzE5ZqDVZ7U89ZGy9vtUDqIU=" + } + }, + "io.ktor:ktor-io:2.3.11": { + "ktor-io-2.3.11.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-io/2.3.11/ktor-io-2.3.11.jar" + ], + "hash": "sha256-skZKEoTyY57muhpCVDIsxUsFMmWHpG+AFUy9tXAYC7I=" + }, + "ktor-io-2.3.11.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-io/2.3.11/ktor-io-2.3.11.module" + ], + "hash": "sha256-RvrHp728UxfkD6bGYZpMUr7X02JaNP2kWRjDyq04r2A=" + }, + "ktor-io-2.3.11.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-io/2.3.11/ktor-io-2.3.11.pom" + ], + "hash": "sha256-lFDUN7vjB58G5wAePQmaH2l7Fc7UWO8BorXFd1cVrPI=" + } + }, + "io.ktor:ktor-io-jvm:2.3.11": { + "ktor-io-jvm-2.3.11.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-io-jvm/2.3.11/ktor-io-jvm-2.3.11.jar" + ], + "hash": "sha256-nJt0vx7xFuSybVyUUJoFd7yhQPgwqAzz9S0kVM0BEhs=" + }, + "ktor-io-jvm-2.3.11.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-io-jvm/2.3.11/ktor-io-jvm-2.3.11.module" + ], + "hash": "sha256-EIlmqdlJzZRN/9MqUTc0pPKJyCRGt4nACmopTWM7ER8=" + }, + "ktor-io-jvm-2.3.11.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-io-jvm/2.3.11/ktor-io-jvm-2.3.11.pom" + ], + "hash": "sha256-mbL5+MkKES6IVeY55AE+jXlYxCD8UVGq1iha3NdD0Ak=" + } + }, + "io.ktor:ktor-network:2.3.11": { + "ktor-network-2.3.11.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-network/2.3.11/ktor-network-2.3.11.module" + ], + "hash": "sha256-SlUAXFfLaTqLMK+eWk302ojX/kU93TRlvWsJEAkmbCw=" + }, + "ktor-network-2.3.11.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-network/2.3.11/ktor-network-2.3.11.pom" + ], + "hash": "sha256-eV7oO+aNHBYV/JibHkjPGNbeNvWK9vBb/7QjtOnsC18=" + } + }, + "io.ktor:ktor-network-jvm:2.3.11": { + "ktor-network-jvm-2.3.11.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-network-jvm/2.3.11/ktor-network-jvm-2.3.11.jar" + ], + "hash": "sha256-9njugGQUgEV28XM5R2Lg4busruMHOaBI1Oy0g4fe5GY=" + }, + "ktor-network-jvm-2.3.11.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-network-jvm/2.3.11/ktor-network-jvm-2.3.11.module" + ], + "hash": "sha256-jrPuxh+wtawI9Xvqfr83Q/Bcim9DImLUcuVu7JsuGZU=" + }, + "ktor-network-jvm-2.3.11.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-network-jvm/2.3.11/ktor-network-jvm-2.3.11.pom" + ], + "hash": "sha256-MdRLyv4uXbBWgn3XwoxljAHVxY5NC2IsHJ0m63SpqwM=" + } + }, + "io.ktor:ktor-serialization:2.3.11": { + "ktor-serialization-2.3.11.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-serialization/2.3.11/ktor-serialization-2.3.11.jar" + ], + "hash": "sha256-I/oFsvofdMi+5JsvpNCmzRaXdvXLw7e00I5nfmr7n14=" + }, + "ktor-serialization-2.3.11.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-serialization/2.3.11/ktor-serialization-2.3.11.module" + ], + "hash": "sha256-RY1rJzbNfObY9IMGdTEbJiZbM5tYoX0nLc0RFXI8lHI=" + }, + "ktor-serialization-2.3.11.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-serialization/2.3.11/ktor-serialization-2.3.11.pom" + ], + "hash": "sha256-Cr072jnh1FQGF7zPRAO3J56g7KkUSo1q/+F/OPc8PGU=" + } + }, + "io.ktor:ktor-serialization-jvm:2.3.11": { + "ktor-serialization-jvm-2.3.11.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-serialization-jvm/2.3.11/ktor-serialization-jvm-2.3.11.jar" + ], + "hash": "sha256-TC80IiaKlf63dwx10dJ+CdAJ3Wl8m0vyb9kxczLbUD4=" + }, + "ktor-serialization-jvm-2.3.11.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-serialization-jvm/2.3.11/ktor-serialization-jvm-2.3.11.module" + ], + "hash": "sha256-9ys7vY/D7I5DSDSPQt3OUq8+Y/Cens9C5M2WkG2R1Tg=" + }, + "ktor-serialization-jvm-2.3.11.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-serialization-jvm/2.3.11/ktor-serialization-jvm-2.3.11.pom" + ], + "hash": "sha256-nVGClI7BadSZPzuAFmETNuh/2PrjgidwH1imzh/Enp8=" + } + }, + "io.ktor:ktor-server-core:2.3.11": { + "ktor-server-core-2.3.11.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-server-core/2.3.11/ktor-server-core-2.3.11.jar" + ], + "hash": "sha256-PztUA1uh8KXfyq3LoJd62JDVDEUa7iLVPvTVa1Om/O4=" + }, + "ktor-server-core-2.3.11.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-server-core/2.3.11/ktor-server-core-2.3.11.module" + ], + "hash": "sha256-9KlYTH9QBmFcpCiXTk3Tz6Rr9fgq9AgjV51bPBTHYhQ=" + }, + "ktor-server-core-2.3.11.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-server-core/2.3.11/ktor-server-core-2.3.11.pom" + ], + "hash": "sha256-111k/+joPoOX6n+cgCufGnnAjtYXzbHpj1hAzqNEVZo=" + } + }, + "io.ktor:ktor-server-core-jvm:2.3.11": { + "ktor-server-core-jvm-2.3.11.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-server-core-jvm/2.3.11/ktor-server-core-jvm-2.3.11.jar" + ], + "hash": "sha256-6mi102OoWntBxzISf3BLDpj+OqwSJSl2PYrnAEf788o=" + }, + "ktor-server-core-jvm-2.3.11.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-server-core-jvm/2.3.11/ktor-server-core-jvm-2.3.11.module" + ], + "hash": "sha256-FMtHfiKcHfwZgmJjHqajyNXVabXFm0zExQ7fM++s0DE=" + }, + "ktor-server-core-jvm-2.3.11.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-server-core-jvm/2.3.11/ktor-server-core-jvm-2.3.11.pom" + ], + "hash": "sha256-maADHI6bP1m7Bkt2pdkoD4tx19nGLtwl2hfC1E+CeeE=" + } + }, + "io.ktor:ktor-server-host-common:2.3.11": { + "ktor-server-host-common-2.3.11.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-server-host-common/2.3.11/ktor-server-host-common-2.3.11.module" + ], + "hash": "sha256-cg0+sO8u7FRrD4iq4pL0uILk+Pze6GY7D6KyiEXHt04=" + }, + "ktor-server-host-common-2.3.11.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-server-host-common/2.3.11/ktor-server-host-common-2.3.11.pom" + ], + "hash": "sha256-B8Z/z3Xv1x18tmbpWfd/dSwCj1iywfoiUHLzYhGYVqw=" + } + }, + "io.ktor:ktor-server-host-common-jvm:2.3.11": { + "ktor-server-host-common-jvm-2.3.11.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-server-host-common-jvm/2.3.11/ktor-server-host-common-jvm-2.3.11.jar" + ], + "hash": "sha256-HjvNeLHpjsoQjZJ7u1QdDZtyP7IYcm1h6Fucpq4cjis=" + }, + "ktor-server-host-common-jvm-2.3.11.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-server-host-common-jvm/2.3.11/ktor-server-host-common-jvm-2.3.11.module" + ], + "hash": "sha256-xwLIGRtpP1d1ZpHRRkZ4u6mOhtCEXQKDdiGZS+uRlTI=" + }, + "ktor-server-host-common-jvm-2.3.11.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-server-host-common-jvm/2.3.11/ktor-server-host-common-jvm-2.3.11.pom" + ], + "hash": "sha256-Gr877I0aFWryXIDK700+sC3wxIGN1CghIW2+SCeZXfQ=" + } + }, + "io.ktor:ktor-server-netty:2.3.11": { + "ktor-server-netty-2.3.11.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-server-netty/2.3.11/ktor-server-netty-2.3.11.jar" + ], + "hash": "sha256-Wkb9vED9LXglmIPEzG6vO14pDdB9HEbqiO6j1I9QV3I=" + }, + "ktor-server-netty-2.3.11.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-server-netty/2.3.11/ktor-server-netty-2.3.11.module" + ], + "hash": "sha256-LUtE8EMgnpzg9IDdZmgoSbkyOfKIIBo1UqglQd1rE30=" + }, + "ktor-server-netty-2.3.11.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-server-netty/2.3.11/ktor-server-netty-2.3.11.pom" + ], + "hash": "sha256-qxGxtuLNQMM816OjnKeeSZlw/rFhIoI3ClZfEn0kXSM=" + } + }, + "io.ktor:ktor-server-netty-jvm:2.3.11": { + "ktor-server-netty-jvm-2.3.11.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-server-netty-jvm/2.3.11/ktor-server-netty-jvm-2.3.11.jar" + ], + "hash": "sha256-+YxIUr325irKzWu54yreP13lsmM+UY7F7B2tmD1XX5E=" + }, + "ktor-server-netty-jvm-2.3.11.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-server-netty-jvm/2.3.11/ktor-server-netty-jvm-2.3.11.module" + ], + "hash": "sha256-NYOIDN8BaY3r8qB3UPuenAvD369DZCLiRZw+f31Arig=" + }, + "ktor-server-netty-jvm-2.3.11.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-server-netty-jvm/2.3.11/ktor-server-netty-jvm-2.3.11.pom" + ], + "hash": "sha256-J+fP+sEa+ugSVjyPhVozJlMEIYLAGp6UfEg/Rzme35A=" + } + }, + "io.ktor:ktor-utils:2.3.11": { + "ktor-utils-2.3.11.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-utils/2.3.11/ktor-utils-2.3.11.jar" + ], + "hash": "sha256-SJeUj4AL85YHGPuaWv9QErcht7iWZjhZWCbGstp8TiU=" + }, + "ktor-utils-2.3.11.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-utils/2.3.11/ktor-utils-2.3.11.module" + ], + "hash": "sha256-wFGiUpPmUdQIGWPVFfMxsnPBevWpKYBs88mYdisk9is=" + }, + "ktor-utils-2.3.11.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-utils/2.3.11/ktor-utils-2.3.11.pom" + ], + "hash": "sha256-pP/0keaxdRMn261KJ+UR/U4xNpR/NyD32ovBtl2Ny6M=" + } + }, + "io.ktor:ktor-utils-jvm:2.3.11": { + "ktor-utils-jvm-2.3.11.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-utils-jvm/2.3.11/ktor-utils-jvm-2.3.11.jar" + ], + "hash": "sha256-1QjohTKUyKcuVhoSkBJ97q+SdC4tgQNqa5tzyCsx7WE=" + }, + "ktor-utils-jvm-2.3.11.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-utils-jvm/2.3.11/ktor-utils-jvm-2.3.11.module" + ], + "hash": "sha256-41aI1T/NEKfizORi3PjCB81MGkOD8ZU46xU/9wogbp4=" + }, + "ktor-utils-jvm-2.3.11.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-utils-jvm/2.3.11/ktor-utils-jvm-2.3.11.pom" + ], + "hash": "sha256-H412FDKI60HeKk4U/pf7CtRtMdfUpXwHo7voHSTOTKA=" + } + }, + "io.ktor:ktor-websockets:2.3.11": { + "ktor-websockets-2.3.11.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-websockets/2.3.11/ktor-websockets-2.3.11.jar" + ], + "hash": "sha256-XdKULp+AhVyqGFXiShT3DxqHWcg3tFTplRdqPMl3QVg=" + }, + "ktor-websockets-2.3.11.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-websockets/2.3.11/ktor-websockets-2.3.11.module" + ], + "hash": "sha256-t4zNNnaq5vyJ3WfnvqhKG8Dy1Wj2dS+njB8umGelDY4=" + }, + "ktor-websockets-2.3.11.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-websockets/2.3.11/ktor-websockets-2.3.11.pom" + ], + "hash": "sha256-j87iI7x63u3+9R+IaRZJrsf3edm+JowIJ7tuiow0Nmw=" + } + }, + "io.ktor:ktor-websockets-jvm:2.3.11": { + "ktor-websockets-jvm-2.3.11.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-websockets-jvm/2.3.11/ktor-websockets-jvm-2.3.11.jar" + ], + "hash": "sha256-0DB7Dv/GNJYymcO1L1E/eM+1xWY67t6dxCS4VZtT66o=" + }, + "ktor-websockets-jvm-2.3.11.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-websockets-jvm/2.3.11/ktor-websockets-jvm-2.3.11.module" + ], + "hash": "sha256-NHCtWpjcwUnywUXqTgiQ1wY6UMd8JsXOk/fhySJqKQY=" + }, + "ktor-websockets-jvm-2.3.11.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/ktor/ktor-websockets-jvm/2.3.11/ktor-websockets-jvm-2.3.11.pom" + ], + "hash": "sha256-y26TtzMFAIabQ+RBnTzdYMa7FoD493PwfLGLAZ2S7V8=" + } + }, + "io.netty:netty-bom:4.1.86.Final": { + "netty-bom-4.1.86.Final.pom": { + "urls": [ + "https://plugins.gradle.org/m2/io/netty/netty-bom/4.1.86.Final/netty-bom-4.1.86.Final.pom" + ], + "hash": "sha256-EnFsH+ZM9b2qcETTfROq46iIIbkdR5hCDEanR2kXiv0=" + } + }, + "io.netty:netty-buffer:4.1.106.Final": { + "netty-buffer-4.1.106.Final.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/netty/netty-buffer/4.1.106.Final/netty-buffer-4.1.106.Final.jar" + ], + "hash": "sha256-1QZ72+R21jy0MpOCKDKnSafDijjBxRYQfHPSV8Ob7SE=" + }, + "netty-buffer-4.1.106.Final.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/netty/netty-buffer/4.1.106.Final/netty-buffer-4.1.106.Final.pom" + ], + "hash": "sha256-2gY34YJ9Uw2h2PQwsObNaT7Ee32qBnQrKKw02xy1RqY=" + } + }, + "io.netty:netty-codec:4.1.106.Final": { + "netty-codec-4.1.106.Final.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/netty/netty-codec/4.1.106.Final/netty-codec-4.1.106.Final.jar" + ], + "hash": "sha256-k4Y9/WkPes58JuTICP3CR4CtrUZbPNy3zj/HPEIt928=" + }, + "netty-codec-4.1.106.Final.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/netty/netty-codec/4.1.106.Final/netty-codec-4.1.106.Final.pom" + ], + "hash": "sha256-NA+IHwoS9itNCY+bcQo0fASTjV/z38wvw8pw1X7a70s=" + } + }, + "io.netty:netty-codec-http:4.1.106.Final": { + "netty-codec-http-4.1.106.Final.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/netty/netty-codec-http/4.1.106.Final/netty-codec-http-4.1.106.Final.jar" + ], + "hash": "sha256-uhd6A63Fh/pj6W8duunEb/JfWTl+o02WC0XgXQKWAm4=" + }, + "netty-codec-http-4.1.106.Final.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/netty/netty-codec-http/4.1.106.Final/netty-codec-http-4.1.106.Final.pom" + ], + "hash": "sha256-DE+4Y7F3o8Z9NhZistW8Gx43Vgubamtxfbc+lnlW2Ro=" + } + }, + "io.netty:netty-codec-http2:4.1.106.Final": { + "netty-codec-http2-4.1.106.Final.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/netty/netty-codec-http2/4.1.106.Final/netty-codec-http2-4.1.106.Final.jar" + ], + "hash": "sha256-wrgh1XpzPNZx6iqwZCACsX4KK4kATKAmxuro9Tgc+B4=" + }, + "netty-codec-http2-4.1.106.Final.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/netty/netty-codec-http2/4.1.106.Final/netty-codec-http2-4.1.106.Final.pom" + ], + "hash": "sha256-JZlznLzUACvwLSkABPTYxyvdhZ2VOyGAR7HvdW55jEY=" + } + }, + "io.netty:netty-common:4.1.106.Final": { + "netty-common-4.1.106.Final.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/netty/netty-common/4.1.106.Final/netty-common-4.1.106.Final.jar" + ], + "hash": "sha256-X/vgG9hFYXqRbeNhMBDV/aV8XraUFH040E95Hpg01cM=" + }, + "netty-common-4.1.106.Final.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/netty/netty-common/4.1.106.Final/netty-common-4.1.106.Final.pom" + ], + "hash": "sha256-4ayZMJpA1e76IEs6GBXHIcuS5K5t1UHsIoRQ2cnUgA0=" + } + }, + "io.netty:netty-handler:4.1.106.Final": { + "netty-handler-4.1.106.Final.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/netty/netty-handler/4.1.106.Final/netty-handler-4.1.106.Final.jar" + ], + "hash": "sha256-WpGa2Ittnp8IwwaZgLxlamKSagDmui2lhZqg7k4gLkQ=" + }, + "netty-handler-4.1.106.Final.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/netty/netty-handler/4.1.106.Final/netty-handler-4.1.106.Final.pom" + ], + "hash": "sha256-lhoCD6DBskT1io9MYS+egEEokLlgO/WTzmiUKaRlC0Y=" + } + }, + "io.netty:netty-parent:4.1.106.Final": { + "netty-parent-4.1.106.Final.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/netty/netty-parent/4.1.106.Final/netty-parent-4.1.106.Final.pom" + ], + "hash": "sha256-eV8c7NBEHGSvry5vEN+yHCRtRI9sQ1cFHt6mjpw+s2U=" + } + }, + "io.netty:netty-resolver:4.1.106.Final": { + "netty-resolver-4.1.106.Final.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/netty/netty-resolver/4.1.106.Final/netty-resolver-4.1.106.Final.jar" + ], + "hash": "sha256-QElYuPBZDuUmAT0BHNI1Tat4rbqtdD19RE2zOj+eq6w=" + }, + "netty-resolver-4.1.106.Final.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/netty/netty-resolver/4.1.106.Final/netty-resolver-4.1.106.Final.pom" + ], + "hash": "sha256-phbG6XmPmDwsK0BiFDvaWM8tD2mGnZ00yMJiPdZMXXc=" + } + }, + "io.netty:netty-transport:4.1.106.Final": { + "netty-transport-4.1.106.Final.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/netty/netty-transport/4.1.106.Final/netty-transport-4.1.106.Final.jar" + ], + "hash": "sha256-I+qaOQCbQenQqhUVswc6+e5NpOFsLoabWqiqnxCdQlE=" + }, + "netty-transport-4.1.106.Final.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/netty/netty-transport/4.1.106.Final/netty-transport-4.1.106.Final.pom" + ], + "hash": "sha256-qyxCFnnBmSuuT3UyvpdpbK5L9g5pbwskf/vPunrynM4=" + } + }, + "io.netty:netty-transport-classes-epoll:4.1.106.Final": { + "netty-transport-classes-epoll-4.1.106.Final.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/netty/netty-transport-classes-epoll/4.1.106.Final/netty-transport-classes-epoll-4.1.106.Final.jar" + ], + "hash": "sha256-676g9nii85R+sgC+Az7X/lUwZ+Octd9Ldp0bn8aimHI=" + }, + "netty-transport-classes-epoll-4.1.106.Final.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/netty/netty-transport-classes-epoll/4.1.106.Final/netty-transport-classes-epoll-4.1.106.Final.pom" + ], + "hash": "sha256-kancuAlsq6lJCbohCze/4/M7qjAuZXAap/4nnWlRzGc=" + } + }, + "io.netty:netty-transport-classes-kqueue:4.1.106.Final": { + "netty-transport-classes-kqueue-4.1.106.Final.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/netty/netty-transport-classes-kqueue/4.1.106.Final/netty-transport-classes-kqueue-4.1.106.Final.jar" + ], + "hash": "sha256-9o7UQlABZcajhz4HMeG2IIS0L4QtD0dmdHSA7x/Jdj4=" + }, + "netty-transport-classes-kqueue-4.1.106.Final.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/netty/netty-transport-classes-kqueue/4.1.106.Final/netty-transport-classes-kqueue-4.1.106.Final.pom" + ], + "hash": "sha256-5VnP7dwvVFIUCbLypQY8gXefTgvpcG/+2QR0B3xBHU4=" + } + }, + "io.netty:netty-transport-native-epoll:4.1.106.Final": { + "netty-transport-native-epoll-4.1.106.Final.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/netty/netty-transport-native-epoll/4.1.106.Final/netty-transport-native-epoll-4.1.106.Final.jar" + ], + "hash": "sha256-ZgOaFRY1MCriM9/Rh9kcfddzoRrM0Sc1wWU7gndOd/A=" + }, + "netty-transport-native-epoll-4.1.106.Final.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/netty/netty-transport-native-epoll/4.1.106.Final/netty-transport-native-epoll-4.1.106.Final.pom" + ], + "hash": "sha256-U51mdWvcdwISzdMD7mJMrY2xbu9KgZiyqOKEg+ljb04=" + } + }, + "io.netty:netty-transport-native-kqueue:4.1.106.Final": { + "netty-transport-native-kqueue-4.1.106.Final.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/netty/netty-transport-native-kqueue/4.1.106.Final/netty-transport-native-kqueue-4.1.106.Final.jar" + ], + "hash": "sha256-FC/1C6Wcdbv2c6bBQ53Prjy3RprbgQXcP7ZqpAVRpK4=" + }, + "netty-transport-native-kqueue-4.1.106.Final.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/netty/netty-transport-native-kqueue/4.1.106.Final/netty-transport-native-kqueue-4.1.106.Final.pom" + ], + "hash": "sha256-BuxVaGByijbJpVnBVpIl5kzOGvQPqZ7T3GdZgmHMlOs=" + } + }, + "io.netty:netty-transport-native-unix-common:4.1.106.Final": { + "netty-transport-native-unix-common-4.1.106.Final.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/netty/netty-transport-native-unix-common/4.1.106.Final/netty-transport-native-unix-common-4.1.106.Final.jar" + ], + "hash": "sha256-9S1LOMVxBmv6rpZKeGf6k38OVPtf9GfFdstlCiCoVOg=" + }, + "netty-transport-native-unix-common-4.1.106.Final.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/io/netty/netty-transport-native-unix-common/4.1.106.Final/netty-transport-native-unix-common-4.1.106.Final.pom" + ], + "hash": "sha256-h19sn7JG3Vygm8Lc/LF4wpsBxx6lE/M3jm/Osp1KCjo=" + } + }, + "it.unimi.dsi:fastutil-core:8.5.12": { + "fastutil-core-8.5.12.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/it/unimi/dsi/fastutil-core/8.5.12/fastutil-core-8.5.12.jar" + ], + "hash": "sha256-8xwg9bBjEvPV4G5hYKMuJ02BmqbOvydSiya2tcDB3xk=" + }, + "fastutil-core-8.5.12.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/it/unimi/dsi/fastutil-core/8.5.12/fastutil-core-8.5.12.pom" + ], + "hash": "sha256-g5JDu+YWEfk3uwtdmzHQyOCWx9DWeZIs9u05+Cxu4NI=" + } + }, + "jakarta.platform:jakarta.jakartaee-bom:9.0.0": { + "jakarta.jakartaee-bom-9.0.0.pom": { + "urls": [ + "https://plugins.gradle.org/m2/jakarta/platform/jakarta.jakartaee-bom/9.0.0/jakarta.jakartaee-bom-9.0.0.pom" + ], + "hash": "sha256-kZA9Ddh23sZ/i5I/EzK6cr8pWwa9OX0Y868ZMHzhos4=" + } + }, + "jakarta.platform:jakartaee-api-parent:9.0.0": { + "jakartaee-api-parent-9.0.0.pom": { + "urls": [ + "https://plugins.gradle.org/m2/jakarta/platform/jakartaee-api-parent/9.0.0/jakartaee-api-parent-9.0.0.pom" + ], + "hash": "sha256-9l3PFLbh2RSOGYo5D6/hVfrKCTJT3ekAMH8+DqgsrTs=" + } + }, + "net.bytebuddy:byte-buddy:1.10.9": { + "byte-buddy-1.10.9.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy/1.10.9/byte-buddy-1.10.9.jar" + ], + "hash": "sha256-B7nKbi+XDLA/SyVlHfHy/OJx1JG0TgQJgniHeG9pLU0=" + }, + "byte-buddy-1.10.9.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy/1.10.9/byte-buddy-1.10.9.pom" + ], + "hash": "sha256-QIgdSUiocRWTRicPNpRbwpAlV3xstX9qXdDHwiIGnaw=" + } + }, + "net.bytebuddy:byte-buddy-agent:1.10.9": { + "byte-buddy-agent-1.10.9.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy-agent/1.10.9/byte-buddy-agent-1.10.9.jar" + ], + "hash": "sha256-+9BS0tTNFvcHVHxGhiHGt/uELH7Ihm0BLsvGF43h85Q=" + }, + "byte-buddy-agent-1.10.9.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy-agent/1.10.9/byte-buddy-agent-1.10.9.pom" + ], + "hash": "sha256-GZB0lfvBwjFsjrrXbwe5bRAf6xp+PAm/4VJv0/xu7J0=" + } + }, + "net.bytebuddy:byte-buddy-parent:1.10.9": { + "byte-buddy-parent-1.10.9.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/net/bytebuddy/byte-buddy-parent/1.10.9/byte-buddy-parent-1.10.9.pom" + ], + "hash": "sha256-k9nTgHec0XaMUrS87oLL+u3vmkow3oeuBrRB4WNP04w=" + } + }, + "net.java.dev.jna:jna:5.14.0": { + "jna-5.14.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/net/java/dev/jna/jna/5.14.0/jna-5.14.0.jar" + ], + "hash": "sha256-NO0eHyf6iWvKUNvE6ZzzcylnzsOHp6DV40hsCWc/6MY=" + }, + "jna-5.14.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/net/java/dev/jna/jna/5.14.0/jna-5.14.0.pom" + ], + "hash": "sha256-4E4llRUB3yWtx7Hc22xTNzyUiXuE0+FJISknY+4Hrj0=" + } + }, + "net.java.dev.jna:jna:5.9.0": { + "jna-5.9.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/net/java/dev/jna/jna/5.9.0/jna-5.9.0.jar" + ], + "hash": "sha256-6vzHgLRFQ008Wuf6L7ZmXeGnVg1TfSxAio6AzRTScWE=" + }, + "jna-5.9.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/net/java/dev/jna/jna/5.9.0/jna-5.9.0.pom" + ], + "hash": "sha256-a8i4RZFQtZ6VmPPa2a0kWh7yFQ0IJYEBcYTrFj5ZKCk=" + } + }, + "net.java.dev.jna:jna-platform:5.9.0": { + "jna-platform-5.9.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/net/java/dev/jna/jna-platform/5.9.0/jna-platform-5.9.0.jar" + ], + "hash": "sha256-GQO8bYfzq5ICOVe5H0WpyOs1FbrQMDVs6XcgHlFBtyQ=" + }, + "jna-platform-5.9.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/net/java/dev/jna/jna-platform/5.9.0/jna-platform-5.9.0.pom" + ], + "hash": "sha256-C9pdmOS+kmHwnN+u5vokWYh5CDTX/K3I4v3ZPH1kGCU=" + } + }, + "org.apache:apache:27": { + "apache-27.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/apache/apache/27/apache-27.pom" + ], + "hash": "sha256-srD8aeIqZQw4kvHDZtdwdvKVdcZzjfTHpwpEhESEzfk=" + } + }, + "org.apache:apache:23": { + "apache-23.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/apache/apache/23/apache-23.pom" + ], + "hash": "sha256-vBBiTgYj82V3+sVjnKKTbTJA7RUvttjVM6tNJwVDSRw=" + } + }, + "org.apache:apache:21": { + "apache-21.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/apache/apache/21/apache-21.pom" + ], + "hash": "sha256-rxDBCNoBTxfK+se1KytLWjocGCZfoq+XoyXZFDU3s4A=" + } + }, + "org.apache.ant:ant:1.10.13": { + "ant-1.10.13.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/apache/ant/ant/1.10.13/ant-1.10.13.jar" + ], + "hash": "sha256-vvv8eedE6Yks+n25bfO26C3BfSVxr0KqQnl2/CIpmDg=" + }, + "ant-1.10.13.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/apache/ant/ant/1.10.13/ant-1.10.13.pom" + ], + "hash": "sha256-J5NR7tkLj3QbtIyVvmHD7CRU48ipr7Q7zB0LrB3aE3o=" + } + }, + "org.apache.ant:ant-launcher:1.10.13": { + "ant-launcher-1.10.13.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/apache/ant/ant-launcher/1.10.13/ant-launcher-1.10.13.jar" + ], + "hash": "sha256-zXaVs7+2lkq3G2oLMdrWAAWud/5QITI2Rnmqzwj3eXA=" + }, + "ant-launcher-1.10.13.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/apache/ant/ant-launcher/1.10.13/ant-launcher-1.10.13.pom" + ], + "hash": "sha256-ApkvvDgFU1bzyU0B6qJJmcsCoJuqnB/fXqx2t8MVY8o=" + } + }, + "org.apache.ant:ant-parent:1.10.13": { + "ant-parent-1.10.13.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/apache/ant/ant-parent/1.10.13/ant-parent-1.10.13.pom" + ], + "hash": "sha256-blv8hwgiFD8f+7LG8I7EiHctsxSlKDMC9IFLEms0aTk=" + } + }, + "org.apache.commons:commons-parent:52": { + "commons-parent-52.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/apache/commons/commons-parent/52/commons-parent-52.pom" + ], + "hash": "sha256-ddvo806Y5MP/QtquSi+etMvNO18QR9VEYKzpBtu0UC4=" + } + }, + "org.apache.logging:logging-parent:7": { + "logging-parent-7.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/apache/logging/logging-parent/7/logging-parent-7.pom" + ], + "hash": "sha256-5YkR3J/GsXOhDlqp7bk8eZStBmAnBd0Gftz8bh6eFys=" + } + }, + "org.apache.logging.log4j:log4j:2.20.0": { + "log4j-2.20.0.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/apache/logging/log4j/log4j/2.20.0/log4j-2.20.0.pom" + ], + "hash": "sha256-mje0qPZ+jUG8JHNxejAhYz1qPD8xBXnbmtC+PyRlnGk=" + } + }, + "org.apache.logging.log4j:log4j-api:2.20.0": { + "log4j-api-2.20.0.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/apache/logging/log4j/log4j-api/2.20.0/log4j-api-2.20.0.jar" + ], + "hash": "sha256-L0PupnnqZvFMoPE/7CqGAKwST1pSMdy034OT7dy5dVA=" + }, + "log4j-api-2.20.0.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/apache/logging/log4j/log4j-api/2.20.0/log4j-api-2.20.0.pom" + ], + "hash": "sha256-zUWDKj1s0hlENcDWPKAV8ZSWjy++pPKRVTv3r7hOFjc=" + } + }, + "org.apache.logging.log4j:log4j-bom:2.20.0": { + "log4j-bom-2.20.0.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/apache/logging/log4j/log4j-bom/2.20.0/log4j-bom-2.20.0.pom" + ], + "hash": "sha256-+LtpLpWmt72mAehxAJWOg9AGG38SMlC2gSiUOhlenaE=" + } + }, + "org.apache.logging.log4j:log4j-core:2.20.0": { + "log4j-core-2.20.0.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/apache/logging/log4j/log4j-core/2.20.0/log4j-core-2.20.0.jar" + ], + "hash": "sha256-YTffhIza7Z9NUHb3VRPGyF2oC5U/TnrMo4CYt3B2P1U=" + }, + "log4j-core-2.20.0.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/apache/logging/log4j/log4j-core/2.20.0/log4j-core-2.20.0.pom" + ], + "hash": "sha256-3nGsEAVR9KB3rsrQd70VPnHfeqacMELXZRbMXM4Ice4=" + } + }, + "org.apache.maven:maven:3.6.3": { + "maven-3.6.3.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/apache/maven/maven/3.6.3/maven-3.6.3.pom" + ], + "hash": "sha256-0thiRepmFJvBTS3XK7uWH5ZN1li4CaBXMlLAZTHu7BY=" + } + }, + "org.apache.maven:maven-model:3.6.3": { + "maven-model-3.6.3.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/apache/maven/maven-model/3.6.3/maven-model-3.6.3.jar" + ], + "hash": "sha256-F87x9Y4UbvDX2elrO5LZih1v19KzKIulOOj/Hg2RYM8=" + }, + "maven-model-3.6.3.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/apache/maven/maven-model/3.6.3/maven-model-3.6.3.pom" + ], + "hash": "sha256-fHIOjLA9KFxxzW4zTZyeWWBivdMQ7grRX1xHmpkxVPA=" + } + }, + "org.apache.maven:maven-parent:33": { + "maven-parent-33.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/apache/maven/maven-parent/33/maven-parent-33.pom" + ], + "hash": "sha256-OFbj/NFpUC1fEv4kUmBOv2x8Al8VZWv6VY6pntKdc+o=" + } + }, + "org.apiguardian:apiguardian-api:1.1.2": { + "apiguardian-api-1.1.2.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/apiguardian/apiguardian-api/1.1.2/apiguardian-api-1.1.2.jar" + ], + "hash": "sha256-tQlEisUG1gcxnxglN/CzXXEAdYLsdBgyofER5bW3Czg=" + }, + "apiguardian-api-1.1.2.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/apiguardian/apiguardian-api/1.1.2/apiguardian-api-1.1.2.module" + ], + "hash": "sha256-4IAoExN1s1fR0oc06aT7QhbahLJAZByz7358fWKCI/w=" + }, + "apiguardian-api-1.1.2.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/apiguardian/apiguardian-api/1.1.2/apiguardian-api-1.1.2.pom" + ], + "hash": "sha256-MjVQgdEJCVw9XTdNWkO09MG3XVSemD71ByPidy5TAqA=" + } + }, + "org.codehaus.groovy:groovy-bom:3.0.14": { + "groovy-bom-3.0.14.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/codehaus/groovy/groovy-bom/3.0.14/groovy-bom-3.0.14.pom" + ], + "hash": "sha256-JODptzjecRjennNWD/0GA0u1zwfKE6fgNFnoi6nRric=" + } + }, + "org.codehaus.plexus:plexus:10": { + "plexus-10.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/codehaus/plexus/plexus/10/plexus-10.pom" + ], + "hash": "sha256-u6nFIQZLnKEyzpfMHMfrSvwtvjK8iMuHLIjpn2FiMB8=" + } + }, + "org.codehaus.plexus:plexus-utils:3.5.1": { + "plexus-utils-3.5.1.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/codehaus/plexus/plexus-utils/3.5.1/plexus-utils-3.5.1.jar" + ], + "hash": "sha256-huAlXUyHnGG0gz7X8TEk6LtnnfR967EnMm59t91JoHs=" + }, + "plexus-utils-3.5.1.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/codehaus/plexus/plexus-utils/3.5.1/plexus-utils-3.5.1.pom" + ], + "hash": "sha256-lP9o7etIIE0SyZGJx2cWTTqfd4oTctHc4RpBRi5iNvI=" + } + }, + "org.eclipse.ee4j:project:1.0.6": { + "project-1.0.6.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/eclipse/ee4j/project/1.0.6/project-1.0.6.pom" + ], + "hash": "sha256-Tn2DKdjafc8wd52CQkG+FF8nEIky9aWiTrkHZ3vI1y0=" + } + }, + "org.eclipse.jetty:jetty-bom:9.4.50.v20221201": { + "jetty-bom-9.4.50.v20221201.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/eclipse/jetty/jetty-bom/9.4.50.v20221201/jetty-bom-9.4.50.v20221201.pom" + ], + "hash": "sha256-TN5uUz1gHq+LZazulWt3BsGBkvJ1XQI9fo0Zu31bOUM=" + } + }, + "org.eclipse.jetty:jetty-parent:21": { + "jetty-parent-21.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/eclipse/jetty/jetty-parent/21/jetty-parent-21.pom" + ], + "hash": "sha256-eXLp7G84UqjuHuXU0Q3Mnc1gd7El+TWqlrNnpsgjN/U=" + } + }, + "org.eclipse.jetty.alpn:alpn-api:1.1.3.v20160715": { + "alpn-api-1.1.3.v20160715.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/eclipse/jetty/alpn/alpn-api/1.1.3.v20160715/alpn-api-1.1.3.v20160715.jar" + ], + "hash": "sha256-B76ZdYtpnhlPcPuXhNlCAtxsmCEod4KePXKwIPJmBXY=" + }, + "alpn-api-1.1.3.v20160715.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/eclipse/jetty/alpn/alpn-api/1.1.3.v20160715/alpn-api-1.1.3.v20160715.pom" + ], + "hash": "sha256-FrRveqUg7VDUR4oM9ndjje3AFDtCNMJ48WDLS9JUgq8=" + } + }, + "org.fusesource:fusesource-pom:1.12": { + "fusesource-pom-1.12.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/fusesource/fusesource-pom/1.12/fusesource-pom-1.12.pom" + ], + "hash": "sha256-xA2WDarc73sBwbHGZXr7rE//teUxaPj8sLKLhOb9zKE=" + } + }, + "org.fusesource.jansi:jansi:2.4.1": { + "jansi-2.4.1.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/fusesource/jansi/jansi/2.4.1/jansi-2.4.1.jar" + ], + "hash": "sha256-Ll53Wp3Fj/prvWqm8JnWL4ti3N60w8O7vlzyMBvC3ME=" + }, + "jansi-2.4.1.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/fusesource/jansi/jansi/2.4.1/jansi-2.4.1.pom" + ], + "hash": "sha256-P5jZeaTTVZ+HefuwBLNK51Fq+t9RDhHffMPNBz6xuzs=" + } + }, + "org.gradle:gradle-tooling-api:8.7": { + "gradle-tooling-api-8.7.jar": { + "urls": [ + "https://repo.gradle.org/gradle/libs-releases/org/gradle/gradle-tooling-api/8.7/gradle-tooling-api-8.7.jar" + ], + "hash": "sha256-UjAREw062qfdwR14e/363TmgBDIAzGd7cJtPrATLhrM=" + }, + "gradle-tooling-api-8.7.module": { + "urls": [ + "https://repo.gradle.org/gradle/libs-releases/org/gradle/gradle-tooling-api/8.7/gradle-tooling-api-8.7.module" + ], + "hash": "sha256-c08g/Bo2leG74FuBK7m7un/wNzQ8lCp5THbpiBdpNCg=" + }, + "gradle-tooling-api-8.7.pom": { + "urls": [ + "https://repo.gradle.org/gradle/libs-releases/org/gradle/gradle-tooling-api/8.7/gradle-tooling-api-8.7.pom", + "https://repo.maven.apache.org/maven2/org/gradle/gradle-tooling-api/8.7/gradle-tooling-api-8.7.pom" + ], + "hash": "sha256-Js9ia+mlUYCUZg1Vkot+NEGrQxuSkHTHc7+fL3V28/s=" + } + }, + "org.jdom:jdom2:2.0.6.1": { + "jdom2-2.0.6.1.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jdom/jdom2/2.0.6.1/jdom2-2.0.6.1.jar" + ], + "hash": "sha256-CyD0XjoP2PDRLNxTFrBndukCsTZdsAEYh2+RdcYPMCw=" + }, + "jdom2-2.0.6.1.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jdom/jdom2/2.0.6.1/jdom2-2.0.6.1.pom" + ], + "hash": "sha256-VXleEBi4rmR7k3lnz4EKmbCFgsI3TnhzwShzTIyRS/M=" + } + }, + "org.jetbrains:annotations:23.0.0": { + "annotations-23.0.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/annotations/23.0.0/annotations-23.0.0.jar" + ], + "hash": "sha256-ew8ZckCCy/y8ZuWr6iubySzwih6hHhkZM+1DgB6zzQU=" + }, + "annotations-23.0.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/annotations/23.0.0/annotations-23.0.0.pom" + ], + "hash": "sha256-yUkPZVEyMo3yz7z990P1P8ORbWwdEENxdabKbjpndxw=" + } + }, + "org.jetbrains:annotations:13.0": { + "annotations-13.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/annotations/13.0/annotations-13.0.jar" + ], + "hash": "sha256-rOKhDcji1f00kl7KwD5JiLLA+FFlDJS4zvSbob0RFHg=" + }, + "annotations-13.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/annotations/13.0/annotations-13.0.pom" + ], + "hash": "sha256-llrrK+3/NpgZvd4b96CzuJuCR91pyIuGN112Fju4w5c=" + } + }, + "org.jetbrains:markdown:0.7.0": { + "markdown-0.7.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/markdown/0.7.0/markdown-0.7.0.jar" + ], + "hash": "sha256-CyFbRlFaxzcfaK2efq6i+Pkr6R83v70DsAjLVvFnUCE=" + }, + "markdown-0.7.0.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/markdown/0.7.0/markdown-0.7.0.module" + ], + "hash": "sha256-fRDYKtUAs+iccbTS3Byl1L3Xq/BIcostrtWzsPuVxzs=" + }, + "markdown-0.7.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/markdown/0.7.0/markdown-0.7.0.pom" + ], + "hash": "sha256-AplTmbCmzpt9dfH4f1yR1QwUg+m0oSH2a0ZAcsVIVVU=" + } + }, + "org.jetbrains:markdown-jvm:0.7.0": { + "markdown-jvm-0.7.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/markdown-jvm/0.7.0/markdown-jvm-0.7.0.jar" + ], + "hash": "sha256-yLRL4zhZiRLou4pJmLAX333RmBUszv/vAc8SipkAE54=" + }, + "markdown-jvm-0.7.0.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/markdown-jvm/0.7.0/markdown-jvm-0.7.0.module" + ], + "hash": "sha256-PL1M+XdGeY3ODzCIf/TgGig9DvoO5m3en/CvARrLdAU=" + }, + "markdown-jvm-0.7.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/markdown-jvm/0.7.0/markdown-jvm-0.7.0.pom" + ], + "hash": "sha256-0VsK0umlc/l87P+p7UDP5TTV/HazLigPhd0C/lVIn84=" + } + }, + "org.jetbrains.intellij.deps:trove4j:1.0.20200330": { + "trove4j-1.0.20200330.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/intellij/deps/trove4j/1.0.20200330/trove4j-1.0.20200330.jar", + "https://repo.maven.apache.org/maven2/org/jetbrains/intellij/deps/trove4j/1.0.20200330/trove4j-1.0.20200330.jar" + ], + "hash": "sha256-xf1yW/+rUYRr88d9sTg8YKquv+G3/i8A0j/ht98KQ50=" + }, + "trove4j-1.0.20200330.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/intellij/deps/trove4j/1.0.20200330/trove4j-1.0.20200330.pom", + "https://repo.maven.apache.org/maven2/org/jetbrains/intellij/deps/trove4j/1.0.20200330/trove4j-1.0.20200330.pom" + ], + "hash": "sha256-h3IcuqZaPJfYsbqdIHhA8WTJ/jh1n8nqEP/iZWX40+k=" + } + }, + "org.jetbrains.kotlin:kotlin-android-extensions:1.9.22": { + "kotlin-android-extensions-1.9.22.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-android-extensions/1.9.22/kotlin-android-extensions-1.9.22.jar" + ], + "hash": "sha256-Hl6IFkKpnduPbRPmmVoIwZK8OEGHOWZj2ER8CB2H4k8=" + }, + "kotlin-android-extensions-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-android-extensions/1.9.22/kotlin-android-extensions-1.9.22.pom" + ], + "hash": "sha256-lEt8+zPgpvtoRVkEjwKMuWMmyTKiRdXLAhQ7zSwDEVk=" + } + }, + "org.jetbrains.kotlin:kotlin-build-common:1.9.22": { + "kotlin-build-common-1.9.22.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-build-common/1.9.22/kotlin-build-common-1.9.22.jar" + ], + "hash": "sha256-U8PcxTA/WQPmJgrqc+zMaTD5o276KhHNO9On5V32OWY=" + }, + "kotlin-build-common-1.9.22.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-build-common/1.9.22/kotlin-build-common-1.9.22.pom" + ], + "hash": "sha256-KXxfSYoHdIPvic06cQzSt/LlrjgPOjrt+5xBvGI7E0A=" + } + }, + "org.jetbrains.kotlin:kotlin-build-tools-api:1.9.22": { + "kotlin-build-tools-api-1.9.22.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-build-tools-api/1.9.22/kotlin-build-tools-api-1.9.22.jar", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-build-tools-api/1.9.22/kotlin-build-tools-api-1.9.22.jar" + ], + "hash": "sha256-3UnLfij08zgvUlDPsFyGT9XwqW0yZbspPHezCtzJP/Y=" + }, + "kotlin-build-tools-api-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-build-tools-api/1.9.22/kotlin-build-tools-api-1.9.22.pom", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-build-tools-api/1.9.22/kotlin-build-tools-api-1.9.22.pom" + ], + "hash": "sha256-DFZLu4fcXs32Q005buob886Xar8IgYCN0Wb6SbBGSfs=" + } + }, + "org.jetbrains.kotlin:kotlin-build-tools-impl:1.9.22": { + "kotlin-build-tools-impl-1.9.22.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-build-tools-impl/1.9.22/kotlin-build-tools-impl-1.9.22.jar" + ], + "hash": "sha256-G0jW3gQqUl9jtVdROuEmbWmTSCJbAT+UDjLGPeJolCg=" + }, + "kotlin-build-tools-impl-1.9.22.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-build-tools-impl/1.9.22/kotlin-build-tools-impl-1.9.22.pom" + ], + "hash": "sha256-tWM/E0m+lcdHRuHimiqm51LoneGrmmUjSS85j6aVWN0=" + } + }, + "org.jetbrains.kotlin:kotlin-compiler-embeddable:1.9.22": { + "kotlin-compiler-embeddable-1.9.22.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.9.22/kotlin-compiler-embeddable-1.9.22.jar", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.9.22/kotlin-compiler-embeddable-1.9.22.jar" + ], + "hash": "sha256-K/6t7lmrGYjDNtvW5l2ZH3Zq4d2Gg/Km3tX6oCefDKA=" + }, + "kotlin-compiler-embeddable-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.9.22/kotlin-compiler-embeddable-1.9.22.pom", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-compiler-embeddable/1.9.22/kotlin-compiler-embeddable-1.9.22.pom" + ], + "hash": "sha256-s9o0u29ClqzzoPRDRm8FBsbJnaXNliTW4LdFsiKHhOs=" + } + }, + "org.jetbrains.kotlin:kotlin-compiler-runner:1.9.22": { + "kotlin-compiler-runner-1.9.22.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-compiler-runner/1.9.22/kotlin-compiler-runner-1.9.22.jar", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-compiler-runner/1.9.22/kotlin-compiler-runner-1.9.22.jar" + ], + "hash": "sha256-c+x1u5nr/6iySiSjuFPz9mCWvEapNRrw2sk967acFes=" + }, + "kotlin-compiler-runner-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-compiler-runner/1.9.22/kotlin-compiler-runner-1.9.22.pom", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-compiler-runner/1.9.22/kotlin-compiler-runner-1.9.22.pom" + ], + "hash": "sha256-pO6KZ8HW8lODjAAnKAvLgFCsDc3MrZdIlhOKaaAX6wE=" + } + }, + "org.jetbrains.kotlin:kotlin-daemon-client:1.9.22": { + "kotlin-daemon-client-1.9.22.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-daemon-client/1.9.22/kotlin-daemon-client-1.9.22.jar", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-daemon-client/1.9.22/kotlin-daemon-client-1.9.22.jar" + ], + "hash": "sha256-XXPhgVsRZ+Sv4gjwCyp1wIC8WoEHhsqtuOFHh1k6k7k=" + }, + "kotlin-daemon-client-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-daemon-client/1.9.22/kotlin-daemon-client-1.9.22.pom", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-daemon-client/1.9.22/kotlin-daemon-client-1.9.22.pom" + ], + "hash": "sha256-YsRKZZ2lXbb7El4pKbmNUEow4fSvgU4I5JIUJqpST4o=" + } + }, + "org.jetbrains.kotlin:kotlin-daemon-embeddable:1.9.22": { + "kotlin-daemon-embeddable-1.9.22.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-daemon-embeddable/1.9.22/kotlin-daemon-embeddable-1.9.22.jar", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-daemon-embeddable/1.9.22/kotlin-daemon-embeddable-1.9.22.jar" + ], + "hash": "sha256-kqV4ExcUR9U0Rh+hP+N9yM07f4bYPpsfe7GwvjBUH4s=" + }, + "kotlin-daemon-embeddable-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-daemon-embeddable/1.9.22/kotlin-daemon-embeddable-1.9.22.pom", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-daemon-embeddable/1.9.22/kotlin-daemon-embeddable-1.9.22.pom" + ], + "hash": "sha256-9uo9z2v7Og0GmER8SKa88I2Oqs+D/JX+nUGBpeXjwrE=" + } + }, + "org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.22": { + "kotlin-gradle-plugin-1.9.22-gradle82.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin/1.9.22/kotlin-gradle-plugin-1.9.22-gradle82.jar" + ], + "hash": "sha256-1OcY3V8wxrqTLZPM/FswFendPkQUOgUrh3Ao8frlQtw=" + }, + "kotlin-gradle-plugin-1.9.22.module": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin/1.9.22/kotlin-gradle-plugin-1.9.22.module" + ], + "hash": "sha256-pPRqwMq9jVzbaJ0tN9GdWFhPcIv59k/+TpgKL/dTS7U=" + }, + "kotlin-gradle-plugin-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin/1.9.22/kotlin-gradle-plugin-1.9.22.pom" + ], + "hash": "sha256-A3750tSupA9JKdglE1g+STwOBRVuDaix1/Ujurhobyc=" + } + }, + "org.jetbrains.kotlin:kotlin-gradle-plugin-annotations:1.9.22": { + "kotlin-gradle-plugin-annotations-1.9.22.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-annotations/1.9.22/kotlin-gradle-plugin-annotations-1.9.22.jar" + ], + "hash": "sha256-lnaDy5jZkQFFYH+/W0VilbQ/Cq+Tsbunv2mS5zHLJOw=" + }, + "kotlin-gradle-plugin-annotations-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-annotations/1.9.22/kotlin-gradle-plugin-annotations-1.9.22.pom" + ], + "hash": "sha256-Y7por+B4/3D3CPnpecaTxFv+iQQfeWQbC4H2tKEm7rs=" + } + }, + "org.jetbrains.kotlin:kotlin-gradle-plugin-api:1.9.22": { + "kotlin-gradle-plugin-api-1.9.22-gradle82.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-api/1.9.22/kotlin-gradle-plugin-api-1.9.22-gradle82.jar" + ], + "hash": "sha256-7P9nVGBlxg4JX7k7P4i5uS7R7cN+P+u8b57TVCL6QSs=" + }, + "kotlin-gradle-plugin-api-1.9.22.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-api/1.9.22/kotlin-gradle-plugin-api-1.9.22.jar" + ], + "hash": "sha256-7P9nVGBlxg4JX7k7P4i5uS7R7cN+P+u8b57TVCL6QSs=" + }, + "kotlin-gradle-plugin-api-1.9.22.module": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-api/1.9.22/kotlin-gradle-plugin-api-1.9.22.module" + ], + "hash": "sha256-H0SJxTBPmlEqVof/zAqvCTCvydcgUdOpBfrAcANi+3s=" + }, + "kotlin-gradle-plugin-api-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-api/1.9.22/kotlin-gradle-plugin-api-1.9.22.pom" + ], + "hash": "sha256-ZAFewaGutVCqGCjCQuIoODDFD2g2TkCDH+FYj9wEEfU=" + } + }, + "org.jetbrains.kotlin:kotlin-gradle-plugin-idea:1.9.22": { + "kotlin-gradle-plugin-idea-1.9.22.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-idea/1.9.22/kotlin-gradle-plugin-idea-1.9.22.jar" + ], + "hash": "sha256-jRr4djLZUUjxIqn6CuKQPBnub6t9AeAX924NLJoCLCA=" + }, + "kotlin-gradle-plugin-idea-1.9.22.module": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-idea/1.9.22/kotlin-gradle-plugin-idea-1.9.22.module" + ], + "hash": "sha256-z+LCbjMPaAMsAD+lJMAx5aYPzo2Jn/8uQjFBKL60QCs=" + }, + "kotlin-gradle-plugin-idea-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-idea/1.9.22/kotlin-gradle-plugin-idea-1.9.22.pom" + ], + "hash": "sha256-3BSjKHVDun5QRs1OCVAtJ4hMqYfshwb1+xid54luOsw=" + } + }, + "org.jetbrains.kotlin:kotlin-gradle-plugin-idea-proto:1.9.22": { + "kotlin-gradle-plugin-idea-proto-1.9.22.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-idea-proto/1.9.22/kotlin-gradle-plugin-idea-proto-1.9.22.jar" + ], + "hash": "sha256-9dgu5hlmotmK364Z8k1hcwIsFUBIls3yNjQANe5owPU=" + }, + "kotlin-gradle-plugin-idea-proto-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-idea-proto/1.9.22/kotlin-gradle-plugin-idea-proto-1.9.22.pom" + ], + "hash": "sha256-huMsqCkn2ogKHPNDpA7MIJgHXm/XInOzTVDfpUTzRjs=" + } + }, + "org.jetbrains.kotlin:kotlin-gradle-plugin-model:1.9.22": { + "kotlin-gradle-plugin-model-1.9.22.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-model/1.9.22/kotlin-gradle-plugin-model-1.9.22.jar" + ], + "hash": "sha256-UQj61b4UmCXs46ABA8PCHPGv6VS7ZLhweJVyk511OMs=" + }, + "kotlin-gradle-plugin-model-1.9.22.module": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-model/1.9.22/kotlin-gradle-plugin-model-1.9.22.module" + ], + "hash": "sha256-L/MBPfK6epteiwBOhIF1DI0PqVOtAHoZbYXSY2cdvq4=" + }, + "kotlin-gradle-plugin-model-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugin-model/1.9.22/kotlin-gradle-plugin-model-1.9.22.pom" + ], + "hash": "sha256-gfUmlHml2X7oeSpITIMr495DgggSZxlhUAHKyI5C9qg=" + } + }, + "org.jetbrains.kotlin:kotlin-gradle-plugins-bom:1.9.22": { + "kotlin-gradle-plugins-bom-1.9.22.module": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugins-bom/1.9.22/kotlin-gradle-plugins-bom-1.9.22.module" + ], + "hash": "sha256-Qj401h0iCxoN3BgUCGqM6rTa2ed5ArDOjLRyG789xu0=" + }, + "kotlin-gradle-plugins-bom-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-gradle-plugins-bom/1.9.22/kotlin-gradle-plugins-bom-1.9.22.pom" + ], + "hash": "sha256-da2/XHjOJHwiuvNijQs/8c9+19N9YB66cwTXerdb3Z8=" + } + }, + "org.jetbrains.kotlin:kotlin-klib-commonizer-api:1.9.22": { + "kotlin-klib-commonizer-api-1.9.22.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-klib-commonizer-api/1.9.22/kotlin-klib-commonizer-api-1.9.22.jar" + ], + "hash": "sha256-jC9lQpwYLi5KLgnLkQ5iuW227tKFWUuPga+CO35ZROI=" + }, + "kotlin-klib-commonizer-api-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-klib-commonizer-api/1.9.22/kotlin-klib-commonizer-api-1.9.22.pom" + ], + "hash": "sha256-EMrJcNMAo0icM/CzBBVv8DLZWVm+WqrDuIAoKtWGIv4=" + } + }, + "org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable:1.9.22": { + "kotlin-klib-commonizer-embeddable-1.9.22.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-klib-commonizer-embeddable/1.9.22/kotlin-klib-commonizer-embeddable-1.9.22.jar" + ], + "hash": "sha256-c/50PnTSEoPTg9C6voX9CMRCr8GnvYgIL42gUQ0FPUs=" + }, + "kotlin-klib-commonizer-embeddable-1.9.22.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-klib-commonizer-embeddable/1.9.22/kotlin-klib-commonizer-embeddable-1.9.22.pom" + ], + "hash": "sha256-dxghItppe2YqSRPX3Z/mu68ATOhH/YZ9oj6v8MTIJEs=" + } + }, + "org.jetbrains.kotlin:kotlin-native-utils:1.9.22": { + "kotlin-native-utils-1.9.22.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-native-utils/1.9.22/kotlin-native-utils-1.9.22.jar" + ], + "hash": "sha256-eGwSfdVTXbLDmuWXzQsMrZ6RS4PiNvHbAlEjXMnGUqw=" + }, + "kotlin-native-utils-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-native-utils/1.9.22/kotlin-native-utils-1.9.22.pom" + ], + "hash": "sha256-EcUUwF7qOuno4Wq0l5bxEd9DxzSCMeNfr0xCjMT3Q+o=" + } + }, + "org.jetbrains.kotlin:kotlin-project-model:1.9.22": { + "kotlin-project-model-1.9.22.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-project-model/1.9.22/kotlin-project-model-1.9.22.jar" + ], + "hash": "sha256-zBHVwLGQnFsKCP0l7w51T/0r9Wyu9mX7eFEiI15UKhg=" + }, + "kotlin-project-model-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-project-model/1.9.22/kotlin-project-model-1.9.22.pom" + ], + "hash": "sha256-659KFngb/ADM7IAw++XuIo5vKydxxQwmezIY/rAGW0A=" + } + }, + "org.jetbrains.kotlin:kotlin-reflect:1.9.23": { + "kotlin-reflect-1.9.23.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.9.23/kotlin-reflect-1.9.23.jar" + ], + "hash": "sha256-dHwpJ6Yjtuu3NLRl1qJoYukg3dGCjvQ3Foh8CEmjEx8=" + }, + "kotlin-reflect-1.9.23.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.9.23/kotlin-reflect-1.9.23.pom" + ], + "hash": "sha256-WXD72CdKWAyk6I/nhkeMR8i5ufo3TFsK3ekyhFYiX2o=" + } + }, + "org.jetbrains.kotlin:kotlin-reflect:1.9.22": { + "kotlin-reflect-1.9.22.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.9.22/kotlin-reflect-1.9.22.jar" + ], + "hash": "sha256-d/MRyhOEgR1Rn9o4n8sSaL2qBY1gUEbg7edsA7DfPpc=" + }, + "kotlin-reflect-1.9.22.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.9.22/kotlin-reflect-1.9.22.pom" + ], + "hash": "sha256-xxLjWN97kxi2j1RjlxsIhnODf8DKQoXRw4LIEC7da18=" + } + }, + "org.jetbrains.kotlin:kotlin-reflect:1.8.22": { + "kotlin-reflect-1.8.22.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.8.22/kotlin-reflect-1.8.22.jar" + ], + "hash": "sha256-ZVgl+mURIg/tDK5arU3+oqv5j9EPCud+uNr2q/zQ8Cc=" + }, + "kotlin-reflect-1.8.22.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.8.22/kotlin-reflect-1.8.22.pom" + ], + "hash": "sha256-KeHqCKPTq0gtH9/UH76TRZEt9Gbbr6+0sS0YN8cr4yg=" + } + }, + "org.jetbrains.kotlin:kotlin-reflect:1.6.10": { + "kotlin-reflect-1.6.10.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.6.10/kotlin-reflect-1.6.10.jar" + ], + "hash": "sha256-MnesECrheq0QpVq+x1/1aWyNEJeQOWQ0tJbnUIeFQgM=" + }, + "kotlin-reflect-1.6.10.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-reflect/1.6.10/kotlin-reflect-1.6.10.pom" + ], + "hash": "sha256-V5BVJCdKAK4CiqzMJyg/a8WSWpNKBGwcxdBsjuTW1ak=" + } + }, + "org.jetbrains.kotlin:kotlin-script-runtime:1.9.22": { + "kotlin-script-runtime-1.9.22.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-script-runtime/1.9.22/kotlin-script-runtime-1.9.22.jar" + ], + "hash": "sha256-uAZwV59/ktRz2NWDTwsST3dVxFmP6UskQYOwKDSDRXQ=" + }, + "kotlin-script-runtime-1.9.22.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-script-runtime/1.9.22/kotlin-script-runtime-1.9.22.pom" + ], + "hash": "sha256-/ra0ns9pEG1MEoXnH5ob2noSfO9oMC4+n9yCmKTjR5U=" + } + }, + "org.jetbrains.kotlin:kotlin-scripting-common:1.9.22": { + "kotlin-scripting-common-1.9.22.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-common/1.9.22/kotlin-scripting-common-1.9.22.jar", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-common/1.9.22/kotlin-scripting-common-1.9.22.jar" + ], + "hash": "sha256-+lAMvwNJQ++BJvPT3GWvCf+Z3//kTFCZtPwu1b8vXcc=" + }, + "kotlin-scripting-common-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-common/1.9.22/kotlin-scripting-common-1.9.22.pom", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-common/1.9.22/kotlin-scripting-common-1.9.22.pom" + ], + "hash": "sha256-ROURI7DCfm/ZM/wma00Nrw8GhKYq7Z/mhC6Noz8qKz8=" + } + }, + "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:1.9.22": { + "kotlin-scripting-compiler-embeddable-1.9.22.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/1.9.22/kotlin-scripting-compiler-embeddable-1.9.22.jar", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/1.9.22/kotlin-scripting-compiler-embeddable-1.9.22.jar" + ], + "hash": "sha256-Ij/shIMCNEmc1MeiPqHJLroSfEGzXZux1LYdJBVa6zU=" + }, + "kotlin-scripting-compiler-embeddable-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/1.9.22/kotlin-scripting-compiler-embeddable-1.9.22.pom", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-compiler-embeddable/1.9.22/kotlin-scripting-compiler-embeddable-1.9.22.pom" + ], + "hash": "sha256-wWCPP7yyqfdSPq0zWZwurc5MgSFhqeBmufSwBa97Qxw=" + } + }, + "org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:1.9.22": { + "kotlin-scripting-compiler-impl-embeddable-1.9.22.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-compiler-impl-embeddable/1.9.22/kotlin-scripting-compiler-impl-embeddable-1.9.22.jar", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-compiler-impl-embeddable/1.9.22/kotlin-scripting-compiler-impl-embeddable-1.9.22.jar" + ], + "hash": "sha256-OJkYFqKH/3YkHxp35/ERZIHU6To9tjJZplfd4g5tD2U=" + }, + "kotlin-scripting-compiler-impl-embeddable-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-compiler-impl-embeddable/1.9.22/kotlin-scripting-compiler-impl-embeddable-1.9.22.pom", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-compiler-impl-embeddable/1.9.22/kotlin-scripting-compiler-impl-embeddable-1.9.22.pom" + ], + "hash": "sha256-gmccM6lXsuKoINZqaSwvzmPjvwR/HLJeb7A5HF3c8uc=" + } + }, + "org.jetbrains.kotlin:kotlin-scripting-jvm:1.9.22": { + "kotlin-scripting-jvm-1.9.22.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-jvm/1.9.22/kotlin-scripting-jvm-1.9.22.jar", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-jvm/1.9.22/kotlin-scripting-jvm-1.9.22.jar" + ], + "hash": "sha256-jRJ9dvz6BRfDbB6g4ijs4D1aRoJkKgH2R5prvccxKik=" + }, + "kotlin-scripting-jvm-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-scripting-jvm/1.9.22/kotlin-scripting-jvm-1.9.22.pom", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-scripting-jvm/1.9.22/kotlin-scripting-jvm-1.9.22.pom" + ], + "hash": "sha256-cBJS6huo/4f8M0dqYePVxtnS3aQbqpiZTdaYDuE/vG0=" + } + }, + "org.jetbrains.kotlin:kotlin-serialization:1.9.22": { + "kotlin-serialization-1.9.22-gradle82.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-serialization/1.9.22/kotlin-serialization-1.9.22-gradle82.jar" + ], + "hash": "sha256-AcrgEEPdT3sLAttWbZPHVoiwlsNAkJ9o0OSVcqvF6VQ=" + }, + "kotlin-serialization-1.9.22.module": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-serialization/1.9.22/kotlin-serialization-1.9.22.module" + ], + "hash": "sha256-s3cuUZFg/is2t9G6MkGQYU27lLFZzmBk9M1z+RhhWiI=" + }, + "kotlin-serialization-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-serialization/1.9.22/kotlin-serialization-1.9.22.pom" + ], + "hash": "sha256-D9yUsPEx2Ct3RpAEB0r0f/yntGfVeIn762oVSWg+rL0=" + } + }, + "org.jetbrains.kotlin:kotlin-serialization-compiler-plugin-embeddable:1.9.22": { + "kotlin-serialization-compiler-plugin-embeddable-1.9.22.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-serialization-compiler-plugin-embeddable/1.9.22/kotlin-serialization-compiler-plugin-embeddable-1.9.22.jar" + ], + "hash": "sha256-OFR9AAsWYbFLkkZxz7F6tSAL64NOOj2kJ37gkGLppQA=" + }, + "kotlin-serialization-compiler-plugin-embeddable-1.9.22.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-serialization-compiler-plugin-embeddable/1.9.22/kotlin-serialization-compiler-plugin-embeddable-1.9.22.pom" + ], + "hash": "sha256-i8LheiTLbQ4CMzLkjKq5e3P+MyuSdVWhGjAsb1xcPGQ=" + } + }, + "org.jetbrains.kotlin:kotlin-stdlib:1.9.23": { + "kotlin-stdlib-1.9.23-all.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.9.23/kotlin-stdlib-1.9.23-all.jar" + ], + "hash": "sha256-zsOLwzAucqiq+c3kNrWpBx7gMx4q0F6E2LuJczTX6dQ=" + }, + "kotlin-stdlib-1.9.23.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.9.23/kotlin-stdlib-1.9.23.jar" + ], + "hash": "sha256-iRDMI4gH2G71UMsfCxDdXtQLNaTsGlJSX3YK7ehOrTc=" + }, + "kotlin-stdlib-1.9.23.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.9.23/kotlin-stdlib-1.9.23.module" + ], + "hash": "sha256-UZUZOzfc2touHAqw1RLEIrKtdq81V4Q6G5w0gPTnHQ4=" + }, + "kotlin-stdlib-1.9.23.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.9.23/kotlin-stdlib-1.9.23.pom" + ], + "hash": "sha256-wm0n8mcQrUDiPu2f/gpkuFkejBPSI8ypDFk+5j87KKs=" + } + }, + "org.jetbrains.kotlin:kotlin-stdlib:1.9.22": { + "kotlin-stdlib-1.9.22-all.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.9.22/kotlin-stdlib-1.9.22-all.jar" + ], + "hash": "sha256-zsOLwzAucqiq+c3kNrWpBx7gMx4q0F6E2LuJczTX6dQ=" + }, + "kotlin-stdlib-1.9.22.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.9.22/kotlin-stdlib-1.9.22.jar" + ], + "hash": "sha256-ar4UbCeGQTi4dMzM/l9TTj65I8maG3tdRUlO5WlPPgo=" + }, + "kotlin-stdlib-1.9.22.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.9.22/kotlin-stdlib-1.9.22.module" + ], + "hash": "sha256-9IIxS1B5wUVfb7DUJXp0XRAcYSTOlhUiuob53JCQHkc=" + }, + "kotlin-stdlib-1.9.22.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.9.22/kotlin-stdlib-1.9.22.pom" + ], + "hash": "sha256-zOLxUoXsgHijd0a1cwigVAQt1cwlQgxD9zt4V8JGjwM=" + } + }, + "org.jetbrains.kotlin:kotlin-stdlib-common:1.9.23": { + "kotlin-stdlib-common-1.9.23.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.9.23/kotlin-stdlib-common-1.9.23.module" + ], + "hash": "sha256-hjnwBfqZd67wjDL8jnonedoi7iYkZNcnMpiq/Ug3Fc0=" + }, + "kotlin-stdlib-common-1.9.23.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.9.23/kotlin-stdlib-common-1.9.23.pom" + ], + "hash": "sha256-OuBxRYdw47aGCafTGet5emeJ9fBAyqQUQJgJmGhb5PY=" + } + }, + "org.jetbrains.kotlin:kotlin-stdlib-common:1.9.22": { + "kotlin-stdlib-common-1.9.22.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.9.22/kotlin-stdlib-common-1.9.22.module" + ], + "hash": "sha256-+Tyemr+NUtjo/Y6FGqgC7OxVEyFhxK7ufTzZJL95QkY=" + }, + "kotlin-stdlib-common-1.9.22.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-common/1.9.22/kotlin-stdlib-common-1.9.22.pom" + ], + "hash": "sha256-10k21oh1ZK63EOhCmLVCB/U+m88jpSrSv6IsIIZ3V2c=" + } + }, + "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.22": { + "kotlin-stdlib-jdk7-1.9.22.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.9.22/kotlin-stdlib-jdk7-1.9.22.jar" + ], + "hash": "sha256-+R8kz606dWaIo1Ep5fM1SA0OtAjxVooX9wfCifh2m90=" + }, + "kotlin-stdlib-jdk7-1.9.22.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.9.22/kotlin-stdlib-jdk7-1.9.22.pom" + ], + "hash": "sha256-SHnKgQKDPIraP0bHep/6+uGXDK/AvGIfUSAbatl0zp0=" + } + }, + "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.21": { + "kotlin-stdlib-jdk7-1.9.21.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.9.21/kotlin-stdlib-jdk7-1.9.21.jar" + ], + "hash": "sha256-v+IfQkbIvKNQsYQEBv+803awXto36ypksBHeGMLKeBg=" + }, + "kotlin-stdlib-jdk7-1.9.21.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.9.21/kotlin-stdlib-jdk7-1.9.21.pom" + ], + "hash": "sha256-AVFiDhh0XvJ2ECNw/GdHBPcN821kgsxBmh5S263Cg2I=" + } + }, + "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22": { + "kotlin-stdlib-jdk7-1.8.22.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.8.22/kotlin-stdlib-jdk7-1.8.22.jar" + ], + "hash": "sha256-BV9cskKH+hBhAJlae0erkhJrgegy6HX1+izwvVVpPQs=" + }, + "kotlin-stdlib-jdk7-1.8.22.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.8.22/kotlin-stdlib-jdk7-1.8.22.pom" + ], + "hash": "sha256-T5WKqZPVmE+PXr7UFGVipfOp9pW2BJyfKHOBN5ytqzM=" + } + }, + "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.22": { + "kotlin-stdlib-jdk8-1.9.22.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.9.22/kotlin-stdlib-jdk8-1.9.22.jar" + ], + "hash": "sha256-RwRsPtwy/g2xo2v+PTgilYu1vkQRxbqA866JWj7CcpE=" + }, + "kotlin-stdlib-jdk8-1.9.22.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.9.22/kotlin-stdlib-jdk8-1.9.22.pom" + ], + "hash": "sha256-yUBIJZxtAAdXi6r+tx74/3ut6wjy1ZQ3/DllHg+396s=" + } + }, + "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.21": { + "kotlin-stdlib-jdk8-1.9.21.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.9.21/kotlin-stdlib-jdk8-1.9.21.jar" + ], + "hash": "sha256-BwLWS6qpDlxW5GdzeCTJvjreHlFWJHPBQ60DWByVUSc=" + }, + "kotlin-stdlib-jdk8-1.9.21.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.9.21/kotlin-stdlib-jdk8-1.9.21.pom" + ], + "hash": "sha256-J79Q6ETwZc0emFT8m8K9pRIrh4ZOoDBL1pW7En0AMvQ=" + } + }, + "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22": { + "kotlin-stdlib-jdk8-1.8.22.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.8.22/kotlin-stdlib-jdk8-1.8.22.jar" + ], + "hash": "sha256-QZiw6vCQpPJbb35aWVgfQxS6jJ9s0dE+6dNI5l7Y9wc=" + }, + "kotlin-stdlib-jdk8-1.8.22.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.8.22/kotlin-stdlib-jdk8-1.8.22.pom" + ], + "hash": "sha256-ko8hhyF0djE8uBbUgHC8dlSqO5pa6B0/xfjCecyPjZ4=" + } + }, + "org.jetbrains.kotlin:kotlin-tooling-core:1.9.22": { + "kotlin-tooling-core-1.9.22.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-tooling-core/1.9.22/kotlin-tooling-core-1.9.22.jar" + ], + "hash": "sha256-iTjrl+NjINqj5vsqYP0qBbIy/0pVcXPFAZ8EW4gy2fQ=" + }, + "kotlin-tooling-core-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-tooling-core/1.9.22/kotlin-tooling-core-1.9.22.pom" + ], + "hash": "sha256-FPx/NcY15fzRvqU3q0+kQxLoQyUtUzNRnjaxJeoImyE=" + } + }, + "org.jetbrains.kotlin:kotlin-util-io:1.9.22": { + "kotlin-util-io-1.9.22.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-util-io/1.9.22/kotlin-util-io-1.9.22.jar" + ], + "hash": "sha256-9telhJGjeLCDrRvq1IikheEdFgsx52wYwa1SDx0o9Gs=" + }, + "kotlin-util-io-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-util-io/1.9.22/kotlin-util-io-1.9.22.pom" + ], + "hash": "sha256-ZP1qINbsBAE7ttdWJ/ZYC7c2QdlIkJ1cFmTi53MQbe4=" + } + }, + "org.jetbrains.kotlin:kotlin-util-klib:1.9.22": { + "kotlin-util-klib-1.9.22.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-util-klib/1.9.22/kotlin-util-klib-1.9.22.jar" + ], + "hash": "sha256-pnnuL1EPOrkmkYGN5etbCQLobYjJdnTn20TcTyJSxfk=" + }, + "kotlin-util-klib-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/kotlin-util-klib/1.9.22/kotlin-util-klib-1.9.22.pom" + ], + "hash": "sha256-Dep9//Cit0CIrJlwQ8vCQINdK/9Zs5/MiwysbqPrNpc=" + } + }, + "org.jetbrains.kotlin.jvm:org.jetbrains.kotlin.jvm.gradle.plugin:1.9.22": { + "org.jetbrains.kotlin.jvm.gradle.plugin-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/jvm/org.jetbrains.kotlin.jvm.gradle.plugin/1.9.22/org.jetbrains.kotlin.jvm.gradle.plugin-1.9.22.pom" + ], + "hash": "sha256-HLTsuTPJGbL7/XZe/KX+SQeghxLoyZQsM6IIsrFpsYw=" + } + }, + "org.jetbrains.kotlin.plugin.serialization:org.jetbrains.kotlin.plugin.serialization.gradle.plugin:1.9.22": { + "org.jetbrains.kotlin.plugin.serialization.gradle.plugin-1.9.22.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlin/plugin/serialization/org.jetbrains.kotlin.plugin.serialization.gradle.plugin/1.9.22/org.jetbrains.kotlin.plugin.serialization.gradle.plugin-1.9.22.pom" + ], + "hash": "sha256-+9WDi7OolDJys/EfhJrIlDeJL9MJstA012QjjEVPoyI=" + } + }, + "org.jetbrains.kotlinx:atomicfu:0.23.1": { + "atomicfu-0.23.1.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/atomicfu/0.23.1/atomicfu-0.23.1.jar" + ], + "hash": "sha256-fbhmDr5LkbtHjts2FsTjpQulnAfcpRfR4ShMA/6GrFc=" + }, + "atomicfu-0.23.1.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/atomicfu/0.23.1/atomicfu-0.23.1.module" + ], + "hash": "sha256-Pokf5ja1UQgZIQD884saObzRwlM+I8Ri/AdkTur8sg8=" + }, + "atomicfu-0.23.1.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/atomicfu/0.23.1/atomicfu-0.23.1.pom" + ], + "hash": "sha256-aIt5ABn0F87APmldZWexc7o7skGJVBZi8U/2ZEG1Pas=" + } + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.8.1": { + "kotlinx-coroutines-bom-1.8.1.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-bom/1.8.1/kotlinx-coroutines-bom-1.8.1.pom" + ], + "hash": "sha256-Vj5Kop+o/gmm4XRtCltRMI98fe3EaNxaDKgQpIWHcDA=" + } + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.8.0": { + "kotlinx-coroutines-bom-1.8.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-bom/1.8.0/kotlinx-coroutines-bom-1.8.0.pom" + ], + "hash": "sha256-Ejnp2+E5fNWXE0KVayURvDrOe2QYQuQ3KgiNz6i5rVU=" + } + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.7.1": { + "kotlinx-coroutines-bom-1.7.1.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-bom/1.7.1/kotlinx-coroutines-bom-1.7.1.pom" + ], + "hash": "sha256-uSWqmIxApceqDHeyE3P+sYw5QUkmvVHHbvRENPW66cI=" + } + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.1": { + "kotlinx-coroutines-core-1.8.1.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-core/1.8.1/kotlinx-coroutines-core-1.8.1.jar" + ], + "hash": "sha256-2vUPHJQEsiSh1t1Shvjo7n1j/oB/eOqY9xeVwYO2Al8=" + }, + "kotlinx-coroutines-core-1.8.1.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-core/1.8.1/kotlinx-coroutines-core-1.8.1.module" + ], + "hash": "sha256-CMuvMyW1Tg+O+NqF5OtZb32Ub4Q+XRYAOFRj8yaKTvA=" + }, + "kotlinx-coroutines-core-1.8.1.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-core/1.8.1/kotlinx-coroutines-core-1.8.1.pom" + ], + "hash": "sha256-+IkY2/qHh8TRcasCVToUrR3viqmwxcLCDMmUVdMkHiI=" + } + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.0": { + "kotlinx-coroutines-core-1.8.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-core/1.8.0/kotlinx-coroutines-core-1.8.0.jar" + ], + "hash": "sha256-IKpDS2qTDqZtLmGwDe764J/qPTL5ZA0uDCcTEogOCt0=" + }, + "kotlinx-coroutines-core-1.8.0.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-core/1.8.0/kotlinx-coroutines-core-1.8.0.module" + ], + "hash": "sha256-FE7s1TZd4+MNe0YibAWAUeOZVbXBieMfpMfP+5nWILo=" + }, + "kotlinx-coroutines-core-1.8.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-core/1.8.0/kotlinx-coroutines-core-1.8.0.pom" + ], + "hash": "sha256-yglaS/iLR0+trOgzLBCXC3nLgBu/XfBHo5Ov4Ql28yE=" + } + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.8.1": { + "kotlinx-coroutines-core-jvm-1.8.1.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-core-jvm/1.8.1/kotlinx-coroutines-core-jvm-1.8.1.jar" + ], + "hash": "sha256-89T13hw5G7zCDzs0Ncy6wBNSHna2kC19WWNewVwfeX4=" + }, + "kotlinx-coroutines-core-jvm-1.8.1.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-core-jvm/1.8.1/kotlinx-coroutines-core-jvm-1.8.1.module" + ], + "hash": "sha256-CbgcnRHC3uvxM62HtweSfB8ECZy2Ee8AjHcls+swgyk=" + }, + "kotlinx-coroutines-core-jvm-1.8.1.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-core-jvm/1.8.1/kotlinx-coroutines-core-jvm-1.8.1.pom" + ], + "hash": "sha256-R8alCxQVHo+vfzUKlSNcN9EqvDi/sFW2aJdCkxctryw=" + } + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.8.0": { + "kotlinx-coroutines-core-jvm-1.8.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-core-jvm/1.8.0/kotlinx-coroutines-core-jvm-1.8.0.jar" + ], + "hash": "sha256-mGCQahk3SQv187BtLw4Q70UeZblbJp8i2vaKPR9QZcU=" + }, + "kotlinx-coroutines-core-jvm-1.8.0.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-core-jvm/1.8.0/kotlinx-coroutines-core-jvm-1.8.0.module" + ], + "hash": "sha256-/2oi2kAECTh1HbCuIRd+dlF9vxJqdnlvVCZye/dsEig=" + }, + "kotlinx-coroutines-core-jvm-1.8.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-core-jvm/1.8.0/kotlinx-coroutines-core-jvm-1.8.0.pom" + ], + "hash": "sha256-pWM6vVNGfOuRYi2B8umCCAh3FF4LduG3V4hxVDSIXQs=" + } + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.5.0": { + "kotlinx-coroutines-core-jvm-1.5.0.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlinx/kotlinx-coroutines-core-jvm/1.5.0/kotlinx-coroutines-core-jvm-1.5.0.jar", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-core-jvm/1.5.0/kotlinx-coroutines-core-jvm-1.5.0.jar" + ], + "hash": "sha256-eNbMcTX4TWkv83Uvz9H6G74JQNffcGUuTx6u7Ax4r7s=" + }, + "kotlinx-coroutines-core-jvm-1.5.0.module": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlinx/kotlinx-coroutines-core-jvm/1.5.0/kotlinx-coroutines-core-jvm-1.5.0.module", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-core-jvm/1.5.0/kotlinx-coroutines-core-jvm-1.5.0.module" + ], + "hash": "sha256-yIXdAoEHbFhDgm3jF+PLzcPYhZ2+71OuHPrNG5xg+W4=" + }, + "kotlinx-coroutines-core-jvm-1.5.0.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/jetbrains/kotlinx/kotlinx-coroutines-core-jvm/1.5.0/kotlinx-coroutines-core-jvm-1.5.0.pom", + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-core-jvm/1.5.0/kotlinx-coroutines-core-jvm-1.5.0.pom" + ], + "hash": "sha256-U2IuA3eN+EQPwBIgGjW7S9/kAWTv7GErvvze7LL/wqs=" + } + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-debug:1.8.1": { + "kotlinx-coroutines-debug-1.8.1.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-debug/1.8.1/kotlinx-coroutines-debug-1.8.1.jar" + ], + "hash": "sha256-JFUwMZoX18m8ShFSb0LpV1Dkqz/IZMlA2evo9UjqGHA=" + }, + "kotlinx-coroutines-debug-1.8.1.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-debug/1.8.1/kotlinx-coroutines-debug-1.8.1.module" + ], + "hash": "sha256-CA+LzOocTvqCk+0p/5z3xKfR0s3ekBzIZKz3Ly6AdXI=" + }, + "kotlinx-coroutines-debug-1.8.1.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-debug/1.8.1/kotlinx-coroutines-debug-1.8.1.pom" + ], + "hash": "sha256-x9+Ci/O0+ofumYH7ATaN1NwHmV0XzLqPpmEhcTwF69Q=" + } + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-debug:1.8.0": { + "kotlinx-coroutines-debug-1.8.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-debug/1.8.0/kotlinx-coroutines-debug-1.8.0.jar" + ], + "hash": "sha256-Zy1UU0UXCoyrgoeygZRL55DWdUWXK+vdVKor9MhsxT8=" + }, + "kotlinx-coroutines-debug-1.8.0.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-debug/1.8.0/kotlinx-coroutines-debug-1.8.0.module" + ], + "hash": "sha256-piquUrrd+ncw5Wey6kHzYOoQqbN8FiJDqNIaWnySHGI=" + }, + "kotlinx-coroutines-debug-1.8.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-debug/1.8.0/kotlinx-coroutines-debug-1.8.0.pom" + ], + "hash": "sha256-EZPR60nUsUgNqlrGIBctfcmZFidM2Ra+NpQVLA5vb3w=" + } + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.8.1": { + "kotlinx-coroutines-jdk8-1.8.1.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-jdk8/1.8.1/kotlinx-coroutines-jdk8-1.8.1.jar" + ], + "hash": "sha256-2M+0w2PJHHczU7EVvUprWgRgjnkW/iNdOp2H78uZbAE=" + }, + "kotlinx-coroutines-jdk8-1.8.1.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-jdk8/1.8.1/kotlinx-coroutines-jdk8-1.8.1.module" + ], + "hash": "sha256-Ifl7EL6TJkGBfTULclRP+LoyQYf/uREMbo2IESdv2TM=" + }, + "kotlinx-coroutines-jdk8-1.8.1.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-jdk8/1.8.1/kotlinx-coroutines-jdk8-1.8.1.pom" + ], + "hash": "sha256-3uCuamO2M1ETIAqW2eHHgJ32DQ1CS7/xy7tTsxQWWvk=" + } + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.8.0": { + "kotlinx-coroutines-jdk8-1.8.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-jdk8/1.8.0/kotlinx-coroutines-jdk8-1.8.0.jar" + ], + "hash": "sha256-2EGf2zy6quxAfmKrFL5WQ20edrW/MyRMV2VWH8E/0Gs=" + }, + "kotlinx-coroutines-jdk8-1.8.0.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-jdk8/1.8.0/kotlinx-coroutines-jdk8-1.8.0.module" + ], + "hash": "sha256-HKyxz+5adTBFR1rzCF+4DcnMzjA3VKnVIApB3/W+AOk=" + }, + "kotlinx-coroutines-jdk8-1.8.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-jdk8/1.8.0/kotlinx-coroutines-jdk8-1.8.0.pom" + ], + "hash": "sha256-4ZIahLHW5/k6SUgCfRhUHXWjDi6KZNem5DEAMZVR8r0=" + } + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.7.1": { + "kotlinx-coroutines-jdk8-1.7.1.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-jdk8/1.7.1/kotlinx-coroutines-jdk8-1.7.1.module" + ], + "hash": "sha256-sJV+aTzxwefUrWJGqm4weV2/S/t1jB5LMv25wkQJuXM=" + }, + "kotlinx-coroutines-jdk8-1.7.1.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-jdk8/1.7.1/kotlinx-coroutines-jdk8-1.7.1.pom" + ], + "hash": "sha256-x3kWU2lOpaVLnN1HCAgtv7i9apeKX0IYSxFBz7SjDnU=" + } + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-test:1.8.1": { + "kotlinx-coroutines-test-1.8.1.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-test/1.8.1/kotlinx-coroutines-test-1.8.1.module" + ], + "hash": "sha256-oc7i2rKWwTt47BwGDhj+QDNKRAyKB36QzKbeclJ9jN4=" + }, + "kotlinx-coroutines-test-1.8.1.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-test/1.8.1/kotlinx-coroutines-test-1.8.1.pom" + ], + "hash": "sha256-TyiEIOjObP+RUgyfq9bK9o0C2GtkCp8hKPh6TkZtwlg=" + } + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-test:1.8.0": { + "kotlinx-coroutines-test-1.8.0.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-test/1.8.0/kotlinx-coroutines-test-1.8.0.module" + ], + "hash": "sha256-DsPHX/2ZpqLfto8wfy8vcxQckz5Yt3sQTxyMrDr9U5Q=" + }, + "kotlinx-coroutines-test-1.8.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-test/1.8.0/kotlinx-coroutines-test-1.8.0.pom" + ], + "hash": "sha256-NV8/pvBjDl6ZuHxywcQ4YgKin0lpFeOHWaOK3gsGkAQ=" + } + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-test-jvm:1.8.1": { + "kotlinx-coroutines-test-jvm-1.8.1.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-test-jvm/1.8.1/kotlinx-coroutines-test-jvm-1.8.1.jar" + ], + "hash": "sha256-xO8d6zG+P4HtguzyNyIMyViGhop+xSekGFmd//FZ3ts=" + }, + "kotlinx-coroutines-test-jvm-1.8.1.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-test-jvm/1.8.1/kotlinx-coroutines-test-jvm-1.8.1.module" + ], + "hash": "sha256-+wj8JXyQBDPS35l71sKeBJzZ979UHAt3YYDgmYJB9XY=" + }, + "kotlinx-coroutines-test-jvm-1.8.1.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-test-jvm/1.8.1/kotlinx-coroutines-test-jvm-1.8.1.pom" + ], + "hash": "sha256-4qht+xaCAWeYuVoPAGy0tdAQRsVaAS6hs2vSAjLcVXQ=" + } + }, + "org.jetbrains.kotlinx:kotlinx-coroutines-test-jvm:1.8.0": { + "kotlinx-coroutines-test-jvm-1.8.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-test-jvm/1.8.0/kotlinx-coroutines-test-jvm-1.8.0.jar" + ], + "hash": "sha256-FTXMH0MjXYVm+NW8bRwR8HBBF+TlY/Ls5+aqPmhpXyA=" + }, + "kotlinx-coroutines-test-jvm-1.8.0.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-test-jvm/1.8.0/kotlinx-coroutines-test-jvm-1.8.0.module" + ], + "hash": "sha256-HS0Zc6L0GowMEmPmCyXneS9ji4xV18ocbQZztkvlfac=" + }, + "kotlinx-coroutines-test-jvm-1.8.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-coroutines-test-jvm/1.8.0/kotlinx-coroutines-test-jvm-1.8.0.pom" + ], + "hash": "sha256-BtHlPqNm5to7FxkwV1+RYnzxnkUqTnqfDeMNLwQdZFE=" + } + }, + "org.jetbrains.kotlinx:kotlinx-serialization-bom:1.6.3": { + "kotlinx-serialization-bom-1.6.3.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-serialization-bom/1.6.3/kotlinx-serialization-bom-1.6.3.pom" + ], + "hash": "sha256-KdaYQrt9RJviqkreakp85qpVgn0KsT0Wh0X+bZVzkzI=" + } + }, + "org.jetbrains.kotlinx:kotlinx-serialization-bom:1.6.2": { + "kotlinx-serialization-bom-1.6.2.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-serialization-bom/1.6.2/kotlinx-serialization-bom-1.6.2.pom" + ], + "hash": "sha256-ew4dde6GIUmc+VQwyhL9qjL0p/kg1cMBv+lfoYfyczc=" + } + }, + "org.jetbrains.kotlinx:kotlinx-serialization-core:1.6.3": { + "kotlinx-serialization-core-1.6.3.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-serialization-core/1.6.3/kotlinx-serialization-core-1.6.3.jar" + ], + "hash": "sha256-L6Ba/w8zpw2oc8CaD/ZrXVTM3BXjnnykuCYz5wx5LzQ=" + }, + "kotlinx-serialization-core-1.6.3.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-serialization-core/1.6.3/kotlinx-serialization-core-1.6.3.module" + ], + "hash": "sha256-Nh6eMetylhdLdAhaxJ7dhKTzkAupQxpOQM0cI952oyg=" + }, + "kotlinx-serialization-core-1.6.3.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-serialization-core/1.6.3/kotlinx-serialization-core-1.6.3.pom" + ], + "hash": "sha256-0tv2/BU2TIlp1qq24+zMdROZU/LMBXtzDjUmdGWztX4=" + } + }, + "org.jetbrains.kotlinx:kotlinx-serialization-core:1.6.2": { + "kotlinx-serialization-core-1.6.2.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-serialization-core/1.6.2/kotlinx-serialization-core-1.6.2.module" + ], + "hash": "sha256-arz0gTrJTfA3AS4xZzaKNEUHD9+OqyHQjYhtTtnC+2c=" + }, + "kotlinx-serialization-core-1.6.2.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-serialization-core/1.6.2/kotlinx-serialization-core-1.6.2.pom" + ], + "hash": "sha256-BibddZLIUwKToOPoHgiBltNRh3o422hHaTY3S6ZJ+S8=" + } + }, + "org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.6.3": { + "kotlinx-serialization-core-jvm-1.6.3.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-serialization-core-jvm/1.6.3/kotlinx-serialization-core-jvm-1.6.3.jar" + ], + "hash": "sha256-KcghqNTiXL/k8s6WzdRSb2H49OaaE1+WEqNKgdk7ZfE=" + }, + "kotlinx-serialization-core-jvm-1.6.3.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-serialization-core-jvm/1.6.3/kotlinx-serialization-core-jvm-1.6.3.module" + ], + "hash": "sha256-MpEE29NOS96QVhHUJ8dYTlPD+MQRg2+59pmsnbpbqmw=" + }, + "kotlinx-serialization-core-jvm-1.6.3.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-serialization-core-jvm/1.6.3/kotlinx-serialization-core-jvm-1.6.3.pom" + ], + "hash": "sha256-K0qolJn8AbMNHBB1lmmOCvQ0BBLVQBnFAdm6ayk7oro=" + } + }, + "org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.3": { + "kotlinx-serialization-json-1.6.3.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-serialization-json/1.6.3/kotlinx-serialization-json-1.6.3.jar" + ], + "hash": "sha256-jAAWiQp5q1mA3VIKWrGmc4AjwpqjtkN8SC4OX9wG2rE=" + }, + "kotlinx-serialization-json-1.6.3.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-serialization-json/1.6.3/kotlinx-serialization-json-1.6.3.module" + ], + "hash": "sha256-gNHYf6CmO/+Dleo5EL2oDQnw9YNQTd6o7QB7x6hrTNQ=" + }, + "kotlinx-serialization-json-1.6.3.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-serialization-json/1.6.3/kotlinx-serialization-json-1.6.3.pom" + ], + "hash": "sha256-KcIhdhjlMdfYMsyICupu0aj0B3PkN/WkHXC9FUaNPOM=" + } + }, + "org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.6.3": { + "kotlinx-serialization-json-jvm-1.6.3.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-serialization-json-jvm/1.6.3/kotlinx-serialization-json-jvm-1.6.3.jar" + ], + "hash": "sha256-0yNBebz/GIbVPWfBHspH9/PPe2PDSdFpZfbbUbfz3Zo=" + }, + "kotlinx-serialization-json-jvm-1.6.3.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-serialization-json-jvm/1.6.3/kotlinx-serialization-json-jvm-1.6.3.module" + ], + "hash": "sha256-InoqmtOMAQsQe8gFjNYVF32lqqhts399WNSdnJt/l9A=" + }, + "kotlinx-serialization-json-jvm-1.6.3.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/jetbrains/kotlinx/kotlinx-serialization-json-jvm/1.6.3/kotlinx-serialization-json-jvm-1.6.3.pom" + ], + "hash": "sha256-eN9n0GTTuq8a9Ohi6YFGl3YpfGyHi7e/G0Ljky9vr48=" + } + }, + "org.junit:junit-bom:5.9.1": { + "junit-bom-5.9.1.module": { + "urls": [ + "https://plugins.gradle.org/m2/org/junit/junit-bom/5.9.1/junit-bom-5.9.1.module" + ], + "hash": "sha256-kCbBZWaQ+hRa117Og2dCEaoSrYkwqRsQfC9c3s4vGxw=" + }, + "junit-bom-5.9.1.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/junit/junit-bom/5.9.1/junit-bom-5.9.1.pom" + ], + "hash": "sha256-sWPBz8j8H9WLRXoA1YbATEbphtdZBOnKVMA6l9ZbSWw=" + } + }, + "org.junit:junit-bom:5.8.2": { + "junit-bom-5.8.2.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/junit/junit-bom/5.8.2/junit-bom-5.8.2.module" + ], + "hash": "sha256-QM+tmT+nDs3yr3TQxW2hSE7iIJZL6Pkyz+YyvponM/o=" + }, + "junit-bom-5.8.2.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/junit/junit-bom/5.8.2/junit-bom-5.8.2.pom" + ], + "hash": "sha256-g2Bpyp6O48VuSDdiItopEmPxN70/0W2E/dR+/MPyhuI=" + } + }, + "org.junit:junit-bom:5.7.2": { + "junit-bom-5.7.2.module": { + "urls": [ + "https://plugins.gradle.org/m2/org/junit/junit-bom/5.7.2/junit-bom-5.7.2.module" + ], + "hash": "sha256-87zrHFndT2mT9DBN/6WAFyuN9lp2zTb6T9ksBXjSitg=" + }, + "junit-bom-5.7.2.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/junit/junit-bom/5.7.2/junit-bom-5.7.2.pom" + ], + "hash": "sha256-zRSqqGmZH4ICHFhdVw0x/zQry6WLtEIztwGTdxuWSHs=" + } + }, + "org.junit.jupiter:junit-jupiter-api:5.8.2": { + "junit-jupiter-api-5.8.2.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/junit/jupiter/junit-jupiter-api/5.8.2/junit-jupiter-api-5.8.2.jar" + ], + "hash": "sha256-GAjuh+D3GM1uJfO3WvwXlWrIo+3EjH6bq58Z+aeeOAE=" + }, + "junit-jupiter-api-5.8.2.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/junit/jupiter/junit-jupiter-api/5.8.2/junit-jupiter-api-5.8.2.module" + ], + "hash": "sha256-fpr03/9iZ6zd0VfZ4Rug1dyRszL6dLxMZZOeRReht3A=" + }, + "junit-jupiter-api-5.8.2.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/junit/jupiter/junit-jupiter-api/5.8.2/junit-jupiter-api-5.8.2.pom" + ], + "hash": "sha256-yb3jYieVswp3NTHoXFgy+NyKp37N0xPu4jXJg8v9Anc=" + } + }, + "org.junit.platform:junit-platform-commons:1.8.2": { + "junit-platform-commons-1.8.2.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/junit/platform/junit-platform-commons/1.8.2/junit-platform-commons-1.8.2.jar" + ], + "hash": "sha256-0uAV/KcTDnmvL0YI3FRBXksQtZLXczPey0saJ0wYUFA=" + }, + "junit-platform-commons-1.8.2.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/junit/platform/junit-platform-commons/1.8.2/junit-platform-commons-1.8.2.module" + ], + "hash": "sha256-NChH0wRv6kNVlWkttPBdXwOeDh0eIE9NV1WQJVcIJiY=" + }, + "junit-platform-commons-1.8.2.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/junit/platform/junit-platform-commons/1.8.2/junit-platform-commons-1.8.2.pom" + ], + "hash": "sha256-zoUuNMahhKpsgO6N8EcXE6dAgTQTTwjjwcPdh8a1mrc=" + } + }, + "org.junit.platform:junit-platform-engine:1.8.2": { + "junit-platform-engine-1.8.2.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/junit/platform/junit-platform-engine/1.8.2/junit-platform-engine-1.8.2.jar" + ], + "hash": "sha256-C30AD4w+jl99a4GWSZNue5k4MU6HyPmDgFIY6ldWflk=" + }, + "junit-platform-engine-1.8.2.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/junit/platform/junit-platform-engine/1.8.2/junit-platform-engine-1.8.2.module" + ], + "hash": "sha256-66d7Nu/fdaZ/RkODM4JfnkSPVQ1SHnJJ2VA1hYDuY2s=" + }, + "junit-platform-engine-1.8.2.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/junit/platform/junit-platform-engine/1.8.2/junit-platform-engine-1.8.2.pom" + ], + "hash": "sha256-AWhkMmYGDtko71qBgjAD7PrnmpqMC7/Xb0IBxsnXccU=" + } + }, + "org.junit.platform:junit-platform-launcher:1.8.2": { + "junit-platform-launcher-1.8.2.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/junit/platform/junit-platform-launcher/1.8.2/junit-platform-launcher-1.8.2.jar" + ], + "hash": "sha256-giFWQJ/YPmguTFGZs0YAVCmbU4oFjCxtD1ybalvbdZQ=" + }, + "junit-platform-launcher-1.8.2.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/junit/platform/junit-platform-launcher/1.8.2/junit-platform-launcher-1.8.2.module" + ], + "hash": "sha256-4XQA7HvnYIwfiI1yG0MAHpc2wVDUD5jIoLzalWPYyus=" + }, + "junit-platform-launcher-1.8.2.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/junit/platform/junit-platform-launcher/1.8.2/junit-platform-launcher-1.8.2.pom" + ], + "hash": "sha256-tfancaautzyJpud/Vtcp9LqOta/dDxD0TbRNaq25UJU=" + } + }, + "org.junit.platform:junit-platform-suite-api:1.8.2": { + "junit-platform-suite-api-1.8.2.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/junit/platform/junit-platform-suite-api/1.8.2/junit-platform-suite-api-1.8.2.jar" + ], + "hash": "sha256-lO80OwW4dbsuTvlKfMYuYQ4bnNeCR+Ky7EPtYYoe0Kc=" + }, + "junit-platform-suite-api-1.8.2.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/junit/platform/junit-platform-suite-api/1.8.2/junit-platform-suite-api-1.8.2.module" + ], + "hash": "sha256-kwagU4n8QNetnQsSigFEMOXRyldKGErujXhns+iRC3o=" + }, + "junit-platform-suite-api-1.8.2.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/junit/platform/junit-platform-suite-api/1.8.2/junit-platform-suite-api-1.8.2.pom" + ], + "hash": "sha256-QB/ZdNa5RmRSS+y3z4B8TUfXxXSy+vGxMeukiUn+mJg=" + } + }, + "org.opentest4j:opentest4j:1.3.0": { + "opentest4j-1.3.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/opentest4j/opentest4j/1.3.0/opentest4j-1.3.0.jar" + ], + "hash": "sha256-SOLfY2yrZWPO1k3N/4q7I1VifLI27wvzdZhoLd90Lxs=" + }, + "opentest4j-1.3.0.module": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/opentest4j/opentest4j/1.3.0/opentest4j-1.3.0.module" + ], + "hash": "sha256-SL8dbItdyU90ZSvReQD2VN63FDUCSM9ej8onuQkMjg0=" + }, + "opentest4j-1.3.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/opentest4j/opentest4j/1.3.0/opentest4j-1.3.0.pom" + ], + "hash": "sha256-m/fP/EEPPoNywlIleN+cpW2dQ72TfjCUhwbCMqlDs1U=" + } + }, + "org.opentest4j:opentest4j:1.2.0": { + "opentest4j-1.2.0.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/opentest4j/opentest4j/1.2.0/opentest4j-1.2.0.jar" + ], + "hash": "sha256-WIEt5giY2Xb7ge87YtoFxmBMGP1KJJ9QRCgkefwoavI=" + }, + "opentest4j-1.2.0.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/opentest4j/opentest4j/1.2.0/opentest4j-1.2.0.pom" + ], + "hash": "sha256-qW5nGBbB/4gDvex0ySQfAlvfsnfaXStO4CJmQFk2+ZQ=" + } + }, + "org.ow2:ow2:1.5.1": { + "ow2-1.5.1.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/ow2/ow2/1.5.1/ow2-1.5.1.pom" + ], + "hash": "sha256-Mh3bt+5v5PU96mtM1tt0FU1r+kI5HB92OzYbn0hazwU=" + } + }, + "org.ow2.asm:asm:9.4": { + "asm-9.4.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/ow2/asm/asm/9.4/asm-9.4.jar" + ], + "hash": "sha256-OdDis9xFr2Wgmwl5RXUKlKEm4FLhJPk0aEQ6HQ4V84E=" + }, + "asm-9.4.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/ow2/asm/asm/9.4/asm-9.4.pom" + ], + "hash": "sha256-SDdR5I+y0fQ8Ya06sA/6Rm7cAzPY/C/bWibpXTKYI5Q=" + } + }, + "org.ow2.asm:asm-commons:9.4": { + "asm-commons-9.4.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/ow2/asm/asm-commons/9.4/asm-commons-9.4.jar" + ], + "hash": "sha256-DBKKnsPzPJiVknL20WzxQke1CPWJUVdLzb0rVtYyY2Q=" + }, + "asm-commons-9.4.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/ow2/asm/asm-commons/9.4/asm-commons-9.4.pom" + ], + "hash": "sha256-tCyiq8+IEXdqXdwCkPIQbX8xP4LHiw3czVzOTGOjUXk=" + } + }, + "org.ow2.asm:asm-tree:9.4": { + "asm-tree-9.4.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/ow2/asm/asm-tree/9.4/asm-tree-9.4.jar" + ], + "hash": "sha256-xC1HnPJFZqIesgr37q7vToa9tKiGMGz3L0g7ZedbKs8=" + }, + "asm-tree-9.4.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/ow2/asm/asm-tree/9.4/asm-tree-9.4.pom" + ], + "hash": "sha256-x+nvk73YqzYwMs5TgvzGTQAtbFicF1IzI2zSmOUaPBY=" + } + }, + "org.slf4j:slf4j-api:2.1.0-alpha1": { + "slf4j-api-2.1.0-alpha1.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/slf4j/slf4j-api/2.1.0-alpha1/slf4j-api-2.1.0-alpha1.jar" + ], + "hash": "sha256-mrf/pkYgK0mdBZlaPsgvMbzLelA0XBUU2MtC7IzOo1M=" + }, + "slf4j-api-2.1.0-alpha1.pom": { + "urls": [ + "https://repo.gradle.org/gradle/libs-releases/org/slf4j/slf4j-api/2.1.0-alpha1/slf4j-api-2.1.0-alpha1.pom", + "https://repo.maven.apache.org/maven2/org/slf4j/slf4j-api/2.1.0-alpha1/slf4j-api-2.1.0-alpha1.pom" + ], + "hash": "sha256-QirqW+u6gwWzxhT6Zo7SKePJYQkw7PQvhzOO4F4minU=" + } + }, + "org.slf4j:slf4j-bom:2.1.0-alpha1": { + "slf4j-bom-2.1.0-alpha1.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/slf4j/slf4j-bom/2.1.0-alpha1/slf4j-bom-2.1.0-alpha1.pom" + ], + "hash": "sha256-qOgTiZePRAcJJBuYPTHvp4cRO+EbgYwsa82e0wlv1IU=" + } + }, + "org.slf4j:slf4j-parent:2.1.0-alpha1": { + "slf4j-parent-2.1.0-alpha1.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/slf4j/slf4j-parent/2.1.0-alpha1/slf4j-parent-2.1.0-alpha1.pom" + ], + "hash": "sha256-zkc1sfnIId4Lkrjb5AsHHG6jIHMuWTVZxupt+WX4c48=" + } + }, + "org.slf4j:slf4j-simple:2.1.0-alpha1": { + "slf4j-simple-2.1.0-alpha1.jar": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/slf4j/slf4j-simple/2.1.0-alpha1/slf4j-simple-2.1.0-alpha1.jar" + ], + "hash": "sha256-AU/trHoyKI7W+PcqEAfn+zKuxb/tsnFGfkluCVNIL3U=" + }, + "slf4j-simple-2.1.0-alpha1.pom": { + "urls": [ + "https://repo.gradle.org/gradle/libs-releases/org/slf4j/slf4j-simple/2.1.0-alpha1/slf4j-simple-2.1.0-alpha1.pom", + "https://repo.maven.apache.org/maven2/org/slf4j/slf4j-simple/2.1.0-alpha1/slf4j-simple-2.1.0-alpha1.pom" + ], + "hash": "sha256-RgReG+EA94JLUITh83eCxoBJcEeKRXPejEmgfQOpSGM=" + } + }, + "org.sonatype.oss:oss-parent:9": { + "oss-parent-9.pom": { + "urls": [ + "https://repo.maven.apache.org/maven2/org/sonatype/oss/oss-parent/9/oss-parent-9.pom" + ], + "hash": "sha256-+0AmX5glSCEv+C42LllzKyGH7G8NgBgohcFO8fmCgno=" + } + }, + "org.sonatype.oss:oss-parent:7": { + "oss-parent-7.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/sonatype/oss/oss-parent/7/oss-parent-7.pom" + ], + "hash": "sha256-tR+IZ8kranIkmVV/w6H96ne9+e9XRyL+kM5DailVlFQ=" + } + }, + "org.springframework:spring-framework-bom:5.3.24": { + "spring-framework-bom-5.3.24.module": { + "urls": [ + "https://plugins.gradle.org/m2/org/springframework/spring-framework-bom/5.3.24/spring-framework-bom-5.3.24.module" + ], + "hash": "sha256-GZbh9hfLA/p26hGFD+Kh4gsOMKEEa6bV2zvbv0QRP84=" + }, + "spring-framework-bom-5.3.24.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/springframework/spring-framework-bom/5.3.24/spring-framework-bom-5.3.24.pom" + ], + "hash": "sha256-U1ITVmu77+Jjag1OjdGnOt5hLiQwyP/TENzCo7O5ukE=" + } + }, + "org.vafer:jdependency:2.8.0": { + "jdependency-2.8.0.jar": { + "urls": [ + "https://plugins.gradle.org/m2/org/vafer/jdependency/2.8.0/jdependency-2.8.0.jar" + ], + "hash": "sha256-v9LMfhv8eKqDtEwKVL8s3jikOC7CRyivaD2Y3GvngZI=" + }, + "jdependency-2.8.0.pom": { + "urls": [ + "https://plugins.gradle.org/m2/org/vafer/jdependency/2.8.0/jdependency-2.8.0.pom" + ], + "hash": "sha256-EBhn8/npJlei74mjELYE1D0JDJuQqj4LBS3NFqO78y0=" + } + } +} \ No newline at end of file diff --git a/gradle.nix b/gradle.nix new file mode 100644 index 0000000..dba9916 --- /dev/null +++ b/gradle.nix @@ -0,0 +1,292 @@ +# This file is generated by gradle2nix. +# +# Example usage (e.g. in default.nix): +# +# with (import {}); +# let +# buildGradle = callPackage ./gradle.nix {}; +# in +# buildGradle { +# lockFile = ./gradle.lock; +# +# src = ./.; +# +# gradleFlags = [ "installDist" ]; +# +# installPhase = '' +# mkdir -p $out +# cp -r app/build/install/myproject $out +# ''; +# } + +{ lib +, stdenv +, buildEnv +, fetchs3 +, fetchurl +, gradle +, maven +, runCommandLocal +, symlinkJoin +, writeText +, writeTextDir +}: + +{ + # Path to the lockfile generated by gradle2nix (e.g. gradle.lock). + lockFile +, pname ? "project" +, version ? null +, enableParallelBuilding ? true +# Arguments to Gradle used to build the project in buildPhase. +, gradleFlags ? [ "build" ] +# Enable debugging for the Gradle build; this will cause Gradle to run a debug server +# and wait for a JVM debugging client to attach. +, enableDebug ? false +# Additional code to run in the Gradle init script (init.gradle). +, extraInit ? "" +# Override the default JDK used to run Gradle itself. +, buildJdk ? null +# Override functions which fetch dependency artifacts. +# Keys in this set are URL schemes such as "https" or "s3". +# Values are functions which take a dependency in the form +# `{ urls, hash }` and fetch into the Nix store. For example: +# +# { +# s3 = { name, urls, hash }: fetchs3 { +# s3url = builtins.head urls; +# # TODO This doesn't work without patching fetchs3 to accept SRI hashes +# inherit name hash; +# region = "us-west-2"; +# credentials = { +# access_key_id = "foo"; +# secret_access_key = "bar"; +# }; +# }; +# } +, fetchers ? { } +, ... } @ args: + +let + inherit (builtins) + attrValues concatStringsSep elemAt filter fromJSON getAttr hasAttr head length match + removeAttrs replaceStrings sort; + + inherit (lib) + assertMsg concatMapStringsSep findFirst foldl' groupBy' hasSuffix hasPrefix last mapAttrs + mapAttrsToList optionalAttrs optionalString readFile removeSuffix unique versionAtLeast + versionOlder; + + inherit (lib.strings) sanitizeDerivationName; + + lockedDeps = fromJSON (readFile lockFile); + + toCoordinates = id: + let + coords = builtins.split ":" id; + in rec { + group = elemAt coords 0; + module = elemAt coords 2; + version = elemAt coords 4; + versionParts = parseVersion version; + }; + + parseVersion = version: + let + parts = builtins.split ":" version; + base = elemAt parts 0; + in + { + inherit base; + exact = base; + } + // optionalAttrs (length parts >= 2) ( + let + snapshot = elemAt parts 2; + exact = replaceStrings [ "-SNAPSHOT" ] [ "-${snapshot}" ] base; + parts = builtins.split "-" timestamp; + timestamp = findFirst (match "[0-9]{8}\.[0-9]{6}") parts; + buildNumber = let lastPart = last parts; in if match "[0-9]+" lastPart then lastPart else null; + in + { inherit snapshot exact timestamp buildNumber; } + ); + + fetchers' = { + http = fetchurl; + https = fetchurl; + } // fetchers; + + # Fetch urls using the scheme for the first entry only; there isn't a + # straightforward way to tell Nix to try multiple fetchers in turn + # and short-circuit on the first successful fetch. + fetch = name: { urls, hash }: + let + first = head urls; + scheme = head (builtins.match "([a-z0-9+.-]+)://.*" first); + fetch' = getAttr scheme fetchers'; + urls' = filter (hasPrefix scheme) urls; + in + fetch' { urls = urls'; inherit hash; }; + + mkModule = id: artifacts: + let + coords = toCoordinates id; + modulePath = "${replaceStrings ["."] ["/"] coords.group}/${coords.module}/${coords.version}"; + in + stdenv.mkDerivation { + pname = sanitizeDerivationName "${coords.group}-${coords.module}"; + version = coords.versionParts.exact; + + srcs = mapAttrsToList fetch artifacts; + + dontPatch = true; + dontConfigure = true; + dontBuild = true; + dontFixup = true; + dontInstall = true; + + preUnpack = '' + mkdir -p "$out/${modulePath}" + ''; + + unpackCmd = '' + cp "$curSrc" "$out/${modulePath}/$(stripHash "$curSrc")" + ''; + + sourceRoot = "."; + + preferLocalBuild = true; + allowSubstitutes = false; + }; + + offlineRepo = symlinkJoin { + name = if version != null then "${pname}-${version}-gradle-repo" else "${pname}-gradle-repo"; + paths = mapAttrsToList mkModule lockedDeps; + }; + + initScript = + let + inSettings = pred: script: + optionalString pred ( + if versionAtLeast gradle.version "6.0" then '' + gradle.beforeSettings { + ${script} + } + '' else '' + gradle.settingsEvaluated { + ${script} + } + '' + ); + in + writeText "init.gradle" '' + static def offlineRepo(RepositoryHandler repositories) { + repositories.clear() + repositories.mavenLocal { + url 'file:${offlineRepo}' + metadataSources { + gradleMetadata() + mavenPom() + artifact() + } + } + } + + ${inSettings (versionAtLeast gradle.version "6.0") '' + offlineRepo(it.buildscript.repositories) + ''} + + ${inSettings true '' + offlineRepo(it.pluginManagement.repositories) + ''} + + gradle.projectsLoaded { + allprojects { + buildscript { + offlineRepo(repositories) + } + } + } + + ${if versionAtLeast gradle.version "6.8" + then '' + gradle.beforeSettings { + it.dependencyResolutionManagement { + offlineRepo(repositories) + repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS) + } + } + '' + else '' + gradle.projectsLoaded { + allprojects { + offlineRepo(repositories) + } + } + '' + } + + ${extraInit} + ''; + + buildProject = flags: '' + gradle --offline --no-daemon --no-build-cache \ + --info --full-stacktrace --warning-mode=all \ + --no-configuration-cache \ + -Dmaven.repo.local=${offlineRepo} \ + ${optionalString enableParallelBuilding "--parallel"} \ + ${optionalString enableDebug "-Dorg.gradle.debug=true"} \ + ${optionalString (buildJdk != null) "-Dorg.gradle.java.home=${buildJdk.home}"} \ + --init-script ${initScript} \ + ${concatStringsSep " " flags} + ''; + +in stdenv.mkDerivation ({ + + dontStrip = true; + + nativeBuildInputs = (args.nativeBuildInputs or []) ++ [ gradle ]; + + buildPhase = args.buildPhase or '' + runHook preBuild + + ( + set -eux + + ${optionalString (versionOlder gradle.version "8.0") '' + # Work around https://github.com/gradle/gradle/issues/1055 + TMPHOME="$(mktemp -d)" + mkdir -p "$TMPHOME/init.d" + export GRADLE_USER_HOME="$TMPHOME" + cp ${initScript} $TMPHOME/ + ''} + + gradle --offline --no-daemon --no-build-cache \ + --info --full-stacktrace --warning-mode=all \ + --no-configuration-cache --console=plain \ + -Dmaven.repo.local=${offlineRepo} \ + ${optionalString enableParallelBuilding "--parallel"} \ + ${optionalString enableDebug "-Dorg.gradle.debug=true"} \ + ${optionalString (buildJdk != null) "-Dorg.gradle.java.home=${buildJdk.home}"} \ + --init-script ${initScript} \ + ${concatStringsSep " " gradleFlags} + ) + + runHook postBuild + ''; + + passthru = (args.passthru or {}) // { + inherit offlineRepo; + }; + +} // (removeAttrs args [ + "nativeBuildInputs" + "passthru" + "lockFile" + "gradleFlags" + "gradle" + "enableDebug" + "extraInit" + "buildJdk" + "fetchers" +])) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 35f2d24..e390556 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,21 +1,19 @@ [versions] gradle = "8.7" +junit = "5.8.2" kotlin = "1.9.22" ktor = "2.3.11" +kotest = "5.9.0" [libraries] -clikt = "com.github.ajalt:clikt:+" +clikt = "com.github.ajalt.clikt:clikt:4.4.0" gradle-toolingApi = { module = "org.gradle:gradle-tooling-api", version.ref = "gradle" } -junit-jupiter-api = "org.junit.jupiter:junit-jupiter-api:+" -junit-jupiter-engine = "org.junit.jupiter:junit-jupiter-engine:+" -junit-jupiter-params = "org.junit.jupiter:junit-jupiter-params:+" -junit-platformLauncher = "org.junit.platform:junit-platform-launcher:+" -kotest-runner = "io.kotest:kotest-runner-junit5:+" -kotest-assertions = "io.kotest:kotest-assertions-core:+" -kotlinx-coroutines-core = "org.jetbrains.kotlinx:kotlinx-coroutines-core:+" +kotest-assertions = { module = "io.kotest:kotest-assertions-core", version.ref = "kotest" } +kotest-runner = { module = "io.kotest:kotest-runner-junit5", version.ref = "kotest" } +kotlinx-coroutines-core = "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.1" ktor-server-core = { module = "io.ktor:ktor-server-core", version.ref = "ktor" } ktor-server-netty = { module = "io.ktor:ktor-server-netty", version.ref = "ktor" } -okio = "com.squareup.okio:okio:+" +okio = "com.squareup.okio:okio:3.9.0" serialization-json = "org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.3" slf4j-api = "org.slf4j:slf4j-api:+" slf4j-simple = "org.slf4j:slf4j-simple:+" diff --git a/gradle2nix.nix b/gradle2nix.nix new file mode 100644 index 0000000..474d2ab --- /dev/null +++ b/gradle2nix.nix @@ -0,0 +1,41 @@ +{ lib +, gradle +, buildGradle +}: + +buildGradle { + pname = "gradle2nix"; + version = "2.0.0"; + lockFile = ./gradle.lock; + + src = lib.cleanSourceWith { + filter = lib.cleanSourceFilter; + src = lib.cleanSourceWith { + filter = path: type: let baseName = builtins.baseNameOf path; in !( + (type == "directory" && ( + baseName == "build" || + baseName == ".idea" || + baseName == ".gradle" + )) || + (lib.hasSuffix ".iml" baseName) + ); + src = ./.; + }; + }; + + gradleFlags = [ "installDist" ]; + + installPhase = '' + mkdir -p $out + cp -r app/build/install/gradle2nix/* $out/ + ''; + + meta = with lib; { + inherit (gradle.meta) platforms; + description = "Wrap Gradle builds with Nix"; + homepage = "https://github.com/tadfisher/gradle2nix"; + license = licenses.asl20; + maintainers = with maintainers; [ tadfisher ]; + mainProgram = "gradle2nix"; + }; +}