From 101e1a3a279f2676bee72d2818660c191c55710c Mon Sep 17 00:00:00 2001 From: Jerry James Date: Jun 13 2019 02:13:03 +0000 Subject: Update to latest git snapshot. Also: - Add -build and -format patches. - Build with cmake. - Enable CUDD support. --- diff --git a/abc-build.patch b/abc-build.patch new file mode 100644 index 0000000..e4a0c99 --- /dev/null +++ b/abc-build.patch @@ -0,0 +1,26 @@ +--- CMakeLists.txt.orig 2019-05-30 20:27:31.000000000 -0600 ++++ CMakeLists.txt 2019-06-04 09:41:14.524445396 -0600 +@@ -53,7 +53,7 @@ execute_process( + make + ${ABC_READLINE_FLAGS} + ${ABC_USE_NAMESPACE_FLAGS} +- ARCHFLAGS_EXE=${CMAKE_CURRENT_BINARY_DIR}/abc_arch_flags_program.exe ++ ABC_USE_STDINT_H=1 + ABC_MAKE_NO_DEPS=1 + CC=${CMAKE_C_COMPILER} + CXX=${CMAKE_CXX_COMPILER} +@@ -94,6 +94,8 @@ list(REMOVE_ITEM ABC_SRC ${ABC_MAIN_SRC} + add_library(libabc EXCLUDE_FROM_ALL ${ABC_SRC}) + abc_properties(libabc PUBLIC) + set_property(TARGET libabc PROPERTY OUTPUT_NAME abc) ++set_property(TARGET libabc PROPERTY VERSION "0.0.0") ++set_property(TARGET libabc PROPERTY SOVERSION 0) + + add_executable(abc ${ABC_MAIN_SRC}) + target_link_libraries(abc PRIVATE libabc) +@@ -103,3 +105,5 @@ add_library(libabc-pic EXCLUDE_FROM_ALL + abc_properties(libabc-pic PUBLIC) + set_property(TARGET libabc-pic PROPERTY POSITION_INDEPENDENT_CODE ON) + set_property(TARGET libabc-pic PROPERTY OUTPUT_NAME abc-pic) ++set_property(TARGET libabc-pic PROPERTY VERSION "0.0.0") ++set_property(TARGET libabc-pic PROPERTY SOVERSION 0) diff --git a/abc-bundlelib.patch b/abc-bundlelib.patch index 0039dbf..64b0479 100644 --- a/abc-bundlelib.patch +++ b/abc-bundlelib.patch @@ -1,5 +1,5 @@ ---- Makefile.orig 2018-07-04 23:17:28.000000000 -0600 -+++ Makefile 2018-07-05 14:10:12.171993636 -0600 +--- Makefile.orig 2019-05-30 20:27:31.000000000 -0600 ++++ Makefile 2019-06-04 09:40:32.212192338 -0600 @@ -20,7 +20,7 @@ MODULES := \ src/map/mapper src/map/mio src/map/super src/map/if \ src/map/amap src/map/cov src/map/scl src/map/mpm \ @@ -9,17 +9,16 @@ src/misc/mem src/misc/bar src/misc/bbl src/misc/parse \ src/opt/cut src/opt/fxu src/opt/fxch src/opt/rwr src/opt/mfs src/opt/sim \ src/opt/ret src/opt/fret src/opt/res src/opt/lpk src/opt/nwk src/opt/rwt \ -@@ -75,6 +75,8 @@ endif +@@ -42,6 +42,7 @@ $(ARCHFLAGS_EXE) : arch_flags.c + $(CC) arch_flags.c -o $(ARCHFLAGS_EXE) - ABC_READLINE_INCLUDES ?= - ABC_READLINE_LIBRARIES ?= -lreadline -+LDFLAGS=-Wl,--as-needed + INCLUDES += -I$(ABCSRC)/src +LIBS=-lbz2 -lz - # whether to use libreadline - ifndef ABC_USE_NO_READLINE ---- src/base/io/ioReadAiger.c.orig 2018-07-04 23:17:28.000000000 -0600 -+++ src/base/io/ioReadAiger.c 2018-07-05 14:29:46.087515075 -0600 + # Use C99 stdint.h header for platform-dependent types + ifdef ABC_USE_STDINT_H +--- src/base/io/ioReadAiger.c.orig 2019-05-30 20:27:31.000000000 -0600 ++++ src/base/io/ioReadAiger.c 2019-06-04 09:40:32.231192003 -0600 @@ -26,8 +26,8 @@ #include #include @@ -31,8 +30,8 @@ #include "ioAbc.h" ABC_NAMESPACE_IMPL_START ---- src/base/io/ioReadBlifMv.c.orig 2018-07-04 23:17:28.000000000 -0600 -+++ src/base/io/ioReadBlifMv.c 2018-07-05 14:27:17.066828346 -0600 +--- src/base/io/ioReadBlifMv.c.orig 2019-05-30 20:27:31.000000000 -0600 ++++ src/base/io/ioReadBlifMv.c 2019-06-04 09:40:32.232191985 -0600 @@ -18,8 +18,8 @@ ***********************************************************************/ @@ -44,8 +43,8 @@ #include "base/abc/abc.h" #include "misc/vec/vecPtr.h" #include "ioAbc.h" ---- src/base/io/ioWriteAiger.c.orig 2018-07-04 23:17:28.000000000 -0600 -+++ src/base/io/ioWriteAiger.c 2018-07-05 14:29:22.471564723 -0600 +--- src/base/io/ioWriteAiger.c.orig 2019-05-30 20:27:31.000000000 -0600 ++++ src/base/io/ioWriteAiger.c 2019-06-04 09:40:32.233191967 -0600 @@ -26,8 +26,8 @@ #include #include @@ -57,8 +56,8 @@ #include "ioAbc.h" ---- src/sat/bsat2/MainSat.cpp.orig 2018-07-04 23:17:28.000000000 -0600 -+++ src/sat/bsat2/MainSat.cpp 2018-07-05 14:28:26.007683423 -0600 +--- src/sat/bsat2/MainSat.cpp.orig 2019-05-30 20:27:31.000000000 -0600 ++++ src/sat/bsat2/MainSat.cpp 2019-06-04 09:40:32.234191950 -0600 @@ -21,7 +21,7 @@ OF OR IN CONNECTION WITH THE SOFTWARE OR #include @@ -68,8 +67,8 @@ #include "System.h" #include "ParseUtils.h" ---- src/sat/bsat2/MainSimp.cpp.orig 2018-07-04 23:17:28.000000000 -0600 -+++ src/sat/bsat2/MainSimp.cpp 2018-07-05 14:27:17.067828343 -0600 +--- src/sat/bsat2/MainSimp.cpp.orig 2019-05-30 20:27:31.000000000 -0600 ++++ src/sat/bsat2/MainSimp.cpp 2019-06-04 09:40:32.234191950 -0600 @@ -21,7 +21,7 @@ OF OR IN CONNECTION WITH THE SOFTWARE OR #include @@ -79,8 +78,8 @@ #ifndef _WIN32 #include ---- src/sat/bsat2/ParseUtils.h.orig 2018-07-04 23:17:28.000000000 -0600 -+++ src/sat/bsat2/ParseUtils.h 2018-07-05 14:28:03.175731423 -0600 +--- src/sat/bsat2/ParseUtils.h.orig 2019-05-30 20:27:31.000000000 -0600 ++++ src/sat/bsat2/ParseUtils.h 2019-06-04 09:40:32.235191932 -0600 @@ -24,7 +24,7 @@ OF OR IN CONNECTION WITH THE SOFTWARE OR #include #include @@ -90,8 +89,8 @@ namespace Minisat { ---- src/sat/cnf/cnfMan.c.orig 2018-07-04 23:17:28.000000000 -0600 -+++ src/sat/cnf/cnfMan.c 2018-07-05 14:28:46.687639950 -0600 +--- src/sat/cnf/cnfMan.c.orig 2019-05-30 20:27:31.000000000 -0600 ++++ src/sat/cnf/cnfMan.c 2019-06-04 09:40:32.235191932 -0600 @@ -21,7 +21,7 @@ #include "cnf.h" #include "sat/bsat/satSolver.h" @@ -101,8 +100,8 @@ ABC_NAMESPACE_IMPL_START ---- src/sat/glucose/ParseUtils.h.orig 2018-07-04 23:17:28.000000000 -0600 -+++ src/sat/glucose/ParseUtils.h 2018-07-05 14:27:17.067828343 -0600 +--- src/sat/glucose/ParseUtils.h.orig 2019-05-30 20:27:31.000000000 -0600 ++++ src/sat/glucose/ParseUtils.h 2019-06-04 09:40:32.236191914 -0600 @@ -25,7 +25,7 @@ OF OR IN CONNECTION WITH THE SOFTWARE OR #include #include diff --git a/abc-format.patch b/abc-format.patch new file mode 100644 index 0000000..bf00519 --- /dev/null +++ b/abc-format.patch @@ -0,0 +1,136 @@ +--- src/aig/aig/aigUtil.c.orig 2019-05-30 20:27:31.000000000 -0600 ++++ src/aig/aig/aigUtil.c 2019-06-04 09:42:11.236444258 -0600 +@@ -725,7 +725,7 @@ void Aig_ManPrintVerbose( Aig_Man_t * p, + void Aig_ManDump( Aig_Man_t * p ) + { + static int Counter = 0; +- char FileName[20]; ++ char FileName[24]; + // dump the logic into a file + sprintf( FileName, "aigbug\\%03d.blif", ++Counter ); + Aig_ManDumpBlif( p, FileName, NULL, NULL ); +--- src/aig/gia/giaScript.c.orig 2019-05-30 20:27:31.000000000 -0600 ++++ src/aig/gia/giaScript.c 2019-06-04 09:42:11.237444240 -0600 +@@ -610,10 +610,10 @@ void Gia_ManPerformFlow( int fIsMapped, + void Gia_ManPerformFlow2( int fIsMapped, int nAnds, int nLevels, int nLutSize, int nCutNum, int fBalance, int fMinAve, int fUseMfs, int fVerbose ) + { + char Comm1[100], Comm2[100], Comm3[100], Comm4[100]; +- sprintf( Comm1, "&synch2 -K %d -C 500; &if -m%s -K %d -C %d; %s &save", nLutSize, fMinAve?"t":"", nLutSize, nCutNum, fUseMfs ? "&put; mfs2 -W 4 -M 500 -C 7000; &get -m;":"" ); +- sprintf( Comm2, "&dch -C 500; &if -m%s -K %d -C %d; %s &save", fMinAve?"t":"", nLutSize, nCutNum+4, fUseMfs ? "&put; mfs2 -W 4 -M 500 -C 7000; &get -m;":"" ); +- sprintf( Comm3, "&synch2 -K %d -C 500; &lf -m%s -E 5 -K %d -C %d; %s &save", nLutSize, fMinAve?"t":"", nLutSize, nCutNum, fUseMfs ? "&put; mfs2 -W 4 -M 500 -C 7000; &get -m;":"" ); +- sprintf( Comm4, "&dch -C 500; &lf -m%sk -E 5 -K %d -C %d; %s &save", fMinAve?"t":"", nLutSize, nCutNum+4, fUseMfs ? "&put; mfs2 -W 4 -M 500 -C 7000; &get -m;":"" ); ++ snprintf( Comm1, 100U, "&synch2 -K %d -C 500; &if -m%s -K %d -C %d; %s &save", nLutSize, fMinAve?"t":"", nLutSize, nCutNum, fUseMfs ? "&put; mfs2 -W 4 -M 500 -C 7000; &get -m;":"" ); ++ snprintf( Comm2, 100U, "&dch -C 500; &if -m%s -K %d -C %d; %s &save", fMinAve?"t":"", nLutSize, nCutNum+4, fUseMfs ? "&put; mfs2 -W 4 -M 500 -C 7000; &get -m;":"" ); ++ snprintf( Comm3, 100U, "&synch2 -K %d -C 500; &lf -m%s -E 5 -K %d -C %d; %s &save", nLutSize, fMinAve?"t":"", nLutSize, nCutNum, fUseMfs ? "&put; mfs2 -W 4 -M 500 -C 7000; &get -m;":"" ); ++ snprintf( Comm4, 100U, "&dch -C 500; &lf -m%sk -E 5 -K %d -C %d; %s &save", fMinAve?"t":"", nLutSize, nCutNum+4, fUseMfs ? "&put; mfs2 -W 4 -M 500 -C 7000; &get -m;":"" ); + + // perform synthesis + if ( fVerbose ) +--- src/base/abci/abcMiter.c.orig 2019-05-30 20:27:31.000000000 -0600 ++++ src/base/abci/abcMiter.c 2019-06-04 09:42:11.238444223 -0600 +@@ -860,7 +860,7 @@ void Abc_NtkAddFrame( Abc_Ntk_t * pNtkFr + { + int fVerbose = 0; + int NodeBef = Abc_NtkNodeNum(pNtkFrames); +- char Buffer[10]; ++ char Buffer[12]; + Abc_Obj_t * pNode, * pLatch; + int i; + // create the prefix to be added to the node names +--- src/base/io/ioReadBlifMv.c.orig 2019-06-04 09:40:32.232191985 -0600 ++++ src/base/io/ioReadBlifMv.c 2019-06-04 09:42:11.239444205 -0600 +@@ -1656,7 +1656,7 @@ static int Io_MvWriteValues( Abc_Obj_t * + ***********************************************************************/ + static int Io_MvParseLiteralMv( Io_MvMod_t * p, Abc_Obj_t * pNode, char * pToken, Vec_Str_t * vFunc, int iLit ) + { +- char Buffer[10]; ++ char Buffer[12]; + Io_MvVar_t * pVar; + Abc_Obj_t * pFanin, * pNet; + char * pCur, * pNext; +--- src/base/ver/verCore.c.orig 2019-05-30 20:27:31.000000000 -0600 ++++ src/base/ver/verCore.c 2019-06-04 09:42:11.240444188 -0600 +@@ -1171,7 +1171,7 @@ int Ver_ParseAssign( Ver_Man_t * pMan, A + pNode = Abc_NtkCreateNodeBuf( pNtk, pNet ); + + // get the fanout net +- sprintf( Buffer2, "%s[%d]", Buffer, Bit ); ++ snprintf( Buffer2, 1000U, "%s[%d]", Buffer, Bit ); + pNet = Ver_ParseFindNet( pNtk, Buffer2 ); + if ( pNet == NULL ) + { +--- src/base/wlc/wlcNdr.c.orig 2019-05-30 20:27:31.000000000 -0600 ++++ src/base/wlc/wlcNdr.c 2019-06-04 09:42:11.241444170 -0600 +@@ -478,7 +478,7 @@ Wlc_Ntk_t * Wlc_NtkFromNdr( void * pData + pNtk->pManName = Abc_NamStart( NameIdMax+1, 10 ); + for ( i = 1; i <= NameIdMax; i++ ) + { +- char pName[20]; sprintf( pName, "s%0*d", nDigits, i ); ++ char pName[20]; snprintf( pName, 20U, "s%0*d", nDigits, i ); + NameId = Abc_NamStrFindOrAdd( pNtk->pManName, pName, &fFound ); + assert( !fFound && i == NameId ); + } +--- src/base/wln/wlnNdr.c.orig 2019-05-30 20:27:31.000000000 -0600 ++++ src/base/wln/wlnNdr.c 2019-06-04 09:42:11.242444152 -0600 +@@ -256,7 +256,7 @@ Wln_Ntk_t * Wln_NtkFromNdr( void * pData + pNtk->pManName = Abc_NamStart( NameIdMax+1, 10 ); + for ( i = 1; i <= NameIdMax; i++ ) + { +- char pName[20]; sprintf( pName, "s%0*d", nDigits, i ); ++ char pName[20]; snprintf( pName, 20U, "s%0*d", nDigits, i ); + NameId = Abc_NamStrFindOrAdd( pNtk->pManName, pName, &fFound ); + assert( !fFound && i == NameId ); + } +--- src/bdd/cas/casCore.c.orig 2019-05-30 20:27:31.000000000 -0600 ++++ src/bdd/cas/casCore.c 2019-06-04 09:42:11.243444135 -0600 +@@ -259,7 +259,7 @@ int Abc_CascadeExperiment( char * pFileG + if ( fCheck ) + { + char Command[200]; +- sprintf( Command, "cec %s %s", FileNameIni, FileNameFin ); ++ snprintf( Command, 200U, "cec %s %s", FileNameIni, FileNameFin ); + Cmd_CommandExecute( Abc_FrameGetGlobalFrame(), Command ); + } + +--- src/opt/dau/dauMerge.c.orig 2019-05-30 20:27:31.000000000 -0600 ++++ src/opt/dau/dauMerge.c 2019-06-04 09:42:11.243444135 -0600 +@@ -661,7 +661,7 @@ printf( "%s\n", pDsd1 ); + nVarsShared = Dau_DsdMergeFindShared(pDsd0, pDsd1, pMatches0, pMatches1, pVarPres); + if ( nVarsShared == 0 ) + { +- sprintf( pRes, "(%s%s)", pDsd0, pDsd1 ); ++ snprintf( pRes, DAU_MAX_STR, "(%s%s)", pDsd0, pDsd1 ); + if ( fVerbose ) + printf( "Disjoint:\n" ); + if ( fVerbose ) +@@ -715,7 +715,7 @@ Dau_DsdMergeStorePrintDefs( pS ); + + // create new function + // assert( nVarsTotal <= 6 ); +- sprintf( pS->pOutput, "(%s%s)", pDsd0, pDsd1 ); ++ snprintf( pS->pOutput, DAU_MAX_STR, "(%s%s)", pDsd0, pDsd1 ); + pTruth = Dau_DsdToTruth( pS->pOutput, nVarsTotal ); + Status = Dau_DsdDecompose( pTruth, nVarsTotal, 0, 1, pS->pOutput ); + //printf( "%d ", Status ); +--- src/proof/fra/fraCore.c.orig 2019-05-30 20:27:31.000000000 -0600 ++++ src/proof/fra/fraCore.c 2019-06-04 09:42:11.243444135 -0600 +@@ -156,7 +156,7 @@ int Fra_FraigMiterAssertedOutput( Aig_Ma + static inline void Fra_FraigNodeSpeculate( Fra_Man_t * p, Aig_Obj_t * pObj, Aig_Obj_t * pObjFraig, Aig_Obj_t * pObjReprFraig ) + { + static int Counter = 0; +- char FileName[20]; ++ char FileName[24]; + Aig_Man_t * pTemp; + Aig_Obj_t * pNode; + int i; +--- src/sat/bmc/bmcMaj.c.orig 2019-05-30 20:27:31.000000000 -0600 ++++ src/sat/bmc/bmcMaj.c 2019-06-04 09:42:11.243444135 -0600 +@@ -585,7 +585,7 @@ void Exa_ManDumpBlif( Exa_Man_t * p, int + Extra_PrintHexadecimalString( Buffer, (unsigned *)p->pTruth, p->nVars ); + if ( fCompl ) + Abc_TtNot( p->pTruth, p->nWords ); +- sprintf( FileName, "%s_%d_%d.blif", Buffer, 2, p->nNodes ); ++ snprintf( FileName, 1000U, "%s_%d_%d.blif", Buffer, 2, p->nNodes ); + pFile = fopen( FileName, "wb" ); + fprintf( pFile, "# Realization of the %d-input function %s using %d two-input gates:\n", p->nVars, Buffer, p->nNodes ); + fprintf( pFile, ".model %s_%d_%d\n", Buffer, 2, p->nNodes ); diff --git a/abc-header.patch b/abc-header.patch index 7ad6e5c..4a52250 100644 --- a/abc-header.patch +++ b/abc-header.patch @@ -1,5 +1,5 @@ ---- src/sat/glucose/Glucose.cpp.orig 2018-01-29 18:01:01.000000000 -0700 -+++ src/sat/glucose/Glucose.cpp 2018-02-01 20:58:59.894726225 -0700 +--- src/sat/glucose/Glucose.cpp.orig 2019-05-30 20:27:31.000000000 -0600 ++++ src/sat/glucose/Glucose.cpp 2019-06-04 09:41:02.469658200 -0600 @@ -33,6 +33,7 @@ OF OR IN CONNECTION WITH THE SOFTWARE OR #include "sat/glucose/Solver.h" #include "sat/glucose/Constants.h" diff --git a/abc-sharedlib.patch b/abc-sharedlib.patch index c96eb6a..92fa915 100644 --- a/abc-sharedlib.patch +++ b/abc-sharedlib.patch @@ -1,6 +1,6 @@ ---- Makefile.orig 2018-07-05 14:10:12.171993636 -0600 -+++ Makefile 2018-07-05 14:13:34.091565427 -0600 -@@ -54,7 +54,7 @@ ARCHFLAGS := $(ARCHFLAGS) +--- Makefile.orig 2019-06-04 09:40:32.212192338 -0600 ++++ Makefile 2019-06-04 09:40:51.291855524 -0600 +@@ -55,7 +55,7 @@ ARCHFLAGS := $(ARCHFLAGS) OPTFLAGS ?= -g -O @@ -9,7 +9,7 @@ ifneq ($(findstring arm,$(shell uname -m)),) CFLAGS += -DABC_MEMALIGN=4 endif -@@ -222,7 +222,9 @@ lib$(PROG).a: $(LIBOBJ) +@@ -221,7 +221,9 @@ lib$(PROG).a: $(LIBOBJ) lib$(PROG).so: $(LIBOBJ) @echo "$(MSG_PREFIX)\`\` Linking:" $(notdir $@) diff --git a/abc.spec b/abc.spec index 4d9cf81..4d92068 100644 --- a/abc.spec +++ b/abc.spec @@ -1,8 +1,8 @@ # Upstream doesn't make releases. We have to check the code out of git. %global owner berkeley-abc -%global gittag 5aa3025ce7264a172a070a78d7b7db0cd1fca3f0 +%global gittag 35280f30504ad16f1d0ab005905883bee883747c %global shorttag %(cut -b -7 <<< %{gittag}) -%global gitdate 20181121 +%global gitdate 20190608 # WARNING: When updating to a newer snapshot, because upstream doesn't do # shared library versioning, run abipkgdiff (from libabigail) against the @@ -20,7 +20,7 @@ Name: abc Version: 1.01 -Release: 21.git%{gitdate}%{?dist} +Release: 22.git%{gitdate}%{?dist} Summary: Sequential logic synthesis and formal verification License: MIT @@ -35,8 +35,13 @@ Patch0: %{name}-bundlelib.patch Patch1: %{name}-sharedlib.patch # Fix a minor header issue Patch2: %{name}-header.patch +# Set an soname on the library +Patch3: %{name}-build.patch +# Fix sprintf calls that can overflow their buffers +Patch4: %{name}-format.patch BuildRequires: bzip2-devel +BuildRequires: cmake BuildRequires: gcc-c++ BuildRequires: readline-devel BuildRequires: zlib-devel @@ -59,6 +64,9 @@ their needs as if it were a toolbox rather than a complete tool. %package libs Summary: Library for sequential synthesis and verification +# ABC includes a bundled and modified version of CUDD 2.4.2, which is +# incompatible with the Fedora-provided CUDD 3.0.0. +Provides: bundled(cudd) = 2.4.2 %description libs This package contains the core functionality of ABC as a shared library. @@ -81,12 +89,10 @@ sed 's/@VERSION@/%{version} (%{gitdate})/' %{SOURCE1} > %{name}.1 touch -r %{SOURCE1} %{name}.1 %build -# Build the library and binary -make %{?_smp_mflags} libabc.so OPTFLAGS="%{optflags} -fPIC -DNDEBUG" \ - LD="g++ $RPM_LD_FLAGS" ABC_MAKE_VERBOSE=1 -make %{?_smp_mflags} src/base/main/main.o OPTFLAGS="%{optflags} -DNDEBUG" \ - ABC_MAKE_VERBOSE=1 -g++ src/base/main/main.o -o %{name} $RPM_LD_FLAGS -L. -labc +export CFLAGS="%{optflags} -DNDEBUG -I%{_includedir}/cudd" +export CXXFLAGS="$CFLAGS" +%cmake -DCMAKE_SKIP_RPATH:BOOL=YES -DCMAKE_SKIP_INSTALL_RPATH:BOOL=YES . +%make_build ABC_MAKE_VERBOSE=1 ABC_USE_STDINT_H=1 %install # Install the library @@ -124,6 +130,12 @@ install -p -m 0644 %{name}.1 %{buildroot}%{_mandir}/man1 %{_libdir}/lib%{name}.so %changelog +* Wed Jun 12 2019 Jerry James - 1.01-22.git20190608 +- Update to latest git snapshot +- Add -build and -format patches +- Build with cmake +- Enable CUDD support + * Sun Feb 17 2019 Igor Gnatenko - 1.01-21.git20181121 - Rebuild for readline 8.0 diff --git a/sources b/sources index 5ba7846..f866bda 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (abc-5aa3025.tar.gz) = 3c17eef193dfe0e8d23d03ec9ccfda0b0ba129a9cc5b8d60b065f2b6fb414cc721a7c625cff2b31c2f462901d716e863b013a17abb13ebd87fb034e3d0a156c9 +SHA512 (abc-35280f3.tar.gz) = d18c6509ad0efa2c98cbd3aa5d22d3b302147bad34fa438100b603febded2df7ea16040c766ebc17b6ac35b84a41bf453907560885c26d5a47a76440b097c3fa