diff --git a/Makefile b/Makefile index 70ac0ce..9668d9d 100644 --- a/Makefile +++ b/Makefile @@ -29,7 +29,7 @@ VPATH := $(SRC_DIR) $(wildcard $(LIB_DIR)/*) all: $(BUILD_DIR)/server $(BUILD_DIR)/client - @echo "done!" + @echo "Compiled!" # -SERVER-RULES----------------------------------------------------------------- @@ -97,8 +97,14 @@ print-%: ; @echo $* = $($*) # -TESTS------------------------------------------------------------------------ -test1: - @echo "[threadpool]\n\nquantity = 10\npending = 20\n\n[files]\n\nMaxFiles = 20\n\nMaxSize = 10000000\n\n[log]\n\nlogFile = ./logs/l.log\n\n[socket]\n\nname = ./socket\nbacklog = 100\n" > build/confix.txt +test1: all + @echo "[threadpool]\n\nquantity = 1\npending = 10\n\n[files]\n\nMaxFiles = 10000\nMaxSize = 128000\n\n[log]\n\nlogFile = ./logs/l.log\n\n[socket]\n\nname = ./socket\nbacklog = 100\n" > build/confix.txt valgrind --leak-check=full ./server & - ./scripts/test1.sh + bash scripts/test1.sh pkill -1 memcheck-amd64 + +test2: all + @echo "[threadpool]\n\nquantity = 4\npending = 100\n\n[files]\n\nMaxFiles = 10\nMaxSize = 1000\n\n[log]\n\nlogFile = ./logs/l.log\n\n[socket]\n\nname = ./socket\nbacklog = 100\n" > build/confix.txt + $(BUILD_DIR)/server & + bash scripts/test2.sh + pkill -1 server diff --git a/lib/log/taglialegna.c b/lib/log/taglialegna.c index 906537b..fa7e831 100644 --- a/lib/log/taglialegna.c +++ b/lib/log/taglialegna.c @@ -1,4 +1,4 @@ -#define _POSIX_C_SOURCE 200112L +#define _POSIX_C_SOURCE 200809L #include #include #include @@ -106,12 +106,12 @@ size_t taglia_log(taglia_t *taglia, char *buf) { size_t n, m; pthread_mutex_lock(&taglia->m); - if((n = fwrite(buff, sizeof(char), sizeof(buff), taglia->file)) < 0){ + if((n = fwrite(buff, sizeof(char), strnlen(buff, sizeof(buff)), taglia->file)) < 0){ perror("ERROR: fwrite"); goto _error_taglia_log_mutex; } - if((m = fwrite(buf, sizeof(char), strlen(buff)+1, taglia->file)) < 0){ + if((m = fwrite(buf, sizeof(char), strlen(buf)+1, taglia->file)) < 0){ // strlen conta il numero di caratteri senza EOF quindi aggiungiamo 1 perror("ERROR: fwrite"); goto _error_taglia_log_mutex; diff --git a/lib/threadpool/apiFile.c b/lib/threadpool/apiFile.c index efdb61a..2ee0467 100644 --- a/lib/threadpool/apiFile.c +++ b/lib/threadpool/apiFile.c @@ -830,7 +830,8 @@ void clearWaiting(waiting_t **waiting) { while (curr) { next = curr->next; - free(curr->file); + if(curr->file) + free(curr->file); free(curr); curr = next; } diff --git a/lib/utils/serverUtil.h b/lib/utils/serverUtil.h index e8577e2..9f0afd4 100644 --- a/lib/utils/serverUtil.h +++ b/lib/utils/serverUtil.h @@ -22,7 +22,7 @@ ini_free(config); \ return 1; \ } \ - var = calloc(strlen(var)+1, sizeof(char)); \ + var = calloc(strlen(buff)+1, sizeof(char)); \ strncpy(var, buff, strlen(buff)+1); diff --git a/scripts/test1.sh b/scripts/test1.sh new file mode 100644 index 0000000..1c30757 --- /dev/null +++ b/scripts/test1.sh @@ -0,0 +1,8 @@ +#!/bin/sh +./client -t 200 -f mysock -w testFiles/1 -D Wdir -W testFiles/1/file1 -r testFiles/1/file1 -d Rdir -R n=3 -p + +exit 0 + +./client -t 200 -f mysock -w test -D Wdir -W test/filepesante -r test/filepesante -d Rdir -R n=3 -l test/filepesante -u test/filepesante -c test/filepesante -p + +exit 0 diff --git a/scripts/test2.sh b/scripts/test2.sh new file mode 100644 index 0000000..1346185 --- /dev/null +++ b/scripts/test2.sh @@ -0,0 +1,10 @@ +#!/bin/sh + +./client -t 200 -f mysock -w testFiles/1 -D Wdir -W testFiles/1/file1 -r testFiles/1/file1 -d Rdir -R n=3 -l testFiles/1/file1 -u testFiles/1/file1 -c testFiles/1/file1 -p & +./client -t 200 -f mysock -w testFiles/2 -D Wdir -W testFiles/2/file6 -r testFiles/2/file6 -d Rdir -R n=3 -l testFiles/2/file6 -u testFiles/2/file6 -c testFiles/2/file6 -p & +./client -t 200 -f mysock -w testFiles/3 -D Wdir -W testFiles/3/file11 -r testFiles/3/file11 -d Rdir -R n=3 -l testFiles/3/file11 -u testFiles/3/file11 -c testFiles/3/file11 -p & +./client -t 200 -f mysock -w testFiles/4 -D Wdir -W testFiles/3/file11 -r testFiles/3/file11 -d Rdir -R n=3 -l testFiles/3/file11 -u testFiles/3/file11 -c testFiles/3/file11 -p & +./client -t 200 -f mysock -w testFiles/5 -D Wdir -W testFiles/3/file11 -r testFiles/3/file11 -d Rdir -R n=3 -l testFiles/3/file11 -u testFiles/3/file11 -c testFiles/3/file11 -p & +wait + +exit 0 diff --git a/src/server.c b/src/server.c index bfe2c91..faefaeb 100644 --- a/src/server.c +++ b/src/server.c @@ -174,7 +174,7 @@ int main(int argc, char *argv[]) { queueT *queue = createQueue(maxFiles, maxSize); // creo la lista dei client in attesa a una lock - waiting_t *waiting; + waiting_t *waiting = NULL; // creo la threadpool threadpool_t *pool = NULL; @@ -186,7 +186,7 @@ int main(int argc, char *argv[]) { } // scrivo sul log - n = snprintf(buf, sizeof(buf), "Creato threadpool di dimensione %d e lending size %d\n", threadsInPool, pendingSize); + n = snprintf(buf, sizeof(buf), "Creato threadpool di dimensione %d e pending size %d\n", threadsInPool, pendingSize); if( n<0 ) { perror("snprintf"); goto _cleanup; diff --git a/testFiles/1/file1 b/testFiles/1/file1 new file mode 100644 index 0000000..2e65efe --- /dev/null +++ b/testFiles/1/file1 @@ -0,0 +1 @@ +a \ No newline at end of file diff --git a/testFiles/1/file2 b/testFiles/1/file2 new file mode 100644 index 0000000..63d8dbd --- /dev/null +++ b/testFiles/1/file2 @@ -0,0 +1 @@ +b \ No newline at end of file diff --git a/testFiles/1/file3 b/testFiles/1/file3 new file mode 100644 index 0000000..3410062 --- /dev/null +++ b/testFiles/1/file3 @@ -0,0 +1 @@ +c \ No newline at end of file diff --git a/testFiles/1/file4 b/testFiles/1/file4 new file mode 100644 index 0000000..c59d9b6 --- /dev/null +++ b/testFiles/1/file4 @@ -0,0 +1 @@ +d \ No newline at end of file diff --git a/testFiles/1/file5 b/testFiles/1/file5 new file mode 100644 index 0000000..9cbe6ea --- /dev/null +++ b/testFiles/1/file5 @@ -0,0 +1 @@ +e \ No newline at end of file diff --git a/testFiles/2/file10 b/testFiles/2/file10 new file mode 100644 index 0000000..7813681 --- /dev/null +++ b/testFiles/2/file10 @@ -0,0 +1 @@ +5 \ No newline at end of file diff --git a/testFiles/2/file6 b/testFiles/2/file6 new file mode 100644 index 0000000..56a6051 --- /dev/null +++ b/testFiles/2/file6 @@ -0,0 +1 @@ +1 \ No newline at end of file diff --git a/testFiles/2/file7 b/testFiles/2/file7 new file mode 100644 index 0000000..d8263ee --- /dev/null +++ b/testFiles/2/file7 @@ -0,0 +1 @@ +2 \ No newline at end of file diff --git a/testFiles/2/file8 b/testFiles/2/file8 new file mode 100644 index 0000000..e440e5c --- /dev/null +++ b/testFiles/2/file8 @@ -0,0 +1 @@ +3 \ No newline at end of file diff --git a/testFiles/2/file9 b/testFiles/2/file9 new file mode 100644 index 0000000..bf0d87a --- /dev/null +++ b/testFiles/2/file9 @@ -0,0 +1 @@ +4 \ No newline at end of file diff --git a/testFiles/3/file11 b/testFiles/3/file11 new file mode 100644 index 0000000..74e0f12 --- /dev/null +++ b/testFiles/3/file11 @@ -0,0 +1 @@ +! \ No newline at end of file diff --git a/testFiles/3/file12 b/testFiles/3/file12 new file mode 100644 index 0000000..9d68933 --- /dev/null +++ b/testFiles/3/file12 @@ -0,0 +1 @@ +" \ No newline at end of file diff --git a/testFiles/3/file13 b/testFiles/3/file13 new file mode 100644 index 0000000..6f4f765 --- /dev/null +++ b/testFiles/3/file13 @@ -0,0 +1 @@ +$ \ No newline at end of file diff --git a/testFiles/3/file14 b/testFiles/3/file14 new file mode 100644 index 0000000..02691e3 --- /dev/null +++ b/testFiles/3/file14 @@ -0,0 +1 @@ +% \ No newline at end of file diff --git a/testFiles/3/file15 b/testFiles/3/file15 new file mode 100644 index 0000000..00b15c0 --- /dev/null +++ b/testFiles/3/file15 @@ -0,0 +1 @@ +& \ No newline at end of file diff --git a/testFiles/4/file16 b/testFiles/4/file16 new file mode 100644 index 0000000..f217013 --- /dev/null +++ b/testFiles/4/file16 @@ -0,0 +1 @@ +Progetto \ No newline at end of file diff --git a/testFiles/4/file17 b/testFiles/4/file17 new file mode 100644 index 0000000..595b63a --- /dev/null +++ b/testFiles/4/file17 @@ -0,0 +1 @@ +di \ No newline at end of file diff --git a/testFiles/4/file18 b/testFiles/4/file18 new file mode 100644 index 0000000..9c3a002 --- /dev/null +++ b/testFiles/4/file18 @@ -0,0 +1 @@ +Laboratorio \ No newline at end of file diff --git a/testFiles/4/file19 b/testFiles/4/file19 new file mode 100644 index 0000000..595b63a --- /dev/null +++ b/testFiles/4/file19 @@ -0,0 +1 @@ +di \ No newline at end of file diff --git a/testFiles/4/file20 b/testFiles/4/file20 new file mode 100644 index 0000000..6c2fa47 --- /dev/null +++ b/testFiles/4/file20 @@ -0,0 +1 @@ +Sistemi \ No newline at end of file diff --git a/testFiles/5/file21 b/testFiles/5/file21 new file mode 100644 index 0000000..2f28578 --- /dev/null +++ b/testFiles/5/file21 @@ -0,0 +1 @@ +Operativi \ No newline at end of file diff --git a/testFiles/5/file22 b/testFiles/5/file22 new file mode 100644 index 0000000..00470c9 --- /dev/null +++ b/testFiles/5/file22 @@ -0,0 +1 @@ +Introduzione \ No newline at end of file diff --git a/testFiles/5/file23 b/testFiles/5/file23 new file mode 100644 index 0000000..f4e2ca3 --- /dev/null +++ b/testFiles/5/file23 @@ -0,0 +1 @@ +Lo \ No newline at end of file diff --git a/testFiles/5/file24 b/testFiles/5/file24 new file mode 100644 index 0000000..7248c18 --- /dev/null +++ b/testFiles/5/file24 @@ -0,0 +1 @@ +studente \ No newline at end of file diff --git a/testFiles/5/file25 b/testFiles/5/file25 new file mode 100644 index 0000000..f2fe840 --- /dev/null +++ b/testFiles/5/file25 @@ -0,0 +1 @@ +deve \ No newline at end of file diff --git a/testFiles/6/f1 b/testFiles/6/f1 new file mode 100644 index 0000000..784bc7c --- /dev/null +++ b/testFiles/6/f1 @@ -0,0 +1 @@ +KhZe5NOpLNOC&QLZnSv*15ANsB%cLmavPTD^kPHC2LVH1ijaYgmx&Vd^h1m(2#a3LVDBQQ7QK7iOnaYcSD2erG4zzpV6=0jKr0a8H@du&=URDB4DFUARl)mP=J%HINeX$5cI$tZNF(k2(PUmrp0AWCIRY!A=MriN2Fdvq=TU&u+NZXibmp=EQ&aDGue)ADKqTKbEoGQ&)(Zr#@8x#xf+@IqWuY&GEIDQxv)dLLzG0l5RIa4hNm)1K0hm^T*M^uGTW7o6rok!+)OV=(o3N*9Iawh$D3%$c&07RP(bT_8ZRawrs_#wp^&4D7rHBPQ1ucaG(TnurIu)3lT#X4IOw*$qXOlZ#RmyR#osY8!7Vz4w$0+S#Wx0kNei)A%mTAGGg*M%GvEdUenONXrGxYjqcdD*Kcd#FP(^ZGQYgs1&CiFh5tX8A%A$QH0hgH=CkB3R)w5kC=NMoufngilaOX5(h@kIXbPG9U@naz#)PJJm1z=RiCf5fal1^eb+%+mCZw=_lQ0My%cT44E2J9#$^$!djuqSo5SXVPjMq@NLSv(n7QV5laUbf0K3I^)TB$mh%cnVfmS+o*JMV2XUKNTy1nk*tNXNS86#qZEXd^epXKUj_PSgv_y0(Ab28Z%I_V_flE@WWgyb@@kjeB2eMB@qG9eN$UP^%$6yy37uWXI=TP%f_^S%_S8jpxGFngQQaVj_dsPYWnYt6Tt2)Oz*dxHyhm1V2IMsjD@OL+e0esuB!U+kWdUBdn&s71O1vboN6d7QtSM4ioLzZ2*f6Y4I5^Srnc#44FsAP1qw71kf^q)wJGuL_szr861U9j^(_d1jyWIi%s_Rwl@Ls8@oOShRGKVt=GkvdQd@!&D_vVSlxDOBKASq+m1MJp*ir8ZYx_7=M24ti%Wb!VEcF_4N_jNCEEkmUNj7IxQ5l%C5q=KxrP+dnCmj6!Q$4pld)k#eBO#eJRJTlOsrNJ4rx)$L*1Xvh2$6z_@TP^^hks5jugpO$#ejr*aIm@ZpJFwvlT2zL@1BBE*mm)oM6!#_5W+gGtWkUX7)xk@h&DkoUT2_Mpt&p4w2wjr$0sazVV+YpS^m=e2fvTosYb*HK%bv^zgdlOs1&+AoiUbtnA*zChu6s6Mu5L%QyjOY@arb__j%YHnjE)J@hCVzuy%saeOuN%#uXt+iu6Wh1a4F5C)OubHz+eicJ@HM$B6+kkK7uO2TzM(NaZRLMPi@=vD#e@PTI$xVlSU!n26M8XsWk&I@!dvPlv0$r=yIO1d2vXYkRBzey$cfWNDMQ!Zbv=@GL4AwQBr41nL#4L3VzrRkATacAIKrtBU=YEW6i+xe+dSUxK_RmaqVWtORXyQ(26dVxAzGF^fAWgsdq(*#^FjB@@CTrFUExqyv%cG&lix6EVs&iny8Ihy9sswJ0%8Sr9ulQqKN67y=y5FwYX!!a1SDGtZIhU=B)z7ol4aXdqDmWP^^CfQ_)RS6@PKgEF_Xuvg3HbPCXOm0zgsHY=YECZXzVGIgyijKS62KDl!^A6Z619ZA4_fnlbrj6S0YX(&6pJeWV7ebTGdUucLQwtUJRDN2y4ZnZK&=_kn#^Z5VSSip!VeR+@xJek80sMJA1E_K_Zt8PIQjaZ&SEIO5T^OSL%XGN9XHb&kp8B5=_AbV%kDkzJiQ%VnTIC)Dm0Psv8Kq$VwfuZd(JfO*8X3MNIpOw7ck(OPxlNVj8upyBph0&Pi(6%Jh=umPS0dMA5UhosdokgV#tG+vxNx=5i_L^TNwOUpEn@x59oY*cv5EelAiIk^w%J&Ch@j)xGpaZ#aVPXp7*Usjmybz3)=4jaULjfhU2Vj#hW8+#vxzpbnFrA$vit(1=nh+P4JWlUduJzh=EzqkI)Qn9w8Uc36QLgS5OltQC@soHritwN4%T@W&tyoqb5&^JWea!0a8k7SrOz)dTrj3z=zE+e1)M@xMU1s3s7nT=!a+rkktR*_d@l2#47VRLJOda$x6GySbrhOabg25^3aSdZ9_5FDT)zBi@YhwBDVK*mMlXVM&Y9h5&F&0fiUcs$bZVyWy*NmdfODmROlFx5%QObCnb97XGPwg)qYBJ5KL4PLPIc35I%$Bs8Q&o&vWG9E9%lN9pQiPSj^%v#SXuhnomJAGTlkGG!XW#H4btv6i+@0$3f4Pg_%H6JY^@9%GnbN=1rKsMK4aRyTIAADUvC3As(VIYh@XbkS^wCQ*GZPyEPd491qmQVW^9Nz*nuWZYb$mDk!_mqRDqi@+PScF&n8(8uARTJaY%KslhSP^PHr1z8RNrkg@DYQh$+_+q=Nk#adZYO(Nr_ScYw_zwiyzLHg_l$vPsMsoMkmfXb^4AwYGGVxS5ZI(tap^LKVFts99vcGaO(XDK&PJ2C^Edz3L0Ci^0z6)ZJcwz1HF7ez7bL=g+BHN&!BxVc*^PDrZATDR4xQGfo9y$mbdW$7TRpYQQxwyKn=1NaYaHJxZSF41m!C3e&78JjM*)k52q2su_z$X+Yrfp_(O8n_hX_a06xXSdlrwkTMhmNoRh!JEZ9Z)@=DWVTii(Uz2ywsStL16kl+gF(PHnEqD5mFhgZ$#*Y+RB=Omg&A8T#8PQ$)v%#s2%7JFZPxN8$2CzDNG3B0sHTw$v5&wX(ikkHmQV7iseE!!Ml@x_pG$xuHFoI+3iVvrcx8Tx93=y+(SI!=olK+M6IsYx#L)ASsKxU2g=EQbM8zZs%x6^qQ%U0$i*O$9*sPRQnh1Mo^BUH$L=urgKpGx8$=8C=*3INu$yeXJ(li(hkdmTAkFC350Q$KgxWy96mjtPISS0S)OkR%mLw0b)Qh^Gng3alLN8SMrBwKlG416KAOksM(_6YjVSTmIBCRK)#6R*qvNSOwvj7F1_9L!6$U1ryiaP7O744T5k%A9qVRbQvFPByBoraXAG0xmSD@4OpWAv7oY_cnK&N4!$Rlkp5cSis8HWQ9cQ%xTWfF@dzSy!%u5kCU&41OZWI^oyvloIf1D7uxWvKf=cx4vD0OW$XAeE^*@p$K!4thEc)&PCX6GoU00y2v)uUB^70exJ=DSJX^^t0n&v=XH9=z4qgxb_CAty#jGDu(pmzXPH#soB&EHb#a6aFhuI)%zwz3x%jxw9CvtWi%_d9cP7SI8uB#+2c8rwQk@xe9&wy4t=GkPCHy88aNuvP@ZQ0Ke5p7i)7Fg_eMzv9PTIeP1WcmIiKbdCoNz+SbqA@)eJRs8ac+guDbj=^bhM0XAhd3QnyJWo(DtRk5b3Hc@CwcTRvEu9id4SXb9AIcnwZjwlK(l&faR98mRg8Zqw^OueEMu2ZsyjZt+sITlw5i01xgzbajglYS7bWaNu9D$XoAA2o&)q4pw8)cfB_aj#w9)15U1j(2vN186kQF3OmfLiUBOvPLXwwdq7R9Dc(Kxucu+zEGvP7TgxPuuN9$xAn$w9BLxSA2d$b8$ElsiDq)vmgS9LPU@L3Zv9t*z@hB+zu$hnCJzIKtekA)P&5)N9UqZXLLu8!AdqLCls8X4iP)436SwQ^WKF=#9#dcKfz3YDZFku^O4+cDO%zx@i%)S@*^OPMXTB*2_FIfe(hlSjab+rje(l_4r4hh5WdJcBr9XY=r42aEum70x&l3%7v0b48YMJ@rBikiN8U*8Gs8i)N&I2(!v7Wg@Evck!71vR7vawt+b6F$h0H$@N%AKVt0W(IS$Nwu=8g(dejoGIhMs3v832MG#y_cCL1$RJ!1Ep*3JvQwAF1pkMWeeid6so$@v!o^@+G&R4G4+*#XS&%v8+tLN#Vh)E(Vh7K9e84_Wn8kTd(iivzf3k3HLG8hd#b0Zy=^TtfEYb!^yW7wo#&Q7oQd!&iR!mo)#&nWhqo=M^Ezg7dge(GL9cw0_PHxGJCndC+v*I)*)R4yoi1nSp6l_XqBDmRPTYnXr$NArM0a@CVRXUoqxG)V@tfZBWyYA3%l%G9CS7&$ToSl)PxIaCYSXgirCc!wSUfZlA)Bbfpr2zx+dUFJSTw#RaoX=Bp8fdi+Co8F4xnwr&4bU&m=pVpvGTRbi%bMF3Jmiz4W=k!Xi!Vd*(B54_n=)sA92nq%L#9!LmieyAwMupfbga_orOS3LwYd8f3Tv(CAzxDJuavzXg4N5(Sm=^Eu$Q3%xE4=OtIHe1q(eguJvgd4UD%I8#!iQU6n(x*=ADtqMfrLpLqhRCitDsuX%2$IN1(^ssKd$%=mFI=a$pBQa)d^Rv@d_E&RBsV)B%EOszsXyy+K$Th=T7AzKOpWwZXegBSb+dcfbZ@P)NicH&1ZfvYTl%QXgR01YE0fKyCy3r!ukMB(xSu62uB7G&evSNEnW6z&IHK(aWaIfDeKe8fvdAr8*sF8gECt5gd!+_+=@e(PO^i8nQtg^%hqhMfb%KLhZmL^o2Q!K&%W3ukpOXuVH*_aeKZ&qzhFHvYZQC)4n3agS7kOmKjiuPhgWd1gUkfe08(_ke+So9lG%qyv==U9B&o=(nDJgPXWrSf6*0BxF4Eml7M1%cZ$u81dayCI2rEAMCjbeN9IXEqi4+itFDLy7XtLfA^yHdAX)w8&V2+c(wd45!=m3qT!06WYvjy4plJv%#f(5GR3y9od&Ra&RhWAORAIT0z*oZ4ve=m(Wuhne*)IZ%7@R65GZInkFi7D&)eUGPzQ#8_JxY@@oGMmYs7MpqUt$kMX35#%gl@iKYc(WUYQ+8PpbuWwE_We81G0IJoXKBm(9ABtL9CwPZP2c))z3ueH)aR*G#ciDia@04+X13Uyru^nFpTQ7zGA(#xaJ1l(#ns(no94S44s2A$ckb2zWfF!EzJ$KAngHm4be4Op(GmuuWg0s&nZ*uFgX*RW_BE(hn%2uG3Ah$OLvc9o=AdY)EC!*4T3UtfDkJl#xJT8UFnmO)JntDYSnrSQuRPCHqdja37d4zLQM3KumP)gWw8zfg0a^#OLFeDki%)tPH13crNmzR5ooBx6v8nO6eh+7023KR$c0^09@6G8XLS#(BnGABaGc38ji$KuM)MtJUe%JQBb)&qMltvmF8Mj9drW8PV8T(1aWiqgK_aJdpgex)aF2b17qzlI%w=B&PfMHbd_g2Gdi)9zTGTk5ZPd0+7VLWvI=1xq_yp3N*DgqJtAYIQEQYh+^ByJlyKpTtbf2YnD1=_^sISkS@TQIj2Ev6o2lmsao8+6MWnWeb@s7rBnOyfcensK2wI2Y@k1J6gc19LVE5j%%4apz@MWFtfV$1P)Wz#23xsVCAShYS6xs9U7c*=oGeSG50B*W&3*SUx5UX(^oPU18GyJJSeVo(%B!MyYlfbS*ymoIyxb%xgs0jN4#W%P#*_eX_r$m!tK($nChu6gO56!TtmX+NLpJtLQR*00#Rusk@sI&u8b&0LV%lJQp1NgQndn_xdE=b@ROCz5Wgm%MmFfYx)txV_mw3vVh*zcyC5x5QYaGujHUz3AU_E#XyXGV1(umLARIY!SbFQ6DLd$a(B%Uv*n$XgkLfEZIu8$D0!&TKr4TqLh*W)vexN(Rcgyk6N%TFKz2VOREV_Em%sdrW_NO&MFmN&oaUwgaNMWLsNR(wmoT35mg%9oVu16HmMa%R$KWbqC10)ig$9)*hKCdS=JPSrz076jN=pSnFwt(ZzgbY5Rsw^x**(%UaLU8kgin45J=nvXGP2TxqF0QVfGEGk6e%#nt6JsIZuZ4=yCW_IdwI*Z5gwg!m5dq&#rc9@a%UxS1!nWc5c5(dCvRFozkklvGh5V)0n(7+#MSnyEx^GaVEuW8MzU4Hg!i9_*miJmQAQ7tPD6C3#S@TclTqb1U#da14ikhW!!jrnfS&=M&+jFU*sQmH82v9$8%mLN8s0LIslVYg(kI5ClB3h=4gb2)m^)@1!XUC$4ZHbMaiw27Rv0*Odhd6*2i*)sZmsB#6ghpuoPr9(ezf0sqxg4n_HNTYio0Qln63+0xV)*(1JzEQmEt%6iCVJMf+N&bRO&3v9&5wFH0$_d4C8So*8spzU_GtNMx6a#%hSqAWF8J^jZW2lmN+E3%FmxQoGmxuOhFC9d%d4vRX2wwZPuGWDNoyG$zutEse&lC0dse_6uh^)@3TaRkQbpSQ2(^#=88OZ)pnZOB*CJN1x$jfEbF^On1Lc(Diiuja3S)RNhIdfi4eLA48sC^Ppq3Kis_8ITbDOZ+qjC5KIp$gitAl*Il9fbtjS(f6XSW^#XpVXG&fF^Sh)(vOm!)g=mDDNzxWmcztOJOwRO@*k*ixcZ4AOMVc(galx@qy=(%J(y$s@Asn4GEEjeZPfaZeN&6D+A5jU+j$DE+_B5f1+&lH+gnmzFqMdLNrhKC^&BAft*a@)wUiA1+5=Z#11i*ci8k=^O4egSbyP^9bmNbp!P2WxARpl(W#9cR9&azGJSr=2n5y9=FbEgmCNkZO_Nnhx@q#4XITiyNZ)POAUTXNwTKvjeg_Uhw&796D*vD5#HkSlf*!Z1vmi0_EX^XEN6iarpU99kVIB=DFy9qS@el7hujwvJND=hj*tX^fN%98VXu&p0VXm6S@tE%Z_DMk#yTOi8JKbDqbSm9ekRjksx9hv%89=r4H5mRDUAxx0ru2M7R1Sws@74Zb)WZUGE)^EIOs3iqm92Qpnw3XguV7FV6=A*k8#Bh6HpjHz7ji9m*lqaVOQ&7uBTG_)IFzcZrJaTC@t#u8#FSKGSBX@cvxVkGgT@cgK=(lj8bEA0@0jVr3DdGkWHWV=U(JrdDqUhVj9JhjAgs_3=Z8%eKVCw6^ELUEPvtlsRf(#K9Uk3+EF(co!!CRok74(hx24y_nr*jcpSnERYJrlOU3%Qw7!ImkZpoEzhJvYDmvtD%fwB6au%VE*L2wOVh(dB&uk2F3YC#lpHRlGZxZ_b_Z7m=O&!tDYsWV&8@VM1%oZ0sZQEj7uvN7k4qhHkHRA_YyHX=YO(6A9(cxsAV#B0rj&D)IW#Ef+^J!cIpLc9+*yMzfND65^B990uMt1XAD0361)^Y62g(485Szk3Ib6144KdZKmc2h((*Yqe37gza@1nm(=67U6b5W%W@eZRPp8Bo4479^agpq*(*dRNKWOm4FlmofOcnae8doIXMUVbm04psQ1z3NHR3b&Piu62gaKieK_Z4bG@G$Gm^W@^aqP^uCqq&jk4@ki(UEF8ZKb44GXlxPp$b8z%dVGRMya2XZlyvoi5=@i6#HKlMijM$woSS)gZaANl+!m9JTtJMPV3ge8J2G4Jms=P$B!RVBat@mCCaIADv=SEOnq&H0dnSe%VNymIIjdaWG4dOKn+RZ+08eM2tDx1zO7JkoSN^ZXcaulZR_5KwLmvFQdkbe!wXQglTOpXKt@cd#)8TJW^3H=h95eXD$@!NmlsI^ylpn5)e+F)rP()vnLewFI4^dexax1oPVwONRnG!yn9X%RBKmJe4X#M^P0@QQR^Q+9=J1iqY8%ZFs1yv$tGBd@TI*0Ul!8#H&q)K8!xR_WBQyo$!u*ZIsg5Kt=BHCubgpzWP5J5+jBCG88f%Y_dinWg5@$yu9l7+dC8yK#IQ_^6_3sBePNU6nDtwNbNoX!1*(h1YfFyD+qaw!zPSfqFOiuPu7RK9DxLgJpyu_*+56dsFce9Jio(5K@FAiR5ZI&+Jq16NZg3SB+Usrg5huxHDJCl6qy$uInyZTPU38cCakF(eE(WQ23_QSjVNc4hlfU@c7iCiB*Qr1RQBc0JSkA$@O@wRgBHudbLit5vHv+EFdC96PteZnc8P1yAo7@Y_yu5SKJz0V1pIv&&77X44+1Qw^jO&E+sfuqjI&j)!xbTvGZK&f#JCq1sBCfQnwwN+e(nU*cNUL!(ZGH^2qJTI@UFPCjNs6tnAE=z62rO7V9f$lH1b3z3PiTJxA@iW$GhH@YJtiRMQ+^VUH)EvZ+2ahZ#7AK%Ou)KO6rcuO@9sPm6k8ZEwOT4jVkPt$v8kIbQxWoum&N7AlvIlu+QcEtrxDsEpUMQ=tu7ivvYLB=LiwA$z&dqE4bDQX#LOyM0WxMg^#gTa+@drB*6E=q*AqP_2CyV2$QvHlwZtKm_UIcn!N%sXe5vt2oJ)o$^BQ+d69Xo(7*H4Vc=FGIZ^CvH)xF_T)(wDA0R_N93am)am$kZ52$0(sx1b&FJsAuRnj_N7xRZITTjodq*!AiG_fbM0tZflu!xSM_PNzY%sTfH9)@tkZ=Cgqn48rFY03ae($g3G%ygarOJqpbwoYTk$_31Py@xUjHmX=zrRZcuPd3b+reM)K&QR#B%Tz$gVlNsdsjV!K+WKuv0YeSPgzPZ8UTi1ie$Rz5Yx($18Y6dLLZp)t@PQbSp*NH2+U \ No newline at end of file diff --git a/testFiles/6/f2 b/testFiles/6/f2 new file mode 100644 index 0000000..2289337 --- /dev/null +++ b/testFiles/6/f2 @@ -0,0 +1 @@ +nCXjHwVmN)$)Be5P^ffXyF+MbQ^e7EMd3D+&!@XyjHYWm*ZE5j)0NV2+kB6sUPKzRihX$5bhgZ5t4+KDqcMep85jW#__3M@1nO!vE#r+6Ts1CBhh^72ta2t#tm&yFgLYWjCO&QG_yE9FmxY()zzknCkfbh8g5u4grV%k0&8lTy36gELc^(viYG9Aio)6ufPLSFmYIqVzs$*BGwCqdKeg=eRaQCISc+720m%dmUSxD3Uc8E%AkBzBT^PuCHo0k_DpOZWT)t6Egnk)sqypak8py+sPR*bkfib(w8WwatrLdjmvJ#yKJu(Axv*%aF_Xq0VV^%+akNaJaKM3b)MyXJ7v4l5ED^YDz(t&qyMMJ7s=D9X$Zgq2UTT36K%bVpNRtI*UE(Pj88jQwbZ(!9qzS_bS&6oR99)lhrC3A64p=Pvw#5_f5PhGr27Yee==H*spODrHbJlXWdXAB5^r)1cAuge8wBOSa*HJf5v%nOZePJfLiy+$jhNbFjUeUqhxMa&IYa@RCll33VIQBzOpknkZ+18Fub2IyCyW5@!Nh4jZEKU_p%lWt7@jfa^)nEXOwGo1KEZho!8(IjCCzqgwlNqO)%thjpJNfOM^_Y45!ru+6J5mnhy*_8&)(KJ(CkM7!DesHdVi*e$P(R2FHzL6=C!vt1AsTY#h7%qc%lWqfpzV!$nsFhW(EHadt5vSKhAx7QxfCTgS4m3$F%sKJV^orShE^n*BmlwyWbQL1_Ow&v+81&uy5at$UNI337(%(SnYR_h14^jhhLz8DZdA0roG$*Y%#Y5ygH*Yby6iYD$t0h9TO@2_4*NJZ=uZAiXYT(VE23Z)fCAbyOe5PPtpvH@3VMC0J2u05nq3Ro*5szYP0ca7l#H#MHAz!Equ(y%!i_mmzs$PapU053C3LuOlN=N+p5Bi48Yr$cX^NDWNELYL1ZlH=0FqyEbJ6mNOJsCKWL1tc*D$IcwJFJ%VIF%c(B4OX58@Mkb+y&IdYt=1O+FNxlnISFzX!0U1sMI&LU%lqYZcVVO_^$k2LBtI=6g(xC2ti^$XNBUb#&arpW)H%fyO!J!V&D)7!W*OAoaApfKDu%FPYMU3E2xZjuse_j+!iav0$N9*vY=IA=foNTW8GnX_U7u62_LwgO2P+V+3J013g$(OxP*^gvXv2T5yl)MfJIkGrj*0TJMGvQtch3OfKK)RInx_g4MAe8CX*^mOmTV$TLh%#++xtnKU3AITlI+wuzMsyOdmPwI206h_uAXsepQ7ZtG!nT(L*+KXMrbtAqzw81HFQ#$sOipQXzk3Eq&N=%7uz_ruyX7fY@$0DY(kyETYpe+jdwkoQZQmRN==e5$z(Jkp=x60Q&#MHg3@!!FFvpAYM_vDC5YjAVQL@_u+%LQe3DMT_rzd1zxDOpHVKzWxo#cuEHGB#JmMCcAs(3zcp$Ozww86C#wg77t!BQpHU0WV2!=)To_CK2&f_3v5Qp9p952%RbpS)k7)%QfvOFfk43t!9nkqg&qygL4lUI%9Vsi4v=2zuaCsSGyV52IR3(BCh=XStsXZ*yB^Fd)bT3#sQ^NVY@h*^U9wuBo+OaAEn(uy=%=7qf!zBWOsw2LXcg5s%PlboD4vZPZipHc6UGhUYydY0#BTtg)QXA8!MX1E&jxYc8Q4L!W_qQQqO@fXMYAR&kOTRv@l(F=8ausjKlb(2DnWkBRITl#MMtFq8$o7x+hnoo5by!m%FndS$hNh+#I@5xRrHeNzLCgho*a+kpm8l)70jXdnZik@7AFI4cUpP$(SPq&W^c0g04tjvF26%+v9zcav(rsopuQ#WSuHb06q#)VeTi^z8lz)PT58NRWA#XWPwD!Ga!MffS!8z5Qa!EoZiU%I+=_RU+lB^%0gF)%aQSNn6!9zC&RTjrg7=!daPDqhKJ0rjVLX7Z2Uh5aBgNmLMf89BKvhZL3&nLNL^s=TQ8Fq*$rQq91!JHhdtRSKJ@STCmNx_*jx4sYssB6f5z*kFMT!7Bj_&5dIwKr$Wd!Da4$ssD+1=49uvAy8QnO@cyGOt9!ykidArwg#LeLD)EjE!M%l*kO&vEE(u+4Ma!(gFyaH2sf0(m)wwi5S*ZbAyLZT8vHtqg!*9kBhI6WSGMDB_4Kav#7CdtbNq_BpBY_Ju)SiTnYOKMvzGT9m_*^5e4@ohJ0z+6p3$cEQydZDIq(H#BAHsr$cr%0YTEGmJGTMsJrktNAlD1lGqa$9e0HNUpIP!kfP!RxvriNTySui=dwkFkWBPoZZLUw#lEjZ$r2M__QNDMUbB19PlfyRYu9d1l=Za+BiJ&x67)S%#0HMEMV+Pja_zzXboCr9q1*h8MGVy2Fe1dE^z4^_x&(K7KUU@6jTPnoqTrh0NV&8oTej+PmDLRHdaJMnR#$=^I$q0y#qcK$a)%bgORCk+wu*r9_Q2q003)wMbTp$4Ox#aIl3qTjTxZ+T)m_ZAmVzsuM4pW*zvGpUiyQcDxSlGq&W@#VlkKHiuI8Nbh%eLe(^cpyvg8VQf&oFbkzShxM0KQwa2$rj$#wL*xnSMo!Lrf+NKYIjabnr3N3J$vRxnbI=b7UiN(j$odA&TcaghX5=@CwEkW1fgOfACK6mPdofuiowu4UA6ivecJuz^@S(XU&LI!o$xx$Q!P@9tnje2z0nCTLv%=ff$ueR)cvwQ^3cOiWAR+dd)ZdS8cZ8o%527Xgr)B5LRu!GZG1@dLjZgXLUGYa+F6n1uTkj$STxiSe46zLycR3szWPv=zWYGV#%yo3rX22Q)e!gR6JgZf^$bt4@Ld^^fPH@pG+#Hdf2SCaAiS4Fb1ns9#MK&HV^Oj=@UcgHXjR*E$WGg_7sc9Gpxlr_@O6$S7=X%#%EOUge$hzj&x7O56x7)kA&3bungHR+G#6%_6M!L(_Fxtzz6xZIa0zQ&VE_9qXEChhnoXO2LQ7+In_T8PYJWpGcvAqSaGRnaAqr$9_2*h!ytfZG!+L=et3p@CXpXPv+)DhyH5K)2N_CXA8W0eD#g51KKT3jznjrNUN2*Y*hZ+@02NKK0+5qHYQrr@22eYYmdq528DV_T^8BwVBqI8i@*eu(aWUSSfg)zVe3#UJz%=Hz!cR9UuIiz6(ZqPS@l7%2bSnR*k1nf#yJo_n$h)(kdeUFjwujc28Co2g!ncRTCnSW9YuNjD8TZiKBf+6=CP@un@C%%YW9UOpFh92dr3hCKcZli@jwLd5&@zEpFo9CwG+2&iw5=1NC^lslsbMtI+VrylD7ibHHFdLJyRF*FJQ0&%R5(ET7muH%_RzWy$QJ@UZv)AJks%Ekrgas+NZ)29Plar2_@W1rTcp5w+9ROZ!2Qblo0z0r3*A9WHo_CaB*rE58kN(wNjT(eWaoO@zV@86)7Eb!0)46xj+#+forMw9=*I#r$fvVFvF8HhiCOss7t!aqjqh((Ul2*pH&JfLOKE^TFql&sD)*iyTau22EuV6yp9p8myk1Emiy4FpMy3Wo1+X7qRKrrxSJiIkpqjcSAsfN@g1k#uy+@uvtNt208mvGy=%aIsHRzjvE3Zxm*gq%flY5scC2uBpJG#Ok0q2dFV9TK70Fd@bW1TjCNLuR^=OxKwOAkvSbqhOxrtglZ_@vsF@l7lA6JhV7uAz(@UjCSRHQe_VGPV%gjljFD$erU@3QfMXy^WO0tb7&2m+mdWCX2fx7teF3Q*L2CVK6mfR6=EG@=H9Stb6_$wC$U#$*ZdBRUia&B^NiGm9TqH2O6CQ3bo(HuQqeGP$L+bKH3XqpcI6(v^lc(ziTM8E9#TN6PbEgUk14Nd_rzxGc_OwB2j(xmun$lnFi!)(hF2duk*R6@g=lZVGlDnbqYJ5evWBbK=vAz^x!%Itjc4aj#$xc$nOKzhOm#6DQ%LUz(Px!1cyv*TSucNBXUHshydCpx8XeYmTwH8D1OvY$0ja2T%mUMX78Bh6)M_Zerj9Z)L5Nn*t&bvgbx^LBfFYqrxrQ_ZKe7S7O!GXj*)Ej19ya2LKyGaJM(Yc#BmKMilR^sEifU(F+P3@(V=Hfsi8B3^&pFnMfNcVG8jT(k9BL4uotnXUnbWGQHuR1!LeC0=VEgEE0iDkKVqbxSL#LD03)2osPWl!xfPK1iJyaEo&&Q5C6UKtgR_zXOgYs#L_Lu^h#k(IihcSARMpqDi0O^VX3lwo*7pgG1*p1WT*yk#X8HAf(a2EID96yzYv8$upe9RIeo=6W+QPZ&cJr35l1+pz_$2$BE=o)D_gRBmn&fH$0GdTzxi9Q@fVkBQqXWhm(xS*txl$geGS3sgGwV6l9e9L3bRGL&CiUm8zQUz(4@iqX+PwRMazMCCf^rO+JGWklP%@+(!d_P@Wn^5GnJH7(_vdD@*bX(+HO^Pcuum@N!U*E6X7wr*m5R0_i1v$miFI*fNW^wi)Pn5(EG*hhmHxH0%ISc)+#x9#5TkOIOsfaXy72g4E#mDyyDWWhBxbK3bY3ROR5jjT_2bIadinM73cDhwa4dTt^(ZByhKtkMufA93nk@VsYB$rgBZ0TeNQF+kAyJ+4Jz+a3yzIn)7+neXZrXVNoP$Hca0sU@^AZw=)u(!b!I=gOyAbydFQ!pmGNP=8*QFK@XW0F+LN)C1p_WnoqTn97LRv9vc7%#pmqKvo%9y5TfPUzDzIly%GJw1wqygoE8nEapi&#$u=58Qus4KAzHabezzVPR@P5&wza#KV$Nr7W2c8IHm=TXPJZK#zIWN8_MKe&XVW62Ev6jeMEi(Sz$CIHJd_X+4yk*E5(vkJ*B+X48gDKT=_I==v9PCpVe5k8RPVN#=G%*0jTF3q^9FzWIp&b%KVZN^wok7@@PvtuNfe#B(#VC0(r*TAf!xDVq!3oGEgXN)nf$^3CUBlJBqmgiW%hjGVU44VN2jqM(zOll=nULpHwxO#Ne@+4D2CE$(uUXN=t8FLq@W7%nt%n#+XCdg^ZBzW!WFYWIMNmEp!AE6BOmT9u$8#nG#n4Kf61%e#uhbbPEZx*IfwKIma=c*3_8%V#SK56i*wEyOwm#Tjv!%X0VQckQ@Y$_kh4&1xkfds0q1NfyBn2vGY_JmYA_0^j(w!_riLvhcaMhDmA+^Ysb9!4%UuKmifL5LRID)3T4KLveYBP+UvBO_Dfl#8sb8Au9frK+l1e&D^_Yc=o%^ca=fTT$kllrmq@X3Bn%rk*_YtUKUIh0A7+kP4FxwPGBmZ1UurX=+Dla3p9ZzQp$g8cDdxtEWdItWu%iwpl#iywhjfo09e)sKdh@J@d@a=B=DhZaqoYmZADGg)a$VY1ComCKp8caUO_zBfBP&^&S!Sdz4j@qj^5yfsApJn4&o9tOT36U3cCHClX6zR(GS1ptbbemL_0WmMztx29FjQoPBcdI)(N5@2Y!4trl5A3mnvGIKUig@5eT%U(fi2$koLGrIvs@8Nr@BNEzWVH)5=vfl(LJ@OPlo2VYuRZRCCFounUFYb%=AJ=ZJBokCHTYl$HjeD3qJlL2HEvrdbSV!Sd$@R30+RMUXpX&u&L%8KW6!r8rWf$jso94f%v^k9X_fF$O1OnFZr5W$e*N*JWZ7I$Uy2Akye6NBYvkMBrUXV6GEOMS9jxdcgYdYZZGcn4ia%sd(wG@8eEvx02AMGgBbMhh1Ax8KWySdRSwg$0@hb$yTi(KY2mc99vN&e(0NxygD8Lj5iL!c#UdUFmIaSy1UYRESA0BoEE+Ax!1V*A@(scgY8ogDHb9Y54$9%Zj&NR$EanTon9b%IXeh^3^@)+mIebco)V&cg&yY$lmjid0B+1@GgHmWBd)3mGmmRiEly4ed%Sh2uV1h_610%$u2+woTh9AcSMkYG=Y(+0LI=fhO!d=G!X!EB_jwMPN8P#ypnrCghv%q_F7z74&=Rl#&+Sd*e0VY(x0lofGYH*%ER8Dq(SudjS@_4DM+^V(Eo#t&dIaFXjcPvxKEz^6be^3_p#7l3tuE^7Pl@ZtT%r!%0zrVaCA$iDXrLERr&d)=!IK$)eKySO4DduYMc5y7(mvyFUlEjNWn%bOuwSBg)AhB!qU6u2ibUZsYZx4E(!5_3zJ#E)&W*q!64W(QNwrAmJ!fXCjS@2ih(nzDgQ6Lh&t0$DZY3+rj)__N+D#B3a)vtnjpDABfZf*^qb7a*HiYrn2_#Pnof=*F$1G@3fSxX)nAM#0k2%37L%PaC8v1%*hJ@Y*1ZqFmR7YX6UzV!xTe^KP971XaUFYR9zZK$n@w==O1$H_8ueF7d#WxVlOjfxWyt@hzEeRph82iodmS2j4Cz%cKgUxA0@MCa*Jk3$6FkisW1Xw3t2Jm@R6jM7QEMhTTM&uKKN5p3luvDJ@7&dyT1&t3n^t*KTda_nndMNy_+ELbr4BsSLkW^H=pCO*YR+z1frsd+_XTjxRZa^k^_dhwJA0)oAqjV+97MY6qQ+Dz86(mKbEWn)NBTopHZep=vN1rb!NC_+9neOFaja%T)jh5_tQm!=!paiMjT$V#avRf5I+VjyqTGOs15VdN(b)Kai&%+SOpda+BlHwFPlW3QufpcUbFov^&lK_!KlyJsLiHiP*U(iGpYY7#6#up+YJJimpmn6YX8qWZD+^DKdglJreS$*Q6EL_*#dBf2E7jxIo(i8Z(cfUM3eR9NVn6p_12TYQbXVSlR6BAvy(wK6O9mEA^^)iU3hMxwm(USW@Fg@rPKuRG!pNNXNMj#VTRZ2mTWl)fbRULSMGq&XM4^zxa3B%(d!TXbS)kcp^Tif7d2@YKdzOH)RpsfwWnT7XvpDPMKC!e+vEJ6Qwk2(F1jsb#xwKT6&y+OJfI+#J7P28G*1DleQ2loIYHC8^W=mLlXPZiV7sfJZ(kQffIPQZlyTek4e4@kxksR%TMyiwE(LJhiaQ15HiD&z6*LIzVs!yXh$XoElgz5jN_QC0Ob!fgdJLS4Hh66CArNq53ukkveWloRs3aqem58+Nh$11_%ZCz@r=zj)3w4Y$EqeB&0zlW7stHj&4je^8S!(STq_LPbk9&%HP8pT+*4E9uKQEaT8O2o*+6yz=#Lo*bz&YOTgUxFVNE5UY%4S(QZV=E5FaW5up=+ayvjK9ZwGybzKZpcjPbvwilJIq835nOk)nESgvhk4oP&C_mkT^s73Xs*qon5QeQJ)_XR=GyoJ$5CTufy9&p73yB#H5tF&z=(Vo7gBN4307kY7T1to@wo1fJ6!6(f@HXG@Bg*DhjT!Nlj4Xb(2Vy&=V(ZdxXekx$Q6VRXPa2Ez4JRkXN@#zrYbJ#cB&&(3XNvnlquSTp)Ev9e5guuFst!%PEDjCZxxFturP5ro5y28d4jOJX7@uxi9z_c__$f5!DXLccwRO5CWuVkk$y6Vc)2Va=RQFSCWOHt#jCg+$K3eC(in*o8hpeMZqT7ARC4fsp@9Tx1=W8AHDhWp)75VB2z4cQ(py2euF24sKE_sjxopzuKOf$5yg0g$Yj((5_W2rBYPx^vt#fuisD92pLP&5Jc^)#lYN)yy_9I)sYAsgHaS@_5&h^^Vjq&#z#+T&+krXfL&HO5xCQ3(HzQOy^0aWi)Mh%a%kW4JP%y&ho#RMI#=qWX$YncPG7qi%YKY+*BdPlI!brxB7*QOQ0^EUqqtec4*5qpr%=z)KK3y)3F#zF5xftp1wXArMP&s9CVMliPWJHD=ziYQ@qRFNxeqZlp3#^L*O1NTj3#rhnO#b(P*BcJIGs(pk#MSXG14h$Masjp+hd(bA^1VSsqkto@jXnX6l&XNd9RDvaqM+YcW3TEykVM%RUijuEemtl@LsOl!1gYKEjgxPlRQMI#Z87*G_h#+_R_b^3+oUsczSwsIvwXm$LpxSB8u0qJ6v)qM$n2$zuOT=1H(tFC2^ewrTw2y&TDL+96kHTse9C7mO$d4PDYHA3y0EM)jvyUmT+yt51Dq7gTtO2Rq4qtQ0Uz+UebyDjGwLBa$E)E5weR!a!U%Dx!bq9)4vvpDKdOw2ZR1z9!AOui=AWgs8)BeNjghUzjjN+R8yttIRCmkT0ZJgmoMS9!cnqw6dUW%LeZo9JB(_+K_!aW6vgP8YwxLZGwiN4unzTcJ0vZ8R!auD_K1%^i5ZMRwTk9zdwoKk6!DTYIf44UPoidmod23yEpD!subL6oUa#SNVJbU9xyRmf&cAs&So7l29eo&%zpYivs_pn*91^og$I(x6YO4!BuDNDAnFbN%YGIgkqQRV6V@IAtfI3RCgZY8NeOU7o&YBzNFDQlKwwy_CULDcxFIAm_eQoKCxWM=NzYXo)IY#xj+rR)rxp)aMkkg7oTT$A^Ro)r3uP7$gLwekaG!kyoA*4^F0c(+ \ No newline at end of file diff --git a/testFiles/6/f3 b/testFiles/6/f3 new file mode 100644 index 0000000..aae0be3 --- /dev/null +++ b/testFiles/6/f3 @@ -0,0 +1 @@ +KU*kE_hArly1Lb^CGR&fdT=fo$Dy!c&#yr1FAICbqLABOsm4kZr8DnIWiubWFjgqg!K&gDndY%e=t1n4Pg+d_sH39lJ+3%N#pXXzYUnUX9pC__g!B&FOyJ$B@H5yA2w4_nEm8#38bDRDvD4y92gwrGBj6yOT7u%E=x_&lR8dny9!79Ds#R@b$gzkSA6u(C(+Q&C_q4j(tPU1=*Ee(Smnw*v_1*(CCOS$&vr)h$AQ9IV8#@zKQMfDl#ByXfrXeCepFHgEFP$5BY=58YPCu90*)e0qi_&ERNgVsG6@kY*@P1yrMVWUZRy(YSijW5&^2Gxj=ekXyOrtb8R8N$3bUwpnVfsqcLMFIlLyYNKv^byz#fRrSKiw(Np(mBLesANID++JVU9aN8*wPuwmXt_A+l$mMjzHA!x*28UptYL0^PYL38gHP8L64vxPC3ozH)Cy=c$!E26G5zCe#i_=!3j9&O49QM*Lk_c+eAkqRb@RSGbtwZ724chglWK+BpKw_rnR9TY_EO6dajXx447_pJpGduGuS(iFN#bke(1Q!u&CR1+ubAcS@aCahH%Lqd9TBxEdF4m&Nem3^J7AJac+N3Au5*LYZJH(am(&ohqy2Mq&0FsY$8F)4eJLbF6Q3lWaHbm(3L1nZ8s*f00t_QBL!bx_6ih!vEHKUmRP$Z1@Jfr#ik28L1#JQMs(cVD0KSz=nPN(dEm1BtOf#*tjb#uoKt8GuLvRyc#1q*v@Q)ghxkjb!Vxn=3EwSl$7UqkNtbjFpf(%ubdnW5)P#oC^UjC$cT%tIguPLgL)j76&Sl$Ncb%*=)Kixi=_U*BoigB#im0Rj^RgoPSlZ1eX0Imm#u7Se&6prBV64*97vQ%$Wm$_IleCwevii=5Uabu&#sZo*H%%#HAK^6WcZ8LfN%1rXGP8j^+83&BO@3nPV*NBvEOiQw#UO%aMs$wOgt+7!et#UY6@oFm2xJDt8HTF(LXgl)7_Rb%W^HtOHQ6t&iGnP%#I40GP$pzNgReRzTv67_)*UWh&8yMZMrt%wGRrWOvPx)9yXUJoJ=NUS**g=!*uEHuA*UUe%7!bG=LMnV(b(Gc5S4Yc+dOS+D6xhR068m1J5AdmDXN*aVGlhk3v5gq5dLGi6g(@e8XYav1TK!!Fp$NlzpiuWO8P=l9P*83M5wF)4s&IiPeeDYeWr)0Ps1#jELPjHWK7TPb^wE3A5ZvgVP!maT!HmKvv_nSkVkPyg@a_ROFpIVa#qCxb7pwH0X%qSm(oynPlmNV4WEb6hyDkp9R*dscYG$Umz$J4%s$0LW8pqr0_JQg!fhhBD2)XS8PvcXp)fG9)k6JcvQs5lI^Fa9v^NMU=Qj%IgZ6jU_ygrgw^VY*BCXl*KW97xiy$n=9kpG%ppyDMJxEjmQobiXdtG1dCA(aj9evtO9QUAuZK3eS!pv*60BZv8JpJk&VhO(j$wgbwCleR*QymX$iVrH4fwY#b^Bvf%h%CKa#=eiZ=6JzR&XT%ywqC2@tj0hQ5UaAtm=+LlJDDFW73eadOetnsWYqW9PW@NyDLI^snqQl)M9M^@hkbk7)r+IV&$z*a17+a(UHto+A_V6dfvH(8ap5jvfg3mKjZFAN+mYpxN0xe1R%wlGVi0TTLPAbFdYfjPe6ALVa(r*gxydLGXMjcW_u6+K0C6q@8^SNiy+6LYRFIk$o$QBiolJV0!VO#JzwM+WD$FNpE45QxnMO)Mrfo)lqRTP9q5D9AmcJZLh5V_V2)8&(2j_SqLXsp5m8fnXNoXFvOCtsc1in_XTB9Ti3Z+ce$BSdZ8(_YvdF^hZhQEdQ3Ng*+*y14aqC%bBLX@rsFTP)NcvC8&W!f*be_smQen9NtVz*nI#Ijx264PI^=tL%gq)^r_^(m1@QJeyf$_#@DFhD(VKdlPv(o3s*W!H8i*y)Z1fx5#M3IgycaSzQ&s^81_k#Ydo1QmnrzQ6_t^CkMBo!PPLfGvj_J6ej=E!^aDt#f!@Ja@SuK4^XR@%Sm=nyXlHY@uOHHWVbxVU+hW_kctcg3NHt9F%poPNF32IJa8NeLWoi(!Q+7T6i&lCMCGgv8MHPMqZ%GL96#xOyXCKlzjFCfCzi6lB3jZk_trL#^fo^6I%Ky%aiR5Y8^pO#&EZ^CXU1Ul)YFPynN2)A4kF&_+oHZUDIDoJsD2_IG6c%2!USDKh)=WYrv&GIu3%POSEs%#FWYXOqZ_=SOB2lkoNj+1vyXQ)*r@HJb#t^Hd^JH&eN2UhJBMif*vyuNx2cx2S=ePZa_j5z*Ht7gng@acz4I9se+7AZW5XSshGNSsoSBzqAPqN+5078e&OXi6Ecmvsu*$GczTyKDqSPUHPrV9EbZf4GwwwYtH0CMYGfgv)^g9Is^L!qu3M(GDCnpp&DjwTMyVt58WzetmJUF2*HUfUQ0=t8FVvY+$Q%=Jppfn+s)B7UJst#(FnQArHoCw3l^lKKxxd@iah&3)WTIlHZdXXCoc_nZOBI7zm6!91JIbA7_SaNYgZPCLC16VL6@8hK@3N6xa1$Lm1l*froWm6VQdrlkmhBpu!@B48Nh8uxMAi0J(Q*O6hFvhL$z5juYMTlRfoB(eu4R574T@GvWddo4rn841+@IKA6puPkW#VLeWAXiaEIey^_gQW#I8_E^zX+BtfK1+_kQDO@%V=86aozZZeCtnPC+U5@0h@GJBAnHzx_2&41OGGmInle(YtnDLAGToo3_bP8Z06lyNzBxqait%n+G)I0Jj5Hnlg_Glspzn0(z0uylrqQgswP@cABnIt3JSRogpCaJRq)UEyvREDKLuW4a@AJEQm59KUqjZ*^SOSy=6xR_&e0YuTdN+u=jV@%YWu^1sR#^4s1cSLAjD8pC4=BE!t9%ThVXQMB_itWHCYJpS2eg4T$gK4z!Hvo^W7_mm7Ml2Ga&=_*5Uc(mmSqWTQKj+2rPuhGZz%X+F5hc!jnkyO8S6bOV6GD_HJeDBOD0=Xs1MemNs(rQ5y)MhB84T1MaTp3e8J$bHpnVB=uaJUF^C@qHaArTinCqYfrZ71Qgf8i5sYrPSoy@0YdYlFSvj3brTeUY&aBUmhIovNc2DV)g&coaC_(GtP#o7HYOhep5rBJbS*GNdoEMMN9u4Es@!9m^fEbA2BlI4K(@Lv%2zm%cpahZIB)dj0iM&guOB=zpymgk5SG*4OE3RY==EkR6UtF((9a!xOXOxwb8L9=Bhu64h#^YoK!rfztLkalaIfRO%OF#b9Od@n(#JXe^h9S1eLtx)Ab40wNVwL7L#^TNW8_teHtebeng4stgBn^#yg=P#PBSP@j+T1RrZYRa4RPvfrTtdijOIAKf6_rwFrwNe!(WQP)VzNeauR0@G&7IViWm22z*6*NV5GvF@+1M7EsJq#K=SKNtN=Q+a7tBq(%PH%LQ19H%QIUyZ8JcYjcFmzGfG%zXr6*oWI5J#@45J1fFJJ!rDQ^UffRnwaoNW$@IwQrBi4)J1x4#XlOWPKO6TO8egdxdC+iIkOJb)%BE^DzQ92k(*DyHM^KweWJW8hXSoq6A6$Gsw(&zOL@#ZBQi(QN6lp2)P^RxjrTo3edTu51Ywux_mEwtT^kysUB4Y^nfg@xs0$WUG8^PC0FF_)Tlhll_5n#DOU=Fi4LI*(Z4@vtgDQhlYg3IP*^g#Z$aAhbYjuzrkZQVr1y5Eu3_I*=QXvBno3uc&PMn7l6)Y(EkJ@zW_H1E6+nwK_qxyL31HXiG2LC#wS(G6H86&nzzFd_c1V@^JX1&B+1lwXlQ*vi$ZQfib$1IUFZ^gjxdjf+&))BiY#*cfF%6umcq8(ywsiA4f6%M!449MHWYQ*$fKBSe7U#fLQX@_yKvB0S$MhUhkz7!p6bKO!JYkto3Mff4e+Is0^&U+FS7tpGLKzuauCIfHK8@l#cPqd#WBzLCuXDwbJ8Px2LVfWvgt5Yi6Z#@4=83VJG4UdNavUh5w97FuJ$ur_f2%8Pf$+BS6LQhNOD2e75D=oD9s)D!&p9IE+V4GEPc9uWYE&lAXMcwXR@I%V*nC87j#4@jyH&7U51(KAfsKLFFN4zV&xqN&fX(sOaCkSb&&_NsQGAk&H0kbhcQ&uYQa1YLFQPrUORBcsPA!iE*=uj&Fga(9GhYZ+Lf_aJC!qsI2H#7!3cPOIj4N#+^pap1SOj7T*ACJNBD3FC&*b8c9WH4%eQ&YDvO8cwr@oT0WV8KhF3sRkYV(gRN08wE_Qn*+Ci+1T9haUxsPxCi5hNS(lHrJ!^tJCK_Hp(yvBhXMGTIpcj3q(sD4lAQz)F6O)AR)O3l$)hdi8P$Keg51(T)*HG^_*X@mW(QVBA9eD4bq^^*V=lhkMU214I$hoEbhSfN#g^wD=4+y6)g*p%8=dxRRrLQ3=snGj5UF7ltP1s(_sRN8zhhe&aTvzh5Y@+gozBcEJKMB_JpiRzMp&GD85saJ%$XpjLurL+aWkjFD#PX=XHWh(uPpAQ(1gKGgr+zch_@(Q#uoeZ4RCs&nsk3FQe@Szkxv4DtzVuXOvQVPV1pRjD5Xg!_P81EgIK)#Nbm_uGRBV(HmR+3e1zBofxapduumJ!d^yaUJz99U(8HEk7Cjh%Vht)=OE2k)gKDtAF&ncgrZMBCGv0mRWA6vpYgiho+s*LE5Zh&wR!mdEMZL1YQ28dB%^WXb+hmV)CIVZal@(Bha6Xn58m1u00w@vFRTRm%iCnZamx28xG)p0kM!u$TSewOH^UmrH4j5t)gUihDLq=3sUOXan3UQPfdFF0#RZ*@=xYlx27C@BoP$nHNaPFW3lVZxsg#f%lhbz8#+0t6h8nG%BNzlqKL#+MRmX45wF=rn!@)or^F(6@_fquPTw4kAC8bhxcH5M@1#xalK!nB144xwSBabpPJ$LrdquL$0NEHz%YLsq!+V#D12#vT8m7y&S+E^cvf3PMn95$JUDm2Q%ZjS2NGVaCJXT*WRoFbY8EKTcw&WrEa%t5iDSl()mFQU)f#PWcCA5Nay_)xJP_Z0eGpSk%qXyy5ZqKv@J#A8rr6nhscHTnBKxKc3VxOJv79ghIN@A6v9CDhWXwOaB91q7Zp2#wuORjo7+Kl!mT0u_Sky8Gm#RKp7V*XPJ*Yjd@5$ZkRQu8sai!9pi^*Ax7HIR0@1=J(bo2vByXBjy@QrN(%vm2xy$*sBy^LU)BcjY30E%()Taa7cO1Z&GY(XpwF22M=UE4^R)44c)IS=ERHwLOsX4Pj)C8pKN(7V757dT$NlQs8m)#aAulp_Tt4$DZ2$Plnjylr6T6cC!tH*#MfH+Z*&57ojjCKF1+YBQ2!yTTuR&_jaEWF5bR!sNzf0LcDD6&nT)g%*UIT5DVWZJxbDP2ay!aT0!Dzvm3fnRE*STl6DCZZ3xCho%EEhD*G8wRZoQC4=e4N$D%BJQmJdIi1Ils7(PJ!yxas^LA_=RI(gMKpDqz38v2WvEiFJxq=8tD$vZZ8UHo6OUPWKnb!OR+J1#C8xOq3+^Ox40&_acyXgNRtko*KrNz+d2Aqizg77_%RLSiX#)gS$hECpC+@YlGkGka0mkmHOC&yp3aw*3qh*tsSX_Kv^wJy&I$33xIOct#gCX(5e#Z^67ylVwtQoO(Om7P6%0NDht6n#o%vesVDwe*=sL1!*Gf#+a!KBk$t^K7eW#z(pPU0^raRFk*s3^!C7Kwr1=YSV5LMxRdKZ3x3o)ld+ZSM8XPS8c2K(m^wDV8c_!bUegeYFz2NT0Wu4*4e^ciO*H$TGFdE9yO@e5CcmcI*t2RHJKz@b%J(S7IWiF+l&2gdE$KEfPw%7cyu8jaQ=P0F#lE^=XCYCVuECb&w&4!*wnaJT#qoFlgRm_VbE(khse+ebuK!p(u2RcL*SZrgS5nN21Ryu^dCx(A(lR1PY!3f=SU7X=4!oRbyMsl&A9(d6eQhxq_H09U@k*01mhplg5Xl5nE*Bv#eV=xIXbt22FxPj6!F)_EF^pQs8n1($XIXAX_#(#qN_zvpug4fmQ)6++QyVHiRwA+%N8_pSKdeeJSO5J5*ej@hy1*E(8n9(S4OqHDCO2cYqSPfTbRVEIfR0VoQHYCG&czlwe7vm*!hq0U0WV1@q9+o%6k0s!7+T%Td)Hv+%@Z6IexYm9Qt3aL@tePXIynfn6BL3*MwYNwdknnOow)vlWaTkl0Ol!fG&99B_0Fg)l3nEwi@*f(xAZtkaP)YTJsRpJ5r_$e1BE=!a4ak@Sd(__nGuU+P6I58dE7fb^nH=jj$8CU6k+$qR&zqewDLp%%YWa1EursFl%d8j&_Tz@1S1eWt2Tcpjhwk_7Y#BoRj1Mf=MRQAXIN5#ImJTOBYS+_PX!73vzAxBdu077RH9caIul@!@gWL*x2@dxVxr1IGafDqM#dSfH^^fPt70$VHALrvP_qz4QA7f&jv+q9jZnYD70*qh)KdsUsMUdii=VMdXg@xB8VsNoNqY4&4tnkTxY_7nfzlbSl7RTJjoAeHmFy#=gl&cP9mI^&6VIf8gsAYUHfXFrq(*o0h7E4GX6(pid*ma6p@oyhU$NEfK0C)_IWvK8=rlNNtiq6ULke&OQi%=vY+!6Nc@T0aLAh#tZhshYm1M*bS0Yfq&tlaI34*xp&lqz)ch$qNj@%bLj=t#CqAMAiZpm*U)r08aBM@FK^QdhjWK0kK6aXq!58iv@G$xkWAr#f3qG!)Bb^@sP+!4hLCkVrgd8&H_tjQuqo9E!3vr1EzN+sJ!jZqHA(_cxD7nYmX1bduQMgySRHdz&2Q^m!z=X&(EQ#Wv68s&mtz8N884)n$M)zH3s@S1^6Cp1B4YQcwo4&F51j_R(iWNYmKmEBITSB^$(&I#fqm+lvzY5Pi2%GYyEk)01iudWkOzj3rQ07++EUHZ8n4V9iad*0jOMed_)29ZB*daphJ=GXx#xkMk33nvWweM+hh@nKoxDegCYSv*iAl6r#SrT(^#@S2RqMfw7J=Ge3nLcgG95K!JZiGwH8&Z+lr4Utmvr01yFqy80y$Ls_+evM537L+l#$OjFcqWW*5X$(qkJ@_3nVHCf9x6$1(ubEk)puk*wie2VBDVlt65dbL!^RWUsCzL%gisoT)Dq58+M=*9euG4^w9g1hkTfN0^*2uQ3rng0DPCRldJl_$w=6rQRK0N)zifSy2MYzj%bVHz7&Na&1!vSvZc#q3&m30bSvlz6Y1wY9BWu+Q$zaqOSm(SZ_aje#$A@R+%GY_1(yehc)7(*r=3q8uYMpC2tg9ANEwy_zgzx6f!tGYoMP!gOZDJd(TW*b*NWqALzTA9QOy&i0OvNcWk+sJPC&PNN@f_YGKYP1U7b5jrv+s4fHncNX=4_GtXCs@bs+b68m7gKy3)u2cgUp*3rr#wfYM@AhOOL3GVHPrt0Y4DWlRV!ll&#Td4*05QQyNHhChincJ$zeDjQNmMw5qJRR8$&AzpycdKKD32wz8PP4nmG6^A!gx#RRrD8j0FvpOLEVzbKp2IYnGWuw*yV=+mwGR#C##VNY_%(_7^mWJxd_MZRYuE_Wqokw1IqTiSk@f2HL20qG8g08kqTqDmU1ZcBlnXibt0)zW3sRwyCV2ov286=e=iAP#E!gtOPyG7S&eSFeG!X^Etj5RN2LyPBOl8+VSH7o_QJI^H7QV#8Nb&m2=4rTsYcyITI_2gVAVr6RPTNSe*Z*ON1AYXGa74nav($rojgnJiAahht@Ncmxq9dI05i1W6l*=+eHtJCjc8a@#ZFD0kyz*kMZkmH#vmCX3qh#E^2sV1kw)KJSjwKH!c=+03t(w%mYg1koVhOopl3!Blc31jPSzLFMq@xk^gX2W62Ah)Yx^LMOslaE$MbebjAyhQFdf$gfpDPJODI6JC^=+mMo46Dpr1nVBkJ3w9K0R3bZrv3nflvKQPvWylL!#9+ltElVTl#Dv@cRxaPkS$DvAM#8h4r$(#3e4mlka_CPVV*rBYxja5SGYV)F3pRY4$phUA^IX*my9)l=bZ!N3KayKAH$9iN+J6Jl(xi8&KJI3qdwGcn1_@UW5Utg1bcDcs=j4bH8)bjgY%WFX3sRE!fMISNDYiS+$LtM5XfrCRp0cKL4z17LsgI_cn69v&wMLY@I8e%Ldpg_ol3bRDdpfdh@PzH(BpPLdBWd3Ac4lGg1nRS3dK8!#dyuROgn8(lJr%E*M^YtAjbp=wLtnVX7a6wAb_V!@9x#$M6Z+idq(k@1J*8Ub(GxvhwK5(X2#+Qaf$Dv&%qsfCPRb85q*oLLHI=&0_F0^78LMRZysqFBZyG+tEp5yWe+shCrMd$o)BPJC8VmiH&OEzFGxU \ No newline at end of file diff --git a/testFiles/6/f4 b/testFiles/6/f4 new file mode 100644 index 0000000..3797b84 --- /dev/null +++ b/testFiles/6/f4 @@ -0,0 +1 @@ +TjjLlLS7wZ@_bh63(K#GyVbWNvy#T*Teq2K)ej(7906*hLGwgP#ybEUC*49ASjgcN(X69*bP0vPh@B(BmCRE_QP#brK&WN%D+kjVTErI@WtW1WL_P#Kd#VtT=VaM)3*=9SF&w)1JSpnd@hqgBG$WRWZCUK^1$#i6d@Tq8cCYG(+4HEU6jl(xdOlTaadW7NKTN$3dmOSGREDaA7DABM6Rbo9@3*WAb^QA*#Uz=ObBrmhzL4#8*86isriJ)!Lef5njxRArqZi4UEX0&8gMBMx^7gC+LODm&w3Yk#C18!y67fA$bTzL68B_c2@QZ34*KRabgyHUHb8YnTn4Z2ic$k74vZArMvb$&tuMTQiSY#QIlNW&iDLQ#HsOOivbC00qkOocD9we3Xxh(NGUB$hI)+*lQs@bnZnt%nOvmP=UCu_*AB4U3!Ux$UPaH=Y3#SI7h(i3!DlsS4KvbCKf+&J2F+)In0yrZq5__d$uzWh%WMINQSr8HCFvs5iJ26C^9sWSgx4_=vrOnO7a+437&96iW6J2+lt+UXRYPPwtk3A4_8_H0Moej^sAlws_iI5(eWXKt$2am$po@pjitaaPc03L7IFy*xKtdoh4VHcWw*JjarJPq@szuUw9lnB=KnI)LezAOFB!6%iTPpwqaOYvcsEvrWIN_y%U9@JirjIufh7N!02+_$)0259oA(KpZoNNtg*E5If=z@yf%P0R&)%%*Q3YtT2f%E9wqAzSS@6Xu^cb*!bk0qJSub=q!1mvrB1rp&oc_*58!$!(0naX3p6q&v0qM8V2XQA85N3M_(2$Nai)(#J)!fUEG5F%xgW!fKIExi1HZ$F(Zqoo_zesCFMezN0rxMf9+vW%H=!MufPbj1CwU9jSq4+2Nq5RpBWRqO7!iaUI6$KgvT6+e8@3MweGsvJ5)nqbT%dEasAWmb^4d2thz^n1C7iC2I#xNW8HM2gaOqS4w26%dlb&xD12)gQdNpxIBFrpSVv0t354rwA_bsoPE+w@D4Rsc&5E3offQqhYnx2UVOO2gi+nb3y9kdgdt@mPXrEI2+I+scy#GBuE9vQdYnFb69sy%ZiJT4wMS6Bj$@Ro62OYm+okeX4yhrubgt!&p+TNMvAU2809F4YIljNu6vL@8GczFuA4JW&e!g0YaTB!hcwc(MD(*L4=2gYbXLc)4vR444Z^$#Rl+tp3ik#rvpSh74qnjCHWTi$+7t5LVJ$S&b)J&NCMgWDonqql^Ml#Y(GYf*%)D7MX6=L0fR28pyGEnnDGa6cJfIvYV^8Y4a3D7IFpu=Y*(A1Jt+KDL0dt(esVlTC(&iZQ5D^CC)Qb)F*uJRsdyeC0+TcvH5VFQ7^PSIjX8lI%JI$yTW!x9!#sKY7Z*$zI=yTCrf7#1VPIOnaQO0vbmRrMSTeWf@d^VKoQTxodrrEXwhE!izvyV=pjI=JVWgWK==Jm8FL&mP4To4irdd7gjBDyD(W&z^kGWuEytD(!mXhR@+cKnEtDaF4qIq&JbRrzKR^I56c(7gLv4^aakAgsB+EDkVA$4st0QZv%C7umRE8tQ4eejH$5gB+fuixAlQ7p6dKgKVZDdeTWHj9ecETE&q^f3rt5dR@9wSRFtORSiT7*)(QYa!b8%x8(M@urJXl8JB^f2qJz%)WpakNug7Nr+5t^ZJfUyh%pjzt3rJ5(0B$S^nCH2Y)9qi@BG*vpj02nWDaA%DFJ1G*=On6_+GJOCAYe$ukRsLl3Y*@xc%u^*Y_Qy9_&tXnm^N^x@74zxy)WFz7fDtCX6ymmNNRz!503D0rwd&p4@mst7*R0kD7!@VvWMGW)m(h%wkzcA^TfXfJpFdJns#x2y6#7UY%o+PX426a%%uTJn*qngajnlTC$sTCx$As6AS2$LX&T!i*Jcneqc#x2xzVcvY5qt#i9=m271xL9beWM9dQv9wu7pfI&plE73ZQA)Fyq3P*oKK^JK0TfHr1y5Ac=(q38V!#%#5lhhOLmz#dR_K(I4n0)k6kKg9Lh2e5)0_SoJWn6C1y0&p4aU3QpI(5k=4hb7WgC4CODX63X0GLlD1b2@!+FYFcsD+JNRoaBXv3$y0l)FqBhkTm$FTJx0IhZOz4YV(uEHcFqksAlQPznwTv5N2tKvcqTsahoBwEFaMBjA@+%#lclvwAg^byd2#=LBG8CiTdOHvXjhAivFNTK#hrd8y1drBrCjIu+)MIMZ^dWscttuDDE0hAq)S2q5I%S^qgp1&$%KpQAmX$93K4LsX7UOrd@4Gqy^D4gDiLIoYptz5(4gK^SBkMS^WmcE5locc)2m_#Y8HVVq6)6C8vGHpj3s1_8M=4V2T3miZzL*W#v$lxFw=RWZ@UGn055h=JMh$pd#PXS!0NSejp1oJh_3vOkEs1#xpYW7Tqe0myi)v=YZ+2kPWpi!aT$4p8JEF#ZynRkgA#kcc$ieOkX)H%DCVJe=@74AxppxlbY)1Wkc*$qoc5luqf96PUh(aT2fGW++YxtECr_U6ksSE&9r8Jd6DK1DT73YswNB2=tpj6ISy$k3olS7yB#&wt%B=N7afeAMZ^QHBOa_gZgLB3iS4Y3xMx8bOvL#ntHeSou5E!qjOQ8GNdERpnCpE=z&LtHx%Znl_xJt2au50!v^E&oVhGrAjerPQ8lZ8KRL5MyqG=yeWDbYDj_euBBXs#b3QQaG8yBf_4Fo=9x1J2(mFYZqcDQ6eH_dtmc5+L^17ogonfi0maP=HtPZRLZxF*YKk1*Dn06Qym(NUAy4ZedI3UKL1CPe!jajM9EN8bvlmnwWuaMC^GU@pgr_UF5aIEwSkGtXOjjnB6zXQC0XmYm0UR57tRH*&EqhQw7kSYJ(gYjsNJyp)ZlxN@%#zNVxy4ZSt5W6XD1Q1DFEF9noSwMM0QFyA%K%iV3vKCIAFd0haFm*6X&MJ12Hl)xHbZ4b8MyQnR6aA7j#Yo%fjQ+mdHsp*#5=2Afva5l9$Ld$0h*85q^qEF@)017yXu70JNKq5Vn91Oyb9b3X1lqBZfbd7Bsvy$NDmfNj2)EA%P8Fj9)#Nt7A2s*W*9SF7qY2FWMxh!y0x_+TTI&Oj9cC6e1MO=CSESPv$yzb()k)@xI*Fxsahu@MrTT*yGgB3*#&vFnV)evxsNh3mNtl(C4_O(W#3vSq$gx=rV87hlX2soDUu@HiZ5xqexQxuym&7hWXVjA35e2RTGa*+5(zA55p9C_woC51AyXHGTRpcaxh+Qn2Bu$6kggwTZjk4X9EW%WuEbgte@PF93!xseFNwKUDihjB$IELxuuUoeWTkBnP=JBb&p9d$BKDB98q&+lT7!ywmlbpFKl1VeT=h$csV9kv$B3&=2igV$fnMtdLfu$Zn4B3shvcNgsA_mwlWO9a3HVo62jKovm%sMriIh2JlqU4fw3k@JxU#@z$OB^9yK@bXi873FHO4oKYQKy!utP=Yfy)cNMc5HLWSUY+DFs462J2PbAlX@_skgg&X*)9eKopu=of#x%NdGg@Ym1QL)kVr$OHmbqJ)w#WQ47n4qkQdRrPQ61)%zVG%j!n^Vj=9rsmxv7I^Nr9GR*5mYXp9Wgt!d7q&7q#v8A0c8t0Bz7FoD89A1QJiOT8*H5+JmlIjM1sJ#7oZ7nuJ4JR*KAbJ3Bb=ZKI8kMjvpmsuwZbHlghiLWv0rFiAiy)4fue(O&!kNxThNsga5dzy0UO+Wzli7ynSV_TcIeOO=OHQbyr8ipN0+q+eB8CEWz@Dk=wY=d!zVp)kT^apVT$yOxxwwybD%kIEf8^hX!^See0A6Ib_dL2QDMZm8WgWbUv3p!oek#4FD365iwN_=etlkvXR(VoQVk(0!N)+82zp_b^=gIpVZLe@!NE3W^9uE4lN4RR$1EA5q!tfAZrZwcZ!R!x(u2n*4NT2$kWv+NdEnZbBM8$zpF#)zi7VVssJS10RLuRdg0LQQRQ6C_zb^t3Jj(XwzGs6%eZW1aTttXKzVMsBk_8r6=o)A_o^mp2t&=^!m*x4h+F)@kOqPCpFc!BtgP0MaGDQEaJ#fVShexVEaLM87BHfhyJUI3e*iOCP*)g0Dcnc5GJD)GAZl2fSGF6rXui#hw0KV)ZscV4aswWt2XiT+q6Gf8CwDftyQWfarNllEcFa@Yecl=kJ1X8_I0uXLQcDp3uoZm9C_34r*61Vf)bPw0TT)(!^e=sBT063&@cGM4_kN(*o9rJomyPzh!*&vO6GWwWS#ANxC8m%Nh6h#E^gR7jh$5I7+9@UuS2Rm7)OXn8_zye$W)usB6Yf^Z8(GA0Aw9vDf9&k815JKmAOqPZt6xjk$J*jTYZaKtXw0tB8r1nIMzU9uDb94eDL3xU6lmt@p_S5(oluy2UhFuJL6hY4lhy(=tS2ZfG%Ss%tcbrPUE=UjBLbj)DKDNV&PDmXh3HDFjS(HQz%%)9_$zXGFZKzY)^$qBKA2W7bU=e21hFMJ3tK2*d1&aw1FsS2T!DR9JAwjZ!HRq++DD&waYuTqrAvmAuUgnHnS17+%=z(W_Oq4H*3_ksi$ABZ!7Lbk)&t_d2_i3LirN2n#+nDrL(T98C!v1UYda*dWBQE^5dLQQH+T_mJMxOGO1M#ctxmET=wwF8X4oXc0(%d55XW)U=SK$EZThb^ZTF@U_A4ghg%MNG2elnqXtjvFToaRpuaVEK+R2g*3+d0@#=9u^6opD+SvkgTlVX7pTS&9MMA#zS8Ifz0wBXM*5tBM9gC8)y4lZkr^ahGl@QVvNYwbgjks%LiwLzetp^owa5PcnbsNL9CWTBog1Sy(Mrf6VzCGJ%bbSPE4Dj=$o+A6@1_S*IhJ6*yP6*v0Ni#+#4#$Ml8tw6FVcNFd!$87zyzbudwM&CJIPKMgGrG&eV6_8@zXnL@8nnhk*R5*WLUOVIvp(+cx2v!KmoVc2%ZtlkxKj)hkK(C8FwPSVvq&6)m_um^ybpym5(_ymbxL&ralOLfaUbH4d4_#^@NmmRFq3JO%8WLHaIT9bfQpXp=c$0sLBmnq2Cum8jI$)$OtfE2tT%JrJ5XQqAcL!QysUOzXlhLJ0YH8ICcwLFfq3+f4y90#duuZpbjU9$nH3a6Dsf7v^=QedZ$JZH$+EsoMTDL7fkKoh*iKk%wfd!ouHJ9J+r6qEg7&Ybvr@biJ5hx4Z7_ZJ!jKEdZc=&%jnKlGu!xE9G(J7Pg8SY=&xkx9@#8Mv%vr0N1EImeO_yzQ58Qm5@q7cZ3CfVqiUWvOCmzHe_#!wI^0=KAjx@NvxCjx^VT_n0CUb7xy5K+JQ+Xv=u=%!9Kp2UonK9Tw%3$M$dv1!LCfrecoUk)Yq0Ox*t%C#ZX6GZ&#RbZg2&ArFs_c(0hHCqx*+F7P#r5MO!Qx0wrUNDKMgn3N!T82l0f)R#&HNZtyOc9Fv61vDBOK&CaBSacejQ&xUMd(Ay^Qxj1uA^aSg6mY(z#kiJIhp%lt0+d*sG0l%T@wmH=PaBGGMZn9^8ckppRdR%(8U_xZ0z!rO9d_HGH&rU!K#KzlYz!=y&2D6%F^yZppH%D6xeH=6DQ9Ab(#!1HP#ejWHEN_AyVWqgUauVU8Nay#!ZMre)vdbUHNzC4uoa^8ZIAPX38AHy=lMv71oc&U3Pi8kML_7#TRBRAG#ASxCfyzDAmBJpIm4edk8mIv!01h7uT4HNUcK(a8(MB^880J$s&ba0yMCygO%wB2%30N#V7I2j@cd$bW=__p&lNNNP!uj5QcFGblSR)*2$RWdCEQWf7Eco&wO(%6LJPGvygkqHKlUavE!IZQiDb4TaVDORQDuhOf0E1yKqeTdzRYlq*D_SE64fYTd6jIxpgoxP_z+Br0#9J5Ban9#r&VERKS+fUi^uB8qDDVyaac9TcW#eB(U=c(Z78Ak@faK@#HHY37aSB6p+*uNlbvjzG5fiyt@H^e6y$i!qMQhB19XnC3pp@RTf_ANVM4VlF&VN)*SBmx#&9gotNleueRIqZ8dufb(1O@mNLiT%o*2txN7MgoIvMWM+3FtBLk$OlVcQfa+IQ89_4xs&p1mqePW5eoB3DVqU^RX_BelkJ41qa_gidbwcHfkHOmE05WYt9O+@zMYPmC&BEOb5YRK8jM+5gkknyL=Y#cMTwRfcvsE=^meh*YVHXXo8E7xU6D3!s%)UClazIo$$&9WqfCT@^oRsd^i7LTOePy(qzd7RV$7+_E+1Ed_U(+J^g5oyETdrIhDOLAP!Ao$tgL^VOwL%!zlH8XxfB5^8gjVoQTMgu9t_dJbQ&xs8(lsx0vt^&(aDupC!qpqrI5V2yPTcTQAt0HBO1g7Hpgz6mNy0e&nCVsVLiliTCjX7%1%XbjOgJ_2@@V9Y_kJmOlmcskBXEenQLQ5c*UQU&htZ&xN9dkU^*#MDXZ^Cg&$mPM4Sqk^EoK%^lQcZkyAXDz2Hmil4vksxMs$zO60T%Pog7pYuXgdoe=CL^=En4Uz$1u=Vn#NToBi)AtuykMg8@FWZa=rG%vqO^h^_xd(_@I1+4@E&fl9o6(C+^O7E6vVY2W@HXojBJdclfRDbER5evoN)wr%!=QcBP6D3=kk88T5L=*dlCiXKMdhz*4nOkegfA)iCFWy5hjb3VsXhKS*IAO_^WNc=Uve5Uk=rZR0rU4xr0O2ZD(tm*sVzvgxcULa(s#vtML%0I9Bfh+fGzzI5p=J+D&cxsmVfzg6OnG4t2LnEBRZX8WG#)gmYDU0U&IBFxgD80MYiR1P6fK)ebYyrwOfqEsOt3@Un@J2zYXM5FA0eqor*dONl(%aXL&#jCmJ^wpfhV43z*+DMcQ4huRQiMt33P+lxS(7%3#n5AvwA6FAf03AW%wgK^E8jJzUu+yhtU!w+8cyjON!P$(FV5XW0(flyfgih8(21ldcG5owO4yIGCd9M%m(Xzp)XF8xX(Y*vt!sJbEqx((uZJsU3p3kgIH%)s*Dc@Qn&kZzS^*BownVp4p891@pS#rhmG1MeQ^MFNGJY3d_zsEa%Fqj3dCX)OH8AxQ#!Z3x#6*W((5VHEtM5Mf@JL_ND8A+FvQ0N87)pXu0C=tw(zNRWTMOef=3KOSb^6YB$ccOL3O#HqW5D5wN*Do@=vm6AVAcpWY1hX^t6Ahw(!vEQS5A@0&&V$m^WhFNNjLCVF3M4IVWAbtYxlMXNrzAY651XZ@npkucPQvY@C+ruZQq!dc72s(HUxeyRa04F5d(CjO)Vbn@yx@UkBItc7XS!CreKXqyN$am8)EFJ6Rv=A_JRwRh0ouccQLlqxzMP^Esm7(GYP6)Uk&9l*xoqylWtWKm2gWPj(4PUhDmNTDy$4WN&=U!7irvtv2TXcT)Y7Sc!vLaucEuvk^*_$iG$auU5BED=+!ehwfpPBxORq(qqD)YivhptTPplGnK55cfwF6FhZHS6yr@tQT5vRJj(YyH(Fdasr1Jq#R_H+tC#ssU8fBvQQ7l(MJ(=CM5KW1b3fWty2_SY5@Sc9Hax%0F3ny8aoX_ASUPIN@zAZ2Eeq6GC1Rx2dVPvXuQKQWWArZzY$bQ*mqTDG5P!_P1mIc^bzfUzf&AGn^6R^=c0qGQpv#F$#Jj0qLwCS$jNL!r)tD+rk((ExT&XHjrdbPiwJtv2Q8MtSBtP^6xp6Spc@38Evm*MyjVcm2iMg=hI!Sm_drDmw)o+&E78^czbpA8EMIS4h&VctyICJsepTsaNqJMBHToL$qcWvZ5fq_LobbU1)001mmR*w+vt4S^Vev2=3Du8z%gLh9cYh7r*SQ31H(d((C9ajVA7NW7&ZNv5#T!@LM=si(oUFfJoGTNlcyYKfom4Es$u_m(9K!ZnO#ZT2r2*G@$(mVAgNx7iZ$H^8!=wIj1(H+PAIGmQ$_%H*+fAGQgm*grsH5Y!h+Wzq*#Vz=m2YF5zMntGUUB%E2+$uPmV+KzKpDescN550dMT69*v@FhGRCb@CNAgtXjtR21wfLCpjC!8t3(aUV$$RF6Al8L8V$UOxxN$gF$jn^hB(Qqc%cAfPoSilTsLH_sylti^L4nvQjX0Hs1Lto1i4M@JQN0Z5kMVbE4_3p0Djr^F$+QBs6XRcX@qj3DbXAnfnE8NgVp+FjOfl3Ii4#C^E4qCUCufxktn$l!evZe#R^Wt$&wzLDRHXXg+DAAgiHqNA_Rs$7Q6o&hnotxoDC3(^z6)j5CB6VU)c@u$9bjf4VoLaa8q%4GDI!WnPE3+PRT&dS+J73J!!Zf2GfdSzJwCwn0oi$LVGqnnHKP$9RJLSWTc8q*Wl=+NgBVyf=DcoZMUw@y+llQWXZ%)uY(3urPC!#U=(7DDKjV_EScJM+k4e4+ \ No newline at end of file diff --git a/testFiles/6/f5 b/testFiles/6/f5 new file mode 100644 index 0000000..d68c524 --- /dev/null +++ b/testFiles/6/f5 @@ -0,0 +1 @@ +=zKMWLy(hr7uVU+hyhRTQolosCU40)RUS1c%z&astwsHl7qiOj8$*Qzk)U@crtb3!BBkxDl+6ckBw9V%*t!c=g!H1PbBEPuuV)^bmR4vFxO^P*&9d@gYb^tP+q=FtoonM4RB_lladyqm7h0o$H=9X#ym+OGi2W#$e3x7i*!=OvoVuyZB3zi=6(^2!R+7ly^7b4jF#9_ZxPjEzm^cMrWtpR0tr!av2wA=AsGu+d=8W3%iCTCfeXw0x=MV_8JgWyg2h4bK)!LNLUQIY&wqf7Hq#l#ltY)^gIuE=JLtzsg(($e=$MPKUBLf7LBV#*OU3xgU+CO%HSZ*sC5)TMV2!Xp6#*YzYgDT63m8P^sq6&1pCkLK@ZI8ljZ^W%WaDK0YjR9y64W81n6C5j_PkRN@qARgF70Jx*%xq5=uHYId!CKr1cry7ewP+n6AbzN@R9@k23##nC+rCFVSrLB8fL^tMSw(FTMkH0RYz0TMgaB9Ov(hO*Dst1r)%EArfn##SkgSALvRGs9@H5t$pKiMk9crlOK3Mu*2v&%J&(zlTVvH)Wue*)7=)d#XFi)a=n_=29trXN*3udb11X*)ci9!X(nBO1!5*7X%W9ynd_(gFRwowc@wRGp#zX_nJJr9VMU*M6Bkdo#nJqcPH^u5Bw!e#SDxnuPw5N0EnR2xVS=K9UC34W0%u3eakoE)j6#EciPbF*ssD*DX7#EM#W)g1B)S%(FKz)FHI9M7rLNhc7FSVh_2a@v@8WNGaxxb8JiROEbnMbK9%ptth&hNyD)rd)$2ZLdL#ec=scW+nEh$asfc9kQv*@gE58Gi2cK#a*5VwnzJd2alSyTVqBX2uJK7ZJ@DzXsOdncK9MsoyOkfmKddsK_YW&#_*QmgWD@$lZY2G7jPaDnT5BYsIEJK7g!QyL8aqx4z3zWPaO7DFoylunjS3XIgq=qf#^dow&Ns@swtHGiY^BiCW9VxddD54Hj2g5Iz714(CVsLYvH8V6!4&s5jZGvgQSZiVm%bGR^HLq1ONz3q&dGj8$F7Z&wZ!1Rtpc&rK(N(4w$jEB*Nef)t(GZAzjEN4Vn@AMDb$^)znGNnTe=S(H43SGzo6VPd$NXX+3tMSa)V@Hi!)^U#844IjK3BOzj07t9PUw=GjgOf66FGL+K$yFihcD2r7peqTArVNm6IFK9LyOD5mIAY!a&P9+vdP2n@pCmu+OW2lVqD)zTKvIMi#fVrf9E(RBRZb(%X*(FqOvYy$KzMNyHUM$jMU#f4JfOle^gZKAxSjzA&4I0wHs5SmPuhOEE04M6rXXJEAP*JmT5_sf8ZGEsSDgyDOf5akwjUBjutY_4NNnclAX^)0wZmWI47enc1hTdotR*50s9hAC8tLlC&6d7B^$qGpc2bOHOMgrgKNKE_7ptOxwFWZ^GP5%kt65CzL+MYI&Mf8a8RxyHwc!qE36ymuo57mJ)htu9C&oG0qftfo@*(I*0PEDTfezueVBb!$@(dsty_dqfW7dt)rx2(KUkkO6bHP&r16Y82H&*O2o2r%@vbvlpyySY(5)FaYZBCF=1(hgDg4WX56qyc83NYTsLslm6gceoFOYd+1LHMVF#T3W+y8@3h0J2Y9YbMj0en9=qCR)sIWaSQ!#oZ01cKoCl)p(s9emVN5@#=X%Af^#^q*kGt6rP5#lO5d1rM4#U5vjhujmaXT@=FiSfY9XsZT$=UlS=nS7BRWl%sECPR#SY*OWX*2K*ev7_90!bep(NLjR$gCvz+u2fWpqndUkkc(wkR=$*&uo#3IIbZfc^3%V9Wxbjl%Ihxt1v6QInG9i_X0_@1ae98u&z*b!8!RtWhH)5+R%BH6N2hkDTZ^j*NB!B1ihxEo=CqePc#fD9ppdzHo6_2WL_M=7b6Ns8uw8i$6YWrC8^AxbIh&$&uZqxQ@82fVjntzTFAgZ)xqmp=twzosY85HiAj!*YCxrjH5DneL^dN^r0GxC(BW#tTS0NcQV6+vJzBA50JTZ5Nx*IuV6xuQvwiiuC2Fc=ITLPE(=_aXZsZbTiFXB!*@Hoqu=f8)&xiw2aUqN!nsF*Dj$zWrtog$Hi#_56S#z1YF&dy3!@TLGGKIU30e7X*+tYuWA1IEBfp0*OsprFrD&)bA5j0@7ztZiqy8HqRNZiu^*c&L+)FVRD$0l9kK)DVSYwACd7Ff75aZMlt^hcl)DDd=1LEOt$q#DuuDS$RYxq)Nm1BWw88CO6Tme$+(BHh0Fu0Aw^ouCmmxcMJC#PxW&dIea(@Z&EpVY_RKunw@y3!RD8Ujkkg==X99knKHr^Lz@g+zwL7z6Sk7jCe%TKJI_S1RfnnJqUy8Bs+=^U4*mlohCJPTN8X@kT@uGcwx+lN7fI3D9H5Tjfd9Nv*q7ueT)lig8nXToR)FUlt5^*9HIAxmRn^d_6gUrLXfq9$t=KgMYl5c6JE=xylM_Im7d1ptmQ%z3==rommAqrz*7Rlw&h&9k11yQdh%NFD(0G8R%rJW6&mbd0Awj3u)&=epAqBsXB@yR@7Ps06M+ga3q_196I58WAEFS%PPYAC8Hfqe5E#KIA!0pC6#uyRQ7(HihCaa0(9R*0F4RdJJsoXPM(!Kbz^=p6DA4gU$Ff%!9#3g7m$BBa5c+E1C9_)VJ$+qf7w*Rjn!U@wu+6SmuOqPOjroK)p%vb&yAGf7MfYzqS)QN2+JrX#Ctw&xR1wA%+2Js^GdCfRAHikqjxfjwrrutoR*ZH#Nn1p1vo3LIt^0A8hT3$jJ0ps=6U^b0T6TYfc*^x^^%pI8Wx9$q%E@TWoVj3TUUPY+XYm2BgYjeOXQRK3A9Ts&@C88abRtD(^ADCTL^2x$1&CjCs3pik$rJ+2)L7I7!8_qAQD6!q^xBd3zGs84%^pFc$pkp#oE!ij+6Cg2w(F4u8OIZypKyhwBYn%tg)5n66s@wtx=YmaIsfg^*dCD(_!@tKD9Lh%4#G(2t%PFvK+H19HOV0UEV1RpJ1^!JGYPpG=Hb43S_5X9Ombc3c+q$8(nI@1(9Dl$I&NmrxiSELn^cqba^aNNeiOFRrwD)67^eb5LAmQ5Nfr_kpHL#TW)Vh2x+uiWoZ@xF5@cG9oUZ5J*ZV)Wl6#QWgHSm=lQEXzK!iLUySn0Q5QUv(mo5p0m(YgLu%ey23%2LXjiZUtrwdc3=fuQ6rKsPUG=F&1fN(@6vy$_ZLx#G+kKB+168I8s+wOo#_K_KFDnKB7vl3zsLB^!kn(Z)x+(k3jf#3p*eEhVWJApUfqw6hG$RqNk99GM6Otl+P%DsWFK@vK@1w=JmMrt&pidqAEJ=Yx$lXFB7gOxSZ7TK+av2=TN4zrsPPLXbpxdUNkvT$klPBGtdr7Ow#c+5XCpXtKm+mXWWyj_bBbum)L#s*2UU=41!qVBFUPxsR_gV3Ls47eMlyAs6pt)H$PbWr(NI3OArAc7lI86H@t@3LK#tv*yb66d*#r(AVbTjuSUZ+x^BOrV9aE7AT0%RgA7OlixjPgoCxgy5P(ho7hTLYVM2DPZ(Wf*rlL877K1SD0I#W8Tu)T9BHfPdB^%2LLjLRU8%$1cNWcBaff0gWJ%gs3Jl1bf_KBo7jvjuIOU6zl@vPfclrAl2_*eOtOMDOx0^39*h(++plcd((jyj#OoHppKkR^w^*AtKj=PWBB24DSTLb(u@#x!XGm+fl9I^63cHG@O7fZb!&6kACKtsXgZhroid6K+_OW(5zRJlmT_HnYH4K#2r*OVWDqeR&U@YMWBmSf)i4Bx*eL^5*X3NST5$@a(#vWRqz5hOpmvJsVex6swrBoun+Y#g*O&fz98JU+7yLVs%V&1k_8Zzo!wmQF+Nnl9oS0Hk49sH!sg%ez&1y5$#=ECt6lNQW+D95pV(dXSj3vqhCOX9_aKQIM)uq04McS090q9zv!tM3yhPsvB=$B@8doMAI8tw#Cbqv&%#Q2(j*fLZ&SigJdcAp^aw0pgutL3Z1C6b_@+nhkJMoTjc%9AK**rgK6rP5vmXfZQ!X6QR=LM&Ef$Ufrh!+oc9vBGJI0NlKXJA2zlfm1kjs=ueZp26NFx7G&g7=ckg36nF6va1Sd3E&a0z#B6&#tM6hr*H*xn0+znmZwFEilayVR3PCeJ8#C=EbF5i5P((Uge4wX@IzeL1DOqj#V4volBjtpbfrXp)PHb^l_oE#YqPXCZJ7qP2yGIVHfr#MKsuptm)@N=NXAIxPjjBKMw_(bu*xaae!CGsXVPoTf&Z2yRXi_cEczM5P(KNkVyiq_J^T^kzQA5xv2I6m$TI&tS5v5UtlZ!1(=s4Vj1tz%qRE0zCdVz^e*(jaBey6E+oPza765)=$EmTCWK%v)HWpE^7QPpuS*3=9r!WmKyFjX8l$+xfcuV*Nnc6Sl^caHOU6iBjKA7w0XoRh4E!N2u5Fv0AodzgYb3!NZSuEQ5Q8XF(8Icl)=LCn3fpCsPsJt&t8&WlWz5TX@!)ZGAz4D%G+6$VrK#4()QNa&n!x@7g8r!zu0NC@$hPJRiX7d=2%WE+n(9_Cjg^&5m^u_FBQvj=RoA*_NEpxFe3_Y2UYvG0r_QZU_aL7CazZdlpDq0tdaX)3H%v!N(j&aR_RxhpoEYqU7GGA@c=zNLcf2L)CLxl*NzFa+I^fdNwWfhR+n9iXa^AiHTC#UZEU3#3fSStVKQxLERSvO&1p#J90CDqV_=WM!BIS*NP8qtX^3K24j^E+4Ro3dHHy#6ArVX&#a=YuZjQ1rqHLAx=ZmtoX(uSPqG7@6ULtu0$6bTz8q7hFkGhKjUJ1v=6b8&OhLDyJ@jQs*ZHo!8HFI9JPO2=SHEX)!w8m!qSGvHgdoI4vj(ZcvdnD=)SouTCt7C#uuRT7Bw87dNa77FGTaz_B_OXn^m_MJNY1vR*m+spi7#u=TtN^Z&51ze*nB@(Of0q1$82MAJ1%lmsY=9Sj^5IY9Sd(X=%XxoSPdpuy$afC4hI4XjAt*V@#s3J337n2BYsFq_JzbBqp5G=gvL1PJ0Ob%gH%BK89rZ=G%zpMYcAQ#nL(vwK9Vwu6(J_KRqclCNM=0BG^2WYjzYQBzR943+oCc86%WlbdHZa70Er7!Pr)3R=M6fGUx3jTL2EhP#1YSaL#yQe$j+QBgYiX2wCz8!1(6z7^bYSCTx@8ffYTnsZJOZA4i8Cz!3kdqX03mBdzqmfO!xTxT4u=XF3TAGWJg&xS%CHGM=j9Ke+mJxeUD5iyQU37^!R8_wSYUMk#6Q6R2lXZ(BHiIHdocfY2OP9jQ)3lSZO^()ekmp&!Z%N#D1ooyJ0F62B3cQ0ll&TNItO^tNL(5kd&iXQDHOLS+bKimGZb179NBi^8eNhnUI3NPvTywHa(YuM7lKhMq=QkNfSsr88Iqhp1FOlkM!toX#wOFxo9xMpQgyzEl0m4^PRn6im)tKQbO4V3YD(7FMQ&mPsNW^h$S()KkCRy#fH4Pxx1&HiBJ)xi(G#Uezs+ytO71n&rKOj9Yo4QU+w$U9Fa22nCdqB&%JF!z)!ZA+@KY(XY=qTH6pn_i!yZ&Z$tc&wG8UJ_2uV#e7azFTfH!Yw%YSAhTgpJRT)gcI6#N!Rb!_4r019dq2wG^i56GH0bqO5+mBp#)9rRSKEMRDR_a7OD#0F+9ikjRyilW_si8vHEe=GREkl3KyomHCss2DAVsw3&8#%t=7pbiwqBJ0dTsS!yZjMG314G6cefsW)vS^DyIr9Oe91C$NIAgdiMwIGzo_!%WO@m)g@%SXPmxUrd6Ig8td*wD7O)rBefQmwly*=TlHgyr3QM$L*CFYrGCPcyPazAt3v@r1k@wff=YZ!GgPkA4R0aPmvOm&x5ZUvZPUdHui0IywP3kfLhlaaDEwUkj!F8xC=eX#ylFv4YowQ!X2k%G49CNmQ!vz1m6=TNOHChKNy4u9Ji!m@5*UNL76Uv$CgLNVmFIFlW%s@(DZLzv(6mi&F3R3PZ0$2zU6UJRr0sIJUKTK2FCijcEk4Oe7a!4rHHXew9Vf&ufN$60@WhveCQX=@AEOs4hw0yv0n2pDp8U3if(ihK^knUGLc%N$YnZls=df)TMeqE94X72INt@!BJnM_xQi9DBccf8*v%IQZGbgkifpjhk7UgUL$uz5vto@mOPmdf%I_&_R6#*B3+VKnOta@NLoE$vU@G9R12hwT8!d2bdk@0_w!0SFr8MmOs=M_YON&dD1jM@B19TlUr4amE89djU#r@#hvsgH7tRR5WcZzx1QT_tdKll^&Q$$D2IL@7O%7q4B$u^m!^e=+J#7tUt7T2fX(mwCbUzVyvjg(7UyLA#Y7P&M3$aH(f&grJy1g3w&xHPGn+%OV0X2AJjd@ykQ^8pbww=ppPS9%zzQa8JcD&JF&o$rV@TBLAHmGA$2t+^Y(PVFjatsz4^d&qIqI%dvpCll!*W7PR@rV=v$GhI5O5Y8ke$UUFY!*4JZU0dwbLQQHu!E&rH+d(#EQ7q*1YaBsr@=IBxWr&SRfl2c9DvkQ8_zU@bPr02Egf@KYNkRE7G+nr4S5OUm_8bI)aeL_zUwlBL2&0+FK+MdR=k4GT8T=QYIhNBT$b0db_6+j&ExE@4#Q68XY5Zd31FNxZ9rRiFXclp=8i=1xYKSQ1a*uKY(23DvO9%r!*qAhFwoZa!SGx(ZMrSrpy0mneM&=cB5m7oQ^m^zF#UTbn)wj^rAaDzrgzm2!*0&ylJVC#JR0I8M#QC=rduYyfV^51hA7hTlz0X&zFjOu2fNld(ZiV8*cgEScPFbDwuMsFYRIKPcZ*@eGUrozCQvHX#nhG*vIRbqBRF=Q9l7zEV=oqD%6)+Z=r)TkZ5n_(mUcMcWQ2em2Bfm(4_rJ)sGtxp#!spUcNh*h=XjS)PNsWu56&*ejha59$mNgYorq7hKDvqot4Td17KX0%7r*G3TB6WvT22mZdBlxexxYC#l3VTxrC1yE+Wr2&yL=SbSGxCGHlHY53@IH&jP3hCogQ!2T3ZH$c_7xQ^O_&0&cKMfOt^1XNne5P!CAU^AMd+kkabzoyMy4ky+KrYuCHvB4iW6eBYTjG7J_f6PjE*O7K&pmDGZH($=+$tXKqX4O#Pn1dtceRlj5BaoC+)##oK)j6HnE4q(Go2Aya%94b8v3$Ito*4n%8!x5y_kvJ*PffC2hT927maxH90*G3L7_cxx)FoKvV$CGcw%wlOp&E3+EZF9_sZzBkQKTSh*UUSE8Ajgoalm@YKIXu5gfkfs6$gT7Sf)Sgjnx&E#ndG4Y0yomTE3fN9z7fBbJc#d3zh8s=ujg5*4P1v@NTjv6Yzc=2iy5++14SMVEu*b^l=e1YHWUj=P9Jj6)YR0Oy(zOJmtTDThaU5w7*UdvlolN$K$2mz$AYsr_hJ#mBL^cfVn6y*S7b+wV7FMgz5OGMy=eAgPG=i@NNZYk1Vx#_yItWc_%I4gf#6gQs2cX1+5n&SuP=gw6vlYW3QpE+iDf)Tq96*PNW4=k&8OS4Ajg*)CzY^_!2i^@_VN9NrB!rV(daon_Lh&zUY=3Eolh0HY@)v$KQOi1HyJwh7gLrgAA_G*D#1Mgp$DSJ6dH=H#CrJtT!N42=1K_v*Abpe36rf3(j)Jk7ao1qD^ymiDpmf_*OjIfptJpA25HjrnRD(Rp68VJj(F=J5ehg0nEk3@uxaRuR0Q*MJ2zw!FJqx*HvR5fcrzn$RsB)F1bZA@4IgnuQ8$Psb4FI*@fLQRpMK6xU*Ge1rc=)S=(0A9pXMYFXZrgebZb0@ly#TL3NtT@rW$8Is7Vnurxrc*2gT@Kb&^vnGuCfCq9gnT0mhQ@8i8NvHAVvPQy$x0%qCJm)fWlvao=v3^Tq4RN)#vLelpW+WRVZgB94N%qmao!3(LHI@9M@9HG2wy6_pKs16&qTy6pTEth@XBY=OEST3Y5*0n$GnsEyR8Y!CJ4gtOhjQU#)m^zSNMUH*2v304N$IZMUSu8isH3l9kRa#pQBXp#ARZK5LnZYzShUIP$QVIDOX*x69+=yij9vagO@pt)!MGxRVXW3SOuZ(S@i3VP%UCLO9YzGdY^#FwKWK_jZU=_U=si*djHEsrWMKew$L#DE%ZK0si@^lK5%p#=STU8k9@mC@K*zA+sTd7bC9uS9w1byzEP(20BIr7%bol1faX#pwn!@8BbB)X5O0_Yp^&1w4Eg8HB5@&+ZSV^@uS!&#FydLoy!IM4uAWl%LkYGmuNQmcCa9GiI!Brq1@l(s!VF$%xA!#VHNkkH3sQ%y4neK6AS+Z5Y2adIE=st0FgWheP@K$qg(&EQRVXqE)P6CE5n(=CP3BaG*J=Ky&Rews8Ogg \ No newline at end of file