Hello community, here is the log from the commit of package libcue for openSUSE:Factory checked in at 2018-02-10 17:54:33 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libcue (Old) and /work/SRC/openSUSE:Factory/.libcue.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libcue" Sat Feb 10 17:54:33 2018 rev:8 rq:573910 version:2.2.0 Changes: -------- --- /work/SRC/openSUSE:Factory/libcue/libcue.changes 2016-07-15 12:29:18.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.libcue.new/libcue.changes 2018-02-10 17:54:34.279942437 +0100 @@ -1,0 +2,9 @@ +Wed Feb 7 21:44:48 UTC 2018 - [email protected] + +- Update to new upstream release 2.2.0 + * Fix memory corruption in cue_scanner.l + * Use MAXINDEX instead of MAXTRACK when indexing INDEX entries + * Allow for 100 INDEX entries +- Remove cmake.diff (applied upstream) + +------------------------------------------------------------------- Old: ---- cmake.diff v2.1.0.tar.gz New: ---- v2.2.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libcue.spec ++++++ --- /var/tmp/diff_new_pack.SE1tr2/_old 2018-02-10 17:54:35.259906963 +0100 +++ /var/tmp/diff_new_pack.SE1tr2/_new 2018-02-10 17:54:35.263906817 +0100 @@ -1,7 +1,7 @@ # # spec file for package libcue # -# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -18,15 +18,14 @@ Name: libcue %define lname libcue2 -Version: 2.1.0 +Version: 2.2.0 Release: 0 Summary: CUE sheet parsing library License: GPL-2.0 Group: Development/Libraries/C and C++ -Url: http://sf.net/projects/libcue/ +Url: https://github.com/lipnitsk/libcue Source: https://github.com/lipnitsk/libcue/archive/v%version.tar.gz -Patch1: cmake.diff BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: bison BuildRequires: cmake @@ -44,7 +43,7 @@ %description -n %lname libcue parses so-called cue sheets from a char string or a FILE -pointer. This project is meant as a fork of (defunct) cuetools. +pointer. %package devel Summary: Development files for libcue, a CUE sheet parsing library @@ -53,14 +52,13 @@ %description devel libcue parses so-called cue sheets from a char string or a FILE -pointer. This project is meant as a fork of (defunct) cuetools. +pointer. This package contains the development library symlink and header files. %prep %setup -q -%patch -P 1 -p1 %build %cmake ++++++ v2.1.0.tar.gz -> v2.2.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libcue-2.1.0/CMakeLists.txt new/libcue-2.2.0/CMakeLists.txt --- old/libcue-2.1.0/CMakeLists.txt 2016-04-15 07:31:27.000000000 +0200 +++ new/libcue-2.2.0/CMakeLists.txt 2017-11-08 07:36:45.000000000 +0100 @@ -1,12 +1,15 @@ SET(PACKAGE libcue) SET(PACKAGE_NAME libcue) -SET(PACKAGE_VERSION 2.1.0) +SET(PACKAGE_VERSION 2.2.0) SET(PACKAGE_SOVERSION 2) CMAKE_MINIMUM_REQUIRED(VERSION 2.8 FATAL_ERROR) PROJECT(libcue) +include(GNUInstallDirs) + + SET(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}") ADD_DEFINITIONS(-DPACKAGE_VERSION="${PACKAGE_VERSION}") ADD_DEFINITIONS(-DPACKAGE_STRING="${PACKAGE_STRING}") @@ -19,7 +22,7 @@ CONFIGURE_FILE(libcue.pc.in libcue.pc @ONLY) INSTALL(FILES ${CMAKE_BINARY_DIR}/libcue.pc - DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/pkgconfig) + DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}) INCLUDE_DIRECTORIES(${CMAKE_BINARY_DIR}) # for generated files @@ -44,14 +47,15 @@ C_VISIBILITY_PRESET hidden) INSTALL(TARGETS cue - LIBRARY DESTINATION lib - ARCHIVE DESTINATION lib) -INSTALL(FILES ${CMAKE_SOURCE_DIR}/libcue.h DESTINATION include) + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) +INSTALL(FILES ${CMAKE_SOURCE_DIR}/libcue.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) if(CMAKE_HOST_UNIX) - INSTALL(DIRECTORY DESTINATION include/libcue) + INSTALL(DIRECTORY DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/libcue) INSTALL(CODE " EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E create_symlink ../libcue.h - \$ENV{DESTDIR}/${CMAKE_INSTALL_PREFIX}/include/libcue/libcue.h) + \$ENV{DESTDIR}/${CMAKE_INSTALL_FULL_INCLUDEDIR}/libcue/libcue.h) ") endif(CMAKE_HOST_UNIX) @@ -70,6 +74,10 @@ ADD_EXECUTABLE(issue10 ${CMAKE_SOURCE_DIR}/t/issue10.c) TARGET_LINK_LIBRARIES(issue10 cue) + +ADD_EXECUTABLE(99_tracks ${CMAKE_SOURCE_DIR}/t/99_tracks.c) +TARGET_LINK_LIBRARIES(99_tracks cue) + INCLUDE(Dart) SET(DART_TESTING_TIMEOUT 5) @@ -78,6 +86,7 @@ ADD_TEST(multiple_files_test multiple_files) ADD_TEST(noncompliant_test noncompliant) ADD_TEST(NAME issue10_test COMMAND issue10 WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/t) +ADD_TEST(NAME 99_tracks_test COMMAND 99_tracks WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/t) SET(CPACK_PACKAGE_VERSION "${PACKAGE_VERSION}") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libcue-2.1.0/ChangeLog new/libcue-2.2.0/ChangeLog --- old/libcue-2.1.0/ChangeLog 2016-04-15 07:31:27.000000000 +0200 +++ new/libcue-2.2.0/ChangeLog 2017-11-08 07:36:45.000000000 +0100 @@ -1,3 +1,22 @@ +libcue (2.2.0) + [Tom M] + * cmake: Use GNUInstallDirs and don't hard-code install paths (PR #12) + + [John Lindgren] + * cmake: Set RUNTIME to CMAKE_INSTALL_BINDIR (issue #13) + + [Wolfgang Hotwagner] + * Fix memory corruption in cue_scanner.l (PR #15) + + [John Fitzgerald] + * Use MAXINDEX instead of MAXTRACK when indexing INDEX entries + * Allow for 100 INDEX entries + * Replace fprintf(3) to stdout with printf(3) + + [Ilya Lipnitskiy] + * pkgconfig: Use dynamic directories from GNUInstallDirs + * Port 99 track fix from cuetools and add a test case + libcue (2.1.0) [Ilya Lipnitskiy] * Add FLAC token support (issue #9) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libcue-2.1.0/README.md new/libcue-2.2.0/README.md --- old/libcue-2.1.0/README.md 2016-04-15 07:31:27.000000000 +0200 +++ new/libcue-2.2.0/README.md 2017-11-08 07:36:45.000000000 +0100 @@ -8,6 +8,17 @@ Some usage examples are also available in the test cases under [t/](https://github.com/lipnitsk/libcue/tree/master/t). +# Compiling + +``` +mkdir bin +cd bin +cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_BUILD_TYPE=Release ../ +make +make test +make install +``` + # Contributing One should note that while the CUE format is supported by various tools, such as media players or CD ripping tools, there is no single standard that strictly describes the CUE syntax. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libcue-2.1.0/cd.c new/libcue-2.2.0/cd.c --- old/libcue-2.1.0/cd.c 2016-04-15 07:31:27.000000000 +0200 +++ new/libcue-2.2.0/cd.c 2017-11-08 07:36:45.000000000 +0100 @@ -27,7 +27,7 @@ char *isrc; /* IRSC Code (5.22.4) 12 bytes */ Cdtext *cdtext; /* CD-TEXT */ Rem* rem; - long index[MAXINDEX]; /* indexes (in frames) (5.29.2.5) + long index[MAXINDEX+1]; /* indexes (in frames) (5.29.2.5) * relative to start of file */ }; @@ -132,7 +132,7 @@ track->rem = rem_new(); int i; - for (i=0; i<MAXTRACK; i++) + for (i=0; i<=MAXINDEX; i++) track->index[i] = -1; } @@ -192,7 +192,7 @@ Track *cd_add_track(Cd *cd) { - if (MAXTRACK - 1 > cd->ntrack) + if (MAXTRACK > cd->ntrack) cd->ntrack++; else fprintf(stderr, "too many tracks\n"); @@ -339,7 +339,7 @@ void track_set_index(Track *track, int i, long ind) { - if (i >= MAXTRACK) { + if (i > MAXINDEX) { fprintf(stderr, "too many indexes\n"); return; } @@ -349,7 +349,7 @@ long track_get_index(const Track *track, int i) { - if ((0 <= i) && (i < MAXTRACK)) + if ((0 <= i) && (i <= MAXINDEX)) return track->index[i]; return -1; @@ -372,7 +372,7 @@ printf("flags: 0x%x\n", track->flags); printf("isrc: %s\n", track->isrc); - for (i = 0; i < MAXTRACK; ++i) + for (i = 0; i <= MAXINDEX; ++i) if (track->index[i] != -1) printf("index %d: %ld\n", i, track->index[i]); @@ -383,7 +383,7 @@ if (track->rem != NULL) { - fprintf(stdout, "rem:\n"); + printf("rem:\n"); rem_dump(track->rem); } } @@ -403,7 +403,7 @@ if (cd->rem != NULL) { - fprintf(stdout, "rem:\n"); + printf("rem:\n"); rem_dump(cd->rem); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libcue-2.1.0/cd.h new/libcue-2.2.0/cd.h --- old/libcue-2.1.0/cd.h 2016-04-15 07:31:27.000000000 +0200 +++ new/libcue-2.2.0/cd.h 2017-11-08 07:36:45.000000000 +0100 @@ -13,8 +13,8 @@ #include "cdtext.h" #include "rem.h" -#define MAXTRACK 99 /* Red Book track limit */ -#define MAXINDEX 99 /* Red Book index limit */ +#define MAXTRACK 99 /* Red Book track limit (from 01 to 99) */ +#define MAXINDEX 99 /* Red Book index limit (from 00 to 99) */ #define PARSER_BUFFER 1024 /* Parser buffer size */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libcue-2.1.0/cue_scanner.l new/libcue-2.2.0/cue_scanner.l --- old/libcue-2.1.0/cue_scanner.l 2016-04-15 07:31:27.000000000 +0200 +++ new/libcue-2.2.0/cue_scanner.l 2017-11-08 07:36:45.000000000 +0100 @@ -36,7 +36,7 @@ yylval.sval = strncpy( yy_buffer, ++yytext, (yyleng > sizeof(yy_buffer) ? sizeof(yy_buffer) : yyleng)); - yylval.sval[yyleng - 2] = '\0'; + yylval.sval[(yyleng > sizeof(yy_buffer) ? sizeof(yy_buffer) : yyleng) - 2] = '\0'; BEGIN(INITIAL); return STRING; } @@ -45,7 +45,7 @@ yylval.sval = strncpy( yy_buffer, yytext, (yyleng > sizeof(yy_buffer) ? sizeof(yy_buffer) : yyleng)); - yylval.sval[yyleng] = '\0'; + yylval.sval[(yyleng > sizeof(yy_buffer) ? sizeof(yy_buffer) : yyleng)] = '\0'; BEGIN(INITIAL); return STRING; } @@ -118,7 +118,7 @@ yylval.sval = strncpy( yy_buffer, yytext, (yyleng > sizeof(yy_buffer) ? sizeof(yy_buffer) : yyleng)); - yylval.sval[yyleng] = '\0'; + yylval.sval[(yyleng > sizeof(yy_buffer) ? sizeof(yy_buffer) : yyleng)] = '\0'; BEGIN(SKIP); return STRING; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libcue-2.1.0/libcue.pc.in new/libcue-2.2.0/libcue.pc.in --- old/libcue-2.1.0/libcue.pc.in 2016-04-15 07:31:27.000000000 +0200 +++ new/libcue-2.2.0/libcue.pc.in 2017-11-08 07:36:45.000000000 +0100 @@ -1,7 +1,7 @@ prefix=@CMAKE_INSTALL_PREFIX@ exec_prefix=${prefix} -libdir=${prefix}/lib -includedir=${prefix}/include +libdir=@CMAKE_INSTALL_FULL_LIBDIR@ +includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@ Name: @PROJECT_NAME@ Description: Cuesheet parser library diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libcue-2.1.0/rem.c new/libcue-2.2.0/rem.c --- old/libcue-2.1.0/rem.c 2016-04-15 07:31:27.000000000 +0200 +++ new/libcue-2.2.0/rem.c 2017-11-08 07:36:45.000000000 +0100 @@ -135,6 +135,6 @@ do { - fprintf(stdout, "REM %u: %s\n", rem->cmt, rem->value); + printf("REM %u: %s\n", rem->cmt, rem->value); } while ((++rem)->cmt != REM_END); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libcue-2.1.0/t/99_tracks.c new/libcue-2.2.0/t/99_tracks.c --- old/libcue-2.1.0/t/99_tracks.c 1970-01-01 01:00:00.000000000 +0100 +++ new/libcue-2.2.0/t/99_tracks.c 2017-11-08 07:36:45.000000000 +0100 @@ -0,0 +1,41 @@ +#include <stdio.h> +#include <string.h> +#include <assert.h> + +#include "libcue.h" +#include "minunit.h" + +int tests_run; + +static char* cue_test() +{ + FILE *cue = fopen("99_tracks.cue", "r"); + assert(cue); + Cd *cd = cue_parse_file(cue); + assert(cd); + int ntrack = cd_get_ntrack(cd); + assert (ntrack == 99); + cd_delete(cd); + + return NULL; +} + +static char* run_tests() +{ + mu_run_test (cue_test); + mu_run_test (cue_test); + return NULL; +} + +int main (int argc, char **argv) +{ + char *result = run_tests(); + if (result != NULL) + printf ("%s\n", result); + else + printf ("All tests passed!\n"); + + printf ("Tests run: %d\n", tests_run); + + return result != NULL; +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libcue-2.1.0/t/99_tracks.cue new/libcue-2.2.0/t/99_tracks.cue --- old/libcue-2.1.0/t/99_tracks.cue 1970-01-01 01:00:00.000000000 +0100 +++ new/libcue-2.2.0/t/99_tracks.cue 2017-11-08 07:36:45.000000000 +0100 @@ -0,0 +1,300 @@ +PERFORMER "Nine Inch Nails" +TITLE "Broken" +FILE "dummy.wav" WAVE + TRACK 01 AUDIO + TITLE "Pinion" + INDEX 01 00:00:00 + TRACK 02 AUDIO + TITLE "Wish" + INDEX 01 01:03:12 + TRACK 03 AUDIO + TITLE "Last" + INDEX 01 04:49:67 + TRACK 04 AUDIO + TITLE "Help Me I Am in Hell" + INDEX 01 09:34:35 + TRACK 05 AUDIO + TITLE "Happiness in Slavery" + INDEX 01 11:30:50 + TRACK 06 AUDIO + TITLE "Gave Up" + INDEX 01 16:51:57 + TRACK 07 AUDIO + TITLE "untitled" + INDEX 01 21:00:25 + TRACK 08 AUDIO + TITLE "untitled" + INDEX 01 21:01:25 + TRACK 09 AUDIO + TITLE "untitled" + INDEX 01 21:02:25 + TRACK 10 AUDIO + TITLE "untitled" + INDEX 01 21:03:25 + TRACK 11 AUDIO + TITLE "untitled" + INDEX 01 21:04:25 + TRACK 12 AUDIO + TITLE "untitled" + INDEX 01 21:05:25 + TRACK 13 AUDIO + TITLE "untitled" + INDEX 01 21:06:25 + TRACK 14 AUDIO + TITLE "untitled" + INDEX 01 21:07:25 + TRACK 15 AUDIO + TITLE "untitled" + INDEX 01 21:08:25 + TRACK 16 AUDIO + TITLE "untitled" + INDEX 01 21:09:25 + TRACK 17 AUDIO + TITLE "untitled" + INDEX 01 21:10:25 + TRACK 18 AUDIO + TITLE "untitled" + INDEX 01 21:11:25 + TRACK 19 AUDIO + TITLE "untitled" + INDEX 01 21:12:25 + TRACK 20 AUDIO + TITLE "untitled" + INDEX 01 21:13:25 + TRACK 21 AUDIO + TITLE "untitled" + INDEX 01 21:14:25 + TRACK 22 AUDIO + TITLE "untitled" + INDEX 01 21:15:25 + TRACK 23 AUDIO + TITLE "untitled" + INDEX 01 21:16:25 + TRACK 24 AUDIO + TITLE "untitled" + INDEX 01 21:17:25 + TRACK 25 AUDIO + TITLE "untitled" + INDEX 01 21:18:25 + TRACK 26 AUDIO + TITLE "untitled" + INDEX 01 21:19:25 + TRACK 27 AUDIO + TITLE "untitled" + INDEX 01 21:20:25 + TRACK 28 AUDIO + TITLE "untitled" + INDEX 01 21:21:25 + TRACK 29 AUDIO + TITLE "untitled" + INDEX 01 21:22:25 + TRACK 30 AUDIO + TITLE "untitled" + INDEX 01 21:23:25 + TRACK 31 AUDIO + TITLE "untitled" + INDEX 01 21:24:25 + TRACK 32 AUDIO + TITLE "untitled" + INDEX 01 21:25:25 + TRACK 33 AUDIO + TITLE "untitled" + INDEX 01 21:26:25 + TRACK 34 AUDIO + TITLE "untitled" + INDEX 01 21:27:25 + TRACK 35 AUDIO + TITLE "untitled" + INDEX 01 21:28:25 + TRACK 36 AUDIO + TITLE "untitled" + INDEX 01 21:29:25 + TRACK 37 AUDIO + TITLE "untitled" + INDEX 01 21:30:25 + TRACK 38 AUDIO + TITLE "untitled" + INDEX 01 21:31:25 + TRACK 39 AUDIO + TITLE "untitled" + INDEX 01 21:32:25 + TRACK 40 AUDIO + TITLE "untitled" + INDEX 01 21:33:25 + TRACK 41 AUDIO + TITLE "untitled" + INDEX 01 21:34:25 + TRACK 42 AUDIO + TITLE "untitled" + INDEX 01 21:35:25 + TRACK 43 AUDIO + TITLE "untitled" + INDEX 01 21:36:25 + TRACK 44 AUDIO + TITLE "untitled" + INDEX 01 21:37:25 + TRACK 45 AUDIO + TITLE "untitled" + INDEX 01 21:38:25 + TRACK 46 AUDIO + TITLE "untitled" + INDEX 01 21:39:25 + TRACK 47 AUDIO + TITLE "untitled" + INDEX 01 21:40:25 + TRACK 48 AUDIO + TITLE "untitled" + INDEX 01 21:41:25 + TRACK 49 AUDIO + TITLE "untitled" + INDEX 01 21:42:25 + TRACK 50 AUDIO + TITLE "untitled" + INDEX 01 21:43:25 + TRACK 51 AUDIO + TITLE "untitled" + INDEX 01 21:44:25 + TRACK 52 AUDIO + TITLE "untitled" + INDEX 01 21:45:25 + TRACK 53 AUDIO + TITLE "untitled" + INDEX 01 21:46:25 + TRACK 54 AUDIO + TITLE "untitled" + INDEX 01 21:47:25 + TRACK 55 AUDIO + TITLE "untitled" + INDEX 01 21:48:25 + TRACK 56 AUDIO + TITLE "untitled" + INDEX 01 21:49:25 + TRACK 57 AUDIO + TITLE "untitled" + INDEX 01 21:50:25 + TRACK 58 AUDIO + TITLE "untitled" + INDEX 01 21:51:25 + TRACK 59 AUDIO + TITLE "untitled" + INDEX 01 21:52:25 + TRACK 60 AUDIO + TITLE "untitled" + INDEX 01 21:53:25 + TRACK 61 AUDIO + TITLE "untitled" + INDEX 01 21:54:25 + TRACK 62 AUDIO + TITLE "untitled" + INDEX 01 21:55:25 + TRACK 63 AUDIO + TITLE "untitled" + INDEX 01 21:56:25 + TRACK 64 AUDIO + TITLE "untitled" + INDEX 01 21:57:25 + TRACK 65 AUDIO + TITLE "untitled" + INDEX 01 21:58:25 + TRACK 66 AUDIO + TITLE "untitled" + INDEX 01 21:59:25 + TRACK 67 AUDIO + TITLE "untitled" + INDEX 01 22:00:25 + TRACK 68 AUDIO + TITLE "untitled" + INDEX 01 22:01:25 + TRACK 69 AUDIO + TITLE "untitled" + INDEX 01 22:02:25 + TRACK 70 AUDIO + TITLE "untitled" + INDEX 01 22:03:25 + TRACK 71 AUDIO + TITLE "untitled" + INDEX 01 22:04:25 + TRACK 72 AUDIO + TITLE "untitled" + INDEX 01 22:05:25 + TRACK 73 AUDIO + TITLE "untitled" + INDEX 01 22:06:25 + TRACK 74 AUDIO + TITLE "untitled" + INDEX 01 22:07:25 + TRACK 75 AUDIO + TITLE "untitled" + INDEX 01 22:08:25 + TRACK 76 AUDIO + TITLE "untitled" + INDEX 01 22:09:25 + TRACK 77 AUDIO + TITLE "untitled" + INDEX 01 22:10:25 + TRACK 78 AUDIO + TITLE "untitled" + INDEX 01 22:11:25 + TRACK 79 AUDIO + TITLE "untitled" + INDEX 01 22:12:25 + TRACK 80 AUDIO + TITLE "untitled" + INDEX 01 22:13:25 + TRACK 81 AUDIO + TITLE "untitled" + INDEX 01 22:14:25 + TRACK 82 AUDIO + TITLE "untitled" + INDEX 01 22:15:25 + TRACK 83 AUDIO + TITLE "untitled" + INDEX 01 22:16:25 + TRACK 84 AUDIO + TITLE "untitled" + INDEX 01 22:17:25 + TRACK 85 AUDIO + TITLE "untitled" + INDEX 01 22:18:25 + TRACK 86 AUDIO + TITLE "untitled" + INDEX 01 22:19:25 + TRACK 87 AUDIO + TITLE "untitled" + INDEX 01 22:20:25 + TRACK 88 AUDIO + TITLE "untitled" + INDEX 01 22:21:25 + TRACK 89 AUDIO + TITLE "untitled" + INDEX 01 22:22:25 + TRACK 90 AUDIO + TITLE "untitled" + INDEX 01 22:23:25 + TRACK 91 AUDIO + TITLE "untitled" + INDEX 01 22:24:25 + TRACK 92 AUDIO + TITLE "untitled" + INDEX 01 22:25:25 + TRACK 93 AUDIO + TITLE "untitled" + INDEX 01 22:26:25 + TRACK 94 AUDIO + TITLE "untitled" + INDEX 01 22:27:25 + TRACK 95 AUDIO + TITLE "untitled" + INDEX 01 22:28:25 + TRACK 96 AUDIO + TITLE "untitled" + INDEX 01 22:29:25 + TRACK 97 AUDIO + TITLE "untitled" + INDEX 01 22:30:25 + TRACK 98 AUDIO + TITLE "Physical (You're So)" + INDEX 01 22:31:25 + TRACK 99 AUDIO + TITLE "Suck" + INDEX 01 28:01:15
