From aa1c3dcfd5f3ae6af422047813ae981348f44c9e Mon Sep 17 00:00:00 2001
From: Rishi Sharma <rishi.sharma@epfl.ch>
Date: Sat, 25 Dec 2021 14:43:21 +0100
Subject: [PATCH] Add celeba, total_bytes

---
 eval/config_celeba.ini                        |   33 +
 eval/main.ipynb                               | 2382 ++++++++++++++++-
 setup.cfg                                     |    1 +
 .../communication/Communication.py            |    1 +
 src/decentralizepy/communication/TCP.py       |    3 +
 src/decentralizepy/datasets/Celeba.py         |  337 +++
 src/decentralizepy/datasets/Dataset.py        |    8 +-
 src/decentralizepy/datasets/Femnist.py        |   21 +-
 src/decentralizepy/node/Node.py               |   12 +-
 9 files changed, 2788 insertions(+), 10 deletions(-)
 create mode 100644 eval/config_celeba.ini
 create mode 100644 src/decentralizepy/datasets/Celeba.py

diff --git a/eval/config_celeba.ini b/eval/config_celeba.ini
new file mode 100644
index 0000000..61d1b26
--- /dev/null
+++ b/eval/config_celeba.ini
@@ -0,0 +1,33 @@
+[DATASET]
+dataset_package = decentralizepy.datasets.Celeba
+dataset_class = Celeba
+model_class = CNN
+n_procs = 96
+images_dir = /home/risharma/leaf/data/celeba/data/raw/img_align_celeba
+train_dir = /home/risharma/leaf/data/celeba/per_user_data/train
+test_dir = /home/risharma/leaf/data/celeba/data/test
+; python list of fractions below
+sizes = 
+
+[OPTIMIZER_PARAMS]
+optimizer_package = torch.optim
+optimizer_class = Adam
+lr = 0.001
+
+[TRAIN_PARAMS]
+training_package = decentralizepy.training.GradientAccumulator
+training_class = GradientAccumulator
+epochs_per_round = 5
+batch_size = 512
+shuffle = True
+loss_package = torch.nn
+loss_class = CrossEntropyLoss
+
+[COMMUNICATION]
+comm_package = decentralizepy.communication.TCP
+comm_class = TCP
+addresses_filepath = ip_addr_6Machines.json
+
+[SHARING]
+sharing_package = decentralizepy.sharing.PartialModel
+sharing_class = PartialModel
diff --git a/eval/main.ipynb b/eval/main.ipynb
index d5ad1b7..2f23eea 100644
--- a/eval/main.ipynb
+++ b/eval/main.ipynb
@@ -447,6 +447,2386 @@
     "mp.spawn(fn = f, nprocs = 2, args = [0, 2, \"ip_addr.json\", l])\n"
    ]
   },
