From 88b28eeb52dce60295ef6f6267c108f3148e171c Mon Sep 17 00:00:00 2001
From: Daniel <dl3g19@soton.ac.uk>
Date: Fri, 23 Apr 2021 16:06:33 +0100
Subject: [PATCH] Solved problem with having multiple dstores connect. Problem
 with receiving messages not solved though.

---
 ClientMain.class                   | Bin 3291 -> 3428 bytes
 ClientMain.java                    |   4 +-
 Controller$1AcksReceived.class     | Bin 562 -> 562 bytes
 Controller$IndexEntry.class        | Bin 2012 -> 2040 bytes
 Controller$RebalanceMessages.class | Bin 0 -> 513 bytes
 Controller$RebalanceThread.class   | Bin 890 -> 890 bytes
 Controller$Reloader.class          | Bin 436 -> 436 bytes
 Controller.class                   | Bin 14191 -> 15913 bytes
 Controller.java                    |  88 ++++++++++++++++++++---------
 Dstore.class                       | Bin 10024 -> 10483 bytes
 Dstore.java                        |  18 ++++--
 DstoreConnection.class             | Bin 2519 -> 3284 bytes
 DstoreConnection.java              |  53 +++++++++++++----
 client_1618914098636.log           |   1 -
 client_1618914115362.log           |  19 -------
 client_1618916214881.log           |  19 -------
 client_1618917382748.log           |  19 -------
 client_1618917653577.log           |  16 ------
 client_1618917705050.log           |  16 ------
 client_1618918167755.log           |  16 ------
 client_1618918283040.log           |  10 ----
 client_1618918339157.log           |  10 ----
 client_1618918660778.log           |  19 -------
 client_1618919054780.log           |  19 -------
 client_1618919710976.log           |  19 -------
 client_1618922219091.log           |  16 ------
 client_1619002254815.log           |  16 ------
 client_1619002688932.log           |  18 ------
 client_1619002774548.log           |  17 ------
 client_1619002831484.log           |  27 ---------
 client_1619015946719.log           |  57 -------------------
 client_1619016557204.log           |  48 ----------------
 client_1619016975115.log           |  32 -----------
 client_1619017037535.log           |  48 ----------------
 client_1619017290151.log           |  57 -------------------
 client_1619017624104.log           |  48 ----------------
 client_1619018158905.log           |  61 --------------------
 client_1619018768533.log           |  62 --------------------
 client_1619019036315.log           |  65 ---------------------
 client_1619019325145.log           |  65 ---------------------
 client_1619019601175.log           |  61 --------------------
 client_1619019802665.log           |  65 ---------------------
 client_1619025053448.log           |  62 --------------------
 client_1619025357100.log           |  65 ---------------------
 client_1619025636890.log           |  62 --------------------
 client_1619025719814.log           |  65 ---------------------
 client_1619034515898.log           |  65 ---------------------
 client_1619034593200.log           |  41 --------------
 client_1619036545308.log           |  44 ---------------
 client_1619039097527.log           |  26 ---------
 client_1619039957471.log           |  26 ---------
 downloads/Grandad.txt              |  14 +++++
 downloads/PumpkinHill.txt          |  68 ++++++++++++++++++++++
 downloads/SnowHalation.txt         |  36 ++++++++++++
 store1/AllStar.txt                 |  69 ++++++++++++++++++++++
 store1/Grandad.txt                 |  15 +++++
 store1/PumpkinHill.txt             |  69 ++++++++++++++++++++++
 store1/SnowHalation.txt            |  37 ++++++++++++
 store1/Unknown.txt                 |  75 ++++++++++++++++++++++++
 store2/AllStar.txt                 |  69 ++++++++++++++++++++++
 store2/Grandad.txt                 |  15 +++++
 store2/PumpkinHill.txt             |  69 ++++++++++++++++++++++
 store2/SnowHalation.txt            |  37 ++++++++++++
 store2/Unknown.txt                 |  75 ++++++++++++++++++++++++
 store3/AllStar.txt                 |  69 ++++++++++++++++++++++
 store3/Grandad.txt                 |  15 +++++
 store3/PumpkinHill.txt             |  69 ++++++++++++++++++++++
 store3/SnowHalation.txt            |  37 ++++++++++++
 store3/Unknown.txt                 |  75 ++++++++++++++++++++++++
 store4/AllStar.txt                 |  69 ++++++++++++++++++++++
 store4/Grandad.txt                 |  15 +++++
 store4/PumpkinHill.txt             |  69 ++++++++++++++++++++++
 store4/SnowHalation.txt            |  37 ++++++++++++
 store4/Unknown.txt                 |  75 ++++++++++++++++++++++++
 74 files changed, 1295 insertions(+), 1448 deletions(-)
 create mode 100644 Controller$RebalanceMessages.class
 delete mode 100644 client_1618914098636.log
 delete mode 100644 client_1618914115362.log
 delete mode 100644 client_1618916214881.log
 delete mode 100644 client_1618917382748.log
 delete mode 100644 client_1618917653577.log
 delete mode 100644 client_1618917705050.log
 delete mode 100644 client_1618918167755.log
 delete mode 100644 client_1618918283040.log
 delete mode 100644 client_1618918339157.log
 delete mode 100644 client_1618918660778.log
 delete mode 100644 client_1618919054780.log
 delete mode 100644 client_1618919710976.log
 delete mode 100644 client_1618922219091.log
 delete mode 100644 client_1619002254815.log
 delete mode 100644 client_1619002688932.log
 delete mode 100644 client_1619002774548.log
 delete mode 100644 client_1619002831484.log
 delete mode 100644 client_1619015946719.log
 delete mode 100644 client_1619016557204.log
 delete mode 100644 client_1619016975115.log
 delete mode 100644 client_1619017037535.log
 delete mode 100644 client_1619017290151.log
 delete mode 100644 client_1619017624104.log
 delete mode 100644 client_1619018158905.log
 delete mode 100644 client_1619018768533.log
 delete mode 100644 client_1619019036315.log
 delete mode 100644 client_1619019325145.log
 delete mode 100644 client_1619019601175.log
 delete mode 100644 client_1619019802665.log
 delete mode 100644 client_1619025053448.log
 delete mode 100644 client_1619025357100.log
 delete mode 100644 client_1619025636890.log
 delete mode 100644 client_1619025719814.log
 delete mode 100644 client_1619034515898.log
 delete mode 100644 client_1619034593200.log
 delete mode 100644 client_1619036545308.log
 delete mode 100644 client_1619039097527.log
 delete mode 100644 client_1619039957471.log
 create mode 100644 downloads/Grandad.txt
 create mode 100644 downloads/PumpkinHill.txt
 create mode 100644 downloads/SnowHalation.txt
 create mode 100644 store1/AllStar.txt
 create mode 100644 store1/Grandad.txt
 create mode 100644 store1/PumpkinHill.txt
 create mode 100644 store1/SnowHalation.txt
 create mode 100644 store1/Unknown.txt
 create mode 100644 store2/AllStar.txt
 create mode 100644 store2/Grandad.txt
 create mode 100644 store2/PumpkinHill.txt
 create mode 100644 store2/SnowHalation.txt
 create mode 100644 store2/Unknown.txt
 create mode 100644 store3/AllStar.txt
 create mode 100644 store3/Grandad.txt
 create mode 100644 store3/PumpkinHill.txt
 create mode 100644 store3/SnowHalation.txt
 create mode 100644 store3/Unknown.txt
 create mode 100644 store4/AllStar.txt
 create mode 100644 store4/Grandad.txt
 create mode 100644 store4/PumpkinHill.txt
 create mode 100644 store4/SnowHalation.txt
 create mode 100644 store4/Unknown.txt

