Compare commits
26 Commits
interleave
...
31ad3e8e1c
Author | SHA1 | Date | |
---|---|---|---|
31ad3e8e1c | |||
e213237698 | |||
a1c61962a1 | |||
a28283748c | |||
cafa540fc8 | |||
b9c642d81d | |||
7abb129f03 | |||
3739ccaaf2 | |||
c3190c11ac | |||
52b4bf5a0e | |||
5516477956 | |||
f639db18a5 | |||
f8a1643714 | |||
a0a961ae58 | |||
f41a62471b | |||
d8f85dedc4 | |||
656939560b | |||
5580f9b71d | |||
628d16b7e6 | |||
d9e4a7d1b6 | |||
52201fa4c7 | |||
0814822d82 | |||
41df2398e8 | |||
84c4d0fcba | |||
6241533dfb | |||
0abf6a1ecf |
@@ -38,6 +38,11 @@ if(NOT APPLE)
|
||||
add_compile_options(-g -fno-omit-frame-pointer)
|
||||
endif()
|
||||
|
||||
# work around lack of musttail for gcc
|
||||
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||
add_compile_options(-O1 -foptimize-sibling-calls)
|
||||
endif()
|
||||
|
||||
set(full_relro_flags "-pie;LINKER:-z,relro,-z,now,-z,noexecstack")
|
||||
cmake_push_check_state()
|
||||
list(APPEND CMAKE_REQUIRED_LINK_OPTIONS ${full_relro_flags})
|
||||
@@ -95,12 +100,23 @@ target_compile_options(${PROJECT_NAME}-object PRIVATE -fno-exceptions
|
||||
-fvisibility=hidden)
|
||||
target_include_directories(${PROJECT_NAME}-object
|
||||
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include)
|
||||
if(NOT LD_EXE)
|
||||
set(LD_EXE ld)
|
||||
endif()
|
||||
add_custom_command(
|
||||
OUTPUT ${CMAKE_BINARY_DIR}/${PROJECT_NAME}.o
|
||||
COMMAND ${LD_EXE} -r $<TARGET_OBJECTS:${PROJECT_NAME}-object> -o
|
||||
${CMAKE_BINARY_DIR}/${PROJECT_NAME}.o
|
||||
DEPENDS $<TARGET_OBJECTS:${PROJECT_NAME}-object>
|
||||
COMMAND_EXPAND_LISTS)
|
||||
|
||||
add_library(${PROJECT_NAME} SHARED $<TARGET_OBJECTS:${PROJECT_NAME}-object>)
|
||||
add_library(${PROJECT_NAME} SHARED ${CMAKE_BINARY_DIR}/${PROJECT_NAME}.o)
|
||||
set_target_properties(
|
||||
${PROJECT_NAME} PROPERTIES LIBRARY_OUTPUT_DIRECTORY
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/radix_tree")
|
||||
if(NOT CMAKE_BUILD_TYPE STREQUAL Debug)
|
||||
if(CMAKE_BUILD_TYPE STREQUAL Debug)
|
||||
set_target_properties(${PROJECT_NAME} PROPERTIES LINKER_LANGUAGE CXX)
|
||||
else()
|
||||
set_target_properties(${PROJECT_NAME} PROPERTIES LINKER_LANGUAGE C)
|
||||
endif()
|
||||
|
||||
@@ -110,19 +126,13 @@ if(HAS_VERSION_SCRIPT)
|
||||
LINKER:--version-script=${CMAKE_CURRENT_SOURCE_DIR}/linker.map)
|
||||
endif()
|
||||
|
||||
add_library(${PROJECT_NAME}-static STATIC
|
||||
$<TARGET_OBJECTS:${PROJECT_NAME}-object>)
|
||||
if(NOT CMAKE_BUILD_TYPE STREQUAL Debug)
|
||||
add_library(${PROJECT_NAME}-static STATIC ${CMAKE_BINARY_DIR}/${PROJECT_NAME}.o)
|
||||
if(CMAKE_BUILD_TYPE STREQUAL Debug)
|
||||
set_target_properties(${PROJECT_NAME}-static PROPERTIES LINKER_LANGUAGE CXX)
|
||||
else()
|
||||
set_target_properties(${PROJECT_NAME}-static PROPERTIES LINKER_LANGUAGE C)
|
||||
endif()
|
||||
|
||||
if(APPLE)
|
||||
add_custom_command(
|
||||
TARGET ${PROJECT_NAME}-static
|
||||
PRE_LINK
|
||||
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/privatize_symbols_macos.sh
|
||||
$<TARGET_OBJECTS:${PROJECT_NAME}-object>)
|
||||
else()
|
||||
if(NOT APPLE)
|
||||
add_custom_command(
|
||||
TARGET ${PROJECT_NAME}-static
|
||||
POST_BUILD
|
||||
@@ -248,6 +258,19 @@ if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR AND BUILD_TESTING)
|
||||
add_test(NAME conflict_set_blackbox_${hash} COMMAND driver ${TEST})
|
||||
endforeach()
|
||||
|
||||
find_program(VALGRIND_EXE valgrind)
|
||||
if(VALGRIND_EXE AND NOT CMAKE_CROSSCOMPILING)
|
||||
list(LENGTH CORPUS_TESTS len)
|
||||
math(EXPR last "${len} - 1")
|
||||
set(partition_size 100)
|
||||
foreach(i RANGE 0 ${last} ${partition_size})
|
||||
list(SUBLIST CORPUS_TESTS ${i} ${partition_size} partition)
|
||||
add_test(NAME conflict_set_blackbox_valgrind_${i}
|
||||
COMMAND ${VALGRIND_EXE} --error-exitcode=99 --
|
||||
$<TARGET_FILE:driver> ${partition})
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
# scripted tests. Written manually to fill in anything libfuzzer couldn't
|
||||
# find.
|
||||
if(NOT CMAKE_CROSSCOMPILING)
|
||||
@@ -268,19 +291,14 @@ if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR AND BUILD_TESTING)
|
||||
${Python3_EXECUTABLE}
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/test_conflict_set.py test ${TEST}
|
||||
--build-dir ${CMAKE_CURRENT_BINARY_DIR})
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
find_program(VALGRIND_EXE valgrind)
|
||||
if(VALGRIND_EXE AND NOT CMAKE_CROSSCOMPILING)
|
||||
list(LENGTH CORPUS_TESTS len)
|
||||
math(EXPR last "${len} - 1")
|
||||
set(partition_size 100)
|
||||
foreach(i RANGE 0 ${last} ${partition_size})
|
||||
list(SUBLIST CORPUS_TESTS ${i} ${partition_size} partition)
|
||||
add_test(NAME conflict_set_blackbox_valgrind_${i}
|
||||
COMMAND ${VALGRIND_EXE} --error-exitcode=99 --
|
||||
$<TARGET_FILE:driver> ${partition})
|
||||
if(VALGRIND_EXE AND NOT CMAKE_CROSSCOMPILING)
|
||||
add_test(
|
||||
NAME script_test_${TEST}_valgrind
|
||||
COMMAND
|
||||
${VALGRIND_EXE} ${Python3_EXECUTABLE}
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/test_conflict_set.py test ${TEST}
|
||||
--build-dir ${CMAKE_CURRENT_BINARY_DIR})
|
||||
endif()
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
@@ -350,6 +368,11 @@ if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR AND BUILD_TESTING)
|
||||
set_target_properties(server_bench PROPERTIES SKIP_BUILD_RPATH ON)
|
||||
|
||||
add_executable(interleaving_test InterleavingTest.cpp)
|
||||
# work around lack of musttail for gcc
|
||||
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||
target_compile_options(interleaving_test PRIVATE -Og
|
||||
-foptimize-sibling-calls)
|
||||
endif()
|
||||
target_link_libraries(interleaving_test PRIVATE nanobench)
|
||||
endif()
|
||||
|
||||
|
641
ConflictSet.cpp
641
ConflictSet.cpp
File diff suppressed because it is too large
Load Diff
@@ -8,6 +8,7 @@ RUN chmod -R 777 /tmp
|
||||
RUN apt-get update
|
||||
RUN apt-get upgrade -y
|
||||
RUN TZ=America/Los_Angeles DEBIAN_FRONTEND=noninteractive apt-get install -y \
|
||||
binutils-aarch64-linux-gnu \
|
||||
build-essential \
|
||||
ccache \
|
||||
clang \
|
||||
|
@@ -22,9 +22,6 @@ void *stepJob(Job *j) {
|
||||
return done ? nullptr : (void *)stepJob;
|
||||
}
|
||||
|
||||
// So we can look at the disassembly more easily
|
||||
|
||||
extern "C" {
|
||||
void sequential(Job **jobs, int count) {
|
||||
for (int i = 0; i < count; ++i) {
|
||||
do {
|
||||
@@ -94,6 +91,87 @@ void interleaveBoundedCyclicList(Job **jobs, int count) {
|
||||
}
|
||||
}
|
||||
|
||||
#ifndef __has_attribute
|
||||
#define __has_attribute(x) 0
|
||||
#endif
|
||||
|
||||
#if __has_attribute(musttail)
|
||||
#define MUSTTAIL __attribute__((musttail))
|
||||
#else
|
||||
#define MUSTTAIL
|
||||
#endif
|
||||
|
||||
struct Context {
|
||||
constexpr static int kConcurrent = 32;
|
||||
Job **jobs;
|
||||
Job *inProgress[kConcurrent];
|
||||
void (*continuation[kConcurrent])(Context *, int64_t prevJob, int64_t job,
|
||||
int64_t started, int64_t count);
|
||||
int nextJob[kConcurrent];
|
||||
};
|
||||
|
||||
void keepGoing(Context *context, int64_t prevJob, int64_t job, int64_t started,
|
||||
int64_t count) {
|
||||
prevJob = job;
|
||||
job = context->nextJob[job];
|
||||
MUSTTAIL return context->continuation[job](context, prevJob, job, started,
|
||||
count);
|
||||
}
|
||||
|
||||
void stepJobTailCall(Context *context, int64_t prevJob, int64_t job,
|
||||
int64_t started, int64_t count);
|
||||
|
||||
void complete(Context *context, int64_t prevJob, int64_t job, int64_t started,
|
||||
int64_t count) {
|
||||
if (started == count) {
|
||||
if (prevJob == job) {
|
||||
return;
|
||||
}
|
||||
context->nextJob[prevJob] = context->nextJob[job];
|
||||
job = prevJob;
|
||||
} else {
|
||||
context->inProgress[job] = context->jobs[started++];
|
||||
context->continuation[job] = stepJobTailCall;
|
||||
}
|
||||
prevJob = job;
|
||||
job = context->nextJob[job];
|
||||
MUSTTAIL return context->continuation[job](context, prevJob, job, started,
|
||||
count);
|
||||
}
|
||||
|
||||
void stepJobTailCall(Context *context, int64_t prevJob, int64_t job,
|
||||
int64_t started, int64_t count) {
|
||||
auto *j = context->inProgress[job];
|
||||
auto done = --(*j->input) == 0;
|
||||
#ifdef __x86_64__
|
||||
_mm_clflush(j->input);
|
||||
#endif
|
||||
if (done) {
|
||||
MUSTTAIL return complete(context, prevJob, job, started, count);
|
||||
} else {
|
||||
context->continuation[job] = stepJobTailCall;
|
||||
MUSTTAIL return keepGoing(context, prevJob, job, started, count);
|
||||
}
|
||||
}
|
||||
|
||||
void useTailCalls(Job **jobs, int count) {
|
||||
if (count == 0) {
|
||||
return;
|
||||
}
|
||||
Context context;
|
||||
context.jobs = jobs;
|
||||
int64_t started = std::min(Context::kConcurrent, count);
|
||||
for (int i = 0; i < started; i++) {
|
||||
context.inProgress[i] = jobs[i];
|
||||
context.nextJob[i] = i + 1;
|
||||
context.continuation[i] = stepJobTailCall;
|
||||
}
|
||||
context.nextJob[started - 1] = 0;
|
||||
int prevJob = started - 1;
|
||||
int job = 0;
|
||||
return context.continuation[job](&context, prevJob, job, started, count);
|
||||
}
|
||||
|
||||
void interleaveCyclicList(Job **jobs, int count) {
|
||||
auto *nextJob = (int *)alloca(sizeof(int) * count);
|
||||
|
||||
@@ -117,12 +195,11 @@ void interleaveCyclicList(Job **jobs, int count) {
|
||||
job = nextJob[job];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int main() {
|
||||
ankerl::nanobench::Bench bench;
|
||||
|
||||
constexpr int kNumJobs = 100;
|
||||
constexpr int kNumJobs = 10000;
|
||||
bench.relative(true);
|
||||
|
||||
Job jobs[kNumJobs];
|
||||
@@ -140,6 +217,7 @@ int main() {
|
||||
for (auto [scheduler, name] :
|
||||
{std::make_pair(sequentialNoFuncPtr, "sequentialNoFuncPtr"),
|
||||
std::make_pair(sequential, "sequential"),
|
||||
std::make_pair(useTailCalls, "useTailCalls"),
|
||||
std::make_pair(interleaveSwapping, "interleavingSwapping"),
|
||||
std::make_pair(interleaveBoundedCyclicList,
|
||||
"interleaveBoundedCyclicList"),
|
||||
|
@@ -5,3 +5,4 @@ set(CMAKE_CXX_COMPILER "/usr/bin/aarch64-linux-gnu-g++")
|
||||
set(CMAKE_FIND_ROOT_PATH /usr/aarch64-linux-gnu)
|
||||
set(CMAKE_CROSSCOMPILING_EMULATOR "qemu-aarch64;-L;/usr/aarch64-linux-gnu/")
|
||||
set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE arm64)
|
||||
set(LD_EXE "/usr/bin/aarch64-linux-gnu-ld")
|
||||
|
BIN
corpus/00533f61fd89afb9deb3dc978b368a3b3abf3992
Normal file
BIN
corpus/00533f61fd89afb9deb3dc978b368a3b3abf3992
Normal file
Binary file not shown.
BIN
corpus/00850bfa9ce0f9e64b8688db48dc6562be637d97
Normal file
BIN
corpus/00850bfa9ce0f9e64b8688db48dc6562be637d97
Normal file
Binary file not shown.
BIN
corpus/03119dd29f68a6a8ff8f67a653e7f4ba01c6847a
Normal file
BIN
corpus/03119dd29f68a6a8ff8f67a653e7f4ba01c6847a
Normal file
Binary file not shown.
BIN
corpus/0370da7797ee28434459cf21350d311df2aed581
Normal file
BIN
corpus/0370da7797ee28434459cf21350d311df2aed581
Normal file
Binary file not shown.
BIN
corpus/037f4bcc441003fb4cc2cbfd4d986c201035a744
Normal file
BIN
corpus/037f4bcc441003fb4cc2cbfd4d986c201035a744
Normal file
Binary file not shown.
BIN
corpus/053c56641f68bea3be49d74416d62ca583d6492e
Normal file
BIN
corpus/053c56641f68bea3be49d74416d62ca583d6492e
Normal file
Binary file not shown.
BIN
corpus/05e78ae4ba5007b2ad39b69b19604f8cb90650bd
Normal file
BIN
corpus/05e78ae4ba5007b2ad39b69b19604f8cb90650bd
Normal file
Binary file not shown.
BIN
corpus/07c638816ecc7071961866ba3ed0aa1168f7e998
Normal file
BIN
corpus/07c638816ecc7071961866ba3ed0aa1168f7e998
Normal file
Binary file not shown.
BIN
corpus/090ffb7c1949db26391498d8c7dc3b8f772b90ce
Normal file
BIN
corpus/090ffb7c1949db26391498d8c7dc3b8f772b90ce
Normal file
Binary file not shown.
BIN
corpus/0aa35cd848f2d94178b87dcf68272c8a3f96c42b
Normal file
BIN
corpus/0aa35cd848f2d94178b87dcf68272c8a3f96c42b
Normal file
Binary file not shown.
BIN
corpus/0b323a04077fd639c7e0a51a750eb1259bb6a4b0
Normal file
BIN
corpus/0b323a04077fd639c7e0a51a750eb1259bb6a4b0
Normal file
Binary file not shown.
BIN
corpus/0b445ea9b2e9cd62d4bd681ab94324aea7fe6b98
Normal file
BIN
corpus/0b445ea9b2e9cd62d4bd681ab94324aea7fe6b98
Normal file
Binary file not shown.
BIN
corpus/0b5969da792544a3fd9bb8f9c7fd0a53ad17b938
Normal file
BIN
corpus/0b5969da792544a3fd9bb8f9c7fd0a53ad17b938
Normal file
Binary file not shown.
BIN
corpus/0ed2d396bc5bd9b396942e6ec5569f46bef2476e
Normal file
BIN
corpus/0ed2d396bc5bd9b396942e6ec5569f46bef2476e
Normal file
Binary file not shown.
BIN
corpus/0eea457d59d763abe2b35aa044d839613f0c1eff
Normal file
BIN
corpus/0eea457d59d763abe2b35aa044d839613f0c1eff
Normal file
Binary file not shown.
BIN
corpus/0f8959089fadd2c5542cc9148d86176e800d92d3
Normal file
BIN
corpus/0f8959089fadd2c5542cc9148d86176e800d92d3
Normal file
Binary file not shown.
BIN
corpus/10244abeda5a403187b940e7cedb7a93189f2e67
Normal file
BIN
corpus/10244abeda5a403187b940e7cedb7a93189f2e67
Normal file
Binary file not shown.
BIN
corpus/10c43175be9f940150eb2ec9e709f8d68a9f1a87
Normal file
BIN
corpus/10c43175be9f940150eb2ec9e709f8d68a9f1a87
Normal file
Binary file not shown.
BIN
corpus/10dc6dd48d5819b353f3cabb844e7fefeed0dbce
Normal file
BIN
corpus/10dc6dd48d5819b353f3cabb844e7fefeed0dbce
Normal file
Binary file not shown.
BIN
corpus/1238ace8238748ab0c4bd4e578fa234cb53280ef
Normal file
BIN
corpus/1238ace8238748ab0c4bd4e578fa234cb53280ef
Normal file
Binary file not shown.
BIN
corpus/12a56e9945424996cd08c04ad3261c4bc80aaa17
Normal file
BIN
corpus/12a56e9945424996cd08c04ad3261c4bc80aaa17
Normal file
Binary file not shown.
BIN
corpus/12c1b23a16916c57fec76f5d7b3cbc7d07ad3a01
Normal file
BIN
corpus/12c1b23a16916c57fec76f5d7b3cbc7d07ad3a01
Normal file
Binary file not shown.
BIN
corpus/12e2003fa4ffdbb09ddf81b89d922a6f26d4bbf5
Normal file
BIN
corpus/12e2003fa4ffdbb09ddf81b89d922a6f26d4bbf5
Normal file
Binary file not shown.
BIN
corpus/12f4b3bc769c43a6be2fd9fd0d488439d0dedc9e
Normal file
BIN
corpus/12f4b3bc769c43a6be2fd9fd0d488439d0dedc9e
Normal file
Binary file not shown.
BIN
corpus/138b50160165c26e8ef6281d7ff2139f0ff3fb4f
Normal file
BIN
corpus/138b50160165c26e8ef6281d7ff2139f0ff3fb4f
Normal file
Binary file not shown.
BIN
corpus/13adf2094a36bc035b200dd1c2c2379150e199bd
Normal file
BIN
corpus/13adf2094a36bc035b200dd1c2c2379150e199bd
Normal file
Binary file not shown.
BIN
corpus/142dcdcceda3b86cb8413b5b6b96d214c99221ae
Normal file
BIN
corpus/142dcdcceda3b86cb8413b5b6b96d214c99221ae
Normal file
Binary file not shown.
BIN
corpus/15a3a8596107199f39bfaaf644e4b4ea8504ea2c
Normal file
BIN
corpus/15a3a8596107199f39bfaaf644e4b4ea8504ea2c
Normal file
Binary file not shown.
BIN
corpus/18623ab97d0842e2709ed2870e705c2eacfbb7c8
Normal file
BIN
corpus/18623ab97d0842e2709ed2870e705c2eacfbb7c8
Normal file
Binary file not shown.
BIN
corpus/1863492b4bfa4e57a2dd04457f45dd1adbc1b43b
Normal file
BIN
corpus/1863492b4bfa4e57a2dd04457f45dd1adbc1b43b
Normal file
Binary file not shown.
BIN
corpus/19212d70d7ccd20b98fad3ba1edebae4aa6236fd
Normal file
BIN
corpus/19212d70d7ccd20b98fad3ba1edebae4aa6236fd
Normal file
Binary file not shown.
BIN
corpus/1ac17c2eaf93409cdc610efe758dfbeed48b0384
Normal file
BIN
corpus/1ac17c2eaf93409cdc610efe758dfbeed48b0384
Normal file
Binary file not shown.
BIN
corpus/1aeef1ad82d916ac77dc877f92262ab928fbd8bf
Normal file
BIN
corpus/1aeef1ad82d916ac77dc877f92262ab928fbd8bf
Normal file
Binary file not shown.
BIN
corpus/1b258ea18042c48ab6c10f10254e5aaeecb04fd5
Normal file
BIN
corpus/1b258ea18042c48ab6c10f10254e5aaeecb04fd5
Normal file
Binary file not shown.
BIN
corpus/1b73191605897b8fb531d18ce6309d5bd5118268
Normal file
BIN
corpus/1b73191605897b8fb531d18ce6309d5bd5118268
Normal file
Binary file not shown.
BIN
corpus/1b802ba6b502b722c2f79dc9b268a78531964cba
Normal file
BIN
corpus/1b802ba6b502b722c2f79dc9b268a78531964cba
Normal file
Binary file not shown.
BIN
corpus/1b8daa16f809a7c53ab46c642d7746223c1e89c3
Normal file
BIN
corpus/1b8daa16f809a7c53ab46c642d7746223c1e89c3
Normal file
Binary file not shown.
BIN
corpus/1cf21168dd261282defc4f9550d5073d7325731d
Normal file
BIN
corpus/1cf21168dd261282defc4f9550d5073d7325731d
Normal file
Binary file not shown.
BIN
corpus/1d32cdfb5c5fda145d32ef98c14df05da43edff9
Normal file
BIN
corpus/1d32cdfb5c5fda145d32ef98c14df05da43edff9
Normal file
Binary file not shown.
BIN
corpus/1d73c395d1885ce584ddc66ebea3137a89222307
Normal file
BIN
corpus/1d73c395d1885ce584ddc66ebea3137a89222307
Normal file
Binary file not shown.
BIN
corpus/1da019ba42899360b185febee026bff92598fab6
Normal file
BIN
corpus/1da019ba42899360b185febee026bff92598fab6
Normal file
Binary file not shown.
BIN
corpus/1e466f51834d01097b785bcad601630b2f4c4fb3
Normal file
BIN
corpus/1e466f51834d01097b785bcad601630b2f4c4fb3
Normal file
Binary file not shown.
BIN
corpus/1e844736e6767c7c4a05774df051fb2c40ca8d98
Normal file
BIN
corpus/1e844736e6767c7c4a05774df051fb2c40ca8d98
Normal file
Binary file not shown.
BIN
corpus/1ee13de896e906c111ba949e85ed7f48c846df50
Normal file
BIN
corpus/1ee13de896e906c111ba949e85ed7f48c846df50
Normal file
Binary file not shown.
BIN
corpus/2039e0adf8619ec4ce49fca017aa39a8600dc6c9
Normal file
BIN
corpus/2039e0adf8619ec4ce49fca017aa39a8600dc6c9
Normal file
Binary file not shown.
BIN
corpus/20401e8755bab61ef8e9208db78cdbfb59139177
Normal file
BIN
corpus/20401e8755bab61ef8e9208db78cdbfb59139177
Normal file
Binary file not shown.
BIN
corpus/21a3d4a0eb2aa8fd3097a5abef83805e80110944
Normal file
BIN
corpus/21a3d4a0eb2aa8fd3097a5abef83805e80110944
Normal file
Binary file not shown.
BIN
corpus/2250ec7a5578e9511be3649c14dcdd38697015c1
Normal file
BIN
corpus/2250ec7a5578e9511be3649c14dcdd38697015c1
Normal file
Binary file not shown.
BIN
corpus/23a9e57a66b267ea2fe0060b2894afeff525c635
Normal file
BIN
corpus/23a9e57a66b267ea2fe0060b2894afeff525c635
Normal file
Binary file not shown.
BIN
corpus/24089ab0ce8c12a4c5acb10f273ce53b93a65c08
Normal file
BIN
corpus/24089ab0ce8c12a4c5acb10f273ce53b93a65c08
Normal file
Binary file not shown.
BIN
corpus/2537bc610b792602516186a611cff1ada7795a5d
Normal file
BIN
corpus/2537bc610b792602516186a611cff1ada7795a5d
Normal file
Binary file not shown.
BIN
corpus/258d6fbc15128d65e42ce3e561299c6ee3e3484b
Normal file
BIN
corpus/258d6fbc15128d65e42ce3e561299c6ee3e3484b
Normal file
Binary file not shown.
BIN
corpus/259702095aed49b5aaca540dac6d28269a9fd148
Normal file
BIN
corpus/259702095aed49b5aaca540dac6d28269a9fd148
Normal file
Binary file not shown.
BIN
corpus/290bc08207a6de4b9adceb42003d4aeb5758bfdd
Normal file
BIN
corpus/290bc08207a6de4b9adceb42003d4aeb5758bfdd
Normal file
Binary file not shown.
BIN
corpus/2a15e4d22a5a2f9e8ec3de15016621df354e6ac7
Normal file
BIN
corpus/2a15e4d22a5a2f9e8ec3de15016621df354e6ac7
Normal file
Binary file not shown.
BIN
corpus/2b4e9e0a74324bccbe722dfe475bf107df42c6f8
Normal file
BIN
corpus/2b4e9e0a74324bccbe722dfe475bf107df42c6f8
Normal file
Binary file not shown.
BIN
corpus/2f6fd9449cd7733833a5119815b7295b09edc9a1
Normal file
BIN
corpus/2f6fd9449cd7733833a5119815b7295b09edc9a1
Normal file
Binary file not shown.
BIN
corpus/316bb5ed63bcc92e6738ec48f795afe56f7ca10f
Normal file
BIN
corpus/316bb5ed63bcc92e6738ec48f795afe56f7ca10f
Normal file
Binary file not shown.
BIN
corpus/330da62b56b866a713befdae197603e59d2a9ed7
Normal file
BIN
corpus/330da62b56b866a713befdae197603e59d2a9ed7
Normal file
Binary file not shown.
BIN
corpus/3377871a18f22528d60d2b51b9f98fabd8966c1b
Normal file
BIN
corpus/3377871a18f22528d60d2b51b9f98fabd8966c1b
Normal file
Binary file not shown.
BIN
corpus/33cfb152724161924444fe07e0cdb07b8b8462fc
Normal file
BIN
corpus/33cfb152724161924444fe07e0cdb07b8b8462fc
Normal file
Binary file not shown.
BIN
corpus/3466899b673dedf91cede941c314db0dab93131f
Normal file
BIN
corpus/3466899b673dedf91cede941c314db0dab93131f
Normal file
Binary file not shown.
BIN
corpus/34d90eccdcc5635b4f36507a9bd864e022bcc998
Normal file
BIN
corpus/34d90eccdcc5635b4f36507a9bd864e022bcc998
Normal file
Binary file not shown.
BIN
corpus/356a70926f5b508e9542b9399fd5d9eea83450a0
Normal file
BIN
corpus/356a70926f5b508e9542b9399fd5d9eea83450a0
Normal file
Binary file not shown.
BIN
corpus/35771141dfa1b3bd0b784ba469d4d319dd3d7800
Normal file
BIN
corpus/35771141dfa1b3bd0b784ba469d4d319dd3d7800
Normal file
Binary file not shown.
BIN
corpus/3585d81febbf44e5ee5454f5ff8143cacccd62d7
Normal file
BIN
corpus/3585d81febbf44e5ee5454f5ff8143cacccd62d7
Normal file
Binary file not shown.
BIN
corpus/368f8a2a3d60c5f73fa3a67d4c592f81bd5bc439
Normal file
BIN
corpus/368f8a2a3d60c5f73fa3a67d4c592f81bd5bc439
Normal file
Binary file not shown.
BIN
corpus/3ba2186d034e9d95397e53107ba600a622c11505
Normal file
BIN
corpus/3ba2186d034e9d95397e53107ba600a622c11505
Normal file
Binary file not shown.
BIN
corpus/3bab37bbf147f1020d3a877d0ac900fb86f69623
Normal file
BIN
corpus/3bab37bbf147f1020d3a877d0ac900fb86f69623
Normal file
Binary file not shown.
BIN
corpus/3c0ca2c59b7e7b64256aaa3351a398f4e1180ca9
Normal file
BIN
corpus/3c0ca2c59b7e7b64256aaa3351a398f4e1180ca9
Normal file
Binary file not shown.
BIN
corpus/3c756216b5cc814af5985cc6ef2f59a275c51954
Normal file
BIN
corpus/3c756216b5cc814af5985cc6ef2f59a275c51954
Normal file
Binary file not shown.
BIN
corpus/3dd78f16a8656e4839afb2eb4cdc7a028f4d28b8
Normal file
BIN
corpus/3dd78f16a8656e4839afb2eb4cdc7a028f4d28b8
Normal file
Binary file not shown.
BIN
corpus/3e8092741539dd51b8561acf2c9f15c395d8cc02
Normal file
BIN
corpus/3e8092741539dd51b8561acf2c9f15c395d8cc02
Normal file
Binary file not shown.
BIN
corpus/3ec746d0473c3c756f741658d0825c2bede2173a
Normal file
BIN
corpus/3ec746d0473c3c756f741658d0825c2bede2173a
Normal file
Binary file not shown.
BIN
corpus/40c0cf24dd0e2809281b06b3917910727f9278c3
Normal file
BIN
corpus/40c0cf24dd0e2809281b06b3917910727f9278c3
Normal file
Binary file not shown.
BIN
corpus/41511ef3a9c4d61cd2adbc9f01ed71cbfe6cf37e
Normal file
BIN
corpus/41511ef3a9c4d61cd2adbc9f01ed71cbfe6cf37e
Normal file
Binary file not shown.
BIN
corpus/41b02632b4a15df12d012fc05af2c696aed8b8e5
Normal file
BIN
corpus/41b02632b4a15df12d012fc05af2c696aed8b8e5
Normal file
Binary file not shown.
BIN
corpus/422f18907a48e21c3e337d50cda73ef663e3beed
Normal file
BIN
corpus/422f18907a48e21c3e337d50cda73ef663e3beed
Normal file
Binary file not shown.
BIN
corpus/42a6681fcbebedcfaf7e46b7d45490a049729299
Normal file
BIN
corpus/42a6681fcbebedcfaf7e46b7d45490a049729299
Normal file
Binary file not shown.
BIN
corpus/43950334272a0d818f646b118439717c19a99837
Normal file
BIN
corpus/43950334272a0d818f646b118439717c19a99837
Normal file
Binary file not shown.
BIN
corpus/43fd041f435b52c980fc578073e3ffece8335b8c
Normal file
BIN
corpus/43fd041f435b52c980fc578073e3ffece8335b8c
Normal file
Binary file not shown.
BIN
corpus/4465f40ff741859bcac88cea6f2d8a5aaf56c7a8
Normal file
BIN
corpus/4465f40ff741859bcac88cea6f2d8a5aaf56c7a8
Normal file
Binary file not shown.
BIN
corpus/48373d39e6d45877f67cf4a318211c2da472fb9b
Normal file
BIN
corpus/48373d39e6d45877f67cf4a318211c2da472fb9b
Normal file
Binary file not shown.
BIN
corpus/4844f12d67b5779bae5ecf3103b01430a2155140
Normal file
BIN
corpus/4844f12d67b5779bae5ecf3103b01430a2155140
Normal file
Binary file not shown.
BIN
corpus/48b4269e026a8e9b26c4c9313a275cdbd8c837aa
Normal file
BIN
corpus/48b4269e026a8e9b26c4c9313a275cdbd8c837aa
Normal file
Binary file not shown.
BIN
corpus/4920f8c7afdef94d228a5683c8d31cebf40c27a8
Normal file
BIN
corpus/4920f8c7afdef94d228a5683c8d31cebf40c27a8
Normal file
Binary file not shown.
BIN
corpus/4ae1f7137e89d6f9c9079533187a88ec42321092
Normal file
BIN
corpus/4ae1f7137e89d6f9c9079533187a88ec42321092
Normal file
Binary file not shown.
BIN
corpus/4ae57e7e2877620b1785a857f321f3bb0d9ccf11
Normal file
BIN
corpus/4ae57e7e2877620b1785a857f321f3bb0d9ccf11
Normal file
Binary file not shown.
BIN
corpus/4c48ce66e38ecfe8bf57d16aa9ff2b12eb51e71c
Normal file
BIN
corpus/4c48ce66e38ecfe8bf57d16aa9ff2b12eb51e71c
Normal file
Binary file not shown.
BIN
corpus/4d0a44860dbd150cb132f76d02f7bdfc8589767e
Normal file
BIN
corpus/4d0a44860dbd150cb132f76d02f7bdfc8589767e
Normal file
Binary file not shown.
BIN
corpus/4d790e5e6a410e0793dccf93fb0cb6d2ee264882
Normal file
BIN
corpus/4d790e5e6a410e0793dccf93fb0cb6d2ee264882
Normal file
Binary file not shown.
BIN
corpus/4ed655609f4caeffe8a822eedde67840c1fd0ca8
Normal file
BIN
corpus/4ed655609f4caeffe8a822eedde67840c1fd0ca8
Normal file
Binary file not shown.
BIN
corpus/4f66f912bd5ff8a4b8131b4d20f4c8f62a1a4825
Normal file
BIN
corpus/4f66f912bd5ff8a4b8131b4d20f4c8f62a1a4825
Normal file
Binary file not shown.
BIN
corpus/527e824566feda8073a02ede87ff3ec9e621e54f
Normal file
BIN
corpus/527e824566feda8073a02ede87ff3ec9e621e54f
Normal file
Binary file not shown.
BIN
corpus/52b78ae06aff68fdcb36cb00f98b137239127eca
Normal file
BIN
corpus/52b78ae06aff68fdcb36cb00f98b137239127eca
Normal file
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user