+  {
+   "cell_type": "code",
+   "execution_count": 4,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Created File:  3020.json\n",
+      "Created File:  6675.json\n",
+      "Created File:  6725.json\n",
+      "Created File:  2263.json\n",
+      "Created File:  1321.json\n",
+      "Created File:  8721.json\n",
+      "Created File:  8722.json\n",
+      "Created File:  8822.json\n",
+      "Created File:  1448.json\n",
+      "Created File:  6568.json\n",
+      "Created File:  7439.json\n",
+      "Created File:  4905.json\n",
+      "Created File:  4153.json\n",
+      "Created File:  8860.json\n",
+      "Created File:  3941.json\n",
+      "Created File:  4147.json\n",
+      "Created File:  6398.json\n",
+      "Created File:  4030.json\n",
+      "Created File:  1050.json\n",
+      "Created File:  7261.json\n",
+      "Created File:  4602.json\n",
+      "Created File:  8910.json\n",
+      "Created File:  7165.json\n",
+      "Created File:  3508.json\n",
+      "Created File:  5620.json\n",
+      "Created File:  6648.json\n",
+      "Created File:  9790.json\n",
+      "Created File:  8630.json\n",
+      "Created File:  9713.json\n",
+      "Created File:  3751.json\n",
+      "Created File:  3312.json\n",
+      "Created File:  4773.json\n",
+      "Created File:  4582.json\n",
+      "Created File:  9798.json\n",
+      "Created File:  2897.json\n",
+      "Created File:  2859.json\n",
+      "Created File:  562.json\n",
+      "Created File:  6334.json\n",
+      "Created File:  3055.json\n",
+      "Created File:  7932.json\n",
+      "Created File:  1218.json\n",
+      "Created File:  5157.json\n",
+      "Created File:  1151.json\n",
+      "Created File:  6300.json\n",
+      "Created File:  8916.json\n",
+      "Created File:  5768.json\n",
+      "Created File:  9821.json\n",
+      "Created File:  8560.json\n",
+      "Created File:  9984.json\n",
+      "Created File:  2831.json\n",
+      "Created File:  5193.json\n",
+      "Created File:  5457.json\n",
+      "Created File:  4647.json\n",
+      "Created File:  2861.json\n",
+      "Created File:  6135.json\n",
+      "Created File:  6429.json\n",
+      "Created File:  4860.json\n",
+      "Created File:  2837.json\n",
+      "Created File:  7206.json\n",
+      "Created File:  3325.json\n",
+      "Created File:  8962.json\n",
+      "Created File:  4395.json\n",
+      "Created File:  4601.json\n",
+      "Created File:  8826.json\n",
+      "Created File:  1370.json\n",
+      "Created File:  7760.json\n",
+      "Created File:  6152.json\n",
+      "Created File:  3410.json\n",
+      "Created File:  4094.json\n",
+      "Created File:  4458.json\n",
+      "Created File:  6555.json\n",
+      "Created File:  8787.json\n",
+      "Created File:  5326.json\n",
+      "Created File:  5138.json\n",
+      "Created File:  5173.json\n",
+      "Created File:  9946.json\n",
+      "Created File:  2547.json\n",
+      "Created File:  5386.json\n",
+      "Created File:  4715.json\n",
+      "Created File:  10083.json\n",
+      "Created File:  3027.json\n",
+      "Created File:  78.json\n",
+      "Created File:  6128.json\n",
+      "Created File:  5512.json\n",
+      "Created File:  5093.json\n",
+      "Created File:  2334.json\n",
+      "Created File:  6422.json\n",
+      "Created File:  6346.json\n",
+      "Created File:  4312.json\n",
+      "Created File:  1346.json\n",
+      "Created File:  5131.json\n",
+      "Created File:  2374.json\n",
+      "Created File:  5340.json\n",
+      "Created File:  9965.json\n",
+      "Created File:  5310.json\n",
+      "Created File:  7245.json\n",
+      "Created File:  3278.json\n",
+      "Created File:  6415.json\n",
+      "Created File:  3614.json\n",
+      "Created File:  801.json\n",
+      "Created File:  5495.json\n",
+      "Created File:  318.json\n",
+      "Created File:  6705.json\n",
+      "Created File:  3398.json\n",
+      "Created File:  8641.json\n",
+      "Created File:  7233.json\n",
+      "Created File:  9341.json\n",
+      "Created File:  1994.json\n",
+      "Created File:  6137.json\n",
+      "Created File:  6191.json\n",
+      "Created File:  5007.json\n",
+      "Created File:  10025.json\n",
+      "Created File:  2055.json\n",
+      "Created File:  4410.json\n",
+      "Created File:  8148.json\n",
+      "Created File:  5008.json\n",
+      "Created File:  5042.json\n",
+      "Created File:  4262.json\n",
+      "Created File:  3034.json\n",
+      "Created File:  2193.json\n",
+      "Created File:  4076.json\n",
+      "Created File:  1181.json\n",
+      "Created File:  5128.json\n",
+      "Created File:  7768.json\n",
+      "Created File:  844.json\n",
+      "Created File:  8677.json\n",
+      "Created File:  8386.json\n",
+      "Created File:  10175.json\n",
+      "Created File:  7186.json\n",
+      "Created File:  3864.json\n",
+      "Created File:  10032.json\n",
+      "Created File:  1903.json\n",
+      "Created File:  3037.json\n",
+      "Created File:  3397.json\n",
+      "Created File:  4863.json\n",
+      "Created File:  4539.json\n",
+      "Created File:  9010.json\n",
+      "Created File:  4472.json\n",
+      "Created File:  5688.json\n",
+      "Created File:  1625.json\n",
+      "Created File:  6165.json\n",
+      "Created File:  7680.json\n",
+      "Created File:  8469.json\n",
+      "Created File:  6936.json\n",
+      "Created File:  8341.json\n",
+      "Created File:  1034.json\n",
+      "Created File:  6267.json\n",
+      "Created File:  4435.json\n",
+      "Created File:  8831.json\n",
+      "Created File:  22.json\n",
+      "Created File:  2960.json\n",
+      "Created File:  1059.json\n",
+      "Created File:  3040.json\n",
+      "Created File:  7192.json\n",
+      "Created File:  5563.json\n",
+      "Created File:  8788.json\n",
+      "Created File:  3329.json\n",
+      "Created File:  6411.json\n",
+      "Created File:  5151.json\n",
+      "Created File:  5321.json\n",
+      "Created File:  4328.json\n",
+      "Created File:  7516.json\n",
+      "Created File:  2899.json\n",
+      "Created File:  8586.json\n",
+      "Created File:  8933.json\n",
+      "Created File:  1435.json\n",
+      "Created File:  8803.json\n",
+      "Created File:  3436.json\n",
+      "Created File:  7222.json\n",
+      "Created File:  1221.json\n",
+      "Created File:  4691.json\n",
+      "Created File:  2332.json\n",
+      "Created File:  2125.json\n",
+      "Created File:  1755.json\n",
+      "Created File:  8850.json\n",
+      "Created File:  6232.json\n",
+      "Created File:  6127.json\n",
+      "Created File:  3203.json\n",
+      "Created File:  5092.json\n",
+      "Created File:  4110.json\n",
+      "Created File:  2524.json\n",
+      "Created File:  8672.json\n",
+      "Created File:  7519.json\n",
+      "Created File:  2309.json\n",
+      "Created File:  3059.json\n",
+      "Created File:  10073.json\n",
+      "Created File:  7237.json\n",
+      "Created File:  8706.json\n",
+      "Created File:  5471.json\n",
+      "Created File:  5252.json\n",
+      "Created File:  7335.json\n",
+      "Created File:  7450.json\n",
+      "Created File:  1188.json\n",
+      "Created File:  5794.json\n",
+      "Created File:  2758.json\n",
+      "Created File:  6046.json\n",
+      "Created File:  1927.json\n",
+      "Created File:  2014.json\n",
+      "Created File:  2880.json\n",
+      "Created File:  3930.json\n",
+      "Created File:  10070.json\n",
+      "Created File:  6316.json\n",
+      "Created File:  7611.json\n",
+      "Created File:  2445.json\n",
+      "Created File:  7087.json\n",
+      "Created File:  3080.json\n",
+      "Created File:  5418.json\n",
+      "Created File:  1175.json\n",
+      "Created File:  7596.json\n",
+      "Created File:  2791.json\n",
+      "Created File:  3029.json\n",
+      "Created File:  5147.json\n",
+      "Created File:  8482.json\n",
+      "Created File:  1524.json\n",
+      "Created File:  8875.json\n",
+      "Created File:  9401.json\n",
+      "Created File:  1033.json\n",
+      "Created File:  2083.json\n",
+      "Created File:  4991.json\n",
+      "Created File:  2914.json\n",
+      "Created File:  3248.json\n",
+      "Created File:  4625.json\n",
+      "Created File:  6864.json\n",
+      "Created File:  1272.json\n",
+      "Created File:  10156.json\n",
+      "Created File:  8547.json\n",
+      "Created File:  659.json\n",
+      "Created File:  1031.json\n",
+      "Created File:  4447.json\n",
+      "Created File:  4911.json\n",
+      "Created File:  9179.json\n",
+      "Created File:  661.json\n",
+      "Created File:  8627.json\n",
+      "Created File:  8072.json\n",
+      "Created File:  1373.json\n",
+      "Created File:  2863.json\n",
+      "Created File:  1468.json\n",
+      "Created File:  9056.json\n",
+      "Created File:  8498.json\n",
+      "Created File:  9020.json\n",
+      "Created File:  8355.json\n",
+      "Created File:  7126.json\n",
+      "Created File:  2433.json\n",
+      "Created File:  7228.json\n",
+      "Created File:  6802.json\n",
+      "Created File:  6708.json\n",
+      "Created File:  3014.json\n",
+      "Created File:  4138.json\n",
+      "Created File:  9246.json\n",
+      "Created File:  7399.json\n",
+      "Created File:  6320.json\n",
+      "Created File:  5350.json\n",
+      "Created File:  9758.json\n",
+      "Created File:  6355.json\n",
+      "Created File:  8471.json\n",
+      "Created File:  6036.json\n",
+      "Created File:  2937.json\n",
+      "Created File:  7001.json\n",
+      "Created File:  7367.json\n",
+      "Created File:  492.json\n",
+      "Created File:  4242.json\n",
+      "Created File:  4157.json\n",
+      "Created File:  5715.json\n",
+      "Created File:  7488.json\n",
+      "Created File:  6343.json\n",
+      "Created File:  6536.json\n",
+      "Created File:  9986.json\n",
+      "Created File:  5246.json\n",
+      "Created File:  3449.json\n",
+      "Created File:  9843.json\n",
+      "Created File:  2533.json\n",
+      "Created File:  6100.json\n",
+      "Created File:  7613.json\n",
+      "Created File:  4310.json\n",
+      "Created File:  3304.json\n",
+      "Created File:  1985.json\n",
+      "Created File:  9987.json\n",
+      "Created File:  47.json\n",
+      "Created File:  2983.json\n",
+      "Created File:  9722.json\n",
+      "Created File:  7315.json\n",
+      "Created File:  3782.json\n",
+      "Created File:  9918.json\n",
+      "Created File:  1569.json\n",
+      "Created File:  5035.json\n",
+      "Created File:  5101.json\n",
+      "Created File:  5567.json\n",
+      "Created File:  6181.json\n",
+      "Created File:  8966.json\n",
+      "Created File:  3377.json\n",
+      "Created File:  1580.json\n",
+      "Created File:  10134.json\n",
+      "Created File:  1003.json\n",
+      "Created File:  7286.json\n",
+      "Created File:  6567.json\n",
+      "Created File:  1726.json\n",
+      "Created File:  992.json\n",
+      "Created File:  1809.json\n",
+      "Created File:  8693.json\n",
+      "Created File:  4561.json\n",
+      "Created File:  6385.json\n",
+      "Created File:  4168.json\n",
+      "Created File:  4149.json\n",
+      "Created File:  2070.json\n",
+      "Created File:  4165.json\n",
+      "Created File:  9701.json\n",
+      "Created File:  4162.json\n",
+      "Created File:  3620.json\n",
+      "Created File:  7764.json\n",
+      "Created File:  9014.json\n",
+      "Created File:  7178.json\n",
+      "Created File:  6043.json\n",
+      "Created File:  2236.json\n",
+      "Created File:  1544.json\n",
+      "Created File:  1744.json\n",
+      "Created File:  5613.json\n",
+      "Created File:  8485.json\n",
+      "Created File:  8578.json\n",
+      "Created File:  4516.json\n",
+      "Created File:  6995.json\n",
+      "Created File:  4126.json\n",
+      "Created File:  8774.json\n",
+      "Created File:  8164.json\n",
+      "Created File:  8638.json\n",
+      "Created File:  2599.json\n",
+      "Created File:  5158.json\n",
+      "Created File:  3670.json\n",
+      "Created File:  2221.json\n",
+      "Created File:  8868.json\n",
+      "Created File:  4190.json\n",
+      "Created File:  2054.json\n",
+      "Created File:  4070.json\n",
+      "Created File:  6823.json\n",
+      "Created File:  5549.json\n",
+      "Created File:  334.json\n",
+      "Created File:  5569.json\n",
+      "Created File:  5086.json\n",
+      "Created File:  1574.json\n",
+      "Created File:  2243.json\n",
+      "Created File:  7358.json\n",
+      "Created File:  4068.json\n",
+      "Created File:  2429.json\n",
+      "Created File:  6134.json\n",
+      "Created File:  4114.json\n",
+      "Created File:  6614.json\n",
+      "Created File:  6325.json\n",
+      "Created File:  3808.json\n",
+      "Created File:  2078.json\n",
+      "Created File:  7424.json\n",
+      "Created File:  2523.json\n",
+      "Created File:  8685.json\n",
+      "Created File:  5223.json\n",
+      "Created File:  409.json\n",
+      "Created File:  3185.json\n",
+      "Created File:  5581.json\n",
+      "Created File:  2972.json\n",
+      "Created File:  2072.json\n",
+      "Created File:  4172.json\n",
+      "Created File:  9123.json\n",
+      "Created File:  6546.json\n",
+      "Created File:  3912.json\n",
+      "Created File:  8951.json\n",
+      "Created File:  2819.json\n",
+      "Created File:  510.json\n",
+      "Created File:  6583.json\n",
+      "Created File:  2314.json\n",
+      "Created File:  8747.json\n",
+      "Created File:  7569.json\n",
+      "Created File:  3024.json\n",
+      "Created File:  5198.json\n",
+      "Created File:  9669.json\n",
+      "Created File:  7156.json\n",
+      "Created File:  5126.json\n",
+      "Created File:  6314.json\n",
+      "Created File:  8945.json\n",
+      "Created File:  4946.json\n",
+      "Created File:  8098.json\n",
+      "Created File:  8528.json\n",
+      "Created File:  7571.json\n",
+      "Created File:  1314.json\n",
+      "Created File:  8942.json\n",
+      "Created File:  9719.json\n",
+      "Created File:  2240.json\n",
+      "Created File:  9011.json\n",
+      "Created File:  7548.json\n",
+      "Created File:  2155.json\n",
+      "Created File:  9158.json\n",
+      "Created File:  1912.json\n",
+      "Created File:  481.json\n",
+      "Created File:  4255.json\n",
+      "Created File:  8704.json\n",
+      "Created File:  9944.json\n",
+      "Created File:  4825.json\n",
+      "Created File:  2957.json\n",
+      "Created File:  3768.json\n",
+      "Created File:  4884.json\n",
+      "Created File:  248.json\n",
+      "Created File:  1999.json\n",
+      "Created File:  8643.json\n",
+      "Created File:  3140.json\n",
+      "Created File:  2136.json\n",
+      "Created File:  7409.json\n",
+      "Created File:  1499.json\n",
+      "Created File:  9610.json\n",
+      "Created File:  5148.json\n",
+      "Created File:  7845.json\n",
+      "Created File:  2026.json\n",
+      "Created File:  1588.json\n",
+      "Created File:  4571.json\n",
+      "Created File:  4290.json\n",
+      "Created File:  2101.json\n",
+      "Created File:  5507.json\n",
+      "Created File:  9850.json\n",
+      "Created File:  147.json\n",
+      "Created File:  8208.json\n",
+      "Created File:  7271.json\n",
+      "Created File:  6809.json\n",
+      "Created File:  6483.json\n",
+      "Created File:  10003.json\n",
+      "Created File:  5124.json\n",
+      "Created File:  5427.json\n",
+      "Created File:  69.json\n",
+      "Created File:  3928.json\n",
+      "Created File:  1601.json\n",
+      "Created File:  4808.json\n",
+      "Created File:  8667.json\n",
+      "Created File:  4473.json\n",
+      "Created File:  3198.json\n",
+      "Created File:  2612.json\n",
+      "Created File:  6677.json\n",
+      "Created File:  5250.json\n",
+      "Created File:  6301.json\n",
+      "Created File:  5702.json\n",
+      "Created File:  8501.json\n",
+      "Created File:  5452.json\n",
+      "Created File:  4828.json\n",
+      "Created File:  9116.json\n",
+      "Created File:  4028.json\n",
+      "Created File:  3845.json\n",
+      "Created File:  2790.json\n",
+      "Created File:  1689.json\n",
+      "Created File:  1986.json\n",
+      "Created File:  8563.json\n",
+      "Created File:  467.json\n",
+      "Created File:  1302.json\n",
+      "Created File:  4438.json\n",
+      "Created File:  1784.json\n",
+      "Created File:  7755.json\n",
+      "Created File:  5178.json\n",
+      "Created File:  4252.json\n",
+      "Created File:  10080.json\n",
+      "Created File:  10085.json\n",
+      "Created File:  3875.json\n",
+      "Created File:  4944.json\n",
+      "Created File:  9152.json\n",
+      "Created File:  5202.json\n",
+      "Created File:  6185.json\n",
+      "Created File:  1885.json\n",
+      "Created File:  8521.json\n",
+      "Created File:  8500.json\n",
+      "Created File:  8379.json\n",
+      "Created File:  6688.json\n",
+      "Created File:  8275.json\n",
+      "Created File:  981.json\n",
+      "Created File:  8702.json\n",
+      "Created File:  6997.json\n",
+      "Created File:  7607.json\n",
+      "Created File:  9166.json\n",
+      "Created File:  2020.json\n",
+      "Created File:  1660.json\n",
+      "Created File:  9807.json\n",
+      "Created File:  6633.json\n",
+      "Created File:  1651.json\n",
+      "Created File:  5551.json\n",
+      "Created File:  2792.json\n",
+      "Created File:  6365.json\n",
+      "Created File:  4446.json\n",
+      "Created File:  3501.json\n",
+      "Created File:  1537.json\n",
+      "Created File:  2507.json\n",
+      "Created File:  6200.json\n",
+      "Created File:  6412.json\n",
+      "Created File:  988.json\n",
+      "Created File:  1713.json\n",
+      "Created File:  496.json\n",
+      "Created File:  9864.json\n",
+      "Created File:  6081.json\n",
+      "Created File:  8825.json\n",
+      "Created File:  6565.json\n",
+      "Created File:  4955.json\n",
+      "Created File:  8709.json\n",
+      "Created File:  4865.json\n",
+      "Created File:  8810.json\n",
+      "Created File:  7449.json\n",
+      "Created File:  199.json\n",
+      "Created File:  7475.json\n",
+      "Created File:  2969.json\n",
+      "Created File:  4288.json\n",
+      "Created File:  8786.json\n",
+      "Created File:  5273.json\n",
+      "Created File:  8195.json\n",
+      "Created File:  6166.json\n",
+      "Created File:  9810.json\n",
+      "Created File:  2095.json\n",
+      "Created File:  4141.json\n",
+      "Created File:  1224.json\n",
+      "Created File:  2124.json\n",
+      "Created File:  3051.json\n",
+      "Created File:  7095.json\n",
+      "Created File:  8847.json\n",
+      "Created File:  7923.json\n",
+      "Created File:  1614.json\n",
+      "Created File:  5953.json\n",
+      "Created File:  7867.json\n",
+      "Created File:  9128.json\n",
+      "Created File:  8943.json\n",
+      "Created File:  7673.json\n",
+      "Created File:  8807.json\n",
+      "Created File:  5133.json\n",
+      "Created File:  8420.json\n",
+      "Created File:  9031.json\n",
+      "Created File:  3882.json\n",
+      "Created File:  3681.json\n",
+      "Created File:  9874.json\n",
+      "Created File:  3714.json\n",
+      "Created File:  4537.json\n",
+      "Created File:  3407.json\n",
+      "Created File:  3404.json\n",
+      "Created File:  6024.json\n",
+      "Created File:  4874.json\n",
+      "Created File:  6920.json\n",
+      "Created File:  918.json\n",
+      "Created File:  3383.json\n",
+      "Created File:  4987.json\n",
+      "Created File:  1341.json\n",
+      "Created File:  3270.json\n",
+      "Created File:  5028.json\n",
+      "Created File:  8727.json\n",
+      "Created File:  4819.json\n",
+      "Created File:  9698.json\n",
+      "Created File:  1916.json\n",
+      "Created File:  4923.json\n",
+      "Created File:  2030.json\n",
+      "Created File:  4805.json\n",
+      "Created File:  2820.json\n",
+      "Created File:  3084.json\n",
+      "Created File:  6291.json\n",
+      "Created File:  94.json\n",
+      "Created File:  2160.json\n",
+      "Created File:  1589.json\n",
+      "Created File:  4543.json\n",
+      "Created File:  1664.json\n",
+      "Created File:  5382.json\n",
+      "Created File:  4421.json\n",
+      "Created File:  2602.json\n",
+      "Created File:  5370.json\n",
+      "Created File:  397.json\n",
+      "Created File:  6703.json\n",
+      "Created File:  4119.json\n",
+      "Created File:  1037.json\n",
+      "Created File:  5799.json\n",
+      "Created File:  4801.json\n",
+      "Created File:  4244.json\n",
+      "Created File:  1731.json\n",
+      "Created File:  5638.json\n",
+      "Created File:  6628.json\n",
+      "Created File:  4014.json\n",
+      "Created File:  8385.json\n",
+      "Created File:  8558.json\n",
+      "Created File:  3696.json\n",
+      "Created File:  2195.json\n",
+      "Created File:  6637.json\n",
+      "Created File:  3432.json\n",
+      "Created File:  9818.json\n",
+      "Created File:  9794.json\n",
+      "Created File:  1335.json\n",
+      "Created File:  8440.json\n",
+      "Created File:  6988.json\n",
+      "Created File:  3496.json\n",
+      "Created File:  5096.json\n",
+      "Created File:  7524.json\n",
+      "Created File:  8365.json\n",
+      "Created File:  4316.json\n",
+      "Created File:  4031.json\n",
+      "Created File:  8928.json\n",
+      "Created File:  7309.json\n",
+      "Created File:  2120.json\n",
+      "Created File:  1686.json\n",
+      "Created File:  565.json\n",
+      "Created File:  7282.json\n",
+      "Created File:  977.json\n",
+      "Created File:  3113.json\n",
+      "Created File:  2884.json\n",
+      "Created File:  3098.json\n",
+      "Created File:  449.json\n",
+      "Created File:  4816.json\n",
+      "Created File:  6680.json\n",
+      "Created File:  5132.json\n",
+      "Created File:  7074.json\n",
+      "Created File:  991.json\n",
+      "Created File:  114.json\n",
+      "Created File:  6596.json\n",
+      "Created File:  4671.json\n",
+      "Created File:  3546.json\n",
+      "Created File:  4747.json\n",
+      "Created File:  6190.json\n",
+      "Created File:  9808.json\n",
+      "Created File:  3661.json\n",
+      "Created File:  447.json\n",
+      "Created File:  3338.json\n",
+      "Created File:  3129.json\n",
+      "Created File:  4061.json\n",
+      "Created File:  5073.json\n",
+      "Created File:  973.json\n",
+      "Created File:  2261.json\n",
+      "Created File:  1140.json\n",
+      "Created File:  9682.json\n",
+      "Created File:  6059.json\n",
+      "Created File:  6502.json\n",
+      "Created File:  4577.json\n",
+      "Created File:  7533.json\n",
+      "Created File:  2201.json\n",
+      "Created File:  7083.json\n",
+      "Created File:  7408.json\n",
+      "Created File:  1018.json\n",
+      "Created File:  5609.json\n",
+      "Created File:  5341.json\n",
+      "Created File:  9213.json\n",
+      "Created File:  2084.json\n",
+      "Created File:  8419.json\n",
+      "Created File:  1090.json\n",
+      "Created File:  1061.json\n",
+      "Created File:  4419.json\n",
+      "Created File:  9768.json\n",
+      "Created File:  5293.json\n",
+      "Created File:  5391.json\n",
+      "Created File:  9878.json\n",
+      "Created File:  305.json\n",
+      "Created File:  10159.json\n",
+      "Created File:  8861.json\n",
+      "Created File:  2562.json\n",
+      "Created File:  21.json\n",
+      "Created File:  6683.json\n",
+      "Created File:  2063.json\n",
+      "Created File:  8121.json\n",
+      "Created File:  1264.json\n",
+      "Created File:  7317.json\n",
+      "Created File:  8609.json\n",
+      "Created File:  4315.json\n",
+      "Created File:  614.json\n",
+      "Created File:  1051.json\n",
+      "Created File:  3386.json\n",
+      "Created File:  8514.json\n",
+      "Created File:  4814.json\n",
+      "Created File:  6696.json\n",
+      "Created File:  6262.json\n",
+      "Created File:  2516.json\n",
+      "Created File:  7567.json\n",
+      "Created File:  1014.json\n",
+      "Created File:  6702.json\n",
+      "Created File:  3134.json\n",
+      "Created File:  5473.json\n",
+      "Created File:  4308.json\n",
+      "Created File:  1394.json\n",
+      "Created File:  735.json\n",
+      "Created File:  8936.json\n",
+      "Created File:  10062.json\n",
+      "Created File:  1209.json\n",
+      "Created File:  9935.json\n",
+      "Created File:  9155.json\n",
+      "Created File:  2926.json\n",
+      "Created File:  2311.json\n",
+      "Created File:  2509.json\n",
+      "Created File:  1714.json\n",
+      "Created File:  10167.json\n",
+      "Created File:  4974.json\n",
+      "Created File:  4027.json\n",
+      "Created File:  4177.json\n",
+      "Created File:  3118.json\n",
+      "Created File:  6994.json\n",
+      "Created File:  8313.json\n",
+      "Created File:  1711.json\n",
+      "Created File:  6318.json\n",
+      "Created File:  6811.json\n",
+      "Created File:  958.json\n",
+      "Created File:  1984.json\n",
+      "Created File:  2472.json\n",
+      "Created File:  2883.json\n",
+      "Created File:  2573.json\n",
+      "Created File:  8644.json\n",
+      "Created File:  4723.json\n",
+      "Created File:  8944.json\n",
+      "Created File:  5672.json\n",
+      "Created File:  894.json\n",
+      "Created File:  5238.json\n",
+      "Created File:  5897.json\n",
+      "Created File:  4055.json\n",
+      "Created File:  5928.json\n",
+      "Created File:  8011.json\n",
+      "Created File:  6182.json\n",
+      "Created File:  4719.json\n",
+      "Created File:  1011.json\n",
+      "Created File:  8771.json\n",
+      "Created File:  1154.json\n",
+      "Created File:  8494.json\n",
+      "Created File:  4125.json\n",
+      "Created File:  1854.json\n",
+      "Created File:  4453.json\n",
+      "Created File:  8495.json\n",
+      "Created File:  2373.json\n",
+      "Created File:  5491.json\n",
+      "Created File:  6877.json\n",
+      "Created File:  4487.json\n",
+      "Created File:  6986.json\n",
+      "Created File:  10016.json\n",
+      "Created File:  4744.json\n",
+      "Created File:  3619.json\n",
+      "Created File:  7346.json\n",
+      "Created File:  1581.json\n",
+      "Created File:  4436.json\n",
+      "Created File:  8736.json\n",
+      "Created File:  3725.json\n",
+      "Created File:  8954.json\n",
+      "Created File:  3697.json\n",
+      "Created File:  1700.json\n",
+      "Created File:  2249.json\n",
+      "Created File:  3915.json\n",
+      "Created File:  9927.json\n",
+      "Created File:  7392.json\n",
+      "Created File:  1603.json\n",
+      "Created File:  10174.json\n",
+      "Created File:  1054.json\n",
+      "Created File:  6219.json\n",
+      "Created File:  4853.json\n",
+      "Created File:  1604.json\n",
+      "Created File:  1990.json\n",
+      "Created File:  5185.json\n",
+      "Created File:  4462.json\n",
+      "Created File:  9006.json\n",
+      "Created File:  3896.json\n",
+      "Created File:  1899.json\n",
+      "Created File:  7362.json\n",
+      "Created File:  3699.json\n",
+      "Created File:  4731.json\n",
+      "Created File:  7460.json\n",
+      "Created File:  861.json\n",
+      "Created File:  9176.json\n",
+      "Created File:  6404.json\n",
+      "Created File:  6207.json\n",
+      "Created File:  1496.json\n",
+      "Created File:  6335.json\n",
+      "Created File:  3962.json\n",
+      "Created File:  6296.json\n",
+      "Created File:  8529.json\n",
+      "Created File:  6311.json\n",
+      "Created File:  8963.json\n",
+      "Created File:  6202.json\n",
+      "Created File:  5578.json\n",
+      "Created File:  4959.json\n",
+      "Created File:  6025.json\n",
+      "Created File:  9983.json\n",
+      "Created File:  1944.json\n",
+      "Created File:  4286.json\n",
+      "Created File:  1194.json\n",
+      "Created File:  6662.json\n",
+      "Created File:  403.json\n",
+      "Created File:  8288.json\n",
+      "Created File:  1454.json\n",
+      "Created File:  4580.json\n",
+      "Created File:  8882.json\n",
+      "Created File:  9091.json\n",
+      "Created File:  4183.json\n",
+      "Created File:  1488.json\n",
+      "Created File:  1882.json\n",
+      "Created File:  4558.json\n",
+      "Created File:  2443.json\n",
+      "Created File:  7725.json\n",
+      "Created File:  4336.json\n",
+      "Created File:  7143.json\n",
+      "Created File:  5262.json\n",
+      "Created File:  8446.json\n",
+      "Created File:  8032.json\n",
+      "Created File:  5570.json\n",
+      "Created File:  1204.json\n",
+      "Created File:  1410.json\n",
+      "Created File:  1582.json\n",
+      "Created File:  2079.json\n",
+      "Created File:  1393.json\n",
+      "Created File:  5298.json\n",
+      "Created File:  10077.json\n",
+      "Created File:  301.json\n",
+      "Created File:  5732.json\n",
+      "Created File:  6082.json\n",
+      "Created File:  534.json\n",
+      "Created File:  6141.json\n",
+      "Created File:  8457.json\n",
+      "Created File:  6806.json\n",
+      "Created File:  9288.json\n",
+      "Created File:  122.json\n",
+      "Created File:  9168.json\n",
+      "Created File:  2550.json\n",
+      "Created File:  9362.json\n",
+      "Created File:  1395.json\n",
+      "Created File:  4392.json\n",
+      "Created File:  8723.json\n",
+      "Created File:  4721.json\n",
+      "Created File:  5729.json\n",
+      "Created File:  10086.json\n",
+      "Created File:  2111.json\n",
+      "Created File:  8799.json\n",
+      "Created File:  1032.json\n",
+      "Created File:  8834.json\n",
+      "Created File:  10127.json\n",
+      "Created File:  3641.json\n",
+      "Created File:  4334.json\n",
+      "Created File:  5747.json\n",
+      "Created File:  8412.json\n",
+      "Created File:  8798.json\n",
+      "Created File:  6741.json\n",
+      "Created File:  1793.json\n",
+      "Created File:  6308.json\n",
+      "Created File:  1113.json\n",
+      "Created File:  9047.json\n",
+      "Created File:  1591.json\n",
+      "Created File:  6417.json\n",
+      "Created File:  5113.json\n",
+      "Created File:  4914.json\n",
+      "Created File:  1471.json\n",
+      "Created File:  8448.json\n",
+      "Created File:  5210.json\n",
+      "Created File:  7158.json\n",
+      "Created File:  6474.json\n",
+      "Created File:  2411.json\n",
+      "Created File:  9742.json\n",
+      "Created File:  6387.json\n",
+      "Created File:  353.json\n",
+      "Created File:  2318.json\n",
+      "Created File:  6679.json\n",
+      "Created File:  2156.json\n",
+      "Created File:  5199.json\n",
+      "Created File:  9711.json\n",
+      "Created File:  8715.json\n",
+      "Created File:  10102.json\n",
+      "Created File:  5472.json\n",
+      "Created File:  6177.json\n",
+      "Created File:  6452.json\n",
+      "Created File:  6921.json\n",
+      "Created File:  6454.json\n",
+      "Created File:  1590.json\n",
+      "Created File:  9533.json\n",
+      "Created File:  8496.json\n",
+      "Created File:  1725.json\n",
+      "Created File:  6547.json\n",
+      "Created File:  9929.json\n",
+      "Created File:  5329.json\n",
+      "Created File:  10028.json\n",
+      "Created File:  8286.json\n",
+      "Created File:  1587.json\n",
+      "Created File:  171.json\n",
+      "Created File:  3623.json\n",
+      "Created File:  1303.json\n",
+      "Created File:  2153.json\n",
+      "Created File:  5494.json\n",
+      "Created File:  3857.json\n",
+      "Created File:  6645.json\n",
+      "Created File:  8876.json\n",
+      "Created File:  1908.json\n",
+      "Created File:  3305.json\n",
+      "Created File:  4151.json\n",
+      "Created File:  4521.json\n",
+      "Created File:  404.json\n",
+      "Created File:  4609.json\n",
+      "Created File:  349.json\n",
+      "Created File:  8931.json\n",
+      "Created File:  8659.json\n",
+      "Created File:  5416.json\n",
+      "Created File:  1631.json\n",
+      "Created File:  5780.json\n",
+      "Created File:  9041.json\n",
+      "Created File:  4549.json\n",
+      "Created File:  1279.json\n",
+      "Created File:  2194.json\n",
+      "Created File:  9137.json\n",
+      "Created File:  3188.json\n",
+      "Created File:  6351.json\n",
+      "Created File:  9024.json\n",
+      "Created File:  2087.json\n",
+      "Created File:  6714.json\n",
+      "Created File:  4724.json\n",
+      "Created File:  7265.json\n",
+      "Created File:  10000.json\n",
+      "Created File:  3043.json\n",
+      "Created File:  1962.json\n",
+      "Created File:  9812.json\n",
+      "Created File:  9028.json\n",
+      "Created File:  4610.json\n",
+      "Created File:  2117.json\n",
+      "Created File:  9950.json\n",
+      "Created File:  8470.json\n",
+      "Created File:  8511.json\n",
+      "Created File:  9923.json\n",
+      "Created File:  5986.json\n",
+      "Created File:  7145.json\n",
+      "Created File:  3504.json\n",
+      "Created File:  5139.json\n",
+      "Created File:  8045.json\n",
+      "Created File:  4423.json\n",
+      "Created File:  4323.json\n",
+      "Created File:  986.json\n",
+      "Created File:  4706.json\n",
+      "Created File:  5450.json\n",
+      "Created File:  1258.json\n",
+      "Created File:  2182.json\n",
+      "Created File:  951.json\n",
+      "Created File:  6371.json\n",
+      "Created File:  3167.json\n",
+      "Created File:  4988.json\n",
+      "Created File:  6424.json\n",
+      "Created File:  8856.json\n",
+      "Created File:  4276.json\n",
+      "Created File:  5375.json\n",
+      "Created File:  8480.json\n",
+      "Created File:  4975.json\n",
+      "Created File:  23.json\n",
+      "Created File:  4978.json\n",
+      "Created File:  7796.json\n",
+      "Created File:  1289.json\n",
+      "Created File:  4077.json\n",
+      "Created File:  5748.json\n",
+      "Created File:  4225.json\n",
+      "Created File:  9198.json\n",
+      "Created File:  6857.json\n",
+      "Created File:  9687.json\n",
+      "Created File:  1245.json\n",
+      "Created File:  9086.json\n",
+      "Created File:  4465.json\n",
+      "Created File:  9206.json\n",
+      "Created File:  7209.json\n",
+      "Created File:  9276.json\n",
+      "Created File:  8746.json\n",
+      "Created File:  8597.json\n",
+      "Created File:  7307.json\n",
+      "Created File:  8028.json\n",
+      "Created File:  7070.json\n",
+      "Created File:  2288.json\n",
+      "Created File:  4908.json\n",
+      "Created File:  5451.json\n",
+      "Created File:  4652.json\n",
+      "Created File:  4017.json\n",
+      "Created File:  9685.json\n",
+      "Created File:  9087.json\n",
+      "Created File:  6284.json\n",
+      "Created File:  4518.json\n",
+      "Created File:  7707.json\n",
+      "Created File:  6789.json\n",
+      "Created File:  7573.json\n",
+      "Created File:  8742.json\n",
+      "Created File:  4527.json\n",
+      "Created File:  4693.json\n",
+      "Created File:  7193.json\n",
+      "Created File:  871.json\n",
+      "Created File:  3862.json\n",
+      "Created File:  2996.json\n",
+      "Created File:  6340.json\n",
+      "Created File:  7541.json\n",
+      "Created File:  4953.json\n",
+      "Created File:  1420.json\n",
+      "Created File:  5426.json\n",
+      "Created File:  6359.json\n",
+      "Created File:  5431.json\n",
+      "Created File:  8960.json\n",
+      "Created File:  4221.json\n",
+      "Created File:  31.json\n",
+      "Created File:  5040.json\n",
+      "Created File:  9570.json\n",
+      "Created File:  5144.json\n",
+      "Created File:  7275.json\n",
+      "Created File:  1371.json\n",
+      "Created File:  1035.json\n",
+      "Created File:  9731.json\n",
+      "Created File:  1840.json\n",
+      "Created File:  3231.json\n",
+      "Created File:  8518.json\n",
+      "Created File:  6691.json\n",
+      "Created File:  6012.json\n",
+      "Created File:  8642.json\n",
+      "Created File:  7641.json\n",
+      "Created File:  1934.json\n",
+      "Created File:  8887.json\n",
+      "Created File:  1043.json\n",
+      "Created File:  5161.json\n",
+      "Created File:  4238.json\n",
+      "Created File:  4136.json\n",
+      "Created File:  5190.json\n",
+      "Created File:  4562.json\n",
+      "Created File:  9729.json\n",
+      "Created File:  5488.json\n",
+      "Created File:  3469.json\n",
+      "Created File:  9456.json\n",
+      "Created File:  8972.json\n",
+      "Created File:  433.json\n",
+      "Created File:  6194.json\n",
+      "Created File:  1535.json\n",
+      "Created File:  1761.json\n",
+      "Created File:  291.json\n",
+      "Created File:  1815.json\n",
+      "Created File:  6458.json\n",
+      "Created File:  3847.json\n",
+      "Created File:  9962.json\n",
+      "Created File:  1886.json\n",
+      "Created File:  10021.json\n",
+      "Created File:  10163.json\n",
+      "Created File:  6241.json\n",
+      "Created File:  5018.json\n",
+      "Created File:  7124.json\n",
+      "Created File:  5153.json\n",
+      "Created File:  1648.json\n",
+      "Created File:  5529.json\n",
+      "Created File:  1089.json\n",
+      "Created File:  2122.json\n",
+      "Created File:  2924.json\n",
+      "Created File:  6288.json\n",
+      "Created File:  6286.json\n",
+      "Created File:  6159.json\n",
+      "Created File:  2987.json\n",
+      "Created File:  9039.json\n",
+      "Created File:  7138.json\n",
+      "Created File:  5960.json\n",
+      "Created File:  1639.json\n",
+      "Created File:  8971.json\n",
+      "Created File:  5313.json\n",
+      "Created File:  2006.json\n",
+      "Created File:  5489.json\n",
+      "Created File:  7246.json\n",
+      "Created File:  7203.json\n",
+      "Created File:  9192.json\n",
+      "Created File:  8460.json\n",
+      "Created File:  9073.json\n",
+      "Created File:  4306.json\n",
+      "Created File:  8733.json\n",
+      "Created File:  5582.json\n",
+      "Created File:  7407.json\n",
+      "Created File:  3294.json\n",
+      "Created File:  2579.json\n",
+      "Created File:  6058.json\n",
+      "Created File:  5061.json\n",
+      "Created File:  7552.json\n",
+      "Created File:  4821.json\n",
+      "Created File:  3400.json\n",
+      "Created File:  4573.json\n",
+      "Created File:  7881.json\n",
+      "Created File:  1998.json\n",
+      "Created File:  9256.json\n",
+      "Created File:  3207.json\n",
+      "Created File:  3895.json\n",
+      "Created File:  10093.json\n",
+      "Created File:  8427.json\n",
+      "Created File:  1164.json\n",
+      "Created File:  3960.json\n",
+      "Created File:  1228.json\n",
+      "Created File:  4717.json\n",
+      "Created File:  8679.json\n",
+      "Created File:  7429.json\n",
+      "Created File:  3438.json\n",
+      "Created File:  5041.json\n",
+      "Created File:  5140.json\n",
+      "Created File:  2238.json\n",
+      "Created File:  1628.json\n",
+      "Created File:  6876.json\n",
+      "Created File:  8562.json\n",
+      "Created File:  2134.json\n",
+      "Created File:  5239.json\n",
+      "Created File:  8663.json\n",
+      "Created File:  85.json\n",
+      "Created File:  8726.json\n",
+      "Created File:  6280.json\n",
+      "Created File:  5176.json\n",
+      "Created File:  6704.json\n",
+      "Created File:  2451.json\n",
+      "Created File:  8853.json\n",
+      "Created File:  1455.json\n",
+      "Created File:  5224.json\n",
+      "Created File:  7180.json\n",
+      "Created File:  4998.json\n",
+      "Created File:  1519.json\n",
+      "Created File:  9090.json\n",
+      "Created File:  8424.json\n",
+      "Created File:  6746.json\n",
+      "Created File:  6172.json\n",
+      "Created File:  5221.json\n",
+      "Created File:  2973.json\n",
+      "Created File:  4080.json\n",
+      "Created File:  6947.json\n",
+      "Created File:  7348.json\n",
+      "Created File:  2168.json\n",
+      "Created File:  2910.json\n",
+      "Created File:  1634.json\n",
+      "Created File:  2588.json\n",
+      "Created File:  5191.json\n",
+      "Created File:  5226.json\n",
+      "Created File:  6005.json\n",
+      "Created File:  997.json\n",
+      "Created File:  9646.json\n",
+      "Created File:  9979.json\n",
+      "Created File:  1318.json\n",
+      "Created File:  4263.json\n",
+      "Created File:  8987.json\n",
+      "Created File:  5187.json\n",
+      "Created File:  235.json\n",
+      "Created File:  4560.json\n",
+      "Created File:  395.json\n",
+      "Created File:  6420.json\n",
+      "Created File:  3149.json\n",
+      "Created File:  5182.json\n",
+      "Created File:  1560.json\n",
+      "Created File:  5784.json\n",
+      "Created File:  9769.json\n",
+      "Created File:  5342.json\n",
+      "Created File:  4666.json\n",
+      "Created File:  8380.json\n",
+      "Created File:  1977.json\n",
+      "Created File:  4143.json\n",
+      "Created File:  10050.json\n",
+      "Created File:  6322.json\n",
+      "Created File:  142.json\n",
+      "Created File:  9098.json\n",
+      "Created File:  5469.json\n",
+      "Created File:  6369.json\n",
+      "Created File:  3181.json\n",
+      "Created File:  6803.json\n",
+      "Created File:  6188.json\n",
+      "Created File:  6914.json\n",
+      "Created File:  6718.json\n",
+      "Created File:  3035.json\n",
+      "Created File:  4593.json\n",
+      "Created File:  5485.json\n",
+      "Created File:  545.json\n",
+      "Created File:  6999.json\n",
+      "Created File:  9194.json\n",
+      "Created File:  8656.json\n",
+      "Created File:  4824.json\n",
+      "Created File:  5883.json\n",
+      "Created File:  1210.json\n",
+      "Created File:  4849.json\n",
+      "Created File:  8393.json\n",
+      "Created File:  82.json\n",
+      "Created File:  4891.json\n",
+      "Created File:  5242.json\n",
+      "Created File:  1884.json\n",
+      "Created File:  3332.json\n",
+      "Created File:  1027.json\n",
+      "Created File:  7119.json\n",
+      "Created File:  8818.json\n",
+      "Created File:  7294.json\n",
+      "Created File:  7120.json\n",
+      "Created File:  1287.json\n",
+      "Created File:  9023.json\n",
+      "Created File:  8989.json\n",
+      "Created File:  10014.json\n",
+      "Created File:  4496.json\n",
+      "Created File:  1508.json\n",
+      "Created File:  975.json\n",
+      "Created File:  3600.json\n",
+      "Created File:  3727.json\n",
+      "Created File:  7651.json\n",
+      "Created File:  9187.json\n",
+      "Created File:  8904.json\n",
+      "Created File:  4986.json\n",
+      "Created File:  1531.json\n",
+      "Created File:  1578.json\n",
+      "Created File:  220.json\n",
+      "Created File:  6290.json\n",
+      "Created File:  1359.json\n",
+      "Created File:  2349.json\n",
+      "Created File:  4794.json\n",
+      "Created File:  6136.json\n",
+      "Created File:  665.json\n",
+      "Created File:  1489.json\n",
+      "Created File:  5543.json\n",
+      "Created File:  3168.json\n",
+      "Created File:  8785.json\n",
+      "Created File:  5145.json\n",
+      "Created File:  6443.json\n",
+      "Created File:  4832.json\n",
+      "Created File:  6236.json\n",
+      "Created File:  4996.json\n",
+      "Created File:  1297.json\n",
+      "Created File:  5750.json\n",
+      "Created File:  5640.json\n",
+      "Created File:  5146.json\n",
+      "Created File:  10033.json\n",
+      "Created File:  1749.json\n",
+      "Created File:  10096.json\n",
+      "Created File:  2882.json\n",
+      "Created File:  5247.json\n",
+      "Created File:  1092.json\n",
+      "Created File:  2870.json\n",
+      "Created File:  4135.json\n",
+      "Created File:  1246.json\n",
+      "Created File:  4916.json\n",
+      "Created File:  4374.json\n",
+      "Created File:  5001.json\n",
+      "Created File:  5896.json\n",
+      "Created File:  3184.json\n",
+      "Created File:  4146.json\n",
+      "Created File:  7510.json\n",
+      "Created File:  4554.json\n",
+      "Created File:  4920.json\n",
+      "Created File:  6958.json\n",
+      "Created File:  7238.json\n",
+      "Created File:  394.json\n",
+      "Created File:  1914.json\n",
+      "Created File:  2065.json\n",
+      "Created File:  6574.json\n",
+      "Created File:  6952.json\n",
+      "Created File:  1361.json\n",
+      "Created File:  8692.json\n",
+      "Created File:  9119.json\n",
+      "Created File:  1422.json\n",
+      "Created File:  4150.json\n",
+      "Created File:  10055.json\n",
+      "Created File:  2296.json\n",
+      "Created File:  6642.json\n",
+      "Created File:  2529.json\n",
+      "Created File:  3854.json\n",
+      "Created File:  4798.json\n",
+      "Created File:  1470.json\n",
+      "Created File:  9739.json\n",
+      "Created File:  4054.json\n",
+      "Created File:  8376.json\n",
+      "Created File:  5240.json\n",
+      "Created File:  4861.json\n",
+      "Created File:  8968.json\n",
+      "Created File:  4346.json\n",
+      "Created File:  4782.json\n",
+      "Created File:  2174.json\n",
+      "Created File:  8712.json\n",
+      "Created File:  66.json\n",
+      "Created File:  4960.json\n",
+      "Created File:  3524.json\n",
+      "Created File:  2073.json\n",
+      "Created File:  9184.json\n",
+      "Created File:  2570.json\n",
+      "Created File:  7423.json\n",
+      "Created File:  1384.json\n",
+      "Created File:  6180.json\n",
+      "Created File:  8499.json\n",
+      "Created File:  365.json\n",
+      "Created File:  516.json\n",
+      "Created File:  6576.json\n",
+      "Created File:  5510.json\n",
+      "Created File:  4197.json\n",
+      "Created File:  8572.json\n",
+      "Created File:  6110.json\n",
+      "Created File:  5243.json\n",
+      "Created File:  4720.json\n",
+      "Created File:  3846.json\n",
+      "Created File:  7187.json\n",
+      "Created File:  6844.json\n",
+      "Created File:  2613.json\n",
+      "Created File:  3090.json\n",
+      "Created File:  6494.json\n",
+      "Created File:  5459.json\n",
+      "Created File:  9302.json\n",
+      "Created File:  6088.json\n",
+      "Created File:  3521.json\n",
+      "Created File:  6624.json\n",
+      "Created File:  7174.json\n",
+      "Created File:  56.json\n",
+      "Created File:  4643.json\n",
+      "Created File:  2061.json\n",
+      "Created File:  4699.json\n",
+      "Created File:  10157.json\n",
+      "Created File:  1281.json\n",
+      "Created File:  5901.json\n",
+      "Created File:  9210.json\n",
+      "Created File:  1377.json\n",
+      "Created File:  6195.json\n",
+      "Created File:  4722.json\n",
+      "Created File:  6163.json\n",
+      "Created File:  9848.json\n",
+      "Created File:  371.json\n",
+      "Created File:  6090.json\n",
+      "Created File:  8878.json\n",
+      "Created File:  5354.json\n",
+      "Created File:  9841.json\n",
+      "Created File:  5539.json\n",
+      "Created File:  1991.json\n",
+      "Created File:  10008.json\n",
+      "Created File:  4309.json\n",
+      "Created File:  4261.json\n",
+      "Created File:  3272.json\n",
+      "Created File:  10173.json\n",
+      "Created File:  2295.json\n",
+      "Created File:  5204.json\n",
+      "Created File:  9065.json\n",
+      "Created File:  6112.json\n",
+      "Created File:  5165.json\n",
+      "Created File:  2867.json\n",
+      "Created File:  1646.json\n",
+      "Created File:  5024.json\n",
+      "Created File:  4314.json\n",
+      "Created File:  3706.json\n",
+      "Created File:  1811.json\n",
+      "Created File:  1187.json\n",
+      "Created File:  468.json\n",
+      "Created File:  8504.json\n",
+      "Created File:  3929.json\n",
+      "Created File:  4174.json\n",
+      "Created File:  7086.json\n",
+      "Created File:  6562.json\n",
+      "Created File:  8779.json\n",
+      "Created File:  8979.json\n",
+      "Created File:  2898.json\n",
+      "Created File:  8023.json\n",
+      "Created File:  9275.json\n",
+      "Created File:  9054.json\n",
+      "Created File:  3465.json\n",
+      "Created File:  4493.json\n",
+      "Created File:  6080.json\n",
+      "Created File:  1538.json\n",
+      "Created File:  5905.json\n",
+      "Created File:  4697.json\n",
+      "Created File:  8965.json\n",
+      "Created File:  10160.json\n",
+      "Created File:  4943.json\n",
+      "Created File:  2464.json\n",
+      "Created File:  8278.json\n",
+      "Created File:  10143.json\n",
+      "Created File:  5537.json\n",
+      "Created File:  7081.json\n",
+      "Created File:  2537.json\n",
+      "Created File:  1812.json\n",
+      "Created File:  4112.json\n",
+      "Created File:  9945.json\n",
+      "Created File:  9079.json\n",
+      "Created File:  3135.json\n",
+      "Created File:  1895.json\n",
+      "Created File:  567.json\n",
+      "Created File:  8739.json\n",
+      "Created File:  4650.json\n",
+      "Created File:  2467.json\n",
+      "Created File:  5264.json\n",
+      "Created File:  1951.json\n",
+      "Created File:  8546.json\n",
+      "Created File:  6230.json\n",
+      "Created File:  1443.json\n",
+      "Created File:  1559.json\n",
+      "Created File:  4265.json\n",
+      "Created File:  6282.json\n",
+      "Created File:  2353.json\n",
+      "Created File:  4311.json\n",
+      "Created File:  494.json\n",
+      "Created File:  7901.json\n",
+      "Created File:  6225.json\n",
+      "Created File:  4051.json\n",
+      "Created File:  1440.json\n",
+      "Created File:  5566.json\n",
+      "Created File:  3678.json\n",
+      "Created File:  10036.json\n",
+      "Created File:  192.json\n",
+      "Created File:  4448.json\n",
+      "Created File:  7071.json\n",
+      "Created File:  5020.json\n",
+      "Created File:  1306.json\n",
+      "Created File:  1336.json\n",
+      "Created File:  3811.json\n",
+      "Created File:  3017.json\n",
+      "Created File:  1467.json\n",
+      "Created File:  1261.json\n",
+      "Created File:  4612.json\n",
+      "Created File:  25.json\n",
+      "Created File:  9921.json\n",
+      "Created File:  5704.json\n",
+      "Created File:  4664.json\n",
+      "Created File:  9144.json\n",
+      "Created File:  7371.json\n",
+      "Created File:  3166.json\n",
+      "Created File:  7256.json\n",
+      "Created File:  539.json\n",
+      "Created File:  4099.json\n",
+      "Created File:  4450.json\n",
+      "Created File:  5046.json\n",
+      "Created File:  1633.json\n",
+      "Created File:  3880.json\n",
+      "Created File:  3701.json\n",
+      "Created File:  95.json\n",
+      "Created File:  3788.json\n",
+      "Created File:  4532.json\n",
+      "Created File:  4164.json\n",
+      "Created File:  2520.json\n",
+      "Created File:  6928.json\n",
+      "Created File:  6955.json\n",
+      "Created File:  6339.json\n",
+      "Created File:  4962.json\n",
+      "Created File:  5922.json\n",
+      "Created File:  6894.json\n",
+      "Created File:  2303.json\n",
+      "Created File:  6199.json\n",
+      "Created File:  978.json\n",
+      "Created File:  10001.json\n",
+      "Created File:  8648.json\n",
+      "Created File:  5365.json\n",
+      "Created File:  6751.json\n",
+      "Created File:  1513.json\n",
+      "Created File:  6447.json\n",
+      "Created File:  1946.json\n",
+      "Created File:  3562.json\n",
+      "Created File:  5705.json\n",
+      "Created File:  2231.json\n",
+      "Created File:  10010.json\n",
+      "Created File:  1929.json\n",
+      "Created File:  5189.json\n",
+      "Created File:  3625.json\n",
+      "Created File:  4166.json\n",
+      "Created File:  6792.json\n",
+      "Created File:  4357.json\n",
+      "Created File:  4999.json\n",
+      "Created File:  6327.json\n",
+      "Created File:  4355.json\n",
+      "Created File:  2425.json\n",
+      "Created File:  4213.json\n",
+      "Created File:  4087.json\n",
+      "Created File:  1675.json\n",
+      "Created File:  4372.json\n",
+      "Created File:  7786.json\n",
+      "Created File:  6989.json\n",
+      "Created File:  8682.json\n",
+      "Created File:  6556.json\n",
+      "Created File:  6155.json\n",
+      "Created File:  5287.json\n",
+      "Created File:  8939.json\n",
+      "Created File:  1066.json\n",
+      "Created File:  5428.json\n",
+      "Created File:  8374.json\n",
+      "Created File:  676.json\n",
+      "Created File:  8820.json\n",
+      "Created File:  6438.json\n",
+      "Created File:  1498.json\n",
+      "Created File:  5509.json\n",
+      "Created File:  9910.json\n",
+      "Created File:  1088.json\n",
+      "Created File:  2805.json\n",
+      "Created File:  2847.json\n",
+      "Created File:  5482.json\n",
+      "Created File:  2219.json\n",
+      "Created File:  8614.json\n",
+      "Created File:  7506.json\n",
+      "Created File:  5423.json\n",
+      "Created File:  8372.json\n",
+      "Created File:  3989.json\n",
+      "Created File:  1568.json\n",
+      "Created File:  8757.json\n",
+      "Created File:  9789.json\n",
+      "Created File:  343.json\n",
+      "Created File:  4137.json\n",
+      "Created File:  7336.json\n",
+      "Created File:  3826.json\n",
+      "Created File:  5504.json\n",
+      "Created File:  1807.json\n",
+      "Created File:  209.json\n",
+      "Created File:  3835.json\n",
+      "Created File:  1348.json\n",
+      "Created File:  4992.json\n",
+      "Created File:  7354.json\n",
+      "Created File:  2325.json\n",
+      "Created File:  3195.json\n",
+      "Created File:  3111.json\n",
+      "Created File:  5088.json\n",
+      "Created File:  6087.json\n",
+      "Created File:  3157.json\n",
+      "Created File:  3280.json\n",
+      "Created File:  1875.json\n",
+      "Created File:  1170.json\n",
+      "Created File:  9705.json\n",
+      "Created File:  7195.json\n",
+      "Created File:  5207.json\n",
+      "Created File:  4209.json\n",
+      "Created File:  2167.json\n",
+      "Created File:  7133.json\n",
+      "Created File:  8390.json\n",
+      "Created File:  1291.json\n",
+      "Created File:  4236.json\n",
+      "Created File:  1062.json\n",
+      "Created File:  6657.json\n",
+      "Created File:  1337.json\n",
+      "Created File:  10095.json\n",
+      "Created File:  2762.json\n",
+      "Created File:  3182.json\n",
+      "Created File:  4686.json\n",
+      "Created File:  8636.json\n",
+      "Created File:  9245.json\n",
+      "Created File:  7406.json\n",
+      "Created File:  5966.json\n",
+      "Created File:  3760.json\n",
+      "Created File:  8632.json\n",
+      "Created File:  3186.json\n",
+      "Created File:  1135.json\n",
+      "Created File:  4431.json\n",
+      "Created File:  4547.json\n",
+      "Created File:  6066.json\n",
+      "Created File:  6461.json\n",
+      "Created File:  5361.json\n",
+      "Created File:  2279.json\n",
+      "Created File:  6440.json\n",
+      "Created File:  4303.json\n",
+      "Created File:  5433.json\n",
+      "Created File:  2270.json\n",
+      "Created File:  7142.json\n",
+      "Created File:  6886.json\n",
+      "Created File:  9697.json\n",
+      "Created File:  4258.json\n",
+      "Created File:  8406.json\n",
+      "Created File:  8918.json\n",
+      "Created File:  9102.json\n",
+      "Created File:  1565.json\n",
+      "Created File:  5447.json\n",
+      "Created File:  5122.json\n",
+      "Created File:  3980.json\n",
+      "Created File:  2779.json\n",
+      "Created File:  10111.json\n",
+      "Created File:  2610.json\n",
+      "Created File:  1382.json\n",
+      "Created File:  2574.json\n",
+      "Created File:  1993.json\n",
+      "Created File:  6299.json\n",
+      "Created File:  6603.json\n",
+      "Created File:  9135.json\n",
+      "Created File:  4712.json\n",
+      "Created File:  2844.json\n",
+      "Created File:  4245.json\n",
+      "Created File:  8930.json\n",
+      "Created File:  5320.json\n",
+      "Created File:  9886.json\n",
+      "Created File:  2239.json\n",
+      "Created File:  4048.json\n",
+      "Created File:  8842.json\n",
+      "Created File:  5449.json\n",
+      "Created File:  1723.json\n",
+      "Created File:  3500.json\n",
+      "Created File:  4936.json\n",
+      "Created File:  8664.json\n",
+      "Created File:  10132.json\n",
+      "Created File:  2813.json\n",
+      "Created File:  1270.json\n",
+      "Created File:  1472.json\n",
+      "Created File:  5611.json\n",
+      "Created File:  8761.json\n",
+      "Created File:  8833.json\n",
+      "Created File:  8151.json\n",
+      "Created File:  4945.json\n",
+      "Created File:  632.json\n",
+      "Created File:  1862.json\n",
+      "Created File:  7361.json\n",
+      "Created File:  234.json\n",
+      "Created File:  7066.json\n",
+      "Created File:  4219.json\n",
+      "Created File:  417.json\n",
+      "Created File:  719.json\n",
+      "Created File:  1607.json\n",
+      "Created File:  2335.json\n",
+      "Created File:  5902.json\n",
+      "Created File:  10149.json\n",
+      "Created File:  3119.json\n",
+      "Created File:  3477.json\n",
+      "Created File:  1517.json\n",
+      "Created File:  9277.json\n",
+      "Created File:  5840.json\n",
+      "Created File:  2938.json\n",
+      "Created File:  9151.json\n",
+      "Created File:  3010.json\n",
+      "Created File:  9138.json\n",
+      "Created File:  4256.json\n",
+      "Created File:  5911.json\n",
+      "Created File:  2909.json\n",
+      "Created File:  3994.json\n",
+      "Created File:  6344.json\n",
+      "Created File:  4648.json\n",
+      "Created File:  1180.json\n",
+      "Created File:  5410.json\n",
+      "Created File:  1153.json\n",
+      "Created File:  6532.json\n",
+      "Created File:  10047.json\n",
+      "Created File:  5815.json\n",
+      "Created File:  3795.json\n",
+      "Created File:  8392.json\n",
+      "Created File:  2908.json\n",
+      "Created File:  5532.json\n",
+      "Created File:  1293.json\n",
+      "Created File:  8896.json\n",
+      "Created File:  2114.json\n",
+      "Created File:  6439.json\n",
+      "Created File:  8443.json\n",
+      "Created File:  1324.json\n",
+      "Created File:  8984.json\n",
+      "Created File:  2086.json\n",
+      "Created File:  7418.json\n",
+      "Created File:  5444.json\n",
+      "Created File:  5843.json\n",
+      "Created File:  6727.json\n",
+      "Created File:  10144.json\n",
+      "Created File:  4154.json\n",
+      "Created File:  6364.json\n",
+      "Created File:  8748.json\n",
+      "Created File:  6956.json\n",
+      "Created File:  8428.json\n",
+      "Created File:  4566.json\n",
+      "Created File:  6922.json\n",
+      "Created File:  10042.json\n",
+      "Created File:  1301.json\n",
+      "Created File:  5094.json\n",
+      "Created File:  5982.json\n",
+      "Created File:  9718.json\n",
+      "Created File:  2046.json\n",
+      "Created File:  8520.json\n",
+      "Created File:  9297.json\n",
+      "Created File:  4740.json\n",
+      "Created File:  38.json\n",
+      "Created File:  6031.json\n",
+      "Created File:  4836.json\n",
+      "Created File:  3328.json\n",
+      "Created File:  5770.json\n",
+      "Created File:  3317.json\n",
+      "Created File:  5100.json\n",
+      "Created File:  6858.json\n",
+      "Created File:  10108.json\n",
+      "Created File:  7384.json\n",
+      "Created File:  9680.json\n",
+      "Created File:  17.json\n",
+      "Created File:  9917.json\n",
+      "Created File:  5025.json\n",
+      "Created File:  3315.json\n",
+      "Created File:  295.json\n",
+      "Created File:  3901.json\n",
+      "Created File:  1722.json\n",
+      "Created File:  9211.json\n",
+      "Created File:  160.json\n",
+      "Created File:  7114.json\n",
+      "Created File:  8646.json\n",
+      "Created File:  9733.json\n",
+      "Created File:  4934.json\n",
+      "Created File:  5159.json\n",
+      "Created File:  1330.json\n",
+      "Created File:  3478.json\n",
+      "Created File:  7243.json\n",
+      "Created File:  9755.json\n",
+      "Created File:  4251.json\n",
+      "Created File:  650.json\n",
+      "Created File:  2307.json\n",
+      "Created File:  10087.json\n",
+      "Created File:  6256.json\n",
+      "Created File:  2301.json\n",
+      "Created File:  5545.json\n",
+      "Created File:  6658.json\n",
+      "Created File:  5827.json\n",
+      "Created File:  4326.json\n",
+      "Created File:  3886.json\n",
+      "Created File:  7443.json\n",
+      "Created File:  6283.json\n",
+      "Created File:  4478.json\n",
+      "Created File:  9761.json\n",
+      "Created File:  1810.json\n",
+      "Created File:  1362.json\n",
+      "Created File:  2984.json\n",
+      "Created File:  7002.json\n",
+      "Created File:  6119.json\n",
+      "Created File:  5805.json\n",
+      "Created File:  2348.json\n",
+      "Created File:  2419.json\n",
+      "Created File:  303.json\n",
+      "Created File:  6198.json\n",
+      "Created File:  6305.json\n",
+      "Created File:  6421.json\n",
+      "Created File:  7075.json\n",
+      "Created File:  3212.json\n",
+      "Created File:  8974.json\n",
+      "Created File:  2331.json\n",
+      "Created File:  6650.json\n",
+      "Created File:  7866.json\n",
+      "Created File:  1996.json\n",
+      "Created File:  2484.json\n",
+      "Created File:  5656.json\n",
+      "Created File:  5125.json\n",
+      "Created File:  6407.json\n",
+      "Created File:  5941.json\n",
+      "Created File:  8506.json\n",
+      "Created File:  6353.json\n",
+      "Created File:  6042.json\n",
+      "Created File:  6403.json\n",
+      "Created File:  7467.json\n",
+      "Created File:  8515.json\n",
+      "Created File:  5291.json\n",
+      "Created File:  7349.json\n",
+      "Created File:  9026.json\n",
+      "Created File:  1698.json\n",
+      "Created File:  2921.json\n",
+      "Created File:  6337.json\n",
+      "Created File:  4834.json\n",
+      "Created File:  1852.json\n",
+      "Created File:  6548.json\n",
+      "Created File:  2158.json\n",
+      "Created File:  5346.json\n",
+      "Created File:  2955.json\n",
+      "Created File:  2761.json\n",
+      "Created File:  2572.json\n",
+      "Created File:  1817.json\n",
+      "Created File:  6142.json\n",
+      "Created File:  3708.json\n",
+      "Created File:  5135.json\n",
+      "Created File:  873.json\n",
+      "Created File:  4981.json\n",
+      "Created File:  2393.json\n",
+      "Created File:  4414.json\n",
+      "Created File:  3755.json\n",
+      "Created File:  5200.json\n",
+      "Created File:  6846.json\n",
+      "Created File:  6002.json\n",
+      "Created File:  4669.json\n",
+      "Created File:  7422.json\n",
+      "Created File:  8728.json\n",
+      "Created File:  5281.json\n",
+      "Created File:  8570.json\n",
+      "Created File:  5272.json\n",
+      "Created File:  5311.json\n",
+      "Created File:  6292.json\n",
+      "Created File:  9689.json\n",
+      "Created File:  4474.json\n",
+      "Created File:  3330.json\n",
+      "Created File:  6472.json\n",
+      "Created File:  1936.json\n",
+      "Created File:  6394.json\n",
+      "Created File:  6162.json\n",
+      "Created File:  6231.json\n",
+      "Created File:  8957.json\n",
+      "Created File:  7240.json\n",
+      "Created File:  8777.json\n",
+      "Created File:  1490.json\n",
+      "Created File:  3858.json\n",
+      "Created File:  9714.json\n",
+      "Created File:  1715.json\n",
+      "Created File:  3413.json\n",
+      "Created File:  1873.json\n",
+      "Created File:  8940.json\n",
+      "Created File:  7094.json\n",
+      "Created File:  6676.json\n",
+      "Created File:  4139.json\n",
+      "Created File:  6719.json\n",
+      "Created File:  5585.json\n",
+      "Created File:  4692.json\n",
+      "Created File:  6400.json\n",
+      "Created File:  7004.json\n",
+      "Created File:  7127.json\n",
+      "Created File:  2002.json\n",
+      "Created File:  7921.json\n",
+      "Created File:  2242.json\n",
+      "Created File:  4941.json\n",
+      "Created File:  6726.json\n",
+      "Created File:  1481.json\n",
+      "Created File:  1201.json\n",
+      "Created File:  4352.json\n",
+      "Created File:  6973.json\n",
+      "Created File:  2180.json\n",
+      "Created File:  8776.json\n",
+      "Created File:  8468.json\n",
+      "Created File:  2643.json\n",
+      "Created File:  8564.json\n",
+      "Created File:  8549.json\n",
+      "Created File:  9926.json\n",
+      "Created File:  8710.json\n",
+      "Created File:  4373.json\n",
+      "Created File:  8845.json\n",
+      "Created File:  8880.json\n",
+      "Created File:  1008.json\n",
+      "Created File:  4910.json\n",
+      "Created File:  3664.json\n",
+      "Created File:  742.json\n",
+      "Created File:  6524.json\n",
+      "Created File:  2316.json\n",
+      "Created File:  649.json\n",
+      "Created File:  5552.json\n",
+      "Created File:  1351.json\n",
+      "Created File:  9678.json\n",
+      "Created File:  9730.json\n",
+      "Created File:  6824.json\n",
+      "Created File:  10071.json\n",
+      "Created File:  6009.json\n",
+      "Created File:  3984.json\n",
+      "Created File:  3859.json\n",
+      "Created File:  1585.json\n",
+      "Created File:  5369.json\n",
+      "Created File:  7302.json\n",
+      "Created File:  3542.json\n",
+      "Created File:  2017.json\n",
+      "Created File:  1550.json\n",
+      "Created File:  7910.json\n",
+      "Created File:  6079.json\n",
+      "Created File:  5474.json\n",
+      "Created File:  4795.json\n",
+      "Created File:  8932.json\n",
+      "Created File:  5084.json\n",
+      "Created File:  8967.json\n",
+      "Created File:  8430.json\n",
+      "Created File:  8513.json\n",
+      "Created File:  9013.json\n",
+      "Created File:  4620.json\n",
+      "Created File:  2580.json\n",
+      "Created File:  5180.json\n",
+      "Created File:  4598.json\n",
+      "Created File:  1967.json\n",
+      "Created File:  3356.json\n",
+      "Created File:  7716.json\n",
+      "Created File:  7331.json\n",
+      "Created File:  9027.json\n",
+      "Created File:  1844.json\n",
+      "Created File:  9315.json\n",
+      "Created File:  4887.json\n",
+      "Created File:  2398.json\n",
+      "Created File:  5253.json\n",
+      "Created File:  5407.json\n",
+      "Created File:  10130.json\n",
+      "Created File:  10060.json\n",
+      "Created File:  3957.json\n",
+      "Created File:  2067.json\n",
+      "Created File:  8985.json\n",
+      "Created File:  6298.json\n",
+      "Created File:  8551.json\n",
+      "Created File:  5325.json\n",
+      "Created File:  7244.json\n",
+      "Created File:  9830.json\n",
+      "Created File:  4702.json\n",
+      "Created File:  7151.json\n",
+      "Created File:  4931.json\n",
+      "Created File:  1611.json\n",
+      "Created File:  1474.json\n",
+      "Created File:  9712.json\n",
+      "Created File:  7067.json\n",
+      "Created File:  9542.json\n",
+      "Created File:  993.json\n",
+      "Created File:  5519.json\n",
+      "Created File:  1805.json\n",
+      "Created File:  5283.json\n",
+      "Created File:  2534.json\n",
+      "Created File:  273.json\n",
+      "Created File:  2337.json\n",
+      "Created File:  2793.json\n",
+      "Created File:  7826.json\n",
+      "Created File:  4696.json\n",
+      "Created File:  4600.json\n",
+      "Created File:  7396.json\n",
+      "Created File:  1657.json\n",
+      "Created File:  7850.json\n",
+      "Created File:  6164.json\n",
+      "Created File:  5774.json\n",
+      "Created File:  9700.json\n",
+      "Created File:  6814.json\n",
+      "Created File:  9150.json\n",
+      "Created File:  9057.json\n",
+      "Created File:  5029.json\n",
+      "Created File:  5225.json\n",
+      "Created File:  4976.json\n",
+      "Created File:  5303.json\n",
+      "Created File:  6631.json\n",
+      "Created File:  4637.json\n",
+      "Created File:  3052.json\n",
+      "Created File:  1149.json\n",
+      "Created File:  2471.json\n",
+      "Created File:  6214.json\n",
+      "Created File:  7072.json\n",
+      "Created File:  4407.json\n",
+      "Created File:  4670.json\n",
+      "Created File:  1874.json\n",
+      "Created File:  8789.json\n",
+      "Created File:  3214.json\n",
+      "Created File:  3485.json\n",
+      "Created File:  14.json\n",
+      "Created File:  3056.json\n",
+      "Created File:  6151.json\n",
+      "Created File:  3762.json\n",
+      "Created File:  6161.json\n",
+      "Created File:  1103.json\n",
+      "Created File:  7824.json\n",
+      "Created File:  8657.json\n",
+      "Created File:  8618.json\n",
+      "Created File:  5318.json\n",
+      "Created File:  6183.json\n",
+      "Created File:  6368.json\n",
+      "Created File:  4321.json\n",
+      "Created File:  1877.json\n",
+      "Created File:  2253.json\n",
+      "Created File:  4049.json\n",
+      "Created File:  1842.json\n",
+      "Created File:  9924.json\n",
+      "Created File:  987.json\n",
+      "Created File:  1044.json\n",
+      "Created File:  3263.json\n",
+      "Created File:  5338.json\n",
+      "Created File:  6672.json\n",
+      "Created File:  2463.json\n",
+      "Created File:  6370.json\n",
+      "Created File:  5694.json\n",
+      "Created File:  8602.json\n",
+      "Created File:  4811.json\n",
+      "Created File:  8241.json\n",
+      "Created File:  32.json\n",
+      "Created File:  8817.json\n",
+      "Created File:  6147.json\n",
+      "Created File:  1447.json\n",
+      "Created File:  9672.json\n",
+      "Created File:  5301.json\n",
+      "Created File:  1128.json\n",
+      "Created File:  5829.json\n",
+      "Created File:  3117.json\n",
+      "Created File:  1888.json\n",
+      "Created File:  2406.json\n",
+      "Created File:  4388.json\n",
+      "Created File:  3648.json\n",
+      "Created File:  7226.json\n",
+      "Created File:  8796.json\n",
+      "Created File:  2034.json\n",
+      "Created File:  10015.json\n",
+      "Created File:  1642.json\n",
+      "Created File:  4551.json\n",
+      "Created File:  1691.json\n",
+      "Created File:  4741.json\n",
+      "Created File:  8245.json\n",
+      "Created File:  6492.json\n",
+      "Created File:  10089.json\n",
+      "Created File:  3853.json\n",
+      "Created File:  1120.json\n",
+      "Created File:  6187.json\n",
+      "Created File:  4555.json\n",
+      "Created File:  2496.json\n",
+      "Created File:  5625.json\n",
+      "Created File:  5414.json\n",
+      "Created File:  5536.json\n",
+      "Created File:  2110.json\n",
+      "Created File:  7153.json\n",
+      "Created File:  3148.json\n",
+      "Created File:  3067.json\n",
+      "Created File:  5833.json\n",
+      "Created File:  2150.json\n",
+      "Created File:  2981.json\n",
+      "Created File:  5254.json\n",
+      "Created File:  1250.json\n",
+      "Created File:  6077.json\n",
+      "Created File:  5866.json\n",
+      "Created File:  6427.json\n",
+      "Created File:  3745.json\n",
+      "Created File:  6482.json\n",
+      "Created File:  3145.json\n",
+      "Created File:  5222.json\n",
+      "Created File:  985.json\n",
+      "Created File:  6361.json\n",
+      "Created File:  9040.json\n",
+      "Created File:  9017.json\n",
+      "Created File:  4951.json\n",
+      "Created File:  6367.json\n",
+      "Created File:  5464.json\n",
+      "Created File:  8454.json\n",
+      "Created File:  4924.json\n",
+      "Created File:  1025.json\n",
+      "Created File:  6330.json\n",
+      "Created File:  5078.json\n",
+      "Created File:  289.json\n",
+      "Created File:  6665.json\n",
+      "Created File:  3986.json\n",
+      "Created File:  1356.json\n",
+      "Created File:  7883.json\n",
+      "Created File:  3981.json\n",
+      "Created File:  6145.json\n",
+      "Created File:  3719.json\n",
+      "Created File:  3255.json\n",
+      "Created File:  953.json\n",
+      "Created File:  5775.json\n",
+      "Created File:  4879.json\n",
+      "Created File:  6023.json\n",
+      "Created File:  2225.json\n",
+      "Created File:  2019.json\n",
+      "Created File:  3127.json\n",
+      "Created File:  8717.json\n",
+      "Created File:  5353.json\n",
+      "Created File:  2518.json\n",
+      "Created File:  5027.json\n",
+      "Created File:  1947.json\n",
+      "Created File:  1549.json\n",
+      "Created File:  8832.json\n",
+      "Created File:  8909.json\n",
+      "Created File:  4628.json\n",
+      "Created File:  2250.json\n",
+      "Created File:  9797.json\n",
+      "Created File:  3575.json\n",
+      "Created File:  495.json\n",
+      "Created File:  5344.json\n",
+      "Created File:  2245.json\n",
+      "Created File:  6893.json\n",
+      "Created File:  5530.json\n",
+      "Created File:  7743.json\n",
+      "Created File:  8626.json\n",
+      "Created File:  4302.json\n",
+      "Created File:  2202.json\n",
+      "Created File:  5888.json\n",
+      "Created File:  8654.json\n",
+      "Created File:  9183.json\n",
+      "Created File:  5787.json\n",
+      "Created File:  2965.json\n",
+      "Created File:  6324.json\n",
+      "Created File:  5951.json\n",
+      "Created File:  4161.json\n",
+      "Created File:  9601.json\n",
+      "Created File:  5676.json\n",
+      "Created File:  5050.json\n",
+      "Created File:  6585.json\n",
+      "Created File:  8707.json\n",
+      "Created File:  6860.json\n",
+      "Created File:  679.json\n",
+      "Created File:  1288.json\n",
+      "Created File:  9162.json\n",
+      "Created File:  2611.json\n",
+      "Created File:  4636.json\n",
+      "Created File:  3817.json\n",
+      "Created File:  1629.json\n",
+      "Created File:  7369.json\n",
+      "Created File:  2952.json\n",
+      "Created File:  4204.json\n",
+      "Created File:  8749.json\n",
+      "Created File:  5786.json\n",
+      "Created File:  8127.json\n",
+      "Created File:  5169.json\n",
+      "Created File:  2044.json\n",
+      "Created File:  8519.json\n",
+      "Created File:  2546.json\n",
+      "Created File:  4424.json\n",
+      "Created File:  9693.json\n",
+      "Created File:  1392.json\n",
+      "Created File:  8566.json\n",
+      "Created File:  5946.json\n",
+      "Created File:  6397.json\n",
+      "Created File:  7131.json\n",
+      "Created File:  4498.json\n",
+      "Created File:  6745.json\n",
+      "Created File:  6065.json\n",
+      "Created File:  5508.json\n",
+      "Created File:  3475.json\n",
+      "Created File:  5987.json\n",
+      "Created File:  1368.json\n",
+      "Created File:  8708.json\n",
+      "Created File:  9290.json\n",
+      "Created File:  5120.json\n",
+      "Created File:  5274.json\n",
+      "Created File:  8912.json\n",
+      "Created File:  4852.json\n",
+      "Created File:  1757.json\n",
+      "Created File:  7260.json\n",
+      "Created File:  6878.json\n",
+      "Created File:  2173.json\n",
+      "Created File:  4701.json\n",
+      "Created File:  7353.json\n",
+      "Created File:  7378.json\n",
+      "Created File:  5696.json\n",
+      "Created File:  6044.json\n",
+      "Created File:  1641.json\n",
+      "Created File:  3490.json\n",
+      "Created File:  4292.json\n",
+      "Created File:  2235.json\n",
+      "Created File:  1696.json\n",
+      "Created File:  6399.json\n",
+      "Created File:  4257.json\n",
+      "Created File:  5394.json\n",
+      "Created File:  1956.json\n",
+      "Created File:  2461.json\n",
+      "Created File:  5679.json\n",
+      "Created File:  7159.json\n",
+      "Created File:  5765.json\n",
+      "Created File:  1389.json\n",
+      "Created File:  7318.json\n",
+      "Created File:  2246.json\n",
+      "Created File:  1743.json\n",
+      "Created File:  8827.json\n",
+      "Created File:  5663.json\n",
+      "Created File:  1415.json\n",
+      "Created File:  4220.json\n",
+      "Created File:  2097.json\n",
+      "Created File:  8089.json\n",
+      "Created File:  8431.json\n",
+      "Created File:  2141.json\n",
+      "Created File:  7719.json\n",
+      "Created File:  8947.json\n",
+      "Created File:  3336.json\n",
+      "Created File:  3047.json\n",
+      "Created File:  1624.json\n",
+      "Created File:  2066.json\n",
+      "Created File:  499.json\n",
+      "Created File:  1439.json\n",
+      "Created File:  348.json\n",
+      "Created File:  10006.json\n",
+      "Created File:  7513.json\n",
+      "Created File:  1469.json\n",
+      "Created File:  6266.json\n",
+      "Created File:  6851.json\n",
+      "Created File:  6076.json\n",
+      "Created File:  5263.json\n",
+      "Created File:  3421.json\n",
+      "Created File:  4872.json\n",
+      "Created File:  1770.json\n",
+      "Created File:  5479.json\n",
+      "Created File:  6418.json\n",
+      "Created File:  1213.json\n",
+      "Created File:  553.json\n",
+      "Created File:  9737.json\n",
+      "Created File:  9114.json\n",
+      "Created File:  6074.json\n",
+      "Created File:  8812.json\n",
+      "Created File:  3705.json\n",
+      "Created File:  1493.json\n",
+      "Created File:  8415.json\n",
+      "Created File:  6184.json\n",
+      "Created File:  1673.json\n",
+      "Created File:  4514.json\n",
+      "Created File:  6235.json\n",
+      "Created File:  8701.json\n",
+      "Created File:  4418.json\n",
+      "Created File:  3357.json\n",
+      "Created File:  8905.json\n",
+      "Created File:  5228.json\n",
+      "Created File:  7427.json\n",
+      "Created File:  7386.json\n",
+      "Created File:  5876.json\n",
+      "Created File:  7003.json\n",
+      "Created File:  9149.json\n",
+      "Created File:  9240.json\n",
+      "Created File:  2772.json\n",
+      "Created File:  2879.json\n",
+      "Created File:  2522.json\n",
+      "Created File:  5235.json\n",
+      "Created File:  4583.json\n",
+      "Created File:  4338.json\n",
+      "Created File:  1997.json\n",
+      "Created File:  7360.json\n",
+      "Created File:  800.json\n",
+      "Created File:  5234.json\n",
+      "Created File:  8854.json\n",
+      "Created File:  6682.json\n",
+      "Created File:  6563.json\n",
+      "Created File:  9084.json\n",
+      "Created File:  15.json\n",
+      "Created File:  4950.json\n",
+      "Created File:  5276.json\n",
+      "Created File:  3238.json\n",
+      "Created File:  6430.json\n",
+      "Created File:  3556.json\n",
+      "Created File:  2808.json\n",
+      "Created File:  3211.json\n",
+      "Created File:  1423.json\n",
+      "Created File:  4035.json\n",
+      "Created File:  7397.json\n",
+      "Created File:  2860.json\n",
+      "Created File:  5760.json\n",
+      "Created File:  5181.json\n",
+      "Created File:  7756.json\n",
+      "Created File:  3316.json\n",
+      "Created File:  8926.json\n",
+      "Created File:  1223.json\n",
+      "Created File:  8112.json\n",
+      "Created File:  6736.json\n",
+      "Created File:  8964.json\n",
+      "Created File:  3364.json\n",
+      "Created File:  8898.json\n",
+      "Created File:  1839.json\n",
+      "Created File:  3993.json\n",
+      "Created File:  1960.json\n",
+      "Created File:  8625.json\n",
+      "Created File:  3130.json\n",
+      "Created File:  4913.json\n",
+      "Created File:  1672.json\n",
+      "Created File:  7200.json\n",
+      "Created File:  7438.json\n",
+      "Created File:  284.json\n",
+      "Created File:  4437.json\n",
+      "Created File:  4439.json\n",
+      "Created File:  8956.json\n",
+      "Created File:  3911.json\n",
+      "Created File:  8611.json\n",
+      "Created File:  8793.json\n",
+      "Created File:  1446.json\n",
+      "Created File:  10135.json\n",
+      "Created File:  4268.json\n",
+      "Created File:  10023.json\n",
+      "Created File:  8676.json\n",
+      "Created File:  7154.json\n",
+      "Created File:  7338.json\n",
+      "Created File:  971.json\n",
+      "Created File:  3205.json\n",
+      "Created File:  9840.json\n",
+      "Created File:  5635.json\n",
+      "Created File:  3028.json\n",
+      "Created File:  8189.json\n",
+      "Created File:  1566.json\n",
+      "Created File:  9165.json\n",
+      "Created File:  9728.json\n",
+      "Created File:  3033.json\n",
+      "Created File:  1136.json\n",
+      "Created File:  1411.json\n",
+      "Created File:  8914.json\n",
+      "Created File:  6695.json\n",
+      "Created File:  2887.json\n",
+      "Created File:  7924.json\n",
+      "Created File:  2416.json\n",
+      "Created File:  3431.json\n",
+      "Created File:  1708.json\n",
+      "Created File:  5071.json\n",
+      "Created File:  3569.json\n",
+      "Created File:  5142.json\n",
+      "Created File:  2190.json\n",
+      "Created File:  8891.json\n",
+      "Created File:  1198.json\n",
+      "Created File:  6543.json\n",
+      "Created File:  3587.json\n",
+      "Created File:  5260.json\n",
+      "Created File:  3491.json\n",
+      "Created File:  4483.json\n",
+      "Created File:  3081.json\n",
+      "Created File:  8867.json\n",
+      "Created File:  6363.json\n",
+      "Created File:  65.json\n",
+      "Created File:  2119.json\n",
+      "Created File:  4899.json\n",
+      "Created File:  1275.json\n",
+      "Created File:  4293.json\n",
+      "Created File:  2130.json\n",
+      "Created File:  1305.json\n",
+      "Created File:  3376.json\n",
+      "Created File:  4433.json\n",
+      "Created File:  5921.json\n",
+      "Created File:  6992.json\n",
+      "Created File:  3480.json\n",
+      "Created File:  5170.json\n",
+      "Created File:  10117.json\n",
+      "Created File:  3959.json\n",
+      "Created File:  8660.json\n",
+      "Created File:  1326.json\n",
+      "Created File:  2823.json\n",
+      "Created File:  924.json\n",
+      "Created File:  6263.json\n",
+      "Created File:  3643.json\n",
+      "Created File:  6143.json\n",
+      "Created File:  8395.json\n",
+      "Created File:  8705.json\n",
+      "Created File:  8879.json\n",
+      "Created File:  7013.json\n",
+      "Created File:  1649.json\n",
+      "Created File:  2843.json\n",
+      "Created File:  6681.json\n",
+      "Created File:  4672.json\n",
+      "Created File:  5328.json\n",
+      "Created File:  3522.json\n",
+      "Created File:  8858.json\n",
+      "Created File:  4973.json\n",
+      "Created File:  6204.json\n",
+      "Created File:  5544.json\n",
+      "Created File:  1383.json\n",
+      "Created File:  9178.json\n",
+      "Created File:  3022.json\n",
+      "Created File:  4210.json\n",
+      "Created File:  5703.json\n",
+      "Created File:  4393.json\n",
+      "Created File:  5879.json\n",
+      "Created File:  4163.json\n",
+      "Created File:  3440.json\n",
+      "Created File:  5938.json\n",
+      "Created File:  4687.json\n",
+      "Created File:  1938.json\n",
+      "Created File:  4876.json\n",
+      "Created File:  9001.json\n",
+      "Created File:  9915.json\n",
+      "Created File:  6558.json\n",
+      "Created File:  2603.json\n",
+      "Created File:  3175.json\n",
+      "Created File:  10029.json\n",
+      "Created File:  7320.json\n",
+      "Created File:  3324.json\n",
+      "Created File:  10044.json\n",
+      "Created File:  5195.json\n",
+      "Created File:  1322.json\n",
+      "Created File:  2846.json\n",
+      "Created File:  10090.json\n",
+      "Created File:  7395.json\n",
+      "Created File:  3279.json\n",
+      "Created File:  4460.json\n",
+      "Created File:  4972.json\n",
+      "Created File:  5932.json\n",
+      "Created File:  3730.json\n",
+      "Created File:  7499.json\n",
+      "Created File:  1137.json\n",
+      "Created File:  6449.json\n",
+      "Created File:  2810.json\n",
+      "Created File:  7201.json\n",
+      "Created File:  600.json\n",
+      "Created File:  2483.json\n",
+      "Created File:  2930.json\n",
+      "Created File:  6354.json\n",
+      "Created File:  2011.json\n",
+      "Created File:  5706.json\n",
+      "Created File:  8783.json\n",
+      "Created File:  3389.json\n",
+      "Created File:  4304.json\n",
+      "Created File:  6108.json\n",
+      "Created File:  10082.json\n",
+      "Created File:  10176.json\n",
+      "Created File:  5446.json\n",
+      "Created File:  4710.json\n",
+      "Created File:  363.json\n",
+      "Created File:  9902.json\n",
+      "Created File:  2892.json\n",
+      "Created File:  7350.json\n",
+      "Created File:  6987.json\n",
+      "Created File:  59.json\n",
+      "Created File:  5256.json\n",
+      "Created File:  1023.json\n",
+      "Created File:  5334.json\n",
+      "Created File:  5218.json\n",
+      "Created File:  2031.json\n",
+      "Created File:  7632.json\n",
+      "Created File:  8621.json\n",
+      "Created File:  313.json\n",
+      "Created File:  4441.json\n",
+      "Created File:  9967.json\n",
+      "Created File:  8247.json\n",
+      "Created File:  7073.json\n",
+      "Created File:  9177.json\n",
+      "Created File:  5903.json\n",
+      "Created File:  487.json\n",
+      "Created File:  2015.json\n",
+      "Created File:  1542.json\n",
+      "Created File:  5072.json\n",
+      "Created File:  9106.json\n",
+      "Created File:  4889.json\n",
+      "Created File:  1231.json\n",
+      "Created File:  2259.json\n",
+      "Created File:  6575.json\n",
+      "Created File:  5127.json\n",
+      "Created File:  4102.json\n",
+      "Created File:  1339.json\n",
+      "Created File:  10059.json\n",
+      "Created File:  4511.json\n",
+      "Created File:  6386.json\n",
+      "Created File:  4842.json\n",
+      "Created File:  4247.json\n",
+      "Created File:  5520.json\n",
+      "Created File:  5047.json\n",
+      "Created File:  5415.json\n",
+      "Created File:  9720.json\n",
+      "Created File:  8770.json\n",
+      "Created File:  4181.json\n",
+      "Created File:  8946.json\n",
+      "Created File:  2945.json\n",
+      "Created File:  9787.json\n",
+      "Created File:  9156.json\n",
+      "Created File:  1871.json\n",
+      "Created File:  7426.json\n",
+      "Created File:  3227.json\n"
+     ]
+    }
+   ],
+   "source": [
+    "from decentralizepy.datasets.Celeba import Celeba\n",
+    "\n",
+    "f = Celeba(0,0,None)\n",
+    "\n",
+    "f.file_per_user('/home/risharma/leaf/data/celeba/data/train','/home/risharma/leaf/data/celeba/per_user_data/train')\n"
+   ]
+  },
   {
    "cell_type": "code",
    "execution_count": null,
@@ -1344,7 +3724,7 @@
    "name": "python",
    "nbconvert_exporter": "python",
    "pygments_lexer": "ipython3",
-   "version": "3.9.7"
+   "version": "3.9.9"
   },
   "orig_nbformat": 4
  },