diff --git a/ClientMain.class b/ClientMain.class
index 6bfec562108a26e9f8065e1feb16b11e6c7d8ab8..250637acb0fc3986e4b8af3524b3940bd8e03e7f 100644
GIT binary patch
delta 1120
zcmcaD`9zBA)W2Q(7#J9=7&dR@@?)uIWdH-lFI)`y3<c~Ag**&J48@EL0$GV=iTXK-
zdFlEg8AYjyDU1xP#W|^|1&j<V8eW=V><p!h3~~rXo_QsyMMb3rC8;T{70IauC7Jno
zTnr@)AzTc03>7>Kl?+vk3@kaB#U+dkvKl_lIhm<>CDxjg%UHzOYIqoG8R{laW-;V%
z;9+QF5Mg9s&Mz(DU}&CvnMH}M6{Ndu@^2OywhkT!X@<_pvaB*}-5_SqWP8?9smY8C
z!qGkmw*;3IW#*+@volPce2!I>amM5?tbu%Uxftd#%x7m<0MfT`axmKw#>JB**yS0Q
zPPSmT(Ou5Sz~i5-qrj+;mYI`UY{kK_l97QmnlV;^k&%JNGcPZ-$T=smxHz?#ong)7
zh3t|n>lqnTC)cy7vavI4WMq(=T+b#qnVmyUr<Z|&L6(7$fsuiMfmLfe1LH;p1_nlk
zJ_ZH`Hn1QI11Cd2!vqFKhTh46994{clh1J28&70lV31&7{?8!Fz|77tiII_kk)458
z`VWH!JA)<zCxat{6G#UG1Je}-Rt8=M21cIAcASZf=93q2il~b)<m_O`Th1V2#VN_T
zjUjkB0~dr<*22!X{Qn6?D^}ed4CRwga~d*MPyWkkSI^DB&mhbo#t_J$$e_xg!4S!i
z$xy>k&kzWvI~htCW-`oYSi}&>aDw4H!zG45hQ|!g8D23&GB7d7GJIiRU@%~~52k-H
z{9|Nfh-CP}@D0po0{b<ML6U)iL6w1tL6d=>L7PFA!Jk2qA%H=jL7TyVK{tTGpFy7?
zlfi(YhQWxTp23izjlqav0)sxoGzJHTnGB8$D;b;_)-kv+oM3QexXIwcaG$}S;W0x1
z!xsjBhF=T;j2sMsjNA-C44{Df#2_;H8<$o6BuL0H{AW;R;ACWEXV7G4aAs$K2(vT9
zfWkD;lbxaD7X#Z52G;)!+zf1}%D^hv{xJxEP5RFu&cKDL04xqO>K6mse+E_t7O0ZR
ztGT%(ru=8%Vc>y^ID>N+0|Pt5l*wngB{V7-su-9UKuKgS12Y3V0|SHiCWd;Urfm$e
zTH6>}d^R!EYwz2|&_0=$N4~yZriF=7l5H157X!mK2H6%?#^wL-Yj0p+V1NX%5(5VV
z14AeS2SXSGFGB=_6hkC~3_}!y5koYCGeZ=ECqpbabR-y<{xhgDutCCt5$pp7h93;d
z4Aa1gl8GUZVLAgd!%VQrvlwPGFfd3luoy7RVPIrf1SXe&$z@=21;Z)^1_mJpCI&Z#
S)eLJLBpKE*Y+%^LAPE2=*zFqt

delta 946
zcmaDNbz73_)W2Q(7#J9=7*=fL@?+uRVz6V#<zdKU$e(<eMVqaVhoOj}c=8t(L;g}8
zhB5{bMh52m(h?4aipeIdN^DgimDQ7DSY_C1c^IS_>L%B*%CI$nn2nPcu$HoPFfs^F
zPGl8kW@qS{tk0&(*gH9tEs$>#7sF(RDeMeWK`N(B-okc-amM6Ic6r8GlV`Hqc+FvC
z;PKDaQD9U^%gjkFw&Gxz$H>4M%^0h|$jHFsnU|MZ<eZaOT%20W&ajY?fz2mBJw3IE
zk%1e;$jnO*sVqokXIR3>pgQ>hn<^VS!!kw&xycXM<R)iu$mujOFfhn6FfuSQFfg!c
zZD(NI$iTqB$k5Edz`zC;WMSZBXkln&U}R{TyosZVv3asCr@e6-0|SEu1M`0dQ3hsq
zhIU3q21a%UUg<v!8te?344e#(3{D^&3=B+b7+4v285kJ;OrFn~$f!P<kxN8;IRlp!
zrzGb#hTs-<#^wKSFj}$d?qJB7Y{O;9STH${%dVb_fuBK`L5v}gL6Jd~L4zTZA(Nqu
zp^_nxp_8GXVG=_i!w!c142Kv387?ziXSl@>$-u-Q%kYGOfx&>`JeYpP@Q&dlLnOl!
zhG$?t6WC8t3}Orn45|!F44Mr54B8B`489DC41Nsy4B89^47v>d4EhY23<fp~4Gj7W
zZ47n{oecI2GZ`Ei<}o-i>|k(aILY9|aGt@J;WC3C!xIKyhF1)J3_lqB8GbVaFn|K(
z9fR=XYHq8fc1Wl&{AZA5;ACWEXV7G4aAs$K2(vT9fWj;A7X#Z52G;)!+zf1}O2D#g
z{}=?oru=6RXW&9rz|PP<S(-<gv2(ILkC<a8NPQ&Re+DK77MMB)1_n-0%4J|;0LAfK
z24)6!1_lQ2O$;SM<=Yr!wYD)-`fOq-(cZU<p=R<l9{KtbnHDBSNw!@K^$ZN#7-U;m
z8JGXRuf2hRfdLYBN(>wf3=F{x91I~0ybNIsQVih?G7J$6MhuY*&I}O@o($38Adp~S
z`p=-szy|R!BiIWJ3_lo@8M?u#iishRp@)H)p$}|wKf?qD1_mhx76XQf42%rZ!Q@OZ
hIU7vQWth*vz#zoH#NfuTfMJn?B*S8cr3}j%BmrROzDfW9

diff --git a/ClientMain.java b/ClientMain.java
index e9fd2c5..ec60cc5 100644
--- a/ClientMain.java
+++ b/ClientMain.java
@@ -45,7 +45,9 @@ public class ClientMain {
 			String[] files = {"AllStar.txt", "Unknown.txt", "PumpkinHill.txt", "SnowHalation.txt", "Grandad.txt"};
 			
 			for(String file : files) {
-				try { client.store(new File(file)); } catch(IOException e) { e.printStackTrace(); }
+				try { client.store(new File(file)); Thread.sleep(500);} 
+				catch(IOException e) { e.printStackTrace(); }
+				catch(InterruptedException e) {e.printStackTrace();}
 			}
 			
 			/*
diff --git a/Controller$1AcksReceived.class b/Controller$1AcksReceived.class
index 1adda894aae6bd39f23590b769ff4b17e6e27eb6..836a4049b4d79a563d58278c25364dd2c7f4e3fd 100644
GIT binary patch
delta 37
tcmdnQvWaEGTt-eg22Lh<20kW*$;%iGSd|#Kn3N~qX4GO-oy^9h0|1-R2Z8_q

delta 37
tcmdnQvWaEGTt-fI22Lgp20kXv$;%iGSh*Rvn0O}NX4GQjo6N?f0|1gs2KWE~

diff --git a/Controller$IndexEntry.class b/Controller$IndexEntry.class
index cbc567e13ec9f706a810482255578779dc3de8f2..edc1b21143e21f61a560c0a32373eb534e50f0ff 100644
GIT binary patch
delta 1182
zcmcb^|AU|F)W2Q(7#J9=7&0ev<pi+)hXPIpCI$f>20;cPMh1?w%$(HX%&JsI21YM-
z1`$RE;jF~6ME%l|%p85kqN2n~pUmPCE(T!+PA&#<1_^csNgf6%25CkH(a8Z!A`>s#
zvdQu=$T7%I7GYG9Rpen%Vo+ve;LR(|O-d~a$qz2cF9I3u$-$sH*`HB@O`V59gF$n0
zE~5gsHiHg3gDww)9)tem8H|?Ph73mR48}YRCJd&N?=Tvg8ZwykFjz2HGBU709LTJp
z>B+^w!C=k9V8g(}$iSJGUy_+t>6nwl&0xr2$HQRH;4s;VN!`?t!HI{#nZcBifvqSt
zH@_?uB=5?@;Ktz2$iSXi?3!CpQpw1`tf3hNlJVqW@M3V7JddeX$4fJek%2oswZsh`
zEX*33UW^Rfi76>y&!jk2GBU7ecxr}iwqiDAWK5e}z+zS}$RNbPz`z0u2nI$5Zw3Yi
zCI%k{7Eow_#Wff-85jfv7+4wD7#JA185kM38GIQS8T=R+7{VBs8JHLt7__vsw=ytl
zZD(ND5@F!o%D}I+n?X2oJA>#B2C=OSGFr@A85FdHRJJmxZDe3zU}W%TU|^5}n<rV%
zz{w!RAiyBaAjcrXpv)l4pvfS|pvVxw5D2wIiGi7cnSp_UO-p_&13$t5F0j>#46F=F
z42ldv48c(KvJ6ZNj0_A6tXf+b_}9YiV*?ASGAJ^HFoZ&t`Y<r*gH2J^+QJ|sy@Nq(
zCxZbKLpX@HlfjIUL2C<x!a@dit!)feAd8t8{3l;z6|N6sU|?WoU<BD4!Vu2D1P%;O
z1}3ms3LxFuI~i>88^plCzz6o19s@UnK7%}i0Rz-nd1x#|Feoxa!rkftHC|q8OFhi3
zj&Lhn7#U`wxD#%?F#{ii34<JiDa?3K=tja_?Fuzk2I^`LB8;rJVBlu3WRPaCf|)4|
zcQPYG6hkyLL}VEl!GR8n37HLOF<}eU62qX#5DWLE64W_tTGCq?6hL7PNiC4bc4S~>
zaAHubW{6{mhejbngEmU?f@pAMU}bP)P-IA8NQA0Kc9R;qn>-nq8Ir&`AekWrOs6uW
TGcYi4F)%VPF{CnNFt7js6kDl)

delta 1162
zcmeyte}|vz)W2Q(7#J9=7*Zy3<+yM%Ffs7)Fz_=7FfwqYW#*(7XI7;$GBA3wGYBy<
z2xldhCF+-!Waj8Q78NB{`eYWDa4`rnaB?w-GKjG=i1RQ=Fi1{39Kt5e!yv;TJ6V=d
zNm8DNK>=hOZ(eC`Qfg61esD>CQ7Q+6(&QLM2{siT22}>N$yJOB+!_p;><n5w4B8Aj
zlb14Da_ceZvojd*Fc>lzO@7H}XsX9x!oy(7V8+P60&x|yhNdSM0|$cz4}&EG4<iF-
zUVcetTBT!74mX1ygEbF>4TJ4ue<pQPJqCLo1_uTsMh3Q`)ZF~CRFJ$A4}&v<3nK%2
zX0dB-K}jVe1G9!^6iCL6hryk}cJgYbT6s^+Fh&OM^wbhJcvx^Jrlf$qkm6LiIfU7i
zkuh;{7mHavKZ5`R0|N`l-wccl9t;c&Obnh3EFjN=#Z?*97#IWu7+4wD7#JA185kM3
z8N3)68N3-77(y7B8JHLt7&NrBw=ytlZD(NDV%o~UtF@a!FmgMC@D2u%tqf9H%v%}c
zw1gD5GAM6kU|?Wm@L^zJkOG?~$-r69AjQDPAk84dAj6=@Aj_c6AjhD{;LG3#wL*!3
z32X(Mmh@HzUW5T$U{OT|Rt6;oMFxKcGpKr521W)(1_lOJtt||^YvA^=fdy3=6d3~G
zM*Dz_u4iCiP}bVQASJznL47BKE)zpIh_{o$n2|wi3xnK326nA&4CWw<nZPdRV_;@r
zV9;dXW6)wyV$fy?WME)mW?%%lB7h-?fe9Qio*<(c7#I{lW@+zau)=9<Jt(|EAp$X1
zkAa&(pFy6%0A{W{G)jUQ6d6L`PWOPCFAp*w;&MB<6^@JyGqJncn1PSMgh7tM6lS^{
zLp{h?n6q7>#>#+<)!xbAN`#pf4BQNs4AKl%Ff*m$E@os1We9_Y2y(ngZ9v3JJvd@)
zp?bm@6d5AmzC?+8IZzZp5)UNq9T`{|oEQ`tA{nBfagR{1jgr_P>RlOF8Qd5Y8KN0t
vpz1+xvVkQQWh6&|-Q>x@%n%FC4si_eU^;;ziGhKEi-D1Wi6Ma@nSliW!grhR

diff --git a/Controller$RebalanceMessages.class b/Controller$RebalanceMessages.class
new file mode 100644
index 0000000000000000000000000000000000000000..dcaf9491a4cf67058368055f88138704d02f5634
GIT binary patch
literal 513
zcmX^0Z`VEs1_mnzSxyEf24;2!79Ivx1~x_p8Rz`GlA`>aoYW$fpwy(qoW#83RNvI%
z;>7gSVnznGl8nq^6$3^F9v_54Yc2*322OScE*=JM1|CKRfvm)`ME#t^ymWp4q^#8B
z5=I6#o6Nk-5<5l)W)00Skd=Hq4EziNj11f<#U=SgscxA$AmjOcz*<X7GIR8O6AP>v
z890M8)AJHbN{dn%89Y#BZ6I8*J)U_bsp+Xj)(|1EexJ<Z5@aR8B}JKe>DG4EcGipx
z{2Iva*9>E1U~$e*No8c<_sPsl^()OyN-YXWOv*`RWZ(+UFD*(2yO5EAAK_~~kW(2M
zIQ&wJOFZ(6OV}Bt7#X+_@{9~To_TqxMb0^i#l;}c31WmNgCYYH0|x^G0}}%yC^#4x
z83e&RAprqUbTBY5FfuSQa5D%qFfxcRFfgbyFflMOFfj0IX>Vm<)Y{I#uEn^Ofp;TV
sp(q0b0~-S)0|SFU12cmd*dTER2{0|mAkDzQz{SAGz{DWQAj7}{0D-@D%K!iX

literal 0
HcmV?d00001

diff --git a/Controller$RebalanceThread.class b/Controller$RebalanceThread.class
index baac4d023e6eb8665bfeee1db52922e76ee0bdf7..cd769f29c09ee36dad3ef7cc340f40e32a7bdaa4 100644
GIT binary patch
delta 43
zcmeyx_KR)9G$zJflczH^OYUXhX4ucb$FP@ypJ5+^9K%5d6NW<!)(l4{8#B8D06roN
A&;S4c

delta 43
zcmeyx_KR)9G$zK4lczH^OKxG{X4uBS$FPNgpJ6M59K#L<6Na4()(m?l8#B8D064e|
AhyVZp

diff --git a/Controller$Reloader.class b/Controller$Reloader.class
index 5f060a69a794d4dab23d304ce135ebe0440721fd..a9b24663eb7db7dccfd7a31569087679d73d4497 100644
GIT binary patch
delta 18
ZcmdnOyoGr}E2G!OHfBb~pvhf~S^zt$1*HH0

delta 18
ZcmdnOyoGr}E2HPeHfBaf-^pE!S^ztS1)l%_

diff --git a/Controller.class b/Controller.class
index a6268bbbbd9df3b25bba137bd95105e820efe4aa..471ff46290ce586309aad08742f08ea7d3223665 100644
GIT binary patch
literal 15913
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
a?HD+iq8V5~4FaYZ1_q{Brg)}A21x))_|l;O

literal 14191
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

diff --git a/Controller.java b/Controller.java
index 611fb5d..ec5677c 100644
--- a/Controller.java
+++ b/Controller.java
@@ -17,7 +17,7 @@ public class Controller {
 	protected int rebalancePeriod; //How long to wait to start the next rebalance operation, in milliseconds
 	
 	protected class IndexEntry {
-		protected int filesize;
+		protected long filesize;
 		protected List<Integer> storedBy;
 		protected int numberToStore;
 		protected String status;
@@ -29,11 +29,11 @@ public class Controller {
 			status = "store in progress";
 		}
 		
-		public synchronized void setFilesize(int filesize) {
+		public synchronized void setFilesize(long filesize) {
 			this.filesize = filesize;
 		}
 		
-		public synchronized int getFilesize() {
+		public synchronized long getFilesize() {
 			return filesize;
 		}
 		
@@ -74,12 +74,17 @@ public class Controller {
 		}
 	}
 	
+	protected class RebalanceMessages {
+		public Map<Integer,List<String>> dstoreFiles;
+		public RebalanceMessages() {dstoreFiles = null;}
+	}
+	
 	protected class Reloader extends ArrayList<Integer> {
-		public int filesize;
+		public long filesize;
 	}
 	
 	protected Map<Integer,DstoreConnection> dstores;
-	protected Map<Integer,List<String>> rebalanceMessages;
+	protected RebalanceMessages rebalanceMessages;
 	protected Map<String,IndexEntry> index;
 	protected Map<Socket,Reloader> loadRequests;
 	
@@ -89,6 +94,7 @@ public class Controller {
 		this.timeout = timeout;
 		this.rebalancePeriod = rebalancePeriod;
 		dstores = Collections.synchronizedMap(new HashMap<Integer,DstoreConnection>());
+		rebalanceMessages = new RebalanceMessages();
 		index = Collections.synchronizedMap(new HashMap<String,IndexEntry>());
 		loadRequests = Collections.synchronizedMap(new HashMap<Socket,Reloader>());
 	}
@@ -147,9 +153,11 @@ public class Controller {
 								e.printStackTrace();
 							}
 							
-							while(!client.isClosed()) {
+							String clientMessage = "";
+							do {
 								try {
-									String clientMessage = in.readLine();
+									clientMessage = in.readLine();
+									System.out.println(clientMessage);
 									if(clientMessage != null) {
 										handleMessage(clientMessage.split(" "), client);
 									}
@@ -158,13 +166,14 @@ public class Controller {
 									e.printStackTrace();
 								}
 							}
+							while(clientMessage != null);
 							System.out.println("Client closed");
 						}).start();
 					}
 				}
 				catch(Exception e) {
 					//Log error
-					e.printStackTrace();
+					System.out.println("Controller error while accepting connections!");
 					System.out.println("Continue...");
 				}
 			}
@@ -213,19 +222,22 @@ public class Controller {
 		}
 		else {
 			//Log error
+			System.out.println("Malformed message received by Controller");
 		}
 	}
 	
 	void store(Socket client, String filename, String filesizeString) throws Exception {
-		int filesize = -1;
+		long filesize = -1;
 		try {
-			filesize = Integer.parseInt(filesizeString);
+			filesize = Long.parseLong(filesizeString);
 			if(filesize < 1) {
 				//Log error
+				System.out.println("A client is trying to store a file with size < 1");
 			}
 		}
 		catch(NumberFormatException e) {
 			//Log error
+			System.out.println("Client has not provided an integer as a filesize");
 		}
 		
 		try {
@@ -258,21 +270,24 @@ public class Controller {
 				message = message + " " + thisStore.intValue();
 				new Thread(() -> {
 					try {
-						String[] receivedMessage = dstores.get(thisStore).receive().split(" ");
+						String[] receivedMessage = dstores.get(thisStore).receive("STORE_ACK").split(" ");
 						if(receivedMessage[0].equals("STORE_ACK")) {
 							try {
 								storeAck(thisStore, receivedMessage[1]);
 							}
 							catch(Exception e) {
 								//Log error
+								System.out.println("Error processing store ack from dstore " + thisStore);
 							}
 						}
 						else {
 							//Log error
+							System.out.println("Dstore " + thisStore + " should have sent STORE_ACK but Controller received " + receivedMessage[0]);
 						}
 					}
 					catch(NullPointerException e) {
-						removeDstore(thisStore);
+						e.printStackTrace();
+						//removeDstore(thisStore);
 					}
 				}).start();
 			}
@@ -291,6 +306,7 @@ public class Controller {
 			
 			if(entry.getStoredBy().size() < rFactor) {
 				//Log error
+				System.out.println("Not all STORE_ACKs have been received");
 			}
 			
 			//Update index to "store complete"
@@ -308,7 +324,7 @@ public class Controller {
 	void storeAck(Integer port, String filename) throws Exception {
 		if(!index.containsKey(filename)) {
 			//Throw logging exception
-			return;
+			throw new Exception("Index does not contain " + filename);
 		}
 			
 		IndexEntry thisEntry = index.get(filename);
@@ -381,16 +397,18 @@ public class Controller {
 			for(Integer dstore : entry.getStoredBy()) {
 				new Thread(() -> {
 					try {
-						String[] message = dstores.get(dstore).sendAndReceive("REMOVE " + filename).split(" ");
+						String[] message = dstores.get(dstore).sendAndReceive("REMOVE " + filename, "REMOVE_ACK").split(" ");
 						if(message[0].equals("REMOVE_ACK") && message[1].equals(filename)) {
 							entry.removeStoredBy(dstore.intValue());
 						}
 						else {
 							//Log error
+							System.out.println("Dstore " + dstore + " should have sent REMOVE_ACK but Controller received " + message[0]);
 						}
 					}
 					catch(NullPointerException e) {
-						removeDstore(dstore);
+						e.printStackTrace();
+						//removeDstore(dstore);
 					}
 				}).start();
 			}
@@ -407,6 +425,7 @@ public class Controller {
 			
 			if(entry.getStoredBy().size() > 0) {
 				//Log error
+				System.out.println("Not all REMOVE_ACKs have been received");
 			}
 			
 			//Update index to "remove complete"
@@ -442,10 +461,12 @@ public class Controller {
 	}
 	
 	void rebalance() throws Exception {
-		if(rebalanceMessages != null) return;
+		boolean success = true;
 		Map<Integer,List<String>> dstoreFiles = new HashMap<Integer,List<String>>();
-		synchronized(dstoreFiles) {
-			rebalanceMessages = dstoreFiles;
+		
+		synchronized(rebalanceMessages) {
+			if(rebalanceMessages.dstoreFiles != null) return;
+			rebalanceMessages.dstoreFiles = dstoreFiles;
 			try {
 				//Send LIST message to each Dstore and receive their file list
 				for(Integer dstore : dstores.keySet()) {
@@ -457,14 +478,16 @@ public class Controller {
 							receiveDstoreList(dstore.intValue(), message);
 						}
 						catch(NullPointerException e) {
-							removeDstore(dstore);
+							e.printStackTrace();
+							//removeDstore(dstore);
 						}
 					}).start();
 				}
 				
-				dstoreFiles.wait(timeout);
+				rebalanceMessages.wait(timeout);
 				if(dstoreFiles.size() < dstores.size()) {
 					//Log error
+					System.out.println("Not all file lists have been received");
 				}
 				
 				//Create a new file allocation so that:
@@ -560,9 +583,10 @@ public class Controller {
 					String finalMessage = message;
 					new Thread(() -> {
 						try {
-							String returnMessage = dstores.get(thisStore).sendAndReceive(finalMessage);
+							String returnMessage = dstores.get(thisStore).sendAndReceive(finalMessage, "REBALANCE_COMPLETE");
 							if(!returnMessage.equals("REBALANCE_COMPLETE")) {
 								//Log error
+								System.out.println("Dstore " + thisStore + " should have sent REBALANCE_COMPLETE but Controller received " + returnMessage);
 							}
 							synchronized(acksReceived) {
 								acksReceived.incr();
@@ -572,7 +596,8 @@ public class Controller {
 							}
 						}
 						catch(NullPointerException e) {
-							removeDstore(thisStore);
+							e.printStackTrace();
+							//removeDstore(thisStore);
 						}
 					}).start();
 				}
@@ -584,6 +609,8 @@ public class Controller {
 						acksReceived.wait(timeout);
 						if(acksReceived.getValue() < storeOrder.size()) {
 							//Restart rebalance operation
+							System.out.println("Not all REBALANCE_COMPLETEs received. Restarting rebalance operation...");
+							success = false;
 						}
 					}
 					catch(InterruptedException e) {
@@ -595,14 +622,19 @@ public class Controller {
 				e.printStackTrace();
 			}
 			finally {
-				rebalanceMessages = null;
+				rebalanceMessages.dstoreFiles = null;
+				System.out.println("There are " + dstores.size() + " dstores connected");
+				for(String i : index.keySet()) {
+					System.out.print(i);
+				}
+				System.out.print("\n");
 			}
 		}
+		
+		if(!success) rebalance();
 	}
 	
 	void receiveDstoreList(int port, String[] list) {
-		if(rebalanceMessages == null) return;
-		
 		List<String> toList = new ArrayList<String>();
 		if(!list[0].equals("ERROR_EMPTY")) {
 			for(String file : list) {
@@ -617,8 +649,10 @@ public class Controller {
 		}
 		
 		synchronized(rebalanceMessages) {
-			rebalanceMessages.put(port, toList);
-			if(rebalanceMessages.size() == dstores.size()) {
+			if(rebalanceMessages.dstoreFiles == null) return;
+			
+			rebalanceMessages.dstoreFiles.put(port, toList);
+			if(rebalanceMessages.dstoreFiles.size() == dstores.size()) {
 				rebalanceMessages.notify();
 			}
 		}
diff --git a/Dstore.class b/Dstore.class
index d50e2886a2e23df4396911799fb8df9675121560..5a496f658f3927ece60f8eebab9b968dd8e10c43 100644
GIT binary patch
delta 6489
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
PF)%VdW_-%{oIw%*^S;6{

delta 6086
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
QgF%dp=NK<AUSg000DDwRi2wiq

diff --git a/Dstore.java b/Dstore.java
index 3fd7352..9332ba9 100644
--- a/Dstore.java
+++ b/Dstore.java
@@ -13,7 +13,7 @@ public class Dstore {
 	protected int cport; //Controller's port to talk to
 	protected int timeout; //in milliseconds
 	protected File fileFolder; //Where to store the data locally
-	protected Map<String,Integer> fileSizes;
+	protected Map<String,Long> fileSizes;
 	
 	protected Socket controllerSocket;
 	protected BufferedReader controllerIn;
@@ -33,7 +33,10 @@ public class Dstore {
 			if(!fileFolder.mkdir()) throw new Exception("Folder could not be created");
 		}
 		
-		fileSizes = new HashMap<String,Integer>();
+		fileSizes = new HashMap<String,Long>();
+		for(File file : fileFolder.listFiles()) {
+			fileSizes.put(file.getName(), Long.valueOf(file.length()));
+		}
 	}
 	
 	public static void main(String[] args) {
@@ -108,7 +111,7 @@ public class Dstore {
 	
 	void handleMessage(String[] message, Socket client) throws Exception {
 		if(message[0].equals("STORE")) {
-			store(client, message[1], Integer.parseInt(message[2]));
+			store(client, message[1], Long.parseLong(message[2]));
 		}
 		else if(message[0].equals("LOAD_DATA")) {
 			load(client, message[1]);
@@ -124,10 +127,11 @@ public class Dstore {
 		}
 		else {
 			//Log error and continue (throw exception?)
+			System.out.println("Dstore " + port + " has received a malformed message");
 		}
 	}
 	
-	void store(Socket client, String filename, int filesize) throws Exception {
+	void store(Socket client, String filename, long filesize) throws Exception {
 		new Thread(() -> {
 			try {
 				//Send ACK message to client
@@ -151,7 +155,7 @@ public class Dstore {
 				controllerOut.flush();
 				
 				if(fileSizes.containsKey(filename)) fileSizes.remove(filename);
-				fileSizes.put(filename, filesize);
+				fileSizes.put(filename, Long.valueOf(filesize));
 			}
 			catch(IOException e) {
 				e.printStackTrace();
@@ -284,8 +288,10 @@ public class Dstore {
 							out.flush();
 							
 							BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
-							if(!in.readLine().equals("ACK")) {
+							String receivedMessage = in.readLine();
+							if(!receivedMessage.equals("ACK")) {
 								//Log error
+								System.out.println("Dstore " + dstore + " should have sent ACK but " + port + " received " + receivedMessage);
 							}
 							
 							byte[] content = new byte[8];
diff --git a/DstoreConnection.class b/DstoreConnection.class
index 22b19b02f98e1f15e335aad8652e4c0bba7bcf2e..42fb9143a47eaea3233715ce29a55e93398a6448 100644
GIT binary patch
delta 2213
zcmcaEd_|J$)W2Q(7#J9=7*<T=3Y6vZb&QA)40R24jSu#Wa%E&-^yFmVVBq6n;Aaq+
z7%9&vG_g`zON5a@GApqxQ9m<Z-!reEv?REsC^a!RC^a!9wTO#Bj6s~8L4t=tl0j<X
zK6_nZ1{od(Rt8x{1_=!xEZVF!!?+j(8RS8V6eepiO0g;NFeo#qO!i__V^o`5$SA=f
z#-PE&pvj;$c_O1ehbn^(NU84R6O0OM`aBE<42F~6F{;KG^Dvk&m@+bOCYB{;<|HQN
zq%txvMzJ%PGcpK+tt~Cd%+Yr&DoU*M$t*76VlZQ126@hkhryb`hLM4_ur#$am61UJ
z;z+P+kV0#A2D`~ROcJuT3=TXDjtp#!4EzN}nRz9_C5g$|Aw`MFsq75SlM|Vgxm_9D
z*cse;7(5s}C-*ZMt9Uaq2)h)Q<QJtXq+}K+=jY|6CYPk9a54BY_^~ti^DqQ31Wta&
zWW^XfS&>=9Hk6Tp*C#(YTOl#Iur#wMHHCvAoRNXmH7LkGh>Jm$!4E`4@i0V#+`yWa
zQ(BxM#K6E1%fk@I5I>oj#o3RGfrBBDharg}o{@nkCqFqcCnz;JHM1<0i@}M386=y^
z!;r?1&d9)5oSK*7n3n>TXJoK|Movy*Ub=p8Nl|8A`s74b;mO7<!u8w?nG9L%4B0#k
zISjds419>-1O*Ty150scRVpI`vxcT8NNGL~Ljgk}BLj1KY6&BQsD`H|BuK$V`zK|k
zCYM;VGZZs22!IU&3qx$=VklxL<zXmeC}(6~OD!x-%qeDM5S@IUS=1V2a3v2z6<De$
zH8&sRDGr7j9)?<wZ`q4r9u;J$=V54IXk=vIC`wIC@yX1a+`udW_CqrdLkmbhb7D#g
z$h<a?d4)m@j0~|H44sS&42%rC&iQ%8C5d?@VTn1Vsmu%v3`UF$oWYstd5I;ZMX8Jo
zDiFWGlZOq2kK_q!J8MP;5omDcrIzRi=O<@Rj$qMaW@nf@c@~T6<dZCxd^5QiW--iW
zXP5(uy}6SGSdU1|XJim`&d)0;%FoG3Em9~>%_~u0<X~7h`6{a><C4k$S+y9KP1a&F
zu4iKqVc=%qVPItFVqjokV(4aI0cB7I1_l;T&H>W~42EFZguxU{TQk@&Ff#Oj)%P;6
zF)%W)GW0PpGW0VrFg#&kV*q(IS!+83qn3ctRt9!0?X3*FTDutpBX=_hM`~|l5Z%ro
zy`4dBD}$m|{cZ+TkdXRz2JNj3dRi=78H}`cGnhqgXRz4HV7Z(@&R1s}gS{5>RtBTx
z41&I!7+i$BwlVmC1vWA;G4M0EFt{_=g6R+jCk7^l2@DJjP7DGJ3=F~yEDYQXTnr)%
z{0w3Ystn=`CJYh`mJE^%E(}Tx?hMil9`y_|3_c9941o+v3?U5i4517P46zJ~3`q>i
z3=<g`7{nQv|1-EVFtIamurr7;FtRh)`mi%N@iH(nq%ov3FoFI2oPmjfje&t75#+ic
zkn1A-4uRMqAodmpqgf0bLSedxH)w5P(9_<=5CNjMF+^@+aH-ec#Sp{508*#3jUhqz
z@CGXukWRQCcQZIeZf8i|Z^f#6Sdw)=11kd$gDitHgA;=Sg9Di6VUTBtVqjoUU~mG{
z&J1y2nh6{dW(>Rx3=C=v91Q9Vpn^|?L5o3wL7PE?L5D$~LARd4nn91jnZba;mBEm~
zm%)f3h{2d4ioq1@djSUKKMV@&3`|Mv3{GL}43ik9fD-^CgA+Ia;-LW`&%n&U#J~WG
zYQ}90DH|9-$sZICptQljV2PrwmI0>iI|EZaIN%CFUWNpmFJ{2$9NxfeC#$uE!Ez@<
z1|!2F1~U*_b|*s~6T<<9A}bc{V+=f!EZW-`N@g;MfaD}ub~02jF@#I9=p5eA!pyk*
z|6widZ43!Ihc{TU>VU(Mg#i?9S@qz6i)P4TU|@&=6-^8b3|S0$U_K-OjTm?s7#M6B
zI2i00co^&%L>L?x6d0Tt^ch?j>=;}bycygW!WrBdVi=qmk{G-hvKV~8VJE}D1_`@A
z42+C_7&O=!iheN&{9<5rM-In&P(ao)G(rPXj)94Rk%57MO^b0GLp6Fh1|Wqa3#ep<
z>UzV#1kQ8$jJ{f17!<cL)cNWhXOI8|Dn>feKE`0E0}85H44PV780sx`b}}?EF@%GH
z4II1zMoSp@Ks@H146RHI;f%gI$NsO`#NeW{i=iEyQgt?f^Q2J62C!Q}`M?$>--R+T
zF@!U4F+?!%F+?(mF+?#)Gek2eGsH6JGsH1iF~l<jGbAvCG9)uZW;3KPq%x#3q%)*5
zWH4kf<S=A{Lr<E4^$#f56)EU5{$~&bF*(>7ioh8VDHNC)rh-eMX$;dD7#R2%m>6a-
bFfz;olM5IYF)%Q2F)%VLW?0IwoIw%*zJ|lE

delta 1513
zcmca2d0m+6)W2Q(7#J9=80sf-1x~Dzb>m}X5X(v|OVrQI*LNySOG_<EO$ka(Oi3+b
zXAodykc7#3<`tBd1eX-0Cgwt<xfp~PgxMKHco;+(#3tUg_vL4h;9+28kYr?#(D1>c
z%~~^zi-DIx8l*^ukwF-t2x6eMW*8>}2ZJ0BgFJ)6<V;32My1IU7$rD_7*u!|R2kGJ
zZ(!8tP-M^m>DQe6oKb;In}<P%L3c7Qld7aX4}$@NAtM84Vp(ElPGV9{DkB496gz|Q
z<US?|StABh9tJZ8Hbw^if}+g4lHiiW<m`~5#N<?V28+punUuM$7_8YDY<L)K8SEy1
zWHMH9U}O+>DK5z`N>xb7EKbhP%S%lzNloEmaAI&~XK>+RaAk0t?7?hR@4?8x@19yx
zl9`vTkdvRBt*58Q!QjQn!0VHroUM?UTv(b}l$yf9;KRtk>KYW}AH>C=$lwej{COAx
zKu%&!%PB3+;9}rl2;yM~W(Z+q;K|8PPRt2PO-{`$OJ!sb(a?m1XHH^Xx_)p;QD$Dc
zH5Y?912YGMU^pWK0~bRiLliqhG!H`zL+s>-EW(rju_(%e0z00EApv9}M^S2Gice-<
zst^MMLlO@|GDFJbE6mQ5@3T6HFf#BJr{<+N=A}SwWM{~pti-0u!CnM$!DLr9YrY~b
zhGK>ic7{@r=Ca9sY)2R?CTFp0vQ#rNs7~I+rpnCDP&;`)yKy}W0}BH;0}lfO0}Ci7
z!L$y8E|@l8Fa*<#46F>P42%qE3=9mX8Q2(@85kIXw6-%aYH4p}VAtBsz#F-nfj?4v
z8-w6>2J!6-Qd=2hwRSTof<%<JGpKK6(9&Yr%AmKLLC#la8-s}!GngajyNRLRQpkQA
zgCkgEBLfoyCxbDA8G{j+c4jbVU}8uIX8=A11_l8J76w5EP6lBHc?J;%JqA$*V+J_}
zGX`-6a|Q_pYX(UM2L?F?X9j5o7X}#y9|l>5Kn8h+3<d@UaR%o93}y^W><k?23_=Wy
z><mUe><s3-42<;*nG7imOkl5FWnf}pWnf?k-o#)j<PLIGr0*dR+Y`jz!k{;cfkVh!
z=kNxtEeu-P+ZcR7^fm@Rt!)f}I)^v-ft12Mvzx&@ayvulek&H8!;&of8CV&37-SjD
z7|a<Iz+N<G0OcH?dIkmt1qM?F9|i^nGll>#4e_%PI8u}tI2e=}Ksic;L5)FyL7hQ^
zL4!e`L6gCZL7TyxL5IPfL6^aWL65<Q!2s-60S4wj3<~TFOrh)y=ArBiSqwSQNHk|)
zWXNR*f%>+Ifr){cp`L+32jp&ucYQFut9^I_$bZ_0H~4BF*4fX%40g9V*x70fAX=S4
z3rs_tEycjbz`$U_z`<b30LsN8U>{pBs54lCoyWt#1aY1l*l8gDvoJ6+m@}||aud{T
z+ZmV`m>3usoQ1-Cw1vX9F+|K{;M3Z|AiIqr&S&}m_nR0jwRbTjGB9joaMa%5qrHv6
zL?~>756B}J5dbzwg+Z0Uh=GAYg+UjdsK5bS&tS*E%wW&J!{ERm&fvtL%;3zR%HYbN
z#^A=F#o*4M%izhN$Kb_a#^B9h&ENy}f)oSG9|mT2hDhQ647{Mk!~r6V+}Rn-k;0mp
qA&-H9fr%lXp@4ybfrEjOp^$-*p`4+T0aOGqGE_0tFw`+HN&)~zVI0>0

diff --git a/DstoreConnection.java b/DstoreConnection.java
index 8515615..9e85c7d 100644
--- a/DstoreConnection.java
+++ b/DstoreConnection.java
@@ -8,10 +8,13 @@ import java.util.HashMap;
 import java.util.Collection;
 
 public class DstoreConnection {
+	protected final int MAX_QUEUE_SIZE = 50;
+	
 	protected Socket socket;
 	protected BufferedReader reader;
 	protected PrintWriter writer;
 	protected boolean available;
+	protected List<String> queue;
 	
 	public DstoreConnection(Socket socket) {
 		this.socket = socket;
@@ -19,6 +22,7 @@ public class DstoreConnection {
 			reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
 			writer = new PrintWriter(socket.getOutputStream());
 			available = true;
+			queue = new ArrayList<String>();
 		}
 		catch(IOException e) {
 			e.printStackTrace();
@@ -30,7 +34,7 @@ public class DstoreConnection {
 		}
 	}
 	
-	public String sendAndReceive(String message) throws NullPointerException {
+	public String sendAndReceive(String message, String expectedMessage) throws NullPointerException {
 		System.out.println("Getting lock...");
 		synchronized(this) {
 			try {
@@ -38,7 +42,8 @@ public class DstoreConnection {
 				if(!available) return "ERROR";
 				writer.println(message);
 				writer.flush();
-				return localReceive();
+				System.out.println("Controller sent " + message);
+				return localReceive(expectedMessage);
 			}
 			catch(NullPointerException e) {
 				System.out.println("Dstore disconnected");
@@ -48,21 +53,50 @@ public class DstoreConnection {
 		}
 	}
 	
-	public String receive() throws NullPointerException {
+	public String sendAndReceive(String message) throws NullPointerException {
+		return sendAndReceive(message, null);
+	}
+	
+	public String receive(String expectedMessage) throws NullPointerException {
 		System.out.println("Getting lock...");
 		synchronized(this) {
 			System.out.println("Lock acquired");
 			if(!available) return "ERROR";
-			return localReceive();
+			
+			//Check the queue for the message before trying to receive any new messages (if no expected message is specified, return the head of the queue)
+			for(int i=0; i<queue.size(); i++) {
+				String message = queue.get(i);
+				if(expectedMessage == null || message.equals(expectedMessage)) {
+					queue.remove(message);
+					return message;
+				}
+			}
+			
+			return localReceive(expectedMessage);
 		}
 	}
 	
-	protected String localReceive() throws NullPointerException {
+	public String receive() throws NullPointerException {
+		return receive(null);
+	}
+	
+	protected String localReceive(String expectedMessage) throws NullPointerException {
 		try {
-			String returnMessage = "";
-			while(returnMessage.equals("")) {
+			String returnMessage = null;
+			do {
 				returnMessage = reader.readLine();
+				if(returnMessage == null) {
+					System.out.println("Dstore disconnected");
+					available = false;
+					throw new NullPointerException();
+				}
+				if(expectedMessage != null && !returnMessage.equals(expectedMessage)) {
+					queue.add(returnMessage);
+					if(queue.size() > MAX_QUEUE_SIZE) queue.remove(0);
+					returnMessage = null;
+				}
 			}
+			while(returnMessage == null);
 			System.out.println("Controller received " + returnMessage);
 			return returnMessage;
 		}
@@ -70,10 +104,5 @@ public class DstoreConnection {
 			e.printStackTrace();
 			return "";
 		}
-		catch(NullPointerException e) {
-			System.out.println("Dstore disconnected");
-			available = false;
-			throw new NullPointerException();
-		}
 	}
 }
diff --git a/client_1618914098636.log b/client_1618914098636.log
deleted file mode 100644
index fa03ce2..0000000
--- a/client_1618914098636.log
+++ /dev/null
@@ -1 +0,0 @@
-Cannot connect to the Controller on port 8082
diff --git a/client_1618914115362.log b/client_1618914115362.log
deleted file mode 100644
index 0249810..0000000
--- a/client_1618914115362.log
+++ /dev/null
@@ -1,19 +0,0 @@
-Connection established to port 8080
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: ERROR
-ERROR: Connection closed by the Controller
-List operation failed
-ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.pdf)
-ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.pdf)
-ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.jpg)
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: null
-ERROR: Connection closed by the Controller
-List operation failed
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: null
-ERROR: Connection closed by the Controller
-List operation failed
diff --git a/client_1618916214881.log b/client_1618916214881.log
deleted file mode 100644
index aa74d26..0000000
--- a/client_1618916214881.log
+++ /dev/null
@@ -1,19 +0,0 @@
-Connection established to port 8080
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: null
-ERROR: Connection closed by the Controller
-List operation failed
-ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.pdf)
-ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.pdf)
-ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.jpg)
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: null
-ERROR: Connection closed by the Controller
-List operation failed
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: null
-ERROR: Connection closed by the Controller
-List operation failed
diff --git a/client_1618917382748.log b/client_1618917382748.log
deleted file mode 100644
index aa74d26..0000000
--- a/client_1618917382748.log
+++ /dev/null
@@ -1,19 +0,0 @@
-Connection established to port 8080
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: null
-ERROR: Connection closed by the Controller
-List operation failed
-ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.pdf)
-ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.pdf)
-ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.jpg)
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: null
-ERROR: Connection closed by the Controller
-List operation failed
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: null
-ERROR: Connection closed by the Controller
-List operation failed
diff --git a/client_1618917653577.log b/client_1618917653577.log
deleted file mode 100644
index a2b937e..0000000
--- a/client_1618917653577.log
+++ /dev/null
@@ -1,16 +0,0 @@
-Connection established to port 8080
-Message sent to port 8080: LIST
-List operation started
-Timeout expired while reading from port 8080
-List operation failed
-ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.pdf)
-ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.pdf)
-ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.jpg)
-Message sent to port 8080: LIST
-List operation started
-Timeout expired while reading from port 8080
-List operation failed
-Message sent to port 8080: LIST
-List operation started
-Timeout expired while reading from port 8080
-List operation failed
diff --git a/client_1618917705050.log b/client_1618917705050.log
deleted file mode 100644
index a2b937e..0000000
--- a/client_1618917705050.log
+++ /dev/null
@@ -1,16 +0,0 @@
-Connection established to port 8080
-Message sent to port 8080: LIST
-List operation started
-Timeout expired while reading from port 8080
-List operation failed
-ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.pdf)
-ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.pdf)
-ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.jpg)
-Message sent to port 8080: LIST
-List operation started
-Timeout expired while reading from port 8080
-List operation failed
-Message sent to port 8080: LIST
-List operation started
-Timeout expired while reading from port 8080
-List operation failed
diff --git a/client_1618918167755.log b/client_1618918167755.log
deleted file mode 100644
index a2b937e..0000000
--- a/client_1618918167755.log
+++ /dev/null
@@ -1,16 +0,0 @@
-Connection established to port 8080
-Message sent to port 8080: LIST
-List operation started
-Timeout expired while reading from port 8080
-List operation failed
-ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.pdf)
-ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.pdf)
-ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.jpg)
-Message sent to port 8080: LIST
-List operation started
-Timeout expired while reading from port 8080
-List operation failed
-Message sent to port 8080: LIST
-List operation started
-Timeout expired while reading from port 8080
-List operation failed
diff --git a/client_1618918283040.log b/client_1618918283040.log
deleted file mode 100644
index 79889b5..0000000
--- a/client_1618918283040.log
+++ /dev/null
@@ -1,10 +0,0 @@
-Connection established to port 8080
-Message sent to port 8080: LIST
-List operation started
-Timeout expired while reading from port 8080
-List operation failed
-ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.pdf)
-ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.pdf)
-ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.jpg)
-Message sent to port 8080: LIST
-List operation started
diff --git a/client_1618918339157.log b/client_1618918339157.log
deleted file mode 100644
index 79889b5..0000000
--- a/client_1618918339157.log
+++ /dev/null
@@ -1,10 +0,0 @@
-Connection established to port 8080
-Message sent to port 8080: LIST
-List operation started
-Timeout expired while reading from port 8080
-List operation failed
-ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.pdf)
-ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.pdf)
-ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.jpg)
-Message sent to port 8080: LIST
-List operation started
diff --git a/client_1618918660778.log b/client_1618918660778.log
deleted file mode 100644
index 7d494f0..0000000
--- a/client_1618918660778.log
+++ /dev/null
@@ -1,19 +0,0 @@
-Connection established to port 8080
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: 
-ERROR: Connection closed by the Controller
-List operation failed
-ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.pdf)
-ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.pdf)
-ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.jpg)
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: 
-ERROR: Connection closed by the Controller
-List operation failed
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: 
-ERROR: Connection closed by the Controller
-List operation failed
diff --git a/client_1618919054780.log b/client_1618919054780.log
deleted file mode 100644
index 7d494f0..0000000
--- a/client_1618919054780.log
+++ /dev/null
@@ -1,19 +0,0 @@
-Connection established to port 8080
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: 
-ERROR: Connection closed by the Controller
-List operation failed
-ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.pdf)
-ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.pdf)
-ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.jpg)
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: 
-ERROR: Connection closed by the Controller
-List operation failed
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: 
-ERROR: Connection closed by the Controller
-List operation failed
diff --git a/client_1618919710976.log b/client_1618919710976.log
deleted file mode 100644
index 7d494f0..0000000
--- a/client_1618919710976.log
+++ /dev/null
@@ -1,19 +0,0 @@
-Connection established to port 8080
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: 
-ERROR: Connection closed by the Controller
-List operation failed
-ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.pdf)
-ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.pdf)
-ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.jpg)
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: 
-ERROR: Connection closed by the Controller
-List operation failed
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: 
-ERROR: Connection closed by the Controller
-List operation failed
diff --git a/client_1618922219091.log b/client_1618922219091.log
deleted file mode 100644
index f1079e8..0000000
--- a/client_1618922219091.log
+++ /dev/null
@@ -1,16 +0,0 @@
-Connection established to port 8080
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: LIST
-List operation successfully completed
-ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.pdf)
-ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.pdf)
-ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.jpg)
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: LIST
-List operation successfully completed
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: LIST
-List operation successfully completed
diff --git a/client_1619002254815.log b/client_1619002254815.log
deleted file mode 100644
index f1079e8..0000000
--- a/client_1619002254815.log
+++ /dev/null
@@ -1,16 +0,0 @@
-Connection established to port 8080
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: LIST
-List operation successfully completed
-ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.pdf)
-ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.pdf)
-ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/Clipboard01.jpg)
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: LIST
-List operation successfully completed
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: LIST
-List operation successfully completed
diff --git a/client_1619002688932.log b/client_1619002688932.log
deleted file mode 100644
index c1fe03f..0000000
--- a/client_1619002688932.log
+++ /dev/null
@@ -1,18 +0,0 @@
-Connection established to port 8080
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: LIST
-List operation successfully completed
-ERROR: Filename includes spaces (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/All Star.txt)
-ERROR: Filename includes spaces (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/All Star.txt)
-Message sent to port 8080: STORE Unknown.txt 2594
-Store operation started for file Unknown.txt
-Message received from port 8080: STORE_TO
-Controller replied to store Unknown.txt in these Dstores: 
-Timeout expired while reading from port 8080
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: LIST Unknown.txt
-List operation successfully completed
-Message sent to port 8080: LOAD Unknown.txt
-Load operation for file Unknown.txt started
diff --git a/client_1619002774548.log b/client_1619002774548.log
deleted file mode 100644
index 700813d..0000000
--- a/client_1619002774548.log
+++ /dev/null
@@ -1,17 +0,0 @@
-Connection established to port 8080
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: LIST Unknown.txt
-List operation successfully completed
-ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/All Star.txt)
-ERROR: File to store does not exist (absolute path: /home/danimal/Documents/comp2207-distributed-filesystem/All Star.txt)
-Message sent to port 8080: STORE Unknown.txt 2594
-Store operation started for file Unknown.txt
-Message received from port 8080: ERROR ALREADY_EXISTS Unknown.txt
-ERROR: Unexpected message received: ERROR ALREADY_EXISTS Unknown.txt
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: LIST Unknown.txt
-List operation successfully completed
-Message sent to port 8080: LOAD Unknown.txt
-Load operation for file Unknown.txt started
diff --git a/client_1619002831484.log b/client_1619002831484.log
deleted file mode 100644
index b5328a0..0000000
--- a/client_1619002831484.log
+++ /dev/null
@@ -1,27 +0,0 @@
-Connection established to port 8080
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: LIST Unknown.txt
-List operation successfully completed
-Message sent to port 8080: STORE AllStar.txt 2227
-Store operation started for file AllStar.txt
-Message received from port 8080: STORE_TO
-Controller replied to store AllStar.txt in these Dstores: 
-Timeout expired while reading from port 8080
-Message sent to port 8080: STORE AllStar.txt 2227
-Store operation started for file AllStar.txt
-Message received from port 8080: ERROR ALREADY_EXISTS AllStar.txt
-ERROR: Unexpected message received: ERROR ALREADY_EXISTS AllStar.txt
-Message sent to port 8080: STORE Unknown.txt 2594
-Store operation started for file Unknown.txt
-Message received from port 8080: ERROR ALREADY_EXISTS Unknown.txt
-ERROR: Unexpected message received: ERROR ALREADY_EXISTS Unknown.txt
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: LIST AllStar.txt Unknown.txt
-List operation successfully completed
-Message sent to port 8080: LOAD AllStar.txt
-Load operation for file AllStar.txt started
-Timeout expired while reading from port 8080
-Message sent to port 8080: LOAD Unknown.txt
-Load operation for file Unknown.txt started
diff --git a/client_1619015946719.log b/client_1619015946719.log
deleted file mode 100644
index b1a12e7..0000000
--- a/client_1619015946719.log
+++ /dev/null
@@ -1,57 +0,0 @@
-Connection established to port 8080
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: LIST
-List operation successfully completed
-Message sent to port 8080: STORE AllStar.txt 2227
-Store operation started for file AllStar.txt
-Message received from port 8080: STORE_TO 8081
-Controller replied to store AllStar.txt in these Dstores: 8081 
-Connection established to port 8081
-Message sent to port 8081: STORE AllStar.txt 2227
-Storing file AllStar.txt to Dstore 8081
-Message received from port 8081: null
-ERROR: Connection closed by Dstore 8081
-Store of file AllStar.txt to Dstore 8081 failed
-Message received from port 8080: STORE_COMPLETE
-Store operation for file AllStar.txt completed
-Message sent to port 8080: STORE AllStar.txt 2227
-Store operation started for file AllStar.txt
-Message received from port 8080: ERROR ALREADY_EXISTS AllStar.txt
-ERROR: Unexpected message received: ERROR ALREADY_EXISTS AllStar.txt
-Message sent to port 8080: STORE Unknown.txt 2594
-Store operation started for file Unknown.txt
-Message received from port 8080: STORE_TO 8081
-Controller replied to store Unknown.txt in these Dstores: 8081 
-Connection established to port 8081
-Message sent to port 8081: STORE Unknown.txt 2594
-Storing file Unknown.txt to Dstore 8081
-Message received from port 8081: null
-ERROR: Connection closed by Dstore 8081
-Store of file Unknown.txt to Dstore 8081 failed
-Message received from port 8080: STORE_COMPLETE
-Store operation for file Unknown.txt completed
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: LIST AllStar.txt Unknown.txt
-List operation successfully completed
-Message sent to port 8080: LOAD AllStar.txt
-Load operation for file AllStar.txt started
-Message received from port 8080: ERROR_LOAD
-Load operation for file AllStar.txt failed after having contacted 0 different Dstores
-Message sent to port 8080: LOAD Unknown.txt
-Load operation for file Unknown.txt started
-Message received from port 8080: ERROR_LOAD
-Load operation for file Unknown.txt failed after having contacted 0 different Dstores
-Message sent to port 8080: REMOVE AllStar.txt
-Remove operation for file AllStar.txt started
-Message received from port 8080: REMOVE_COMPLETE
-Remove operation for file AllStar.txt successfully completed
-Message sent to port 8080: REMOVE Unknown.txt
-Remove operation for file Unknown.txt started
-Message received from port 8080: REMOVE_COMPLETE
-Remove operation for file Unknown.txt successfully completed
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: LIST AllStar.txt Unknown.txt
-List operation successfully completed
diff --git a/client_1619016557204.log b/client_1619016557204.log
deleted file mode 100644
index 91aeef4..0000000
--- a/client_1619016557204.log
+++ /dev/null
@@ -1,48 +0,0 @@
-Connection established to port 8080
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: LIST
-List operation successfully completed
-Message sent to port 8080: STORE AllStar.txt 2227
-Store operation started for file AllStar.txt
-Message received from port 8080: STORE_TO 8081
-Controller replied to store AllStar.txt in these Dstores: 8081 
-Connection established to port 8081
-Message sent to port 8081: STORE AllStar.txt 2227
-Storing file AllStar.txt to Dstore 8081
-Message received from port 8081: ACK
-ACK received from Dstore 8081 to store file AllStar.txt
-Store of file AllStar.txt to Dstore 8081 successfully completed
-Message received from port 8080: STORE_COMPLETE
-Store operation for file AllStar.txt completed
-Message sent to port 8080: STORE AllStar.txt 2227
-Store operation started for file AllStar.txt
-Message received from port 8080: ERROR ALREADY_EXISTS AllStar.txt
-ERROR: Unexpected message received: ERROR ALREADY_EXISTS AllStar.txt
-Message sent to port 8080: STORE Unknown.txt 2594
-Store operation started for file Unknown.txt
-Message received from port 8080: STORE_TO 8081
-Controller replied to store Unknown.txt in these Dstores: 8081 
-Connection established to port 8081
-Message sent to port 8081: STORE Unknown.txt 2594
-Storing file Unknown.txt to Dstore 8081
-Message received from port 8081: ACK
-ACK received from Dstore 8081 to store file Unknown.txt
-Store of file Unknown.txt to Dstore 8081 successfully completed
-Message received from port 8080: STORE_COMPLETE
-Store operation for file Unknown.txt completed
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: LIST AllStar.txt Unknown.txt
-List operation successfully completed
-Message sent to port 8080: LOAD AllStar.txt
-Load operation for file AllStar.txt started
-Message received from port 8080: ERROR_LOAD
-Load operation for file AllStar.txt failed after having contacted 0 different Dstores
-Message sent to port 8080: LOAD Unknown.txt
-Load operation for file Unknown.txt started
-Message received from port 8080: LOAD_FROM 8081 -1
-Controller replied to load file Unknown.txt (size: -1 bytes) from Dstore 8081
-Connection established to port 8081
-Message sent to port 8081: LOAD_DATA Unknown.txt
-Loading file Unknown.txt from Dstore 8081
diff --git a/client_1619016975115.log b/client_1619016975115.log
deleted file mode 100644
index 5c0107f..0000000
--- a/client_1619016975115.log
+++ /dev/null
@@ -1,32 +0,0 @@
-Connection established to port 8080
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: LIST AllStar.txt Unknown.txt
-List operation successfully completed
-Message sent to port 8080: STORE AllStar.txt 2227
-Store operation started for file AllStar.txt
-Message received from port 8080: ERROR ALREADY_EXISTS AllStar.txt
-ERROR: Unexpected message received: ERROR ALREADY_EXISTS AllStar.txt
-Message sent to port 8080: STORE AllStar.txt 2227
-Store operation started for file AllStar.txt
-Message received from port 8080: ERROR ALREADY_EXISTS AllStar.txt
-ERROR: Unexpected message received: ERROR ALREADY_EXISTS AllStar.txt
-Message sent to port 8080: STORE Unknown.txt 2594
-Store operation started for file Unknown.txt
-Message received from port 8080: ERROR ALREADY_EXISTS Unknown.txt
-ERROR: Unexpected message received: ERROR ALREADY_EXISTS Unknown.txt
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: LIST AllStar.txt Unknown.txt
-List operation successfully completed
-Message sent to port 8080: LOAD AllStar.txt
-Load operation for file AllStar.txt started
-Message received from port 8080: ERROR_LOAD
-Load operation for file AllStar.txt failed after having contacted 0 different Dstores
-Message sent to port 8080: LOAD Unknown.txt
-Load operation for file Unknown.txt started
-Message received from port 8080: LOAD_FROM 8081 -1
-Controller replied to load file Unknown.txt (size: -1 bytes) from Dstore 8081
-Connection established to port 8081
-Message sent to port 8081: LOAD_DATA Unknown.txt
-Loading file Unknown.txt from Dstore 8081
diff --git a/client_1619017037535.log b/client_1619017037535.log
deleted file mode 100644
index 8fa327e..0000000
--- a/client_1619017037535.log
+++ /dev/null
@@ -1,48 +0,0 @@
-Connection established to port 8080
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: LIST
-List operation successfully completed
-Message sent to port 8080: STORE AllStar.txt 2227
-Store operation started for file AllStar.txt
-Message received from port 8080: STORE_TO 8081
-Controller replied to store AllStar.txt in these Dstores: 8081 
-Connection established to port 8081
-Message sent to port 8081: STORE AllStar.txt 2227
-Storing file AllStar.txt to Dstore 8081
-Message received from port 8081: ACK
-ACK received from Dstore 8081 to store file AllStar.txt
-Store of file AllStar.txt to Dstore 8081 successfully completed
-Message received from port 8080: STORE_COMPLETE
-Store operation for file AllStar.txt completed
-Message sent to port 8080: STORE AllStar.txt 2227
-Store operation started for file AllStar.txt
-Message received from port 8080: ERROR FILE_ALREADY_EXISTS AllStar.txt
-ERROR: Unexpected message received: ERROR FILE_ALREADY_EXISTS AllStar.txt
-Message sent to port 8080: STORE Unknown.txt 2594
-Store operation started for file Unknown.txt
-Message received from port 8080: STORE_TO 8081
-Controller replied to store Unknown.txt in these Dstores: 8081 
-Connection established to port 8081
-Message sent to port 8081: STORE Unknown.txt 2594
-Storing file Unknown.txt to Dstore 8081
-Message received from port 8081: ACK
-ACK received from Dstore 8081 to store file Unknown.txt
-Store of file Unknown.txt to Dstore 8081 successfully completed
-Message received from port 8080: STORE_COMPLETE
-Store operation for file Unknown.txt completed
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: LIST AllStar.txt Unknown.txt
-List operation successfully completed
-Message sent to port 8080: LOAD AllStar.txt
-Load operation for file AllStar.txt started
-Message received from port 8080: ERROR_LOAD
-Load operation for file AllStar.txt failed after having contacted 0 different Dstores
-Message sent to port 8080: LOAD Unknown.txt
-Load operation for file Unknown.txt started
-Message received from port 8080: LOAD_FROM 8081 -1
-Controller replied to load file Unknown.txt (size: -1 bytes) from Dstore 8081
-Connection established to port 8081
-Message sent to port 8081: LOAD_DATA Unknown.txt
-Loading file Unknown.txt from Dstore 8081
diff --git a/client_1619017290151.log b/client_1619017290151.log
deleted file mode 100644
index 9d7f7af..0000000
--- a/client_1619017290151.log
+++ /dev/null
@@ -1,57 +0,0 @@
-Connection established to port 8080
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: LIST
-List operation successfully completed
-Message sent to port 8080: STORE AllStar.txt 2227
-Store operation started for file AllStar.txt
-Message received from port 8080: STORE_TO 8081
-Controller replied to store AllStar.txt in these Dstores: 8081 
-Connection established to port 8081
-Message sent to port 8081: STORE AllStar.txt 2227
-Storing file AllStar.txt to Dstore 8081
-Message received from port 8081: ACK
-ACK received from Dstore 8081 to store file AllStar.txt
-Store of file AllStar.txt to Dstore 8081 successfully completed
-Message received from port 8080: STORE_COMPLETE
-Store operation for file AllStar.txt completed
-Message sent to port 8080: STORE AllStar.txt 2227
-Store operation started for file AllStar.txt
-Message received from port 8080: ERROR_FILE_ALREADY_EXISTS AllStar.txt
-File to store AllStar.txt already exists in the data store
-Message sent to port 8080: STORE Unknown.txt 2594
-Store operation started for file Unknown.txt
-Message received from port 8080: STORE_TO 8081
-Controller replied to store Unknown.txt in these Dstores: 8081 
-Connection established to port 8081
-Message sent to port 8081: STORE Unknown.txt 2594
-Storing file Unknown.txt to Dstore 8081
-Message received from port 8081: ACK
-ACK received from Dstore 8081 to store file Unknown.txt
-Store of file Unknown.txt to Dstore 8081 successfully completed
-Message received from port 8080: STORE_COMPLETE
-Store operation for file Unknown.txt completed
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: LIST AllStar.txt Unknown.txt
-List operation successfully completed
-Message sent to port 8080: LOAD AllStar.txt
-Load operation for file AllStar.txt started
-Message received from port 8080: ERROR_LOAD
-Load operation for file AllStar.txt failed after having contacted 0 different Dstores
-Message sent to port 8080: LOAD Unknown.txt
-Load operation for file Unknown.txt started
-Message received from port 8080: ERROR_LOAD
-Load operation for file Unknown.txt failed after having contacted 0 different Dstores
-Message sent to port 8080: REMOVE AllStar.txt
-Remove operation for file AllStar.txt started
-Message received from port 8080: REMOVE_COMPLETE
-Remove operation for file AllStar.txt successfully completed
-Message sent to port 8080: REMOVE Unknown.txt
-Remove operation for file Unknown.txt started
-Message received from port 8080: REMOVE_COMPLETE
-Remove operation for file Unknown.txt successfully completed
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: LIST AllStar.txt Unknown.txt
-List operation successfully completed
diff --git a/client_1619017624104.log b/client_1619017624104.log
deleted file mode 100644
index 6e52af7..0000000
--- a/client_1619017624104.log
+++ /dev/null
@@ -1,48 +0,0 @@
-Connection established to port 8080
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: LIST
-List operation successfully completed
-Message sent to port 8080: STORE AllStar.txt 2227
-Store operation started for file AllStar.txt
-Message received from port 8080: STORE_TO 8081
-Controller replied to store AllStar.txt in these Dstores: 8081 
-Connection established to port 8081
-Message sent to port 8081: STORE AllStar.txt 2227
-Storing file AllStar.txt to Dstore 8081
-Message received from port 8081: ACK
-ACK received from Dstore 8081 to store file AllStar.txt
-Store of file AllStar.txt to Dstore 8081 successfully completed
-Message received from port 8080: STORE_COMPLETE
-Store operation for file AllStar.txt completed
-Message sent to port 8080: STORE AllStar.txt 2227
-Store operation started for file AllStar.txt
-Message received from port 8080: ERROR_FILE_ALREADY_EXISTS AllStar.txt
-File to store AllStar.txt already exists in the data store
-Message sent to port 8080: STORE Unknown.txt 2594
-Store operation started for file Unknown.txt
-Message received from port 8080: STORE_TO 8081
-Controller replied to store Unknown.txt in these Dstores: 8081 
-Connection established to port 8081
-Message sent to port 8081: STORE Unknown.txt 2594
-Storing file Unknown.txt to Dstore 8081
-Message received from port 8081: ACK
-ACK received from Dstore 8081 to store file Unknown.txt
-Store of file Unknown.txt to Dstore 8081 successfully completed
-Message received from port 8080: STORE_COMPLETE
-Store operation for file Unknown.txt completed
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: LIST AllStar.txt Unknown.txt
-List operation successfully completed
-Message sent to port 8080: LOAD AllStar.txt
-Load operation for file AllStar.txt started
-Message received from port 8080: ERROR_LOAD
-Load operation for file AllStar.txt failed after having contacted 0 different Dstores
-Message sent to port 8080: LOAD Unknown.txt
-Load operation for file Unknown.txt started
-Message received from port 8080: LOAD_FROM 8081 -1
-Controller replied to load file Unknown.txt (size: -1 bytes) from Dstore 8081
-Connection established to port 8081
-Message sent to port 8081: LOAD_DATA Unknown.txt
-Loading file Unknown.txt from Dstore 8081
diff --git a/client_1619018158905.log b/client_1619018158905.log
deleted file mode 100644
index 5d9f5ed..0000000
--- a/client_1619018158905.log
+++ /dev/null
@@ -1,61 +0,0 @@
-Connection established to port 8080
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: LIST
-List operation successfully completed
-Message sent to port 8080: STORE AllStar.txt 2227
-Store operation started for file AllStar.txt
-Message received from port 8080: STORE_TO 8081
-Controller replied to store AllStar.txt in these Dstores: 8081 
-Connection established to port 8081
-Message sent to port 8081: STORE AllStar.txt 2227
-Storing file AllStar.txt to Dstore 8081
-Message received from port 8081: ACK
-ACK received from Dstore 8081 to store file AllStar.txt
-Store of file AllStar.txt to Dstore 8081 successfully completed
-Message received from port 8080: STORE_COMPLETE
-Store operation for file AllStar.txt completed
-Message sent to port 8080: STORE AllStar.txt 2227
-Store operation started for file AllStar.txt
-Message received from port 8080: ERROR_FILE_ALREADY_EXISTS AllStar.txt
-File to store AllStar.txt already exists in the data store
-Message sent to port 8080: STORE Unknown.txt 2594
-Store operation started for file Unknown.txt
-Message received from port 8080: STORE_TO 8081
-Controller replied to store Unknown.txt in these Dstores: 8081 
-Connection established to port 8081
-Message sent to port 8081: STORE Unknown.txt 2594
-Storing file Unknown.txt to Dstore 8081
-Message received from port 8081: ACK
-ACK received from Dstore 8081 to store file Unknown.txt
-Store of file Unknown.txt to Dstore 8081 successfully completed
-Message received from port 8080: STORE_COMPLETE
-Store operation for file Unknown.txt completed
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: LIST AllStar.txt Unknown.txt
-List operation successfully completed
-Message sent to port 8080: LOAD AllStar.txt
-Load operation for file AllStar.txt started
-Message received from port 8080: ERROR_LOAD
-Load operation for file AllStar.txt failed after having contacted 0 different Dstores
-Message sent to port 8080: LOAD Unknown.txt
-Load operation for file Unknown.txt started
-Message received from port 8080: LOAD_FROM 8081 2594
-Controller replied to load file Unknown.txt (size: 2594 bytes) from Dstore 8081
-Connection established to port 8081
-Message sent to port 8081: LOAD_DATA Unknown.txt
-Loading file Unknown.txt from Dstore 8081
-Load operation of file Unknown.txt from Dstore 8081 successfully completed
-Message sent to port 8080: REMOVE AllStar.txt
-Remove operation for file AllStar.txt started
-Message received from port 8080: REMOVE_COMPLETE
-Remove operation for file AllStar.txt successfully completed
-Message sent to port 8080: REMOVE Unknown.txt
-Remove operation for file Unknown.txt started
-Message received from port 8080: REMOVE_COMPLETE
-Remove operation for file Unknown.txt successfully completed
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: LIST AllStar.txt Unknown.txt
-List operation successfully completed
diff --git a/client_1619018768533.log b/client_1619018768533.log
deleted file mode 100644
index 772c595..0000000
--- a/client_1619018768533.log
+++ /dev/null
@@ -1,62 +0,0 @@
-Connection established to port 8080
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: LIST
-List operation successfully completed
-Message sent to port 8080: STORE AllStar.txt 2227
-Store operation started for file AllStar.txt
-Message received from port 8080: STORE_TO 8081
-Controller replied to store AllStar.txt in these Dstores: 8081 
-Connection established to port 8081
-Message sent to port 8081: STORE AllStar.txt 2227
-Storing file AllStar.txt to Dstore 8081
-Message received from port 8081: ACK
-ACK received from Dstore 8081 to store file AllStar.txt
-Store of file AllStar.txt to Dstore 8081 successfully completed
-Message received from port 8080: STORE_COMPLETE
-Store operation for file AllStar.txt completed
-Message sent to port 8080: STORE AllStar.txt 2227
-Store operation started for file AllStar.txt
-Message received from port 8080: ERROR_FILE_ALREADY_EXISTS AllStar.txt
-File to store AllStar.txt already exists in the data store
-Message sent to port 8080: STORE Unknown.txt 2594
-Store operation started for file Unknown.txt
-Message received from port 8080: STORE_TO 8081
-Controller replied to store Unknown.txt in these Dstores: 8081 
-Connection established to port 8081
-Message sent to port 8081: STORE Unknown.txt 2594
-Storing file Unknown.txt to Dstore 8081
-Message received from port 8081: ACK
-ACK received from Dstore 8081 to store file Unknown.txt
-Store of file Unknown.txt to Dstore 8081 successfully completed
-Message received from port 8080: STORE_COMPLETE
-Store operation for file Unknown.txt completed
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: LIST AllStar.txt Unknown.txt
-List operation successfully completed
-Message sent to port 8080: LOAD AllStar.txt
-Load operation for file AllStar.txt started
-Message received from port 8080: ERROR_LOAD
-Load operation for file AllStar.txt failed after having contacted 0 different Dstores
-Message sent to port 8080: LOAD Unknown.txt
-Load operation for file Unknown.txt started
-Message received from port 8080: LOAD_FROM 8081 2594
-Controller replied to load file Unknown.txt (size: 2594 bytes) from Dstore 8081
-Connection established to port 8081
-Message sent to port 8081: LOAD_DATA Unknown.txt
-Loading file Unknown.txt from Dstore 8081
-Load operation of file Unknown.txt from Dstore 8081 successfully completed
-Message sent to port 8080: REMOVE AllStar.txt
-Remove operation for file AllStar.txt started
-Message received from port 8080: REMOVE_COMPLETE
-Remove operation for file AllStar.txt successfully completed
-Message sent to port 8080: REMOVE Unknown.txt
-Remove operation for file Unknown.txt started
-Timeout expired while reading from port 8080
-Remove operation for file Unknown.txt not completed successfully
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: REMOVE_COMPLETE
-ERROR: Connection closed by the Controller
-List operation failed
diff --git a/client_1619019036315.log b/client_1619019036315.log
deleted file mode 100644
index 32523cd..0000000
--- a/client_1619019036315.log
+++ /dev/null
@@ -1,65 +0,0 @@
-Connection established to port 8080
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: LIST
-List operation successfully completed
-Message sent to port 8080: STORE AllStar.txt 2227
-Store operation started for file AllStar.txt
-Message received from port 8080: STORE_TO 8081
-Controller replied to store AllStar.txt in these Dstores: 8081 
-Connection established to port 8081
-Message sent to port 8081: STORE AllStar.txt 2227
-Storing file AllStar.txt to Dstore 8081
-Message received from port 8081: ACK
-ACK received from Dstore 8081 to store file AllStar.txt
-Store of file AllStar.txt to Dstore 8081 successfully completed
-Message received from port 8080: STORE_COMPLETE
-Store operation for file AllStar.txt completed
-Message sent to port 8080: STORE AllStar.txt 2227
-Store operation started for file AllStar.txt
-Message received from port 8080: ERROR_FILE_ALREADY_EXISTS AllStar.txt
-File to store AllStar.txt already exists in the data store
-Message sent to port 8080: STORE Unknown.txt 2594
-Store operation started for file Unknown.txt
-Message received from port 8080: STORE_TO 8081
-Controller replied to store Unknown.txt in these Dstores: 8081 
-Connection established to port 8081
-Message sent to port 8081: STORE Unknown.txt 2594
-Storing file Unknown.txt to Dstore 8081
-Message received from port 8081: ACK
-ACK received from Dstore 8081 to store file Unknown.txt
-Store of file Unknown.txt to Dstore 8081 successfully completed
-Message received from port 8080: STORE_COMPLETE
-Store operation for file Unknown.txt completed
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: LIST AllStar.txt Unknown.txt
-List operation successfully completed
-Message sent to port 8080: LOAD AllStar.txt
-Load operation for file AllStar.txt started
-Message received from port 8080: LOAD_FROM 8081 2227
-Controller replied to load file AllStar.txt (size: 2227 bytes) from Dstore 8081
-Connection established to port 8081
-Message sent to port 8081: LOAD_DATA AllStar.txt
-Loading file AllStar.txt from Dstore 8081
-Load operation of file AllStar.txt from Dstore 8081 successfully completed
-Message sent to port 8080: LOAD Unknown.txt
-Load operation for file Unknown.txt started
-Message received from port 8080: LOAD_FROM 8081 2594
-Controller replied to load file Unknown.txt (size: 2594 bytes) from Dstore 8081
-Connection established to port 8081
-Message sent to port 8081: LOAD_DATA Unknown.txt
-Loading file Unknown.txt from Dstore 8081
-Load operation of file Unknown.txt from Dstore 8081 successfully completed
-Message sent to port 8080: REMOVE AllStar.txt
-Remove operation for file AllStar.txt started
-Message received from port 8080: REMOVE_COMPLETE
-Remove operation for file AllStar.txt successfully completed
-Message sent to port 8080: REMOVE Unknown.txt
-Remove operation for file Unknown.txt started
-Message received from port 8080: REMOVE_COMPLETE
-Remove operation for file Unknown.txt successfully completed
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: LIST
-List operation successfully completed
diff --git a/client_1619019325145.log b/client_1619019325145.log
deleted file mode 100644
index 32523cd..0000000
--- a/client_1619019325145.log
+++ /dev/null
@@ -1,65 +0,0 @@
-Connection established to port 8080
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: LIST
-List operation successfully completed
-Message sent to port 8080: STORE AllStar.txt 2227
-Store operation started for file AllStar.txt
-Message received from port 8080: STORE_TO 8081
-Controller replied to store AllStar.txt in these Dstores: 8081 
-Connection established to port 8081
-Message sent to port 8081: STORE AllStar.txt 2227
-Storing file AllStar.txt to Dstore 8081
-Message received from port 8081: ACK
-ACK received from Dstore 8081 to store file AllStar.txt
-Store of file AllStar.txt to Dstore 8081 successfully completed
-Message received from port 8080: STORE_COMPLETE
-Store operation for file AllStar.txt completed
-Message sent to port 8080: STORE AllStar.txt 2227
-Store operation started for file AllStar.txt
-Message received from port 8080: ERROR_FILE_ALREADY_EXISTS AllStar.txt
-File to store AllStar.txt already exists in the data store
-Message sent to port 8080: STORE Unknown.txt 2594
-Store operation started for file Unknown.txt
-Message received from port 8080: STORE_TO 8081
-Controller replied to store Unknown.txt in these Dstores: 8081 
-Connection established to port 8081
-Message sent to port 8081: STORE Unknown.txt 2594
-Storing file Unknown.txt to Dstore 8081
-Message received from port 8081: ACK
-ACK received from Dstore 8081 to store file Unknown.txt
-Store of file Unknown.txt to Dstore 8081 successfully completed
-Message received from port 8080: STORE_COMPLETE
-Store operation for file Unknown.txt completed
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: LIST AllStar.txt Unknown.txt
-List operation successfully completed
-Message sent to port 8080: LOAD AllStar.txt
-Load operation for file AllStar.txt started
-Message received from port 8080: LOAD_FROM 8081 2227
-Controller replied to load file AllStar.txt (size: 2227 bytes) from Dstore 8081
-Connection established to port 8081
-Message sent to port 8081: LOAD_DATA AllStar.txt
-Loading file AllStar.txt from Dstore 8081
-Load operation of file AllStar.txt from Dstore 8081 successfully completed
-Message sent to port 8080: LOAD Unknown.txt
-Load operation for file Unknown.txt started
-Message received from port 8080: LOAD_FROM 8081 2594
-Controller replied to load file Unknown.txt (size: 2594 bytes) from Dstore 8081
-Connection established to port 8081
-Message sent to port 8081: LOAD_DATA Unknown.txt
-Loading file Unknown.txt from Dstore 8081
-Load operation of file Unknown.txt from Dstore 8081 successfully completed
-Message sent to port 8080: REMOVE AllStar.txt
-Remove operation for file AllStar.txt started
-Message received from port 8080: REMOVE_COMPLETE
-Remove operation for file AllStar.txt successfully completed
-Message sent to port 8080: REMOVE Unknown.txt
-Remove operation for file Unknown.txt started
-Message received from port 8080: REMOVE_COMPLETE
-Remove operation for file Unknown.txt successfully completed
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: LIST
-List operation successfully completed
diff --git a/client_1619019601175.log b/client_1619019601175.log
deleted file mode 100644
index 0938640..0000000
--- a/client_1619019601175.log
+++ /dev/null
@@ -1,61 +0,0 @@
-Connection established to port 8080
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: LIST
-List operation successfully completed
-Message sent to port 8080: STORE AllStar.txt 2227
-Store operation started for file AllStar.txt
-Message received from port 8080: STORE_TO 8081
-Controller replied to store AllStar.txt in these Dstores: 8081 
-Connection established to port 8081
-Message sent to port 8081: STORE AllStar.txt 2227
-Storing file AllStar.txt to Dstore 8081
-Message received from port 8081: ACK
-ACK received from Dstore 8081 to store file AllStar.txt
-Store of file AllStar.txt to Dstore 8081 successfully completed
-Message received from port 8080: STORE_COMPLETE
-Store operation for file AllStar.txt completed
-Message sent to port 8080: STORE AllStar.txt 2227
-Store operation started for file AllStar.txt
-Message received from port 8080: ERROR_FILE_ALREADY_EXISTS AllStar.txt
-File to store AllStar.txt already exists in the data store
-Message sent to port 8080: STORE Unknown.txt 2594
-Store operation started for file Unknown.txt
-Message received from port 8080: STORE_TO 8081
-Controller replied to store Unknown.txt in these Dstores: 8081 
-Connection established to port 8081
-Message sent to port 8081: STORE Unknown.txt 2594
-Storing file Unknown.txt to Dstore 8081
-Message received from port 8081: ACK
-ACK received from Dstore 8081 to store file Unknown.txt
-Store of file Unknown.txt to Dstore 8081 successfully completed
-Message received from port 8080: STORE_COMPLETE
-Store operation for file Unknown.txt completed
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: LIST AllStar.txt Unknown.txt
-List operation successfully completed
-Message sent to port 8080: LOAD AllStar.txt
-Load operation for file AllStar.txt started
-Message received from port 8080: ERROR_LOAD
-Load operation for file AllStar.txt failed after having contacted 0 different Dstores
-Message sent to port 8080: LOAD Unknown.txt
-Load operation for file Unknown.txt started
-Message received from port 8080: LOAD_FROM 8081 2594
-Controller replied to load file Unknown.txt (size: 2594 bytes) from Dstore 8081
-Connection established to port 8081
-Message sent to port 8081: LOAD_DATA Unknown.txt
-Loading file Unknown.txt from Dstore 8081
-Load operation of file Unknown.txt from Dstore 8081 successfully completed
-Message sent to port 8080: REMOVE AllStar.txt
-Remove operation for file AllStar.txt started
-Message received from port 8080: REMOVE_COMPLETE
-Remove operation for file AllStar.txt successfully completed
-Message sent to port 8080: REMOVE Unknown.txt
-Remove operation for file Unknown.txt started
-Message received from port 8080: REMOVE_COMPLETE
-Remove operation for file Unknown.txt successfully completed
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: LIST
-List operation successfully completed
diff --git a/client_1619019802665.log b/client_1619019802665.log
deleted file mode 100644
index 32523cd..0000000
--- a/client_1619019802665.log
+++ /dev/null
@@ -1,65 +0,0 @@
-Connection established to port 8080
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: LIST
-List operation successfully completed
-Message sent to port 8080: STORE AllStar.txt 2227
-Store operation started for file AllStar.txt
-Message received from port 8080: STORE_TO 8081
-Controller replied to store AllStar.txt in these Dstores: 8081 
-Connection established to port 8081
-Message sent to port 8081: STORE AllStar.txt 2227
-Storing file AllStar.txt to Dstore 8081
-Message received from port 8081: ACK
-ACK received from Dstore 8081 to store file AllStar.txt
-Store of file AllStar.txt to Dstore 8081 successfully completed
-Message received from port 8080: STORE_COMPLETE
-Store operation for file AllStar.txt completed
-Message sent to port 8080: STORE AllStar.txt 2227
-Store operation started for file AllStar.txt
-Message received from port 8080: ERROR_FILE_ALREADY_EXISTS AllStar.txt
-File to store AllStar.txt already exists in the data store
-Message sent to port 8080: STORE Unknown.txt 2594
-Store operation started for file Unknown.txt
-Message received from port 8080: STORE_TO 8081
-Controller replied to store Unknown.txt in these Dstores: 8081 
-Connection established to port 8081
-Message sent to port 8081: STORE Unknown.txt 2594
-Storing file Unknown.txt to Dstore 8081
-Message received from port 8081: ACK
-ACK received from Dstore 8081 to store file Unknown.txt
-Store of file Unknown.txt to Dstore 8081 successfully completed
-Message received from port 8080: STORE_COMPLETE
-Store operation for file Unknown.txt completed
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: LIST AllStar.txt Unknown.txt
-List operation successfully completed
-Message sent to port 8080: LOAD AllStar.txt
-Load operation for file AllStar.txt started
-Message received from port 8080: LOAD_FROM 8081 2227
-Controller replied to load file AllStar.txt (size: 2227 bytes) from Dstore 8081
-Connection established to port 8081
-Message sent to port 8081: LOAD_DATA AllStar.txt
-Loading file AllStar.txt from Dstore 8081
-Load operation of file AllStar.txt from Dstore 8081 successfully completed
-Message sent to port 8080: LOAD Unknown.txt
-Load operation for file Unknown.txt started
-Message received from port 8080: LOAD_FROM 8081 2594
-Controller replied to load file Unknown.txt (size: 2594 bytes) from Dstore 8081
-Connection established to port 8081
-Message sent to port 8081: LOAD_DATA Unknown.txt
-Loading file Unknown.txt from Dstore 8081
-Load operation of file Unknown.txt from Dstore 8081 successfully completed
-Message sent to port 8080: REMOVE AllStar.txt
-Remove operation for file AllStar.txt started
-Message received from port 8080: REMOVE_COMPLETE
-Remove operation for file AllStar.txt successfully completed
-Message sent to port 8080: REMOVE Unknown.txt
-Remove operation for file Unknown.txt started
-Message received from port 8080: REMOVE_COMPLETE
-Remove operation for file Unknown.txt successfully completed
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: LIST
-List operation successfully completed
diff --git a/client_1619025053448.log b/client_1619025053448.log
deleted file mode 100644
index 772c595..0000000
--- a/client_1619025053448.log
+++ /dev/null
@@ -1,62 +0,0 @@
-Connection established to port 8080
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: LIST
-List operation successfully completed
-Message sent to port 8080: STORE AllStar.txt 2227
-Store operation started for file AllStar.txt
-Message received from port 8080: STORE_TO 8081
-Controller replied to store AllStar.txt in these Dstores: 8081 
-Connection established to port 8081
-Message sent to port 8081: STORE AllStar.txt 2227
-Storing file AllStar.txt to Dstore 8081
-Message received from port 8081: ACK
-ACK received from Dstore 8081 to store file AllStar.txt
-Store of file AllStar.txt to Dstore 8081 successfully completed
-Message received from port 8080: STORE_COMPLETE
-Store operation for file AllStar.txt completed
-Message sent to port 8080: STORE AllStar.txt 2227
-Store operation started for file AllStar.txt
-Message received from port 8080: ERROR_FILE_ALREADY_EXISTS AllStar.txt
-File to store AllStar.txt already exists in the data store
-Message sent to port 8080: STORE Unknown.txt 2594
-Store operation started for file Unknown.txt
-Message received from port 8080: STORE_TO 8081
-Controller replied to store Unknown.txt in these Dstores: 8081 
-Connection established to port 8081
-Message sent to port 8081: STORE Unknown.txt 2594
-Storing file Unknown.txt to Dstore 8081
-Message received from port 8081: ACK
-ACK received from Dstore 8081 to store file Unknown.txt
-Store of file Unknown.txt to Dstore 8081 successfully completed
-Message received from port 8080: STORE_COMPLETE
-Store operation for file Unknown.txt completed
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: LIST AllStar.txt Unknown.txt
-List operation successfully completed
-Message sent to port 8080: LOAD AllStar.txt
-Load operation for file AllStar.txt started
-Message received from port 8080: ERROR_LOAD
-Load operation for file AllStar.txt failed after having contacted 0 different Dstores
-Message sent to port 8080: LOAD Unknown.txt
-Load operation for file Unknown.txt started
-Message received from port 8080: LOAD_FROM 8081 2594
-Controller replied to load file Unknown.txt (size: 2594 bytes) from Dstore 8081
-Connection established to port 8081
-Message sent to port 8081: LOAD_DATA Unknown.txt
-Loading file Unknown.txt from Dstore 8081
-Load operation of file Unknown.txt from Dstore 8081 successfully completed
-Message sent to port 8080: REMOVE AllStar.txt
-Remove operation for file AllStar.txt started
-Message received from port 8080: REMOVE_COMPLETE
-Remove operation for file AllStar.txt successfully completed
-Message sent to port 8080: REMOVE Unknown.txt
-Remove operation for file Unknown.txt started
-Timeout expired while reading from port 8080
-Remove operation for file Unknown.txt not completed successfully
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: REMOVE_COMPLETE
-ERROR: Connection closed by the Controller
-List operation failed
diff --git a/client_1619025357100.log b/client_1619025357100.log
deleted file mode 100644
index 32523cd..0000000
--- a/client_1619025357100.log
+++ /dev/null
@@ -1,65 +0,0 @@
-Connection established to port 8080
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: LIST
-List operation successfully completed
-Message sent to port 8080: STORE AllStar.txt 2227
-Store operation started for file AllStar.txt
-Message received from port 8080: STORE_TO 8081
-Controller replied to store AllStar.txt in these Dstores: 8081 
-Connection established to port 8081
-Message sent to port 8081: STORE AllStar.txt 2227
-Storing file AllStar.txt to Dstore 8081
-Message received from port 8081: ACK
-ACK received from Dstore 8081 to store file AllStar.txt
-Store of file AllStar.txt to Dstore 8081 successfully completed
-Message received from port 8080: STORE_COMPLETE
-Store operation for file AllStar.txt completed
-Message sent to port 8080: STORE AllStar.txt 2227
-Store operation started for file AllStar.txt
-Message received from port 8080: ERROR_FILE_ALREADY_EXISTS AllStar.txt
-File to store AllStar.txt already exists in the data store
-Message sent to port 8080: STORE Unknown.txt 2594
-Store operation started for file Unknown.txt
-Message received from port 8080: STORE_TO 8081
-Controller replied to store Unknown.txt in these Dstores: 8081 
-Connection established to port 8081
-Message sent to port 8081: STORE Unknown.txt 2594
-Storing file Unknown.txt to Dstore 8081
-Message received from port 8081: ACK
-ACK received from Dstore 8081 to store file Unknown.txt
-Store of file Unknown.txt to Dstore 8081 successfully completed
-Message received from port 8080: STORE_COMPLETE
-Store operation for file Unknown.txt completed
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: LIST AllStar.txt Unknown.txt
-List operation successfully completed
-Message sent to port 8080: LOAD AllStar.txt
-Load operation for file AllStar.txt started
-Message received from port 8080: LOAD_FROM 8081 2227
-Controller replied to load file AllStar.txt (size: 2227 bytes) from Dstore 8081
-Connection established to port 8081
-Message sent to port 8081: LOAD_DATA AllStar.txt
-Loading file AllStar.txt from Dstore 8081
-Load operation of file AllStar.txt from Dstore 8081 successfully completed
-Message sent to port 8080: LOAD Unknown.txt
-Load operation for file Unknown.txt started
-Message received from port 8080: LOAD_FROM 8081 2594
-Controller replied to load file Unknown.txt (size: 2594 bytes) from Dstore 8081
-Connection established to port 8081
-Message sent to port 8081: LOAD_DATA Unknown.txt
-Loading file Unknown.txt from Dstore 8081
-Load operation of file Unknown.txt from Dstore 8081 successfully completed
-Message sent to port 8080: REMOVE AllStar.txt
-Remove operation for file AllStar.txt started
-Message received from port 8080: REMOVE_COMPLETE
-Remove operation for file AllStar.txt successfully completed
-Message sent to port 8080: REMOVE Unknown.txt
-Remove operation for file Unknown.txt started
-Message received from port 8080: REMOVE_COMPLETE
-Remove operation for file Unknown.txt successfully completed
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: LIST
-List operation successfully completed
diff --git a/client_1619025636890.log b/client_1619025636890.log
deleted file mode 100644
index 772c595..0000000
--- a/client_1619025636890.log
+++ /dev/null
@@ -1,62 +0,0 @@
-Connection established to port 8080
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: LIST
-List operation successfully completed
-Message sent to port 8080: STORE AllStar.txt 2227
-Store operation started for file AllStar.txt
-Message received from port 8080: STORE_TO 8081
-Controller replied to store AllStar.txt in these Dstores: 8081 
-Connection established to port 8081
-Message sent to port 8081: STORE AllStar.txt 2227
-Storing file AllStar.txt to Dstore 8081
-Message received from port 8081: ACK
-ACK received from Dstore 8081 to store file AllStar.txt
-Store of file AllStar.txt to Dstore 8081 successfully completed
-Message received from port 8080: STORE_COMPLETE
-Store operation for file AllStar.txt completed
-Message sent to port 8080: STORE AllStar.txt 2227
-Store operation started for file AllStar.txt
-Message received from port 8080: ERROR_FILE_ALREADY_EXISTS AllStar.txt
-File to store AllStar.txt already exists in the data store
-Message sent to port 8080: STORE Unknown.txt 2594
-Store operation started for file Unknown.txt
-Message received from port 8080: STORE_TO 8081
-Controller replied to store Unknown.txt in these Dstores: 8081 
-Connection established to port 8081
-Message sent to port 8081: STORE Unknown.txt 2594
-Storing file Unknown.txt to Dstore 8081
-Message received from port 8081: ACK
-ACK received from Dstore 8081 to store file Unknown.txt
-Store of file Unknown.txt to Dstore 8081 successfully completed
-Message received from port 8080: STORE_COMPLETE
-Store operation for file Unknown.txt completed
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: LIST AllStar.txt Unknown.txt
-List operation successfully completed
-Message sent to port 8080: LOAD AllStar.txt
-Load operation for file AllStar.txt started
-Message received from port 8080: ERROR_LOAD
-Load operation for file AllStar.txt failed after having contacted 0 different Dstores
-Message sent to port 8080: LOAD Unknown.txt
-Load operation for file Unknown.txt started
-Message received from port 8080: LOAD_FROM 8081 2594
-Controller replied to load file Unknown.txt (size: 2594 bytes) from Dstore 8081
-Connection established to port 8081
-Message sent to port 8081: LOAD_DATA Unknown.txt
-Loading file Unknown.txt from Dstore 8081
-Load operation of file Unknown.txt from Dstore 8081 successfully completed
-Message sent to port 8080: REMOVE AllStar.txt
-Remove operation for file AllStar.txt started
-Message received from port 8080: REMOVE_COMPLETE
-Remove operation for file AllStar.txt successfully completed
-Message sent to port 8080: REMOVE Unknown.txt
-Remove operation for file Unknown.txt started
-Timeout expired while reading from port 8080
-Remove operation for file Unknown.txt not completed successfully
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: REMOVE_COMPLETE
-ERROR: Connection closed by the Controller
-List operation failed
diff --git a/client_1619025719814.log b/client_1619025719814.log
deleted file mode 100644
index 32523cd..0000000
--- a/client_1619025719814.log
+++ /dev/null
@@ -1,65 +0,0 @@
-Connection established to port 8080
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: LIST
-List operation successfully completed
-Message sent to port 8080: STORE AllStar.txt 2227
-Store operation started for file AllStar.txt
-Message received from port 8080: STORE_TO 8081
-Controller replied to store AllStar.txt in these Dstores: 8081 
-Connection established to port 8081
-Message sent to port 8081: STORE AllStar.txt 2227
-Storing file AllStar.txt to Dstore 8081
-Message received from port 8081: ACK
-ACK received from Dstore 8081 to store file AllStar.txt
-Store of file AllStar.txt to Dstore 8081 successfully completed
-Message received from port 8080: STORE_COMPLETE
-Store operation for file AllStar.txt completed
-Message sent to port 8080: STORE AllStar.txt 2227
-Store operation started for file AllStar.txt
-Message received from port 8080: ERROR_FILE_ALREADY_EXISTS AllStar.txt
-File to store AllStar.txt already exists in the data store
-Message sent to port 8080: STORE Unknown.txt 2594
-Store operation started for file Unknown.txt
-Message received from port 8080: STORE_TO 8081
-Controller replied to store Unknown.txt in these Dstores: 8081 
-Connection established to port 8081
-Message sent to port 8081: STORE Unknown.txt 2594
-Storing file Unknown.txt to Dstore 8081
-Message received from port 8081: ACK
-ACK received from Dstore 8081 to store file Unknown.txt
-Store of file Unknown.txt to Dstore 8081 successfully completed
-Message received from port 8080: STORE_COMPLETE
-Store operation for file Unknown.txt completed
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: LIST AllStar.txt Unknown.txt
-List operation successfully completed
-Message sent to port 8080: LOAD AllStar.txt
-Load operation for file AllStar.txt started
-Message received from port 8080: LOAD_FROM 8081 2227
-Controller replied to load file AllStar.txt (size: 2227 bytes) from Dstore 8081
-Connection established to port 8081
-Message sent to port 8081: LOAD_DATA AllStar.txt
-Loading file AllStar.txt from Dstore 8081
-Load operation of file AllStar.txt from Dstore 8081 successfully completed
-Message sent to port 8080: LOAD Unknown.txt
-Load operation for file Unknown.txt started
-Message received from port 8080: LOAD_FROM 8081 2594
-Controller replied to load file Unknown.txt (size: 2594 bytes) from Dstore 8081
-Connection established to port 8081
-Message sent to port 8081: LOAD_DATA Unknown.txt
-Loading file Unknown.txt from Dstore 8081
-Load operation of file Unknown.txt from Dstore 8081 successfully completed
-Message sent to port 8080: REMOVE AllStar.txt
-Remove operation for file AllStar.txt started
-Message received from port 8080: REMOVE_COMPLETE
-Remove operation for file AllStar.txt successfully completed
-Message sent to port 8080: REMOVE Unknown.txt
-Remove operation for file Unknown.txt started
-Message received from port 8080: REMOVE_COMPLETE
-Remove operation for file Unknown.txt successfully completed
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: LIST
-List operation successfully completed
diff --git a/client_1619034515898.log b/client_1619034515898.log
deleted file mode 100644
index 32523cd..0000000
--- a/client_1619034515898.log
+++ /dev/null
@@ -1,65 +0,0 @@
-Connection established to port 8080
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: LIST
-List operation successfully completed
-Message sent to port 8080: STORE AllStar.txt 2227
-Store operation started for file AllStar.txt
-Message received from port 8080: STORE_TO 8081
-Controller replied to store AllStar.txt in these Dstores: 8081 
-Connection established to port 8081
-Message sent to port 8081: STORE AllStar.txt 2227
-Storing file AllStar.txt to Dstore 8081
-Message received from port 8081: ACK
-ACK received from Dstore 8081 to store file AllStar.txt
-Store of file AllStar.txt to Dstore 8081 successfully completed
-Message received from port 8080: STORE_COMPLETE
-Store operation for file AllStar.txt completed
-Message sent to port 8080: STORE AllStar.txt 2227
-Store operation started for file AllStar.txt
-Message received from port 8080: ERROR_FILE_ALREADY_EXISTS AllStar.txt
-File to store AllStar.txt already exists in the data store
-Message sent to port 8080: STORE Unknown.txt 2594
-Store operation started for file Unknown.txt
-Message received from port 8080: STORE_TO 8081
-Controller replied to store Unknown.txt in these Dstores: 8081 
-Connection established to port 8081
-Message sent to port 8081: STORE Unknown.txt 2594
-Storing file Unknown.txt to Dstore 8081
-Message received from port 8081: ACK
-ACK received from Dstore 8081 to store file Unknown.txt
-Store of file Unknown.txt to Dstore 8081 successfully completed
-Message received from port 8080: STORE_COMPLETE
-Store operation for file Unknown.txt completed
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: LIST AllStar.txt Unknown.txt
-List operation successfully completed
-Message sent to port 8080: LOAD AllStar.txt
-Load operation for file AllStar.txt started
-Message received from port 8080: LOAD_FROM 8081 2227
-Controller replied to load file AllStar.txt (size: 2227 bytes) from Dstore 8081
-Connection established to port 8081
-Message sent to port 8081: LOAD_DATA AllStar.txt
-Loading file AllStar.txt from Dstore 8081
-Load operation of file AllStar.txt from Dstore 8081 successfully completed
-Message sent to port 8080: LOAD Unknown.txt
-Load operation for file Unknown.txt started
-Message received from port 8080: LOAD_FROM 8081 2594
-Controller replied to load file Unknown.txt (size: 2594 bytes) from Dstore 8081
-Connection established to port 8081
-Message sent to port 8081: LOAD_DATA Unknown.txt
-Loading file Unknown.txt from Dstore 8081
-Load operation of file Unknown.txt from Dstore 8081 successfully completed
-Message sent to port 8080: REMOVE AllStar.txt
-Remove operation for file AllStar.txt started
-Message received from port 8080: REMOVE_COMPLETE
-Remove operation for file AllStar.txt successfully completed
-Message sent to port 8080: REMOVE Unknown.txt
-Remove operation for file Unknown.txt started
-Message received from port 8080: REMOVE_COMPLETE
-Remove operation for file Unknown.txt successfully completed
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: LIST
-List operation successfully completed
diff --git a/client_1619034593200.log b/client_1619034593200.log
deleted file mode 100644
index e94a361..0000000
--- a/client_1619034593200.log
+++ /dev/null
@@ -1,41 +0,0 @@
-Connection established to port 8080
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: LIST
-List operation successfully completed
-Message sent to port 8080: STORE AllStar.txt 2227
-Store operation started for file AllStar.txt
-Message received from port 8080: STORE_TO 8081
-Controller replied to store AllStar.txt in these Dstores: 8081 
-Store of file AllStar.txt to Dstore 8081 failed
-Message received from port 8080: STORE_COMPLETE
-Store operation for file AllStar.txt completed
-Message sent to port 8080: STORE AllStar.txt 2227
-Store operation started for file AllStar.txt
-Message received from port 8080: ERROR_FILE_ALREADY_EXISTS AllStar.txt
-File to store AllStar.txt already exists in the data store
-Message sent to port 8080: STORE Unknown.txt 2594
-Store operation started for file Unknown.txt
-Message received from port 8080: STORE_TO 8081
-Controller replied to store Unknown.txt in these Dstores: 8081 
-Store of file Unknown.txt to Dstore 8081 failed
-Message received from port 8080: STORE_COMPLETE
-Store operation for file Unknown.txt completed
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: LIST AllStar.txt Unknown.txt
-List operation successfully completed
-Message sent to port 8080: LOAD AllStar.txt
-Load operation for file AllStar.txt started
-Message received from port 8080: ERROR_LOAD
-Load operation for file AllStar.txt failed after having contacted 0 different Dstores
-Message sent to port 8080: LOAD Unknown.txt
-Load operation for file Unknown.txt started
-Message received from port 8080: ERROR_LOAD
-Load operation for file Unknown.txt failed after having contacted 0 different Dstores
-Message sent to port 8080: REMOVE AllStar.txt
-Remove operation for file AllStar.txt started
-Message received from port 8080: REMOVE_COMPLETE
-Remove operation for file AllStar.txt successfully completed
-Message sent to port 8080: REMOVE Unknown.txt
-Remove operation for file Unknown.txt started
diff --git a/client_1619036545308.log b/client_1619036545308.log
deleted file mode 100644
index 7f0f666..0000000
--- a/client_1619036545308.log
+++ /dev/null
@@ -1,44 +0,0 @@
-Connection established to port 8080
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: LIST
-List operation successfully completed
-Message sent to port 8080: STORE AllStar.txt 2227
-Store operation started for file AllStar.txt
-Message received from port 8080: STORE_TO 8081
-Controller replied to store AllStar.txt in these Dstores: 8081 
-Store of file AllStar.txt to Dstore 8081 failed
-Message received from port 8080: STORE_COMPLETE
-Store operation for file AllStar.txt completed
-Message sent to port 8080: STORE AllStar.txt 2227
-Store operation started for file AllStar.txt
-Message received from port 8080: ERROR_FILE_ALREADY_EXISTS AllStar.txt
-File to store AllStar.txt already exists in the data store
-Message sent to port 8080: STORE Unknown.txt 2594
-Store operation started for file Unknown.txt
-Timeout expired while reading from port 8080
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: LIST AllStar.txt Unknown.txt
-List operation successfully completed
-Message sent to port 8080: LOAD AllStar.txt
-Load operation for file AllStar.txt started
-Message received from port 8080: ERROR_LOAD
-Load operation for file AllStar.txt failed after having contacted 0 different Dstores
-Message sent to port 8080: LOAD Unknown.txt
-Load operation for file Unknown.txt started
-Message received from port 8080: ERROR_LOAD
-Load operation for file Unknown.txt failed after having contacted 0 different Dstores
-Message sent to port 8080: REMOVE AllStar.txt
-Remove operation for file AllStar.txt started
-Timeout expired while reading from port 8080
-Remove operation for file AllStar.txt not completed successfully
-Message sent to port 8080: REMOVE Unknown.txt
-Remove operation for file Unknown.txt started
-Message received from port 8080: REMOVE_COMPLETE
-Remove operation for file Unknown.txt successfully completed
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: REMOVE_COMPLETE
-ERROR: Connection closed by the Controller
-List operation failed
diff --git a/client_1619039097527.log b/client_1619039097527.log
deleted file mode 100644
index a89806a..0000000
--- a/client_1619039097527.log
+++ /dev/null
@@ -1,26 +0,0 @@
-Connection established to port 8080
-Message sent to port 8080: STORE AllStar.txt 2227
-Store operation started for file AllStar.txt
-Message received from port 8080: ERROR_NOT_ENOUGH_DSTORES
-ERROR: Not enough Dstores have joined the data store yet
-Message sent to port 8080: STORE Unknown.txt 2594
-Store operation started for file Unknown.txt
-Message received from port 8080: ERROR_NOT_ENOUGH_DSTORES
-ERROR: Not enough Dstores have joined the data store yet
-Message sent to port 8080: STORE PumpkinHill.txt 2755
-Store operation started for file PumpkinHill.txt
-Message received from port 8080: ERROR_NOT_ENOUGH_DSTORES
-ERROR: Not enough Dstores have joined the data store yet
-Message sent to port 8080: STORE SnowHalation.txt 1006
-Store operation started for file SnowHalation.txt
-Message received from port 8080: ERROR_NOT_ENOUGH_DSTORES
-ERROR: Not enough Dstores have joined the data store yet
-Message sent to port 8080: STORE Grandad.txt 349
-Store operation started for file Grandad.txt
-Message received from port 8080: ERROR_NOT_ENOUGH_DSTORES
-ERROR: Not enough Dstores have joined the data store yet
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: ERROR_NOT_ENOUGH_DSTORES
-ERROR: Not enough Dstores have joined the data store yet
-List operation failed
diff --git a/client_1619039957471.log b/client_1619039957471.log
deleted file mode 100644
index a89806a..0000000
--- a/client_1619039957471.log
+++ /dev/null
@@ -1,26 +0,0 @@
-Connection established to port 8080
-Message sent to port 8080: STORE AllStar.txt 2227
-Store operation started for file AllStar.txt
-Message received from port 8080: ERROR_NOT_ENOUGH_DSTORES
-ERROR: Not enough Dstores have joined the data store yet
-Message sent to port 8080: STORE Unknown.txt 2594
-Store operation started for file Unknown.txt
-Message received from port 8080: ERROR_NOT_ENOUGH_DSTORES
-ERROR: Not enough Dstores have joined the data store yet
-Message sent to port 8080: STORE PumpkinHill.txt 2755
-Store operation started for file PumpkinHill.txt
-Message received from port 8080: ERROR_NOT_ENOUGH_DSTORES
-ERROR: Not enough Dstores have joined the data store yet
-Message sent to port 8080: STORE SnowHalation.txt 1006
-Store operation started for file SnowHalation.txt
-Message received from port 8080: ERROR_NOT_ENOUGH_DSTORES
-ERROR: Not enough Dstores have joined the data store yet
-Message sent to port 8080: STORE Grandad.txt 349
-Store operation started for file Grandad.txt
-Message received from port 8080: ERROR_NOT_ENOUGH_DSTORES
-ERROR: Not enough Dstores have joined the data store yet
-Message sent to port 8080: LIST
-List operation started
-Message received from port 8080: ERROR_NOT_ENOUGH_DSTORES
-ERROR: Not enough Dstores have joined the data store yet
-List operation failed
diff --git a/downloads/Grandad.txt b/downloads/Grandad.txt
new file mode 100644
index 0000000..4891fef
--- /dev/null
+++ b/downloads/Grandad.txt
@@ -0,0 +1,14 @@
+(Yabba Dabba Doo!)
+
+Flintstones. Meet the Flintstones.
+They're the modern stone age family.
+From the town of Bedrock,
+They're a page right out of history.
+
+Let's ride with the family down the street.
+Through the courtesy of Fred's two feet.
+
+When you're with the Flintstones
+Have a yabba dabba doo time.
+A dabba doo time.
+We'll have a gay old time.
diff --git a/downloads/PumpkinHill.txt b/downloads/PumpkinHill.txt
new file mode 100644
index 0000000..e245805
--- /dev/null
+++ b/downloads/PumpkinHill.txt
@@ -0,0 +1,68 @@
+You know me, the fighting freak Knuckles,
+And we're at Pumpkin Hill,
+You ready?
+
+I ain't gonna let it get to me, I'm just gonna creep,
+Down in Pumpkin Hill I gots to find my lost piece.
+I know that it's here, I can sense it in my feet,
+The great Emerald's power allows me to feel.
+I can't see a thing but it's around somewhere,
+I'm gonna hold my head 'cause I have no fear.
+This probably seems crazy, crazy, a graveyard theory,
+A ghost tried to approach me and got leery.
+
+Asked him a question and he vanished in a second,
+I'm walkin' through valleys cryin' pumpkin in the alley.
+Didn't seem happy but they sure tried to get me,
+Had to back 'em up with the fist, metal crack 'em.
+I'm hearing someone sayin' "You a chicken, don't be scared!"
+It had to be the wind, 'cause nobody wasn't there.
+I searched and I searched as I climbed up the wall,
+And then I started to fly, I went in deeper!
+
+Let it get to me? I'm just gonna creep,
+Down in Pumpkin Hill I gots to find my lost piece.
+I know that it's here, I sense it in my feet,
+The great Emerald's power allows me to feel.
+I can't see a thing but it's around somewhere,
+I gotta hold my head, I have no fear.
+It probably seems crazy, crazy, a graveyard theory,
+A ghost tried to approach me, he got leery.
+
+(This is Knuckles, who fears none.)
+(It's real deal when it comes to my name, kid!)
+
+I ain't gonna let it get to me, I'm just gonna creep,
+Down in Pumpkin Hill I gots to find my lost piece.
+I know that it's here, I can sense it in my feet,
+The great Emerald's power allows me to feel.
+I can't see a thing but it's around somewhere,
+I'm gonna hold my head 'cause I have no fear.
+This probably seems crazy, crazy, a graveyard theory,
+A ghost tried to approach me and got leery.
+
+Asked him a question and he vanished in a second,
+I'm walkin' through valleys cryin' pumpkin in the alley.
+Didn't seem happy but they sure tried to get me,
+Had to back 'em up with the fist, metal crack 'em.
+I'm hearing someone sayin' "You a chicken, don't be scared!"
+It had to be the wind, 'cause nobody wasn't there.
+I searched and I searched as I climbed up the wall,
+And then I started to fly, I went in deeper!
+
+Let it get to me? I'm just gonna creep,
+Down in Pumpkin Hill I gots to find my lost piece.
+I know that it's here, I sense it in my feet,
+The great Emerald's power allows me to feel.
+I can't see a thing but it's around somewhere,
+I gotta hold my head, I have no fear.
+It probably seems crazy, crazy, a graveyard theory,
+A ghost tried to approach me, he got leery.
+
+(Spooky up in here, it's crazy in here,)
+(We still gon' keep it goin', I'm Knuckles.)
+(Nobody scares me,)
+(Whoever want it, bring it!)
+(I don't care, we 'ka do this.)
+(Then come step up to the plate, and meet your match,)
+(It ain't no thang.)
diff --git a/downloads/SnowHalation.txt b/downloads/SnowHalation.txt
new file mode 100644
index 0000000..09add47
--- /dev/null
+++ b/downloads/SnowHalation.txt
@@ -0,0 +1,36 @@
+Fushigi da ne ima no kimochi
+Sora kara futte kita mitai
+Tokubetsu na kisetsu no iro ga tokimeki o miseru yo
+
+Hajimete deatta toki kara
+Yokan ni sawagu kokoro no Melody
+Tomerarenai tomaranai na・ze
+
+Todokete
+Setsunasa ni wa namae o tsukeyou ka "Snow halation"
+Omoi ga kasanaru made matezu ni
+Kuyashii kedo suki tte junjou
+Binetsu no naka tameratte mo dame da ne
+Tobikomu yuuki ni sansei mamonaku Start!!
+
+Oto mo naku kehai mo naku
+Shizuka ni unmei wa kawaru
+Korekara no mirai ni mune no kodou ga hayaku naru
+
+Tatoeba komatta toki ni wa
+Sugu kaketsukete dakishimetakute
+Doko ni ite mo dokodemo Fly high
+
+Isoide
+Itsu no ma ni ka ookiku nari sugita "True emotion"
+Yume dake miteru you ja tsurai yo
+Koibito wa kimi tte iitai
+Yasashii me ga tomadotteru iya da yo
+Kono mama ikki ni aijou azukete Please!!
+
+Todokete
+Setsunasa ni wa namae o tsukeyou ka "Snow halation"
+Omoi ga kasanaru made matezu ni
+Kuyashii kedo suki tte junjou
+Binetsu no naka tameratte mo dame da ne
+Tobikomu yuuki ni sansei mamonaku Start!! 
diff --git a/store1/AllStar.txt b/store1/AllStar.txt
new file mode 100644
index 0000000..0cf2ab6
--- /dev/null
+++ b/store1/AllStar.txt
@@ -0,0 +1,69 @@
+Somebody once told me the world is gonna roll me
+I ain't the sharpest tool in the shed
+She was looking kind of dumb with her finger and her thumb
+In the shape of an "L" on her forehead
+
+Well, the years start coming and they don't stop coming
+Fed to the rules and I hit the ground running
+Didn't make sense not to live for fun
+Your brain gets smart but your head gets dumb
+
+So much to do, so much to see
+So what's wrong with taking the back streets?
+You'll never know if you don't go
+You'll never shine if you don't glow
+
+Hey, now, you're an all-star, get your game on, go play
+Hey, now, you're a rock star, get the show on, get paid
+And all that glitters is gold
+Only shooting stars break the mold
+
+It's a cool place and they say it gets colder
+You're bundled up now wait 'til you get older
+But the meteor men beg to differ
+Judging by the hole in the satellite picture
+
+The ice we skate is getting pretty thin
+The water's getting warm so you might as well swim
+My world's on fire. How about yours?
+That's the way I like it and I'll never get bored
+
+Hey, now, you're an all-star, get your game on, go play
+Hey, now, you're a rock star, get the show on, get paid
+And all that glitters is gold
+Only shooting stars break the mold
+
+Go for the moon
+Go for the moon
+Go for the moon
+Go for the moon
+
+Hey, now, you're an all-star, get your game on, go play
+Hey, now, you're a rock star, get the show on, get paid
+And all that glitters is gold
+Only shooting stars
+
+Somebody once asked could I spare some change for gas
+I need to get myself away from this place
+I said yep, what a concept
+I could use a little fuel myself
+And we could all use a little change
+
+Well, the years start coming and they don't stop coming
+Fed to the rules and I hit the ground running
+Didn't make sense not to live for fun
+Your brain gets smart but your head gets dumb
+
+So much to do, so much to see
+So what's wrong with taking the back streets?
+You'll never know if you don't go
+You'll never shine if you don't glow
+
+Hey, now, you're an all star, get your game on, go play
+Hey, now, you're a rock star, get the show on, get paid
+And all that glitters is gold
+Only shooting stars break the mold
+
+And all that glitters is gold
+Only shooting stars break the mold
+he mo
\ No newline at end of file
diff --git a/store1/Grandad.txt b/store1/Grandad.txt
new file mode 100644
index 0000000..75e3e88
--- /dev/null
+++ b/store1/Grandad.txt
@@ -0,0 +1,15 @@
+(Yabba Dabba Doo!)
+
+Flintstones. Meet the Flintstones.
+They're the modern stone age family.
+From the town of Bedrock,
+They're a page right out of history.
+
+Let's ride with the family down the street.
+Through the courtesy of Fred's two feet.
+
+When you're with the Flintstones
+Have a yabba dabba doo time.
+A dabba doo time.
+We'll have a gay old time.
+d t
\ No newline at end of file
diff --git a/store1/PumpkinHill.txt b/store1/PumpkinHill.txt
new file mode 100644
index 0000000..0489b4b
--- /dev/null
+++ b/store1/PumpkinHill.txt
@@ -0,0 +1,69 @@
+You know me, the fighting freak Knuckles,
+And we're at Pumpkin Hill,
+You ready?
+
+I ain't gonna let it get to me, I'm just gonna creep,
+Down in Pumpkin Hill I gots to find my lost piece.
+I know that it's here, I can sense it in my feet,
+The great Emerald's power allows me to feel.
+I can't see a thing but it's around somewhere,
+I'm gonna hold my head 'cause I have no fear.
+This probably seems crazy, crazy, a graveyard theory,
+A ghost tried to approach me and got leery.
+
+Asked him a question and he vanished in a second,
+I'm walkin' through valleys cryin' pumpkin in the alley.
+Didn't seem happy but they sure tried to get me,
+Had to back 'em up with the fist, metal crack 'em.
+I'm hearing someone sayin' "You a chicken, don't be scared!"
+It had to be the wind, 'cause nobody wasn't there.
+I searched and I searched as I climbed up the wall,
+And then I started to fly, I went in deeper!
+
+Let it get to me? I'm just gonna creep,
+Down in Pumpkin Hill I gots to find my lost piece.
+I know that it's here, I sense it in my feet,
+The great Emerald's power allows me to feel.
+I can't see a thing but it's around somewhere,
+I gotta hold my head, I have no fear.
+It probably seems crazy, crazy, a graveyard theory,
+A ghost tried to approach me, he got leery.
+
+(This is Knuckles, who fears none.)
+(It's real deal when it comes to my name, kid!)
+
+I ain't gonna let it get to me, I'm just gonna creep,
+Down in Pumpkin Hill I gots to find my lost piece.
+I know that it's here, I can sense it in my feet,
+The great Emerald's power allows me to feel.
+I can't see a thing but it's around somewhere,
+I'm gonna hold my head 'cause I have no fear.
+This probably seems crazy, crazy, a graveyard theory,
+A ghost tried to approach me and got leery.
+
+Asked him a question and he vanished in a second,
+I'm walkin' through valleys cryin' pumpkin in the alley.
+Didn't seem happy but they sure tried to get me,
+Had to back 'em up with the fist, metal crack 'em.
+I'm hearing someone sayin' "You a chicken, don't be scared!"
+It had to be the wind, 'cause nobody wasn't there.
+I searched and I searched as I climbed up the wall,
+And then I started to fly, I went in deeper!
+
+Let it get to me? I'm just gonna creep,
+Down in Pumpkin Hill I gots to find my lost piece.
+I know that it's here, I sense it in my feet,
+The great Emerald's power allows me to feel.
+I can't see a thing but it's around somewhere,
+I gotta hold my head, I have no fear.
+It probably seems crazy, crazy, a graveyard theory,
+A ghost tried to approach me, he got leery.
+
+(Spooky up in here, it's crazy in here,)
+(We still gon' keep it goin', I'm Knuckles.)
+(Nobody scares me,)
+(Whoever want it, bring it!)
+(I don't care, we 'ka do this.)
+(Then come step up to the plate, and meet your match,)
+(It ain't no thang.)
+thang
\ No newline at end of file
diff --git a/store1/SnowHalation.txt b/store1/SnowHalation.txt
new file mode 100644
index 0000000..5d7aafb
--- /dev/null
+++ b/store1/SnowHalation.txt
@@ -0,0 +1,37 @@
+Fushigi da ne ima no kimochi
+Sora kara futte kita mitai
+Tokubetsu na kisetsu no iro ga tokimeki o miseru yo
+
+Hajimete deatta toki kara
+Yokan ni sawagu kokoro no Melody
+Tomerarenai tomaranai na・ze
+
+Todokete
+Setsunasa ni wa namae o tsukeyou ka "Snow halation"
+Omoi ga kasanaru made matezu ni
+Kuyashii kedo suki tte junjou
+Binetsu no naka tameratte mo dame da ne
+Tobikomu yuuki ni sansei mamonaku Start!!
+
+Oto mo naku kehai mo naku
+Shizuka ni unmei wa kawaru
+Korekara no mirai ni mune no kodou ga hayaku naru
+
+Tatoeba komatta toki ni wa
+Sugu kaketsukete dakishimetakute
+Doko ni ite mo dokodemo Fly high
+
+Isoide
+Itsu no ma ni ka ookiku nari sugita "True emotion"
+Yume dake miteru you ja tsurai yo
+Koibito wa kimi tte iitai
+Yasashii me ga tomadotteru iya da yo
+Kono mama ikki ni aijou azukete Please!!
+
+Todokete
+Setsunasa ni wa namae o tsukeyou ka "Snow halation"
+Omoi ga kasanaru made matezu ni
+Kuyashii kedo suki tte junjou
+Binetsu no naka tameratte mo dame da ne
+Tobikomu yuuki ni sansei mamonaku Start!! 
+ta
\ No newline at end of file
diff --git a/store1/Unknown.txt b/store1/Unknown.txt
new file mode 100644
index 0000000..349b7a9
--- /dev/null
+++ b/store1/Unknown.txt
@@ -0,0 +1,75 @@
+Here I come, rougher than the rest of them
+The best of them, tougher than leather
+You can call me Knuckles, unlike Sonic I don't chuckle
+I'd rather flex my muscles
+
+I'm hard as nails, it ain't hard to tell
+I break 'em down whether they're solid or frail
+Unlike the rest I'm independent since my first breath
+First test, feel the right, than the worst's left
+
+Born on an island in the heavens
+The blood of my ancestors flows inside me
+My duty is to save the flower
+From evil deterioration
+
+I will be the one to set your heart free, true
+Cleanse yourself of them evil spirits that's in you
+
+Streaking lights, loud sounds, and instincts
+Are the elements that keep me going
+I am fighting my own mission
+Nothing's gonna stand in my way
+
+I will be the one to set your heart free, true
+Cleanse yourself of them evil spirits that's in you
+
+Won't be frightened, I'll stand up to all the pain and turmoil
+Just believe in myself, won't rely on others
+Get this power to wipe out the havoc and anarchy
+This is my planet, gonna fight for my destiny
+
+Here I come, rougher than the rest of them
+The best of them, tougher than leather
+You can call me Knuckles, unlike Sonic I don't chuckle
+I'd rather flex my muscles
+
+I'm hard as nails, it ain't hard to tell
+I break 'em down whether they're solid or frail
+Unlike the rest I'm independent since my first breath
+First test, feel the right, than the worst's left
+
+I have no such things as weak spots
+Don't approve of him but gotta trust him
+This alliance has a purpose
+This partnership is only temporary
+
+I will be the one to set your heart free, true
+Cleanse yourself of evil spirits that got in you
+
+Won't be frightened, I'll stand up to all the pain and turmoil
+Just believe in myself, won't rely on others
+Freedom will be waiting when serenity is restored
+This is my planet, I shall not surrender
+
+Won't be frightened, I'll stand up to all the pain and turmoil
+Just believe in myself, won't rely on others
+Get this power to wipe out the havoc and anarchy
+This is my planet, gonna fight
+
+Won't be frightened, I'll stand up to all the pain and turmoil
+Just believe in myself, won't rely on others
+Freedom will be waiting when serenity is restored
+This is my planet, I shall not surrender
+
+The new porcupine on the block with the buff chest
+In the wilderness with the ruggedness
+Knock, knock, it's Knuckles, the bloat thrower
+Independent flower, Magical Emerald holder
+I'll give you the coldest shoulder
+My spikes go through boulders, that's why I stay a loner
+I was born by myself, I don't need a posse
+I get it on by myself, adversaries get shelved
+
+Right on!
+ght on
\ No newline at end of file
diff --git a/store2/AllStar.txt b/store2/AllStar.txt
new file mode 100644
index 0000000..0cf2ab6
--- /dev/null
+++ b/store2/AllStar.txt
@@ -0,0 +1,69 @@
+Somebody once told me the world is gonna roll me
+I ain't the sharpest tool in the shed
+She was looking kind of dumb with her finger and her thumb
+In the shape of an "L" on her forehead
+
+Well, the years start coming and they don't stop coming
+Fed to the rules and I hit the ground running
+Didn't make sense not to live for fun
+Your brain gets smart but your head gets dumb
+
+So much to do, so much to see
+So what's wrong with taking the back streets?
+You'll never know if you don't go
+You'll never shine if you don't glow
+
+Hey, now, you're an all-star, get your game on, go play
+Hey, now, you're a rock star, get the show on, get paid
+And all that glitters is gold
+Only shooting stars break the mold
+
+It's a cool place and they say it gets colder
+You're bundled up now wait 'til you get older
+But the meteor men beg to differ
+Judging by the hole in the satellite picture
+
+The ice we skate is getting pretty thin
+The water's getting warm so you might as well swim
+My world's on fire. How about yours?
+That's the way I like it and I'll never get bored
+
+Hey, now, you're an all-star, get your game on, go play
+Hey, now, you're a rock star, get the show on, get paid
+And all that glitters is gold
+Only shooting stars break the mold
+
+Go for the moon
+Go for the moon
+Go for the moon
+Go for the moon
+
+Hey, now, you're an all-star, get your game on, go play
+Hey, now, you're a rock star, get the show on, get paid
+And all that glitters is gold
+Only shooting stars
+
+Somebody once asked could I spare some change for gas
+I need to get myself away from this place
+I said yep, what a concept
+I could use a little fuel myself
+And we could all use a little change
+
+Well, the years start coming and they don't stop coming
+Fed to the rules and I hit the ground running
+Didn't make sense not to live for fun
+Your brain gets smart but your head gets dumb
+
+So much to do, so much to see
+So what's wrong with taking the back streets?
+You'll never know if you don't go
+You'll never shine if you don't glow
+
+Hey, now, you're an all star, get your game on, go play
+Hey, now, you're a rock star, get the show on, get paid
+And all that glitters is gold
+Only shooting stars break the mold
+
+And all that glitters is gold
+Only shooting stars break the mold
+he mo
\ No newline at end of file
diff --git a/store2/Grandad.txt b/store2/Grandad.txt
new file mode 100644
index 0000000..75e3e88
--- /dev/null
+++ b/store2/Grandad.txt
@@ -0,0 +1,15 @@
+(Yabba Dabba Doo!)
+
+Flintstones. Meet the Flintstones.
+They're the modern stone age family.
+From the town of Bedrock,
+They're a page right out of history.
+
+Let's ride with the family down the street.
+Through the courtesy of Fred's two feet.
+
+When you're with the Flintstones
+Have a yabba dabba doo time.
+A dabba doo time.
+We'll have a gay old time.
+d t
\ No newline at end of file
diff --git a/store2/PumpkinHill.txt b/store2/PumpkinHill.txt
new file mode 100644
index 0000000..0489b4b
--- /dev/null
+++ b/store2/PumpkinHill.txt
@@ -0,0 +1,69 @@
+You know me, the fighting freak Knuckles,
+And we're at Pumpkin Hill,
+You ready?
+
+I ain't gonna let it get to me, I'm just gonna creep,
+Down in Pumpkin Hill I gots to find my lost piece.
+I know that it's here, I can sense it in my feet,
+The great Emerald's power allows me to feel.
+I can't see a thing but it's around somewhere,
+I'm gonna hold my head 'cause I have no fear.
+This probably seems crazy, crazy, a graveyard theory,
+A ghost tried to approach me and got leery.
+
+Asked him a question and he vanished in a second,
+I'm walkin' through valleys cryin' pumpkin in the alley.
+Didn't seem happy but they sure tried to get me,
+Had to back 'em up with the fist, metal crack 'em.
+I'm hearing someone sayin' "You a chicken, don't be scared!"
+It had to be the wind, 'cause nobody wasn't there.
+I searched and I searched as I climbed up the wall,
+And then I started to fly, I went in deeper!
+
+Let it get to me? I'm just gonna creep,
+Down in Pumpkin Hill I gots to find my lost piece.
+I know that it's here, I sense it in my feet,
+The great Emerald's power allows me to feel.
+I can't see a thing but it's around somewhere,
+I gotta hold my head, I have no fear.
+It probably seems crazy, crazy, a graveyard theory,
+A ghost tried to approach me, he got leery.
+
+(This is Knuckles, who fears none.)
+(It's real deal when it comes to my name, kid!)
+
+I ain't gonna let it get to me, I'm just gonna creep,
+Down in Pumpkin Hill I gots to find my lost piece.
+I know that it's here, I can sense it in my feet,
+The great Emerald's power allows me to feel.
+I can't see a thing but it's around somewhere,
+I'm gonna hold my head 'cause I have no fear.
+This probably seems crazy, crazy, a graveyard theory,
+A ghost tried to approach me and got leery.
+
+Asked him a question and he vanished in a second,
+I'm walkin' through valleys cryin' pumpkin in the alley.
+Didn't seem happy but they sure tried to get me,
+Had to back 'em up with the fist, metal crack 'em.
+I'm hearing someone sayin' "You a chicken, don't be scared!"
+It had to be the wind, 'cause nobody wasn't there.
+I searched and I searched as I climbed up the wall,
+And then I started to fly, I went in deeper!
+
+Let it get to me? I'm just gonna creep,
+Down in Pumpkin Hill I gots to find my lost piece.
+I know that it's here, I sense it in my feet,
+The great Emerald's power allows me to feel.
+I can't see a thing but it's around somewhere,
+I gotta hold my head, I have no fear.
+It probably seems crazy, crazy, a graveyard theory,
+A ghost tried to approach me, he got leery.
+
+(Spooky up in here, it's crazy in here,)
+(We still gon' keep it goin', I'm Knuckles.)
+(Nobody scares me,)
+(Whoever want it, bring it!)
+(I don't care, we 'ka do this.)
+(Then come step up to the plate, and meet your match,)
+(It ain't no thang.)
+thang
\ No newline at end of file
diff --git a/store2/SnowHalation.txt b/store2/SnowHalation.txt
new file mode 100644
index 0000000..5d7aafb
--- /dev/null
+++ b/store2/SnowHalation.txt
@@ -0,0 +1,37 @@
+Fushigi da ne ima no kimochi
+Sora kara futte kita mitai
+Tokubetsu na kisetsu no iro ga tokimeki o miseru yo
+
+Hajimete deatta toki kara
+Yokan ni sawagu kokoro no Melody
+Tomerarenai tomaranai na・ze
+
+Todokete
+Setsunasa ni wa namae o tsukeyou ka "Snow halation"
+Omoi ga kasanaru made matezu ni
+Kuyashii kedo suki tte junjou
+Binetsu no naka tameratte mo dame da ne
+Tobikomu yuuki ni sansei mamonaku Start!!
+
+Oto mo naku kehai mo naku
+Shizuka ni unmei wa kawaru
+Korekara no mirai ni mune no kodou ga hayaku naru
+
+Tatoeba komatta toki ni wa
+Sugu kaketsukete dakishimetakute
+Doko ni ite mo dokodemo Fly high
+
+Isoide
+Itsu no ma ni ka ookiku nari sugita "True emotion"
+Yume dake miteru you ja tsurai yo
+Koibito wa kimi tte iitai
+Yasashii me ga tomadotteru iya da yo
+Kono mama ikki ni aijou azukete Please!!
+
+Todokete
+Setsunasa ni wa namae o tsukeyou ka "Snow halation"
+Omoi ga kasanaru made matezu ni
+Kuyashii kedo suki tte junjou
+Binetsu no naka tameratte mo dame da ne
+Tobikomu yuuki ni sansei mamonaku Start!! 
+ta
\ No newline at end of file
diff --git a/store2/Unknown.txt b/store2/Unknown.txt
new file mode 100644
index 0000000..349b7a9
--- /dev/null
+++ b/store2/Unknown.txt
@@ -0,0 +1,75 @@
+Here I come, rougher than the rest of them
+The best of them, tougher than leather
+You can call me Knuckles, unlike Sonic I don't chuckle
+I'd rather flex my muscles
+
+I'm hard as nails, it ain't hard to tell
+I break 'em down whether they're solid or frail
+Unlike the rest I'm independent since my first breath
+First test, feel the right, than the worst's left
+
+Born on an island in the heavens
+The blood of my ancestors flows inside me
+My duty is to save the flower
+From evil deterioration
+
+I will be the one to set your heart free, true
+Cleanse yourself of them evil spirits that's in you
+
+Streaking lights, loud sounds, and instincts
+Are the elements that keep me going
+I am fighting my own mission
+Nothing's gonna stand in my way
+
+I will be the one to set your heart free, true
+Cleanse yourself of them evil spirits that's in you
+
+Won't be frightened, I'll stand up to all the pain and turmoil
+Just believe in myself, won't rely on others
+Get this power to wipe out the havoc and anarchy
+This is my planet, gonna fight for my destiny
+
+Here I come, rougher than the rest of them
+The best of them, tougher than leather
+You can call me Knuckles, unlike Sonic I don't chuckle
+I'd rather flex my muscles
+
+I'm hard as nails, it ain't hard to tell
+I break 'em down whether they're solid or frail
+Unlike the rest I'm independent since my first breath
+First test, feel the right, than the worst's left
+
+I have no such things as weak spots
+Don't approve of him but gotta trust him
+This alliance has a purpose
+This partnership is only temporary
+
+I will be the one to set your heart free, true
+Cleanse yourself of evil spirits that got in you
+
+Won't be frightened, I'll stand up to all the pain and turmoil
+Just believe in myself, won't rely on others
+Freedom will be waiting when serenity is restored
+This is my planet, I shall not surrender
+
+Won't be frightened, I'll stand up to all the pain and turmoil
+Just believe in myself, won't rely on others
+Get this power to wipe out the havoc and anarchy
+This is my planet, gonna fight
+
+Won't be frightened, I'll stand up to all the pain and turmoil
+Just believe in myself, won't rely on others
+Freedom will be waiting when serenity is restored
+This is my planet, I shall not surrender
+
+The new porcupine on the block with the buff chest
+In the wilderness with the ruggedness
+Knock, knock, it's Knuckles, the bloat thrower
+Independent flower, Magical Emerald holder
+I'll give you the coldest shoulder
+My spikes go through boulders, that's why I stay a loner
+I was born by myself, I don't need a posse
+I get it on by myself, adversaries get shelved
+
+Right on!
+ght on
\ No newline at end of file
diff --git a/store3/AllStar.txt b/store3/AllStar.txt
new file mode 100644
index 0000000..0cf2ab6
--- /dev/null
+++ b/store3/AllStar.txt
@@ -0,0 +1,69 @@
+Somebody once told me the world is gonna roll me
+I ain't the sharpest tool in the shed
+She was looking kind of dumb with her finger and her thumb
+In the shape of an "L" on her forehead
+
+Well, the years start coming and they don't stop coming
+Fed to the rules and I hit the ground running
+Didn't make sense not to live for fun
+Your brain gets smart but your head gets dumb
+
+So much to do, so much to see
+So what's wrong with taking the back streets?
+You'll never know if you don't go
+You'll never shine if you don't glow
+
+Hey, now, you're an all-star, get your game on, go play
+Hey, now, you're a rock star, get the show on, get paid
+And all that glitters is gold
+Only shooting stars break the mold
+
+It's a cool place and they say it gets colder
+You're bundled up now wait 'til you get older
+But the meteor men beg to differ
+Judging by the hole in the satellite picture
+
+The ice we skate is getting pretty thin
+The water's getting warm so you might as well swim
+My world's on fire. How about yours?
+That's the way I like it and I'll never get bored
+
+Hey, now, you're an all-star, get your game on, go play
+Hey, now, you're a rock star, get the show on, get paid
+And all that glitters is gold
+Only shooting stars break the mold
+
+Go for the moon
+Go for the moon
+Go for the moon
+Go for the moon
+
+Hey, now, you're an all-star, get your game on, go play
+Hey, now, you're a rock star, get the show on, get paid
+And all that glitters is gold
+Only shooting stars
+
+Somebody once asked could I spare some change for gas
+I need to get myself away from this place
+I said yep, what a concept
+I could use a little fuel myself
+And we could all use a little change
+
+Well, the years start coming and they don't stop coming
+Fed to the rules and I hit the ground running
+Didn't make sense not to live for fun
+Your brain gets smart but your head gets dumb
+
+So much to do, so much to see
+So what's wrong with taking the back streets?
+You'll never know if you don't go
+You'll never shine if you don't glow
+
+Hey, now, you're an all star, get your game on, go play
+Hey, now, you're a rock star, get the show on, get paid
+And all that glitters is gold
+Only shooting stars break the mold
+
+And all that glitters is gold
+Only shooting stars break the mold
+he mo
\ No newline at end of file
diff --git a/store3/Grandad.txt b/store3/Grandad.txt
new file mode 100644
index 0000000..75e3e88
--- /dev/null
+++ b/store3/Grandad.txt
@@ -0,0 +1,15 @@
+(Yabba Dabba Doo!)
+
+Flintstones. Meet the Flintstones.
+They're the modern stone age family.
+From the town of Bedrock,
+They're a page right out of history.
+
+Let's ride with the family down the street.
+Through the courtesy of Fred's two feet.
+
+When you're with the Flintstones
+Have a yabba dabba doo time.
+A dabba doo time.
+We'll have a gay old time.
+d t
\ No newline at end of file
diff --git a/store3/PumpkinHill.txt b/store3/PumpkinHill.txt
new file mode 100644
index 0000000..0489b4b
--- /dev/null
+++ b/store3/PumpkinHill.txt
@@ -0,0 +1,69 @@
+You know me, the fighting freak Knuckles,
+And we're at Pumpkin Hill,
+You ready?
+
+I ain't gonna let it get to me, I'm just gonna creep,
+Down in Pumpkin Hill I gots to find my lost piece.
+I know that it's here, I can sense it in my feet,
+The great Emerald's power allows me to feel.
+I can't see a thing but it's around somewhere,
+I'm gonna hold my head 'cause I have no fear.
+This probably seems crazy, crazy, a graveyard theory,
+A ghost tried to approach me and got leery.
+
+Asked him a question and he vanished in a second,
+I'm walkin' through valleys cryin' pumpkin in the alley.
+Didn't seem happy but they sure tried to get me,
+Had to back 'em up with the fist, metal crack 'em.
+I'm hearing someone sayin' "You a chicken, don't be scared!"
+It had to be the wind, 'cause nobody wasn't there.
+I searched and I searched as I climbed up the wall,
+And then I started to fly, I went in deeper!
+
+Let it get to me? I'm just gonna creep,
+Down in Pumpkin Hill I gots to find my lost piece.
+I know that it's here, I sense it in my feet,
+The great Emerald's power allows me to feel.
+I can't see a thing but it's around somewhere,
+I gotta hold my head, I have no fear.
+It probably seems crazy, crazy, a graveyard theory,
+A ghost tried to approach me, he got leery.
+
+(This is Knuckles, who fears none.)
+(It's real deal when it comes to my name, kid!)
+
+I ain't gonna let it get to me, I'm just gonna creep,
+Down in Pumpkin Hill I gots to find my lost piece.
+I know that it's here, I can sense it in my feet,
+The great Emerald's power allows me to feel.
+I can't see a thing but it's around somewhere,
+I'm gonna hold my head 'cause I have no fear.
+This probably seems crazy, crazy, a graveyard theory,
+A ghost tried to approach me and got leery.
+
+Asked him a question and he vanished in a second,
+I'm walkin' through valleys cryin' pumpkin in the alley.
+Didn't seem happy but they sure tried to get me,
+Had to back 'em up with the fist, metal crack 'em.
+I'm hearing someone sayin' "You a chicken, don't be scared!"
+It had to be the wind, 'cause nobody wasn't there.
+I searched and I searched as I climbed up the wall,
+And then I started to fly, I went in deeper!
+
+Let it get to me? I'm just gonna creep,
+Down in Pumpkin Hill I gots to find my lost piece.
+I know that it's here, I sense it in my feet,
+The great Emerald's power allows me to feel.
+I can't see a thing but it's around somewhere,
+I gotta hold my head, I have no fear.
+It probably seems crazy, crazy, a graveyard theory,
+A ghost tried to approach me, he got leery.
+
+(Spooky up in here, it's crazy in here,)
+(We still gon' keep it goin', I'm Knuckles.)
+(Nobody scares me,)
+(Whoever want it, bring it!)
+(I don't care, we 'ka do this.)
+(Then come step up to the plate, and meet your match,)
+(It ain't no thang.)
+thang
\ No newline at end of file
diff --git a/store3/SnowHalation.txt b/store3/SnowHalation.txt
new file mode 100644
index 0000000..5d7aafb
--- /dev/null
+++ b/store3/SnowHalation.txt
@@ -0,0 +1,37 @@
+Fushigi da ne ima no kimochi
+Sora kara futte kita mitai
+Tokubetsu na kisetsu no iro ga tokimeki o miseru yo
+
+Hajimete deatta toki kara
+Yokan ni sawagu kokoro no Melody
+Tomerarenai tomaranai na・ze
+
+Todokete
+Setsunasa ni wa namae o tsukeyou ka "Snow halation"
+Omoi ga kasanaru made matezu ni
+Kuyashii kedo suki tte junjou
+Binetsu no naka tameratte mo dame da ne
+Tobikomu yuuki ni sansei mamonaku Start!!
+
+Oto mo naku kehai mo naku
+Shizuka ni unmei wa kawaru
+Korekara no mirai ni mune no kodou ga hayaku naru
+
+Tatoeba komatta toki ni wa
+Sugu kaketsukete dakishimetakute
+Doko ni ite mo dokodemo Fly high
+
+Isoide
+Itsu no ma ni ka ookiku nari sugita "True emotion"
+Yume dake miteru you ja tsurai yo
+Koibito wa kimi tte iitai
+Yasashii me ga tomadotteru iya da yo
+Kono mama ikki ni aijou azukete Please!!
+
+Todokete
+Setsunasa ni wa namae o tsukeyou ka "Snow halation"
+Omoi ga kasanaru made matezu ni
+Kuyashii kedo suki tte junjou
+Binetsu no naka tameratte mo dame da ne
+Tobikomu yuuki ni sansei mamonaku Start!! 
+ta
\ No newline at end of file
diff --git a/store3/Unknown.txt b/store3/Unknown.txt
new file mode 100644
index 0000000..349b7a9
--- /dev/null
+++ b/store3/Unknown.txt
@@ -0,0 +1,75 @@
+Here I come, rougher than the rest of them
+The best of them, tougher than leather
+You can call me Knuckles, unlike Sonic I don't chuckle
+I'd rather flex my muscles
+
+I'm hard as nails, it ain't hard to tell
+I break 'em down whether they're solid or frail
+Unlike the rest I'm independent since my first breath
+First test, feel the right, than the worst's left
+
+Born on an island in the heavens
+The blood of my ancestors flows inside me
+My duty is to save the flower
+From evil deterioration
+
+I will be the one to set your heart free, true
+Cleanse yourself of them evil spirits that's in you
+
+Streaking lights, loud sounds, and instincts
+Are the elements that keep me going
+I am fighting my own mission
+Nothing's gonna stand in my way
+
+I will be the one to set your heart free, true
+Cleanse yourself of them evil spirits that's in you
+
+Won't be frightened, I'll stand up to all the pain and turmoil
+Just believe in myself, won't rely on others
+Get this power to wipe out the havoc and anarchy
+This is my planet, gonna fight for my destiny
+
+Here I come, rougher than the rest of them
+The best of them, tougher than leather
+You can call me Knuckles, unlike Sonic I don't chuckle
+I'd rather flex my muscles
+
+I'm hard as nails, it ain't hard to tell
+I break 'em down whether they're solid or frail
+Unlike the rest I'm independent since my first breath
+First test, feel the right, than the worst's left
+
+I have no such things as weak spots
+Don't approve of him but gotta trust him
+This alliance has a purpose
+This partnership is only temporary
+
+I will be the one to set your heart free, true
+Cleanse yourself of evil spirits that got in you
+
+Won't be frightened, I'll stand up to all the pain and turmoil
+Just believe in myself, won't rely on others
+Freedom will be waiting when serenity is restored
+This is my planet, I shall not surrender
+
+Won't be frightened, I'll stand up to all the pain and turmoil
+Just believe in myself, won't rely on others
+Get this power to wipe out the havoc and anarchy
+This is my planet, gonna fight
+
+Won't be frightened, I'll stand up to all the pain and turmoil
+Just believe in myself, won't rely on others
+Freedom will be waiting when serenity is restored
+This is my planet, I shall not surrender
+
+The new porcupine on the block with the buff chest
+In the wilderness with the ruggedness
+Knock, knock, it's Knuckles, the bloat thrower
+Independent flower, Magical Emerald holder
+I'll give you the coldest shoulder
+My spikes go through boulders, that's why I stay a loner
+I was born by myself, I don't need a posse
+I get it on by myself, adversaries get shelved
+
+Right on!
+ght on
\ No newline at end of file
diff --git a/store4/AllStar.txt b/store4/AllStar.txt
new file mode 100644
index 0000000..0cf2ab6
--- /dev/null
+++ b/store4/AllStar.txt
@@ -0,0 +1,69 @@
+Somebody once told me the world is gonna roll me
+I ain't the sharpest tool in the shed
+She was looking kind of dumb with her finger and her thumb
+In the shape of an "L" on her forehead
+
+Well, the years start coming and they don't stop coming
+Fed to the rules and I hit the ground running
+Didn't make sense not to live for fun
+Your brain gets smart but your head gets dumb
+
+So much to do, so much to see
+So what's wrong with taking the back streets?
+You'll never know if you don't go
+You'll never shine if you don't glow
+
+Hey, now, you're an all-star, get your game on, go play
+Hey, now, you're a rock star, get the show on, get paid
+And all that glitters is gold
+Only shooting stars break the mold
+
+It's a cool place and they say it gets colder
+You're bundled up now wait 'til you get older
+But the meteor men beg to differ
+Judging by the hole in the satellite picture
+
+The ice we skate is getting pretty thin
+The water's getting warm so you might as well swim
+My world's on fire. How about yours?
+That's the way I like it and I'll never get bored
+
+Hey, now, you're an all-star, get your game on, go play
+Hey, now, you're a rock star, get the show on, get paid
+And all that glitters is gold
+Only shooting stars break the mold
+
+Go for the moon
+Go for the moon
+Go for the moon
+Go for the moon
+
+Hey, now, you're an all-star, get your game on, go play
+Hey, now, you're a rock star, get the show on, get paid
+And all that glitters is gold
+Only shooting stars
+
+Somebody once asked could I spare some change for gas
+I need to get myself away from this place
+I said yep, what a concept
+I could use a little fuel myself
+And we could all use a little change
+
+Well, the years start coming and they don't stop coming
+Fed to the rules and I hit the ground running
+Didn't make sense not to live for fun
+Your brain gets smart but your head gets dumb
+
+So much to do, so much to see
+So what's wrong with taking the back streets?
+You'll never know if you don't go
+You'll never shine if you don't glow
+
+Hey, now, you're an all star, get your game on, go play
+Hey, now, you're a rock star, get the show on, get paid
+And all that glitters is gold
+Only shooting stars break the mold
+
+And all that glitters is gold
+Only shooting stars break the mold
+he mo
\ No newline at end of file
diff --git a/store4/Grandad.txt b/store4/Grandad.txt
new file mode 100644
index 0000000..75e3e88
--- /dev/null
+++ b/store4/Grandad.txt
@@ -0,0 +1,15 @@
+(Yabba Dabba Doo!)
+
+Flintstones. Meet the Flintstones.
+They're the modern stone age family.
+From the town of Bedrock,
+They're a page right out of history.
+
+Let's ride with the family down the street.
+Through the courtesy of Fred's two feet.
+
+When you're with the Flintstones
+Have a yabba dabba doo time.
+A dabba doo time.
+We'll have a gay old time.
+d t
\ No newline at end of file
diff --git a/store4/PumpkinHill.txt b/store4/PumpkinHill.txt
new file mode 100644
index 0000000..0489b4b
--- /dev/null
+++ b/store4/PumpkinHill.txt
@@ -0,0 +1,69 @@
+You know me, the fighting freak Knuckles,
+And we're at Pumpkin Hill,
+You ready?
+
+I ain't gonna let it get to me, I'm just gonna creep,
+Down in Pumpkin Hill I gots to find my lost piece.
+I know that it's here, I can sense it in my feet,
+The great Emerald's power allows me to feel.
+I can't see a thing but it's around somewhere,
+I'm gonna hold my head 'cause I have no fear.
+This probably seems crazy, crazy, a graveyard theory,
+A ghost tried to approach me and got leery.
+
+Asked him a question and he vanished in a second,
+I'm walkin' through valleys cryin' pumpkin in the alley.
+Didn't seem happy but they sure tried to get me,
+Had to back 'em up with the fist, metal crack 'em.
+I'm hearing someone sayin' "You a chicken, don't be scared!"
+It had to be the wind, 'cause nobody wasn't there.
+I searched and I searched as I climbed up the wall,
+And then I started to fly, I went in deeper!
+
+Let it get to me? I'm just gonna creep,
+Down in Pumpkin Hill I gots to find my lost piece.
+I know that it's here, I sense it in my feet,
+The great Emerald's power allows me to feel.
+I can't see a thing but it's around somewhere,
+I gotta hold my head, I have no fear.
+It probably seems crazy, crazy, a graveyard theory,
+A ghost tried to approach me, he got leery.
+
+(This is Knuckles, who fears none.)
+(It's real deal when it comes to my name, kid!)
+
+I ain't gonna let it get to me, I'm just gonna creep,
+Down in Pumpkin Hill I gots to find my lost piece.
+I know that it's here, I can sense it in my feet,
+The great Emerald's power allows me to feel.
+I can't see a thing but it's around somewhere,
+I'm gonna hold my head 'cause I have no fear.
+This probably seems crazy, crazy, a graveyard theory,
+A ghost tried to approach me and got leery.
+
+Asked him a question and he vanished in a second,
+I'm walkin' through valleys cryin' pumpkin in the alley.
+Didn't seem happy but they sure tried to get me,
+Had to back 'em up with the fist, metal crack 'em.
+I'm hearing someone sayin' "You a chicken, don't be scared!"
+It had to be the wind, 'cause nobody wasn't there.
+I searched and I searched as I climbed up the wall,
+And then I started to fly, I went in deeper!
+
+Let it get to me? I'm just gonna creep,
+Down in Pumpkin Hill I gots to find my lost piece.
+I know that it's here, I sense it in my feet,
+The great Emerald's power allows me to feel.
+I can't see a thing but it's around somewhere,
+I gotta hold my head, I have no fear.
+It probably seems crazy, crazy, a graveyard theory,
+A ghost tried to approach me, he got leery.
+
+(Spooky up in here, it's crazy in here,)
+(We still gon' keep it goin', I'm Knuckles.)
+(Nobody scares me,)
+(Whoever want it, bring it!)
+(I don't care, we 'ka do this.)
+(Then come step up to the plate, and meet your match,)
+(It ain't no thang.)
+thang
\ No newline at end of file
diff --git a/store4/SnowHalation.txt b/store4/SnowHalation.txt
new file mode 100644
index 0000000..5d7aafb
--- /dev/null
+++ b/store4/SnowHalation.txt
@@ -0,0 +1,37 @@
+Fushigi da ne ima no kimochi
+Sora kara futte kita mitai
+Tokubetsu na kisetsu no iro ga tokimeki o miseru yo
+
+Hajimete deatta toki kara
+Yokan ni sawagu kokoro no Melody
+Tomerarenai tomaranai na・ze
+
+Todokete
+Setsunasa ni wa namae o tsukeyou ka "Snow halation"
+Omoi ga kasanaru made matezu ni
+Kuyashii kedo suki tte junjou
+Binetsu no naka tameratte mo dame da ne
+Tobikomu yuuki ni sansei mamonaku Start!!
+
+Oto mo naku kehai mo naku
+Shizuka ni unmei wa kawaru
+Korekara no mirai ni mune no kodou ga hayaku naru
+
+Tatoeba komatta toki ni wa
+Sugu kaketsukete dakishimetakute
+Doko ni ite mo dokodemo Fly high
+
+Isoide
+Itsu no ma ni ka ookiku nari sugita "True emotion"
+Yume dake miteru you ja tsurai yo
+Koibito wa kimi tte iitai
+Yasashii me ga tomadotteru iya da yo
+Kono mama ikki ni aijou azukete Please!!
+
+Todokete
+Setsunasa ni wa namae o tsukeyou ka "Snow halation"
+Omoi ga kasanaru made matezu ni
+Kuyashii kedo suki tte junjou
+Binetsu no naka tameratte mo dame da ne
+Tobikomu yuuki ni sansei mamonaku Start!! 
+ta
\ No newline at end of file
diff --git a/store4/Unknown.txt b/store4/Unknown.txt
new file mode 100644
index 0000000..349b7a9
--- /dev/null
+++ b/store4/Unknown.txt
@@ -0,0 +1,75 @@
+Here I come, rougher than the rest of them
+The best of them, tougher than leather
+You can call me Knuckles, unlike Sonic I don't chuckle
+I'd rather flex my muscles
+
+I'm hard as nails, it ain't hard to tell
+I break 'em down whether they're solid or frail
+Unlike the rest I'm independent since my first breath
+First test, feel the right, than the worst's left
+
+Born on an island in the heavens
+The blood of my ancestors flows inside me
+My duty is to save the flower
+From evil deterioration
+
+I will be the one to set your heart free, true
+Cleanse yourself of them evil spirits that's in you
+
+Streaking lights, loud sounds, and instincts
+Are the elements that keep me going
+I am fighting my own mission
+Nothing's gonna stand in my way
+
+I will be the one to set your heart free, true
+Cleanse yourself of them evil spirits that's in you
+
+Won't be frightened, I'll stand up to all the pain and turmoil
+Just believe in myself, won't rely on others
+Get this power to wipe out the havoc and anarchy
+This is my planet, gonna fight for my destiny
+
+Here I come, rougher than the rest of them
+The best of them, tougher than leather
+You can call me Knuckles, unlike Sonic I don't chuckle
+I'd rather flex my muscles
+
+I'm hard as nails, it ain't hard to tell
+I break 'em down whether they're solid or frail
+Unlike the rest I'm independent since my first breath
+First test, feel the right, than the worst's left
+
+I have no such things as weak spots
+Don't approve of him but gotta trust him
+This alliance has a purpose
+This partnership is only temporary
+
+I will be the one to set your heart free, true
+Cleanse yourself of evil spirits that got in you
+
+Won't be frightened, I'll stand up to all the pain and turmoil
+Just believe in myself, won't rely on others
+Freedom will be waiting when serenity is restored
+This is my planet, I shall not surrender
+
+Won't be frightened, I'll stand up to all the pain and turmoil
+Just believe in myself, won't rely on others
+Get this power to wipe out the havoc and anarchy
+This is my planet, gonna fight
+
+Won't be frightened, I'll stand up to all the pain and turmoil
+Just believe in myself, won't rely on others
+Freedom will be waiting when serenity is restored
+This is my planet, I shall not surrender
+
+The new porcupine on the block with the buff chest
+In the wilderness with the ruggedness
+Knock, knock, it's Knuckles, the bloat thrower
+Independent flower, Magical Emerald holder
+I'll give you the coldest shoulder
+My spikes go through boulders, that's why I stay a loner
+I was born by myself, I don't need a posse
+I get it on by myself, adversaries get shelved
+
+Right on!
+ght on
\ No newline at end of file
-- 
GitLab