[Pkg-clamav-commits] [SCM] Debian repository for ClamAV branch, debian/unstable, updated. debian/0.95+dfsg-1-6156-g094ec9b
Török Edvin
edwin at clamav.net
Sun Apr 4 01:24:17 UTC 2010
The following commit has been merged in the debian/unstable branch:
commit b63681a52b2ba8b7a90c7d42ef3858f046c9b5ba
Author: Török Edvin <edwin at clamav.net>
Date: Mon Mar 22 17:16:07 2010 +0200
Introduce BytecodeTimeout.
diff --git a/clamd/clamd.c b/clamd/clamd.c
index 9b87e3d..d77bf46 100644
--- a/clamd/clamd.c
+++ b/clamd/clamd.c
@@ -428,6 +428,9 @@ int main(int argc, char **argv)
break;
}
}
+ if((opt = optget(opts,"BytecodeSecurity"))->enabled) {
+ cl_engine_set_num(engine, CL_ENGINE_BYTECODE_TIMEOUT, opt->numarg);
+ }
if(optget(opts,"PhishingScanURLs")->enabled)
dboptions |= CL_DB_PHISHING_URLS;
diff --git a/clamscan/manager.c b/clamscan/manager.c
index f8b4ed5..489b37f 100644
--- a/clamscan/manager.c
+++ b/clamscan/manager.c
@@ -403,6 +403,8 @@ int scanmanager(const struct optstruct *opts)
if(optget(opts, "bytecode-trust-all")->enabled)
cl_engine_set_num(engine, CL_ENGINE_BYTECODE_SECURITY, CL_BYTECODE_TRUST_ALL);
+ if((opt = optget(opts,"bytecode-timeout"))->enabled)
+ cl_engine_set_num(engine, CL_ENGINE_BYTECODE_TIMEOUT, opt->numarg);
if((opt = optget(opts, "tempdir"))->enabled) {
if((ret = cl_engine_set_str(engine, CL_ENGINE_TMPDIR, opt->strarg))) {
diff --git a/etc/clamd.conf b/etc/clamd.conf
index 3f00f8a..2f8a349 100644
--- a/etc/clamd.conf
+++ b/etc/clamd.conf
@@ -464,3 +464,8 @@ Example
#
# Default: TrustSigned
#BytecodeSecurity TrustSigned
+
+# Set bytecode timeout in microseconds.
+#
+# Default: 5000000
+#BytecodeTimeout 5000000
diff --git a/libclamav/bytecode.c b/libclamav/bytecode.c
index 0b33895..56cbf89 100644
--- a/libclamav/bytecode.c
+++ b/libclamav/bytecode.c
@@ -42,6 +42,7 @@ static const uint32_t nomatch[64];
struct cli_bc_ctx *cli_bytecode_context_alloc(void)
{
struct cli_bc_ctx *ctx = cli_calloc(1, sizeof(*ctx));
+ ctx->bytecode_timeout = 5000000;
return ctx;
}
@@ -1825,6 +1826,7 @@ int cli_bytecode_context_setpe(struct cli_bc_ctx *ctx, const struct cli_pe_hook_
void cli_bytecode_context_setctx(struct cli_bc_ctx *ctx, void *cctx)
{
ctx->ctx = cctx;
+ ctx->bytecode_timeout = ((cli_ctx*)cctx)->engine->bytecode_timeout;
}
void cli_bytecode_describe(const struct cli_bc *bc)
diff --git a/libclamav/bytecode_priv.h b/libclamav/bytecode_priv.h
index 8c129b6..c755b08 100644
--- a/libclamav/bytecode_priv.h
+++ b/libclamav/bytecode_priv.h
@@ -136,6 +136,7 @@ struct cli_bc_ctx {
/* id and params of toplevel function called */
const struct cli_bc *bc;
const struct cli_bc_func *func;
+ uint32_t bytecode_timeout;
unsigned bytes;
uint16_t *opsizes;
char *values;
diff --git a/libclamav/c++/bytecode2llvm.cpp b/libclamav/c++/bytecode2llvm.cpp
index 31bdfcf..238720e 100644
--- a/libclamav/c++/bytecode2llvm.cpp
+++ b/libclamav/c++/bytecode2llvm.cpp
@@ -1358,6 +1358,7 @@ int cli_vm_execute_jit(const struct cli_all_bc *bcs, struct cli_bc_ctx *ctx,
struct timeval tv0, tv1;
struct timespec abstimeout;
int timedout = 0;
+ uint32_t timeoutus;
// no locks needed here, since LLVM automatically acquires a JIT lock
// if needed.
void *code = bcs->engine->compiledFunctions[func];
@@ -1382,8 +1383,9 @@ int cli_vm_execute_jit(const struct cli_all_bc *bcs, struct cli_bc_ctx *ctx,
return CL_EBYTECODE;
}
- abstimeout.tv_sec = tv0.tv_sec + 5;
- abstimeout.tv_nsec = tv0.tv_usec*1000;
+ timeoutus = ctx->bytecode_timeout + tv0.tv_usec;
+ abstimeout.tv_nsec = 1000*(timeoutus%1000000);
+ abstimeout.tv_sec = tv0.tv_sec + timeoutus/1000000;
do {
ret = pthread_cond_timedwait(&bcthr.cond, &bcthr.mutex, &abstimeout);
} while (!bcthr.finished && ret != ETIMEDOUT);
diff --git a/libclamav/clamav.h b/libclamav/clamav.h
index 533157e..7535b97 100644
--- a/libclamav/clamav.h
+++ b/libclamav/clamav.h
@@ -141,7 +141,8 @@ enum cl_engine_field {
CL_ENGINE_AC_MAXDEPTH, /* uint32_t */
CL_ENGINE_TMPDIR, /* (char *) */
CL_ENGINE_KEEPTMP, /* uint32_t */
- CL_ENGINE_BYTECODE_SECURITY /* uint32_t */
+ CL_ENGINE_BYTECODE_SECURITY, /* uint32_t */
+ CL_ENGINE_BYTECODE_TIMEOUT /* uint32_t */
};
enum bytecode_security {
diff --git a/libclamav/others.c b/libclamav/others.c
index ec8fad5..b7af297 100644
--- a/libclamav/others.c
+++ b/libclamav/others.c
@@ -299,6 +299,8 @@ struct cl_engine *cl_engine_new(void)
new->min_ssn_count = CLI_DEFAULT_MIN_SSN_COUNT;
new->bytecode_security = CL_BYTECODE_TRUST_SIGNED;
+ /* 5 seconds timeout */
+ new->bytecode_timeout = 5000000;
new->refcount = 1;
new->ac_only = 0;
new->ac_mindepth = CLI_DEFAULT_AC_MINDEPTH;
@@ -390,6 +392,9 @@ int cl_engine_set_num(struct cl_engine *engine, enum cl_engine_field field, long
#endif
engine->bytecode_security = num;
break;
+ case CL_ENGINE_BYTECODE_TIMEOUT:
+ engine->bytecode_timeout = num;
+ break;
default:
cli_errmsg("cl_engine_set_num: Incorrect field number\n");
return CL_EARG;
diff --git a/libclamav/others.h b/libclamav/others.h
index bd80f21..5723dab 100644
--- a/libclamav/others.h
+++ b/libclamav/others.h
@@ -248,6 +248,7 @@ struct cl_engine {
unsigned hooks_cnt[_BC_LAST_HOOK - _BC_START_HOOKS];
unsigned hook_lsig_ids;
enum bytecode_security bytecode_security;
+ uint32_t bytecode_timeout;
};
struct cl_settings {
diff --git a/shared/optparser.c b/shared/optparser.c
index 835e4bc..05594b1 100644
--- a/shared/optparser.c
+++ b/shared/optparser.c
@@ -250,6 +250,8 @@ const struct clam_option __clam_options[] = {
{ "Bytecode", "bytecode", 0, TYPE_BOOL, MATCH_BOOL, 1, NULL, 0, OPT_CLAMD | OPT_CLAMSCAN, "With this option enabled ClamAV will load bytecode from the database. It is highly recommended you keep this option on, otherwise you'll miss detections for many new viruses.", "yes" },
{ "BytecodeSecurity", NULL, 0, TYPE_STRING, "^(None|TrustSigned|Paranoid)$", -1, "TrustSigned", 0, OPT_CLAMD,
"Set bytecode security level.\nPossible values:\n\tNone - no security at all, meant for debugging. DO NOT USE THIS ON PRODUCTION SYSTEMS\n\tTrustSigned - trust bytecode loaded from signed .c[lv]d files,\n\t\t insert runtime safety checks for bytecode loaded from other sources\n\tParanoid - don't trust any bytecode, insert runtime checks for all\nRecommended: TrustSigned, because bytecode in .cvd files already has these checks\n","TrustSigned"},
+ { "BytecodeTimeout", "bytecode-timeout", 0, TYPE_NUMBER, MATCH_NUMBER, 5000000, NULL, 0, OPT_CLAMD | OPT_CLAMSCAN,
+ "Set bytecode timeout in microseconds.\n","5000000"},
{ "DetectPUA", "detect-pua", 0, TYPE_BOOL, MATCH_BOOL, 0, NULL, 0, OPT_CLAMD | OPT_CLAMSCAN, "Detect Potentially Unwanted Applications.", "yes" },
{ "ExcludePUA", "exclude-pua", 0, TYPE_STRING, NULL, -1, NULL, FLAG_MULTIPLE, OPT_CLAMD | OPT_CLAMSCAN, "Exclude a specific PUA category. This directive can be used multiple times.\nSee http://www.clamav.net/support/pua for the complete list of PUA\ncategories.", "NetTool\nPWTool" },
diff --git a/unit_tests/check_bytecode.c b/unit_tests/check_bytecode.c
index 002be5e..e480502 100644
--- a/unit_tests/check_bytecode.c
+++ b/unit_tests/check_bytecode.c
@@ -34,6 +34,7 @@
#include "../libclamav/bytecode.h"
#include "checks.h"
#include "../libclamav/dconf.h"
+#include "../libclamav/bytecode_priv.h"
static void runtest(const char *file, uint64_t expected, int fail, int nojit)
{
@@ -73,6 +74,8 @@ static void runtest(const char *file, uint64_t expected, int fail, int nojit)
}
ctx = cli_bytecode_context_alloc();
+ /* small timeout, these bytecodes are fast! */
+ ctx->bytecode_timeout = 100000;
fail_unless(!!ctx, "cli_bytecode_context_alloc failed");
cli_bytecode_context_setfuncid(ctx, &bc, 0);
@@ -144,6 +147,14 @@ FIXME: match_counts should be initialized in clambc mode
}
END_TEST
+START_TEST (test_inf)
+{
+ cl_init(CL_INIT_DEFAULT);
+ if (have_clamjit)
+ runtest("input/inf.cbc", 0, CL_ETIMEOUT, 0);
+}
+END_TEST
+
Suite *test_bytecode_suite(void)
{
Suite *s = suite_create("bytecode");
@@ -156,5 +167,6 @@ Suite *test_bytecode_suite(void)
tcase_add_test(tc_cli_arith, test_apicalls2);
tcase_add_test(tc_cli_arith, test_div0);
tcase_add_test(tc_cli_arith, test_lsig);
+ tcase_add_test(tc_cli_arith, test_inf);
return s;
}
diff --git a/unit_tests/input/apicalls.cbc b/unit_tests/input/apicalls.cbc
index 35dc9bd..d42ef67 100644
--- a/unit_tests/input/apicalls.cbc
+++ b/unit_tests/input/apicalls.cbc
@@ -1,4 +1,4 @@
-ClamBCafh`ibbfjkd|afefdfggifnf```````|bhacflfafmfbfcfmb`cnbac`cmbac`cmbgfacdfdcccffecgc``agafp`clamcoincidencejb:82
+ClamBCafhflhhgjkd|afefdfggifnf```````|bhacflfafmfbfcfmb`cnbac`cmbacbcmbgfdcfcacefafefic``agafp`clamcoincidencejb:82
Tedaaa`aacb`bb`bb`b
Eaaaaaabfd|afdgefcgdgac``
@@ -18,7 +18,7 @@ Baaabeaah`BhbaTaaabaaab
Baaaceab`aaaDdcbabb`badoaacDm``odDmjnmdTcab`bad
BTcab`bDmjnmdE
Sifnfdg`befnfdgbgig`gofifnfdghbibSkgSbgefdgegbgnf`bdgefcgdgachb`chgff`c`cdfbfefeffflb`b`chgbfefefffff`c`cdfib`bmcmc`b`chgacbcccdcecfcgchc`boc`b`chgff`c`cdf`bjc`b`chgdfefafdfkc
-mgSifnfdg`bffofofachbegifnfdghcoedg`bafibSkgSbgefdgegbgnf`baf`bmcmc`b`chgacgc`boc`b`chgff`c`cdf`bjc`b`chgdfefafdfkcSmgSifnfdg`bffofofbchbegifnfdgacfcoedg`bafibSkgSbgefdgegbgnf`baf`bmcmc`b`chgacgcbchc`boc`b`chgff`c`cdf`bjc`b`chgdfefafdfkc
-mgSifnfdg`bffofofcchbegifnfdgccbcoedg`bafibSkgSbgefdgegbgnf`baf`bmcmc`b`chgacgcbchcccic`boc`b`chgff`c`cdf`bjc`b`chgdfefafdfkcSmgSifnfdg`bffofofdchbegifnfdgfcdcoedg`bafib
-kgSbgefdgegbgnf`baf`bmcmc`b`chgacgcbchcccicdc`cecacfcbcgccc`boc`b`chgff`c`cdf`bjc`b`chgdfefafdfkcSmgSifnfdg`bffofofechbegifnfdghcoedg`baflb`begifnfdgacfcoedg`bbfib
-kgSbgefdgegbgnf`bhbaf`bmcmc`b`chgbchc`bfbfb`bbf`bmcmc`b`chgacbcccdcib`boc`b`chgff`c`cdf`bjc`b`chgdfefafdfkcSmgSS
\ No newline at end of file
+mgSSifnfdg`bffofofachbegifnfdghcoedg`bafibSkgSbgefdgegbgnf`baf`bmcmc`b`chgacgc`boc`b`chgff`c`cdf`bjc`b`chgdfefafdfkcSmgSSifnfdg`bffofofbchbegifnfdgacfcoedg`bafibSkgSbgefdgegbgnf`baf`bmcmc`b`chgacgcbchc`boc`b`chgff`c`cdf`bjc`b`chgdfefafdfkc
+mgSSifnfdg`bffofofcchbegifnfdgccbcoedg`bafibSkgSbgefdgegbgnf`baf`bmcmc`b`chgacgcbchcccic`boc`b`chgff`c`cdf`bjc`b`chgdfefafdfkcSmgSSifnfdg`bffofofdchbegifnfdgfcdcoedg`bafib
+kgSbgefdgegbgnf`baf`bmcmc`b`chgacgcbchcccicdc`cecacfcbcgccc`boc`b`chgff`c`cdf`bjc`b`chgdfefafdfkcSmgSSifnfdg`bffofofechbegifnfdghcoedg`baflb`begifnfdgacfcoedg`bbfib
+kgSbgefdgegbgnf`bhbaf`bmcmc`b`chgbchc`bfbfb`bbf`bmcmc`b`chgacbcccdcib`boc`b`chgff`c`cdf`bjc`b`chgdfefafdfkcSmgSSSS
\ No newline at end of file
diff --git a/unit_tests/input/apicalls2.cbc b/unit_tests/input/apicalls2.cbc
index 840f1d0..4243e4a 100644
--- a/unit_tests/input/apicalls2.cbc
+++ b/unit_tests/input/apicalls2.cbc
@@ -1,4 +1,4 @@
-ClamBCafh`ibbfjkd|afefdfggifnf```````|bhacflfafmfbfcfmb`cnbac`cmbac`cmbgfacdfdcccffecgc``ahafp`clamcoincidencejb:66
+ClamBCafhflhhgjkd|afefdfggifnf```````|bhacflfafmfbfcfmb`cnbac`cmbacbcmbgfdcfcacefafefic``ahafp`clamcoincidencejb:66
Tedaaa`aabb`bb`baacb`bb`bb`b
Ebcaabbcabfd|afdgefcgdgbc``aabgd|afdgefcgdgac``
@@ -21,7 +21,7 @@ Baaaceab`aaaDdcbabb`badoaacDm``odDmjnmdTcab`bad
BTcab`bDmjnmdE
Sifnfdg`befnfdgbgig`gofifnfdghbibSkgScfhfafbg`bjbhgkcSifff`bhbdgefcgdgachb`chgff`c`cdfbfefeffflb`b`chgbfefefffff`c`cdfib`babmc`b`chgacbcccdcecfcgchcibSbgefdgegbgnf`b`chgdfefafdfkc
ifff`bhbdgefcgdgbchb`chgff`c`cdfib`babmc`b`chgdf`c`cffibSbgefdgegbgnf`b`chgdfefafdfkcShg`bmc`bmfaflflfofcfhbacibkcSifff`bhbabhgibSbgefdgegbgnf`b`chgdfefafdfkcSbgefdgegbgnf`b`chgff`c`cdfkc
-mgSifnfdg`bffofofachbegifnfdghcoedg`bafibSkgSbgefdgegbgnf`baf`bmcmc`b`chgacgc`boc`b`chgff`c`cdf`bjc`b`chgdfefafdfkcSmgSifnfdg`bffofofbchbegifnfdgacfcoedg`bafibSkgSbgefdgegbgnf`baf`bmcmc`b`chgacgcbchc`boc`b`chgff`c`cdf`bjc`b`chgdfefafdfkc
-mgSifnfdg`bffofofcchbegifnfdgccbcoedg`bafibSkgSbgefdgegbgnf`baf`bmcmc`b`chgacgcbchcccic`boc`b`chgff`c`cdf`bjc`b`chgdfefafdfkcSmgSifnfdg`bffofofdchbegifnfdgfcdcoedg`bafib
-kgSbgefdgegbgnf`baf`bmcmc`b`chgacgcbchcccicdc`cecacfcbcgccc`boc`b`chgff`c`cdf`bjc`b`chgdfefafdfkcSmgSifnfdg`bffofofechbegifnfdghcoedg`baflb`begifnfdgacfcoedg`bbfib
-kgSbgefdgegbgnf`bhbaf`bmcmc`b`chgbchc`bfbfb`bbf`bmcmc`b`chgacbcccdcib`boc`b`chgff`c`cdf`bjc`b`chgdfefafdfkcSmgSS
\ No newline at end of file
+mgSSifnfdg`bffofofachbegifnfdghcoedg`bafibSkgSbgefdgegbgnf`baf`bmcmc`b`chgacgc`boc`b`chgff`c`cdf`bjc`b`chgdfefafdfkcSmgSSifnfdg`bffofofbchbegifnfdgacfcoedg`bafibSkgSbgefdgegbgnf`baf`bmcmc`b`chgacgcbchc`boc`b`chgff`c`cdf`bjc`b`chgdfefafdfkc
+mgSSifnfdg`bffofofcchbegifnfdgccbcoedg`bafibSkgSbgefdgegbgnf`baf`bmcmc`b`chgacgcbchcccic`boc`b`chgff`c`cdf`bjc`b`chgdfefafdfkcSmgSSifnfdg`bffofofdchbegifnfdgfcdcoedg`bafib
+kgSbgefdgegbgnf`baf`bmcmc`b`chgacgcbchcccicdc`cecacfcbcgccc`boc`b`chgff`c`cdf`bjc`b`chgdfefafdfkcSmgSSifnfdg`bffofofechbegifnfdghcoedg`baflb`begifnfdgacfcoedg`bbfib
+kgSbgefdgegbgnf`bhbaf`bmcmc`b`chgbchc`bfbfb`bbf`bmcmc`b`chgacbcccdcib`boc`b`chgff`c`cdf`bjc`b`chgdfefafdfkcSmgSSSS
\ No newline at end of file
diff --git a/unit_tests/input/arith.cbc b/unit_tests/input/arith.cbc
index d648b46..843f5f2 100644
--- a/unit_tests/input/arith.cbc
+++ b/unit_tests/input/arith.cbc
@@ -1,4 +1,4 @@
-ClamBCafh`ibbfjkd|afefdfggifnf```````|bhacflfafmfbfcfmb`cnbac`cmbac`cmbgfacdfdcccffecgc``afbbep`clamcoincidencejb:418
+ClamBCafhflhhgjkd|afefdfggifnf```````|bhacflfafmfbfcfmb`cnbac`cmbacbcmbgfdcfcacefafefic``afbbep`clamcoincidencejb:418
Tedaaa`
E``
@@ -359,92 +359,92 @@ ifnfdg`bdgefcgdgoelfcghfbghbfgofifdfibkcSifnfdg`bdgefcgdgoeafcghfbghbfgofifdfibk
ifnfdg`bdgefcgdgoecgefhgdghbfgofifdfibkcSifnfdg`bdgefcgdgoejgefhgdghbfgofifdfibkcSifnfdg`bdgefcgdgoedgbgegnfcfhbfgofifdfibkcSifnfdg`bdgefcgdgoeifcfmf`ghbfgofifdfibkc
ifnfdg`bdgefcgdgoecgeflfefcfdghbfgofifdfibkcSifnfdg`befnfdgbgig`gofifnfdghbfgofifdfibSkgSbgefdgegbgnf`bdgefcgdgoeafdfdfhbib`bkb`bdgefcgdgoecgegbfhbib`bkb`bdgefcgdgoemfeglfhbib`bkb`bdgefcgdgoeegdfiffghbib`bkb`bdgefcgdgoecgdfiffghbibkb
dgefcgdgoebgefmfhbib`bkb`bdgefcgdgoecghflfhbib`bkb`bdgefcgdgoelfcghfbghbibkbdgefcgdgoeafcghfbghbibkbdgefcgdgoeafnfdfhbibkbdgefcgdgoeofbghbibkbSdgefcgdgoehgofbghbibkbdgefcgdgoecgefhgdghbibkbdgefcgdgoejgefhgdghbibkbdgefcgdgoedgbgegnfcfhbibkbdgefcgdgoeifcfmf`ghbibkbdgefcgdgoecgeflfefcfdghbibkc
-mgSifnfdghcoedg`bafdfdfoeifhchbifnfdghcoedg`baflb`bifnfdghcoedg`bbfibSkgSbgefdgegbgnf`baf`bkb`bbfkcSmgSifnfdgacfcoedg`bafdfdfoeifacfchbifnfdgacfcoedg`baflb`bifnfdgacfcoedg`bbfib
+mgSSifnfdghcoedg`bafdfdfoeifhchbifnfdghcoedg`baflb`bifnfdghcoedg`bbfibSkgSbgefdgegbgnf`baf`bkb`bbfkcSmgSifnfdgacfcoedg`bafdfdfoeifacfchbifnfdgacfcoedg`baflb`bifnfdgacfcoedg`bbfib
kgSbgefdgegbgnf`baf`bkb`bbfkcSmgSifnfdgccbcoedg`bafdfdfoeifccbchbifnfdgccbcoedg`baflb`bifnfdgccbcoedg`bbfibSkgSbgefdgegbgnf`baf`bkb`bbfkcSmgSifnfdgfcdcoedg`bafdfdfoeiffcdchbifnfdgfcdcoedg`baflb`bifnfdgfcdcoedg`bbfib
-kgSbgefdgegbgnf`baf`bkb`bbfkcSmgSifnfdg`bffafiflfhbifnfdg`bhgibSkgSbgefdgegbgnf`bacobhgkcSmgSifnfdg`bdgefcgdgoeafdfdfhbfgofifdfibSkgSifff`bhbafdfdfoeifhchbaclb`bacib`babmc`bbcib
+kgSbgefdgegbgnf`baf`bkb`bbfkcSmgSSifnfdg`bffafiflfhbifnfdg`bhgibSkgSbgefdgegbgnf`bacobhgkcSmgSifnfdg`bdgefcgdgoeafdfdfhbfgofifdfibSkgSifff`bhbafdfdfoeifhchbaclb`bacib`babmc`bbcib
bgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbafdfdfoeifhchbaclb`bmbacib`babmc`b`cibSbgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbafdfdfoeifhchbmbaclb`bmbacib`babmc`bmbbcibSbgefdgegbgnf`bffafiflfhb`cibkc
-ifff`bhbafdfdfoeifhchbbcececlb`bacib`babmc`b`cibSbgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbafdfdfoeifacfchbaclb`bacib`babmc`bbcibSbgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbafdfdfoeifacfchbaclb`bmbacib`babmc`b`cib
+ifff`bhbafdfdfoeifhchbbcececlb`bacib`babmc`b`cibSbgefdgegbgnf`bffafiflfhb`cibkcSSifff`bhbafdfdfoeifacfchbaclb`bacib`babmc`bbcibSbgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbafdfdfoeifacfchbaclb`bmbacib`babmc`b`cib
bgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbafdfdfoeifacfchbmbaclb`bmbacib`babmc`bmbbcibSbgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbafdfdfoeifacfchbfcececcceclb`bacib`babmc`b`cib
-bgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbafdfdfoeifccbchbaclb`bacib`babmc`bbcibSbgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbafdfdfoeifccbchbaclb`bmbacib`babmc`b`cibSbgefdgegbgnf`bffafiflfhb`cibkc
+bgefdgegbgnf`bffafiflfhb`cibkcSSifff`bhbafdfdfoeifccbchbaclb`bacib`babmc`bbcibSbgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbafdfdfoeifccbchbaclb`bmbacib`babmc`b`cibSbgefdgegbgnf`bffafiflfhb`cibkc
ifff`bhbafdfdfoeifccbchbmbaclb`bmbacib`babmc`bmbbcibSbgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbafdfdfoeifccbchbng`ceglb`bacib`babmc`b`cibSbgefdgegbgnf`bffafiflfhb`cibkc
-ifff`bhbafdfdfoeiffcdchbaclb`bacib`babmc`bbcibSbgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbafdfdfoeiffcdchbaclb`bmbacib`babmc`b`cibSbgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbafdfdfoeiffcdchbmbaclb`bmbacib`babmc`bmbbcib
-bgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbafdfdfoeiffcdchbng`ceglflflb`bacib`babmc`b`cibSbgefdgegbgnf`bffafiflfhb`cibkcSbgefdgegbgnf`b`chgackcSmgSifnfdghcoedg`bcgegbfoeifhchbifnfdghcoedg`baflb`bifnfdghcoedg`bbfib
+Sifff`bhbafdfdfoeiffcdchbaclb`bacib`babmc`bbcibSbgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbafdfdfoeiffcdchbaclb`bmbacib`babmc`b`cibSbgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbafdfdfoeiffcdchbmbaclb`bmbacib`babmc`bmbbcib
+bgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbafdfdfoeiffcdchbng`ceglflflb`bacib`babmc`b`cibSbgefdgegbgnf`bffafiflfhb`cibkcSbgefdgegbgnf`b`chgackcSmgSSifnfdghcoedg`bcgegbfoeifhchbifnfdghcoedg`baflb`bifnfdghcoedg`bbfib
kgSbgefdgegbgnf`baf`bmb`bbfkcSmgSifnfdgacfcoedg`bcgegbfoeifacfchbifnfdgacfcoedg`baflb`bifnfdgacfcoedg`bbfibSkgSbgefdgegbgnf`baf`bmb`bbfkcSmgSifnfdgccbcoedg`bcgegbfoeifccbchbifnfdgccbcoedg`baflb`bifnfdgccbcoedg`bbfib
-kgSbgefdgegbgnf`baf`bmb`bbfkcSmgSifnfdgfcdcoedg`bcgegbfoeiffcdchbifnfdgfcdcoedg`baflb`bifnfdgfcdcoedg`bbfibSkgSbgefdgegbgnf`baf`bmb`bbfkcSmgSifnfdg`bdgefcgdgoecgegbfhbfgofifdfib
+kgSbgefdgegbgnf`baf`bmb`bbfkcSmgSifnfdgfcdcoedg`bcgegbfoeiffcdchbifnfdgfcdcoedg`baflb`bifnfdgfcdcoedg`bbfibSkgSbgefdgegbgnf`baf`bmb`bbfkcSmgSSifnfdg`bdgefcgdgoecgegbfhbfgofifdfib
kgSifff`bhbcgegbfoeifhchbmbaclbacib`babmc`bmbbcibSbgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbcgegbfoeifhchbaclb`bmbacib`babmc`bbcibSbgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbcgegbfoeifhchbaclb`bacib`babmc`b`cib
-bgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbcgegbfoeifacfchbmbaclbacib`babmc`bmbbcibSbgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbcgegbfoeifacfchbaclb`bmbacib`babmc`bbcibSbgefdgegbgnf`bffafiflfhb`cibkc
-ifff`bhbcgegbfoeifacfchbaclb`bacib`babmc`b`cibSbgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbcgegbfoeifccbchbmbaclbacib`babmc`bmbbcibSbgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbcgegbfoeifccbchbaclb`bmbacib`babmc`bbcib
-bgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbcgegbfoeifccbchbaclb`bacib`babmc`b`cibSbgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbcgegbfoeiffcdchbmbaclbacib`babmc`bmbbcibSbgefdgegbgnf`bffafiflfhb`cibkc
+bgefdgegbgnf`bffafiflfhb`cibkcSSifff`bhbcgegbfoeifacfchbmbaclbacib`babmc`bmbbcibSbgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbcgegbfoeifacfchbaclb`bmbacib`babmc`bbcibSbgefdgegbgnf`bffafiflfhb`cibkc
+ifff`bhbcgegbfoeifacfchbaclb`bacib`babmc`b`cibSbgefdgegbgnf`bffafiflfhb`cibkcSSifff`bhbcgegbfoeifccbchbmbaclbacib`babmc`bmbbcibSbgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbcgegbfoeifccbchbaclb`bmbacib`babmc`bbcib
+bgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbcgegbfoeifccbchbaclb`bacib`babmc`b`cibSbgefdgegbgnf`bffafiflfhb`cibkcSSifff`bhbcgegbfoeiffcdchbmbaclbacib`babmc`bmbbcibSbgefdgegbgnf`bffafiflfhb`cibkc
ifff`bhbcgegbfoeiffcdchbaclb`bmbacib`babmc`bbcibSbgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbcgegbfoeiffcdchbaclb`bacib`babmc`b`cibSbgefdgegbgnf`bffafiflfhb`cibkcSbgefdgegbgnf`bdckc
-mgSifnfdghcoedg`bmfeglfoeifhchbifnfdghcoedg`baflb`bifnfdghcoedg`bbfibSkgSbgefdgegbgnf`baf`bjb`bbfkcSmgSifnfdgacfcoedg`bmfeglfoeifacfchbifnfdgacfcoedg`baflb`bifnfdgacfcoedg`bbfib
+mgSSifnfdghcoedg`bmfeglfoeifhchbifnfdghcoedg`baflb`bifnfdghcoedg`bbfibSkgSbgefdgegbgnf`baf`bjb`bbfkcSmgSifnfdgacfcoedg`bmfeglfoeifacfchbifnfdgacfcoedg`baflb`bifnfdgacfcoedg`bbfib
kgSbgefdgegbgnf`baf`bjb`bbfkcSmgSifnfdgccbcoedg`bmfeglfoeifccbchbifnfdgccbcoedg`baflb`bifnfdgccbcoedg`bbfibSkgSbgefdgegbgnf`baf`bjb`bbfkcSmgSifnfdgfcdcoedg`bmfeglfoeiffcdchbifnfdgfcdcoedg`baflb`bifnfdgfcdcoedg`bbfib
-kgSbgefdgegbgnf`baf`bjb`bbfkcSmgSifnfdg`bdgefcgdgoemfeglfhbfgofifdfibSkgSifff`bhbmfeglfoeifhchbmbaclb`bacib`babmc`bmbacibSbgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbmfeglfoeifhchbmbaclb`bmbacib`babmc`bacib
+kgSbgefdgegbgnf`baf`bjb`bbfkcSmgSSifnfdg`bdgefcgdgoemfeglfhbfgofifdfibSkgSifff`bhbmfeglfoeifhchbmbaclb`bacib`babmc`bmbacibSbgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbmfeglfoeifhchbmbaclb`bmbacib`babmc`bacib
bgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbmfeglfoeifhchbaclb`bacib`babmc`bacibSbgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbmfeglfoeifhchbacgclb`bccecib`babmc`bhcccibSbgefdgegbgnf`bffafiflfhb`cibkc
-ifff`bhbmfeglfoeifacfchbmbaclb`bacib`babmc`bmbacibSbgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbmfeglfoeifacfchbmbaclb`bmbacib`babmc`bacibSbgefdgegbgnf`bffafiflfhb`cibkc
+Sifff`bhbmfeglfoeifacfchbmbaclb`bacib`babmc`bmbacibSbgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbmfeglfoeifacfchbmbaclb`bmbacib`babmc`bacibSbgefdgegbgnf`bffafiflfhb`cibkc
ifff`bhbmfeglfoeifacfchbaclb`bacib`babmc`bacibSbgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbmfeglfoeifacfchbacgciclb`bhcgcacib`babmc`bbcdchcccgcibSbgefdgegbgnf`bffafiflfhb`cibkc
-ifff`bhbmfeglfoeifccbchbmbaclb`bacib`babmc`bmbacibSbgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbmfeglfoeifccbchbmbaclb`bmbacib`babmc`bacibSbgefdgegbgnf`bffafiflfhb`cibkc
+Sifff`bhbmfeglfoeifccbchbmbaclb`bacib`babmc`bmbacibSbgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbmfeglfoeifccbchbmbaclb`bmbacib`babmc`bacibSbgefdgegbgnf`bffafiflfhb`cibkc
ifff`bhbmfeglfoeifccbchbaclb`bacib`babmc`bacibSbgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbmfeglfoeifccbchbacgcicecccfclb`bhcgcacicacbcib`babmc`bacicbc`cgcgc`cacgcfcib
-bgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbmfeglfoeiffcdchbmbaclb`bacib`babmc`bmbacibSbgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbmfeglfoeiffcdchbmbaclb`bmbacib`babmc`bacib
+bgefdgegbgnf`bffafiflfhb`cibkcSSifff`bhbmfeglfoeiffcdchbmbaclb`bacib`babmc`bmbacibSbgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbmfeglfoeiffcdchbmbaclb`bmbacib`babmc`bacib
bgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbmfeglfoeiffcdchbaclb`bacib`babmc`bacibSbgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbmfeglfoeiffcdchbacgcicecccfcbcacgchciclb`bhcgcacicacbcecacacicib`babmc`bhcicfcecicbcbcacbcgchcacicbc`cdcicfcccib
-bgefdgegbgnf`bffafiflfhb`cibkcSbgefdgegbgnf`b`chgac`ckcSmgSegifnfdghcoedg`begdfiffgoeifhchbegifnfdghcoedg`baflb`begifnfdghcoedg`bbfibSkgSbgefdgegbgnf`baf`bob`bbfkcSmg
+bgefdgegbgnf`bffafiflfhb`cibkcSbgefdgegbgnf`b`chgac`ckcSmgSSegifnfdghcoedg`begdfiffgoeifhchbegifnfdghcoedg`baflb`begifnfdghcoedg`bbfibSkgSbgefdgegbgnf`baf`bob`bbfkcSmg
egifnfdgacfcoedg`begdfiffgoeifacfchbegifnfdgacfcoedg`baflb`begifnfdgacfcoedg`bbfibSkgSbgefdgegbgnf`baf`bob`bbfkcSmgSegifnfdgccbcoedg`begdfiffgoeifccbchbegifnfdgccbcoedg`baflb`begifnfdgccbcoedg`bbfib
-kgSbgefdgegbgnf`baf`bob`bbfkcSmgSegifnfdgfcdcoedg`begdfiffgoeiffcdchbegifnfdgfcdcoedg`baflb`begifnfdgfcdcoedg`bbfibSkgSbgefdgegbgnf`baf`bob`bbfkcSmgSifnfdg`bdgefcgdgoeegdfiffghbfgofifdfib
-kgSifff`bhbegdfiffgoeifacfchbmbecccdclb`bgcib`babmc`bicbchcfcibSbgefdgegbgnf`bffafiflfhb`cibkcSbgefdgegbgnf`b`chgdc`ckcSmgSifnfdghcoedg`bcgdfiffgoeifhchbifnfdghcoedg`baflb`bifnfdghcoedg`bbfib
+kgSbgefdgegbgnf`baf`bob`bbfkcSmgSegifnfdgfcdcoedg`begdfiffgoeiffcdchbegifnfdgfcdcoedg`baflb`begifnfdgfcdcoedg`bbfibSkgSbgefdgegbgnf`baf`bob`bbfkcSmgSSifnfdg`bdgefcgdgoeegdfiffghbfgofifdfib
+kgSifff`bhbegdfiffgoeifacfchbmbecccdclb`bgcib`babmc`bicbchcfcibSbgefdgegbgnf`bffafiflfhb`cibkcSbgefdgegbgnf`b`chgdc`ckcSmgSSifnfdghcoedg`bcgdfiffgoeifhchbifnfdghcoedg`baflb`bifnfdghcoedg`bbfib
kgSbgefdgegbgnf`baf`bob`bbfkcSmgSifnfdgacfcoedg`bcgdfiffgoeifacfchbifnfdgacfcoedg`baflb`bifnfdgacfcoedg`bbfibSkgSbgefdgegbgnf`baf`bob`bbfkcSmgSifnfdgccbcoedg`bcgdfiffgoeifccbchbifnfdgccbcoedg`baflb`bifnfdgccbcoedg`bbfib
-kgSbgefdgegbgnf`baf`bob`bbfkcSmgSifnfdgfcdcoedg`bcgdfiffgoeiffcdchbifnfdgfcdcoedg`baflb`bifnfdgfcdcoedg`bbfibSkgSbgefdgegbgnf`baf`bob`bbfkcSmgSifnfdg`bdgefcgdgoecgdfiffghbfgofifdfib
+kgSbgefdgegbgnf`baf`bob`bbfkcSmgSifnfdgfcdcoedg`bcgdfiffgoeiffcdchbifnfdgfcdcoedg`baflb`bifnfdgfcdcoedg`bbfibSkgSbgefdgegbgnf`baf`bob`bbfkcSmgSSifnfdg`bdgefcgdgoecgdfiffghbfgofifdfib
kgSifff`bhbcgdfiffgoeifhchbaclb`bmbacib`babmc`bmbacibSbgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbcgdfiffgoeifhchbmbaclbacib`babmc`bmbacibSbgefdgegbgnf`bffafiflfhb`cibkc
-ifff`bhbcgdfiffgoeifhchbmbaclbmbacib`babmc`bacibSbgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbcgdfiffgoeifhchbaclbacib`babmc`bacibSbgefdgegbgnf`bffafiflfhb`cibkcSegifnfdghcoedg`baf`bmc`bbcecdckc
+ifff`bhbcgdfiffgoeifhchbmbaclbmbacib`babmc`bacibSbgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbcgdfiffgoeifhchbaclbacib`babmc`bacibSbgefdgegbgnf`bffafiflfhb`cibkcSSegifnfdghcoedg`baf`bmc`bbcecdckc
egifnfdghcoedg`bbf`bmc`beckcSegifnfdghcoedg`bcf`bmc`bafdfdfoeifhchbaflbbfibkcSifff`bhbcgdfiffgoeifhchbfclb`bcfib`babmc`bbcibSbgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbcgdfiffgoeifhchbcflb`bbcib`babmc`bacib
-bgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbcgdfiffgoeifacfchbmbecccdclb`bgcib`babmc`bmbgcfcibSbgefdgegbgnf`bffafiflfhb`cibkcSbgefdgegbgnf`b`chgac`c`ckcSmgSegifnfdghcoedg`begbgefmfoeifhchbegifnfdghcoedg`baflb`begifnfdghcoedg`bbfib
+bgefdgegbgnf`bffafiflfhb`cibkcSSifff`bhbcgdfiffgoeifacfchbmbecccdclb`bgcib`babmc`bmbgcfcibSbgefdgegbgnf`bffafiflfhb`cibkcSbgefdgegbgnf`b`chgac`c`ckcSmgSSegifnfdghcoedg`begbgefmfoeifhchbegifnfdghcoedg`baflb`begifnfdghcoedg`bbfib
kgSbgefdgegbgnf`baf`beb`bbfkcSmgSegifnfdgacfcoedg`begbgefmfoeifacfchbegifnfdgacfcoedg`baflb`begifnfdgacfcoedg`bbfibSkgSbgefdgegbgnf`baf`beb`bbfkcSmgSegifnfdgccbcoedg`begbgefmfoeifccbchbegifnfdgccbcoedg`baflb`begifnfdgccbcoedg`bbfib
kgSbgefdgegbgnf`baf`beb`bbfkcSmgSegifnfdgfcdcoedg`begbgefmfoeiffcdchbegifnfdgfcdcoedg`baflb`begifnfdgfcdcoedg`bbfibSkgSbgefdgegbgnf`baf`beb`bbfkcSmgSifnfdghcoedg`bcgbgefmfoeifhchbifnfdghcoedg`baflb`bifnfdghcoedg`bbfib
kgSbgefdgegbgnf`baf`beb`bbfkcSmgSifnfdgacfcoedg`bcgbgefmfoeifacfchbifnfdgacfcoedg`baflb`bifnfdgacfcoedg`bbfibSkgSbgefdgegbgnf`baf`beb`bbfkcSmgSifnfdgccbcoedg`bcgbgefmfoeifccbchbifnfdgccbcoedg`baflb`bifnfdgccbcoedg`bbfib
-kgSbgefdgegbgnf`baf`beb`bbfkcSmgSifnfdgfcdcoedg`bcgbgefmfoeiffcdchbifnfdgfcdcoedg`baflb`bifnfdgfcdcoedg`bbfibSkgSbgefdgegbgnf`baf`beb`bbfkcSmgSifnfdg`bdgefcgdgoebgefmfhbfgofifdfib
+kgSbgefdgegbgnf`baf`beb`bbfkcSmgSifnfdgfcdcoedg`bcgbgefmfoeiffcdchbifnfdgfcdcoedg`baflb`bifnfdgfcdcoedg`bbfibSkgSbgefdgegbgnf`baf`beb`bbfkcSmgSSifnfdg`bdgefcgdgoebgefmfhbfgofifdfib
kgSifff`bhbcgbgefmfoeifhchbmbaclb`bacib`babmc`b`cibSbgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbegbgefmfoeifhchbmbaclb`bacib`babmc`b`cibSbgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbcgbgefmfoeifhchbaclb`bmbacib`babmc`b`cib
bgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbcgbgefmfoeifacfchbmbeccceclbgcib`babmc`bmbccibSbgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbegbgefmfoeifacfchbmbeccceclbgcib`babmc`bfcib
-bgefdgegbgnf`bffafiflfhb`cibkcSbgefdgegbgnf`b`chgdc`c`ckcSmgSifnfdghcoedg`bcghflfoeifhchbifnfdghcoedg`baflb`begnfcgifgfnfefdf`bcfibSkgSbgefdgegbgnf`baf`blclc`bcfkcSmg
+bgefdgegbgnf`bffafiflfhb`cibkcSbgefdgegbgnf`b`chgdc`c`ckcSmgSSifnfdghcoedg`bcghflfoeifhchbifnfdghcoedg`baflb`begnfcgifgfnfefdf`bcfibSkgSbgefdgegbgnf`baf`blclc`bcfkcSmg
ifnfdgacfcoedg`bcghflfoeifacfchbifnfdgacfcoedg`baflb`begnfcgifgfnfefdf`bcfibSkgSbgefdgegbgnf`baf`blclc`bcfkcSmgSifnfdgccbcoedg`bcghflfoeifccbchbifnfdgccbcoedg`baflb`begnfcgifgfnfefdf`bcfib
-kgSbgefdgegbgnf`baf`blclc`bcfkcSmgSifnfdgfcdcoedg`bcghflfoeiffcdchbifnfdgfcdcoedg`baflb`begnfcgifgfnfefdf`bcfibSkgSbgefdgegbgnf`baf`blclc`bcfkcSmgSifnfdg`bdgefcgdgoecghflfhbfgofifdfib
+kgSbgefdgegbgnf`baf`blclc`bcfkcSmgSifnfdgfcdcoedg`bcghflfoeiffcdchbifnfdgfcdcoedg`baflb`begnfcgifgfnfefdf`bcfibSkgSbgefdgegbgnf`baf`blclc`bcfkcSmgSSifnfdg`bdgefcgdgoecghflfhbfgofifdfib
kgSifff`bhbcghflfoeifhchbaclb`bacib`babmc`bbcibSbgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbcghflfoeifhchbaclb`b`cib`babmc`bacibSbgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbcghflfoeifhchbbcecdclb`bbcib`babmc`bmbhcib
bgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbcghflfoeifacfchb`chgffafffeflbbcib`babmc`b`chgffffffffefbfffhcibSbgefdgegbgnf`bffafiflfhb`cibkcSbgefdgegbgnf`b`chgac`c`c`ckc
-mgSifnfdghcoedg`blfcghfbgoeifhchbegifnfdghcoedg`baflb`begnfcgifgfnfefdf`bcfibSkgSbgefdgegbgnf`baf`bncnc`bcfkcSmgSifnfdgacfcoedg`blfcghfbgoeifacfchbegifnfdgacfcoedg`baflb`begnfcgifgfnfefdf`bcfib
+mgSSifnfdghcoedg`blfcghfbgoeifhchbegifnfdghcoedg`baflb`begnfcgifgfnfefdf`bcfibSkgSbgefdgegbgnf`baf`bncnc`bcfkcSmgSifnfdgacfcoedg`blfcghfbgoeifacfchbegifnfdgacfcoedg`baflb`begnfcgifgfnfefdf`bcfib
kgSbgefdgegbgnf`baf`bncnc`bcfkcSmgSifnfdgccbcoedg`blfcghfbgoeifccbchbegifnfdgccbcoedg`baflb`begnfcgifgfnfefdf`bcfibSkgSbgefdgegbgnf`baf`bncnc`bcfkcSmgSifnfdgfcdcoedg`blfcghfbgoeiffcdchbegifnfdgfcdcoedg`baflb`begnfcgifgfnfefdf`bcfib
-kgSbgefdgegbgnf`baf`bncnc`bcfkcSmgSifnfdg`bdgefcgdgoelfcghfbghbfgofifdfibSkgSifff`bhblfcghfbgoeifhchb`chgffeflb`bacib`babmc`b`chggcffibSbgefdgegbgnf`bffafiflfhb`cibkc
+kgSbgefdgegbgnf`baf`bncnc`bcfkcSmgSSifnfdg`bdgefcgdgoelfcghfbghbfgofifdfibSkgSifff`bhblfcghfbgoeifhchb`chgffeflb`bacib`babmc`b`chggcffibSbgefdgegbgnf`bffafiflfhb`cibkc
ifnfdghcoedg`baf`bmc`bbcecdckcSifnfdghcoedg`bbf`bmc`beckcSifnfdghcoedg`bcf`bmc`bafdfdfoeifhchbaflbbfibkcSifff`bhblfcghfbgoeifhchbcflb`bacib`babmc`bacibSbgefdgegbgnf`bffafiflfhb`cibkc
-bgefdgegbgnf`b`chgdc`c`c`ckcSmgSifnfdghcoedg`bafcghfbgoeifhchbifnfdghcoedg`baflb`bifnfdghcoedg`bcfibSkgSbgefdgegbgnf`baf`bncnc`bcfkcSmgSifnfdgacfcoedg`bafcghfbgoeifacfchbifnfdgacfcoedg`baflb`bifnfdgacfcoedg`bcfib
+bgefdgegbgnf`b`chgdc`c`c`ckcSmgSSifnfdghcoedg`bafcghfbgoeifhchbifnfdghcoedg`baflb`bifnfdghcoedg`bcfibSkgSbgefdgegbgnf`baf`bncnc`bcfkcSmgSifnfdgacfcoedg`bafcghfbgoeifacfchbifnfdgacfcoedg`baflb`bifnfdgacfcoedg`bcfib
kgSbgefdgegbgnf`baf`bncnc`bcfkcSmgSifnfdgccbcoedg`bafcghfbgoeifccbchbifnfdgccbcoedg`baflb`bifnfdgccbcoedg`bcfibSkgSbgefdgegbgnf`baf`bncnc`bcfkcSmgSifnfdgfcdcoedg`bafcghfbgoeiffcdchbifnfdgfcdcoedg`baflb`bifnfdgfcdcoedg`bcfib
-kgSbgefdgegbgnf`baf`bncnc`bcfkcSmgSifnfdg`bdgefcgdgoeafcghfbghbfgofifdfibSkgSifff`bhbafcghfbgoeifhchb`chgffeflb`bacib`babmc`bmbacibSbgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbafcghfbgoeifhchb`chggceflb`bacib`babmc`b`chgccffib
-bgefdgegbgnf`bffafiflfhb`cibkcSbgefdgegbgnf`b`chgac`c`c`c`ckcSmgSifnfdghcoedg`bafnfdfoeifhchbifnfdghcoedg`baflb`bifnfdghcoedg`bbfibSkgSbgefdgegbgnf`baf`bfb`bbfkcSmgSifnfdgacfcoedg`bafnfdfoeifacfchbifnfdgacfcoedg`baflb`bifnfdgacfcoedg`bbfib
+kgSbgefdgegbgnf`baf`bncnc`bcfkcSmgSSifnfdg`bdgefcgdgoeafcghfbghbfgofifdfibSkgSifff`bhbafcghfbgoeifhchb`chgffeflb`bacib`babmc`bmbacibSbgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbafcghfbgoeifhchb`chggceflb`bacib`babmc`b`chgccffib
+bgefdgegbgnf`bffafiflfhb`cibkcSbgefdgegbgnf`b`chgac`c`c`c`ckcSmgSSifnfdghcoedg`bafnfdfoeifhchbifnfdghcoedg`baflb`bifnfdghcoedg`bbfibSkgSbgefdgegbgnf`baf`bfb`bbfkcSmgSifnfdgacfcoedg`bafnfdfoeifacfchbifnfdgacfcoedg`baflb`bifnfdgacfcoedg`bbfib
kgSbgefdgegbgnf`baf`bfb`bbfkcSmgSifnfdgccbcoedg`bafnfdfoeifccbchbifnfdgccbcoedg`baflb`bifnfdgccbcoedg`bbfibSkgSbgefdgegbgnf`baf`bfb`bbfkcSmgSifnfdgfcdcoedg`bafnfdfoeiffcdchbifnfdgfcdcoedg`baflb`bifnfdgfcdcoedg`bbfib
-kgSbgefdgegbgnf`baf`bfb`bbfkcSmgSifnfdg`bdgefcgdgoeafnfdfhbfgofifdfibSkgSifff`bhbafnfdfoeifhchb`chgecaflb`b`chg`cffib`babmc`b`chgafibSbgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbafnfdfoeifacfchb`chgecafbfcflb`b`chgff`c`c`cib`babmc`b`chgec`c`c`cib
+kgSbgefdgegbgnf`baf`bfb`bbfkcSmgSSifnfdg`bdgefcgdgoeafnfdfhbfgofifdfibSkgSifff`bhbafnfdfoeifhchb`chgecaflb`b`chg`cffib`babmc`b`chgafibSbgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbafnfdfoeifacfchb`chgecafbfcflb`b`chgff`c`c`cib`babmc`b`chgec`c`c`cib
bgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbafnfdfoeifccbchb`chgecafbfcfacbcccdclb`b`chg`cff`c`c`c`c`c`cib`babmc`b`chg`caf`c`c`c`c`c`cibSbgefdgegbgnf`bffafiflfhb`cibkc
ifff`bhbafnfdfoeiffcdchb`chgecafbfcfacbcccdcecfcgchcacbcccdcldldlb`b`chg`cff`c`c`c`c`c`cib`babmc`b`chg`cfc`c`c`c`c`c`cibSbgefdgegbgnf`bffafiflfhb`cibkcSbgefdgegbgnf`b`chgdc`c`c`c`ckc
-mgSifnfdghcoedg`bofbgoeifhchbifnfdghcoedg`baflb`bifnfdghcoedg`bbfibSkgSbgefdgegbgnf`baf`blg`bbfkcSmgSifnfdgacfcoedg`bofbgoeifacfchbifnfdgacfcoedg`baflb`bifnfdgacfcoedg`bbfib
+mgSSifnfdghcoedg`bofbgoeifhchbifnfdghcoedg`baflb`bifnfdghcoedg`bbfibSkgSbgefdgegbgnf`baf`blg`bbfkcSmgSifnfdgacfcoedg`bofbgoeifacfchbifnfdgacfcoedg`baflb`bifnfdgacfcoedg`bbfib
kgSbgefdgegbgnf`baf`blg`bbfkcSmgSifnfdgccbcoedg`bofbgoeifccbchbifnfdgccbcoedg`baflb`bifnfdgccbcoedg`bbfibSkgSbgefdgegbgnf`baf`blg`bbfkcSmgSifnfdgfcdcoedg`bofbgoeiffcdchbifnfdgfcdcoedg`baflb`bifnfdgfcdcoedg`bbfib
-kgSbgefdgegbgnf`baf`blg`bbfkcSmgSifnfdg`bdgefcgdgoeofbghbfgofifdfibSkgSifff`bhbofbgoeifhchb`chgecaflb`b`chg`cffib`babmc`b`chgecffibSbgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbofbgoeifacfchb`chgecafbfcflb`b`chgff`c`c`cib`babmc`bhbifnfdgacfcoedgib`chgffafbfcfib
+kgSbgefdgegbgnf`baf`blg`bbfkcSmgSSifnfdg`bdgefcgdgoeofbghbfgofifdfibSkgSifff`bhbofbgoeifhchb`chgecaflb`b`chg`cffib`babmc`b`chgecffibSbgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbofbgoeifacfchb`chgecafbfcflb`b`chgff`c`c`cib`babmc`bhbifnfdgacfcoedgib`chgffafbfcfib
bgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbofbgoeifccbchb`chgecafbfcfacbcccdclb`b`chg`cff`c`c`c`c`c`cib`babmc`b`chgecffbfcfacbcccdcibSbgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbofbgoeiffcdchb`chgecafbfcfacbcccdcecfcgchcacbcccdcldldlb`b`chg`cff`c`c`c`c`c`cib`babmc`b`chgecafbfcfacbcccdcecffgchcacbcccdcldldib
-bgefdgegbgnf`bffafiflfhb`cibkcSbgefdgegbgnf`b`chgac`c`c`c`c`ckcSmgSifnfdghcoedg`bhgofbgoeifhchbifnfdghcoedg`baflb`bifnfdghcoedg`bbfibSkgSbgefdgegbgnf`baf`bne`bbfkcSmg
+bgefdgegbgnf`bffafiflfhb`cibkcSbgefdgegbgnf`b`chgac`c`c`c`c`ckcSmgSSifnfdghcoedg`bhgofbgoeifhchbifnfdghcoedg`baflb`bifnfdghcoedg`bbfibSkgSbgefdgegbgnf`baf`bne`bbfkcSmg
ifnfdgacfcoedg`bhgofbgoeifacfchbifnfdgacfcoedg`baflb`bifnfdgacfcoedg`bbfibSkgSbgefdgegbgnf`baf`bne`bbfkcSmgSifnfdgccbcoedg`bhgofbgoeifccbchbifnfdgccbcoedg`baflb`bifnfdgccbcoedg`bbfib
-kgSbgefdgegbgnf`baf`bne`bbfkcSmgSifnfdgfcdcoedg`bhgofbgoeiffcdchbifnfdgfcdcoedg`baflb`bifnfdgfcdcoedg`bbfibSkgSbgefdgegbgnf`baf`bne`bbfkcSmgSifnfdg`bdgefcgdgoehgofbghbfgofifdfib
+kgSbgefdgegbgnf`baf`bne`bbfkcSmgSifnfdgfcdcoedg`bhgofbgoeiffcdchbifnfdgfcdcoedg`baflb`bifnfdgfcdcoedg`bbfibSkgSbgefdgegbgnf`baf`bne`bbfkcSmgSSifnfdg`bdgefcgdgoehgofbghbfgofifdfib
kgSifff`bhbhgofbgoeifhchb`chgecaflb`b`chgff`cib`babmc`bhbifnfdghcoedgib`chgafafibSbgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbhgofbgoeifacfchb`chgecafecaflb`b`chgffff`c`cib`babmc`bhbifnfdgacfcoedgib`chgafececafib
bgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbhgofbgoeifccbchb`chgecafecafecafecaflb`b`chgffffffffffff`c`cib`babmc`b`chgafecafecafececafibSbgefdgegbgnf`bffafiflfhb`cibkc
ifff`bhbhgofbgoeiffcdchb`chgecafecafecafecafecafecafecafecaflflflb`b`chgffffffffffffffffffffffffffff`c`clflfib`babmc`b`chgafecafecafecafecafecafecafececafibSbgefdgegbgnf`bffafiflfhb`cibkc
-bgefdgegbgnf`b`chgdc`c`c`c`c`ckcSmgSifnfdgacfcoedg`bcgefhgdgoeifhcdgofacfchbifnfdghcoedg`bafibSkgSbgefdgegbgnf`bafkcSmgSifnfdgccbcoedg`bcgefhgdgoeifacfcdgofccbchbifnfdgacfcoedg`bafib
-kgSbgefdgegbgnf`bafkcSmgSifnfdgfcdcoedg`bcgefhgdgoeifccbcdgoffcdchbifnfdgccbcoedg`bafibSkgSbgefdgegbgnf`bafkcSmgSifnfdg`bdgefcgdgoecgefhgdghbfgofifdfibSkgSifff`bhbcgefhgdgoeifhcdgofacfchbmbdcib`babmc`bmbdcib
+bgefdgegbgnf`b`chgdc`c`c`c`c`ckcSmgSSifnfdgacfcoedg`bcgefhgdgoeifhcdgofacfchbifnfdghcoedg`bafibSkgSbgefdgegbgnf`bafkcSmgSifnfdgccbcoedg`bcgefhgdgoeifacfcdgofccbchbifnfdgacfcoedg`bafib
+kgSbgefdgegbgnf`bafkcSmgSifnfdgfcdcoedg`bcgefhgdgoeifccbcdgoffcdchbifnfdgccbcoedg`bafibSkgSbgefdgegbgnf`bafkcSmgSSifnfdg`bdgefcgdgoecgefhgdghbfgofifdfibSkgSifff`bhbcgefhgdgoeifhcdgofacfchbmbdcib`babmc`bmbdcib
bgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbcgefhgdgoeifacfcdgofccbchbmbfcib`babmc`bmbfcibSbgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbcgefhgdgoeifccbcdgoffcdchbmbfcib`babmc`bmbfclflfib
-bgefdgegbgnf`bffafiflfhb`cibkcSbgefdgegbgnf`b`chgac`c`c`c`c`c`ckcSmgSegifnfdgacfcoedg`bjgefhgdgoeifhcdgofacfchbegifnfdghcoedg`bafibSkgSbgefdgegbgnf`bafkcSmgSegifnfdgccbcoedg`bjgefhgdgoeifacfcdgofccbchbegifnfdgacfcoedg`bafib
-kgSbgefdgegbgnf`bafkcSmgSegifnfdgfcdcoedg`bjgefhgdgoeifccbcdgoffcdchbegifnfdgccbcoedg`bafibSkgSbgefdgegbgnf`bafkcSmgSifnfdg`bdgefcgdgoejgefhgdghbfgofifdfibSkgSifff`bhbjgefhgdgoeifhcdgofacfchbmbdcib`babmc`b`chgffcfib
+bgefdgegbgnf`bffafiflfhb`cibkcSbgefdgegbgnf`b`chgac`c`c`c`c`c`ckcSmgSSegifnfdgacfcoedg`bjgefhgdgoeifhcdgofacfchbegifnfdghcoedg`bafibSkgSbgefdgegbgnf`bafkcSmgSegifnfdgccbcoedg`bjgefhgdgoeifacfcdgofccbchbegifnfdgacfcoedg`bafib
+kgSbgefdgegbgnf`bafkcSmgSegifnfdgfcdcoedg`bjgefhgdgoeifccbcdgoffcdchbegifnfdgccbcoedg`bafibSkgSbgefdgegbgnf`bafkcSmgSSifnfdg`bdgefcgdgoejgefhgdghbfgofifdfibSkgSifff`bhbjgefhgdgoeifhcdgofacfchbmbdcib`babmc`b`chgffcfib
bgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbjgefhgdgoeifacfcdgofccbchbmbdcib`babmc`b`chgffffffcfibSbgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbjgefhgdgoeifccbcdgoffcdchbmbdcib`babmc`b`chgffffffffffffffcflflfib
-bgefdgegbgnf`bffafiflfhb`cibkcSbgefdgegbgnf`b`chgdc`c`c`c`c`c`ckcSmgSifnfdghcoedg`bdgbgegnfcfoeifacfcdgofhchbifnfdgacfcoedg`bafibSkgSbgefdgegbgnf`bafkcSmgSifnfdgacfcoedg`bdgbgegnfcfoeifccbcdgofacfchbifnfdgccbcoedg`bafib
-kgSbgefdgegbgnf`bafkcSmgSifnfdgccbcoedg`bdgbgegnfcfoeiffcdcdgofccbchbifnfdgfcdcoedg`bafibSkgSbgefdgegbgnf`bafkcSmgSifnfdg`bdgefcgdgoedgbgegnfcfhbfgofifdfibSkgSifff`bhbdgbgegnfcfoeifacfcdgofhchb`chgffefefdfib`babmc`bhbifnfdghcoedgib`chgefdfib
+bgefdgegbgnf`bffafiflfhb`cibkcSbgefdgegbgnf`b`chgdc`c`c`c`c`c`ckcSmgSSifnfdghcoedg`bdgbgegnfcfoeifacfcdgofhchbifnfdgacfcoedg`bafibSkgSbgefdgegbgnf`bafkcSmgSifnfdgacfcoedg`bdgbgegnfcfoeifccbcdgofacfchbifnfdgccbcoedg`bafib
+kgSbgefdgegbgnf`bafkcSmgSifnfdgccbcoedg`bdgbgegnfcfoeiffcdcdgofccbchbifnfdgfcdcoedg`bafibSkgSbgefdgegbgnf`bafkcSmgSSifnfdg`bdgefcgdgoedgbgegnfcfhbfgofifdfibSkgSifff`bhbdgbgegnfcfoeifacfcdgofhchb`chgffefefdfib`babmc`bhbifnfdghcoedgib`chgefdfib
bgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbdgbgegnfcfoeifccbcdgofacfchb`chgdfefafdfffefefdfib`babmc`bhbifnfdgacfcoedgib`chgffefefdfibSbgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbdgbgegnfcfoeiffcdcdgofccbchb`chgbfefefffdfefafdfffefefdfbfefeffflflfib`babmc`b`chgffefefdfbfefefffib
-bgefdgegbgnf`bffafiflfhb`cibkcSbgefdgegbgnf`b`chgac`c`c`c`c`c`c`ckcSmgSifnfdg`bdgefcgdgoeifcfmf`goehbifnfdg`baflb`bifnfdg`bbflb`bifnfdg`bcflb`begnfcgifgfnfefdf`bdfib
+bgefdgegbgnf`bffafiflfhb`cibkcSbgefdgegbgnf`b`chgac`c`c`c`c`c`c`ckcSmgSSifnfdg`bdgefcgdgoeifcfmf`goehbifnfdg`baflb`bifnfdg`bbflb`bifnfdg`bcflb`begnfcgifgfnfefdf`bdfib
kgSifnfdg`bbgefcgeglfdg`bmc`b`ckcSifff`bhbaf`blc`bbfibSbgefcgeglfdg`blgmc`backcSifff`bhbbf`blcmc`bcfibSbgefcgeglfdg`blgmc`bbckcSifff`bhbaf`bnc`bbfibSbgefcgeglfdg`blgmc`bdckc
ifff`bhbbf`bncmc`bcfibSbgefcgeglfdg`blgmc`bhckcSifff`bhbaf`blc`bdfibSbgefcgeglfdg`blgmc`bacfckcSifff`bhbbf`blcmc`bdfibSbgefcgeglfdg`blgmc`bccbckcSifff`bhbcf`bncmc`bdfib
bgefcgeglfdg`blgmc`bfcdckcSifff`bhbaf`bnc`bdfibSbgefcgeglfdg`blgmc`bacbchckcSifff`bhbaf`bmcmc`bbfibSbgefcgeglfdg`blgmc`bbcecfckcSifff`bhbbf`babmc`bcfibSbgefcgeglfdg`blgmc`becacbckc
-bgefdgegbgnf`bbgefcgeglfdgkcSmgSifnfdg`bdgefcgdgoeifcfmf`ghbfgofifdfibSkgSifff`bhbdgefcgdgoeifcfmf`goehbmbaclbbclb`clbdcib`babmc`b`chgbcaficibSbgefdgegbgnf`bffafiflfhb`cibkc
+bgefdgegbgnf`bbgefcgeglfdgkcSmgSSifnfdg`bdgefcgdgoeifcfmf`ghbfgofifdfibSkgSifff`bhbdgefcgdgoeifcfmf`goehbmbaclbbclb`clbdcib`babmc`b`chgbcaficibSbgefdgegbgnf`bffafiflfhb`cibkc
ifff`bhbdgefcgdgoeifcfmf`goehbmbaclbmbaclbaclbmbacib`babmc`b`chgccbcbcibSbgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbdgefcgdgoeifcfmf`goehbmbaclb`clbcclbmbbcib`babmc`b`chgbcafccib
bgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbdgefcgdgoeifcfmf`goehbmbaclb`clbcclb`cib`babmc`b`chgbcefccibSbgefdgegbgnf`bffafiflfhb`cibkcSifff`bhbdgefcgdgoeifcfmf`goehbmbaclb`clb`clbmbacib`babmc`b`chgbcbfib
-bgefdgegbgnf`bffafiflfhb`cibkcSbgefdgegbgnf`b`chgdc`c`c`c`c`c`c`ckcSmgSifnfdg`bdgefcgdgoecgeflfefcfdgoehbifnfdg`baflb`bifnfdg`bbflb`bifnfdg`bcfibSkgSbgefdgegbgnf`baf`boc`bbf`bjc`bcfkc
-mgSifnfdg`bdgefcgdgoecgeflfefcfdghbfgofifdfibSkgSifffhbdgefcgdgoecgeflfefcfdgoehbdclb`beclb`bfcib`babmc`becibSbgefdgegbgnf`bffafiflfhb`cibkcSifffhbdgefcgdgoecgeflfefcfdgoehb`clb`beclb`bfcib`babmc`bfcib
-bgefdgegbgnf`bffafiflfhb`cibkcSbgefdgegbgnf`b`chghc`c`c`c`c`c`c`ckcSmgSS
\ No newline at end of file
+bgefdgegbgnf`bffafiflfhb`cibkcSbgefdgegbgnf`b`chgdc`c`c`c`c`c`c`ckcSmgSSifnfdg`bdgefcgdgoecgeflfefcfdgoehbifnfdg`baflb`bifnfdg`bbflb`bifnfdg`bcfibSkgSbgefdgegbgnf`baf`boc`bbf`bjc`bcfkc
+mgSSifnfdg`bdgefcgdgoecgeflfefcfdghbfgofifdfibSkgSifffhbdgefcgdgoecgeflfefcfdgoehbdclb`beclb`bfcib`babmc`becibSbgefdgegbgnf`bffafiflfhb`cibkcSifffhbdgefcgdgoecgeflfefcfdgoehb`clb`beclb`bfcib`babmc`bfcib
+bgefdgegbgnf`bffafiflfhb`cibkcSbgefdgegbgnf`b`chghc`c`c`c`c`c`c`ckcSmgSSS
\ No newline at end of file
diff --git a/unit_tests/input/div0.cbc b/unit_tests/input/div0.cbc
index de5b67e..3af302a 100644
--- a/unit_tests/input/div0.cbc
+++ b/unit_tests/input/div0.cbc
@@ -1,4 +1,4 @@
-ClamBCafh`ibbfjkd|afefdfggifnf```````|bhacflfafmfbfcfmb`cnbac`cmbac`cmbgfacdfdcccffecgc``afabp`clamcoincidencejb:23
+ClamBCafhflhhgjkd|afefdfggifnf```````|bhacflfafmfbfcfmb`cnbac`cmbacbcmbgfdcfcacefafefic``afabp`clamcoincidencejb:23
Tedaaa`
E``
@@ -7,4 +7,4 @@ A`b`bLaab`b`Fabaa
Bb`b``baab at dTcab`b`E
Aab`bLaab`b`b`b`Fabaa
Bb`baae`Aad`Tcab`baaE
-Sifnfdg`bdfiffg`chbifnfdg`bhgibSkgSbgefdgegbgnf`bacobhgkcSmgSifnfdg`befnfdgbgig`gofifnfdghbfgofifdfibSkgSbgefdgegbgnf`bdfiffg`chb`cibkcSmgSS
\ No newline at end of file
+Sifnfdg`bdfiffg`chbifnfdg`bhgibSkgSbgefdgegbgnf`bacobhgkcSmgSSifnfdg`befnfdgbgig`gofifnfdghbfgofifdfibSkgSbgefdgegbgnf`bdfiffg`chb`cibkcSmgSSS
\ No newline at end of file
diff --git a/unit_tests/input/inf.cbc b/unit_tests/input/inf.cbc
new file mode 100644
index 0000000..28c8c10
--- /dev/null
+++ b/unit_tests/input/inf.cbc
@@ -0,0 +1,9 @@
+ClamBCafhflhhgjkd|afefdfggifnf```````|bhacflfafmfbfcfmb`cnbac`cmbacbcmbgfdcfcacefafefic``afaap`clamcoincidencejb:14
+
+Tedaaa`
+E``
+G`aa`@`
+A`b`bL`Fabab
+BTbaaa
+BTbaaaE
+Sifnfdg`befnfdgbgig`gofifnfdghbibSkgSgghfiflfefhbacibkgmgSbgefdgegbgnf`b`ckcSmgSS
\ No newline at end of file
diff --git a/unit_tests/input/lsig.cbc b/unit_tests/input/lsig.cbc
index 026dd7e..aad5f02 100644
--- a/unit_tests/input/lsig.cbc
+++ b/unit_tests/input/lsig.cbc
@@ -1,21 +1,21 @@
-ClamBCafh`ibbfjkd|afefdfggifnf```c``a```|bhacflfafmfbfcfmb`cnbac`cmbac`cmbgfacdfdcccffecgc``bhaaap`clamcoincidencejb:299
+ClamBCafhflhhgjkd|afefdfggifnf```c``a```|bhacflfafmfbfcfmb`cnbac`cmbacbcmbgfdcfcacefafefic``bhaaap`clamcoincidencejb:309
Test.{A,B};Target:1;(((0|1|2)=42,2)|(3=10));EP+0:aabb;ffff;aaccee;f00d;dead
Tedebgeebfeebeeebdeebceebbeeb`eebadebcdaaa`aacb`bbadb`bcajahbaeahbaeahbaeahbaeahbaecaab`bdb`db`bdagahdajahdabbaddabahdaeah
Eaeaaaebod|amcgefdgfgifbgegcgnfafmfef``
-Gd```hbia`@`bgeBdeBefBcgBdg@`bfeBad@`bfeBbd@`bee at Ab@Ac`b`aAa`bdeBedB`eBkbB`cBjcBafBafBbfBbf@`bgeBffBffBffBff@`bgeBffB`cB`cBdf@`bceBafBafBcfBcfBefBef@`bgeBdfBefBafBdf@`b`aC``a`b`e@@@Aa at Ac@Ab at Ad`bad at Ab`bad at Ac`bad at Af`bad at Ag`bad at Ah`bad at Ai`bad at Aj`bcdB`aD```h`bcdAlD```h`bcdAhD```h`bcdAdD```h`bcd at D```h`
+Gd```hbja`@`bgeBdeBefBcgBdg@`bfeBad@`bfeBbd@`bee at Ab@Ac`b`aAa`bdeBedB`eBkbB`cBjcBafBafBbfBbf@`bgeBffBffBffBff@`bgeBffB`cB`cBdf@`bceBafBafBcfBcfBefBef@`bgeBdfBefBafBdf@`b`aC``a`b`e@@@Aa at Ac@Ab at Ad`bad at Ab`bad at Ac`bad at Af`bad at Ag`bad at Ah`bad at Ai`bad at Aj`bad at D```h`bcdB`aD```h`bcdAlD```h`bcdAhD```h`bcdAdD```h`bcd at D```h`
A`b`bLaeb`b`aa`aa`bad`b`b`Fahac
-Bb`b`gbBda`aaaagab`b`AadTaaaaaaab
+Bb`b`gbBea`aaaagab`b`AadTaaaaaaab
Baaabeab`b`AbdbadacoaabAm`An`b`badabbaeac at dTcab`b at d
BTcab`b at dE
Sobjb`bieofeg`bafbgef`bofnflfig`baflflfofggefdf`bdgof`bcgefdg`bdghfefcgef`bfgifbgegcgnfafmfefcg`bafcg`bffofegnfdf`bjbobSfeidbeeecendadmdedoe`ebeedfdidhehbbbdeefcgdgbbib
-feidbeeecendadmdedcehbbbadbblb`bbbbdbbibSdeadbegdeddehbacibSceidgdndaddeeebeedceoeddedcdldoebdedgdidndSddedcdldadbeedoeceidgdndaddeeebeedhbmfafgfifcfibSddedcdldadbeedoeceidgdndaddeeebeedhbjgefbgofib
+feidbeeecendadmdedcehbbbadbblb`bbbbdbbibSdeadbegdeddehbacibSSceidgdndaddeeebeedceoeddedcdldoebdedgdidndSddedcdldadbeedoeceidgdndaddeeebeedhbmfafgfifcfibSddedcdldadbeedoeceidgdndaddeeebeedhbjgefbgofib
ddedcdldadbeedoeceidgdndaddeeebeedhbcfhfefcfkfibSddedcdldadbeedoeceidgdndaddeeebeedhbffiffgefdgofdgefnfibSddedcdldadbeedoeceidgdndaddeeebeedhbcfhfefcfkfbcibSceidgdndaddeeebeedceoeddedcdldoeednddd
-ceidgdndaddeeebeedceoeddedfdoebdedgdidndSddedfdidndedoeceidgdndaddeeebeedhbmfafgfifcflb`bbbed`ekb`cjcafafbfbfbbibSddedfdidndedoeceidgdndaddeeebeedhbjgefbgoflb`bbbffffffffbbib
+SceidgdndaddeeebeedceoeddedfdoebdedgdidndSddedfdidndedoeceidgdndaddeeebeedhbmfafgfifcflb`bbbed`ekb`cjcafafbfbfbbibSddedfdidndedoeceidgdndaddeeebeedhbjgefbgoflb`bbbffffffffbbib
ddedfdidndedoeceidgdndaddeeebeedhbffiffgefdgofdgefnflb`bbbafafcfcfefefbbibSddedfdidndedoeceidgdndaddeeebeedhbcfhfefcfkflb`bbbff`c`cdfbbibSddedfdidndedoeceidgdndaddeeebeedhbcfhfefcfkfbclb`bbbdfefafdfbbib
-ceidgdndaddeeebeedceoeedndddSbfofoflf`blfofgfifcfaflfoedgbgifgfgfefbghbfgofifdfibSkgSegnfcgifgfnfefdf`bcgegmfoemfafdgcfhfefcg`bmc`bcfofegnfdgoemfafdgcfhfhbceifgfnfafdgegbgefcgnbmfafgfifcfibkb
+ceidgdndaddeeebeedceoeedndddSSbfofoflf`blfofgfifcfaflfoedgbgifgfgfefbghbfgofifdfibSkgSegnfcgifgfnfefdf`bcgegmfoemfafdgcfhfefcg`bmc`bcfofegnfdgoemfafdgcfhfhbceifgfnfafdgegbgefcgnbmfafgfifcfibkb
cfofegnfdgoemfafdgcfhfhbceifgfnfafdgegbgefcgnbjgefbgofib`bkb`bcfofegnfdgoemfafdgcfhfhbceifgfnfafdgegbgefcgnbffiffgefdgofdgefnfibkcSegnfcgifgfnfefdf`begnfifagegefoemfafdgcfhfefcg`bmc`bmfafdgcfhfefcghbceifgfnfafdgegbgefcgnbmfafgfifcfibkb
mfafdgcfhfefcghbceifgfnfafdgegbgefcgnbjgefbgofibkb`bmfafdgcfhfefcghbceifgfnfafdgegbgefcgnbffiffgefdgofdgefnfibkcSifff`bhbcgegmfoemfafdgcfhfefcg`bmcmc`bdcbc`bfbfb`begnfifagegefoemfafdgcfhfefcg`bmcmc`bbcib`bkg
obob`bdehfef`bafbfoffgef`bcc`bcgifgfnfafdgegbgefcg`bhfaffgef`bmfafdgcfhfefdf`baf`bdgofdgaflf`bofff`bdcbc`bdgifmfefcglb`bafnfdf`bafdg`blfefafcgdgSobob`bbc`bofff`bdghfefmf`bhfaffgef`bmfafdgcfhfefdf
bgefdgegbgnf`bdgbgegefkcSmgSobob`bidff`bdghfef`bcfhfefcfkf`bcgifgfnfafdgegbgef`bmfafdgcfhfefcg`bac`c`bdgifmfefcg`bggef`bcgdgiflflf`bhfaffgef`baf`bmfafdgcfhfSifff`bhbcfofegnfdgoemfafdgcfhfhbceifgfnfafdgegbgefcgnbcfhfefcfkfib`bmcmc`bac`cib
-bgefdgegbgnf`bdgbgegefkcSobob`bndof`bmfafdgcfhfSbgefdgegbgnf`bffaflfcgefkcSmgSifnfdg`befnfdgbgig`gofifnfdghbfgofifdfibSkgSegnfcgifgfnfefdf`bcfofegnfdg`bmc`bcfofegnfdgoemfafdgcfhfhbceifgfnfafdgegbgefcgnbcfhfefcfkfbcibkc
+bgefdgegbgnf`bdgbgegefkcSobob`bndof`bmfafdgcfhfSbgefdgegbgnf`bffaflfcgefkcSmgSSifnfdg`befnfdgbgig`gofifnfdghbfgofifdfibSkgSegnfcgifgfnfefdf`bcfofegnfdg`bmc`bcfofegnfdgoemfafdgcfhfhbceifgfnfafdgegbgefcgnbcfhfefcfkfbcibkc
ifff`bhbcfofegnfdg`bncmc`bbcibSffofegnfdffeifbgegcghbcfofegnfdg`bmcmc`bbc`boc`bbbadbb`bjc`bbbbdbbibkcSbgefdgegbgnf`b`ckcSmgSS
\ No newline at end of file
diff --git a/unit_tests/input/retmagic.cbc b/unit_tests/input/retmagic.cbc
index 6d4f92b..f4877f5 100644
--- a/unit_tests/input/retmagic.cbc
+++ b/unit_tests/input/retmagic.cbc
@@ -1,4 +1,4 @@
-ClamBCafh`ibbfjkd|afefdfggifnf```````|bhacflfafmfbfcfmb`cnbac`cmbac`cmbgfacdfdcccffecgc``afaap`clamcoincidencejb:20
+ClamBCafhflhhgjkd|afefdfggifnf```````|bhacflfafmfbfcfmb`cnbac`cmbacbcmbgfdcfcacefafefic``afaap`clamcoincidencejb:20
Tedaaa`
E``
--
Debian repository for ClamAV
More information about the Pkg-clamav-commits
mailing list