diff --git a/setup.cfg b/setup.cfg
index 3faa1f3..fa12457 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -40,6 +40,7 @@ install_requires =
         zmq
         jsonlines
         pillow
+        pickle
         smallworld
         localconfig
 include_package_data = True
diff --git a/src/decentralizepy/communication/Communication.py b/src/decentralizepy/communication/Communication.py
index 4991d73..a854898 100644
--- a/src/decentralizepy/communication/Communication.py
+++ b/src/decentralizepy/communication/Communication.py
@@ -9,6 +9,7 @@ class Communication:
         self.machine_id = machine_id
         self.mapping = mapping
         self.uid = mapping.get_uid(rank, machine_id)
+        self.total_bytes = 0
 
     def encrypt(self, data):
         raise NotImplementedError
diff --git a/src/decentralizepy/communication/TCP.py b/src/decentralizepy/communication/TCP.py
index ee24ae8..ade6104 100644
--- a/src/decentralizepy/communication/TCP.py
+++ b/src/decentralizepy/communication/TCP.py
@@ -108,9 +108,12 @@ class TCP(Communication):
 
     def send(self, uid, data):
         to_send = self.encrypt(data)
+        data_size = len(to_send)
+        self.total_bytes += data_size
         id = str(uid).encode()
         self.peer_sockets[id].send(to_send)
         logging.debug("{} sent the message to {}.".format(self.uid, uid))
