diff --git a/pkgs/ghidra-xenia-v2/0001-Use-protobuf-gradle-plugin.patch b/pkgs/ghidra-xenia-v2/0001-Use-protobuf-gradle-plugin.patch index 14065f3..7378878 100644 --- a/pkgs/ghidra-xenia-v2/0001-Use-protobuf-gradle-plugin.patch +++ b/pkgs/ghidra-xenia-v2/0001-Use-protobuf-gradle-plugin.patch @@ -8,7 +8,7 @@ Subject: [PATCH] Use com.google.protobuf:protobuf-gradle-plugin Ghidra/Debug/Debugger-isf/build.gradle | 8 +- Ghidra/Debug/Debugger-rmi-trace/build.gradle | 14 +-- build.gradle | 6 ++ - gradle/hasProtobuf.gradle | 94 -------------------- + gradle/debugger/hasProtobuf.gradle | 94 -------------------- 5 files changed, 26 insertions(+), 103 deletions(-) diff --git a/Ghidra/Debug/Debugger-gadp/build.gradle b/Ghidra/Debug/Debugger-gadp/build.gradle @@ -19,7 +19,7 @@ index 9e1c57faf..3a3242eb5 100644 apply from: "${rootProject.projectDir}/gradle/jacocoProject.gradle" apply from: "${rootProject.projectDir}/gradle/javaTestProject.gradle" apply from: "${rootProject.projectDir}/gradle/distributableGhidraModule.gradle" --apply from: "${rootProject.projectDir}/gradle/hasProtobuf.gradle" +-apply from: "${rootProject.projectDir}/gradle/debugger/hasProtobuf.gradle" +apply plugin: 'com.google.protobuf' apply plugin: 'eclipse' @@ -41,7 +41,7 @@ index d135294a0..785681ca2 100644 apply from: "${rootProject.projectDir}/gradle/jacocoProject.gradle" apply from: "${rootProject.projectDir}/gradle/javaTestProject.gradle" apply from: "${rootProject.projectDir}/gradle/distributableGhidraModule.gradle" --apply from: "${rootProject.projectDir}/gradle/hasProtobuf.gradle" +-apply from: "${rootProject.projectDir}/gradle/debugger/hasProtobuf.gradle" - +apply plugin: 'com.google.protobuf' apply plugin: 'eclipse' @@ -63,9 +63,9 @@ index 40fbc17ab..7517ffe6e 100644 apply from: "${rootProject.projectDir}/gradle/jacocoProject.gradle" apply from: "${rootProject.projectDir}/gradle/javaTestProject.gradle" apply from: "${rootProject.projectDir}/gradle/distributableGhidraModule.gradle" --apply from: "${rootProject.projectDir}/gradle/hasProtobuf.gradle" +-apply from: "${rootProject.projectDir}/gradle/debugger/hasProtobuf.gradle" +apply plugin: 'com.google.protobuf' - apply from: "${rootProject.projectDir}/gradle/hasPythonPackage.gradle" + apply from: "${rootProject.projectDir}/gradle/debugger/hasPythonPackage.gradle" apply plugin: 'eclipse' eclipse.project.name = 'Debug Debugger-rmi-trace' @@ -110,10 +110,10 @@ index b0c717fb1..5f56506a5 100644 } } else { -diff --git a/gradle/hasProtobuf.gradle b/gradle/hasProtobuf.gradle +diff --git a/gradle/debugger/hasProtobuf.gradle b/gradle/debugger/hasProtobuf.gradle index 23b4ce74b..e69de29bb 100644 ---- a/gradle/hasProtobuf.gradle -+++ b/gradle/hasProtobuf.gradle +--- a/gradle/debugger/hasProtobuf.gradle ++++ b/gradle/debugger/hasProtobuf.gradle @@ -1,94 +0,0 @@ -/* ### - * IP: GHIDRA diff --git a/pkgs/ghidra-xenia-v2/build-extension.nix b/pkgs/ghidra-xenia-v2/build-extension.nix index 652b7bc..373f357 100644 --- a/pkgs/ghidra-xenia-v2/build-extension.nix +++ b/pkgs/ghidra-xenia-v2/build-extension.nix @@ -1,98 +1,78 @@ -{ - lib, - stdenv, - unzip, - jdk, - gradle, - ghidra, +{ lib +, stdenv +, unzip +, jdk +, gradle +, ghidra }: let - metaCommon = - oldMeta: - oldMeta - // { - maintainers = (oldMeta.maintainers or [ ]) ++ (with lib.maintainers; [ vringar ]); + metaCommon = oldMeta: + oldMeta // (with lib; { + maintainers = (oldMeta.maintainers or []) ++ (with maintainers; [ vringar ]); platforms = oldMeta.platforms or ghidra.meta.platforms; - }; + }); - buildGhidraExtension = - { - pname, - nativeBuildInputs ? [ ], - meta ? { }, - ... - }@args: - stdenv.mkDerivation ( - args - // { - nativeBuildInputs = nativeBuildInputs ++ [ - unzip - jdk - gradle - ]; + buildGhidraExtension = { + pname, nativeBuildInputs ? [], meta ? { }, ... + }@args: + stdenv.mkDerivation (args // { + nativeBuildInputs = nativeBuildInputs ++ [ + unzip + jdk + gradle + ]; - preBuild = '' - # Set project name, otherwise defaults to directory name - echo -e '\nrootProject.name = "${pname}"' >> settings.gradle - # A config directory needs to exist when ghidra's GHelpBuilder is run - export XDG_CONFIG_HOME="''${XDG_CONFIG_HOME:-$(mktemp -d)}" - ${args.preBuild or ""} - ''; + buildPhase = args.buildPhase or '' + runHook preBuild - # Needed to run gradle on darwin - __darwinAllowLocalNetworking = true; + # Set project name, otherwise defaults to directory name + echo -e '\nrootProject.name = "${pname}"' >> settings.gradle - gradleBuildTask = args.gradleBuildTask or "buildExtension"; - gradleFlags = args.gradleFlags or [ ] ++ [ "-PGHIDRA_INSTALL_DIR=${ghidra}/lib/ghidra" ]; + export GRADLE_USER_HOME=$(mktemp -d) + gradle \ + --offline \ + --no-daemon \ + -PGHIDRA_INSTALL_DIR=${ghidra}/lib/ghidra - installPhase = - args.installPhase or '' - runHook preInstall + runHook postBuild + ''; - mkdir -p $out/lib/ghidra/Ghidra/Extensions - unzip -d $out/lib/ghidra/Ghidra/Extensions dist/*.zip + installPhase = args.installPhase or '' + runHook preInstall - runHook postInstall - ''; + mkdir -p $out/lib/ghidra/Ghidra/Extensions + unzip -d $out/lib/ghidra/Ghidra/Extensions dist/*.zip - meta = metaCommon meta; - } - ); + runHook postInstall + ''; - buildGhidraScripts = - { - pname, - meta ? { }, - ... - }@args: - stdenv.mkDerivation ( - args - // { - installPhase = '' - runHook preInstall + meta = metaCommon meta; + }); - GHIDRA_HOME=$out/lib/ghidra/Ghidra/Extensions/${pname} - mkdir -p $GHIDRA_HOME - cp -r . $GHIDRA_HOME/ghidra_scripts + buildGhidraScripts = { pname, meta ? { }, ... }@args: + stdenv.mkDerivation (args // { + installPhase = '' + runHook preInstall - touch $GHIDRA_HOME/Module.manifest - cat <<'EOF' > extension.properties - name=${pname} - description=${meta.description or ""} - author= - createdOn= - version=${lib.getVersion ghidra} + GHIDRA_HOME=$out/lib/ghidra/Ghidra/Extensions/${pname} + mkdir -p $GHIDRA_HOME + cp -r . $GHIDRA_HOME/ghidra_scripts - EOF + touch $GHIDRA_HOME/Module.manifest + cat <<'EOF' > extension.properties + name=${pname} + description=${meta.description or ""} + author= + createdOn= + version=${lib.getVersion ghidra} - runHook postInstall - ''; + EOF - meta = metaCommon meta; - } - ); + runHook postInstall + ''; + + meta = metaCommon meta; + }); in -{ - inherit buildGhidraExtension buildGhidraScripts; -} + { inherit buildGhidraExtension buildGhidraScripts; } diff --git a/pkgs/ghidra-xenia-v2/build.nix b/pkgs/ghidra-xenia-v2/build.nix index e85b58c..9b925a1 100644 --- a/pkgs/ghidra-xenia-v2/build.nix +++ b/pkgs/ghidra-xenia-v2/build.nix @@ -3,9 +3,10 @@ fetchFromGitHub, lib, callPackage, - gradle, + gradle_7, + perl, makeBinaryWrapper, - openjdk21, + openjdk17, unzip, makeDesktopItem, copyDesktopItems, @@ -18,9 +19,8 @@ }: let - pkg_path = "$out/lib/ghidra"; pname = "ghidra"; - version = "11.1.2"; + version = "11.1.1"; releaseName = "NIX"; distroPrefix = "ghidra_${version}_${releaseName}"; @@ -28,7 +28,7 @@ let owner = "NationalSecurityAgency"; repo = "Ghidra"; rev = "Ghidra_${version}_build"; - hash = "sha256-FL1nLaq8A9PI+RzqZg5+O+4+ZsH16MG3cf7OIKimDqw="; + hash = "sha256-t96FcAK3JwO66dOf4OhpOfU8CQfAczfF61Cg7m+B3fA="; # populate values that require us to use git. By doing this in postFetch we # can delete .git afterwards and maintain better reproducibility of the src. leaveDotGit = true; @@ -43,6 +43,8 @@ let ''; }; + gradle = gradle_7; + patches = [ # Use our own protoc binary instead of the prebuilt one ./0001-Use-protobuf-gradle-plugin.patch @@ -73,6 +75,69 @@ let HERE ''; + # Adds a gradle step that downloads all the dependencies to the gradle cache. + addResolveStep = '' + cat >>build.gradle < + subProject.buildscript.configurations.each { configuration -> + resolveConfiguration(subProject, configuration, "buildscript config \''${configuration.name}") + } + subProject.configurations.each { configuration -> + resolveConfiguration(subProject, configuration, "config \''${configuration.name}") + } + } + } + } + void resolveConfiguration(subProject, configuration, name) { + if (configuration.canBeResolved) { + logger.info("Resolving project {} {}", subProject.name, name) + configuration.resolve() + } + } + HERE + ''; + + # fake build to pre-download deps into fixed-output derivation + # Taken from mindustry derivation. + deps = stdenv.mkDerivation { + pname = "${pname}-deps"; + inherit version src patches; + + postPatch = addResolveStep; + + nativeBuildInputs = [ + gradle + perl + ] ++ lib.optional stdenv.isDarwin xcbuild; + buildPhase = '' + runHook preBuild + export HOME="$NIX_BUILD_TOP/home" + mkdir -p "$HOME" + export JAVA_TOOL_OPTIONS="-Duser.home='$HOME'" + export GRADLE_USER_HOME="$HOME/.gradle" + + # First, fetch the static dependencies. + gradle --no-daemon --info -Dorg.gradle.java.home=${openjdk17} -I gradle/support/fetchDependencies.gradle init + + # Then, fetch the maven dependencies. + gradle --no-daemon --info -Dorg.gradle.java.home=${openjdk17} resolveDependencies + runHook postBuild + ''; + # perl code mavenizes pathes (com.squareup.okio/okio/1.13.0/a9283170b7305c8d92d25aff02a6ab7e45d06cbe/okio-1.13.0.jar -> com/squareup/okio/okio/1.13.0/okio-1.13.0.jar) + installPhase = '' + runHook preInstall + find $GRADLE_USER_HOME/caches/modules-2 -type f -regex '.*\.\(jar\|pom\)' \ + | perl -pe 's#(.*/([^/]+)/([^/]+)/([^/]+)/[0-9a-f]{30,40}/([^/\s]+))$# ($x = $2) =~ tr|\.|/|; "install -Dm444 $1 \$out/maven/$x/$3/$4/$5" #e' \ + | sh + cp -r dependencies $out/dependencies + runHook postInstall + ''; + outputHashAlgo = "sha256"; + outputHashMode = "recursive"; + outputHash = "sha256-66gL4UFlBUo2JIEOXoF6tFvXtBdEX4b2MeSrV1b6Vg4="; + }; in stdenv.mkDerivation (finalAttrs: { inherit @@ -83,6 +148,8 @@ stdenv.mkDerivation (finalAttrs: { postPatch ; + outputs = ["bin" "out" "lib" "doc"]; + # Don't create .orig files if the patch isn't an exact match. patchFlags = [ "--no-backup-if-mismatch" @@ -121,49 +188,53 @@ stdenv.mkDerivation (finalAttrs: { __darwinAllowLocalNetworking = true; - mitmCache = gradle.fetchDeps { - inherit pname; - data = ./deps.json; - }; + buildPhase = '' + runHook preBuild + export HOME="$NIX_BUILD_TOP/home" + mkdir -p "$HOME" + export JAVA_TOOL_OPTIONS="-Duser.home='$HOME'" - gradleFlags = [ "-Dorg.gradle.java.home=${openjdk21}" ]; + ln -s ${deps}/dependencies dependencies - preBuild = '' - export JAVA_TOOL_OPTIONS="-Duser.home=$NIX_BUILD_TOP/home" - gradle -I gradle/support/fetchDependencies.gradle init + sed -i "s#mavenLocal()#mavenLocal(); maven { url '${deps}/maven' }#g" build.gradle + + gradle --offline --no-daemon --info -Dorg.gradle.java.home=${openjdk17} buildGhidra + runHook postBuild ''; - gradleBuildTask = "buildGhidra"; - installPhase = '' runHook preInstall - mkdir -p "${pkg_path}" "$out/share/applications" + mkdir -p "$lib/lib/ghidra" "$bin/share/applications" "$doc/share/doc" ZIP=build/dist/$(ls build/dist) echo $ZIP - unzip $ZIP -d ${pkg_path} - f=("${pkg_path}"/*) - mv "${pkg_path}"/*/* "${pkg_path}" + unzip $ZIP -d "$lib/lib/ghidra" + f=("$lib/lib/ghidra"/*) + mv "$lib/lib/ghidra"/*/* "$lib/lib/ghidra" rmdir "''${f[@]}" + mv "$lib/lib/ghidra/docs" "$doc/share/doc/ghidra" + for path in server/svrREADME.html support/GhidraGo/ghidraGoREADME.html support/analyzeHeadlessREADME.html support/buildGhidraJarREADME.txt; do + out_path="$(basename "$path")" + mv "$lib/lib/ghidra/$path" "$doc/share/doc/ghidra/$out_path" + done for f in Ghidra/Framework/Gui/src/main/resources/images/GhidraIcon*.png; do res=$(basename "$f" ".png" | cut -d"_" -f3 | cut -c11-) - install -Dm444 "$f" "$out/share/icons/hicolor/''${res}x''${res}/apps/ghidra.png" + install -Dm444 "$f" "$bin/share/icons/hicolor/''${res}x''${res}/apps/ghidra.png" done; # improved macOS icon support - install -Dm444 Ghidra/Framework/Gui/src/main/resources/images/GhidraIcon64.png $out/share/icons/hicolor/32x32@2/apps/ghidra.png + install -Dm444 Ghidra/Framework/Gui/src/main/resources/images/GhidraIcon64.png $bin/share/icons/hicolor/32x32@2/apps/ghidra.png runHook postInstall ''; postFixup = '' - mkdir -p "$out/bin" - ln -s "${pkg_path}/ghidraRun" "$out/bin/ghidra" - ln -s "${pkg_path}/support/analyzeHeadless" "$out/bin/ghidra-analyzeHeadless" - wrapProgram "${pkg_path}/support/launch.sh" \ - --set-default NIX_GHIDRAHOME "${pkg_path}/Ghidra" \ - --prefix PATH : ${lib.makeBinPath [ openjdk21 ]} + mkdir -p "$bin/bin" + ln -s "$lib/lib/ghidra/ghidraRun" "$bin/bin/ghidra" + wrapProgram "$lib/lib/ghidra/support/launch.sh" \ + --set-default NIX_GHIDRAHOME "$lib/lib/ghidra/Ghidra" \ + --prefix PATH : ${lib.makeBinPath [ openjdk17 ]} ''; passthru = { diff --git a/pkgs/ghidra-xenia-v2/default.nix b/pkgs/ghidra-xenia-v2/default.nix index 55f224d..fc9b4d2 100644 --- a/pkgs/ghidra-xenia-v2/default.nix +++ b/pkgs/ghidra-xenia-v2/default.nix @@ -1,13 +1,12 @@ -{ - stdenv, - fetchzip, - lib, - makeWrapper, - autoPatchelfHook, - openjdk17, - pam, - makeDesktopItem, - icoutils, +{ stdenv +, fetchzip +, lib +, makeWrapper +, autoPatchelfHook +, openjdk17 +, pam +, makeDesktopItem +, icoutils }: let @@ -25,8 +24,7 @@ let startupWMClass = "ghidra-Ghidra"; }; -in -stdenv.mkDerivation rec { +in stdenv.mkDerivation rec { pname = "ghidra"; version = "10.4"; versiondate = "20230928"; @@ -39,7 +37,8 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ makeWrapper icoutils - ] ++ lib.optionals stdenv.isLinux [ autoPatchelfHook ]; + ] + ++ lib.optionals stdenv.isLinux [ autoPatchelfHook ]; buildInputs = [ stdenv.cc.cc.lib @@ -66,7 +65,6 @@ stdenv.mkDerivation rec { postFixup = '' mkdir -p "$out/bin" ln -s "${pkg_path}/ghidraRun" "$out/bin/ghidra" - ln -s "${pkg_path}/support/analyzeHeadless" "$out/bin/ghidra-analyzeHeadless" wrapProgram "${pkg_path}/support/launch.sh" \ --prefix PATH : ${lib.makeBinPath [ openjdk17 ]} @@ -76,17 +74,10 @@ stdenv.mkDerivation rec { description = "Software reverse engineering (SRE) suite of tools developed by NSA's Research Directorate in support of the Cybersecurity mission"; mainProgram = "ghidra"; homepage = "https://github.com/NationalSecurityAgency/ghidra"; - platforms = [ - "x86_64-linux" - "x86_64-darwin" - ]; + platforms = [ "x86_64-linux" "x86_64-darwin" ]; sourceProvenance = with sourceTypes; [ binaryBytecode ]; license = licenses.asl20; - maintainers = with maintainers; [ - ck3d - govanify - mic92 - ]; + maintainers = with maintainers; [ ck3d govanify mic92 ]; }; } diff --git a/pkgs/ghidra-xenia-v2/deps.json b/pkgs/ghidra-xenia-v2/deps.json deleted file mode 100644 index 8e45b56..0000000 --- a/pkgs/ghidra-xenia-v2/deps.json +++ /dev/null @@ -1,754 +0,0 @@ -{ - "!comment": "This is a nixpkgs Gradle dependency lockfile. For more details, refer to the Gradle section in the nixpkgs manual.", - "!version": 1, - "https://archive.eclipse.org": { - "tools/cdt/releases/8.6/cdt-8.6.0": { - "zip": "sha256-gbfRnVfEowCfR2FpmnLo1kK14dklHSu5jfQ4seKPi6k=" - } - }, - "https://files.pythonhosted.org/packages": { - "27/d6/003e593296a85fd6ed616ed962795b2f87709c3eee2bca4f6d0fe55c6d00/wheel-0.37.1-py2.py3-none-any": { - "whl": "sha256-S9zX2EATgIYSbNCSVNxhlftPxvAcBQodcjbyYw2x0io=" - }, - "2d/e0/f877c91e036fcaed2a827f80d6cbdf1d26cffc3333c9ebda31c55c45f050/Pybag-2.2.10-py3-none-any": { - "whl": "sha256-gc8eM91mfdIX3FahIzJnluZ5m4Vp8sbvt4wWN1yvmys=" - }, - "50/8f/518a37381e55a8857a638afa86143efa5508434613541402d20611a1b322/comtypes-1.4.1-py3-none-any": { - "whl": "sha256-ogig48ocClNic12g/2YYIoAdzocxK4lNfXUq3QEKIbA=" - }, - "83/1c/25b79fc3ec99b19b0a0730cc47356f7e2959863bf9f3cd314332bddb4f68/pywin32-306-cp312-cp312-win_amd64": { - "whl": "sha256-NyV3lMGtOe6b5lLaBGLcLjlMgVnf2ROopOjrb9NG2g4=" - }, - "8d/14/619e24a4c70df2901e1f4dbc50a6291eb63a759172558df326347dce1f0d/protobuf-3.20.3-py2.py3-none-any": { - "whl": "sha256-p8ptSIqo/38ynUxUWy262KwxRk8dixyHrRNGcXcx5Ns=" - }, - "90/c7/6dc0a455d111f68ee43f27793971cf03fe29b6ef972042549db29eec39a2/psutil-5.9.8": { - "tar.gz": "sha256-a+Em4yJUht/yhqj7mgYkalJT9MfFO0depfWsk05kGUw=" - }, - "c7/42/be1c7bbdd83e1bfb160c94b9cafd8e25efc7400346cf7ccdbdb452c467fa/setuptools-68.0.0-py3-none-any": { - "whl": "sha256-EeUsZ0FaOB0Q1rRiztnPuXBmF58OhxOZ4AbEqxAfyF8=" - }, - "d0/dd/b28df50316ca193dd1275a4c47115a720796d9e1501c1888c4bfa5dc2260/capstone-5.0.1-py3-none-win_amd64": { - "whl": "sha256-G/pcgeaIDK9BoxlGzW0tBpwEi8wi7fEhJUtQGgSN5nU=" - } - }, - "https://ftp.postgresql.org": { - "pub/source/v15.3/postgresql-15.3": { - "tar.gz": "sha256-CG04Uz4odHlmpNXx546kMuM6ePIdy5EzAQ7LUYn62Yw=" - } - }, - "https://github.com": { - "NationalSecurityAgency/ghidra-data/raw/Ghidra_11.1.2/FunctionID/vs2012_x64": { - "fidb": "sha256-1OmKs/eQuDF5MhhDC7oNiySl+/TaZbDB/6jLDPvrDNw=" - }, - "NationalSecurityAgency/ghidra-data/raw/Ghidra_11.1.2/FunctionID/vs2012_x86": { - "fidb": "sha256-pJDtfi7SHlh0Wf6urOcDa37eTOhOcuEN/YxXQ0ppGLY=" - }, - "NationalSecurityAgency/ghidra-data/raw/Ghidra_11.1.2/FunctionID/vs2015_x64": { - "fidb": "sha256-4E6eQPnstgHIX02E7Zv2a0U2O+HR6CwWLkyZArjLUI8=" - }, - "NationalSecurityAgency/ghidra-data/raw/Ghidra_11.1.2/FunctionID/vs2015_x86": { - "fidb": "sha256-tm7mlmU+LtNlkZ3qrviFEDEgx5LiLnmvcNEgnX4dhkQ=" - }, - "NationalSecurityAgency/ghidra-data/raw/Ghidra_11.1.2/FunctionID/vs2017_x64": { - "fidb": "sha256-1fpfaXKYF0+lPSR9NZnmoSiEYFrRgce5VOI4DsHwvYk=" - }, - "NationalSecurityAgency/ghidra-data/raw/Ghidra_11.1.2/FunctionID/vs2017_x86": { - "fidb": "sha256-04nLjXb/SlnKNfiRuFIccq1fDfluJTlzotIahhSkzIE=" - }, - "NationalSecurityAgency/ghidra-data/raw/Ghidra_11.1.2/FunctionID/vs2019_x64": { - "fidb": "sha256-FQAHeW/DakBpZgrWJEmq2q890Rs4ZKXvIeeYMcnOkRg=" - }, - "NationalSecurityAgency/ghidra-data/raw/Ghidra_11.1.2/FunctionID/vs2019_x86": { - "fidb": "sha256-62MKNvqlhqNx63NNwLvY0TzK72l/PbWHJZY1jz3SQyo=" - }, - "NationalSecurityAgency/ghidra-data/raw/Ghidra_11.1.2/FunctionID/vsOlder_x64": { - "fidb": "sha256-jDtR9GYM0n4aDWEKnz8tX7yDOmasnuQ5PuLySB6FWGY=" - }, - "NationalSecurityAgency/ghidra-data/raw/Ghidra_11.1.2/FunctionID/vsOlder_x86": { - "fidb": "sha256-mGBca2uSFKlF2ETkHIWGDVRkmkW8p4c+9pkcDpNyB4c=" - }, - "NationalSecurityAgency/ghidra-data/raw/Ghidra_11.1.2/lib/java-sarif-2.1-modified": { - "jar": "sha256-f3NlZklHVtJxql5LGvbIncUNB0qxxjdKR9+CImQiawE=" - }, - "pxb1988/dex2jar/releases/download/v2.1/dex2jar-2.1": { - "zip": "sha256-epvfhD1D3k0elOwue29VglAXsMSn7jn/gmYOJJOkbwg=" - } - }, - "https://repo.maven.apache.org/maven2": { - "biz/aQute/bnd#biz.aQute.bnd.util/7.0.0": { - "jar": "sha256-OVddFQJJliqcbUbM5+Zy53fIqGIKHS0iDH8sCnmediM=", - "pom": "sha256-+dgDJLl2Hp3ipFoP6naPWZRH9AxuQZ8gje2MrxIYAMU=" - }, - "biz/aQute/bnd#biz.aQute.bndlib/7.0.0": { - "jar": "sha256-gKVp0AbzLpJc7kzor5Jrfm/aqqtcy/1f5MnN/5xN0t8=", - "pom": "sha256-mOuywO2iBtxb79bFJsjCAneApDvymekXyzwDXwOYp9I=" - }, - "com/beust#jcommander/1.64": { - "jar": "sha256-FWvnNhmcmQMh2f93CQsZlinPyYZeLWwT980pG7FkGBc=", - "pom": "sha256-F84MMunPlTZ4+CCuXyrZLu85bYQPZn/JnyOtwK0l0yg=" - }, - "com/formdev#flatlaf/3.2.1": { - "jar": "sha256-fYMX/hOyYIiZTWZmOvjofBI5DugIf3unS2hjj0pV9EA=", - "module": "sha256-kU7FLZBJj8ctFju0F1UhHnW7yfy3ip5wTZn/Mvfzywg=", - "pom": "sha256-uKf+YYO269HIAaqwdGnF2UFRQFSftLdpkqyALuJeGtE=" - }, - "com/github/rotty3000#phidias/0.3.7": { - "jar": "sha256-yNB2DOOw7RRT1DW83THjTwvjrAkCTn4amLijzr9Ka7U=", - "pom": "sha256-FY+kDQZfFCR5B7aSIiRY152eFjsTz1tfrHvgIkLMK60=" - }, - "com/github/tomnelson#jungrapht-layout/1.4": { - "jar": "sha256-owQBKdw57SMms2yhXGNEIu5XmkYXhmj5lELjiz5gcJk=", - "pom": "sha256-TO0lLb8YrUWTvoW6bWycCdvB7tZEjZtZneziavTnyN4=" - }, - "com/github/tomnelson#jungrapht-visualization-parent/1.4": { - "pom": "sha256-s5gyFq8VA62ryVOkKXKO1kpORbvDj++2wgOiiUPCq+w=" - }, - "com/github/tomnelson#jungrapht-visualization/1.4": { - "jar": "sha256-lwU6HdLNqyY/tWEfG8grhiswmflR480FZOPiPRk/Tdg=", - "pom": "sha256-YE8saHqHsq0L90QETPJmynWuKdPPCa383C5WEjDOtoY=" - }, - "com/google/code/findbugs#jsr305/3.0.2": { - "jar": "sha256-dmrSoHg/JoeWLIrXTO7MOKKLn3Ki0IXuQ4t4E+ko0Mc=", - "pom": "sha256-GYidvfGyVLJgGl7mRbgUepdGRIgil2hMeYr+XWPXjf4=" - }, - "com/google/code/gson#gson-parent/2.9.0": { - "pom": "sha256-r3gcmldm/+oxGg3wU2V2pk3sxmGqEQxN5cc6yL9DRCQ=" - }, - "com/google/code/gson#gson/2.9.0": { - "jar": "sha256-yW1gVRMxoZbaxUt0WqZCzQeO+JtvJnFGtwXywsvvBS0=", - "pom": "sha256-cZDQsH8njp9MYD9E5UOUD4HPGiVZ+FHG8pjJuyvil4w=" - }, - "com/google/errorprone#error_prone_annotations/2.2.0": { - "jar": "sha256-br0iyhudjsBtQd6NZOBZaYHZYHtCA1+e03T53icaSBo=", - "pom": "sha256-XgJY6huk5RoTN0JoC8IkSPerIUvkBz6GGfZF7xvkLdU=" - }, - "com/google/errorprone#error_prone_annotations/2.21.1": { - "jar": "sha256-0fPGaqkaxSVJ4Arjsgi6S5r31y1o8jBkNVO+s45hGKw=", - "pom": "sha256-9ZiID+766p1nTcQdsTqzcAS/A3drW7IcBN7ejpIMHxI=" - }, - "com/google/errorprone#error_prone_parent/2.2.0": { - "pom": "sha256-xGCQLd9ezmiDLGsnHOUqCSiwXPOmrIGo9UjHPL1UETg=" - }, - "com/google/errorprone#error_prone_parent/2.21.1": { - "pom": "sha256-MrsLX/JB/Wuh/upEiuu5zt7xaZvnPLbzGTZTh7gr+Sw=" - }, - "com/google/gradle#osdetector-gradle-plugin/1.7.0": { - "jar": "sha256-29oheMFO1rk6GEsay/ONchBwAiUmaMERz0EeyjfkHKY=", - "pom": "sha256-6BYywu6apI5+zwVHUSwcOGVgwNRqlY7lBVD3693xNRc=" - }, - "com/google/guava#failureaccess/1.0.1": { - "jar": "sha256-oXHuTHNN0tqDfksWvp30Zhr6typBra8x64Tf2vk2yiY=", - "pom": "sha256-6WBCznj+y6DaK+lkUilHyHtAopG1/TzWcqQ0kkEDxLk=" - }, - "com/google/guava#guava-parent/19.0": { - "pom": "sha256-O3b/Q+zfEPdNo25KritHDJ0GPgU8XKAm9VEq6U8cPhA=" - }, - "com/google/guava#guava-parent/26.0-android": { - "pom": "sha256-+GmKtGypls6InBr8jKTyXrisawNNyJjUWDdCNgAWzAQ=" - }, - "com/google/guava#guava-parent/27.0.1-jre": { - "pom": "sha256-MX6IKRJi4M8oBelWwYhQ8dRWXIXC4REvXZ0Iqxcy5pY=" - }, - "com/google/guava#guava-parent/27.1-android": { - "pom": "sha256-1oF79aZ2AKOTpoA9UfR8159KXth1cqg3K++S4nNRgXI=" - }, - "com/google/guava#guava-parent/32.1.3-jre": { - "pom": "sha256-8oPB8EiXqaiKP6T/RoBOZeghFICaCc0ECUv33gGxhXs=" - }, - "com/google/guava#guava/19.0": { - "pom": "sha256-rdwGTafxB3/fTckOWqqIfNeQhQ0bdP4ubiXV94VRrGM=" - }, - "com/google/guava#guava/27.0.1-jre": { - "jar": "sha256-4cgU/QRJKifDjgMX6r6qGz6VDsgBAjnkAP6QrWyRB7Q=", - "pom": "sha256-ao3QQfI6a7FKhuRA/MuZNTe2InE1eg2sCjyw/zkVjzY=" - }, - "com/google/guava#guava/27.1-android": { - "pom": "sha256-KUYNJundBml2Ak+RJoMlzxHzkScNiPi1MewGQqNbwNw=" - }, - "com/google/guava#guava/32.1.3-jre": { - "jar": "sha256-bU4rWhGKq2Lm5eKdGFoCJO7YLIXECsPTPPBKJww7N0Q=", - "module": "sha256-9f/3ZCwS52J7wUKJ/SZ+JgLBf5WQ4jUiw+YxB/YcKUI=", - "pom": "sha256-cA5tRudbWTmiKkHCXsK7Ei88vvTv7UXjMS/dy+mT2zM=" - }, - "com/google/guava#listenablefuture/9999.0-empty-to-avoid-conflict-with-guava": { - "jar": "sha256-s3KgN9QjCqV/vv/e8w/WEj+cDC24XQrO0AyRuXTzP5k=", - "pom": "sha256-GNSx2yYVPU5VB5zh92ux/gXNuGLvmVSojLzE/zi4Z5s=" - }, - "com/google/j2objc#j2objc-annotations/1.1": { - "jar": "sha256-KZSn63jycQvT07+2ObLJTiGc7awNTQhNUW54wW3d7PY=", - "pom": "sha256-8MmMVx6Tp8tN0Y3w+jCPCWPnoGIKwtQkTmHnCdA61r4=" - }, - "com/google/j2objc#j2objc-annotations/2.8": { - "jar": "sha256-8CqV+hpele2z7YWf0Pt99wnRIaNSkO/4t03OKrf01u0=", - "pom": "sha256-N/h3mLGDhRE8kYv6nhJ2/lBzXvj6hJtYAMUZ1U2/Efg=" - }, - "com/google/protobuf#protobuf-bom/3.17.3": { - "pom": "sha256-bf431vImF9VqQUzNrf+NmFhaH3kXEr6HbCYWZxDR2N0=" - }, - "com/google/protobuf#protobuf-bom/3.21.8": { - "pom": "sha256-+7Ds/DyjGFddtifjOuRUwT1qTcp68UXRTT9m4IY8PPo=" - }, - "com/google/protobuf#protobuf-gradle-plugin/0.8.18": { - "jar": "sha256-RP2JrzepsvHdQcCUqbtzPAe/f8eg4jhooQuvbjUfpeA=", - "pom": "sha256-Gwqekab09LYqWmB4wibudwqo3FdnueRzwvwY8KOImAQ=" - }, - "com/google/protobuf#protobuf-java/3.17.3": { - "jar": "sha256-SsVJsZJpQUGVgEnwYKHIJqMzQvYZ4QjO2MF9mHf14+0=", - "pom": "sha256-Km8izVJli4uxTBANs+F5NT+MNR0ENzo79voKOzlGStw=" - }, - "com/google/protobuf#protobuf-java/3.21.8": { - "jar": "sha256-C4WBrYENLfrv0Nz78VabFFBEhlAjjX4v1rF2yTLQjJU=", - "pom": "sha256-OJBUBuApx6MYaW8O4RnFXM7HizN+oR5MMZWfDgardAg=" - }, - "com/google/protobuf#protobuf-parent/3.17.3": { - "pom": "sha256-T09Q5moqvM/o7SCbU/q3C4k+NfQ77FqB98GESbY+hrE=" - }, - "com/google/protobuf#protobuf-parent/3.21.8": { - "pom": "sha256-bHKyrDl1sAnR5FdQlVnp+onyV4vShD3LTWo+XPgRFws=" - }, - "com/googlecode/json-simple#json-simple/1.1.1": { - "jar": "sha256-TmlpaJK4i0HFXUmrL9zCHurZK/VKzFiMAFBZbDt1GZw=", - "pom": "sha256-Zl9jWQ3vtj1irdIdNSU2LPk3z2ocBeSwFFuujailf4M=" - }, - "com/h2database#h2/2.2.220": { - "jar": "sha256-l4q4YwGNP5ZeOIgFccNik+qLEKgIYZQVnE1dILUPClc=", - "pom": "sha256-tbp8XBcINbyupnWMWfo8EOvNepx5LiWzm4a559X72Mo=" - }, - "com/jcraft#jsch/0.1.55": { - "jar": "sha256-1JKxWm0uo/HMOcQiyVPEDBIokHPb6DYNmMD2+ex0/EQ=", - "pom": "sha256-dHx0jR8BBx6j0PhHb2jUqCOjE7dycB2FUck+qqV/n5k=" - }, - "com/opencsv#opencsv/5.4": { - "jar": "sha256-n94e8+VEQE406u4V5L97p0uANV15gJOwUk1jpZk2JCs=", - "pom": "sha256-uGQpmn0KIQIKgxaZQ499P4VAirJKNOkR+qmf9oTrdv0=" - }, - "com/oracle/labs/olcut#olcut-config-protobuf/5.2.0": { - "jar": "sha256-xmqG5GT9gi9xzu6JuSU3l8Pc/fZWxNsr+W2kceuXs8o=", - "pom": "sha256-JCBA8xgQ+I6pnGF7RUBrhmdtOvJa7jzZIoysQpd0zmk=" - }, - "com/oracle/labs/olcut#olcut-core/5.2.0": { - "jar": "sha256-5T6OCQrUJo0iqlPgaCu76rHIHiyoRBP6Q2AqQWP2vhk=", - "pom": "sha256-G912ta/r+7rg+FHQjJ46WmgwP40cMHY4rxuChHVvCgM=" - }, - "com/oracle/labs/olcut#olcut/5.2.0": { - "pom": "sha256-SRIriefVQhUkr5IsQrsnF0x7vhL2oKKWwiEJgIUW/B4=" - }, - "commons-beanutils#commons-beanutils/1.9.4": { - "jar": "sha256-fZOMgXiQKARcCMBl6UvnX8KAUnYg1b1itRnVg4UyNoo=", - "pom": "sha256-w1zKe2HUZ42VeMvAuQG4cXtTmr+SVEQdp4uP5g3gZNA=" - }, - "commons-collections#commons-collections/3.2.2": { - "jar": "sha256-7urpF5FxRKaKdB1MDf9mqlxcX9hVk/8he87T/Iyng7g=", - "pom": "sha256-1dgfzCiMDYxxHDAgB8raSqmiJu0aES1LqmTLHWMiFws=" - }, - "commons-io#commons-io/2.11.0": { - "jar": "sha256-lhsvbYfbrMXVSr9Fq3puJJX4m3VZiWLYxyPOqbwhCQg=", - "pom": "sha256-LgFv1+MkS18sIKytg02TqkeQSG7h5FZGQTYaPoMe71k=" - }, - "commons-lang#commons-lang/2.6": { - "jar": "sha256-UPEbCfh3wpTVbyRGP0fSj5Kc9QRPZIZhwPDPuumi9Jw=", - "pom": "sha256-7Xa4iRwwtWYonHQ2Vvik1DWYaYJDjUDFZ8YmIzJH5xE=" - }, - "commons-logging#commons-logging/1.2": { - "jar": "sha256-2t3qHqC+D1aXirMAa4rJKDSv7vvZt+TmMW/KV98PpjY=", - "pom": "sha256-yRq1qlcNhvb9B8wVjsa8LFAIBAKXLukXn+JBAHOfuyA=" - }, - "javax/help#javahelp/2.0.05": { - "jar": "sha256-/PSSLTj/hRhPHSMoMXu2CCbhTalIq9YG7j1bjGpw3r0=", - "pom": "sha256-uIEr4lGsoTl/S2pCO/Tt06KERONFOyIDtTSTNrmVgik=" - }, - "junit#junit/4.10": { - "jar": "sha256-NqdHyh4LhvbqiAVbhyO7hwMNYndm2mKIvwd6/e6w91o=", - "pom": "sha256-IqG/C6rothBretgCbs8nxZ5+R920nWKXUDa+rbLGLrU=" - }, - "junit#junit/4.12": { - "jar": "sha256-WXIfCAXiI9hLkGd4h9n/Vn3FNNfFAsqQPAwrF/BcEWo=", - "pom": "sha256-kPFj944/+28cetl96efrpO6iWAcUG4XW0SvmfKJUScQ=" - }, - "kr/motd/maven#os-maven-plugin/1.7.0": { - "jar": "sha256-lDBTUBpCnlPRxNYhUu7BJfo2Yg4NxmtzkKiVCXz96s4=", - "pom": "sha256-xPVqjuqlJp76BdsB4xMJBf9b24frKuPnZhVOmuoYO6Y=" - }, - "msv#isorelax/20050913": { - "jar": "sha256-NCcVJDHPf5Z/kuaeXKwWFHxdj7S05ainL1KReI78/4w=", - "pom": "sha256-u54IxYm/b2BxTQ+dMcLtdwPK9nf+muOSFrzKt3SkfNk=" - }, - "msv#msv/20050913": { - "jar": "sha256-FL46VQ5QhDO0/hB3XVQOnrWLPvBO10Vrx8fShckMh6I=", - "pom": "sha256-eoaknOHugXmjgCLiMZHkjPW1fkEEr2tXSJ3bjN7GoNY=" - }, - "msv#relaxngDatatype/20050913": { - "jar": "sha256-TUWpPrXNwyYxlmZzyVS4P8m2CgaBu93O+ixJdtBM3fI=", - "pom": "sha256-F/kF72gZZRismj53oNXlGY1g9D/8kEsiCcoEZhfyLfk=" - }, - "msv#xsdlib/20050913": { - "jar": "sha256-a476GP9XDAkW2nAsRpBrnooTnhwF2/Hk2L3rokTBsrM=", - "pom": "sha256-Ti8Z4AifVdrd/gOXbyhwCXvAaJcWVQ/p3r10KwrKZ5Y=" - }, - "net/java/dev/javacc#javacc/5.0": { - "jar": "sha256-cRExYbyM9mQVFVQcKBgCi4fHjsLo/6p1MXaG7giWe4k=", - "pom": "sha256-lBZg1Hgi+cDYDUDqBtSYH83CuHzGJTgbVF79fmtEnO8=" - }, - "net/java/dev/jna#jna-platform/5.14.0": { - "jar": "sha256-rkys6zhAcwwlN/m3+1WgG6ulgChrQSKVFIi87lWMJEk=", - "pom": "sha256-bLoOBPnuyxZIYAB5O7J+EDsPTQSF4FVOK0wK7RPS7RY=" - }, - "net/java/dev/jna#jna/5.14.0": { - "jar": "sha256-NO0eHyf6iWvKUNvE6ZzzcylnzsOHp6DV40hsCWc/6MY=", - "pom": "sha256-4E4llRUB3yWtx7Hc22xTNzyUiXuE0+FJISknY+4Hrj0=" - }, - "net/java/dev/timingframework#timingframework/1.0": { - "jar": "sha256-dGHpJGw7BRkWRaf5TBBGgMwxhlu02RIIKsAv93Egz0s=", - "pom": "sha256-EHm33r9dRb/PyG6euBCvHRhqN11glaDpHKKM2a8pwtA=" - }, - "net/sf/jung#jung-algorithms/2.1.1": { - "jar": "sha256-7ROOL2srLxOvYaE/F4i85vHeiFjELucKfUHmKDk3owo=", - "pom": "sha256-INw/C+7taPkCw/AtO6qJ8eI0xNSWeyIS15HBjw/a6Qs=" - }, - "net/sf/jung#jung-api/2.1.1": { - "jar": "sha256-bLc1ljw21RVdDeXxmgNIW5om5nVQ4WCz3YkAmm9RaU4=", - "pom": "sha256-3vtMVoVkg6Trdxnh4WiqYKtjnkPJJRKGZYNzLyPxOgs=" - }, - "net/sf/jung#jung-graph-impl/2.1.1": { - "jar": "sha256-SRHaBNd7T3u0ZaZa48w6AAyuTVK1h5EePAtMS2Q0k8E=", - "pom": "sha256-DXLiLd6PiBAEu7aagzjuxtnpGTlg9BRDOBlhYPhJqLQ=" - }, - "net/sf/jung#jung-parent/2.1.1": { - "pom": "sha256-os5T0/ynH/HQQ3FfmhowSo5KrhwGRa2QOMrkxSE2i+Q=" - }, - "net/sf/jung#jung-visualization/2.1.1": { - "jar": "sha256-kzuibCMIw79FZsOCiXm2itdCJyRXFxLlrw3odr3/oq4=", - "pom": "sha256-ayUROtpk+JgoOQmGsyWE0nNsBE+7iVz1Bo6BQWo9l+w=" - }, - "net/sf/sevenzipjbinding#sevenzipjbinding-all-platforms/16.02-2.01": { - "jar": "sha256-cvq1Op0x4W1lP+H0AAEdAqf2vGqR6GNLXPrVzhXUZ7s=", - "pom": "sha256-u3FCxepITF/phCbcFezhuYu/3UZTRWqI2idCHXJnAmU=" - }, - "net/sf/sevenzipjbinding#sevenzipjbinding/16.02-2.01": { - "jar": "sha256-Ezyj9pyMc12Jl8CUd1BPSKny5h6ntwSzcUqQZrHvuI4=", - "pom": "sha256-pdF4WGwNvc4V3cKlKBaE04ek8jW10bklWzls7TaWhcE=" - }, - "org/antlr#ST4/4.0.8": { - "jar": "sha256-WMqrxAyfdLC1mT/YaOD2SlDAdZCU5qJRqq+tmO38ejs=", - "pom": "sha256-PAiQ3scRdOs7o9QEyp40GQH/awQhgIsAcTsNuxMGwXw=" - }, - "org/antlr#antlr-master/3.5.2": { - "pom": "sha256-QtkaUx6lEA6wm1QaoALDuQjo8oK9c7bi9S83HvEzG9Y=" - }, - "org/antlr#antlr-runtime/3.5.2": { - "jar": "sha256-zj/I7LEPOemjzdy7LONQ0nLZzT0LHhjm/nPDuTichzQ=", - "pom": "sha256-RqnCIAu4sSvXEkqnpQl/9JCZkIMpyFGgTLIFFCCqfyU=" - }, - "org/antlr#antlr/3.5.2": { - "jar": "sha256-WsNsKs+woPPTfa/iC1tXDyZD4tAAxkjURQPCc4vmQ98=", - "pom": "sha256-Bl5egGYv64WHldPAH3cUJHvdMZRZcF7hOxpLGWj6IuQ=" - }, - "org/apache#apache/13": { - "pom": "sha256-/1E9sDYf1BI3vvR4SWi8FarkeNTsCpSW+BEHLMrzhB0=" - }, - "org/apache#apache/16": { - "pom": "sha256-n4X/L9fWyzCXqkf7QZ7n8OvoaRCfmKup9Oyj9J50pA4=" - }, - "org/apache#apache/19": { - "pom": "sha256-kfejMJbqabrCy69tAf65NMrAAsSNjIz6nCQLQPHsId8=" - }, - "org/apache#apache/21": { - "pom": "sha256-rxDBCNoBTxfK+se1KytLWjocGCZfoq+XoyXZFDU3s4A=" - }, - "org/apache#apache/23": { - "pom": "sha256-vBBiTgYj82V3+sVjnKKTbTJA7RUvttjVM6tNJwVDSRw=" - }, - "org/apache#apache/27": { - "pom": "sha256-srD8aeIqZQw4kvHDZtdwdvKVdcZzjfTHpwpEhESEzfk=" - }, - "org/apache#apache/7": { - "pom": "sha256-E5fOHbQzrcnyI9vwdJbRM2gUSHUfSuKeWPaOePtLbCU=" - }, - "org/apache/commons#commons-collections4/4.1": { - "jar": "sha256-sf6LWWi1fYRlQlNX7S2dxpVQRRi+0t9bVlxLjmjByKU=", - "pom": "sha256-wK1C6RA1N5YNmnTaWOzCTdGjehPR5MSPCWm+k+QBg2k=" - }, - "org/apache/commons#commons-collections4/4.4": { - "jar": "sha256-Hfi5QwtcjtFD14FeQD4z71NxskAKrb6b2giDdi4IRtE=", - "pom": "sha256-JxvWc4Oa9G5zr/lX4pGNS/lvWsT2xs9NW+k/0fEnHE0=" - }, - "org/apache/commons#commons-compress/1.21": { - "jar": "sha256-auz9VFlyillWAc+gcljRMZcv/Dm0kutIvdWWV3ovJEo=", - "pom": "sha256-Z1uwI8m+7d4yMpSZebl0Kl/qlGKApVobRi1Mp4AQiM0=" - }, - "org/apache/commons#commons-dbcp2/2.9.0": { - "jar": "sha256-iHcgkSxcu83/bg4h1QNJN1Vfj/xZc4Hv+Pp38zzm1k4=", - "pom": "sha256-XtPwH1ee+0xru81m9VnpwV6ZwUCVeeAZG7pUHF/meYY=" - }, - "org/apache/commons#commons-lang3/3.11": { - "pom": "sha256-mA1mXYP+0EZlE08FeOUHRCoOdQaRBzeEORsKeYhySnU=" - }, - "org/apache/commons#commons-lang3/3.12.0": { - "jar": "sha256-2RnZBEhsA3+NGTQS2gyS4iqfokIwudZ6V4VcXDHH6U4=", - "pom": "sha256-gtMfHcxFg+/9dE6XkWWxbaZL+GvKYj/F0bA+2U9FyFo=" - }, - "org/apache/commons#commons-lang3/3.9": { - "pom": "sha256-pAIkKbmEJbQwGBkVchJ5pS9hDzRki9rEh9TKy76N/rU=" - }, - "org/apache/commons#commons-parent/17": { - "pom": "sha256-lucYuvU0h07mLOTULeJl8t2s2IORpUDgMNWdmPp8RAg=" - }, - "org/apache/commons#commons-parent/34": { - "pom": "sha256-Oi5p0G1kHR87KTEm3J4uTqZWO/jDbIfgq2+kKS0Et5w=" - }, - "org/apache/commons#commons-parent/38": { - "pom": "sha256-VY2WF0Xrrcxdw5HP3n1HQIbUyq7iTdPm35Me2fa1tJU=" - }, - "org/apache/commons#commons-parent/39": { - "pom": "sha256-h80n4aAqXD622FBZzphpa7G0TCuLZQ8FZ8ht9g+mHac=" - }, - "org/apache/commons#commons-parent/47": { - "pom": "sha256-io7LVwVTv58f+uIRqNTKnuYwwXr+WSkzaPunvZtC/Lc=" - }, - "org/apache/commons#commons-parent/48": { - "pom": "sha256-Hh996TcKe3kB8Sjx2s0UIr504/R/lViw954EwGN8oLQ=" - }, - "org/apache/commons#commons-parent/51": { - "pom": "sha256-m3edGLItjeVZYFVY57sKCjGz8Awqu5yHgRfDmKrKvso=" - }, - "org/apache/commons#commons-parent/52": { - "pom": "sha256-ddvo806Y5MP/QtquSi+etMvNO18QR9VEYKzpBtu0UC4=" - }, - "org/apache/commons#commons-parent/54": { - "pom": "sha256-AA2Bh5UrIjcC/eKW33mVY/Nd6CznKttOe/FXNCN4++M=" - }, - "org/apache/commons#commons-pool2/2.11.1": { - "jar": "sha256-6gUF7nUV5YsawOaG5NGl2ffYCOJRphvDcaoFlbmWP4M=", - "pom": "sha256-wbsCmUpK34loDfepitujPFUnaDAUJy1liFuzA27NSMM=" - }, - "org/apache/commons#commons-text/1.10.0": { - "jar": "sha256-dwzZA/p7YE0ffve6F/hBCGZylLK0eL6O0a87/7SuABg=", - "pom": "sha256-OI3VI0i6GEKqOK64l8kdJwsUZh64daIP2YAxU1qydWc=" - }, - "org/apache/commons#commons-text/1.8": { - "pom": "sha256-9s/bqlnHCtfj/r5xTgkRmQFWrAkFKV2PKjt1HgXlmhI=" - }, - "org/apache/commons#commons-text/1.9": { - "pom": "sha256-n5IWz8lE3KeC5jEdYnV/13Fk/mfaKbWPAVaH+gn0QFA=" - }, - "org/apache/felix#felix-parent/6": { - "pom": "sha256-Ngi2sgD2yPSIx3zBWYR9UV5pZugzO4XY4E45Sgk7VZU=" - }, - "org/apache/felix#org.apache.felix.framework/7.0.5": { - "jar": "sha256-q6cpMsX/5S0a6ftzVBVHS8gwX9BPBQ6FHzqPZ9oYNP0=", - "pom": "sha256-CBAm1JP4dt+OsPPxyPhdpyy+N99VeDPpaLQMMNrL/Kk=" - }, - "org/apache/logging#logging-parent/3": { - "pom": "sha256-djouwrgJTUFh3rbCZLEmIIW5vjC/OjHCzhNyQuV3Iqc=" - }, - "org/apache/logging/log4j#log4j-api/2.17.1": { - "jar": "sha256-sNikyKtPuLGIjQCVgicDsObUeTxBlVAgPanmkZYWHeQ=", - "pom": "sha256-HirO8yILKb4QrgmXKLFYsY2UP5Ghk8xFAbtC+SnB6Io=" - }, - "org/apache/logging/log4j#log4j-core/2.17.1": { - "jar": "sha256-yWfyI0h5gLk2TpSnx/mooB/T7nwZvb8LD5+MuFEfPUE=", - "pom": "sha256-C7s79tTSKhv6PDwJJ8KUEK8UoPsm47Ark3JvXH6Yqv0=" - }, - "org/apache/logging/log4j#log4j/2.17.1": { - "pom": "sha256-lnq8AkRDqcsJaTVVmvXprW8P9hN1+Esn1EDS+nCAawk=" - }, - "org/bouncycastle#bcpkix-jdk15on/1.69": { - "jar": "sha256-QIN20Xqqh4nnrNBV/kBCiaEfozX9fGinUykEn7fSjtI=", - "pom": "sha256-WrvkytLCMJR0ZvsgmiJn48xqDTgKajGRWVnTqtm4F2w=" - }, - "org/bouncycastle#bcprov-jdk15on/1.69": { - "jar": "sha256-5Gm9Ofk2mZ8lYAJjEAP/AioilR2p1b2Xicer+pdjopI=", - "pom": "sha256-/YHicUSVvOeeauazAp2s0kzyz/NAJB2lgQVYlae6eN4=" - }, - "org/bouncycastle#bcutil-jdk15on/1.69": { - "jar": "sha256-KeQOJGbQQNgqbw6ZY10LwrujqUJRz3k5zwtpMhyu/Ak=", - "pom": "sha256-p2e8fzQtGTKJfso8i6zHAEygOAv6dSnyOpc0VJZcffw=" - }, - "org/checkerframework#checker-compat-qual/2.5.2": { - "pom": "sha256-da9ztewybj29yUayH9RoAtXafGEsO/Hlh1N0yY1+pP0=" - }, - "org/checkerframework#checker-qual/2.5.2": { - "jar": "sha256-ZLAmkci51OdwD47i50Lc5+osboHmYrdSLJ7jv1aMBAo=", - "pom": "sha256-3EzUOKNkYtATwjOMjiBtECoyKgDzNynolV7iGYWcnt4=" - }, - "org/checkerframework#checker-qual/3.31.0": { - "module": "sha256-UYkl4iqnmMH71voXwYN0aR8f57G+fdNw1Omv7us7Ds8=", - "pom": "sha256-Q1ecPr5H54NYp/MvlnN471YXWyKUszUYNYTwvSNZUjE=" - }, - "org/checkerframework#checker-qual/3.37.0": { - "jar": "sha256-5M4TdswnNeHd4iC2KtCRP1EpdwTarRVaM/OGvF2w2fc=", - "module": "sha256-clinadyqJrmBVNIp2FzHLls2ZrC8tjfS2vFuxJiVZjg=", - "pom": "sha256-AjkvvUziGQH5RWFUcrHU1NNZGzqr3wExBfXJLsMstPA=" - }, - "org/codehaus#codehaus-parent/3": { - "pom": "sha256-UOslOs0LbuBI9DLZ/Do7NiZO+z2h/6f7B/bE1LeoyjE=" - }, - "org/codehaus/mojo#animal-sniffer-annotations/1.17": { - "jar": "sha256-kmVPST7P7FIILnY1Tw6/h2SNw9XOwuPDzblHwBZ0elM=", - "pom": "sha256-6VarXS60j6uuEjANDNLTKU1KKkGrwgaMI8tNYK12y+U=" - }, - "org/codehaus/mojo#animal-sniffer-annotations/1.9": { - "jar": "sha256-zZb+60fzSyVZcEcV23sXmgOjch+dxAksNFxxjim0LeQ=", - "pom": "sha256-/nEJDiNXjdGapqj+9Rhvz6WPSPgHBnKprIlFhis7fz0=" - }, - "org/codehaus/mojo#animal-sniffer-parent/1.17": { - "pom": "sha256-GKA98W4qGExYLbexJWM8Fft3FAJ6hMG1MtcpM9wIuB8=" - }, - "org/codehaus/mojo#animal-sniffer-parent/1.9": { - "pom": "sha256-nyDSRN5e5OZQmbJ3tpiE7xr4EROcAJcl3TzPqPsaxjs=" - }, - "org/codehaus/mojo#mojo-parent/28": { - "pom": "sha256-WrbfH5JfxhOX3y0XNSu8mK8UZOhT7SF+CeU9IKMm9wc=" - }, - "org/codehaus/mojo#mojo-parent/40": { - "pom": "sha256-/GSNzcQE+L9m4Fg5FOz5gBdmGCASJ76hFProUEPLdV4=" - }, - "org/fusesource#fusesource-pom/1.12": { - "pom": "sha256-xA2WDarc73sBwbHGZXr7rE//teUxaPj8sLKLhOb9zKE=" - }, - "org/fusesource/jansi#jansi/2.3.2": { - "jar": "sha256-+dWXnFx7oxN8d/QYR16wIYn4/Ip1+nP/w/8dEv6UVWc=", - "pom": "sha256-ywU3vsxjUsFUcz22+v0JAPlYRgOgsLnPjyJFVjEs2+E=" - }, - "org/hamcrest#hamcrest-core/1.1": { - "jar": "sha256-A2HRST/w2U+GE1nv6pEgByBjUHITR5LvtyF/bgnVz/s=", - "pom": "sha256-OXOH9AbGjMtAP0d8y+wcgYz8a4/0+tpaM+Jhg6hBfIM=" - }, - "org/hamcrest#hamcrest-core/1.3": { - "jar": "sha256-Zv3vkelzk0jfeglqo4SlaF9Oh1WEzOiThqekclHE2Ok=", - "pom": "sha256-/eOGp5BRc6GxA95quCBydYS1DQ4yKC4nl3h8IKZP+pM=" - }, - "org/hamcrest#hamcrest-parent/1.1": { - "pom": "sha256-FOaVChpimMvLg8+UKcrEFf8nMWf28Vh2hZQTsNbAfjo=" - }, - "org/hamcrest#hamcrest-parent/1.3": { - "pom": "sha256-bVNflO+2Y722gsnyelAzU5RogAlkK6epZ3UEvBvkEps=" - }, - "org/hamcrest#hamcrest/2.2": { - "jar": "sha256-XmKEaonwXNeM2cGlU/NA0AJFg4DDIEVd0fj8VJeoocE=", - "pom": "sha256-s2E3N2xLP8923DN+KhvFtpGirBqpZqtdJiCak4EvpX0=" - }, - "org/jacoco#org.jacoco.agent/0.8.11": { - "jar": "sha256-0+2F3qeKntVYRqdzjjoMoVxwLGYe5LyMv+Aqi59KmcA=", - "pom": "sha256-FuBen0liG4fFPmk1AUDzxG1C2WbGepM730sGOiscj8U=" - }, - "org/jacoco#org.jacoco.ant/0.8.11": { - "jar": "sha256-gdfriJDZvjCpOWEsKVYDVBBjUpzdA6UyZaunRHS3C3w=", - "pom": "sha256-ftED2VnQzue6v7Ewf6bkUbFpb/01JwYVU7VQ3lUgHYU=" - }, - "org/jacoco#org.jacoco.build/0.8.11": { - "pom": "sha256-W4SxXPLu8+WeuRvCJ4SDMQCwnfmRHjMZAww7xki9iws=" - }, - "org/jacoco#org.jacoco.core/0.8.11": { - "jar": "sha256-/NGIxohHP8jcwMbKrzVeeziVAiQ1J8M7lZej7Ch5H0c=", - "pom": "sha256-u2E18Qo2NJy4SlYA/Yz3P8EpahNbLxStzYPejPJMq7E=" - }, - "org/jacoco#org.jacoco.report/0.8.11": { - "jar": "sha256-g5MpWuJGgO0QytgzOQcED5KLhxMySRWBylvHhOLLT74=", - "pom": "sha256-jjtzR3nV4/1oPsAVQT1S+WGYTFDLkEX9orI7/160I4E=" - }, - "org/jdom#jdom-legacy/1.1.3": { - "jar": "sha256-Ar1hpyXor5sBdrQ78pgW0MdIuKuVE4W9EnvjdIkyWgo=", - "pom": "sha256-bWWTi3CxFyMBy0LY5l7gVzpXHtOfOvEBOp5ukp/flow=" - }, - "org/jgrapht#jgrapht-core/1.5.1": { - "jar": "sha256-pNgQy2Pgp3p1PRRwlP6p3ULoLPxXqiifn4UinyYEO7Q=", - "pom": "sha256-KknxKWxTwJ4OCiVdogMgVq3fKlu6WFyAF3Eg/IELQRM=" - }, - "org/jgrapht#jgrapht-io/1.5.1": { - "jar": "sha256-hsf8ZswZB7/CazZtTdKSzQ2ihr3h/QiKEcDZcp1tzFw=", - "pom": "sha256-jMvAH5otyMV0llX6FSck3dJ8FIIpxWeV+CC7V6GEp4g=" - }, - "org/jgrapht#jgrapht/1.5.1": { - "pom": "sha256-X9k28p0qw4blfbTL+JtZLFth3GpA03qhUw9eVLNQx9I=" - }, - "org/jheaps#jheaps/0.13": { - "jar": "sha256-Y0FCkMNJf4rA8QIgkgcIjexG/UdH4PVqJsaTCOhcZBU=", - "pom": "sha256-SH2xJbFxCY4/qDOFNaxZR2kirCxFK1ehTTz2YfIohDA=" - }, - "org/jline#jline-builtins/3.20.0": { - "jar": "sha256-prFPiYOXb7Sd67PZ6KFb+V9yTXFp8TFaYu+lin+omeI=", - "pom": "sha256-9T2EkbSNrQfnIR8M5BIhS5un25YmYZAxsqhvgMgrZrE=" - }, - "org/jline#jline-parent/3.20.0": { - "pom": "sha256-cXjGACAsS8Jux6S2IlXu829wVsrSpeYjnFdL7qXCEMo=" - }, - "org/jline#jline-reader/3.20.0": { - "jar": "sha256-rNHJTR4iiqe3li9psh7Tqf2CjrOmPkuvkIaVTmJq8fA=", - "pom": "sha256-2fF+3XIcAqExcgN21sB4eHgutrb6/rX/QkBKtXFD4TY=" - }, - "org/jline#jline-style/3.20.0": { - "jar": "sha256-C7ERYF4BAM6E05YfMLQNqgiOnC7FxnHn75D0L2rdBrY=", - "pom": "sha256-48nFXt7Ob0ru5jplYjiaS++NA1j6iq3GdKPeZR4w4ao=" - }, - "org/jline#jline-terminal-jansi/3.20.0": { - "jar": "sha256-wX/++o8GDa79OPJXRAcOQI9LrFPD6BOuoZKMxgcmD+Q=", - "pom": "sha256-Q3JhhBr0j5oZT9WygHJSCKds+jzKFgBAx6QoDrAn2+s=" - }, - "org/jline#jline-terminal/3.20.0": { - "jar": "sha256-EhJRcOeVUZum3IAQwHC1PHaq6StIXB43Uw5Uq13QjUM=", - "pom": "sha256-EMo7z1F48YUH8hCmOtljeJaFM0OtHBKRoBmhFvIWpUg=" - }, - "org/junit#junit-bom/5.7.1": { - "module": "sha256-mFTjiU1kskhSB+AEa8oHs9QtFp54L0+oyc4imnj67gQ=", - "pom": "sha256-C5sUo9YhBvr+jGinF7h7h60YaFiZRRt1PAT6QbaFd4Q=" - }, - "org/junit#junit-bom/5.7.2": { - "module": "sha256-87zrHFndT2mT9DBN/6WAFyuN9lp2zTb6T9ksBXjSitg=", - "pom": "sha256-zRSqqGmZH4ICHFhdVw0x/zQry6WLtEIztwGTdxuWSHs=" - }, - "org/junit#junit-bom/5.8.0-M1": { - "module": "sha256-vgUUcTA6UD9MIkZwdbJ0kEE3fd1tWoywc53tZ9kW2C0=", - "pom": "sha256-dxREMv/Gi9mKeQqxBpYZ2RAyz8Dk4TwIFjqgPaNv1uI=" - }, - "org/junit#junit-bom/5.9.0": { - "module": "sha256-oFTq9QFrWLvN6GZgREp8DdPiyvhNKhrV/Ey1JZecGbk=", - "pom": "sha256-2D6H8Wds3kQZHuxc2mkEkjkvJpI7HkmBSMpznf7XUpU=" - }, - "org/junit#junit-bom/5.9.1": { - "module": "sha256-kCbBZWaQ+hRa117Og2dCEaoSrYkwqRsQfC9c3s4vGxw=", - "pom": "sha256-sWPBz8j8H9WLRXoA1YbATEbphtdZBOnKVMA6l9ZbSWw=" - }, - "org/osgi#org.osgi.core/5.0.0": { - "jar": "sha256-tEDGv/KGMyr89crgZ7YGli52HA3wDl/Yp0bwsxJlYZs=", - "pom": "sha256-4AHZl0MYUeq4uTOLW32f5eaOGutDpYV5JLChWIbuNjk=" - }, - "org/osgi#org.osgi.util.promise/1.3.0": { - "jar": "sha256-cFPFfn19iP7GuQl5o68SXh0ruEcmijKKLx7WWtCkwYU=", - "pom": "sha256-rcyK9ce+Z7BSEF4Mncq43ibaxvGbxamrcpRqMydscQA=" - }, - "org/ow2#ow2/1.3": { - "pom": "sha256-USFcZ9LAaNi30vb4D1E3KgmAdd7MxEjUvde5h7qDKPs=" - }, - "org/ow2#ow2/1.5.1": { - "pom": "sha256-Mh3bt+5v5PU96mtM1tt0FU1r+kI5HB92OzYbn0hazwU=" - }, - "org/ow2/asm#asm-bom/9.6": { - "pom": "sha256-ig5fYk/ikwt6jWmVb0OORe9TKZa01kQJthbErvSxrE4=" - }, - "org/ow2/asm#asm-commons/9.6": { - "jar": "sha256-eu/Q1cCQFwHGn3UT/tp2X7a+M68s56oXxXgfyHZXxRE=", - "pom": "sha256-qYrkiVM0uvj/hr1mUWIQ29mgPxpuFeR92oKvz2tT13w=" - }, - "org/ow2/asm#asm-debug-all/5.0.3": { - "jar": "sha256-KWk1asHkD+QUGUjFY2kCOPXXnXaux/2HNTaGejMe3oE=", - "pom": "sha256-nJnXpVVyW8L4N5l3k1zboW1ofZyTtuByXhlhgNSQyZU=" - }, - "org/ow2/asm#asm-parent/5.0.3": { - "pom": "sha256-wu2r9BKKU030uLSwubVi6U8kK6lawk3GFIVDK4oYjjI=" - }, - "org/ow2/asm#asm-tree/9.6": { - "jar": "sha256-xD7PF7U5x3fhXae1uGVTs3fi05poPeYoVWfVKDiI5+8=", - "pom": "sha256-G8tIHX/Ba5VbtgygfIz6JCS87ni9xAW7oxx9b13C0RM=" - }, - "org/ow2/asm#asm/9.6": { - "jar": "sha256-PG+sJCTbPUqFO2afTj0dnDxVIjXhmjGWc/iHCDwjA6E=", - "pom": "sha256-ku7iS8PIQ+SIHUbB3WUFRx7jFC+s+0ZrQoz+paVsa2A=" - }, - "org/postgresql#postgresql/42.6.2": { - "jar": "sha256-gmKXVPMJwLVx0dQLp0+wU4VfhjdSpGyjB8ez5YYMSy4=", - "pom": "sha256-/5dcZtbZSN/YKp6SbsER7eldPkyRo6DYaQ8xox45NMY=" - }, - "org/python#jython-standalone/2.7.3": { - "jar": "sha256-2n89gpsUi8+oawWdyWTjqFVv7bAhCWyNsH4wxm+qubQ=", - "pom": "sha256-moD1I2PkBVnKxMjaKsX4uil3ksbpEmN7dIUfKjMHDNI=" - }, - "org/slf4j#slf4j-api/1.7.25": { - "jar": "sha256-GMSgCV1cHaa4F1kudnuyPSndL1YK1033X/OWHb3iW3k=", - "pom": "sha256-fNnXoLXZPf1GGhSIkbQ1Cc9AOpx/n7SQYNNVTfHIHh4=" - }, - "org/slf4j#slf4j-nop/1.7.25": { - "jar": "sha256-bLEnE49Btahp+ezdBhrRd5mg4/5yBGAHlxVOsEMu6xI=", - "pom": "sha256-ogpNV7z++b2sp9EVliwN58lEa+TUZre9MNXxmkWc9Jk=" - }, - "org/slf4j#slf4j-parent/1.7.25": { - "pom": "sha256-GPXFISDbA26I1hNviDnIMtB0vdqVx1bG9CkknS21SsY=" - }, - "org/smali#baksmali/2.5.2": { - "jar": "sha256-HtI2Jm19xJB6reCxmjT3fvrCU0K2PIrOUuV5A5lBs4k=", - "module": "sha256-g+59x3oek4+5BtaNfUPiRX8s+Im7HecuqtcJJDVfpbU=", - "pom": "sha256-8FzZiasE/SboahreXCGauEgovqfebryA/Bd7YtJ1k4g=" - }, - "org/smali#dexlib2/2.5.2": { - "jar": "sha256-WlyJgti9fW47saBxMEnjx4txnsMrIPa2GYhc7DCg3WE=", - "module": "sha256-5XDKZe/asrKMAq2P34W9hSIGZrkkuJXKW+r1fXKGiDw=", - "pom": "sha256-BWB6NSDN841drl0MQZZRKjhWpA3rlTny/OCGNalut44=" - }, - "org/smali#util/2.5.2": { - "jar": "sha256-T1gKnP8+u4PLP9IL7Ijjfk8YN5bKZScymSYRYgKC2uo=", - "module": "sha256-rRt+JSAWcAXJFp2Gv8z/JvXF+b8Ls/qyRMtIIWU9wmE=", - "pom": "sha256-IKx+12/5cPUQB6IPrIvbon7IeUT9Kb2oxnQJZ5LJFFE=" - }, - "org/sonatype/oss#oss-parent/6": { - "pom": "sha256-tDBtE+j1OSRYobMIZvHP8WGz0uaZmojQWe6jkyyKhJk=" - }, - "org/sonatype/oss#oss-parent/7": { - "pom": "sha256-tR+IZ8kranIkmVV/w6H96ne9+e9XRyL+kM5DailVlFQ=" - }, - "org/sonatype/oss#oss-parent/9": { - "pom": "sha256-+0AmX5glSCEv+C42LllzKyGH7G8NgBgohcFO8fmCgno=" - }, - "org/tribuo#tribuo-classification-core/4.2.0": { - "jar": "sha256-+vv5OnIrmrVC7oeaX09lF5bkyuobZ5gNVWL+jdjbqeY=", - "pom": "sha256-gLgGCPTPN93HLmioPGBRyupwvqF+96hTCfWeqdpzBPE=" - }, - "org/tribuo#tribuo-classification-tree/4.2.0": { - "jar": "sha256-uVozLZJI7RKVgxdkTNQ9cubdit4KJPnKTlLaB72sY6c=", - "pom": "sha256-OrTlGe48n3lzd3MirS7EaR5j1kovRxiR4A1BGQdY2jw=" - }, - "org/tribuo#tribuo-classification/4.2.0": { - "pom": "sha256-SqINxWFbgU86wjq3xB+s+LpCKbPuzSwa/KeL3/kntcU=" - }, - "org/tribuo#tribuo-common-tree/4.2.0": { - "jar": "sha256-34iqIWT+X60ITLIxl7LgodbBPk7QbuXCGXausNuVfOk=", - "pom": "sha256-DbCNldwWEPdn/AehmZqXlhVxALozjH4JA2jMVN5NIHU=" - }, - "org/tribuo#tribuo-common/4.2.0": { - "pom": "sha256-GAZzLdQd51aq3tY2v7qZSD00J72diyAvEEJcr84iykk=" - }, - "org/tribuo#tribuo-core/4.2.0": { - "jar": "sha256-NFwzfcKHjsdQJJgqqwZycZtznnGOc9eisu/ottXQCb8=", - "pom": "sha256-XkjLxuPn9x+wYPSWdPTXbCLcKEe9flflVCY7+5gYpZ0=" - }, - "org/tribuo#tribuo-data/4.2.0": { - "jar": "sha256-m8EQCFnODOBCDNbfbOdna25DxSKEXUKGz5FIUmgtYz0=", - "pom": "sha256-SMm4+bX7Nd5toLwWhuMLStMkS6UWMCNw1fqGd1ixruA=" - }, - "org/tribuo#tribuo-math/4.2.0": { - "jar": "sha256-7NZdhI/2SIAXBLm6D3CmRtQDAgy97SYf1zVIGkeWVRI=", - "pom": "sha256-iCAlohj3F9hakTNsztSg+08CsjFcppZy0oqCc3uWhVE=" - }, - "org/tribuo#tribuo-util-onnx/4.2.0": { - "jar": "sha256-ohcAq4nLB1/OT8UkA1n5HMj4t/JCiS1lsD+oda0s3Vs=", - "pom": "sha256-Q19d8ELZieF6QHPjcFa++ChKUrw3zIZeF5Xvi7U5KUw=" - }, - "org/tribuo#tribuo-util-tokenization/4.2.0": { - "jar": "sha256-b0TzDZ0g6amwscMHAbcrPeXtofbXbZXanWkHQmVXdoI=", - "pom": "sha256-6GAT6tT7c0apQghWqMAX/g7aAlhmu0w935AK2JLi/Tg=" - }, - "org/tribuo#tribuo-util/4.2.0": { - "pom": "sha256-saxG0eBU4acgcz0cMeBMaIxxJb+mIN7RpEQ9BdNMma8=" - }, - "org/tribuo#tribuo/4.2.0": { - "pom": "sha256-mMQFMwnY7vg2fAbCAmyDHkqwS3nOny0hrGrrKE2dNZQ=" - }, - "org/tukaani#xz/1.9": { - "jar": "sha256-IRswbPxE+Plt86Cj3a91uoxSie7XfWDXL4ibuFX1NeU=", - "pom": "sha256-CTvhsDMxvOKTLWglw36YJy12Ieap6fuTKJoAJRi43Vo=" - } - }, - "https://sourceforge.net/projects": { - "pydev/files/pydev/PyDev%206.3.1/PyDev%206.3.1": { - "zip": "sha256-TYH+nYr+dmW46iCETT9RB/RGdCknxZlz6t5PKYCbBpk=" - }, - "yajsw/files/yajsw/yajsw-stable-13.09/yajsw-stable-13.09": { - "zip": "sha256-Ta5zKlNYRq5d+rdT6CpNX5OtmgWgZeIXK7l3ShsVRTo=" - } - }, - "https://storage.googleapis.com": { - "google-code-archive-downloads/v2/code.google.com/android4me/AXMLPrinter2": { - "jar": "sha256-AO0Djrarr23eyNICo+16gbUhRY9M1FmUgRXP0C/1nW0=" - } - } -} diff --git a/pkgs/ghidra-xenia-v2/extensions.nix b/pkgs/ghidra-xenia-v2/extensions.nix index 9b60125..3f30dd8 100644 --- a/pkgs/ghidra-xenia-v2/extensions.nix +++ b/pkgs/ghidra-xenia-v2/extensions.nix @@ -1,26 +1,14 @@ -{ - lib, - newScope, - callPackage, - ghidra, -}: +{ lib, newScope, callPackage, ghidra }: lib.makeScope newScope (self: { - inherit (callPackage ./build-extension.nix { inherit ghidra; }) - buildGhidraExtension - buildGhidraScripts - ; + inherit (callPackage ./build-extension.nix { inherit ghidra; }) buildGhidraExtension buildGhidraScripts; ghidraninja-ghidra-scripts = self.callPackage ./extensions/ghidraninja-ghidra-scripts { }; gnudisassembler = self.callPackage ./extensions/gnudisassembler { inherit ghidra; }; - lightkeeper = self.callPackage ./extensions/lightkeeper { }; - machinelearning = self.callPackage ./extensions/machinelearning { inherit ghidra; }; - ret-sync = self.callPackage ./extensions/ret-sync { }; - sleighdevtools = self.callPackage ./extensions/sleighdevtools { inherit ghidra; }; }) diff --git a/pkgs/ghidra-xenia-v2/extensions/ghidraninja-ghidra-scripts/default.nix b/pkgs/ghidra-xenia-v2/extensions/ghidraninja-ghidra-scripts/default.nix index 1e4fcef..6c5e2ec 100644 --- a/pkgs/ghidra-xenia-v2/extensions/ghidraninja-ghidra-scripts/default.nix +++ b/pkgs/ghidra-xenia-v2/extensions/ghidraninja-ghidra-scripts/default.nix @@ -1,10 +1,9 @@ -{ - lib, - fetchFromGitHub, - buildGhidraScripts, - binwalk, - swift, - yara, +{ lib +, fetchFromGitHub +, buildGhidraScripts +, binwalk +, swift +, yara }: buildGhidraScripts { diff --git a/pkgs/ghidra-xenia-v2/extensions/gnudisassembler/default.nix b/pkgs/ghidra-xenia-v2/extensions/gnudisassembler/default.nix index 6cddb49..7ca4b05 100644 --- a/pkgs/ghidra-xenia-v2/extensions/gnudisassembler/default.nix +++ b/pkgs/ghidra-xenia-v2/extensions/gnudisassembler/default.nix @@ -1,15 +1,14 @@ -{ - lib, - stdenv, - fetchurl, - buildGhidraExtension, - ghidra, - flex, - bison, - texinfo, - perl, - zlib, - xcbuild, +{ lib +, stdenv +, fetchurl +, buildGhidraExtension +, ghidra +, flex +, bison +, texinfo +, perl +, zlib +, xcbuild }: let @@ -42,10 +41,13 @@ buildGhidraExtension { bison texinfo perl - ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ xcbuild ]; + ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ + xcbuild + ]; - buildInputs = [ zlib ]; - gradleBuildTask = "assemble"; + buildInputs = [ + zlib + ]; installPhase = '' runHook preInstall diff --git a/pkgs/ghidra-xenia-v2/extensions/lightkeeper/default.nix b/pkgs/ghidra-xenia-v2/extensions/lightkeeper/default.nix deleted file mode 100644 index 74aa7ca..0000000 --- a/pkgs/ghidra-xenia-v2/extensions/lightkeeper/default.nix +++ /dev/null @@ -1,24 +0,0 @@ -{ - lib, - fetchFromGitHub, - buildGhidraExtension, -}: -buildGhidraExtension rec { - pname = "lightkeeper"; - version = "1.1.0"; - - src = fetchFromGitHub { - owner = "WorksButNotTested"; - repo = "lightkeeper"; - rev = version; - hash = "sha256-S8yNn56A2CvrIBsq0RoBx0qOjrYDZSv1IVTxGmlL4Js="; - }; - preConfigure = '' - cd lightkeeper - ''; - meta = { - description = "A port of the Lighthouse plugin to GHIDRA."; - homepage = "https://github.com/WorksButNotTested/lightkeeper"; - license = lib.licenses.asl20; - }; -} diff --git a/pkgs/ghidra-xenia-v2/extensions/machinelearning/default.nix b/pkgs/ghidra-xenia-v2/extensions/machinelearning/default.nix index a34845d..ba1e315 100644 --- a/pkgs/ghidra-xenia-v2/extensions/machinelearning/default.nix +++ b/pkgs/ghidra-xenia-v2/extensions/machinelearning/default.nix @@ -1,7 +1,6 @@ -{ - lib, - buildGhidraExtension, - ghidra, +{ lib +, buildGhidraExtension +, ghidra }: buildGhidraExtension { @@ -29,7 +28,7 @@ buildGhidraExtension { downloadPage = "https://github.com/NationalSecurityAgency/ghidra/tree/master/Ghidra/Extensions/MachineLearning"; sourceProvenance = with sourceTypes; [ fromSource - binaryBytecode # deps + binaryBytecode # deps ]; }; } diff --git a/pkgs/ghidra-xenia-v2/extensions/ret-sync/default.nix b/pkgs/ghidra-xenia-v2/extensions/ret-sync/default.nix deleted file mode 100644 index e2ab50c..0000000 --- a/pkgs/ghidra-xenia-v2/extensions/ret-sync/default.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ - lib, - fetchFromGitHub, - buildGhidraExtension, - ghidra, -}: -buildGhidraExtension { - pname = "ret-sync-ghidra"; - version = "0-unstable-2024-05-29"; - - src = fetchFromGitHub { - owner = "bootleg"; - repo = "ret-sync"; - rev = "0617c75746ddde7fe2bdbbf880175af8ad27553e"; - hash = "sha256-+G5ccdHnFL0sHpueuIYwLRU9FhzN658CYqQCHCBwxV4="; - }; - - preConfigure = '' - cd ext_ghidra - ''; - preInstall = '' - correct_version=$(ls dist | grep ${ghidra.version}) - mv dist/$correct_version dist/safe.zip - rm dist/ghidra* - mv dist/safe.zip dist/$correct_version - ''; - meta = with lib; { - description = "Reverse-Engineering Tools SYNChronization. Allows syncing between a debugging session and Ghidra"; - homepage = "https://github.com/bootleg/ret-sync"; - license = licenses.gpl3Only; - }; -} diff --git a/pkgs/ghidra-xenia-v2/extensions/sleighdevtools/default.nix b/pkgs/ghidra-xenia-v2/extensions/sleighdevtools/default.nix index 90a4954..d8fd018 100644 --- a/pkgs/ghidra-xenia-v2/extensions/sleighdevtools/default.nix +++ b/pkgs/ghidra-xenia-v2/extensions/sleighdevtools/default.nix @@ -1,8 +1,7 @@ -{ - lib, - buildGhidraExtension, - ghidra, - python3, +{ lib +, buildGhidraExtension +, ghidra +, python3 }: buildGhidraExtension { @@ -35,7 +34,7 @@ buildGhidraExtension { downloadPage = "https://github.com/NationalSecurityAgency/ghidra/tree/master/Ghidra/Extensions/SleighDevTools"; sourceProvenance = with sourceTypes; [ fromSource - binaryBytecode # deps + binaryBytecode # deps ]; }; } diff --git a/pkgs/ghidra-xenia-v2/with-extensions.nix b/pkgs/ghidra-xenia-v2/with-extensions.nix index e1ddfed..38165ed 100644 --- a/pkgs/ghidra-xenia-v2/with-extensions.nix +++ b/pkgs/ghidra-xenia-v2/with-extensions.nix @@ -1,45 +1,36 @@ -{ - lib, - stdenv, - callPackage, - symlinkJoin, - makeBinaryWrapper, - desktopToDarwinBundle, - ghidra, +{ lib +, stdenv +, callPackage +, symlinkJoin +, makeBinaryWrapper +, desktopToDarwinBundle +, ghidra }: let ghidra-extensions = callPackage ./extensions.nix { inherit ghidra; }; allExtensions = lib.filterAttrs (n: pkg: lib.isDerivation pkg) ghidra-extensions; - /* - Make Ghidra with additional extensions - Example: - pkgs.ghidra.withExtensions (p: with p; [ - ghostrings - ]); - => /nix/store/3yn0rbnz5mbrxf0x70jbjq73wgkszr5c-ghidra-with-extensions-10.2.2 + /* Make Ghidra with additional extensions + Example: + pkgs.ghidra.withExtensions (p: with p; [ + ghostrings + ]); + => /nix/store/3yn0rbnz5mbrxf0x70jbjq73wgkszr5c-ghidra-with-extensions-10.2.2 */ - withExtensions = - f: - (symlinkJoin { - name = "${ghidra.pname}-with-extensions-${lib.getVersion ghidra}"; - paths = (f allExtensions); - nativeBuildInputs = [ - makeBinaryWrapper - ] ++ lib.optional stdenv.hostPlatform.isDarwin desktopToDarwinBundle; - postBuild = - '' - makeWrapper '${ghidra}/bin/ghidra' "$out/bin/ghidra" \ - --set NIX_GHIDRAHOME "$out/lib/ghidra/Ghidra" - makeWrapper '${ghidra}/bin/ghidra-analyzeHeadless' "$out/bin/ghidra-analyzeHeadless" \ - --set NIX_GHIDRAHOME "$out/lib/ghidra/Ghidra" - ln -s ${ghidra}/share $out/share - '' - + lib.optionalString stdenv.hostPlatform.isDarwin '' - convertDesktopFiles $prefix - ''; - inherit (ghidra) meta; - }); + withExtensions = f: (symlinkJoin { + name = "${ghidra.pname}-with-extensions-${lib.getVersion ghidra}"; + paths = (f allExtensions); + nativeBuildInputs = [ makeBinaryWrapper ] + ++ lib.optional stdenv.hostPlatform.isDarwin desktopToDarwinBundle; + postBuild = '' + makeWrapper '${ghidra}/bin/ghidra' "$out/bin/ghidra" \ + --set NIX_GHIDRAHOME "$out/lib/ghidra/Ghidra" + ln -s ${ghidra}/share $out/share + '' + lib.optionalString stdenv.hostPlatform.isDarwin '' + convertDesktopFiles $prefix + ''; + inherit (ghidra) meta; + }); in -withExtensions + withExtensions