+        logging.info("Sent this round: {}".format(data_size))
 
     def disconnect_neighbors(self):
         if not self.sent_disconnections:
diff --git a/src/decentralizepy/datasets/Celeba.py b/src/decentralizepy/datasets/Celeba.py
new file mode 100644
index 0000000..687d58f
--- /dev/null
+++ b/src/decentralizepy/datasets/Celeba.py
@@ -0,0 +1,337 @@
+import json
+import logging
+import os
+from collections import defaultdict
+
+import matplotlib.pyplot as plt
+import numpy as np
+import torch
+import torch.nn.functional as F
+from PIL import Image
+from torch import nn
+from torch.utils.data import DataLoader
+
+import decentralizepy.utils as utils
+from decentralizepy.datasets.Data import Data
+from decentralizepy.datasets.Dataset import Dataset
+from decentralizepy.datasets.Partitioner import DataPartitioner
+from decentralizepy.models.Model import Model
+
+IMAGE_DIM = 84
+CHANNELS = 3
+NUM_CLASSES = 2
+
+
+class Celeba(Dataset):
+    """
+    Class for the Celeba dataset
+    """
+
+    def __read_file__(self, file_path):
+        with open(file_path, "r") as inf:
+            client_data = json.load(inf)
+        return (
+            client_data["users"],
+            client_data["num_samples"],
+            client_data["user_data"],
+        )
+
+    def __read_dir__(self, data_dir):
+        """
+        Function to read all the FEMNIST data files in the directory
+        Parameters
+        ----------
+        data_dir : str
+            Path to the folder containing the data files
+        Returns
+        -------
+        3-tuple
+            A tuple containing list of clients, number of samples per client,
+            and the data items per client
+        """
+        clients = []
+        num_samples = []
+        data = defaultdict(lambda: None)
+
+        files = os.listdir(data_dir)
+        files = [f for f in files if f.endswith(".json")]
+        for f in files:
+            file_path = os.path.join(data_dir, f)
+            u, n, d = self.__read_file__(file_path)
+            clients.extend(u)
+            num_samples.extend(n)
+            data.update(d)
+        return clients, num_samples, data
+
+    def file_per_user(self, dir, write_dir):
+        clients, num_samples, train_data = self.__read_dir__(dir)
+        for index, client in enumerate(clients):
+            my_data = dict()
+            my_data["users"] = [client]
+            my_data["num_samples"] = num_samples[index]
+            my_samples = {"x": train_data[client]["x"], "y": train_data[client]["y"]}
+            my_data["user_data"] = {client: my_samples}
+            with open(os.path.join(write_dir, client + ".json"), "w") as of:
+                json.dump(my_data, of)
+                print("Created File: ", client + ".json")
+
+    def load_trainset(self):
+        logging.info("Loading training set.")
+        files = os.listdir(self.train_dir)
+        files = [f for f in files if f.endswith(".json")]
+        files.sort()
+        c_len = len(files)
+
+        # clients, num_samples, train_data = self.__read_dir__(self.train_dir)
+
+        if self.sizes == None:  # Equal distribution of data among processes
+            e = c_len // self.n_procs
+            frac = e / c_len
+            self.sizes = [frac] * self.n_procs
+            self.sizes[-1] += 1.0 - frac * self.n_procs
+            logging.debug("Size fractions: {}".format(self.sizes))
+
+        self.uid = self.mapping.get_uid(self.rank, self.machine_id)
+        my_clients = DataPartitioner(files, self.sizes).use(self.uid)
+        my_train_data = {"x": [], "y": []}
+        self.clients = []
+        self.num_samples = []
+        logging.debug("Clients Length: %d", c_len)
+        logging.debug("My_clients_len: %d", my_clients.__len__())
+        for i in range(my_clients.__len__()):
+            cur_file = my_clients.__getitem__(i)
+
+            clients, _, train_data = self.__read_file__(
+                os.path.join(self.train_dir, cur_file)
+            )
+            for cur_client in clients:
+                self.clients.append(cur_client)
+                my_train_data["x"].extend(self.process_x(train_data[cur_client]["x"]))
+                my_train_data["y"].extend(train_data[cur_client]["y"])
+                self.num_samples.append(len(train_data[cur_client]["y"]))
+        self.train_x = (
+            np.array(my_train_data["x"], dtype=np.dtype("float32"))
+            .reshape(-1, IMAGE_DIM, IMAGE_DIM, CHANNELS)
+            .transpose(0, 3, 1, 2)  # Channel first: torch
+        )
+        self.train_y = np.array(my_train_data["y"], dtype=np.dtype("int64")).reshape(-1)
+        logging.debug("train_x.shape: %s", str(self.train_x.shape))
+        logging.debug("train_y.shape: %s", str(self.train_y.shape))
+        assert self.train_x.shape[0] == self.train_y.shape[0]
+        assert self.train_x.shape[0] > 0
+
+    def load_testset(self):
+        logging.info("Loading testing set.")
+        _, _, d = self.__read_dir__(self.test_dir)
+        test_x = []
+        test_y = []
+        for test_data in d.values():
+            test_x.extend(self.process_x(test_data["x"]))
+            test_y.extend(test_data["y"])
+        self.test_x = (
+            np.array(test_x, dtype=np.dtype("float32"))
+            .reshape(-1, IMAGE_DIM, IMAGE_DIM, CHANNELS)
+            .transpose(0, 3, 1, 2)
+        )
+        self.test_y = np.array(test_y, dtype=np.dtype("int64")).reshape(-1)
+        logging.debug("test_x.shape: %s", str(self.test_x.shape))
+        logging.debug("test_y.shape: %s", str(self.test_y.shape))
+        assert self.test_x.shape[0] == self.test_y.shape[0]
+        assert self.test_x.shape[0] > 0
+
+    def __init__(
+        self,
+        rank,
+        machine_id,
+        mapping,
+        n_procs="",
+        train_dir="",
+        test_dir="",
+        images_dir="",
+        sizes="",
+        test_batch_size=128,
+    ):
+        """
+        Constructor which reads the data files, instantiates and partitions the dataset
+        Parameters
+        ----------
+        rank : int
+            Rank of the current process (to get the partition). Default value is assigned 0
+        n_procs : int, optional
+            The number of processes among which to divide the data. Default value is assigned 1
+        train_dir : str, optional
+            Path to the training data files. Required to instantiate the training set
+            The training set is partitioned according to n_procs and sizes
+        test_dir : str. optional
+            Path to the testing data files Required to instantiate the testing set
+        sizes : list(int), optional
+            A list of fractions specifying how much data to alot each process. Sum of fractions should be 1.0
+            By default, each process gets an equal amount.
+        """
+        super().__init__(
+            rank,
+            machine_id,
+            mapping,
+            n_procs,
+            train_dir,
+            test_dir,
+            sizes,
+            test_batch_size,
+        )
+        self.IMAGES_DIR = utils.conditional_value(images_dir, "", None)
+        assert self.IMAGES_DIR != None
+
+        if self.__training__:
+            self.load_trainset()
+
+        if self.__testing__:
+            self.load_testset()
+
+        # TODO: Add Validation
+
+    def process_x(self, raw_x_batch):
+        x_batch = [self._load_image(i) for i in raw_x_batch]
+        x_batch = np.array(x_batch)
+        return x_batch
+
+    def _load_image(self, img_name):
+        img = Image.open(os.path.join(self.IMAGES_DIR, img_name[:-4] + ".png"))
+        img = img.resize((IMAGE_DIM, IMAGE_DIM)).convert("RGB")
+        return np.array(img)
+
+    def get_client_ids(self):
+        """
+        Function to retrieve all the clients of the current process
+        Returns
+        -------
+        list(str)
+            A list of strings of the client ids.
+        """
+        return self.clients
+
+    def get_client_id(self, i):
+        """
+        Function to get the client id of the ith sample
+        Parameters
+        ----------
+        i : int
+            Index of the sample
+        Returns
+        -------
+        str
+            Client ID
+        Raises
+        ------
+        IndexError
+            If the sample index is out of bounds
+        """
+        lb = 0
+        for j in range(len(self.clients)):
+            if i < lb + self.num_samples[j]:
+                return self.clients[j]
+
+        raise IndexError("i is out of bounds!")
+
+    def get_trainset(self, batch_size=1, shuffle=False):
+        """
+        Function to get the training set
+        Parameters
+        ----------
+        batch_size : int, optional
+            Batch size for learning
+        Returns
+        -------
+        torch.utils.Dataset(decentralizepy.datasets.Data)
+        Raises
+        ------
+        RuntimeError
+            If the training set was not initialized
+        """
+        if self.__training__:
+            return DataLoader(
+                Data(self.train_x, self.train_y), batch_size=batch_size, shuffle=shuffle
+            )
+        raise RuntimeError("Training set not initialized!")
+
+    def get_testset(self):
+        """
+        Function to get the test set
+        Returns
+        -------
+        torch.utils.Dataset(decentralizepy.datasets.Data)
+        Raises
+        ------
+        RuntimeError
+            If the test set was not initialized
+        """
+        if self.__testing__:
+            return DataLoader(
+                Data(self.test_x, self.test_y), batch_size=self.test_batch_size
+            )
+        raise RuntimeError("Test set not initialized!")
+
+    def imshow(self, img):
+        npimg = img.numpy()
+        plt.imshow(np.transpose(npimg, (1, 2, 0)))
+        plt.show()
+
+    def test(self, model, loss):
+        testloader = self.get_testset()
+
+        logging.debug("Test Loader instantiated.")
+
+        correct_pred = [0 for _ in range(NUM_CLASSES)]
+        total_pred = [0 for _ in range(NUM_CLASSES)]
+
+        total_correct = 0
+        total_predicted = 0
+
+        with torch.no_grad():
+            loss_val = 0.0
+            count = 0
+            for elems, labels in testloader:
+                outputs = model(elems)
+                loss_val += loss(outputs, labels).item()
+                count += 1
+                _, predictions = torch.max(outputs, 1)
+                for label, prediction in zip(labels, predictions):
+                    logging.debug("{} predicted as {}".format(label, prediction))
+                    if label == prediction:
+                        correct_pred[label] += 1
+                        total_correct += 1
+                    total_pred[label] += 1
+                    total_predicted += 1
+
+        logging.debug("Predicted on the test set")
+
+        for key, value in enumerate(correct_pred):
+            if total_pred[key] != 0:
+                accuracy = 100 * float(value) / total_pred[key]
+            else:
+                accuracy = 100.0
+            logging.debug("Accuracy for class {} is: {:.1f} %".format(key, accuracy))
+
+        accuracy = 100 * float(total_correct) / total_predicted
+        loss_val = loss_val / count
+        logging.info("Overall accuracy is: {:.1f} %".format(accuracy))
+        return accuracy, loss_val
+
+
+class CNN(Model):
+    def __init__(self):
+        super().__init__()
+        self.conv1 = nn.Conv2d(CHANNELS, 32, 3, padding="same")
+        self.pool = nn.MaxPool2d(2, 2)
+        self.conv2 = nn.Conv2d(32, 32, 3, padding="same")
+        self.conv3 = nn.Conv2d(32, 32, 3, padding="same")
+        self.conv4 = nn.Conv2d(32, 32, 3, padding="same")
+        self.fc1 = nn.Linear(5 * 5 * 32, NUM_CLASSES)
+
+    def forward(self, x):
+        x = F.relu(self.pool(self.conv1(x)))
+        x = F.relu(self.pool(self.conv2(x)))
+        x = F.relu(self.pool(self.conv3(x)))
+        x = F.relu(self.pool(self.conv4(x)))
+        x = torch.flatten(x, 1)
+        x = self.fc1(x)
+        return x
diff --git a/src/decentralizepy/datasets/Dataset.py b/src/decentralizepy/datasets/Dataset.py
index 7a8e4a3..033165c 100644
--- a/src/decentralizepy/datasets/Dataset.py
+++ b/src/decentralizepy/datasets/Dataset.py
@@ -9,7 +9,9 @@ class Dataset:
 
     def __init__(
         self,
-        rank="",
+        rank,
+        machine_id,
+        mapping,
         n_procs="",
         train_dir="",
         test_dir="",
@@ -33,7 +35,9 @@ class Dataset:
             A list of fractions specifying how much data to alot each process. Sum of fractions should be 1.0
             By default, each process gets an equal amount.
         """
-        self.rank = utils.conditional_value(rank, "", 0)
+        self.rank = rank
+        self.machine_id = machine_id
+        self.mapping = mapping
         self.n_procs = utils.conditional_value(n_procs, "", 1)
         self.train_dir = utils.conditional_value(train_dir, "", None)
         self.test_dir = utils.conditional_value(test_dir, "", None)
diff --git a/src/decentralizepy/datasets/Femnist.py b/src/decentralizepy/datasets/Femnist.py
index ad60c30..3bdf6cd 100644
--- a/src/decentralizepy/datasets/Femnist.py
+++ b/src/decentralizepy/datasets/Femnist.py
@@ -120,10 +120,10 @@ class Femnist(Dataset):
 
     def load_testset(self):
         logging.info("Loading testing set.")
-        _, _, test_data = self.__read_dir__(self.test_dir)
+        _, _, d = self.__read_dir__(self.test_dir)
         test_x = []
         test_y = []
-        for test_data in test_data.values():
+        for test_data in d.values():
             for x in test_data["x"]:
                 test_x.append(x)
             for y in test_data["y"]:
@@ -141,7 +141,9 @@ class Femnist(Dataset):
 
     def __init__(
         self,
-        rank=0,
+        rank,
+        machine_id,
+        mapping,
         n_procs="",
         train_dir="",
         test_dir="",
@@ -152,7 +154,7 @@ class Femnist(Dataset):
         Constructor which reads the data files, instantiates and partitions the dataset
         Parameters
         ----------
-        rank : int, optional
+        rank : int
             Rank of the current process (to get the partition). Default value is assigned 0
         n_procs : int, optional
             The number of processes among which to divide the data. Default value is assigned 1
@@ -165,7 +167,16 @@ class Femnist(Dataset):
             A list of fractions specifying how much data to alot each process. Sum of fractions should be 1.0
             By default, each process gets an equal amount.
         """
-        super().__init__(rank, n_procs, train_dir, test_dir, sizes, test_batch_size)
+        super().__init__(
+            rank,
+            machine_id,
+            mapping,
+            n_procs,
+            train_dir,
+            test_dir,
+            sizes,
+            test_batch_size,
+        )
 
         if self.__training__:
             self.load_trainset()
diff --git a/src/decentralizepy/node/Node.py b/src/decentralizepy/node/Node.py
index d6897b4..40fe8b5 100644
--- a/src/decentralizepy/node/Node.py
+++ b/src/decentralizepy/node/Node.py
@@ -100,7 +100,9 @@ class Node:
         dataset_params = utils.remove_keys(
             dataset_configs, ["dataset_package", "dataset_class", "model_class"]
         )
-        self.dataset = dataset_class(rank, **dataset_params)
+        self.dataset = dataset_class(
+            self.rank, self.machine_id, self.mapping, **dataset_params
+        )
 
         logging.info("Dataset instantiation complete.")
 
@@ -193,9 +195,15 @@ class Node:
                 ) as inf:
                     results_dict = json.load(inf)
             else:
-                results_dict = {"train_loss": {}, "test_loss": {}, "test_acc": {}}
+                results_dict = {
+                    "train_loss": {},
+                    "test_loss": {},
+                    "test_acc": {},
+                    "total_bytes": {},
+                }
 
             results_dict["train_loss"][iteration + 1] = loss_after_sharing
+            results_dict["total_bytes"][iteration + 1] = self.communication.total_bytes
 
             self.save_plot(
                 results_dict["train_loss"],
-- 
GitLab