From bac404894eee0771162ea649884a468bb7530805 Mon Sep 17 00:00:00 2001 From: plwapet <lavoisierwapet@gmail.com> Date: Thu, 6 Oct 2022 17:39:00 +0200 Subject: [PATCH] finished with strange cases analysis with big and medium cores at meddle frequency, reviewing lesson learned based on f simulation not the derivative --- ...Oct22_10_00_37_big_medium_at_mid_level.csv | 61 + ...e_cases_with_big_cores_off___maybe_bad.csv | 0 .../experiment_log_file.txt | 36825 +++++++++++++++- .../summary___05Oct22_10_00_37.csv | 61 + ....~lock.global_lesson_learned_as_table.ods# | 1 + .../.~lock.local_lesson_learned_as_table.ods# | 1 + .../utils_functions.cpython-38.pyc | Bin 62067 -> 62890 bytes .../best_R2_exploration_summary.csv | 8 + .../global_lesson_learned_as_table.ods | Bin 31399 -> 31977 bytes .../googles_pixel_heuristics_after.graphml | 45 +- .../googles_pixel_heuristics_before.graphml | 47 +- kernel_ridge_linear_model/kernel_ridge.py | 58 +- ...ridge_prediction_on_google_pixel_4a_5g.png | Bin 66514 -> 75479 bytes .../local_lesson_learned_as_table.ods | Bin 28304 -> 28691 bytes ...log_file_for_strange_cases_exploration.txt | 19405 +------- ...X_1__X_2__X_3__X_4__X_5__X_6__X_7__X_8.png | Bin 0 -> 454464 bytes ...X_1__X_2__X_3__X_4__X_5__X_6__X_7__X_8.png | Bin 0 -> 449140 bytes ...ies_X_y_after_removing_aberrant_points.csv | 117 +- ...summaries_X_y_after_removing_duplicate.csv | 26 +- ...es_X_y_before_removing_aberrant_points.csv | 120 +- ...ummaries_X_y_before_removing_duplicate.csv | 116 +- kernel_ridge_linear_model/utils_functions.py | 90 +- 22 files changed, 38874 insertions(+), 18107 deletions(-) create mode 100755 experiment_automatization/can_be_reused/looking_at_strange_cases/summary___05Oct22_10_00_37_big_medium_at_mid_level.csv rename experiment_automatization/can_be_reused/{looking_at_strange_cases => looking_at_strange_cases_old}/summary_strange_cases_with_big_cores_off___maybe_bad.csv (100%) create mode 100755 experiment_automatization/summary_files_only/summary___05Oct22_10_00_37.csv create mode 100755 kernel_ridge_linear_model/.~lock.global_lesson_learned_as_table.ods# create mode 100755 kernel_ridge_linear_model/.~lock.local_lesson_learned_as_table.ods# create mode 100755 kernel_ridge_linear_model/marginal_effect_exploration_automatic_experiments_0.89_base_Y/visual_help_f_X_0_over_X_0__X_1__X_2__X_3__X_4__X_5__X_6__X_7__X_8.png create mode 100755 kernel_ridge_linear_model/marginal_effect_exploration_automatic_experiments_0.89_base_Y/visual_help_f_X_1_over_X_0__X_1__X_2__X_3__X_4__X_5__X_6__X_7__X_8.png diff --git a/experiment_automatization/can_be_reused/looking_at_strange_cases/summary___05Oct22_10_00_37_big_medium_at_mid_level.csv b/experiment_automatization/can_be_reused/looking_at_strange_cases/summary___05Oct22_10_00_37_big_medium_at_mid_level.csv new file mode 100755 index 0000000..6c49509 --- /dev/null +++ b/experiment_automatization/can_be_reused/looking_at_strange_cases/summary___05Oct22_10_00_37_big_medium_at_mid_level.csv @@ -0,0 +1,61 @@ +configurations,generic format,exact frequency,google pixel format,exact frequencies,phone energy,phone power,workload,energy by workload,starting cc_info,ending cc_info +100001-2-2,[1- 0- 0- 0- 0- 1- 2- 0- 0- 2- 0- 0- 0],[576000- 0- 0- 0- 0- 576000- 1478400- 0- 0- 1766400- 0- 0- 0],[1- 0- 0- 0- 0- 1- 2- 2],[576000- 0- 0- 0- 0- 576000- 1478400- 1766400],69.52409009723863,2010.5306198084834,1.16486e+12,5.96845e-11,0,0 +100001-2-2,[1- 0- 0- 0- 0- 1- 2- 0- 0- 2- 0- 0- 0],[576000- 0- 0- 0- 0- 576000- 1478400- 0- 0- 1766400- 0- 0- 0],[1- 0- 0- 0- 0- 1- 2- 2],[576000- 0- 0- 0- 0- 576000- 1478400- 1766400],71.0813570024315,2044.1753729837076,1.16597e+12,6.09633e-11,0,0 +100001-2-2,[1- 0- 0- 0- 0- 1- 2- 0- 0- 2- 0- 0- 0],[576000- 0- 0- 0- 0- 576000- 1478400- 0- 0- 1766400- 0- 0- 0],[1- 0- 0- 0- 0- 1- 2- 2],[576000- 0- 0- 0- 0- 576000- 1478400- 1766400],70.47748663452633,2047.1024914329862,1.1634e+12,6.05789e-11,0,0 +100010-2-2,[1- 0- 0- 0- 1- 0- 2- 0- 0- 2- 0- 0- 0],[576000- 0- 0- 0- 576000- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[1- 0- 0- 0- 1- 0- 2- 2],[576000- 0- 0- 0- 576000- 0- 1478400- 1766400],70.09045877144594,2025.8535423935475,1.16616e+12,6.01036e-11,0,0 +100010-2-2,[1- 0- 0- 0- 1- 0- 2- 0- 0- 2- 0- 0- 0],[576000- 0- 0- 0- 576000- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[1- 0- 0- 0- 1- 0- 2- 2],[576000- 0- 0- 0- 576000- 0- 1478400- 1766400],70.58915136388794,2044.639552517949,1.16179e+12,6.0759e-11,0,0 +100010-2-2,[1- 0- 0- 0- 1- 0- 2- 0- 0- 2- 0- 0- 0],[576000- 0- 0- 0- 576000- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[1- 0- 0- 0- 1- 0- 2- 2],[576000- 0- 0- 0- 576000- 0- 1478400- 1766400],71.30789275413113,2066.2232265127523,1.16209e+12,6.13618e-11,0,0 +100100-2-2,[1- 0- 0- 1- 0- 0- 2- 0- 0- 2- 0- 0- 0],[576000- 0- 0- 576000- 0- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[1- 0- 0- 1- 0- 0- 2- 2],[576000- 0- 0- 576000- 0- 0- 1478400- 1766400],70.742778041012,2045.810308683365,1.16092e+12,6.09368e-11,0,0 +100100-2-2,[1- 0- 0- 1- 0- 0- 2- 0- 0- 2- 0- 0- 0],[576000- 0- 0- 576000- 0- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[1- 0- 0- 1- 0- 0- 2- 2],[576000- 0- 0- 576000- 0- 0- 1478400- 1766400],70.57358750924872,2039.2028466702188,1.16676e+12,6.04868e-11,0,0 +100100-2-2,[1- 0- 0- 1- 0- 0- 2- 0- 0- 2- 0- 0- 0],[576000- 0- 0- 576000- 0- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[1- 0- 0- 1- 0- 0- 2- 2],[576000- 0- 0- 576000- 0- 0- 1478400- 1766400],70.90841487980666,2058.390853686644,1.16526e+12,6.0852e-11,0,0 +101000-2-2,[1- 0- 1- 0- 0- 0- 2- 0- 0- 2- 0- 0- 0],[576000- 0- 576000- 0- 0- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[1- 0- 1- 0- 0- 0- 2- 2],[576000- 0- 576000- 0- 0- 0- 1478400- 1766400],70.73694231384944,2045.2993817629833,1.1597e+12,6.09959e-11,0,0 +101000-2-2,[1- 0- 1- 0- 0- 0- 2- 0- 0- 2- 0- 0- 0],[576000- 0- 576000- 0- 0- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[1- 0- 1- 0- 0- 0- 2- 2],[576000- 0- 576000- 0- 0- 0- 1478400- 1766400],70.87019823828456,2048.0676987469533,1.16559e+12,6.0802e-11,0,0 +101000-2-2,[1- 0- 1- 0- 0- 0- 2- 0- 0- 2- 0- 0- 0],[576000- 0- 576000- 0- 0- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[1- 0- 1- 0- 0- 0- 2- 2],[576000- 0- 576000- 0- 0- 0- 1478400- 1766400],70.66304539864001,2036.9589181838337,1.15984e+12,6.09248e-11,0,0 +110000-2-2,[1- 1- 0- 0- 0- 0- 2- 0- 0- 2- 0- 0- 0],[576000- 576000- 0- 0- 0- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[1- 1- 0- 0- 0- 0- 2- 2],[576000- 576000- 0- 0- 0- 0- 1478400- 1766400],70.11291945420209,2039.9408493051626,1.16528e+12,6.01683e-11,0,0 +110000-2-2,[1- 1- 0- 0- 0- 0- 2- 0- 0- 2- 0- 0- 0],[576000- 576000- 0- 0- 0- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[1- 1- 0- 0- 0- 0- 2- 2],[576000- 576000- 0- 0- 0- 0- 1478400- 1766400],70.4747458234224,2042.5764384831075,1.16484e+12,6.05017e-11,0,0 +110000-2-2,[1- 1- 0- 0- 0- 0- 2- 0- 0- 2- 0- 0- 0],[576000- 576000- 0- 0- 0- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[1- 1- 0- 0- 0- 0- 2- 2],[576000- 576000- 0- 0- 0- 0- 1478400- 1766400],70.35766711410953,2044.605286313954,1.16654e+12,6.03131e-11,0,0 +200002-2-2,[2- 0- 0- 0- 0- 2- 2- 0- 0- 2- 0- 0- 0],[1363200- 0- 0- 0- 0- 1363200- 1478400- 0- 0- 1766400- 0- 0- 0],[2- 0- 0- 0- 0- 2- 2- 2],[1363200- 0- 0- 0- 0- 1363200- 1478400- 1766400],77.96541094759694,2241.7006169502456,1.30714e+12,5.96458e-11,0,0 +200002-2-2,[2- 0- 0- 0- 0- 2- 2- 0- 0- 2- 0- 0- 0],[1363200- 0- 0- 0- 0- 1363200- 1478400- 0- 0- 1766400- 0- 0- 0],[2- 0- 0- 0- 0- 2- 2- 2],[1363200- 0- 0- 0- 0- 1363200- 1478400- 1766400],76.2023086156267,2205.8238875067054,1.3037e+12,5.84508e-11,0,0 +200002-2-2,[2- 0- 0- 0- 0- 2- 2- 0- 0- 2- 0- 0- 0],[1363200- 0- 0- 0- 0- 1363200- 1478400- 0- 0- 1766400- 0- 0- 0],[2- 0- 0- 0- 0- 2- 2- 2],[1363200- 0- 0- 0- 0- 1363200- 1478400- 1766400],76.33647794504182,2209.8674964349125,1.30028e+12,5.87077e-11,0,0 +200020-2-2,[2- 0- 0- 0- 2- 0- 2- 0- 0- 2- 0- 0- 0],[1363200- 0- 0- 0- 1363200- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[2- 0- 0- 0- 2- 0- 2- 2],[1363200- 0- 0- 0- 1363200- 0- 1478400- 1766400],71.64787072655308,2068.1208423500893,1.1655e+12,6.14739e-11,0,0 +200020-2-2,[2- 0- 0- 0- 2- 0- 2- 0- 0- 2- 0- 0- 0],[1363200- 0- 0- 0- 1363200- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[2- 0- 0- 0- 2- 0- 2- 2],[1363200- 0- 0- 0- 1363200- 0- 1478400- 1766400],70.59299246340379,2045.8237679247684,1.16159e+12,6.07727e-11,0,0 +200020-2-2,[2- 0- 0- 0- 2- 0- 2- 0- 0- 2- 0- 0- 0],[1363200- 0- 0- 0- 1363200- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[2- 0- 0- 0- 2- 0- 2- 2],[1363200- 0- 0- 0- 1363200- 0- 1478400- 1766400],70.62997330800367,2049.0452915045375,1.1623e+12,6.07674e-11,0,0 +200200-2-2,[2- 0- 0- 2- 0- 0- 2- 0- 0- 2- 0- 0- 0],[1363200- 0- 0- 1363200- 0- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[2- 0- 0- 2- 0- 0- 2- 2],[1363200- 0- 0- 1363200- 0- 0- 1478400- 1766400],71.59418143367965,2072.612065766956,1.1596e+12,6.17404e-11,0,0 +200200-2-2,[2- 0- 0- 2- 0- 0- 2- 0- 0- 2- 0- 0- 0],[1363200- 0- 0- 1363200- 0- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[2- 0- 0- 2- 0- 0- 2- 2],[1363200- 0- 0- 1363200- 0- 0- 1478400- 1766400],70.63924455966055,2044.390496935238,1.16729e+12,6.05156e-11,0,0 +200200-2-2,[2- 0- 0- 2- 0- 0- 2- 0- 0- 2- 0- 0- 0],[1363200- 0- 0- 1363200- 0- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[2- 0- 0- 2- 0- 0- 2- 2],[1363200- 0- 0- 1363200- 0- 0- 1478400- 1766400],70.53403938823975,2036.4875102013627,1.16602e+12,6.04913e-11,0,0 +202000-2-2,[2- 0- 2- 0- 0- 0- 2- 0- 0- 2- 0- 0- 0],[1363200- 0- 1363200- 0- 0- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[2- 0- 2- 0- 0- 0- 2- 2],[1363200- 0- 1363200- 0- 0- 0- 1478400- 1766400],71.49423895337264,2067.3332738680415,1.16766e+12,6.12286e-11,0,0 +202000-2-2,[2- 0- 2- 0- 0- 0- 2- 0- 0- 2- 0- 0- 0],[1363200- 0- 1363200- 0- 0- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[2- 0- 2- 0- 0- 0- 2- 2],[1363200- 0- 1363200- 0- 0- 0- 1478400- 1766400],70.60359391424801,2039.7950003512576,1.16196e+12,6.07625e-11,0,0 +202000-2-2,[2- 0- 2- 0- 0- 0- 2- 0- 0- 2- 0- 0- 0],[1363200- 0- 1363200- 0- 0- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[2- 0- 2- 0- 0- 0- 2- 2],[1363200- 0- 1363200- 0- 0- 0- 1478400- 1766400],70.52715331333978,2041.9087895449654,1.16666e+12,6.04522e-11,0,0 +220000-2-2,[2- 2- 0- 0- 0- 0- 2- 0- 0- 2- 0- 0- 0],[1363200- 1363200- 0- 0- 0- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[2- 2- 0- 0- 0- 0- 2- 2],[1363200- 1363200- 0- 0- 0- 0- 1478400- 1766400],71.18060224267974,2055.878949962645,1.1649e+12,6.11045e-11,0,0 +220000-2-2,[2- 2- 0- 0- 0- 0- 2- 0- 0- 2- 0- 0- 0],[1363200- 1363200- 0- 0- 0- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[2- 2- 0- 0- 0- 0- 2- 2],[1363200- 1363200- 0- 0- 0- 0- 1478400- 1766400],70.32392311813075,2043.2558518515564,1.1648e+12,6.03742e-11,0,0 +220000-2-2,[2- 2- 0- 0- 0- 0- 2- 0- 0- 2- 0- 0- 0],[1363200- 1363200- 0- 0- 0- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[2- 2- 0- 0- 0- 0- 2- 2],[1363200- 1363200- 0- 0- 0- 0- 1478400- 1766400],70.05135389771442,2041.985457529188,1.16536e+12,6.01113e-11,0,0 +300003-2-2,[3- 0- 0- 0- 0- 3- 2- 0- 0- 2- 0- 0- 0],[1804800- 0- 0- 0- 0- 1804800- 1478400- 0- 0- 1766400- 0- 0- 0],[3- 0- 0- 0- 0- 3- 2- 2],[1804800- 0- 0- 0- 0- 1804800- 1478400- 1766400],86.59637719434818,2465.3920553203334,1.37849e+12,6.28197e-11,0,0 +300003-2-2,[3- 0- 0- 0- 0- 3- 2- 0- 0- 2- 0- 0- 0],[1804800- 0- 0- 0- 0- 1804800- 1478400- 0- 0- 1766400- 0- 0- 0],[3- 0- 0- 0- 0- 3- 2- 2],[1804800- 0- 0- 0- 0- 1804800- 1478400- 1766400],87.6265526980771,2488.241950885876,1.38083e+12,6.34593e-11,0,0 +300003-2-2,[3- 0- 0- 0- 0- 3- 2- 0- 0- 2- 0- 0- 0],[1804800- 0- 0- 0- 0- 1804800- 1478400- 0- 0- 1766400- 0- 0- 0],[3- 0- 0- 0- 0- 3- 2- 2],[1804800- 0- 0- 0- 0- 1804800- 1478400- 1766400],87.08870790047656,2482.78103690326,1.38693e+12,6.27924e-11,0,0 +300030-2-2,[3- 0- 0- 0- 3- 0- 2- 0- 0- 2- 0- 0- 0],[1804800- 0- 0- 0- 1804800- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[3- 0- 0- 0- 3- 0- 2- 2],[1804800- 0- 0- 0- 1804800- 0- 1478400- 1766400],70.45738299722346,2048.4362673134306,1.16052e+12,6.07119e-11,0,0 +300030-2-2,[3- 0- 0- 0- 3- 0- 2- 0- 0- 2- 0- 0- 0],[1804800- 0- 0- 0- 1804800- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[3- 0- 0- 0- 3- 0- 2- 2],[1804800- 0- 0- 0- 1804800- 0- 1478400- 1766400],71.52806365064377,2067.1708190595846,1.16605e+12,6.13422e-11,0,0 +300030-2-2,[3- 0- 0- 0- 3- 0- 2- 0- 0- 2- 0- 0- 0],[1804800- 0- 0- 0- 1804800- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[3- 0- 0- 0- 3- 0- 2- 2],[1804800- 0- 0- 0- 1804800- 0- 1478400- 1766400],70.36461641518005,2034.3834686908758,1.15538e+12,6.09017e-11,0,0 +300300-2-2,[3- 0- 0- 3- 0- 0- 2- 0- 0- 2- 0- 0- 0],[1804800- 0- 0- 1804800- 0- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[3- 0- 0- 3- 0- 0- 2- 2],[1804800- 0- 0- 1804800- 0- 0- 1478400- 1766400],70.54538704058632,2043.532655655454,1.16631e+12,6.0486e-11,0,0 +300300-2-2,[3- 0- 0- 3- 0- 0- 2- 0- 0- 2- 0- 0- 0],[1804800- 0- 0- 1804800- 0- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[3- 0- 0- 3- 0- 0- 2- 2],[1804800- 0- 0- 1804800- 0- 0- 1478400- 1766400],71.57822660827733,2065.543430131354,1.16213e+12,6.15923e-11,0,0 +300300-2-2,[3- 0- 0- 3- 0- 0- 2- 0- 0- 2- 0- 0- 0],[1804800- 0- 0- 1804800- 0- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[3- 0- 0- 3- 0- 0- 2- 2],[1804800- 0- 0- 1804800- 0- 0- 1478400- 1766400],70.7170408596214,2041.7395112120066,1.1624e+12,6.08371e-11,0,0 +303000-2-2,[3- 0- 3- 0- 0- 0- 2- 0- 0- 2- 0- 0- 0],[1804800- 0- 1804800- 0- 0- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[3- 0- 3- 0- 0- 0- 2- 2],[1804800- 0- 1804800- 0- 0- 0- 1478400- 1766400],70.12091351608217,2035.687582112515,1.15985e+12,6.04569e-11,0,0 +303000-2-2,[3- 0- 3- 0- 0- 0- 2- 0- 0- 2- 0- 0- 0],[1804800- 0- 1804800- 0- 0- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[3- 0- 3- 0- 0- 0- 2- 2],[1804800- 0- 1804800- 0- 0- 0- 1478400- 1766400],69.80058323418798,2026.1095988610796,1.16617e+12,5.98546e-11,0,0 +303000-2-2,[3- 0- 3- 0- 0- 0- 2- 0- 0- 2- 0- 0- 0],[1804800- 0- 1804800- 0- 0- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[3- 0- 3- 0- 0- 0- 2- 2],[1804800- 0- 1804800- 0- 0- 0- 1478400- 1766400],70.54568641754493,2046.3684465840151,1.16557e+12,6.05246e-11,0,0 +330000-2-2,[3- 3- 0- 0- 0- 0- 2- 0- 0- 2- 0- 0- 0],[1804800- 1804800- 0- 0- 0- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[3- 3- 0- 0- 0- 0- 2- 2],[1804800- 1804800- 0- 0- 0- 0- 1478400- 1766400],70.33175275813268,2037.9039312812663,1.16495e+12,6.03732e-11,0,0 +330000-2-2,[3- 3- 0- 0- 0- 0- 2- 0- 0- 2- 0- 0- 0],[1804800- 1804800- 0- 0- 0- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[3- 3- 0- 0- 0- 0- 2- 2],[1804800- 1804800- 0- 0- 0- 0- 1478400- 1766400],70.08575253785934,2033.4880545000324,1.16477e+12,6.01713e-11,0,0 +330000-2-2,[3- 3- 0- 0- 0- 0- 2- 0- 0- 2- 0- 0- 0],[1804800- 1804800- 0- 0- 0- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[3- 3- 0- 0- 0- 0- 2- 2],[1804800- 1804800- 0- 0- 0- 0- 1478400- 1766400],69.76401393868103,2031.2454594455432,1.16414e+12,5.99275e-11,0,0 +400004-2-2,[4- 0- 0- 0- 0- 4- 2- 0- 0- 2- 0- 0- 0],[1804801- 0- 0- 0- 0- 1804801- 1478400- 0- 0- 1766400- 0- 0- 0],[4- 0- 0- 0- 0- 4- 2- 2],[1804801- 0- 0- 0- 0- 1804801- 1478400- 1766400],86.25868546652029,2462.1389961649397,1.3864e+12,6.22177e-11,0,0 +400004-2-2,[4- 0- 0- 0- 0- 4- 2- 0- 0- 2- 0- 0- 0],[1804801- 0- 0- 0- 0- 1804801- 1478400- 0- 0- 1766400- 0- 0- 0],[4- 0- 0- 0- 0- 4- 2- 2],[1804801- 0- 0- 0- 0- 1804801- 1478400- 1766400],86.36279724758774,2476.1397976969893,1.38406e+12,6.23982e-11,0,0 +400004-2-2,[4- 0- 0- 0- 0- 4- 2- 0- 0- 2- 0- 0- 0],[1804801- 0- 0- 0- 0- 1804801- 1478400- 0- 0- 1766400- 0- 0- 0],[4- 0- 0- 0- 0- 4- 2- 2],[1804801- 0- 0- 0- 0- 1804801- 1478400- 1766400],87.80479279136466,2499.208880026985,1.38557e+12,6.33709e-11,0,0 +400040-2-2,[4- 0- 0- 0- 4- 0- 2- 0- 0- 2- 0- 0- 0],[1804801- 0- 0- 0- 1804801- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[4- 0- 0- 0- 4- 0- 2- 2],[1804801- 0- 0- 0- 1804801- 0- 1478400- 1766400],70.19794533916524,2047.4429470934535,1.1589e+12,6.05729e-11,0,0 +400040-2-2,[4- 0- 0- 0- 4- 0- 2- 0- 0- 2- 0- 0- 0],[1804801- 0- 0- 0- 1804801- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[4- 0- 0- 0- 4- 0- 2- 2],[1804801- 0- 0- 0- 1804801- 0- 1478400- 1766400],70.4697908210477,2041.7807257688014,1.16049e+12,6.07242e-11,0,0 +400040-2-2,[4- 0- 0- 0- 4- 0- 2- 0- 0- 2- 0- 0- 0],[1804801- 0- 0- 0- 1804801- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[4- 0- 0- 0- 4- 0- 2- 2],[1804801- 0- 0- 0- 1804801- 0- 1478400- 1766400],71.17628500575493,2063.139183197156,1.16604e+12,6.1041e-11,0,0 +400400-2-2,[4- 0- 0- 4- 0- 0- 2- 0- 0- 2- 0- 0- 0],[1804801- 0- 0- 1804801- 0- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[4- 0- 0- 4- 0- 0- 2- 2],[1804801- 0- 0- 1804801- 0- 0- 1478400- 1766400],70.49037916333526,2046.384180555702,1.16542e+12,6.0485e-11,0,0 +400400-2-2,[4- 0- 0- 4- 0- 0- 2- 0- 0- 2- 0- 0- 0],[1804801- 0- 0- 1804801- 0- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[4- 0- 0- 4- 0- 0- 2- 2],[1804801- 0- 0- 1804801- 0- 0- 1478400- 1766400],69.9851801502394,2021.8984860743753,1.16164e+12,6.02469e-11,0,0 +400400-2-2,[4- 0- 0- 4- 0- 0- 2- 0- 0- 2- 0- 0- 0],[1804801- 0- 0- 1804801- 0- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[4- 0- 0- 4- 0- 0- 2- 2],[1804801- 0- 0- 1804801- 0- 0- 1478400- 1766400],71.47653617449954,2064.2426598360594,1.16684e+12,6.12565e-11,0,0 +404000-2-2,[4- 0- 4- 0- 0- 0- 2- 0- 0- 2- 0- 0- 0],[1804801- 0- 1804801- 0- 0- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[4- 0- 4- 0- 0- 0- 2- 2],[1804801- 0- 1804801- 0- 0- 0- 1478400- 1766400],70.21932151401353,2027.7301611933613,1.16384e+12,6.03342e-11,0,0 +404000-2-2,[4- 0- 4- 0- 0- 0- 2- 0- 0- 2- 0- 0- 0],[1804801- 0- 1804801- 0- 0- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[4- 0- 4- 0- 0- 0- 2- 2],[1804801- 0- 1804801- 0- 0- 0- 1478400- 1766400],70.47809119531738,2041.2885979375426,1.16844e+12,6.03181e-11,0,0 +404000-2-2,[4- 0- 4- 0- 0- 0- 2- 0- 0- 2- 0- 0- 0],[1804801- 0- 1804801- 0- 0- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[4- 0- 4- 0- 0- 0- 2- 2],[1804801- 0- 1804801- 0- 0- 0- 1478400- 1766400],70.39942218336223,2043.40051894525,1.16631e+12,6.03608e-11,0,0 +440000-2-2,[4- 4- 0- 0- 0- 0- 2- 0- 0- 2- 0- 0- 0],[1804801- 1804801- 0- 0- 0- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[4- 4- 0- 0- 0- 0- 2- 2],[1804801- 1804801- 0- 0- 0- 0- 1478400- 1766400],70.67041858464086,2052.5285537658833,1.16675e+12,6.05703e-11,0,0 +440000-2-2,[4- 4- 0- 0- 0- 0- 2- 0- 0- 2- 0- 0- 0],[1804801- 1804801- 0- 0- 0- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[4- 4- 0- 0- 0- 0- 2- 2],[1804801- 1804801- 0- 0- 0- 0- 1478400- 1766400],69.63985178549414,2029.0009301595778,1.1652e+12,5.97664e-11,0,0 +440000-2-2,[4- 4- 0- 0- 0- 0- 2- 0- 0- 2- 0- 0- 0],[1804801- 1804801- 0- 0- 0- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[4- 4- 0- 0- 0- 0- 2- 2],[1804801- 1804801- 0- 0- 0- 0- 1478400- 1766400],70.57015429696514,2041.307626748669,1.16472e+12,6.05898e-11,0,0 diff --git a/experiment_automatization/can_be_reused/looking_at_strange_cases/summary_strange_cases_with_big_cores_off___maybe_bad.csv b/experiment_automatization/can_be_reused/looking_at_strange_cases_old/summary_strange_cases_with_big_cores_off___maybe_bad.csv similarity index 100% rename from experiment_automatization/can_be_reused/looking_at_strange_cases/summary_strange_cases_with_big_cores_off___maybe_bad.csv rename to experiment_automatization/can_be_reused/looking_at_strange_cases_old/summary_strange_cases_with_big_cores_off___maybe_bad.csv diff --git a/experiment_automatization/experiment_log_file.txt b/experiment_automatization/experiment_log_file.txt index ac867f1..25946ec 100755 --- a/experiment_automatization/experiment_log_file.txt +++ b/experiment_automatization/experiment_log_file.txt @@ -5,6 +5,7 @@ --- Loading experiment_process_for_a_single_configuration.sh library .... --- --- experiment_process_for_a_single_configuration.sh correctly loaded. --- First step : setting the charge stop level value +adbd is already running as root --- The configuration file does not have the suitable format, we save it to and replace with the correct one --- Before move command mv /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/input_configurations_file.csv /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/input_configurations_file__no_suitable_format --- After move command @@ -258,75 +259,36817 @@ --- Second step : verifying the battery level --- Verifying the battery level --- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe ---- Current battery level : +--- Current battery level : 48 --- Current battery is low, so we need to wait battery --- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe ---- Current battery level : +--- Current battery level : 48 --- Desactivating the charge stop level option --- Desactivating the charge stop level option, command : /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe shell echo 100 > /sys/devices/platform/soc/soc:google,charger/charge_stop_level </dev/null ---- The current battery level : 0, still lower than the experiment one : 50 +--- The current battery level : 48, still lower than the experiment one : 50 --- Waiting 30 second... --- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe ---- Current battery level : ---- The current battery level : 0, still lower than the experiment one : 50 +--- Current battery level : 48 +--- The current battery level : 48, still lower than the experiment one : 50 --- Waiting 30 second... --- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe ---- Current battery level : ---- The current battery level : 0, still lower than the experiment one : 50 +--- Current battery level : 48 +--- The current battery level : 48, still lower than the experiment one : 50 --- Waiting 30 second... --- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe ---- Current battery level : ---- The current battery level : 0, still lower than the experiment one : 50 +--- Current battery level : 49 +--- The current battery level : 49, still lower than the experiment one : 50 --- Waiting 30 second... --- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe ---- Current battery level : ---- The current battery level : 0, still lower than the experiment one : 50 +--- Current battery level : 49 +--- The current battery level : 49, still lower than the experiment one : 50 --- Waiting 30 second... --- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe ---- Current battery level : ---- The current battery level : 0, still lower than the experiment one : 50 +--- Current battery level : 49 +--- The current battery level : 49, still lower than the experiment one : 50 --- Waiting 30 second... --- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe ---- Current battery level : ---- The current battery level : 0, still lower than the experiment one : 50 +--- Current battery level : 49 +--- The current battery level : 49, still lower than the experiment one : 50 --- Waiting 30 second... --- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe ---- Current battery level : ---- The current battery level : 0, still lower than the experiment one : 50 +--- Current battery level : 49 +--- The current battery level : 49, still lower than the experiment one : 50 --- Waiting 30 second... --- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe ---- Current battery level : ---- The current battery level : 0, still lower than the experiment one : 50 +--- Current battery level : 49 +--- The current battery level : 49, still lower than the experiment one : 50 --- Waiting 30 second... --- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe ---- Current battery level : ---- The current battery level : 0, still lower than the experiment one : 50 ---- Waiting 30 second... +--- Current battery level : 50 +--- Current battery is now equal to the experiment battery level +--- Third step calibrating phone core frequency +--- Resetting all frequency configurations + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu5/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor +--- Frequency level of core 0 is 1 +--- Exact frequency of core 0: 576000 +--- Modifying the governor of core 0 +--- Modifying the the current frequency of core 0 with frequency 576000 +--- Frequency level of core 1 is 0 +--- Exact frequency of core 1: 0 +--- Modifying the governor of core 1 +--- Modifying the the current frequency of core 1 with frequency 0 +--- Frequency level of core 2 is 0 +--- Exact frequency of core 2: 0 +--- Modifying the governor of core 2 +--- Modifying the the current frequency of core 2 with frequency 0 +--- Frequency level of core 3 is 0 +--- Exact frequency of core 3: 0 +--- Modifying the governor of core 3 +--- Modifying the the current frequency of core 3 with frequency 0 +--- Frequency level of core 4 is 0 +--- Exact frequency of core 4: 0 +--- Modifying the governor of core 4 +--- Modifying the the current frequency of core 4 with frequency 0 +--- Frequency level of core 5 is 1 +--- Exact frequency of core 5: 576000 +--- Modifying the governor of core 5 +--- Modifying the the current frequency of core 5 with frequency 576000 +--- Frequency level of core 6 is 2 +--- Exact frequency of core 6: 1478400 +--- Modifying the governor of core 6 +--- Modifying the the current frequency of core 6 with frequency 1478400 +--- Frequency level of core 7 is 2 +--- Exact frequency of core 7: 1766400 +--- Modifying the governor of core 7 +--- Modifying the the current frequency of core 7 with frequency 1766400 +--- Calibrating Monsoon power meter, please wait for 10 seconds... +powermeter script : --- Inside the monsoon_power_meter, arg function: 1 +powermeter script : calibration duration = 10 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 50000 + returning 50000 samples after experiments +powermeter script : Power meter calibration okay +--- Monsoon power meter Calibrated +--- starting the benchmarking app +## writing the configuration inside the phone file + --- Removing file /sdcard/experiments_automatization +rm '/sdcard/experiments_automatization/current_configuration.txt' +rm '/sdcard/experiments_automatization/experiment_duration.txt' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ended' +rmdir '/sdcard/experiments_automatization/app_output_folder' +rmdir '/sdcard/experiments_automatization' + --- Clearing the logcat + --- Creating file /sdcard/experiments_automatization +----- Uninstalling experiment app +Success +----- Installing experiment app +Performing Streamed Install +Success +------ Giving rights to experiment app +----- Starting experiment app +Starting: Intent { cmp=com.opportunistask.scheduling.benchmarking_app_to_test_big_cores/.MainActivity } +adb command : ps -A | grep com.opportunistask.scheduling.benchmarking_app_to_test_big_cores + ----- Experiment app started with pid: 9176 +---- waiting for benchmarking app thread to be pinned and to be ready +--- frequency level of core 0 is 1 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 1 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of cores to occupy = 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 2 +--- The current number of thread ready to be sambled : 2, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 4 +--- Now threads are running and the phone is ready to be sampled with the power meter \n--- Threads pids +Thread_0_ready_for_sampling +Thread_1_ready_for_sampling +Thread_2_ready_for_sampling +Thread_3_ready_for_sampling +--- Printing cc_info beginning datas (for the samsung galaxy s8) + --- Starting power meter sampling for about 600 seconds +--- Sampling with the Monsoon power meter +powermeter script : --- Inside the monsoon_power_meter, arg function: 2 +powermeter script : Experiment duration = 600 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 3000000 + returning 3000000 samples after experiments +powermeter script : Total nomber of sample measured : 3000000 +powermeter script : Computing powermeter summary result + Number of samples = 3000000 +powermeter script : We computed the energy on 600 samples +powermeter script : average_power = 2010.5306198084834 +powermeter script : average_power with numpy arrays = 2010.530619807812 +powermeter script : Summary Result = time (s): 604.951092004776 +Ins Current (mA):405.5616470193781 +Samples: 3000000 +Consumed Energy (mAs): 250286.72435005906 +Consumed Energy (mAh): 69.52409009723863 +Consumed Energy (mWs): 1208982.461119244 +Consumed Energy (mWh): 335.82846142201225 +Avg power (mW): 2010.5306198084834 +Avg Current (mA): 415.97536460827024 +Avg Voltage (V): 4.833292523709494 +Exp Batt Life (hrs for 1000mAh battery): NOT COMPUTED +--- Monsoon power meter sampling is finished ! + --- experiment folder path /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- frequency level of core 0 is 1 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 1 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of threads normally started = 4 +--- Number of thread ended: 4 +--- Now threads are stopped, getting the cc_info_level for samsung +--- Copying thread results locally +command /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe pull /sdcard/experiments_automatization/app_output_folder C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder </dev/null +/sdcard/experiments_automatization/app_output_folder/: 8 files pulled, 0 skipped. 0.0 MB/s (1807 bytes in 0.064s) +saving the logcat file to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder -/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder- +--- Parsing result from /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/raw_result.txt +--- Getting exact configuration with frequency +--- Configuration with frequencies = [576000- 0- 0- 0- 0- 576000- 1478400- 1766400] +--- Getting the powermeter summary +--- Powermeter summary: +time (s): 604.951092004776 +Ins Current (mA):405.5616470193781 +Samples: 3000000 +Consumed Energy (mAs): 250286.72435005906 +Consumed Energy (mAh): 69.52409009723863 +Consumed Energy (mWs): 1208982.461119244 +Consumed Energy (mWh): 335.82846142201225 +Avg power (mW): 2010.5306198084834 +Avg Current (mA): 415.97536460827024 +Avg Voltage (V): 4.833292523709494 + +--- Getting the total energy consumed of the google pixel +--- Energy consumed = 69.52409009723863 +--- Starting cc_info = 0 +--- Ending cc_info = 0 +--- Getting the average power +--- Avg Power = 2010.5306198084834 +--- Printing the total threads summary +--- Thread results +Thread : 0 - ThreadProcess id: 9201 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 16:26:05 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 16:36:05 +0100 - Duration: 600030 seconds +Real workload: 5.00487655349442E10 - Integer reached: 185536 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 9202 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 16:26:05 +0100 +Core id: 5 +Ending time: Sun, 19 Dec 2021 16:36:05 +0100 - Duration: 600001 seconds +Real workload: 4.975492706057203E10 - Integer reached: 185013 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 9203 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 16:26:05 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 16:36:05 +0100 - Duration: 600004 seconds +Real workload: 4.836536324041022E11 - Integer reached: 551518 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 9204 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 16:26:05 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 16:36:05 +0100 - Duration: 600007 seconds +Real workload: 5.814057226416545E11 - Integer reached: 602595 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +--- Counting the total workload command : print_total_workload /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder app_output_folder 1,0,0,0,0,1,2,2 /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first +--- Total workload : 1.16486e+12 +--- Getting energy efficiency +--- Energy efficiency: 5.96845e-11 +--- Building what we will add to the total result file command +------ + (build_configuration_raw_result 100001-2-2 1,0,0,0,0,1,2,2 [576000- 0- 0- 0- 0- 576000- 1478400- 1766400] time (s): 604.951092004776 +Ins Current (mA):405.5616470193781 +Samples: 3000000 +Consumed Energy (mAs): 250286.72435005906 +Consumed Energy (mAh): 69.52409009723863 +Consumed Energy (mWs): 1208982.461119244 +Consumed Energy (mWh): 335.82846142201225 +Avg power (mW): 2010.5306198084834 +Avg Current (mA): 415.97536460827024 +Avg Voltage (V): 4.833292523709494 + Thread : 0 - ThreadProcess id: 9201 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 16:26:05 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 16:36:05 +0100 - Duration: 600030 seconds +Real workload: 5.00487655349442E10 - Integer reached: 185536 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 9202 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 16:26:05 +0100 +Core id: 5 +Ending time: Sun, 19 Dec 2021 16:36:05 +0100 - Duration: 600001 seconds +Real workload: 4.975492706057203E10 - Integer reached: 185013 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 9203 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 16:26:05 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 16:36:05 +0100 - Duration: 600004 seconds +Real workload: 4.836536324041022E11 - Integer reached: 551518 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 9204 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 16:26:05 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 16:36:05 +0100 - Duration: 600007 seconds +Real workload: 5.814057226416545E11 - Integer reached: 602595 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + 69.52409009723863 1.16486e+12 5.96845e-11 0 0 +------ + +--- Final result to print to File + -------------------------------------------------------------------------------- + +++++ +++++ +++++ Configuration Description +-------------------------------------------------------------------------------- +Configuration: 100001-2-2 +phone format: 1,0,0,0,0,1,2,2 +Exact values of frequencies: [576000- 0- 0- 0- 0- 576000- 1478400- 1766400] + +Power meter results +------------------------------------------------------------ +time (s): 604.951092004776 +Ins Current (mA):405.5616470193781 +Samples: 3000000 +Consumed Energy (mAs): 250286.72435005906 +Consumed Energy (mAh): 69.52409009723863 +Consumed Energy (mWs): 1208982.461119244 +Consumed Energy (mWh): 335.82846142201225 +Avg power (mW): 2010.5306198084834 +Avg Current (mA): 415.97536460827024 +Avg Voltage (V): 4.833292523709494 + +Threads results +------------------------------------------------------------ +Thread : 0 - ThreadProcess id: 9201 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 16:26:05 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 16:36:05 +0100 - Duration: 600030 seconds +Real workload: 5.00487655349442E10 - Integer reached: 185536 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 9202 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 16:26:05 +0100 +Core id: 5 +Ending time: Sun, 19 Dec 2021 16:36:05 +0100 - Duration: 600001 seconds +Real workload: 4.975492706057203E10 - Integer reached: 185013 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 9203 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 16:26:05 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 16:36:05 +0100 - Duration: 600004 seconds +Real workload: 4.836536324041022E11 - Integer reached: 551518 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 9204 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 16:26:05 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 16:36:05 +0100 - Duration: 600007 seconds +Real workload: 5.814057226416545E11 - Integer reached: 602595 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +Expermiment results +------------------------------------------------------------ +Energy Consumed (mAh): 69.52409009723863 +Workload: 1.16486e+12 +Energy efficiency: 5.96845e-11 +-------------------------------------------------------------------------------- + + +--- Writing to the total result file +--- Removing previous tested configuration tmp_output folder +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_18_04_47' +--- Moving the current experiment tmp_folder to the output result folder +writing a temporary file for the main script with format energy_power_workload_energyByWorkload_ccInfo +--- Obtaining experiment summary result to add to result folder +--- Experiment result, Energy consumed = 69.52409009723863 +--- Experiment result, Avg Power = 2010.5306198084834 +--- Experiment result, Total Workload = 1.16486e+12 +--- Experiment result, Energy Efficiency = 5.96845e-11 +--- Adding result to summary file +--- Starting cc information : 0 +--- Ending cc information : 0 +--- The file /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/summary.csv does not exist we create it and add header +--- Experiments performed on configuration 100001-2-2. +--- Observing a pause betwenn experiment; pause duration : 180 seconds; starting at 04Oct22_18_22_10 +--- Performing experiments on configuration 100001-2-2 +--- Cleaning the tmp expermiment folder : /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- Second step : verifying the battery level +--- Verifying the battery level --- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe ---- Current battery level : ---- The current battery level : 0, still lower than the experiment one : 50 ---- Waiting 30 second... +--- Current battery level : 50 +Current battery level: OKAY +--- Third step calibrating phone core frequency +--- Resetting all frequency configurations + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu5/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor +--- Frequency level of core 0 is 1 +--- Exact frequency of core 0: 576000 +--- Modifying the governor of core 0 +--- Modifying the the current frequency of core 0 with frequency 576000 +--- Frequency level of core 1 is 0 +--- Exact frequency of core 1: 0 +--- Modifying the governor of core 1 +--- Modifying the the current frequency of core 1 with frequency 0 +--- Frequency level of core 2 is 0 +--- Exact frequency of core 2: 0 +--- Modifying the governor of core 2 +--- Modifying the the current frequency of core 2 with frequency 0 +--- Frequency level of core 3 is 0 +--- Exact frequency of core 3: 0 +--- Modifying the governor of core 3 +--- Modifying the the current frequency of core 3 with frequency 0 +--- Frequency level of core 4 is 0 +--- Exact frequency of core 4: 0 +--- Modifying the governor of core 4 +--- Modifying the the current frequency of core 4 with frequency 0 +--- Frequency level of core 5 is 1 +--- Exact frequency of core 5: 576000 +--- Modifying the governor of core 5 +--- Modifying the the current frequency of core 5 with frequency 576000 +--- Frequency level of core 6 is 2 +--- Exact frequency of core 6: 1478400 +--- Modifying the governor of core 6 +--- Modifying the the current frequency of core 6 with frequency 1478400 +--- Frequency level of core 7 is 2 +--- Exact frequency of core 7: 1766400 +--- Modifying the governor of core 7 +--- Modifying the the current frequency of core 7 with frequency 1766400 +--- Calibrating Monsoon power meter, please wait for 10 seconds... +powermeter script : --- Inside the monsoon_power_meter, arg function: 1 +powermeter script : calibration duration = 10 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 50000 + returning 50000 samples after experiments +powermeter script : Power meter calibration okay +--- Monsoon power meter Calibrated +--- starting the benchmarking app +## writing the configuration inside the phone file + --- Removing file /sdcard/experiments_automatization +rm '/sdcard/experiments_automatization/current_configuration.txt' +rm '/sdcard/experiments_automatization/experiment_duration.txt' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ended' +rmdir '/sdcard/experiments_automatization/app_output_folder' +rmdir '/sdcard/experiments_automatization' + --- Clearing the logcat + --- Creating file /sdcard/experiments_automatization +----- Uninstalling experiment app +Success +----- Installing experiment app +Performing Streamed Install +Success +------ Giving rights to experiment app +----- Starting experiment app +Starting: Intent { cmp=com.opportunistask.scheduling.benchmarking_app_to_test_big_cores/.MainActivity } +adb command : ps -A | grep com.opportunistask.scheduling.benchmarking_app_to_test_big_cores + ----- Experiment app started with pid: 10531 +---- waiting for benchmarking app thread to be pinned and to be ready +--- frequency level of core 0 is 1 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 1 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of cores to occupy = 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 4 +--- Now threads are running and the phone is ready to be sampled with the power meter \n--- Threads pids +Thread_0_ready_for_sampling +Thread_1_ready_for_sampling +Thread_2_ready_for_sampling +Thread_3_ready_for_sampling +--- Printing cc_info beginning datas (for the samsung galaxy s8) + --- Starting power meter sampling for about 600 seconds +--- Sampling with the Monsoon power meter +powermeter script : --- Inside the monsoon_power_meter, arg function: 2 +powermeter script : Experiment duration = 600 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 3000000 + returning 3000000 samples after experiments +powermeter script : Total nomber of sample measured : 3000000 +powermeter script : Computing powermeter summary result + Number of samples = 3000000 +powermeter script : We computed the energy on 600 samples +powermeter script : average_power = 2044.1753729837076 +powermeter script : average_power with numpy arrays = 2044.1753729831357 +powermeter script : Summary Result = time (s): 603.5882942676544 +Ins Current (mA):420.0590426990948 +Samples: 3000000 +Consumed Energy (mAs): 255892.8852087534 +Consumed Energy (mAh): 71.0813570024315 +Consumed Energy (mWs): 1234412.5342817232 +Consumed Energy (mWh): 342.892370633812 +Avg power (mW): 2044.1753729837076 +Avg Current (mA): 423.4666039117096 +Avg Voltage (V): 4.827241048292692 +Exp Batt Life (hrs for 1000mAh battery): NOT COMPUTED +--- Monsoon power meter sampling is finished ! + --- experiment folder path /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- frequency level of core 0 is 1 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 1 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of threads normally started = 4 +--- Number of thread ended: 4 +--- Now threads are stopped, getting the cc_info_level for samsung +--- Copying thread results locally +command /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe pull /sdcard/experiments_automatization/app_output_folder C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder </dev/null +/sdcard/experiments_automatization/app_output_folder/: 8 files pulled, 0 skipped. 0.0 MB/s (1815 bytes in 0.073s) +saving the logcat file to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder -/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder- +--- Parsing result from /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/raw_result.txt +--- Getting exact configuration with frequency +--- Configuration with frequencies = [576000- 0- 0- 0- 0- 576000- 1478400- 1766400] +--- Getting the powermeter summary +--- Powermeter summary: +time (s): 603.5882942676544 +Ins Current (mA):420.0590426990948 +Samples: 3000000 +Consumed Energy (mAs): 255892.8852087534 +Consumed Energy (mAh): 71.0813570024315 +Consumed Energy (mWs): 1234412.5342817232 +Consumed Energy (mWh): 342.892370633812 +Avg power (mW): 2044.1753729837076 +Avg Current (mA): 423.4666039117096 +Avg Voltage (V): 4.827241048292692 + +--- Getting the total energy consumed of the google pixel +--- Energy consumed = 71.0813570024315 +--- Starting cc_info = 0 +--- Ending cc_info = 0 +--- Getting the average power +--- Avg Power = 2044.1753729837076 +--- Printing the total threads summary +--- Thread results +Thread : 0 - ThreadProcess id: 10557 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 16:41:58 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 16:51:58 +0100 - Duration: 600025 seconds +Real workload: 4.958622242946553E10 - Integer reached: 184712 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 10558 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 16:41:58 +0100 +Core id: 5 +Ending time: Sun, 19 Dec 2021 16:51:58 +0100 - Duration: 600029 seconds +Real workload: 5.008534740590299E10 - Integer reached: 185601 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 10559 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 16:41:58 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 16:51:58 +0100 - Duration: 600003 seconds +Real workload: 4.85295622303432E11 - Integer reached: 552418 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 10561 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 16:41:58 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 16:51:58 +0100 - Duration: 600004 seconds +Real workload: 5.810047958962595E11 - Integer reached: 602395 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +--- Counting the total workload command : print_total_workload /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder app_output_folder 1,0,0,0,0,1,2,2 /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first +--- Total workload : 1.16597e+12 +--- Getting energy efficiency +--- Energy efficiency: 6.09633e-11 +--- Building what we will add to the total result file command +------ + (build_configuration_raw_result 100001-2-2 1,0,0,0,0,1,2,2 [576000- 0- 0- 0- 0- 576000- 1478400- 1766400] time (s): 603.5882942676544 +Ins Current (mA):420.0590426990948 +Samples: 3000000 +Consumed Energy (mAs): 255892.8852087534 +Consumed Energy (mAh): 71.0813570024315 +Consumed Energy (mWs): 1234412.5342817232 +Consumed Energy (mWh): 342.892370633812 +Avg power (mW): 2044.1753729837076 +Avg Current (mA): 423.4666039117096 +Avg Voltage (V): 4.827241048292692 + Thread : 0 - ThreadProcess id: 10557 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 16:41:58 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 16:51:58 +0100 - Duration: 600025 seconds +Real workload: 4.958622242946553E10 - Integer reached: 184712 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 10558 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 16:41:58 +0100 +Core id: 5 +Ending time: Sun, 19 Dec 2021 16:51:58 +0100 - Duration: 600029 seconds +Real workload: 5.008534740590299E10 - Integer reached: 185601 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 10559 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 16:41:58 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 16:51:58 +0100 - Duration: 600003 seconds +Real workload: 4.85295622303432E11 - Integer reached: 552418 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 10561 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 16:41:58 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 16:51:58 +0100 - Duration: 600004 seconds +Real workload: 5.810047958962595E11 - Integer reached: 602395 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + 71.0813570024315 1.16597e+12 6.09633e-11 0 0 +------ + +--- Final result to print to File + -------------------------------------------------------------------------------- + +++++ +++++ +++++ Configuration Description +-------------------------------------------------------------------------------- +Configuration: 100001-2-2 +phone format: 1,0,0,0,0,1,2,2 +Exact values of frequencies: [576000- 0- 0- 0- 0- 576000- 1478400- 1766400] + +Power meter results +------------------------------------------------------------ +time (s): 603.5882942676544 +Ins Current (mA):420.0590426990948 +Samples: 3000000 +Consumed Energy (mAs): 255892.8852087534 +Consumed Energy (mAh): 71.0813570024315 +Consumed Energy (mWs): 1234412.5342817232 +Consumed Energy (mWh): 342.892370633812 +Avg power (mW): 2044.1753729837076 +Avg Current (mA): 423.4666039117096 +Avg Voltage (V): 4.827241048292692 + +Threads results +------------------------------------------------------------ +Thread : 0 - ThreadProcess id: 10557 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 16:41:58 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 16:51:58 +0100 - Duration: 600025 seconds +Real workload: 4.958622242946553E10 - Integer reached: 184712 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 10558 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 16:41:58 +0100 +Core id: 5 +Ending time: Sun, 19 Dec 2021 16:51:58 +0100 - Duration: 600029 seconds +Real workload: 5.008534740590299E10 - Integer reached: 185601 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 10559 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 16:41:58 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 16:51:58 +0100 - Duration: 600003 seconds +Real workload: 4.85295622303432E11 - Integer reached: 552418 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 10561 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 16:41:58 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 16:51:58 +0100 - Duration: 600004 seconds +Real workload: 5.810047958962595E11 - Integer reached: 602395 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +Expermiment results +------------------------------------------------------------ +Energy Consumed (mAh): 71.0813570024315 +Workload: 1.16597e+12 +Energy efficiency: 6.09633e-11 +-------------------------------------------------------------------------------- + + +--- Writing to the total result file +--- Removing previous tested configuration tmp_output folder +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_18_25_12/app_output_folder/all_workloads.txt' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_18_25_12/app_output_folder/Thread_0_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_18_25_12/app_output_folder/Thread_0_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_18_25_12/app_output_folder/Thread_1_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_18_25_12/app_output_folder/Thread_1_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_18_25_12/app_output_folder/Thread_2_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_18_25_12/app_output_folder/Thread_2_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_18_25_12/app_output_folder/Thread_3_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_18_25_12/app_output_folder/Thread_3_ready_for_sampling' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_18_25_12/app_output_folder' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_18_25_12/configuration_mesurement.csv' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_18_25_12/energy_power_workload_energyByWorkload_ccInfo' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_18_25_12/logcat_output' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_18_25_12/powermeter_summary.txt' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_18_25_12' +--- Moving the current experiment tmp_folder to the output result folder +writing a temporary file for the main script with format energy_power_workload_energyByWorkload_ccInfo +--- Obtaining experiment summary result to add to result folder +--- Experiment result, Energy consumed = 71.0813570024315 +--- Experiment result, Avg Power = 2044.1753729837076 +--- Experiment result, Total Workload = 1.16597e+12 +--- Experiment result, Energy Efficiency = 6.09633e-11 +--- Adding result to summary file +--- Starting cc information : 0 +--- Ending cc information : 0 +--- The file /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/summary.csv exists we just appending the result to the file +--- Experiments performed on configuration 100001-2-2. +--- Observing a pause betwenn experiment; pause duration : 180 seconds; starting at 04Oct22_18_37_59 +--- Performing experiments on configuration 100001-2-2 +--- Cleaning the tmp expermiment folder : /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- Second step : verifying the battery level +--- Verifying the battery level --- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe ---- Current battery level : ---- The current battery level : 0, still lower than the experiment one : 50 ---- Waiting 30 second... +--- Current battery level : 50 +Current battery level: OKAY +--- Third step calibrating phone core frequency +--- Resetting all frequency configurations + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu5/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor +--- Frequency level of core 0 is 1 +--- Exact frequency of core 0: 576000 +--- Modifying the governor of core 0 +--- Modifying the the current frequency of core 0 with frequency 576000 +--- Frequency level of core 1 is 0 +--- Exact frequency of core 1: 0 +--- Modifying the governor of core 1 +--- Modifying the the current frequency of core 1 with frequency 0 +--- Frequency level of core 2 is 0 +--- Exact frequency of core 2: 0 +--- Modifying the governor of core 2 +--- Modifying the the current frequency of core 2 with frequency 0 +--- Frequency level of core 3 is 0 +--- Exact frequency of core 3: 0 +--- Modifying the governor of core 3 +--- Modifying the the current frequency of core 3 with frequency 0 +--- Frequency level of core 4 is 0 +--- Exact frequency of core 4: 0 +--- Modifying the governor of core 4 +--- Modifying the the current frequency of core 4 with frequency 0 +--- Frequency level of core 5 is 1 +--- Exact frequency of core 5: 576000 +--- Modifying the governor of core 5 +--- Modifying the the current frequency of core 5 with frequency 576000 +--- Frequency level of core 6 is 2 +--- Exact frequency of core 6: 1478400 +--- Modifying the governor of core 6 +--- Modifying the the current frequency of core 6 with frequency 1478400 +--- Frequency level of core 7 is 2 +--- Exact frequency of core 7: 1766400 +--- Modifying the governor of core 7 +--- Modifying the the current frequency of core 7 with frequency 1766400 +--- Calibrating Monsoon power meter, please wait for 10 seconds... +powermeter script : --- Inside the monsoon_power_meter, arg function: 1 +powermeter script : calibration duration = 10 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 50000 + returning 50000 samples after experiments +powermeter script : Power meter calibration okay +--- Monsoon power meter Calibrated +--- starting the benchmarking app +## writing the configuration inside the phone file + --- Removing file /sdcard/experiments_automatization +rm '/sdcard/experiments_automatization/current_configuration.txt' +rm '/sdcard/experiments_automatization/experiment_duration.txt' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ended' +rmdir '/sdcard/experiments_automatization/app_output_folder' +rmdir '/sdcard/experiments_automatization' + --- Clearing the logcat + --- Creating file /sdcard/experiments_automatization +----- Uninstalling experiment app +Success +----- Installing experiment app +Performing Streamed Install +Success +------ Giving rights to experiment app +----- Starting experiment app +Starting: Intent { cmp=com.opportunistask.scheduling.benchmarking_app_to_test_big_cores/.MainActivity } +adb command : ps -A | grep com.opportunistask.scheduling.benchmarking_app_to_test_big_cores + ----- Experiment app started with pid: 11575 +---- waiting for benchmarking app thread to be pinned and to be ready +--- frequency level of core 0 is 1 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 1 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of cores to occupy = 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 4 +--- Now threads are running and the phone is ready to be sampled with the power meter \n--- Threads pids +Thread_0_ready_for_sampling +Thread_1_ready_for_sampling +Thread_2_ready_for_sampling +Thread_3_ready_for_sampling +--- Printing cc_info beginning datas (for the samsung galaxy s8) + --- Starting power meter sampling for about 600 seconds +--- Sampling with the Monsoon power meter +powermeter script : --- Inside the monsoon_power_meter, arg function: 2 +powermeter script : Experiment duration = 600 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 3000000 + returning 3000000 samples after experiments +powermeter script : Total nomber of sample measured : 3000000 +powermeter script : Computing powermeter summary result + Number of samples = 3000000 +powermeter script : We computed the energy on 600 samples +powermeter script : average_power = 2047.1024914329862 +powermeter script : average_power with numpy arrays = 2047.1024914326842 +powermeter script : Summary Result = time (s): 601.8507990837097 +Ins Current (mA):429.3623379443553 +Samples: 3000000 +Consumed Energy (mAs): 253718.95188429477 +Consumed Energy (mAh): 70.47748663452633 +Consumed Energy (mWs): 1224569.615399165 +Consumed Energy (mWh): 340.1582264997681 +Avg power (mW): 2047.1024914329862 +Avg Current (mA): 424.16490150051965 +Avg Voltage (V): 4.826194916626024 +Exp Batt Life (hrs for 1000mAh battery): NOT COMPUTED +--- Monsoon power meter sampling is finished ! + --- experiment folder path /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- frequency level of core 0 is 1 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 1 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of threads normally started = 4 +--- Number of thread ended: 4 +--- Now threads are stopped, getting the cc_info_level for samsung +--- Copying thread results locally +command /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe pull /sdcard/experiments_automatization/app_output_folder C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder </dev/null +/sdcard/experiments_automatization/app_output_folder/: 8 files pulled, 0 skipped. 0.0 MB/s (1818 bytes in 0.078s) +saving the logcat file to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder -/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder- +--- Parsing result from /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/raw_result.txt +--- Getting exact configuration with frequency +--- Configuration with frequencies = [576000- 0- 0- 0- 0- 576000- 1478400- 1766400] +--- Getting the powermeter summary +--- Powermeter summary: +time (s): 601.8507990837097 +Ins Current (mA):429.3623379443553 +Samples: 3000000 +Consumed Energy (mAs): 253718.95188429477 +Consumed Energy (mAh): 70.47748663452633 +Consumed Energy (mWs): 1224569.615399165 +Consumed Energy (mWh): 340.1582264997681 +Avg power (mW): 2047.1024914329862 +Avg Current (mA): 424.16490150051965 +Avg Voltage (V): 4.826194916626024 + +--- Getting the total energy consumed of the google pixel +--- Energy consumed = 70.47748663452633 +--- Starting cc_info = 0 +--- Ending cc_info = 0 +--- Getting the average power +--- Avg Power = 2047.1024914329862 +--- Printing the total threads summary +--- Thread results +Thread : 0 - ThreadProcess id: 11601 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 16:57:46 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 17:07:47 +0100 - Duration: 600028 seconds +Real workload: 5.0217720583004166E10 - Integer reached: 185836 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 11602 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 16:57:46 +0100 +Core id: 5 +Ending time: Sun, 19 Dec 2021 17:07:47 +0100 - Duration: 600008 seconds +Real workload: 4.952856124316381E10 - Integer reached: 184609 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 11603 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 16:57:47 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 17:07:47 +0100 - Duration: 600008 seconds +Real workload: 4.8134513751672144E11 - Integer reached: 550250 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 11604 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 16:57:47 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 17:07:47 +0100 - Duration: 600009 seconds +Real workload: 5.823043177095037E11 - Integer reached: 603043 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +--- Counting the total workload command : print_total_workload /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder app_output_folder 1,0,0,0,0,1,2,2 /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first +--- Total workload : 1.1634e+12 +--- Getting energy efficiency +--- Energy efficiency: 6.05789e-11 +--- Building what we will add to the total result file command +------ + (build_configuration_raw_result 100001-2-2 1,0,0,0,0,1,2,2 [576000- 0- 0- 0- 0- 576000- 1478400- 1766400] time (s): 601.8507990837097 +Ins Current (mA):429.3623379443553 +Samples: 3000000 +Consumed Energy (mAs): 253718.95188429477 +Consumed Energy (mAh): 70.47748663452633 +Consumed Energy (mWs): 1224569.615399165 +Consumed Energy (mWh): 340.1582264997681 +Avg power (mW): 2047.1024914329862 +Avg Current (mA): 424.16490150051965 +Avg Voltage (V): 4.826194916626024 + Thread : 0 - ThreadProcess id: 11601 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 16:57:46 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 17:07:47 +0100 - Duration: 600028 seconds +Real workload: 5.0217720583004166E10 - Integer reached: 185836 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 11602 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 16:57:46 +0100 +Core id: 5 +Ending time: Sun, 19 Dec 2021 17:07:47 +0100 - Duration: 600008 seconds +Real workload: 4.952856124316381E10 - Integer reached: 184609 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 11603 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 16:57:47 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 17:07:47 +0100 - Duration: 600008 seconds +Real workload: 4.8134513751672144E11 - Integer reached: 550250 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 11604 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 16:57:47 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 17:07:47 +0100 - Duration: 600009 seconds +Real workload: 5.823043177095037E11 - Integer reached: 603043 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + 70.47748663452633 1.1634e+12 6.05789e-11 0 0 +------ + +--- Final result to print to File + -------------------------------------------------------------------------------- + +++++ +++++ +++++ Configuration Description +-------------------------------------------------------------------------------- +Configuration: 100001-2-2 +phone format: 1,0,0,0,0,1,2,2 +Exact values of frequencies: [576000- 0- 0- 0- 0- 576000- 1478400- 1766400] + +Power meter results +------------------------------------------------------------ +time (s): 601.8507990837097 +Ins Current (mA):429.3623379443553 +Samples: 3000000 +Consumed Energy (mAs): 253718.95188429477 +Consumed Energy (mAh): 70.47748663452633 +Consumed Energy (mWs): 1224569.615399165 +Consumed Energy (mWh): 340.1582264997681 +Avg power (mW): 2047.1024914329862 +Avg Current (mA): 424.16490150051965 +Avg Voltage (V): 4.826194916626024 + +Threads results +------------------------------------------------------------ +Thread : 0 - ThreadProcess id: 11601 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 16:57:46 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 17:07:47 +0100 - Duration: 600028 seconds +Real workload: 5.0217720583004166E10 - Integer reached: 185836 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 11602 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 16:57:46 +0100 +Core id: 5 +Ending time: Sun, 19 Dec 2021 17:07:47 +0100 - Duration: 600008 seconds +Real workload: 4.952856124316381E10 - Integer reached: 184609 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 11603 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 16:57:47 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 17:07:47 +0100 - Duration: 600008 seconds +Real workload: 4.8134513751672144E11 - Integer reached: 550250 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 11604 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 16:57:47 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 17:07:47 +0100 - Duration: 600009 seconds +Real workload: 5.823043177095037E11 - Integer reached: 603043 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +Expermiment results +------------------------------------------------------------ +Energy Consumed (mAh): 70.47748663452633 +Workload: 1.1634e+12 +Energy efficiency: 6.05789e-11 +-------------------------------------------------------------------------------- + + +--- Writing to the total result file +--- Removing previous tested configuration tmp_output folder +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_18_41_01/app_output_folder/all_workloads.txt' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_18_41_01/app_output_folder/Thread_0_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_18_41_01/app_output_folder/Thread_0_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_18_41_01/app_output_folder/Thread_1_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_18_41_01/app_output_folder/Thread_1_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_18_41_01/app_output_folder/Thread_2_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_18_41_01/app_output_folder/Thread_2_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_18_41_01/app_output_folder/Thread_3_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_18_41_01/app_output_folder/Thread_3_ready_for_sampling' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_18_41_01/app_output_folder' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_18_41_01/configuration_mesurement.csv' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_18_41_01/energy_power_workload_energyByWorkload_ccInfo' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_18_41_01/logcat_output' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_18_41_01/powermeter_summary.txt' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_18_41_01' +--- Moving the current experiment tmp_folder to the output result folder +writing a temporary file for the main script with format energy_power_workload_energyByWorkload_ccInfo +--- Obtaining experiment summary result to add to result folder +--- Experiment result, Energy consumed = 70.47748663452633 +--- Experiment result, Avg Power = 2047.1024914329862 +--- Experiment result, Total Workload = 1.1634e+12 +--- Experiment result, Energy Efficiency = 6.05789e-11 +--- Adding result to summary file +--- Starting cc information : 0 +--- Ending cc information : 0 +--- The file /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/summary.csv exists we just appending the result to the file +--- Experiments performed on configuration 100001-2-2. +--- Observing a pause betwenn experiment; pause duration : 180 seconds; starting at 04Oct22_18_53_46 +--- Performing experiments on configuration 100010-2-2 +--- Cleaning the tmp expermiment folder : /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- Second step : verifying the battery level +--- Verifying the battery level --- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe ---- Current battery level : ---- The current battery level : 0, still lower than the experiment one : 50 ---- Waiting 30 second... +--- Current battery level : 50 +Current battery level: OKAY +--- Third step calibrating phone core frequency +--- Resetting all frequency configurations + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu5/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor +--- Frequency level of core 0 is 1 +--- Exact frequency of core 0: 576000 +--- Modifying the governor of core 0 +--- Modifying the the current frequency of core 0 with frequency 576000 +--- Frequency level of core 1 is 0 +--- Exact frequency of core 1: 0 +--- Modifying the governor of core 1 +--- Modifying the the current frequency of core 1 with frequency 0 +--- Frequency level of core 2 is 0 +--- Exact frequency of core 2: 0 +--- Modifying the governor of core 2 +--- Modifying the the current frequency of core 2 with frequency 0 +--- Frequency level of core 3 is 0 +--- Exact frequency of core 3: 0 +--- Modifying the governor of core 3 +--- Modifying the the current frequency of core 3 with frequency 0 +--- Frequency level of core 4 is 1 +--- Exact frequency of core 4: 576000 +--- Modifying the governor of core 4 +--- Modifying the the current frequency of core 4 with frequency 576000 +--- Frequency level of core 5 is 0 +--- Exact frequency of core 5: 0 +--- Modifying the governor of core 5 +--- Modifying the the current frequency of core 5 with frequency 0 +--- Frequency level of core 6 is 2 +--- Exact frequency of core 6: 1478400 +--- Modifying the governor of core 6 +--- Modifying the the current frequency of core 6 with frequency 1478400 +--- Frequency level of core 7 is 2 +--- Exact frequency of core 7: 1766400 +--- Modifying the governor of core 7 +--- Modifying the the current frequency of core 7 with frequency 1766400 +--- Calibrating Monsoon power meter, please wait for 10 seconds... +powermeter script : --- Inside the monsoon_power_meter, arg function: 1 +powermeter script : calibration duration = 10 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 50000 + returning 50000 samples after experiments +powermeter script : Power meter calibration okay +--- Monsoon power meter Calibrated +--- starting the benchmarking app +## writing the configuration inside the phone file + --- Removing file /sdcard/experiments_automatization +rm '/sdcard/experiments_automatization/current_configuration.txt' +rm '/sdcard/experiments_automatization/experiment_duration.txt' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ended' +rmdir '/sdcard/experiments_automatization/app_output_folder' +rmdir '/sdcard/experiments_automatization' + --- Clearing the logcat + --- Creating file /sdcard/experiments_automatization +----- Uninstalling experiment app +Success +----- Installing experiment app +Performing Streamed Install +Success +------ Giving rights to experiment app +----- Starting experiment app +Starting: Intent { cmp=com.opportunistask.scheduling.benchmarking_app_to_test_big_cores/.MainActivity } +adb command : ps -A | grep com.opportunistask.scheduling.benchmarking_app_to_test_big_cores + ----- Experiment app started with pid: 12712 +---- waiting for benchmarking app thread to be pinned and to be ready +--- frequency level of core 0 is 1 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 1 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of cores to occupy = 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 4 +--- Now threads are running and the phone is ready to be sampled with the power meter \n--- Threads pids +Thread_0_ready_for_sampling +Thread_1_ready_for_sampling +Thread_2_ready_for_sampling +Thread_3_ready_for_sampling +--- Printing cc_info beginning datas (for the samsung galaxy s8) + --- Starting power meter sampling for about 600 seconds +--- Sampling with the Monsoon power meter +powermeter script : --- Inside the monsoon_power_meter, arg function: 2 +powermeter script : Experiment duration = 600 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 3000000 + returning 3000000 samples after experiments +powermeter script : Total nomber of sample measured : 3000000 +powermeter script : Computing powermeter summary result + Number of samples = 3000000 +powermeter script : We computed the energy on 600 samples +powermeter script : average_power = 2025.8535423935475 +powermeter script : average_power with numpy arrays = 2025.8535423931685 +powermeter script : Summary Result = time (s): 602.7767572402954 +Ins Current (mA):431.99838851003847 +Samples: 3000000 +Consumed Energy (mAs): 252325.65157720537 +Consumed Energy (mAh): 70.09045877144594 +Consumed Energy (mWs): 1218082.616065264 +Consumed Energy (mWh): 338.3562822403511 +Avg power (mW): 2025.8535423935475 +Avg Current (mA): 419.4557348860492 +Avg Voltage (V): 4.8297195005425255 +Exp Batt Life (hrs for 1000mAh battery): NOT COMPUTED +--- Monsoon power meter sampling is finished ! + --- experiment folder path /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- frequency level of core 0 is 1 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 1 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of threads normally started = 4 +--- Number of thread ended: 4 +--- Now threads are stopped, getting the cc_info_level for samsung +--- Copying thread results locally +command /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe pull /sdcard/experiments_automatization/app_output_folder C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder </dev/null +/sdcard/experiments_automatization/app_output_folder/: 8 files pulled, 0 skipped. 0.0 MB/s (1816 bytes in 0.060s) +saving the logcat file to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder -/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder- +--- Parsing result from /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/raw_result.txt +--- Getting exact configuration with frequency +--- Configuration with frequencies = [576000- 0- 0- 0- 576000- 0- 1478400- 1766400] +--- Getting the powermeter summary +--- Powermeter summary: +time (s): 602.7767572402954 +Ins Current (mA):431.99838851003847 +Samples: 3000000 +Consumed Energy (mAs): 252325.65157720537 +Consumed Energy (mAh): 70.09045877144594 +Consumed Energy (mWs): 1218082.616065264 +Consumed Energy (mWh): 338.3562822403511 +Avg power (mW): 2025.8535423935475 +Avg Current (mA): 419.4557348860492 +Avg Voltage (V): 4.8297195005425255 + +--- Getting the total energy consumed of the google pixel +--- Energy consumed = 70.09045877144594 +--- Starting cc_info = 0 +--- Ending cc_info = 0 +--- Getting the average power +--- Avg Power = 2025.8535423935475 +--- Printing the total threads summary +--- Thread results +Thread : 0 - ThreadProcess id: 12738 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 17:13:33 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 17:23:33 +0100 - Duration: 600021 seconds +Real workload: 5.009829505897429E10 - Integer reached: 185624 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 12739 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 17:13:33 +0100 +Core id: 4 +Ending time: Sun, 19 Dec 2021 17:23:33 +0100 - Duration: 600017 seconds +Real workload: 5.021377494928802E10 - Integer reached: 185829 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 12740 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 17:13:33 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 17:23:33 +0100 - Duration: 600009 seconds +Real workload: 4.847041741747317E11 - Integer reached: 552094 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 12741 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 17:13:33 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 17:23:33 +0100 - Duration: 600004 seconds +Real workload: 5.811410948804683E11 - Integer reached: 602463 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +--- Counting the total workload command : print_total_workload /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder app_output_folder 1,0,0,0,1,0,2,2 /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first +--- Total workload : 1.16616e+12 +--- Getting energy efficiency +--- Energy efficiency: 6.01036e-11 +--- Building what we will add to the total result file command +------ + (build_configuration_raw_result 100010-2-2 1,0,0,0,1,0,2,2 [576000- 0- 0- 0- 576000- 0- 1478400- 1766400] time (s): 602.7767572402954 +Ins Current (mA):431.99838851003847 +Samples: 3000000 +Consumed Energy (mAs): 252325.65157720537 +Consumed Energy (mAh): 70.09045877144594 +Consumed Energy (mWs): 1218082.616065264 +Consumed Energy (mWh): 338.3562822403511 +Avg power (mW): 2025.8535423935475 +Avg Current (mA): 419.4557348860492 +Avg Voltage (V): 4.8297195005425255 + Thread : 0 - ThreadProcess id: 12738 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 17:13:33 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 17:23:33 +0100 - Duration: 600021 seconds +Real workload: 5.009829505897429E10 - Integer reached: 185624 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 12739 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 17:13:33 +0100 +Core id: 4 +Ending time: Sun, 19 Dec 2021 17:23:33 +0100 - Duration: 600017 seconds +Real workload: 5.021377494928802E10 - Integer reached: 185829 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 12740 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 17:13:33 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 17:23:33 +0100 - Duration: 600009 seconds +Real workload: 4.847041741747317E11 - Integer reached: 552094 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 12741 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 17:13:33 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 17:23:33 +0100 - Duration: 600004 seconds +Real workload: 5.811410948804683E11 - Integer reached: 602463 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + 70.09045877144594 1.16616e+12 6.01036e-11 0 0 +------ + +--- Final result to print to File + -------------------------------------------------------------------------------- + +++++ +++++ +++++ Configuration Description +-------------------------------------------------------------------------------- +Configuration: 100010-2-2 +phone format: 1,0,0,0,1,0,2,2 +Exact values of frequencies: [576000- 0- 0- 0- 576000- 0- 1478400- 1766400] + +Power meter results +------------------------------------------------------------ +time (s): 602.7767572402954 +Ins Current (mA):431.99838851003847 +Samples: 3000000 +Consumed Energy (mAs): 252325.65157720537 +Consumed Energy (mAh): 70.09045877144594 +Consumed Energy (mWs): 1218082.616065264 +Consumed Energy (mWh): 338.3562822403511 +Avg power (mW): 2025.8535423935475 +Avg Current (mA): 419.4557348860492 +Avg Voltage (V): 4.8297195005425255 + +Threads results +------------------------------------------------------------ +Thread : 0 - ThreadProcess id: 12738 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 17:13:33 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 17:23:33 +0100 - Duration: 600021 seconds +Real workload: 5.009829505897429E10 - Integer reached: 185624 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 12739 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 17:13:33 +0100 +Core id: 4 +Ending time: Sun, 19 Dec 2021 17:23:33 +0100 - Duration: 600017 seconds +Real workload: 5.021377494928802E10 - Integer reached: 185829 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 12740 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 17:13:33 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 17:23:33 +0100 - Duration: 600009 seconds +Real workload: 4.847041741747317E11 - Integer reached: 552094 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 12741 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 17:13:33 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 17:23:33 +0100 - Duration: 600004 seconds +Real workload: 5.811410948804683E11 - Integer reached: 602463 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +Expermiment results +------------------------------------------------------------ +Energy Consumed (mAh): 70.09045877144594 +Workload: 1.16616e+12 +Energy efficiency: 6.01036e-11 +-------------------------------------------------------------------------------- + + +--- Writing to the total result file +--- Removing previous tested configuration tmp_output folder +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_18_56_48/app_output_folder/all_workloads.txt' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_18_56_48/app_output_folder/Thread_0_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_18_56_48/app_output_folder/Thread_0_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_18_56_48/app_output_folder/Thread_1_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_18_56_48/app_output_folder/Thread_1_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_18_56_48/app_output_folder/Thread_2_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_18_56_48/app_output_folder/Thread_2_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_18_56_48/app_output_folder/Thread_3_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_18_56_48/app_output_folder/Thread_3_ready_for_sampling' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_18_56_48/app_output_folder' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_18_56_48/configuration_mesurement.csv' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_18_56_48/energy_power_workload_energyByWorkload_ccInfo' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_18_56_48/logcat_output' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_18_56_48/powermeter_summary.txt' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_18_56_48' +--- Moving the current experiment tmp_folder to the output result folder +writing a temporary file for the main script with format energy_power_workload_energyByWorkload_ccInfo +--- Obtaining experiment summary result to add to result folder +--- Experiment result, Energy consumed = 70.09045877144594 +--- Experiment result, Avg Power = 2025.8535423935475 +--- Experiment result, Total Workload = 1.16616e+12 +--- Experiment result, Energy Efficiency = 6.01036e-11 +--- Adding result to summary file +--- Starting cc information : 0 +--- Ending cc information : 0 +--- The file /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/summary.csv exists we just appending the result to the file +--- Experiments performed on configuration 100010-2-2. +--- Observing a pause betwenn experiment; pause duration : 180 seconds; starting at 04Oct22_19_09_34 +--- Performing experiments on configuration 100010-2-2 +--- Cleaning the tmp expermiment folder : /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- Second step : verifying the battery level +--- Verifying the battery level --- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe ---- Current battery level : ---- The current battery level : 0, still lower than the experiment one : 50 ---- Waiting 30 second... +--- Current battery level : 49 +--- Current battery is low, so we need to wait battery --- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe ---- Current battery level : ---- The current battery level : 0, still lower than the experiment one : 50 +--- Current battery level : 49 +--- Desactivating the charge stop level option +--- Desactivating the charge stop level option, command : /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe shell echo 100 > /sys/devices/platform/soc/soc:google,charger/charge_stop_level </dev/null +--- The current battery level : 49, still lower than the experiment one : 50 --- Waiting 30 second... --- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe ---- Current battery level : ---- The current battery level : 0, still lower than the experiment one : 50 +--- Current battery level : 49 +--- The current battery level : 49, still lower than the experiment one : 50 --- Waiting 30 second... --- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe ---- Current battery level : ---- The current battery level : 0, still lower than the experiment one : 50 ---- Waiting 30 second... +--- Current battery level : 50 +--- Current battery is now equal to the experiment battery level +--- Third step calibrating phone core frequency +--- Resetting all frequency configurations + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu5/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor +--- Frequency level of core 0 is 1 +--- Exact frequency of core 0: 576000 +--- Modifying the governor of core 0 +--- Modifying the the current frequency of core 0 with frequency 576000 +--- Frequency level of core 1 is 0 +--- Exact frequency of core 1: 0 +--- Modifying the governor of core 1 +--- Modifying the the current frequency of core 1 with frequency 0 +--- Frequency level of core 2 is 0 +--- Exact frequency of core 2: 0 +--- Modifying the governor of core 2 +--- Modifying the the current frequency of core 2 with frequency 0 +--- Frequency level of core 3 is 0 +--- Exact frequency of core 3: 0 +--- Modifying the governor of core 3 +--- Modifying the the current frequency of core 3 with frequency 0 +--- Frequency level of core 4 is 1 +--- Exact frequency of core 4: 576000 +--- Modifying the governor of core 4 +--- Modifying the the current frequency of core 4 with frequency 576000 +--- Frequency level of core 5 is 0 +--- Exact frequency of core 5: 0 +--- Modifying the governor of core 5 +--- Modifying the the current frequency of core 5 with frequency 0 +--- Frequency level of core 6 is 2 +--- Exact frequency of core 6: 1478400 +--- Modifying the governor of core 6 +--- Modifying the the current frequency of core 6 with frequency 1478400 +--- Frequency level of core 7 is 2 +--- Exact frequency of core 7: 1766400 +--- Modifying the governor of core 7 +--- Modifying the the current frequency of core 7 with frequency 1766400 +--- Calibrating Monsoon power meter, please wait for 10 seconds... +powermeter script : --- Inside the monsoon_power_meter, arg function: 1 +powermeter script : calibration duration = 10 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 50000 + returning 50000 samples after experiments +powermeter script : Power meter calibration okay +--- Monsoon power meter Calibrated +--- starting the benchmarking app +## writing the configuration inside the phone file + --- Removing file /sdcard/experiments_automatization +rm '/sdcard/experiments_automatization/current_configuration.txt' +rm '/sdcard/experiments_automatization/experiment_duration.txt' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ended' +rmdir '/sdcard/experiments_automatization/app_output_folder' +rmdir '/sdcard/experiments_automatization' + --- Clearing the logcat + --- Creating file /sdcard/experiments_automatization +----- Uninstalling experiment app +Success +----- Installing experiment app +Performing Streamed Install +Success +------ Giving rights to experiment app +----- Starting experiment app +Starting: Intent { cmp=com.opportunistask.scheduling.benchmarking_app_to_test_big_cores/.MainActivity } +adb command : ps -A | grep com.opportunistask.scheduling.benchmarking_app_to_test_big_cores + ----- Experiment app started with pid: 13752 +---- waiting for benchmarking app thread to be pinned and to be ready +--- frequency level of core 0 is 1 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 1 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of cores to occupy = 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 3 +--- The current number of thread ready to be sambled : 3, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 4 +--- Now threads are running and the phone is ready to be sampled with the power meter \n--- Threads pids +Thread_0_ready_for_sampling +Thread_1_ready_for_sampling +Thread_2_ready_for_sampling +Thread_3_ready_for_sampling +--- Printing cc_info beginning datas (for the samsung galaxy s8) + --- Starting power meter sampling for about 600 seconds +--- Sampling with the Monsoon power meter +powermeter script : --- Inside the monsoon_power_meter, arg function: 2 +powermeter script : Experiment duration = 600 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 3000000 + returning 3000000 samples after experiments +powermeter script : Total nomber of sample measured : 3000000 +powermeter script : Computing powermeter summary result + Number of samples = 3000000 +powermeter script : We computed the energy on 600 samples +powermeter script : average_power = 2044.639552517949 +powermeter script : average_power with numpy arrays = 2044.6395525175637 +powermeter script : Summary Result = time (s): 602.8305461406708 +Ins Current (mA):445.8878293534082 +Samples: 3000000 +Consumed Energy (mAs): 254120.9449099966 +Consumed Energy (mAh): 70.58915136388794 +Consumed Energy (mWs): 1226448.8999144884 +Consumed Energy (mWh): 340.6802499762468 +Avg power (mW): 2044.639552517949 +Avg Current (mA): 423.58669686666434 +Avg Voltage (V): 4.826968286876006 +Exp Batt Life (hrs for 1000mAh battery): NOT COMPUTED +--- Monsoon power meter sampling is finished ! + --- experiment folder path /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- frequency level of core 0 is 1 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 1 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of threads normally started = 4 +--- Number of thread ended: 4 +--- Now threads are stopped, getting the cc_info_level for samsung +--- Copying thread results locally +command /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe pull /sdcard/experiments_automatization/app_output_folder C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder </dev/null +/sdcard/experiments_automatization/app_output_folder/: 8 files pulled, 0 skipped. 0.0 MB/s (1816 bytes in 0.063s) +saving the logcat file to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder -/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder- +--- Parsing result from /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/raw_result.txt +--- Getting exact configuration with frequency +--- Configuration with frequencies = [576000- 0- 0- 0- 576000- 0- 1478400- 1766400] +--- Getting the powermeter summary +--- Powermeter summary: +time (s): 602.8305461406708 +Ins Current (mA):445.8878293534082 +Samples: 3000000 +Consumed Energy (mAs): 254120.9449099966 +Consumed Energy (mAh): 70.58915136388794 +Consumed Energy (mWs): 1226448.8999144884 +Consumed Energy (mWh): 340.6802499762468 +Avg power (mW): 2044.639552517949 +Avg Current (mA): 423.58669686666434 +Avg Voltage (V): 4.826968286876006 + +--- Getting the total energy consumed of the google pixel +--- Energy consumed = 70.58915136388794 +--- Starting cc_info = 0 +--- Ending cc_info = 0 +--- Getting the average power +--- Avg Power = 2044.639552517949 +--- Printing the total threads summary +--- Thread results +Thread : 0 - ThreadProcess id: 13777 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 17:30:22 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 17:40:22 +0100 - Duration: 600016 seconds +Real workload: 4.963775507664552E10 - Integer reached: 184804 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 13778 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 17:30:22 +0100 +Core id: 4 +Ending time: Sun, 19 Dec 2021 17:40:22 +0100 - Duration: 600010 seconds +Real workload: 5.020926583030919E10 - Integer reached: 185821 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 13780 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 17:30:22 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 17:40:22 +0100 - Duration: 600008 seconds +Real workload: 4.811924106856461E11 - Integer reached: 550166 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 13781 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 17:30:22 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 17:40:22 +0100 - Duration: 600010 seconds +Real workload: 5.807482779180227E11 - Integer reached: 602267 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +--- Counting the total workload command : print_total_workload /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder app_output_folder 1,0,0,0,1,0,2,2 /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first +--- Total workload : 1.16179e+12 +--- Getting energy efficiency +--- Energy efficiency: 6.0759e-11 +--- Building what we will add to the total result file command +------ + (build_configuration_raw_result 100010-2-2 1,0,0,0,1,0,2,2 [576000- 0- 0- 0- 576000- 0- 1478400- 1766400] time (s): 602.8305461406708 +Ins Current (mA):445.8878293534082 +Samples: 3000000 +Consumed Energy (mAs): 254120.9449099966 +Consumed Energy (mAh): 70.58915136388794 +Consumed Energy (mWs): 1226448.8999144884 +Consumed Energy (mWh): 340.6802499762468 +Avg power (mW): 2044.639552517949 +Avg Current (mA): 423.58669686666434 +Avg Voltage (V): 4.826968286876006 + Thread : 0 - ThreadProcess id: 13777 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 17:30:22 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 17:40:22 +0100 - Duration: 600016 seconds +Real workload: 4.963775507664552E10 - Integer reached: 184804 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 13778 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 17:30:22 +0100 +Core id: 4 +Ending time: Sun, 19 Dec 2021 17:40:22 +0100 - Duration: 600010 seconds +Real workload: 5.020926583030919E10 - Integer reached: 185821 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 13780 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 17:30:22 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 17:40:22 +0100 - Duration: 600008 seconds +Real workload: 4.811924106856461E11 - Integer reached: 550166 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 13781 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 17:30:22 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 17:40:22 +0100 - Duration: 600010 seconds +Real workload: 5.807482779180227E11 - Integer reached: 602267 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + 70.58915136388794 1.16179e+12 6.0759e-11 0 0 +------ + +--- Final result to print to File + -------------------------------------------------------------------------------- + +++++ +++++ +++++ Configuration Description +-------------------------------------------------------------------------------- +Configuration: 100010-2-2 +phone format: 1,0,0,0,1,0,2,2 +Exact values of frequencies: [576000- 0- 0- 0- 576000- 0- 1478400- 1766400] + +Power meter results +------------------------------------------------------------ +time (s): 602.8305461406708 +Ins Current (mA):445.8878293534082 +Samples: 3000000 +Consumed Energy (mAs): 254120.9449099966 +Consumed Energy (mAh): 70.58915136388794 +Consumed Energy (mWs): 1226448.8999144884 +Consumed Energy (mWh): 340.6802499762468 +Avg power (mW): 2044.639552517949 +Avg Current (mA): 423.58669686666434 +Avg Voltage (V): 4.826968286876006 + +Threads results +------------------------------------------------------------ +Thread : 0 - ThreadProcess id: 13777 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 17:30:22 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 17:40:22 +0100 - Duration: 600016 seconds +Real workload: 4.963775507664552E10 - Integer reached: 184804 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 13778 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 17:30:22 +0100 +Core id: 4 +Ending time: Sun, 19 Dec 2021 17:40:22 +0100 - Duration: 600010 seconds +Real workload: 5.020926583030919E10 - Integer reached: 185821 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 13780 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 17:30:22 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 17:40:22 +0100 - Duration: 600008 seconds +Real workload: 4.811924106856461E11 - Integer reached: 550166 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 13781 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 17:30:22 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 17:40:22 +0100 - Duration: 600010 seconds +Real workload: 5.807482779180227E11 - Integer reached: 602267 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +Expermiment results +------------------------------------------------------------ +Energy Consumed (mAh): 70.58915136388794 +Workload: 1.16179e+12 +Energy efficiency: 6.0759e-11 +-------------------------------------------------------------------------------- + + +--- Writing to the total result file +--- Removing previous tested configuration tmp_output folder +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_19_12_36/app_output_folder/all_workloads.txt' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_19_12_36/app_output_folder/Thread_0_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_19_12_36/app_output_folder/Thread_0_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_19_12_36/app_output_folder/Thread_1_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_19_12_36/app_output_folder/Thread_1_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_19_12_36/app_output_folder/Thread_2_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_19_12_36/app_output_folder/Thread_2_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_19_12_36/app_output_folder/Thread_3_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_19_12_36/app_output_folder/Thread_3_ready_for_sampling' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_19_12_36/app_output_folder' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_19_12_36/configuration_mesurement.csv' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_19_12_36/energy_power_workload_energyByWorkload_ccInfo' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_19_12_36/logcat_output' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_19_12_36/powermeter_summary.txt' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_19_12_36' +--- Moving the current experiment tmp_folder to the output result folder +writing a temporary file for the main script with format energy_power_workload_energyByWorkload_ccInfo +--- Obtaining experiment summary result to add to result folder +--- Experiment result, Energy consumed = 70.58915136388794 +--- Experiment result, Avg Power = 2044.639552517949 +--- Experiment result, Total Workload = 1.16179e+12 +--- Experiment result, Energy Efficiency = 6.0759e-11 +--- Adding result to summary file +--- Starting cc information : 0 +--- Ending cc information : 0 +--- The file /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/summary.csv exists we just appending the result to the file +--- Experiments performed on configuration 100010-2-2. +--- Observing a pause betwenn experiment; pause duration : 180 seconds; starting at 04Oct22_19_26_23 +--- Performing experiments on configuration 100010-2-2 +--- Cleaning the tmp expermiment folder : /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- Second step : verifying the battery level +--- Verifying the battery level +--- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe +--- Current battery level : 50 +Current battery level: OKAY +--- Third step calibrating phone core frequency +--- Resetting all frequency configurations + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu5/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor +--- Frequency level of core 0 is 1 +--- Exact frequency of core 0: 576000 +--- Modifying the governor of core 0 +--- Modifying the the current frequency of core 0 with frequency 576000 +--- Frequency level of core 1 is 0 +--- Exact frequency of core 1: 0 +--- Modifying the governor of core 1 +--- Modifying the the current frequency of core 1 with frequency 0 +--- Frequency level of core 2 is 0 +--- Exact frequency of core 2: 0 +--- Modifying the governor of core 2 +--- Modifying the the current frequency of core 2 with frequency 0 +--- Frequency level of core 3 is 0 +--- Exact frequency of core 3: 0 +--- Modifying the governor of core 3 +--- Modifying the the current frequency of core 3 with frequency 0 +--- Frequency level of core 4 is 1 +--- Exact frequency of core 4: 576000 +--- Modifying the governor of core 4 +--- Modifying the the current frequency of core 4 with frequency 576000 +--- Frequency level of core 5 is 0 +--- Exact frequency of core 5: 0 +--- Modifying the governor of core 5 +--- Modifying the the current frequency of core 5 with frequency 0 +--- Frequency level of core 6 is 2 +--- Exact frequency of core 6: 1478400 +--- Modifying the governor of core 6 +--- Modifying the the current frequency of core 6 with frequency 1478400 +--- Frequency level of core 7 is 2 +--- Exact frequency of core 7: 1766400 +--- Modifying the governor of core 7 +--- Modifying the the current frequency of core 7 with frequency 1766400 +--- Calibrating Monsoon power meter, please wait for 10 seconds... +powermeter script : --- Inside the monsoon_power_meter, arg function: 1 +powermeter script : calibration duration = 10 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 50000 + returning 50000 samples after experiments +powermeter script : Power meter calibration okay +--- Monsoon power meter Calibrated +--- starting the benchmarking app +## writing the configuration inside the phone file + --- Removing file /sdcard/experiments_automatization +rm '/sdcard/experiments_automatization/current_configuration.txt' +rm '/sdcard/experiments_automatization/experiment_duration.txt' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ended' +rmdir '/sdcard/experiments_automatization/app_output_folder' +rmdir '/sdcard/experiments_automatization' + --- Clearing the logcat + --- Creating file /sdcard/experiments_automatization +----- Uninstalling experiment app +Success +----- Installing experiment app +Performing Streamed Install +Success +------ Giving rights to experiment app +----- Starting experiment app +Starting: Intent { cmp=com.opportunistask.scheduling.benchmarking_app_to_test_big_cores/.MainActivity } +adb command : ps -A | grep com.opportunistask.scheduling.benchmarking_app_to_test_big_cores + ----- Experiment app started with pid: 15105 +---- waiting for benchmarking app thread to be pinned and to be ready +--- frequency level of core 0 is 1 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 1 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of cores to occupy = 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 4 +--- Now threads are running and the phone is ready to be sampled with the power meter \n--- Threads pids +Thread_0_ready_for_sampling +Thread_1_ready_for_sampling +Thread_2_ready_for_sampling +Thread_3_ready_for_sampling +--- Printing cc_info beginning datas (for the samsung galaxy s8) + --- Starting power meter sampling for about 600 seconds +--- Sampling with the Monsoon power meter +powermeter script : --- Inside the monsoon_power_meter, arg function: 2 +powermeter script : Experiment duration = 600 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 3000000 + returning 3000000 samples after experiments +powermeter script : Total nomber of sample measured : 3000000 +powermeter script : Computing powermeter summary result + Number of samples = 3000000 +powermeter script : We computed the energy on 600 samples +powermeter script : average_power = 2066.2232265127523 +powermeter script : average_power with numpy arrays = 2066.2232265125467 +powermeter script : Summary Result = time (s): 601.6390361785889 +Ins Current (mA):458.8214325171722 +Samples: 3000000 +Consumed Energy (mAs): 256708.41391487207 +Consumed Energy (mAh): 71.30789275413113 +Consumed Energy (mWs): 1238155.4695201772 +Consumed Energy (mWh): 343.9320748667159 +Avg power (mW): 2066.2232265127523 +Avg Current (mA): 428.3966252915104 +Avg Voltage (V): 4.823154769500699 +Exp Batt Life (hrs for 1000mAh battery): NOT COMPUTED +--- Monsoon power meter sampling is finished ! + --- experiment folder path /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- frequency level of core 0 is 1 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 1 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of threads normally started = 4 +--- Number of thread ended: 4 +--- Now threads are stopped, getting the cc_info_level for samsung +--- Copying thread results locally +command /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe pull /sdcard/experiments_automatization/app_output_folder C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder </dev/null +/sdcard/experiments_automatization/app_output_folder/: 8 files pulled, 0 skipped. 0.0 MB/s (1816 bytes in 0.070s) +saving the logcat file to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder -/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder- +--- Parsing result from /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/raw_result.txt +--- Getting exact configuration with frequency +--- Configuration with frequencies = [576000- 0- 0- 0- 576000- 0- 1478400- 1766400] +--- Getting the powermeter summary +--- Powermeter summary: +time (s): 601.6390361785889 +Ins Current (mA):458.8214325171722 +Samples: 3000000 +Consumed Energy (mAs): 256708.41391487207 +Consumed Energy (mAh): 71.30789275413113 +Consumed Energy (mWs): 1238155.4695201772 +Consumed Energy (mWh): 343.9320748667159 +Avg power (mW): 2066.2232265127523 +Avg Current (mA): 428.3966252915104 +Avg Voltage (V): 4.823154769500699 + +--- Getting the total energy consumed of the google pixel +--- Energy consumed = 71.30789275413113 +--- Starting cc_info = 0 +--- Ending cc_info = 0 +--- Getting the average power +--- Avg Power = 2066.2232265127523 +--- Printing the total threads summary +--- Thread results +Thread : 0 - ThreadProcess id: 15130 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 17:46:11 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 17:56:11 +0100 - Duration: 600018 seconds +Real workload: 5.023575989366942E10 - Integer reached: 185868 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 15131 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 17:46:11 +0100 +Core id: 4 +Ending time: Sun, 19 Dec 2021 17:56:11 +0100 - Duration: 600002 seconds +Real workload: 4.952856124316381E10 - Integer reached: 184609 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 15132 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 17:46:11 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 17:56:11 +0100 - Duration: 600005 seconds +Real workload: 4.796157019801365E11 - Integer reached: 549298 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 15134 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 17:46:12 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 17:56:12 +0100 - Duration: 600010 seconds +Real workload: 5.827057082039834E11 - Integer reached: 603243 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +--- Counting the total workload command : print_total_workload /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder app_output_folder 1,0,0,0,1,0,2,2 /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first +--- Total workload : 1.16209e+12 +--- Getting energy efficiency +--- Energy efficiency: 6.13618e-11 +--- Building what we will add to the total result file command +------ + (build_configuration_raw_result 100010-2-2 1,0,0,0,1,0,2,2 [576000- 0- 0- 0- 576000- 0- 1478400- 1766400] time (s): 601.6390361785889 +Ins Current (mA):458.8214325171722 +Samples: 3000000 +Consumed Energy (mAs): 256708.41391487207 +Consumed Energy (mAh): 71.30789275413113 +Consumed Energy (mWs): 1238155.4695201772 +Consumed Energy (mWh): 343.9320748667159 +Avg power (mW): 2066.2232265127523 +Avg Current (mA): 428.3966252915104 +Avg Voltage (V): 4.823154769500699 + Thread : 0 - ThreadProcess id: 15130 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 17:46:11 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 17:56:11 +0100 - Duration: 600018 seconds +Real workload: 5.023575989366942E10 - Integer reached: 185868 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 15131 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 17:46:11 +0100 +Core id: 4 +Ending time: Sun, 19 Dec 2021 17:56:11 +0100 - Duration: 600002 seconds +Real workload: 4.952856124316381E10 - Integer reached: 184609 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 15132 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 17:46:11 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 17:56:11 +0100 - Duration: 600005 seconds +Real workload: 4.796157019801365E11 - Integer reached: 549298 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 15134 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 17:46:12 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 17:56:12 +0100 - Duration: 600010 seconds +Real workload: 5.827057082039834E11 - Integer reached: 603243 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + 71.30789275413113 1.16209e+12 6.13618e-11 0 0 +------ + +--- Final result to print to File + -------------------------------------------------------------------------------- + +++++ +++++ +++++ Configuration Description +-------------------------------------------------------------------------------- +Configuration: 100010-2-2 +phone format: 1,0,0,0,1,0,2,2 +Exact values of frequencies: [576000- 0- 0- 0- 576000- 0- 1478400- 1766400] + +Power meter results +------------------------------------------------------------ +time (s): 601.6390361785889 +Ins Current (mA):458.8214325171722 +Samples: 3000000 +Consumed Energy (mAs): 256708.41391487207 +Consumed Energy (mAh): 71.30789275413113 +Consumed Energy (mWs): 1238155.4695201772 +Consumed Energy (mWh): 343.9320748667159 +Avg power (mW): 2066.2232265127523 +Avg Current (mA): 428.3966252915104 +Avg Voltage (V): 4.823154769500699 + +Threads results +------------------------------------------------------------ +Thread : 0 - ThreadProcess id: 15130 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 17:46:11 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 17:56:11 +0100 - Duration: 600018 seconds +Real workload: 5.023575989366942E10 - Integer reached: 185868 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 15131 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 17:46:11 +0100 +Core id: 4 +Ending time: Sun, 19 Dec 2021 17:56:11 +0100 - Duration: 600002 seconds +Real workload: 4.952856124316381E10 - Integer reached: 184609 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 15132 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 17:46:11 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 17:56:11 +0100 - Duration: 600005 seconds +Real workload: 4.796157019801365E11 - Integer reached: 549298 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 15134 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 17:46:12 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 17:56:12 +0100 - Duration: 600010 seconds +Real workload: 5.827057082039834E11 - Integer reached: 603243 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +Expermiment results +------------------------------------------------------------ +Energy Consumed (mAh): 71.30789275413113 +Workload: 1.16209e+12 +Energy efficiency: 6.13618e-11 +-------------------------------------------------------------------------------- + + +--- Writing to the total result file +--- Removing previous tested configuration tmp_output folder +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_19_29_26/app_output_folder/all_workloads.txt' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_19_29_26/app_output_folder/Thread_0_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_19_29_26/app_output_folder/Thread_0_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_19_29_26/app_output_folder/Thread_1_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_19_29_26/app_output_folder/Thread_1_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_19_29_26/app_output_folder/Thread_2_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_19_29_26/app_output_folder/Thread_2_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_19_29_26/app_output_folder/Thread_3_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_19_29_26/app_output_folder/Thread_3_ready_for_sampling' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_19_29_26/app_output_folder' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_19_29_26/configuration_mesurement.csv' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_19_29_26/energy_power_workload_energyByWorkload_ccInfo' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_19_29_26/logcat_output' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_19_29_26/powermeter_summary.txt' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_19_29_26' +--- Moving the current experiment tmp_folder to the output result folder +writing a temporary file for the main script with format energy_power_workload_energyByWorkload_ccInfo +--- Obtaining experiment summary result to add to result folder +--- Experiment result, Energy consumed = 71.30789275413113 +--- Experiment result, Avg Power = 2066.2232265127523 +--- Experiment result, Total Workload = 1.16209e+12 +--- Experiment result, Energy Efficiency = 6.13618e-11 +--- Adding result to summary file +--- Starting cc information : 0 +--- Ending cc information : 0 +--- The file /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/summary.csv exists we just appending the result to the file +--- Experiments performed on configuration 100010-2-2. +--- Observing a pause betwenn experiment; pause duration : 180 seconds; starting at 04Oct22_19_42_10 +--- Performing experiments on configuration 100100-2-2 +--- Cleaning the tmp expermiment folder : /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- Second step : verifying the battery level +--- Verifying the battery level +--- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe +--- Current battery level : 50 +Current battery level: OKAY +--- Third step calibrating phone core frequency +--- Resetting all frequency configurations + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu5/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor +--- Frequency level of core 0 is 1 +--- Exact frequency of core 0: 576000 +--- Modifying the governor of core 0 +--- Modifying the the current frequency of core 0 with frequency 576000 +--- Frequency level of core 1 is 0 +--- Exact frequency of core 1: 0 +--- Modifying the governor of core 1 +--- Modifying the the current frequency of core 1 with frequency 0 +--- Frequency level of core 2 is 0 +--- Exact frequency of core 2: 0 +--- Modifying the governor of core 2 +--- Modifying the the current frequency of core 2 with frequency 0 +--- Frequency level of core 3 is 1 +--- Exact frequency of core 3: 576000 +--- Modifying the governor of core 3 +--- Modifying the the current frequency of core 3 with frequency 576000 +--- Frequency level of core 4 is 0 +--- Exact frequency of core 4: 0 +--- Modifying the governor of core 4 +--- Modifying the the current frequency of core 4 with frequency 0 +--- Frequency level of core 5 is 0 +--- Exact frequency of core 5: 0 +--- Modifying the governor of core 5 +--- Modifying the the current frequency of core 5 with frequency 0 +--- Frequency level of core 6 is 2 +--- Exact frequency of core 6: 1478400 +--- Modifying the governor of core 6 +--- Modifying the the current frequency of core 6 with frequency 1478400 +--- Frequency level of core 7 is 2 +--- Exact frequency of core 7: 1766400 +--- Modifying the governor of core 7 +--- Modifying the the current frequency of core 7 with frequency 1766400 +--- Calibrating Monsoon power meter, please wait for 10 seconds... +powermeter script : --- Inside the monsoon_power_meter, arg function: 1 +powermeter script : calibration duration = 10 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 50000 + returning 50000 samples after experiments +powermeter script : Power meter calibration okay +--- Monsoon power meter Calibrated +--- starting the benchmarking app +## writing the configuration inside the phone file + --- Removing file /sdcard/experiments_automatization +rm '/sdcard/experiments_automatization/current_configuration.txt' +rm '/sdcard/experiments_automatization/experiment_duration.txt' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ended' +rmdir '/sdcard/experiments_automatization/app_output_folder' +rmdir '/sdcard/experiments_automatization' + --- Clearing the logcat + --- Creating file /sdcard/experiments_automatization +----- Uninstalling experiment app +Success +----- Installing experiment app +Performing Streamed Install +Success +------ Giving rights to experiment app +----- Starting experiment app +Starting: Intent { cmp=com.opportunistask.scheduling.benchmarking_app_to_test_big_cores/.MainActivity } +adb command : ps -A | grep com.opportunistask.scheduling.benchmarking_app_to_test_big_cores + ----- Experiment app started with pid: 16163 +---- waiting for benchmarking app thread to be pinned and to be ready +--- frequency level of core 0 is 1 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 1 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of cores to occupy = 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 4 +--- Now threads are running and the phone is ready to be sampled with the power meter \n--- Threads pids +Thread_0_ready_for_sampling +Thread_1_ready_for_sampling +Thread_2_ready_for_sampling +Thread_3_ready_for_sampling +--- Printing cc_info beginning datas (for the samsung galaxy s8) + --- Starting power meter sampling for about 600 seconds +--- Sampling with the Monsoon power meter +powermeter script : --- Inside the monsoon_power_meter, arg function: 2 +powermeter script : Experiment duration = 600 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 3000000 + returning 3000000 samples after experiments +powermeter script : Total nomber of sample measured : 3000000 +powermeter script : Computing powermeter summary result + Number of samples = 3000000 +powermeter script : We computed the energy on 600 samples +powermeter script : average_power = 2045.810308683365 +powermeter script : average_power with numpy arrays = 2045.8103086828128 +powermeter script : Summary Result = time (s): 601.7589974403381 +Ins Current (mA):409.8613146194553 +Samples: 3000000 +Consumed Energy (mAs): 254674.0009476432 +Consumed Energy (mAh): 70.742778041012 +Consumed Energy (mWs): 1228735.7138408432 +Consumed Energy (mWh): 341.3154760669009 +Avg power (mW): 2045.810308683365 +Avg Current (mA): 423.85207750261424 +Avg Voltage (V): 4.826708225042844 +Exp Batt Life (hrs for 1000mAh battery): NOT COMPUTED +--- Monsoon power meter sampling is finished ! + --- experiment folder path /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- frequency level of core 0 is 1 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 1 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of threads normally started = 4 +--- Number of thread ended: 4 +--- Now threads are stopped, getting the cc_info_level for samsung +--- Copying thread results locally +command /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe pull /sdcard/experiments_automatization/app_output_folder C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder </dev/null +/sdcard/experiments_automatization/app_output_folder/: 8 files pulled, 0 skipped. 0.0 MB/s (1818 bytes in 0.065s) +saving the logcat file to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder -/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder- +--- Parsing result from /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/raw_result.txt +--- Getting exact configuration with frequency +--- Configuration with frequencies = [576000- 0- 0- 576000- 0- 0- 1478400- 1766400] +--- Getting the powermeter summary +--- Powermeter summary: +time (s): 601.7589974403381 +Ins Current (mA):409.8613146194553 +Samples: 3000000 +Consumed Energy (mAs): 254674.0009476432 +Consumed Energy (mAh): 70.742778041012 +Consumed Energy (mWs): 1228735.7138408432 +Consumed Energy (mWh): 341.3154760669009 +Avg power (mW): 2045.810308683365 +Avg Current (mA): 423.85207750261424 +Avg Voltage (V): 4.826708225042844 + +--- Getting the total energy consumed of the google pixel +--- Energy consumed = 70.742778041012 +--- Starting cc_info = 0 +--- Ending cc_info = 0 +--- Getting the average power +--- Avg Power = 2045.810308683365 +--- Printing the total threads summary +--- Thread results +Thread : 0 - ThreadProcess id: 16188 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 18:01:58 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 18:11:58 +0100 - Duration: 600033 seconds +Real workload: 4.9599663051341324E10 - Integer reached: 184736 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 16189 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 18:01:58 +0100 +Core id: 3 +Ending time: Sun, 19 Dec 2021 18:11:58 +0100 - Duration: 600022 seconds +Real workload: 4.9461427046061775E10 - Integer reached: 184489 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 16191 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 18:01:58 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 18:11:58 +0100 - Duration: 600005 seconds +Real workload: 4.8560975258446423E11 - Integer reached: 552590 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 16192 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 18:01:58 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 18:11:58 +0100 - Duration: 600001 seconds +Real workload: 5.76252732566476E11 - Integer reached: 600019 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +--- Counting the total workload command : print_total_workload /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder app_output_folder 1,0,0,1,0,0,2,2 /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first +--- Total workload : 1.16092e+12 +--- Getting energy efficiency +--- Energy efficiency: 6.09368e-11 +--- Building what we will add to the total result file command +------ + (build_configuration_raw_result 100100-2-2 1,0,0,1,0,0,2,2 [576000- 0- 0- 576000- 0- 0- 1478400- 1766400] time (s): 601.7589974403381 +Ins Current (mA):409.8613146194553 +Samples: 3000000 +Consumed Energy (mAs): 254674.0009476432 +Consumed Energy (mAh): 70.742778041012 +Consumed Energy (mWs): 1228735.7138408432 +Consumed Energy (mWh): 341.3154760669009 +Avg power (mW): 2045.810308683365 +Avg Current (mA): 423.85207750261424 +Avg Voltage (V): 4.826708225042844 + Thread : 0 - ThreadProcess id: 16188 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 18:01:58 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 18:11:58 +0100 - Duration: 600033 seconds +Real workload: 4.9599663051341324E10 - Integer reached: 184736 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 16189 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 18:01:58 +0100 +Core id: 3 +Ending time: Sun, 19 Dec 2021 18:11:58 +0100 - Duration: 600022 seconds +Real workload: 4.9461427046061775E10 - Integer reached: 184489 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 16191 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 18:01:58 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 18:11:58 +0100 - Duration: 600005 seconds +Real workload: 4.8560975258446423E11 - Integer reached: 552590 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 16192 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 18:01:58 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 18:11:58 +0100 - Duration: 600001 seconds +Real workload: 5.76252732566476E11 - Integer reached: 600019 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + 70.742778041012 1.16092e+12 6.09368e-11 0 0 +------ + +--- Final result to print to File + -------------------------------------------------------------------------------- + +++++ +++++ +++++ Configuration Description +-------------------------------------------------------------------------------- +Configuration: 100100-2-2 +phone format: 1,0,0,1,0,0,2,2 +Exact values of frequencies: [576000- 0- 0- 576000- 0- 0- 1478400- 1766400] + +Power meter results +------------------------------------------------------------ +time (s): 601.7589974403381 +Ins Current (mA):409.8613146194553 +Samples: 3000000 +Consumed Energy (mAs): 254674.0009476432 +Consumed Energy (mAh): 70.742778041012 +Consumed Energy (mWs): 1228735.7138408432 +Consumed Energy (mWh): 341.3154760669009 +Avg power (mW): 2045.810308683365 +Avg Current (mA): 423.85207750261424 +Avg Voltage (V): 4.826708225042844 + +Threads results +------------------------------------------------------------ +Thread : 0 - ThreadProcess id: 16188 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 18:01:58 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 18:11:58 +0100 - Duration: 600033 seconds +Real workload: 4.9599663051341324E10 - Integer reached: 184736 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 16189 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 18:01:58 +0100 +Core id: 3 +Ending time: Sun, 19 Dec 2021 18:11:58 +0100 - Duration: 600022 seconds +Real workload: 4.9461427046061775E10 - Integer reached: 184489 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 16191 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 18:01:58 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 18:11:58 +0100 - Duration: 600005 seconds +Real workload: 4.8560975258446423E11 - Integer reached: 552590 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 16192 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 18:01:58 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 18:11:58 +0100 - Duration: 600001 seconds +Real workload: 5.76252732566476E11 - Integer reached: 600019 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +Expermiment results +------------------------------------------------------------ +Energy Consumed (mAh): 70.742778041012 +Workload: 1.16092e+12 +Energy efficiency: 6.09368e-11 +-------------------------------------------------------------------------------- + + +--- Writing to the total result file +--- Removing previous tested configuration tmp_output folder +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_19_45_12/app_output_folder/all_workloads.txt' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_19_45_12/app_output_folder/Thread_0_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_19_45_12/app_output_folder/Thread_0_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_19_45_12/app_output_folder/Thread_1_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_19_45_12/app_output_folder/Thread_1_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_19_45_12/app_output_folder/Thread_2_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_19_45_12/app_output_folder/Thread_2_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_19_45_12/app_output_folder/Thread_3_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_19_45_12/app_output_folder/Thread_3_ready_for_sampling' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_19_45_12/app_output_folder' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_19_45_12/configuration_mesurement.csv' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_19_45_12/energy_power_workload_energyByWorkload_ccInfo' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_19_45_12/logcat_output' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_19_45_12/powermeter_summary.txt' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_19_45_12' +--- Moving the current experiment tmp_folder to the output result folder +writing a temporary file for the main script with format energy_power_workload_energyByWorkload_ccInfo +--- Obtaining experiment summary result to add to result folder +--- Experiment result, Energy consumed = 70.742778041012 +--- Experiment result, Avg Power = 2045.810308683365 +--- Experiment result, Total Workload = 1.16092e+12 +--- Experiment result, Energy Efficiency = 6.09368e-11 +--- Adding result to summary file +--- Starting cc information : 0 +--- Ending cc information : 0 +--- The file /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/summary.csv exists we just appending the result to the file +--- Experiments performed on configuration 100100-2-2. +--- Observing a pause betwenn experiment; pause duration : 180 seconds; starting at 04Oct22_19_57_57 +--- Performing experiments on configuration 100100-2-2 +--- Cleaning the tmp expermiment folder : /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- Second step : verifying the battery level +--- Verifying the battery level +--- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe +--- Current battery level : 50 +Current battery level: OKAY +--- Third step calibrating phone core frequency +--- Resetting all frequency configurations + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu5/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor +--- Frequency level of core 0 is 1 +--- Exact frequency of core 0: 576000 +--- Modifying the governor of core 0 +--- Modifying the the current frequency of core 0 with frequency 576000 +--- Frequency level of core 1 is 0 +--- Exact frequency of core 1: 0 +--- Modifying the governor of core 1 +--- Modifying the the current frequency of core 1 with frequency 0 +--- Frequency level of core 2 is 0 +--- Exact frequency of core 2: 0 +--- Modifying the governor of core 2 +--- Modifying the the current frequency of core 2 with frequency 0 +--- Frequency level of core 3 is 1 +--- Exact frequency of core 3: 576000 +--- Modifying the governor of core 3 +--- Modifying the the current frequency of core 3 with frequency 576000 +--- Frequency level of core 4 is 0 +--- Exact frequency of core 4: 0 +--- Modifying the governor of core 4 +--- Modifying the the current frequency of core 4 with frequency 0 +--- Frequency level of core 5 is 0 +--- Exact frequency of core 5: 0 +--- Modifying the governor of core 5 +--- Modifying the the current frequency of core 5 with frequency 0 +--- Frequency level of core 6 is 2 +--- Exact frequency of core 6: 1478400 +--- Modifying the governor of core 6 +--- Modifying the the current frequency of core 6 with frequency 1478400 +--- Frequency level of core 7 is 2 +--- Exact frequency of core 7: 1766400 +--- Modifying the governor of core 7 +--- Modifying the the current frequency of core 7 with frequency 1766400 +--- Calibrating Monsoon power meter, please wait for 10 seconds... +powermeter script : --- Inside the monsoon_power_meter, arg function: 1 +powermeter script : calibration duration = 10 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 50000 + returning 50000 samples after experiments +powermeter script : Power meter calibration okay +--- Monsoon power meter Calibrated +--- starting the benchmarking app +## writing the configuration inside the phone file + --- Removing file /sdcard/experiments_automatization +rm '/sdcard/experiments_automatization/current_configuration.txt' +rm '/sdcard/experiments_automatization/experiment_duration.txt' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ended' +rmdir '/sdcard/experiments_automatization/app_output_folder' +rmdir '/sdcard/experiments_automatization' + --- Clearing the logcat + --- Creating file /sdcard/experiments_automatization +----- Uninstalling experiment app +Success +----- Installing experiment app +Performing Streamed Install +Success +------ Giving rights to experiment app +----- Starting experiment app +Starting: Intent { cmp=com.opportunistask.scheduling.benchmarking_app_to_test_big_cores/.MainActivity } +adb command : ps -A | grep com.opportunistask.scheduling.benchmarking_app_to_test_big_cores + ----- Experiment app started with pid: 17185 +---- waiting for benchmarking app thread to be pinned and to be ready +--- frequency level of core 0 is 1 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 1 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of cores to occupy = 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 3 +--- The current number of thread ready to be sambled : 3, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 4 +--- Now threads are running and the phone is ready to be sampled with the power meter \n--- Threads pids +Thread_0_ready_for_sampling +Thread_1_ready_for_sampling +Thread_2_ready_for_sampling +Thread_3_ready_for_sampling +--- Printing cc_info beginning datas (for the samsung galaxy s8) + --- Starting power meter sampling for about 600 seconds +--- Sampling with the Monsoon power meter +powermeter script : --- Inside the monsoon_power_meter, arg function: 2 +powermeter script : Experiment duration = 600 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 3000000 + returning 3000000 samples after experiments +powermeter script : Total nomber of sample measured : 3000000 +powermeter script : Computing powermeter summary result + Number of samples = 3000000 +powermeter script : We computed the energy on 600 samples +powermeter script : average_power = 2039.2028466702188 +powermeter script : average_power with numpy arrays = 2039.2028466699162 +powermeter script : Summary Result = time (s): 607.1386249065399 +Ins Current (mA):425.96996468450345 +Samples: 3000000 +Consumed Energy (mAs): 254064.9150332954 +Consumed Energy (mAh): 70.57358750924872 +Consumed Energy (mWs): 1225593.261755567 +Consumed Energy (mWh): 340.44257270987976 +Avg power (mW): 2039.2028466702188 +Avg Current (mA): 422.4096237560169 +Avg Voltage (V): 4.82754826591749 +Exp Batt Life (hrs for 1000mAh battery): NOT COMPUTED +--- Monsoon power meter sampling is finished ! + --- experiment folder path /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- frequency level of core 0 is 1 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 1 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of threads normally started = 4 +--- Number of thread ended: 4 +--- Now threads are stopped, getting the cc_info_level for samsung +--- Copying thread results locally +command /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe pull /sdcard/experiments_automatization/app_output_folder C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder </dev/null +/sdcard/experiments_automatization/app_output_folder/: 8 files pulled, 0 skipped. 0.0 MB/s (1816 bytes in 0.057s) +saving the logcat file to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder -/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder- +--- Parsing result from /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/raw_result.txt +--- Getting exact configuration with frequency +--- Configuration with frequencies = [576000- 0- 0- 576000- 0- 0- 1478400- 1766400] +--- Getting the powermeter summary +--- Powermeter summary: +time (s): 607.1386249065399 +Ins Current (mA):425.96996468450345 +Samples: 3000000 +Consumed Energy (mAs): 254064.9150332954 +Consumed Energy (mAh): 70.57358750924872 +Consumed Energy (mWs): 1225593.261755567 +Consumed Energy (mWh): 340.44257270987976 +Avg power (mW): 2039.2028466702188 +Avg Current (mA): 422.4096237560169 +Avg Voltage (V): 4.82754826591749 + +--- Getting the total energy consumed of the google pixel +--- Energy consumed = 70.57358750924872 +--- Starting cc_info = 0 +--- Ending cc_info = 0 +--- Getting the average power +--- Avg Power = 2039.2028466702188 +--- Printing the total threads summary +--- Thread results +Thread : 0 - ThreadProcess id: 17210 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 18:17:44 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 18:27:44 +0100 - Duration: 600027 seconds +Real workload: 4.955934685558458E10 - Integer reached: 184664 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 17211 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 18:17:44 +0100 +Core id: 3 +Ending time: Sun, 19 Dec 2021 18:27:45 +0100 - Duration: 600010 seconds +Real workload: 5.024760003620218E10 - Integer reached: 185889 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 17213 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 18:17:44 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 18:27:45 +0100 - Duration: 600007 seconds +Real workload: 4.845873890520022E11 - Integer reached: 552030 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 17214 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 18:17:44 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 18:27:44 +0100 - Duration: 600009 seconds +Real workload: 5.823685306760009E11 - Integer reached: 603075 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +--- Counting the total workload command : print_total_workload /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder app_output_folder 1,0,0,1,0,0,2,2 /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first +--- Total workload : 1.16676e+12 +--- Getting energy efficiency +--- Energy efficiency: 6.04868e-11 +--- Building what we will add to the total result file command +------ + (build_configuration_raw_result 100100-2-2 1,0,0,1,0,0,2,2 [576000- 0- 0- 576000- 0- 0- 1478400- 1766400] time (s): 607.1386249065399 +Ins Current (mA):425.96996468450345 +Samples: 3000000 +Consumed Energy (mAs): 254064.9150332954 +Consumed Energy (mAh): 70.57358750924872 +Consumed Energy (mWs): 1225593.261755567 +Consumed Energy (mWh): 340.44257270987976 +Avg power (mW): 2039.2028466702188 +Avg Current (mA): 422.4096237560169 +Avg Voltage (V): 4.82754826591749 + Thread : 0 - ThreadProcess id: 17210 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 18:17:44 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 18:27:44 +0100 - Duration: 600027 seconds +Real workload: 4.955934685558458E10 - Integer reached: 184664 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 17211 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 18:17:44 +0100 +Core id: 3 +Ending time: Sun, 19 Dec 2021 18:27:45 +0100 - Duration: 600010 seconds +Real workload: 5.024760003620218E10 - Integer reached: 185889 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 17213 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 18:17:44 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 18:27:45 +0100 - Duration: 600007 seconds +Real workload: 4.845873890520022E11 - Integer reached: 552030 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 17214 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 18:17:44 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 18:27:44 +0100 - Duration: 600009 seconds +Real workload: 5.823685306760009E11 - Integer reached: 603075 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + 70.57358750924872 1.16676e+12 6.04868e-11 0 0 +------ + +--- Final result to print to File + -------------------------------------------------------------------------------- + +++++ +++++ +++++ Configuration Description +-------------------------------------------------------------------------------- +Configuration: 100100-2-2 +phone format: 1,0,0,1,0,0,2,2 +Exact values of frequencies: [576000- 0- 0- 576000- 0- 0- 1478400- 1766400] + +Power meter results +------------------------------------------------------------ +time (s): 607.1386249065399 +Ins Current (mA):425.96996468450345 +Samples: 3000000 +Consumed Energy (mAs): 254064.9150332954 +Consumed Energy (mAh): 70.57358750924872 +Consumed Energy (mWs): 1225593.261755567 +Consumed Energy (mWh): 340.44257270987976 +Avg power (mW): 2039.2028466702188 +Avg Current (mA): 422.4096237560169 +Avg Voltage (V): 4.82754826591749 + +Threads results +------------------------------------------------------------ +Thread : 0 - ThreadProcess id: 17210 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 18:17:44 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 18:27:44 +0100 - Duration: 600027 seconds +Real workload: 4.955934685558458E10 - Integer reached: 184664 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 17211 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 18:17:44 +0100 +Core id: 3 +Ending time: Sun, 19 Dec 2021 18:27:45 +0100 - Duration: 600010 seconds +Real workload: 5.024760003620218E10 - Integer reached: 185889 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 17213 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 18:17:44 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 18:27:45 +0100 - Duration: 600007 seconds +Real workload: 4.845873890520022E11 - Integer reached: 552030 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 17214 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 18:17:44 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 18:27:44 +0100 - Duration: 600009 seconds +Real workload: 5.823685306760009E11 - Integer reached: 603075 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +Expermiment results +------------------------------------------------------------ +Energy Consumed (mAh): 70.57358750924872 +Workload: 1.16676e+12 +Energy efficiency: 6.04868e-11 +-------------------------------------------------------------------------------- + + +--- Writing to the total result file +--- Removing previous tested configuration tmp_output folder +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_20_00_59/app_output_folder/all_workloads.txt' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_20_00_59/app_output_folder/Thread_0_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_20_00_59/app_output_folder/Thread_0_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_20_00_59/app_output_folder/Thread_1_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_20_00_59/app_output_folder/Thread_1_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_20_00_59/app_output_folder/Thread_2_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_20_00_59/app_output_folder/Thread_2_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_20_00_59/app_output_folder/Thread_3_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_20_00_59/app_output_folder/Thread_3_ready_for_sampling' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_20_00_59/app_output_folder' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_20_00_59/configuration_mesurement.csv' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_20_00_59/energy_power_workload_energyByWorkload_ccInfo' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_20_00_59/logcat_output' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_20_00_59/powermeter_summary.txt' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_20_00_59' +--- Moving the current experiment tmp_folder to the output result folder +writing a temporary file for the main script with format energy_power_workload_energyByWorkload_ccInfo +--- Obtaining experiment summary result to add to result folder +--- Experiment result, Energy consumed = 70.57358750924872 +--- Experiment result, Avg Power = 2039.2028466702188 +--- Experiment result, Total Workload = 1.16676e+12 +--- Experiment result, Energy Efficiency = 6.04868e-11 +--- Adding result to summary file +--- Starting cc information : 0 +--- Ending cc information : 0 +--- The file /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/summary.csv exists we just appending the result to the file +--- Experiments performed on configuration 100100-2-2. +--- Observing a pause betwenn experiment; pause duration : 180 seconds; starting at 04Oct22_20_13_50 +--- Performing experiments on configuration 100100-2-2 +--- Cleaning the tmp expermiment folder : /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- Second step : verifying the battery level +--- Verifying the battery level +--- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe +--- Current battery level : 50 +Current battery level: OKAY +--- Third step calibrating phone core frequency +--- Resetting all frequency configurations + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu5/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor +--- Frequency level of core 0 is 1 +--- Exact frequency of core 0: 576000 +--- Modifying the governor of core 0 +--- Modifying the the current frequency of core 0 with frequency 576000 +--- Frequency level of core 1 is 0 +--- Exact frequency of core 1: 0 +--- Modifying the governor of core 1 +--- Modifying the the current frequency of core 1 with frequency 0 +--- Frequency level of core 2 is 0 +--- Exact frequency of core 2: 0 +--- Modifying the governor of core 2 +--- Modifying the the current frequency of core 2 with frequency 0 +--- Frequency level of core 3 is 1 +--- Exact frequency of core 3: 576000 +--- Modifying the governor of core 3 +--- Modifying the the current frequency of core 3 with frequency 576000 +--- Frequency level of core 4 is 0 +--- Exact frequency of core 4: 0 +--- Modifying the governor of core 4 +--- Modifying the the current frequency of core 4 with frequency 0 +--- Frequency level of core 5 is 0 +--- Exact frequency of core 5: 0 +--- Modifying the governor of core 5 +--- Modifying the the current frequency of core 5 with frequency 0 +--- Frequency level of core 6 is 2 +--- Exact frequency of core 6: 1478400 +--- Modifying the governor of core 6 +--- Modifying the the current frequency of core 6 with frequency 1478400 +--- Frequency level of core 7 is 2 +--- Exact frequency of core 7: 1766400 +--- Modifying the governor of core 7 +--- Modifying the the current frequency of core 7 with frequency 1766400 +--- Calibrating Monsoon power meter, please wait for 10 seconds... +powermeter script : --- Inside the monsoon_power_meter, arg function: 1 +powermeter script : calibration duration = 10 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 50000 + returning 50000 samples after experiments +powermeter script : Power meter calibration okay +--- Monsoon power meter Calibrated +--- starting the benchmarking app +## writing the configuration inside the phone file + --- Removing file /sdcard/experiments_automatization +rm '/sdcard/experiments_automatization/current_configuration.txt' +rm '/sdcard/experiments_automatization/experiment_duration.txt' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ended' +rmdir '/sdcard/experiments_automatization/app_output_folder' +rmdir '/sdcard/experiments_automatization' + --- Clearing the logcat + --- Creating file /sdcard/experiments_automatization +----- Uninstalling experiment app +Success +----- Installing experiment app +Performing Streamed Install +Success +------ Giving rights to experiment app +----- Starting experiment app +Starting: Intent { cmp=com.opportunistask.scheduling.benchmarking_app_to_test_big_cores/.MainActivity } +adb command : ps -A | grep com.opportunistask.scheduling.benchmarking_app_to_test_big_cores + ----- Experiment app started with pid: 18209 +---- waiting for benchmarking app thread to be pinned and to be ready +--- frequency level of core 0 is 1 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 1 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of cores to occupy = 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 4 +--- Now threads are running and the phone is ready to be sampled with the power meter \n--- Threads pids +Thread_0_ready_for_sampling +Thread_1_ready_for_sampling +Thread_2_ready_for_sampling +Thread_3_ready_for_sampling +--- Printing cc_info beginning datas (for the samsung galaxy s8) + --- Starting power meter sampling for about 600 seconds +--- Sampling with the Monsoon power meter +powermeter script : --- Inside the monsoon_power_meter, arg function: 2 +powermeter script : Experiment duration = 600 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 3000000 + returning 3000000 samples after experiments +powermeter script : Total nomber of sample measured : 3000000 +powermeter script : Computing powermeter summary result + Number of samples = 3000000 +powermeter script : We computed the energy on 600 samples +powermeter script : average_power = 2058.390853686644 +powermeter script : average_power with numpy arrays = 2058.3908536861127 +powermeter script : Summary Result = time (s): 601.5741944313049 +Ins Current (mA):427.82163552202985 +Samples: 3000000 +Consumed Energy (mAs): 255270.29356730395 +Consumed Energy (mAh): 70.90841487980666 +Consumed Energy (mWs): 1231622.0535868476 +Consumed Energy (mWh): 342.1172371074577 +Avg power (mW): 2058.390853686644 +Avg Current (mA): 426.65439773939795 +Avg Voltage (V): 4.824492293043036 +Exp Batt Life (hrs for 1000mAh battery): NOT COMPUTED +--- Monsoon power meter sampling is finished ! + --- experiment folder path /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- frequency level of core 0 is 1 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 1 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of threads normally started = 4 +--- Number of thread ended: 4 +--- Now threads are stopped, getting the cc_info_level for samsung +--- Copying thread results locally +command /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe pull /sdcard/experiments_automatization/app_output_folder C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder </dev/null +/sdcard/experiments_automatization/app_output_folder/: 8 files pulled, 0 skipped. 0.0 MB/s (1815 bytes in 0.064s) +saving the logcat file to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder -/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder- +--- Parsing result from /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/raw_result.txt +--- Getting exact configuration with frequency +--- Configuration with frequencies = [576000- 0- 0- 576000- 0- 0- 1478400- 1766400] +--- Getting the powermeter summary +--- Powermeter summary: +time (s): 601.5741944313049 +Ins Current (mA):427.82163552202985 +Samples: 3000000 +Consumed Energy (mAs): 255270.29356730395 +Consumed Energy (mAh): 70.90841487980666 +Consumed Energy (mWs): 1231622.0535868476 +Consumed Energy (mWh): 342.1172371074577 +Avg power (mW): 2058.390853686644 +Avg Current (mA): 426.65439773939795 +Avg Voltage (V): 4.824492293043036 + +--- Getting the total energy consumed of the google pixel +--- Energy consumed = 70.90841487980666 +--- Starting cc_info = 0 +--- Ending cc_info = 0 +--- Getting the average power +--- Avg Power = 2058.390853686644 +--- Printing the total threads summary +--- Thread results +Thread : 0 - ThreadProcess id: 18234 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 18:33:38 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 18:43:38 +0100 - Duration: 600004 seconds +Real workload: 4.945192016693764E10 - Integer reached: 184472 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 18235 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 18:33:37 +0100 +Core id: 3 +Ending time: Sun, 19 Dec 2021 18:43:38 +0100 - Duration: 600014 seconds +Real workload: 5.02994881285836E10 - Integer reached: 185981 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 18236 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 18:33:37 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 18:43:38 +0100 - Duration: 600001 seconds +Real workload: 4.838578120432212E11 - Integer reached: 551630 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 18238 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 18:33:38 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 18:43:38 +0100 - Duration: 600003 seconds +Real workload: 5.816543691367977E11 - Integer reached: 602719 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +--- Counting the total workload command : print_total_workload /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder app_output_folder 1,0,0,1,0,0,2,2 /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first +--- Total workload : 1.16526e+12 +--- Getting energy efficiency +--- Energy efficiency: 6.0852e-11 +--- Building what we will add to the total result file command +------ + (build_configuration_raw_result 100100-2-2 1,0,0,1,0,0,2,2 [576000- 0- 0- 576000- 0- 0- 1478400- 1766400] time (s): 601.5741944313049 +Ins Current (mA):427.82163552202985 +Samples: 3000000 +Consumed Energy (mAs): 255270.29356730395 +Consumed Energy (mAh): 70.90841487980666 +Consumed Energy (mWs): 1231622.0535868476 +Consumed Energy (mWh): 342.1172371074577 +Avg power (mW): 2058.390853686644 +Avg Current (mA): 426.65439773939795 +Avg Voltage (V): 4.824492293043036 + Thread : 0 - ThreadProcess id: 18234 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 18:33:38 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 18:43:38 +0100 - Duration: 600004 seconds +Real workload: 4.945192016693764E10 - Integer reached: 184472 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 18235 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 18:33:37 +0100 +Core id: 3 +Ending time: Sun, 19 Dec 2021 18:43:38 +0100 - Duration: 600014 seconds +Real workload: 5.02994881285836E10 - Integer reached: 185981 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 18236 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 18:33:37 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 18:43:38 +0100 - Duration: 600001 seconds +Real workload: 4.838578120432212E11 - Integer reached: 551630 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 18238 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 18:33:38 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 18:43:38 +0100 - Duration: 600003 seconds +Real workload: 5.816543691367977E11 - Integer reached: 602719 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + 70.90841487980666 1.16526e+12 6.0852e-11 0 0 +------ + +--- Final result to print to File + -------------------------------------------------------------------------------- + +++++ +++++ +++++ Configuration Description +-------------------------------------------------------------------------------- +Configuration: 100100-2-2 +phone format: 1,0,0,1,0,0,2,2 +Exact values of frequencies: [576000- 0- 0- 576000- 0- 0- 1478400- 1766400] + +Power meter results +------------------------------------------------------------ +time (s): 601.5741944313049 +Ins Current (mA):427.82163552202985 +Samples: 3000000 +Consumed Energy (mAs): 255270.29356730395 +Consumed Energy (mAh): 70.90841487980666 +Consumed Energy (mWs): 1231622.0535868476 +Consumed Energy (mWh): 342.1172371074577 +Avg power (mW): 2058.390853686644 +Avg Current (mA): 426.65439773939795 +Avg Voltage (V): 4.824492293043036 + +Threads results +------------------------------------------------------------ +Thread : 0 - ThreadProcess id: 18234 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 18:33:38 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 18:43:38 +0100 - Duration: 600004 seconds +Real workload: 4.945192016693764E10 - Integer reached: 184472 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 18235 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 18:33:37 +0100 +Core id: 3 +Ending time: Sun, 19 Dec 2021 18:43:38 +0100 - Duration: 600014 seconds +Real workload: 5.02994881285836E10 - Integer reached: 185981 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 18236 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 18:33:37 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 18:43:38 +0100 - Duration: 600001 seconds +Real workload: 4.838578120432212E11 - Integer reached: 551630 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 18238 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 18:33:38 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 18:43:38 +0100 - Duration: 600003 seconds +Real workload: 5.816543691367977E11 - Integer reached: 602719 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +Expermiment results +------------------------------------------------------------ +Energy Consumed (mAh): 70.90841487980666 +Workload: 1.16526e+12 +Energy efficiency: 6.0852e-11 +-------------------------------------------------------------------------------- + + +--- Writing to the total result file +--- Removing previous tested configuration tmp_output folder +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_20_16_52/app_output_folder/all_workloads.txt' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_20_16_52/app_output_folder/Thread_0_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_20_16_52/app_output_folder/Thread_0_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_20_16_52/app_output_folder/Thread_1_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_20_16_52/app_output_folder/Thread_1_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_20_16_52/app_output_folder/Thread_2_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_20_16_52/app_output_folder/Thread_2_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_20_16_52/app_output_folder/Thread_3_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_20_16_52/app_output_folder/Thread_3_ready_for_sampling' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_20_16_52/app_output_folder' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_20_16_52/configuration_mesurement.csv' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_20_16_52/energy_power_workload_energyByWorkload_ccInfo' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_20_16_52/logcat_output' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_20_16_52/powermeter_summary.txt' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_20_16_52' +--- Moving the current experiment tmp_folder to the output result folder +writing a temporary file for the main script with format energy_power_workload_energyByWorkload_ccInfo +--- Obtaining experiment summary result to add to result folder +--- Experiment result, Energy consumed = 70.90841487980666 +--- Experiment result, Avg Power = 2058.390853686644 +--- Experiment result, Total Workload = 1.16526e+12 +--- Experiment result, Energy Efficiency = 6.0852e-11 +--- Adding result to summary file +--- Starting cc information : 0 +--- Ending cc information : 0 +--- The file /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/summary.csv exists we just appending the result to the file +--- Experiments performed on configuration 100100-2-2. +--- Observing a pause betwenn experiment; pause duration : 180 seconds; starting at 04Oct22_20_29_36 +--- Performing experiments on configuration 101000-2-2 +--- Cleaning the tmp expermiment folder : /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- Second step : verifying the battery level +--- Verifying the battery level +--- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe +--- Current battery level : 50 +Current battery level: OKAY +--- Third step calibrating phone core frequency +--- Resetting all frequency configurations + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu5/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor +--- Frequency level of core 0 is 1 +--- Exact frequency of core 0: 576000 +--- Modifying the governor of core 0 +--- Modifying the the current frequency of core 0 with frequency 576000 +--- Frequency level of core 1 is 0 +--- Exact frequency of core 1: 0 +--- Modifying the governor of core 1 +--- Modifying the the current frequency of core 1 with frequency 0 +--- Frequency level of core 2 is 1 +--- Exact frequency of core 2: 576000 +--- Modifying the governor of core 2 +--- Modifying the the current frequency of core 2 with frequency 576000 +--- Frequency level of core 3 is 0 +--- Exact frequency of core 3: 0 +--- Modifying the governor of core 3 +--- Modifying the the current frequency of core 3 with frequency 0 +--- Frequency level of core 4 is 0 +--- Exact frequency of core 4: 0 +--- Modifying the governor of core 4 +--- Modifying the the current frequency of core 4 with frequency 0 +--- Frequency level of core 5 is 0 +--- Exact frequency of core 5: 0 +--- Modifying the governor of core 5 +--- Modifying the the current frequency of core 5 with frequency 0 +--- Frequency level of core 6 is 2 +--- Exact frequency of core 6: 1478400 +--- Modifying the governor of core 6 +--- Modifying the the current frequency of core 6 with frequency 1478400 +--- Frequency level of core 7 is 2 +--- Exact frequency of core 7: 1766400 +--- Modifying the governor of core 7 +--- Modifying the the current frequency of core 7 with frequency 1766400 +--- Calibrating Monsoon power meter, please wait for 10 seconds... +powermeter script : --- Inside the monsoon_power_meter, arg function: 1 +powermeter script : calibration duration = 10 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 50000 + returning 50000 samples after experiments +powermeter script : Power meter calibration okay +--- Monsoon power meter Calibrated +--- starting the benchmarking app +## writing the configuration inside the phone file + --- Removing file /sdcard/experiments_automatization +rm '/sdcard/experiments_automatization/current_configuration.txt' +rm '/sdcard/experiments_automatization/experiment_duration.txt' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ended' +rmdir '/sdcard/experiments_automatization/app_output_folder' +rmdir '/sdcard/experiments_automatization' + --- Clearing the logcat + --- Creating file /sdcard/experiments_automatization +----- Uninstalling experiment app +Success +----- Installing experiment app +Performing Streamed Install +Success +------ Giving rights to experiment app +----- Starting experiment app +Starting: Intent { cmp=com.opportunistask.scheduling.benchmarking_app_to_test_big_cores/.MainActivity } +adb command : ps -A | grep com.opportunistask.scheduling.benchmarking_app_to_test_big_cores + ----- Experiment app started with pid: 19548 +---- waiting for benchmarking app thread to be pinned and to be ready +--- frequency level of core 0 is 1 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 1 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of cores to occupy = 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 4 +--- Now threads are running and the phone is ready to be sampled with the power meter \n--- Threads pids +Thread_0_ready_for_sampling +Thread_1_ready_for_sampling +Thread_2_ready_for_sampling +Thread_3_ready_for_sampling +--- Printing cc_info beginning datas (for the samsung galaxy s8) + --- Starting power meter sampling for about 600 seconds +--- Sampling with the Monsoon power meter +powermeter script : --- Inside the monsoon_power_meter, arg function: 2 +powermeter script : Experiment duration = 600 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 3000000 + returning 3000000 samples after experiments +powermeter script : Total nomber of sample measured : 3000000 +powermeter script : Computing powermeter summary result + Number of samples = 3000000 +powermeter script : We computed the energy on 600 samples +powermeter script : average_power = 2045.2993817629833 +powermeter script : average_power with numpy arrays = 2045.299381762557 +powermeter script : Summary Result = time (s): 602.4874801635742 +Ins Current (mA):433.6718885125739 +Samples: 3000000 +Consumed Energy (mAs): 254652.99232985798 +Consumed Energy (mAh): 70.73694231384944 +Consumed Energy (mWs): 1228606.2959856659 +Consumed Energy (mWh): 341.279526662685 +Avg power (mW): 2045.2993817629833 +Avg Current (mA): 423.75522087799317 +Avg Voltage (V): 4.826605740751126 +Exp Batt Life (hrs for 1000mAh battery): NOT COMPUTED +--- Monsoon power meter sampling is finished ! + --- experiment folder path /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- frequency level of core 0 is 1 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 1 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of threads normally started = 4 +--- Number of thread ended: 4 +--- Now threads are stopped, getting the cc_info_level for samsung +--- Copying thread results locally +command /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe pull /sdcard/experiments_automatization/app_output_folder C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder </dev/null +/sdcard/experiments_automatization/app_output_folder/: 8 files pulled, 0 skipped. 0.0 MB/s (1818 bytes in 0.037s) +saving the logcat file to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder -/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder- +--- Parsing result from /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/raw_result.txt +--- Getting exact configuration with frequency +--- Configuration with frequencies = [576000- 0- 576000- 0- 0- 0- 1478400- 1766400] +--- Getting the powermeter summary +--- Powermeter summary: +time (s): 602.4874801635742 +Ins Current (mA):433.6718885125739 +Samples: 3000000 +Consumed Energy (mAs): 254652.99232985798 +Consumed Energy (mAh): 70.73694231384944 +Consumed Energy (mWs): 1228606.2959856659 +Consumed Energy (mWh): 341.279526662685 +Avg power (mW): 2045.2993817629833 +Avg Current (mA): 423.75522087799317 +Avg Voltage (V): 4.826605740751126 + +--- Getting the total energy consumed of the google pixel +--- Energy consumed = 70.73694231384944 +--- Starting cc_info = 0 +--- Ending cc_info = 0 +--- Getting the average power +--- Avg Power = 2045.2993817629833 +--- Printing the total threads summary +--- Thread results +Thread : 0 - ThreadProcess id: 19573 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 18:49:24 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 18:59:24 +0100 - Duration: 600021 seconds +Real workload: 4.998576472506264E10 - Integer reached: 185424 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 19574 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 18:49:24 +0100 +Core id: 2 +Ending time: Sun, 19 Dec 2021 18:59:25 +0100 - Duration: 600006 seconds +Real workload: 5.0132642961094635E10 - Integer reached: 185685 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 19575 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 18:49:24 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 18:59:25 +0100 - Duration: 600010 seconds +Real workload: 4.8420064236942834E11 - Integer reached: 551818 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 19576 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 18:49:24 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 18:59:25 +0100 - Duration: 600007 seconds +Real workload: 5.753829132920146E11 - Integer reached: 599583 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +--- Counting the total workload command : print_total_workload /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder app_output_folder 1,0,1,0,0,0,2,2 /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first +--- Total workload : 1.1597e+12 +--- Getting energy efficiency +--- Energy efficiency: 6.09959e-11 +--- Building what we will add to the total result file command +------ + (build_configuration_raw_result 101000-2-2 1,0,1,0,0,0,2,2 [576000- 0- 576000- 0- 0- 0- 1478400- 1766400] time (s): 602.4874801635742 +Ins Current (mA):433.6718885125739 +Samples: 3000000 +Consumed Energy (mAs): 254652.99232985798 +Consumed Energy (mAh): 70.73694231384944 +Consumed Energy (mWs): 1228606.2959856659 +Consumed Energy (mWh): 341.279526662685 +Avg power (mW): 2045.2993817629833 +Avg Current (mA): 423.75522087799317 +Avg Voltage (V): 4.826605740751126 + Thread : 0 - ThreadProcess id: 19573 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 18:49:24 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 18:59:24 +0100 - Duration: 600021 seconds +Real workload: 4.998576472506264E10 - Integer reached: 185424 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 19574 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 18:49:24 +0100 +Core id: 2 +Ending time: Sun, 19 Dec 2021 18:59:25 +0100 - Duration: 600006 seconds +Real workload: 5.0132642961094635E10 - Integer reached: 185685 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 19575 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 18:49:24 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 18:59:25 +0100 - Duration: 600010 seconds +Real workload: 4.8420064236942834E11 - Integer reached: 551818 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 19576 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 18:49:24 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 18:59:25 +0100 - Duration: 600007 seconds +Real workload: 5.753829132920146E11 - Integer reached: 599583 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + 70.73694231384944 1.1597e+12 6.09959e-11 0 0 +------ + +--- Final result to print to File + -------------------------------------------------------------------------------- + +++++ +++++ +++++ Configuration Description +-------------------------------------------------------------------------------- +Configuration: 101000-2-2 +phone format: 1,0,1,0,0,0,2,2 +Exact values of frequencies: [576000- 0- 576000- 0- 0- 0- 1478400- 1766400] + +Power meter results +------------------------------------------------------------ +time (s): 602.4874801635742 +Ins Current (mA):433.6718885125739 +Samples: 3000000 +Consumed Energy (mAs): 254652.99232985798 +Consumed Energy (mAh): 70.73694231384944 +Consumed Energy (mWs): 1228606.2959856659 +Consumed Energy (mWh): 341.279526662685 +Avg power (mW): 2045.2993817629833 +Avg Current (mA): 423.75522087799317 +Avg Voltage (V): 4.826605740751126 + +Threads results +------------------------------------------------------------ +Thread : 0 - ThreadProcess id: 19573 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 18:49:24 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 18:59:24 +0100 - Duration: 600021 seconds +Real workload: 4.998576472506264E10 - Integer reached: 185424 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 19574 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 18:49:24 +0100 +Core id: 2 +Ending time: Sun, 19 Dec 2021 18:59:25 +0100 - Duration: 600006 seconds +Real workload: 5.0132642961094635E10 - Integer reached: 185685 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 19575 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 18:49:24 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 18:59:25 +0100 - Duration: 600010 seconds +Real workload: 4.8420064236942834E11 - Integer reached: 551818 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 19576 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 18:49:24 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 18:59:25 +0100 - Duration: 600007 seconds +Real workload: 5.753829132920146E11 - Integer reached: 599583 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +Expermiment results +------------------------------------------------------------ +Energy Consumed (mAh): 70.73694231384944 +Workload: 1.1597e+12 +Energy efficiency: 6.09959e-11 +-------------------------------------------------------------------------------- + + +--- Writing to the total result file +--- Removing previous tested configuration tmp_output folder +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_20_32_38/app_output_folder/all_workloads.txt' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_20_32_38/app_output_folder/Thread_0_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_20_32_38/app_output_folder/Thread_0_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_20_32_38/app_output_folder/Thread_1_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_20_32_38/app_output_folder/Thread_1_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_20_32_38/app_output_folder/Thread_2_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_20_32_38/app_output_folder/Thread_2_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_20_32_38/app_output_folder/Thread_3_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_20_32_38/app_output_folder/Thread_3_ready_for_sampling' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_20_32_38/app_output_folder' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_20_32_38/configuration_mesurement.csv' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_20_32_38/energy_power_workload_energyByWorkload_ccInfo' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_20_32_38/logcat_output' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_20_32_38/powermeter_summary.txt' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_20_32_38' +--- Moving the current experiment tmp_folder to the output result folder +writing a temporary file for the main script with format energy_power_workload_energyByWorkload_ccInfo +--- Obtaining experiment summary result to add to result folder +--- Experiment result, Energy consumed = 70.73694231384944 +--- Experiment result, Avg Power = 2045.2993817629833 +--- Experiment result, Total Workload = 1.1597e+12 +--- Experiment result, Energy Efficiency = 6.09959e-11 +--- Adding result to summary file +--- Starting cc information : 0 +--- Ending cc information : 0 +--- The file /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/summary.csv exists we just appending the result to the file +--- Experiments performed on configuration 101000-2-2. +--- Observing a pause betwenn experiment; pause duration : 180 seconds; starting at 04Oct22_20_45_24 +--- Performing experiments on configuration 101000-2-2 +--- Cleaning the tmp expermiment folder : /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- Second step : verifying the battery level +--- Verifying the battery level +--- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe +--- Current battery level : 50 +Current battery level: OKAY +--- Third step calibrating phone core frequency +--- Resetting all frequency configurations + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu5/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor +--- Frequency level of core 0 is 1 +--- Exact frequency of core 0: 576000 +--- Modifying the governor of core 0 +--- Modifying the the current frequency of core 0 with frequency 576000 +--- Frequency level of core 1 is 0 +--- Exact frequency of core 1: 0 +--- Modifying the governor of core 1 +--- Modifying the the current frequency of core 1 with frequency 0 +--- Frequency level of core 2 is 1 +--- Exact frequency of core 2: 576000 +--- Modifying the governor of core 2 +--- Modifying the the current frequency of core 2 with frequency 576000 +--- Frequency level of core 3 is 0 +--- Exact frequency of core 3: 0 +--- Modifying the governor of core 3 +--- Modifying the the current frequency of core 3 with frequency 0 +--- Frequency level of core 4 is 0 +--- Exact frequency of core 4: 0 +--- Modifying the governor of core 4 +--- Modifying the the current frequency of core 4 with frequency 0 +--- Frequency level of core 5 is 0 +--- Exact frequency of core 5: 0 +--- Modifying the governor of core 5 +--- Modifying the the current frequency of core 5 with frequency 0 +--- Frequency level of core 6 is 2 +--- Exact frequency of core 6: 1478400 +--- Modifying the governor of core 6 +--- Modifying the the current frequency of core 6 with frequency 1478400 +--- Frequency level of core 7 is 2 +--- Exact frequency of core 7: 1766400 +--- Modifying the governor of core 7 +--- Modifying the the current frequency of core 7 with frequency 1766400 +--- Calibrating Monsoon power meter, please wait for 10 seconds... +powermeter script : --- Inside the monsoon_power_meter, arg function: 1 +powermeter script : calibration duration = 10 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 50000 + returning 50000 samples after experiments +powermeter script : Power meter calibration okay +--- Monsoon power meter Calibrated +--- starting the benchmarking app +## writing the configuration inside the phone file + --- Removing file /sdcard/experiments_automatization +rm '/sdcard/experiments_automatization/current_configuration.txt' +rm '/sdcard/experiments_automatization/experiment_duration.txt' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ended' +rmdir '/sdcard/experiments_automatization/app_output_folder' +rmdir '/sdcard/experiments_automatization' + --- Clearing the logcat + --- Creating file /sdcard/experiments_automatization +----- Uninstalling experiment app +Success +----- Installing experiment app +Performing Streamed Install +Success +------ Giving rights to experiment app +----- Starting experiment app +Starting: Intent { cmp=com.opportunistask.scheduling.benchmarking_app_to_test_big_cores/.MainActivity } +adb command : ps -A | grep com.opportunistask.scheduling.benchmarking_app_to_test_big_cores + ----- Experiment app started with pid: 20565 +---- waiting for benchmarking app thread to be pinned and to be ready +--- frequency level of core 0 is 1 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 1 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of cores to occupy = 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 4 +--- Now threads are running and the phone is ready to be sampled with the power meter \n--- Threads pids +Thread_0_ready_for_sampling +Thread_1_ready_for_sampling +Thread_2_ready_for_sampling +Thread_3_ready_for_sampling +--- Printing cc_info beginning datas (for the samsung galaxy s8) + --- Starting power meter sampling for about 600 seconds +--- Sampling with the Monsoon power meter +powermeter script : --- Inside the monsoon_power_meter, arg function: 2 +powermeter script : Experiment duration = 600 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 3000000 + returning 3000000 samples after experiments +powermeter script : Total nomber of sample measured : 3000000 +powermeter script : Computing powermeter summary result + Number of samples = 3000000 +powermeter script : We computed the energy on 600 samples +powermeter script : average_power = 2048.0676987469533 +powermeter script : average_power with numpy arrays = 2048.0676987467364 +powermeter script : Summary Result = time (s): 601.6884293556213 +Ins Current (mA):437.64035752793666 +Samples: 3000000 +Consumed Energy (mAs): 255132.7136578244 +Consumed Energy (mAh): 70.87019823828456 +Consumed Energy (mWs): 1231075.5983980626 +Consumed Energy (mWh): 341.96544399946185 +Avg power (mW): 2048.0676987469533 +Avg Current (mA): 424.34299087492155 +Avg Voltage (V): 4.826444038875706 +Exp Batt Life (hrs for 1000mAh battery): NOT COMPUTED +--- Monsoon power meter sampling is finished ! + --- experiment folder path /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- frequency level of core 0 is 1 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 1 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of threads normally started = 4 +--- Number of thread ended: 4 +--- Now threads are stopped, getting the cc_info_level for samsung +--- Copying thread results locally +command /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe pull /sdcard/experiments_automatization/app_output_folder C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder </dev/null +/sdcard/experiments_automatization/app_output_folder/: 8 files pulled, 0 skipped. 0.0 MB/s (1816 bytes in 0.066s) +saving the logcat file to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder -/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder- +--- Parsing result from /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/raw_result.txt +--- Getting exact configuration with frequency +--- Configuration with frequencies = [576000- 0- 576000- 0- 0- 0- 1478400- 1766400] +--- Getting the powermeter summary +--- Powermeter summary: +time (s): 601.6884293556213 +Ins Current (mA):437.64035752793666 +Samples: 3000000 +Consumed Energy (mAs): 255132.7136578244 +Consumed Energy (mAh): 70.87019823828456 +Consumed Energy (mWs): 1231075.5983980626 +Consumed Energy (mWh): 341.96544399946185 +Avg power (mW): 2048.0676987469533 +Avg Current (mA): 424.34299087492155 +Avg Voltage (V): 4.826444038875706 + +--- Getting the total energy consumed of the google pixel +--- Energy consumed = 70.87019823828456 +--- Starting cc_info = 0 +--- Ending cc_info = 0 +--- Getting the average power +--- Avg Power = 2048.0676987469533 +--- Printing the total threads summary +--- Thread results +Thread : 0 - ThreadProcess id: 20590 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 19:05:11 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 19:15:12 +0100 - Duration: 600029 seconds +Real workload: 5.00082602861125E10 - Integer reached: 185464 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 20591 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 19:05:12 +0100 +Core id: 2 +Ending time: Sun, 19 Dec 2021 19:15:12 +0100 - Duration: 600015 seconds +Real workload: 4.9948096441205734E10 - Integer reached: 185357 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 20592 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 19:05:12 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 19:15:12 +0100 - Duration: 600002 seconds +Real workload: 4.8387969106890466E11 - Integer reached: 551642 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 20594 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 19:05:12 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 19:15:12 +0100 - Duration: 600005 seconds +Real workload: 5.81750634105829E11 - Integer reached: 602767 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +--- Counting the total workload command : print_total_workload /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder app_output_folder 1,0,1,0,0,0,2,2 /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first +--- Total workload : 1.16559e+12 +--- Getting energy efficiency +--- Energy efficiency: 6.0802e-11 +--- Building what we will add to the total result file command +------ + (build_configuration_raw_result 101000-2-2 1,0,1,0,0,0,2,2 [576000- 0- 576000- 0- 0- 0- 1478400- 1766400] time (s): 601.6884293556213 +Ins Current (mA):437.64035752793666 +Samples: 3000000 +Consumed Energy (mAs): 255132.7136578244 +Consumed Energy (mAh): 70.87019823828456 +Consumed Energy (mWs): 1231075.5983980626 +Consumed Energy (mWh): 341.96544399946185 +Avg power (mW): 2048.0676987469533 +Avg Current (mA): 424.34299087492155 +Avg Voltage (V): 4.826444038875706 + Thread : 0 - ThreadProcess id: 20590 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 19:05:11 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 19:15:12 +0100 - Duration: 600029 seconds +Real workload: 5.00082602861125E10 - Integer reached: 185464 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 20591 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 19:05:12 +0100 +Core id: 2 +Ending time: Sun, 19 Dec 2021 19:15:12 +0100 - Duration: 600015 seconds +Real workload: 4.9948096441205734E10 - Integer reached: 185357 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 20592 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 19:05:12 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 19:15:12 +0100 - Duration: 600002 seconds +Real workload: 4.8387969106890466E11 - Integer reached: 551642 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 20594 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 19:05:12 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 19:15:12 +0100 - Duration: 600005 seconds +Real workload: 5.81750634105829E11 - Integer reached: 602767 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + 70.87019823828456 1.16559e+12 6.0802e-11 0 0 +------ + +--- Final result to print to File + -------------------------------------------------------------------------------- + +++++ +++++ +++++ Configuration Description +-------------------------------------------------------------------------------- +Configuration: 101000-2-2 +phone format: 1,0,1,0,0,0,2,2 +Exact values of frequencies: [576000- 0- 576000- 0- 0- 0- 1478400- 1766400] + +Power meter results +------------------------------------------------------------ +time (s): 601.6884293556213 +Ins Current (mA):437.64035752793666 +Samples: 3000000 +Consumed Energy (mAs): 255132.7136578244 +Consumed Energy (mAh): 70.87019823828456 +Consumed Energy (mWs): 1231075.5983980626 +Consumed Energy (mWh): 341.96544399946185 +Avg power (mW): 2048.0676987469533 +Avg Current (mA): 424.34299087492155 +Avg Voltage (V): 4.826444038875706 + +Threads results +------------------------------------------------------------ +Thread : 0 - ThreadProcess id: 20590 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 19:05:11 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 19:15:12 +0100 - Duration: 600029 seconds +Real workload: 5.00082602861125E10 - Integer reached: 185464 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 20591 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 19:05:12 +0100 +Core id: 2 +Ending time: Sun, 19 Dec 2021 19:15:12 +0100 - Duration: 600015 seconds +Real workload: 4.9948096441205734E10 - Integer reached: 185357 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 20592 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 19:05:12 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 19:15:12 +0100 - Duration: 600002 seconds +Real workload: 4.8387969106890466E11 - Integer reached: 551642 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 20594 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 19:05:12 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 19:15:12 +0100 - Duration: 600005 seconds +Real workload: 5.81750634105829E11 - Integer reached: 602767 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +Expermiment results +------------------------------------------------------------ +Energy Consumed (mAh): 70.87019823828456 +Workload: 1.16559e+12 +Energy efficiency: 6.0802e-11 +-------------------------------------------------------------------------------- + + +--- Writing to the total result file +--- Removing previous tested configuration tmp_output folder +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_20_48_26/app_output_folder/all_workloads.txt' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_20_48_26/app_output_folder/Thread_0_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_20_48_26/app_output_folder/Thread_0_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_20_48_26/app_output_folder/Thread_1_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_20_48_26/app_output_folder/Thread_1_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_20_48_26/app_output_folder/Thread_2_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_20_48_26/app_output_folder/Thread_2_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_20_48_26/app_output_folder/Thread_3_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_20_48_26/app_output_folder/Thread_3_ready_for_sampling' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_20_48_26/app_output_folder' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_20_48_26/configuration_mesurement.csv' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_20_48_26/energy_power_workload_energyByWorkload_ccInfo' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_20_48_26/logcat_output' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_20_48_26/powermeter_summary.txt' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_20_48_26' +--- Moving the current experiment tmp_folder to the output result folder +writing a temporary file for the main script with format energy_power_workload_energyByWorkload_ccInfo +--- Obtaining experiment summary result to add to result folder +--- Experiment result, Energy consumed = 70.87019823828456 +--- Experiment result, Avg Power = 2048.0676987469533 +--- Experiment result, Total Workload = 1.16559e+12 +--- Experiment result, Energy Efficiency = 6.0802e-11 +--- Adding result to summary file +--- Starting cc information : 0 +--- Ending cc information : 0 +--- The file /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/summary.csv exists we just appending the result to the file +--- Experiments performed on configuration 101000-2-2. +--- Observing a pause betwenn experiment; pause duration : 180 seconds; starting at 04Oct22_21_01_11 +--- Performing experiments on configuration 101000-2-2 +--- Cleaning the tmp expermiment folder : /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- Second step : verifying the battery level +--- Verifying the battery level +--- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe +--- Current battery level : 50 +Current battery level: OKAY +--- Third step calibrating phone core frequency +--- Resetting all frequency configurations + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu5/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor +--- Frequency level of core 0 is 1 +--- Exact frequency of core 0: 576000 +--- Modifying the governor of core 0 +--- Modifying the the current frequency of core 0 with frequency 576000 +--- Frequency level of core 1 is 0 +--- Exact frequency of core 1: 0 +--- Modifying the governor of core 1 +--- Modifying the the current frequency of core 1 with frequency 0 +--- Frequency level of core 2 is 1 +--- Exact frequency of core 2: 576000 +--- Modifying the governor of core 2 +--- Modifying the the current frequency of core 2 with frequency 576000 +--- Frequency level of core 3 is 0 +--- Exact frequency of core 3: 0 +--- Modifying the governor of core 3 +--- Modifying the the current frequency of core 3 with frequency 0 +--- Frequency level of core 4 is 0 +--- Exact frequency of core 4: 0 +--- Modifying the governor of core 4 +--- Modifying the the current frequency of core 4 with frequency 0 +--- Frequency level of core 5 is 0 +--- Exact frequency of core 5: 0 +--- Modifying the governor of core 5 +--- Modifying the the current frequency of core 5 with frequency 0 +--- Frequency level of core 6 is 2 +--- Exact frequency of core 6: 1478400 +--- Modifying the governor of core 6 +--- Modifying the the current frequency of core 6 with frequency 1478400 +--- Frequency level of core 7 is 2 +--- Exact frequency of core 7: 1766400 +--- Modifying the governor of core 7 +--- Modifying the the current frequency of core 7 with frequency 1766400 +--- Calibrating Monsoon power meter, please wait for 10 seconds... +powermeter script : --- Inside the monsoon_power_meter, arg function: 1 +powermeter script : calibration duration = 10 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 50000 + returning 50000 samples after experiments +powermeter script : Power meter calibration okay +--- Monsoon power meter Calibrated +--- starting the benchmarking app +## writing the configuration inside the phone file + --- Removing file /sdcard/experiments_automatization +rm '/sdcard/experiments_automatization/current_configuration.txt' +rm '/sdcard/experiments_automatization/experiment_duration.txt' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ended' +rmdir '/sdcard/experiments_automatization/app_output_folder' +rmdir '/sdcard/experiments_automatization' + --- Clearing the logcat + --- Creating file /sdcard/experiments_automatization +----- Uninstalling experiment app +Success +----- Installing experiment app +Performing Streamed Install +Success +------ Giving rights to experiment app +----- Starting experiment app +Starting: Intent { cmp=com.opportunistask.scheduling.benchmarking_app_to_test_big_cores/.MainActivity } +adb command : ps -A | grep com.opportunistask.scheduling.benchmarking_app_to_test_big_cores + ----- Experiment app started with pid: 21612 +---- waiting for benchmarking app thread to be pinned and to be ready +--- frequency level of core 0 is 1 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 1 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of cores to occupy = 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 4 +--- Now threads are running and the phone is ready to be sampled with the power meter \n--- Threads pids +Thread_0_ready_for_sampling +Thread_1_ready_for_sampling +Thread_2_ready_for_sampling +Thread_3_ready_for_sampling +--- Printing cc_info beginning datas (for the samsung galaxy s8) + --- Starting power meter sampling for about 600 seconds +--- Sampling with the Monsoon power meter +powermeter script : --- Inside the monsoon_power_meter, arg function: 2 +powermeter script : Experiment duration = 600 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 3000000 + returning 3000000 samples after experiments +powermeter script : Total nomber of sample measured : 3000000 +powermeter script : Computing powermeter summary result + Number of samples = 3000000 +powermeter script : We computed the energy on 600 samples +powermeter script : average_power = 2036.9589181838337 +powermeter script : average_power with numpy arrays = 2036.958918183245 +powermeter script : Summary Result = time (s): 601.6385250091553 +Ins Current (mA):394.60784410834697 +Samples: 3000000 +Consumed Energy (mAs): 254386.96343510403 +Consumed Energy (mAh): 70.66304539864001 +Consumed Energy (mWs): 1227582.9573367126 +Consumed Energy (mWh): 340.99526592686465 +Avg power (mW): 2036.9589181838337 +Avg Current (mA): 421.8579251151818 +Avg Voltage (V): 4.828542494792941 +Exp Batt Life (hrs for 1000mAh battery): NOT COMPUTED +--- Monsoon power meter sampling is finished ! + --- experiment folder path /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- frequency level of core 0 is 1 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 1 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of threads normally started = 4 +--- Number of thread ended: 4 +--- Now threads are stopped, getting the cc_info_level for samsung +--- Copying thread results locally +command /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe pull /sdcard/experiments_automatization/app_output_folder C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder </dev/null +/sdcard/experiments_automatization/app_output_folder/: 8 files pulled, 0 skipped. 0.0 MB/s (1816 bytes in 0.066s) +saving the logcat file to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder -/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder- +--- Parsing result from /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/raw_result.txt +--- Getting exact configuration with frequency +--- Configuration with frequencies = [576000- 0- 576000- 0- 0- 0- 1478400- 1766400] +--- Getting the powermeter summary +--- Powermeter summary: +time (s): 601.6385250091553 +Ins Current (mA):394.60784410834697 +Samples: 3000000 +Consumed Energy (mAs): 254386.96343510403 +Consumed Energy (mAh): 70.66304539864001 +Consumed Energy (mWs): 1227582.9573367126 +Consumed Energy (mWh): 340.99526592686465 +Avg power (mW): 2036.9589181838337 +Avg Current (mA): 421.8579251151818 +Avg Voltage (V): 4.828542494792941 + +--- Getting the total energy consumed of the google pixel +--- Energy consumed = 70.66304539864001 +--- Starting cc_info = 0 +--- Ending cc_info = 0 +--- Getting the average power +--- Avg Power = 2036.9589181838337 +--- Printing the total threads summary +--- Thread results +Thread : 0 - ThreadProcess id: 21637 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 19:20:58 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 19:30:59 +0100 - Duration: 600028 seconds +Real workload: 5.010054700510161E10 - Integer reached: 185628 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 21638 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 19:20:59 +0100 +Core id: 2 +Ending time: Sun, 19 Dec 2021 19:30:59 +0100 - Duration: 600013 seconds +Real workload: 4.948156234380716E10 - Integer reached: 184525 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 21639 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 19:20:58 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 19:30:59 +0100 - Duration: 600003 seconds +Real workload: 4.795285888985017E11 - Integer reached: 549250 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 21641 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 19:20:58 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 19:30:59 +0100 - Duration: 600010 seconds +Real workload: 5.807322474646304E11 - Integer reached: 602259 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +--- Counting the total workload command : print_total_workload /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder app_output_folder 1,0,1,0,0,0,2,2 /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first +--- Total workload : 1.15984e+12 +--- Getting energy efficiency +--- Energy efficiency: 6.09248e-11 +--- Building what we will add to the total result file command +------ + (build_configuration_raw_result 101000-2-2 1,0,1,0,0,0,2,2 [576000- 0- 576000- 0- 0- 0- 1478400- 1766400] time (s): 601.6385250091553 +Ins Current (mA):394.60784410834697 +Samples: 3000000 +Consumed Energy (mAs): 254386.96343510403 +Consumed Energy (mAh): 70.66304539864001 +Consumed Energy (mWs): 1227582.9573367126 +Consumed Energy (mWh): 340.99526592686465 +Avg power (mW): 2036.9589181838337 +Avg Current (mA): 421.8579251151818 +Avg Voltage (V): 4.828542494792941 + Thread : 0 - ThreadProcess id: 21637 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 19:20:58 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 19:30:59 +0100 - Duration: 600028 seconds +Real workload: 5.010054700510161E10 - Integer reached: 185628 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 21638 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 19:20:59 +0100 +Core id: 2 +Ending time: Sun, 19 Dec 2021 19:30:59 +0100 - Duration: 600013 seconds +Real workload: 4.948156234380716E10 - Integer reached: 184525 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 21639 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 19:20:58 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 19:30:59 +0100 - Duration: 600003 seconds +Real workload: 4.795285888985017E11 - Integer reached: 549250 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 21641 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 19:20:58 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 19:30:59 +0100 - Duration: 600010 seconds +Real workload: 5.807322474646304E11 - Integer reached: 602259 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + 70.66304539864001 1.15984e+12 6.09248e-11 0 0 +------ + +--- Final result to print to File + -------------------------------------------------------------------------------- + +++++ +++++ +++++ Configuration Description +-------------------------------------------------------------------------------- +Configuration: 101000-2-2 +phone format: 1,0,1,0,0,0,2,2 +Exact values of frequencies: [576000- 0- 576000- 0- 0- 0- 1478400- 1766400] + +Power meter results +------------------------------------------------------------ +time (s): 601.6385250091553 +Ins Current (mA):394.60784410834697 +Samples: 3000000 +Consumed Energy (mAs): 254386.96343510403 +Consumed Energy (mAh): 70.66304539864001 +Consumed Energy (mWs): 1227582.9573367126 +Consumed Energy (mWh): 340.99526592686465 +Avg power (mW): 2036.9589181838337 +Avg Current (mA): 421.8579251151818 +Avg Voltage (V): 4.828542494792941 + +Threads results +------------------------------------------------------------ +Thread : 0 - ThreadProcess id: 21637 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 19:20:58 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 19:30:59 +0100 - Duration: 600028 seconds +Real workload: 5.010054700510161E10 - Integer reached: 185628 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 21638 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 19:20:59 +0100 +Core id: 2 +Ending time: Sun, 19 Dec 2021 19:30:59 +0100 - Duration: 600013 seconds +Real workload: 4.948156234380716E10 - Integer reached: 184525 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 21639 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 19:20:58 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 19:30:59 +0100 - Duration: 600003 seconds +Real workload: 4.795285888985017E11 - Integer reached: 549250 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 21641 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 19:20:58 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 19:30:59 +0100 - Duration: 600010 seconds +Real workload: 5.807322474646304E11 - Integer reached: 602259 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +Expermiment results +------------------------------------------------------------ +Energy Consumed (mAh): 70.66304539864001 +Workload: 1.15984e+12 +Energy efficiency: 6.09248e-11 +-------------------------------------------------------------------------------- + + +--- Writing to the total result file +--- Removing previous tested configuration tmp_output folder +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_21_04_13/app_output_folder/all_workloads.txt' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_21_04_13/app_output_folder/Thread_0_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_21_04_13/app_output_folder/Thread_0_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_21_04_13/app_output_folder/Thread_1_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_21_04_13/app_output_folder/Thread_1_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_21_04_13/app_output_folder/Thread_2_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_21_04_13/app_output_folder/Thread_2_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_21_04_13/app_output_folder/Thread_3_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_21_04_13/app_output_folder/Thread_3_ready_for_sampling' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_21_04_13/app_output_folder' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_21_04_13/configuration_mesurement.csv' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_21_04_13/energy_power_workload_energyByWorkload_ccInfo' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_21_04_13/logcat_output' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_21_04_13/powermeter_summary.txt' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_21_04_13' +--- Moving the current experiment tmp_folder to the output result folder +writing a temporary file for the main script with format energy_power_workload_energyByWorkload_ccInfo +--- Obtaining experiment summary result to add to result folder +--- Experiment result, Energy consumed = 70.66304539864001 +--- Experiment result, Avg Power = 2036.9589181838337 +--- Experiment result, Total Workload = 1.15984e+12 +--- Experiment result, Energy Efficiency = 6.09248e-11 +--- Adding result to summary file +--- Starting cc information : 0 +--- Ending cc information : 0 +--- The file /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/summary.csv exists we just appending the result to the file +--- Experiments performed on configuration 101000-2-2. +--- Observing a pause betwenn experiment; pause duration : 180 seconds; starting at 04Oct22_21_16_58 +--- Performing experiments on configuration 110000-2-2 +--- Cleaning the tmp expermiment folder : /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- Second step : verifying the battery level +--- Verifying the battery level +--- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe +--- Current battery level : 50 +Current battery level: OKAY +--- Third step calibrating phone core frequency +--- Resetting all frequency configurations + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu5/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor +--- Frequency level of core 0 is 1 +--- Exact frequency of core 0: 576000 +--- Modifying the governor of core 0 +--- Modifying the the current frequency of core 0 with frequency 576000 +--- Frequency level of core 1 is 1 +--- Exact frequency of core 1: 576000 +--- Modifying the governor of core 1 +--- Modifying the the current frequency of core 1 with frequency 576000 +--- Frequency level of core 2 is 0 +--- Exact frequency of core 2: 0 +--- Modifying the governor of core 2 +--- Modifying the the current frequency of core 2 with frequency 0 +--- Frequency level of core 3 is 0 +--- Exact frequency of core 3: 0 +--- Modifying the governor of core 3 +--- Modifying the the current frequency of core 3 with frequency 0 +--- Frequency level of core 4 is 0 +--- Exact frequency of core 4: 0 +--- Modifying the governor of core 4 +--- Modifying the the current frequency of core 4 with frequency 0 +--- Frequency level of core 5 is 0 +--- Exact frequency of core 5: 0 +--- Modifying the governor of core 5 +--- Modifying the the current frequency of core 5 with frequency 0 +--- Frequency level of core 6 is 2 +--- Exact frequency of core 6: 1478400 +--- Modifying the governor of core 6 +--- Modifying the the current frequency of core 6 with frequency 1478400 +--- Frequency level of core 7 is 2 +--- Exact frequency of core 7: 1766400 +--- Modifying the governor of core 7 +--- Modifying the the current frequency of core 7 with frequency 1766400 +--- Calibrating Monsoon power meter, please wait for 10 seconds... +powermeter script : --- Inside the monsoon_power_meter, arg function: 1 +powermeter script : calibration duration = 10 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 50000 + returning 50000 samples after experiments +powermeter script : Power meter calibration okay +--- Monsoon power meter Calibrated +--- starting the benchmarking app +## writing the configuration inside the phone file + --- Removing file /sdcard/experiments_automatization +rm '/sdcard/experiments_automatization/current_configuration.txt' +rm '/sdcard/experiments_automatization/experiment_duration.txt' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ended' +rmdir '/sdcard/experiments_automatization/app_output_folder' +rmdir '/sdcard/experiments_automatization' + --- Clearing the logcat + --- Creating file /sdcard/experiments_automatization +----- Uninstalling experiment app +Success +----- Installing experiment app +Performing Streamed Install +Success +------ Giving rights to experiment app +----- Starting experiment app +Starting: Intent { cmp=com.opportunistask.scheduling.benchmarking_app_to_test_big_cores/.MainActivity } +adb command : ps -A | grep com.opportunistask.scheduling.benchmarking_app_to_test_big_cores + ----- Experiment app started with pid: 22964 +---- waiting for benchmarking app thread to be pinned and to be ready +--- frequency level of core 0 is 1 +--- frequency level of core 1 is 1 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of cores to occupy = 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 4 +--- Now threads are running and the phone is ready to be sampled with the power meter \n--- Threads pids +Thread_0_ready_for_sampling +Thread_1_ready_for_sampling +Thread_2_ready_for_sampling +Thread_3_ready_for_sampling +--- Printing cc_info beginning datas (for the samsung galaxy s8) + --- Starting power meter sampling for about 600 seconds +--- Sampling with the Monsoon power meter +powermeter script : --- Inside the monsoon_power_meter, arg function: 2 +powermeter script : Experiment duration = 600 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 3000000 + returning 3000000 samples after experiments +powermeter script : Total nomber of sample measured : 3000000 +powermeter script : Computing powermeter summary result + Number of samples = 3000000 +powermeter script : We computed the energy on 600 samples +powermeter script : average_power = 2039.9408493051626 +powermeter script : average_power with numpy arrays = 2039.9408493046394 +powermeter script : Summary Result = time (s): 601.7008249759674 +Ins Current (mA):436.1334179124949 +Samples: 3000000 +Consumed Energy (mAs): 252406.51003512752 +Consumed Energy (mAh): 70.11291945420209 +Consumed Energy (mWs): 1218570.0551167622 +Consumed Energy (mWh): 338.4916819768784 +Avg power (mW): 2039.9408493051626 +Avg Current (mA): 422.50788515010294 +Avg Voltage (V): 4.828172256667919 +Exp Batt Life (hrs for 1000mAh battery): NOT COMPUTED +--- Monsoon power meter sampling is finished ! + --- experiment folder path /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- frequency level of core 0 is 1 +--- frequency level of core 1 is 1 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of threads normally started = 4 +--- Number of thread ended: 4 +--- Now threads are stopped, getting the cc_info_level for samsung +--- Copying thread results locally +command /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe pull /sdcard/experiments_automatization/app_output_folder C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder </dev/null +/sdcard/experiments_automatization/app_output_folder/: 8 files pulled, 0 skipped. 0.0 MB/s (1816 bytes in 0.063s) +saving the logcat file to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder -/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder- +--- Parsing result from /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/raw_result.txt +--- Getting exact configuration with frequency +--- Configuration with frequencies = [576000- 576000- 0- 0- 0- 0- 1478400- 1766400] +--- Getting the powermeter summary +--- Powermeter summary: +time (s): 601.7008249759674 +Ins Current (mA):436.1334179124949 +Samples: 3000000 +Consumed Energy (mAs): 252406.51003512752 +Consumed Energy (mAh): 70.11291945420209 +Consumed Energy (mWs): 1218570.0551167622 +Consumed Energy (mWh): 338.4916819768784 +Avg power (mW): 2039.9408493051626 +Avg Current (mA): 422.50788515010294 +Avg Voltage (V): 4.828172256667919 + +--- Getting the total energy consumed of the google pixel +--- Energy consumed = 70.11291945420209 +--- Starting cc_info = 0 +--- Ending cc_info = 0 +--- Getting the average power +--- Avg Power = 2039.9408493051626 +--- Printing the total threads summary +--- Thread results +Thread : 0 - ThreadProcess id: 22989 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 19:36:45 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 19:46:46 +0100 - Duration: 600004 seconds +Real workload: 4.911699136575844E10 - Integer reached: 183872 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 22990 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 19:36:45 +0100 +Core id: 1 +Ending time: Sun, 19 Dec 2021 19:46:46 +0100 - Duration: 600015 seconds +Real workload: 4.950393988406067E10 - Integer reached: 184565 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 22991 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 19:36:46 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 19:46:46 +0100 - Duration: 600007 seconds +Real workload: 4.842736012153181E11 - Integer reached: 551858 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 22992 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 19:36:46 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 19:46:46 +0100 - Duration: 600007 seconds +Real workload: 5.823845844684213E11 - Integer reached: 603083 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +--- Counting the total workload command : print_total_workload /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder app_output_folder 1,1,0,0,0,0,2,2 /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first +--- Total workload : 1.16528e+12 +--- Getting energy efficiency +--- Energy efficiency: 6.01683e-11 +--- Building what we will add to the total result file command +------ + (build_configuration_raw_result 110000-2-2 1,1,0,0,0,0,2,2 [576000- 576000- 0- 0- 0- 0- 1478400- 1766400] time (s): 601.7008249759674 +Ins Current (mA):436.1334179124949 +Samples: 3000000 +Consumed Energy (mAs): 252406.51003512752 +Consumed Energy (mAh): 70.11291945420209 +Consumed Energy (mWs): 1218570.0551167622 +Consumed Energy (mWh): 338.4916819768784 +Avg power (mW): 2039.9408493051626 +Avg Current (mA): 422.50788515010294 +Avg Voltage (V): 4.828172256667919 + Thread : 0 - ThreadProcess id: 22989 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 19:36:45 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 19:46:46 +0100 - Duration: 600004 seconds +Real workload: 4.911699136575844E10 - Integer reached: 183872 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 22990 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 19:36:45 +0100 +Core id: 1 +Ending time: Sun, 19 Dec 2021 19:46:46 +0100 - Duration: 600015 seconds +Real workload: 4.950393988406067E10 - Integer reached: 184565 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 22991 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 19:36:46 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 19:46:46 +0100 - Duration: 600007 seconds +Real workload: 4.842736012153181E11 - Integer reached: 551858 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 22992 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 19:36:46 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 19:46:46 +0100 - Duration: 600007 seconds +Real workload: 5.823845844684213E11 - Integer reached: 603083 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + 70.11291945420209 1.16528e+12 6.01683e-11 0 0 +------ + +--- Final result to print to File + -------------------------------------------------------------------------------- + +++++ +++++ +++++ Configuration Description +-------------------------------------------------------------------------------- +Configuration: 110000-2-2 +phone format: 1,1,0,0,0,0,2,2 +Exact values of frequencies: [576000- 576000- 0- 0- 0- 0- 1478400- 1766400] + +Power meter results +------------------------------------------------------------ +time (s): 601.7008249759674 +Ins Current (mA):436.1334179124949 +Samples: 3000000 +Consumed Energy (mAs): 252406.51003512752 +Consumed Energy (mAh): 70.11291945420209 +Consumed Energy (mWs): 1218570.0551167622 +Consumed Energy (mWh): 338.4916819768784 +Avg power (mW): 2039.9408493051626 +Avg Current (mA): 422.50788515010294 +Avg Voltage (V): 4.828172256667919 + +Threads results +------------------------------------------------------------ +Thread : 0 - ThreadProcess id: 22989 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 19:36:45 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 19:46:46 +0100 - Duration: 600004 seconds +Real workload: 4.911699136575844E10 - Integer reached: 183872 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 22990 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 19:36:45 +0100 +Core id: 1 +Ending time: Sun, 19 Dec 2021 19:46:46 +0100 - Duration: 600015 seconds +Real workload: 4.950393988406067E10 - Integer reached: 184565 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 22991 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 19:36:46 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 19:46:46 +0100 - Duration: 600007 seconds +Real workload: 4.842736012153181E11 - Integer reached: 551858 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 22992 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 19:36:46 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 19:46:46 +0100 - Duration: 600007 seconds +Real workload: 5.823845844684213E11 - Integer reached: 603083 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +Expermiment results +------------------------------------------------------------ +Energy Consumed (mAh): 70.11291945420209 +Workload: 1.16528e+12 +Energy efficiency: 6.01683e-11 +-------------------------------------------------------------------------------- + + +--- Writing to the total result file +--- Removing previous tested configuration tmp_output folder +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_21_20_00/app_output_folder/all_workloads.txt' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_21_20_00/app_output_folder/Thread_0_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_21_20_00/app_output_folder/Thread_0_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_21_20_00/app_output_folder/Thread_1_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_21_20_00/app_output_folder/Thread_1_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_21_20_00/app_output_folder/Thread_2_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_21_20_00/app_output_folder/Thread_2_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_21_20_00/app_output_folder/Thread_3_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_21_20_00/app_output_folder/Thread_3_ready_for_sampling' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_21_20_00/app_output_folder' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_21_20_00/configuration_mesurement.csv' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_21_20_00/energy_power_workload_energyByWorkload_ccInfo' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_21_20_00/logcat_output' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_21_20_00/powermeter_summary.txt' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_21_20_00' +--- Moving the current experiment tmp_folder to the output result folder +writing a temporary file for the main script with format energy_power_workload_energyByWorkload_ccInfo +--- Obtaining experiment summary result to add to result folder +--- Experiment result, Energy consumed = 70.11291945420209 +--- Experiment result, Avg Power = 2039.9408493051626 +--- Experiment result, Total Workload = 1.16528e+12 +--- Experiment result, Energy Efficiency = 6.01683e-11 +--- Adding result to summary file +--- Starting cc information : 0 +--- Ending cc information : 0 +--- The file /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/summary.csv exists we just appending the result to the file +--- Experiments performed on configuration 110000-2-2. +--- Observing a pause betwenn experiment; pause duration : 180 seconds; starting at 04Oct22_21_32_44 +--- Performing experiments on configuration 110000-2-2 +--- Cleaning the tmp expermiment folder : /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- Second step : verifying the battery level +--- Verifying the battery level +--- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe +--- Current battery level : 50 +Current battery level: OKAY +--- Third step calibrating phone core frequency +--- Resetting all frequency configurations + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu5/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor +--- Frequency level of core 0 is 1 +--- Exact frequency of core 0: 576000 +--- Modifying the governor of core 0 +--- Modifying the the current frequency of core 0 with frequency 576000 +--- Frequency level of core 1 is 1 +--- Exact frequency of core 1: 576000 +--- Modifying the governor of core 1 +--- Modifying the the current frequency of core 1 with frequency 576000 +--- Frequency level of core 2 is 0 +--- Exact frequency of core 2: 0 +--- Modifying the governor of core 2 +--- Modifying the the current frequency of core 2 with frequency 0 +--- Frequency level of core 3 is 0 +--- Exact frequency of core 3: 0 +--- Modifying the governor of core 3 +--- Modifying the the current frequency of core 3 with frequency 0 +--- Frequency level of core 4 is 0 +--- Exact frequency of core 4: 0 +--- Modifying the governor of core 4 +--- Modifying the the current frequency of core 4 with frequency 0 +--- Frequency level of core 5 is 0 +--- Exact frequency of core 5: 0 +--- Modifying the governor of core 5 +--- Modifying the the current frequency of core 5 with frequency 0 +--- Frequency level of core 6 is 2 +--- Exact frequency of core 6: 1478400 +--- Modifying the governor of core 6 +--- Modifying the the current frequency of core 6 with frequency 1478400 +--- Frequency level of core 7 is 2 +--- Exact frequency of core 7: 1766400 +--- Modifying the governor of core 7 +--- Modifying the the current frequency of core 7 with frequency 1766400 +--- Calibrating Monsoon power meter, please wait for 10 seconds... +powermeter script : --- Inside the monsoon_power_meter, arg function: 1 +powermeter script : calibration duration = 10 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 50000 + returning 50000 samples after experiments +powermeter script : Power meter calibration okay +--- Monsoon power meter Calibrated +--- starting the benchmarking app +## writing the configuration inside the phone file + --- Removing file /sdcard/experiments_automatization +rm '/sdcard/experiments_automatization/current_configuration.txt' +rm '/sdcard/experiments_automatization/experiment_duration.txt' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ended' +rmdir '/sdcard/experiments_automatization/app_output_folder' +rmdir '/sdcard/experiments_automatization' + --- Clearing the logcat + --- Creating file /sdcard/experiments_automatization +----- Uninstalling experiment app +Success +----- Installing experiment app +Performing Streamed Install +Success +------ Giving rights to experiment app +----- Starting experiment app +Starting: Intent { cmp=com.opportunistask.scheduling.benchmarking_app_to_test_big_cores/.MainActivity } +adb command : ps -A | grep com.opportunistask.scheduling.benchmarking_app_to_test_big_cores + ----- Experiment app started with pid: 23993 +---- waiting for benchmarking app thread to be pinned and to be ready +--- frequency level of core 0 is 1 +--- frequency level of core 1 is 1 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of cores to occupy = 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 1 +--- The current number of thread ready to be sambled : 1, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 4 +--- Now threads are running and the phone is ready to be sampled with the power meter \n--- Threads pids +Thread_0_ready_for_sampling +Thread_1_ready_for_sampling +Thread_2_ready_for_sampling +Thread_3_ready_for_sampling +--- Printing cc_info beginning datas (for the samsung galaxy s8) + --- Starting power meter sampling for about 600 seconds +--- Sampling with the Monsoon power meter +powermeter script : --- Inside the monsoon_power_meter, arg function: 2 +powermeter script : Experiment duration = 600 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 3000000 + returning 3000000 samples after experiments +powermeter script : Total nomber of sample measured : 3000000 +powermeter script : Computing powermeter summary result + Number of samples = 3000000 +powermeter script : We computed the energy on 600 samples +powermeter script : average_power = 2042.5764384831075 +powermeter script : average_power with numpy arrays = 2042.5764384826502 +powermeter script : Summary Result = time (s): 601.7195279598236 +Ins Current (mA):436.5079542857143 +Samples: 3000000 +Consumed Energy (mAs): 253709.08496432065 +Consumed Energy (mAh): 70.4747458234224 +Consumed Energy (mWs): 1224723.5746770196 +Consumed Energy (mWh): 340.2009929658388 +Avg power (mW): 2042.5764384831075 +Avg Current (mA): 423.0835571869796 +Avg Voltage (V): 4.827832242084514 +Exp Batt Life (hrs for 1000mAh battery): NOT COMPUTED +--- Monsoon power meter sampling is finished ! + --- experiment folder path /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- frequency level of core 0 is 1 +--- frequency level of core 1 is 1 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of threads normally started = 4 +--- Number of thread ended: 4 +--- Now threads are stopped, getting the cc_info_level for samsung +--- Copying thread results locally +command /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe pull /sdcard/experiments_automatization/app_output_folder C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder </dev/null +/sdcard/experiments_automatization/app_output_folder/: 8 files pulled, 0 skipped. 0.0 MB/s (1818 bytes in 0.038s) +saving the logcat file to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder -/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder- +--- Parsing result from /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/raw_result.txt +--- Getting exact configuration with frequency +--- Configuration with frequencies = [576000- 576000- 0- 0- 0- 0- 1478400- 1766400] +--- Getting the powermeter summary +--- Powermeter summary: +time (s): 601.7195279598236 +Ins Current (mA):436.5079542857143 +Samples: 3000000 +Consumed Energy (mAs): 253709.08496432065 +Consumed Energy (mAh): 70.4747458234224 +Consumed Energy (mWs): 1224723.5746770196 +Consumed Energy (mWh): 340.2009929658388 +Avg power (mW): 2042.5764384831075 +Avg Current (mA): 423.0835571869796 +Avg Voltage (V): 4.827832242084514 + +--- Getting the total energy consumed of the google pixel +--- Energy consumed = 70.4747458234224 +--- Starting cc_info = 0 +--- Ending cc_info = 0 +--- Getting the average power +--- Avg Power = 2042.5764384831075 +--- Printing the total threads summary +--- Thread results +Thread : 0 - ThreadProcess id: 24018 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 19:52:32 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 20:02:32 +0100 - Duration: 600025 seconds +Real workload: 4.9554868327298965E10 - Integer reached: 184656 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 24019 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 19:52:32 +0100 +Core id: 1 +Ending time: Sun, 19 Dec 2021 20:02:32 +0100 - Duration: 600025 seconds +Real workload: 4.9347407351359795E10 - Integer reached: 184285 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 24020 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 19:52:32 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 20:02:32 +0100 - Duration: 600009 seconds +Real workload: 4.843319723758895E11 - Integer reached: 551890 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 24021 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 19:52:32 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 20:02:32 +0100 - Duration: 600001 seconds +Real workload: 5.816062396742286E11 - Integer reached: 602695 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +--- Counting the total workload command : print_total_workload /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder app_output_folder 1,1,0,0,0,0,2,2 /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first +--- Total workload : 1.16484e+12 +--- Getting energy efficiency +--- Energy efficiency: 6.05017e-11 +--- Building what we will add to the total result file command +------ + (build_configuration_raw_result 110000-2-2 1,1,0,0,0,0,2,2 [576000- 576000- 0- 0- 0- 0- 1478400- 1766400] time (s): 601.7195279598236 +Ins Current (mA):436.5079542857143 +Samples: 3000000 +Consumed Energy (mAs): 253709.08496432065 +Consumed Energy (mAh): 70.4747458234224 +Consumed Energy (mWs): 1224723.5746770196 +Consumed Energy (mWh): 340.2009929658388 +Avg power (mW): 2042.5764384831075 +Avg Current (mA): 423.0835571869796 +Avg Voltage (V): 4.827832242084514 + Thread : 0 - ThreadProcess id: 24018 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 19:52:32 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 20:02:32 +0100 - Duration: 600025 seconds +Real workload: 4.9554868327298965E10 - Integer reached: 184656 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 24019 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 19:52:32 +0100 +Core id: 1 +Ending time: Sun, 19 Dec 2021 20:02:32 +0100 - Duration: 600025 seconds +Real workload: 4.9347407351359795E10 - Integer reached: 184285 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 24020 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 19:52:32 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 20:02:32 +0100 - Duration: 600009 seconds +Real workload: 4.843319723758895E11 - Integer reached: 551890 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 24021 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 19:52:32 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 20:02:32 +0100 - Duration: 600001 seconds +Real workload: 5.816062396742286E11 - Integer reached: 602695 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + 70.4747458234224 1.16484e+12 6.05017e-11 0 0 +------ + +--- Final result to print to File + -------------------------------------------------------------------------------- + +++++ +++++ +++++ Configuration Description +-------------------------------------------------------------------------------- +Configuration: 110000-2-2 +phone format: 1,1,0,0,0,0,2,2 +Exact values of frequencies: [576000- 576000- 0- 0- 0- 0- 1478400- 1766400] + +Power meter results +------------------------------------------------------------ +time (s): 601.7195279598236 +Ins Current (mA):436.5079542857143 +Samples: 3000000 +Consumed Energy (mAs): 253709.08496432065 +Consumed Energy (mAh): 70.4747458234224 +Consumed Energy (mWs): 1224723.5746770196 +Consumed Energy (mWh): 340.2009929658388 +Avg power (mW): 2042.5764384831075 +Avg Current (mA): 423.0835571869796 +Avg Voltage (V): 4.827832242084514 + +Threads results +------------------------------------------------------------ +Thread : 0 - ThreadProcess id: 24018 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 19:52:32 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 20:02:32 +0100 - Duration: 600025 seconds +Real workload: 4.9554868327298965E10 - Integer reached: 184656 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 24019 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 19:52:32 +0100 +Core id: 1 +Ending time: Sun, 19 Dec 2021 20:02:32 +0100 - Duration: 600025 seconds +Real workload: 4.9347407351359795E10 - Integer reached: 184285 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 24020 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 19:52:32 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 20:02:32 +0100 - Duration: 600009 seconds +Real workload: 4.843319723758895E11 - Integer reached: 551890 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 24021 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 19:52:32 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 20:02:32 +0100 - Duration: 600001 seconds +Real workload: 5.816062396742286E11 - Integer reached: 602695 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +Expermiment results +------------------------------------------------------------ +Energy Consumed (mAh): 70.4747458234224 +Workload: 1.16484e+12 +Energy efficiency: 6.05017e-11 +-------------------------------------------------------------------------------- + + +--- Writing to the total result file +--- Removing previous tested configuration tmp_output folder +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_21_35_46/app_output_folder/all_workloads.txt' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_21_35_46/app_output_folder/Thread_0_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_21_35_46/app_output_folder/Thread_0_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_21_35_46/app_output_folder/Thread_1_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_21_35_46/app_output_folder/Thread_1_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_21_35_46/app_output_folder/Thread_2_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_21_35_46/app_output_folder/Thread_2_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_21_35_46/app_output_folder/Thread_3_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_21_35_46/app_output_folder/Thread_3_ready_for_sampling' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_21_35_46/app_output_folder' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_21_35_46/configuration_mesurement.csv' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_21_35_46/energy_power_workload_energyByWorkload_ccInfo' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_21_35_46/logcat_output' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_21_35_46/powermeter_summary.txt' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_21_35_46' +--- Moving the current experiment tmp_folder to the output result folder +writing a temporary file for the main script with format energy_power_workload_energyByWorkload_ccInfo +--- Obtaining experiment summary result to add to result folder +--- Experiment result, Energy consumed = 70.4747458234224 +--- Experiment result, Avg Power = 2042.5764384831075 +--- Experiment result, Total Workload = 1.16484e+12 +--- Experiment result, Energy Efficiency = 6.05017e-11 +--- Adding result to summary file +--- Starting cc information : 0 +--- Ending cc information : 0 +--- The file /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/summary.csv exists we just appending the result to the file +--- Experiments performed on configuration 110000-2-2. +--- Observing a pause betwenn experiment; pause duration : 180 seconds; starting at 04Oct22_21_48_32 +--- Performing experiments on configuration 110000-2-2 +--- Cleaning the tmp expermiment folder : /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- Second step : verifying the battery level +--- Verifying the battery level +--- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe +--- Current battery level : 50 +Current battery level: OKAY +--- Third step calibrating phone core frequency +--- Resetting all frequency configurations + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu5/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor +--- Frequency level of core 0 is 1 +--- Exact frequency of core 0: 576000 +--- Modifying the governor of core 0 +--- Modifying the the current frequency of core 0 with frequency 576000 +--- Frequency level of core 1 is 1 +--- Exact frequency of core 1: 576000 +--- Modifying the governor of core 1 +--- Modifying the the current frequency of core 1 with frequency 576000 +--- Frequency level of core 2 is 0 +--- Exact frequency of core 2: 0 +--- Modifying the governor of core 2 +--- Modifying the the current frequency of core 2 with frequency 0 +--- Frequency level of core 3 is 0 +--- Exact frequency of core 3: 0 +--- Modifying the governor of core 3 +--- Modifying the the current frequency of core 3 with frequency 0 +--- Frequency level of core 4 is 0 +--- Exact frequency of core 4: 0 +--- Modifying the governor of core 4 +--- Modifying the the current frequency of core 4 with frequency 0 +--- Frequency level of core 5 is 0 +--- Exact frequency of core 5: 0 +--- Modifying the governor of core 5 +--- Modifying the the current frequency of core 5 with frequency 0 +--- Frequency level of core 6 is 2 +--- Exact frequency of core 6: 1478400 +--- Modifying the governor of core 6 +--- Modifying the the current frequency of core 6 with frequency 1478400 +--- Frequency level of core 7 is 2 +--- Exact frequency of core 7: 1766400 +--- Modifying the governor of core 7 +--- Modifying the the current frequency of core 7 with frequency 1766400 +--- Calibrating Monsoon power meter, please wait for 10 seconds... +powermeter script : --- Inside the monsoon_power_meter, arg function: 1 +powermeter script : calibration duration = 10 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 50000 + returning 50000 samples after experiments +powermeter script : Power meter calibration okay +--- Monsoon power meter Calibrated +--- starting the benchmarking app +## writing the configuration inside the phone file + --- Removing file /sdcard/experiments_automatization +rm '/sdcard/experiments_automatization/current_configuration.txt' +rm '/sdcard/experiments_automatization/experiment_duration.txt' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ended' +rmdir '/sdcard/experiments_automatization/app_output_folder' +rmdir '/sdcard/experiments_automatization' + --- Clearing the logcat + --- Creating file /sdcard/experiments_automatization +----- Uninstalling experiment app +Success +----- Installing experiment app +Performing Streamed Install +Success +------ Giving rights to experiment app +----- Starting experiment app +Starting: Intent { cmp=com.opportunistask.scheduling.benchmarking_app_to_test_big_cores/.MainActivity } +adb command : ps -A | grep com.opportunistask.scheduling.benchmarking_app_to_test_big_cores + ----- Experiment app started with pid: 25020 +---- waiting for benchmarking app thread to be pinned and to be ready +--- frequency level of core 0 is 1 +--- frequency level of core 1 is 1 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of cores to occupy = 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 2 +--- The current number of thread ready to be sambled : 2, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 4 +--- Now threads are running and the phone is ready to be sampled with the power meter \n--- Threads pids +Thread_0_ready_for_sampling +Thread_1_ready_for_sampling +Thread_2_ready_for_sampling +Thread_3_ready_for_sampling +--- Printing cc_info beginning datas (for the samsung galaxy s8) + --- Starting power meter sampling for about 600 seconds +--- Sampling with the Monsoon power meter +powermeter script : --- Inside the monsoon_power_meter, arg function: 2 +powermeter script : Experiment duration = 600 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 3000000 + returning 3000000 samples after experiments +powermeter script : Total nomber of sample measured : 3000000 +powermeter script : Computing powermeter summary result + Number of samples = 3000000 +powermeter script : We computed the energy on 600 samples +powermeter script : average_power = 2044.605286313954 +powermeter script : average_power with numpy arrays = 2044.6052863134241 +powermeter script : Summary Result = time (s): 602.4835815429688 +Ins Current (mA):435.7035911033899 +Samples: 3000000 +Consumed Energy (mAs): 253287.6016107943 +Consumed Energy (mAh): 70.35766711410953 +Consumed Energy (mWs): 1222645.7220097259 +Consumed Energy (mWh): 339.6238116693683 +Avg power (mW): 2044.605286313954 +Avg Current (mA): 423.523006284616 +Avg Voltage (V): 4.827613272417929 +Exp Batt Life (hrs for 1000mAh battery): NOT COMPUTED +--- Monsoon power meter sampling is finished ! + --- experiment folder path /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- frequency level of core 0 is 1 +--- frequency level of core 1 is 1 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of threads normally started = 4 +--- Number of thread ended: 4 +--- Now threads are stopped, getting the cc_info_level for samsung +--- Copying thread results locally +command /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe pull /sdcard/experiments_automatization/app_output_folder C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder </dev/null +/sdcard/experiments_automatization/app_output_folder/: 8 files pulled, 0 skipped. 0.0 MB/s (1815 bytes in 0.062s) +saving the logcat file to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder -/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder- +--- Parsing result from /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/raw_result.txt +--- Getting exact configuration with frequency +--- Configuration with frequencies = [576000- 576000- 0- 0- 0- 0- 1478400- 1766400] +--- Getting the powermeter summary +--- Powermeter summary: +time (s): 602.4835815429688 +Ins Current (mA):435.7035911033899 +Samples: 3000000 +Consumed Energy (mAs): 253287.6016107943 +Consumed Energy (mAh): 70.35766711410953 +Consumed Energy (mWs): 1222645.7220097259 +Consumed Energy (mWh): 339.6238116693683 +Avg power (mW): 2044.605286313954 +Avg Current (mA): 423.523006284616 +Avg Voltage (V): 4.827613272417929 + +--- Getting the total energy consumed of the google pixel +--- Energy consumed = 70.35766711410953 +--- Starting cc_info = 0 +--- Ending cc_info = 0 +--- Getting the average power +--- Avg Power = 2044.605286313954 +--- Printing the total threads summary +--- Thread results +Thread : 0 - ThreadProcess id: 25045 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 20:08:19 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 20:18:20 +0100 - Duration: 600010 seconds +Real workload: 4.944744668077174E10 - Integer reached: 184464 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 49 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 25046 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 20:08:20 +0100 +Core id: 1 +Ending time: Sun, 19 Dec 2021 20:18:20 +0100 - Duration: 600028 seconds +Real workload: 4.96383153904367E10 - Integer reached: 184805 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 49 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 25047 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 20:08:20 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 20:18:20 +0100 - Duration: 600008 seconds +Real workload: 4.853248392843539E11 - Integer reached: 552434 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 49 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 25049 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 20:08:20 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 20:18:20 +0100 - Duration: 600002 seconds +Real workload: 5.821277514055619E11 - Integer reached: 602955 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 49 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +--- Counting the total workload command : print_total_workload /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder app_output_folder 1,1,0,0,0,0,2,2 /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first +--- Total workload : 1.16654e+12 +--- Getting energy efficiency +--- Energy efficiency: 6.03131e-11 +--- Building what we will add to the total result file command +------ + (build_configuration_raw_result 110000-2-2 1,1,0,0,0,0,2,2 [576000- 576000- 0- 0- 0- 0- 1478400- 1766400] time (s): 602.4835815429688 +Ins Current (mA):435.7035911033899 +Samples: 3000000 +Consumed Energy (mAs): 253287.6016107943 +Consumed Energy (mAh): 70.35766711410953 +Consumed Energy (mWs): 1222645.7220097259 +Consumed Energy (mWh): 339.6238116693683 +Avg power (mW): 2044.605286313954 +Avg Current (mA): 423.523006284616 +Avg Voltage (V): 4.827613272417929 + Thread : 0 - ThreadProcess id: 25045 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 20:08:19 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 20:18:20 +0100 - Duration: 600010 seconds +Real workload: 4.944744668077174E10 - Integer reached: 184464 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 49 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 25046 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 20:08:20 +0100 +Core id: 1 +Ending time: Sun, 19 Dec 2021 20:18:20 +0100 - Duration: 600028 seconds +Real workload: 4.96383153904367E10 - Integer reached: 184805 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 49 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 25047 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 20:08:20 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 20:18:20 +0100 - Duration: 600008 seconds +Real workload: 4.853248392843539E11 - Integer reached: 552434 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 49 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 25049 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 20:08:20 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 20:18:20 +0100 - Duration: 600002 seconds +Real workload: 5.821277514055619E11 - Integer reached: 602955 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 49 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + 70.35766711410953 1.16654e+12 6.03131e-11 0 0 +------ + +--- Final result to print to File + -------------------------------------------------------------------------------- + +++++ +++++ +++++ Configuration Description +-------------------------------------------------------------------------------- +Configuration: 110000-2-2 +phone format: 1,1,0,0,0,0,2,2 +Exact values of frequencies: [576000- 576000- 0- 0- 0- 0- 1478400- 1766400] + +Power meter results +------------------------------------------------------------ +time (s): 602.4835815429688 +Ins Current (mA):435.7035911033899 +Samples: 3000000 +Consumed Energy (mAs): 253287.6016107943 +Consumed Energy (mAh): 70.35766711410953 +Consumed Energy (mWs): 1222645.7220097259 +Consumed Energy (mWh): 339.6238116693683 +Avg power (mW): 2044.605286313954 +Avg Current (mA): 423.523006284616 +Avg Voltage (V): 4.827613272417929 + +Threads results +------------------------------------------------------------ +Thread : 0 - ThreadProcess id: 25045 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 20:08:19 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 20:18:20 +0100 - Duration: 600010 seconds +Real workload: 4.944744668077174E10 - Integer reached: 184464 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 49 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 25046 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 20:08:20 +0100 +Core id: 1 +Ending time: Sun, 19 Dec 2021 20:18:20 +0100 - Duration: 600028 seconds +Real workload: 4.96383153904367E10 - Integer reached: 184805 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 49 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 25047 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 20:08:20 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 20:18:20 +0100 - Duration: 600008 seconds +Real workload: 4.853248392843539E11 - Integer reached: 552434 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 49 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 25049 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 20:08:20 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 20:18:20 +0100 - Duration: 600002 seconds +Real workload: 5.821277514055619E11 - Integer reached: 602955 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 49 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +Expermiment results +------------------------------------------------------------ +Energy Consumed (mAh): 70.35766711410953 +Workload: 1.16654e+12 +Energy efficiency: 6.03131e-11 +-------------------------------------------------------------------------------- + + +--- Writing to the total result file +--- Removing previous tested configuration tmp_output folder +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_21_51_34/app_output_folder/all_workloads.txt' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_21_51_34/app_output_folder/Thread_0_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_21_51_34/app_output_folder/Thread_0_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_21_51_34/app_output_folder/Thread_1_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_21_51_34/app_output_folder/Thread_1_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_21_51_34/app_output_folder/Thread_2_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_21_51_34/app_output_folder/Thread_2_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_21_51_34/app_output_folder/Thread_3_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_21_51_34/app_output_folder/Thread_3_ready_for_sampling' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_21_51_34/app_output_folder' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_21_51_34/configuration_mesurement.csv' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_21_51_34/energy_power_workload_energyByWorkload_ccInfo' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_21_51_34/logcat_output' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_21_51_34/powermeter_summary.txt' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_21_51_34' +--- Moving the current experiment tmp_folder to the output result folder +writing a temporary file for the main script with format energy_power_workload_energyByWorkload_ccInfo +--- Obtaining experiment summary result to add to result folder +--- Experiment result, Energy consumed = 70.35766711410953 +--- Experiment result, Avg Power = 2044.605286313954 +--- Experiment result, Total Workload = 1.16654e+12 +--- Experiment result, Energy Efficiency = 6.03131e-11 +--- Adding result to summary file +--- Starting cc information : 0 +--- Ending cc information : 0 +--- The file /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/summary.csv exists we just appending the result to the file +--- Experiments performed on configuration 110000-2-2. +--- Observing a pause betwenn experiment; pause duration : 180 seconds; starting at 04Oct22_22_04_21 +--- Performing experiments on configuration 200002-2-2 +--- Cleaning the tmp expermiment folder : /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- Second step : verifying the battery level +--- Verifying the battery level +--- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe +--- Current battery level : 50 +Current battery level: OKAY +--- Third step calibrating phone core frequency +--- Resetting all frequency configurations + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu5/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor +--- Frequency level of core 0 is 2 +--- Exact frequency of core 0: 1363200 +--- Modifying the governor of core 0 +--- Modifying the the current frequency of core 0 with frequency 1363200 +--- Frequency level of core 1 is 0 +--- Exact frequency of core 1: 0 +--- Modifying the governor of core 1 +--- Modifying the the current frequency of core 1 with frequency 0 +--- Frequency level of core 2 is 0 +--- Exact frequency of core 2: 0 +--- Modifying the governor of core 2 +--- Modifying the the current frequency of core 2 with frequency 0 +--- Frequency level of core 3 is 0 +--- Exact frequency of core 3: 0 +--- Modifying the governor of core 3 +--- Modifying the the current frequency of core 3 with frequency 0 +--- Frequency level of core 4 is 0 +--- Exact frequency of core 4: 0 +--- Modifying the governor of core 4 +--- Modifying the the current frequency of core 4 with frequency 0 +--- Frequency level of core 5 is 2 +--- Exact frequency of core 5: 1363200 +--- Modifying the governor of core 5 +--- Modifying the the current frequency of core 5 with frequency 1363200 +--- Frequency level of core 6 is 2 +--- Exact frequency of core 6: 1478400 +--- Modifying the governor of core 6 +--- Modifying the the current frequency of core 6 with frequency 1478400 +--- Frequency level of core 7 is 2 +--- Exact frequency of core 7: 1766400 +--- Modifying the governor of core 7 +--- Modifying the the current frequency of core 7 with frequency 1766400 +--- Calibrating Monsoon power meter, please wait for 10 seconds... +powermeter script : --- Inside the monsoon_power_meter, arg function: 1 +powermeter script : calibration duration = 10 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 50000 + returning 50000 samples after experiments +powermeter script : Power meter calibration okay +--- Monsoon power meter Calibrated +--- starting the benchmarking app +## writing the configuration inside the phone file + --- Removing file /sdcard/experiments_automatization +rm '/sdcard/experiments_automatization/current_configuration.txt' +rm '/sdcard/experiments_automatization/experiment_duration.txt' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ended' +rmdir '/sdcard/experiments_automatization/app_output_folder' +rmdir '/sdcard/experiments_automatization' + --- Clearing the logcat + --- Creating file /sdcard/experiments_automatization +----- Uninstalling experiment app +Success +----- Installing experiment app +Performing Streamed Install +Success +------ Giving rights to experiment app +----- Starting experiment app +Starting: Intent { cmp=com.opportunistask.scheduling.benchmarking_app_to_test_big_cores/.MainActivity } +adb command : ps -A | grep com.opportunistask.scheduling.benchmarking_app_to_test_big_cores + ----- Experiment app started with pid: 26351 +---- waiting for benchmarking app thread to be pinned and to be ready +--- frequency level of core 0 is 2 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 2 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of cores to occupy = 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 4 +--- Now threads are running and the phone is ready to be sampled with the power meter \n--- Threads pids +Thread_0_ready_for_sampling +Thread_1_ready_for_sampling +Thread_2_ready_for_sampling +Thread_3_ready_for_sampling +--- Printing cc_info beginning datas (for the samsung galaxy s8) + --- Starting power meter sampling for about 600 seconds +--- Sampling with the Monsoon power meter +powermeter script : --- Inside the monsoon_power_meter, arg function: 2 +powermeter script : Experiment duration = 600 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 3000000 + returning 3000000 samples after experiments +powermeter script : Total nomber of sample measured : 3000000 +powermeter script : Computing powermeter summary result + Number of samples = 3000000 +powermeter script : We computed the energy on 600 samples +powermeter script : average_power = 2241.7006169502456 +powermeter script : average_power with numpy arrays = 2241.700616950085 +powermeter script : Summary Result = time (s): 601.6813912391663 +Ins Current (mA):472.74685338128177 +Samples: 3000000 +Consumed Energy (mAs): 280675.479411349 +Consumed Energy (mAh): 77.96541094759694 +Consumed Energy (mWs): 1345152.379221781 +Consumed Energy (mWh): 373.6534386727169 +Avg power (mW): 2241.7006169502456 +Avg Current (mA): 467.59632494814696 +Avg Voltage (V): 4.794093745708617 +Exp Batt Life (hrs for 1000mAh battery): NOT COMPUTED +--- Monsoon power meter sampling is finished ! + --- experiment folder path /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- frequency level of core 0 is 2 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 2 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of threads normally started = 4 +--- Number of thread ended: 4 +--- Now threads are stopped, getting the cc_info_level for samsung +--- Copying thread results locally +command /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe pull /sdcard/experiments_automatization/app_output_folder C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder </dev/null +/sdcard/experiments_automatization/app_output_folder/: 8 files pulled, 0 skipped. 0.0 MB/s (1819 bytes in 0.041s) +saving the logcat file to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder -/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder- +--- Parsing result from /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/raw_result.txt +--- Getting exact configuration with frequency +--- Configuration with frequencies = [1363200- 0- 0- 0- 0- 1363200- 1478400- 1766400] +--- Getting the powermeter summary +--- Powermeter summary: +time (s): 601.6813912391663 +Ins Current (mA):472.74685338128177 +Samples: 3000000 +Consumed Energy (mAs): 280675.479411349 +Consumed Energy (mAh): 77.96541094759694 +Consumed Energy (mWs): 1345152.379221781 +Consumed Energy (mWh): 373.6534386727169 +Avg power (mW): 2241.7006169502456 +Avg Current (mA): 467.59632494814696 +Avg Voltage (V): 4.794093745708617 + +--- Getting the total energy consumed of the google pixel +--- Energy consumed = 77.96541094759694 +--- Starting cc_info = 0 +--- Ending cc_info = 0 +--- Getting the average power +--- Avg Power = 2241.7006169502456 +--- Printing the total threads summary +--- Thread results +Thread : 0 - ThreadProcess id: 26376 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 20:24:06 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 20:34:06 +0100 - Duration: 600020 seconds +Real workload: 1.1922647823290282E11 - Integer reached: 281372 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 49 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 26377 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 20:24:06 +0100 +Core id: 5 +Ending time: Sun, 19 Dec 2021 20:34:06 +0100 - Duration: 600013 seconds +Real workload: 1.1863147402294258E11 - Integer reached: 280697 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 49 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 26378 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 20:24:06 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 20:34:06 +0100 - Duration: 600001 seconds +Real workload: 4.8647232494754675E11 - Integer reached: 553062 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 49 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 26380 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 20:24:06 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 20:34:06 +0100 - Duration: 600008 seconds +Real workload: 5.828100931601368E11 - Integer reached: 603295 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 49 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +--- Counting the total workload command : print_total_workload /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder app_output_folder 2,0,0,0,0,2,2,2 /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first +--- Total workload : 1.30714e+12 +--- Getting energy efficiency +--- Energy efficiency: 5.96458e-11 +--- Building what we will add to the total result file command +------ + (build_configuration_raw_result 200002-2-2 2,0,0,0,0,2,2,2 [1363200- 0- 0- 0- 0- 1363200- 1478400- 1766400] time (s): 601.6813912391663 +Ins Current (mA):472.74685338128177 +Samples: 3000000 +Consumed Energy (mAs): 280675.479411349 +Consumed Energy (mAh): 77.96541094759694 +Consumed Energy (mWs): 1345152.379221781 +Consumed Energy (mWh): 373.6534386727169 +Avg power (mW): 2241.7006169502456 +Avg Current (mA): 467.59632494814696 +Avg Voltage (V): 4.794093745708617 + Thread : 0 - ThreadProcess id: 26376 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 20:24:06 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 20:34:06 +0100 - Duration: 600020 seconds +Real workload: 1.1922647823290282E11 - Integer reached: 281372 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 49 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 26377 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 20:24:06 +0100 +Core id: 5 +Ending time: Sun, 19 Dec 2021 20:34:06 +0100 - Duration: 600013 seconds +Real workload: 1.1863147402294258E11 - Integer reached: 280697 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 49 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 26378 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 20:24:06 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 20:34:06 +0100 - Duration: 600001 seconds +Real workload: 4.8647232494754675E11 - Integer reached: 553062 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 49 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 26380 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 20:24:06 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 20:34:06 +0100 - Duration: 600008 seconds +Real workload: 5.828100931601368E11 - Integer reached: 603295 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 49 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + 77.96541094759694 1.30714e+12 5.96458e-11 0 0 +------ + +--- Final result to print to File + -------------------------------------------------------------------------------- + +++++ +++++ +++++ Configuration Description +-------------------------------------------------------------------------------- +Configuration: 200002-2-2 +phone format: 2,0,0,0,0,2,2,2 +Exact values of frequencies: [1363200- 0- 0- 0- 0- 1363200- 1478400- 1766400] + +Power meter results +------------------------------------------------------------ +time (s): 601.6813912391663 +Ins Current (mA):472.74685338128177 +Samples: 3000000 +Consumed Energy (mAs): 280675.479411349 +Consumed Energy (mAh): 77.96541094759694 +Consumed Energy (mWs): 1345152.379221781 +Consumed Energy (mWh): 373.6534386727169 +Avg power (mW): 2241.7006169502456 +Avg Current (mA): 467.59632494814696 +Avg Voltage (V): 4.794093745708617 + +Threads results +------------------------------------------------------------ +Thread : 0 - ThreadProcess id: 26376 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 20:24:06 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 20:34:06 +0100 - Duration: 600020 seconds +Real workload: 1.1922647823290282E11 - Integer reached: 281372 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 49 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 26377 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 20:24:06 +0100 +Core id: 5 +Ending time: Sun, 19 Dec 2021 20:34:06 +0100 - Duration: 600013 seconds +Real workload: 1.1863147402294258E11 - Integer reached: 280697 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 49 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 26378 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 20:24:06 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 20:34:06 +0100 - Duration: 600001 seconds +Real workload: 4.8647232494754675E11 - Integer reached: 553062 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 49 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 26380 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 20:24:06 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 20:34:06 +0100 - Duration: 600008 seconds +Real workload: 5.828100931601368E11 - Integer reached: 603295 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 49 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +Expermiment results +------------------------------------------------------------ +Energy Consumed (mAh): 77.96541094759694 +Workload: 1.30714e+12 +Energy efficiency: 5.96458e-11 +-------------------------------------------------------------------------------- + + +--- Writing to the total result file +--- Removing previous tested configuration tmp_output folder +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_22_07_23/app_output_folder/all_workloads.txt' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_22_07_23/app_output_folder/Thread_0_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_22_07_23/app_output_folder/Thread_0_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_22_07_23/app_output_folder/Thread_1_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_22_07_23/app_output_folder/Thread_1_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_22_07_23/app_output_folder/Thread_2_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_22_07_23/app_output_folder/Thread_2_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_22_07_23/app_output_folder/Thread_3_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_22_07_23/app_output_folder/Thread_3_ready_for_sampling' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_22_07_23/app_output_folder' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_22_07_23/configuration_mesurement.csv' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_22_07_23/energy_power_workload_energyByWorkload_ccInfo' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_22_07_23/logcat_output' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_22_07_23/powermeter_summary.txt' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_22_07_23' +--- Moving the current experiment tmp_folder to the output result folder +writing a temporary file for the main script with format energy_power_workload_energyByWorkload_ccInfo +--- Obtaining experiment summary result to add to result folder +--- Experiment result, Energy consumed = 77.96541094759694 +--- Experiment result, Avg Power = 2241.7006169502456 +--- Experiment result, Total Workload = 1.30714e+12 +--- Experiment result, Energy Efficiency = 5.96458e-11 +--- Adding result to summary file +--- Starting cc information : 0 +--- Ending cc information : 0 +--- The file /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/summary.csv exists we just appending the result to the file +--- Experiments performed on configuration 200002-2-2. +--- Observing a pause betwenn experiment; pause duration : 180 seconds; starting at 04Oct22_22_20_05 +--- Performing experiments on configuration 200002-2-2 +--- Cleaning the tmp expermiment folder : /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- Second step : verifying the battery level +--- Verifying the battery level +--- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe +--- Current battery level : 50 +Current battery level: OKAY +--- Third step calibrating phone core frequency +--- Resetting all frequency configurations + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu5/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor +--- Frequency level of core 0 is 2 +--- Exact frequency of core 0: 1363200 +--- Modifying the governor of core 0 +--- Modifying the the current frequency of core 0 with frequency 1363200 +--- Frequency level of core 1 is 0 +--- Exact frequency of core 1: 0 +--- Modifying the governor of core 1 +--- Modifying the the current frequency of core 1 with frequency 0 +--- Frequency level of core 2 is 0 +--- Exact frequency of core 2: 0 +--- Modifying the governor of core 2 +--- Modifying the the current frequency of core 2 with frequency 0 +--- Frequency level of core 3 is 0 +--- Exact frequency of core 3: 0 +--- Modifying the governor of core 3 +--- Modifying the the current frequency of core 3 with frequency 0 +--- Frequency level of core 4 is 0 +--- Exact frequency of core 4: 0 +--- Modifying the governor of core 4 +--- Modifying the the current frequency of core 4 with frequency 0 +--- Frequency level of core 5 is 2 +--- Exact frequency of core 5: 1363200 +--- Modifying the governor of core 5 +--- Modifying the the current frequency of core 5 with frequency 1363200 +--- Frequency level of core 6 is 2 +--- Exact frequency of core 6: 1478400 +--- Modifying the governor of core 6 +--- Modifying the the current frequency of core 6 with frequency 1478400 +--- Frequency level of core 7 is 2 +--- Exact frequency of core 7: 1766400 +--- Modifying the governor of core 7 +--- Modifying the the current frequency of core 7 with frequency 1766400 +--- Calibrating Monsoon power meter, please wait for 10 seconds... +powermeter script : --- Inside the monsoon_power_meter, arg function: 1 +powermeter script : calibration duration = 10 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 50000 + returning 50000 samples after experiments +powermeter script : Power meter calibration okay +--- Monsoon power meter Calibrated +--- starting the benchmarking app +## writing the configuration inside the phone file + --- Removing file /sdcard/experiments_automatization +rm '/sdcard/experiments_automatization/current_configuration.txt' +rm '/sdcard/experiments_automatization/experiment_duration.txt' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ended' +rmdir '/sdcard/experiments_automatization/app_output_folder' +rmdir '/sdcard/experiments_automatization' + --- Clearing the logcat + --- Creating file /sdcard/experiments_automatization +----- Uninstalling experiment app +Success +----- Installing experiment app +Performing Streamed Install +Success +------ Giving rights to experiment app +----- Starting experiment app +Starting: Intent { cmp=com.opportunistask.scheduling.benchmarking_app_to_test_big_cores/.MainActivity } +adb command : ps -A | grep com.opportunistask.scheduling.benchmarking_app_to_test_big_cores + ----- Experiment app started with pid: 27402 +---- waiting for benchmarking app thread to be pinned and to be ready +--- frequency level of core 0 is 2 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 2 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of cores to occupy = 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 4 +--- Now threads are running and the phone is ready to be sampled with the power meter \n--- Threads pids +Thread_0_ready_for_sampling +Thread_1_ready_for_sampling +Thread_2_ready_for_sampling +Thread_3_ready_for_sampling +--- Printing cc_info beginning datas (for the samsung galaxy s8) + --- Starting power meter sampling for about 600 seconds +--- Sampling with the Monsoon power meter +powermeter script : --- Inside the monsoon_power_meter, arg function: 2 +powermeter script : Experiment duration = 600 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 3000000 + returning 3000000 samples after experiments +powermeter script : Total nomber of sample measured : 3000000 +powermeter script : Computing powermeter summary result + Number of samples = 3000000 +powermeter script : We computed the energy on 600 samples +powermeter script : average_power = 2205.8238875067054 +powermeter script : average_power with numpy arrays = 2205.823887506593 +powermeter script : Summary Result = time (s): 601.6761009693146 +Ins Current (mA):471.8826386772326 +Samples: 3000000 +Consumed Energy (mAs): 274328.31101625616 +Consumed Energy (mAh): 76.2023086156267 +Consumed Energy (mWs): 1316951.857392352 +Consumed Energy (mWh): 365.8199603867645 +Avg power (mW): 2205.8238875067054 +Avg Current (mA): 459.516036945519 +Avg Voltage (V): 4.800319706291844 +Exp Batt Life (hrs for 1000mAh battery): NOT COMPUTED +--- Monsoon power meter sampling is finished ! + --- experiment folder path /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- frequency level of core 0 is 2 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 2 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of threads normally started = 4 +--- Number of thread ended: 4 +--- Now threads are stopped, getting the cc_info_level for samsung +--- Copying thread results locally +command /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe pull /sdcard/experiments_automatization/app_output_folder C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder </dev/null +/sdcard/experiments_automatization/app_output_folder/: 8 files pulled, 0 skipped. 0.0 MB/s (1817 bytes in 0.046s) +saving the logcat file to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder -/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder- +--- Parsing result from /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/raw_result.txt +--- Getting exact configuration with frequency +--- Configuration with frequencies = [1363200- 0- 0- 0- 0- 1363200- 1478400- 1766400] +--- Getting the powermeter summary +--- Powermeter summary: +time (s): 601.6761009693146 +Ins Current (mA):471.8826386772326 +Samples: 3000000 +Consumed Energy (mAs): 274328.31101625616 +Consumed Energy (mAh): 76.2023086156267 +Consumed Energy (mWs): 1316951.857392352 +Consumed Energy (mWh): 365.8199603867645 +Avg power (mW): 2205.8238875067054 +Avg Current (mA): 459.516036945519 +Avg Voltage (V): 4.800319706291844 + +--- Getting the total energy consumed of the google pixel +--- Energy consumed = 76.2023086156267 +--- Starting cc_info = 0 +--- Ending cc_info = 0 +--- Getting the average power +--- Avg Power = 2205.8238875067054 +--- Printing the total threads summary +--- Thread results +Thread : 0 - ThreadProcess id: 27427 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 20:39:50 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 20:49:51 +0100 - Duration: 600002 seconds +Real workload: 1.1873625894742247E11 - Integer reached: 280816 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 49 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 27428 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 20:39:51 +0100 +Core id: 5 +Ending time: Sun, 19 Dec 2021 20:49:51 +0100 - Duration: 600015 seconds +Real workload: 1.1859274212589322E11 - Integer reached: 280653 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 49 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 27429 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 20:39:51 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 20:49:51 +0100 - Duration: 600004 seconds +Real workload: 4.851130367437781E11 - Integer reached: 552318 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 49 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 27431 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 20:39:51 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 20:49:51 +0100 - Duration: 600005 seconds +Real workload: 5.81261372504742E11 - Integer reached: 602523 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 49 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +--- Counting the total workload command : print_total_workload /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder app_output_folder 2,0,0,0,0,2,2,2 /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first +--- Total workload : 1.3037e+12 +--- Getting energy efficiency +--- Energy efficiency: 5.84508e-11 +--- Building what we will add to the total result file command +------ + (build_configuration_raw_result 200002-2-2 2,0,0,0,0,2,2,2 [1363200- 0- 0- 0- 0- 1363200- 1478400- 1766400] time (s): 601.6761009693146 +Ins Current (mA):471.8826386772326 +Samples: 3000000 +Consumed Energy (mAs): 274328.31101625616 +Consumed Energy (mAh): 76.2023086156267 +Consumed Energy (mWs): 1316951.857392352 +Consumed Energy (mWh): 365.8199603867645 +Avg power (mW): 2205.8238875067054 +Avg Current (mA): 459.516036945519 +Avg Voltage (V): 4.800319706291844 + Thread : 0 - ThreadProcess id: 27427 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 20:39:50 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 20:49:51 +0100 - Duration: 600002 seconds +Real workload: 1.1873625894742247E11 - Integer reached: 280816 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 49 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 27428 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 20:39:51 +0100 +Core id: 5 +Ending time: Sun, 19 Dec 2021 20:49:51 +0100 - Duration: 600015 seconds +Real workload: 1.1859274212589322E11 - Integer reached: 280653 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 49 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 27429 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 20:39:51 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 20:49:51 +0100 - Duration: 600004 seconds +Real workload: 4.851130367437781E11 - Integer reached: 552318 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 49 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 27431 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 20:39:51 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 20:49:51 +0100 - Duration: 600005 seconds +Real workload: 5.81261372504742E11 - Integer reached: 602523 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 49 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + 76.2023086156267 1.3037e+12 5.84508e-11 0 0 +------ + +--- Final result to print to File + -------------------------------------------------------------------------------- + +++++ +++++ +++++ Configuration Description +-------------------------------------------------------------------------------- +Configuration: 200002-2-2 +phone format: 2,0,0,0,0,2,2,2 +Exact values of frequencies: [1363200- 0- 0- 0- 0- 1363200- 1478400- 1766400] + +Power meter results +------------------------------------------------------------ +time (s): 601.6761009693146 +Ins Current (mA):471.8826386772326 +Samples: 3000000 +Consumed Energy (mAs): 274328.31101625616 +Consumed Energy (mAh): 76.2023086156267 +Consumed Energy (mWs): 1316951.857392352 +Consumed Energy (mWh): 365.8199603867645 +Avg power (mW): 2205.8238875067054 +Avg Current (mA): 459.516036945519 +Avg Voltage (V): 4.800319706291844 + +Threads results +------------------------------------------------------------ +Thread : 0 - ThreadProcess id: 27427 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 20:39:50 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 20:49:51 +0100 - Duration: 600002 seconds +Real workload: 1.1873625894742247E11 - Integer reached: 280816 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 49 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 27428 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 20:39:51 +0100 +Core id: 5 +Ending time: Sun, 19 Dec 2021 20:49:51 +0100 - Duration: 600015 seconds +Real workload: 1.1859274212589322E11 - Integer reached: 280653 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 49 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 27429 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 20:39:51 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 20:49:51 +0100 - Duration: 600004 seconds +Real workload: 4.851130367437781E11 - Integer reached: 552318 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 49 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 27431 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 20:39:51 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 20:49:51 +0100 - Duration: 600005 seconds +Real workload: 5.81261372504742E11 - Integer reached: 602523 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 49 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +Expermiment results +------------------------------------------------------------ +Energy Consumed (mAh): 76.2023086156267 +Workload: 1.3037e+12 +Energy efficiency: 5.84508e-11 +-------------------------------------------------------------------------------- + + +--- Writing to the total result file +--- Removing previous tested configuration tmp_output folder +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_22_23_07/app_output_folder/all_workloads.txt' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_22_23_07/app_output_folder/Thread_0_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_22_23_07/app_output_folder/Thread_0_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_22_23_07/app_output_folder/Thread_1_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_22_23_07/app_output_folder/Thread_1_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_22_23_07/app_output_folder/Thread_2_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_22_23_07/app_output_folder/Thread_2_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_22_23_07/app_output_folder/Thread_3_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_22_23_07/app_output_folder/Thread_3_ready_for_sampling' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_22_23_07/app_output_folder' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_22_23_07/configuration_mesurement.csv' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_22_23_07/energy_power_workload_energyByWorkload_ccInfo' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_22_23_07/logcat_output' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_22_23_07/powermeter_summary.txt' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_22_23_07' +--- Moving the current experiment tmp_folder to the output result folder +writing a temporary file for the main script with format energy_power_workload_energyByWorkload_ccInfo +--- Obtaining experiment summary result to add to result folder +--- Experiment result, Energy consumed = 76.2023086156267 +--- Experiment result, Avg Power = 2205.8238875067054 +--- Experiment result, Total Workload = 1.3037e+12 +--- Experiment result, Energy Efficiency = 5.84508e-11 +--- Adding result to summary file +--- Starting cc information : 0 +--- Ending cc information : 0 +--- The file /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/summary.csv exists we just appending the result to the file +--- Experiments performed on configuration 200002-2-2. +--- Observing a pause betwenn experiment; pause duration : 180 seconds; starting at 04Oct22_22_35_49 +--- Performing experiments on configuration 200002-2-2 +--- Cleaning the tmp expermiment folder : /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- Second step : verifying the battery level +--- Verifying the battery level +--- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe +--- Current battery level : 49 +--- Current battery is low, so we need to wait battery +--- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe +--- Current battery level : 49 +--- Desactivating the charge stop level option +--- Desactivating the charge stop level option, command : /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe shell echo 100 > /sys/devices/platform/soc/soc:google,charger/charge_stop_level </dev/null +--- The current battery level : 49, still lower than the experiment one : 50 +--- Waiting 30 second... +--- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe +--- Current battery level : 49 +--- The current battery level : 49, still lower than the experiment one : 50 +--- Waiting 30 second... +--- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe +--- Current battery level : 50 +--- Current battery is now equal to the experiment battery level +--- Third step calibrating phone core frequency +--- Resetting all frequency configurations + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu5/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor +--- Frequency level of core 0 is 2 +--- Exact frequency of core 0: 1363200 +--- Modifying the governor of core 0 +--- Modifying the the current frequency of core 0 with frequency 1363200 +--- Frequency level of core 1 is 0 +--- Exact frequency of core 1: 0 +--- Modifying the governor of core 1 +--- Modifying the the current frequency of core 1 with frequency 0 +--- Frequency level of core 2 is 0 +--- Exact frequency of core 2: 0 +--- Modifying the governor of core 2 +--- Modifying the the current frequency of core 2 with frequency 0 +--- Frequency level of core 3 is 0 +--- Exact frequency of core 3: 0 +--- Modifying the governor of core 3 +--- Modifying the the current frequency of core 3 with frequency 0 +--- Frequency level of core 4 is 0 +--- Exact frequency of core 4: 0 +--- Modifying the governor of core 4 +--- Modifying the the current frequency of core 4 with frequency 0 +--- Frequency level of core 5 is 2 +--- Exact frequency of core 5: 1363200 +--- Modifying the governor of core 5 +--- Modifying the the current frequency of core 5 with frequency 1363200 +--- Frequency level of core 6 is 2 +--- Exact frequency of core 6: 1478400 +--- Modifying the governor of core 6 +--- Modifying the the current frequency of core 6 with frequency 1478400 +--- Frequency level of core 7 is 2 +--- Exact frequency of core 7: 1766400 +--- Modifying the governor of core 7 +--- Modifying the the current frequency of core 7 with frequency 1766400 +--- Calibrating Monsoon power meter, please wait for 10 seconds... +powermeter script : --- Inside the monsoon_power_meter, arg function: 1 +powermeter script : calibration duration = 10 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 50000 + returning 50000 samples after experiments +powermeter script : Power meter calibration okay +--- Monsoon power meter Calibrated +--- starting the benchmarking app +## writing the configuration inside the phone file + --- Removing file /sdcard/experiments_automatization +rm '/sdcard/experiments_automatization/current_configuration.txt' +rm '/sdcard/experiments_automatization/experiment_duration.txt' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ended' +rmdir '/sdcard/experiments_automatization/app_output_folder' +rmdir '/sdcard/experiments_automatization' + --- Clearing the logcat + --- Creating file /sdcard/experiments_automatization +----- Uninstalling experiment app +Success +----- Installing experiment app +Performing Streamed Install +Success +------ Giving rights to experiment app +----- Starting experiment app +Starting: Intent { cmp=com.opportunistask.scheduling.benchmarking_app_to_test_big_cores/.MainActivity } +adb command : ps -A | grep com.opportunistask.scheduling.benchmarking_app_to_test_big_cores + ----- Experiment app started with pid: 28458 +---- waiting for benchmarking app thread to be pinned and to be ready +--- frequency level of core 0 is 2 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 2 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of cores to occupy = 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 3 +--- The current number of thread ready to be sambled : 3, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 4 +--- Now threads are running and the phone is ready to be sampled with the power meter \n--- Threads pids +Thread_0_ready_for_sampling +Thread_1_ready_for_sampling +Thread_2_ready_for_sampling +Thread_3_ready_for_sampling +--- Printing cc_info beginning datas (for the samsung galaxy s8) + --- Starting power meter sampling for about 600 seconds +--- Sampling with the Monsoon power meter +powermeter script : --- Inside the monsoon_power_meter, arg function: 2 +powermeter script : Experiment duration = 600 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 3000000 + returning 3000000 samples after experiments +powermeter script : Total nomber of sample measured : 3000000 +powermeter script : Computing powermeter summary result + Number of samples = 3000000 +powermeter script : We computed the energy on 600 samples +powermeter script : average_power = 2209.8674964349125 +powermeter script : average_power with numpy arrays = 2209.8674964350357 +powermeter script : Summary Result = time (s): 601.7342247962952 +Ins Current (mA):443.5996655212611 +Samples: 3000000 +Consumed Energy (mAs): 274811.3206021506 +Consumed Energy (mAh): 76.33647794504182 +Consumed Energy (mWs): 1319113.817056089 +Consumed Energy (mWh): 366.4205047378025 +Avg power (mW): 2209.8674964349125 +Avg Current (mA): 460.4230382517275 +Avg Voltage (V): 4.799645788416672 +Exp Batt Life (hrs for 1000mAh battery): NOT COMPUTED +--- Monsoon power meter sampling is finished ! + --- experiment folder path /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- frequency level of core 0 is 2 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 2 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of threads normally started = 4 +--- Number of thread ended: 4 +--- Now threads are stopped, getting the cc_info_level for samsung +--- Copying thread results locally +command /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe pull /sdcard/experiments_automatization/app_output_folder C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder </dev/null +/sdcard/experiments_automatization/app_output_folder/: 8 files pulled, 0 skipped. 0.0 MB/s (1818 bytes in 0.036s) +saving the logcat file to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder -/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder- +--- Parsing result from /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/raw_result.txt +--- Getting exact configuration with frequency +--- Configuration with frequencies = [1363200- 0- 0- 0- 0- 1363200- 1478400- 1766400] +--- Getting the powermeter summary +--- Powermeter summary: +time (s): 601.7342247962952 +Ins Current (mA):443.5996655212611 +Samples: 3000000 +Consumed Energy (mAs): 274811.3206021506 +Consumed Energy (mAh): 76.33647794504182 +Consumed Energy (mWs): 1319113.817056089 +Consumed Energy (mWh): 366.4205047378025 +Avg power (mW): 2209.8674964349125 +Avg Current (mA): 460.4230382517275 +Avg Voltage (V): 4.799645788416672 + +--- Getting the total energy consumed of the google pixel +--- Energy consumed = 76.33647794504182 +--- Starting cc_info = 0 +--- Ending cc_info = 0 +--- Getting the average power +--- Avg Power = 2209.8674964349125 +--- Printing the total threads summary +--- Thread results +Thread : 0 - ThreadProcess id: 28483 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 20:56:35 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 21:06:35 +0100 - Duration: 600008 seconds +Real workload: 1.1945607672553398E11 - Integer reached: 281632 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 28484 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 20:56:35 +0100 +Core id: 5 +Ending time: Sun, 19 Dec 2021 21:06:35 +0100 - Duration: 600021 seconds +Real workload: 1.1861738894205211E11 - Integer reached: 280681 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 28485 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 20:56:35 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 21:06:36 +0100 - Duration: 600005 seconds +Real workload: 4.8673564033711426E11 - Integer reached: 553206 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 28487 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 20:56:35 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 21:06:35 +0100 - Duration: 600003 seconds +Real workload: 5.75470662468092E11 - Integer reached: 599627 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +--- Counting the total workload command : print_total_workload /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder app_output_folder 2,0,0,0,0,2,2,2 /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first +--- Total workload : 1.30028e+12 +--- Getting energy efficiency +--- Energy efficiency: 5.87077e-11 +--- Building what we will add to the total result file command +------ + (build_configuration_raw_result 200002-2-2 2,0,0,0,0,2,2,2 [1363200- 0- 0- 0- 0- 1363200- 1478400- 1766400] time (s): 601.7342247962952 +Ins Current (mA):443.5996655212611 +Samples: 3000000 +Consumed Energy (mAs): 274811.3206021506 +Consumed Energy (mAh): 76.33647794504182 +Consumed Energy (mWs): 1319113.817056089 +Consumed Energy (mWh): 366.4205047378025 +Avg power (mW): 2209.8674964349125 +Avg Current (mA): 460.4230382517275 +Avg Voltage (V): 4.799645788416672 + Thread : 0 - ThreadProcess id: 28483 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 20:56:35 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 21:06:35 +0100 - Duration: 600008 seconds +Real workload: 1.1945607672553398E11 - Integer reached: 281632 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 28484 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 20:56:35 +0100 +Core id: 5 +Ending time: Sun, 19 Dec 2021 21:06:35 +0100 - Duration: 600021 seconds +Real workload: 1.1861738894205211E11 - Integer reached: 280681 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 28485 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 20:56:35 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 21:06:36 +0100 - Duration: 600005 seconds +Real workload: 4.8673564033711426E11 - Integer reached: 553206 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 28487 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 20:56:35 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 21:06:35 +0100 - Duration: 600003 seconds +Real workload: 5.75470662468092E11 - Integer reached: 599627 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + 76.33647794504182 1.30028e+12 5.87077e-11 0 0 +------ + +--- Final result to print to File + -------------------------------------------------------------------------------- + +++++ +++++ +++++ Configuration Description +-------------------------------------------------------------------------------- +Configuration: 200002-2-2 +phone format: 2,0,0,0,0,2,2,2 +Exact values of frequencies: [1363200- 0- 0- 0- 0- 1363200- 1478400- 1766400] + +Power meter results +------------------------------------------------------------ +time (s): 601.7342247962952 +Ins Current (mA):443.5996655212611 +Samples: 3000000 +Consumed Energy (mAs): 274811.3206021506 +Consumed Energy (mAh): 76.33647794504182 +Consumed Energy (mWs): 1319113.817056089 +Consumed Energy (mWh): 366.4205047378025 +Avg power (mW): 2209.8674964349125 +Avg Current (mA): 460.4230382517275 +Avg Voltage (V): 4.799645788416672 + +Threads results +------------------------------------------------------------ +Thread : 0 - ThreadProcess id: 28483 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 20:56:35 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 21:06:35 +0100 - Duration: 600008 seconds +Real workload: 1.1945607672553398E11 - Integer reached: 281632 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 28484 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 20:56:35 +0100 +Core id: 5 +Ending time: Sun, 19 Dec 2021 21:06:35 +0100 - Duration: 600021 seconds +Real workload: 1.1861738894205211E11 - Integer reached: 280681 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 28485 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 20:56:35 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 21:06:36 +0100 - Duration: 600005 seconds +Real workload: 4.8673564033711426E11 - Integer reached: 553206 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 28487 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 20:56:35 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 21:06:35 +0100 - Duration: 600003 seconds +Real workload: 5.75470662468092E11 - Integer reached: 599627 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +Expermiment results +------------------------------------------------------------ +Energy Consumed (mAh): 76.33647794504182 +Workload: 1.30028e+12 +Energy efficiency: 5.87077e-11 +-------------------------------------------------------------------------------- + + +--- Writing to the total result file +--- Removing previous tested configuration tmp_output folder +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_22_38_51/app_output_folder/all_workloads.txt' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_22_38_51/app_output_folder/Thread_0_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_22_38_51/app_output_folder/Thread_0_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_22_38_51/app_output_folder/Thread_1_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_22_38_51/app_output_folder/Thread_1_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_22_38_51/app_output_folder/Thread_2_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_22_38_51/app_output_folder/Thread_2_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_22_38_51/app_output_folder/Thread_3_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_22_38_51/app_output_folder/Thread_3_ready_for_sampling' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_22_38_51/app_output_folder' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_22_38_51/configuration_mesurement.csv' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_22_38_51/energy_power_workload_energyByWorkload_ccInfo' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_22_38_51/logcat_output' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_22_38_51/powermeter_summary.txt' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_22_38_51' +--- Moving the current experiment tmp_folder to the output result folder +writing a temporary file for the main script with format energy_power_workload_energyByWorkload_ccInfo +--- Obtaining experiment summary result to add to result folder +--- Experiment result, Energy consumed = 76.33647794504182 +--- Experiment result, Avg Power = 2209.8674964349125 +--- Experiment result, Total Workload = 1.30028e+12 +--- Experiment result, Energy Efficiency = 5.87077e-11 +--- Adding result to summary file +--- Starting cc information : 0 +--- Ending cc information : 0 +--- The file /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/summary.csv exists we just appending the result to the file +--- Experiments performed on configuration 200002-2-2. +--- Observing a pause betwenn experiment; pause duration : 180 seconds; starting at 04Oct22_22_52_35 +--- Performing experiments on configuration 200020-2-2 +--- Cleaning the tmp expermiment folder : /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- Second step : verifying the battery level +--- Verifying the battery level +--- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe +--- Current battery level : 50 +Current battery level: OKAY +--- Third step calibrating phone core frequency +--- Resetting all frequency configurations + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu5/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor +--- Frequency level of core 0 is 2 +--- Exact frequency of core 0: 1363200 +--- Modifying the governor of core 0 +--- Modifying the the current frequency of core 0 with frequency 1363200 +--- Frequency level of core 1 is 0 +--- Exact frequency of core 1: 0 +--- Modifying the governor of core 1 +--- Modifying the the current frequency of core 1 with frequency 0 +--- Frequency level of core 2 is 0 +--- Exact frequency of core 2: 0 +--- Modifying the governor of core 2 +--- Modifying the the current frequency of core 2 with frequency 0 +--- Frequency level of core 3 is 0 +--- Exact frequency of core 3: 0 +--- Modifying the governor of core 3 +--- Modifying the the current frequency of core 3 with frequency 0 +--- Frequency level of core 4 is 2 +--- Exact frequency of core 4: 1363200 +--- Modifying the governor of core 4 +--- Modifying the the current frequency of core 4 with frequency 1363200 +--- Frequency level of core 5 is 0 +--- Exact frequency of core 5: 0 +--- Modifying the governor of core 5 +--- Modifying the the current frequency of core 5 with frequency 0 +--- Frequency level of core 6 is 2 +--- Exact frequency of core 6: 1478400 +--- Modifying the governor of core 6 +--- Modifying the the current frequency of core 6 with frequency 1478400 +--- Frequency level of core 7 is 2 +--- Exact frequency of core 7: 1766400 +--- Modifying the governor of core 7 +--- Modifying the the current frequency of core 7 with frequency 1766400 +--- Calibrating Monsoon power meter, please wait for 10 seconds... +powermeter script : --- Inside the monsoon_power_meter, arg function: 1 +powermeter script : calibration duration = 10 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 50000 + returning 50000 samples after experiments +powermeter script : Power meter calibration okay +--- Monsoon power meter Calibrated +--- starting the benchmarking app +## writing the configuration inside the phone file + --- Removing file /sdcard/experiments_automatization +rm '/sdcard/experiments_automatization/current_configuration.txt' +rm '/sdcard/experiments_automatization/experiment_duration.txt' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ended' +rmdir '/sdcard/experiments_automatization/app_output_folder' +rmdir '/sdcard/experiments_automatization' + --- Clearing the logcat + --- Creating file /sdcard/experiments_automatization +----- Uninstalling experiment app +Success +----- Installing experiment app +Performing Streamed Install +Success +------ Giving rights to experiment app +----- Starting experiment app +Starting: Intent { cmp=com.opportunistask.scheduling.benchmarking_app_to_test_big_cores/.MainActivity } +adb command : ps -A | grep com.opportunistask.scheduling.benchmarking_app_to_test_big_cores + ----- Experiment app started with pid: 29871 +---- waiting for benchmarking app thread to be pinned and to be ready +--- frequency level of core 0 is 2 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 2 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of cores to occupy = 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 4 +--- Now threads are running and the phone is ready to be sampled with the power meter \n--- Threads pids +Thread_0_ready_for_sampling +Thread_1_ready_for_sampling +Thread_2_ready_for_sampling +Thread_3_ready_for_sampling +--- Printing cc_info beginning datas (for the samsung galaxy s8) + --- Starting power meter sampling for about 600 seconds +--- Sampling with the Monsoon power meter +powermeter script : --- Inside the monsoon_power_meter, arg function: 2 +powermeter script : Experiment duration = 600 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 3000000 + returning 3000000 samples after experiments +powermeter script : Total nomber of sample measured : 3000000 +powermeter script : Computing powermeter summary result + Number of samples = 3000000 +powermeter script : We computed the energy on 600 samples +powermeter script : average_power = 2068.1208423500893 +powermeter script : average_power with numpy arrays = 2068.120842349632 +powermeter script : Summary Result = time (s): 601.6934292316437 +Ins Current (mA):415.26963783631385 +Samples: 3000000 +Consumed Energy (mAs): 257932.3346155911 +Consumed Energy (mAh): 71.64787072655308 +Consumed Energy (mWs): 1243394.036703662 +Consumed Energy (mWh): 345.3872324176839 +Avg power (mW): 2068.1208423500893 +Avg Current (mA): 428.74009879177055 +Avg Voltage (V): 4.823716858251062 +Exp Batt Life (hrs for 1000mAh battery): NOT COMPUTED +--- Monsoon power meter sampling is finished ! + --- experiment folder path /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- frequency level of core 0 is 2 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 2 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of threads normally started = 4 +--- Number of thread ended: 4 +--- Now threads are stopped, getting the cc_info_level for samsung +--- Copying thread results locally +command /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe pull /sdcard/experiments_automatization/app_output_folder C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder </dev/null +/sdcard/experiments_automatization/app_output_folder/: 8 files pulled, 0 skipped. 0.0 MB/s (1816 bytes in 0.039s) +saving the logcat file to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder -/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder- +--- Parsing result from /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/raw_result.txt +--- Getting exact configuration with frequency +--- Configuration with frequencies = [1363200- 0- 0- 0- 1363200- 0- 1478400- 1766400] +--- Getting the powermeter summary +--- Powermeter summary: +time (s): 601.6934292316437 +Ins Current (mA):415.26963783631385 +Samples: 3000000 +Consumed Energy (mAs): 257932.3346155911 +Consumed Energy (mAh): 71.64787072655308 +Consumed Energy (mWs): 1243394.036703662 +Consumed Energy (mWh): 345.3872324176839 +Avg power (mW): 2068.1208423500893 +Avg Current (mA): 428.74009879177055 +Avg Voltage (V): 4.823716858251062 + +--- Getting the total energy consumed of the google pixel +--- Energy consumed = 71.64787072655308 +--- Starting cc_info = 0 +--- Ending cc_info = 0 +--- Getting the average power +--- Avg Power = 2068.1208423500893 +--- Printing the total threads summary +--- Thread results +Thread : 0 - ThreadProcess id: 29896 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 21:12:22 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 21:22:22 +0100 - Duration: 600009 seconds +Real workload: 4.954367292938362E10 - Integer reached: 184636 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 29897 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 21:12:22 +0100 +Core id: 4 +Ending time: Sun, 19 Dec 2021 21:22:23 +0100 - Duration: 600006 seconds +Real workload: 4.949498823749237E10 - Integer reached: 184549 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 29898 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 21:12:22 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 21:22:23 +0100 - Duration: 600011 seconds +Real workload: 4.849596923951915E11 - Integer reached: 552234 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 29900 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 21:12:22 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 21:22:23 +0100 - Duration: 600005 seconds +Real workload: 5.815019664088478E11 - Integer reached: 602643 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +--- Counting the total workload command : print_total_workload /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder app_output_folder 2,0,0,0,2,0,2,2 /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first +--- Total workload : 1.1655e+12 +--- Getting energy efficiency +--- Energy efficiency: 6.14739e-11 +--- Building what we will add to the total result file command +------ + (build_configuration_raw_result 200020-2-2 2,0,0,0,2,0,2,2 [1363200- 0- 0- 0- 1363200- 0- 1478400- 1766400] time (s): 601.6934292316437 +Ins Current (mA):415.26963783631385 +Samples: 3000000 +Consumed Energy (mAs): 257932.3346155911 +Consumed Energy (mAh): 71.64787072655308 +Consumed Energy (mWs): 1243394.036703662 +Consumed Energy (mWh): 345.3872324176839 +Avg power (mW): 2068.1208423500893 +Avg Current (mA): 428.74009879177055 +Avg Voltage (V): 4.823716858251062 + Thread : 0 - ThreadProcess id: 29896 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 21:12:22 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 21:22:22 +0100 - Duration: 600009 seconds +Real workload: 4.954367292938362E10 - Integer reached: 184636 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 29897 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 21:12:22 +0100 +Core id: 4 +Ending time: Sun, 19 Dec 2021 21:22:23 +0100 - Duration: 600006 seconds +Real workload: 4.949498823749237E10 - Integer reached: 184549 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 29898 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 21:12:22 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 21:22:23 +0100 - Duration: 600011 seconds +Real workload: 4.849596923951915E11 - Integer reached: 552234 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 29900 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 21:12:22 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 21:22:23 +0100 - Duration: 600005 seconds +Real workload: 5.815019664088478E11 - Integer reached: 602643 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + 71.64787072655308 1.1655e+12 6.14739e-11 0 0 +------ + +--- Final result to print to File + -------------------------------------------------------------------------------- + +++++ +++++ +++++ Configuration Description +-------------------------------------------------------------------------------- +Configuration: 200020-2-2 +phone format: 2,0,0,0,2,0,2,2 +Exact values of frequencies: [1363200- 0- 0- 0- 1363200- 0- 1478400- 1766400] + +Power meter results +------------------------------------------------------------ +time (s): 601.6934292316437 +Ins Current (mA):415.26963783631385 +Samples: 3000000 +Consumed Energy (mAs): 257932.3346155911 +Consumed Energy (mAh): 71.64787072655308 +Consumed Energy (mWs): 1243394.036703662 +Consumed Energy (mWh): 345.3872324176839 +Avg power (mW): 2068.1208423500893 +Avg Current (mA): 428.74009879177055 +Avg Voltage (V): 4.823716858251062 + +Threads results +------------------------------------------------------------ +Thread : 0 - ThreadProcess id: 29896 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 21:12:22 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 21:22:22 +0100 - Duration: 600009 seconds +Real workload: 4.954367292938362E10 - Integer reached: 184636 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 29897 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 21:12:22 +0100 +Core id: 4 +Ending time: Sun, 19 Dec 2021 21:22:23 +0100 - Duration: 600006 seconds +Real workload: 4.949498823749237E10 - Integer reached: 184549 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 29898 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 21:12:22 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 21:22:23 +0100 - Duration: 600011 seconds +Real workload: 4.849596923951915E11 - Integer reached: 552234 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 29900 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 21:12:22 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 21:22:23 +0100 - Duration: 600005 seconds +Real workload: 5.815019664088478E11 - Integer reached: 602643 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +Expermiment results +------------------------------------------------------------ +Energy Consumed (mAh): 71.64787072655308 +Workload: 1.1655e+12 +Energy efficiency: 6.14739e-11 +-------------------------------------------------------------------------------- + + +--- Writing to the total result file +--- Removing previous tested configuration tmp_output folder +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_22_55_37/app_output_folder/all_workloads.txt' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_22_55_37/app_output_folder/Thread_0_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_22_55_37/app_output_folder/Thread_0_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_22_55_37/app_output_folder/Thread_1_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_22_55_37/app_output_folder/Thread_1_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_22_55_37/app_output_folder/Thread_2_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_22_55_37/app_output_folder/Thread_2_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_22_55_37/app_output_folder/Thread_3_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_22_55_37/app_output_folder/Thread_3_ready_for_sampling' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_22_55_37/app_output_folder' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_22_55_37/configuration_mesurement.csv' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_22_55_37/energy_power_workload_energyByWorkload_ccInfo' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_22_55_37/logcat_output' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_22_55_37/powermeter_summary.txt' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_22_55_37' +--- Moving the current experiment tmp_folder to the output result folder +writing a temporary file for the main script with format energy_power_workload_energyByWorkload_ccInfo +--- Obtaining experiment summary result to add to result folder +--- Experiment result, Energy consumed = 71.64787072655308 +--- Experiment result, Avg Power = 2068.1208423500893 +--- Experiment result, Total Workload = 1.1655e+12 +--- Experiment result, Energy Efficiency = 6.14739e-11 +--- Adding result to summary file +--- Starting cc information : 0 +--- Ending cc information : 0 +--- The file /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/summary.csv exists we just appending the result to the file +--- Experiments performed on configuration 200020-2-2. +--- Observing a pause betwenn experiment; pause duration : 180 seconds; starting at 04Oct22_23_08_22 +--- Performing experiments on configuration 200020-2-2 +--- Cleaning the tmp expermiment folder : /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- Second step : verifying the battery level +--- Verifying the battery level +--- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe +--- Current battery level : 50 +Current battery level: OKAY +--- Third step calibrating phone core frequency +--- Resetting all frequency configurations + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu5/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor +--- Frequency level of core 0 is 2 +--- Exact frequency of core 0: 1363200 +--- Modifying the governor of core 0 +--- Modifying the the current frequency of core 0 with frequency 1363200 +--- Frequency level of core 1 is 0 +--- Exact frequency of core 1: 0 +--- Modifying the governor of core 1 +--- Modifying the the current frequency of core 1 with frequency 0 +--- Frequency level of core 2 is 0 +--- Exact frequency of core 2: 0 +--- Modifying the governor of core 2 +--- Modifying the the current frequency of core 2 with frequency 0 +--- Frequency level of core 3 is 0 +--- Exact frequency of core 3: 0 +--- Modifying the governor of core 3 +--- Modifying the the current frequency of core 3 with frequency 0 +--- Frequency level of core 4 is 2 +--- Exact frequency of core 4: 1363200 +--- Modifying the governor of core 4 +--- Modifying the the current frequency of core 4 with frequency 1363200 +--- Frequency level of core 5 is 0 +--- Exact frequency of core 5: 0 +--- Modifying the governor of core 5 +--- Modifying the the current frequency of core 5 with frequency 0 +--- Frequency level of core 6 is 2 +--- Exact frequency of core 6: 1478400 +--- Modifying the governor of core 6 +--- Modifying the the current frequency of core 6 with frequency 1478400 +--- Frequency level of core 7 is 2 +--- Exact frequency of core 7: 1766400 +--- Modifying the governor of core 7 +--- Modifying the the current frequency of core 7 with frequency 1766400 +--- Calibrating Monsoon power meter, please wait for 10 seconds... +powermeter script : --- Inside the monsoon_power_meter, arg function: 1 +powermeter script : calibration duration = 10 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 50000 + returning 50000 samples after experiments +powermeter script : Power meter calibration okay +--- Monsoon power meter Calibrated +--- starting the benchmarking app +## writing the configuration inside the phone file + --- Removing file /sdcard/experiments_automatization +rm '/sdcard/experiments_automatization/current_configuration.txt' +rm '/sdcard/experiments_automatization/experiment_duration.txt' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ended' +rmdir '/sdcard/experiments_automatization/app_output_folder' +rmdir '/sdcard/experiments_automatization' + --- Clearing the logcat + --- Creating file /sdcard/experiments_automatization +----- Uninstalling experiment app +Success +----- Installing experiment app +Performing Streamed Install +Success +------ Giving rights to experiment app +----- Starting experiment app +Starting: Intent { cmp=com.opportunistask.scheduling.benchmarking_app_to_test_big_cores/.MainActivity } +adb command : ps -A | grep com.opportunistask.scheduling.benchmarking_app_to_test_big_cores + ----- Experiment app started with pid: 30896 +---- waiting for benchmarking app thread to be pinned and to be ready +--- frequency level of core 0 is 2 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 2 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of cores to occupy = 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 2 +--- The current number of thread ready to be sambled : 2, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 4 +--- Now threads are running and the phone is ready to be sampled with the power meter \n--- Threads pids +Thread_0_ready_for_sampling +Thread_1_ready_for_sampling +Thread_2_ready_for_sampling +Thread_3_ready_for_sampling +--- Printing cc_info beginning datas (for the samsung galaxy s8) + --- Starting power meter sampling for about 600 seconds +--- Sampling with the Monsoon power meter +powermeter script : --- Inside the monsoon_power_meter, arg function: 2 +powermeter script : Experiment duration = 600 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 3000000 + returning 3000000 samples after experiments +powermeter script : Total nomber of sample measured : 3000000 +powermeter script : Computing powermeter summary result + Number of samples = 3000000 +powermeter script : We computed the energy on 600 samples +powermeter script : average_power = 2045.8237679247684 +powermeter script : average_power with numpy arrays = 2045.8237679241452 +powermeter script : Summary Result = time (s): 601.8099982738495 +Ins Current (mA):484.5246458081745 +Samples: 3000000 +Consumed Energy (mAs): 254134.77286825364 +Consumed Energy (mAh): 70.59299246340379 +Consumed Energy (mWs): 1226648.762957325 +Consumed Energy (mWh): 340.7357674881458 +Avg power (mW): 2045.8237679247684 +Avg Current (mA): 423.77382578398726 +Avg Voltage (V): 4.827631258584616 +Exp Batt Life (hrs for 1000mAh battery): NOT COMPUTED +--- Monsoon power meter sampling is finished ! + --- experiment folder path /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- frequency level of core 0 is 2 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 2 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of threads normally started = 4 +--- Number of thread ended: 4 +--- Now threads are stopped, getting the cc_info_level for samsung +--- Copying thread results locally +command /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe pull /sdcard/experiments_automatization/app_output_folder C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder </dev/null +/sdcard/experiments_automatization/app_output_folder/: 8 files pulled, 0 skipped. 0.1 MB/s (1814 bytes in 0.034s) +saving the logcat file to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder -/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder- +--- Parsing result from /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/raw_result.txt +--- Getting exact configuration with frequency +--- Configuration with frequencies = [1363200- 0- 0- 0- 1363200- 0- 1478400- 1766400] +--- Getting the powermeter summary +--- Powermeter summary: +time (s): 601.8099982738495 +Ins Current (mA):484.5246458081745 +Samples: 3000000 +Consumed Energy (mAs): 254134.77286825364 +Consumed Energy (mAh): 70.59299246340379 +Consumed Energy (mWs): 1226648.762957325 +Consumed Energy (mWh): 340.7357674881458 +Avg power (mW): 2045.8237679247684 +Avg Current (mA): 423.77382578398726 +Avg Voltage (V): 4.827631258584616 + +--- Getting the total energy consumed of the google pixel +--- Energy consumed = 70.59299246340379 +--- Starting cc_info = 0 +--- Ending cc_info = 0 +--- Getting the average power +--- Avg Power = 2045.8237679247684 +--- Printing the total threads summary +--- Thread results +Thread : 0 - ThreadProcess id: 30921 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 21:28:09 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 21:38:09 +0100 - Duration: 600003 seconds +Real workload: 4.9528001575714645E10 - Integer reached: 184608 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 30922 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 21:28:09 +0100 +Core id: 4 +Ending time: Sun, 19 Dec 2021 21:38:09 +0100 - Duration: 600027 seconds +Real workload: 5.005608081344588E10 - Integer reached: 185549 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 30923 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 21:28:09 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 21:38:09 +0100 - Duration: 600004 seconds +Real workload: 4.81526987875865E11 - Integer reached: 550350 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 30924 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 21:28:09 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 21:38:09 +0100 - Duration: 600008 seconds +Real workload: 5.8048380509196E11 - Integer reached: 602135 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +--- Counting the total workload command : print_total_workload /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder app_output_folder 2,0,0,0,2,0,2,2 /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first +--- Total workload : 1.16159e+12 +--- Getting energy efficiency +--- Energy efficiency: 6.07727e-11 +--- Building what we will add to the total result file command +------ + (build_configuration_raw_result 200020-2-2 2,0,0,0,2,0,2,2 [1363200- 0- 0- 0- 1363200- 0- 1478400- 1766400] time (s): 601.8099982738495 +Ins Current (mA):484.5246458081745 +Samples: 3000000 +Consumed Energy (mAs): 254134.77286825364 +Consumed Energy (mAh): 70.59299246340379 +Consumed Energy (mWs): 1226648.762957325 +Consumed Energy (mWh): 340.7357674881458 +Avg power (mW): 2045.8237679247684 +Avg Current (mA): 423.77382578398726 +Avg Voltage (V): 4.827631258584616 + Thread : 0 - ThreadProcess id: 30921 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 21:28:09 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 21:38:09 +0100 - Duration: 600003 seconds +Real workload: 4.9528001575714645E10 - Integer reached: 184608 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 30922 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 21:28:09 +0100 +Core id: 4 +Ending time: Sun, 19 Dec 2021 21:38:09 +0100 - Duration: 600027 seconds +Real workload: 5.005608081344588E10 - Integer reached: 185549 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 30923 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 21:28:09 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 21:38:09 +0100 - Duration: 600004 seconds +Real workload: 4.81526987875865E11 - Integer reached: 550350 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 30924 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 21:28:09 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 21:38:09 +0100 - Duration: 600008 seconds +Real workload: 5.8048380509196E11 - Integer reached: 602135 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + 70.59299246340379 1.16159e+12 6.07727e-11 0 0 +------ + +--- Final result to print to File + -------------------------------------------------------------------------------- + +++++ +++++ +++++ Configuration Description +-------------------------------------------------------------------------------- +Configuration: 200020-2-2 +phone format: 2,0,0,0,2,0,2,2 +Exact values of frequencies: [1363200- 0- 0- 0- 1363200- 0- 1478400- 1766400] + +Power meter results +------------------------------------------------------------ +time (s): 601.8099982738495 +Ins Current (mA):484.5246458081745 +Samples: 3000000 +Consumed Energy (mAs): 254134.77286825364 +Consumed Energy (mAh): 70.59299246340379 +Consumed Energy (mWs): 1226648.762957325 +Consumed Energy (mWh): 340.7357674881458 +Avg power (mW): 2045.8237679247684 +Avg Current (mA): 423.77382578398726 +Avg Voltage (V): 4.827631258584616 + +Threads results +------------------------------------------------------------ +Thread : 0 - ThreadProcess id: 30921 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 21:28:09 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 21:38:09 +0100 - Duration: 600003 seconds +Real workload: 4.9528001575714645E10 - Integer reached: 184608 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 30922 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 21:28:09 +0100 +Core id: 4 +Ending time: Sun, 19 Dec 2021 21:38:09 +0100 - Duration: 600027 seconds +Real workload: 5.005608081344588E10 - Integer reached: 185549 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 30923 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 21:28:09 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 21:38:09 +0100 - Duration: 600004 seconds +Real workload: 4.81526987875865E11 - Integer reached: 550350 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 30924 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 21:28:09 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 21:38:09 +0100 - Duration: 600008 seconds +Real workload: 5.8048380509196E11 - Integer reached: 602135 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +Expermiment results +------------------------------------------------------------ +Energy Consumed (mAh): 70.59299246340379 +Workload: 1.16159e+12 +Energy efficiency: 6.07727e-11 +-------------------------------------------------------------------------------- + + +--- Writing to the total result file +--- Removing previous tested configuration tmp_output folder +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_23_11_24/app_output_folder/all_workloads.txt' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_23_11_24/app_output_folder/Thread_0_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_23_11_24/app_output_folder/Thread_0_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_23_11_24/app_output_folder/Thread_1_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_23_11_24/app_output_folder/Thread_1_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_23_11_24/app_output_folder/Thread_2_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_23_11_24/app_output_folder/Thread_2_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_23_11_24/app_output_folder/Thread_3_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_23_11_24/app_output_folder/Thread_3_ready_for_sampling' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_23_11_24/app_output_folder' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_23_11_24/configuration_mesurement.csv' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_23_11_24/energy_power_workload_energyByWorkload_ccInfo' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_23_11_24/logcat_output' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_23_11_24/powermeter_summary.txt' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_23_11_24' +--- Moving the current experiment tmp_folder to the output result folder +writing a temporary file for the main script with format energy_power_workload_energyByWorkload_ccInfo +--- Obtaining experiment summary result to add to result folder +--- Experiment result, Energy consumed = 70.59299246340379 +--- Experiment result, Avg Power = 2045.8237679247684 +--- Experiment result, Total Workload = 1.16159e+12 +--- Experiment result, Energy Efficiency = 6.07727e-11 +--- Adding result to summary file +--- Starting cc information : 0 +--- Ending cc information : 0 +--- The file /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/summary.csv exists we just appending the result to the file +--- Experiments performed on configuration 200020-2-2. +--- Observing a pause betwenn experiment; pause duration : 180 seconds; starting at 04Oct22_23_24_10 +--- Performing experiments on configuration 200020-2-2 +--- Cleaning the tmp expermiment folder : /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- Second step : verifying the battery level +--- Verifying the battery level +--- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe +--- Current battery level : 50 +Current battery level: OKAY +--- Third step calibrating phone core frequency +--- Resetting all frequency configurations + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu5/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor +--- Frequency level of core 0 is 2 +--- Exact frequency of core 0: 1363200 +--- Modifying the governor of core 0 +--- Modifying the the current frequency of core 0 with frequency 1363200 +--- Frequency level of core 1 is 0 +--- Exact frequency of core 1: 0 +--- Modifying the governor of core 1 +--- Modifying the the current frequency of core 1 with frequency 0 +--- Frequency level of core 2 is 0 +--- Exact frequency of core 2: 0 +--- Modifying the governor of core 2 +--- Modifying the the current frequency of core 2 with frequency 0 +--- Frequency level of core 3 is 0 +--- Exact frequency of core 3: 0 +--- Modifying the governor of core 3 +--- Modifying the the current frequency of core 3 with frequency 0 +--- Frequency level of core 4 is 2 +--- Exact frequency of core 4: 1363200 +--- Modifying the governor of core 4 +--- Modifying the the current frequency of core 4 with frequency 1363200 +--- Frequency level of core 5 is 0 +--- Exact frequency of core 5: 0 +--- Modifying the governor of core 5 +--- Modifying the the current frequency of core 5 with frequency 0 +--- Frequency level of core 6 is 2 +--- Exact frequency of core 6: 1478400 +--- Modifying the governor of core 6 +--- Modifying the the current frequency of core 6 with frequency 1478400 +--- Frequency level of core 7 is 2 +--- Exact frequency of core 7: 1766400 +--- Modifying the governor of core 7 +--- Modifying the the current frequency of core 7 with frequency 1766400 +--- Calibrating Monsoon power meter, please wait for 10 seconds... +powermeter script : --- Inside the monsoon_power_meter, arg function: 1 +powermeter script : calibration duration = 10 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 50000 + returning 50000 samples after experiments +powermeter script : Power meter calibration okay +--- Monsoon power meter Calibrated +--- starting the benchmarking app +## writing the configuration inside the phone file + --- Removing file /sdcard/experiments_automatization +rm '/sdcard/experiments_automatization/current_configuration.txt' +rm '/sdcard/experiments_automatization/experiment_duration.txt' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ended' +rmdir '/sdcard/experiments_automatization/app_output_folder' +rmdir '/sdcard/experiments_automatization' + --- Clearing the logcat + --- Creating file /sdcard/experiments_automatization +----- Uninstalling experiment app +Success +----- Installing experiment app +Performing Streamed Install +Success +------ Giving rights to experiment app +----- Starting experiment app +Starting: Intent { cmp=com.opportunistask.scheduling.benchmarking_app_to_test_big_cores/.MainActivity } +adb command : ps -A | grep com.opportunistask.scheduling.benchmarking_app_to_test_big_cores + ----- Experiment app started with pid: 31922 +---- waiting for benchmarking app thread to be pinned and to be ready +--- frequency level of core 0 is 2 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 2 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of cores to occupy = 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 4 +--- Now threads are running and the phone is ready to be sampled with the power meter \n--- Threads pids +Thread_0_ready_for_sampling +Thread_1_ready_for_sampling +Thread_2_ready_for_sampling +Thread_3_ready_for_sampling +--- Printing cc_info beginning datas (for the samsung galaxy s8) + --- Starting power meter sampling for about 600 seconds +--- Sampling with the Monsoon power meter +powermeter script : --- Inside the monsoon_power_meter, arg function: 2 +powermeter script : Experiment duration = 600 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 3000000 + returning 3000000 samples after experiments +powermeter script : Total nomber of sample measured : 3000000 +powermeter script : Computing powermeter summary result + Number of samples = 3000000 +powermeter script : We computed the energy on 600 samples +powermeter script : average_power = 2049.0452915045375 +powermeter script : average_power with numpy arrays = 2049.0452915038745 +powermeter script : Summary Result = time (s): 601.8011617660522 +Ins Current (mA):414.30893076202153 +Samples: 3000000 +Consumed Energy (mAs): 254267.9039088132 +Consumed Energy (mAh): 70.62997330800367 +Consumed Energy (mWs): 1227180.9358850962 +Consumed Energy (mWh): 340.8835933014156 +Avg power (mW): 2049.0452915045375 +Avg Current (mA): 424.4808562324094 +Avg Voltage (V): 4.827179509793147 +Exp Batt Life (hrs for 1000mAh battery): NOT COMPUTED +--- Monsoon power meter sampling is finished ! + --- experiment folder path /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- frequency level of core 0 is 2 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 2 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of threads normally started = 4 +--- Number of thread ended: 4 +--- Now threads are stopped, getting the cc_info_level for samsung +--- Copying thread results locally +command /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe pull /sdcard/experiments_automatization/app_output_folder C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder </dev/null +/sdcard/experiments_automatization/app_output_folder/: 8 files pulled, 0 skipped. 0.0 MB/s (1816 bytes in 0.068s) +saving the logcat file to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder -/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder- +--- Parsing result from /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/raw_result.txt +--- Getting exact configuration with frequency +--- Configuration with frequencies = [1363200- 0- 0- 0- 1363200- 0- 1478400- 1766400] +--- Getting the powermeter summary +--- Powermeter summary: +time (s): 601.8011617660522 +Ins Current (mA):414.30893076202153 +Samples: 3000000 +Consumed Energy (mAs): 254267.9039088132 +Consumed Energy (mAh): 70.62997330800367 +Consumed Energy (mWs): 1227180.9358850962 +Consumed Energy (mWh): 340.8835933014156 +Avg power (mW): 2049.0452915045375 +Avg Current (mA): 424.4808562324094 +Avg Voltage (V): 4.827179509793147 + +--- Getting the total energy consumed of the google pixel +--- Energy consumed = 70.62997330800367 +--- Starting cc_info = 0 +--- Ending cc_info = 0 +--- Getting the average power +--- Avg Power = 2049.0452915045375 +--- Printing the total threads summary +--- Thread results +Thread : 0 - ThreadProcess id: 31947 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 21:43:57 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 21:53:57 +0100 - Duration: 600020 seconds +Real workload: 5.010730315871666E10 - Integer reached: 185640 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 31948 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 21:43:57 +0100 +Core id: 4 +Ending time: Sun, 19 Dec 2021 21:53:57 +0100 - Duration: 600027 seconds +Real workload: 4.950617792681694E10 - Integer reached: 184569 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 31950 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 21:43:57 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 21:53:57 +0100 - Duration: 600002 seconds +Real workload: 4.816070133102626E11 - Integer reached: 550394 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 31951 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 21:43:57 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 21:53:57 +0100 - Duration: 600009 seconds +Real workload: 5.810769522266276E11 - Integer reached: 602431 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +--- Counting the total workload command : print_total_workload /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder app_output_folder 2,0,0,0,2,0,2,2 /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first +--- Total workload : 1.1623e+12 +--- Getting energy efficiency +--- Energy efficiency: 6.07674e-11 +--- Building what we will add to the total result file command +------ + (build_configuration_raw_result 200020-2-2 2,0,0,0,2,0,2,2 [1363200- 0- 0- 0- 1363200- 0- 1478400- 1766400] time (s): 601.8011617660522 +Ins Current (mA):414.30893076202153 +Samples: 3000000 +Consumed Energy (mAs): 254267.9039088132 +Consumed Energy (mAh): 70.62997330800367 +Consumed Energy (mWs): 1227180.9358850962 +Consumed Energy (mWh): 340.8835933014156 +Avg power (mW): 2049.0452915045375 +Avg Current (mA): 424.4808562324094 +Avg Voltage (V): 4.827179509793147 + Thread : 0 - ThreadProcess id: 31947 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 21:43:57 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 21:53:57 +0100 - Duration: 600020 seconds +Real workload: 5.010730315871666E10 - Integer reached: 185640 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 31948 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 21:43:57 +0100 +Core id: 4 +Ending time: Sun, 19 Dec 2021 21:53:57 +0100 - Duration: 600027 seconds +Real workload: 4.950617792681694E10 - Integer reached: 184569 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 31950 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 21:43:57 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 21:53:57 +0100 - Duration: 600002 seconds +Real workload: 4.816070133102626E11 - Integer reached: 550394 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 31951 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 21:43:57 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 21:53:57 +0100 - Duration: 600009 seconds +Real workload: 5.810769522266276E11 - Integer reached: 602431 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + 70.62997330800367 1.1623e+12 6.07674e-11 0 0 +------ + +--- Final result to print to File + -------------------------------------------------------------------------------- + +++++ +++++ +++++ Configuration Description +-------------------------------------------------------------------------------- +Configuration: 200020-2-2 +phone format: 2,0,0,0,2,0,2,2 +Exact values of frequencies: [1363200- 0- 0- 0- 1363200- 0- 1478400- 1766400] + +Power meter results +------------------------------------------------------------ +time (s): 601.8011617660522 +Ins Current (mA):414.30893076202153 +Samples: 3000000 +Consumed Energy (mAs): 254267.9039088132 +Consumed Energy (mAh): 70.62997330800367 +Consumed Energy (mWs): 1227180.9358850962 +Consumed Energy (mWh): 340.8835933014156 +Avg power (mW): 2049.0452915045375 +Avg Current (mA): 424.4808562324094 +Avg Voltage (V): 4.827179509793147 + +Threads results +------------------------------------------------------------ +Thread : 0 - ThreadProcess id: 31947 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 21:43:57 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 21:53:57 +0100 - Duration: 600020 seconds +Real workload: 5.010730315871666E10 - Integer reached: 185640 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 31948 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 21:43:57 +0100 +Core id: 4 +Ending time: Sun, 19 Dec 2021 21:53:57 +0100 - Duration: 600027 seconds +Real workload: 4.950617792681694E10 - Integer reached: 184569 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 31950 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 21:43:57 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 21:53:57 +0100 - Duration: 600002 seconds +Real workload: 4.816070133102626E11 - Integer reached: 550394 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 31951 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 21:43:57 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 21:53:57 +0100 - Duration: 600009 seconds +Real workload: 5.810769522266276E11 - Integer reached: 602431 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +Expermiment results +------------------------------------------------------------ +Energy Consumed (mAh): 70.62997330800367 +Workload: 1.1623e+12 +Energy efficiency: 6.07674e-11 +-------------------------------------------------------------------------------- + + +--- Writing to the total result file +--- Removing previous tested configuration tmp_output folder +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_23_27_12/app_output_folder/all_workloads.txt' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_23_27_12/app_output_folder/Thread_0_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_23_27_12/app_output_folder/Thread_0_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_23_27_12/app_output_folder/Thread_1_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_23_27_12/app_output_folder/Thread_1_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_23_27_12/app_output_folder/Thread_2_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_23_27_12/app_output_folder/Thread_2_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_23_27_12/app_output_folder/Thread_3_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_23_27_12/app_output_folder/Thread_3_ready_for_sampling' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_23_27_12/app_output_folder' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_23_27_12/configuration_mesurement.csv' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_23_27_12/energy_power_workload_energyByWorkload_ccInfo' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_23_27_12/logcat_output' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_23_27_12/powermeter_summary.txt' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_23_27_12' +--- Moving the current experiment tmp_folder to the output result folder +writing a temporary file for the main script with format energy_power_workload_energyByWorkload_ccInfo +--- Obtaining experiment summary result to add to result folder +--- Experiment result, Energy consumed = 70.62997330800367 +--- Experiment result, Avg Power = 2049.0452915045375 +--- Experiment result, Total Workload = 1.1623e+12 +--- Experiment result, Energy Efficiency = 6.07674e-11 +--- Adding result to summary file +--- Starting cc information : 0 +--- Ending cc information : 0 +--- The file /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/summary.csv exists we just appending the result to the file +--- Experiments performed on configuration 200020-2-2. +--- Observing a pause betwenn experiment; pause duration : 180 seconds; starting at 04Oct22_23_39_57 +--- Performing experiments on configuration 200200-2-2 +--- Cleaning the tmp expermiment folder : /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- Second step : verifying the battery level +--- Verifying the battery level +--- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe +--- Current battery level : 50 +Current battery level: OKAY +--- Third step calibrating phone core frequency +--- Resetting all frequency configurations + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu5/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor +--- Frequency level of core 0 is 2 +--- Exact frequency of core 0: 1363200 +--- Modifying the governor of core 0 +--- Modifying the the current frequency of core 0 with frequency 1363200 +--- Frequency level of core 1 is 0 +--- Exact frequency of core 1: 0 +--- Modifying the governor of core 1 +--- Modifying the the current frequency of core 1 with frequency 0 +--- Frequency level of core 2 is 0 +--- Exact frequency of core 2: 0 +--- Modifying the governor of core 2 +--- Modifying the the current frequency of core 2 with frequency 0 +--- Frequency level of core 3 is 2 +--- Exact frequency of core 3: 1363200 +--- Modifying the governor of core 3 +--- Modifying the the current frequency of core 3 with frequency 1363200 +--- Frequency level of core 4 is 0 +--- Exact frequency of core 4: 0 +--- Modifying the governor of core 4 +--- Modifying the the current frequency of core 4 with frequency 0 +--- Frequency level of core 5 is 0 +--- Exact frequency of core 5: 0 +--- Modifying the governor of core 5 +--- Modifying the the current frequency of core 5 with frequency 0 +--- Frequency level of core 6 is 2 +--- Exact frequency of core 6: 1478400 +--- Modifying the governor of core 6 +--- Modifying the the current frequency of core 6 with frequency 1478400 +--- Frequency level of core 7 is 2 +--- Exact frequency of core 7: 1766400 +--- Modifying the governor of core 7 +--- Modifying the the current frequency of core 7 with frequency 1766400 +--- Calibrating Monsoon power meter, please wait for 10 seconds... +powermeter script : --- Inside the monsoon_power_meter, arg function: 1 +powermeter script : calibration duration = 10 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 50000 + returning 50000 samples after experiments +powermeter script : Power meter calibration okay +--- Monsoon power meter Calibrated +--- starting the benchmarking app +## writing the configuration inside the phone file + --- Removing file /sdcard/experiments_automatization +rm '/sdcard/experiments_automatization/current_configuration.txt' +rm '/sdcard/experiments_automatization/experiment_duration.txt' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ended' +rmdir '/sdcard/experiments_automatization/app_output_folder' +rmdir '/sdcard/experiments_automatization' + --- Clearing the logcat + --- Creating file /sdcard/experiments_automatization +----- Uninstalling experiment app +Success +----- Installing experiment app +Performing Streamed Install +Success +------ Giving rights to experiment app +----- Starting experiment app +Starting: Intent { cmp=com.opportunistask.scheduling.benchmarking_app_to_test_big_cores/.MainActivity } +adb command : ps -A | grep com.opportunistask.scheduling.benchmarking_app_to_test_big_cores + ----- Experiment app started with pid: 828 +---- waiting for benchmarking app thread to be pinned and to be ready +--- frequency level of core 0 is 2 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 2 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of cores to occupy = 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 4 +--- Now threads are running and the phone is ready to be sampled with the power meter \n--- Threads pids +Thread_0_ready_for_sampling +Thread_1_ready_for_sampling +Thread_2_ready_for_sampling +Thread_3_ready_for_sampling +--- Printing cc_info beginning datas (for the samsung galaxy s8) + --- Starting power meter sampling for about 600 seconds +--- Sampling with the Monsoon power meter +powermeter script : --- Inside the monsoon_power_meter, arg function: 2 +powermeter script : Experiment duration = 600 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 3000000 + returning 3000000 samples after experiments +powermeter script : Total nomber of sample measured : 3000000 +powermeter script : Computing powermeter summary result + Number of samples = 3000000 +powermeter script : We computed the energy on 600 samples +powermeter script : average_power = 2072.612065766956 +powermeter script : average_power with numpy arrays = 2072.6120657665597 +powermeter script : Summary Result = time (s): 601.6574292182922 +Ins Current (mA):400.4558726046707 +Samples: 3000000 +Consumed Energy (mAs): 257739.05316124676 +Consumed Energy (mAh): 71.59418143367965 +Consumed Energy (mWs): 1242567.9745435885 +Consumed Energy (mWh): 345.15777070655236 +Avg power (mW): 2072.612065766956 +Avg Current (mA): 429.70723982956116 +Avg Voltage (V): 4.823311952084018 +Exp Batt Life (hrs for 1000mAh battery): NOT COMPUTED +--- Monsoon power meter sampling is finished ! + --- experiment folder path /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- frequency level of core 0 is 2 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 2 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of threads normally started = 4 +--- Number of thread ended: 4 +--- Now threads are stopped, getting the cc_info_level for samsung +--- Copying thread results locally +command /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe pull /sdcard/experiments_automatization/app_output_folder C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder </dev/null +/sdcard/experiments_automatization/app_output_folder/: 8 files pulled, 0 skipped. 0.0 MB/s (1800 bytes in 0.056s) +saving the logcat file to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder -/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder- +--- Parsing result from /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/raw_result.txt +--- Getting exact configuration with frequency +--- Configuration with frequencies = [1363200- 0- 0- 1363200- 0- 0- 1478400- 1766400] +--- Getting the powermeter summary +--- Powermeter summary: +time (s): 601.6574292182922 +Ins Current (mA):400.4558726046707 +Samples: 3000000 +Consumed Energy (mAs): 257739.05316124676 +Consumed Energy (mAh): 71.59418143367965 +Consumed Energy (mWs): 1242567.9745435885 +Consumed Energy (mWh): 345.15777070655236 +Avg power (mW): 2072.612065766956 +Avg Current (mA): 429.70723982956116 +Avg Voltage (V): 4.823311952084018 + +--- Getting the total energy consumed of the google pixel +--- Energy consumed = 71.59418143367965 +--- Starting cc_info = 0 +--- Ending cc_info = 0 +--- Getting the average power +--- Avg Power = 2072.612065766956 +--- Printing the total threads summary +--- Thread results +Thread : 0 - ThreadProcess id: 860 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 21:59:44 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 22:09:44 +0100 - Duration: 600005 seconds +Real workload: 4.960414367769322E10 - Integer reached: 184744 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 861 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 21:59:44 +0100 +Core id: 3 +Ending time: Sun, 19 Dec 2021 22:09:44 +0100 - Duration: 600005 seconds +Real workload: 4.999307522285984E10 - Integer reached: 185437 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 862 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 21:59:44 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 22:09:45 +0100 - Duration: 600006 seconds +Real workload: 4.842736012153181E11 - Integer reached: 551858 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 864 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 21:59:44 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 22:09:44 +0100 - Duration: 600006 seconds +Real workload: 5.757259718070789E11 - Integer reached: 599755 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +--- Counting the total workload command : print_total_workload /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder app_output_folder 2,0,0,2,0,0,2,2 /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first +--- Total workload : 1.1596e+12 +--- Getting energy efficiency +--- Energy efficiency: 6.17404e-11 +--- Building what we will add to the total result file command +------ + (build_configuration_raw_result 200200-2-2 2,0,0,2,0,0,2,2 [1363200- 0- 0- 1363200- 0- 0- 1478400- 1766400] time (s): 601.6574292182922 +Ins Current (mA):400.4558726046707 +Samples: 3000000 +Consumed Energy (mAs): 257739.05316124676 +Consumed Energy (mAh): 71.59418143367965 +Consumed Energy (mWs): 1242567.9745435885 +Consumed Energy (mWh): 345.15777070655236 +Avg power (mW): 2072.612065766956 +Avg Current (mA): 429.70723982956116 +Avg Voltage (V): 4.823311952084018 + Thread : 0 - ThreadProcess id: 860 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 21:59:44 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 22:09:44 +0100 - Duration: 600005 seconds +Real workload: 4.960414367769322E10 - Integer reached: 184744 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 861 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 21:59:44 +0100 +Core id: 3 +Ending time: Sun, 19 Dec 2021 22:09:44 +0100 - Duration: 600005 seconds +Real workload: 4.999307522285984E10 - Integer reached: 185437 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 862 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 21:59:44 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 22:09:45 +0100 - Duration: 600006 seconds +Real workload: 4.842736012153181E11 - Integer reached: 551858 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 864 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 21:59:44 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 22:09:44 +0100 - Duration: 600006 seconds +Real workload: 5.757259718070789E11 - Integer reached: 599755 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + 71.59418143367965 1.1596e+12 6.17404e-11 0 0 +------ + +--- Final result to print to File + -------------------------------------------------------------------------------- + +++++ +++++ +++++ Configuration Description +-------------------------------------------------------------------------------- +Configuration: 200200-2-2 +phone format: 2,0,0,2,0,0,2,2 +Exact values of frequencies: [1363200- 0- 0- 1363200- 0- 0- 1478400- 1766400] + +Power meter results +------------------------------------------------------------ +time (s): 601.6574292182922 +Ins Current (mA):400.4558726046707 +Samples: 3000000 +Consumed Energy (mAs): 257739.05316124676 +Consumed Energy (mAh): 71.59418143367965 +Consumed Energy (mWs): 1242567.9745435885 +Consumed Energy (mWh): 345.15777070655236 +Avg power (mW): 2072.612065766956 +Avg Current (mA): 429.70723982956116 +Avg Voltage (V): 4.823311952084018 + +Threads results +------------------------------------------------------------ +Thread : 0 - ThreadProcess id: 860 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 21:59:44 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 22:09:44 +0100 - Duration: 600005 seconds +Real workload: 4.960414367769322E10 - Integer reached: 184744 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 861 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 21:59:44 +0100 +Core id: 3 +Ending time: Sun, 19 Dec 2021 22:09:44 +0100 - Duration: 600005 seconds +Real workload: 4.999307522285984E10 - Integer reached: 185437 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 862 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 21:59:44 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 22:09:45 +0100 - Duration: 600006 seconds +Real workload: 4.842736012153181E11 - Integer reached: 551858 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 864 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 21:59:44 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 22:09:44 +0100 - Duration: 600006 seconds +Real workload: 5.757259718070789E11 - Integer reached: 599755 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +Expermiment results +------------------------------------------------------------ +Energy Consumed (mAh): 71.59418143367965 +Workload: 1.1596e+12 +Energy efficiency: 6.17404e-11 +-------------------------------------------------------------------------------- + + +--- Writing to the total result file +--- Removing previous tested configuration tmp_output folder +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_23_42_59/app_output_folder/all_workloads.txt' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_23_42_59/app_output_folder/Thread_0_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_23_42_59/app_output_folder/Thread_0_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_23_42_59/app_output_folder/Thread_1_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_23_42_59/app_output_folder/Thread_1_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_23_42_59/app_output_folder/Thread_2_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_23_42_59/app_output_folder/Thread_2_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_23_42_59/app_output_folder/Thread_3_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_23_42_59/app_output_folder/Thread_3_ready_for_sampling' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_23_42_59/app_output_folder' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_23_42_59/configuration_mesurement.csv' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_23_42_59/energy_power_workload_energyByWorkload_ccInfo' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_23_42_59/logcat_output' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_23_42_59/powermeter_summary.txt' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_23_42_59' +--- Moving the current experiment tmp_folder to the output result folder +writing a temporary file for the main script with format energy_power_workload_energyByWorkload_ccInfo +--- Obtaining experiment summary result to add to result folder +--- Experiment result, Energy consumed = 71.59418143367965 +--- Experiment result, Avg Power = 2072.612065766956 +--- Experiment result, Total Workload = 1.1596e+12 +--- Experiment result, Energy Efficiency = 6.17404e-11 +--- Adding result to summary file +--- Starting cc information : 0 +--- Ending cc information : 0 +--- The file /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/summary.csv exists we just appending the result to the file +--- Experiments performed on configuration 200200-2-2. +--- Observing a pause betwenn experiment; pause duration : 180 seconds; starting at 04Oct22_23_55_43 +--- Performing experiments on configuration 200200-2-2 +--- Cleaning the tmp expermiment folder : /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- Second step : verifying the battery level +--- Verifying the battery level +--- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe +--- Current battery level : 50 +Current battery level: OKAY +--- Third step calibrating phone core frequency +--- Resetting all frequency configurations + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu5/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor +--- Frequency level of core 0 is 2 +--- Exact frequency of core 0: 1363200 +--- Modifying the governor of core 0 +--- Modifying the the current frequency of core 0 with frequency 1363200 +--- Frequency level of core 1 is 0 +--- Exact frequency of core 1: 0 +--- Modifying the governor of core 1 +--- Modifying the the current frequency of core 1 with frequency 0 +--- Frequency level of core 2 is 0 +--- Exact frequency of core 2: 0 +--- Modifying the governor of core 2 +--- Modifying the the current frequency of core 2 with frequency 0 +--- Frequency level of core 3 is 2 +--- Exact frequency of core 3: 1363200 +--- Modifying the governor of core 3 +--- Modifying the the current frequency of core 3 with frequency 1363200 +--- Frequency level of core 4 is 0 +--- Exact frequency of core 4: 0 +--- Modifying the governor of core 4 +--- Modifying the the current frequency of core 4 with frequency 0 +--- Frequency level of core 5 is 0 +--- Exact frequency of core 5: 0 +--- Modifying the governor of core 5 +--- Modifying the the current frequency of core 5 with frequency 0 +--- Frequency level of core 6 is 2 +--- Exact frequency of core 6: 1478400 +--- Modifying the governor of core 6 +--- Modifying the the current frequency of core 6 with frequency 1478400 +--- Frequency level of core 7 is 2 +--- Exact frequency of core 7: 1766400 +--- Modifying the governor of core 7 +--- Modifying the the current frequency of core 7 with frequency 1766400 +--- Calibrating Monsoon power meter, please wait for 10 seconds... +powermeter script : --- Inside the monsoon_power_meter, arg function: 1 +powermeter script : calibration duration = 10 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 50000 + returning 50000 samples after experiments +powermeter script : Power meter calibration okay +--- Monsoon power meter Calibrated +--- starting the benchmarking app +## writing the configuration inside the phone file + --- Removing file /sdcard/experiments_automatization +rm '/sdcard/experiments_automatization/current_configuration.txt' +rm '/sdcard/experiments_automatization/experiment_duration.txt' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ended' +rmdir '/sdcard/experiments_automatization/app_output_folder' +rmdir '/sdcard/experiments_automatization' + --- Clearing the logcat + --- Creating file /sdcard/experiments_automatization +----- Uninstalling experiment app +Success +----- Installing experiment app +Performing Streamed Install +Success +------ Giving rights to experiment app +----- Starting experiment app +Starting: Intent { cmp=com.opportunistask.scheduling.benchmarking_app_to_test_big_cores/.MainActivity } +adb command : ps -A | grep com.opportunistask.scheduling.benchmarking_app_to_test_big_cores + ----- Experiment app started with pid: 3344 +---- waiting for benchmarking app thread to be pinned and to be ready +--- frequency level of core 0 is 2 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 2 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of cores to occupy = 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 2 +--- The current number of thread ready to be sambled : 2, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 4 +--- Now threads are running and the phone is ready to be sampled with the power meter \n--- Threads pids +Thread_0_ready_for_sampling +Thread_1_ready_for_sampling +Thread_2_ready_for_sampling +Thread_3_ready_for_sampling +--- Printing cc_info beginning datas (for the samsung galaxy s8) + --- Starting power meter sampling for about 600 seconds +--- Sampling with the Monsoon power meter +powermeter script : --- Inside the monsoon_power_meter, arg function: 2 +powermeter script : Experiment duration = 600 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 3000000 + returning 3000000 samples after experiments +powermeter script : Total nomber of sample measured : 3000000 +powermeter script : Computing powermeter summary result + Number of samples = 3000000 +powermeter script : We computed the energy on 600 samples +powermeter script : average_power = 2044.390496935238 +powermeter script : average_power with numpy arrays = 2044.390496934615 +powermeter script : Summary Result = time (s): 601.6028821468353 +Ins Current (mA):415.66283030081377 +Samples: 3000000 +Consumed Energy (mAs): 254301.280414778 +Consumed Energy (mAh): 70.63924455966055 +Consumed Energy (mWs): 1227378.9508355954 +Consumed Energy (mWh): 340.93859745433207 +Avg power (mW): 2044.390496935238 +Avg Current (mA): 423.438961777167 +Avg Voltage (V): 4.828064211084785 +Exp Batt Life (hrs for 1000mAh battery): NOT COMPUTED +--- Monsoon power meter sampling is finished ! + --- experiment folder path /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- frequency level of core 0 is 2 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 2 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of threads normally started = 4 +--- Number of thread ended: 4 +--- Now threads are stopped, getting the cc_info_level for samsung +--- Copying thread results locally +command /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe pull /sdcard/experiments_automatization/app_output_folder C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder </dev/null +/sdcard/experiments_automatization/app_output_folder/: 8 files pulled, 0 skipped. 0.0 MB/s (1809 bytes in 0.056s) +saving the logcat file to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder -/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder- +--- Parsing result from /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/raw_result.txt +--- Getting exact configuration with frequency +--- Configuration with frequencies = [1363200- 0- 0- 1363200- 0- 0- 1478400- 1766400] +--- Getting the powermeter summary +--- Powermeter summary: +time (s): 601.6028821468353 +Ins Current (mA):415.66283030081377 +Samples: 3000000 +Consumed Energy (mAs): 254301.280414778 +Consumed Energy (mAh): 70.63924455966055 +Consumed Energy (mWs): 1227378.9508355954 +Consumed Energy (mWh): 340.93859745433207 +Avg power (mW): 2044.390496935238 +Avg Current (mA): 423.438961777167 +Avg Voltage (V): 4.828064211084785 + +--- Getting the total energy consumed of the google pixel +--- Energy consumed = 70.63924455966055 +--- Starting cc_info = 0 +--- Ending cc_info = 0 +--- Getting the average power +--- Avg Power = 2044.390496935238 +--- Printing the total threads summary +--- Thread results +Thread : 0 - ThreadProcess id: 3381 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 22:15:31 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 22:25:31 +0100 - Duration: 600019 seconds +Real workload: 4.957054409206529E10 - Integer reached: 184684 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 49 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 3382 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 22:15:31 +0100 +Core id: 3 +Ending time: Sun, 19 Dec 2021 22:25:31 +0100 - Duration: 600012 seconds +Real workload: 5.012588503514102E10 - Integer reached: 185673 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 49 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 3383 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 22:15:31 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 22:25:31 +0100 - Duration: 600003 seconds +Real workload: 4.8645769849540564E11 - Integer reached: 553054 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 49 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 3384 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 22:15:31 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 22:25:31 +0100 - Duration: 600005 seconds +Real workload: 5.811330767980662E11 - Integer reached: 602459 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 49 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +--- Counting the total workload command : print_total_workload /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder app_output_folder 2,0,0,2,0,0,2,2 /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first +--- Total workload : 1.16729e+12 +--- Getting energy efficiency +--- Energy efficiency: 6.05156e-11 +--- Building what we will add to the total result file command +------ + (build_configuration_raw_result 200200-2-2 2,0,0,2,0,0,2,2 [1363200- 0- 0- 1363200- 0- 0- 1478400- 1766400] time (s): 601.6028821468353 +Ins Current (mA):415.66283030081377 +Samples: 3000000 +Consumed Energy (mAs): 254301.280414778 +Consumed Energy (mAh): 70.63924455966055 +Consumed Energy (mWs): 1227378.9508355954 +Consumed Energy (mWh): 340.93859745433207 +Avg power (mW): 2044.390496935238 +Avg Current (mA): 423.438961777167 +Avg Voltage (V): 4.828064211084785 + Thread : 0 - ThreadProcess id: 3381 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 22:15:31 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 22:25:31 +0100 - Duration: 600019 seconds +Real workload: 4.957054409206529E10 - Integer reached: 184684 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 49 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 3382 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 22:15:31 +0100 +Core id: 3 +Ending time: Sun, 19 Dec 2021 22:25:31 +0100 - Duration: 600012 seconds +Real workload: 5.012588503514102E10 - Integer reached: 185673 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 49 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 3383 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 22:15:31 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 22:25:31 +0100 - Duration: 600003 seconds +Real workload: 4.8645769849540564E11 - Integer reached: 553054 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 49 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 3384 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 22:15:31 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 22:25:31 +0100 - Duration: 600005 seconds +Real workload: 5.811330767980662E11 - Integer reached: 602459 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 49 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + 70.63924455966055 1.16729e+12 6.05156e-11 0 0 +------ + +--- Final result to print to File + -------------------------------------------------------------------------------- + +++++ +++++ +++++ Configuration Description +-------------------------------------------------------------------------------- +Configuration: 200200-2-2 +phone format: 2,0,0,2,0,0,2,2 +Exact values of frequencies: [1363200- 0- 0- 1363200- 0- 0- 1478400- 1766400] + +Power meter results +------------------------------------------------------------ +time (s): 601.6028821468353 +Ins Current (mA):415.66283030081377 +Samples: 3000000 +Consumed Energy (mAs): 254301.280414778 +Consumed Energy (mAh): 70.63924455966055 +Consumed Energy (mWs): 1227378.9508355954 +Consumed Energy (mWh): 340.93859745433207 +Avg power (mW): 2044.390496935238 +Avg Current (mA): 423.438961777167 +Avg Voltage (V): 4.828064211084785 + +Threads results +------------------------------------------------------------ +Thread : 0 - ThreadProcess id: 3381 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 22:15:31 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 22:25:31 +0100 - Duration: 600019 seconds +Real workload: 4.957054409206529E10 - Integer reached: 184684 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 49 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 3382 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 22:15:31 +0100 +Core id: 3 +Ending time: Sun, 19 Dec 2021 22:25:31 +0100 - Duration: 600012 seconds +Real workload: 5.012588503514102E10 - Integer reached: 185673 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 49 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 3383 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 22:15:31 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 22:25:31 +0100 - Duration: 600003 seconds +Real workload: 4.8645769849540564E11 - Integer reached: 553054 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 49 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 3384 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 22:15:31 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 22:25:31 +0100 - Duration: 600005 seconds +Real workload: 5.811330767980662E11 - Integer reached: 602459 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 49 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +Expermiment results +------------------------------------------------------------ +Energy Consumed (mAh): 70.63924455966055 +Workload: 1.16729e+12 +Energy efficiency: 6.05156e-11 +-------------------------------------------------------------------------------- + + +--- Writing to the total result file +--- Removing previous tested configuration tmp_output folder +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_23_58_45/app_output_folder/all_workloads.txt' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_23_58_45/app_output_folder/Thread_0_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_23_58_45/app_output_folder/Thread_0_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_23_58_45/app_output_folder/Thread_1_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_23_58_45/app_output_folder/Thread_1_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_23_58_45/app_output_folder/Thread_2_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_23_58_45/app_output_folder/Thread_2_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_23_58_45/app_output_folder/Thread_3_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_23_58_45/app_output_folder/Thread_3_ready_for_sampling' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_23_58_45/app_output_folder' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_23_58_45/configuration_mesurement.csv' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_23_58_45/energy_power_workload_energyByWorkload_ccInfo' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_23_58_45/logcat_output' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_23_58_45/powermeter_summary.txt' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__04Oct22_23_58_45' +--- Moving the current experiment tmp_folder to the output result folder +writing a temporary file for the main script with format energy_power_workload_energyByWorkload_ccInfo +--- Obtaining experiment summary result to add to result folder +--- Experiment result, Energy consumed = 70.63924455966055 +--- Experiment result, Avg Power = 2044.390496935238 +--- Experiment result, Total Workload = 1.16729e+12 +--- Experiment result, Energy Efficiency = 6.05156e-11 +--- Adding result to summary file +--- Starting cc information : 0 +--- Ending cc information : 0 +--- The file /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/summary.csv exists we just appending the result to the file +--- Experiments performed on configuration 200200-2-2. +--- Observing a pause betwenn experiment; pause duration : 180 seconds; starting at 05Oct22_00_11_31 +--- Performing experiments on configuration 200200-2-2 +--- Cleaning the tmp expermiment folder : /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- Second step : verifying the battery level +--- Verifying the battery level +--- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe +--- Current battery level : 49 +--- Current battery is low, so we need to wait battery +--- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe +--- Current battery level : 49 +--- Desactivating the charge stop level option +--- Desactivating the charge stop level option, command : /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe shell echo 100 > /sys/devices/platform/soc/soc:google,charger/charge_stop_level </dev/null +--- The current battery level : 49, still lower than the experiment one : 50 +--- Waiting 30 second... +--- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe +--- Current battery level : 49 +--- The current battery level : 49, still lower than the experiment one : 50 +--- Waiting 30 second... +--- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe +--- Current battery level : 50 +--- Current battery is now equal to the experiment battery level +--- Third step calibrating phone core frequency +--- Resetting all frequency configurations + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu5/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor +--- Frequency level of core 0 is 2 +--- Exact frequency of core 0: 1363200 +--- Modifying the governor of core 0 +--- Modifying the the current frequency of core 0 with frequency 1363200 +--- Frequency level of core 1 is 0 +--- Exact frequency of core 1: 0 +--- Modifying the governor of core 1 +--- Modifying the the current frequency of core 1 with frequency 0 +--- Frequency level of core 2 is 0 +--- Exact frequency of core 2: 0 +--- Modifying the governor of core 2 +--- Modifying the the current frequency of core 2 with frequency 0 +--- Frequency level of core 3 is 2 +--- Exact frequency of core 3: 1363200 +--- Modifying the governor of core 3 +--- Modifying the the current frequency of core 3 with frequency 1363200 +--- Frequency level of core 4 is 0 +--- Exact frequency of core 4: 0 +--- Modifying the governor of core 4 +--- Modifying the the current frequency of core 4 with frequency 0 +--- Frequency level of core 5 is 0 +--- Exact frequency of core 5: 0 +--- Modifying the governor of core 5 +--- Modifying the the current frequency of core 5 with frequency 0 +--- Frequency level of core 6 is 2 +--- Exact frequency of core 6: 1478400 +--- Modifying the governor of core 6 +--- Modifying the the current frequency of core 6 with frequency 1478400 +--- Frequency level of core 7 is 2 +--- Exact frequency of core 7: 1766400 +--- Modifying the governor of core 7 +--- Modifying the the current frequency of core 7 with frequency 1766400 +--- Calibrating Monsoon power meter, please wait for 10 seconds... +powermeter script : --- Inside the monsoon_power_meter, arg function: 1 +powermeter script : calibration duration = 10 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 50000 + returning 50000 samples after experiments +powermeter script : Power meter calibration okay +--- Monsoon power meter Calibrated +--- starting the benchmarking app +## writing the configuration inside the phone file + --- Removing file /sdcard/experiments_automatization +rm '/sdcard/experiments_automatization/current_configuration.txt' +rm '/sdcard/experiments_automatization/experiment_duration.txt' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ended' +rmdir '/sdcard/experiments_automatization/app_output_folder' +rmdir '/sdcard/experiments_automatization' + --- Clearing the logcat + --- Creating file /sdcard/experiments_automatization +----- Uninstalling experiment app +Success +----- Installing experiment app +Performing Streamed Install +Success +------ Giving rights to experiment app +----- Starting experiment app +Starting: Intent { cmp=com.opportunistask.scheduling.benchmarking_app_to_test_big_cores/.MainActivity } +adb command : ps -A | grep com.opportunistask.scheduling.benchmarking_app_to_test_big_cores + ----- Experiment app started with pid: 4420 +---- waiting for benchmarking app thread to be pinned and to be ready +--- frequency level of core 0 is 2 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 2 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of cores to occupy = 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 4 +--- Now threads are running and the phone is ready to be sampled with the power meter \n--- Threads pids +Thread_0_ready_for_sampling +Thread_1_ready_for_sampling +Thread_2_ready_for_sampling +Thread_3_ready_for_sampling +--- Printing cc_info beginning datas (for the samsung galaxy s8) + --- Starting power meter sampling for about 600 seconds +--- Sampling with the Monsoon power meter +powermeter script : --- Inside the monsoon_power_meter, arg function: 2 +powermeter script : Experiment duration = 600 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 3000000 + returning 3000000 samples after experiments +powermeter script : Total nomber of sample measured : 3000000 +powermeter script : Computing powermeter summary result + Number of samples = 3000000 +powermeter script : We computed the energy on 600 samples +powermeter script : average_power = 2036.4875102013627 +powermeter script : average_power with numpy arrays = 2036.4875102008398 +powermeter script : Summary Result = time (s): 602.8111500740051 +Ins Current (mA):419.65433716717394 +Samples: 3000000 +Consumed Energy (mAs): 253922.5417976631 +Consumed Energy (mAh): 70.53403938823975 +Consumed Energy (mWs): 1225433.797605302 +Consumed Energy (mWh): 340.39827711258386 +Avg power (mW): 2036.4875102013627 +Avg Current (mA): 421.67786842147893 +Avg Voltage (V): 4.829486351334512 +Exp Batt Life (hrs for 1000mAh battery): NOT COMPUTED +--- Monsoon power meter sampling is finished ! + --- experiment folder path /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- frequency level of core 0 is 2 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 2 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of threads normally started = 4 +--- Number of thread ended: 4 +--- Now threads are stopped, getting the cc_info_level for samsung +--- Copying thread results locally +command /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe pull /sdcard/experiments_automatization/app_output_folder C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder </dev/null +/sdcard/experiments_automatization/app_output_folder/: 8 files pulled, 0 skipped. 0.0 MB/s (1810 bytes in 0.070s) +saving the logcat file to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder -/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder- +--- Parsing result from /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/raw_result.txt +--- Getting exact configuration with frequency +--- Configuration with frequencies = [1363200- 0- 0- 1363200- 0- 0- 1478400- 1766400] +--- Getting the powermeter summary +--- Powermeter summary: +time (s): 602.8111500740051 +Ins Current (mA):419.65433716717394 +Samples: 3000000 +Consumed Energy (mAs): 253922.5417976631 +Consumed Energy (mAh): 70.53403938823975 +Consumed Energy (mWs): 1225433.797605302 +Consumed Energy (mWh): 340.39827711258386 +Avg power (mW): 2036.4875102013627 +Avg Current (mA): 421.67786842147893 +Avg Voltage (V): 4.829486351334512 + +--- Getting the total energy consumed of the google pixel +--- Energy consumed = 70.53403938823975 +--- Starting cc_info = 0 +--- Ending cc_info = 0 +--- Getting the average power +--- Avg Power = 2036.4875102013627 +--- Printing the total threads summary +--- Thread results +Thread : 0 - ThreadProcess id: 4445 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 22:32:19 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 22:42:19 +0100 - Duration: 600012 seconds +Real workload: 4.950561839048485E10 - Integer reached: 184568 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 4446 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 22:32:19 +0100 +Core id: 3 +Ending time: Sun, 19 Dec 2021 22:42:19 +0100 - Duration: 600010 seconds +Real workload: 5.0148413293227905E10 - Integer reached: 185713 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 4447 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 22:32:19 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 22:42:19 +0100 - Duration: 600004 seconds +Real workload: 4.8392345068278357E11 - Integer reached: 551666 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 4448 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 22:32:19 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 22:42:19 +0100 - Duration: 600009 seconds +Real workload: 5.824407744189293E11 - Integer reached: 603111 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +--- Counting the total workload command : print_total_workload /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder app_output_folder 2,0,0,2,0,0,2,2 /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first +--- Total workload : 1.16602e+12 +--- Getting energy efficiency +--- Energy efficiency: 6.04913e-11 +--- Building what we will add to the total result file command +------ + (build_configuration_raw_result 200200-2-2 2,0,0,2,0,0,2,2 [1363200- 0- 0- 1363200- 0- 0- 1478400- 1766400] time (s): 602.8111500740051 +Ins Current (mA):419.65433716717394 +Samples: 3000000 +Consumed Energy (mAs): 253922.5417976631 +Consumed Energy (mAh): 70.53403938823975 +Consumed Energy (mWs): 1225433.797605302 +Consumed Energy (mWh): 340.39827711258386 +Avg power (mW): 2036.4875102013627 +Avg Current (mA): 421.67786842147893 +Avg Voltage (V): 4.829486351334512 + Thread : 0 - ThreadProcess id: 4445 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 22:32:19 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 22:42:19 +0100 - Duration: 600012 seconds +Real workload: 4.950561839048485E10 - Integer reached: 184568 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 4446 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 22:32:19 +0100 +Core id: 3 +Ending time: Sun, 19 Dec 2021 22:42:19 +0100 - Duration: 600010 seconds +Real workload: 5.0148413293227905E10 - Integer reached: 185713 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 4447 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 22:32:19 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 22:42:19 +0100 - Duration: 600004 seconds +Real workload: 4.8392345068278357E11 - Integer reached: 551666 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 4448 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 22:32:19 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 22:42:19 +0100 - Duration: 600009 seconds +Real workload: 5.824407744189293E11 - Integer reached: 603111 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + 70.53403938823975 1.16602e+12 6.04913e-11 0 0 +------ + +--- Final result to print to File + -------------------------------------------------------------------------------- + +++++ +++++ +++++ Configuration Description +-------------------------------------------------------------------------------- +Configuration: 200200-2-2 +phone format: 2,0,0,2,0,0,2,2 +Exact values of frequencies: [1363200- 0- 0- 1363200- 0- 0- 1478400- 1766400] + +Power meter results +------------------------------------------------------------ +time (s): 602.8111500740051 +Ins Current (mA):419.65433716717394 +Samples: 3000000 +Consumed Energy (mAs): 253922.5417976631 +Consumed Energy (mAh): 70.53403938823975 +Consumed Energy (mWs): 1225433.797605302 +Consumed Energy (mWh): 340.39827711258386 +Avg power (mW): 2036.4875102013627 +Avg Current (mA): 421.67786842147893 +Avg Voltage (V): 4.829486351334512 + +Threads results +------------------------------------------------------------ +Thread : 0 - ThreadProcess id: 4445 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 22:32:19 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 22:42:19 +0100 - Duration: 600012 seconds +Real workload: 4.950561839048485E10 - Integer reached: 184568 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 4446 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 22:32:19 +0100 +Core id: 3 +Ending time: Sun, 19 Dec 2021 22:42:19 +0100 - Duration: 600010 seconds +Real workload: 5.0148413293227905E10 - Integer reached: 185713 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 4447 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 22:32:19 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 22:42:19 +0100 - Duration: 600004 seconds +Real workload: 4.8392345068278357E11 - Integer reached: 551666 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 4448 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 22:32:19 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 22:42:19 +0100 - Duration: 600009 seconds +Real workload: 5.824407744189293E11 - Integer reached: 603111 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +Expermiment results +------------------------------------------------------------ +Energy Consumed (mAh): 70.53403938823975 +Workload: 1.16602e+12 +Energy efficiency: 6.04913e-11 +-------------------------------------------------------------------------------- + + +--- Writing to the total result file +--- Removing previous tested configuration tmp_output folder +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_00_14_33/app_output_folder/all_workloads.txt' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_00_14_33/app_output_folder/Thread_0_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_00_14_33/app_output_folder/Thread_0_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_00_14_33/app_output_folder/Thread_1_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_00_14_33/app_output_folder/Thread_1_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_00_14_33/app_output_folder/Thread_2_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_00_14_33/app_output_folder/Thread_2_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_00_14_33/app_output_folder/Thread_3_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_00_14_33/app_output_folder/Thread_3_ready_for_sampling' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_00_14_33/app_output_folder' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_00_14_33/configuration_mesurement.csv' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_00_14_33/energy_power_workload_energyByWorkload_ccInfo' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_00_14_33/logcat_output' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_00_14_33/powermeter_summary.txt' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_00_14_33' +--- Moving the current experiment tmp_folder to the output result folder +writing a temporary file for the main script with format energy_power_workload_energyByWorkload_ccInfo +--- Obtaining experiment summary result to add to result folder +--- Experiment result, Energy consumed = 70.53403938823975 +--- Experiment result, Avg Power = 2036.4875102013627 +--- Experiment result, Total Workload = 1.16602e+12 +--- Experiment result, Energy Efficiency = 6.04913e-11 +--- Adding result to summary file +--- Starting cc information : 0 +--- Ending cc information : 0 +--- The file /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/summary.csv exists we just appending the result to the file +--- Experiments performed on configuration 200200-2-2. +--- Observing a pause betwenn experiment; pause duration : 180 seconds; starting at 05Oct22_00_28_20 +--- Performing experiments on configuration 202000-2-2 +--- Cleaning the tmp expermiment folder : /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- Second step : verifying the battery level +--- Verifying the battery level +--- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe +--- Current battery level : 50 +Current battery level: OKAY +--- Third step calibrating phone core frequency +--- Resetting all frequency configurations + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu5/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor +--- Frequency level of core 0 is 2 +--- Exact frequency of core 0: 1363200 +--- Modifying the governor of core 0 +--- Modifying the the current frequency of core 0 with frequency 1363200 +--- Frequency level of core 1 is 0 +--- Exact frequency of core 1: 0 +--- Modifying the governor of core 1 +--- Modifying the the current frequency of core 1 with frequency 0 +--- Frequency level of core 2 is 2 +--- Exact frequency of core 2: 1363200 +--- Modifying the governor of core 2 +--- Modifying the the current frequency of core 2 with frequency 1363200 +--- Frequency level of core 3 is 0 +--- Exact frequency of core 3: 0 +--- Modifying the governor of core 3 +--- Modifying the the current frequency of core 3 with frequency 0 +--- Frequency level of core 4 is 0 +--- Exact frequency of core 4: 0 +--- Modifying the governor of core 4 +--- Modifying the the current frequency of core 4 with frequency 0 +--- Frequency level of core 5 is 0 +--- Exact frequency of core 5: 0 +--- Modifying the governor of core 5 +--- Modifying the the current frequency of core 5 with frequency 0 +--- Frequency level of core 6 is 2 +--- Exact frequency of core 6: 1478400 +--- Modifying the governor of core 6 +--- Modifying the the current frequency of core 6 with frequency 1478400 +--- Frequency level of core 7 is 2 +--- Exact frequency of core 7: 1766400 +--- Modifying the governor of core 7 +--- Modifying the the current frequency of core 7 with frequency 1766400 +--- Calibrating Monsoon power meter, please wait for 10 seconds... +powermeter script : --- Inside the monsoon_power_meter, arg function: 1 +powermeter script : calibration duration = 10 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 50000 + returning 50000 samples after experiments +powermeter script : Power meter calibration okay +--- Monsoon power meter Calibrated +--- starting the benchmarking app +## writing the configuration inside the phone file + --- Removing file /sdcard/experiments_automatization +rm '/sdcard/experiments_automatization/current_configuration.txt' +rm '/sdcard/experiments_automatization/experiment_duration.txt' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ended' +rmdir '/sdcard/experiments_automatization/app_output_folder' +rmdir '/sdcard/experiments_automatization' + --- Clearing the logcat + --- Creating file /sdcard/experiments_automatization +----- Uninstalling experiment app +Success +----- Installing experiment app +Performing Streamed Install +Success +------ Giving rights to experiment app +----- Starting experiment app +Starting: Intent { cmp=com.opportunistask.scheduling.benchmarking_app_to_test_big_cores/.MainActivity } +adb command : ps -A | grep com.opportunistask.scheduling.benchmarking_app_to_test_big_cores + ----- Experiment app started with pid: 5558 +---- waiting for benchmarking app thread to be pinned and to be ready +--- frequency level of core 0 is 2 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 2 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of cores to occupy = 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 4 +--- Now threads are running and the phone is ready to be sampled with the power meter \n--- Threads pids +Thread_0_ready_for_sampling +Thread_1_ready_for_sampling +Thread_2_ready_for_sampling +Thread_3_ready_for_sampling +--- Printing cc_info beginning datas (for the samsung galaxy s8) + --- Starting power meter sampling for about 600 seconds +--- Sampling with the Monsoon power meter +powermeter script : --- Inside the monsoon_power_meter, arg function: 2 +powermeter script : Experiment duration = 600 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 3000000 + returning 3000000 samples after experiments +powermeter script : Total nomber of sample measured : 3000000 +powermeter script : Computing powermeter summary result + Number of samples = 3000000 +powermeter script : We computed the energy on 600 samples +powermeter script : average_power = 2067.3332738680415 +powermeter script : average_power with numpy arrays = 2067.3332738676627 +powermeter script : Summary Result = time (s): 601.7082469463348 +Ins Current (mA):425.96941574471975 +Samples: 3000000 +Consumed Energy (mAs): 257379.2602321415 +Consumed Energy (mAh): 71.49423895337264 +Consumed Energy (mWs): 1241596.3009693753 +Consumed Energy (mWh): 344.88786138038205 +Avg power (mW): 2067.3332738680415 +Avg Current (mA): 428.5190247319265 +Avg Voltage (V): 4.824367541584243 +Exp Batt Life (hrs for 1000mAh battery): NOT COMPUTED +--- Monsoon power meter sampling is finished ! + --- experiment folder path /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- frequency level of core 0 is 2 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 2 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of threads normally started = 4 +--- Number of thread ended: 4 +--- Now threads are stopped, getting the cc_info_level for samsung +--- Copying thread results locally +command /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe pull /sdcard/experiments_automatization/app_output_folder C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder </dev/null +/sdcard/experiments_automatization/app_output_folder/: 8 files pulled, 0 skipped. 0.0 MB/s (1809 bytes in 0.067s) +saving the logcat file to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder -/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder- +--- Parsing result from /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/raw_result.txt +--- Getting exact configuration with frequency +--- Configuration with frequencies = [1363200- 0- 1363200- 0- 0- 0- 1478400- 1766400] +--- Getting the powermeter summary +--- Powermeter summary: +time (s): 601.7082469463348 +Ins Current (mA):425.96941574471975 +Samples: 3000000 +Consumed Energy (mAs): 257379.2602321415 +Consumed Energy (mAh): 71.49423895337264 +Consumed Energy (mWs): 1241596.3009693753 +Consumed Energy (mWh): 344.88786138038205 +Avg power (mW): 2067.3332738680415 +Avg Current (mA): 428.5190247319265 +Avg Voltage (V): 4.824367541584243 + +--- Getting the total energy consumed of the google pixel +--- Energy consumed = 71.49423895337264 +--- Starting cc_info = 0 +--- Ending cc_info = 0 +--- Getting the average power +--- Avg Power = 2067.3332738680415 +--- Printing the total threads summary +--- Thread results +Thread : 0 - ThreadProcess id: 5583 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 22:48:07 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 22:58:07 +0100 - Duration: 600027 seconds +Real workload: 4.972520000977431E10 - Integer reached: 184960 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 5584 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 22:48:08 +0100 +Core id: 2 +Ending time: Sun, 19 Dec 2021 22:58:08 +0100 - Duration: 600007 seconds +Real workload: 4.951289237145241E10 - Integer reached: 184581 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 5585 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 22:48:08 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 22:58:08 +0100 - Duration: 600008 seconds +Real workload: 4.8581435910545325E11 - Integer reached: 552702 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 5586 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 22:48:07 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 22:58:07 +0100 - Duration: 600003 seconds +Real workload: 5.826093613217236E11 - Integer reached: 603195 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +--- Counting the total workload command : print_total_workload /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder app_output_folder 2,0,2,0,0,0,2,2 /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first +--- Total workload : 1.16766e+12 +--- Getting energy efficiency +--- Energy efficiency: 6.12286e-11 +--- Building what we will add to the total result file command +------ + (build_configuration_raw_result 202000-2-2 2,0,2,0,0,0,2,2 [1363200- 0- 1363200- 0- 0- 0- 1478400- 1766400] time (s): 601.7082469463348 +Ins Current (mA):425.96941574471975 +Samples: 3000000 +Consumed Energy (mAs): 257379.2602321415 +Consumed Energy (mAh): 71.49423895337264 +Consumed Energy (mWs): 1241596.3009693753 +Consumed Energy (mWh): 344.88786138038205 +Avg power (mW): 2067.3332738680415 +Avg Current (mA): 428.5190247319265 +Avg Voltage (V): 4.824367541584243 + Thread : 0 - ThreadProcess id: 5583 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 22:48:07 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 22:58:07 +0100 - Duration: 600027 seconds +Real workload: 4.972520000977431E10 - Integer reached: 184960 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 5584 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 22:48:08 +0100 +Core id: 2 +Ending time: Sun, 19 Dec 2021 22:58:08 +0100 - Duration: 600007 seconds +Real workload: 4.951289237145241E10 - Integer reached: 184581 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 5585 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 22:48:08 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 22:58:08 +0100 - Duration: 600008 seconds +Real workload: 4.8581435910545325E11 - Integer reached: 552702 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 5586 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 22:48:07 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 22:58:07 +0100 - Duration: 600003 seconds +Real workload: 5.826093613217236E11 - Integer reached: 603195 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + 71.49423895337264 1.16766e+12 6.12286e-11 0 0 +------ + +--- Final result to print to File + -------------------------------------------------------------------------------- + +++++ +++++ +++++ Configuration Description +-------------------------------------------------------------------------------- +Configuration: 202000-2-2 +phone format: 2,0,2,0,0,0,2,2 +Exact values of frequencies: [1363200- 0- 1363200- 0- 0- 0- 1478400- 1766400] + +Power meter results +------------------------------------------------------------ +time (s): 601.7082469463348 +Ins Current (mA):425.96941574471975 +Samples: 3000000 +Consumed Energy (mAs): 257379.2602321415 +Consumed Energy (mAh): 71.49423895337264 +Consumed Energy (mWs): 1241596.3009693753 +Consumed Energy (mWh): 344.88786138038205 +Avg power (mW): 2067.3332738680415 +Avg Current (mA): 428.5190247319265 +Avg Voltage (V): 4.824367541584243 + +Threads results +------------------------------------------------------------ +Thread : 0 - ThreadProcess id: 5583 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 22:48:07 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 22:58:07 +0100 - Duration: 600027 seconds +Real workload: 4.972520000977431E10 - Integer reached: 184960 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 5584 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 22:48:08 +0100 +Core id: 2 +Ending time: Sun, 19 Dec 2021 22:58:08 +0100 - Duration: 600007 seconds +Real workload: 4.951289237145241E10 - Integer reached: 184581 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 5585 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 22:48:08 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 22:58:08 +0100 - Duration: 600008 seconds +Real workload: 4.8581435910545325E11 - Integer reached: 552702 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 5586 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 22:48:07 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 22:58:07 +0100 - Duration: 600003 seconds +Real workload: 5.826093613217236E11 - Integer reached: 603195 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +Expermiment results +------------------------------------------------------------ +Energy Consumed (mAh): 71.49423895337264 +Workload: 1.16766e+12 +Energy efficiency: 6.12286e-11 +-------------------------------------------------------------------------------- + + +--- Writing to the total result file +--- Removing previous tested configuration tmp_output folder +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_00_31_22/app_output_folder/all_workloads.txt' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_00_31_22/app_output_folder/Thread_0_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_00_31_22/app_output_folder/Thread_0_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_00_31_22/app_output_folder/Thread_1_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_00_31_22/app_output_folder/Thread_1_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_00_31_22/app_output_folder/Thread_2_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_00_31_22/app_output_folder/Thread_2_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_00_31_22/app_output_folder/Thread_3_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_00_31_22/app_output_folder/Thread_3_ready_for_sampling' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_00_31_22/app_output_folder' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_00_31_22/configuration_mesurement.csv' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_00_31_22/energy_power_workload_energyByWorkload_ccInfo' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_00_31_22/logcat_output' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_00_31_22/powermeter_summary.txt' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_00_31_22' +--- Moving the current experiment tmp_folder to the output result folder +writing a temporary file for the main script with format energy_power_workload_energyByWorkload_ccInfo +--- Obtaining experiment summary result to add to result folder +--- Experiment result, Energy consumed = 71.49423895337264 +--- Experiment result, Avg Power = 2067.3332738680415 +--- Experiment result, Total Workload = 1.16766e+12 +--- Experiment result, Energy Efficiency = 6.12286e-11 +--- Adding result to summary file +--- Starting cc information : 0 +--- Ending cc information : 0 +--- The file /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/summary.csv exists we just appending the result to the file +--- Experiments performed on configuration 202000-2-2. +--- Observing a pause betwenn experiment; pause duration : 180 seconds; starting at 05Oct22_00_44_07 +--- Performing experiments on configuration 202000-2-2 +--- Cleaning the tmp expermiment folder : /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- Second step : verifying the battery level +--- Verifying the battery level +--- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe +--- Current battery level : 50 +Current battery level: OKAY +--- Third step calibrating phone core frequency +--- Resetting all frequency configurations + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu5/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor +--- Frequency level of core 0 is 2 +--- Exact frequency of core 0: 1363200 +--- Modifying the governor of core 0 +--- Modifying the the current frequency of core 0 with frequency 1363200 +--- Frequency level of core 1 is 0 +--- Exact frequency of core 1: 0 +--- Modifying the governor of core 1 +--- Modifying the the current frequency of core 1 with frequency 0 +--- Frequency level of core 2 is 2 +--- Exact frequency of core 2: 1363200 +--- Modifying the governor of core 2 +--- Modifying the the current frequency of core 2 with frequency 1363200 +--- Frequency level of core 3 is 0 +--- Exact frequency of core 3: 0 +--- Modifying the governor of core 3 +--- Modifying the the current frequency of core 3 with frequency 0 +--- Frequency level of core 4 is 0 +--- Exact frequency of core 4: 0 +--- Modifying the governor of core 4 +--- Modifying the the current frequency of core 4 with frequency 0 +--- Frequency level of core 5 is 0 +--- Exact frequency of core 5: 0 +--- Modifying the governor of core 5 +--- Modifying the the current frequency of core 5 with frequency 0 +--- Frequency level of core 6 is 2 +--- Exact frequency of core 6: 1478400 +--- Modifying the governor of core 6 +--- Modifying the the current frequency of core 6 with frequency 1478400 +--- Frequency level of core 7 is 2 +--- Exact frequency of core 7: 1766400 +--- Modifying the governor of core 7 +--- Modifying the the current frequency of core 7 with frequency 1766400 +--- Calibrating Monsoon power meter, please wait for 10 seconds... +powermeter script : --- Inside the monsoon_power_meter, arg function: 1 +powermeter script : calibration duration = 10 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 50000 + returning 50000 samples after experiments +powermeter script : Power meter calibration okay +--- Monsoon power meter Calibrated +--- starting the benchmarking app +## writing the configuration inside the phone file + --- Removing file /sdcard/experiments_automatization +rm '/sdcard/experiments_automatization/current_configuration.txt' +rm '/sdcard/experiments_automatization/experiment_duration.txt' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ended' +rmdir '/sdcard/experiments_automatization/app_output_folder' +rmdir '/sdcard/experiments_automatization' + --- Clearing the logcat + --- Creating file /sdcard/experiments_automatization +----- Uninstalling experiment app +Success +----- Installing experiment app +Performing Streamed Install +Success +------ Giving rights to experiment app +----- Starting experiment app +Starting: Intent { cmp=com.opportunistask.scheduling.benchmarking_app_to_test_big_cores/.MainActivity } +adb command : ps -A | grep com.opportunistask.scheduling.benchmarking_app_to_test_big_cores + ----- Experiment app started with pid: 6951 +---- waiting for benchmarking app thread to be pinned and to be ready +--- frequency level of core 0 is 2 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 2 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of cores to occupy = 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 4 +--- Now threads are running and the phone is ready to be sampled with the power meter \n--- Threads pids +Thread_0_ready_for_sampling +Thread_1_ready_for_sampling +Thread_2_ready_for_sampling +Thread_3_ready_for_sampling +--- Printing cc_info beginning datas (for the samsung galaxy s8) + --- Starting power meter sampling for about 600 seconds +--- Sampling with the Monsoon power meter +powermeter script : --- Inside the monsoon_power_meter, arg function: 2 +powermeter script : Experiment duration = 600 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 3000000 + returning 3000000 samples after experiments +powermeter script : Total nomber of sample measured : 3000000 +powermeter script : Computing powermeter summary result + Number of samples = 3000000 +powermeter script : We computed the energy on 600 samples +powermeter script : average_power = 2039.7950003512576 +powermeter script : average_power with numpy arrays = 2039.7950003510568 +powermeter script : Summary Result = time (s): 603.0837337970734 +Ins Current (mA):423.3262459712137 +Samples: 3000000 +Consumed Energy (mAs): 254172.93809129283 +Consumed Energy (mAh): 70.60359391424801 +Consumed Energy (mWs): 1226958.4314966758 +Consumed Energy (mWh): 340.8217865268544 +Avg power (mW): 2039.7950003512576 +Avg Current (mA): 422.3986335585769 +Avg Voltage (V): 4.829075755209292 +Exp Batt Life (hrs for 1000mAh battery): NOT COMPUTED +--- Monsoon power meter sampling is finished ! + --- experiment folder path /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- frequency level of core 0 is 2 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 2 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of threads normally started = 4 +--- Number of thread ended: 4 +--- Now threads are stopped, getting the cc_info_level for samsung +--- Copying thread results locally +command /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe pull /sdcard/experiments_automatization/app_output_folder C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder </dev/null +/sdcard/experiments_automatization/app_output_folder/: 8 files pulled, 0 skipped. 0.0 MB/s (1808 bytes in 0.074s) +saving the logcat file to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder -/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder- +--- Parsing result from /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/raw_result.txt +--- Getting exact configuration with frequency +--- Configuration with frequencies = [1363200- 0- 1363200- 0- 0- 0- 1478400- 1766400] +--- Getting the powermeter summary +--- Powermeter summary: +time (s): 603.0837337970734 +Ins Current (mA):423.3262459712137 +Samples: 3000000 +Consumed Energy (mAs): 254172.93809129283 +Consumed Energy (mAh): 70.60359391424801 +Consumed Energy (mWs): 1226958.4314966758 +Consumed Energy (mWh): 340.8217865268544 +Avg power (mW): 2039.7950003512576 +Avg Current (mA): 422.3986335585769 +Avg Voltage (V): 4.829075755209292 + +--- Getting the total energy consumed of the google pixel +--- Energy consumed = 70.60359391424801 +--- Starting cc_info = 0 +--- Ending cc_info = 0 +--- Getting the average power +--- Avg Power = 2039.7950003512576 +--- Printing the total threads summary +--- Thread results +Thread : 0 - ThreadProcess id: 6976 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 23:03:54 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 23:13:54 +0100 - Duration: 600013 seconds +Real workload: 4.953024018354219E10 - Integer reached: 184612 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 6977 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 23:03:54 +0100 +Core id: 2 +Ending time: Sun, 19 Dec 2021 23:13:55 +0100 - Duration: 600017 seconds +Real workload: 5.015066640832397E10 - Integer reached: 185717 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 6978 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 23:03:54 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 23:13:55 +0100 - Duration: 600006 seconds +Real workload: 4.795866633957117E11 - Integer reached: 549282 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 6979 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 23:03:54 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 23:13:55 +0100 - Duration: 600002 seconds +Real workload: 5.826896498578711E11 - Integer reached: 603235 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +--- Counting the total workload command : print_total_workload /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder app_output_folder 2,0,2,0,0,0,2,2 /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first +--- Total workload : 1.16196e+12 +--- Getting energy efficiency +--- Energy efficiency: 6.07625e-11 +--- Building what we will add to the total result file command +------ + (build_configuration_raw_result 202000-2-2 2,0,2,0,0,0,2,2 [1363200- 0- 1363200- 0- 0- 0- 1478400- 1766400] time (s): 603.0837337970734 +Ins Current (mA):423.3262459712137 +Samples: 3000000 +Consumed Energy (mAs): 254172.93809129283 +Consumed Energy (mAh): 70.60359391424801 +Consumed Energy (mWs): 1226958.4314966758 +Consumed Energy (mWh): 340.8217865268544 +Avg power (mW): 2039.7950003512576 +Avg Current (mA): 422.3986335585769 +Avg Voltage (V): 4.829075755209292 + Thread : 0 - ThreadProcess id: 6976 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 23:03:54 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 23:13:54 +0100 - Duration: 600013 seconds +Real workload: 4.953024018354219E10 - Integer reached: 184612 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 6977 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 23:03:54 +0100 +Core id: 2 +Ending time: Sun, 19 Dec 2021 23:13:55 +0100 - Duration: 600017 seconds +Real workload: 5.015066640832397E10 - Integer reached: 185717 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 6978 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 23:03:54 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 23:13:55 +0100 - Duration: 600006 seconds +Real workload: 4.795866633957117E11 - Integer reached: 549282 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 6979 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 23:03:54 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 23:13:55 +0100 - Duration: 600002 seconds +Real workload: 5.826896498578711E11 - Integer reached: 603235 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + 70.60359391424801 1.16196e+12 6.07625e-11 0 0 +------ + +--- Final result to print to File + -------------------------------------------------------------------------------- + +++++ +++++ +++++ Configuration Description +-------------------------------------------------------------------------------- +Configuration: 202000-2-2 +phone format: 2,0,2,0,0,0,2,2 +Exact values of frequencies: [1363200- 0- 1363200- 0- 0- 0- 1478400- 1766400] + +Power meter results +------------------------------------------------------------ +time (s): 603.0837337970734 +Ins Current (mA):423.3262459712137 +Samples: 3000000 +Consumed Energy (mAs): 254172.93809129283 +Consumed Energy (mAh): 70.60359391424801 +Consumed Energy (mWs): 1226958.4314966758 +Consumed Energy (mWh): 340.8217865268544 +Avg power (mW): 2039.7950003512576 +Avg Current (mA): 422.3986335585769 +Avg Voltage (V): 4.829075755209292 + +Threads results +------------------------------------------------------------ +Thread : 0 - ThreadProcess id: 6976 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 23:03:54 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 23:13:54 +0100 - Duration: 600013 seconds +Real workload: 4.953024018354219E10 - Integer reached: 184612 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 6977 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 23:03:54 +0100 +Core id: 2 +Ending time: Sun, 19 Dec 2021 23:13:55 +0100 - Duration: 600017 seconds +Real workload: 5.015066640832397E10 - Integer reached: 185717 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 6978 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 23:03:54 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 23:13:55 +0100 - Duration: 600006 seconds +Real workload: 4.795866633957117E11 - Integer reached: 549282 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 6979 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 23:03:54 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 23:13:55 +0100 - Duration: 600002 seconds +Real workload: 5.826896498578711E11 - Integer reached: 603235 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +Expermiment results +------------------------------------------------------------ +Energy Consumed (mAh): 70.60359391424801 +Workload: 1.16196e+12 +Energy efficiency: 6.07625e-11 +-------------------------------------------------------------------------------- + + +--- Writing to the total result file +--- Removing previous tested configuration tmp_output folder +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_00_47_09/app_output_folder/all_workloads.txt' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_00_47_09/app_output_folder/Thread_0_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_00_47_09/app_output_folder/Thread_0_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_00_47_09/app_output_folder/Thread_1_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_00_47_09/app_output_folder/Thread_1_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_00_47_09/app_output_folder/Thread_2_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_00_47_09/app_output_folder/Thread_2_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_00_47_09/app_output_folder/Thread_3_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_00_47_09/app_output_folder/Thread_3_ready_for_sampling' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_00_47_09/app_output_folder' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_00_47_09/configuration_mesurement.csv' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_00_47_09/energy_power_workload_energyByWorkload_ccInfo' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_00_47_09/logcat_output' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_00_47_09/powermeter_summary.txt' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_00_47_09' +--- Moving the current experiment tmp_folder to the output result folder +writing a temporary file for the main script with format energy_power_workload_energyByWorkload_ccInfo +--- Obtaining experiment summary result to add to result folder +--- Experiment result, Energy consumed = 70.60359391424801 +--- Experiment result, Avg Power = 2039.7950003512576 +--- Experiment result, Total Workload = 1.16196e+12 +--- Experiment result, Energy Efficiency = 6.07625e-11 +--- Adding result to summary file +--- Starting cc information : 0 +--- Ending cc information : 0 +--- The file /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/summary.csv exists we just appending the result to the file +--- Experiments performed on configuration 202000-2-2. +--- Observing a pause betwenn experiment; pause duration : 180 seconds; starting at 05Oct22_00_59_55 +--- Performing experiments on configuration 202000-2-2 +--- Cleaning the tmp expermiment folder : /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- Second step : verifying the battery level +--- Verifying the battery level +--- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe +--- Current battery level : 50 +Current battery level: OKAY +--- Third step calibrating phone core frequency +--- Resetting all frequency configurations + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu5/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor +--- Frequency level of core 0 is 2 +--- Exact frequency of core 0: 1363200 +--- Modifying the governor of core 0 +--- Modifying the the current frequency of core 0 with frequency 1363200 +--- Frequency level of core 1 is 0 +--- Exact frequency of core 1: 0 +--- Modifying the governor of core 1 +--- Modifying the the current frequency of core 1 with frequency 0 +--- Frequency level of core 2 is 2 +--- Exact frequency of core 2: 1363200 +--- Modifying the governor of core 2 +--- Modifying the the current frequency of core 2 with frequency 1363200 +--- Frequency level of core 3 is 0 +--- Exact frequency of core 3: 0 +--- Modifying the governor of core 3 +--- Modifying the the current frequency of core 3 with frequency 0 +--- Frequency level of core 4 is 0 +--- Exact frequency of core 4: 0 +--- Modifying the governor of core 4 +--- Modifying the the current frequency of core 4 with frequency 0 +--- Frequency level of core 5 is 0 +--- Exact frequency of core 5: 0 +--- Modifying the governor of core 5 +--- Modifying the the current frequency of core 5 with frequency 0 +--- Frequency level of core 6 is 2 +--- Exact frequency of core 6: 1478400 +--- Modifying the governor of core 6 +--- Modifying the the current frequency of core 6 with frequency 1478400 +--- Frequency level of core 7 is 2 +--- Exact frequency of core 7: 1766400 +--- Modifying the governor of core 7 +--- Modifying the the current frequency of core 7 with frequency 1766400 +--- Calibrating Monsoon power meter, please wait for 10 seconds... +powermeter script : --- Inside the monsoon_power_meter, arg function: 1 +powermeter script : calibration duration = 10 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 50000 + returning 50000 samples after experiments +powermeter script : Power meter calibration okay +--- Monsoon power meter Calibrated +--- starting the benchmarking app +## writing the configuration inside the phone file + --- Removing file /sdcard/experiments_automatization +rm '/sdcard/experiments_automatization/current_configuration.txt' +rm '/sdcard/experiments_automatization/experiment_duration.txt' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ended' +rmdir '/sdcard/experiments_automatization/app_output_folder' +rmdir '/sdcard/experiments_automatization' + --- Clearing the logcat + --- Creating file /sdcard/experiments_automatization +----- Uninstalling experiment app +Success +----- Installing experiment app +Performing Streamed Install +Success +------ Giving rights to experiment app +----- Starting experiment app +Starting: Intent { cmp=com.opportunistask.scheduling.benchmarking_app_to_test_big_cores/.MainActivity } +adb command : ps -A | grep com.opportunistask.scheduling.benchmarking_app_to_test_big_cores + ----- Experiment app started with pid: 7993 +---- waiting for benchmarking app thread to be pinned and to be ready +--- frequency level of core 0 is 2 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 2 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of cores to occupy = 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 4 +--- Now threads are running and the phone is ready to be sampled with the power meter \n--- Threads pids +Thread_0_ready_for_sampling +Thread_1_ready_for_sampling +Thread_2_ready_for_sampling +Thread_3_ready_for_sampling +--- Printing cc_info beginning datas (for the samsung galaxy s8) + --- Starting power meter sampling for about 600 seconds +--- Sampling with the Monsoon power meter +powermeter script : --- Inside the monsoon_power_meter, arg function: 2 +powermeter script : Experiment duration = 600 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 3000000 + returning 3000000 samples after experiments +powermeter script : Total nomber of sample measured : 3000000 +powermeter script : Computing powermeter summary result + Number of samples = 3000000 +powermeter script : We computed the energy on 600 samples +powermeter script : average_power = 2041.9087895449654 +powermeter script : average_power with numpy arrays = 2041.9087895444743 +powermeter script : Summary Result = time (s): 601.6885340213776 +Ins Current (mA):436.16118893507104 +Samples: 3000000 +Consumed Energy (mAs): 253897.7519280232 +Consumed Energy (mAh): 70.52715331333978 +Consumed Energy (mWs): 1225692.1348101953 +Consumed Energy (mWh): 340.47003744727647 +Avg power (mW): 2041.9087895449654 +Avg Current (mA): 422.8657089024387 +Avg Voltage (V): 4.82874053525126 +Exp Batt Life (hrs for 1000mAh battery): NOT COMPUTED +--- Monsoon power meter sampling is finished ! + --- experiment folder path /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- frequency level of core 0 is 2 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 2 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of threads normally started = 4 +--- Number of thread ended: 4 +--- Now threads are stopped, getting the cc_info_level for samsung +--- Copying thread results locally +command /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe pull /sdcard/experiments_automatization/app_output_folder C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder </dev/null +/sdcard/experiments_automatization/app_output_folder/: 8 files pulled, 0 skipped. 0.0 MB/s (1809 bytes in 0.067s) +saving the logcat file to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder -/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder- +--- Parsing result from /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/raw_result.txt +--- Getting exact configuration with frequency +--- Configuration with frequencies = [1363200- 0- 1363200- 0- 0- 0- 1478400- 1766400] +--- Getting the powermeter summary +--- Powermeter summary: +time (s): 601.6885340213776 +Ins Current (mA):436.16118893507104 +Samples: 3000000 +Consumed Energy (mAs): 253897.7519280232 +Consumed Energy (mAh): 70.52715331333978 +Consumed Energy (mWs): 1225692.1348101953 +Consumed Energy (mWh): 340.47003744727647 +Avg power (mW): 2041.9087895449654 +Avg Current (mA): 422.8657089024387 +Avg Voltage (V): 4.82874053525126 + +--- Getting the total energy consumed of the google pixel +--- Energy consumed = 70.52715331333978 +--- Starting cc_info = 0 +--- Ending cc_info = 0 +--- Getting the average power +--- Avg Power = 2041.9087895449654 +--- Printing the total threads summary +--- Thread results +Thread : 0 - ThreadProcess id: 8018 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 23:19:43 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 23:29:43 +0100 - Duration: 600018 seconds +Real workload: 4.9465341887985886E10 - Integer reached: 184496 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 8019 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 23:19:43 +0100 +Core id: 2 +Ending time: Sun, 19 Dec 2021 23:29:43 +0100 - Duration: 600022 seconds +Real workload: 5.011237060111908E10 - Integer reached: 185649 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 8020 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 23:19:43 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 23:29:43 +0100 - Duration: 600003 seconds +Real workload: 4.842663050624365E11 - Integer reached: 551854 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 8021 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 23:19:43 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 23:29:43 +0100 - Duration: 600005 seconds +Real workload: 5.828181231788213E11 - Integer reached: 603299 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +--- Counting the total workload command : print_total_workload /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder app_output_folder 2,0,2,0,0,0,2,2 /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first +--- Total workload : 1.16666e+12 +--- Getting energy efficiency +--- Energy efficiency: 6.04522e-11 +--- Building what we will add to the total result file command +------ + (build_configuration_raw_result 202000-2-2 2,0,2,0,0,0,2,2 [1363200- 0- 1363200- 0- 0- 0- 1478400- 1766400] time (s): 601.6885340213776 +Ins Current (mA):436.16118893507104 +Samples: 3000000 +Consumed Energy (mAs): 253897.7519280232 +Consumed Energy (mAh): 70.52715331333978 +Consumed Energy (mWs): 1225692.1348101953 +Consumed Energy (mWh): 340.47003744727647 +Avg power (mW): 2041.9087895449654 +Avg Current (mA): 422.8657089024387 +Avg Voltage (V): 4.82874053525126 + Thread : 0 - ThreadProcess id: 8018 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 23:19:43 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 23:29:43 +0100 - Duration: 600018 seconds +Real workload: 4.9465341887985886E10 - Integer reached: 184496 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 8019 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 23:19:43 +0100 +Core id: 2 +Ending time: Sun, 19 Dec 2021 23:29:43 +0100 - Duration: 600022 seconds +Real workload: 5.011237060111908E10 - Integer reached: 185649 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 8020 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 23:19:43 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 23:29:43 +0100 - Duration: 600003 seconds +Real workload: 4.842663050624365E11 - Integer reached: 551854 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 8021 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 23:19:43 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 23:29:43 +0100 - Duration: 600005 seconds +Real workload: 5.828181231788213E11 - Integer reached: 603299 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + 70.52715331333978 1.16666e+12 6.04522e-11 0 0 +------ + +--- Final result to print to File + -------------------------------------------------------------------------------- + +++++ +++++ +++++ Configuration Description +-------------------------------------------------------------------------------- +Configuration: 202000-2-2 +phone format: 2,0,2,0,0,0,2,2 +Exact values of frequencies: [1363200- 0- 1363200- 0- 0- 0- 1478400- 1766400] + +Power meter results +------------------------------------------------------------ +time (s): 601.6885340213776 +Ins Current (mA):436.16118893507104 +Samples: 3000000 +Consumed Energy (mAs): 253897.7519280232 +Consumed Energy (mAh): 70.52715331333978 +Consumed Energy (mWs): 1225692.1348101953 +Consumed Energy (mWh): 340.47003744727647 +Avg power (mW): 2041.9087895449654 +Avg Current (mA): 422.8657089024387 +Avg Voltage (V): 4.82874053525126 + +Threads results +------------------------------------------------------------ +Thread : 0 - ThreadProcess id: 8018 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 23:19:43 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 23:29:43 +0100 - Duration: 600018 seconds +Real workload: 4.9465341887985886E10 - Integer reached: 184496 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 8019 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 23:19:43 +0100 +Core id: 2 +Ending time: Sun, 19 Dec 2021 23:29:43 +0100 - Duration: 600022 seconds +Real workload: 5.011237060111908E10 - Integer reached: 185649 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 8020 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 23:19:43 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 23:29:43 +0100 - Duration: 600003 seconds +Real workload: 4.842663050624365E11 - Integer reached: 551854 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 8021 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 23:19:43 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 23:29:43 +0100 - Duration: 600005 seconds +Real workload: 5.828181231788213E11 - Integer reached: 603299 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +Expermiment results +------------------------------------------------------------ +Energy Consumed (mAh): 70.52715331333978 +Workload: 1.16666e+12 +Energy efficiency: 6.04522e-11 +-------------------------------------------------------------------------------- + + +--- Writing to the total result file +--- Removing previous tested configuration tmp_output folder +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_01_02_58/app_output_folder/all_workloads.txt' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_01_02_58/app_output_folder/Thread_0_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_01_02_58/app_output_folder/Thread_0_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_01_02_58/app_output_folder/Thread_1_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_01_02_58/app_output_folder/Thread_1_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_01_02_58/app_output_folder/Thread_2_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_01_02_58/app_output_folder/Thread_2_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_01_02_58/app_output_folder/Thread_3_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_01_02_58/app_output_folder/Thread_3_ready_for_sampling' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_01_02_58/app_output_folder' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_01_02_58/configuration_mesurement.csv' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_01_02_58/energy_power_workload_energyByWorkload_ccInfo' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_01_02_58/logcat_output' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_01_02_58/powermeter_summary.txt' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_01_02_58' +--- Moving the current experiment tmp_folder to the output result folder +writing a temporary file for the main script with format energy_power_workload_energyByWorkload_ccInfo +--- Obtaining experiment summary result to add to result folder +--- Experiment result, Energy consumed = 70.52715331333978 +--- Experiment result, Avg Power = 2041.9087895449654 +--- Experiment result, Total Workload = 1.16666e+12 +--- Experiment result, Energy Efficiency = 6.04522e-11 +--- Adding result to summary file +--- Starting cc information : 0 +--- Ending cc information : 0 +--- The file /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/summary.csv exists we just appending the result to the file +--- Experiments performed on configuration 202000-2-2. +--- Observing a pause betwenn experiment; pause duration : 180 seconds; starting at 05Oct22_01_15_43 +--- Performing experiments on configuration 220000-2-2 +--- Cleaning the tmp expermiment folder : /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- Second step : verifying the battery level +--- Verifying the battery level +--- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe +--- Current battery level : 50 +Current battery level: OKAY +--- Third step calibrating phone core frequency +--- Resetting all frequency configurations + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu5/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor +--- Frequency level of core 0 is 2 +--- Exact frequency of core 0: 1363200 +--- Modifying the governor of core 0 +--- Modifying the the current frequency of core 0 with frequency 1363200 +--- Frequency level of core 1 is 2 +--- Exact frequency of core 1: 1363200 +--- Modifying the governor of core 1 +--- Modifying the the current frequency of core 1 with frequency 1363200 +--- Frequency level of core 2 is 0 +--- Exact frequency of core 2: 0 +--- Modifying the governor of core 2 +--- Modifying the the current frequency of core 2 with frequency 0 +--- Frequency level of core 3 is 0 +--- Exact frequency of core 3: 0 +--- Modifying the governor of core 3 +--- Modifying the the current frequency of core 3 with frequency 0 +--- Frequency level of core 4 is 0 +--- Exact frequency of core 4: 0 +--- Modifying the governor of core 4 +--- Modifying the the current frequency of core 4 with frequency 0 +--- Frequency level of core 5 is 0 +--- Exact frequency of core 5: 0 +--- Modifying the governor of core 5 +--- Modifying the the current frequency of core 5 with frequency 0 +--- Frequency level of core 6 is 2 +--- Exact frequency of core 6: 1478400 +--- Modifying the governor of core 6 +--- Modifying the the current frequency of core 6 with frequency 1478400 +--- Frequency level of core 7 is 2 +--- Exact frequency of core 7: 1766400 +--- Modifying the governor of core 7 +--- Modifying the the current frequency of core 7 with frequency 1766400 +--- Calibrating Monsoon power meter, please wait for 10 seconds... +powermeter script : --- Inside the monsoon_power_meter, arg function: 1 +powermeter script : calibration duration = 10 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 50000 + returning 50000 samples after experiments +powermeter script : Power meter calibration okay +--- Monsoon power meter Calibrated +--- starting the benchmarking app +## writing the configuration inside the phone file + --- Removing file /sdcard/experiments_automatization +rm '/sdcard/experiments_automatization/current_configuration.txt' +rm '/sdcard/experiments_automatization/experiment_duration.txt' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ended' +rmdir '/sdcard/experiments_automatization/app_output_folder' +rmdir '/sdcard/experiments_automatization' + --- Clearing the logcat + --- Creating file /sdcard/experiments_automatization +----- Uninstalling experiment app +Success +----- Installing experiment app +Performing Streamed Install +Success +------ Giving rights to experiment app +----- Starting experiment app +Starting: Intent { cmp=com.opportunistask.scheduling.benchmarking_app_to_test_big_cores/.MainActivity } +adb command : ps -A | grep com.opportunistask.scheduling.benchmarking_app_to_test_big_cores + ----- Experiment app started with pid: 9034 +---- waiting for benchmarking app thread to be pinned and to be ready +--- frequency level of core 0 is 2 +--- frequency level of core 1 is 2 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of cores to occupy = 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 4 +--- Now threads are running and the phone is ready to be sampled with the power meter \n--- Threads pids +Thread_0_ready_for_sampling +Thread_1_ready_for_sampling +Thread_2_ready_for_sampling +Thread_3_ready_for_sampling +--- Printing cc_info beginning datas (for the samsung galaxy s8) + --- Starting power meter sampling for about 600 seconds +--- Sampling with the Monsoon power meter +powermeter script : --- Inside the monsoon_power_meter, arg function: 2 +powermeter script : Experiment duration = 600 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 3000000 + returning 3000000 samples after experiments +powermeter script : Total nomber of sample measured : 3000000 +powermeter script : Computing powermeter summary result + Number of samples = 3000000 +powermeter script : We computed the energy on 600 samples +powermeter script : average_power = 2055.878949962645 +powermeter script : average_power with numpy arrays = 2055.8789499621626 +powermeter script : Summary Result = time (s): 600.6612162590027 +Ins Current (mA):427.7223849667252 +Samples: 3000000 +Consumed Energy (mAs): 256250.16807364704 +Consumed Energy (mAh): 71.18060224267974 +Consumed Energy (mWs): 1236071.2825855245 +Consumed Energy (mWh): 343.3531340515346 +Avg power (mW): 2055.878949962645 +Avg Current (mA): 425.95753686753744 +Avg Voltage (V): 4.826488022917585 +Exp Batt Life (hrs for 1000mAh battery): NOT COMPUTED +--- Monsoon power meter sampling is finished ! + --- experiment folder path /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- frequency level of core 0 is 2 +--- frequency level of core 1 is 2 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of threads normally started = 4 +--- Number of thread ended: 4 +--- Now threads are stopped, getting the cc_info_level for samsung +--- Copying thread results locally +command /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe pull /sdcard/experiments_automatization/app_output_folder C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder </dev/null +/sdcard/experiments_automatization/app_output_folder/: 8 files pulled, 0 skipped. 0.0 MB/s (1808 bytes in 0.061s) +saving the logcat file to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder -/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder- +--- Parsing result from /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/raw_result.txt +--- Getting exact configuration with frequency +--- Configuration with frequencies = [1363200- 1363200- 0- 0- 0- 0- 1478400- 1766400] +--- Getting the powermeter summary +--- Powermeter summary: +time (s): 600.6612162590027 +Ins Current (mA):427.7223849667252 +Samples: 3000000 +Consumed Energy (mAs): 256250.16807364704 +Consumed Energy (mAh): 71.18060224267974 +Consumed Energy (mWs): 1236071.2825855245 +Consumed Energy (mWh): 343.3531340515346 +Avg power (mW): 2055.878949962645 +Avg Current (mA): 425.95753686753744 +Avg Voltage (V): 4.826488022917585 + +--- Getting the total energy consumed of the google pixel +--- Energy consumed = 71.18060224267974 +--- Starting cc_info = 0 +--- Ending cc_info = 0 +--- Getting the average power +--- Avg Power = 2055.878949962645 +--- Printing the total threads summary +--- Thread results +Thread : 0 - ThreadProcess id: 9061 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 23:35:30 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 23:45:30 +0100 - Duration: 600028 seconds +Real workload: 4.940719474880446E10 - Integer reached: 184392 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 9062 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 23:35:30 +0100 +Core id: 1 +Ending time: Sun, 19 Dec 2021 23:45:30 +0100 - Duration: 600003 seconds +Real workload: 4.905293158115883E10 - Integer reached: 183757 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 9067 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 23:35:30 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 23:45:30 +0100 - Duration: 600008 seconds +Real workload: 4.841203942556106E11 - Integer reached: 551774 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 9069 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 23:35:30 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 23:45:30 +0100 - Duration: 600004 seconds +Real workload: 5.823203705764818E11 - Integer reached: 603051 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +--- Counting the total workload command : print_total_workload /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder app_output_folder 2,2,0,0,0,0,2,2 /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first +--- Total workload : 1.1649e+12 +--- Getting energy efficiency +--- Energy efficiency: 6.11045e-11 +--- Building what we will add to the total result file command +------ + (build_configuration_raw_result 220000-2-2 2,2,0,0,0,0,2,2 [1363200- 1363200- 0- 0- 0- 0- 1478400- 1766400] time (s): 600.6612162590027 +Ins Current (mA):427.7223849667252 +Samples: 3000000 +Consumed Energy (mAs): 256250.16807364704 +Consumed Energy (mAh): 71.18060224267974 +Consumed Energy (mWs): 1236071.2825855245 +Consumed Energy (mWh): 343.3531340515346 +Avg power (mW): 2055.878949962645 +Avg Current (mA): 425.95753686753744 +Avg Voltage (V): 4.826488022917585 + Thread : 0 - ThreadProcess id: 9061 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 23:35:30 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 23:45:30 +0100 - Duration: 600028 seconds +Real workload: 4.940719474880446E10 - Integer reached: 184392 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 9062 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 23:35:30 +0100 +Core id: 1 +Ending time: Sun, 19 Dec 2021 23:45:30 +0100 - Duration: 600003 seconds +Real workload: 4.905293158115883E10 - Integer reached: 183757 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 9067 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 23:35:30 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 23:45:30 +0100 - Duration: 600008 seconds +Real workload: 4.841203942556106E11 - Integer reached: 551774 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 9069 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 23:35:30 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 23:45:30 +0100 - Duration: 600004 seconds +Real workload: 5.823203705764818E11 - Integer reached: 603051 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + 71.18060224267974 1.1649e+12 6.11045e-11 0 0 +------ + +--- Final result to print to File + -------------------------------------------------------------------------------- + +++++ +++++ +++++ Configuration Description +-------------------------------------------------------------------------------- +Configuration: 220000-2-2 +phone format: 2,2,0,0,0,0,2,2 +Exact values of frequencies: [1363200- 1363200- 0- 0- 0- 0- 1478400- 1766400] + +Power meter results +------------------------------------------------------------ +time (s): 600.6612162590027 +Ins Current (mA):427.7223849667252 +Samples: 3000000 +Consumed Energy (mAs): 256250.16807364704 +Consumed Energy (mAh): 71.18060224267974 +Consumed Energy (mWs): 1236071.2825855245 +Consumed Energy (mWh): 343.3531340515346 +Avg power (mW): 2055.878949962645 +Avg Current (mA): 425.95753686753744 +Avg Voltage (V): 4.826488022917585 + +Threads results +------------------------------------------------------------ +Thread : 0 - ThreadProcess id: 9061 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 23:35:30 +0100 +Core id: 0 +Ending time: Sun, 19 Dec 2021 23:45:30 +0100 - Duration: 600028 seconds +Real workload: 4.940719474880446E10 - Integer reached: 184392 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 9062 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 23:35:30 +0100 +Core id: 1 +Ending time: Sun, 19 Dec 2021 23:45:30 +0100 - Duration: 600003 seconds +Real workload: 4.905293158115883E10 - Integer reached: 183757 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 9067 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 23:35:30 +0100 +Core id: 6 +Ending time: Sun, 19 Dec 2021 23:45:30 +0100 - Duration: 600008 seconds +Real workload: 4.841203942556106E11 - Integer reached: 551774 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 9069 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 23:35:30 +0100 +Core id: 7 +Ending time: Sun, 19 Dec 2021 23:45:30 +0100 - Duration: 600004 seconds +Real workload: 5.823203705764818E11 - Integer reached: 603051 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +Expermiment results +------------------------------------------------------------ +Energy Consumed (mAh): 71.18060224267974 +Workload: 1.1649e+12 +Energy efficiency: 6.11045e-11 +-------------------------------------------------------------------------------- + + +--- Writing to the total result file +--- Removing previous tested configuration tmp_output folder +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_01_18_45/app_output_folder/all_workloads.txt' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_01_18_45/app_output_folder/Thread_0_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_01_18_45/app_output_folder/Thread_0_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_01_18_45/app_output_folder/Thread_1_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_01_18_45/app_output_folder/Thread_1_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_01_18_45/app_output_folder/Thread_2_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_01_18_45/app_output_folder/Thread_2_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_01_18_45/app_output_folder/Thread_3_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_01_18_45/app_output_folder/Thread_3_ready_for_sampling' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_01_18_45/app_output_folder' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_01_18_45/configuration_mesurement.csv' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_01_18_45/energy_power_workload_energyByWorkload_ccInfo' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_01_18_45/logcat_output' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_01_18_45/powermeter_summary.txt' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_01_18_45' +--- Moving the current experiment tmp_folder to the output result folder +writing a temporary file for the main script with format energy_power_workload_energyByWorkload_ccInfo +--- Obtaining experiment summary result to add to result folder +--- Experiment result, Energy consumed = 71.18060224267974 +--- Experiment result, Avg Power = 2055.878949962645 +--- Experiment result, Total Workload = 1.1649e+12 +--- Experiment result, Energy Efficiency = 6.11045e-11 +--- Adding result to summary file +--- Starting cc information : 0 +--- Ending cc information : 0 +--- The file /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/summary.csv exists we just appending the result to the file +--- Experiments performed on configuration 220000-2-2. +--- Observing a pause betwenn experiment; pause duration : 180 seconds; starting at 05Oct22_01_31_29 +--- Performing experiments on configuration 220000-2-2 +--- Cleaning the tmp expermiment folder : /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- Second step : verifying the battery level +--- Verifying the battery level +--- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe +--- Current battery level : 50 +Current battery level: OKAY +--- Third step calibrating phone core frequency +--- Resetting all frequency configurations + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu5/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor +--- Frequency level of core 0 is 2 +--- Exact frequency of core 0: 1363200 +--- Modifying the governor of core 0 +--- Modifying the the current frequency of core 0 with frequency 1363200 +--- Frequency level of core 1 is 2 +--- Exact frequency of core 1: 1363200 +--- Modifying the governor of core 1 +--- Modifying the the current frequency of core 1 with frequency 1363200 +--- Frequency level of core 2 is 0 +--- Exact frequency of core 2: 0 +--- Modifying the governor of core 2 +--- Modifying the the current frequency of core 2 with frequency 0 +--- Frequency level of core 3 is 0 +--- Exact frequency of core 3: 0 +--- Modifying the governor of core 3 +--- Modifying the the current frequency of core 3 with frequency 0 +--- Frequency level of core 4 is 0 +--- Exact frequency of core 4: 0 +--- Modifying the governor of core 4 +--- Modifying the the current frequency of core 4 with frequency 0 +--- Frequency level of core 5 is 0 +--- Exact frequency of core 5: 0 +--- Modifying the governor of core 5 +--- Modifying the the current frequency of core 5 with frequency 0 +--- Frequency level of core 6 is 2 +--- Exact frequency of core 6: 1478400 +--- Modifying the governor of core 6 +--- Modifying the the current frequency of core 6 with frequency 1478400 +--- Frequency level of core 7 is 2 +--- Exact frequency of core 7: 1766400 +--- Modifying the governor of core 7 +--- Modifying the the current frequency of core 7 with frequency 1766400 +--- Calibrating Monsoon power meter, please wait for 10 seconds... +powermeter script : --- Inside the monsoon_power_meter, arg function: 1 +powermeter script : calibration duration = 10 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 50000 + returning 50000 samples after experiments +powermeter script : Power meter calibration okay +--- Monsoon power meter Calibrated +--- starting the benchmarking app +## writing the configuration inside the phone file + --- Removing file /sdcard/experiments_automatization +rm '/sdcard/experiments_automatization/current_configuration.txt' +rm '/sdcard/experiments_automatization/experiment_duration.txt' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ended' +rmdir '/sdcard/experiments_automatization/app_output_folder' +rmdir '/sdcard/experiments_automatization' + --- Clearing the logcat + --- Creating file /sdcard/experiments_automatization +----- Uninstalling experiment app +Success +----- Installing experiment app +Performing Streamed Install +Success +------ Giving rights to experiment app +----- Starting experiment app +Starting: Intent { cmp=com.opportunistask.scheduling.benchmarking_app_to_test_big_cores/.MainActivity } +adb command : ps -A | grep com.opportunistask.scheduling.benchmarking_app_to_test_big_cores + ----- Experiment app started with pid: 10439 +---- waiting for benchmarking app thread to be pinned and to be ready +--- frequency level of core 0 is 2 +--- frequency level of core 1 is 2 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of cores to occupy = 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 4 +--- Now threads are running and the phone is ready to be sampled with the power meter \n--- Threads pids +Thread_0_ready_for_sampling +Thread_1_ready_for_sampling +Thread_2_ready_for_sampling +Thread_3_ready_for_sampling +--- Printing cc_info beginning datas (for the samsung galaxy s8) + --- Starting power meter sampling for about 600 seconds +--- Sampling with the Monsoon power meter +powermeter script : --- Inside the monsoon_power_meter, arg function: 2 +powermeter script : Experiment duration = 600 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 3000000 + returning 3000000 samples after experiments +powermeter script : Total nomber of sample measured : 3000000 +powermeter script : Computing powermeter summary result + Number of samples = 3000000 +powermeter script : We computed the energy on 600 samples +powermeter script : average_power = 2043.2558518515564 +powermeter script : average_power with numpy arrays = 2043.255851850835 +powermeter script : Summary Result = time (s): 601.6065046787262 +Ins Current (mA):431.9875538115737 +Samples: 3000000 +Consumed Energy (mAs): 253166.12322527068 +Consumed Energy (mAh): 70.32392311813075 +Consumed Energy (mWs): 1222289.9427083468 +Consumed Energy (mWh): 339.52498408565185 +Avg power (mW): 2043.2558518515564 +Avg Current (mA): 423.1624007519175 +Avg Voltage (V): 4.828538282751241 +Exp Batt Life (hrs for 1000mAh battery): NOT COMPUTED +--- Monsoon power meter sampling is finished ! + --- experiment folder path /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- frequency level of core 0 is 2 +--- frequency level of core 1 is 2 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of threads normally started = 4 +--- Number of thread ended: 4 +--- Now threads are stopped, getting the cc_info_level for samsung +--- Copying thread results locally +command /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe pull /sdcard/experiments_automatization/app_output_folder C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder </dev/null +/sdcard/experiments_automatization/app_output_folder/: 8 files pulled, 0 skipped. 0.0 MB/s (1817 bytes in 0.063s) +saving the logcat file to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder -/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder- +--- Parsing result from /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/raw_result.txt +--- Getting exact configuration with frequency +--- Configuration with frequencies = [1363200- 1363200- 0- 0- 0- 0- 1478400- 1766400] +--- Getting the powermeter summary +--- Powermeter summary: +time (s): 601.6065046787262 +Ins Current (mA):431.9875538115737 +Samples: 3000000 +Consumed Energy (mAs): 253166.12322527068 +Consumed Energy (mAh): 70.32392311813075 +Consumed Energy (mWs): 1222289.9427083468 +Consumed Energy (mWh): 339.52498408565185 +Avg power (mW): 2043.2558518515564 +Avg Current (mA): 423.1624007519175 +Avg Voltage (V): 4.828538282751241 + +--- Getting the total energy consumed of the google pixel +--- Energy consumed = 70.32392311813075 +--- Starting cc_info = 0 +--- Ending cc_info = 0 +--- Getting the average power +--- Avg Power = 2043.2558518515564 +--- Printing the total threads summary +--- Thread results +Thread : 0 - ThreadProcess id: 10464 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 23:51:17 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 00:01:17 +0100 - Duration: 600020 seconds +Real workload: 4.9416138152951126E10 - Integer reached: 184408 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 10465 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 23:51:17 +0100 +Core id: 1 +Ending time: Mon, 20 Dec 2021 00:01:17 +0100 - Duration: 600031 seconds +Real workload: 4.897945553851004E10 - Integer reached: 183625 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 10466 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 23:51:17 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 00:01:17 +0100 - Duration: 600009 seconds +Real workload: 4.844195359850039E11 - Integer reached: 551938 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 10468 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 23:51:17 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 00:01:17 +0100 - Duration: 600004 seconds +Real workload: 5.819833085499803E11 - Integer reached: 602883 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +--- Counting the total workload command : print_total_workload /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder app_output_folder 2,2,0,0,0,0,2,2 /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first +--- Total workload : 1.1648e+12 +--- Getting energy efficiency +--- Energy efficiency: 6.03742e-11 +--- Building what we will add to the total result file command +------ + (build_configuration_raw_result 220000-2-2 2,2,0,0,0,0,2,2 [1363200- 1363200- 0- 0- 0- 0- 1478400- 1766400] time (s): 601.6065046787262 +Ins Current (mA):431.9875538115737 +Samples: 3000000 +Consumed Energy (mAs): 253166.12322527068 +Consumed Energy (mAh): 70.32392311813075 +Consumed Energy (mWs): 1222289.9427083468 +Consumed Energy (mWh): 339.52498408565185 +Avg power (mW): 2043.2558518515564 +Avg Current (mA): 423.1624007519175 +Avg Voltage (V): 4.828538282751241 + Thread : 0 - ThreadProcess id: 10464 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 23:51:17 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 00:01:17 +0100 - Duration: 600020 seconds +Real workload: 4.9416138152951126E10 - Integer reached: 184408 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 10465 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 23:51:17 +0100 +Core id: 1 +Ending time: Mon, 20 Dec 2021 00:01:17 +0100 - Duration: 600031 seconds +Real workload: 4.897945553851004E10 - Integer reached: 183625 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 10466 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 23:51:17 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 00:01:17 +0100 - Duration: 600009 seconds +Real workload: 4.844195359850039E11 - Integer reached: 551938 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 10468 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 23:51:17 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 00:01:17 +0100 - Duration: 600004 seconds +Real workload: 5.819833085499803E11 - Integer reached: 602883 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + 70.32392311813075 1.1648e+12 6.03742e-11 0 0 +------ + +--- Final result to print to File + -------------------------------------------------------------------------------- + +++++ +++++ +++++ Configuration Description +-------------------------------------------------------------------------------- +Configuration: 220000-2-2 +phone format: 2,2,0,0,0,0,2,2 +Exact values of frequencies: [1363200- 1363200- 0- 0- 0- 0- 1478400- 1766400] + +Power meter results +------------------------------------------------------------ +time (s): 601.6065046787262 +Ins Current (mA):431.9875538115737 +Samples: 3000000 +Consumed Energy (mAs): 253166.12322527068 +Consumed Energy (mAh): 70.32392311813075 +Consumed Energy (mWs): 1222289.9427083468 +Consumed Energy (mWh): 339.52498408565185 +Avg power (mW): 2043.2558518515564 +Avg Current (mA): 423.1624007519175 +Avg Voltage (V): 4.828538282751241 + +Threads results +------------------------------------------------------------ +Thread : 0 - ThreadProcess id: 10464 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 23:51:17 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 00:01:17 +0100 - Duration: 600020 seconds +Real workload: 4.9416138152951126E10 - Integer reached: 184408 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 10465 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 23:51:17 +0100 +Core id: 1 +Ending time: Mon, 20 Dec 2021 00:01:17 +0100 - Duration: 600031 seconds +Real workload: 4.897945553851004E10 - Integer reached: 183625 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 10466 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 23:51:17 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 00:01:17 +0100 - Duration: 600009 seconds +Real workload: 4.844195359850039E11 - Integer reached: 551938 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 10468 +---------------------------------------- +Starting time: Sun, 19 Dec 2021 23:51:17 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 00:01:17 +0100 - Duration: 600004 seconds +Real workload: 5.819833085499803E11 - Integer reached: 602883 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +Expermiment results +------------------------------------------------------------ +Energy Consumed (mAh): 70.32392311813075 +Workload: 1.1648e+12 +Energy efficiency: 6.03742e-11 +-------------------------------------------------------------------------------- + + +--- Writing to the total result file +--- Removing previous tested configuration tmp_output folder +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_01_34_31/app_output_folder/all_workloads.txt' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_01_34_31/app_output_folder/Thread_0_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_01_34_31/app_output_folder/Thread_0_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_01_34_31/app_output_folder/Thread_1_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_01_34_31/app_output_folder/Thread_1_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_01_34_31/app_output_folder/Thread_2_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_01_34_31/app_output_folder/Thread_2_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_01_34_31/app_output_folder/Thread_3_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_01_34_31/app_output_folder/Thread_3_ready_for_sampling' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_01_34_31/app_output_folder' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_01_34_31/configuration_mesurement.csv' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_01_34_31/energy_power_workload_energyByWorkload_ccInfo' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_01_34_31/logcat_output' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_01_34_31/powermeter_summary.txt' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_01_34_31' +--- Moving the current experiment tmp_folder to the output result folder +writing a temporary file for the main script with format energy_power_workload_energyByWorkload_ccInfo +--- Obtaining experiment summary result to add to result folder +--- Experiment result, Energy consumed = 70.32392311813075 +--- Experiment result, Avg Power = 2043.2558518515564 +--- Experiment result, Total Workload = 1.1648e+12 +--- Experiment result, Energy Efficiency = 6.03742e-11 +--- Adding result to summary file +--- Starting cc information : 0 +--- Ending cc information : 0 +--- The file /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/summary.csv exists we just appending the result to the file +--- Experiments performed on configuration 220000-2-2. +--- Observing a pause betwenn experiment; pause duration : 180 seconds; starting at 05Oct22_01_47_15 +--- Performing experiments on configuration 220000-2-2 +--- Cleaning the tmp expermiment folder : /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- Second step : verifying the battery level +--- Verifying the battery level +--- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe +--- Current battery level : 50 +Current battery level: OKAY +--- Third step calibrating phone core frequency +--- Resetting all frequency configurations + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu5/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor +--- Frequency level of core 0 is 2 +--- Exact frequency of core 0: 1363200 +--- Modifying the governor of core 0 +--- Modifying the the current frequency of core 0 with frequency 1363200 +--- Frequency level of core 1 is 2 +--- Exact frequency of core 1: 1363200 +--- Modifying the governor of core 1 +--- Modifying the the current frequency of core 1 with frequency 1363200 +--- Frequency level of core 2 is 0 +--- Exact frequency of core 2: 0 +--- Modifying the governor of core 2 +--- Modifying the the current frequency of core 2 with frequency 0 +--- Frequency level of core 3 is 0 +--- Exact frequency of core 3: 0 +--- Modifying the governor of core 3 +--- Modifying the the current frequency of core 3 with frequency 0 +--- Frequency level of core 4 is 0 +--- Exact frequency of core 4: 0 +--- Modifying the governor of core 4 +--- Modifying the the current frequency of core 4 with frequency 0 +--- Frequency level of core 5 is 0 +--- Exact frequency of core 5: 0 +--- Modifying the governor of core 5 +--- Modifying the the current frequency of core 5 with frequency 0 +--- Frequency level of core 6 is 2 +--- Exact frequency of core 6: 1478400 +--- Modifying the governor of core 6 +--- Modifying the the current frequency of core 6 with frequency 1478400 +--- Frequency level of core 7 is 2 +--- Exact frequency of core 7: 1766400 +--- Modifying the governor of core 7 +--- Modifying the the current frequency of core 7 with frequency 1766400 +--- Calibrating Monsoon power meter, please wait for 10 seconds... +powermeter script : --- Inside the monsoon_power_meter, arg function: 1 +powermeter script : calibration duration = 10 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 50000 + returning 50000 samples after experiments +powermeter script : Power meter calibration okay +--- Monsoon power meter Calibrated +--- starting the benchmarking app +## writing the configuration inside the phone file + --- Removing file /sdcard/experiments_automatization +rm '/sdcard/experiments_automatization/current_configuration.txt' +rm '/sdcard/experiments_automatization/experiment_duration.txt' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ended' +rmdir '/sdcard/experiments_automatization/app_output_folder' +rmdir '/sdcard/experiments_automatization' + --- Clearing the logcat + --- Creating file /sdcard/experiments_automatization +----- Uninstalling experiment app +Success +----- Installing experiment app +Performing Streamed Install +Success +------ Giving rights to experiment app +----- Starting experiment app +Starting: Intent { cmp=com.opportunistask.scheduling.benchmarking_app_to_test_big_cores/.MainActivity } +adb command : ps -A | grep com.opportunistask.scheduling.benchmarking_app_to_test_big_cores + ----- Experiment app started with pid: 11469 +---- waiting for benchmarking app thread to be pinned and to be ready +--- frequency level of core 0 is 2 +--- frequency level of core 1 is 2 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of cores to occupy = 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 4 +--- Now threads are running and the phone is ready to be sampled with the power meter \n--- Threads pids +Thread_0_ready_for_sampling +Thread_1_ready_for_sampling +Thread_2_ready_for_sampling +Thread_3_ready_for_sampling +--- Printing cc_info beginning datas (for the samsung galaxy s8) + --- Starting power meter sampling for about 600 seconds +--- Sampling with the Monsoon power meter +powermeter script : --- Inside the monsoon_power_meter, arg function: 2 +powermeter script : Experiment duration = 600 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 3000000 + returning 3000000 samples after experiments +powermeter script : Total nomber of sample measured : 3000000 +powermeter script : Computing powermeter summary result + Number of samples = 3000000 +powermeter script : We computed the energy on 600 samples +powermeter script : average_power = 2041.985457529188 +powermeter script : average_power with numpy arrays = 2041.9854575288693 +powermeter script : Summary Result = time (s): 601.6909799575806 +Ins Current (mA):430.66415732648596 +Samples: 3000000 +Consumed Energy (mAs): 252184.87403177193 +Consumed Energy (mAh): 70.05135389771442 +Consumed Energy (mWs): 1217761.458972831 +Consumed Energy (mWh): 338.2670719368975 +Avg power (mW): 2041.985457529188 +Avg Current (mA): 422.87799558324514 +Avg Voltage (V): 4.828781537125914 +Exp Batt Life (hrs for 1000mAh battery): NOT COMPUTED +--- Monsoon power meter sampling is finished ! + --- experiment folder path /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- frequency level of core 0 is 2 +--- frequency level of core 1 is 2 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of threads normally started = 4 +--- Number of thread ended: 4 +--- Now threads are stopped, getting the cc_info_level for samsung +--- Copying thread results locally +command /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe pull /sdcard/experiments_automatization/app_output_folder C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder </dev/null +/sdcard/experiments_automatization/app_output_folder/: 8 files pulled, 0 skipped. 0.0 MB/s (1816 bytes in 0.069s) +saving the logcat file to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder -/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder- +--- Parsing result from /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/raw_result.txt +--- Getting exact configuration with frequency +--- Configuration with frequencies = [1363200- 1363200- 0- 0- 0- 0- 1478400- 1766400] +--- Getting the powermeter summary +--- Powermeter summary: +time (s): 601.6909799575806 +Ins Current (mA):430.66415732648596 +Samples: 3000000 +Consumed Energy (mAs): 252184.87403177193 +Consumed Energy (mAh): 70.05135389771442 +Consumed Energy (mWs): 1217761.458972831 +Consumed Energy (mWh): 338.2670719368975 +Avg power (mW): 2041.985457529188 +Avg Current (mA): 422.87799558324514 +Avg Voltage (V): 4.828781537125914 + +--- Getting the total energy consumed of the google pixel +--- Energy consumed = 70.05135389771442 +--- Starting cc_info = 0 +--- Ending cc_info = 0 +--- Getting the average power +--- Avg Power = 2041.985457529188 +--- Printing the total threads summary +--- Thread results +Thread : 0 - ThreadProcess id: 11494 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 00:07:04 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 00:17:04 +0100 - Duration: 600033 seconds +Real workload: 4.933791185093419E10 - Integer reached: 184268 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 11495 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 00:07:04 +0100 +Core id: 1 +Ending time: Mon, 20 Dec 2021 00:17:04 +0100 - Duration: 600029 seconds +Real workload: 4.9403282296581276E10 - Integer reached: 184385 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 11496 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 00:07:04 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 00:17:04 +0100 - Duration: 600003 seconds +Real workload: 4.848793791311787E11 - Integer reached: 552190 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 11498 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 00:07:04 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 00:17:04 +0100 - Duration: 600003 seconds +Real workload: 5.81734589313849E11 - Integer reached: 602759 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +--- Counting the total workload command : print_total_workload /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder app_output_folder 2,2,0,0,0,0,2,2 /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first +--- Total workload : 1.16536e+12 +--- Getting energy efficiency +--- Energy efficiency: 6.01113e-11 +--- Building what we will add to the total result file command +------ + (build_configuration_raw_result 220000-2-2 2,2,0,0,0,0,2,2 [1363200- 1363200- 0- 0- 0- 0- 1478400- 1766400] time (s): 601.6909799575806 +Ins Current (mA):430.66415732648596 +Samples: 3000000 +Consumed Energy (mAs): 252184.87403177193 +Consumed Energy (mAh): 70.05135389771442 +Consumed Energy (mWs): 1217761.458972831 +Consumed Energy (mWh): 338.2670719368975 +Avg power (mW): 2041.985457529188 +Avg Current (mA): 422.87799558324514 +Avg Voltage (V): 4.828781537125914 + Thread : 0 - ThreadProcess id: 11494 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 00:07:04 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 00:17:04 +0100 - Duration: 600033 seconds +Real workload: 4.933791185093419E10 - Integer reached: 184268 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 11495 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 00:07:04 +0100 +Core id: 1 +Ending time: Mon, 20 Dec 2021 00:17:04 +0100 - Duration: 600029 seconds +Real workload: 4.9403282296581276E10 - Integer reached: 184385 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 11496 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 00:07:04 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 00:17:04 +0100 - Duration: 600003 seconds +Real workload: 4.848793791311787E11 - Integer reached: 552190 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 11498 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 00:07:04 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 00:17:04 +0100 - Duration: 600003 seconds +Real workload: 5.81734589313849E11 - Integer reached: 602759 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + 70.05135389771442 1.16536e+12 6.01113e-11 0 0 +------ + +--- Final result to print to File + -------------------------------------------------------------------------------- + +++++ +++++ +++++ Configuration Description +-------------------------------------------------------------------------------- +Configuration: 220000-2-2 +phone format: 2,2,0,0,0,0,2,2 +Exact values of frequencies: [1363200- 1363200- 0- 0- 0- 0- 1478400- 1766400] + +Power meter results +------------------------------------------------------------ +time (s): 601.6909799575806 +Ins Current (mA):430.66415732648596 +Samples: 3000000 +Consumed Energy (mAs): 252184.87403177193 +Consumed Energy (mAh): 70.05135389771442 +Consumed Energy (mWs): 1217761.458972831 +Consumed Energy (mWh): 338.2670719368975 +Avg power (mW): 2041.985457529188 +Avg Current (mA): 422.87799558324514 +Avg Voltage (V): 4.828781537125914 + +Threads results +------------------------------------------------------------ +Thread : 0 - ThreadProcess id: 11494 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 00:07:04 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 00:17:04 +0100 - Duration: 600033 seconds +Real workload: 4.933791185093419E10 - Integer reached: 184268 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 11495 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 00:07:04 +0100 +Core id: 1 +Ending time: Mon, 20 Dec 2021 00:17:04 +0100 - Duration: 600029 seconds +Real workload: 4.9403282296581276E10 - Integer reached: 184385 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 11496 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 00:07:04 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 00:17:04 +0100 - Duration: 600003 seconds +Real workload: 4.848793791311787E11 - Integer reached: 552190 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 11498 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 00:07:04 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 00:17:04 +0100 - Duration: 600003 seconds +Real workload: 5.81734589313849E11 - Integer reached: 602759 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +Expermiment results +------------------------------------------------------------ +Energy Consumed (mAh): 70.05135389771442 +Workload: 1.16536e+12 +Energy efficiency: 6.01113e-11 +-------------------------------------------------------------------------------- + + +--- Writing to the total result file +--- Removing previous tested configuration tmp_output folder +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_01_50_17/app_output_folder/all_workloads.txt' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_01_50_17/app_output_folder/Thread_0_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_01_50_17/app_output_folder/Thread_0_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_01_50_17/app_output_folder/Thread_1_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_01_50_17/app_output_folder/Thread_1_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_01_50_17/app_output_folder/Thread_2_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_01_50_17/app_output_folder/Thread_2_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_01_50_17/app_output_folder/Thread_3_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_01_50_17/app_output_folder/Thread_3_ready_for_sampling' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_01_50_17/app_output_folder' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_01_50_17/configuration_mesurement.csv' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_01_50_17/energy_power_workload_energyByWorkload_ccInfo' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_01_50_17/logcat_output' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_01_50_17/powermeter_summary.txt' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_01_50_17' +--- Moving the current experiment tmp_folder to the output result folder +writing a temporary file for the main script with format energy_power_workload_energyByWorkload_ccInfo +--- Obtaining experiment summary result to add to result folder +--- Experiment result, Energy consumed = 70.05135389771442 +--- Experiment result, Avg Power = 2041.985457529188 +--- Experiment result, Total Workload = 1.16536e+12 +--- Experiment result, Energy Efficiency = 6.01113e-11 +--- Adding result to summary file +--- Starting cc information : 0 +--- Ending cc information : 0 +--- The file /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/summary.csv exists we just appending the result to the file +--- Experiments performed on configuration 220000-2-2. +--- Observing a pause betwenn experiment; pause duration : 180 seconds; starting at 05Oct22_02_03_02 +--- Performing experiments on configuration 300003-2-2 +--- Cleaning the tmp expermiment folder : /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- Second step : verifying the battery level +--- Verifying the battery level +--- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe +--- Current battery level : 50 +Current battery level: OKAY +--- Third step calibrating phone core frequency +--- Resetting all frequency configurations + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu5/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor +--- Frequency level of core 0 is 3 +--- Exact frequency of core 0: 1804800 +--- Modifying the governor of core 0 +--- Modifying the the current frequency of core 0 with frequency 1804800 +--- Frequency level of core 1 is 0 +--- Exact frequency of core 1: 0 +--- Modifying the governor of core 1 +--- Modifying the the current frequency of core 1 with frequency 0 +--- Frequency level of core 2 is 0 +--- Exact frequency of core 2: 0 +--- Modifying the governor of core 2 +--- Modifying the the current frequency of core 2 with frequency 0 +--- Frequency level of core 3 is 0 +--- Exact frequency of core 3: 0 +--- Modifying the governor of core 3 +--- Modifying the the current frequency of core 3 with frequency 0 +--- Frequency level of core 4 is 0 +--- Exact frequency of core 4: 0 +--- Modifying the governor of core 4 +--- Modifying the the current frequency of core 4 with frequency 0 +--- Frequency level of core 5 is 3 +--- Exact frequency of core 5: 1804800 +--- Modifying the governor of core 5 +--- Modifying the the current frequency of core 5 with frequency 1804800 +--- Frequency level of core 6 is 2 +--- Exact frequency of core 6: 1478400 +--- Modifying the governor of core 6 +--- Modifying the the current frequency of core 6 with frequency 1478400 +--- Frequency level of core 7 is 2 +--- Exact frequency of core 7: 1766400 +--- Modifying the governor of core 7 +--- Modifying the the current frequency of core 7 with frequency 1766400 +--- Calibrating Monsoon power meter, please wait for 10 seconds... +powermeter script : --- Inside the monsoon_power_meter, arg function: 1 +powermeter script : calibration duration = 10 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 50000 + returning 50000 samples after experiments +powermeter script : Power meter calibration okay +--- Monsoon power meter Calibrated +--- starting the benchmarking app +## writing the configuration inside the phone file + --- Removing file /sdcard/experiments_automatization +rm '/sdcard/experiments_automatization/current_configuration.txt' +rm '/sdcard/experiments_automatization/experiment_duration.txt' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ended' +rmdir '/sdcard/experiments_automatization/app_output_folder' +rmdir '/sdcard/experiments_automatization' + --- Clearing the logcat + --- Creating file /sdcard/experiments_automatization +----- Uninstalling experiment app +Success +----- Installing experiment app +Performing Streamed Install +Success +------ Giving rights to experiment app +----- Starting experiment app +Starting: Intent { cmp=com.opportunistask.scheduling.benchmarking_app_to_test_big_cores/.MainActivity } +adb command : ps -A | grep com.opportunistask.scheduling.benchmarking_app_to_test_big_cores + ----- Experiment app started with pid: 12550 +---- waiting for benchmarking app thread to be pinned and to be ready +--- frequency level of core 0 is 3 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 3 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of cores to occupy = 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 4 +--- Now threads are running and the phone is ready to be sampled with the power meter \n--- Threads pids +Thread_0_ready_for_sampling +Thread_1_ready_for_sampling +Thread_2_ready_for_sampling +Thread_3_ready_for_sampling +--- Printing cc_info beginning datas (for the samsung galaxy s8) + --- Starting power meter sampling for about 600 seconds +--- Sampling with the Monsoon power meter +powermeter script : --- Inside the monsoon_power_meter, arg function: 2 +powermeter script : Experiment duration = 600 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 3000000 + returning 3000000 samples after experiments +powermeter script : Total nomber of sample measured : 3000000 +powermeter script : Computing powermeter summary result + Number of samples = 3000000 +powermeter script : We computed the energy on 600 samples +powermeter script : average_power = 2465.3920553203334 +powermeter script : average_power with numpy arrays = 2465.392055320195 +powermeter script : Summary Result = time (s): 601.6628384590149 +Ins Current (mA):494.25083138106396 +Samples: 3000000 +Consumed Energy (mAs): 311746.95789965347 +Consumed Energy (mAh): 86.59637719434818 +Consumed Energy (mWs): 1481704.0626064371 +Consumed Energy (mWh): 411.58446183512143 +Avg power (mW): 2465.3920553203334 +Avg Current (mA): 518.3565968122952 +Avg Voltage (V): 4.756169923333858 +Exp Batt Life (hrs for 1000mAh battery): NOT COMPUTED +--- Monsoon power meter sampling is finished ! + --- experiment folder path /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- frequency level of core 0 is 3 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 3 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of threads normally started = 4 +--- Number of thread ended: 4 +--- Now threads are stopped, getting the cc_info_level for samsung +--- Copying thread results locally +command /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe pull /sdcard/experiments_automatization/app_output_folder C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder </dev/null +/sdcard/experiments_automatization/app_output_folder/: 8 files pulled, 0 skipped. 0.0 MB/s (1818 bytes in 0.044s) +saving the logcat file to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder -/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder- +--- Parsing result from /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/raw_result.txt +--- Getting exact configuration with frequency +--- Configuration with frequencies = [1804800- 0- 0- 0- 0- 1804800- 1478400- 1766400] +--- Getting the powermeter summary +--- Powermeter summary: +time (s): 601.6628384590149 +Ins Current (mA):494.25083138106396 +Samples: 3000000 +Consumed Energy (mAs): 311746.95789965347 +Consumed Energy (mAh): 86.59637719434818 +Consumed Energy (mWs): 1481704.0626064371 +Consumed Energy (mWh): 411.58446183512143 +Avg power (mW): 2465.3920553203334 +Avg Current (mA): 518.3565968122952 +Avg Voltage (V): 4.756169923333858 + +--- Getting the total energy consumed of the google pixel +--- Energy consumed = 86.59637719434818 +--- Starting cc_info = 0 +--- Ending cc_info = 0 +--- Getting the average power +--- Avg Power = 2465.3920553203334 +--- Printing the total threads summary +--- Thread results +Thread : 0 - ThreadProcess id: 12575 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 00:22:48 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 00:32:48 +0100 - Duration: 600018 seconds +Real workload: 1.5940145242542728E11 - Integer reached: 323476 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 12576 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 00:22:48 +0100 +Core id: 5 +Ending time: Mon, 20 Dec 2021 00:32:48 +0100 - Duration: 600011 seconds +Real workload: 1.5942710319886996E11 - Integer reached: 323501 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 12577 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 00:22:48 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 00:32:48 +0100 - Duration: 600001 seconds +Real workload: 4.841714604600182E11 - Integer reached: 551802 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 12579 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 00:22:48 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 00:32:48 +0100 - Duration: 600001 seconds +Real workload: 5.754945952389948E11 - Integer reached: 599639 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +--- Counting the total workload command : print_total_workload /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder app_output_folder 3,0,0,0,0,3,2,2 /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first +--- Total workload : 1.37849e+12 +--- Getting energy efficiency +--- Energy efficiency: 6.28197e-11 +--- Building what we will add to the total result file command +------ + (build_configuration_raw_result 300003-2-2 3,0,0,0,0,3,2,2 [1804800- 0- 0- 0- 0- 1804800- 1478400- 1766400] time (s): 601.6628384590149 +Ins Current (mA):494.25083138106396 +Samples: 3000000 +Consumed Energy (mAs): 311746.95789965347 +Consumed Energy (mAh): 86.59637719434818 +Consumed Energy (mWs): 1481704.0626064371 +Consumed Energy (mWh): 411.58446183512143 +Avg power (mW): 2465.3920553203334 +Avg Current (mA): 518.3565968122952 +Avg Voltage (V): 4.756169923333858 + Thread : 0 - ThreadProcess id: 12575 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 00:22:48 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 00:32:48 +0100 - Duration: 600018 seconds +Real workload: 1.5940145242542728E11 - Integer reached: 323476 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 12576 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 00:22:48 +0100 +Core id: 5 +Ending time: Mon, 20 Dec 2021 00:32:48 +0100 - Duration: 600011 seconds +Real workload: 1.5942710319886996E11 - Integer reached: 323501 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 12577 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 00:22:48 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 00:32:48 +0100 - Duration: 600001 seconds +Real workload: 4.841714604600182E11 - Integer reached: 551802 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 12579 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 00:22:48 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 00:32:48 +0100 - Duration: 600001 seconds +Real workload: 5.754945952389948E11 - Integer reached: 599639 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + 86.59637719434818 1.37849e+12 6.28197e-11 0 0 +------ + +--- Final result to print to File + -------------------------------------------------------------------------------- + +++++ +++++ +++++ Configuration Description +-------------------------------------------------------------------------------- +Configuration: 300003-2-2 +phone format: 3,0,0,0,0,3,2,2 +Exact values of frequencies: [1804800- 0- 0- 0- 0- 1804800- 1478400- 1766400] + +Power meter results +------------------------------------------------------------ +time (s): 601.6628384590149 +Ins Current (mA):494.25083138106396 +Samples: 3000000 +Consumed Energy (mAs): 311746.95789965347 +Consumed Energy (mAh): 86.59637719434818 +Consumed Energy (mWs): 1481704.0626064371 +Consumed Energy (mWh): 411.58446183512143 +Avg power (mW): 2465.3920553203334 +Avg Current (mA): 518.3565968122952 +Avg Voltage (V): 4.756169923333858 + +Threads results +------------------------------------------------------------ +Thread : 0 - ThreadProcess id: 12575 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 00:22:48 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 00:32:48 +0100 - Duration: 600018 seconds +Real workload: 1.5940145242542728E11 - Integer reached: 323476 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 12576 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 00:22:48 +0100 +Core id: 5 +Ending time: Mon, 20 Dec 2021 00:32:48 +0100 - Duration: 600011 seconds +Real workload: 1.5942710319886996E11 - Integer reached: 323501 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 12577 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 00:22:48 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 00:32:48 +0100 - Duration: 600001 seconds +Real workload: 4.841714604600182E11 - Integer reached: 551802 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 12579 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 00:22:48 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 00:32:48 +0100 - Duration: 600001 seconds +Real workload: 5.754945952389948E11 - Integer reached: 599639 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +Expermiment results +------------------------------------------------------------ +Energy Consumed (mAh): 86.59637719434818 +Workload: 1.37849e+12 +Energy efficiency: 6.28197e-11 +-------------------------------------------------------------------------------- + + +--- Writing to the total result file +--- Removing previous tested configuration tmp_output folder +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_02_06_04/app_output_folder/all_workloads.txt' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_02_06_04/app_output_folder/Thread_0_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_02_06_04/app_output_folder/Thread_0_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_02_06_04/app_output_folder/Thread_1_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_02_06_04/app_output_folder/Thread_1_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_02_06_04/app_output_folder/Thread_2_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_02_06_04/app_output_folder/Thread_2_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_02_06_04/app_output_folder/Thread_3_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_02_06_04/app_output_folder/Thread_3_ready_for_sampling' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_02_06_04/app_output_folder' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_02_06_04/configuration_mesurement.csv' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_02_06_04/energy_power_workload_energyByWorkload_ccInfo' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_02_06_04/logcat_output' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_02_06_04/powermeter_summary.txt' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_02_06_04' +--- Moving the current experiment tmp_folder to the output result folder +writing a temporary file for the main script with format energy_power_workload_energyByWorkload_ccInfo +--- Obtaining experiment summary result to add to result folder +--- Experiment result, Energy consumed = 86.59637719434818 +--- Experiment result, Avg Power = 2465.3920553203334 +--- Experiment result, Total Workload = 1.37849e+12 +--- Experiment result, Energy Efficiency = 6.28197e-11 +--- Adding result to summary file +--- Starting cc information : 0 +--- Ending cc information : 0 +--- The file /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/summary.csv exists we just appending the result to the file +--- Experiments performed on configuration 300003-2-2. +--- Observing a pause betwenn experiment; pause duration : 180 seconds; starting at 05Oct22_02_18_46 +--- Performing experiments on configuration 300003-2-2 +--- Cleaning the tmp expermiment folder : /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- Second step : verifying the battery level +--- Verifying the battery level +--- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe +--- Current battery level : 50 +Current battery level: OKAY +--- Third step calibrating phone core frequency +--- Resetting all frequency configurations + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu5/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor +--- Frequency level of core 0 is 3 +--- Exact frequency of core 0: 1804800 +--- Modifying the governor of core 0 +--- Modifying the the current frequency of core 0 with frequency 1804800 +--- Frequency level of core 1 is 0 +--- Exact frequency of core 1: 0 +--- Modifying the governor of core 1 +--- Modifying the the current frequency of core 1 with frequency 0 +--- Frequency level of core 2 is 0 +--- Exact frequency of core 2: 0 +--- Modifying the governor of core 2 +--- Modifying the the current frequency of core 2 with frequency 0 +--- Frequency level of core 3 is 0 +--- Exact frequency of core 3: 0 +--- Modifying the governor of core 3 +--- Modifying the the current frequency of core 3 with frequency 0 +--- Frequency level of core 4 is 0 +--- Exact frequency of core 4: 0 +--- Modifying the governor of core 4 +--- Modifying the the current frequency of core 4 with frequency 0 +--- Frequency level of core 5 is 3 +--- Exact frequency of core 5: 1804800 +--- Modifying the governor of core 5 +--- Modifying the the current frequency of core 5 with frequency 1804800 +--- Frequency level of core 6 is 2 +--- Exact frequency of core 6: 1478400 +--- Modifying the governor of core 6 +--- Modifying the the current frequency of core 6 with frequency 1478400 +--- Frequency level of core 7 is 2 +--- Exact frequency of core 7: 1766400 +--- Modifying the governor of core 7 +--- Modifying the the current frequency of core 7 with frequency 1766400 +--- Calibrating Monsoon power meter, please wait for 10 seconds... +powermeter script : --- Inside the monsoon_power_meter, arg function: 1 +powermeter script : calibration duration = 10 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 50000 + returning 50000 samples after experiments +powermeter script : Power meter calibration okay +--- Monsoon power meter Calibrated +--- starting the benchmarking app +## writing the configuration inside the phone file + --- Removing file /sdcard/experiments_automatization +rm '/sdcard/experiments_automatization/current_configuration.txt' +rm '/sdcard/experiments_automatization/experiment_duration.txt' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ended' +rmdir '/sdcard/experiments_automatization/app_output_folder' +rmdir '/sdcard/experiments_automatization' + --- Clearing the logcat + --- Creating file /sdcard/experiments_automatization +----- Uninstalling experiment app +Success +----- Installing experiment app +Performing Streamed Install +Success +------ Giving rights to experiment app +----- Starting experiment app +Starting: Intent { cmp=com.opportunistask.scheduling.benchmarking_app_to_test_big_cores/.MainActivity } +adb command : ps -A | grep com.opportunistask.scheduling.benchmarking_app_to_test_big_cores + ----- Experiment app started with pid: 13913 +---- waiting for benchmarking app thread to be pinned and to be ready +--- frequency level of core 0 is 3 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 3 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of cores to occupy = 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 4 +--- Now threads are running and the phone is ready to be sampled with the power meter \n--- Threads pids +Thread_0_ready_for_sampling +Thread_1_ready_for_sampling +Thread_2_ready_for_sampling +Thread_3_ready_for_sampling +--- Printing cc_info beginning datas (for the samsung galaxy s8) + --- Starting power meter sampling for about 600 seconds +--- Sampling with the Monsoon power meter +powermeter script : --- Inside the monsoon_power_meter, arg function: 2 +powermeter script : Experiment duration = 600 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 3000000 + returning 3000000 samples after experiments +powermeter script : Total nomber of sample measured : 3000000 +powermeter script : Computing powermeter summary result + Number of samples = 3000000 +powermeter script : We computed the energy on 600 samples +powermeter script : average_power = 2488.241950885876 +powermeter script : average_power with numpy arrays = 2488.241950885659 +powermeter script : Summary Result = time (s): 602.4877653121948 +Ins Current (mA):523.1131920924403 +Samples: 3000000 +Consumed Energy (mAs): 315455.5897130776 +Consumed Energy (mAh): 87.6265526980771 +Consumed Energy (mWs): 1498000.9590370413 +Consumed Energy (mWh): 416.11137751028923 +Avg power (mW): 2488.241950885876 +Avg Current (mA): 523.5941720897732 +Avg Voltage (V): 4.752233855000305 +Exp Batt Life (hrs for 1000mAh battery): NOT COMPUTED +--- Monsoon power meter sampling is finished ! + --- experiment folder path /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- frequency level of core 0 is 3 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 3 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of threads normally started = 4 +--- Number of thread ended: 4 +--- Now threads are stopped, getting the cc_info_level for samsung +--- Copying thread results locally +command /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe pull /sdcard/experiments_automatization/app_output_folder C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder </dev/null +/sdcard/experiments_automatization/app_output_folder/: 8 files pulled, 0 skipped. 0.1 MB/s (1818 bytes in 0.030s) +saving the logcat file to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder -/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder- +--- Parsing result from /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/raw_result.txt +--- Getting exact configuration with frequency +--- Configuration with frequencies = [1804800- 0- 0- 0- 0- 1804800- 1478400- 1766400] +--- Getting the powermeter summary +--- Powermeter summary: +time (s): 602.4877653121948 +Ins Current (mA):523.1131920924403 +Samples: 3000000 +Consumed Energy (mAs): 315455.5897130776 +Consumed Energy (mAh): 87.6265526980771 +Consumed Energy (mWs): 1498000.9590370413 +Consumed Energy (mWh): 416.11137751028923 +Avg power (mW): 2488.241950885876 +Avg Current (mA): 523.5941720897732 +Avg Voltage (V): 4.752233855000305 + +--- Getting the total energy consumed of the google pixel +--- Energy consumed = 87.6265526980771 +--- Starting cc_info = 0 +--- Ending cc_info = 0 +--- Getting the average power +--- Avg Power = 2488.241950885876 +--- Printing the total threads summary +--- Thread results +Thread : 0 - ThreadProcess id: 13938 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 00:38:32 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 00:48:32 +0100 - Duration: 600003 seconds +Real workload: 1.6005055654619852E11 - Integer reached: 324108 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 13940 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 00:38:32 +0100 +Core id: 5 +Ending time: Mon, 20 Dec 2021 00:48:32 +0100 - Duration: 600001 seconds +Real workload: 1.588899134719037E11 - Integer reached: 322977 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 13942 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 00:38:32 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 00:48:32 +0100 - Duration: 600006 seconds +Real workload: 4.8515685405985803E11 - Integer reached: 552342 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 13943 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 00:38:32 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 00:48:32 +0100 - Duration: 600002 seconds +Real workload: 5.767318221529114E11 - Integer reached: 600259 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +--- Counting the total workload command : print_total_workload /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder app_output_folder 3,0,0,0,0,3,2,2 /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first +--- Total workload : 1.38083e+12 +--- Getting energy efficiency +--- Energy efficiency: 6.34593e-11 +--- Building what we will add to the total result file command +------ + (build_configuration_raw_result 300003-2-2 3,0,0,0,0,3,2,2 [1804800- 0- 0- 0- 0- 1804800- 1478400- 1766400] time (s): 602.4877653121948 +Ins Current (mA):523.1131920924403 +Samples: 3000000 +Consumed Energy (mAs): 315455.5897130776 +Consumed Energy (mAh): 87.6265526980771 +Consumed Energy (mWs): 1498000.9590370413 +Consumed Energy (mWh): 416.11137751028923 +Avg power (mW): 2488.241950885876 +Avg Current (mA): 523.5941720897732 +Avg Voltage (V): 4.752233855000305 + Thread : 0 - ThreadProcess id: 13938 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 00:38:32 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 00:48:32 +0100 - Duration: 600003 seconds +Real workload: 1.6005055654619852E11 - Integer reached: 324108 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 13940 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 00:38:32 +0100 +Core id: 5 +Ending time: Mon, 20 Dec 2021 00:48:32 +0100 - Duration: 600001 seconds +Real workload: 1.588899134719037E11 - Integer reached: 322977 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 13942 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 00:38:32 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 00:48:32 +0100 - Duration: 600006 seconds +Real workload: 4.8515685405985803E11 - Integer reached: 552342 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 13943 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 00:38:32 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 00:48:32 +0100 - Duration: 600002 seconds +Real workload: 5.767318221529114E11 - Integer reached: 600259 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + 87.6265526980771 1.38083e+12 6.34593e-11 0 0 +------ + +--- Final result to print to File + -------------------------------------------------------------------------------- + +++++ +++++ +++++ Configuration Description +-------------------------------------------------------------------------------- +Configuration: 300003-2-2 +phone format: 3,0,0,0,0,3,2,2 +Exact values of frequencies: [1804800- 0- 0- 0- 0- 1804800- 1478400- 1766400] + +Power meter results +------------------------------------------------------------ +time (s): 602.4877653121948 +Ins Current (mA):523.1131920924403 +Samples: 3000000 +Consumed Energy (mAs): 315455.5897130776 +Consumed Energy (mAh): 87.6265526980771 +Consumed Energy (mWs): 1498000.9590370413 +Consumed Energy (mWh): 416.11137751028923 +Avg power (mW): 2488.241950885876 +Avg Current (mA): 523.5941720897732 +Avg Voltage (V): 4.752233855000305 + +Threads results +------------------------------------------------------------ +Thread : 0 - ThreadProcess id: 13938 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 00:38:32 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 00:48:32 +0100 - Duration: 600003 seconds +Real workload: 1.6005055654619852E11 - Integer reached: 324108 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 13940 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 00:38:32 +0100 +Core id: 5 +Ending time: Mon, 20 Dec 2021 00:48:32 +0100 - Duration: 600001 seconds +Real workload: 1.588899134719037E11 - Integer reached: 322977 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 13942 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 00:38:32 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 00:48:32 +0100 - Duration: 600006 seconds +Real workload: 4.8515685405985803E11 - Integer reached: 552342 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 13943 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 00:38:32 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 00:48:32 +0100 - Duration: 600002 seconds +Real workload: 5.767318221529114E11 - Integer reached: 600259 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +Expermiment results +------------------------------------------------------------ +Energy Consumed (mAh): 87.6265526980771 +Workload: 1.38083e+12 +Energy efficiency: 6.34593e-11 +-------------------------------------------------------------------------------- + + +--- Writing to the total result file +--- Removing previous tested configuration tmp_output folder +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_02_21_48/app_output_folder/all_workloads.txt' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_02_21_48/app_output_folder/Thread_0_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_02_21_48/app_output_folder/Thread_0_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_02_21_48/app_output_folder/Thread_1_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_02_21_48/app_output_folder/Thread_1_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_02_21_48/app_output_folder/Thread_2_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_02_21_48/app_output_folder/Thread_2_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_02_21_48/app_output_folder/Thread_3_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_02_21_48/app_output_folder/Thread_3_ready_for_sampling' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_02_21_48/app_output_folder' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_02_21_48/configuration_mesurement.csv' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_02_21_48/energy_power_workload_energyByWorkload_ccInfo' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_02_21_48/logcat_output' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_02_21_48/powermeter_summary.txt' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_02_21_48' +--- Moving the current experiment tmp_folder to the output result folder +writing a temporary file for the main script with format energy_power_workload_energyByWorkload_ccInfo +--- Obtaining experiment summary result to add to result folder +--- Experiment result, Energy consumed = 87.6265526980771 +--- Experiment result, Avg Power = 2488.241950885876 +--- Experiment result, Total Workload = 1.38083e+12 +--- Experiment result, Energy Efficiency = 6.34593e-11 +--- Adding result to summary file +--- Starting cc information : 0 +--- Ending cc information : 0 +--- The file /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/summary.csv exists we just appending the result to the file +--- Experiments performed on configuration 300003-2-2. +--- Observing a pause betwenn experiment; pause duration : 180 seconds; starting at 05Oct22_02_34_31 +--- Performing experiments on configuration 300003-2-2 +--- Cleaning the tmp expermiment folder : /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- Second step : verifying the battery level +--- Verifying the battery level +--- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe +--- Current battery level : 50 +Current battery level: OKAY +--- Third step calibrating phone core frequency +--- Resetting all frequency configurations + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu5/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor +--- Frequency level of core 0 is 3 +--- Exact frequency of core 0: 1804800 +--- Modifying the governor of core 0 +--- Modifying the the current frequency of core 0 with frequency 1804800 +--- Frequency level of core 1 is 0 +--- Exact frequency of core 1: 0 +--- Modifying the governor of core 1 +--- Modifying the the current frequency of core 1 with frequency 0 +--- Frequency level of core 2 is 0 +--- Exact frequency of core 2: 0 +--- Modifying the governor of core 2 +--- Modifying the the current frequency of core 2 with frequency 0 +--- Frequency level of core 3 is 0 +--- Exact frequency of core 3: 0 +--- Modifying the governor of core 3 +--- Modifying the the current frequency of core 3 with frequency 0 +--- Frequency level of core 4 is 0 +--- Exact frequency of core 4: 0 +--- Modifying the governor of core 4 +--- Modifying the the current frequency of core 4 with frequency 0 +--- Frequency level of core 5 is 3 +--- Exact frequency of core 5: 1804800 +--- Modifying the governor of core 5 +--- Modifying the the current frequency of core 5 with frequency 1804800 +--- Frequency level of core 6 is 2 +--- Exact frequency of core 6: 1478400 +--- Modifying the governor of core 6 +--- Modifying the the current frequency of core 6 with frequency 1478400 +--- Frequency level of core 7 is 2 +--- Exact frequency of core 7: 1766400 +--- Modifying the governor of core 7 +--- Modifying the the current frequency of core 7 with frequency 1766400 +--- Calibrating Monsoon power meter, please wait for 10 seconds... +powermeter script : --- Inside the monsoon_power_meter, arg function: 1 +powermeter script : calibration duration = 10 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 50000 + returning 50000 samples after experiments +powermeter script : Power meter calibration okay +--- Monsoon power meter Calibrated +--- starting the benchmarking app +## writing the configuration inside the phone file + --- Removing file /sdcard/experiments_automatization +rm '/sdcard/experiments_automatization/current_configuration.txt' +rm '/sdcard/experiments_automatization/experiment_duration.txt' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ended' +rmdir '/sdcard/experiments_automatization/app_output_folder' +rmdir '/sdcard/experiments_automatization' + --- Clearing the logcat + --- Creating file /sdcard/experiments_automatization +----- Uninstalling experiment app +Success +----- Installing experiment app +Performing Streamed Install +Success +------ Giving rights to experiment app +----- Starting experiment app +Starting: Intent { cmp=com.opportunistask.scheduling.benchmarking_app_to_test_big_cores/.MainActivity } +adb command : ps -A | grep com.opportunistask.scheduling.benchmarking_app_to_test_big_cores + ----- Experiment app started with pid: 14964 +---- waiting for benchmarking app thread to be pinned and to be ready +--- frequency level of core 0 is 3 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 3 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of cores to occupy = 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 4 +--- Now threads are running and the phone is ready to be sampled with the power meter \n--- Threads pids +Thread_0_ready_for_sampling +Thread_1_ready_for_sampling +Thread_2_ready_for_sampling +Thread_3_ready_for_sampling +--- Printing cc_info beginning datas (for the samsung galaxy s8) + --- Starting power meter sampling for about 600 seconds +--- Sampling with the Monsoon power meter +powermeter script : --- Inside the monsoon_power_meter, arg function: 2 +powermeter script : Experiment duration = 600 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 3000000 + returning 3000000 samples after experiments +powermeter script : Total nomber of sample measured : 3000000 +powermeter script : Computing powermeter summary result + Number of samples = 3000000 +powermeter script : We computed the energy on 600 samples +powermeter script : average_power = 2482.78103690326 +powermeter script : average_power with numpy arrays = 2482.781036903111 +powermeter script : Summary Result = time (s): 602.8588590621948 +Ins Current (mA):530.4661490576748 +Samples: 3000000 +Consumed Energy (mAs): 313519.34844171564 +Consumed Energy (mAh): 87.08870790047656 +Consumed Energy (mWs): 1489425.3089337926 +Consumed Energy (mWh): 413.7292524816091 +Avg power (mW): 2482.78103690326 +Avg Current (mA): 522.3454254731327 +Avg Voltage (V): 4.753140193875335 +Exp Batt Life (hrs for 1000mAh battery): NOT COMPUTED +--- Monsoon power meter sampling is finished ! + --- experiment folder path /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- frequency level of core 0 is 3 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 3 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of threads normally started = 4 +--- Number of thread ended: 4 +--- Now threads are stopped, getting the cc_info_level for samsung +--- Copying thread results locally +command /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe pull /sdcard/experiments_automatization/app_output_folder C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder </dev/null +/sdcard/experiments_automatization/app_output_folder/: 8 files pulled, 0 skipped. 0.0 MB/s (1816 bytes in 0.053s) +saving the logcat file to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder -/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder- +--- Parsing result from /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/raw_result.txt +--- Getting exact configuration with frequency +--- Configuration with frequencies = [1804800- 0- 0- 0- 0- 1804800- 1478400- 1766400] +--- Getting the powermeter summary +--- Powermeter summary: +time (s): 602.8588590621948 +Ins Current (mA):530.4661490576748 +Samples: 3000000 +Consumed Energy (mAs): 313519.34844171564 +Consumed Energy (mAh): 87.08870790047656 +Consumed Energy (mWs): 1489425.3089337926 +Consumed Energy (mWh): 413.7292524816091 +Avg power (mW): 2482.78103690326 +Avg Current (mA): 522.3454254731327 +Avg Voltage (V): 4.753140193875335 + +--- Getting the total energy consumed of the google pixel +--- Energy consumed = 87.08870790047656 +--- Starting cc_info = 0 +--- Ending cc_info = 0 +--- Getting the average power +--- Avg Power = 2482.78103690326 +--- Printing the total threads summary +--- Thread results +Thread : 0 - ThreadProcess id: 14989 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 00:54:17 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 01:04:17 +0100 - Duration: 600014 seconds +Real workload: 1.5909381174213907E11 - Integer reached: 323176 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 14990 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 00:54:17 +0100 +Core id: 5 +Ending time: Mon, 20 Dec 2021 01:04:17 +0100 - Duration: 600010 seconds +Real workload: 1.593696487752825E11 - Integer reached: 323445 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 14991 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 00:54:17 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 01:04:17 +0100 - Duration: 600001 seconds +Real workload: 4.870795241494541E11 - Integer reached: 553394 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 14992 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 00:54:17 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 01:04:17 +0100 - Duration: 600008 seconds +Real workload: 5.81389682869435E11 - Integer reached: 602587 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +--- Counting the total workload command : print_total_workload /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder app_output_folder 3,0,0,0,0,3,2,2 /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first +--- Total workload : 1.38693e+12 +--- Getting energy efficiency +--- Energy efficiency: 6.27924e-11 +--- Building what we will add to the total result file command +------ + (build_configuration_raw_result 300003-2-2 3,0,0,0,0,3,2,2 [1804800- 0- 0- 0- 0- 1804800- 1478400- 1766400] time (s): 602.8588590621948 +Ins Current (mA):530.4661490576748 +Samples: 3000000 +Consumed Energy (mAs): 313519.34844171564 +Consumed Energy (mAh): 87.08870790047656 +Consumed Energy (mWs): 1489425.3089337926 +Consumed Energy (mWh): 413.7292524816091 +Avg power (mW): 2482.78103690326 +Avg Current (mA): 522.3454254731327 +Avg Voltage (V): 4.753140193875335 + Thread : 0 - ThreadProcess id: 14989 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 00:54:17 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 01:04:17 +0100 - Duration: 600014 seconds +Real workload: 1.5909381174213907E11 - Integer reached: 323176 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 14990 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 00:54:17 +0100 +Core id: 5 +Ending time: Mon, 20 Dec 2021 01:04:17 +0100 - Duration: 600010 seconds +Real workload: 1.593696487752825E11 - Integer reached: 323445 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 14991 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 00:54:17 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 01:04:17 +0100 - Duration: 600001 seconds +Real workload: 4.870795241494541E11 - Integer reached: 553394 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 14992 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 00:54:17 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 01:04:17 +0100 - Duration: 600008 seconds +Real workload: 5.81389682869435E11 - Integer reached: 602587 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + 87.08870790047656 1.38693e+12 6.27924e-11 0 0 +------ + +--- Final result to print to File + -------------------------------------------------------------------------------- + +++++ +++++ +++++ Configuration Description +-------------------------------------------------------------------------------- +Configuration: 300003-2-2 +phone format: 3,0,0,0,0,3,2,2 +Exact values of frequencies: [1804800- 0- 0- 0- 0- 1804800- 1478400- 1766400] + +Power meter results +------------------------------------------------------------ +time (s): 602.8588590621948 +Ins Current (mA):530.4661490576748 +Samples: 3000000 +Consumed Energy (mAs): 313519.34844171564 +Consumed Energy (mAh): 87.08870790047656 +Consumed Energy (mWs): 1489425.3089337926 +Consumed Energy (mWh): 413.7292524816091 +Avg power (mW): 2482.78103690326 +Avg Current (mA): 522.3454254731327 +Avg Voltage (V): 4.753140193875335 + +Threads results +------------------------------------------------------------ +Thread : 0 - ThreadProcess id: 14989 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 00:54:17 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 01:04:17 +0100 - Duration: 600014 seconds +Real workload: 1.5909381174213907E11 - Integer reached: 323176 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 14990 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 00:54:17 +0100 +Core id: 5 +Ending time: Mon, 20 Dec 2021 01:04:17 +0100 - Duration: 600010 seconds +Real workload: 1.593696487752825E11 - Integer reached: 323445 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 14991 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 00:54:17 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 01:04:17 +0100 - Duration: 600001 seconds +Real workload: 4.870795241494541E11 - Integer reached: 553394 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 14992 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 00:54:17 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 01:04:17 +0100 - Duration: 600008 seconds +Real workload: 5.81389682869435E11 - Integer reached: 602587 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +Expermiment results +------------------------------------------------------------ +Energy Consumed (mAh): 87.08870790047656 +Workload: 1.38693e+12 +Energy efficiency: 6.27924e-11 +-------------------------------------------------------------------------------- + + +--- Writing to the total result file +--- Removing previous tested configuration tmp_output folder +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_02_37_33/app_output_folder/all_workloads.txt' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_02_37_33/app_output_folder/Thread_0_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_02_37_33/app_output_folder/Thread_0_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_02_37_33/app_output_folder/Thread_1_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_02_37_33/app_output_folder/Thread_1_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_02_37_33/app_output_folder/Thread_2_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_02_37_33/app_output_folder/Thread_2_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_02_37_33/app_output_folder/Thread_3_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_02_37_33/app_output_folder/Thread_3_ready_for_sampling' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_02_37_33/app_output_folder' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_02_37_33/configuration_mesurement.csv' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_02_37_33/energy_power_workload_energyByWorkload_ccInfo' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_02_37_33/logcat_output' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_02_37_33/powermeter_summary.txt' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_02_37_33' +--- Moving the current experiment tmp_folder to the output result folder +writing a temporary file for the main script with format energy_power_workload_energyByWorkload_ccInfo +--- Obtaining experiment summary result to add to result folder +--- Experiment result, Energy consumed = 87.08870790047656 +--- Experiment result, Avg Power = 2482.78103690326 +--- Experiment result, Total Workload = 1.38693e+12 +--- Experiment result, Energy Efficiency = 6.27924e-11 +--- Adding result to summary file +--- Starting cc information : 0 +--- Ending cc information : 0 +--- The file /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/summary.csv exists we just appending the result to the file +--- Experiments performed on configuration 300003-2-2. +--- Observing a pause betwenn experiment; pause duration : 180 seconds; starting at 05Oct22_02_50_16 +--- Performing experiments on configuration 300030-2-2 +--- Cleaning the tmp expermiment folder : /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- Second step : verifying the battery level +--- Verifying the battery level +--- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe +--- Current battery level : 50 +Current battery level: OKAY +--- Third step calibrating phone core frequency +--- Resetting all frequency configurations + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu5/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor +--- Frequency level of core 0 is 3 +--- Exact frequency of core 0: 1804800 +--- Modifying the governor of core 0 +--- Modifying the the current frequency of core 0 with frequency 1804800 +--- Frequency level of core 1 is 0 +--- Exact frequency of core 1: 0 +--- Modifying the governor of core 1 +--- Modifying the the current frequency of core 1 with frequency 0 +--- Frequency level of core 2 is 0 +--- Exact frequency of core 2: 0 +--- Modifying the governor of core 2 +--- Modifying the the current frequency of core 2 with frequency 0 +--- Frequency level of core 3 is 0 +--- Exact frequency of core 3: 0 +--- Modifying the governor of core 3 +--- Modifying the the current frequency of core 3 with frequency 0 +--- Frequency level of core 4 is 3 +--- Exact frequency of core 4: 1804800 +--- Modifying the governor of core 4 +--- Modifying the the current frequency of core 4 with frequency 1804800 +--- Frequency level of core 5 is 0 +--- Exact frequency of core 5: 0 +--- Modifying the governor of core 5 +--- Modifying the the current frequency of core 5 with frequency 0 +--- Frequency level of core 6 is 2 +--- Exact frequency of core 6: 1478400 +--- Modifying the governor of core 6 +--- Modifying the the current frequency of core 6 with frequency 1478400 +--- Frequency level of core 7 is 2 +--- Exact frequency of core 7: 1766400 +--- Modifying the governor of core 7 +--- Modifying the the current frequency of core 7 with frequency 1766400 +--- Calibrating Monsoon power meter, please wait for 10 seconds... +powermeter script : --- Inside the monsoon_power_meter, arg function: 1 +powermeter script : calibration duration = 10 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 50000 + returning 50000 samples after experiments +powermeter script : Power meter calibration okay +--- Monsoon power meter Calibrated +--- starting the benchmarking app +## writing the configuration inside the phone file + --- Removing file /sdcard/experiments_automatization +rm '/sdcard/experiments_automatization/current_configuration.txt' +rm '/sdcard/experiments_automatization/experiment_duration.txt' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ended' +rmdir '/sdcard/experiments_automatization/app_output_folder' +rmdir '/sdcard/experiments_automatization' + --- Clearing the logcat + --- Creating file /sdcard/experiments_automatization +----- Uninstalling experiment app +Success +----- Installing experiment app +Performing Streamed Install +Success +------ Giving rights to experiment app +----- Starting experiment app +Starting: Intent { cmp=com.opportunistask.scheduling.benchmarking_app_to_test_big_cores/.MainActivity } +adb command : ps -A | grep com.opportunistask.scheduling.benchmarking_app_to_test_big_cores + ----- Experiment app started with pid: 16041 +---- waiting for benchmarking app thread to be pinned and to be ready +--- frequency level of core 0 is 3 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 3 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of cores to occupy = 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 1 +--- The current number of thread ready to be sambled : 1, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 4 +--- Now threads are running and the phone is ready to be sampled with the power meter \n--- Threads pids +Thread_0_ready_for_sampling +Thread_1_ready_for_sampling +Thread_2_ready_for_sampling +Thread_3_ready_for_sampling +--- Printing cc_info beginning datas (for the samsung galaxy s8) + --- Starting power meter sampling for about 600 seconds +--- Sampling with the Monsoon power meter +powermeter script : --- Inside the monsoon_power_meter, arg function: 2 +powermeter script : Experiment duration = 600 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 3000000 + returning 3000000 samples after experiments +powermeter script : Total nomber of sample measured : 3000000 +powermeter script : Computing powermeter summary result + Number of samples = 3000000 +powermeter script : We computed the energy on 600 samples +powermeter script : average_power = 2048.4362673134306 +powermeter script : average_power with numpy arrays = 2048.43626731296 +powermeter script : Summary Result = time (s): 601.6419680118561 +Ins Current (mA):412.94059156990033 +Samples: 3000000 +Consumed Energy (mAs): 253646.57879000445 +Consumed Energy (mAh): 70.45738299722346 +Consumed Energy (mWs): 1224396.890655572 +Consumed Energy (mWh): 340.11024740432555 +Avg power (mW): 2048.4362673134306 +Avg Current (mA): 424.29767516011276 +Avg Voltage (V): 4.827828166959514 +Exp Batt Life (hrs for 1000mAh battery): NOT COMPUTED +--- Monsoon power meter sampling is finished ! + --- experiment folder path /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- frequency level of core 0 is 3 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 3 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of threads normally started = 4 +--- Number of thread ended: 4 +--- Now threads are stopped, getting the cc_info_level for samsung +--- Copying thread results locally +command /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe pull /sdcard/experiments_automatization/app_output_folder C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder </dev/null +/sdcard/experiments_automatization/app_output_folder/: 8 files pulled, 0 skipped. 0.0 MB/s (1814 bytes in 0.047s) +saving the logcat file to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder -/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder- +--- Parsing result from /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/raw_result.txt +--- Getting exact configuration with frequency +--- Configuration with frequencies = [1804800- 0- 0- 0- 1804800- 0- 1478400- 1766400] +--- Getting the powermeter summary +--- Powermeter summary: +time (s): 601.6419680118561 +Ins Current (mA):412.94059156990033 +Samples: 3000000 +Consumed Energy (mAs): 253646.57879000445 +Consumed Energy (mAh): 70.45738299722346 +Consumed Energy (mWs): 1224396.890655572 +Consumed Energy (mWh): 340.11024740432555 +Avg power (mW): 2048.4362673134306 +Avg Current (mA): 424.29767516011276 +Avg Voltage (V): 4.827828166959514 + +--- Getting the total energy consumed of the google pixel +--- Energy consumed = 70.45738299722346 +--- Starting cc_info = 0 +--- Ending cc_info = 0 +--- Getting the average power +--- Avg Power = 2048.4362673134306 +--- Printing the total threads summary +--- Thread results +Thread : 0 - ThreadProcess id: 16066 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 01:10:04 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 01:20:04 +0100 - Duration: 600023 seconds +Real workload: 4.9660169240916885E10 - Integer reached: 184844 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 16067 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 01:10:04 +0100 +Core id: 4 +Ending time: Mon, 20 Dec 2021 01:20:04 +0100 - Duration: 600020 seconds +Real workload: 4.95531889557679E10 - Integer reached: 184653 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 16068 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 01:10:04 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 01:20:04 +0100 - Duration: 600002 seconds +Real workload: 4.79753647880202E11 - Integer reached: 549374 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 16069 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 01:10:04 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 01:20:04 +0100 - Duration: 600005 seconds +Real workload: 5.81550091277546E11 - Integer reached: 602667 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +--- Counting the total workload command : print_total_workload /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder app_output_folder 3,0,0,0,3,0,2,2 /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first +--- Total workload : 1.16052e+12 +--- Getting energy efficiency +--- Energy efficiency: 6.07119e-11 +--- Building what we will add to the total result file command +------ + (build_configuration_raw_result 300030-2-2 3,0,0,0,3,0,2,2 [1804800- 0- 0- 0- 1804800- 0- 1478400- 1766400] time (s): 601.6419680118561 +Ins Current (mA):412.94059156990033 +Samples: 3000000 +Consumed Energy (mAs): 253646.57879000445 +Consumed Energy (mAh): 70.45738299722346 +Consumed Energy (mWs): 1224396.890655572 +Consumed Energy (mWh): 340.11024740432555 +Avg power (mW): 2048.4362673134306 +Avg Current (mA): 424.29767516011276 +Avg Voltage (V): 4.827828166959514 + Thread : 0 - ThreadProcess id: 16066 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 01:10:04 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 01:20:04 +0100 - Duration: 600023 seconds +Real workload: 4.9660169240916885E10 - Integer reached: 184844 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 16067 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 01:10:04 +0100 +Core id: 4 +Ending time: Mon, 20 Dec 2021 01:20:04 +0100 - Duration: 600020 seconds +Real workload: 4.95531889557679E10 - Integer reached: 184653 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 16068 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 01:10:04 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 01:20:04 +0100 - Duration: 600002 seconds +Real workload: 4.79753647880202E11 - Integer reached: 549374 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 16069 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 01:10:04 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 01:20:04 +0100 - Duration: 600005 seconds +Real workload: 5.81550091277546E11 - Integer reached: 602667 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + 70.45738299722346 1.16052e+12 6.07119e-11 0 0 +------ + +--- Final result to print to File + -------------------------------------------------------------------------------- + +++++ +++++ +++++ Configuration Description +-------------------------------------------------------------------------------- +Configuration: 300030-2-2 +phone format: 3,0,0,0,3,0,2,2 +Exact values of frequencies: [1804800- 0- 0- 0- 1804800- 0- 1478400- 1766400] + +Power meter results +------------------------------------------------------------ +time (s): 601.6419680118561 +Ins Current (mA):412.94059156990033 +Samples: 3000000 +Consumed Energy (mAs): 253646.57879000445 +Consumed Energy (mAh): 70.45738299722346 +Consumed Energy (mWs): 1224396.890655572 +Consumed Energy (mWh): 340.11024740432555 +Avg power (mW): 2048.4362673134306 +Avg Current (mA): 424.29767516011276 +Avg Voltage (V): 4.827828166959514 + +Threads results +------------------------------------------------------------ +Thread : 0 - ThreadProcess id: 16066 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 01:10:04 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 01:20:04 +0100 - Duration: 600023 seconds +Real workload: 4.9660169240916885E10 - Integer reached: 184844 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 16067 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 01:10:04 +0100 +Core id: 4 +Ending time: Mon, 20 Dec 2021 01:20:04 +0100 - Duration: 600020 seconds +Real workload: 4.95531889557679E10 - Integer reached: 184653 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 16068 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 01:10:04 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 01:20:04 +0100 - Duration: 600002 seconds +Real workload: 4.79753647880202E11 - Integer reached: 549374 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 16069 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 01:10:04 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 01:20:04 +0100 - Duration: 600005 seconds +Real workload: 5.81550091277546E11 - Integer reached: 602667 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +Expermiment results +------------------------------------------------------------ +Energy Consumed (mAh): 70.45738299722346 +Workload: 1.16052e+12 +Energy efficiency: 6.07119e-11 +-------------------------------------------------------------------------------- + + +--- Writing to the total result file +--- Removing previous tested configuration tmp_output folder +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_02_53_18/app_output_folder/all_workloads.txt' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_02_53_18/app_output_folder/Thread_0_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_02_53_18/app_output_folder/Thread_0_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_02_53_18/app_output_folder/Thread_1_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_02_53_18/app_output_folder/Thread_1_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_02_53_18/app_output_folder/Thread_2_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_02_53_18/app_output_folder/Thread_2_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_02_53_18/app_output_folder/Thread_3_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_02_53_18/app_output_folder/Thread_3_ready_for_sampling' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_02_53_18/app_output_folder' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_02_53_18/configuration_mesurement.csv' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_02_53_18/energy_power_workload_energyByWorkload_ccInfo' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_02_53_18/logcat_output' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_02_53_18/powermeter_summary.txt' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_02_53_18' +--- Moving the current experiment tmp_folder to the output result folder +writing a temporary file for the main script with format energy_power_workload_energyByWorkload_ccInfo +--- Obtaining experiment summary result to add to result folder +--- Experiment result, Energy consumed = 70.45738299722346 +--- Experiment result, Avg Power = 2048.4362673134306 +--- Experiment result, Total Workload = 1.16052e+12 +--- Experiment result, Energy Efficiency = 6.07119e-11 +--- Adding result to summary file +--- Starting cc information : 0 +--- Ending cc information : 0 +--- The file /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/summary.csv exists we just appending the result to the file +--- Experiments performed on configuration 300030-2-2. +--- Observing a pause betwenn experiment; pause duration : 180 seconds; starting at 05Oct22_03_06_03 +--- Performing experiments on configuration 300030-2-2 +--- Cleaning the tmp expermiment folder : /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- Second step : verifying the battery level +--- Verifying the battery level +--- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe +--- Current battery level : 50 +Current battery level: OKAY +--- Third step calibrating phone core frequency +--- Resetting all frequency configurations + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu5/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor +--- Frequency level of core 0 is 3 +--- Exact frequency of core 0: 1804800 +--- Modifying the governor of core 0 +--- Modifying the the current frequency of core 0 with frequency 1804800 +--- Frequency level of core 1 is 0 +--- Exact frequency of core 1: 0 +--- Modifying the governor of core 1 +--- Modifying the the current frequency of core 1 with frequency 0 +--- Frequency level of core 2 is 0 +--- Exact frequency of core 2: 0 +--- Modifying the governor of core 2 +--- Modifying the the current frequency of core 2 with frequency 0 +--- Frequency level of core 3 is 0 +--- Exact frequency of core 3: 0 +--- Modifying the governor of core 3 +--- Modifying the the current frequency of core 3 with frequency 0 +--- Frequency level of core 4 is 3 +--- Exact frequency of core 4: 1804800 +--- Modifying the governor of core 4 +--- Modifying the the current frequency of core 4 with frequency 1804800 +--- Frequency level of core 5 is 0 +--- Exact frequency of core 5: 0 +--- Modifying the governor of core 5 +--- Modifying the the current frequency of core 5 with frequency 0 +--- Frequency level of core 6 is 2 +--- Exact frequency of core 6: 1478400 +--- Modifying the governor of core 6 +--- Modifying the the current frequency of core 6 with frequency 1478400 +--- Frequency level of core 7 is 2 +--- Exact frequency of core 7: 1766400 +--- Modifying the governor of core 7 +--- Modifying the the current frequency of core 7 with frequency 1766400 +--- Calibrating Monsoon power meter, please wait for 10 seconds... +powermeter script : --- Inside the monsoon_power_meter, arg function: 1 +powermeter script : calibration duration = 10 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 50000 + returning 50000 samples after experiments +powermeter script : Power meter calibration okay +--- Monsoon power meter Calibrated +--- starting the benchmarking app +## writing the configuration inside the phone file + --- Removing file /sdcard/experiments_automatization +rm '/sdcard/experiments_automatization/current_configuration.txt' +rm '/sdcard/experiments_automatization/experiment_duration.txt' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ended' +rmdir '/sdcard/experiments_automatization/app_output_folder' +rmdir '/sdcard/experiments_automatization' + --- Clearing the logcat + --- Creating file /sdcard/experiments_automatization +----- Uninstalling experiment app +Success +----- Installing experiment app +Performing Streamed Install +Success +------ Giving rights to experiment app +----- Starting experiment app +Starting: Intent { cmp=com.opportunistask.scheduling.benchmarking_app_to_test_big_cores/.MainActivity } +adb command : ps -A | grep com.opportunistask.scheduling.benchmarking_app_to_test_big_cores + ----- Experiment app started with pid: 17405 +---- waiting for benchmarking app thread to be pinned and to be ready +--- frequency level of core 0 is 3 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 3 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of cores to occupy = 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 4 +--- Now threads are running and the phone is ready to be sampled with the power meter \n--- Threads pids +Thread_0_ready_for_sampling +Thread_1_ready_for_sampling +Thread_2_ready_for_sampling +Thread_3_ready_for_sampling +--- Printing cc_info beginning datas (for the samsung galaxy s8) + --- Starting power meter sampling for about 600 seconds +--- Sampling with the Monsoon power meter +powermeter script : --- Inside the monsoon_power_meter, arg function: 2 +powermeter script : Experiment duration = 600 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 3000000 + returning 3000000 samples after experiments +powermeter script : Total nomber of sample measured : 3000000 +powermeter script : Computing powermeter summary result + Number of samples = 3000000 +powermeter script : We computed the energy on 600 samples +powermeter script : average_power = 2067.1708190595846 +powermeter script : average_power with numpy arrays = 2067.1708190594654 +powermeter script : Summary Result = time (s): 601.8475453853607 +Ins Current (mA):410.2600230098745 +Samples: 3000000 +Consumed Energy (mAs): 257501.0291423176 +Consumed Energy (mAh): 71.52806365064377 +Consumed Energy (mWs): 1241596.504654712 +Consumed Energy (mWh): 344.8879179596422 +Avg power (mW): 2067.1708190595846 +Avg Current (mA): 428.4700360967198 +Avg Voltage (V): 4.824539979250628 +Exp Batt Life (hrs for 1000mAh battery): NOT COMPUTED +--- Monsoon power meter sampling is finished ! + --- experiment folder path /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- frequency level of core 0 is 3 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 3 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of threads normally started = 4 +--- Number of thread ended: 4 +--- Now threads are stopped, getting the cc_info_level for samsung +--- Copying thread results locally +command /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe pull /sdcard/experiments_automatization/app_output_folder C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder </dev/null +/sdcard/experiments_automatization/app_output_folder/: 8 files pulled, 0 skipped. 0.0 MB/s (1817 bytes in 0.053s) +saving the logcat file to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder -/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder- +--- Parsing result from /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/raw_result.txt +--- Getting exact configuration with frequency +--- Configuration with frequencies = [1804800- 0- 0- 0- 1804800- 0- 1478400- 1766400] +--- Getting the powermeter summary +--- Powermeter summary: +time (s): 601.8475453853607 +Ins Current (mA):410.2600230098745 +Samples: 3000000 +Consumed Energy (mAs): 257501.0291423176 +Consumed Energy (mAh): 71.52806365064377 +Consumed Energy (mWs): 1241596.504654712 +Consumed Energy (mWh): 344.8879179596422 +Avg power (mW): 2067.1708190595846 +Avg Current (mA): 428.4700360967198 +Avg Voltage (V): 4.824539979250628 + +--- Getting the total energy consumed of the google pixel +--- Energy consumed = 71.52806365064377 +--- Starting cc_info = 0 +--- Ending cc_info = 0 +--- Getting the average power +--- Avg Power = 2067.1708190595846 +--- Printing the total threads summary +--- Thread results +Thread : 0 - ThreadProcess id: 17432 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 01:25:51 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 01:35:51 +0100 - Duration: 600025 seconds +Real workload: 4.949666658573497E10 - Integer reached: 184552 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 17433 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 01:25:51 +0100 +Core id: 4 +Ending time: Mon, 20 Dec 2021 01:35:51 +0100 - Duration: 600009 seconds +Real workload: 4.940104666925191E10 - Integer reached: 184381 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 17434 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 01:25:51 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 01:35:51 +0100 - Duration: 600006 seconds +Real workload: 4.8539058083828845E11 - Integer reached: 552470 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 17435 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 01:25:51 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 01:35:51 +0100 - Duration: 600004 seconds +Real workload: 5.817666791107582E11 - Integer reached: 602775 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +--- Counting the total workload command : print_total_workload /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder app_output_folder 3,0,0,0,3,0,2,2 /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first +--- Total workload : 1.16605e+12 +--- Getting energy efficiency +--- Energy efficiency: 6.13422e-11 +--- Building what we will add to the total result file command +------ + (build_configuration_raw_result 300030-2-2 3,0,0,0,3,0,2,2 [1804800- 0- 0- 0- 1804800- 0- 1478400- 1766400] time (s): 601.8475453853607 +Ins Current (mA):410.2600230098745 +Samples: 3000000 +Consumed Energy (mAs): 257501.0291423176 +Consumed Energy (mAh): 71.52806365064377 +Consumed Energy (mWs): 1241596.504654712 +Consumed Energy (mWh): 344.8879179596422 +Avg power (mW): 2067.1708190595846 +Avg Current (mA): 428.4700360967198 +Avg Voltage (V): 4.824539979250628 + Thread : 0 - ThreadProcess id: 17432 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 01:25:51 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 01:35:51 +0100 - Duration: 600025 seconds +Real workload: 4.949666658573497E10 - Integer reached: 184552 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 17433 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 01:25:51 +0100 +Core id: 4 +Ending time: Mon, 20 Dec 2021 01:35:51 +0100 - Duration: 600009 seconds +Real workload: 4.940104666925191E10 - Integer reached: 184381 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 17434 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 01:25:51 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 01:35:51 +0100 - Duration: 600006 seconds +Real workload: 4.8539058083828845E11 - Integer reached: 552470 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 17435 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 01:25:51 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 01:35:51 +0100 - Duration: 600004 seconds +Real workload: 5.817666791107582E11 - Integer reached: 602775 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + 71.52806365064377 1.16605e+12 6.13422e-11 0 0 +------ + +--- Final result to print to File + -------------------------------------------------------------------------------- + +++++ +++++ +++++ Configuration Description +-------------------------------------------------------------------------------- +Configuration: 300030-2-2 +phone format: 3,0,0,0,3,0,2,2 +Exact values of frequencies: [1804800- 0- 0- 0- 1804800- 0- 1478400- 1766400] + +Power meter results +------------------------------------------------------------ +time (s): 601.8475453853607 +Ins Current (mA):410.2600230098745 +Samples: 3000000 +Consumed Energy (mAs): 257501.0291423176 +Consumed Energy (mAh): 71.52806365064377 +Consumed Energy (mWs): 1241596.504654712 +Consumed Energy (mWh): 344.8879179596422 +Avg power (mW): 2067.1708190595846 +Avg Current (mA): 428.4700360967198 +Avg Voltage (V): 4.824539979250628 + +Threads results +------------------------------------------------------------ +Thread : 0 - ThreadProcess id: 17432 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 01:25:51 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 01:35:51 +0100 - Duration: 600025 seconds +Real workload: 4.949666658573497E10 - Integer reached: 184552 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 17433 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 01:25:51 +0100 +Core id: 4 +Ending time: Mon, 20 Dec 2021 01:35:51 +0100 - Duration: 600009 seconds +Real workload: 4.940104666925191E10 - Integer reached: 184381 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 17434 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 01:25:51 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 01:35:51 +0100 - Duration: 600006 seconds +Real workload: 4.8539058083828845E11 - Integer reached: 552470 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 17435 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 01:25:51 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 01:35:51 +0100 - Duration: 600004 seconds +Real workload: 5.817666791107582E11 - Integer reached: 602775 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +Expermiment results +------------------------------------------------------------ +Energy Consumed (mAh): 71.52806365064377 +Workload: 1.16605e+12 +Energy efficiency: 6.13422e-11 +-------------------------------------------------------------------------------- + + +--- Writing to the total result file +--- Removing previous tested configuration tmp_output folder +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_03_09_05/app_output_folder/all_workloads.txt' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_03_09_05/app_output_folder/Thread_0_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_03_09_05/app_output_folder/Thread_0_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_03_09_05/app_output_folder/Thread_1_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_03_09_05/app_output_folder/Thread_1_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_03_09_05/app_output_folder/Thread_2_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_03_09_05/app_output_folder/Thread_2_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_03_09_05/app_output_folder/Thread_3_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_03_09_05/app_output_folder/Thread_3_ready_for_sampling' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_03_09_05/app_output_folder' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_03_09_05/configuration_mesurement.csv' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_03_09_05/energy_power_workload_energyByWorkload_ccInfo' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_03_09_05/logcat_output' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_03_09_05/powermeter_summary.txt' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_03_09_05' +--- Moving the current experiment tmp_folder to the output result folder +writing a temporary file for the main script with format energy_power_workload_energyByWorkload_ccInfo +--- Obtaining experiment summary result to add to result folder +--- Experiment result, Energy consumed = 71.52806365064377 +--- Experiment result, Avg Power = 2067.1708190595846 +--- Experiment result, Total Workload = 1.16605e+12 +--- Experiment result, Energy Efficiency = 6.13422e-11 +--- Adding result to summary file +--- Starting cc information : 0 +--- Ending cc information : 0 +--- The file /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/summary.csv exists we just appending the result to the file +--- Experiments performed on configuration 300030-2-2. +--- Observing a pause betwenn experiment; pause duration : 180 seconds; starting at 05Oct22_03_21_50 +--- Performing experiments on configuration 300030-2-2 +--- Cleaning the tmp expermiment folder : /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- Second step : verifying the battery level +--- Verifying the battery level +--- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe +--- Current battery level : 50 +Current battery level: OKAY +--- Third step calibrating phone core frequency +--- Resetting all frequency configurations + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu5/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor +--- Frequency level of core 0 is 3 +--- Exact frequency of core 0: 1804800 +--- Modifying the governor of core 0 +--- Modifying the the current frequency of core 0 with frequency 1804800 +--- Frequency level of core 1 is 0 +--- Exact frequency of core 1: 0 +--- Modifying the governor of core 1 +--- Modifying the the current frequency of core 1 with frequency 0 +--- Frequency level of core 2 is 0 +--- Exact frequency of core 2: 0 +--- Modifying the governor of core 2 +--- Modifying the the current frequency of core 2 with frequency 0 +--- Frequency level of core 3 is 0 +--- Exact frequency of core 3: 0 +--- Modifying the governor of core 3 +--- Modifying the the current frequency of core 3 with frequency 0 +--- Frequency level of core 4 is 3 +--- Exact frequency of core 4: 1804800 +--- Modifying the governor of core 4 +--- Modifying the the current frequency of core 4 with frequency 1804800 +--- Frequency level of core 5 is 0 +--- Exact frequency of core 5: 0 +--- Modifying the governor of core 5 +--- Modifying the the current frequency of core 5 with frequency 0 +--- Frequency level of core 6 is 2 +--- Exact frequency of core 6: 1478400 +--- Modifying the governor of core 6 +--- Modifying the the current frequency of core 6 with frequency 1478400 +--- Frequency level of core 7 is 2 +--- Exact frequency of core 7: 1766400 +--- Modifying the governor of core 7 +--- Modifying the the current frequency of core 7 with frequency 1766400 +--- Calibrating Monsoon power meter, please wait for 10 seconds... +powermeter script : --- Inside the monsoon_power_meter, arg function: 1 +powermeter script : calibration duration = 10 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 50000 + returning 50000 samples after experiments +powermeter script : Power meter calibration okay +--- Monsoon power meter Calibrated +--- starting the benchmarking app +## writing the configuration inside the phone file + --- Removing file /sdcard/experiments_automatization +rm '/sdcard/experiments_automatization/current_configuration.txt' +rm '/sdcard/experiments_automatization/experiment_duration.txt' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ended' +rmdir '/sdcard/experiments_automatization/app_output_folder' +rmdir '/sdcard/experiments_automatization' + --- Clearing the logcat + --- Creating file /sdcard/experiments_automatization +----- Uninstalling experiment app +Success +----- Installing experiment app +Performing Streamed Install +Success +------ Giving rights to experiment app +----- Starting experiment app +Starting: Intent { cmp=com.opportunistask.scheduling.benchmarking_app_to_test_big_cores/.MainActivity } +adb command : ps -A | grep com.opportunistask.scheduling.benchmarking_app_to_test_big_cores + ----- Experiment app started with pid: 18427 +---- waiting for benchmarking app thread to be pinned and to be ready +--- frequency level of core 0 is 3 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 3 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of cores to occupy = 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 4 +--- Now threads are running and the phone is ready to be sampled with the power meter \n--- Threads pids +Thread_0_ready_for_sampling +Thread_1_ready_for_sampling +Thread_2_ready_for_sampling +Thread_3_ready_for_sampling +--- Printing cc_info beginning datas (for the samsung galaxy s8) + --- Starting power meter sampling for about 600 seconds +--- Sampling with the Monsoon power meter +powermeter script : --- Inside the monsoon_power_meter, arg function: 2 +powermeter script : Experiment duration = 600 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 3000000 + returning 3000000 samples after experiments +powermeter script : Total nomber of sample measured : 3000000 +powermeter script : Computing powermeter summary result + Number of samples = 3000000 +powermeter script : We computed the energy on 600 samples +powermeter script : average_power = 2034.3834686908758 +powermeter script : average_power with numpy arrays = 2034.383468690273 +powermeter script : Summary Result = time (s): 602.7220797538757 +Ins Current (mA):421.5879448673113 +Samples: 3000000 +Consumed Energy (mAs): 253312.6190946482 +Consumed Energy (mAh): 70.36461641518005 +Consumed Energy (mWs): 1223067.125634462 +Consumed Energy (mWh): 339.74086823179505 +Avg power (mW): 2034.3834686908758 +Avg Current (mA): 421.1804854065548 +Avg Voltage (V): 4.830194036001306 +Exp Batt Life (hrs for 1000mAh battery): NOT COMPUTED +--- Monsoon power meter sampling is finished ! + --- experiment folder path /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- frequency level of core 0 is 3 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 3 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of threads normally started = 4 +--- Number of thread ended: 4 +--- Now threads are stopped, getting the cc_info_level for samsung +--- Copying thread results locally +command /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe pull /sdcard/experiments_automatization/app_output_folder C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder </dev/null +/sdcard/experiments_automatization/app_output_folder/: 8 files pulled, 0 skipped. 0.0 MB/s (1818 bytes in 0.059s) +saving the logcat file to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder -/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder- +--- Parsing result from /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/raw_result.txt +--- Getting exact configuration with frequency +--- Configuration with frequencies = [1804800- 0- 0- 0- 1804800- 0- 1478400- 1766400] +--- Getting the powermeter summary +--- Powermeter summary: +time (s): 602.7220797538757 +Ins Current (mA):421.5879448673113 +Samples: 3000000 +Consumed Energy (mAs): 253312.6190946482 +Consumed Energy (mAh): 70.36461641518005 +Consumed Energy (mWs): 1223067.125634462 +Consumed Energy (mWh): 339.74086823179505 +Avg power (mW): 2034.3834686908758 +Avg Current (mA): 421.1804854065548 +Avg Voltage (V): 4.830194036001306 + +--- Getting the total energy consumed of the google pixel +--- Energy consumed = 70.36461641518005 +--- Starting cc_info = 0 +--- Ending cc_info = 0 +--- Getting the average power +--- Avg Power = 2034.3834686908758 +--- Printing the total threads summary +--- Thread results +Thread : 0 - ThreadProcess id: 18452 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 01:41:38 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 01:51:38 +0100 - Duration: 600012 seconds +Real workload: 4.9561586197416245E10 - Integer reached: 184668 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 18453 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 01:41:38 +0100 +Core id: 4 +Ending time: Mon, 20 Dec 2021 01:51:38 +0100 - Duration: 600022 seconds +Real workload: 4.9678664901680664E10 - Integer reached: 184877 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 18454 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 01:41:38 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 01:51:38 +0100 - Duration: 600007 seconds +Real workload: 4.802329877608495E11 - Integer reached: 549638 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 18455 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 01:41:38 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 01:51:38 +0100 - Duration: 600009 seconds +Real workload: 5.759095117447626E11 - Integer reached: 599847 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +--- Counting the total workload command : print_total_workload /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder app_output_folder 3,0,0,0,3,0,2,2 /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first +--- Total workload : 1.15538e+12 +--- Getting energy efficiency +--- Energy efficiency: 6.09017e-11 +--- Building what we will add to the total result file command +------ + (build_configuration_raw_result 300030-2-2 3,0,0,0,3,0,2,2 [1804800- 0- 0- 0- 1804800- 0- 1478400- 1766400] time (s): 602.7220797538757 +Ins Current (mA):421.5879448673113 +Samples: 3000000 +Consumed Energy (mAs): 253312.6190946482 +Consumed Energy (mAh): 70.36461641518005 +Consumed Energy (mWs): 1223067.125634462 +Consumed Energy (mWh): 339.74086823179505 +Avg power (mW): 2034.3834686908758 +Avg Current (mA): 421.1804854065548 +Avg Voltage (V): 4.830194036001306 + Thread : 0 - ThreadProcess id: 18452 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 01:41:38 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 01:51:38 +0100 - Duration: 600012 seconds +Real workload: 4.9561586197416245E10 - Integer reached: 184668 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 18453 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 01:41:38 +0100 +Core id: 4 +Ending time: Mon, 20 Dec 2021 01:51:38 +0100 - Duration: 600022 seconds +Real workload: 4.9678664901680664E10 - Integer reached: 184877 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 18454 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 01:41:38 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 01:51:38 +0100 - Duration: 600007 seconds +Real workload: 4.802329877608495E11 - Integer reached: 549638 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 18455 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 01:41:38 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 01:51:38 +0100 - Duration: 600009 seconds +Real workload: 5.759095117447626E11 - Integer reached: 599847 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + 70.36461641518005 1.15538e+12 6.09017e-11 0 0 +------ + +--- Final result to print to File + -------------------------------------------------------------------------------- + +++++ +++++ +++++ Configuration Description +-------------------------------------------------------------------------------- +Configuration: 300030-2-2 +phone format: 3,0,0,0,3,0,2,2 +Exact values of frequencies: [1804800- 0- 0- 0- 1804800- 0- 1478400- 1766400] + +Power meter results +------------------------------------------------------------ +time (s): 602.7220797538757 +Ins Current (mA):421.5879448673113 +Samples: 3000000 +Consumed Energy (mAs): 253312.6190946482 +Consumed Energy (mAh): 70.36461641518005 +Consumed Energy (mWs): 1223067.125634462 +Consumed Energy (mWh): 339.74086823179505 +Avg power (mW): 2034.3834686908758 +Avg Current (mA): 421.1804854065548 +Avg Voltage (V): 4.830194036001306 + +Threads results +------------------------------------------------------------ +Thread : 0 - ThreadProcess id: 18452 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 01:41:38 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 01:51:38 +0100 - Duration: 600012 seconds +Real workload: 4.9561586197416245E10 - Integer reached: 184668 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 18453 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 01:41:38 +0100 +Core id: 4 +Ending time: Mon, 20 Dec 2021 01:51:38 +0100 - Duration: 600022 seconds +Real workload: 4.9678664901680664E10 - Integer reached: 184877 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 18454 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 01:41:38 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 01:51:38 +0100 - Duration: 600007 seconds +Real workload: 4.802329877608495E11 - Integer reached: 549638 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 18455 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 01:41:38 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 01:51:38 +0100 - Duration: 600009 seconds +Real workload: 5.759095117447626E11 - Integer reached: 599847 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +Expermiment results +------------------------------------------------------------ +Energy Consumed (mAh): 70.36461641518005 +Workload: 1.15538e+12 +Energy efficiency: 6.09017e-11 +-------------------------------------------------------------------------------- + + +--- Writing to the total result file +--- Removing previous tested configuration tmp_output folder +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_03_24_52/app_output_folder/all_workloads.txt' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_03_24_52/app_output_folder/Thread_0_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_03_24_52/app_output_folder/Thread_0_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_03_24_52/app_output_folder/Thread_1_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_03_24_52/app_output_folder/Thread_1_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_03_24_52/app_output_folder/Thread_2_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_03_24_52/app_output_folder/Thread_2_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_03_24_52/app_output_folder/Thread_3_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_03_24_52/app_output_folder/Thread_3_ready_for_sampling' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_03_24_52/app_output_folder' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_03_24_52/configuration_mesurement.csv' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_03_24_52/energy_power_workload_energyByWorkload_ccInfo' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_03_24_52/logcat_output' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_03_24_52/powermeter_summary.txt' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_03_24_52' +--- Moving the current experiment tmp_folder to the output result folder +writing a temporary file for the main script with format energy_power_workload_energyByWorkload_ccInfo +--- Obtaining experiment summary result to add to result folder +--- Experiment result, Energy consumed = 70.36461641518005 +--- Experiment result, Avg Power = 2034.3834686908758 +--- Experiment result, Total Workload = 1.15538e+12 +--- Experiment result, Energy Efficiency = 6.09017e-11 +--- Adding result to summary file +--- Starting cc information : 0 +--- Ending cc information : 0 +--- The file /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/summary.csv exists we just appending the result to the file +--- Experiments performed on configuration 300030-2-2. +--- Observing a pause betwenn experiment; pause duration : 180 seconds; starting at 05Oct22_03_37_38 +--- Performing experiments on configuration 300300-2-2 +--- Cleaning the tmp expermiment folder : /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- Second step : verifying the battery level +--- Verifying the battery level +--- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe +--- Current battery level : 50 +Current battery level: OKAY +--- Third step calibrating phone core frequency +--- Resetting all frequency configurations + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu5/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor +--- Frequency level of core 0 is 3 +--- Exact frequency of core 0: 1804800 +--- Modifying the governor of core 0 +--- Modifying the the current frequency of core 0 with frequency 1804800 +--- Frequency level of core 1 is 0 +--- Exact frequency of core 1: 0 +--- Modifying the governor of core 1 +--- Modifying the the current frequency of core 1 with frequency 0 +--- Frequency level of core 2 is 0 +--- Exact frequency of core 2: 0 +--- Modifying the governor of core 2 +--- Modifying the the current frequency of core 2 with frequency 0 +--- Frequency level of core 3 is 3 +--- Exact frequency of core 3: 1804800 +--- Modifying the governor of core 3 +--- Modifying the the current frequency of core 3 with frequency 1804800 +--- Frequency level of core 4 is 0 +--- Exact frequency of core 4: 0 +--- Modifying the governor of core 4 +--- Modifying the the current frequency of core 4 with frequency 0 +--- Frequency level of core 5 is 0 +--- Exact frequency of core 5: 0 +--- Modifying the governor of core 5 +--- Modifying the the current frequency of core 5 with frequency 0 +--- Frequency level of core 6 is 2 +--- Exact frequency of core 6: 1478400 +--- Modifying the governor of core 6 +--- Modifying the the current frequency of core 6 with frequency 1478400 +--- Frequency level of core 7 is 2 +--- Exact frequency of core 7: 1766400 +--- Modifying the governor of core 7 +--- Modifying the the current frequency of core 7 with frequency 1766400 +--- Calibrating Monsoon power meter, please wait for 10 seconds... +powermeter script : --- Inside the monsoon_power_meter, arg function: 1 +powermeter script : calibration duration = 10 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 50000 + returning 50000 samples after experiments +powermeter script : Power meter calibration okay +--- Monsoon power meter Calibrated +--- starting the benchmarking app +## writing the configuration inside the phone file + --- Removing file /sdcard/experiments_automatization +rm '/sdcard/experiments_automatization/current_configuration.txt' +rm '/sdcard/experiments_automatization/experiment_duration.txt' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ended' +rmdir '/sdcard/experiments_automatization/app_output_folder' +rmdir '/sdcard/experiments_automatization' + --- Clearing the logcat + --- Creating file /sdcard/experiments_automatization +----- Uninstalling experiment app +Success +----- Installing experiment app +Performing Streamed Install +Success +------ Giving rights to experiment app +----- Starting experiment app +Starting: Intent { cmp=com.opportunistask.scheduling.benchmarking_app_to_test_big_cores/.MainActivity } +adb command : ps -A | grep com.opportunistask.scheduling.benchmarking_app_to_test_big_cores + ----- Experiment app started with pid: 19449 +---- waiting for benchmarking app thread to be pinned and to be ready +--- frequency level of core 0 is 3 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 3 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of cores to occupy = 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 1 +--- The current number of thread ready to be sambled : 1, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 4 +--- Now threads are running and the phone is ready to be sampled with the power meter \n--- Threads pids +Thread_0_ready_for_sampling +Thread_1_ready_for_sampling +Thread_2_ready_for_sampling +Thread_3_ready_for_sampling +--- Printing cc_info beginning datas (for the samsung galaxy s8) + --- Starting power meter sampling for about 600 seconds +--- Sampling with the Monsoon power meter +powermeter script : --- Inside the monsoon_power_meter, arg function: 2 +powermeter script : Experiment duration = 600 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 3000000 + returning 3000000 samples after experiments +powermeter script : Total nomber of sample measured : 3000000 +powermeter script : Computing powermeter summary result + Number of samples = 3000000 +powermeter script : We computed the energy on 600 samples +powermeter script : average_power = 2043.532655655454 +powermeter script : average_power with numpy arrays = 2043.532655654985 +powermeter script : Summary Result = time (s): 601.7636823654175 +Ins Current (mA):442.2578886615847 +Samples: 3000000 +Consumed Energy (mAs): 253963.39334611077 +Consumed Energy (mAh): 70.54538704058632 +Consumed Energy (mWs): 1226083.3100226054 +Consumed Energy (mWh): 340.5786972285015 +Avg power (mW): 2043.532655655454 +Avg Current (mA): 423.2155994909438 +Avg Voltage (V): 4.828585378500875 +Exp Batt Life (hrs for 1000mAh battery): NOT COMPUTED +--- Monsoon power meter sampling is finished ! + --- experiment folder path /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- frequency level of core 0 is 3 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 3 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of threads normally started = 4 +--- Number of thread ended: 4 +--- Now threads are stopped, getting the cc_info_level for samsung +--- Copying thread results locally +command /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe pull /sdcard/experiments_automatization/app_output_folder C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder </dev/null +/sdcard/experiments_automatization/app_output_folder/: 8 files pulled, 0 skipped. 0.0 MB/s (1817 bytes in 0.046s) +saving the logcat file to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder -/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder- +--- Parsing result from /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/raw_result.txt +--- Getting exact configuration with frequency +--- Configuration with frequencies = [1804800- 0- 0- 1804800- 0- 0- 1478400- 1766400] +--- Getting the powermeter summary +--- Powermeter summary: +time (s): 601.7636823654175 +Ins Current (mA):442.2578886615847 +Samples: 3000000 +Consumed Energy (mAs): 253963.39334611077 +Consumed Energy (mAh): 70.54538704058632 +Consumed Energy (mWs): 1226083.3100226054 +Consumed Energy (mWh): 340.5786972285015 +Avg power (mW): 2043.532655655454 +Avg Current (mA): 423.2155994909438 +Avg Voltage (V): 4.828585378500875 + +--- Getting the total energy consumed of the google pixel +--- Energy consumed = 70.54538704058632 +--- Starting cc_info = 0 +--- Ending cc_info = 0 +--- Getting the average power +--- Avg Power = 2043.532655655454 +--- Printing the total threads summary +--- Thread results +Thread : 0 - ThreadProcess id: 19474 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 01:57:26 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 02:07:26 +0100 - Duration: 600025 seconds +Real workload: 4.999251284159331E10 - Integer reached: 185436 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 19475 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 01:57:26 +0100 +Core id: 3 +Ending time: Mon, 20 Dec 2021 02:07:27 +0100 - Duration: 600028 seconds +Real workload: 4.949275045696362E10 - Integer reached: 184545 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 19477 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 01:57:26 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 02:07:27 +0100 - Duration: 600002 seconds +Real workload: 4.8537597118890173E11 - Integer reached: 552462 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 19478 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 01:57:26 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 02:07:27 +0100 - Duration: 600007 seconds +Real workload: 5.814458231509528E11 - Integer reached: 602615 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +--- Counting the total workload command : print_total_workload /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder app_output_folder 3,0,0,3,0,0,2,2 /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first +--- Total workload : 1.16631e+12 +--- Getting energy efficiency +--- Energy efficiency: 6.0486e-11 +--- Building what we will add to the total result file command +------ + (build_configuration_raw_result 300300-2-2 3,0,0,3,0,0,2,2 [1804800- 0- 0- 1804800- 0- 0- 1478400- 1766400] time (s): 601.7636823654175 +Ins Current (mA):442.2578886615847 +Samples: 3000000 +Consumed Energy (mAs): 253963.39334611077 +Consumed Energy (mAh): 70.54538704058632 +Consumed Energy (mWs): 1226083.3100226054 +Consumed Energy (mWh): 340.5786972285015 +Avg power (mW): 2043.532655655454 +Avg Current (mA): 423.2155994909438 +Avg Voltage (V): 4.828585378500875 + Thread : 0 - ThreadProcess id: 19474 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 01:57:26 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 02:07:26 +0100 - Duration: 600025 seconds +Real workload: 4.999251284159331E10 - Integer reached: 185436 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 19475 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 01:57:26 +0100 +Core id: 3 +Ending time: Mon, 20 Dec 2021 02:07:27 +0100 - Duration: 600028 seconds +Real workload: 4.949275045696362E10 - Integer reached: 184545 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 19477 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 01:57:26 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 02:07:27 +0100 - Duration: 600002 seconds +Real workload: 4.8537597118890173E11 - Integer reached: 552462 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 19478 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 01:57:26 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 02:07:27 +0100 - Duration: 600007 seconds +Real workload: 5.814458231509528E11 - Integer reached: 602615 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + 70.54538704058632 1.16631e+12 6.0486e-11 0 0 +------ + +--- Final result to print to File + -------------------------------------------------------------------------------- + +++++ +++++ +++++ Configuration Description +-------------------------------------------------------------------------------- +Configuration: 300300-2-2 +phone format: 3,0,0,3,0,0,2,2 +Exact values of frequencies: [1804800- 0- 0- 1804800- 0- 0- 1478400- 1766400] + +Power meter results +------------------------------------------------------------ +time (s): 601.7636823654175 +Ins Current (mA):442.2578886615847 +Samples: 3000000 +Consumed Energy (mAs): 253963.39334611077 +Consumed Energy (mAh): 70.54538704058632 +Consumed Energy (mWs): 1226083.3100226054 +Consumed Energy (mWh): 340.5786972285015 +Avg power (mW): 2043.532655655454 +Avg Current (mA): 423.2155994909438 +Avg Voltage (V): 4.828585378500875 + +Threads results +------------------------------------------------------------ +Thread : 0 - ThreadProcess id: 19474 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 01:57:26 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 02:07:26 +0100 - Duration: 600025 seconds +Real workload: 4.999251284159331E10 - Integer reached: 185436 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 19475 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 01:57:26 +0100 +Core id: 3 +Ending time: Mon, 20 Dec 2021 02:07:27 +0100 - Duration: 600028 seconds +Real workload: 4.949275045696362E10 - Integer reached: 184545 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 19477 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 01:57:26 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 02:07:27 +0100 - Duration: 600002 seconds +Real workload: 4.8537597118890173E11 - Integer reached: 552462 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 19478 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 01:57:26 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 02:07:27 +0100 - Duration: 600007 seconds +Real workload: 5.814458231509528E11 - Integer reached: 602615 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +Expermiment results +------------------------------------------------------------ +Energy Consumed (mAh): 70.54538704058632 +Workload: 1.16631e+12 +Energy efficiency: 6.0486e-11 +-------------------------------------------------------------------------------- + + +--- Writing to the total result file +--- Removing previous tested configuration tmp_output folder +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_03_40_40/app_output_folder/all_workloads.txt' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_03_40_40/app_output_folder/Thread_0_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_03_40_40/app_output_folder/Thread_0_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_03_40_40/app_output_folder/Thread_1_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_03_40_40/app_output_folder/Thread_1_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_03_40_40/app_output_folder/Thread_2_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_03_40_40/app_output_folder/Thread_2_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_03_40_40/app_output_folder/Thread_3_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_03_40_40/app_output_folder/Thread_3_ready_for_sampling' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_03_40_40/app_output_folder' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_03_40_40/configuration_mesurement.csv' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_03_40_40/energy_power_workload_energyByWorkload_ccInfo' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_03_40_40/logcat_output' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_03_40_40/powermeter_summary.txt' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_03_40_40' +--- Moving the current experiment tmp_folder to the output result folder +writing a temporary file for the main script with format energy_power_workload_energyByWorkload_ccInfo +--- Obtaining experiment summary result to add to result folder +--- Experiment result, Energy consumed = 70.54538704058632 +--- Experiment result, Avg Power = 2043.532655655454 +--- Experiment result, Total Workload = 1.16631e+12 +--- Experiment result, Energy Efficiency = 6.0486e-11 +--- Adding result to summary file +--- Starting cc information : 0 +--- Ending cc information : 0 +--- The file /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/summary.csv exists we just appending the result to the file +--- Experiments performed on configuration 300300-2-2. +--- Observing a pause betwenn experiment; pause duration : 180 seconds; starting at 05Oct22_03_53_26 +--- Performing experiments on configuration 300300-2-2 +--- Cleaning the tmp expermiment folder : /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- Second step : verifying the battery level +--- Verifying the battery level +--- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe +--- Current battery level : 50 +Current battery level: OKAY +--- Third step calibrating phone core frequency +--- Resetting all frequency configurations + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu5/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor +--- Frequency level of core 0 is 3 +--- Exact frequency of core 0: 1804800 +--- Modifying the governor of core 0 +--- Modifying the the current frequency of core 0 with frequency 1804800 +--- Frequency level of core 1 is 0 +--- Exact frequency of core 1: 0 +--- Modifying the governor of core 1 +--- Modifying the the current frequency of core 1 with frequency 0 +--- Frequency level of core 2 is 0 +--- Exact frequency of core 2: 0 +--- Modifying the governor of core 2 +--- Modifying the the current frequency of core 2 with frequency 0 +--- Frequency level of core 3 is 3 +--- Exact frequency of core 3: 1804800 +--- Modifying the governor of core 3 +--- Modifying the the current frequency of core 3 with frequency 1804800 +--- Frequency level of core 4 is 0 +--- Exact frequency of core 4: 0 +--- Modifying the governor of core 4 +--- Modifying the the current frequency of core 4 with frequency 0 +--- Frequency level of core 5 is 0 +--- Exact frequency of core 5: 0 +--- Modifying the governor of core 5 +--- Modifying the the current frequency of core 5 with frequency 0 +--- Frequency level of core 6 is 2 +--- Exact frequency of core 6: 1478400 +--- Modifying the governor of core 6 +--- Modifying the the current frequency of core 6 with frequency 1478400 +--- Frequency level of core 7 is 2 +--- Exact frequency of core 7: 1766400 +--- Modifying the governor of core 7 +--- Modifying the the current frequency of core 7 with frequency 1766400 +--- Calibrating Monsoon power meter, please wait for 10 seconds... +powermeter script : --- Inside the monsoon_power_meter, arg function: 1 +powermeter script : calibration duration = 10 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 50000 + returning 50000 samples after experiments +powermeter script : Power meter calibration okay +--- Monsoon power meter Calibrated +--- starting the benchmarking app +## writing the configuration inside the phone file + --- Removing file /sdcard/experiments_automatization +rm '/sdcard/experiments_automatization/current_configuration.txt' +rm '/sdcard/experiments_automatization/experiment_duration.txt' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ended' +rmdir '/sdcard/experiments_automatization/app_output_folder' +rmdir '/sdcard/experiments_automatization' + --- Clearing the logcat + --- Creating file /sdcard/experiments_automatization +----- Uninstalling experiment app +Success +----- Installing experiment app +Performing Streamed Install +Success +------ Giving rights to experiment app +----- Starting experiment app +Starting: Intent { cmp=com.opportunistask.scheduling.benchmarking_app_to_test_big_cores/.MainActivity } +adb command : ps -A | grep com.opportunistask.scheduling.benchmarking_app_to_test_big_cores + ----- Experiment app started with pid: 20473 +---- waiting for benchmarking app thread to be pinned and to be ready +--- frequency level of core 0 is 3 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 3 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of cores to occupy = 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 1 +--- The current number of thread ready to be sambled : 1, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 4 +--- Now threads are running and the phone is ready to be sampled with the power meter \n--- Threads pids +Thread_0_ready_for_sampling +Thread_1_ready_for_sampling +Thread_2_ready_for_sampling +Thread_3_ready_for_sampling +--- Printing cc_info beginning datas (for the samsung galaxy s8) + --- Starting power meter sampling for about 600 seconds +--- Sampling with the Monsoon power meter +powermeter script : --- Inside the monsoon_power_meter, arg function: 2 +powermeter script : Experiment duration = 600 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 3000000 + returning 3000000 samples after experiments +powermeter script : Total nomber of sample measured : 3000000 +powermeter script : Computing powermeter summary result + Number of samples = 3000000 +powermeter script : We computed the energy on 600 samples +powermeter script : average_power = 2065.543430131354 +powermeter script : average_power with numpy arrays = 2065.5434301310884 +powermeter script : Summary Result = time (s): 601.6870002746582 +Ins Current (mA):404.96317770395876 +Samples: 3000000 +Consumed Energy (mAs): 257681.61578979838 +Consumed Energy (mAh): 71.57822660827733 +Consumed Energy (mWs): 1242872.4748908693 +Consumed Energy (mWh): 345.2423541363526 +Avg power (mW): 2065.543430131354 +Avg Current (mA): 428.09070995269155 +Avg Voltage (V): 4.82501344250058 +Exp Batt Life (hrs for 1000mAh battery): NOT COMPUTED +--- Monsoon power meter sampling is finished ! + --- experiment folder path /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- frequency level of core 0 is 3 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 3 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of threads normally started = 4 +--- Number of thread ended: 4 +--- Now threads are stopped, getting the cc_info_level for samsung +--- Copying thread results locally +command /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe pull /sdcard/experiments_automatization/app_output_folder C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder </dev/null +/sdcard/experiments_automatization/app_output_folder/: 8 files pulled, 0 skipped. 0.0 MB/s (1816 bytes in 0.048s) +saving the logcat file to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder -/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder- +--- Parsing result from /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/raw_result.txt +--- Getting exact configuration with frequency +--- Configuration with frequencies = [1804800- 0- 0- 1804800- 0- 0- 1478400- 1766400] +--- Getting the powermeter summary +--- Powermeter summary: +time (s): 601.6870002746582 +Ins Current (mA):404.96317770395876 +Samples: 3000000 +Consumed Energy (mAs): 257681.61578979838 +Consumed Energy (mAh): 71.57822660827733 +Consumed Energy (mWs): 1242872.4748908693 +Consumed Energy (mWh): 345.2423541363526 +Avg power (mW): 2065.543430131354 +Avg Current (mA): 428.09070995269155 +Avg Voltage (V): 4.82501344250058 + +--- Getting the total energy consumed of the google pixel +--- Energy consumed = 71.57822660827733 +--- Starting cc_info = 0 +--- Ending cc_info = 0 +--- Getting the average power +--- Avg Power = 2065.543430131354 +--- Printing the total threads summary +--- Thread results +Thread : 0 - ThreadProcess id: 20498 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 02:13:14 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 02:23:14 +0100 - Duration: 600007 seconds +Real workload: 4.948100295071336E10 - Integer reached: 184524 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 20499 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 02:13:14 +0100 +Core id: 3 +Ending time: Mon, 20 Dec 2021 02:23:14 +0100 - Duration: 600015 seconds +Real workload: 5.0078592789205894E10 - Integer reached: 185589 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 20500 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 02:13:14 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 02:23:14 +0100 - Duration: 600003 seconds +Real workload: 4.81097878097479E11 - Integer reached: 550114 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 20501 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 02:13:14 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 02:23:14 +0100 - Duration: 600003 seconds +Real workload: 5.814698842277755E11 - Integer reached: 602627 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +--- Counting the total workload command : print_total_workload /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder app_output_folder 3,0,0,3,0,0,2,2 /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first +--- Total workload : 1.16213e+12 +--- Getting energy efficiency +--- Energy efficiency: 6.15923e-11 +--- Building what we will add to the total result file command +------ + (build_configuration_raw_result 300300-2-2 3,0,0,3,0,0,2,2 [1804800- 0- 0- 1804800- 0- 0- 1478400- 1766400] time (s): 601.6870002746582 +Ins Current (mA):404.96317770395876 +Samples: 3000000 +Consumed Energy (mAs): 257681.61578979838 +Consumed Energy (mAh): 71.57822660827733 +Consumed Energy (mWs): 1242872.4748908693 +Consumed Energy (mWh): 345.2423541363526 +Avg power (mW): 2065.543430131354 +Avg Current (mA): 428.09070995269155 +Avg Voltage (V): 4.82501344250058 + Thread : 0 - ThreadProcess id: 20498 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 02:13:14 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 02:23:14 +0100 - Duration: 600007 seconds +Real workload: 4.948100295071336E10 - Integer reached: 184524 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 20499 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 02:13:14 +0100 +Core id: 3 +Ending time: Mon, 20 Dec 2021 02:23:14 +0100 - Duration: 600015 seconds +Real workload: 5.0078592789205894E10 - Integer reached: 185589 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 20500 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 02:13:14 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 02:23:14 +0100 - Duration: 600003 seconds +Real workload: 4.81097878097479E11 - Integer reached: 550114 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 20501 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 02:13:14 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 02:23:14 +0100 - Duration: 600003 seconds +Real workload: 5.814698842277755E11 - Integer reached: 602627 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + 71.57822660827733 1.16213e+12 6.15923e-11 0 0 +------ + +--- Final result to print to File + -------------------------------------------------------------------------------- + +++++ +++++ +++++ Configuration Description +-------------------------------------------------------------------------------- +Configuration: 300300-2-2 +phone format: 3,0,0,3,0,0,2,2 +Exact values of frequencies: [1804800- 0- 0- 1804800- 0- 0- 1478400- 1766400] + +Power meter results +------------------------------------------------------------ +time (s): 601.6870002746582 +Ins Current (mA):404.96317770395876 +Samples: 3000000 +Consumed Energy (mAs): 257681.61578979838 +Consumed Energy (mAh): 71.57822660827733 +Consumed Energy (mWs): 1242872.4748908693 +Consumed Energy (mWh): 345.2423541363526 +Avg power (mW): 2065.543430131354 +Avg Current (mA): 428.09070995269155 +Avg Voltage (V): 4.82501344250058 + +Threads results +------------------------------------------------------------ +Thread : 0 - ThreadProcess id: 20498 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 02:13:14 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 02:23:14 +0100 - Duration: 600007 seconds +Real workload: 4.948100295071336E10 - Integer reached: 184524 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 20499 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 02:13:14 +0100 +Core id: 3 +Ending time: Mon, 20 Dec 2021 02:23:14 +0100 - Duration: 600015 seconds +Real workload: 5.0078592789205894E10 - Integer reached: 185589 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 20500 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 02:13:14 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 02:23:14 +0100 - Duration: 600003 seconds +Real workload: 4.81097878097479E11 - Integer reached: 550114 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 20501 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 02:13:14 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 02:23:14 +0100 - Duration: 600003 seconds +Real workload: 5.814698842277755E11 - Integer reached: 602627 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +Expermiment results +------------------------------------------------------------ +Energy Consumed (mAh): 71.57822660827733 +Workload: 1.16213e+12 +Energy efficiency: 6.15923e-11 +-------------------------------------------------------------------------------- + + +--- Writing to the total result file +--- Removing previous tested configuration tmp_output folder +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_03_56_28/app_output_folder/all_workloads.txt' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_03_56_28/app_output_folder/Thread_0_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_03_56_28/app_output_folder/Thread_0_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_03_56_28/app_output_folder/Thread_1_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_03_56_28/app_output_folder/Thread_1_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_03_56_28/app_output_folder/Thread_2_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_03_56_28/app_output_folder/Thread_2_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_03_56_28/app_output_folder/Thread_3_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_03_56_28/app_output_folder/Thread_3_ready_for_sampling' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_03_56_28/app_output_folder' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_03_56_28/configuration_mesurement.csv' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_03_56_28/energy_power_workload_energyByWorkload_ccInfo' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_03_56_28/logcat_output' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_03_56_28/powermeter_summary.txt' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_03_56_28' +--- Moving the current experiment tmp_folder to the output result folder +writing a temporary file for the main script with format energy_power_workload_energyByWorkload_ccInfo +--- Obtaining experiment summary result to add to result folder +--- Experiment result, Energy consumed = 71.57822660827733 +--- Experiment result, Avg Power = 2065.543430131354 +--- Experiment result, Total Workload = 1.16213e+12 +--- Experiment result, Energy Efficiency = 6.15923e-11 +--- Adding result to summary file +--- Starting cc information : 0 +--- Ending cc information : 0 +--- The file /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/summary.csv exists we just appending the result to the file +--- Experiments performed on configuration 300300-2-2. +--- Observing a pause betwenn experiment; pause duration : 180 seconds; starting at 05Oct22_04_09_14 +--- Performing experiments on configuration 300300-2-2 +--- Cleaning the tmp expermiment folder : /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- Second step : verifying the battery level +--- Verifying the battery level +--- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe +--- Current battery level : 50 +Current battery level: OKAY +--- Third step calibrating phone core frequency +--- Resetting all frequency configurations + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu5/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor +--- Frequency level of core 0 is 3 +--- Exact frequency of core 0: 1804800 +--- Modifying the governor of core 0 +--- Modifying the the current frequency of core 0 with frequency 1804800 +--- Frequency level of core 1 is 0 +--- Exact frequency of core 1: 0 +--- Modifying the governor of core 1 +--- Modifying the the current frequency of core 1 with frequency 0 +--- Frequency level of core 2 is 0 +--- Exact frequency of core 2: 0 +--- Modifying the governor of core 2 +--- Modifying the the current frequency of core 2 with frequency 0 +--- Frequency level of core 3 is 3 +--- Exact frequency of core 3: 1804800 +--- Modifying the governor of core 3 +--- Modifying the the current frequency of core 3 with frequency 1804800 +--- Frequency level of core 4 is 0 +--- Exact frequency of core 4: 0 +--- Modifying the governor of core 4 +--- Modifying the the current frequency of core 4 with frequency 0 +--- Frequency level of core 5 is 0 +--- Exact frequency of core 5: 0 +--- Modifying the governor of core 5 +--- Modifying the the current frequency of core 5 with frequency 0 +--- Frequency level of core 6 is 2 +--- Exact frequency of core 6: 1478400 +--- Modifying the governor of core 6 +--- Modifying the the current frequency of core 6 with frequency 1478400 +--- Frequency level of core 7 is 2 +--- Exact frequency of core 7: 1766400 +--- Modifying the governor of core 7 +--- Modifying the the current frequency of core 7 with frequency 1766400 +--- Calibrating Monsoon power meter, please wait for 10 seconds... +powermeter script : --- Inside the monsoon_power_meter, arg function: 1 +powermeter script : calibration duration = 10 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 50000 + returning 50000 samples after experiments +powermeter script : Power meter calibration okay +--- Monsoon power meter Calibrated +--- starting the benchmarking app +## writing the configuration inside the phone file + --- Removing file /sdcard/experiments_automatization +rm '/sdcard/experiments_automatization/current_configuration.txt' +rm '/sdcard/experiments_automatization/experiment_duration.txt' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ended' +rmdir '/sdcard/experiments_automatization/app_output_folder' +rmdir '/sdcard/experiments_automatization' + --- Clearing the logcat + --- Creating file /sdcard/experiments_automatization +----- Uninstalling experiment app +Success +----- Installing experiment app +Performing Streamed Install +Success +------ Giving rights to experiment app +----- Starting experiment app +Starting: Intent { cmp=com.opportunistask.scheduling.benchmarking_app_to_test_big_cores/.MainActivity } +adb command : ps -A | grep com.opportunistask.scheduling.benchmarking_app_to_test_big_cores + ----- Experiment app started with pid: 21811 +---- waiting for benchmarking app thread to be pinned and to be ready +--- frequency level of core 0 is 3 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 3 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of cores to occupy = 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 4 +--- Now threads are running and the phone is ready to be sampled with the power meter \n--- Threads pids +Thread_0_ready_for_sampling +Thread_1_ready_for_sampling +Thread_2_ready_for_sampling +Thread_3_ready_for_sampling +--- Printing cc_info beginning datas (for the samsung galaxy s8) + --- Starting power meter sampling for about 600 seconds +--- Sampling with the Monsoon power meter +powermeter script : --- Inside the monsoon_power_meter, arg function: 2 +powermeter script : Experiment duration = 600 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 3000000 + returning 3000000 samples after experiments +powermeter script : Total nomber of sample measured : 3000000 +powermeter script : Computing powermeter summary result + Number of samples = 3000000 +powermeter script : We computed the energy on 600 samples +powermeter script : average_power = 2041.7395112120066 +powermeter script : average_power with numpy arrays = 2041.7395112115964 +powermeter script : Summary Result = time (s): 601.8799254894257 +Ins Current (mA):424.0279013775448 +Samples: 3000000 +Consumed Energy (mAs): 254581.34709463705 +Consumed Energy (mAh): 70.7170408596214 +Consumed Energy (mWs): 1228947.9473763318 +Consumed Energy (mWh): 341.37442982675884 +Avg power (mW): 2041.7395112120066 +Avg Current (mA): 422.81338404922946 +Avg Voltage (V): 4.828937749459418 +Exp Batt Life (hrs for 1000mAh battery): NOT COMPUTED +--- Monsoon power meter sampling is finished ! + --- experiment folder path /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- frequency level of core 0 is 3 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 3 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of threads normally started = 4 +--- Number of thread ended: 4 +--- Now threads are stopped, getting the cc_info_level for samsung +--- Copying thread results locally +command /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe pull /sdcard/experiments_automatization/app_output_folder C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder </dev/null +/sdcard/experiments_automatization/app_output_folder/: 8 files pulled, 0 skipped. 0.0 MB/s (1817 bytes in 0.065s) +saving the logcat file to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder -/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder- +--- Parsing result from /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/raw_result.txt +--- Getting exact configuration with frequency +--- Configuration with frequencies = [1804800- 0- 0- 1804800- 0- 0- 1478400- 1766400] +--- Getting the powermeter summary +--- Powermeter summary: +time (s): 601.8799254894257 +Ins Current (mA):424.0279013775448 +Samples: 3000000 +Consumed Energy (mAs): 254581.34709463705 +Consumed Energy (mAh): 70.7170408596214 +Consumed Energy (mWs): 1228947.9473763318 +Consumed Energy (mWh): 341.37442982675884 +Avg power (mW): 2041.7395112120066 +Avg Current (mA): 422.81338404922946 +Avg Voltage (V): 4.828937749459418 + +--- Getting the total energy consumed of the google pixel +--- Energy consumed = 70.7170408596214 +--- Starting cc_info = 0 +--- Ending cc_info = 0 +--- Getting the average power +--- Avg Power = 2041.7395112120066 +--- Printing the total threads summary +--- Thread results +Thread : 0 - ThreadProcess id: 21836 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 02:29:00 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 02:39:00 +0100 - Duration: 600010 seconds +Real workload: 4.970725607677782E10 - Integer reached: 184928 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 21837 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 02:29:00 +0100 +Core id: 3 +Ending time: Mon, 20 Dec 2021 02:39:01 +0100 - Duration: 600008 seconds +Real workload: 4.949498823749237E10 - Integer reached: 184549 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 21838 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 02:29:01 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 02:39:01 +0100 - Duration: 600003 seconds +Real workload: 4.8074891786792334E11 - Integer reached: 549922 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 21839 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 02:29:00 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 02:39:01 +0100 - Duration: 600009 seconds +Real workload: 5.824488017676732E11 - Integer reached: 603115 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +--- Counting the total workload command : print_total_workload /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder app_output_folder 3,0,0,3,0,0,2,2 /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first +--- Total workload : 1.1624e+12 +--- Getting energy efficiency +--- Energy efficiency: 6.08371e-11 +--- Building what we will add to the total result file command +------ + (build_configuration_raw_result 300300-2-2 3,0,0,3,0,0,2,2 [1804800- 0- 0- 1804800- 0- 0- 1478400- 1766400] time (s): 601.8799254894257 +Ins Current (mA):424.0279013775448 +Samples: 3000000 +Consumed Energy (mAs): 254581.34709463705 +Consumed Energy (mAh): 70.7170408596214 +Consumed Energy (mWs): 1228947.9473763318 +Consumed Energy (mWh): 341.37442982675884 +Avg power (mW): 2041.7395112120066 +Avg Current (mA): 422.81338404922946 +Avg Voltage (V): 4.828937749459418 + Thread : 0 - ThreadProcess id: 21836 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 02:29:00 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 02:39:00 +0100 - Duration: 600010 seconds +Real workload: 4.970725607677782E10 - Integer reached: 184928 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 21837 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 02:29:00 +0100 +Core id: 3 +Ending time: Mon, 20 Dec 2021 02:39:01 +0100 - Duration: 600008 seconds +Real workload: 4.949498823749237E10 - Integer reached: 184549 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 21838 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 02:29:01 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 02:39:01 +0100 - Duration: 600003 seconds +Real workload: 4.8074891786792334E11 - Integer reached: 549922 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 21839 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 02:29:00 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 02:39:01 +0100 - Duration: 600009 seconds +Real workload: 5.824488017676732E11 - Integer reached: 603115 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + 70.7170408596214 1.1624e+12 6.08371e-11 0 0 +------ + +--- Final result to print to File + -------------------------------------------------------------------------------- + +++++ +++++ +++++ Configuration Description +-------------------------------------------------------------------------------- +Configuration: 300300-2-2 +phone format: 3,0,0,3,0,0,2,2 +Exact values of frequencies: [1804800- 0- 0- 1804800- 0- 0- 1478400- 1766400] + +Power meter results +------------------------------------------------------------ +time (s): 601.8799254894257 +Ins Current (mA):424.0279013775448 +Samples: 3000000 +Consumed Energy (mAs): 254581.34709463705 +Consumed Energy (mAh): 70.7170408596214 +Consumed Energy (mWs): 1228947.9473763318 +Consumed Energy (mWh): 341.37442982675884 +Avg power (mW): 2041.7395112120066 +Avg Current (mA): 422.81338404922946 +Avg Voltage (V): 4.828937749459418 + +Threads results +------------------------------------------------------------ +Thread : 0 - ThreadProcess id: 21836 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 02:29:00 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 02:39:00 +0100 - Duration: 600010 seconds +Real workload: 4.970725607677782E10 - Integer reached: 184928 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 21837 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 02:29:00 +0100 +Core id: 3 +Ending time: Mon, 20 Dec 2021 02:39:01 +0100 - Duration: 600008 seconds +Real workload: 4.949498823749237E10 - Integer reached: 184549 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 21838 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 02:29:01 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 02:39:01 +0100 - Duration: 600003 seconds +Real workload: 4.8074891786792334E11 - Integer reached: 549922 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 21839 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 02:29:00 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 02:39:01 +0100 - Duration: 600009 seconds +Real workload: 5.824488017676732E11 - Integer reached: 603115 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +Expermiment results +------------------------------------------------------------ +Energy Consumed (mAh): 70.7170408596214 +Workload: 1.1624e+12 +Energy efficiency: 6.08371e-11 +-------------------------------------------------------------------------------- + + +--- Writing to the total result file +--- Removing previous tested configuration tmp_output folder +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_04_12_16/app_output_folder/all_workloads.txt' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_04_12_16/app_output_folder/Thread_0_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_04_12_16/app_output_folder/Thread_0_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_04_12_16/app_output_folder/Thread_1_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_04_12_16/app_output_folder/Thread_1_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_04_12_16/app_output_folder/Thread_2_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_04_12_16/app_output_folder/Thread_2_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_04_12_16/app_output_folder/Thread_3_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_04_12_16/app_output_folder/Thread_3_ready_for_sampling' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_04_12_16/app_output_folder' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_04_12_16/configuration_mesurement.csv' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_04_12_16/energy_power_workload_energyByWorkload_ccInfo' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_04_12_16/logcat_output' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_04_12_16/powermeter_summary.txt' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_04_12_16' +--- Moving the current experiment tmp_folder to the output result folder +writing a temporary file for the main script with format energy_power_workload_energyByWorkload_ccInfo +--- Obtaining experiment summary result to add to result folder +--- Experiment result, Energy consumed = 70.7170408596214 +--- Experiment result, Avg Power = 2041.7395112120066 +--- Experiment result, Total Workload = 1.1624e+12 +--- Experiment result, Energy Efficiency = 6.08371e-11 +--- Adding result to summary file +--- Starting cc information : 0 +--- Ending cc information : 0 +--- The file /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/summary.csv exists we just appending the result to the file +--- Experiments performed on configuration 300300-2-2. +--- Observing a pause betwenn experiment; pause duration : 180 seconds; starting at 05Oct22_04_24_59 +--- Performing experiments on configuration 303000-2-2 +--- Cleaning the tmp expermiment folder : /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- Second step : verifying the battery level +--- Verifying the battery level +--- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe +--- Current battery level : 50 +Current battery level: OKAY +--- Third step calibrating phone core frequency +--- Resetting all frequency configurations + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu5/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor +--- Frequency level of core 0 is 3 +--- Exact frequency of core 0: 1804800 +--- Modifying the governor of core 0 +--- Modifying the the current frequency of core 0 with frequency 1804800 +--- Frequency level of core 1 is 0 +--- Exact frequency of core 1: 0 +--- Modifying the governor of core 1 +--- Modifying the the current frequency of core 1 with frequency 0 +--- Frequency level of core 2 is 3 +--- Exact frequency of core 2: 1804800 +--- Modifying the governor of core 2 +--- Modifying the the current frequency of core 2 with frequency 1804800 +--- Frequency level of core 3 is 0 +--- Exact frequency of core 3: 0 +--- Modifying the governor of core 3 +--- Modifying the the current frequency of core 3 with frequency 0 +--- Frequency level of core 4 is 0 +--- Exact frequency of core 4: 0 +--- Modifying the governor of core 4 +--- Modifying the the current frequency of core 4 with frequency 0 +--- Frequency level of core 5 is 0 +--- Exact frequency of core 5: 0 +--- Modifying the governor of core 5 +--- Modifying the the current frequency of core 5 with frequency 0 +--- Frequency level of core 6 is 2 +--- Exact frequency of core 6: 1478400 +--- Modifying the governor of core 6 +--- Modifying the the current frequency of core 6 with frequency 1478400 +--- Frequency level of core 7 is 2 +--- Exact frequency of core 7: 1766400 +--- Modifying the governor of core 7 +--- Modifying the the current frequency of core 7 with frequency 1766400 +--- Calibrating Monsoon power meter, please wait for 10 seconds... +powermeter script : --- Inside the monsoon_power_meter, arg function: 1 +powermeter script : calibration duration = 10 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 50000 + returning 50000 samples after experiments +powermeter script : Power meter calibration okay +--- Monsoon power meter Calibrated +--- starting the benchmarking app +## writing the configuration inside the phone file + --- Removing file /sdcard/experiments_automatization +rm '/sdcard/experiments_automatization/current_configuration.txt' +rm '/sdcard/experiments_automatization/experiment_duration.txt' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ended' +rmdir '/sdcard/experiments_automatization/app_output_folder' +rmdir '/sdcard/experiments_automatization' + --- Clearing the logcat + --- Creating file /sdcard/experiments_automatization +----- Uninstalling experiment app +Success +----- Installing experiment app +Performing Streamed Install +Success +------ Giving rights to experiment app +----- Starting experiment app +Starting: Intent { cmp=com.opportunistask.scheduling.benchmarking_app_to_test_big_cores/.MainActivity } +adb command : ps -A | grep com.opportunistask.scheduling.benchmarking_app_to_test_big_cores + ----- Experiment app started with pid: 22833 +---- waiting for benchmarking app thread to be pinned and to be ready +--- frequency level of core 0 is 3 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 3 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of cores to occupy = 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 1 +--- The current number of thread ready to be sambled : 1, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 4 +--- Now threads are running and the phone is ready to be sampled with the power meter \n--- Threads pids +Thread_0_ready_for_sampling +Thread_1_ready_for_sampling +Thread_2_ready_for_sampling +Thread_3_ready_for_sampling +--- Printing cc_info beginning datas (for the samsung galaxy s8) + --- Starting power meter sampling for about 600 seconds +--- Sampling with the Monsoon power meter +powermeter script : --- Inside the monsoon_power_meter, arg function: 2 +powermeter script : Experiment duration = 600 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 3000000 + returning 3000000 samples after experiments +powermeter script : Total nomber of sample measured : 3000000 +powermeter script : Computing powermeter summary result + Number of samples = 3000000 +powermeter script : We computed the energy on 600 samples +powermeter script : average_power = 2035.687582112515 +powermeter script : average_power with numpy arrays = 2035.68758211205 +powermeter script : Summary Result = time (s): 601.8024985790253 +Ins Current (mA):406.3750995264635 +Samples: 3000000 +Consumed Energy (mAs): 252435.28865789578 +Consumed Energy (mAh): 70.12091351608217 +Consumed Energy (mWs): 1218975.0785901232 +Consumed Energy (mWh): 338.6041884972565 +Avg power (mW): 2035.687582112515 +Avg Current (mA): 421.47346231364725 +Avg Voltage (V): 4.829930622292942 +Exp Batt Life (hrs for 1000mAh battery): NOT COMPUTED +--- Monsoon power meter sampling is finished ! + --- experiment folder path /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- frequency level of core 0 is 3 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 3 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of threads normally started = 4 +--- Number of thread ended: 4 +--- Now threads are stopped, getting the cc_info_level for samsung +--- Copying thread results locally +command /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe pull /sdcard/experiments_automatization/app_output_folder C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder </dev/null +/sdcard/experiments_automatization/app_output_folder/: 8 files pulled, 0 skipped. 0.0 MB/s (1818 bytes in 0.040s) +saving the logcat file to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder -/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder- +--- Parsing result from /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/raw_result.txt +--- Getting exact configuration with frequency +--- Configuration with frequencies = [1804800- 0- 1804800- 0- 0- 0- 1478400- 1766400] +--- Getting the powermeter summary +--- Powermeter summary: +time (s): 601.8024985790253 +Ins Current (mA):406.3750995264635 +Samples: 3000000 +Consumed Energy (mAs): 252435.28865789578 +Consumed Energy (mAh): 70.12091351608217 +Consumed Energy (mWs): 1218975.0785901232 +Consumed Energy (mWh): 338.6041884972565 +Avg power (mW): 2035.687582112515 +Avg Current (mA): 421.47346231364725 +Avg Voltage (V): 4.829930622292942 + +--- Getting the total energy consumed of the google pixel +--- Energy consumed = 70.12091351608217 +--- Starting cc_info = 0 +--- Ending cc_info = 0 +--- Getting the average power +--- Avg Power = 2035.687582112515 +--- Printing the total threads summary +--- Thread results +Thread : 0 - ThreadProcess id: 22858 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 02:44:47 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 02:54:48 +0100 - Duration: 600015 seconds +Real workload: 4.9655685988969406E10 - Integer reached: 184836 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 22859 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 02:44:47 +0100 +Core id: 2 +Ending time: Mon, 20 Dec 2021 02:54:48 +0100 - Duration: 600008 seconds +Real workload: 4.975717098455546E10 - Integer reached: 185017 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 22860 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 02:44:47 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 02:54:48 +0100 - Duration: 600004 seconds +Real workload: 4.8424441702214417E11 - Integer reached: 551842 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 22862 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 02:44:47 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 02:54:48 +0100 - Duration: 600004 seconds +Real workload: 5.761968522270463E11 - Integer reached: 599991 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +--- Counting the total workload command : print_total_workload /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder app_output_folder 3,0,3,0,0,0,2,2 /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first +--- Total workload : 1.15985e+12 +--- Getting energy efficiency +--- Energy efficiency: 6.04569e-11 +--- Building what we will add to the total result file command +------ + (build_configuration_raw_result 303000-2-2 3,0,3,0,0,0,2,2 [1804800- 0- 1804800- 0- 0- 0- 1478400- 1766400] time (s): 601.8024985790253 +Ins Current (mA):406.3750995264635 +Samples: 3000000 +Consumed Energy (mAs): 252435.28865789578 +Consumed Energy (mAh): 70.12091351608217 +Consumed Energy (mWs): 1218975.0785901232 +Consumed Energy (mWh): 338.6041884972565 +Avg power (mW): 2035.687582112515 +Avg Current (mA): 421.47346231364725 +Avg Voltage (V): 4.829930622292942 + Thread : 0 - ThreadProcess id: 22858 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 02:44:47 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 02:54:48 +0100 - Duration: 600015 seconds +Real workload: 4.9655685988969406E10 - Integer reached: 184836 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 22859 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 02:44:47 +0100 +Core id: 2 +Ending time: Mon, 20 Dec 2021 02:54:48 +0100 - Duration: 600008 seconds +Real workload: 4.975717098455546E10 - Integer reached: 185017 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 22860 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 02:44:47 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 02:54:48 +0100 - Duration: 600004 seconds +Real workload: 4.8424441702214417E11 - Integer reached: 551842 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 22862 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 02:44:47 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 02:54:48 +0100 - Duration: 600004 seconds +Real workload: 5.761968522270463E11 - Integer reached: 599991 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + 70.12091351608217 1.15985e+12 6.04569e-11 0 0 +------ + +--- Final result to print to File + -------------------------------------------------------------------------------- + +++++ +++++ +++++ Configuration Description +-------------------------------------------------------------------------------- +Configuration: 303000-2-2 +phone format: 3,0,3,0,0,0,2,2 +Exact values of frequencies: [1804800- 0- 1804800- 0- 0- 0- 1478400- 1766400] + +Power meter results +------------------------------------------------------------ +time (s): 601.8024985790253 +Ins Current (mA):406.3750995264635 +Samples: 3000000 +Consumed Energy (mAs): 252435.28865789578 +Consumed Energy (mAh): 70.12091351608217 +Consumed Energy (mWs): 1218975.0785901232 +Consumed Energy (mWh): 338.6041884972565 +Avg power (mW): 2035.687582112515 +Avg Current (mA): 421.47346231364725 +Avg Voltage (V): 4.829930622292942 + +Threads results +------------------------------------------------------------ +Thread : 0 - ThreadProcess id: 22858 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 02:44:47 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 02:54:48 +0100 - Duration: 600015 seconds +Real workload: 4.9655685988969406E10 - Integer reached: 184836 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 22859 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 02:44:47 +0100 +Core id: 2 +Ending time: Mon, 20 Dec 2021 02:54:48 +0100 - Duration: 600008 seconds +Real workload: 4.975717098455546E10 - Integer reached: 185017 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 22860 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 02:44:47 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 02:54:48 +0100 - Duration: 600004 seconds +Real workload: 4.8424441702214417E11 - Integer reached: 551842 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 22862 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 02:44:47 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 02:54:48 +0100 - Duration: 600004 seconds +Real workload: 5.761968522270463E11 - Integer reached: 599991 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +Expermiment results +------------------------------------------------------------ +Energy Consumed (mAh): 70.12091351608217 +Workload: 1.15985e+12 +Energy efficiency: 6.04569e-11 +-------------------------------------------------------------------------------- + + +--- Writing to the total result file +--- Removing previous tested configuration tmp_output folder +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_04_28_01/app_output_folder/all_workloads.txt' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_04_28_01/app_output_folder/Thread_0_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_04_28_01/app_output_folder/Thread_0_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_04_28_01/app_output_folder/Thread_1_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_04_28_01/app_output_folder/Thread_1_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_04_28_01/app_output_folder/Thread_2_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_04_28_01/app_output_folder/Thread_2_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_04_28_01/app_output_folder/Thread_3_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_04_28_01/app_output_folder/Thread_3_ready_for_sampling' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_04_28_01/app_output_folder' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_04_28_01/configuration_mesurement.csv' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_04_28_01/energy_power_workload_energyByWorkload_ccInfo' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_04_28_01/logcat_output' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_04_28_01/powermeter_summary.txt' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_04_28_01' +--- Moving the current experiment tmp_folder to the output result folder +writing a temporary file for the main script with format energy_power_workload_energyByWorkload_ccInfo +--- Obtaining experiment summary result to add to result folder +--- Experiment result, Energy consumed = 70.12091351608217 +--- Experiment result, Avg Power = 2035.687582112515 +--- Experiment result, Total Workload = 1.15985e+12 +--- Experiment result, Energy Efficiency = 6.04569e-11 +--- Adding result to summary file +--- Starting cc information : 0 +--- Ending cc information : 0 +--- The file /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/summary.csv exists we just appending the result to the file +--- Experiments performed on configuration 303000-2-2. +--- Observing a pause betwenn experiment; pause duration : 180 seconds; starting at 05Oct22_04_40_47 +--- Performing experiments on configuration 303000-2-2 +--- Cleaning the tmp expermiment folder : /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- Second step : verifying the battery level +--- Verifying the battery level +--- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe +--- Current battery level : 50 +Current battery level: OKAY +--- Third step calibrating phone core frequency +--- Resetting all frequency configurations + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu5/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor +--- Frequency level of core 0 is 3 +--- Exact frequency of core 0: 1804800 +--- Modifying the governor of core 0 +--- Modifying the the current frequency of core 0 with frequency 1804800 +--- Frequency level of core 1 is 0 +--- Exact frequency of core 1: 0 +--- Modifying the governor of core 1 +--- Modifying the the current frequency of core 1 with frequency 0 +--- Frequency level of core 2 is 3 +--- Exact frequency of core 2: 1804800 +--- Modifying the governor of core 2 +--- Modifying the the current frequency of core 2 with frequency 1804800 +--- Frequency level of core 3 is 0 +--- Exact frequency of core 3: 0 +--- Modifying the governor of core 3 +--- Modifying the the current frequency of core 3 with frequency 0 +--- Frequency level of core 4 is 0 +--- Exact frequency of core 4: 0 +--- Modifying the governor of core 4 +--- Modifying the the current frequency of core 4 with frequency 0 +--- Frequency level of core 5 is 0 +--- Exact frequency of core 5: 0 +--- Modifying the governor of core 5 +--- Modifying the the current frequency of core 5 with frequency 0 +--- Frequency level of core 6 is 2 +--- Exact frequency of core 6: 1478400 +--- Modifying the governor of core 6 +--- Modifying the the current frequency of core 6 with frequency 1478400 +--- Frequency level of core 7 is 2 +--- Exact frequency of core 7: 1766400 +--- Modifying the governor of core 7 +--- Modifying the the current frequency of core 7 with frequency 1766400 +--- Calibrating Monsoon power meter, please wait for 10 seconds... +powermeter script : --- Inside the monsoon_power_meter, arg function: 1 +powermeter script : calibration duration = 10 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 50000 + returning 50000 samples after experiments +powermeter script : Power meter calibration okay +--- Monsoon power meter Calibrated +--- starting the benchmarking app +## writing the configuration inside the phone file + --- Removing file /sdcard/experiments_automatization +rm '/sdcard/experiments_automatization/current_configuration.txt' +rm '/sdcard/experiments_automatization/experiment_duration.txt' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ended' +rmdir '/sdcard/experiments_automatization/app_output_folder' +rmdir '/sdcard/experiments_automatization' + --- Clearing the logcat + --- Creating file /sdcard/experiments_automatization +----- Uninstalling experiment app +Success +----- Installing experiment app +Performing Streamed Install +Success +------ Giving rights to experiment app +----- Starting experiment app +Starting: Intent { cmp=com.opportunistask.scheduling.benchmarking_app_to_test_big_cores/.MainActivity } +adb command : ps -A | grep com.opportunistask.scheduling.benchmarking_app_to_test_big_cores + ----- Experiment app started with pid: 23863 +---- waiting for benchmarking app thread to be pinned and to be ready +--- frequency level of core 0 is 3 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 3 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of cores to occupy = 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 4 +--- Now threads are running and the phone is ready to be sampled with the power meter \n--- Threads pids +Thread_0_ready_for_sampling +Thread_1_ready_for_sampling +Thread_2_ready_for_sampling +Thread_3_ready_for_sampling +--- Printing cc_info beginning datas (for the samsung galaxy s8) + --- Starting power meter sampling for about 600 seconds +--- Sampling with the Monsoon power meter +powermeter script : --- Inside the monsoon_power_meter, arg function: 2 +powermeter script : Experiment duration = 600 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 3000000 + returning 3000000 samples after experiments +powermeter script : Total nomber of sample measured : 3000000 +powermeter script : Computing powermeter summary result + Number of samples = 3000000 +powermeter script : We computed the energy on 600 samples +powermeter script : average_power = 2026.1095988610796 +powermeter script : average_power with numpy arrays = 2026.1095988604097 +powermeter script : Summary Result = time (s): 601.730429649353 +Ins Current (mA):401.1592210374738 +Samples: 3000000 +Consumed Energy (mAs): 251282.09964307674 +Consumed Energy (mAh): 69.80058323418798 +Consumed Energy (mWs): 1214139.8314455037 +Consumed Energy (mWh): 337.2610642904177 +Avg power (mW): 2026.1095988610796 +Avg Current (mA): 419.33552223960805 +Avg Voltage (V): 4.831714680501982 +Exp Batt Life (hrs for 1000mAh battery): NOT COMPUTED +--- Monsoon power meter sampling is finished ! + --- experiment folder path /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- frequency level of core 0 is 3 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 3 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of threads normally started = 4 +--- Number of thread ended: 4 +--- Now threads are stopped, getting the cc_info_level for samsung +--- Copying thread results locally +command /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe pull /sdcard/experiments_automatization/app_output_folder C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder </dev/null +/sdcard/experiments_automatization/app_output_folder/: 8 files pulled, 0 skipped. 0.0 MB/s (1816 bytes in 0.074s) +saving the logcat file to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder -/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder- +--- Parsing result from /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/raw_result.txt +--- Getting exact configuration with frequency +--- Configuration with frequencies = [1804800- 0- 1804800- 0- 0- 0- 1478400- 1766400] +--- Getting the powermeter summary +--- Powermeter summary: +time (s): 601.730429649353 +Ins Current (mA):401.1592210374738 +Samples: 3000000 +Consumed Energy (mAs): 251282.09964307674 +Consumed Energy (mAh): 69.80058323418798 +Consumed Energy (mWs): 1214139.8314455037 +Consumed Energy (mWh): 337.2610642904177 +Avg power (mW): 2026.1095988610796 +Avg Current (mA): 419.33552223960805 +Avg Voltage (V): 4.831714680501982 + +--- Getting the total energy consumed of the google pixel +--- Energy consumed = 69.80058323418798 +--- Starting cc_info = 0 +--- Ending cc_info = 0 +--- Getting the average power +--- Avg Power = 2026.1095988610796 +--- Printing the total threads summary +--- Thread results +Thread : 0 - ThreadProcess id: 23888 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 03:00:35 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 03:10:35 +0100 - Duration: 600005 seconds +Real workload: 5.014109101614342E10 - Integer reached: 185700 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 23889 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 03:00:34 +0100 +Core id: 2 +Ending time: Mon, 20 Dec 2021 03:10:35 +0100 - Duration: 600012 seconds +Real workload: 4.938986931776376E10 - Integer reached: 184361 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 23890 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 03:00:35 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 03:10:35 +0100 - Duration: 600008 seconds +Real workload: 4.847260730188495E11 - Integer reached: 552106 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 23891 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 03:00:35 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 03:10:35 +0100 - Duration: 600006 seconds +Real workload: 5.819110941057795E11 - Integer reached: 602847 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +--- Counting the total workload command : print_total_workload /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder app_output_folder 3,0,3,0,0,0,2,2 /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first +--- Total workload : 1.16617e+12 +--- Getting energy efficiency +--- Energy efficiency: 5.98546e-11 +--- Building what we will add to the total result file command +------ + (build_configuration_raw_result 303000-2-2 3,0,3,0,0,0,2,2 [1804800- 0- 1804800- 0- 0- 0- 1478400- 1766400] time (s): 601.730429649353 +Ins Current (mA):401.1592210374738 +Samples: 3000000 +Consumed Energy (mAs): 251282.09964307674 +Consumed Energy (mAh): 69.80058323418798 +Consumed Energy (mWs): 1214139.8314455037 +Consumed Energy (mWh): 337.2610642904177 +Avg power (mW): 2026.1095988610796 +Avg Current (mA): 419.33552223960805 +Avg Voltage (V): 4.831714680501982 + Thread : 0 - ThreadProcess id: 23888 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 03:00:35 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 03:10:35 +0100 - Duration: 600005 seconds +Real workload: 5.014109101614342E10 - Integer reached: 185700 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 23889 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 03:00:34 +0100 +Core id: 2 +Ending time: Mon, 20 Dec 2021 03:10:35 +0100 - Duration: 600012 seconds +Real workload: 4.938986931776376E10 - Integer reached: 184361 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 23890 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 03:00:35 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 03:10:35 +0100 - Duration: 600008 seconds +Real workload: 4.847260730188495E11 - Integer reached: 552106 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 23891 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 03:00:35 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 03:10:35 +0100 - Duration: 600006 seconds +Real workload: 5.819110941057795E11 - Integer reached: 602847 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + 69.80058323418798 1.16617e+12 5.98546e-11 0 0 +------ + +--- Final result to print to File + -------------------------------------------------------------------------------- + +++++ +++++ +++++ Configuration Description +-------------------------------------------------------------------------------- +Configuration: 303000-2-2 +phone format: 3,0,3,0,0,0,2,2 +Exact values of frequencies: [1804800- 0- 1804800- 0- 0- 0- 1478400- 1766400] + +Power meter results +------------------------------------------------------------ +time (s): 601.730429649353 +Ins Current (mA):401.1592210374738 +Samples: 3000000 +Consumed Energy (mAs): 251282.09964307674 +Consumed Energy (mAh): 69.80058323418798 +Consumed Energy (mWs): 1214139.8314455037 +Consumed Energy (mWh): 337.2610642904177 +Avg power (mW): 2026.1095988610796 +Avg Current (mA): 419.33552223960805 +Avg Voltage (V): 4.831714680501982 + +Threads results +------------------------------------------------------------ +Thread : 0 - ThreadProcess id: 23888 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 03:00:35 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 03:10:35 +0100 - Duration: 600005 seconds +Real workload: 5.014109101614342E10 - Integer reached: 185700 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 23889 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 03:00:34 +0100 +Core id: 2 +Ending time: Mon, 20 Dec 2021 03:10:35 +0100 - Duration: 600012 seconds +Real workload: 4.938986931776376E10 - Integer reached: 184361 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 23890 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 03:00:35 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 03:10:35 +0100 - Duration: 600008 seconds +Real workload: 4.847260730188495E11 - Integer reached: 552106 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 23891 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 03:00:35 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 03:10:35 +0100 - Duration: 600006 seconds +Real workload: 5.819110941057795E11 - Integer reached: 602847 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +Expermiment results +------------------------------------------------------------ +Energy Consumed (mAh): 69.80058323418798 +Workload: 1.16617e+12 +Energy efficiency: 5.98546e-11 +-------------------------------------------------------------------------------- + + +--- Writing to the total result file +--- Removing previous tested configuration tmp_output folder +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_04_43_49/app_output_folder/all_workloads.txt' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_04_43_49/app_output_folder/Thread_0_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_04_43_49/app_output_folder/Thread_0_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_04_43_49/app_output_folder/Thread_1_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_04_43_49/app_output_folder/Thread_1_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_04_43_49/app_output_folder/Thread_2_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_04_43_49/app_output_folder/Thread_2_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_04_43_49/app_output_folder/Thread_3_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_04_43_49/app_output_folder/Thread_3_ready_for_sampling' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_04_43_49/app_output_folder' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_04_43_49/configuration_mesurement.csv' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_04_43_49/energy_power_workload_energyByWorkload_ccInfo' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_04_43_49/logcat_output' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_04_43_49/powermeter_summary.txt' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_04_43_49' +--- Moving the current experiment tmp_folder to the output result folder +writing a temporary file for the main script with format energy_power_workload_energyByWorkload_ccInfo +--- Obtaining experiment summary result to add to result folder +--- Experiment result, Energy consumed = 69.80058323418798 +--- Experiment result, Avg Power = 2026.1095988610796 +--- Experiment result, Total Workload = 1.16617e+12 +--- Experiment result, Energy Efficiency = 5.98546e-11 +--- Adding result to summary file +--- Starting cc information : 0 +--- Ending cc information : 0 +--- The file /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/summary.csv exists we just appending the result to the file +--- Experiments performed on configuration 303000-2-2. +--- Observing a pause betwenn experiment; pause duration : 180 seconds; starting at 05Oct22_04_56_33 +--- Performing experiments on configuration 303000-2-2 +--- Cleaning the tmp expermiment folder : /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- Second step : verifying the battery level +--- Verifying the battery level +--- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe +--- Current battery level : 50 +Current battery level: OKAY +--- Third step calibrating phone core frequency +--- Resetting all frequency configurations + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu5/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor +--- Frequency level of core 0 is 3 +--- Exact frequency of core 0: 1804800 +--- Modifying the governor of core 0 +--- Modifying the the current frequency of core 0 with frequency 1804800 +--- Frequency level of core 1 is 0 +--- Exact frequency of core 1: 0 +--- Modifying the governor of core 1 +--- Modifying the the current frequency of core 1 with frequency 0 +--- Frequency level of core 2 is 3 +--- Exact frequency of core 2: 1804800 +--- Modifying the governor of core 2 +--- Modifying the the current frequency of core 2 with frequency 1804800 +--- Frequency level of core 3 is 0 +--- Exact frequency of core 3: 0 +--- Modifying the governor of core 3 +--- Modifying the the current frequency of core 3 with frequency 0 +--- Frequency level of core 4 is 0 +--- Exact frequency of core 4: 0 +--- Modifying the governor of core 4 +--- Modifying the the current frequency of core 4 with frequency 0 +--- Frequency level of core 5 is 0 +--- Exact frequency of core 5: 0 +--- Modifying the governor of core 5 +--- Modifying the the current frequency of core 5 with frequency 0 +--- Frequency level of core 6 is 2 +--- Exact frequency of core 6: 1478400 +--- Modifying the governor of core 6 +--- Modifying the the current frequency of core 6 with frequency 1478400 +--- Frequency level of core 7 is 2 +--- Exact frequency of core 7: 1766400 +--- Modifying the governor of core 7 +--- Modifying the the current frequency of core 7 with frequency 1766400 +--- Calibrating Monsoon power meter, please wait for 10 seconds... +powermeter script : --- Inside the monsoon_power_meter, arg function: 1 +powermeter script : calibration duration = 10 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 50000 + returning 50000 samples after experiments +powermeter script : Power meter calibration okay +--- Monsoon power meter Calibrated +--- starting the benchmarking app +## writing the configuration inside the phone file + --- Removing file /sdcard/experiments_automatization +rm '/sdcard/experiments_automatization/current_configuration.txt' +rm '/sdcard/experiments_automatization/experiment_duration.txt' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ended' +rmdir '/sdcard/experiments_automatization/app_output_folder' +rmdir '/sdcard/experiments_automatization' + --- Clearing the logcat + --- Creating file /sdcard/experiments_automatization +----- Uninstalling experiment app +Success +----- Installing experiment app +Performing Streamed Install +Success +------ Giving rights to experiment app +----- Starting experiment app +Starting: Intent { cmp=com.opportunistask.scheduling.benchmarking_app_to_test_big_cores/.MainActivity } +adb command : ps -A | grep com.opportunistask.scheduling.benchmarking_app_to_test_big_cores + ----- Experiment app started with pid: 25238 +---- waiting for benchmarking app thread to be pinned and to be ready +--- frequency level of core 0 is 3 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 3 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of cores to occupy = 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 4 +--- Now threads are running and the phone is ready to be sampled with the power meter \n--- Threads pids +Thread_0_ready_for_sampling +Thread_1_ready_for_sampling +Thread_2_ready_for_sampling +Thread_3_ready_for_sampling +--- Printing cc_info beginning datas (for the samsung galaxy s8) + --- Starting power meter sampling for about 600 seconds +--- Sampling with the Monsoon power meter +powermeter script : --- Inside the monsoon_power_meter, arg function: 2 +powermeter script : Experiment duration = 600 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 3000000 + returning 3000000 samples after experiments +powermeter script : Total nomber of sample measured : 3000000 +powermeter script : Computing powermeter summary result + Number of samples = 3000000 +powermeter script : We computed the energy on 600 samples +powermeter script : average_power = 2046.3684465840151 +powermeter script : average_power with numpy arrays = 2046.3684465831132 +powermeter script : Summary Result = time (s): 601.6331593990326 +Ins Current (mA):414.55497394166593 +Samples: 3000000 +Consumed Energy (mAs): 253964.47110316175 +Consumed Energy (mAh): 70.54568641754493 +Consumed Energy (mWs): 1226120.2949636118 +Consumed Energy (mWh): 340.5889708232255 +Avg power (mW): 2046.3684465840151 +Avg Current (mA): 423.82127211591666 +Avg Voltage (V): 4.8283759717099 +Exp Batt Life (hrs for 1000mAh battery): NOT COMPUTED +--- Monsoon power meter sampling is finished ! + --- experiment folder path /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- frequency level of core 0 is 3 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 3 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of threads normally started = 4 +--- Number of thread ended: 4 +--- Now threads are stopped, getting the cc_info_level for samsung +--- Copying thread results locally +command /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe pull /sdcard/experiments_automatization/app_output_folder C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder </dev/null +/sdcard/experiments_automatization/app_output_folder/: 8 files pulled, 0 skipped. 0.0 MB/s (1816 bytes in 0.061s) +saving the logcat file to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder -/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder- +--- Parsing result from /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/raw_result.txt +--- Getting exact configuration with frequency +--- Configuration with frequencies = [1804800- 0- 1804800- 0- 0- 0- 1478400- 1766400] +--- Getting the powermeter summary +--- Powermeter summary: +time (s): 601.6331593990326 +Ins Current (mA):414.55497394166593 +Samples: 3000000 +Consumed Energy (mAs): 253964.47110316175 +Consumed Energy (mAh): 70.54568641754493 +Consumed Energy (mWs): 1226120.2949636118 +Consumed Energy (mWh): 340.5889708232255 +Avg power (mW): 2046.3684465840151 +Avg Current (mA): 423.82127211591666 +Avg Voltage (V): 4.8283759717099 + +--- Getting the total energy consumed of the google pixel +--- Energy consumed = 70.54568641754493 +--- Starting cc_info = 0 +--- Ending cc_info = 0 +--- Getting the average power +--- Avg Power = 2046.3684465840151 +--- Printing the total threads summary +--- Thread results +Thread : 0 - ThreadProcess id: 25264 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 03:16:21 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 03:26:22 +0100 - Duration: 600003 seconds +Real workload: 4.938707516230931E10 - Integer reached: 184356 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 25265 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 03:16:22 +0100 +Core id: 2 +Ending time: Mon, 20 Dec 2021 03:26:22 +0100 - Duration: 600023 seconds +Real workload: 4.988066765861819E10 - Integer reached: 185237 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 25266 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 03:16:22 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 03:26:22 +0100 - Duration: 600004 seconds +Real workload: 4.845946877002594E11 - Integer reached: 552034 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 25267 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 03:16:22 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 03:26:22 +0100 - Duration: 600005 seconds +Real workload: 5.817105225987368E11 - Integer reached: 602747 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +--- Counting the total workload command : print_total_workload /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder app_output_folder 3,0,3,0,0,0,2,2 /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first +--- Total workload : 1.16557e+12 +--- Getting energy efficiency +--- Energy efficiency: 6.05246e-11 +--- Building what we will add to the total result file command +------ + (build_configuration_raw_result 303000-2-2 3,0,3,0,0,0,2,2 [1804800- 0- 1804800- 0- 0- 0- 1478400- 1766400] time (s): 601.6331593990326 +Ins Current (mA):414.55497394166593 +Samples: 3000000 +Consumed Energy (mAs): 253964.47110316175 +Consumed Energy (mAh): 70.54568641754493 +Consumed Energy (mWs): 1226120.2949636118 +Consumed Energy (mWh): 340.5889708232255 +Avg power (mW): 2046.3684465840151 +Avg Current (mA): 423.82127211591666 +Avg Voltage (V): 4.8283759717099 + Thread : 0 - ThreadProcess id: 25264 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 03:16:21 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 03:26:22 +0100 - Duration: 600003 seconds +Real workload: 4.938707516230931E10 - Integer reached: 184356 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 25265 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 03:16:22 +0100 +Core id: 2 +Ending time: Mon, 20 Dec 2021 03:26:22 +0100 - Duration: 600023 seconds +Real workload: 4.988066765861819E10 - Integer reached: 185237 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 25266 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 03:16:22 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 03:26:22 +0100 - Duration: 600004 seconds +Real workload: 4.845946877002594E11 - Integer reached: 552034 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 25267 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 03:16:22 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 03:26:22 +0100 - Duration: 600005 seconds +Real workload: 5.817105225987368E11 - Integer reached: 602747 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + 70.54568641754493 1.16557e+12 6.05246e-11 0 0 +------ + +--- Final result to print to File + -------------------------------------------------------------------------------- + +++++ +++++ +++++ Configuration Description +-------------------------------------------------------------------------------- +Configuration: 303000-2-2 +phone format: 3,0,3,0,0,0,2,2 +Exact values of frequencies: [1804800- 0- 1804800- 0- 0- 0- 1478400- 1766400] + +Power meter results +------------------------------------------------------------ +time (s): 601.6331593990326 +Ins Current (mA):414.55497394166593 +Samples: 3000000 +Consumed Energy (mAs): 253964.47110316175 +Consumed Energy (mAh): 70.54568641754493 +Consumed Energy (mWs): 1226120.2949636118 +Consumed Energy (mWh): 340.5889708232255 +Avg power (mW): 2046.3684465840151 +Avg Current (mA): 423.82127211591666 +Avg Voltage (V): 4.8283759717099 + +Threads results +------------------------------------------------------------ +Thread : 0 - ThreadProcess id: 25264 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 03:16:21 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 03:26:22 +0100 - Duration: 600003 seconds +Real workload: 4.938707516230931E10 - Integer reached: 184356 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 25265 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 03:16:22 +0100 +Core id: 2 +Ending time: Mon, 20 Dec 2021 03:26:22 +0100 - Duration: 600023 seconds +Real workload: 4.988066765861819E10 - Integer reached: 185237 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 25266 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 03:16:22 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 03:26:22 +0100 - Duration: 600004 seconds +Real workload: 4.845946877002594E11 - Integer reached: 552034 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 25267 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 03:16:22 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 03:26:22 +0100 - Duration: 600005 seconds +Real workload: 5.817105225987368E11 - Integer reached: 602747 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +Expermiment results +------------------------------------------------------------ +Energy Consumed (mAh): 70.54568641754493 +Workload: 1.16557e+12 +Energy efficiency: 6.05246e-11 +-------------------------------------------------------------------------------- + + +--- Writing to the total result file +--- Removing previous tested configuration tmp_output folder +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_04_59_36/app_output_folder/all_workloads.txt' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_04_59_36/app_output_folder/Thread_0_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_04_59_36/app_output_folder/Thread_0_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_04_59_36/app_output_folder/Thread_1_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_04_59_36/app_output_folder/Thread_1_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_04_59_36/app_output_folder/Thread_2_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_04_59_36/app_output_folder/Thread_2_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_04_59_36/app_output_folder/Thread_3_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_04_59_36/app_output_folder/Thread_3_ready_for_sampling' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_04_59_36/app_output_folder' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_04_59_36/configuration_mesurement.csv' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_04_59_36/energy_power_workload_energyByWorkload_ccInfo' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_04_59_36/logcat_output' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_04_59_36/powermeter_summary.txt' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_04_59_36' +--- Moving the current experiment tmp_folder to the output result folder +writing a temporary file for the main script with format energy_power_workload_energyByWorkload_ccInfo +--- Obtaining experiment summary result to add to result folder +--- Experiment result, Energy consumed = 70.54568641754493 +--- Experiment result, Avg Power = 2046.3684465840151 +--- Experiment result, Total Workload = 1.16557e+12 +--- Experiment result, Energy Efficiency = 6.05246e-11 +--- Adding result to summary file +--- Starting cc information : 0 +--- Ending cc information : 0 +--- The file /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/summary.csv exists we just appending the result to the file +--- Experiments performed on configuration 303000-2-2. +--- Observing a pause betwenn experiment; pause duration : 180 seconds; starting at 05Oct22_05_12_20 +--- Performing experiments on configuration 330000-2-2 +--- Cleaning the tmp expermiment folder : /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- Second step : verifying the battery level +--- Verifying the battery level +--- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe +--- Current battery level : 50 +Current battery level: OKAY +--- Third step calibrating phone core frequency +--- Resetting all frequency configurations + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu5/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor +--- Frequency level of core 0 is 3 +--- Exact frequency of core 0: 1804800 +--- Modifying the governor of core 0 +--- Modifying the the current frequency of core 0 with frequency 1804800 +--- Frequency level of core 1 is 3 +--- Exact frequency of core 1: 1804800 +--- Modifying the governor of core 1 +--- Modifying the the current frequency of core 1 with frequency 1804800 +--- Frequency level of core 2 is 0 +--- Exact frequency of core 2: 0 +--- Modifying the governor of core 2 +--- Modifying the the current frequency of core 2 with frequency 0 +--- Frequency level of core 3 is 0 +--- Exact frequency of core 3: 0 +--- Modifying the governor of core 3 +--- Modifying the the current frequency of core 3 with frequency 0 +--- Frequency level of core 4 is 0 +--- Exact frequency of core 4: 0 +--- Modifying the governor of core 4 +--- Modifying the the current frequency of core 4 with frequency 0 +--- Frequency level of core 5 is 0 +--- Exact frequency of core 5: 0 +--- Modifying the governor of core 5 +--- Modifying the the current frequency of core 5 with frequency 0 +--- Frequency level of core 6 is 2 +--- Exact frequency of core 6: 1478400 +--- Modifying the governor of core 6 +--- Modifying the the current frequency of core 6 with frequency 1478400 +--- Frequency level of core 7 is 2 +--- Exact frequency of core 7: 1766400 +--- Modifying the governor of core 7 +--- Modifying the the current frequency of core 7 with frequency 1766400 +--- Calibrating Monsoon power meter, please wait for 10 seconds... +powermeter script : --- Inside the monsoon_power_meter, arg function: 1 +powermeter script : calibration duration = 10 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 50000 + returning 50000 samples after experiments +powermeter script : Power meter calibration okay +--- Monsoon power meter Calibrated +--- starting the benchmarking app +## writing the configuration inside the phone file + --- Removing file /sdcard/experiments_automatization +rm '/sdcard/experiments_automatization/current_configuration.txt' +rm '/sdcard/experiments_automatization/experiment_duration.txt' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ended' +rmdir '/sdcard/experiments_automatization/app_output_folder' +rmdir '/sdcard/experiments_automatization' + --- Clearing the logcat + --- Creating file /sdcard/experiments_automatization +----- Uninstalling experiment app +Success +----- Installing experiment app +Performing Streamed Install +Success +------ Giving rights to experiment app +----- Starting experiment app +Starting: Intent { cmp=com.opportunistask.scheduling.benchmarking_app_to_test_big_cores/.MainActivity } +adb command : ps -A | grep com.opportunistask.scheduling.benchmarking_app_to_test_big_cores + ----- Experiment app started with pid: 26316 +---- waiting for benchmarking app thread to be pinned and to be ready +--- frequency level of core 0 is 3 +--- frequency level of core 1 is 3 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of cores to occupy = 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 4 +--- Now threads are running and the phone is ready to be sampled with the power meter \n--- Threads pids +Thread_0_ready_for_sampling +Thread_1_ready_for_sampling +Thread_2_ready_for_sampling +Thread_3_ready_for_sampling +--- Printing cc_info beginning datas (for the samsung galaxy s8) + --- Starting power meter sampling for about 600 seconds +--- Sampling with the Monsoon power meter +powermeter script : --- Inside the monsoon_power_meter, arg function: 2 +powermeter script : Experiment duration = 600 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 3000000 + returning 3000000 samples after experiments +powermeter script : Total nomber of sample measured : 3000000 +powermeter script : Computing powermeter summary result + Number of samples = 3000000 +powermeter script : We computed the energy on 600 samples +powermeter script : average_power = 2037.9039312812663 +powermeter script : average_power with numpy arrays = 2037.9039312809564 +powermeter script : Summary Result = time (s): 601.9875276088715 +Ins Current (mA):411.174261529436 +Samples: 3000000 +Consumed Energy (mAs): 253194.30992927763 +Consumed Energy (mAh): 70.33175275813268 +Consumed Energy (mWs): 1222412.8871552553 +Consumed Energy (mWh): 339.55913532090426 +Avg power (mW): 2037.9039312812663 +Avg Current (mA): 421.94252020922113 +Avg Voltage (V): 4.829814094751027 +Exp Batt Life (hrs for 1000mAh battery): NOT COMPUTED +--- Monsoon power meter sampling is finished ! + --- experiment folder path /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- frequency level of core 0 is 3 +--- frequency level of core 1 is 3 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of threads normally started = 4 +--- Number of thread ended: 4 +--- Now threads are stopped, getting the cc_info_level for samsung +--- Copying thread results locally +command /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe pull /sdcard/experiments_automatization/app_output_folder C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder </dev/null +/sdcard/experiments_automatization/app_output_folder/: 8 files pulled, 0 skipped. 0.0 MB/s (1816 bytes in 0.063s) +saving the logcat file to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder -/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder- +--- Parsing result from /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/raw_result.txt +--- Getting exact configuration with frequency +--- Configuration with frequencies = [1804800- 1804800- 0- 0- 0- 0- 1478400- 1766400] +--- Getting the powermeter summary +--- Powermeter summary: +time (s): 601.9875276088715 +Ins Current (mA):411.174261529436 +Samples: 3000000 +Consumed Energy (mAs): 253194.30992927763 +Consumed Energy (mAh): 70.33175275813268 +Consumed Energy (mWs): 1222412.8871552553 +Consumed Energy (mWh): 339.55913532090426 +Avg power (mW): 2037.9039312812663 +Avg Current (mA): 421.94252020922113 +Avg Voltage (V): 4.829814094751027 + +--- Getting the total energy consumed of the google pixel +--- Energy consumed = 70.33175275813268 +--- Starting cc_info = 0 +--- Ending cc_info = 0 +--- Getting the average power +--- Avg Power = 2037.9039312812663 +--- Printing the total threads summary +--- Thread results +Thread : 0 - ThreadProcess id: 26341 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 03:32:08 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 03:42:08 +0100 - Duration: 600008 seconds +Real workload: 4.947429075275023E10 - Integer reached: 184512 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 26342 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 03:32:08 +0100 +Core id: 1 +Ending time: Mon, 20 Dec 2021 03:42:08 +0100 - Duration: 600011 seconds +Real workload: 4.920228604285214E10 - Integer reached: 184025 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 26344 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 03:32:08 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 03:42:08 +0100 - Duration: 600006 seconds +Real workload: 4.849596923951915E11 - Integer reached: 552234 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 26345 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 03:32:08 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 03:42:08 +0100 - Duration: 600010 seconds +Real workload: 5.813175065296215E11 - Integer reached: 602551 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +--- Counting the total workload command : print_total_workload /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder app_output_folder 3,3,0,0,0,0,2,2 /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first +--- Total workload : 1.16495e+12 +--- Getting energy efficiency +--- Energy efficiency: 6.03732e-11 +--- Building what we will add to the total result file command +------ + (build_configuration_raw_result 330000-2-2 3,3,0,0,0,0,2,2 [1804800- 1804800- 0- 0- 0- 0- 1478400- 1766400] time (s): 601.9875276088715 +Ins Current (mA):411.174261529436 +Samples: 3000000 +Consumed Energy (mAs): 253194.30992927763 +Consumed Energy (mAh): 70.33175275813268 +Consumed Energy (mWs): 1222412.8871552553 +Consumed Energy (mWh): 339.55913532090426 +Avg power (mW): 2037.9039312812663 +Avg Current (mA): 421.94252020922113 +Avg Voltage (V): 4.829814094751027 + Thread : 0 - ThreadProcess id: 26341 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 03:32:08 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 03:42:08 +0100 - Duration: 600008 seconds +Real workload: 4.947429075275023E10 - Integer reached: 184512 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 26342 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 03:32:08 +0100 +Core id: 1 +Ending time: Mon, 20 Dec 2021 03:42:08 +0100 - Duration: 600011 seconds +Real workload: 4.920228604285214E10 - Integer reached: 184025 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 26344 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 03:32:08 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 03:42:08 +0100 - Duration: 600006 seconds +Real workload: 4.849596923951915E11 - Integer reached: 552234 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 26345 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 03:32:08 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 03:42:08 +0100 - Duration: 600010 seconds +Real workload: 5.813175065296215E11 - Integer reached: 602551 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + 70.33175275813268 1.16495e+12 6.03732e-11 0 0 +------ + +--- Final result to print to File + -------------------------------------------------------------------------------- + +++++ +++++ +++++ Configuration Description +-------------------------------------------------------------------------------- +Configuration: 330000-2-2 +phone format: 3,3,0,0,0,0,2,2 +Exact values of frequencies: [1804800- 1804800- 0- 0- 0- 0- 1478400- 1766400] + +Power meter results +------------------------------------------------------------ +time (s): 601.9875276088715 +Ins Current (mA):411.174261529436 +Samples: 3000000 +Consumed Energy (mAs): 253194.30992927763 +Consumed Energy (mAh): 70.33175275813268 +Consumed Energy (mWs): 1222412.8871552553 +Consumed Energy (mWh): 339.55913532090426 +Avg power (mW): 2037.9039312812663 +Avg Current (mA): 421.94252020922113 +Avg Voltage (V): 4.829814094751027 + +Threads results +------------------------------------------------------------ +Thread : 0 - ThreadProcess id: 26341 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 03:32:08 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 03:42:08 +0100 - Duration: 600008 seconds +Real workload: 4.947429075275023E10 - Integer reached: 184512 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 26342 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 03:32:08 +0100 +Core id: 1 +Ending time: Mon, 20 Dec 2021 03:42:08 +0100 - Duration: 600011 seconds +Real workload: 4.920228604285214E10 - Integer reached: 184025 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 26344 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 03:32:08 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 03:42:08 +0100 - Duration: 600006 seconds +Real workload: 4.849596923951915E11 - Integer reached: 552234 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 26345 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 03:32:08 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 03:42:08 +0100 - Duration: 600010 seconds +Real workload: 5.813175065296215E11 - Integer reached: 602551 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +Expermiment results +------------------------------------------------------------ +Energy Consumed (mAh): 70.33175275813268 +Workload: 1.16495e+12 +Energy efficiency: 6.03732e-11 +-------------------------------------------------------------------------------- + + +--- Writing to the total result file +--- Removing previous tested configuration tmp_output folder +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_05_15_22/app_output_folder/all_workloads.txt' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_05_15_22/app_output_folder/Thread_0_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_05_15_22/app_output_folder/Thread_0_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_05_15_22/app_output_folder/Thread_1_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_05_15_22/app_output_folder/Thread_1_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_05_15_22/app_output_folder/Thread_2_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_05_15_22/app_output_folder/Thread_2_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_05_15_22/app_output_folder/Thread_3_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_05_15_22/app_output_folder/Thread_3_ready_for_sampling' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_05_15_22/app_output_folder' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_05_15_22/configuration_mesurement.csv' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_05_15_22/energy_power_workload_energyByWorkload_ccInfo' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_05_15_22/logcat_output' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_05_15_22/powermeter_summary.txt' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_05_15_22' +--- Moving the current experiment tmp_folder to the output result folder +writing a temporary file for the main script with format energy_power_workload_energyByWorkload_ccInfo +--- Obtaining experiment summary result to add to result folder +--- Experiment result, Energy consumed = 70.33175275813268 +--- Experiment result, Avg Power = 2037.9039312812663 +--- Experiment result, Total Workload = 1.16495e+12 +--- Experiment result, Energy Efficiency = 6.03732e-11 +--- Adding result to summary file +--- Starting cc information : 0 +--- Ending cc information : 0 +--- The file /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/summary.csv exists we just appending the result to the file +--- Experiments performed on configuration 330000-2-2. +--- Observing a pause betwenn experiment; pause duration : 180 seconds; starting at 05Oct22_05_28_07 +--- Performing experiments on configuration 330000-2-2 +--- Cleaning the tmp expermiment folder : /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- Second step : verifying the battery level +--- Verifying the battery level +--- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe +--- Current battery level : 50 +Current battery level: OKAY +--- Third step calibrating phone core frequency +--- Resetting all frequency configurations + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu5/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor +--- Frequency level of core 0 is 3 +--- Exact frequency of core 0: 1804800 +--- Modifying the governor of core 0 +--- Modifying the the current frequency of core 0 with frequency 1804800 +--- Frequency level of core 1 is 3 +--- Exact frequency of core 1: 1804800 +--- Modifying the governor of core 1 +--- Modifying the the current frequency of core 1 with frequency 1804800 +--- Frequency level of core 2 is 0 +--- Exact frequency of core 2: 0 +--- Modifying the governor of core 2 +--- Modifying the the current frequency of core 2 with frequency 0 +--- Frequency level of core 3 is 0 +--- Exact frequency of core 3: 0 +--- Modifying the governor of core 3 +--- Modifying the the current frequency of core 3 with frequency 0 +--- Frequency level of core 4 is 0 +--- Exact frequency of core 4: 0 +--- Modifying the governor of core 4 +--- Modifying the the current frequency of core 4 with frequency 0 +--- Frequency level of core 5 is 0 +--- Exact frequency of core 5: 0 +--- Modifying the governor of core 5 +--- Modifying the the current frequency of core 5 with frequency 0 +--- Frequency level of core 6 is 2 +--- Exact frequency of core 6: 1478400 +--- Modifying the governor of core 6 +--- Modifying the the current frequency of core 6 with frequency 1478400 +--- Frequency level of core 7 is 2 +--- Exact frequency of core 7: 1766400 +--- Modifying the governor of core 7 +--- Modifying the the current frequency of core 7 with frequency 1766400 +--- Calibrating Monsoon power meter, please wait for 10 seconds... +powermeter script : --- Inside the monsoon_power_meter, arg function: 1 +powermeter script : calibration duration = 10 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 50000 + returning 50000 samples after experiments +powermeter script : Power meter calibration okay +--- Monsoon power meter Calibrated +--- starting the benchmarking app +## writing the configuration inside the phone file + --- Removing file /sdcard/experiments_automatization +rm '/sdcard/experiments_automatization/current_configuration.txt' +rm '/sdcard/experiments_automatization/experiment_duration.txt' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ended' +rmdir '/sdcard/experiments_automatization/app_output_folder' +rmdir '/sdcard/experiments_automatization' + --- Clearing the logcat + --- Creating file /sdcard/experiments_automatization +----- Uninstalling experiment app +Success +----- Installing experiment app +Performing Streamed Install +Success +------ Giving rights to experiment app +----- Starting experiment app +Starting: Intent { cmp=com.opportunistask.scheduling.benchmarking_app_to_test_big_cores/.MainActivity } +adb command : ps -A | grep com.opportunistask.scheduling.benchmarking_app_to_test_big_cores + ----- Experiment app started with pid: 27343 +---- waiting for benchmarking app thread to be pinned and to be ready +--- frequency level of core 0 is 3 +--- frequency level of core 1 is 3 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of cores to occupy = 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 4 +--- Now threads are running and the phone is ready to be sampled with the power meter \n--- Threads pids +Thread_0_ready_for_sampling +Thread_1_ready_for_sampling +Thread_2_ready_for_sampling +Thread_3_ready_for_sampling +--- Printing cc_info beginning datas (for the samsung galaxy s8) + --- Starting power meter sampling for about 600 seconds +--- Sampling with the Monsoon power meter +powermeter script : --- Inside the monsoon_power_meter, arg function: 2 +powermeter script : Experiment duration = 600 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 3000000 + returning 3000000 samples after experiments +powermeter script : Total nomber of sample measured : 3000000 +powermeter script : Computing powermeter summary result + Number of samples = 3000000 +powermeter script : We computed the energy on 600 samples +powermeter script : average_power = 2033.4880545000324 +powermeter script : average_power with numpy arrays = 2033.4880544993705 +powermeter script : Summary Result = time (s): 602.9181933403015 +Ins Current (mA):414.9684781118103 +Samples: 3000000 +Consumed Energy (mAs): 252308.70913629362 +Consumed Energy (mAh): 70.08575253785934 +Consumed Energy (mWs): 1218421.3987025823 +Consumed Energy (mWh): 338.45038852849507 +Avg power (mW): 2033.4880545000324 +Avg Current (mA): 420.9721782090836 +Avg Voltage (V): 4.830457117501155 +Exp Batt Life (hrs for 1000mAh battery): NOT COMPUTED +--- Monsoon power meter sampling is finished ! + --- experiment folder path /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- frequency level of core 0 is 3 +--- frequency level of core 1 is 3 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of threads normally started = 4 +--- Number of thread ended: 4 +--- Now threads are stopped, getting the cc_info_level for samsung +--- Copying thread results locally +command /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe pull /sdcard/experiments_automatization/app_output_folder C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder </dev/null +/sdcard/experiments_automatization/app_output_folder/: 8 files pulled, 0 skipped. 0.0 MB/s (1816 bytes in 0.050s) +saving the logcat file to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder -/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder- +--- Parsing result from /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/raw_result.txt +--- Getting exact configuration with frequency +--- Configuration with frequencies = [1804800- 1804800- 0- 0- 0- 0- 1478400- 1766400] +--- Getting the powermeter summary +--- Powermeter summary: +time (s): 602.9181933403015 +Ins Current (mA):414.9684781118103 +Samples: 3000000 +Consumed Energy (mAs): 252308.70913629362 +Consumed Energy (mAh): 70.08575253785934 +Consumed Energy (mWs): 1218421.3987025823 +Consumed Energy (mWh): 338.45038852849507 +Avg power (mW): 2033.4880545000324 +Avg Current (mA): 420.9721782090836 +Avg Voltage (V): 4.830457117501155 + +--- Getting the total energy consumed of the google pixel +--- Energy consumed = 70.08575253785934 +--- Starting cc_info = 0 +--- Ending cc_info = 0 +--- Getting the average power +--- Avg Power = 2033.4880545000324 +--- Printing the total threads summary +--- Thread results +Thread : 0 - ThreadProcess id: 27370 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 03:47:55 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 03:57:55 +0100 - Duration: 600033 seconds +Real workload: 4.98419174936133E10 - Integer reached: 185168 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 27371 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 03:47:55 +0100 +Core id: 1 +Ending time: Mon, 20 Dec 2021 03:57:55 +0100 - Duration: 600022 seconds +Real workload: 4.950393988406067E10 - Integer reached: 184565 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 27373 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 03:47:55 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 03:57:55 +0100 - Duration: 600002 seconds +Real workload: 4.8428819367973413E11 - Integer reached: 551866 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 27374 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 03:47:55 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 03:57:55 +0100 - Duration: 600001 seconds +Real workload: 5.811330767980662E11 - Integer reached: 602459 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +--- Counting the total workload command : print_total_workload /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder app_output_folder 3,3,0,0,0,0,2,2 /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first +--- Total workload : 1.16477e+12 +--- Getting energy efficiency +--- Energy efficiency: 6.01713e-11 +--- Building what we will add to the total result file command +------ + (build_configuration_raw_result 330000-2-2 3,3,0,0,0,0,2,2 [1804800- 1804800- 0- 0- 0- 0- 1478400- 1766400] time (s): 602.9181933403015 +Ins Current (mA):414.9684781118103 +Samples: 3000000 +Consumed Energy (mAs): 252308.70913629362 +Consumed Energy (mAh): 70.08575253785934 +Consumed Energy (mWs): 1218421.3987025823 +Consumed Energy (mWh): 338.45038852849507 +Avg power (mW): 2033.4880545000324 +Avg Current (mA): 420.9721782090836 +Avg Voltage (V): 4.830457117501155 + Thread : 0 - ThreadProcess id: 27370 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 03:47:55 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 03:57:55 +0100 - Duration: 600033 seconds +Real workload: 4.98419174936133E10 - Integer reached: 185168 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 27371 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 03:47:55 +0100 +Core id: 1 +Ending time: Mon, 20 Dec 2021 03:57:55 +0100 - Duration: 600022 seconds +Real workload: 4.950393988406067E10 - Integer reached: 184565 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 27373 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 03:47:55 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 03:57:55 +0100 - Duration: 600002 seconds +Real workload: 4.8428819367973413E11 - Integer reached: 551866 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 27374 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 03:47:55 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 03:57:55 +0100 - Duration: 600001 seconds +Real workload: 5.811330767980662E11 - Integer reached: 602459 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + 70.08575253785934 1.16477e+12 6.01713e-11 0 0 +------ + +--- Final result to print to File + -------------------------------------------------------------------------------- + +++++ +++++ +++++ Configuration Description +-------------------------------------------------------------------------------- +Configuration: 330000-2-2 +phone format: 3,3,0,0,0,0,2,2 +Exact values of frequencies: [1804800- 1804800- 0- 0- 0- 0- 1478400- 1766400] + +Power meter results +------------------------------------------------------------ +time (s): 602.9181933403015 +Ins Current (mA):414.9684781118103 +Samples: 3000000 +Consumed Energy (mAs): 252308.70913629362 +Consumed Energy (mAh): 70.08575253785934 +Consumed Energy (mWs): 1218421.3987025823 +Consumed Energy (mWh): 338.45038852849507 +Avg power (mW): 2033.4880545000324 +Avg Current (mA): 420.9721782090836 +Avg Voltage (V): 4.830457117501155 + +Threads results +------------------------------------------------------------ +Thread : 0 - ThreadProcess id: 27370 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 03:47:55 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 03:57:55 +0100 - Duration: 600033 seconds +Real workload: 4.98419174936133E10 - Integer reached: 185168 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 27371 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 03:47:55 +0100 +Core id: 1 +Ending time: Mon, 20 Dec 2021 03:57:55 +0100 - Duration: 600022 seconds +Real workload: 4.950393988406067E10 - Integer reached: 184565 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 27373 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 03:47:55 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 03:57:55 +0100 - Duration: 600002 seconds +Real workload: 4.8428819367973413E11 - Integer reached: 551866 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 27374 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 03:47:55 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 03:57:55 +0100 - Duration: 600001 seconds +Real workload: 5.811330767980662E11 - Integer reached: 602459 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +Expermiment results +------------------------------------------------------------ +Energy Consumed (mAh): 70.08575253785934 +Workload: 1.16477e+12 +Energy efficiency: 6.01713e-11 +-------------------------------------------------------------------------------- + + +--- Writing to the total result file +--- Removing previous tested configuration tmp_output folder +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_05_31_09/app_output_folder/all_workloads.txt' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_05_31_09/app_output_folder/Thread_0_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_05_31_09/app_output_folder/Thread_0_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_05_31_09/app_output_folder/Thread_1_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_05_31_09/app_output_folder/Thread_1_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_05_31_09/app_output_folder/Thread_2_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_05_31_09/app_output_folder/Thread_2_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_05_31_09/app_output_folder/Thread_3_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_05_31_09/app_output_folder/Thread_3_ready_for_sampling' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_05_31_09/app_output_folder' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_05_31_09/configuration_mesurement.csv' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_05_31_09/energy_power_workload_energyByWorkload_ccInfo' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_05_31_09/logcat_output' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_05_31_09/powermeter_summary.txt' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_05_31_09' +--- Moving the current experiment tmp_folder to the output result folder +writing a temporary file for the main script with format energy_power_workload_energyByWorkload_ccInfo +--- Obtaining experiment summary result to add to result folder +--- Experiment result, Energy consumed = 70.08575253785934 +--- Experiment result, Avg Power = 2033.4880545000324 +--- Experiment result, Total Workload = 1.16477e+12 +--- Experiment result, Energy Efficiency = 6.01713e-11 +--- Adding result to summary file +--- Starting cc information : 0 +--- Ending cc information : 0 +--- The file /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/summary.csv exists we just appending the result to the file +--- Experiments performed on configuration 330000-2-2. +--- Observing a pause betwenn experiment; pause duration : 180 seconds; starting at 05Oct22_05_43_55 +--- Performing experiments on configuration 330000-2-2 +--- Cleaning the tmp expermiment folder : /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- Second step : verifying the battery level +--- Verifying the battery level +--- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe +--- Current battery level : 50 +Current battery level: OKAY +--- Third step calibrating phone core frequency +--- Resetting all frequency configurations + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu5/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor +--- Frequency level of core 0 is 3 +--- Exact frequency of core 0: 1804800 +--- Modifying the governor of core 0 +--- Modifying the the current frequency of core 0 with frequency 1804800 +--- Frequency level of core 1 is 3 +--- Exact frequency of core 1: 1804800 +--- Modifying the governor of core 1 +--- Modifying the the current frequency of core 1 with frequency 1804800 +--- Frequency level of core 2 is 0 +--- Exact frequency of core 2: 0 +--- Modifying the governor of core 2 +--- Modifying the the current frequency of core 2 with frequency 0 +--- Frequency level of core 3 is 0 +--- Exact frequency of core 3: 0 +--- Modifying the governor of core 3 +--- Modifying the the current frequency of core 3 with frequency 0 +--- Frequency level of core 4 is 0 +--- Exact frequency of core 4: 0 +--- Modifying the governor of core 4 +--- Modifying the the current frequency of core 4 with frequency 0 +--- Frequency level of core 5 is 0 +--- Exact frequency of core 5: 0 +--- Modifying the governor of core 5 +--- Modifying the the current frequency of core 5 with frequency 0 +--- Frequency level of core 6 is 2 +--- Exact frequency of core 6: 1478400 +--- Modifying the governor of core 6 +--- Modifying the the current frequency of core 6 with frequency 1478400 +--- Frequency level of core 7 is 2 +--- Exact frequency of core 7: 1766400 +--- Modifying the governor of core 7 +--- Modifying the the current frequency of core 7 with frequency 1766400 +--- Calibrating Monsoon power meter, please wait for 10 seconds... +powermeter script : --- Inside the monsoon_power_meter, arg function: 1 +powermeter script : calibration duration = 10 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 50000 + returning 50000 samples after experiments +powermeter script : Power meter calibration okay +--- Monsoon power meter Calibrated +--- starting the benchmarking app +## writing the configuration inside the phone file + --- Removing file /sdcard/experiments_automatization +rm '/sdcard/experiments_automatization/current_configuration.txt' +rm '/sdcard/experiments_automatization/experiment_duration.txt' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ended' +rmdir '/sdcard/experiments_automatization/app_output_folder' +rmdir '/sdcard/experiments_automatization' + --- Clearing the logcat + --- Creating file /sdcard/experiments_automatization +----- Uninstalling experiment app +Success +----- Installing experiment app +Performing Streamed Install +Success +------ Giving rights to experiment app +----- Starting experiment app +Starting: Intent { cmp=com.opportunistask.scheduling.benchmarking_app_to_test_big_cores/.MainActivity } +adb command : ps -A | grep com.opportunistask.scheduling.benchmarking_app_to_test_big_cores + ----- Experiment app started with pid: 28363 +---- waiting for benchmarking app thread to be pinned and to be ready +--- frequency level of core 0 is 3 +--- frequency level of core 1 is 3 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of cores to occupy = 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 4 +--- Now threads are running and the phone is ready to be sampled with the power meter \n--- Threads pids +Thread_0_ready_for_sampling +Thread_1_ready_for_sampling +Thread_2_ready_for_sampling +Thread_3_ready_for_sampling +--- Printing cc_info beginning datas (for the samsung galaxy s8) + --- Starting power meter sampling for about 600 seconds +--- Sampling with the Monsoon power meter +powermeter script : --- Inside the monsoon_power_meter, arg function: 2 +powermeter script : Experiment duration = 600 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 3000000 + returning 3000000 samples after experiments +powermeter script : Total nomber of sample measured : 3000000 +powermeter script : Computing powermeter summary result + Number of samples = 3000000 +powermeter script : We computed the energy on 600 samples +powermeter script : average_power = 2031.2454594455432 +powermeter script : average_power with numpy arrays = 2031.2454594450082 +powermeter script : Summary Result = time (s): 602.8403639793396 +Ins Current (mA):439.93365383882787 +Samples: 3000000 +Consumed Energy (mAs): 251150.4501792517 +Consumed Energy (mAh): 69.76401393868103 +Consumed Energy (mWs): 1213181.2617205544 +Consumed Energy (mWh): 336.99479492237623 +Avg power (mW): 2031.2454594455432 +Avg Current (mA): 420.4747604831693 +Avg Voltage (V): 4.83083802012618 +Exp Batt Life (hrs for 1000mAh battery): NOT COMPUTED +--- Monsoon power meter sampling is finished ! + --- experiment folder path /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- frequency level of core 0 is 3 +--- frequency level of core 1 is 3 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of threads normally started = 4 +--- Number of thread ended: 4 +--- Now threads are stopped, getting the cc_info_level for samsung +--- Copying thread results locally +command /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe pull /sdcard/experiments_automatization/app_output_folder C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder </dev/null +/sdcard/experiments_automatization/app_output_folder/: 8 files pulled, 0 skipped. 0.0 MB/s (1816 bytes in 0.072s) +saving the logcat file to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder -/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder- +--- Parsing result from /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/raw_result.txt +--- Getting exact configuration with frequency +--- Configuration with frequencies = [1804800- 1804800- 0- 0- 0- 0- 1478400- 1766400] +--- Getting the powermeter summary +--- Powermeter summary: +time (s): 602.8403639793396 +Ins Current (mA):439.93365383882787 +Samples: 3000000 +Consumed Energy (mAs): 251150.4501792517 +Consumed Energy (mAh): 69.76401393868103 +Consumed Energy (mWs): 1213181.2617205544 +Consumed Energy (mWh): 336.99479492237623 +Avg power (mW): 2031.2454594455432 +Avg Current (mA): 420.4747604831693 +Avg Voltage (V): 4.83083802012618 + +--- Getting the total energy consumed of the google pixel +--- Energy consumed = 69.76401393868103 +--- Starting cc_info = 0 +--- Ending cc_info = 0 +--- Getting the average power +--- Avg Power = 2031.2454594455432 +--- Printing the total threads summary +--- Thread results +Thread : 0 - ThreadProcess id: 28388 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 04:03:43 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 04:13:43 +0100 - Duration: 600006 seconds +Real workload: 4.954143400658449E10 - Integer reached: 184632 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 49 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 28389 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 04:03:43 +0100 +Core id: 1 +Ending time: Mon, 20 Dec 2021 04:13:44 +0100 - Duration: 600003 seconds +Real workload: 4.9055159020144844E10 - Integer reached: 183761 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 49 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 28390 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 04:03:43 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 04:13:43 +0100 - Duration: 600004 seconds +Real workload: 4.841276892497731E11 - Integer reached: 551778 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 49 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 28391 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 04:03:43 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 04:13:43 +0100 - Duration: 600009 seconds +Real workload: 5.81413742607618E11 - Integer reached: 602599 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 49 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +--- Counting the total workload command : print_total_workload /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder app_output_folder 3,3,0,0,0,0,2,2 /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first +--- Total workload : 1.16414e+12 +--- Getting energy efficiency +--- Energy efficiency: 5.99275e-11 +--- Building what we will add to the total result file command +------ + (build_configuration_raw_result 330000-2-2 3,3,0,0,0,0,2,2 [1804800- 1804800- 0- 0- 0- 0- 1478400- 1766400] time (s): 602.8403639793396 +Ins Current (mA):439.93365383882787 +Samples: 3000000 +Consumed Energy (mAs): 251150.4501792517 +Consumed Energy (mAh): 69.76401393868103 +Consumed Energy (mWs): 1213181.2617205544 +Consumed Energy (mWh): 336.99479492237623 +Avg power (mW): 2031.2454594455432 +Avg Current (mA): 420.4747604831693 +Avg Voltage (V): 4.83083802012618 + Thread : 0 - ThreadProcess id: 28388 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 04:03:43 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 04:13:43 +0100 - Duration: 600006 seconds +Real workload: 4.954143400658449E10 - Integer reached: 184632 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 49 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 28389 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 04:03:43 +0100 +Core id: 1 +Ending time: Mon, 20 Dec 2021 04:13:44 +0100 - Duration: 600003 seconds +Real workload: 4.9055159020144844E10 - Integer reached: 183761 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 49 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 28390 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 04:03:43 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 04:13:43 +0100 - Duration: 600004 seconds +Real workload: 4.841276892497731E11 - Integer reached: 551778 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 49 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 28391 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 04:03:43 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 04:13:43 +0100 - Duration: 600009 seconds +Real workload: 5.81413742607618E11 - Integer reached: 602599 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 49 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + 69.76401393868103 1.16414e+12 5.99275e-11 0 0 +------ + +--- Final result to print to File + -------------------------------------------------------------------------------- + +++++ +++++ +++++ Configuration Description +-------------------------------------------------------------------------------- +Configuration: 330000-2-2 +phone format: 3,3,0,0,0,0,2,2 +Exact values of frequencies: [1804800- 1804800- 0- 0- 0- 0- 1478400- 1766400] + +Power meter results +------------------------------------------------------------ +time (s): 602.8403639793396 +Ins Current (mA):439.93365383882787 +Samples: 3000000 +Consumed Energy (mAs): 251150.4501792517 +Consumed Energy (mAh): 69.76401393868103 +Consumed Energy (mWs): 1213181.2617205544 +Consumed Energy (mWh): 336.99479492237623 +Avg power (mW): 2031.2454594455432 +Avg Current (mA): 420.4747604831693 +Avg Voltage (V): 4.83083802012618 + +Threads results +------------------------------------------------------------ +Thread : 0 - ThreadProcess id: 28388 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 04:03:43 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 04:13:43 +0100 - Duration: 600006 seconds +Real workload: 4.954143400658449E10 - Integer reached: 184632 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 49 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 28389 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 04:03:43 +0100 +Core id: 1 +Ending time: Mon, 20 Dec 2021 04:13:44 +0100 - Duration: 600003 seconds +Real workload: 4.9055159020144844E10 - Integer reached: 183761 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 49 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 28390 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 04:03:43 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 04:13:43 +0100 - Duration: 600004 seconds +Real workload: 4.841276892497731E11 - Integer reached: 551778 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 49 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 28391 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 04:03:43 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 04:13:43 +0100 - Duration: 600009 seconds +Real workload: 5.81413742607618E11 - Integer reached: 602599 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 49 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +Expermiment results +------------------------------------------------------------ +Energy Consumed (mAh): 69.76401393868103 +Workload: 1.16414e+12 +Energy efficiency: 5.99275e-11 +-------------------------------------------------------------------------------- + + +--- Writing to the total result file +--- Removing previous tested configuration tmp_output folder +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_05_46_57/app_output_folder/all_workloads.txt' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_05_46_57/app_output_folder/Thread_0_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_05_46_57/app_output_folder/Thread_0_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_05_46_57/app_output_folder/Thread_1_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_05_46_57/app_output_folder/Thread_1_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_05_46_57/app_output_folder/Thread_2_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_05_46_57/app_output_folder/Thread_2_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_05_46_57/app_output_folder/Thread_3_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_05_46_57/app_output_folder/Thread_3_ready_for_sampling' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_05_46_57/app_output_folder' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_05_46_57/configuration_mesurement.csv' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_05_46_57/energy_power_workload_energyByWorkload_ccInfo' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_05_46_57/logcat_output' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_05_46_57/powermeter_summary.txt' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_05_46_57' +--- Moving the current experiment tmp_folder to the output result folder +writing a temporary file for the main script with format energy_power_workload_energyByWorkload_ccInfo +--- Obtaining experiment summary result to add to result folder +--- Experiment result, Energy consumed = 69.76401393868103 +--- Experiment result, Avg Power = 2031.2454594455432 +--- Experiment result, Total Workload = 1.16414e+12 +--- Experiment result, Energy Efficiency = 5.99275e-11 +--- Adding result to summary file +--- Starting cc information : 0 +--- Ending cc information : 0 +--- The file /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/summary.csv exists we just appending the result to the file +--- Experiments performed on configuration 330000-2-2. +--- Observing a pause betwenn experiment; pause duration : 180 seconds; starting at 05Oct22_05_59_44 +--- Performing experiments on configuration 400004-2-2 +--- Cleaning the tmp expermiment folder : /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- Second step : verifying the battery level +--- Verifying the battery level +--- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe +--- Current battery level : 50 +Current battery level: OKAY +--- Third step calibrating phone core frequency +--- Resetting all frequency configurations + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu5/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor +--- Frequency level of core 0 is 4 +--- Modifying the governor of core 0 to set the default value +--- Modifying the governor of core 0 +--- Frequency level of core 1 is 0 +--- Exact frequency of core 1: 0 +--- Modifying the governor of core 1 +--- Modifying the the current frequency of core 1 with frequency 0 +--- Frequency level of core 2 is 0 +--- Exact frequency of core 2: 0 +--- Modifying the governor of core 2 +--- Modifying the the current frequency of core 2 with frequency 0 +--- Frequency level of core 3 is 0 +--- Exact frequency of core 3: 0 +--- Modifying the governor of core 3 +--- Modifying the the current frequency of core 3 with frequency 0 +--- Frequency level of core 4 is 0 +--- Exact frequency of core 4: 0 +--- Modifying the governor of core 4 +--- Modifying the the current frequency of core 4 with frequency 0 +--- Frequency level of core 5 is 4 +--- Modifying the governor of core 5 to set the default value +--- Modifying the governor of core 5 +--- Frequency level of core 6 is 2 +--- Exact frequency of core 6: 1478400 +--- Modifying the governor of core 6 +--- Modifying the the current frequency of core 6 with frequency 1478400 +--- Frequency level of core 7 is 2 +--- Exact frequency of core 7: 1766400 +--- Modifying the governor of core 7 +--- Modifying the the current frequency of core 7 with frequency 1766400 +--- Calibrating Monsoon power meter, please wait for 10 seconds... +powermeter script : --- Inside the monsoon_power_meter, arg function: 1 +powermeter script : calibration duration = 10 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 50000 + returning 50000 samples after experiments +powermeter script : Power meter calibration okay +--- Monsoon power meter Calibrated +--- starting the benchmarking app +## writing the configuration inside the phone file + --- Removing file /sdcard/experiments_automatization +rm '/sdcard/experiments_automatization/current_configuration.txt' +rm '/sdcard/experiments_automatization/experiment_duration.txt' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ended' +rmdir '/sdcard/experiments_automatization/app_output_folder' +rmdir '/sdcard/experiments_automatization' + --- Clearing the logcat + --- Creating file /sdcard/experiments_automatization +----- Uninstalling experiment app +Success +----- Installing experiment app +Performing Streamed Install +Success +------ Giving rights to experiment app +----- Starting experiment app +Starting: Intent { cmp=com.opportunistask.scheduling.benchmarking_app_to_test_big_cores/.MainActivity } +adb command : ps -A | grep com.opportunistask.scheduling.benchmarking_app_to_test_big_cores + ----- Experiment app started with pid: 29385 +---- waiting for benchmarking app thread to be pinned and to be ready +--- frequency level of core 0 is 4 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 4 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of cores to occupy = 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 4 +--- Now threads are running and the phone is ready to be sampled with the power meter \n--- Threads pids +Thread_0_ready_for_sampling +Thread_1_ready_for_sampling +Thread_2_ready_for_sampling +Thread_3_ready_for_sampling +--- Printing cc_info beginning datas (for the samsung galaxy s8) + --- Starting power meter sampling for about 600 seconds +--- Sampling with the Monsoon power meter +powermeter script : --- Inside the monsoon_power_meter, arg function: 2 +powermeter script : Experiment duration = 600 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 3000000 + returning 3000000 samples after experiments +powermeter script : Total nomber of sample measured : 3000000 +powermeter script : Computing powermeter summary result + Number of samples = 3000000 +powermeter script : We computed the energy on 600 samples +powermeter script : average_power = 2462.1389961649397 +powermeter script : average_power with numpy arrays = 2462.138996164552 +powermeter script : Summary Result = time (s): 604.0840575695038 +Ins Current (mA):518.0622642946935 +Samples: 3000000 +Consumed Energy (mAs): 310531.26767947304 +Consumed Energy (mAh): 86.25868546652029 +Consumed Energy (mWs): 1476244.3856776159 +Consumed Energy (mWh): 410.06788491044887 +Avg power (mW): 2462.1389961649397 +Avg Current (mA): 517.5804520469869 +Avg Voltage (V): 4.75701697470874 +Exp Batt Life (hrs for 1000mAh battery): NOT COMPUTED +--- Monsoon power meter sampling is finished ! + --- experiment folder path /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- frequency level of core 0 is 4 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 4 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of threads normally started = 4 +--- Number of thread ended: 4 +--- Now threads are stopped, getting the cc_info_level for samsung +--- Copying thread results locally +command /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe pull /sdcard/experiments_automatization/app_output_folder C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder </dev/null +/sdcard/experiments_automatization/app_output_folder/: 8 files pulled, 0 skipped. 0.1 MB/s (1819 bytes in 0.034s) +saving the logcat file to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder -/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder- +--- Parsing result from /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/raw_result.txt +--- Getting exact configuration with frequency +--- Configuration with frequencies = [1804801- 0- 0- 0- 0- 1804801- 1478400- 1766400] +--- Getting the powermeter summary +--- Powermeter summary: +time (s): 604.0840575695038 +Ins Current (mA):518.0622642946935 +Samples: 3000000 +Consumed Energy (mAs): 310531.26767947304 +Consumed Energy (mAh): 86.25868546652029 +Consumed Energy (mWs): 1476244.3856776159 +Consumed Energy (mWh): 410.06788491044887 +Avg power (mW): 2462.1389961649397 +Avg Current (mA): 517.5804520469869 +Avg Voltage (V): 4.75701697470874 + +--- Getting the total energy consumed of the google pixel +--- Energy consumed = 86.25868546652029 +--- Starting cc_info = 0 +--- Ending cc_info = 0 +--- Getting the average power +--- Avg Power = 2462.1389961649397 +--- Printing the total threads summary +--- Thread results +Thread : 0 - ThreadProcess id: 29410 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 04:19:29 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 04:29:29 +0100 - Duration: 600012 seconds +Real workload: 1.5975459275270145E11 - Integer reached: 323820 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 29411 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 04:19:29 +0100 +Core id: 5 +Ending time: Mon, 20 Dec 2021 04:29:30 +0100 - Duration: 600005 seconds +Real workload: 1.5870969409869812E11 - Integer reached: 322801 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 29412 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 04:19:29 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 04:29:29 +0100 - Duration: 600008 seconds +Real workload: 4.8575589555021936E11 - Integer reached: 552670 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 29413 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 04:19:29 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 04:29:29 +0100 - Duration: 600005 seconds +Real workload: 5.821759030289783E11 - Integer reached: 602979 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +--- Counting the total workload command : print_total_workload /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder app_output_folder 4,0,0,0,0,4,2,2 /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first +--- Total workload : 1.3864e+12 +--- Getting energy efficiency +--- Energy efficiency: 6.22177e-11 +--- Building what we will add to the total result file command +------ + (build_configuration_raw_result 400004-2-2 4,0,0,0,0,4,2,2 [1804801- 0- 0- 0- 0- 1804801- 1478400- 1766400] time (s): 604.0840575695038 +Ins Current (mA):518.0622642946935 +Samples: 3000000 +Consumed Energy (mAs): 310531.26767947304 +Consumed Energy (mAh): 86.25868546652029 +Consumed Energy (mWs): 1476244.3856776159 +Consumed Energy (mWh): 410.06788491044887 +Avg power (mW): 2462.1389961649397 +Avg Current (mA): 517.5804520469869 +Avg Voltage (V): 4.75701697470874 + Thread : 0 - ThreadProcess id: 29410 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 04:19:29 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 04:29:29 +0100 - Duration: 600012 seconds +Real workload: 1.5975459275270145E11 - Integer reached: 323820 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 29411 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 04:19:29 +0100 +Core id: 5 +Ending time: Mon, 20 Dec 2021 04:29:30 +0100 - Duration: 600005 seconds +Real workload: 1.5870969409869812E11 - Integer reached: 322801 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 29412 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 04:19:29 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 04:29:29 +0100 - Duration: 600008 seconds +Real workload: 4.8575589555021936E11 - Integer reached: 552670 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 29413 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 04:19:29 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 04:29:29 +0100 - Duration: 600005 seconds +Real workload: 5.821759030289783E11 - Integer reached: 602979 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + 86.25868546652029 1.3864e+12 6.22177e-11 0 0 +------ + +--- Final result to print to File + -------------------------------------------------------------------------------- + +++++ +++++ +++++ Configuration Description +-------------------------------------------------------------------------------- +Configuration: 400004-2-2 +phone format: 4,0,0,0,0,4,2,2 +Exact values of frequencies: [1804801- 0- 0- 0- 0- 1804801- 1478400- 1766400] + +Power meter results +------------------------------------------------------------ +time (s): 604.0840575695038 +Ins Current (mA):518.0622642946935 +Samples: 3000000 +Consumed Energy (mAs): 310531.26767947304 +Consumed Energy (mAh): 86.25868546652029 +Consumed Energy (mWs): 1476244.3856776159 +Consumed Energy (mWh): 410.06788491044887 +Avg power (mW): 2462.1389961649397 +Avg Current (mA): 517.5804520469869 +Avg Voltage (V): 4.75701697470874 + +Threads results +------------------------------------------------------------ +Thread : 0 - ThreadProcess id: 29410 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 04:19:29 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 04:29:29 +0100 - Duration: 600012 seconds +Real workload: 1.5975459275270145E11 - Integer reached: 323820 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 29411 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 04:19:29 +0100 +Core id: 5 +Ending time: Mon, 20 Dec 2021 04:29:30 +0100 - Duration: 600005 seconds +Real workload: 1.5870969409869812E11 - Integer reached: 322801 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 29412 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 04:19:29 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 04:29:29 +0100 - Duration: 600008 seconds +Real workload: 4.8575589555021936E11 - Integer reached: 552670 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 29413 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 04:19:29 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 04:29:29 +0100 - Duration: 600005 seconds +Real workload: 5.821759030289783E11 - Integer reached: 602979 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +Expermiment results +------------------------------------------------------------ +Energy Consumed (mAh): 86.25868546652029 +Workload: 1.3864e+12 +Energy efficiency: 6.22177e-11 +-------------------------------------------------------------------------------- + + +--- Writing to the total result file +--- Removing previous tested configuration tmp_output folder +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_06_02_46/app_output_folder/all_workloads.txt' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_06_02_46/app_output_folder/Thread_0_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_06_02_46/app_output_folder/Thread_0_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_06_02_46/app_output_folder/Thread_1_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_06_02_46/app_output_folder/Thread_1_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_06_02_46/app_output_folder/Thread_2_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_06_02_46/app_output_folder/Thread_2_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_06_02_46/app_output_folder/Thread_3_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_06_02_46/app_output_folder/Thread_3_ready_for_sampling' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_06_02_46/app_output_folder' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_06_02_46/configuration_mesurement.csv' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_06_02_46/energy_power_workload_energyByWorkload_ccInfo' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_06_02_46/logcat_output' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_06_02_46/powermeter_summary.txt' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_06_02_46' +--- Moving the current experiment tmp_folder to the output result folder +writing a temporary file for the main script with format energy_power_workload_energyByWorkload_ccInfo +--- Obtaining experiment summary result to add to result folder +--- Experiment result, Energy consumed = 86.25868546652029 +--- Experiment result, Avg Power = 2462.1389961649397 +--- Experiment result, Total Workload = 1.3864e+12 +--- Experiment result, Energy Efficiency = 6.22177e-11 +--- Adding result to summary file +--- Starting cc information : 0 +--- Ending cc information : 0 +--- The file /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/summary.csv exists we just appending the result to the file +--- Experiments performed on configuration 400004-2-2. +--- Observing a pause betwenn experiment; pause duration : 180 seconds; starting at 05Oct22_06_15_30 +--- Performing experiments on configuration 400004-2-2 +--- Cleaning the tmp expermiment folder : /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- Second step : verifying the battery level +--- Verifying the battery level +--- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe +--- Current battery level : 49 +--- Current battery is low, so we need to wait battery +--- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe +--- Current battery level : 49 +--- Desactivating the charge stop level option +--- Desactivating the charge stop level option, command : /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe shell echo 100 > /sys/devices/platform/soc/soc:google,charger/charge_stop_level </dev/null +--- The current battery level : 49, still lower than the experiment one : 50 +--- Waiting 30 second... +--- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe +--- Current battery level : 49 +--- The current battery level : 49, still lower than the experiment one : 50 +--- Waiting 30 second... +--- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe +--- Current battery level : 50 +--- Current battery is now equal to the experiment battery level +--- Third step calibrating phone core frequency +--- Resetting all frequency configurations + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu5/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor +--- Frequency level of core 0 is 4 +--- Modifying the governor of core 0 to set the default value +--- Modifying the governor of core 0 +--- Frequency level of core 1 is 0 +--- Exact frequency of core 1: 0 +--- Modifying the governor of core 1 +--- Modifying the the current frequency of core 1 with frequency 0 +--- Frequency level of core 2 is 0 +--- Exact frequency of core 2: 0 +--- Modifying the governor of core 2 +--- Modifying the the current frequency of core 2 with frequency 0 +--- Frequency level of core 3 is 0 +--- Exact frequency of core 3: 0 +--- Modifying the governor of core 3 +--- Modifying the the current frequency of core 3 with frequency 0 +--- Frequency level of core 4 is 0 +--- Exact frequency of core 4: 0 +--- Modifying the governor of core 4 +--- Modifying the the current frequency of core 4 with frequency 0 +--- Frequency level of core 5 is 4 +--- Modifying the governor of core 5 to set the default value +--- Modifying the governor of core 5 +--- Frequency level of core 6 is 2 +--- Exact frequency of core 6: 1478400 +--- Modifying the governor of core 6 +--- Modifying the the current frequency of core 6 with frequency 1478400 +--- Frequency level of core 7 is 2 +--- Exact frequency of core 7: 1766400 +--- Modifying the governor of core 7 +--- Modifying the the current frequency of core 7 with frequency 1766400 +--- Calibrating Monsoon power meter, please wait for 10 seconds... +powermeter script : --- Inside the monsoon_power_meter, arg function: 1 +powermeter script : calibration duration = 10 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 50000 + returning 50000 samples after experiments +powermeter script : Power meter calibration okay +--- Monsoon power meter Calibrated +--- starting the benchmarking app +## writing the configuration inside the phone file + --- Removing file /sdcard/experiments_automatization +rm '/sdcard/experiments_automatization/current_configuration.txt' +rm '/sdcard/experiments_automatization/experiment_duration.txt' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ended' +rmdir '/sdcard/experiments_automatization/app_output_folder' +rmdir '/sdcard/experiments_automatization' + --- Clearing the logcat + --- Creating file /sdcard/experiments_automatization +----- Uninstalling experiment app +Success +----- Installing experiment app +Performing Streamed Install +Success +------ Giving rights to experiment app +----- Starting experiment app +Starting: Intent { cmp=com.opportunistask.scheduling.benchmarking_app_to_test_big_cores/.MainActivity } +adb command : ps -A | grep com.opportunistask.scheduling.benchmarking_app_to_test_big_cores + ----- Experiment app started with pid: 30436 +---- waiting for benchmarking app thread to be pinned and to be ready +--- frequency level of core 0 is 4 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 4 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of cores to occupy = 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 4 +--- Now threads are running and the phone is ready to be sampled with the power meter \n--- Threads pids +Thread_0_ready_for_sampling +Thread_1_ready_for_sampling +Thread_2_ready_for_sampling +Thread_3_ready_for_sampling +--- Printing cc_info beginning datas (for the samsung galaxy s8) + --- Starting power meter sampling for about 600 seconds +--- Sampling with the Monsoon power meter +powermeter script : --- Inside the monsoon_power_meter, arg function: 2 +powermeter script : Experiment duration = 600 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 3000000 + returning 3000000 samples after experiments +powermeter script : Total nomber of sample measured : 3000000 +powermeter script : Computing powermeter summary result + Number of samples = 3000000 +powermeter script : We computed the energy on 600 samples +powermeter script : average_power = 2476.1397976969893 +powermeter script : average_power with numpy arrays = 2476.139797696952 +powermeter script : Summary Result = time (s): 601.7106568813324 +Ins Current (mA):524.2109233037337 +Samples: 3000000 +Consumed Energy (mAs): 310906.07009131584 +Consumed Energy (mAh): 86.36279724758774 +Consumed Energy (mWs): 1478397.8053957075 +Consumed Energy (mWh): 410.6660570543632 +Avg power (mW): 2476.1397976969893 +Avg Current (mA): 520.7942904442814 +Avg Voltage (V): 4.754544823417003 +Exp Batt Life (hrs for 1000mAh battery): NOT COMPUTED +--- Monsoon power meter sampling is finished ! + --- experiment folder path /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- frequency level of core 0 is 4 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 4 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of threads normally started = 4 +--- Number of thread ended: 4 +--- Now threads are stopped, getting the cc_info_level for samsung +--- Copying thread results locally +command /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe pull /sdcard/experiments_automatization/app_output_folder C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder </dev/null +/sdcard/experiments_automatization/app_output_folder/: 8 files pulled, 0 skipped. 0.1 MB/s (1818 bytes in 0.033s) +saving the logcat file to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder -/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder- +--- Parsing result from /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/raw_result.txt +--- Getting exact configuration with frequency +--- Configuration with frequencies = [1804801- 0- 0- 0- 0- 1804801- 1478400- 1766400] +--- Getting the powermeter summary +--- Powermeter summary: +time (s): 601.7106568813324 +Ins Current (mA):524.2109233037337 +Samples: 3000000 +Consumed Energy (mAs): 310906.07009131584 +Consumed Energy (mAh): 86.36279724758774 +Consumed Energy (mWs): 1478397.8053957075 +Consumed Energy (mWh): 410.6660570543632 +Avg power (mW): 2476.1397976969893 +Avg Current (mA): 520.7942904442814 +Avg Voltage (V): 4.754544823417003 + +--- Getting the total energy consumed of the google pixel +--- Energy consumed = 86.36279724758774 +--- Starting cc_info = 0 +--- Ending cc_info = 0 +--- Getting the average power +--- Avg Power = 2476.1397976969893 +--- Printing the total threads summary +--- Thread results +Thread : 0 - ThreadProcess id: 30461 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 04:36:16 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 04:46:16 +0100 - Duration: 600004 seconds +Real workload: 1.5983266674282755E11 - Integer reached: 323896 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 30462 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 04:36:16 +0100 +Core id: 5 +Ending time: Mon, 20 Dec 2021 04:46:16 +0100 - Duration: 600001 seconds +Real workload: 1.5869741027794885E11 - Integer reached: 322789 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 30463 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 04:36:16 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 04:46:16 +0100 - Duration: 600002 seconds +Real workload: 4.845508967050762E11 - Integer reached: 552010 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 30465 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 04:36:16 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 04:46:16 +0100 - Duration: 600002 seconds +Real workload: 5.809807447443644E11 - Integer reached: 602383 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +--- Counting the total workload command : print_total_workload /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder app_output_folder 4,0,0,0,0,4,2,2 /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first +--- Total workload : 1.38406e+12 +--- Getting energy efficiency +--- Energy efficiency: 6.23982e-11 +--- Building what we will add to the total result file command +------ + (build_configuration_raw_result 400004-2-2 4,0,0,0,0,4,2,2 [1804801- 0- 0- 0- 0- 1804801- 1478400- 1766400] time (s): 601.7106568813324 +Ins Current (mA):524.2109233037337 +Samples: 3000000 +Consumed Energy (mAs): 310906.07009131584 +Consumed Energy (mAh): 86.36279724758774 +Consumed Energy (mWs): 1478397.8053957075 +Consumed Energy (mWh): 410.6660570543632 +Avg power (mW): 2476.1397976969893 +Avg Current (mA): 520.7942904442814 +Avg Voltage (V): 4.754544823417003 + Thread : 0 - ThreadProcess id: 30461 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 04:36:16 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 04:46:16 +0100 - Duration: 600004 seconds +Real workload: 1.5983266674282755E11 - Integer reached: 323896 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 30462 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 04:36:16 +0100 +Core id: 5 +Ending time: Mon, 20 Dec 2021 04:46:16 +0100 - Duration: 600001 seconds +Real workload: 1.5869741027794885E11 - Integer reached: 322789 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 30463 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 04:36:16 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 04:46:16 +0100 - Duration: 600002 seconds +Real workload: 4.845508967050762E11 - Integer reached: 552010 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 30465 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 04:36:16 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 04:46:16 +0100 - Duration: 600002 seconds +Real workload: 5.809807447443644E11 - Integer reached: 602383 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + 86.36279724758774 1.38406e+12 6.23982e-11 0 0 +------ + +--- Final result to print to File + -------------------------------------------------------------------------------- + +++++ +++++ +++++ Configuration Description +-------------------------------------------------------------------------------- +Configuration: 400004-2-2 +phone format: 4,0,0,0,0,4,2,2 +Exact values of frequencies: [1804801- 0- 0- 0- 0- 1804801- 1478400- 1766400] + +Power meter results +------------------------------------------------------------ +time (s): 601.7106568813324 +Ins Current (mA):524.2109233037337 +Samples: 3000000 +Consumed Energy (mAs): 310906.07009131584 +Consumed Energy (mAh): 86.36279724758774 +Consumed Energy (mWs): 1478397.8053957075 +Consumed Energy (mWh): 410.6660570543632 +Avg power (mW): 2476.1397976969893 +Avg Current (mA): 520.7942904442814 +Avg Voltage (V): 4.754544823417003 + +Threads results +------------------------------------------------------------ +Thread : 0 - ThreadProcess id: 30461 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 04:36:16 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 04:46:16 +0100 - Duration: 600004 seconds +Real workload: 1.5983266674282755E11 - Integer reached: 323896 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 30462 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 04:36:16 +0100 +Core id: 5 +Ending time: Mon, 20 Dec 2021 04:46:16 +0100 - Duration: 600001 seconds +Real workload: 1.5869741027794885E11 - Integer reached: 322789 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 30463 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 04:36:16 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 04:46:16 +0100 - Duration: 600002 seconds +Real workload: 4.845508967050762E11 - Integer reached: 552010 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 30465 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 04:36:16 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 04:46:16 +0100 - Duration: 600002 seconds +Real workload: 5.809807447443644E11 - Integer reached: 602383 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +Expermiment results +------------------------------------------------------------ +Energy Consumed (mAh): 86.36279724758774 +Workload: 1.38406e+12 +Energy efficiency: 6.23982e-11 +-------------------------------------------------------------------------------- + + +--- Writing to the total result file +--- Removing previous tested configuration tmp_output folder +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_06_18_33/app_output_folder/all_workloads.txt' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_06_18_33/app_output_folder/Thread_0_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_06_18_33/app_output_folder/Thread_0_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_06_18_33/app_output_folder/Thread_1_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_06_18_33/app_output_folder/Thread_1_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_06_18_33/app_output_folder/Thread_2_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_06_18_33/app_output_folder/Thread_2_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_06_18_33/app_output_folder/Thread_3_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_06_18_33/app_output_folder/Thread_3_ready_for_sampling' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_06_18_33/app_output_folder' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_06_18_33/configuration_mesurement.csv' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_06_18_33/energy_power_workload_energyByWorkload_ccInfo' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_06_18_33/logcat_output' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_06_18_33/powermeter_summary.txt' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_06_18_33' +--- Moving the current experiment tmp_folder to the output result folder +writing a temporary file for the main script with format energy_power_workload_energyByWorkload_ccInfo +--- Obtaining experiment summary result to add to result folder +--- Experiment result, Energy consumed = 86.36279724758774 +--- Experiment result, Avg Power = 2476.1397976969893 +--- Experiment result, Total Workload = 1.38406e+12 +--- Experiment result, Energy Efficiency = 6.23982e-11 +--- Adding result to summary file +--- Starting cc information : 0 +--- Ending cc information : 0 +--- The file /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/summary.csv exists we just appending the result to the file +--- Experiments performed on configuration 400004-2-2. +--- Observing a pause betwenn experiment; pause duration : 180 seconds; starting at 05Oct22_06_32_15 +--- Performing experiments on configuration 400004-2-2 +--- Cleaning the tmp expermiment folder : /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- Second step : verifying the battery level +--- Verifying the battery level +--- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe +--- Current battery level : 50 +Current battery level: OKAY +--- Third step calibrating phone core frequency +--- Resetting all frequency configurations + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu5/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor +--- Frequency level of core 0 is 4 +--- Modifying the governor of core 0 to set the default value +--- Modifying the governor of core 0 +--- Frequency level of core 1 is 0 +--- Exact frequency of core 1: 0 +--- Modifying the governor of core 1 +--- Modifying the the current frequency of core 1 with frequency 0 +--- Frequency level of core 2 is 0 +--- Exact frequency of core 2: 0 +--- Modifying the governor of core 2 +--- Modifying the the current frequency of core 2 with frequency 0 +--- Frequency level of core 3 is 0 +--- Exact frequency of core 3: 0 +--- Modifying the governor of core 3 +--- Modifying the the current frequency of core 3 with frequency 0 +--- Frequency level of core 4 is 0 +--- Exact frequency of core 4: 0 +--- Modifying the governor of core 4 +--- Modifying the the current frequency of core 4 with frequency 0 +--- Frequency level of core 5 is 4 +--- Modifying the governor of core 5 to set the default value +--- Modifying the governor of core 5 +--- Frequency level of core 6 is 2 +--- Exact frequency of core 6: 1478400 +--- Modifying the governor of core 6 +--- Modifying the the current frequency of core 6 with frequency 1478400 +--- Frequency level of core 7 is 2 +--- Exact frequency of core 7: 1766400 +--- Modifying the governor of core 7 +--- Modifying the the current frequency of core 7 with frequency 1766400 +--- Calibrating Monsoon power meter, please wait for 10 seconds... +powermeter script : --- Inside the monsoon_power_meter, arg function: 1 +powermeter script : calibration duration = 10 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 50000 + returning 50000 samples after experiments +powermeter script : Power meter calibration okay +--- Monsoon power meter Calibrated +--- starting the benchmarking app +## writing the configuration inside the phone file + --- Removing file /sdcard/experiments_automatization +rm '/sdcard/experiments_automatization/current_configuration.txt' +rm '/sdcard/experiments_automatization/experiment_duration.txt' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ended' +rmdir '/sdcard/experiments_automatization/app_output_folder' +rmdir '/sdcard/experiments_automatization' + --- Clearing the logcat + --- Creating file /sdcard/experiments_automatization +----- Uninstalling experiment app +Success +----- Installing experiment app +Performing Streamed Install +Success +------ Giving rights to experiment app +----- Starting experiment app +Starting: Intent { cmp=com.opportunistask.scheduling.benchmarking_app_to_test_big_cores/.MainActivity } +adb command : ps -A | grep com.opportunistask.scheduling.benchmarking_app_to_test_big_cores + ----- Experiment app started with pid: 31795 +---- waiting for benchmarking app thread to be pinned and to be ready +--- frequency level of core 0 is 4 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 4 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of cores to occupy = 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 4 +--- Now threads are running and the phone is ready to be sampled with the power meter \n--- Threads pids +Thread_0_ready_for_sampling +Thread_1_ready_for_sampling +Thread_2_ready_for_sampling +Thread_3_ready_for_sampling +--- Printing cc_info beginning datas (for the samsung galaxy s8) + --- Starting power meter sampling for about 600 seconds +--- Sampling with the Monsoon power meter +powermeter script : --- Inside the monsoon_power_meter, arg function: 2 +powermeter script : Experiment duration = 600 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 3000000 + returning 3000000 samples after experiments +powermeter script : Total nomber of sample measured : 3000000 +powermeter script : Computing powermeter summary result + Number of samples = 3000000 +powermeter script : We computed the energy on 600 samples +powermeter script : average_power = 2499.208880026985 +powermeter script : average_power with numpy arrays = 2499.20888002673 +powermeter script : Summary Result = time (s): 601.6927042007446 +Ins Current (mA):518.6079726625447 +Samples: 3000000 +Consumed Energy (mAs): 316097.2540489128 +Consumed Energy (mAh): 87.80479279136466 +Consumed Energy (mWs): 1500471.390858539 +Consumed Energy (mWh): 416.79760857181634 +Avg power (mW): 2499.208880026985 +Avg Current (mA): 526.098662226944 +Avg Voltage (V): 4.750456633833631 +Exp Batt Life (hrs for 1000mAh battery): NOT COMPUTED +--- Monsoon power meter sampling is finished ! + --- experiment folder path /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- frequency level of core 0 is 4 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 4 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of threads normally started = 4 +--- Number of thread ended: 4 +--- Now threads are stopped, getting the cc_info_level for samsung +--- Copying thread results locally +command /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe pull /sdcard/experiments_automatization/app_output_folder C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder </dev/null +/sdcard/experiments_automatization/app_output_folder/: 8 files pulled, 0 skipped. 0.1 MB/s (1817 bytes in 0.031s) +saving the logcat file to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder -/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder- +--- Parsing result from /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/raw_result.txt +--- Getting exact configuration with frequency +--- Configuration with frequencies = [1804801- 0- 0- 0- 0- 1804801- 1478400- 1766400] +--- Getting the powermeter summary +--- Powermeter summary: +time (s): 601.6927042007446 +Ins Current (mA):518.6079726625447 +Samples: 3000000 +Consumed Energy (mAs): 316097.2540489128 +Consumed Energy (mAh): 87.80479279136466 +Consumed Energy (mWs): 1500471.390858539 +Consumed Energy (mWh): 416.79760857181634 +Avg power (mW): 2499.208880026985 +Avg Current (mA): 526.098662226944 +Avg Voltage (V): 4.750456633833631 + +--- Getting the total energy consumed of the google pixel +--- Energy consumed = 87.80479279136466 +--- Starting cc_info = 0 +--- Ending cc_info = 0 +--- Getting the average power +--- Avg Power = 2499.208880026985 +--- Printing the total threads summary +--- Thread results +Thread : 0 - ThreadProcess id: 31820 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 04:52:00 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 05:02:01 +0100 - Duration: 600008 seconds +Real workload: 1.590405186835071E11 - Integer reached: 323124 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 31821 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 04:52:01 +0100 +Core id: 5 +Ending time: Mon, 20 Dec 2021 05:02:01 +0100 - Duration: 600015 seconds +Real workload: 1.5871378882022766E11 - Integer reached: 322805 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 31822 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 04:52:01 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 05:02:01 +0100 - Duration: 600007 seconds +Real workload: 4.849523909004253E11 - Integer reached: 552230 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 31823 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 04:52:00 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 05:02:01 +0100 - Duration: 600003 seconds +Real workload: 5.828663044089832E11 - Integer reached: 603323 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +--- Counting the total workload command : print_total_workload /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder app_output_folder 4,0,0,0,0,4,2,2 /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first +--- Total workload : 1.38557e+12 +--- Getting energy efficiency +--- Energy efficiency: 6.33709e-11 +--- Building what we will add to the total result file command +------ + (build_configuration_raw_result 400004-2-2 4,0,0,0,0,4,2,2 [1804801- 0- 0- 0- 0- 1804801- 1478400- 1766400] time (s): 601.6927042007446 +Ins Current (mA):518.6079726625447 +Samples: 3000000 +Consumed Energy (mAs): 316097.2540489128 +Consumed Energy (mAh): 87.80479279136466 +Consumed Energy (mWs): 1500471.390858539 +Consumed Energy (mWh): 416.79760857181634 +Avg power (mW): 2499.208880026985 +Avg Current (mA): 526.098662226944 +Avg Voltage (V): 4.750456633833631 + Thread : 0 - ThreadProcess id: 31820 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 04:52:00 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 05:02:01 +0100 - Duration: 600008 seconds +Real workload: 1.590405186835071E11 - Integer reached: 323124 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 31821 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 04:52:01 +0100 +Core id: 5 +Ending time: Mon, 20 Dec 2021 05:02:01 +0100 - Duration: 600015 seconds +Real workload: 1.5871378882022766E11 - Integer reached: 322805 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 31822 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 04:52:01 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 05:02:01 +0100 - Duration: 600007 seconds +Real workload: 4.849523909004253E11 - Integer reached: 552230 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 31823 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 04:52:00 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 05:02:01 +0100 - Duration: 600003 seconds +Real workload: 5.828663044089832E11 - Integer reached: 603323 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + 87.80479279136466 1.38557e+12 6.33709e-11 0 0 +------ + +--- Final result to print to File + -------------------------------------------------------------------------------- + +++++ +++++ +++++ Configuration Description +-------------------------------------------------------------------------------- +Configuration: 400004-2-2 +phone format: 4,0,0,0,0,4,2,2 +Exact values of frequencies: [1804801- 0- 0- 0- 0- 1804801- 1478400- 1766400] + +Power meter results +------------------------------------------------------------ +time (s): 601.6927042007446 +Ins Current (mA):518.6079726625447 +Samples: 3000000 +Consumed Energy (mAs): 316097.2540489128 +Consumed Energy (mAh): 87.80479279136466 +Consumed Energy (mWs): 1500471.390858539 +Consumed Energy (mWh): 416.79760857181634 +Avg power (mW): 2499.208880026985 +Avg Current (mA): 526.098662226944 +Avg Voltage (V): 4.750456633833631 + +Threads results +------------------------------------------------------------ +Thread : 0 - ThreadProcess id: 31820 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 04:52:00 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 05:02:01 +0100 - Duration: 600008 seconds +Real workload: 1.590405186835071E11 - Integer reached: 323124 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 31821 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 04:52:01 +0100 +Core id: 5 +Ending time: Mon, 20 Dec 2021 05:02:01 +0100 - Duration: 600015 seconds +Real workload: 1.5871378882022766E11 - Integer reached: 322805 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 31822 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 04:52:01 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 05:02:01 +0100 - Duration: 600007 seconds +Real workload: 4.849523909004253E11 - Integer reached: 552230 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 31823 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 04:52:00 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 05:02:01 +0100 - Duration: 600003 seconds +Real workload: 5.828663044089832E11 - Integer reached: 603323 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +Expermiment results +------------------------------------------------------------ +Energy Consumed (mAh): 87.80479279136466 +Workload: 1.38557e+12 +Energy efficiency: 6.33709e-11 +-------------------------------------------------------------------------------- + + +--- Writing to the total result file +--- Removing previous tested configuration tmp_output folder +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_06_35_17/app_output_folder/all_workloads.txt' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_06_35_17/app_output_folder/Thread_0_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_06_35_17/app_output_folder/Thread_0_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_06_35_17/app_output_folder/Thread_1_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_06_35_17/app_output_folder/Thread_1_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_06_35_17/app_output_folder/Thread_2_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_06_35_17/app_output_folder/Thread_2_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_06_35_17/app_output_folder/Thread_3_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_06_35_17/app_output_folder/Thread_3_ready_for_sampling' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_06_35_17/app_output_folder' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_06_35_17/configuration_mesurement.csv' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_06_35_17/energy_power_workload_energyByWorkload_ccInfo' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_06_35_17/logcat_output' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_06_35_17/powermeter_summary.txt' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_06_35_17' +--- Moving the current experiment tmp_folder to the output result folder +writing a temporary file for the main script with format energy_power_workload_energyByWorkload_ccInfo +--- Obtaining experiment summary result to add to result folder +--- Experiment result, Energy consumed = 87.80479279136466 +--- Experiment result, Avg Power = 2499.208880026985 +--- Experiment result, Total Workload = 1.38557e+12 +--- Experiment result, Energy Efficiency = 6.33709e-11 +--- Adding result to summary file +--- Starting cc information : 0 +--- Ending cc information : 0 +--- The file /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/summary.csv exists we just appending the result to the file +--- Experiments performed on configuration 400004-2-2. +--- Observing a pause betwenn experiment; pause duration : 180 seconds; starting at 05Oct22_06_47_59 +--- Performing experiments on configuration 400040-2-2 +--- Cleaning the tmp expermiment folder : /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- Second step : verifying the battery level +--- Verifying the battery level +--- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe +--- Current battery level : 50 +Current battery level: OKAY +--- Third step calibrating phone core frequency +--- Resetting all frequency configurations + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu5/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor +--- Frequency level of core 0 is 4 +--- Modifying the governor of core 0 to set the default value +--- Modifying the governor of core 0 +--- Frequency level of core 1 is 0 +--- Exact frequency of core 1: 0 +--- Modifying the governor of core 1 +--- Modifying the the current frequency of core 1 with frequency 0 +--- Frequency level of core 2 is 0 +--- Exact frequency of core 2: 0 +--- Modifying the governor of core 2 +--- Modifying the the current frequency of core 2 with frequency 0 +--- Frequency level of core 3 is 0 +--- Exact frequency of core 3: 0 +--- Modifying the governor of core 3 +--- Modifying the the current frequency of core 3 with frequency 0 +--- Frequency level of core 4 is 4 +--- Modifying the governor of core 4 to set the default value +--- Modifying the governor of core 4 +--- Frequency level of core 5 is 0 +--- Exact frequency of core 5: 0 +--- Modifying the governor of core 5 +--- Modifying the the current frequency of core 5 with frequency 0 +--- Frequency level of core 6 is 2 +--- Exact frequency of core 6: 1478400 +--- Modifying the governor of core 6 +--- Modifying the the current frequency of core 6 with frequency 1478400 +--- Frequency level of core 7 is 2 +--- Exact frequency of core 7: 1766400 +--- Modifying the governor of core 7 +--- Modifying the the current frequency of core 7 with frequency 1766400 +--- Calibrating Monsoon power meter, please wait for 10 seconds... +powermeter script : --- Inside the monsoon_power_meter, arg function: 1 +powermeter script : calibration duration = 10 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 50000 + returning 50000 samples after experiments +powermeter script : Power meter calibration okay +--- Monsoon power meter Calibrated +--- starting the benchmarking app +## writing the configuration inside the phone file + --- Removing file /sdcard/experiments_automatization +rm '/sdcard/experiments_automatization/current_configuration.txt' +rm '/sdcard/experiments_automatization/experiment_duration.txt' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ended' +rmdir '/sdcard/experiments_automatization/app_output_folder' +rmdir '/sdcard/experiments_automatization' + --- Clearing the logcat + --- Creating file /sdcard/experiments_automatization +----- Uninstalling experiment app +Success +----- Installing experiment app +Performing Streamed Install +Success +------ Giving rights to experiment app +----- Starting experiment app +Starting: Intent { cmp=com.opportunistask.scheduling.benchmarking_app_to_test_big_cores/.MainActivity } +adb command : ps -A | grep com.opportunistask.scheduling.benchmarking_app_to_test_big_cores + ----- Experiment app started with pid: 531 +---- waiting for benchmarking app thread to be pinned and to be ready +--- frequency level of core 0 is 4 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 4 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of cores to occupy = 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 4 +--- Now threads are running and the phone is ready to be sampled with the power meter \n--- Threads pids +Thread_0_ready_for_sampling +Thread_1_ready_for_sampling +Thread_2_ready_for_sampling +Thread_3_ready_for_sampling +--- Printing cc_info beginning datas (for the samsung galaxy s8) + --- Starting power meter sampling for about 600 seconds +--- Sampling with the Monsoon power meter +powermeter script : --- Inside the monsoon_power_meter, arg function: 2 +powermeter script : Experiment duration = 600 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 3000000 + returning 3000000 samples after experiments +powermeter script : Total nomber of sample measured : 3000000 +powermeter script : Computing powermeter summary result + Number of samples = 3000000 +powermeter script : We computed the energy on 600 samples +powermeter script : average_power = 2047.4429470934535 +powermeter script : average_power with numpy arrays = 2047.442947093187 +powermeter script : Summary Result = time (s): 601.6791741847992 +Ins Current (mA):405.501794244703 +Samples: 3000000 +Consumed Energy (mAs): 252712.6032209949 +Consumed Energy (mAh): 70.19794533916524 +Consumed Energy (mWs): 1220213.8318177247 +Consumed Energy (mWh): 338.94828661603464 +Avg power (mW): 2047.4429470934535 +Avg Current (mA): 424.0637714394812 +Avg Voltage (V): 4.828148700709387 +Exp Batt Life (hrs for 1000mAh battery): NOT COMPUTED +--- Monsoon power meter sampling is finished ! + --- experiment folder path /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- frequency level of core 0 is 4 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 4 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of threads normally started = 4 +--- Number of thread ended: 4 +--- Now threads are stopped, getting the cc_info_level for samsung +--- Copying thread results locally +command /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe pull /sdcard/experiments_automatization/app_output_folder C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder </dev/null +/sdcard/experiments_automatization/app_output_folder/: 8 files pulled, 0 skipped. 0.0 MB/s (1802 bytes in 0.086s) +saving the logcat file to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder -/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder- +--- Parsing result from /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/raw_result.txt +--- Getting exact configuration with frequency +--- Configuration with frequencies = [1804801- 0- 0- 0- 1804801- 0- 1478400- 1766400] +--- Getting the powermeter summary +--- Powermeter summary: +time (s): 601.6791741847992 +Ins Current (mA):405.501794244703 +Samples: 3000000 +Consumed Energy (mAs): 252712.6032209949 +Consumed Energy (mAh): 70.19794533916524 +Consumed Energy (mWs): 1220213.8318177247 +Consumed Energy (mWh): 338.94828661603464 +Avg power (mW): 2047.4429470934535 +Avg Current (mA): 424.0637714394812 +Avg Voltage (V): 4.828148700709387 + +--- Getting the total energy consumed of the google pixel +--- Energy consumed = 70.19794533916524 +--- Starting cc_info = 0 +--- Ending cc_info = 0 +--- Getting the average power +--- Avg Power = 2047.4429470934535 +--- Printing the total threads summary +--- Thread results +Thread : 0 - ThreadProcess id: 618 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 05:07:47 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 05:17:47 +0100 - Duration: 600001 seconds +Real workload: 5.0411819377279465E10 - Integer reached: 186180 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 619 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 05:07:47 +0100 +Core id: 4 +Ending time: Mon, 20 Dec 2021 05:17:47 +0100 - Duration: 600009 seconds +Real workload: 4.950393988406067E10 - Integer reached: 184565 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 620 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 05:07:47 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 05:17:47 +0100 - Duration: 600001 seconds +Real workload: 4.8379217802383435E11 - Integer reached: 551594 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 622 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 05:07:47 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 05:17:47 +0100 - Duration: 600008 seconds +Real workload: 5.751914848310765E11 - Integer reached: 599487 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +--- Counting the total workload command : print_total_workload /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder app_output_folder 4,0,0,0,4,0,2,2 /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first +--- Total workload : 1.1589e+12 +--- Getting energy efficiency +--- Energy efficiency: 6.05729e-11 +--- Building what we will add to the total result file command +------ + (build_configuration_raw_result 400040-2-2 4,0,0,0,4,0,2,2 [1804801- 0- 0- 0- 1804801- 0- 1478400- 1766400] time (s): 601.6791741847992 +Ins Current (mA):405.501794244703 +Samples: 3000000 +Consumed Energy (mAs): 252712.6032209949 +Consumed Energy (mAh): 70.19794533916524 +Consumed Energy (mWs): 1220213.8318177247 +Consumed Energy (mWh): 338.94828661603464 +Avg power (mW): 2047.4429470934535 +Avg Current (mA): 424.0637714394812 +Avg Voltage (V): 4.828148700709387 + Thread : 0 - ThreadProcess id: 618 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 05:07:47 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 05:17:47 +0100 - Duration: 600001 seconds +Real workload: 5.0411819377279465E10 - Integer reached: 186180 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 619 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 05:07:47 +0100 +Core id: 4 +Ending time: Mon, 20 Dec 2021 05:17:47 +0100 - Duration: 600009 seconds +Real workload: 4.950393988406067E10 - Integer reached: 184565 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 620 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 05:07:47 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 05:17:47 +0100 - Duration: 600001 seconds +Real workload: 4.8379217802383435E11 - Integer reached: 551594 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 622 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 05:07:47 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 05:17:47 +0100 - Duration: 600008 seconds +Real workload: 5.751914848310765E11 - Integer reached: 599487 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + 70.19794533916524 1.1589e+12 6.05729e-11 0 0 +------ + +--- Final result to print to File + -------------------------------------------------------------------------------- + +++++ +++++ +++++ Configuration Description +-------------------------------------------------------------------------------- +Configuration: 400040-2-2 +phone format: 4,0,0,0,4,0,2,2 +Exact values of frequencies: [1804801- 0- 0- 0- 1804801- 0- 1478400- 1766400] + +Power meter results +------------------------------------------------------------ +time (s): 601.6791741847992 +Ins Current (mA):405.501794244703 +Samples: 3000000 +Consumed Energy (mAs): 252712.6032209949 +Consumed Energy (mAh): 70.19794533916524 +Consumed Energy (mWs): 1220213.8318177247 +Consumed Energy (mWh): 338.94828661603464 +Avg power (mW): 2047.4429470934535 +Avg Current (mA): 424.0637714394812 +Avg Voltage (V): 4.828148700709387 + +Threads results +------------------------------------------------------------ +Thread : 0 - ThreadProcess id: 618 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 05:07:47 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 05:17:47 +0100 - Duration: 600001 seconds +Real workload: 5.0411819377279465E10 - Integer reached: 186180 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 619 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 05:07:47 +0100 +Core id: 4 +Ending time: Mon, 20 Dec 2021 05:17:47 +0100 - Duration: 600009 seconds +Real workload: 4.950393988406067E10 - Integer reached: 184565 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 620 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 05:07:47 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 05:17:47 +0100 - Duration: 600001 seconds +Real workload: 4.8379217802383435E11 - Integer reached: 551594 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 622 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 05:07:47 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 05:17:47 +0100 - Duration: 600008 seconds +Real workload: 5.751914848310765E11 - Integer reached: 599487 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +Expermiment results +------------------------------------------------------------ +Energy Consumed (mAh): 70.19794533916524 +Workload: 1.1589e+12 +Energy efficiency: 6.05729e-11 +-------------------------------------------------------------------------------- + + +--- Writing to the total result file +--- Removing previous tested configuration tmp_output folder +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_06_51_01/app_output_folder/all_workloads.txt' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_06_51_01/app_output_folder/Thread_0_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_06_51_01/app_output_folder/Thread_0_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_06_51_01/app_output_folder/Thread_1_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_06_51_01/app_output_folder/Thread_1_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_06_51_01/app_output_folder/Thread_2_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_06_51_01/app_output_folder/Thread_2_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_06_51_01/app_output_folder/Thread_3_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_06_51_01/app_output_folder/Thread_3_ready_for_sampling' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_06_51_01/app_output_folder' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_06_51_01/configuration_mesurement.csv' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_06_51_01/energy_power_workload_energyByWorkload_ccInfo' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_06_51_01/logcat_output' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_06_51_01/powermeter_summary.txt' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_06_51_01' +--- Moving the current experiment tmp_folder to the output result folder +writing a temporary file for the main script with format energy_power_workload_energyByWorkload_ccInfo +--- Obtaining experiment summary result to add to result folder +--- Experiment result, Energy consumed = 70.19794533916524 +--- Experiment result, Avg Power = 2047.4429470934535 +--- Experiment result, Total Workload = 1.1589e+12 +--- Experiment result, Energy Efficiency = 6.05729e-11 +--- Adding result to summary file +--- Starting cc information : 0 +--- Ending cc information : 0 +--- The file /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/summary.csv exists we just appending the result to the file +--- Experiments performed on configuration 400040-2-2. +--- Observing a pause betwenn experiment; pause duration : 180 seconds; starting at 05Oct22_07_03_46 +--- Performing experiments on configuration 400040-2-2 +--- Cleaning the tmp expermiment folder : /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- Second step : verifying the battery level +--- Verifying the battery level +--- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe +--- Current battery level : 50 +Current battery level: OKAY +--- Third step calibrating phone core frequency +--- Resetting all frequency configurations + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu5/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor +--- Frequency level of core 0 is 4 +--- Modifying the governor of core 0 to set the default value +--- Modifying the governor of core 0 +--- Frequency level of core 1 is 0 +--- Exact frequency of core 1: 0 +--- Modifying the governor of core 1 +--- Modifying the the current frequency of core 1 with frequency 0 +--- Frequency level of core 2 is 0 +--- Exact frequency of core 2: 0 +--- Modifying the governor of core 2 +--- Modifying the the current frequency of core 2 with frequency 0 +--- Frequency level of core 3 is 0 +--- Exact frequency of core 3: 0 +--- Modifying the governor of core 3 +--- Modifying the the current frequency of core 3 with frequency 0 +--- Frequency level of core 4 is 4 +--- Modifying the governor of core 4 to set the default value +--- Modifying the governor of core 4 +--- Frequency level of core 5 is 0 +--- Exact frequency of core 5: 0 +--- Modifying the governor of core 5 +--- Modifying the the current frequency of core 5 with frequency 0 +--- Frequency level of core 6 is 2 +--- Exact frequency of core 6: 1478400 +--- Modifying the governor of core 6 +--- Modifying the the current frequency of core 6 with frequency 1478400 +--- Frequency level of core 7 is 2 +--- Exact frequency of core 7: 1766400 +--- Modifying the governor of core 7 +--- Modifying the the current frequency of core 7 with frequency 1766400 +--- Calibrating Monsoon power meter, please wait for 10 seconds... +powermeter script : --- Inside the monsoon_power_meter, arg function: 1 +powermeter script : calibration duration = 10 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 50000 + returning 50000 samples after experiments +powermeter script : Power meter calibration okay +--- Monsoon power meter Calibrated +--- starting the benchmarking app +## writing the configuration inside the phone file + --- Removing file /sdcard/experiments_automatization +rm '/sdcard/experiments_automatization/current_configuration.txt' +rm '/sdcard/experiments_automatization/experiment_duration.txt' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ended' +rmdir '/sdcard/experiments_automatization/app_output_folder' +rmdir '/sdcard/experiments_automatization' + --- Clearing the logcat + --- Creating file /sdcard/experiments_automatization +----- Uninstalling experiment app +Success +----- Installing experiment app +Performing Streamed Install +Success +------ Giving rights to experiment app +----- Starting experiment app +Starting: Intent { cmp=com.opportunistask.scheduling.benchmarking_app_to_test_big_cores/.MainActivity } +adb command : ps -A | grep com.opportunistask.scheduling.benchmarking_app_to_test_big_cores + ----- Experiment app started with pid: 2492 +---- waiting for benchmarking app thread to be pinned and to be ready +--- frequency level of core 0 is 4 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 4 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of cores to occupy = 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 2 +--- The current number of thread ready to be sambled : 2, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 4 +--- Now threads are running and the phone is ready to be sampled with the power meter \n--- Threads pids +Thread_0_ready_for_sampling +Thread_1_ready_for_sampling +Thread_2_ready_for_sampling +Thread_3_ready_for_sampling +--- Printing cc_info beginning datas (for the samsung galaxy s8) + --- Starting power meter sampling for about 600 seconds +--- Sampling with the Monsoon power meter +powermeter script : --- Inside the monsoon_power_meter, arg function: 2 +powermeter script : Experiment duration = 600 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 3000000 + returning 3000000 samples after experiments +powermeter script : Total nomber of sample measured : 3000000 +powermeter script : Computing powermeter summary result + Number of samples = 3000000 +powermeter script : We computed the energy on 600 samples +powermeter script : average_power = 2041.7807257688014 +powermeter script : average_power with numpy arrays = 2041.78072576843 +powermeter script : Summary Result = time (s): 602.7608518600464 +Ins Current (mA):424.4939432263176 +Samples: 3000000 +Consumed Energy (mAs): 253691.2469557717 +Consumed Energy (mAh): 70.4697908210477 +Consumed Energy (mWs): 1224585.7643926493 +Consumed Energy (mWh): 340.16271233129146 +Avg power (mW): 2041.7807257688014 +Avg Current (mA): 422.80055790354214 +Avg Voltage (V): 4.8291817207928425 +Exp Batt Life (hrs for 1000mAh battery): NOT COMPUTED +--- Monsoon power meter sampling is finished ! + --- experiment folder path /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- frequency level of core 0 is 4 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 4 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of threads normally started = 4 +--- Number of thread ended: 4 +--- Now threads are stopped, getting the cc_info_level for samsung +--- Copying thread results locally +command /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe pull /sdcard/experiments_automatization/app_output_folder C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder </dev/null +/sdcard/experiments_automatization/app_output_folder/: 8 files pulled, 0 skipped. 0.0 MB/s (1809 bytes in 0.055s) +saving the logcat file to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder -/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder- +--- Parsing result from /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/raw_result.txt +--- Getting exact configuration with frequency +--- Configuration with frequencies = [1804801- 0- 0- 0- 1804801- 0- 1478400- 1766400] +--- Getting the powermeter summary +--- Powermeter summary: +time (s): 602.7608518600464 +Ins Current (mA):424.4939432263176 +Samples: 3000000 +Consumed Energy (mAs): 253691.2469557717 +Consumed Energy (mAh): 70.4697908210477 +Consumed Energy (mWs): 1224585.7643926493 +Consumed Energy (mWh): 340.16271233129146 +Avg power (mW): 2041.7807257688014 +Avg Current (mA): 422.80055790354214 +Avg Voltage (V): 4.8291817207928425 + +--- Getting the total energy consumed of the google pixel +--- Energy consumed = 70.4697908210477 +--- Starting cc_info = 0 +--- Ending cc_info = 0 +--- Getting the average power +--- Avg Power = 2041.7807257688014 +--- Printing the total threads summary +--- Thread results +Thread : 0 - ThreadProcess id: 2538 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 05:23:33 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 05:33:34 +0100 - Duration: 600032 seconds +Real workload: 4.951009460711253E10 - Integer reached: 184576 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 2540 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 05:23:34 +0100 +Core id: 4 +Ending time: Mon, 20 Dec 2021 05:33:34 +0100 - Duration: 600009 seconds +Real workload: 4.9705574026912415E10 - Integer reached: 184925 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 2553 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 05:23:34 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 05:33:34 +0100 - Duration: 600005 seconds +Real workload: 4.794051926470886E11 - Integer reached: 549182 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 2558 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 05:23:34 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 05:33:34 +0100 - Duration: 600009 seconds +Real workload: 5.818709768334352E11 - Integer reached: 602827 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +--- Counting the total workload command : print_total_workload /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder app_output_folder 4,0,0,0,4,0,2,2 /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first +--- Total workload : 1.16049e+12 +--- Getting energy efficiency +--- Energy efficiency: 6.07242e-11 +--- Building what we will add to the total result file command +------ + (build_configuration_raw_result 400040-2-2 4,0,0,0,4,0,2,2 [1804801- 0- 0- 0- 1804801- 0- 1478400- 1766400] time (s): 602.7608518600464 +Ins Current (mA):424.4939432263176 +Samples: 3000000 +Consumed Energy (mAs): 253691.2469557717 +Consumed Energy (mAh): 70.4697908210477 +Consumed Energy (mWs): 1224585.7643926493 +Consumed Energy (mWh): 340.16271233129146 +Avg power (mW): 2041.7807257688014 +Avg Current (mA): 422.80055790354214 +Avg Voltage (V): 4.8291817207928425 + Thread : 0 - ThreadProcess id: 2538 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 05:23:33 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 05:33:34 +0100 - Duration: 600032 seconds +Real workload: 4.951009460711253E10 - Integer reached: 184576 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 2540 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 05:23:34 +0100 +Core id: 4 +Ending time: Mon, 20 Dec 2021 05:33:34 +0100 - Duration: 600009 seconds +Real workload: 4.9705574026912415E10 - Integer reached: 184925 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 2553 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 05:23:34 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 05:33:34 +0100 - Duration: 600005 seconds +Real workload: 4.794051926470886E11 - Integer reached: 549182 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 2558 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 05:23:34 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 05:33:34 +0100 - Duration: 600009 seconds +Real workload: 5.818709768334352E11 - Integer reached: 602827 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + 70.4697908210477 1.16049e+12 6.07242e-11 0 0 +------ + +--- Final result to print to File + -------------------------------------------------------------------------------- + +++++ +++++ +++++ Configuration Description +-------------------------------------------------------------------------------- +Configuration: 400040-2-2 +phone format: 4,0,0,0,4,0,2,2 +Exact values of frequencies: [1804801- 0- 0- 0- 1804801- 0- 1478400- 1766400] + +Power meter results +------------------------------------------------------------ +time (s): 602.7608518600464 +Ins Current (mA):424.4939432263176 +Samples: 3000000 +Consumed Energy (mAs): 253691.2469557717 +Consumed Energy (mAh): 70.4697908210477 +Consumed Energy (mWs): 1224585.7643926493 +Consumed Energy (mWh): 340.16271233129146 +Avg power (mW): 2041.7807257688014 +Avg Current (mA): 422.80055790354214 +Avg Voltage (V): 4.8291817207928425 + +Threads results +------------------------------------------------------------ +Thread : 0 - ThreadProcess id: 2538 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 05:23:33 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 05:33:34 +0100 - Duration: 600032 seconds +Real workload: 4.951009460711253E10 - Integer reached: 184576 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 2540 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 05:23:34 +0100 +Core id: 4 +Ending time: Mon, 20 Dec 2021 05:33:34 +0100 - Duration: 600009 seconds +Real workload: 4.9705574026912415E10 - Integer reached: 184925 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 2553 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 05:23:34 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 05:33:34 +0100 - Duration: 600005 seconds +Real workload: 4.794051926470886E11 - Integer reached: 549182 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 2558 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 05:23:34 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 05:33:34 +0100 - Duration: 600009 seconds +Real workload: 5.818709768334352E11 - Integer reached: 602827 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +Expermiment results +------------------------------------------------------------ +Energy Consumed (mAh): 70.4697908210477 +Workload: 1.16049e+12 +Energy efficiency: 6.07242e-11 +-------------------------------------------------------------------------------- + + +--- Writing to the total result file +--- Removing previous tested configuration tmp_output folder +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_07_06_48/app_output_folder/all_workloads.txt' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_07_06_48/app_output_folder/Thread_0_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_07_06_48/app_output_folder/Thread_0_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_07_06_48/app_output_folder/Thread_1_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_07_06_48/app_output_folder/Thread_1_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_07_06_48/app_output_folder/Thread_2_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_07_06_48/app_output_folder/Thread_2_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_07_06_48/app_output_folder/Thread_3_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_07_06_48/app_output_folder/Thread_3_ready_for_sampling' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_07_06_48/app_output_folder' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_07_06_48/configuration_mesurement.csv' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_07_06_48/energy_power_workload_energyByWorkload_ccInfo' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_07_06_48/logcat_output' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_07_06_48/powermeter_summary.txt' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_07_06_48' +--- Moving the current experiment tmp_folder to the output result folder +writing a temporary file for the main script with format energy_power_workload_energyByWorkload_ccInfo +--- Obtaining experiment summary result to add to result folder +--- Experiment result, Energy consumed = 70.4697908210477 +--- Experiment result, Avg Power = 2041.7807257688014 +--- Experiment result, Total Workload = 1.16049e+12 +--- Experiment result, Energy Efficiency = 6.07242e-11 +--- Adding result to summary file +--- Starting cc information : 0 +--- Ending cc information : 0 +--- The file /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/summary.csv exists we just appending the result to the file +--- Experiments performed on configuration 400040-2-2. +--- Observing a pause betwenn experiment; pause duration : 180 seconds; starting at 05Oct22_07_19_35 +--- Performing experiments on configuration 400040-2-2 +--- Cleaning the tmp expermiment folder : /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- Second step : verifying the battery level +--- Verifying the battery level +--- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe +--- Current battery level : 50 +Current battery level: OKAY +--- Third step calibrating phone core frequency +--- Resetting all frequency configurations + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu5/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor +--- Frequency level of core 0 is 4 +--- Modifying the governor of core 0 to set the default value +--- Modifying the governor of core 0 +--- Frequency level of core 1 is 0 +--- Exact frequency of core 1: 0 +--- Modifying the governor of core 1 +--- Modifying the the current frequency of core 1 with frequency 0 +--- Frequency level of core 2 is 0 +--- Exact frequency of core 2: 0 +--- Modifying the governor of core 2 +--- Modifying the the current frequency of core 2 with frequency 0 +--- Frequency level of core 3 is 0 +--- Exact frequency of core 3: 0 +--- Modifying the governor of core 3 +--- Modifying the the current frequency of core 3 with frequency 0 +--- Frequency level of core 4 is 4 +--- Modifying the governor of core 4 to set the default value +--- Modifying the governor of core 4 +--- Frequency level of core 5 is 0 +--- Exact frequency of core 5: 0 +--- Modifying the governor of core 5 +--- Modifying the the current frequency of core 5 with frequency 0 +--- Frequency level of core 6 is 2 +--- Exact frequency of core 6: 1478400 +--- Modifying the governor of core 6 +--- Modifying the the current frequency of core 6 with frequency 1478400 +--- Frequency level of core 7 is 2 +--- Exact frequency of core 7: 1766400 +--- Modifying the governor of core 7 +--- Modifying the the current frequency of core 7 with frequency 1766400 +--- Calibrating Monsoon power meter, please wait for 10 seconds... +powermeter script : --- Inside the monsoon_power_meter, arg function: 1 +powermeter script : calibration duration = 10 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 50000 + returning 50000 samples after experiments +powermeter script : Power meter calibration okay +--- Monsoon power meter Calibrated +--- starting the benchmarking app +## writing the configuration inside the phone file + --- Removing file /sdcard/experiments_automatization +rm '/sdcard/experiments_automatization/current_configuration.txt' +rm '/sdcard/experiments_automatization/experiment_duration.txt' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ended' +rmdir '/sdcard/experiments_automatization/app_output_folder' +rmdir '/sdcard/experiments_automatization' + --- Clearing the logcat + --- Creating file /sdcard/experiments_automatization +----- Uninstalling experiment app +Success +----- Installing experiment app +Performing Streamed Install +Success +------ Giving rights to experiment app +----- Starting experiment app +Starting: Intent { cmp=com.opportunistask.scheduling.benchmarking_app_to_test_big_cores/.MainActivity } +adb command : ps -A | grep com.opportunistask.scheduling.benchmarking_app_to_test_big_cores + ----- Experiment app started with pid: 3929 +---- waiting for benchmarking app thread to be pinned and to be ready +--- frequency level of core 0 is 4 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 4 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of cores to occupy = 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 4 +--- Now threads are running and the phone is ready to be sampled with the power meter \n--- Threads pids +Thread_0_ready_for_sampling +Thread_1_ready_for_sampling +Thread_2_ready_for_sampling +Thread_3_ready_for_sampling +--- Printing cc_info beginning datas (for the samsung galaxy s8) + --- Starting power meter sampling for about 600 seconds +--- Sampling with the Monsoon power meter +powermeter script : --- Inside the monsoon_power_meter, arg function: 2 +powermeter script : Experiment duration = 600 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 3000000 + returning 3000000 samples after experiments +powermeter script : Total nomber of sample measured : 3000000 +powermeter script : Computing powermeter summary result + Number of samples = 3000000 +powermeter script : We computed the energy on 600 samples +powermeter script : average_power = 2063.139183197156 +powermeter script : average_power with numpy arrays = 2063.139183196753 +powermeter script : Summary Result = time (s): 602.8699264526367 +Ins Current (mA):413.21991200167616 +Samples: 3000000 +Consumed Energy (mAs): 256234.62602071775 +Consumed Energy (mAh): 71.17628500575493 +Consumed Energy (mWs): 1236350.692702015 +Consumed Energy (mWh): 343.43074797278194 +Avg power (mW): 2063.139183197156 +Avg Current (mA): 427.6462433067521 +Avg Voltage (V): 4.824406189667517 +Exp Batt Life (hrs for 1000mAh battery): NOT COMPUTED +--- Monsoon power meter sampling is finished ! + --- experiment folder path /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- frequency level of core 0 is 4 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 4 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of threads normally started = 4 +--- Number of thread ended: 4 +--- Now threads are stopped, getting the cc_info_level for samsung +--- Copying thread results locally +command /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe pull /sdcard/experiments_automatization/app_output_folder C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder </dev/null +/sdcard/experiments_automatization/app_output_folder/: 8 files pulled, 0 skipped. 0.0 MB/s (1808 bytes in 0.075s) +saving the logcat file to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder -/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder- +--- Parsing result from /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/raw_result.txt +--- Getting exact configuration with frequency +--- Configuration with frequencies = [1804801- 0- 0- 0- 1804801- 0- 1478400- 1766400] +--- Getting the powermeter summary +--- Powermeter summary: +time (s): 602.8699264526367 +Ins Current (mA):413.21991200167616 +Samples: 3000000 +Consumed Energy (mAs): 256234.62602071775 +Consumed Energy (mAh): 71.17628500575493 +Consumed Energy (mWs): 1236350.692702015 +Consumed Energy (mWh): 343.43074797278194 +Avg power (mW): 2063.139183197156 +Avg Current (mA): 427.6462433067521 +Avg Voltage (V): 4.824406189667517 + +--- Getting the total energy consumed of the google pixel +--- Energy consumed = 71.17628500575493 +--- Starting cc_info = 0 +--- Ending cc_info = 0 +--- Getting the average power +--- Avg Power = 2063.139183197156 +--- Printing the total threads summary +--- Thread results +Thread : 0 - ThreadProcess id: 3954 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 05:39:22 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 05:49:22 +0100 - Duration: 600027 seconds +Real workload: 4.949442876601317E10 - Integer reached: 184548 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 3955 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 05:39:22 +0100 +Core id: 4 +Ending time: Mon, 20 Dec 2021 05:49:23 +0100 - Duration: 600007 seconds +Real workload: 4.949051272916146E10 - Integer reached: 184541 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 3956 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 05:39:22 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 05:49:23 +0100 - Duration: 600004 seconds +Real workload: 4.855220777423041E11 - Integer reached: 552542 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 3958 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 05:39:22 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 05:49:23 +0100 - Duration: 600002 seconds +Real workload: 5.815340494417013E11 - Integer reached: 602659 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +--- Counting the total workload command : print_total_workload /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder app_output_folder 4,0,0,0,4,0,2,2 /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first +--- Total workload : 1.16604e+12 +--- Getting energy efficiency +--- Energy efficiency: 6.1041e-11 +--- Building what we will add to the total result file command +------ + (build_configuration_raw_result 400040-2-2 4,0,0,0,4,0,2,2 [1804801- 0- 0- 0- 1804801- 0- 1478400- 1766400] time (s): 602.8699264526367 +Ins Current (mA):413.21991200167616 +Samples: 3000000 +Consumed Energy (mAs): 256234.62602071775 +Consumed Energy (mAh): 71.17628500575493 +Consumed Energy (mWs): 1236350.692702015 +Consumed Energy (mWh): 343.43074797278194 +Avg power (mW): 2063.139183197156 +Avg Current (mA): 427.6462433067521 +Avg Voltage (V): 4.824406189667517 + Thread : 0 - ThreadProcess id: 3954 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 05:39:22 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 05:49:22 +0100 - Duration: 600027 seconds +Real workload: 4.949442876601317E10 - Integer reached: 184548 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 3955 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 05:39:22 +0100 +Core id: 4 +Ending time: Mon, 20 Dec 2021 05:49:23 +0100 - Duration: 600007 seconds +Real workload: 4.949051272916146E10 - Integer reached: 184541 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 3956 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 05:39:22 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 05:49:23 +0100 - Duration: 600004 seconds +Real workload: 4.855220777423041E11 - Integer reached: 552542 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 3958 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 05:39:22 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 05:49:23 +0100 - Duration: 600002 seconds +Real workload: 5.815340494417013E11 - Integer reached: 602659 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + 71.17628500575493 1.16604e+12 6.1041e-11 0 0 +------ + +--- Final result to print to File + -------------------------------------------------------------------------------- + +++++ +++++ +++++ Configuration Description +-------------------------------------------------------------------------------- +Configuration: 400040-2-2 +phone format: 4,0,0,0,4,0,2,2 +Exact values of frequencies: [1804801- 0- 0- 0- 1804801- 0- 1478400- 1766400] + +Power meter results +------------------------------------------------------------ +time (s): 602.8699264526367 +Ins Current (mA):413.21991200167616 +Samples: 3000000 +Consumed Energy (mAs): 256234.62602071775 +Consumed Energy (mAh): 71.17628500575493 +Consumed Energy (mWs): 1236350.692702015 +Consumed Energy (mWh): 343.43074797278194 +Avg power (mW): 2063.139183197156 +Avg Current (mA): 427.6462433067521 +Avg Voltage (V): 4.824406189667517 + +Threads results +------------------------------------------------------------ +Thread : 0 - ThreadProcess id: 3954 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 05:39:22 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 05:49:22 +0100 - Duration: 600027 seconds +Real workload: 4.949442876601317E10 - Integer reached: 184548 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 3955 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 05:39:22 +0100 +Core id: 4 +Ending time: Mon, 20 Dec 2021 05:49:23 +0100 - Duration: 600007 seconds +Real workload: 4.949051272916146E10 - Integer reached: 184541 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 3956 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 05:39:22 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 05:49:23 +0100 - Duration: 600004 seconds +Real workload: 4.855220777423041E11 - Integer reached: 552542 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 3958 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 05:39:22 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 05:49:23 +0100 - Duration: 600002 seconds +Real workload: 5.815340494417013E11 - Integer reached: 602659 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +Expermiment results +------------------------------------------------------------ +Energy Consumed (mAh): 71.17628500575493 +Workload: 1.16604e+12 +Energy efficiency: 6.1041e-11 +-------------------------------------------------------------------------------- + + +--- Writing to the total result file +--- Removing previous tested configuration tmp_output folder +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_07_22_37/app_output_folder/all_workloads.txt' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_07_22_37/app_output_folder/Thread_0_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_07_22_37/app_output_folder/Thread_0_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_07_22_37/app_output_folder/Thread_1_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_07_22_37/app_output_folder/Thread_1_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_07_22_37/app_output_folder/Thread_2_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_07_22_37/app_output_folder/Thread_2_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_07_22_37/app_output_folder/Thread_3_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_07_22_37/app_output_folder/Thread_3_ready_for_sampling' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_07_22_37/app_output_folder' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_07_22_37/configuration_mesurement.csv' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_07_22_37/energy_power_workload_energyByWorkload_ccInfo' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_07_22_37/logcat_output' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_07_22_37/powermeter_summary.txt' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_07_22_37' +--- Moving the current experiment tmp_folder to the output result folder +writing a temporary file for the main script with format energy_power_workload_energyByWorkload_ccInfo +--- Obtaining experiment summary result to add to result folder +--- Experiment result, Energy consumed = 71.17628500575493 +--- Experiment result, Avg Power = 2063.139183197156 +--- Experiment result, Total Workload = 1.16604e+12 +--- Experiment result, Energy Efficiency = 6.1041e-11 +--- Adding result to summary file +--- Starting cc information : 0 +--- Ending cc information : 0 +--- The file /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/summary.csv exists we just appending the result to the file +--- Experiments performed on configuration 400040-2-2. +--- Observing a pause betwenn experiment; pause duration : 180 seconds; starting at 05Oct22_07_35_24 +--- Performing experiments on configuration 400400-2-2 +--- Cleaning the tmp expermiment folder : /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- Second step : verifying the battery level +--- Verifying the battery level +--- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe +--- Current battery level : 50 +Current battery level: OKAY +--- Third step calibrating phone core frequency +--- Resetting all frequency configurations + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu5/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor +--- Frequency level of core 0 is 4 +--- Modifying the governor of core 0 to set the default value +--- Modifying the governor of core 0 +--- Frequency level of core 1 is 0 +--- Exact frequency of core 1: 0 +--- Modifying the governor of core 1 +--- Modifying the the current frequency of core 1 with frequency 0 +--- Frequency level of core 2 is 0 +--- Exact frequency of core 2: 0 +--- Modifying the governor of core 2 +--- Modifying the the current frequency of core 2 with frequency 0 +--- Frequency level of core 3 is 4 +--- Modifying the governor of core 3 to set the default value +--- Modifying the governor of core 3 +--- Frequency level of core 4 is 0 +--- Exact frequency of core 4: 0 +--- Modifying the governor of core 4 +--- Modifying the the current frequency of core 4 with frequency 0 +--- Frequency level of core 5 is 0 +--- Exact frequency of core 5: 0 +--- Modifying the governor of core 5 +--- Modifying the the current frequency of core 5 with frequency 0 +--- Frequency level of core 6 is 2 +--- Exact frequency of core 6: 1478400 +--- Modifying the governor of core 6 +--- Modifying the the current frequency of core 6 with frequency 1478400 +--- Frequency level of core 7 is 2 +--- Exact frequency of core 7: 1766400 +--- Modifying the governor of core 7 +--- Modifying the the current frequency of core 7 with frequency 1766400 +--- Calibrating Monsoon power meter, please wait for 10 seconds... +powermeter script : --- Inside the monsoon_power_meter, arg function: 1 +powermeter script : calibration duration = 10 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 50000 + returning 50000 samples after experiments +powermeter script : Power meter calibration okay +--- Monsoon power meter Calibrated +--- starting the benchmarking app +## writing the configuration inside the phone file + --- Removing file /sdcard/experiments_automatization +rm '/sdcard/experiments_automatization/current_configuration.txt' +rm '/sdcard/experiments_automatization/experiment_duration.txt' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ended' +rmdir '/sdcard/experiments_automatization/app_output_folder' +rmdir '/sdcard/experiments_automatization' + --- Clearing the logcat + --- Creating file /sdcard/experiments_automatization +----- Uninstalling experiment app +Success +----- Installing experiment app +Performing Streamed Install +Success +------ Giving rights to experiment app +----- Starting experiment app +Starting: Intent { cmp=com.opportunistask.scheduling.benchmarking_app_to_test_big_cores/.MainActivity } +adb command : ps -A | grep com.opportunistask.scheduling.benchmarking_app_to_test_big_cores + ----- Experiment app started with pid: 5371 +---- waiting for benchmarking app thread to be pinned and to be ready +--- frequency level of core 0 is 4 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 4 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of cores to occupy = 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 4 +--- Now threads are running and the phone is ready to be sampled with the power meter \n--- Threads pids +Thread_0_ready_for_sampling +Thread_1_ready_for_sampling +Thread_2_ready_for_sampling +Thread_3_ready_for_sampling +--- Printing cc_info beginning datas (for the samsung galaxy s8) + --- Starting power meter sampling for about 600 seconds +--- Sampling with the Monsoon power meter +powermeter script : --- Inside the monsoon_power_meter, arg function: 2 +powermeter script : Experiment duration = 600 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 3000000 + returning 3000000 samples after experiments +powermeter script : Total nomber of sample measured : 3000000 +powermeter script : Computing powermeter summary result + Number of samples = 3000000 +powermeter script : We computed the energy on 600 samples +powermeter script : average_power = 2046.384180555702 +powermeter script : average_power with numpy arrays = 2046.3841805551278 +powermeter script : Summary Result = time (s): 601.6934630870819 +Ins Current (mA):430.70439714907184 +Samples: 3000000 +Consumed Energy (mAs): 253765.36498800694 +Consumed Energy (mAh): 70.49037916333526 +Consumed Energy (mWs): 1224755.196739227 +Consumed Energy (mWh): 340.2097768720075 +Avg power (mW): 2046.384180555702 +Avg Current (mA): 423.9181788097503 +Avg Voltage (V): 4.827309331959779 +Exp Batt Life (hrs for 1000mAh battery): NOT COMPUTED +--- Monsoon power meter sampling is finished ! + --- experiment folder path /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- frequency level of core 0 is 4 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 4 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of threads normally started = 4 +--- Number of thread ended: 4 +--- Now threads are stopped, getting the cc_info_level for samsung +--- Copying thread results locally +command /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe pull /sdcard/experiments_automatization/app_output_folder C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder </dev/null +/sdcard/experiments_automatization/app_output_folder/: 8 files pulled, 0 skipped. 0.0 MB/s (1810 bytes in 0.072s) +saving the logcat file to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder -/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder- +--- Parsing result from /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/raw_result.txt +--- Getting exact configuration with frequency +--- Configuration with frequencies = [1804801- 0- 0- 1804801- 0- 0- 1478400- 1766400] +--- Getting the powermeter summary +--- Powermeter summary: +time (s): 601.6934630870819 +Ins Current (mA):430.70439714907184 +Samples: 3000000 +Consumed Energy (mAs): 253765.36498800694 +Consumed Energy (mAh): 70.49037916333526 +Consumed Energy (mWs): 1224755.196739227 +Consumed Energy (mWh): 340.2097768720075 +Avg power (mW): 2046.384180555702 +Avg Current (mA): 423.9181788097503 +Avg Voltage (V): 4.827309331959779 + +--- Getting the total energy consumed of the google pixel +--- Energy consumed = 70.49037916333526 +--- Starting cc_info = 0 +--- Ending cc_info = 0 +--- Getting the average power +--- Avg Power = 2046.384180555702 +--- Printing the total threads summary +--- Thread results +Thread : 0 - ThreadProcess id: 5398 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 05:55:12 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 06:05:12 +0100 - Duration: 600011 seconds +Real workload: 4.965792758857329E10 - Integer reached: 184840 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 5399 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 05:55:12 +0100 +Core id: 3 +Ending time: Mon, 20 Dec 2021 06:05:12 +0100 - Duration: 600030 seconds +Real workload: 4.9524084160036354E10 - Integer reached: 184601 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 5400 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 05:55:12 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 06:05:12 +0100 - Duration: 600007 seconds +Real workload: 4.8433926903841455E11 - Integer reached: 551894 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 5401 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 05:55:12 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 06:05:12 +0100 - Duration: 600004 seconds +Real workload: 5.819030705448351E11 - Integer reached: 602843 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +--- Counting the total workload command : print_total_workload /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder app_output_folder 4,0,0,4,0,0,2,2 /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first +--- Total workload : 1.16542e+12 +--- Getting energy efficiency +--- Energy efficiency: 6.0485e-11 +--- Building what we will add to the total result file command +------ + (build_configuration_raw_result 400400-2-2 4,0,0,4,0,0,2,2 [1804801- 0- 0- 1804801- 0- 0- 1478400- 1766400] time (s): 601.6934630870819 +Ins Current (mA):430.70439714907184 +Samples: 3000000 +Consumed Energy (mAs): 253765.36498800694 +Consumed Energy (mAh): 70.49037916333526 +Consumed Energy (mWs): 1224755.196739227 +Consumed Energy (mWh): 340.2097768720075 +Avg power (mW): 2046.384180555702 +Avg Current (mA): 423.9181788097503 +Avg Voltage (V): 4.827309331959779 + Thread : 0 - ThreadProcess id: 5398 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 05:55:12 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 06:05:12 +0100 - Duration: 600011 seconds +Real workload: 4.965792758857329E10 - Integer reached: 184840 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 5399 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 05:55:12 +0100 +Core id: 3 +Ending time: Mon, 20 Dec 2021 06:05:12 +0100 - Duration: 600030 seconds +Real workload: 4.9524084160036354E10 - Integer reached: 184601 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 5400 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 05:55:12 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 06:05:12 +0100 - Duration: 600007 seconds +Real workload: 4.8433926903841455E11 - Integer reached: 551894 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 5401 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 05:55:12 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 06:05:12 +0100 - Duration: 600004 seconds +Real workload: 5.819030705448351E11 - Integer reached: 602843 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + 70.49037916333526 1.16542e+12 6.0485e-11 0 0 +------ + +--- Final result to print to File + -------------------------------------------------------------------------------- + +++++ +++++ +++++ Configuration Description +-------------------------------------------------------------------------------- +Configuration: 400400-2-2 +phone format: 4,0,0,4,0,0,2,2 +Exact values of frequencies: [1804801- 0- 0- 1804801- 0- 0- 1478400- 1766400] + +Power meter results +------------------------------------------------------------ +time (s): 601.6934630870819 +Ins Current (mA):430.70439714907184 +Samples: 3000000 +Consumed Energy (mAs): 253765.36498800694 +Consumed Energy (mAh): 70.49037916333526 +Consumed Energy (mWs): 1224755.196739227 +Consumed Energy (mWh): 340.2097768720075 +Avg power (mW): 2046.384180555702 +Avg Current (mA): 423.9181788097503 +Avg Voltage (V): 4.827309331959779 + +Threads results +------------------------------------------------------------ +Thread : 0 - ThreadProcess id: 5398 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 05:55:12 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 06:05:12 +0100 - Duration: 600011 seconds +Real workload: 4.965792758857329E10 - Integer reached: 184840 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 5399 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 05:55:12 +0100 +Core id: 3 +Ending time: Mon, 20 Dec 2021 06:05:12 +0100 - Duration: 600030 seconds +Real workload: 4.9524084160036354E10 - Integer reached: 184601 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 5400 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 05:55:12 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 06:05:12 +0100 - Duration: 600007 seconds +Real workload: 4.8433926903841455E11 - Integer reached: 551894 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 5401 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 05:55:12 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 06:05:12 +0100 - Duration: 600004 seconds +Real workload: 5.819030705448351E11 - Integer reached: 602843 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +Expermiment results +------------------------------------------------------------ +Energy Consumed (mAh): 70.49037916333526 +Workload: 1.16542e+12 +Energy efficiency: 6.0485e-11 +-------------------------------------------------------------------------------- + + +--- Writing to the total result file +--- Removing previous tested configuration tmp_output folder +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_07_38_26/app_output_folder/all_workloads.txt' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_07_38_26/app_output_folder/Thread_0_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_07_38_26/app_output_folder/Thread_0_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_07_38_26/app_output_folder/Thread_1_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_07_38_26/app_output_folder/Thread_1_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_07_38_26/app_output_folder/Thread_2_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_07_38_26/app_output_folder/Thread_2_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_07_38_26/app_output_folder/Thread_3_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_07_38_26/app_output_folder/Thread_3_ready_for_sampling' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_07_38_26/app_output_folder' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_07_38_26/configuration_mesurement.csv' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_07_38_26/energy_power_workload_energyByWorkload_ccInfo' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_07_38_26/logcat_output' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_07_38_26/powermeter_summary.txt' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_07_38_26' +--- Moving the current experiment tmp_folder to the output result folder +writing a temporary file for the main script with format energy_power_workload_energyByWorkload_ccInfo +--- Obtaining experiment summary result to add to result folder +--- Experiment result, Energy consumed = 70.49037916333526 +--- Experiment result, Avg Power = 2046.384180555702 +--- Experiment result, Total Workload = 1.16542e+12 +--- Experiment result, Energy Efficiency = 6.0485e-11 +--- Adding result to summary file +--- Starting cc information : 0 +--- Ending cc information : 0 +--- The file /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/summary.csv exists we just appending the result to the file +--- Experiments performed on configuration 400400-2-2. +--- Observing a pause betwenn experiment; pause duration : 180 seconds; starting at 05Oct22_07_51_11 +--- Performing experiments on configuration 400400-2-2 +--- Cleaning the tmp expermiment folder : /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- Second step : verifying the battery level +--- Verifying the battery level +--- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe +--- Current battery level : 50 +Current battery level: OKAY +--- Third step calibrating phone core frequency +--- Resetting all frequency configurations + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu5/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor +--- Frequency level of core 0 is 4 +--- Modifying the governor of core 0 to set the default value +--- Modifying the governor of core 0 +--- Frequency level of core 1 is 0 +--- Exact frequency of core 1: 0 +--- Modifying the governor of core 1 +--- Modifying the the current frequency of core 1 with frequency 0 +--- Frequency level of core 2 is 0 +--- Exact frequency of core 2: 0 +--- Modifying the governor of core 2 +--- Modifying the the current frequency of core 2 with frequency 0 +--- Frequency level of core 3 is 4 +--- Modifying the governor of core 3 to set the default value +--- Modifying the governor of core 3 +--- Frequency level of core 4 is 0 +--- Exact frequency of core 4: 0 +--- Modifying the governor of core 4 +--- Modifying the the current frequency of core 4 with frequency 0 +--- Frequency level of core 5 is 0 +--- Exact frequency of core 5: 0 +--- Modifying the governor of core 5 +--- Modifying the the current frequency of core 5 with frequency 0 +--- Frequency level of core 6 is 2 +--- Exact frequency of core 6: 1478400 +--- Modifying the governor of core 6 +--- Modifying the the current frequency of core 6 with frequency 1478400 +--- Frequency level of core 7 is 2 +--- Exact frequency of core 7: 1766400 +--- Modifying the governor of core 7 +--- Modifying the the current frequency of core 7 with frequency 1766400 +--- Calibrating Monsoon power meter, please wait for 10 seconds... +powermeter script : --- Inside the monsoon_power_meter, arg function: 1 +powermeter script : calibration duration = 10 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 50000 + returning 50000 samples after experiments +powermeter script : Power meter calibration okay +--- Monsoon power meter Calibrated +--- starting the benchmarking app +## writing the configuration inside the phone file + --- Removing file /sdcard/experiments_automatization +rm '/sdcard/experiments_automatization/current_configuration.txt' +rm '/sdcard/experiments_automatization/experiment_duration.txt' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ended' +rmdir '/sdcard/experiments_automatization/app_output_folder' +rmdir '/sdcard/experiments_automatization' + --- Clearing the logcat + --- Creating file /sdcard/experiments_automatization +----- Uninstalling experiment app +Success +----- Installing experiment app +Performing Streamed Install +Success +------ Giving rights to experiment app +----- Starting experiment app +Starting: Intent { cmp=com.opportunistask.scheduling.benchmarking_app_to_test_big_cores/.MainActivity } +adb command : ps -A | grep com.opportunistask.scheduling.benchmarking_app_to_test_big_cores + ----- Experiment app started with pid: 6467 +---- waiting for benchmarking app thread to be pinned and to be ready +--- frequency level of core 0 is 4 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 4 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of cores to occupy = 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 4 +--- Now threads are running and the phone is ready to be sampled with the power meter \n--- Threads pids +Thread_0_ready_for_sampling +Thread_1_ready_for_sampling +Thread_2_ready_for_sampling +Thread_3_ready_for_sampling +--- Printing cc_info beginning datas (for the samsung galaxy s8) + --- Starting power meter sampling for about 600 seconds +--- Sampling with the Monsoon power meter +powermeter script : --- Inside the monsoon_power_meter, arg function: 2 +powermeter script : Experiment duration = 600 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 3000000 + returning 3000000 samples after experiments +powermeter script : Total nomber of sample measured : 3000000 +powermeter script : Computing powermeter summary result + Number of samples = 3000000 +powermeter script : We computed the energy on 600 samples +powermeter script : average_power = 2021.8984860743753 +powermeter script : average_power with numpy arrays = 2021.898486073903 +powermeter script : Summary Result = time (s): 601.6564755439758 +Ins Current (mA):481.4946171428572 +Samples: 3000000 +Consumed Energy (mAs): 251946.64854086185 +Consumed Energy (mAh): 69.9851801502394 +Consumed Energy (mWs): 1216784.7485996848 +Consumed Energy (mWh): 337.99576349991247 +Avg power (mW): 2021.8984860743753 +Avg Current (mA): 418.4888895193364 +Avg Voltage (V): 4.831426918876309 +Exp Batt Life (hrs for 1000mAh battery): NOT COMPUTED +--- Monsoon power meter sampling is finished ! + --- experiment folder path /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- frequency level of core 0 is 4 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 4 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of threads normally started = 4 +--- Number of thread ended: 4 +--- Now threads are stopped, getting the cc_info_level for samsung +--- Copying thread results locally +command /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe pull /sdcard/experiments_automatization/app_output_folder C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder </dev/null +/sdcard/experiments_automatization/app_output_folder/: 8 files pulled, 0 skipped. 0.0 MB/s (1808 bytes in 0.066s) +saving the logcat file to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder -/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder- +--- Parsing result from /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/raw_result.txt +--- Getting exact configuration with frequency +--- Configuration with frequencies = [1804801- 0- 0- 1804801- 0- 0- 1478400- 1766400] +--- Getting the powermeter summary +--- Powermeter summary: +time (s): 601.6564755439758 +Ins Current (mA):481.4946171428572 +Samples: 3000000 +Consumed Energy (mAs): 251946.64854086185 +Consumed Energy (mAh): 69.9851801502394 +Consumed Energy (mWs): 1216784.7485996848 +Consumed Energy (mWh): 337.99576349991247 +Avg power (mW): 2021.8984860743753 +Avg Current (mA): 418.4888895193364 +Avg Voltage (V): 4.831426918876309 + +--- Getting the total energy consumed of the google pixel +--- Energy consumed = 69.9851801502394 +--- Starting cc_info = 0 +--- Ending cc_info = 0 +--- Getting the average power +--- Avg Power = 2021.8984860743753 +--- Printing the total threads summary +--- Thread results +Thread : 0 - ThreadProcess id: 6492 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 06:10:59 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 06:20:59 +0100 - Duration: 600007 seconds +Real workload: 4.948100295071336E10 - Integer reached: 184524 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 6493 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 06:10:59 +0100 +Core id: 3 +Ending time: Mon, 20 Dec 2021 06:20:59 +0100 - Duration: 600009 seconds +Real workload: 5.007183864463432E10 - Integer reached: 185577 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 6494 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 06:10:58 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 06:20:59 +0100 - Duration: 600003 seconds +Real workload: 4.796883025441179E11 - Integer reached: 549338 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 6496 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 06:10:59 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 06:20:59 +0100 - Duration: 600009 seconds +Real workload: 5.824006384737987E11 - Integer reached: 603091 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +--- Counting the total workload command : print_total_workload /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder app_output_folder 4,0,0,4,0,0,2,2 /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first +--- Total workload : 1.16164e+12 +--- Getting energy efficiency +--- Energy efficiency: 6.02469e-11 +--- Building what we will add to the total result file command +------ + (build_configuration_raw_result 400400-2-2 4,0,0,4,0,0,2,2 [1804801- 0- 0- 1804801- 0- 0- 1478400- 1766400] time (s): 601.6564755439758 +Ins Current (mA):481.4946171428572 +Samples: 3000000 +Consumed Energy (mAs): 251946.64854086185 +Consumed Energy (mAh): 69.9851801502394 +Consumed Energy (mWs): 1216784.7485996848 +Consumed Energy (mWh): 337.99576349991247 +Avg power (mW): 2021.8984860743753 +Avg Current (mA): 418.4888895193364 +Avg Voltage (V): 4.831426918876309 + Thread : 0 - ThreadProcess id: 6492 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 06:10:59 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 06:20:59 +0100 - Duration: 600007 seconds +Real workload: 4.948100295071336E10 - Integer reached: 184524 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 6493 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 06:10:59 +0100 +Core id: 3 +Ending time: Mon, 20 Dec 2021 06:20:59 +0100 - Duration: 600009 seconds +Real workload: 5.007183864463432E10 - Integer reached: 185577 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 6494 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 06:10:58 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 06:20:59 +0100 - Duration: 600003 seconds +Real workload: 4.796883025441179E11 - Integer reached: 549338 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 6496 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 06:10:59 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 06:20:59 +0100 - Duration: 600009 seconds +Real workload: 5.824006384737987E11 - Integer reached: 603091 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + 69.9851801502394 1.16164e+12 6.02469e-11 0 0 +------ + +--- Final result to print to File + -------------------------------------------------------------------------------- + +++++ +++++ +++++ Configuration Description +-------------------------------------------------------------------------------- +Configuration: 400400-2-2 +phone format: 4,0,0,4,0,0,2,2 +Exact values of frequencies: [1804801- 0- 0- 1804801- 0- 0- 1478400- 1766400] + +Power meter results +------------------------------------------------------------ +time (s): 601.6564755439758 +Ins Current (mA):481.4946171428572 +Samples: 3000000 +Consumed Energy (mAs): 251946.64854086185 +Consumed Energy (mAh): 69.9851801502394 +Consumed Energy (mWs): 1216784.7485996848 +Consumed Energy (mWh): 337.99576349991247 +Avg power (mW): 2021.8984860743753 +Avg Current (mA): 418.4888895193364 +Avg Voltage (V): 4.831426918876309 + +Threads results +------------------------------------------------------------ +Thread : 0 - ThreadProcess id: 6492 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 06:10:59 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 06:20:59 +0100 - Duration: 600007 seconds +Real workload: 4.948100295071336E10 - Integer reached: 184524 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 6493 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 06:10:59 +0100 +Core id: 3 +Ending time: Mon, 20 Dec 2021 06:20:59 +0100 - Duration: 600009 seconds +Real workload: 5.007183864463432E10 - Integer reached: 185577 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 6494 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 06:10:58 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 06:20:59 +0100 - Duration: 600003 seconds +Real workload: 4.796883025441179E11 - Integer reached: 549338 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 6496 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 06:10:59 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 06:20:59 +0100 - Duration: 600009 seconds +Real workload: 5.824006384737987E11 - Integer reached: 603091 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +Expermiment results +------------------------------------------------------------ +Energy Consumed (mAh): 69.9851801502394 +Workload: 1.16164e+12 +Energy efficiency: 6.02469e-11 +-------------------------------------------------------------------------------- + + +--- Writing to the total result file +--- Removing previous tested configuration tmp_output folder +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_07_54_13/app_output_folder/all_workloads.txt' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_07_54_13/app_output_folder/Thread_0_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_07_54_13/app_output_folder/Thread_0_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_07_54_13/app_output_folder/Thread_1_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_07_54_13/app_output_folder/Thread_1_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_07_54_13/app_output_folder/Thread_2_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_07_54_13/app_output_folder/Thread_2_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_07_54_13/app_output_folder/Thread_3_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_07_54_13/app_output_folder/Thread_3_ready_for_sampling' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_07_54_13/app_output_folder' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_07_54_13/configuration_mesurement.csv' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_07_54_13/energy_power_workload_energyByWorkload_ccInfo' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_07_54_13/logcat_output' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_07_54_13/powermeter_summary.txt' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_07_54_13' +--- Moving the current experiment tmp_folder to the output result folder +writing a temporary file for the main script with format energy_power_workload_energyByWorkload_ccInfo +--- Obtaining experiment summary result to add to result folder +--- Experiment result, Energy consumed = 69.9851801502394 +--- Experiment result, Avg Power = 2021.8984860743753 +--- Experiment result, Total Workload = 1.16164e+12 +--- Experiment result, Energy Efficiency = 6.02469e-11 +--- Adding result to summary file +--- Starting cc information : 0 +--- Ending cc information : 0 +--- The file /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/summary.csv exists we just appending the result to the file +--- Experiments performed on configuration 400400-2-2. +--- Observing a pause betwenn experiment; pause duration : 180 seconds; starting at 05Oct22_08_06_58 +--- Performing experiments on configuration 400400-2-2 +--- Cleaning the tmp expermiment folder : /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- Second step : verifying the battery level +--- Verifying the battery level +--- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe +--- Current battery level : 50 +Current battery level: OKAY +--- Third step calibrating phone core frequency +--- Resetting all frequency configurations + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu5/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor +--- Frequency level of core 0 is 4 +--- Modifying the governor of core 0 to set the default value +--- Modifying the governor of core 0 +--- Frequency level of core 1 is 0 +--- Exact frequency of core 1: 0 +--- Modifying the governor of core 1 +--- Modifying the the current frequency of core 1 with frequency 0 +--- Frequency level of core 2 is 0 +--- Exact frequency of core 2: 0 +--- Modifying the governor of core 2 +--- Modifying the the current frequency of core 2 with frequency 0 +--- Frequency level of core 3 is 4 +--- Modifying the governor of core 3 to set the default value +--- Modifying the governor of core 3 +--- Frequency level of core 4 is 0 +--- Exact frequency of core 4: 0 +--- Modifying the governor of core 4 +--- Modifying the the current frequency of core 4 with frequency 0 +--- Frequency level of core 5 is 0 +--- Exact frequency of core 5: 0 +--- Modifying the governor of core 5 +--- Modifying the the current frequency of core 5 with frequency 0 +--- Frequency level of core 6 is 2 +--- Exact frequency of core 6: 1478400 +--- Modifying the governor of core 6 +--- Modifying the the current frequency of core 6 with frequency 1478400 +--- Frequency level of core 7 is 2 +--- Exact frequency of core 7: 1766400 +--- Modifying the governor of core 7 +--- Modifying the the current frequency of core 7 with frequency 1766400 +--- Calibrating Monsoon power meter, please wait for 10 seconds... +powermeter script : --- Inside the monsoon_power_meter, arg function: 1 +powermeter script : calibration duration = 10 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 50000 + returning 50000 samples after experiments +powermeter script : Power meter calibration okay +--- Monsoon power meter Calibrated +--- starting the benchmarking app +## writing the configuration inside the phone file + --- Removing file /sdcard/experiments_automatization +rm '/sdcard/experiments_automatization/current_configuration.txt' +rm '/sdcard/experiments_automatization/experiment_duration.txt' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ended' +rmdir '/sdcard/experiments_automatization/app_output_folder' +rmdir '/sdcard/experiments_automatization' + --- Clearing the logcat + --- Creating file /sdcard/experiments_automatization +----- Uninstalling experiment app +Success +----- Installing experiment app +Performing Streamed Install +Success +------ Giving rights to experiment app +----- Starting experiment app +Starting: Intent { cmp=com.opportunistask.scheduling.benchmarking_app_to_test_big_cores/.MainActivity } +adb command : ps -A | grep com.opportunistask.scheduling.benchmarking_app_to_test_big_cores + ----- Experiment app started with pid: 7487 +---- waiting for benchmarking app thread to be pinned and to be ready +--- frequency level of core 0 is 4 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 4 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of cores to occupy = 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 4 +--- Now threads are running and the phone is ready to be sampled with the power meter \n--- Threads pids +Thread_0_ready_for_sampling +Thread_1_ready_for_sampling +Thread_2_ready_for_sampling +Thread_3_ready_for_sampling +--- Printing cc_info beginning datas (for the samsung galaxy s8) + --- Starting power meter sampling for about 600 seconds +--- Sampling with the Monsoon power meter +powermeter script : --- Inside the monsoon_power_meter, arg function: 2 +powermeter script : Experiment duration = 600 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 3000000 + returning 3000000 samples after experiments +powermeter script : Total nomber of sample measured : 3000000 +powermeter script : Computing powermeter summary result + Number of samples = 3000000 +powermeter script : We computed the energy on 600 samples +powermeter script : average_power = 2064.2426598360594 +powermeter script : average_power with numpy arrays = 2064.2426598358684 +powermeter script : Summary Result = time (s): 602.9953987598419 +Ins Current (mA):411.5483282350566 +Samples: 3000000 +Consumed Energy (mAs): 257315.53022819836 +Consumed Energy (mAh): 71.47653617449954 +Consumed Energy (mWs): 1240808.3856057613 +Consumed Energy (mWh): 344.66899600160036 +Avg power (mW): 2064.2426598360594 +Avg Current (mA): 427.89040152263857 +Avg Voltage (V): 4.824232215750802 +Exp Batt Life (hrs for 1000mAh battery): NOT COMPUTED +--- Monsoon power meter sampling is finished ! + --- experiment folder path /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- frequency level of core 0 is 4 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 4 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of threads normally started = 4 +--- Number of thread ended: 4 +--- Now threads are stopped, getting the cc_info_level for samsung +--- Copying thread results locally +command /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe pull /sdcard/experiments_automatization/app_output_folder C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder </dev/null +/sdcard/experiments_automatization/app_output_folder/: 8 files pulled, 0 skipped. 0.0 MB/s (1808 bytes in 0.060s) +saving the logcat file to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder -/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder- +--- Parsing result from /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/raw_result.txt +--- Getting exact configuration with frequency +--- Configuration with frequencies = [1804801- 0- 0- 1804801- 0- 0- 1478400- 1766400] +--- Getting the powermeter summary +--- Powermeter summary: +time (s): 602.9953987598419 +Ins Current (mA):411.5483282350566 +Samples: 3000000 +Consumed Energy (mAs): 257315.53022819836 +Consumed Energy (mAh): 71.47653617449954 +Consumed Energy (mWs): 1240808.3856057613 +Consumed Energy (mWh): 344.66899600160036 +Avg power (mW): 2064.2426598360594 +Avg Current (mA): 427.89040152263857 +Avg Voltage (V): 4.824232215750802 + +--- Getting the total energy consumed of the google pixel +--- Energy consumed = 71.47653617449954 +--- Starting cc_info = 0 +--- Ending cc_info = 0 +--- Getting the average power +--- Avg Power = 2064.2426598360594 +--- Printing the total threads summary +--- Thread results +Thread : 0 - ThreadProcess id: 7512 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 06:26:45 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 06:36:45 +0100 - Duration: 600001 seconds +Real workload: 4.9954279760620804E10 - Integer reached: 185368 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 7513 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 06:26:45 +0100 +Core id: 3 +Ending time: Mon, 20 Dec 2021 06:36:46 +0100 - Duration: 600027 seconds +Real workload: 4.949275045696362E10 - Integer reached: 184545 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 7514 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 06:26:45 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 06:36:46 +0100 - Duration: 600008 seconds +Real workload: 4.84835574850854E11 - Integer reached: 552166 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 7515 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 06:26:45 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 06:36:46 +0100 - Duration: 600008 seconds +Real workload: 5.825531630296295E11 - Integer reached: 603167 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +--- Counting the total workload command : print_total_workload /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder app_output_folder 4,0,0,4,0,0,2,2 /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first +--- Total workload : 1.16684e+12 +--- Getting energy efficiency +--- Energy efficiency: 6.12565e-11 +--- Building what we will add to the total result file command +------ + (build_configuration_raw_result 400400-2-2 4,0,0,4,0,0,2,2 [1804801- 0- 0- 1804801- 0- 0- 1478400- 1766400] time (s): 602.9953987598419 +Ins Current (mA):411.5483282350566 +Samples: 3000000 +Consumed Energy (mAs): 257315.53022819836 +Consumed Energy (mAh): 71.47653617449954 +Consumed Energy (mWs): 1240808.3856057613 +Consumed Energy (mWh): 344.66899600160036 +Avg power (mW): 2064.2426598360594 +Avg Current (mA): 427.89040152263857 +Avg Voltage (V): 4.824232215750802 + Thread : 0 - ThreadProcess id: 7512 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 06:26:45 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 06:36:45 +0100 - Duration: 600001 seconds +Real workload: 4.9954279760620804E10 - Integer reached: 185368 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 7513 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 06:26:45 +0100 +Core id: 3 +Ending time: Mon, 20 Dec 2021 06:36:46 +0100 - Duration: 600027 seconds +Real workload: 4.949275045696362E10 - Integer reached: 184545 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 7514 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 06:26:45 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 06:36:46 +0100 - Duration: 600008 seconds +Real workload: 4.84835574850854E11 - Integer reached: 552166 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 7515 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 06:26:45 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 06:36:46 +0100 - Duration: 600008 seconds +Real workload: 5.825531630296295E11 - Integer reached: 603167 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + 71.47653617449954 1.16684e+12 6.12565e-11 0 0 +------ + +--- Final result to print to File + -------------------------------------------------------------------------------- + +++++ +++++ +++++ Configuration Description +-------------------------------------------------------------------------------- +Configuration: 400400-2-2 +phone format: 4,0,0,4,0,0,2,2 +Exact values of frequencies: [1804801- 0- 0- 1804801- 0- 0- 1478400- 1766400] + +Power meter results +------------------------------------------------------------ +time (s): 602.9953987598419 +Ins Current (mA):411.5483282350566 +Samples: 3000000 +Consumed Energy (mAs): 257315.53022819836 +Consumed Energy (mAh): 71.47653617449954 +Consumed Energy (mWs): 1240808.3856057613 +Consumed Energy (mWh): 344.66899600160036 +Avg power (mW): 2064.2426598360594 +Avg Current (mA): 427.89040152263857 +Avg Voltage (V): 4.824232215750802 + +Threads results +------------------------------------------------------------ +Thread : 0 - ThreadProcess id: 7512 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 06:26:45 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 06:36:45 +0100 - Duration: 600001 seconds +Real workload: 4.9954279760620804E10 - Integer reached: 185368 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 7513 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 06:26:45 +0100 +Core id: 3 +Ending time: Mon, 20 Dec 2021 06:36:46 +0100 - Duration: 600027 seconds +Real workload: 4.949275045696362E10 - Integer reached: 184545 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 7514 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 06:26:45 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 06:36:46 +0100 - Duration: 600008 seconds +Real workload: 4.84835574850854E11 - Integer reached: 552166 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 7515 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 06:26:45 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 06:36:46 +0100 - Duration: 600008 seconds +Real workload: 5.825531630296295E11 - Integer reached: 603167 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +Expermiment results +------------------------------------------------------------ +Energy Consumed (mAh): 71.47653617449954 +Workload: 1.16684e+12 +Energy efficiency: 6.12565e-11 +-------------------------------------------------------------------------------- + + +--- Writing to the total result file +--- Removing previous tested configuration tmp_output folder +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_08_10_00/app_output_folder/all_workloads.txt' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_08_10_00/app_output_folder/Thread_0_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_08_10_00/app_output_folder/Thread_0_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_08_10_00/app_output_folder/Thread_1_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_08_10_00/app_output_folder/Thread_1_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_08_10_00/app_output_folder/Thread_2_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_08_10_00/app_output_folder/Thread_2_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_08_10_00/app_output_folder/Thread_3_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_08_10_00/app_output_folder/Thread_3_ready_for_sampling' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_08_10_00/app_output_folder' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_08_10_00/configuration_mesurement.csv' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_08_10_00/energy_power_workload_energyByWorkload_ccInfo' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_08_10_00/logcat_output' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_08_10_00/powermeter_summary.txt' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_08_10_00' +--- Moving the current experiment tmp_folder to the output result folder +writing a temporary file for the main script with format energy_power_workload_energyByWorkload_ccInfo +--- Obtaining experiment summary result to add to result folder +--- Experiment result, Energy consumed = 71.47653617449954 +--- Experiment result, Avg Power = 2064.2426598360594 +--- Experiment result, Total Workload = 1.16684e+12 +--- Experiment result, Energy Efficiency = 6.12565e-11 +--- Adding result to summary file +--- Starting cc information : 0 +--- Ending cc information : 0 +--- The file /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/summary.csv exists we just appending the result to the file +--- Experiments performed on configuration 400400-2-2. +--- Observing a pause betwenn experiment; pause duration : 180 seconds; starting at 05Oct22_08_22_46 +--- Performing experiments on configuration 404000-2-2 +--- Cleaning the tmp expermiment folder : /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- Second step : verifying the battery level +--- Verifying the battery level +--- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe +--- Current battery level : 50 +Current battery level: OKAY +--- Third step calibrating phone core frequency +--- Resetting all frequency configurations + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu5/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor +--- Frequency level of core 0 is 4 +--- Modifying the governor of core 0 to set the default value +--- Modifying the governor of core 0 +--- Frequency level of core 1 is 0 +--- Exact frequency of core 1: 0 +--- Modifying the governor of core 1 +--- Modifying the the current frequency of core 1 with frequency 0 +--- Frequency level of core 2 is 4 +--- Modifying the governor of core 2 to set the default value +--- Modifying the governor of core 2 +--- Frequency level of core 3 is 0 +--- Exact frequency of core 3: 0 +--- Modifying the governor of core 3 +--- Modifying the the current frequency of core 3 with frequency 0 +--- Frequency level of core 4 is 0 +--- Exact frequency of core 4: 0 +--- Modifying the governor of core 4 +--- Modifying the the current frequency of core 4 with frequency 0 +--- Frequency level of core 5 is 0 +--- Exact frequency of core 5: 0 +--- Modifying the governor of core 5 +--- Modifying the the current frequency of core 5 with frequency 0 +--- Frequency level of core 6 is 2 +--- Exact frequency of core 6: 1478400 +--- Modifying the governor of core 6 +--- Modifying the the current frequency of core 6 with frequency 1478400 +--- Frequency level of core 7 is 2 +--- Exact frequency of core 7: 1766400 +--- Modifying the governor of core 7 +--- Modifying the the current frequency of core 7 with frequency 1766400 +--- Calibrating Monsoon power meter, please wait for 10 seconds... +powermeter script : --- Inside the monsoon_power_meter, arg function: 1 +powermeter script : calibration duration = 10 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 50000 + returning 50000 samples after experiments +powermeter script : Power meter calibration okay +--- Monsoon power meter Calibrated +--- starting the benchmarking app +## writing the configuration inside the phone file + --- Removing file /sdcard/experiments_automatization +rm '/sdcard/experiments_automatization/current_configuration.txt' +rm '/sdcard/experiments_automatization/experiment_duration.txt' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ended' +rmdir '/sdcard/experiments_automatization/app_output_folder' +rmdir '/sdcard/experiments_automatization' + --- Clearing the logcat + --- Creating file /sdcard/experiments_automatization +----- Uninstalling experiment app +Success +----- Installing experiment app +Performing Streamed Install +Success +------ Giving rights to experiment app +----- Starting experiment app +Starting: Intent { cmp=com.opportunistask.scheduling.benchmarking_app_to_test_big_cores/.MainActivity } +adb command : ps -A | grep com.opportunistask.scheduling.benchmarking_app_to_test_big_cores + ----- Experiment app started with pid: 8837 +---- waiting for benchmarking app thread to be pinned and to be ready +--- frequency level of core 0 is 4 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 4 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of cores to occupy = 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 4 +--- Now threads are running and the phone is ready to be sampled with the power meter \n--- Threads pids +Thread_0_ready_for_sampling +Thread_1_ready_for_sampling +Thread_2_ready_for_sampling +Thread_3_ready_for_sampling +--- Printing cc_info beginning datas (for the samsung galaxy s8) + --- Starting power meter sampling for about 600 seconds +--- Sampling with the Monsoon power meter +powermeter script : --- Inside the monsoon_power_meter, arg function: 2 +powermeter script : Experiment duration = 600 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 3000000 + returning 3000000 samples after experiments +powermeter script : Total nomber of sample measured : 3000000 +powermeter script : Computing powermeter summary result + Number of samples = 3000000 +powermeter script : We computed the energy on 600 samples +powermeter script : average_power = 2027.7301611933613 +powermeter script : average_power with numpy arrays = 2027.730161192804 +powermeter script : Summary Result = time (s): 601.696311712265 +Ins Current (mA):413.51848409118617 +Samples: 3000000 +Consumed Energy (mAs): 252789.55745044872 +Consumed Energy (mAh): 70.21932151401353 +Consumed Energy (mWs): 1220510.6032304573 +Consumed Energy (mWh): 339.03072311957146 +Avg power (mW): 2027.7301611933613 +Avg Current (mA): 419.7881147990753 +Avg Voltage (V): 4.830365819584723 +Exp Batt Life (hrs for 1000mAh battery): NOT COMPUTED +--- Monsoon power meter sampling is finished ! + --- experiment folder path /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- frequency level of core 0 is 4 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 4 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of threads normally started = 4 +--- Number of thread ended: 4 +--- Now threads are stopped, getting the cc_info_level for samsung +--- Copying thread results locally +command /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe pull /sdcard/experiments_automatization/app_output_folder C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder </dev/null +/sdcard/experiments_automatization/app_output_folder/: 8 files pulled, 0 skipped. 0.0 MB/s (1809 bytes in 0.066s) +saving the logcat file to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder -/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder- +--- Parsing result from /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/raw_result.txt +--- Getting exact configuration with frequency +--- Configuration with frequencies = [1804801- 0- 1804801- 0- 0- 0- 1478400- 1766400] +--- Getting the powermeter summary +--- Powermeter summary: +time (s): 601.696311712265 +Ins Current (mA):413.51848409118617 +Samples: 3000000 +Consumed Energy (mAs): 252789.55745044872 +Consumed Energy (mAh): 70.21932151401353 +Consumed Energy (mWs): 1220510.6032304573 +Consumed Energy (mWh): 339.03072311957146 +Avg power (mW): 2027.7301611933613 +Avg Current (mA): 419.7881147990753 +Avg Voltage (V): 4.830365819584723 + +--- Getting the total energy consumed of the google pixel +--- Energy consumed = 70.21932151401353 +--- Starting cc_info = 0 +--- Ending cc_info = 0 +--- Getting the average power +--- Avg Power = 2027.7301611933613 +--- Printing the total threads summary +--- Thread results +Thread : 0 - ThreadProcess id: 8862 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 06:42:34 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 06:52:34 +0100 - Duration: 600022 seconds +Real workload: 4.9599663051341324E10 - Integer reached: 184736 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 8863 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 06:42:34 +0100 +Core id: 2 +Ending time: Mon, 20 Dec 2021 06:52:34 +0100 - Duration: 600010 seconds +Real workload: 4.949722607074789E10 - Integer reached: 184553 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 8864 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 06:42:34 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 06:52:34 +0100 - Duration: 600002 seconds +Real workload: 4.8417875585804504E11 - Integer reached: 551806 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 8865 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 06:42:34 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 06:52:34 +0100 - Duration: 600006 seconds +Real workload: 5.80563941736184E11 - Integer reached: 602175 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +--- Counting the total workload command : print_total_workload /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder app_output_folder 4,0,4,0,0,0,2,2 /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first +--- Total workload : 1.16384e+12 +--- Getting energy efficiency +--- Energy efficiency: 6.03342e-11 +--- Building what we will add to the total result file command +------ + (build_configuration_raw_result 404000-2-2 4,0,4,0,0,0,2,2 [1804801- 0- 1804801- 0- 0- 0- 1478400- 1766400] time (s): 601.696311712265 +Ins Current (mA):413.51848409118617 +Samples: 3000000 +Consumed Energy (mAs): 252789.55745044872 +Consumed Energy (mAh): 70.21932151401353 +Consumed Energy (mWs): 1220510.6032304573 +Consumed Energy (mWh): 339.03072311957146 +Avg power (mW): 2027.7301611933613 +Avg Current (mA): 419.7881147990753 +Avg Voltage (V): 4.830365819584723 + Thread : 0 - ThreadProcess id: 8862 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 06:42:34 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 06:52:34 +0100 - Duration: 600022 seconds +Real workload: 4.9599663051341324E10 - Integer reached: 184736 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 8863 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 06:42:34 +0100 +Core id: 2 +Ending time: Mon, 20 Dec 2021 06:52:34 +0100 - Duration: 600010 seconds +Real workload: 4.949722607074789E10 - Integer reached: 184553 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 8864 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 06:42:34 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 06:52:34 +0100 - Duration: 600002 seconds +Real workload: 4.8417875585804504E11 - Integer reached: 551806 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 8865 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 06:42:34 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 06:52:34 +0100 - Duration: 600006 seconds +Real workload: 5.80563941736184E11 - Integer reached: 602175 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + 70.21932151401353 1.16384e+12 6.03342e-11 0 0 +------ + +--- Final result to print to File + -------------------------------------------------------------------------------- + +++++ +++++ +++++ Configuration Description +-------------------------------------------------------------------------------- +Configuration: 404000-2-2 +phone format: 4,0,4,0,0,0,2,2 +Exact values of frequencies: [1804801- 0- 1804801- 0- 0- 0- 1478400- 1766400] + +Power meter results +------------------------------------------------------------ +time (s): 601.696311712265 +Ins Current (mA):413.51848409118617 +Samples: 3000000 +Consumed Energy (mAs): 252789.55745044872 +Consumed Energy (mAh): 70.21932151401353 +Consumed Energy (mWs): 1220510.6032304573 +Consumed Energy (mWh): 339.03072311957146 +Avg power (mW): 2027.7301611933613 +Avg Current (mA): 419.7881147990753 +Avg Voltage (V): 4.830365819584723 + +Threads results +------------------------------------------------------------ +Thread : 0 - ThreadProcess id: 8862 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 06:42:34 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 06:52:34 +0100 - Duration: 600022 seconds +Real workload: 4.9599663051341324E10 - Integer reached: 184736 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 8863 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 06:42:34 +0100 +Core id: 2 +Ending time: Mon, 20 Dec 2021 06:52:34 +0100 - Duration: 600010 seconds +Real workload: 4.949722607074789E10 - Integer reached: 184553 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 8864 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 06:42:34 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 06:52:34 +0100 - Duration: 600002 seconds +Real workload: 4.8417875585804504E11 - Integer reached: 551806 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 8865 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 06:42:34 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 06:52:34 +0100 - Duration: 600006 seconds +Real workload: 5.80563941736184E11 - Integer reached: 602175 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +Expermiment results +------------------------------------------------------------ +Energy Consumed (mAh): 70.21932151401353 +Workload: 1.16384e+12 +Energy efficiency: 6.03342e-11 +-------------------------------------------------------------------------------- + + +--- Writing to the total result file +--- Removing previous tested configuration tmp_output folder +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_08_25_49/app_output_folder/all_workloads.txt' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_08_25_49/app_output_folder/Thread_0_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_08_25_49/app_output_folder/Thread_0_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_08_25_49/app_output_folder/Thread_1_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_08_25_49/app_output_folder/Thread_1_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_08_25_49/app_output_folder/Thread_2_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_08_25_49/app_output_folder/Thread_2_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_08_25_49/app_output_folder/Thread_3_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_08_25_49/app_output_folder/Thread_3_ready_for_sampling' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_08_25_49/app_output_folder' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_08_25_49/configuration_mesurement.csv' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_08_25_49/energy_power_workload_energyByWorkload_ccInfo' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_08_25_49/logcat_output' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_08_25_49/powermeter_summary.txt' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_08_25_49' +--- Moving the current experiment tmp_folder to the output result folder +writing a temporary file for the main script with format energy_power_workload_energyByWorkload_ccInfo +--- Obtaining experiment summary result to add to result folder +--- Experiment result, Energy consumed = 70.21932151401353 +--- Experiment result, Avg Power = 2027.7301611933613 +--- Experiment result, Total Workload = 1.16384e+12 +--- Experiment result, Energy Efficiency = 6.03342e-11 +--- Adding result to summary file +--- Starting cc information : 0 +--- Ending cc information : 0 +--- The file /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/summary.csv exists we just appending the result to the file +--- Experiments performed on configuration 404000-2-2. +--- Observing a pause betwenn experiment; pause duration : 180 seconds; starting at 05Oct22_08_38_34 +--- Performing experiments on configuration 404000-2-2 +--- Cleaning the tmp expermiment folder : /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- Second step : verifying the battery level +--- Verifying the battery level +--- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe +--- Current battery level : 50 +Current battery level: OKAY +--- Third step calibrating phone core frequency +--- Resetting all frequency configurations + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu5/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor +--- Frequency level of core 0 is 4 +--- Modifying the governor of core 0 to set the default value +--- Modifying the governor of core 0 +--- Frequency level of core 1 is 0 +--- Exact frequency of core 1: 0 +--- Modifying the governor of core 1 +--- Modifying the the current frequency of core 1 with frequency 0 +--- Frequency level of core 2 is 4 +--- Modifying the governor of core 2 to set the default value +--- Modifying the governor of core 2 +--- Frequency level of core 3 is 0 +--- Exact frequency of core 3: 0 +--- Modifying the governor of core 3 +--- Modifying the the current frequency of core 3 with frequency 0 +--- Frequency level of core 4 is 0 +--- Exact frequency of core 4: 0 +--- Modifying the governor of core 4 +--- Modifying the the current frequency of core 4 with frequency 0 +--- Frequency level of core 5 is 0 +--- Exact frequency of core 5: 0 +--- Modifying the governor of core 5 +--- Modifying the the current frequency of core 5 with frequency 0 +--- Frequency level of core 6 is 2 +--- Exact frequency of core 6: 1478400 +--- Modifying the governor of core 6 +--- Modifying the the current frequency of core 6 with frequency 1478400 +--- Frequency level of core 7 is 2 +--- Exact frequency of core 7: 1766400 +--- Modifying the governor of core 7 +--- Modifying the the current frequency of core 7 with frequency 1766400 +--- Calibrating Monsoon power meter, please wait for 10 seconds... +powermeter script : --- Inside the monsoon_power_meter, arg function: 1 +powermeter script : calibration duration = 10 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 50000 + returning 50000 samples after experiments +powermeter script : Power meter calibration okay +--- Monsoon power meter Calibrated +--- starting the benchmarking app +## writing the configuration inside the phone file + --- Removing file /sdcard/experiments_automatization +rm '/sdcard/experiments_automatization/current_configuration.txt' +rm '/sdcard/experiments_automatization/experiment_duration.txt' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ended' +rmdir '/sdcard/experiments_automatization/app_output_folder' +rmdir '/sdcard/experiments_automatization' + --- Clearing the logcat + --- Creating file /sdcard/experiments_automatization +----- Uninstalling experiment app +Success +----- Installing experiment app +Performing Streamed Install +Success +------ Giving rights to experiment app +----- Starting experiment app +Starting: Intent { cmp=com.opportunistask.scheduling.benchmarking_app_to_test_big_cores/.MainActivity } +adb command : ps -A | grep com.opportunistask.scheduling.benchmarking_app_to_test_big_cores + ----- Experiment app started with pid: 9917 +---- waiting for benchmarking app thread to be pinned and to be ready +--- frequency level of core 0 is 4 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 4 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of cores to occupy = 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 4 +--- Now threads are running and the phone is ready to be sampled with the power meter \n--- Threads pids +Thread_0_ready_for_sampling +Thread_1_ready_for_sampling +Thread_2_ready_for_sampling +Thread_3_ready_for_sampling +--- Printing cc_info beginning datas (for the samsung galaxy s8) + --- Starting power meter sampling for about 600 seconds +--- Sampling with the Monsoon power meter +powermeter script : --- Inside the monsoon_power_meter, arg function: 2 +powermeter script : Experiment duration = 600 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 3000000 + returning 3000000 samples after experiments +powermeter script : Total nomber of sample measured : 3000000 +powermeter script : Computing powermeter summary result + Number of samples = 3000000 +powermeter script : We computed the energy on 600 samples +powermeter script : average_power = 2041.2885979375426 +powermeter script : average_power with numpy arrays = 2041.28859793728 +powermeter script : Summary Result = time (s): 602.7757713794708 +Ins Current (mA):417.2329328131905 +Samples: 3000000 +Consumed Energy (mAs): 253721.12830314256 +Consumed Energy (mAh): 70.47809119531738 +Consumed Energy (mWs): 1224901.7396407397 +Consumed Energy (mWh): 340.25048323353883 +Avg power (mW): 2041.2885979375426 +Avg Current (mA): 422.75332193226546 +Avg Voltage (V): 4.828557203542454 +Exp Batt Life (hrs for 1000mAh battery): NOT COMPUTED +--- Monsoon power meter sampling is finished ! + --- experiment folder path /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- frequency level of core 0 is 4 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 4 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of threads normally started = 4 +--- Number of thread ended: 4 +--- Now threads are stopped, getting the cc_info_level for samsung +--- Copying thread results locally +command /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe pull /sdcard/experiments_automatization/app_output_folder C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder </dev/null +/sdcard/experiments_automatization/app_output_folder/: 8 files pulled, 0 skipped. 0.0 MB/s (1809 bytes in 0.044s) +saving the logcat file to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder -/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder- +--- Parsing result from /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/raw_result.txt +--- Getting exact configuration with frequency +--- Configuration with frequencies = [1804801- 0- 1804801- 0- 0- 0- 1478400- 1766400] +--- Getting the powermeter summary +--- Powermeter summary: +time (s): 602.7757713794708 +Ins Current (mA):417.2329328131905 +Samples: 3000000 +Consumed Energy (mAs): 253721.12830314256 +Consumed Energy (mAh): 70.47809119531738 +Consumed Energy (mWs): 1224901.7396407397 +Consumed Energy (mWh): 340.25048323353883 +Avg power (mW): 2041.2885979375426 +Avg Current (mA): 422.75332193226546 +Avg Voltage (V): 4.828557203542454 + +--- Getting the total energy consumed of the google pixel +--- Energy consumed = 70.47809119531738 +--- Starting cc_info = 0 +--- Ending cc_info = 0 +--- Getting the average power +--- Avg Power = 2041.2885979375426 +--- Printing the total threads summary +--- Thread results +Thread : 0 - ThreadProcess id: 9943 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 06:58:21 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 07:08:21 +0100 - Duration: 600023 seconds +Real workload: 4.994528594750566E10 - Integer reached: 185352 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 9944 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 06:58:21 +0100 +Core id: 2 +Ending time: Mon, 20 Dec 2021 07:08:22 +0100 - Duration: 600021 seconds +Real workload: 4.9483799862112656E10 - Integer reached: 184529 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 9945 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 06:58:21 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 07:08:21 +0100 - Duration: 600006 seconds +Real workload: 4.8541249570903357E11 - Integer reached: 552482 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 9946 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 06:58:21 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 07:08:21 +0100 - Duration: 600005 seconds +Real workload: 5.83597306316288E11 - Integer reached: 603687 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +--- Counting the total workload command : print_total_workload /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder app_output_folder 4,0,4,0,0,0,2,2 /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first +--- Total workload : 1.16844e+12 +--- Getting energy efficiency +--- Energy efficiency: 6.03181e-11 +--- Building what we will add to the total result file command +------ + (build_configuration_raw_result 404000-2-2 4,0,4,0,0,0,2,2 [1804801- 0- 1804801- 0- 0- 0- 1478400- 1766400] time (s): 602.7757713794708 +Ins Current (mA):417.2329328131905 +Samples: 3000000 +Consumed Energy (mAs): 253721.12830314256 +Consumed Energy (mAh): 70.47809119531738 +Consumed Energy (mWs): 1224901.7396407397 +Consumed Energy (mWh): 340.25048323353883 +Avg power (mW): 2041.2885979375426 +Avg Current (mA): 422.75332193226546 +Avg Voltage (V): 4.828557203542454 + Thread : 0 - ThreadProcess id: 9943 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 06:58:21 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 07:08:21 +0100 - Duration: 600023 seconds +Real workload: 4.994528594750566E10 - Integer reached: 185352 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 9944 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 06:58:21 +0100 +Core id: 2 +Ending time: Mon, 20 Dec 2021 07:08:22 +0100 - Duration: 600021 seconds +Real workload: 4.9483799862112656E10 - Integer reached: 184529 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 9945 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 06:58:21 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 07:08:21 +0100 - Duration: 600006 seconds +Real workload: 4.8541249570903357E11 - Integer reached: 552482 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 9946 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 06:58:21 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 07:08:21 +0100 - Duration: 600005 seconds +Real workload: 5.83597306316288E11 - Integer reached: 603687 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + 70.47809119531738 1.16844e+12 6.03181e-11 0 0 +------ + +--- Final result to print to File + -------------------------------------------------------------------------------- + +++++ +++++ +++++ Configuration Description +-------------------------------------------------------------------------------- +Configuration: 404000-2-2 +phone format: 4,0,4,0,0,0,2,2 +Exact values of frequencies: [1804801- 0- 1804801- 0- 0- 0- 1478400- 1766400] + +Power meter results +------------------------------------------------------------ +time (s): 602.7757713794708 +Ins Current (mA):417.2329328131905 +Samples: 3000000 +Consumed Energy (mAs): 253721.12830314256 +Consumed Energy (mAh): 70.47809119531738 +Consumed Energy (mWs): 1224901.7396407397 +Consumed Energy (mWh): 340.25048323353883 +Avg power (mW): 2041.2885979375426 +Avg Current (mA): 422.75332193226546 +Avg Voltage (V): 4.828557203542454 + +Threads results +------------------------------------------------------------ +Thread : 0 - ThreadProcess id: 9943 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 06:58:21 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 07:08:21 +0100 - Duration: 600023 seconds +Real workload: 4.994528594750566E10 - Integer reached: 185352 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 9944 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 06:58:21 +0100 +Core id: 2 +Ending time: Mon, 20 Dec 2021 07:08:22 +0100 - Duration: 600021 seconds +Real workload: 4.9483799862112656E10 - Integer reached: 184529 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 9945 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 06:58:21 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 07:08:21 +0100 - Duration: 600006 seconds +Real workload: 4.8541249570903357E11 - Integer reached: 552482 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 9946 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 06:58:21 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 07:08:21 +0100 - Duration: 600005 seconds +Real workload: 5.83597306316288E11 - Integer reached: 603687 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +Expermiment results +------------------------------------------------------------ +Energy Consumed (mAh): 70.47809119531738 +Workload: 1.16844e+12 +Energy efficiency: 6.03181e-11 +-------------------------------------------------------------------------------- + + +--- Writing to the total result file +--- Removing previous tested configuration tmp_output folder +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_08_41_36/app_output_folder/all_workloads.txt' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_08_41_36/app_output_folder/Thread_0_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_08_41_36/app_output_folder/Thread_0_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_08_41_36/app_output_folder/Thread_1_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_08_41_36/app_output_folder/Thread_1_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_08_41_36/app_output_folder/Thread_2_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_08_41_36/app_output_folder/Thread_2_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_08_41_36/app_output_folder/Thread_3_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_08_41_36/app_output_folder/Thread_3_ready_for_sampling' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_08_41_36/app_output_folder' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_08_41_36/configuration_mesurement.csv' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_08_41_36/energy_power_workload_energyByWorkload_ccInfo' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_08_41_36/logcat_output' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_08_41_36/powermeter_summary.txt' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_08_41_36' +--- Moving the current experiment tmp_folder to the output result folder +writing a temporary file for the main script with format energy_power_workload_energyByWorkload_ccInfo +--- Obtaining experiment summary result to add to result folder +--- Experiment result, Energy consumed = 70.47809119531738 +--- Experiment result, Avg Power = 2041.2885979375426 +--- Experiment result, Total Workload = 1.16844e+12 +--- Experiment result, Energy Efficiency = 6.03181e-11 +--- Adding result to summary file +--- Starting cc information : 0 +--- Ending cc information : 0 +--- The file /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/summary.csv exists we just appending the result to the file +--- Experiments performed on configuration 404000-2-2. +--- Observing a pause betwenn experiment; pause duration : 180 seconds; starting at 05Oct22_08_54_22 +--- Performing experiments on configuration 404000-2-2 +--- Cleaning the tmp expermiment folder : /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- Second step : verifying the battery level +--- Verifying the battery level +--- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe +--- Current battery level : 50 +Current battery level: OKAY +--- Third step calibrating phone core frequency +--- Resetting all frequency configurations + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu5/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor +--- Frequency level of core 0 is 4 +--- Modifying the governor of core 0 to set the default value +--- Modifying the governor of core 0 +--- Frequency level of core 1 is 0 +--- Exact frequency of core 1: 0 +--- Modifying the governor of core 1 +--- Modifying the the current frequency of core 1 with frequency 0 +--- Frequency level of core 2 is 4 +--- Modifying the governor of core 2 to set the default value +--- Modifying the governor of core 2 +--- Frequency level of core 3 is 0 +--- Exact frequency of core 3: 0 +--- Modifying the governor of core 3 +--- Modifying the the current frequency of core 3 with frequency 0 +--- Frequency level of core 4 is 0 +--- Exact frequency of core 4: 0 +--- Modifying the governor of core 4 +--- Modifying the the current frequency of core 4 with frequency 0 +--- Frequency level of core 5 is 0 +--- Exact frequency of core 5: 0 +--- Modifying the governor of core 5 +--- Modifying the the current frequency of core 5 with frequency 0 +--- Frequency level of core 6 is 2 +--- Exact frequency of core 6: 1478400 +--- Modifying the governor of core 6 +--- Modifying the the current frequency of core 6 with frequency 1478400 +--- Frequency level of core 7 is 2 +--- Exact frequency of core 7: 1766400 +--- Modifying the governor of core 7 +--- Modifying the the current frequency of core 7 with frequency 1766400 +--- Calibrating Monsoon power meter, please wait for 10 seconds... +powermeter script : --- Inside the monsoon_power_meter, arg function: 1 +powermeter script : calibration duration = 10 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 50000 + returning 50000 samples after experiments +powermeter script : Power meter calibration okay +--- Monsoon power meter Calibrated +--- starting the benchmarking app +## writing the configuration inside the phone file + --- Removing file /sdcard/experiments_automatization +rm '/sdcard/experiments_automatization/current_configuration.txt' +rm '/sdcard/experiments_automatization/experiment_duration.txt' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ended' +rmdir '/sdcard/experiments_automatization/app_output_folder' +rmdir '/sdcard/experiments_automatization' + --- Clearing the logcat + --- Creating file /sdcard/experiments_automatization +----- Uninstalling experiment app +Success +----- Installing experiment app +Performing Streamed Install +Success +------ Giving rights to experiment app +----- Starting experiment app +Starting: Intent { cmp=com.opportunistask.scheduling.benchmarking_app_to_test_big_cores/.MainActivity } +adb command : ps -A | grep com.opportunistask.scheduling.benchmarking_app_to_test_big_cores + ----- Experiment app started with pid: 10947 +---- waiting for benchmarking app thread to be pinned and to be ready +--- frequency level of core 0 is 4 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 4 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of cores to occupy = 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 4 +--- Now threads are running and the phone is ready to be sampled with the power meter \n--- Threads pids +Thread_0_ready_for_sampling +Thread_1_ready_for_sampling +Thread_2_ready_for_sampling +Thread_3_ready_for_sampling +--- Printing cc_info beginning datas (for the samsung galaxy s8) + --- Starting power meter sampling for about 600 seconds +--- Sampling with the Monsoon power meter +powermeter script : --- Inside the monsoon_power_meter, arg function: 2 +powermeter script : Experiment duration = 600 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 3000000 + returning 3000000 samples after experiments +powermeter script : Total nomber of sample measured : 3000000 +powermeter script : Computing powermeter summary result + Number of samples = 3000000 +powermeter script : We computed the energy on 600 samples +powermeter script : average_power = 2043.40051894525 +powermeter script : average_power with numpy arrays = 2043.4005189450577 +powermeter script : Summary Result = time (s): 601.7688162326813 +Ins Current (mA):419.6274255849211 +Samples: 3000000 +Consumed Energy (mAs): 253437.91986010404 +Consumed Energy (mAh): 70.39942218336223 +Consumed Energy (mWs): 1223492.5532899566 +Consumed Energy (mWh): 339.85904258054353 +Avg power (mW): 2043.40051894525 +Avg Current (mA): 423.2253028589628 +Avg Voltage (V): 4.828162458959125 +Exp Batt Life (hrs for 1000mAh battery): NOT COMPUTED +--- Monsoon power meter sampling is finished ! + --- experiment folder path /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- frequency level of core 0 is 4 +--- frequency level of core 1 is 0 +--- frequency level of core 2 is 4 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of threads normally started = 4 +--- Number of thread ended: 4 +--- Now threads are stopped, getting the cc_info_level for samsung +--- Copying thread results locally +command /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe pull /sdcard/experiments_automatization/app_output_folder C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder </dev/null +/sdcard/experiments_automatization/app_output_folder/: 8 files pulled, 0 skipped. 0.0 MB/s (1816 bytes in 0.063s) +saving the logcat file to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder -/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder- +--- Parsing result from /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/raw_result.txt +--- Getting exact configuration with frequency +--- Configuration with frequencies = [1804801- 0- 1804801- 0- 0- 0- 1478400- 1766400] +--- Getting the powermeter summary +--- Powermeter summary: +time (s): 601.7688162326813 +Ins Current (mA):419.6274255849211 +Samples: 3000000 +Consumed Energy (mAs): 253437.91986010404 +Consumed Energy (mAh): 70.39942218336223 +Consumed Energy (mWs): 1223492.5532899566 +Consumed Energy (mWh): 339.85904258054353 +Avg power (mW): 2043.40051894525 +Avg Current (mA): 423.2253028589628 +Avg Voltage (V): 4.828162458959125 + +--- Getting the total energy consumed of the google pixel +--- Energy consumed = 70.39942218336223 +--- Starting cc_info = 0 +--- Ending cc_info = 0 +--- Getting the average power +--- Avg Power = 2043.40051894525 +--- Printing the total threads summary +--- Thread results +Thread : 0 - ThreadProcess id: 10972 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 07:14:09 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 07:24:09 +0100 - Duration: 600018 seconds +Real workload: 4.947429075275023E10 - Integer reached: 184512 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 10973 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 07:14:09 +0100 +Core id: 2 +Ending time: Mon, 20 Dec 2021 07:24:09 +0100 - Duration: 600004 seconds +Real workload: 5.000207350117586E10 - Integer reached: 185453 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 10975 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 07:14:09 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 07:24:10 +0100 - Duration: 600005 seconds +Real workload: 4.848574767530272E11 - Integer reached: 552178 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 10976 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 07:14:09 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 07:24:10 +0100 - Duration: 600007 seconds +Real workload: 5.819752845098958E11 - Integer reached: 602879 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +--- Counting the total workload command : print_total_workload /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder app_output_folder 4,0,4,0,0,0,2,2 /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first +--- Total workload : 1.16631e+12 +--- Getting energy efficiency +--- Energy efficiency: 6.03608e-11 +--- Building what we will add to the total result file command +------ + (build_configuration_raw_result 404000-2-2 4,0,4,0,0,0,2,2 [1804801- 0- 1804801- 0- 0- 0- 1478400- 1766400] time (s): 601.7688162326813 +Ins Current (mA):419.6274255849211 +Samples: 3000000 +Consumed Energy (mAs): 253437.91986010404 +Consumed Energy (mAh): 70.39942218336223 +Consumed Energy (mWs): 1223492.5532899566 +Consumed Energy (mWh): 339.85904258054353 +Avg power (mW): 2043.40051894525 +Avg Current (mA): 423.2253028589628 +Avg Voltage (V): 4.828162458959125 + Thread : 0 - ThreadProcess id: 10972 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 07:14:09 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 07:24:09 +0100 - Duration: 600018 seconds +Real workload: 4.947429075275023E10 - Integer reached: 184512 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 10973 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 07:14:09 +0100 +Core id: 2 +Ending time: Mon, 20 Dec 2021 07:24:09 +0100 - Duration: 600004 seconds +Real workload: 5.000207350117586E10 - Integer reached: 185453 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 10975 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 07:14:09 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 07:24:10 +0100 - Duration: 600005 seconds +Real workload: 4.848574767530272E11 - Integer reached: 552178 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 10976 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 07:14:09 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 07:24:10 +0100 - Duration: 600007 seconds +Real workload: 5.819752845098958E11 - Integer reached: 602879 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + 70.39942218336223 1.16631e+12 6.03608e-11 0 0 +------ + +--- Final result to print to File + -------------------------------------------------------------------------------- + +++++ +++++ +++++ Configuration Description +-------------------------------------------------------------------------------- +Configuration: 404000-2-2 +phone format: 4,0,4,0,0,0,2,2 +Exact values of frequencies: [1804801- 0- 1804801- 0- 0- 0- 1478400- 1766400] + +Power meter results +------------------------------------------------------------ +time (s): 601.7688162326813 +Ins Current (mA):419.6274255849211 +Samples: 3000000 +Consumed Energy (mAs): 253437.91986010404 +Consumed Energy (mAh): 70.39942218336223 +Consumed Energy (mWs): 1223492.5532899566 +Consumed Energy (mWh): 339.85904258054353 +Avg power (mW): 2043.40051894525 +Avg Current (mA): 423.2253028589628 +Avg Voltage (V): 4.828162458959125 + +Threads results +------------------------------------------------------------ +Thread : 0 - ThreadProcess id: 10972 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 07:14:09 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 07:24:09 +0100 - Duration: 600018 seconds +Real workload: 4.947429075275023E10 - Integer reached: 184512 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 10973 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 07:14:09 +0100 +Core id: 2 +Ending time: Mon, 20 Dec 2021 07:24:09 +0100 - Duration: 600004 seconds +Real workload: 5.000207350117586E10 - Integer reached: 185453 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 10975 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 07:14:09 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 07:24:10 +0100 - Duration: 600005 seconds +Real workload: 4.848574767530272E11 - Integer reached: 552178 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 10976 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 07:14:09 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 07:24:10 +0100 - Duration: 600007 seconds +Real workload: 5.819752845098958E11 - Integer reached: 602879 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +Expermiment results +------------------------------------------------------------ +Energy Consumed (mAh): 70.39942218336223 +Workload: 1.16631e+12 +Energy efficiency: 6.03608e-11 +-------------------------------------------------------------------------------- + + +--- Writing to the total result file +--- Removing previous tested configuration tmp_output folder +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_08_57_24/app_output_folder/all_workloads.txt' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_08_57_24/app_output_folder/Thread_0_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_08_57_24/app_output_folder/Thread_0_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_08_57_24/app_output_folder/Thread_1_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_08_57_24/app_output_folder/Thread_1_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_08_57_24/app_output_folder/Thread_2_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_08_57_24/app_output_folder/Thread_2_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_08_57_24/app_output_folder/Thread_3_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_08_57_24/app_output_folder/Thread_3_ready_for_sampling' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_08_57_24/app_output_folder' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_08_57_24/configuration_mesurement.csv' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_08_57_24/energy_power_workload_energyByWorkload_ccInfo' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_08_57_24/logcat_output' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_08_57_24/powermeter_summary.txt' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_08_57_24' +--- Moving the current experiment tmp_folder to the output result folder +writing a temporary file for the main script with format energy_power_workload_energyByWorkload_ccInfo +--- Obtaining experiment summary result to add to result folder +--- Experiment result, Energy consumed = 70.39942218336223 +--- Experiment result, Avg Power = 2043.40051894525 +--- Experiment result, Total Workload = 1.16631e+12 +--- Experiment result, Energy Efficiency = 6.03608e-11 +--- Adding result to summary file +--- Starting cc information : 0 +--- Ending cc information : 0 +--- The file /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/summary.csv exists we just appending the result to the file +--- Experiments performed on configuration 404000-2-2. +--- Observing a pause betwenn experiment; pause duration : 180 seconds; starting at 05Oct22_09_10_09 +--- Performing experiments on configuration 440000-2-2 +--- Cleaning the tmp expermiment folder : /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- Second step : verifying the battery level +--- Verifying the battery level +--- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe +--- Current battery level : 50 +Current battery level: OKAY +--- Third step calibrating phone core frequency +--- Resetting all frequency configurations + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu5/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor +--- Frequency level of core 0 is 4 +--- Modifying the governor of core 0 to set the default value +--- Modifying the governor of core 0 +--- Frequency level of core 1 is 4 +--- Modifying the governor of core 1 to set the default value +--- Modifying the governor of core 1 +--- Frequency level of core 2 is 0 +--- Exact frequency of core 2: 0 +--- Modifying the governor of core 2 +--- Modifying the the current frequency of core 2 with frequency 0 +--- Frequency level of core 3 is 0 +--- Exact frequency of core 3: 0 +--- Modifying the governor of core 3 +--- Modifying the the current frequency of core 3 with frequency 0 +--- Frequency level of core 4 is 0 +--- Exact frequency of core 4: 0 +--- Modifying the governor of core 4 +--- Modifying the the current frequency of core 4 with frequency 0 +--- Frequency level of core 5 is 0 +--- Exact frequency of core 5: 0 +--- Modifying the governor of core 5 +--- Modifying the the current frequency of core 5 with frequency 0 +--- Frequency level of core 6 is 2 +--- Exact frequency of core 6: 1478400 +--- Modifying the governor of core 6 +--- Modifying the the current frequency of core 6 with frequency 1478400 +--- Frequency level of core 7 is 2 +--- Exact frequency of core 7: 1766400 +--- Modifying the governor of core 7 +--- Modifying the the current frequency of core 7 with frequency 1766400 +--- Calibrating Monsoon power meter, please wait for 10 seconds... +powermeter script : --- Inside the monsoon_power_meter, arg function: 1 +powermeter script : calibration duration = 10 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 50000 + returning 50000 samples after experiments +powermeter script : Power meter calibration okay +--- Monsoon power meter Calibrated +--- starting the benchmarking app +## writing the configuration inside the phone file + --- Removing file /sdcard/experiments_automatization +rm '/sdcard/experiments_automatization/current_configuration.txt' +rm '/sdcard/experiments_automatization/experiment_duration.txt' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ended' +rmdir '/sdcard/experiments_automatization/app_output_folder' +rmdir '/sdcard/experiments_automatization' + --- Clearing the logcat + --- Creating file /sdcard/experiments_automatization +----- Uninstalling experiment app +Success +----- Installing experiment app +Performing Streamed Install +Success +------ Giving rights to experiment app +----- Starting experiment app +Starting: Intent { cmp=com.opportunistask.scheduling.benchmarking_app_to_test_big_cores/.MainActivity } +adb command : ps -A | grep com.opportunistask.scheduling.benchmarking_app_to_test_big_cores + ----- Experiment app started with pid: 12342 +---- waiting for benchmarking app thread to be pinned and to be ready +--- frequency level of core 0 is 4 +--- frequency level of core 1 is 4 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of cores to occupy = 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 4 +--- Now threads are running and the phone is ready to be sampled with the power meter \n--- Threads pids +Thread_0_ready_for_sampling +Thread_1_ready_for_sampling +Thread_2_ready_for_sampling +Thread_3_ready_for_sampling +--- Printing cc_info beginning datas (for the samsung galaxy s8) + --- Starting power meter sampling for about 600 seconds +--- Sampling with the Monsoon power meter +powermeter script : --- Inside the monsoon_power_meter, arg function: 2 +powermeter script : Experiment duration = 600 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 3000000 + returning 3000000 samples after experiments +powermeter script : Total nomber of sample measured : 3000000 +powermeter script : Computing powermeter summary result + Number of samples = 3000000 +powermeter script : We computed the energy on 600 samples +powermeter script : average_power = 2052.5285537658833 +powermeter script : average_power with numpy arrays = 2052.5285537654745 +powermeter script : Summary Result = time (s): 601.7892825603485 +Ins Current (mA):425.9195861207198 +Samples: 3000000 +Consumed Energy (mAs): 254413.50690470706 +Consumed Energy (mAh): 70.67041858464086 +Consumed Energy (mWs): 1227930.307993441 +Consumed Energy (mWh): 341.0917522204002 +Avg power (mW): 2052.5285537658833 +Avg Current (mA): 425.2427055689892 +Avg Voltage (V): 4.826722544292747 +Exp Batt Life (hrs for 1000mAh battery): NOT COMPUTED +--- Monsoon power meter sampling is finished ! + --- experiment folder path /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- frequency level of core 0 is 4 +--- frequency level of core 1 is 4 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of threads normally started = 4 +--- Number of thread ended: 4 +--- Now threads are stopped, getting the cc_info_level for samsung +--- Copying thread results locally +command /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe pull /sdcard/experiments_automatization/app_output_folder C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder </dev/null +/sdcard/experiments_automatization/app_output_folder/: 8 files pulled, 0 skipped. 0.0 MB/s (1816 bytes in 0.059s) +saving the logcat file to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder -/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder- +--- Parsing result from /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/raw_result.txt +--- Getting exact configuration with frequency +--- Configuration with frequencies = [1804801- 1804801- 0- 0- 0- 0- 1478400- 1766400] +--- Getting the powermeter summary +--- Powermeter summary: +time (s): 601.7892825603485 +Ins Current (mA):425.9195861207198 +Samples: 3000000 +Consumed Energy (mAs): 254413.50690470706 +Consumed Energy (mAh): 70.67041858464086 +Consumed Energy (mWs): 1227930.307993441 +Consumed Energy (mWh): 341.0917522204002 +Avg power (mW): 2052.5285537658833 +Avg Current (mA): 425.2427055689892 +Avg Voltage (V): 4.826722544292747 + +--- Getting the total energy consumed of the google pixel +--- Energy consumed = 70.67041858464086 +--- Starting cc_info = 0 +--- Ending cc_info = 0 +--- Getting the average power +--- Avg Power = 2052.5285537658833 +--- Printing the total threads summary +--- Thread results +Thread : 0 - ThreadProcess id: 12367 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 07:29:56 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 07:39:56 +0100 - Duration: 600029 seconds +Real workload: 4.970501332109056E10 - Integer reached: 184924 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 12368 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 07:29:56 +0100 +Core id: 1 +Ending time: Mon, 20 Dec 2021 07:39:56 +0100 - Duration: 600024 seconds +Real workload: 4.918667082310133E10 - Integer reached: 183997 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 12370 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 07:29:56 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 07:39:56 +0100 - Duration: 600002 seconds +Real workload: 4.857485878522543E11 - Integer reached: 552666 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 12372 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 07:29:56 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 07:39:56 +0100 - Duration: 600008 seconds +Real workload: 5.821117013148646E11 - Integer reached: 602947 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +--- Counting the total workload command : print_total_workload /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder app_output_folder 4,4,0,0,0,0,2,2 /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first +--- Total workload : 1.16675e+12 +--- Getting energy efficiency +--- Energy efficiency: 6.05703e-11 +--- Building what we will add to the total result file command +------ + (build_configuration_raw_result 440000-2-2 4,4,0,0,0,0,2,2 [1804801- 1804801- 0- 0- 0- 0- 1478400- 1766400] time (s): 601.7892825603485 +Ins Current (mA):425.9195861207198 +Samples: 3000000 +Consumed Energy (mAs): 254413.50690470706 +Consumed Energy (mAh): 70.67041858464086 +Consumed Energy (mWs): 1227930.307993441 +Consumed Energy (mWh): 341.0917522204002 +Avg power (mW): 2052.5285537658833 +Avg Current (mA): 425.2427055689892 +Avg Voltage (V): 4.826722544292747 + Thread : 0 - ThreadProcess id: 12367 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 07:29:56 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 07:39:56 +0100 - Duration: 600029 seconds +Real workload: 4.970501332109056E10 - Integer reached: 184924 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 12368 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 07:29:56 +0100 +Core id: 1 +Ending time: Mon, 20 Dec 2021 07:39:56 +0100 - Duration: 600024 seconds +Real workload: 4.918667082310133E10 - Integer reached: 183997 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 12370 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 07:29:56 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 07:39:56 +0100 - Duration: 600002 seconds +Real workload: 4.857485878522543E11 - Integer reached: 552666 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 12372 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 07:29:56 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 07:39:56 +0100 - Duration: 600008 seconds +Real workload: 5.821117013148646E11 - Integer reached: 602947 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + 70.67041858464086 1.16675e+12 6.05703e-11 0 0 +------ + +--- Final result to print to File + -------------------------------------------------------------------------------- + +++++ +++++ +++++ Configuration Description +-------------------------------------------------------------------------------- +Configuration: 440000-2-2 +phone format: 4,4,0,0,0,0,2,2 +Exact values of frequencies: [1804801- 1804801- 0- 0- 0- 0- 1478400- 1766400] + +Power meter results +------------------------------------------------------------ +time (s): 601.7892825603485 +Ins Current (mA):425.9195861207198 +Samples: 3000000 +Consumed Energy (mAs): 254413.50690470706 +Consumed Energy (mAh): 70.67041858464086 +Consumed Energy (mWs): 1227930.307993441 +Consumed Energy (mWh): 341.0917522204002 +Avg power (mW): 2052.5285537658833 +Avg Current (mA): 425.2427055689892 +Avg Voltage (V): 4.826722544292747 + +Threads results +------------------------------------------------------------ +Thread : 0 - ThreadProcess id: 12367 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 07:29:56 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 07:39:56 +0100 - Duration: 600029 seconds +Real workload: 4.970501332109056E10 - Integer reached: 184924 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 12368 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 07:29:56 +0100 +Core id: 1 +Ending time: Mon, 20 Dec 2021 07:39:56 +0100 - Duration: 600024 seconds +Real workload: 4.918667082310133E10 - Integer reached: 183997 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 12370 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 07:29:56 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 07:39:56 +0100 - Duration: 600002 seconds +Real workload: 4.857485878522543E11 - Integer reached: 552666 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 12372 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 07:29:56 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 07:39:56 +0100 - Duration: 600008 seconds +Real workload: 5.821117013148646E11 - Integer reached: 602947 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +Expermiment results +------------------------------------------------------------ +Energy Consumed (mAh): 70.67041858464086 +Workload: 1.16675e+12 +Energy efficiency: 6.05703e-11 +-------------------------------------------------------------------------------- + + +--- Writing to the total result file +--- Removing previous tested configuration tmp_output folder +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_09_13_11/app_output_folder/all_workloads.txt' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_09_13_11/app_output_folder/Thread_0_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_09_13_11/app_output_folder/Thread_0_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_09_13_11/app_output_folder/Thread_1_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_09_13_11/app_output_folder/Thread_1_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_09_13_11/app_output_folder/Thread_2_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_09_13_11/app_output_folder/Thread_2_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_09_13_11/app_output_folder/Thread_3_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_09_13_11/app_output_folder/Thread_3_ready_for_sampling' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_09_13_11/app_output_folder' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_09_13_11/configuration_mesurement.csv' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_09_13_11/energy_power_workload_energyByWorkload_ccInfo' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_09_13_11/logcat_output' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_09_13_11/powermeter_summary.txt' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_09_13_11' +--- Moving the current experiment tmp_folder to the output result folder +writing a temporary file for the main script with format energy_power_workload_energyByWorkload_ccInfo +--- Obtaining experiment summary result to add to result folder +--- Experiment result, Energy consumed = 70.67041858464086 +--- Experiment result, Avg Power = 2052.5285537658833 +--- Experiment result, Total Workload = 1.16675e+12 +--- Experiment result, Energy Efficiency = 6.05703e-11 +--- Adding result to summary file +--- Starting cc information : 0 +--- Ending cc information : 0 +--- The file /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/summary.csv exists we just appending the result to the file +--- Experiments performed on configuration 440000-2-2. +--- Observing a pause betwenn experiment; pause duration : 180 seconds; starting at 05Oct22_09_25_56 +--- Performing experiments on configuration 440000-2-2 +--- Cleaning the tmp expermiment folder : /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- Second step : verifying the battery level +--- Verifying the battery level +--- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe +--- Current battery level : 50 +Current battery level: OKAY +--- Third step calibrating phone core frequency +--- Resetting all frequency configurations + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu5/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor +--- Frequency level of core 0 is 4 +--- Modifying the governor of core 0 to set the default value +--- Modifying the governor of core 0 +--- Frequency level of core 1 is 4 +--- Modifying the governor of core 1 to set the default value +--- Modifying the governor of core 1 +--- Frequency level of core 2 is 0 +--- Exact frequency of core 2: 0 +--- Modifying the governor of core 2 +--- Modifying the the current frequency of core 2 with frequency 0 +--- Frequency level of core 3 is 0 +--- Exact frequency of core 3: 0 +--- Modifying the governor of core 3 +--- Modifying the the current frequency of core 3 with frequency 0 +--- Frequency level of core 4 is 0 +--- Exact frequency of core 4: 0 +--- Modifying the governor of core 4 +--- Modifying the the current frequency of core 4 with frequency 0 +--- Frequency level of core 5 is 0 +--- Exact frequency of core 5: 0 +--- Modifying the governor of core 5 +--- Modifying the the current frequency of core 5 with frequency 0 +--- Frequency level of core 6 is 2 +--- Exact frequency of core 6: 1478400 +--- Modifying the governor of core 6 +--- Modifying the the current frequency of core 6 with frequency 1478400 +--- Frequency level of core 7 is 2 +--- Exact frequency of core 7: 1766400 +--- Modifying the governor of core 7 +--- Modifying the the current frequency of core 7 with frequency 1766400 +--- Calibrating Monsoon power meter, please wait for 10 seconds... +powermeter script : --- Inside the monsoon_power_meter, arg function: 1 +powermeter script : calibration duration = 10 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 50000 + returning 50000 samples after experiments +powermeter script : Power meter calibration okay +--- Monsoon power meter Calibrated +--- starting the benchmarking app +## writing the configuration inside the phone file + --- Removing file /sdcard/experiments_automatization +rm '/sdcard/experiments_automatization/current_configuration.txt' +rm '/sdcard/experiments_automatization/experiment_duration.txt' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ended' +rmdir '/sdcard/experiments_automatization/app_output_folder' +rmdir '/sdcard/experiments_automatization' + --- Clearing the logcat + --- Creating file /sdcard/experiments_automatization +----- Uninstalling experiment app +Success +----- Installing experiment app +Performing Streamed Install +Success +------ Giving rights to experiment app +----- Starting experiment app +Starting: Intent { cmp=com.opportunistask.scheduling.benchmarking_app_to_test_big_cores/.MainActivity } +adb command : ps -A | grep com.opportunistask.scheduling.benchmarking_app_to_test_big_cores + ----- Experiment app started with pid: 13389 +---- waiting for benchmarking app thread to be pinned and to be ready +--- frequency level of core 0 is 4 +--- frequency level of core 1 is 4 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of cores to occupy = 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 4 +--- Now threads are running and the phone is ready to be sampled with the power meter \n--- Threads pids +Thread_0_ready_for_sampling +Thread_1_ready_for_sampling +Thread_2_ready_for_sampling +Thread_3_ready_for_sampling +--- Printing cc_info beginning datas (for the samsung galaxy s8) + --- Starting power meter sampling for about 600 seconds +--- Sampling with the Monsoon power meter +powermeter script : --- Inside the monsoon_power_meter, arg function: 2 +powermeter script : Experiment duration = 600 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 3000000 + returning 3000000 samples after experiments +powermeter script : Total nomber of sample measured : 3000000 +powermeter script : Computing powermeter summary result + Number of samples = 3000000 +powermeter script : We computed the energy on 600 samples +powermeter script : average_power = 2029.0009301595778 +powermeter script : average_power with numpy arrays = 2029.0009301591938 +powermeter script : Summary Result = time (s): 607.1866631507874 +Ins Current (mA):429.47650285714286 +Samples: 3000000 +Consumed Energy (mAs): 250703.4664277789 +Consumed Energy (mAh): 69.63985178549414 +Consumed Energy (mWs): 1211080.1508679835 +Consumed Energy (mWh): 336.4111530188843 +Avg power (mW): 2029.0009301595778 +Avg Current (mA): 420.03094059865833 +Avg Voltage (V): 4.830598734625834 +Exp Batt Life (hrs for 1000mAh battery): NOT COMPUTED +--- Monsoon power meter sampling is finished ! + --- experiment folder path /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- frequency level of core 0 is 4 +--- frequency level of core 1 is 4 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of threads normally started = 4 +--- Number of thread ended: 4 +--- Now threads are stopped, getting the cc_info_level for samsung +--- Copying thread results locally +command /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe pull /sdcard/experiments_automatization/app_output_folder C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder </dev/null +/sdcard/experiments_automatization/app_output_folder/: 8 files pulled, 0 skipped. 0.0 MB/s (1817 bytes in 0.062s) +saving the logcat file to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder -/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder- +--- Parsing result from /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/raw_result.txt +--- Getting exact configuration with frequency +--- Configuration with frequencies = [1804801- 1804801- 0- 0- 0- 0- 1478400- 1766400] +--- Getting the powermeter summary +--- Powermeter summary: +time (s): 607.1866631507874 +Ins Current (mA):429.47650285714286 +Samples: 3000000 +Consumed Energy (mAs): 250703.4664277789 +Consumed Energy (mAh): 69.63985178549414 +Consumed Energy (mWs): 1211080.1508679835 +Consumed Energy (mWh): 336.4111530188843 +Avg power (mW): 2029.0009301595778 +Avg Current (mA): 420.03094059865833 +Avg Voltage (V): 4.830598734625834 + +--- Getting the total energy consumed of the google pixel +--- Energy consumed = 69.63985178549414 +--- Starting cc_info = 0 +--- Ending cc_info = 0 +--- Getting the average power +--- Avg Power = 2029.0009301595778 +--- Printing the total threads summary +--- Thread results +Thread : 0 - ThreadProcess id: 13414 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 07:45:43 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 07:55:44 +0100 - Duration: 600026 seconds +Real workload: 4.915489062165233E10 - Integer reached: 183940 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 13415 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 07:45:43 +0100 +Core id: 1 +Ending time: Mon, 20 Dec 2021 07:55:44 +0100 - Duration: 600018 seconds +Real workload: 5.0024572871578896E10 - Integer reached: 185493 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 13416 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 07:45:43 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 07:55:43 +0100 - Duration: 600002 seconds +Real workload: 4.840182701595105E11 - Integer reached: 551718 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 13417 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 07:45:43 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 07:55:44 +0100 - Duration: 600001 seconds +Real workload: 5.819993567898629E11 - Integer reached: 602891 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +--- Counting the total workload command : print_total_workload /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder app_output_folder 4,4,0,0,0,0,2,2 /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first +--- Total workload : 1.1652e+12 +--- Getting energy efficiency +--- Energy efficiency: 5.97664e-11 +--- Building what we will add to the total result file command +------ + (build_configuration_raw_result 440000-2-2 4,4,0,0,0,0,2,2 [1804801- 1804801- 0- 0- 0- 0- 1478400- 1766400] time (s): 607.1866631507874 +Ins Current (mA):429.47650285714286 +Samples: 3000000 +Consumed Energy (mAs): 250703.4664277789 +Consumed Energy (mAh): 69.63985178549414 +Consumed Energy (mWs): 1211080.1508679835 +Consumed Energy (mWh): 336.4111530188843 +Avg power (mW): 2029.0009301595778 +Avg Current (mA): 420.03094059865833 +Avg Voltage (V): 4.830598734625834 + Thread : 0 - ThreadProcess id: 13414 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 07:45:43 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 07:55:44 +0100 - Duration: 600026 seconds +Real workload: 4.915489062165233E10 - Integer reached: 183940 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 13415 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 07:45:43 +0100 +Core id: 1 +Ending time: Mon, 20 Dec 2021 07:55:44 +0100 - Duration: 600018 seconds +Real workload: 5.0024572871578896E10 - Integer reached: 185493 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 13416 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 07:45:43 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 07:55:43 +0100 - Duration: 600002 seconds +Real workload: 4.840182701595105E11 - Integer reached: 551718 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 13417 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 07:45:43 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 07:55:44 +0100 - Duration: 600001 seconds +Real workload: 5.819993567898629E11 - Integer reached: 602891 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + 69.63985178549414 1.1652e+12 5.97664e-11 0 0 +------ + +--- Final result to print to File + -------------------------------------------------------------------------------- + +++++ +++++ +++++ Configuration Description +-------------------------------------------------------------------------------- +Configuration: 440000-2-2 +phone format: 4,4,0,0,0,0,2,2 +Exact values of frequencies: [1804801- 1804801- 0- 0- 0- 0- 1478400- 1766400] + +Power meter results +------------------------------------------------------------ +time (s): 607.1866631507874 +Ins Current (mA):429.47650285714286 +Samples: 3000000 +Consumed Energy (mAs): 250703.4664277789 +Consumed Energy (mAh): 69.63985178549414 +Consumed Energy (mWs): 1211080.1508679835 +Consumed Energy (mWh): 336.4111530188843 +Avg power (mW): 2029.0009301595778 +Avg Current (mA): 420.03094059865833 +Avg Voltage (V): 4.830598734625834 + +Threads results +------------------------------------------------------------ +Thread : 0 - ThreadProcess id: 13414 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 07:45:43 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 07:55:44 +0100 - Duration: 600026 seconds +Real workload: 4.915489062165233E10 - Integer reached: 183940 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 13415 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 07:45:43 +0100 +Core id: 1 +Ending time: Mon, 20 Dec 2021 07:55:44 +0100 - Duration: 600018 seconds +Real workload: 5.0024572871578896E10 - Integer reached: 185493 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 13416 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 07:45:43 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 07:55:43 +0100 - Duration: 600002 seconds +Real workload: 4.840182701595105E11 - Integer reached: 551718 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 13417 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 07:45:43 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 07:55:44 +0100 - Duration: 600001 seconds +Real workload: 5.819993567898629E11 - Integer reached: 602891 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 50 % - End: 50 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +Expermiment results +------------------------------------------------------------ +Energy Consumed (mAh): 69.63985178549414 +Workload: 1.1652e+12 +Energy efficiency: 5.97664e-11 +-------------------------------------------------------------------------------- + + +--- Writing to the total result file +--- Removing previous tested configuration tmp_output folder +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_09_28_58/app_output_folder/all_workloads.txt' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_09_28_58/app_output_folder/Thread_0_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_09_28_58/app_output_folder/Thread_0_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_09_28_58/app_output_folder/Thread_1_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_09_28_58/app_output_folder/Thread_1_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_09_28_58/app_output_folder/Thread_2_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_09_28_58/app_output_folder/Thread_2_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_09_28_58/app_output_folder/Thread_3_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_09_28_58/app_output_folder/Thread_3_ready_for_sampling' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_09_28_58/app_output_folder' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_09_28_58/configuration_mesurement.csv' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_09_28_58/energy_power_workload_energyByWorkload_ccInfo' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_09_28_58/logcat_output' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_09_28_58/powermeter_summary.txt' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_09_28_58' +--- Moving the current experiment tmp_folder to the output result folder +writing a temporary file for the main script with format energy_power_workload_energyByWorkload_ccInfo +--- Obtaining experiment summary result to add to result folder +--- Experiment result, Energy consumed = 69.63985178549414 +--- Experiment result, Avg Power = 2029.0009301595778 +--- Experiment result, Total Workload = 1.1652e+12 +--- Experiment result, Energy Efficiency = 5.97664e-11 +--- Adding result to summary file +--- Starting cc information : 0 +--- Ending cc information : 0 +--- The file /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/summary.csv exists we just appending the result to the file +--- Experiments performed on configuration 440000-2-2. +--- Observing a pause betwenn experiment; pause duration : 180 seconds; starting at 05Oct22_09_41_49 +--- Performing experiments on configuration 440000-2-2 +--- Cleaning the tmp expermiment folder : /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- Second step : verifying the battery level +--- Verifying the battery level +--- Getting current battery level, adb command path: /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe +--- Current battery level : 50 +Current battery level: OKAY +--- Third step calibrating phone core frequency +--- Resetting all frequency configurations + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu5/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor + -- Command used : echo schedutil > /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor +--- Frequency level of core 0 is 4 +--- Modifying the governor of core 0 to set the default value +--- Modifying the governor of core 0 +--- Frequency level of core 1 is 4 +--- Modifying the governor of core 1 to set the default value +--- Modifying the governor of core 1 +--- Frequency level of core 2 is 0 +--- Exact frequency of core 2: 0 +--- Modifying the governor of core 2 +--- Modifying the the current frequency of core 2 with frequency 0 +--- Frequency level of core 3 is 0 +--- Exact frequency of core 3: 0 +--- Modifying the governor of core 3 +--- Modifying the the current frequency of core 3 with frequency 0 +--- Frequency level of core 4 is 0 +--- Exact frequency of core 4: 0 +--- Modifying the governor of core 4 +--- Modifying the the current frequency of core 4 with frequency 0 +--- Frequency level of core 5 is 0 +--- Exact frequency of core 5: 0 +--- Modifying the governor of core 5 +--- Modifying the the current frequency of core 5 with frequency 0 +--- Frequency level of core 6 is 2 +--- Exact frequency of core 6: 1478400 +--- Modifying the governor of core 6 +--- Modifying the the current frequency of core 6 with frequency 1478400 +--- Frequency level of core 7 is 2 +--- Exact frequency of core 7: 1766400 +--- Modifying the governor of core 7 +--- Modifying the the current frequency of core 7 with frequency 1766400 +--- Calibrating Monsoon power meter, please wait for 10 seconds... +powermeter script : --- Inside the monsoon_power_meter, arg function: 1 +powermeter script : calibration duration = 10 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 50000 + returning 50000 samples after experiments +powermeter script : Power meter calibration okay +--- Monsoon power meter Calibrated +--- starting the benchmarking app +## writing the configuration inside the phone file + --- Removing file /sdcard/experiments_automatization +rm '/sdcard/experiments_automatization/current_configuration.txt' +rm '/sdcard/experiments_automatization/experiment_duration.txt' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ready_for_sampling' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_2_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_0_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_3_ended' +rm '/sdcard/experiments_automatization/app_output_folder/Thread_1_ended' +rmdir '/sdcard/experiments_automatization/app_output_folder' +rmdir '/sdcard/experiments_automatization' + --- Clearing the logcat + --- Creating file /sdcard/experiments_automatization +----- Uninstalling experiment app +Success +----- Installing experiment app +Performing Streamed Install +Success +------ Giving rights to experiment app +----- Starting experiment app +Starting: Intent { cmp=com.opportunistask.scheduling.benchmarking_app_to_test_big_cores/.MainActivity } +adb command : ps -A | grep com.opportunistask.scheduling.benchmarking_app_to_test_big_cores + ----- Experiment app started with pid: 14409 +---- waiting for benchmarking app thread to be pinned and to be ready +--- frequency level of core 0 is 4 +--- frequency level of core 1 is 4 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of cores to occupy = 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 0 +--- The current number of thread ready to be sambled : 0, still lower than the experiment one : 4 +--- Number of thread in experiment phase : 4 +--- Now threads are running and the phone is ready to be sampled with the power meter \n--- Threads pids +Thread_0_ready_for_sampling +Thread_1_ready_for_sampling +Thread_2_ready_for_sampling +Thread_3_ready_for_sampling +--- Printing cc_info beginning datas (for the samsung galaxy s8) + --- Starting power meter sampling for about 600 seconds +--- Sampling with the Monsoon power meter +powermeter script : --- Inside the monsoon_power_meter, arg function: 2 +powermeter script : Experiment duration = 600 +powermeter script : Creating the Monsoon engine +powermeter script : Creating the Monsoon engine +powermeter script : Configuring channels the Monsoon engine +powermeter script : Configuring output to : C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder\configuration_mesurement.csv +powermeter script : Starting sampling; number of sample = 3000000 + returning 3000000 samples after experiments +powermeter script : Total nomber of sample measured : 3000000 +powermeter script : Computing powermeter summary result + Number of samples = 3000000 +powermeter script : We computed the energy on 600 samples +powermeter script : average_power = 2041.307626748669 +powermeter script : average_power with numpy arrays = 2041.307626748148 +powermeter script : Summary Result = time (s): 603.0631771087646 +Ins Current (mA):431.3593566672254 +Samples: 3000000 +Consumed Energy (mAs): 254052.5554690745 +Consumed Energy (mAh): 70.57015429696514 +Consumed Energy (mWs): 1226218.3049552073 +Consumed Energy (mWh): 340.61619582089094 +Avg power (mW): 2041.307626748669 +Avg Current (mA): 422.7587152634951 +Avg Voltage (V): 4.828540614417309 +Exp Batt Life (hrs for 1000mAh battery): NOT COMPUTED +--- Monsoon power meter sampling is finished ! + --- experiment folder path /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder +--- frequency level of core 0 is 4 +--- frequency level of core 1 is 4 +--- frequency level of core 2 is 0 +--- frequency level of core 3 is 0 +--- frequency level of core 4 is 0 +--- frequency level of core 5 is 0 +--- frequency level of core 6 is 2 +--- frequency level of core 7 is 2 +--- Number of threads normally started = 4 +--- Number of thread ended: 4 +--- Now threads are stopped, getting the cc_info_level for samsung +--- Copying thread results locally +command /mnt/c/Program Files/Android/platform-tools_r33.0.1-windows/platform-tools/adb.exe pull /sdcard/experiments_automatization/app_output_folder C:\Users\lavoi\opportunist_task_on_android\scripts_valuable_files\experiment_automatization\last_tmp_expermiment_folder </dev/null +/sdcard/experiments_automatization/app_output_folder/: 8 files pulled, 0 skipped. 0.0 MB/s (1816 bytes in 0.074s) +saving the logcat file to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder -/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder- +--- Parsing result from /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder to /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/raw_result.txt +--- Getting exact configuration with frequency +--- Configuration with frequencies = [1804801- 1804801- 0- 0- 0- 0- 1478400- 1766400] +--- Getting the powermeter summary +--- Powermeter summary: +time (s): 603.0631771087646 +Ins Current (mA):431.3593566672254 +Samples: 3000000 +Consumed Energy (mAs): 254052.5554690745 +Consumed Energy (mAh): 70.57015429696514 +Consumed Energy (mWs): 1226218.3049552073 +Consumed Energy (mWh): 340.61619582089094 +Avg power (mW): 2041.307626748669 +Avg Current (mA): 422.7587152634951 +Avg Voltage (V): 4.828540614417309 + +--- Getting the total energy consumed of the google pixel +--- Energy consumed = 70.57015429696514 +--- Starting cc_info = 0 +--- Ending cc_info = 0 +--- Getting the average power +--- Avg Power = 2041.307626748669 +--- Printing the total threads summary +--- Thread results +Thread : 0 - ThreadProcess id: 14435 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 08:01:36 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 08:11:36 +0100 - Duration: 600002 seconds +Real workload: 4.946757902508992E10 - Integer reached: 184500 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 49 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 14436 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 08:01:36 +0100 +Core id: 1 +Ending time: Mon, 20 Dec 2021 08:11:36 +0100 - Duration: 600006 seconds +Real workload: 4.9148758853763756E10 - Integer reached: 183929 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 49 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 14437 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 08:01:36 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 08:11:36 +0100 - Duration: 600004 seconds +Real workload: 4.84638480734093E11 - Integer reached: 552058 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 49 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 14438 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 08:01:36 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 08:11:36 +0100 - Duration: 600002 seconds +Real workload: 5.814698842277755E11 - Integer reached: 602627 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 49 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +--- Counting the total workload command : print_total_workload /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/last_tmp_expermiment_folder app_output_folder 4,4,0,0,0,0,2,2 /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first +--- Total workload : 1.16472e+12 +--- Getting energy efficiency +--- Energy efficiency: 6.05898e-11 +--- Building what we will add to the total result file command +------ + (build_configuration_raw_result 440000-2-2 4,4,0,0,0,0,2,2 [1804801- 1804801- 0- 0- 0- 0- 1478400- 1766400] time (s): 603.0631771087646 +Ins Current (mA):431.3593566672254 +Samples: 3000000 +Consumed Energy (mAs): 254052.5554690745 +Consumed Energy (mAh): 70.57015429696514 +Consumed Energy (mWs): 1226218.3049552073 +Consumed Energy (mWh): 340.61619582089094 +Avg power (mW): 2041.307626748669 +Avg Current (mA): 422.7587152634951 +Avg Voltage (V): 4.828540614417309 + Thread : 0 - ThreadProcess id: 14435 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 08:01:36 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 08:11:36 +0100 - Duration: 600002 seconds +Real workload: 4.946757902508992E10 - Integer reached: 184500 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 49 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 14436 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 08:01:36 +0100 +Core id: 1 +Ending time: Mon, 20 Dec 2021 08:11:36 +0100 - Duration: 600006 seconds +Real workload: 4.9148758853763756E10 - Integer reached: 183929 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 49 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 14437 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 08:01:36 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 08:11:36 +0100 - Duration: 600004 seconds +Real workload: 4.84638480734093E11 - Integer reached: 552058 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 49 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 14438 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 08:01:36 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 08:11:36 +0100 - Duration: 600002 seconds +Real workload: 5.814698842277755E11 - Integer reached: 602627 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 49 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + 70.57015429696514 1.16472e+12 6.05898e-11 0 0 +------ + +--- Final result to print to File + -------------------------------------------------------------------------------- + +++++ +++++ +++++ Configuration Description +-------------------------------------------------------------------------------- +Configuration: 440000-2-2 +phone format: 4,4,0,0,0,0,2,2 +Exact values of frequencies: [1804801- 1804801- 0- 0- 0- 0- 1478400- 1766400] + +Power meter results +------------------------------------------------------------ +time (s): 603.0631771087646 +Ins Current (mA):431.3593566672254 +Samples: 3000000 +Consumed Energy (mAs): 254052.5554690745 +Consumed Energy (mAh): 70.57015429696514 +Consumed Energy (mWs): 1226218.3049552073 +Consumed Energy (mWh): 340.61619582089094 +Avg power (mW): 2041.307626748669 +Avg Current (mA): 422.7587152634951 +Avg Voltage (V): 4.828540614417309 + +Threads results +------------------------------------------------------------ +Thread : 0 - ThreadProcess id: 14435 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 08:01:36 +0100 +Core id: 0 +Ending time: Mon, 20 Dec 2021 08:11:36 +0100 - Duration: 600002 seconds +Real workload: 4.946757902508992E10 - Integer reached: 184500 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 49 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 1 - ThreadProcess id: 14436 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 08:01:36 +0100 +Core id: 1 +Ending time: Mon, 20 Dec 2021 08:11:36 +0100 - Duration: 600006 seconds +Real workload: 4.9148758853763756E10 - Integer reached: 183929 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 49 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 2 - ThreadProcess id: 14437 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 08:01:36 +0100 +Core id: 6 +Ending time: Mon, 20 Dec 2021 08:11:36 +0100 - Duration: 600004 seconds +Real workload: 4.84638480734093E11 - Integer reached: 552058 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 49 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + +Thread : 3 - ThreadProcess id: 14438 +---------------------------------------- +Starting time: Mon, 20 Dec 2021 08:01:36 +0100 +Core id: 7 +Ending time: Mon, 20 Dec 2021 08:11:36 +0100 - Duration: 600002 seconds +Real workload: 5.814698842277755E11 - Integer reached: 602627 - Number of reset = 0 +Battery stats: 0 mAH +Computed Drain: Null +Start: 49 % - End: 49 +Cc_info at the beginning: 0 mAh +Cc_info at the end: 0 mAh +Cc_info variation: 0.0 mAh + + +Expermiment results +------------------------------------------------------------ +Energy Consumed (mAh): 70.57015429696514 +Workload: 1.16472e+12 +Energy efficiency: 6.05898e-11 +-------------------------------------------------------------------------------- + + +--- Writing to the total result file +--- Removing previous tested configuration tmp_output folder +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_09_44_51/app_output_folder/all_workloads.txt' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_09_44_51/app_output_folder/Thread_0_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_09_44_51/app_output_folder/Thread_0_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_09_44_51/app_output_folder/Thread_1_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_09_44_51/app_output_folder/Thread_1_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_09_44_51/app_output_folder/Thread_2_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_09_44_51/app_output_folder/Thread_2_ready_for_sampling' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_09_44_51/app_output_folder/Thread_3_ended' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_09_44_51/app_output_folder/Thread_3_ready_for_sampling' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_09_44_51/app_output_folder' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_09_44_51/configuration_mesurement.csv' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_09_44_51/energy_power_workload_energyByWorkload_ccInfo' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_09_44_51/logcat_output' +removed '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_09_44_51/powermeter_summary.txt' +removed directory '/mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/to_delete_first/last_tmp_expermiment_folder__deleted__on__05Oct22_09_44_51' +--- Moving the current experiment tmp_folder to the output result folder +writing a temporary file for the main script with format energy_power_workload_energyByWorkload_ccInfo +--- Obtaining experiment summary result to add to result folder +--- Experiment result, Energy consumed = 70.57015429696514 +--- Experiment result, Avg Power = 2041.307626748669 +--- Experiment result, Total Workload = 1.16472e+12 +--- Experiment result, Energy Efficiency = 6.05898e-11 +--- Adding result to summary file +--- Starting cc information : 0 +--- Ending cc information : 0 +--- The file /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/output_folder/summary.csv exists we just appending the result to the file +--- Experiments performed on configuration 440000-2-2. +--- Observing a pause betwenn experiment; pause duration : 180 seconds; starting at 05Oct22_09_57_37 diff --git a/experiment_automatization/summary_files_only/summary___05Oct22_10_00_37.csv b/experiment_automatization/summary_files_only/summary___05Oct22_10_00_37.csv new file mode 100755 index 0000000..6c49509 --- /dev/null +++ b/experiment_automatization/summary_files_only/summary___05Oct22_10_00_37.csv @@ -0,0 +1,61 @@ +configurations,generic format,exact frequency,google pixel format,exact frequencies,phone energy,phone power,workload,energy by workload,starting cc_info,ending cc_info +100001-2-2,[1- 0- 0- 0- 0- 1- 2- 0- 0- 2- 0- 0- 0],[576000- 0- 0- 0- 0- 576000- 1478400- 0- 0- 1766400- 0- 0- 0],[1- 0- 0- 0- 0- 1- 2- 2],[576000- 0- 0- 0- 0- 576000- 1478400- 1766400],69.52409009723863,2010.5306198084834,1.16486e+12,5.96845e-11,0,0 +100001-2-2,[1- 0- 0- 0- 0- 1- 2- 0- 0- 2- 0- 0- 0],[576000- 0- 0- 0- 0- 576000- 1478400- 0- 0- 1766400- 0- 0- 0],[1- 0- 0- 0- 0- 1- 2- 2],[576000- 0- 0- 0- 0- 576000- 1478400- 1766400],71.0813570024315,2044.1753729837076,1.16597e+12,6.09633e-11,0,0 +100001-2-2,[1- 0- 0- 0- 0- 1- 2- 0- 0- 2- 0- 0- 0],[576000- 0- 0- 0- 0- 576000- 1478400- 0- 0- 1766400- 0- 0- 0],[1- 0- 0- 0- 0- 1- 2- 2],[576000- 0- 0- 0- 0- 576000- 1478400- 1766400],70.47748663452633,2047.1024914329862,1.1634e+12,6.05789e-11,0,0 +100010-2-2,[1- 0- 0- 0- 1- 0- 2- 0- 0- 2- 0- 0- 0],[576000- 0- 0- 0- 576000- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[1- 0- 0- 0- 1- 0- 2- 2],[576000- 0- 0- 0- 576000- 0- 1478400- 1766400],70.09045877144594,2025.8535423935475,1.16616e+12,6.01036e-11,0,0 +100010-2-2,[1- 0- 0- 0- 1- 0- 2- 0- 0- 2- 0- 0- 0],[576000- 0- 0- 0- 576000- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[1- 0- 0- 0- 1- 0- 2- 2],[576000- 0- 0- 0- 576000- 0- 1478400- 1766400],70.58915136388794,2044.639552517949,1.16179e+12,6.0759e-11,0,0 +100010-2-2,[1- 0- 0- 0- 1- 0- 2- 0- 0- 2- 0- 0- 0],[576000- 0- 0- 0- 576000- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[1- 0- 0- 0- 1- 0- 2- 2],[576000- 0- 0- 0- 576000- 0- 1478400- 1766400],71.30789275413113,2066.2232265127523,1.16209e+12,6.13618e-11,0,0 +100100-2-2,[1- 0- 0- 1- 0- 0- 2- 0- 0- 2- 0- 0- 0],[576000- 0- 0- 576000- 0- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[1- 0- 0- 1- 0- 0- 2- 2],[576000- 0- 0- 576000- 0- 0- 1478400- 1766400],70.742778041012,2045.810308683365,1.16092e+12,6.09368e-11,0,0 +100100-2-2,[1- 0- 0- 1- 0- 0- 2- 0- 0- 2- 0- 0- 0],[576000- 0- 0- 576000- 0- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[1- 0- 0- 1- 0- 0- 2- 2],[576000- 0- 0- 576000- 0- 0- 1478400- 1766400],70.57358750924872,2039.2028466702188,1.16676e+12,6.04868e-11,0,0 +100100-2-2,[1- 0- 0- 1- 0- 0- 2- 0- 0- 2- 0- 0- 0],[576000- 0- 0- 576000- 0- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[1- 0- 0- 1- 0- 0- 2- 2],[576000- 0- 0- 576000- 0- 0- 1478400- 1766400],70.90841487980666,2058.390853686644,1.16526e+12,6.0852e-11,0,0 +101000-2-2,[1- 0- 1- 0- 0- 0- 2- 0- 0- 2- 0- 0- 0],[576000- 0- 576000- 0- 0- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[1- 0- 1- 0- 0- 0- 2- 2],[576000- 0- 576000- 0- 0- 0- 1478400- 1766400],70.73694231384944,2045.2993817629833,1.1597e+12,6.09959e-11,0,0 +101000-2-2,[1- 0- 1- 0- 0- 0- 2- 0- 0- 2- 0- 0- 0],[576000- 0- 576000- 0- 0- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[1- 0- 1- 0- 0- 0- 2- 2],[576000- 0- 576000- 0- 0- 0- 1478400- 1766400],70.87019823828456,2048.0676987469533,1.16559e+12,6.0802e-11,0,0 +101000-2-2,[1- 0- 1- 0- 0- 0- 2- 0- 0- 2- 0- 0- 0],[576000- 0- 576000- 0- 0- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[1- 0- 1- 0- 0- 0- 2- 2],[576000- 0- 576000- 0- 0- 0- 1478400- 1766400],70.66304539864001,2036.9589181838337,1.15984e+12,6.09248e-11,0,0 +110000-2-2,[1- 1- 0- 0- 0- 0- 2- 0- 0- 2- 0- 0- 0],[576000- 576000- 0- 0- 0- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[1- 1- 0- 0- 0- 0- 2- 2],[576000- 576000- 0- 0- 0- 0- 1478400- 1766400],70.11291945420209,2039.9408493051626,1.16528e+12,6.01683e-11,0,0 +110000-2-2,[1- 1- 0- 0- 0- 0- 2- 0- 0- 2- 0- 0- 0],[576000- 576000- 0- 0- 0- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[1- 1- 0- 0- 0- 0- 2- 2],[576000- 576000- 0- 0- 0- 0- 1478400- 1766400],70.4747458234224,2042.5764384831075,1.16484e+12,6.05017e-11,0,0 +110000-2-2,[1- 1- 0- 0- 0- 0- 2- 0- 0- 2- 0- 0- 0],[576000- 576000- 0- 0- 0- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[1- 1- 0- 0- 0- 0- 2- 2],[576000- 576000- 0- 0- 0- 0- 1478400- 1766400],70.35766711410953,2044.605286313954,1.16654e+12,6.03131e-11,0,0 +200002-2-2,[2- 0- 0- 0- 0- 2- 2- 0- 0- 2- 0- 0- 0],[1363200- 0- 0- 0- 0- 1363200- 1478400- 0- 0- 1766400- 0- 0- 0],[2- 0- 0- 0- 0- 2- 2- 2],[1363200- 0- 0- 0- 0- 1363200- 1478400- 1766400],77.96541094759694,2241.7006169502456,1.30714e+12,5.96458e-11,0,0 +200002-2-2,[2- 0- 0- 0- 0- 2- 2- 0- 0- 2- 0- 0- 0],[1363200- 0- 0- 0- 0- 1363200- 1478400- 0- 0- 1766400- 0- 0- 0],[2- 0- 0- 0- 0- 2- 2- 2],[1363200- 0- 0- 0- 0- 1363200- 1478400- 1766400],76.2023086156267,2205.8238875067054,1.3037e+12,5.84508e-11,0,0 +200002-2-2,[2- 0- 0- 0- 0- 2- 2- 0- 0- 2- 0- 0- 0],[1363200- 0- 0- 0- 0- 1363200- 1478400- 0- 0- 1766400- 0- 0- 0],[2- 0- 0- 0- 0- 2- 2- 2],[1363200- 0- 0- 0- 0- 1363200- 1478400- 1766400],76.33647794504182,2209.8674964349125,1.30028e+12,5.87077e-11,0,0 +200020-2-2,[2- 0- 0- 0- 2- 0- 2- 0- 0- 2- 0- 0- 0],[1363200- 0- 0- 0- 1363200- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[2- 0- 0- 0- 2- 0- 2- 2],[1363200- 0- 0- 0- 1363200- 0- 1478400- 1766400],71.64787072655308,2068.1208423500893,1.1655e+12,6.14739e-11,0,0 +200020-2-2,[2- 0- 0- 0- 2- 0- 2- 0- 0- 2- 0- 0- 0],[1363200- 0- 0- 0- 1363200- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[2- 0- 0- 0- 2- 0- 2- 2],[1363200- 0- 0- 0- 1363200- 0- 1478400- 1766400],70.59299246340379,2045.8237679247684,1.16159e+12,6.07727e-11,0,0 +200020-2-2,[2- 0- 0- 0- 2- 0- 2- 0- 0- 2- 0- 0- 0],[1363200- 0- 0- 0- 1363200- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[2- 0- 0- 0- 2- 0- 2- 2],[1363200- 0- 0- 0- 1363200- 0- 1478400- 1766400],70.62997330800367,2049.0452915045375,1.1623e+12,6.07674e-11,0,0 +200200-2-2,[2- 0- 0- 2- 0- 0- 2- 0- 0- 2- 0- 0- 0],[1363200- 0- 0- 1363200- 0- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[2- 0- 0- 2- 0- 0- 2- 2],[1363200- 0- 0- 1363200- 0- 0- 1478400- 1766400],71.59418143367965,2072.612065766956,1.1596e+12,6.17404e-11,0,0 +200200-2-2,[2- 0- 0- 2- 0- 0- 2- 0- 0- 2- 0- 0- 0],[1363200- 0- 0- 1363200- 0- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[2- 0- 0- 2- 0- 0- 2- 2],[1363200- 0- 0- 1363200- 0- 0- 1478400- 1766400],70.63924455966055,2044.390496935238,1.16729e+12,6.05156e-11,0,0 +200200-2-2,[2- 0- 0- 2- 0- 0- 2- 0- 0- 2- 0- 0- 0],[1363200- 0- 0- 1363200- 0- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[2- 0- 0- 2- 0- 0- 2- 2],[1363200- 0- 0- 1363200- 0- 0- 1478400- 1766400],70.53403938823975,2036.4875102013627,1.16602e+12,6.04913e-11,0,0 +202000-2-2,[2- 0- 2- 0- 0- 0- 2- 0- 0- 2- 0- 0- 0],[1363200- 0- 1363200- 0- 0- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[2- 0- 2- 0- 0- 0- 2- 2],[1363200- 0- 1363200- 0- 0- 0- 1478400- 1766400],71.49423895337264,2067.3332738680415,1.16766e+12,6.12286e-11,0,0 +202000-2-2,[2- 0- 2- 0- 0- 0- 2- 0- 0- 2- 0- 0- 0],[1363200- 0- 1363200- 0- 0- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[2- 0- 2- 0- 0- 0- 2- 2],[1363200- 0- 1363200- 0- 0- 0- 1478400- 1766400],70.60359391424801,2039.7950003512576,1.16196e+12,6.07625e-11,0,0 +202000-2-2,[2- 0- 2- 0- 0- 0- 2- 0- 0- 2- 0- 0- 0],[1363200- 0- 1363200- 0- 0- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[2- 0- 2- 0- 0- 0- 2- 2],[1363200- 0- 1363200- 0- 0- 0- 1478400- 1766400],70.52715331333978,2041.9087895449654,1.16666e+12,6.04522e-11,0,0 +220000-2-2,[2- 2- 0- 0- 0- 0- 2- 0- 0- 2- 0- 0- 0],[1363200- 1363200- 0- 0- 0- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[2- 2- 0- 0- 0- 0- 2- 2],[1363200- 1363200- 0- 0- 0- 0- 1478400- 1766400],71.18060224267974,2055.878949962645,1.1649e+12,6.11045e-11,0,0 +220000-2-2,[2- 2- 0- 0- 0- 0- 2- 0- 0- 2- 0- 0- 0],[1363200- 1363200- 0- 0- 0- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[2- 2- 0- 0- 0- 0- 2- 2],[1363200- 1363200- 0- 0- 0- 0- 1478400- 1766400],70.32392311813075,2043.2558518515564,1.1648e+12,6.03742e-11,0,0 +220000-2-2,[2- 2- 0- 0- 0- 0- 2- 0- 0- 2- 0- 0- 0],[1363200- 1363200- 0- 0- 0- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[2- 2- 0- 0- 0- 0- 2- 2],[1363200- 1363200- 0- 0- 0- 0- 1478400- 1766400],70.05135389771442,2041.985457529188,1.16536e+12,6.01113e-11,0,0 +300003-2-2,[3- 0- 0- 0- 0- 3- 2- 0- 0- 2- 0- 0- 0],[1804800- 0- 0- 0- 0- 1804800- 1478400- 0- 0- 1766400- 0- 0- 0],[3- 0- 0- 0- 0- 3- 2- 2],[1804800- 0- 0- 0- 0- 1804800- 1478400- 1766400],86.59637719434818,2465.3920553203334,1.37849e+12,6.28197e-11,0,0 +300003-2-2,[3- 0- 0- 0- 0- 3- 2- 0- 0- 2- 0- 0- 0],[1804800- 0- 0- 0- 0- 1804800- 1478400- 0- 0- 1766400- 0- 0- 0],[3- 0- 0- 0- 0- 3- 2- 2],[1804800- 0- 0- 0- 0- 1804800- 1478400- 1766400],87.6265526980771,2488.241950885876,1.38083e+12,6.34593e-11,0,0 +300003-2-2,[3- 0- 0- 0- 0- 3- 2- 0- 0- 2- 0- 0- 0],[1804800- 0- 0- 0- 0- 1804800- 1478400- 0- 0- 1766400- 0- 0- 0],[3- 0- 0- 0- 0- 3- 2- 2],[1804800- 0- 0- 0- 0- 1804800- 1478400- 1766400],87.08870790047656,2482.78103690326,1.38693e+12,6.27924e-11,0,0 +300030-2-2,[3- 0- 0- 0- 3- 0- 2- 0- 0- 2- 0- 0- 0],[1804800- 0- 0- 0- 1804800- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[3- 0- 0- 0- 3- 0- 2- 2],[1804800- 0- 0- 0- 1804800- 0- 1478400- 1766400],70.45738299722346,2048.4362673134306,1.16052e+12,6.07119e-11,0,0 +300030-2-2,[3- 0- 0- 0- 3- 0- 2- 0- 0- 2- 0- 0- 0],[1804800- 0- 0- 0- 1804800- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[3- 0- 0- 0- 3- 0- 2- 2],[1804800- 0- 0- 0- 1804800- 0- 1478400- 1766400],71.52806365064377,2067.1708190595846,1.16605e+12,6.13422e-11,0,0 +300030-2-2,[3- 0- 0- 0- 3- 0- 2- 0- 0- 2- 0- 0- 0],[1804800- 0- 0- 0- 1804800- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[3- 0- 0- 0- 3- 0- 2- 2],[1804800- 0- 0- 0- 1804800- 0- 1478400- 1766400],70.36461641518005,2034.3834686908758,1.15538e+12,6.09017e-11,0,0 +300300-2-2,[3- 0- 0- 3- 0- 0- 2- 0- 0- 2- 0- 0- 0],[1804800- 0- 0- 1804800- 0- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[3- 0- 0- 3- 0- 0- 2- 2],[1804800- 0- 0- 1804800- 0- 0- 1478400- 1766400],70.54538704058632,2043.532655655454,1.16631e+12,6.0486e-11,0,0 +300300-2-2,[3- 0- 0- 3- 0- 0- 2- 0- 0- 2- 0- 0- 0],[1804800- 0- 0- 1804800- 0- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[3- 0- 0- 3- 0- 0- 2- 2],[1804800- 0- 0- 1804800- 0- 0- 1478400- 1766400],71.57822660827733,2065.543430131354,1.16213e+12,6.15923e-11,0,0 +300300-2-2,[3- 0- 0- 3- 0- 0- 2- 0- 0- 2- 0- 0- 0],[1804800- 0- 0- 1804800- 0- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[3- 0- 0- 3- 0- 0- 2- 2],[1804800- 0- 0- 1804800- 0- 0- 1478400- 1766400],70.7170408596214,2041.7395112120066,1.1624e+12,6.08371e-11,0,0 +303000-2-2,[3- 0- 3- 0- 0- 0- 2- 0- 0- 2- 0- 0- 0],[1804800- 0- 1804800- 0- 0- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[3- 0- 3- 0- 0- 0- 2- 2],[1804800- 0- 1804800- 0- 0- 0- 1478400- 1766400],70.12091351608217,2035.687582112515,1.15985e+12,6.04569e-11,0,0 +303000-2-2,[3- 0- 3- 0- 0- 0- 2- 0- 0- 2- 0- 0- 0],[1804800- 0- 1804800- 0- 0- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[3- 0- 3- 0- 0- 0- 2- 2],[1804800- 0- 1804800- 0- 0- 0- 1478400- 1766400],69.80058323418798,2026.1095988610796,1.16617e+12,5.98546e-11,0,0 +303000-2-2,[3- 0- 3- 0- 0- 0- 2- 0- 0- 2- 0- 0- 0],[1804800- 0- 1804800- 0- 0- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[3- 0- 3- 0- 0- 0- 2- 2],[1804800- 0- 1804800- 0- 0- 0- 1478400- 1766400],70.54568641754493,2046.3684465840151,1.16557e+12,6.05246e-11,0,0 +330000-2-2,[3- 3- 0- 0- 0- 0- 2- 0- 0- 2- 0- 0- 0],[1804800- 1804800- 0- 0- 0- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[3- 3- 0- 0- 0- 0- 2- 2],[1804800- 1804800- 0- 0- 0- 0- 1478400- 1766400],70.33175275813268,2037.9039312812663,1.16495e+12,6.03732e-11,0,0 +330000-2-2,[3- 3- 0- 0- 0- 0- 2- 0- 0- 2- 0- 0- 0],[1804800- 1804800- 0- 0- 0- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[3- 3- 0- 0- 0- 0- 2- 2],[1804800- 1804800- 0- 0- 0- 0- 1478400- 1766400],70.08575253785934,2033.4880545000324,1.16477e+12,6.01713e-11,0,0 +330000-2-2,[3- 3- 0- 0- 0- 0- 2- 0- 0- 2- 0- 0- 0],[1804800- 1804800- 0- 0- 0- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[3- 3- 0- 0- 0- 0- 2- 2],[1804800- 1804800- 0- 0- 0- 0- 1478400- 1766400],69.76401393868103,2031.2454594455432,1.16414e+12,5.99275e-11,0,0 +400004-2-2,[4- 0- 0- 0- 0- 4- 2- 0- 0- 2- 0- 0- 0],[1804801- 0- 0- 0- 0- 1804801- 1478400- 0- 0- 1766400- 0- 0- 0],[4- 0- 0- 0- 0- 4- 2- 2],[1804801- 0- 0- 0- 0- 1804801- 1478400- 1766400],86.25868546652029,2462.1389961649397,1.3864e+12,6.22177e-11,0,0 +400004-2-2,[4- 0- 0- 0- 0- 4- 2- 0- 0- 2- 0- 0- 0],[1804801- 0- 0- 0- 0- 1804801- 1478400- 0- 0- 1766400- 0- 0- 0],[4- 0- 0- 0- 0- 4- 2- 2],[1804801- 0- 0- 0- 0- 1804801- 1478400- 1766400],86.36279724758774,2476.1397976969893,1.38406e+12,6.23982e-11,0,0 +400004-2-2,[4- 0- 0- 0- 0- 4- 2- 0- 0- 2- 0- 0- 0],[1804801- 0- 0- 0- 0- 1804801- 1478400- 0- 0- 1766400- 0- 0- 0],[4- 0- 0- 0- 0- 4- 2- 2],[1804801- 0- 0- 0- 0- 1804801- 1478400- 1766400],87.80479279136466,2499.208880026985,1.38557e+12,6.33709e-11,0,0 +400040-2-2,[4- 0- 0- 0- 4- 0- 2- 0- 0- 2- 0- 0- 0],[1804801- 0- 0- 0- 1804801- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[4- 0- 0- 0- 4- 0- 2- 2],[1804801- 0- 0- 0- 1804801- 0- 1478400- 1766400],70.19794533916524,2047.4429470934535,1.1589e+12,6.05729e-11,0,0 +400040-2-2,[4- 0- 0- 0- 4- 0- 2- 0- 0- 2- 0- 0- 0],[1804801- 0- 0- 0- 1804801- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[4- 0- 0- 0- 4- 0- 2- 2],[1804801- 0- 0- 0- 1804801- 0- 1478400- 1766400],70.4697908210477,2041.7807257688014,1.16049e+12,6.07242e-11,0,0 +400040-2-2,[4- 0- 0- 0- 4- 0- 2- 0- 0- 2- 0- 0- 0],[1804801- 0- 0- 0- 1804801- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[4- 0- 0- 0- 4- 0- 2- 2],[1804801- 0- 0- 0- 1804801- 0- 1478400- 1766400],71.17628500575493,2063.139183197156,1.16604e+12,6.1041e-11,0,0 +400400-2-2,[4- 0- 0- 4- 0- 0- 2- 0- 0- 2- 0- 0- 0],[1804801- 0- 0- 1804801- 0- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[4- 0- 0- 4- 0- 0- 2- 2],[1804801- 0- 0- 1804801- 0- 0- 1478400- 1766400],70.49037916333526,2046.384180555702,1.16542e+12,6.0485e-11,0,0 +400400-2-2,[4- 0- 0- 4- 0- 0- 2- 0- 0- 2- 0- 0- 0],[1804801- 0- 0- 1804801- 0- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[4- 0- 0- 4- 0- 0- 2- 2],[1804801- 0- 0- 1804801- 0- 0- 1478400- 1766400],69.9851801502394,2021.8984860743753,1.16164e+12,6.02469e-11,0,0 +400400-2-2,[4- 0- 0- 4- 0- 0- 2- 0- 0- 2- 0- 0- 0],[1804801- 0- 0- 1804801- 0- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[4- 0- 0- 4- 0- 0- 2- 2],[1804801- 0- 0- 1804801- 0- 0- 1478400- 1766400],71.47653617449954,2064.2426598360594,1.16684e+12,6.12565e-11,0,0 +404000-2-2,[4- 0- 4- 0- 0- 0- 2- 0- 0- 2- 0- 0- 0],[1804801- 0- 1804801- 0- 0- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[4- 0- 4- 0- 0- 0- 2- 2],[1804801- 0- 1804801- 0- 0- 0- 1478400- 1766400],70.21932151401353,2027.7301611933613,1.16384e+12,6.03342e-11,0,0 +404000-2-2,[4- 0- 4- 0- 0- 0- 2- 0- 0- 2- 0- 0- 0],[1804801- 0- 1804801- 0- 0- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[4- 0- 4- 0- 0- 0- 2- 2],[1804801- 0- 1804801- 0- 0- 0- 1478400- 1766400],70.47809119531738,2041.2885979375426,1.16844e+12,6.03181e-11,0,0 +404000-2-2,[4- 0- 4- 0- 0- 0- 2- 0- 0- 2- 0- 0- 0],[1804801- 0- 1804801- 0- 0- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[4- 0- 4- 0- 0- 0- 2- 2],[1804801- 0- 1804801- 0- 0- 0- 1478400- 1766400],70.39942218336223,2043.40051894525,1.16631e+12,6.03608e-11,0,0 +440000-2-2,[4- 4- 0- 0- 0- 0- 2- 0- 0- 2- 0- 0- 0],[1804801- 1804801- 0- 0- 0- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[4- 4- 0- 0- 0- 0- 2- 2],[1804801- 1804801- 0- 0- 0- 0- 1478400- 1766400],70.67041858464086,2052.5285537658833,1.16675e+12,6.05703e-11,0,0 +440000-2-2,[4- 4- 0- 0- 0- 0- 2- 0- 0- 2- 0- 0- 0],[1804801- 1804801- 0- 0- 0- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[4- 4- 0- 0- 0- 0- 2- 2],[1804801- 1804801- 0- 0- 0- 0- 1478400- 1766400],69.63985178549414,2029.0009301595778,1.1652e+12,5.97664e-11,0,0 +440000-2-2,[4- 4- 0- 0- 0- 0- 2- 0- 0- 2- 0- 0- 0],[1804801- 1804801- 0- 0- 0- 0- 1478400- 0- 0- 1766400- 0- 0- 0],[4- 4- 0- 0- 0- 0- 2- 2],[1804801- 1804801- 0- 0- 0- 0- 1478400- 1766400],70.57015429696514,2041.307626748669,1.16472e+12,6.05898e-11,0,0 diff --git a/kernel_ridge_linear_model/.~lock.global_lesson_learned_as_table.ods# b/kernel_ridge_linear_model/.~lock.global_lesson_learned_as_table.ods# new file mode 100755 index 0000000..400aee1 --- /dev/null +++ b/kernel_ridge_linear_model/.~lock.global_lesson_learned_as_table.ods# @@ -0,0 +1 @@ +,DESKTOP-D49H2V3/lavoi,DESKTOP-D49H2V3,06.10.2022 16:51,file:///C:/Users/lavoi/AppData/Roaming/LibreOffice/4; \ No newline at end of file diff --git a/kernel_ridge_linear_model/.~lock.local_lesson_learned_as_table.ods# b/kernel_ridge_linear_model/.~lock.local_lesson_learned_as_table.ods# new file mode 100755 index 0000000..51d5c32 --- /dev/null +++ b/kernel_ridge_linear_model/.~lock.local_lesson_learned_as_table.ods# @@ -0,0 +1 @@ +,DESKTOP-D49H2V3/lavoi,DESKTOP-D49H2V3,06.10.2022 16:41,file:///C:/Users/lavoi/AppData/Roaming/LibreOffice/4; \ No newline at end of file diff --git a/kernel_ridge_linear_model/__pycache__/utils_functions.cpython-38.pyc b/kernel_ridge_linear_model/__pycache__/utils_functions.cpython-38.pyc index 68a65893630f520dd532eb4b398cc693344e643b..28e8bdbec46527af33bc623dacaa09de8f0653fb 100755 GIT binary patch delta 5990 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 delta 5134 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 E4`3OEfdBvi diff --git a/kernel_ridge_linear_model/best_R2_exploration_summary.csv b/kernel_ridge_linear_model/best_R2_exploration_summary.csv index 2898609..6a5c2f6 100755 --- a/kernel_ridge_linear_model/best_R2_exploration_summary.csv +++ b/kernel_ridge_linear_model/best_R2_exploration_summary.csv @@ -266,3 +266,11 @@ google_pixel_4a_5g,google_pixel_4a_5g_format,False,False,1000,0.01000000099,Fals google_pixel_4a_5g,google_pixel_4a_5g_format,False,False,1000,0.01000000099,False,----,0,1000000000.0,1000000000.0,1e-09,1000,0.1,100,False,-0.06746042254849738,10,10,base_Y_F_N_on_socket, google_pixel_4a_5g,google_pixel_4a_5g_format,False,False,1000,0.01000000099,False,----,0,1000000000.0,1000000000.0,1e-09,1000,0.1,100,False,0.9144810248408353,10,10,base_Y_F, google_pixel_4a_5g,google_pixel_4a_5g_format,False,False,1000,0.01000000099,False,----,0,1000000000.0,1000000000.0,1e-09,1000,0.1,100,False,0.9144810248408353,10,10,base_Y_F, +google_pixel_4a_5g,google_pixel_4a_5g_format,False,False,1000,0.01000000099,False,----,0,1000000000.0,1000000000.0,1e-09,1000,0.1,100,False,0.9144810248408353,10,10,base_Y_F, +google_pixel_4a_5g,google_pixel_4a_5g_format,False,False,1000,0.01000000099,False,----,0,1000000000.0,1000000000.0,1e-09,1000,0.1,100,False,0.08732726483169995,10,10,base_Y_F, +google_pixel_4a_5g,google_pixel_4a_5g_format,False,False,1000,0.01000000099,False,----,0,1000000000.0,1000000000.0,1e-09,1000,0.1,100,False,0.08732726483169995,10,10,base_Y_F, +google_pixel_4a_5g,google_pixel_4a_5g_format,False,False,1000,0.01000000099,False,----,0,1000000000.0,1000000000.0,1e-09,1000,0.1,100,False,0.08732726483169995,10,10,base_Y_F, +google_pixel_4a_5g,google_pixel_4a_5g_format,False,False,1000,0.01000000099,False,----,0,1000000000.0,1000000000.0,1e-09,1000,0.1,100,False,0.37264686557961324,10,10,base_Y_F, +google_pixel_4a_5g,google_pixel_4a_5g_format,False,False,1000,0.01000000099,False,----,0,1000000000.0,1000000000.0,1e-09,1000,0.1,100,False,-10.2751904394227,10,10,base_Y_F, +google_pixel_4a_5g,google_pixel_4a_5g_format,False,False,1000,0.01000000099,False,----,0,1000000000.0,1000000000.0,1e-09,1000,0.1,100,False,-10.2751904394227,10,10,base_Y_F, +google_pixel_4a_5g,google_pixel_4a_5g_format,False,False,1000,0.01000000099,False,----,0,1000000000.0,1000000000.0,1e-09,1000,0.1,100,False,-8.621844617992203,10,10,base_Y_F, diff --git a/kernel_ridge_linear_model/global_lesson_learned_as_table.ods b/kernel_ridge_linear_model/global_lesson_learned_as_table.ods index 349af7e8b6fde9d0622ddc828d76a29713e24b2e..786c8b19f581260084cb5dd2df7b794f852f197f 100755 GIT binary patch delta 28372 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 P*RZ!0Y=@3s|NQ%Z8^P0I delta 27754 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 Aga7~l diff --git a/kernel_ridge_linear_model/images_resuming_lesson_learned/googles_pixel_heuristics_after.graphml b/kernel_ridge_linear_model/images_resuming_lesson_learned/googles_pixel_heuristics_after.graphml index f9c2388..d2f57bb 100755 --- a/kernel_ridge_linear_model/images_resuming_lesson_learned/googles_pixel_heuristics_after.graphml +++ b/kernel_ridge_linear_model/images_resuming_lesson_learned/googles_pixel_heuristics_after.graphml @@ -862,8 +862,8 @@ frequency Level<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelMod <data key="d6"> <y:ShapeNode> <y:Geometry height="31.0" width="31.0" x="1178.75" y="1151.375"/> - <y:Fill color="#FF0000" transparent="false"/> - <y:BorderStyle color="#FF0000" raised="false" type="line" width="1.0"/> + <y:Fill hasColor="false" transparent="false"/> + <y:BorderStyle color="#99CC00" raised="false" type="line" width="1.0"/> <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" hasText="false" height="4.0" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="4.0" x="13.5" y="13.5"> <y:LabelModel> <y:SmartNodeLabelModel distance="4.0"/> @@ -934,8 +934,8 @@ frequency Level<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelMod <data key="d6"> <y:ShapeNode> <y:Geometry height="31.0" width="31.0" x="1252.0" y="1151.375"/> - <y:Fill color="#FF0000" transparent="false"/> - <y:BorderStyle color="#FF0000" raised="false" type="line" width="1.0"/> + <y:Fill hasColor="false" transparent="false"/> + <y:BorderStyle color="#99CC00" raised="false" type="line" width="1.0"/> <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" hasText="false" height="4.0" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="4.0" x="13.5" y="13.5"> <y:LabelModel> <y:SmartNodeLabelModel distance="4.0"/> @@ -2411,8 +2411,8 @@ socket<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:Mod <data key="d6"> <y:ShapeNode> <y:Geometry height="31.0" width="31.0" x="894.5" y="1426.375"/> - <y:Fill color="#C0C0C0" transparent="false"/> - <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/> + <y:Fill hasColor="false" transparent="false"/> + <y:BorderStyle color="#FF0000" raised="false" type="line" width="1.0"/> <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" hasText="false" height="4.0" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="4.0" x="13.5" y="13.5"> <y:LabelModel> <y:SmartNodeLabelModel distance="4.0"/> @@ -2429,8 +2429,8 @@ socket<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:Mod <data key="d6"> <y:ShapeNode> <y:Geometry height="31.0" width="31.0" x="973.5" y="1427.375"/> - <y:Fill color="#C0C0C0" transparent="false"/> - <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/> + <y:Fill hasColor="false" transparent="false"/> + <y:BorderStyle color="#FF0000" raised="false" type="line" width="1.0"/> <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" hasText="false" height="4.0" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="4.0" x="13.5" y="13.5"> <y:LabelModel> <y:SmartNodeLabelModel distance="4.0"/> @@ -2447,8 +2447,8 @@ socket<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:Mod <data key="d6"> <y:ShapeNode> <y:Geometry height="31.0" width="31.0" x="1041.0" y="1426.375"/> - <y:Fill color="#C0C0C0" transparent="false"/> - <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/> + <y:Fill hasColor="false" transparent="false"/> + <y:BorderStyle color="#FF0000" raised="false" type="line" width="1.0"/> <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" hasText="false" height="4.0" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="4.0" x="13.5" y="13.5"> <y:LabelModel> <y:SmartNodeLabelModel distance="4.0"/> @@ -2465,8 +2465,8 @@ socket<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:Mod <data key="d6"> <y:ShapeNode> <y:Geometry height="31.0" width="31.0" x="1110.0" y="1426.375"/> - <y:Fill color="#C0C0C0" transparent="false"/> - <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/> + <y:Fill hasColor="false" transparent="false"/> + <y:BorderStyle color="#FF0000" raised="false" type="line" width="1.0"/> <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" hasText="false" height="4.0" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="4.0" x="13.5" y="13.5"> <y:LabelModel> <y:SmartNodeLabelModel distance="4.0"/> @@ -2483,8 +2483,8 @@ socket<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:Mod <data key="d6"> <y:ShapeNode> <y:Geometry height="31.0" width="31.0" x="1180.25" y="1426.375"/> - <y:Fill color="#C0C0C0" transparent="false"/> - <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/> + <y:Fill hasColor="false" transparent="false"/> + <y:BorderStyle color="#FF0000" raised="false" type="line" width="1.0"/> <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" hasText="false" height="4.0" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="4.0" x="13.5" y="13.5"> <y:LabelModel> <y:SmartNodeLabelModel distance="4.0"/> @@ -2501,8 +2501,8 @@ socket<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:Mod <data key="d6"> <y:ShapeNode> <y:Geometry height="31.0" width="31.0" x="1253.5" y="1426.375"/> - <y:Fill color="#C0C0C0" transparent="false"/> - <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/> + <y:Fill hasColor="false" transparent="false"/> + <y:BorderStyle color="#FF0000" raised="false" type="line" width="1.0"/> <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" hasText="false" height="4.0" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="4.0" x="13.5" y="13.5"> <y:LabelModel> <y:SmartNodeLabelModel distance="4.0"/> @@ -2591,7 +2591,7 @@ socket<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:Mod <data key="d6"> <y:ShapeNode> <y:Geometry height="64.0" width="18.0" x="1532.0" y="1268.375"/> - <y:Fill color="#FF0000" transparent="false"/> + <y:Fill hasColor="false" transparent="false"/> <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/> <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" hasText="false" height="4.0" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="4.0" x="7.0" y="30.0"> <y:LabelModel> @@ -6899,6 +6899,17 @@ to the Google Pixel 4A 5G<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></ </y:ShapeNode> </data> </node> + <node id="n433"> + <data key="d6"> + <y:ShapeNode> + <y:Geometry height="55.0" width="28.0" x="1026.5" y="1444.531540504648"/> + <y:Fill hasColor="false" transparent="false"/> + <y:BorderStyle hasColor="false" raised="false" type="line" width="1.0"/> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="18" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="26.0517578125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#993300" verticalTextPosition="bottom" visible="true" width="285.1357421875" x="-97.81787109375" xml:space="preserve" y="14.47412109375">Few little cores are running threads<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:ModelParameter><y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="1.0982142857142858" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/></y:ModelParameter></y:NodeLabel> + <y:Shape type="rectangle"/> + </y:ShapeNode> + </data> + </node> <edge id="e0" source="n12" target="n13"> <data key="d10"> <y:PolyLineEdge> diff --git a/kernel_ridge_linear_model/images_resuming_lesson_learned/googles_pixel_heuristics_before.graphml b/kernel_ridge_linear_model/images_resuming_lesson_learned/googles_pixel_heuristics_before.graphml index bd531a4..ba9a087 100755 --- a/kernel_ridge_linear_model/images_resuming_lesson_learned/googles_pixel_heuristics_before.graphml +++ b/kernel_ridge_linear_model/images_resuming_lesson_learned/googles_pixel_heuristics_before.graphml @@ -873,8 +873,8 @@ frequency Level<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelMod <data key="d6"> <y:ShapeNode> <y:Geometry height="31.0" width="31.0" x="-215.25" y="-417.125"/> - <y:Fill color="#FF0000" transparent="false"/> - <y:BorderStyle color="#FF0000" raised="false" type="line" width="1.0"/> + <y:Fill hasColor="false" transparent="false"/> + <y:BorderStyle color="#99CC00" raised="false" type="line" width="1.0"/> <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" hasText="false" height="4.0" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="4.0" x="13.5" y="13.5"> <y:LabelModel> <y:SmartNodeLabelModel distance="4.0"/> @@ -945,8 +945,8 @@ frequency Level<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelMod <data key="d6"> <y:ShapeNode> <y:Geometry height="31.0" width="31.0" x="-142.0" y="-417.125"/> - <y:Fill color="#FF0000" transparent="false"/> - <y:BorderStyle color="#FF0000" raised="false" type="line" width="1.0"/> + <y:Fill hasColor="false" transparent="false"/> + <y:BorderStyle color="#99CC00" raised="false" type="line" width="1.0"/> <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" hasText="false" height="4.0" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="4.0" x="13.5" y="13.5"> <y:LabelModel> <y:SmartNodeLabelModel distance="4.0"/> @@ -2415,8 +2415,8 @@ socket<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:Mod <data key="d6"> <y:ShapeNode> <y:Geometry height="31.0" width="31.0" x="-499.5" y="-142.125"/> - <y:Fill color="#C0C0C0" transparent="false"/> - <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/> + <y:Fill hasColor="false" transparent="false"/> + <y:BorderStyle color="#FF0000" raised="false" type="line" width="1.0"/> <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" hasText="false" height="4.0" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="4.0" x="13.5" y="13.5"> <y:LabelModel> <y:SmartNodeLabelModel distance="4.0"/> @@ -2433,8 +2433,8 @@ socket<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:Mod <data key="d6"> <y:ShapeNode> <y:Geometry height="31.0" width="31.0" x="-420.5" y="-141.125"/> - <y:Fill color="#C0C0C0" transparent="false"/> - <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/> + <y:Fill hasColor="false" transparent="false"/> + <y:BorderStyle color="#FF0000" raised="false" type="line" width="1.0"/> <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" hasText="false" height="4.0" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="4.0" x="13.5" y="13.5"> <y:LabelModel> <y:SmartNodeLabelModel distance="4.0"/> @@ -2451,8 +2451,8 @@ socket<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:Mod <data key="d6"> <y:ShapeNode> <y:Geometry height="31.0" width="31.0" x="-353.0" y="-142.125"/> - <y:Fill color="#C0C0C0" transparent="false"/> - <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/> + <y:Fill hasColor="false" transparent="false"/> + <y:BorderStyle color="#FF0000" raised="false" type="line" width="1.0"/> <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" hasText="false" height="4.0" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="4.0" x="13.5" y="13.5"> <y:LabelModel> <y:SmartNodeLabelModel distance="4.0"/> @@ -2469,8 +2469,8 @@ socket<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:Mod <data key="d6"> <y:ShapeNode> <y:Geometry height="31.0" width="31.0" x="-284.0" y="-142.125"/> - <y:Fill color="#C0C0C0" transparent="false"/> - <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/> + <y:Fill hasColor="false" transparent="false"/> + <y:BorderStyle color="#FF0000" raised="false" type="line" width="1.0"/> <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" hasText="false" height="4.0" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="4.0" x="13.5" y="13.5"> <y:LabelModel> <y:SmartNodeLabelModel distance="4.0"/> @@ -2487,8 +2487,8 @@ socket<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:Mod <data key="d6"> <y:ShapeNode> <y:Geometry height="31.0" width="31.0" x="-213.75" y="-142.125"/> - <y:Fill color="#C0C0C0" transparent="false"/> - <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/> + <y:Fill hasColor="false" transparent="false"/> + <y:BorderStyle color="#FF0000" raised="false" type="line" width="1.0"/> <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" hasText="false" height="4.0" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="4.0" x="13.5" y="13.5"> <y:LabelModel> <y:SmartNodeLabelModel distance="4.0"/> @@ -2505,8 +2505,8 @@ socket<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:Mod <data key="d6"> <y:ShapeNode> <y:Geometry height="31.0" width="31.0" x="-140.5" y="-142.125"/> - <y:Fill color="#C0C0C0" transparent="false"/> - <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/> + <y:Fill hasColor="false" transparent="false"/> + <y:BorderStyle color="#FF0000" raised="false" type="line" width="1.0"/> <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" hasText="false" height="4.0" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="4.0" x="13.5" y="13.5"> <y:LabelModel> <y:SmartNodeLabelModel distance="4.0"/> @@ -2595,7 +2595,7 @@ socket<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:Mod <data key="d6"> <y:ShapeNode> <y:Geometry height="64.0" width="18.0" x="138.0" y="-300.125"/> - <y:Fill color="#FF0000" transparent="false"/> + <y:Fill hasColor="false" transparent="false"/> <y:BorderStyle color="#000000" raised="false" type="line" width="1.0"/> <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" hasText="false" height="4.0" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="4.0" x="7.0" y="30.0"> <y:LabelModel> @@ -6704,7 +6704,7 @@ to the Google Pixel 4A 5G<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></ <y:Geometry height="57.48705179282865" width="27.10059760956176" x="826.4003984063744" y="-1115.5247758964144"/> <y:Fill hasColor="false" transparent="false"/> <y:BorderStyle hasColor="false" raised="false" type="line" width="1.0"/> - <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="22" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="30.9521484375" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="89.55078125" x="-31.225091820219177" xml:space="preserve" y="13.26745167766444">Legend:<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:ModelParameter><y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/></y:ModelParameter></y:NodeLabel> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="22" fontStyle="bold" hasBackgroundColor="false" hasLineColor="false" height="30.9521484375" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#000000" verticalTextPosition="bottom" visible="true" width="89.55078125" x="-31.225091820219063" xml:space="preserve" y="13.26745167766444">Legend:<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:ModelParameter><y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="0.0" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/></y:ModelParameter></y:NodeLabel> <y:Shape type="rectangle"/> </y:ShapeNode> </data> @@ -6853,6 +6853,17 @@ to the Google Pixel 4A 5G<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></ </y:ShapeNode> </data> </node> + <node id="n432"> + <data key="d6"> + <y:ShapeNode> + <y:Geometry height="55.0" width="28.0" x="-360.25" y="-122.42662682602929"/> + <y:Fill hasColor="false" transparent="false"/> + <y:BorderStyle hasColor="false" raised="false" type="line" width="1.0"/> + <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="18" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="26.0517578125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" textColor="#993300" verticalTextPosition="bottom" visible="true" width="285.1357421875" x="-97.81787109375" xml:space="preserve" y="14.47412109375">Few little cores are running threads<y:LabelModel><y:SmartNodeLabelModel distance="4.0"/></y:LabelModel><y:ModelParameter><y:SmartNodeLabelModelParameter labelRatioX="0.0" labelRatioY="0.0" nodeRatioX="1.0982142857142858" nodeRatioY="0.0" offsetX="0.0" offsetY="0.0" upX="0.0" upY="-1.0"/></y:ModelParameter></y:NodeLabel> + <y:Shape type="rectangle"/> + </y:ShapeNode> + </data> + </node> <edge id="e0" source="n12" target="n13"> <data key="d10"> <y:PolyLineEdge> diff --git a/kernel_ridge_linear_model/kernel_ridge.py b/kernel_ridge_linear_model/kernel_ridge.py index 19f4087..018ae3a 100755 --- a/kernel_ridge_linear_model/kernel_ridge.py +++ b/kernel_ridge_linear_model/kernel_ridge.py @@ -142,28 +142,48 @@ else: y = data.get_y(phone_name) print ("*** Total energy efficiencies: ", y) +if workstep == "looking_strange_cases": + """ + print("--- Size of X before removing aberrants points from the dataset: ", len(X)) + X_len_before_removing_abberrant_points = len(X) + utils.capture_X_y_in_file(np.array(X), np.array(y), output_data_folder + "From_summaries_X_y_before_removing_aberrant_points.csv") + X_user_friendly, X, y = utils.remove_aberrant_points(X_user_friendly, X, y, energy_array, workload_array, energy_gap, number_of_neighbour, sigma_2 = (len(X[0]) + 1) ) + utils.capture_X_y_in_file(np.array(X), np.array(y), output_data_folder + "From_summaries_X_y_after_removing_aberrant_points.csv") + print("--- Size of X after removing aberrants points from the dataset: ", len(X)) + print("--- Number of abberant points removed : ", X_len_before_removing_abberrant_points - len(X)) + print("*** Ratio energy by wokload : ", y) + """ -print("--- Size of X before removing aberrants points from the dataset: ", len(X)) -X_len_before_removing_abberrant_points = len(X) -utils.capture_X_y_in_file(np.array(X), np.array(y), output_data_folder + "From_summaries_X_y_before_removing_aberrant_points.csv") -X_user_friendly, X, y = utils.remove_aberrant_points(X_user_friendly, X, y, energy_array, workload_array, energy_gap, number_of_neighbour, sigma_2 = (len(X[0]) + 1) ) -utils.capture_X_y_in_file(np.array(X), np.array(y), output_data_folder + "From_summaries_X_y_after_removing_aberrant_points.csv") -print("--- Size of X after removing aberrants points from the dataset: ", len(X)) -print("--- Number of abberant points removed : ", X_len_before_removing_abberrant_points - len(X)) -print("*** Ratio energy by wokload : ", y) - + print("--- Size of X before removing duplicates: ", len(X)) + X_len_before_removing_duplicates = len(X) + utils.capture_X_y_in_file(np.array(X), np.array(y), output_data_folder + "From_summaries_X_y_before_removing_duplicate.csv") + X_user_friendly, X, y = utils.remove_duplicates(X_user_friendly, X, y, energy_array, workload_array, retained_value = "mean" ) + utils.capture_X_y_in_file(np.array(X), np.array(y), output_data_folder + "From_summaries_X_y_after_removing_duplicate.csv") + print("--- Size of X after removing duplicates: ", len(X)) + print("--- Number of duplicates points removed : ", X_len_before_removing_duplicates - len(X)) + print("*** Ratio energy by wokload : ", y) -""" -print("--- Size of X before removing duplicates: ", len(X)) -X_len_before_removing_duplicates = len(X) -utils.capture_X_y_in_file(np.array(X), np.array(y), output_data_folder + "From_summaries_X_y_before_removing_duplicate.csv") -X_user_friendly, X, y = utils.remove_duplicates(X_user_friendly, X, y, energy_array, workload_array ) -utils.capture_X_y_in_file(np.array(X), np.array(y), output_data_folder + "From_summaries_X_y_after_removing_duplicate.csv") -print("--- Size of X after removing duplicates: ", len(X)) -print("--- Number of duplicates points removed : ", X_len_before_removing_duplicates - len(X)) -print("*** Ratio energy by wokload : ", y) -""" +else: + print("--- Size of X before removing aberrants points from the dataset: ", len(X)) + X_len_before_removing_abberrant_points = len(X) + utils.capture_X_y_in_file(np.array(X), np.array(y), output_data_folder + "From_summaries_X_y_before_removing_aberrant_points.csv") + X_user_friendly, X, y = utils.remove_aberrant_points(X_user_friendly, X, y, energy_array, workload_array, energy_gap, number_of_neighbour, sigma_2 = (len(X[0]) + 1) ) + utils.capture_X_y_in_file(np.array(X), np.array(y), output_data_folder + "From_summaries_X_y_after_removing_aberrant_points.csv") + print("--- Size of X after removing aberrants points from the dataset: ", len(X)) + print("--- Number of abberant points removed : ", X_len_before_removing_abberrant_points - len(X)) + print("*** Ratio energy by wokload : ", y) + + + print("--- Size of X before removing duplicates: ", len(X)) + X_len_before_removing_duplicates = len(X) + utils.capture_X_y_in_file(np.array(X), np.array(y), output_data_folder + "From_summaries_X_y_before_removing_duplicate.csv") + X_user_friendly, X, y = utils.remove_duplicates(X_user_friendly, X, y, energy_array, workload_array ) + utils.capture_X_y_in_file(np.array(X), np.array(y), output_data_folder + "From_summaries_X_y_after_removing_duplicate.csv") + print("--- Size of X after removing duplicates: ", len(X)) + print("--- Number of duplicates points removed : ", X_len_before_removing_duplicates - len(X)) + print("*** Ratio energy by wokload : ", y) + diff --git a/kernel_ridge_linear_model/kernel_ridge_prediction_on_google_pixel_4a_5g.png b/kernel_ridge_linear_model/kernel_ridge_prediction_on_google_pixel_4a_5g.png index 000f69da36b97c269eadfdf975cf678a12a01140..365e039099532360bffc45fa87dc8da01ea7de5d 100755 GIT binary patch literal 75479 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	&K~y`4Mf(>DbZcOZqX@~ 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 O&hr<&lRj_t$NvMn{p}I} literal 66514 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 diff --git a/kernel_ridge_linear_model/local_lesson_learned_as_table.ods b/kernel_ridge_linear_model/local_lesson_learned_as_table.ods index e4f7f07d0ea923865c39c399ae8fcb2a967ede73..f3b476ec1f136fc5a59314d36a570b7c568d81b7 100755 GIT binary patch delta 9699 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 delta 9323 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 diff --git a/kernel_ridge_linear_model/log_file_for_strange_cases_exploration.txt b/kernel_ridge_linear_model/log_file_for_strange_cases_exploration.txt index 4688f99..cb47a68 100755 --- a/kernel_ridge_linear_model/log_file_for_strange_cases_exploration.txt +++ b/kernel_ridge_linear_model/log_file_for_strange_cases_exploration.txt @@ -2,17991 +2,1786 @@ --- Getting data from folder /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/looking_at_strange_cases --- Maximum input size = -1 --- X format manipulated by the model = base_Y - --- Getting data from file /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/looking_at_strange_cases/summary.csv -*** Total configurations in user friendly format: ['100001-0-0', '100001-0-0', '100001-0-0', '100010-0-0', '100010-0-0', '100010-0-0', '100100-0-0', '100100-0-0', '100100-0-0', '101000-0-0', '101000-0-0', '101000-0-0', '110000-0-0', '110000-0-0', '110000-0-0', '200002-0-0', '200002-0-0', '200002-0-0', '200020-0-0', '200020-0-0', '200020-0-0', '200200-0-0', '200200-0-0', '200200-0-0', '202000-0-0', '202000-0-0', '202000-0-0', '220000-0-0', '220000-0-0', '220000-0-0', '300003-0-0', '300003-0-0', '300003-0-0', '300030-0-0', '300030-0-0', '300030-0-0', '300300-0-0', '300300-0-0', '300300-0-0', '303000-0-0', '303000-0-0', '303000-0-0', '330000-0-0', '330000-0-0', '330000-0-0', '400004-0-0', '400004-0-0', '400004-0-0', '400040-0-0', '400040-0-0', '400040-0-0', '400400-0-0', '400400-0-0', '400400-0-0', '404000-0-0', '404000-0-0', '404000-0-0', '440000-0-0', '440000-0-0', '440000-0-0'] + --- Getting data from file /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/looking_at_strange_cases/summary___05Oct22_10_00_37_big_medium_at_mid_level.csv +*** Total configurations in user friendly format: ['100001-2-2', '100001-2-2', '100001-2-2', '100010-2-2', '100010-2-2', '100010-2-2', '100100-2-2', '100100-2-2', '100100-2-2', '101000-2-2', '101000-2-2', '101000-2-2', '110000-2-2', '110000-2-2', '110000-2-2', '200002-2-2', '200002-2-2', '200002-2-2', '200020-2-2', '200020-2-2', '200020-2-2', '200200-2-2', '200200-2-2', '200200-2-2', '202000-2-2', '202000-2-2', '202000-2-2', '220000-2-2', '220000-2-2', '220000-2-2', '300003-2-2', '300003-2-2', '300003-2-2', '300030-2-2', '300030-2-2', '300030-2-2', '300300-2-2', '300300-2-2', '300300-2-2', '303000-2-2', '303000-2-2', '303000-2-2', '330000-2-2', '330000-2-2', '330000-2-2', '400004-2-2', '400004-2-2', '400004-2-2', '400040-2-2', '400040-2-2', '400040-2-2', '400400-2-2', '400400-2-2', '400400-2-2', '404000-2-2', '404000-2-2', '404000-2-2', '440000-2-2', '440000-2-2', '440000-2-2'] --- Getting data from folder /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/looking_at_strange_cases --- Maximum input size = -1 --- X format manipulated by the model = base_Y_F - --- Getting data from file /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/looking_at_strange_cases/summary.csv - --- Converting [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0] in base Y F array notation - --- Result = [0, 0.0, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0] - --- Converting [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0] in base Y F array notation - --- Result = [0, 0.0, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0] - --- Converting [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0] in base Y F array notation - --- Result = [0, 0.0, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0] - --- Converting [1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0] in base Y F array notation - --- Result = [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0] - --- Converting [1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0] in base Y F array notation - --- Result = [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0] - --- Converting [1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0] in base Y F array notation - --- Result = [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0] - --- Converting [1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0] in base Y F array notation - --- Result = [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0] - --- Converting [1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0] in base Y F array notation - --- Result = [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0] - --- Converting [1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0] in base Y F array notation - --- Result = [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0] - --- Converting [1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0] in base Y F array notation - --- Result = [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0] - --- Converting [1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0] in base Y F array notation - --- Result = [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0] - --- Converting [1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0] in base Y F array notation - --- Result = [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0] - --- Converting [1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] in base Y F array notation - --- Result = [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0] - --- Converting [1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] in base Y F array notation - --- Result = [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0] - --- Converting [1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] in base Y F array notation - --- Result = [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0] - --- Converting [2.0, 0.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0] in base Y F array notation - --- Result = [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0] - --- Converting [2.0, 0.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0] in base Y F array notation - --- Result = [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0] - --- Converting [2.0, 0.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0] in base Y F array notation - --- Result = [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0] - --- Converting [2.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0] in base Y F array notation - --- Result = [0, 1.0, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0] - --- Converting [2.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0] in base Y F array notation - --- Result = [0, 1.0, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0] - --- Converting [2.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0] in base Y F array notation - --- Result = [0, 1.0, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0] - --- Converting [2.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0] in base Y F array notation - --- Result = [0, 1.0, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0] - --- Converting [2.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0] in base Y F array notation - --- Result = [0, 1.0, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0] - --- Converting [2.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0] in base Y F array notation - --- Result = [0, 1.0, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0] - --- Converting [2.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0] in base Y F array notation - --- Result = [0, 1.0, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0] - --- Converting [2.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0] in base Y F array notation - --- Result = [0, 1.0, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0] - --- Converting [2.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0] in base Y F array notation - --- Result = [0, 1.0, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0] - --- Converting [2.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] in base Y F array notation - --- Result = [0, 1.0, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0] - --- Converting [2.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] in base Y F array notation - --- Result = [0, 1.0, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0] - --- Converting [2.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] in base Y F array notation - --- Result = [0, 1.0, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0] - --- Converting [3.0, 0.0, 0.0, 0.0, 0.0, 3.0, 0.0, 0.0] in base Y F array notation - --- Result = [0, 2.0, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0] - --- Converting [3.0, 0.0, 0.0, 0.0, 0.0, 3.0, 0.0, 0.0] in base Y F array notation - --- Result = [0, 2.0, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0] - --- Converting [3.0, 0.0, 0.0, 0.0, 0.0, 3.0, 0.0, 0.0] in base Y F array notation - --- Result = [0, 2.0, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0] - --- Converting [3.0, 0.0, 0.0, 0.0, 3.0, 0.0, 0.0, 0.0] in base Y F array notation - --- Result = [0, 2.0, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0] - --- Converting [3.0, 0.0, 0.0, 0.0, 3.0, 0.0, 0.0, 0.0] in base Y F array notation - --- Result = [0, 2.0, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0] - --- Converting [3.0, 0.0, 0.0, 0.0, 3.0, 0.0, 0.0, 0.0] in base Y F array notation - --- Result = [0, 2.0, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0] - --- Converting [3.0, 0.0, 0.0, 3.0, 0.0, 0.0, 0.0, 0.0] in base Y F array notation - --- Result = [0, 2.0, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0] - --- Converting [3.0, 0.0, 0.0, 3.0, 0.0, 0.0, 0.0, 0.0] in base Y F array notation - --- Result = [0, 2.0, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0] - --- Converting [3.0, 0.0, 0.0, 3.0, 0.0, 0.0, 0.0, 0.0] in base Y F array notation - --- Result = [0, 2.0, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0] - --- Converting [3.0, 0.0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0] in base Y F array notation - --- Result = [0, 2.0, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0] - --- Converting [3.0, 0.0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0] in base Y F array notation - --- Result = [0, 2.0, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0] - --- Converting [3.0, 0.0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0] in base Y F array notation - --- Result = [0, 2.0, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0] - --- Converting [3.0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] in base Y F array notation - --- Result = [0, 2.0, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0] - --- Converting [3.0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] in base Y F array notation - --- Result = [0, 2.0, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0] - --- Converting [3.0, 3.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] in base Y F array notation - --- Result = [0, 2.0, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0] - --- Converting [4.0, 0.0, 0.0, 0.0, 0.0, 4.0, 0.0, 0.0] in base Y F array notation - --- Result = [1, 3, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0] - --- Converting [4.0, 0.0, 0.0, 0.0, 0.0, 4.0, 0.0, 0.0] in base Y F array notation - --- Result = [1, 3, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0] - --- Converting [4.0, 0.0, 0.0, 0.0, 0.0, 4.0, 0.0, 0.0] in base Y F array notation - --- Result = [1, 3, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0] - --- Converting [4.0, 0.0, 0.0, 0.0, 4.0, 0.0, 0.0, 0.0] in base Y F array notation - --- Result = [1, 3, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0] - --- Converting [4.0, 0.0, 0.0, 0.0, 4.0, 0.0, 0.0, 0.0] in base Y F array notation - --- Result = [1, 3, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0] - --- Converting [4.0, 0.0, 0.0, 0.0, 4.0, 0.0, 0.0, 0.0] in base Y F array notation - --- Result = [1, 3, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0] - --- Converting [4.0, 0.0, 0.0, 4.0, 0.0, 0.0, 0.0, 0.0] in base Y F array notation - --- Result = [1, 3, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0] - --- Converting [4.0, 0.0, 0.0, 4.0, 0.0, 0.0, 0.0, 0.0] in base Y F array notation - --- Result = [1, 3, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0] - --- Converting [4.0, 0.0, 0.0, 4.0, 0.0, 0.0, 0.0, 0.0] in base Y F array notation - --- Result = [1, 3, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0] - --- Converting [4.0, 0.0, 4.0, 0.0, 0.0, 0.0, 0.0, 0.0] in base Y F array notation - --- Result = [1, 3, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0] - --- Converting [4.0, 0.0, 4.0, 0.0, 0.0, 0.0, 0.0, 0.0] in base Y F array notation - --- Result = [1, 3, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0] - --- Converting [4.0, 0.0, 4.0, 0.0, 0.0, 0.0, 0.0, 0.0] in base Y F array notation - --- Result = [1, 3, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0] - --- Converting [4.0, 4.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] in base Y F array notation - --- Result = [1, 3, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0] - --- Converting [4.0, 4.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] in base Y F array notation - --- Result = [1, 3, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0] - --- Converting [4.0, 4.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] in base Y F array notation - --- Result = [1, 3, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0] -*** Total Configurations formatted: [[0, 0.0, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0], [0, 0.0, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0], [0, 0.0, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0], [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0], [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0], [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0], [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0], [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0], [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0], [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0], [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0], [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0], [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0], [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0], [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0], [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0], [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0], [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0], [0, 1.0, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0], [0, 1.0, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0], [0, 1.0, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0], [0, 1.0, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0], [0, 1.0, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0], [0, 1.0, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0], [0, 1.0, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0], [0, 1.0, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0], [0, 1.0, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0], [0, 1.0, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0], [0, 1.0, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0], [0, 1.0, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0], [0, 2.0, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0], [0, 2.0, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0], [0, 2.0, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0], [0, 2.0, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0], [0, 2.0, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0], [0, 2.0, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0], [0, 2.0, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0], [0, 2.0, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0], [0, 2.0, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0], [0, 2.0, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0], [0, 2.0, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0], [0, 2.0, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0], [0, 2.0, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0], [0, 2.0, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0], [0, 2.0, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0], [1, 3, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0], [1, 3, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0], [1, 3, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0], [1, 3, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0], [1, 3, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0], [1, 3, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0], [1, 3, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0], [1, 3, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0], [1, 3, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0], [1, 3, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0], [1, 3, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0], [1, 3, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0], [1, 3, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0], [1, 3, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0], [1, 3, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0]] + --- Getting data from file /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/looking_at_strange_cases/summary___05Oct22_10_00_37_big_medium_at_mid_level.csv + --- Converting [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 2.0, 2.0] in base Y F array notation + --- Result = [0, 0.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0] + --- Converting [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 2.0, 2.0] in base Y F array notation + --- Result = [0, 0.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0] + --- Converting [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 2.0, 2.0] in base Y F array notation + --- Result = [0, 0.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0] + --- Converting [1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 2.0, 2.0] in base Y F array notation + --- Result = [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0] + --- Converting [1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 2.0, 2.0] in base Y F array notation + --- Result = [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0] + --- Converting [1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 2.0, 2.0] in base Y F array notation + --- Result = [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0] + --- Converting [1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 2.0, 2.0] in base Y F array notation + --- Result = [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0] + --- Converting [1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 2.0, 2.0] in base Y F array notation + --- Result = [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0] + --- Converting [1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 2.0, 2.0] in base Y F array notation + --- Result = [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0] + --- Converting [1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 2.0, 2.0] in base Y F array notation + --- Result = [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0] + --- Converting [1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 2.0, 2.0] in base Y F array notation + --- Result = [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0] + --- Converting [1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 2.0, 2.0] in base Y F array notation + --- Result = [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0] + --- Converting [1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0] in base Y F array notation + --- Result = [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0] + --- Converting [1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0] in base Y F array notation + --- Result = [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0] + --- Converting [1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0] in base Y F array notation + --- Result = [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0] + --- Converting [2.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 2.0] in base Y F array notation + --- Result = [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0] + --- Converting [2.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 2.0] in base Y F array notation + --- Result = [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0] + --- Converting [2.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 2.0] in base Y F array notation + --- Result = [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0] + --- Converting [2.0, 0.0, 0.0, 0.0, 2.0, 0.0, 2.0, 2.0] in base Y F array notation + --- Result = [0, 1.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0] + --- Converting [2.0, 0.0, 0.0, 0.0, 2.0, 0.0, 2.0, 2.0] in base Y F array notation + --- Result = [0, 1.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0] + --- Converting [2.0, 0.0, 0.0, 0.0, 2.0, 0.0, 2.0, 2.0] in base Y F array notation + --- Result = [0, 1.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0] + --- Converting [2.0, 0.0, 0.0, 2.0, 0.0, 0.0, 2.0, 2.0] in base Y F array notation + --- Result = [0, 1.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0] + --- Converting [2.0, 0.0, 0.0, 2.0, 0.0, 0.0, 2.0, 2.0] in base Y F array notation + --- Result = [0, 1.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0] + --- Converting [2.0, 0.0, 0.0, 2.0, 0.0, 0.0, 2.0, 2.0] in base Y F array notation + --- Result = [0, 1.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0] + --- Converting [2.0, 0.0, 2.0, 0.0, 0.0, 0.0, 2.0, 2.0] in base Y F array notation + --- Result = [0, 1.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0] + --- Converting [2.0, 0.0, 2.0, 0.0, 0.0, 0.0, 2.0, 2.0] in base Y F array notation + --- Result = [0, 1.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0] + --- Converting [2.0, 0.0, 2.0, 0.0, 0.0, 0.0, 2.0, 2.0] in base Y F array notation + --- Result = [0, 1.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0] + --- Converting [2.0, 2.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0] in base Y F array notation + --- Result = [0, 1.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0] + --- Converting [2.0, 2.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0] in base Y F array notation + --- Result = [0, 1.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0] + --- Converting [2.0, 2.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0] in base Y F array notation + --- Result = [0, 1.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0] + --- Converting [3.0, 0.0, 0.0, 0.0, 0.0, 3.0, 2.0, 2.0] in base Y F array notation + --- Result = [0, 2.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0] + --- Converting [3.0, 0.0, 0.0, 0.0, 0.0, 3.0, 2.0, 2.0] in base Y F array notation + --- Result = [0, 2.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0] + --- Converting [3.0, 0.0, 0.0, 0.0, 0.0, 3.0, 2.0, 2.0] in base Y F array notation + --- Result = [0, 2.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0] + --- Converting [3.0, 0.0, 0.0, 0.0, 3.0, 0.0, 2.0, 2.0] in base Y F array notation + --- Result = [0, 2.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0] + --- Converting [3.0, 0.0, 0.0, 0.0, 3.0, 0.0, 2.0, 2.0] in base Y F array notation + --- Result = [0, 2.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0] + --- Converting [3.0, 0.0, 0.0, 0.0, 3.0, 0.0, 2.0, 2.0] in base Y F array notation + --- Result = [0, 2.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0] + --- Converting [3.0, 0.0, 0.0, 3.0, 0.0, 0.0, 2.0, 2.0] in base Y F array notation + --- Result = [0, 2.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0] + --- Converting [3.0, 0.0, 0.0, 3.0, 0.0, 0.0, 2.0, 2.0] in base Y F array notation + --- Result = [0, 2.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0] + --- Converting [3.0, 0.0, 0.0, 3.0, 0.0, 0.0, 2.0, 2.0] in base Y F array notation + --- Result = [0, 2.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0] + --- Converting [3.0, 0.0, 3.0, 0.0, 0.0, 0.0, 2.0, 2.0] in base Y F array notation + --- Result = [0, 2.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0] + --- Converting [3.0, 0.0, 3.0, 0.0, 0.0, 0.0, 2.0, 2.0] in base Y F array notation + --- Result = [0, 2.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0] + --- Converting [3.0, 0.0, 3.0, 0.0, 0.0, 0.0, 2.0, 2.0] in base Y F array notation + --- Result = [0, 2.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0] + --- Converting [3.0, 3.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0] in base Y F array notation + --- Result = [0, 2.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0] + --- Converting [3.0, 3.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0] in base Y F array notation + --- Result = [0, 2.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0] + --- Converting [3.0, 3.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0] in base Y F array notation + --- Result = [0, 2.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0] + --- Converting [4.0, 0.0, 0.0, 0.0, 0.0, 4.0, 2.0, 2.0] in base Y F array notation + --- Result = [1, 3, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0] + --- Converting [4.0, 0.0, 0.0, 0.0, 0.0, 4.0, 2.0, 2.0] in base Y F array notation + --- Result = [1, 3, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0] + --- Converting [4.0, 0.0, 0.0, 0.0, 0.0, 4.0, 2.0, 2.0] in base Y F array notation + --- Result = [1, 3, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0] + --- Converting [4.0, 0.0, 0.0, 0.0, 4.0, 0.0, 2.0, 2.0] in base Y F array notation + --- Result = [1, 3, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0] + --- Converting [4.0, 0.0, 0.0, 0.0, 4.0, 0.0, 2.0, 2.0] in base Y F array notation + --- Result = [1, 3, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0] + --- Converting [4.0, 0.0, 0.0, 0.0, 4.0, 0.0, 2.0, 2.0] in base Y F array notation + --- Result = [1, 3, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0] + --- Converting [4.0, 0.0, 0.0, 4.0, 0.0, 0.0, 2.0, 2.0] in base Y F array notation + --- Result = [1, 3, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0] + --- Converting [4.0, 0.0, 0.0, 4.0, 0.0, 0.0, 2.0, 2.0] in base Y F array notation + --- Result = [1, 3, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0] + --- Converting [4.0, 0.0, 0.0, 4.0, 0.0, 0.0, 2.0, 2.0] in base Y F array notation + --- Result = [1, 3, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0] + --- Converting [4.0, 0.0, 4.0, 0.0, 0.0, 0.0, 2.0, 2.0] in base Y F array notation + --- Result = [1, 3, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0] + --- Converting [4.0, 0.0, 4.0, 0.0, 0.0, 0.0, 2.0, 2.0] in base Y F array notation + --- Result = [1, 3, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0] + --- Converting [4.0, 0.0, 4.0, 0.0, 0.0, 0.0, 2.0, 2.0] in base Y F array notation + --- Result = [1, 3, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0] + --- Converting [4.0, 4.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0] in base Y F array notation + --- Result = [1, 3, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0] + --- Converting [4.0, 4.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0] in base Y F array notation + --- Result = [1, 3, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0] + --- Converting [4.0, 4.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0] in base Y F array notation + --- Result = [1, 3, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0] +*** Total Configurations formatted: [[0, 0.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [1, 3, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [1, 3, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [1, 3, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [1, 3, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [1, 3, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [1, 3, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [1, 3, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [1, 3, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [1, 3, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [1, 3, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [1, 3, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [1, 3, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [1, 3, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [1, 3, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [1, 3, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0]] ---> Creating X dictionnary, from userfriendly values to x values -*** Total Configurations dictionnary: {'100001-0-0': [0, 0.0, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0], '100010-0-0': [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0], '100100-0-0': [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0], '101000-0-0': [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0], '110000-0-0': [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0], '200002-0-0': [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0], '200020-0-0': [0, 1.0, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0], '200200-0-0': [0, 1.0, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0], '202000-0-0': [0, 1.0, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0], '220000-0-0': [0, 1.0, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0], '300003-0-0': [0, 2.0, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0], '300030-0-0': [0, 2.0, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0], '300300-0-0': [0, 2.0, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0], '303000-0-0': [0, 2.0, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0], '330000-0-0': [0, 2.0, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0], '400004-0-0': [1, 3, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0], '400040-0-0': [1, 3, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0], '400400-0-0': [1, 3, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0], '404000-0-0': [1, 3, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0], '440000-0-0': [1, 3, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0]} +*** Total Configurations dictionnary: {'100001-2-2': [0, 0.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], '100010-2-2': [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], '100100-2-2': [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], '101000-2-2': [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], '110000-2-2': [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], '200002-2-2': [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], '200020-2-2': [0, 1.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], '200200-2-2': [0, 1.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], '202000-2-2': [0, 1.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], '220000-2-2': [0, 1.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], '300003-2-2': [0, 2.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], '300030-2-2': [0, 2.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], '300300-2-2': [0, 2.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], '303000-2-2': [0, 2.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], '330000-2-2': [0, 2.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], '400004-2-2': [1, 3, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], '400040-2-2': [1, 3, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], '400400-2-2': [1, 3, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], '404000-2-2': [1, 3, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], '440000-2-2': [1, 3, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0]} --- Getting data from folder /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/looking_at_strange_cases --- Maximum input size = -1 --- X format manipulated by the model = base_Y - --- Getting data from file /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/looking_at_strange_cases/summary.csv -*** Total energy efficiencies: [3925232177.483298, 3912699841.144387, 3910282478.8062687, 3946501229.335133, 3938853242.267046, 3969482617.6356173, 3914798329.164073, 3977186856.1928773, 3858277741.981534, 3932131411.8317833, 3943824168.5432696, 3916945096.180587, 3819709702.062643, 3887057652.839107, 3856284007.604592, 7988815658.07869, 8007559135.824218, 8163998399.856314, 3913174484.5370913, 3792360668.6690335, 3951304127.927423, 3947700859.019707, 3979877738.155884, 4070782770.8190007, 3927683491.5535164, 3867649049.525246, 3861719546.4796567, 3901144986.0534062, 3847826170.604917, 3829378223.8577924, 8729278874.272196, 8655310898.767483, 8625894936.599672, 3950351976.361094, 3930323229.7824173, 3961149050.1164575, 3877938022.79452, 3854336899.8797445, 3984905179.181261, 3925740689.124521, 3940529528.3580203, 3882741215.2980003, 3883480064.155091, 3773399795.481731, 3779532320.67064, 8626490226.186573, 8487667419.239845, 8625597322.614592, 3874812555.9426064, 3803973630.8547907, 3912837628.97691, 4498182734.175393, 4069970940.4074855, 3923522695.617033, 3912393680.701727, 3915273481.8527074, 3860064926.29206, 3867469553.3459415, 3780346733.402388, 3911490786.4834523] + --- Getting data from file /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/looking_at_strange_cases/summary___05Oct22_10_00_37_big_medium_at_mid_level.csv +*** Total energy efficiencies: [16754768826.077124, 16403311500.525728, 16507397790.319733, 16637938492.868979, 16458467058.378183, 16296783992.64689, 16410444919.98267, 16532532717.882248, 16433313613.356997, 16394544551.355093, 16446827406.99319, 16413677188.92799, 16620047433.615376, 16528461183.735334, 16580145938.44455, 16765639827.112722, 17108405701.889452, 17033540745.081139, 16267066185.812191, 16454756823.376287, 16456191971.353062, 16196850036.604881, 16524664714.552942, 16531302848.508793, 16332236895.829727, 16457519029.006376, 16541995163.120615, 16365406803.099607, 16563366471.108519, 16635807244.228622, 15918573313.785324, 15758131589.853653, 15925494168.084036, 16471235457.957994, 16301991125.196033, 16419902892.694292, 16532751380.484741, 16235795708.229763, 16437338400.416851, 16540709166.3648, 16707153669.058018, 16522207499.09954, 16563640820.761528, 16619218797.001228, 16686829919.486046, 16072596704.796225, 16026103317.082867, 15780113585.257587, 16509032917.360735, 16467899124.237123, 16382431480.480333, 16533024716.871952, 16598364397.1723, 16324798184.682442, 16574347550.808664, 16578771546.185972, 16567043511.68308, 16509741573.01516, 16731809177.062698, 16504428138.069445] --- Getting data from folder /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/looking_at_strange_cases --- Maximum input size = -1 --- X format manipulated by the model = base_Y - --- Getting data from file /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/looking_at_strange_cases/summary.csv -*** Total energy : [23.92680302847992, 24.008138624748163, 24.04973010017626, 23.768609723161067, 23.907751006381503, 23.647042756264316, 24.34321151135318, 23.66236144271759, 24.282936366326563, 23.827633134312034, 23.826661712544205, 24.05507728451459, 24.42419267600996, 23.99322866107899, 24.207459297994163, 28.77615884915817, 28.68325147336931, 28.155953672150755, 24.03237046200954, 24.734270276684956, 23.743288058460422, 23.750591714866186, 23.505960200642747, 23.42848921387117, 24.092534379540634, 24.21312283502527, 24.183210213672954, 23.877164417300968, 24.264174107781162, 24.344031085422476, 35.32232791967017, 35.53991612451346, 35.71754166492727, 23.716971835375215, 23.953804227268574, 23.66038518521068, 24.1559718861257, 24.32865158873136, 23.538369217832788, 23.867682919071562, 23.84547723870087, 24.080718397086365, 24.08059502443054, 24.637735624906814, 24.641747385770024, 35.68737472207005, 36.26627936290422, 35.74753244365377, 24.208364980550822, 24.545508459651504, 23.955644418717593, 20.892728190680728, 23.056442545915072, 23.859797472163574, 23.929599517536357, 23.98063541047566, 24.285864392102688, 24.084653436720817, 24.652112755988767, 23.764456566046302] + --- Getting data from file /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/looking_at_strange_cases/summary___05Oct22_10_00_37_big_medium_at_mid_level.csv +*** Total energy : [69.52409009723863, 71.0813570024315, 70.47748663452633, 70.09045877144594, 70.58915136388794, 71.30789275413113, 70.742778041012, 70.57358750924872, 70.90841487980666, 70.73694231384944, 70.87019823828456, 70.66304539864001, 70.11291945420209, 70.4747458234224, 70.35766711410953, 77.96541094759694, 76.2023086156267, 76.33647794504182, 71.64787072655308, 70.59299246340379, 70.62997330800367, 71.59418143367965, 70.63924455966055, 70.53403938823975, 71.49423895337264, 70.60359391424801, 70.52715331333978, 71.18060224267974, 70.32392311813075, 70.05135389771442, 86.59637719434818, 87.6265526980771, 87.08870790047656, 70.45738299722346, 71.52806365064377, 70.36461641518005, 70.54538704058632, 71.57822660827733, 70.7170408596214, 70.12091351608217, 69.80058323418798, 70.54568641754493, 70.33175275813268, 70.08575253785934, 69.76401393868103, 86.25868546652029, 86.36279724758774, 87.80479279136466, 70.19794533916524, 70.4697908210477, 71.17628500575493, 70.49037916333526, 69.9851801502394, 71.47653617449954, 70.21932151401353, 70.47809119531738, 70.39942218336223, 70.67041858464086, 69.63985178549414, 70.57015429696514] --- Getting data from folder /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/looking_at_strange_cases --- Maximum input size = -1 --- X format manipulated by the model = base_Y - --- Getting data from file /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/looking_at_strange_cases/summary.csv -*** Total workload : [93918300000.0, 93936500000.0, 94041200000.0, 93802800000.0, 94169000000.0, 93866600000.0, 95298900000.0, 94109700000.0, 93690400000.0, 93693400000.0, 93968300000.0, 94222600000.0, 93293200000.0, 93263200000.0, 93350900000.0, 229888000000.0, 229682000000.0, 229866000000.0, 94042900000.0, 93801200000.0, 93816800000.0, 93760200000.0, 93550800000.0, 95372100000.0, 94627800000.0, 93647900000.0, 93388700000.0, 93148100000.0, 93364400000.0, 93222400000.0, 308338000000.0, 307609000000.0, 308096000000.0, 93690400000.0, 94146300000.0, 93722400000.0, 93675200000.0, 93770900000.0, 93798100000.0, 93698300000.0, 93963800000.0, 93499300000.0, 93516400000.0, 92968000000.0, 93134300000.0, 307857000000.0, 307816000000.0, 308344000000.0, 93802800000.0, 93370600000.0, 93734500000.0, 93979300000.0, 93839100000.0, 93614500000.0, 93622100000.0, 93890700000.0, 93745000000.0, 93146600000.0, 93193500000.0, 92954500000.0] ---- Size of X before removing aberrants points from the dataset: 60 + --- Getting data from file /mnt/c/Users/lavoi/opportunist_task_on_android/scripts_valuable_files/experiment_automatization/can_be_reused/looking_at_strange_cases/summary___05Oct22_10_00_37_big_medium_at_mid_level.csv +*** Total workload : [1164860000000.0, 1165970000000.0, 1163400000000.0, 1166160000000.0, 1161790000000.0, 1162090000000.0, 1160920000000.0, 1166760000000.0, 1165260000000.0, 1159700000000.0, 1165590000000.0, 1159840000000.0, 1165280000000.0, 1164840000000.0, 1166540000000.0, 1307140000000.0, 1303700000000.0, 1300280000000.0, 1165500000000.0, 1161590000000.0, 1162300000000.0, 1159600000000.0, 1167290000000.0, 1166020000000.0, 1167660000000.0, 1161960000000.0, 1166660000000.0, 1164900000000.0, 1164800000000.0, 1165360000000.0, 1378490000000.0, 1380830000000.0, 1386930000000.0, 1160520000000.0, 1166050000000.0, 1155380000000.0, 1166310000000.0, 1162130000000.0, 1162400000000.0, 1159850000000.0, 1166170000000.0, 1165570000000.0, 1164950000000.0, 1164770000000.0, 1164140000000.0, 1386400000000.0, 1384060000000.0, 1385570000000.0, 1158900000000.0, 1160490000000.0, 1166040000000.0, 1165420000000.0, 1161640000000.0, 1166840000000.0, 1163840000000.0, 1168440000000.0, 1166310000000.0, 1166750000000.0, 1165200000000.0, 1164720000000.0] +--- Size of X before removing duplicates: 60 --- Actual line: ['X_0' 'X_1' 'X_2' 'X_3' 'X_4' 'X_5' 'X_6' 'X_7' 'X_8' 'X_9' 'X_10' 'X_11' 'y'] --- Actual line: [0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.92523218e+09] + 0.00000000e+00 2.00000000e+00 0.00000000e+00 2.00000000e+00 + 1.67547688e+10] --- Actual line: [0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.91269984e+09] + 0.00000000e+00 2.00000000e+00 0.00000000e+00 2.00000000e+00 + 1.64033115e+10] --- Actual line: [0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.91028248e+09] + 0.00000000e+00 2.00000000e+00 0.00000000e+00 2.00000000e+00 + 1.65073978e+10] --- Actual line: [0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.94650123e+09] + 0.00000000e+00 2.00000000e+00 0.00000000e+00 2.00000000e+00 + 1.66379385e+10] --- Actual line: [0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.93885324e+09] - --- Actual line: [0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.96948262e+09] + 0.00000000e+00 2.00000000e+00 0.00000000e+00 2.00000000e+00 + 1.64584671e+10] + --- Actual line: [0.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 + 0.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 + 0.0000000e+00 2.0000000e+00 1.6296784e+10] --- Actual line: [0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.91479833e+09] + 0.00000000e+00 2.00000000e+00 0.00000000e+00 2.00000000e+00 + 1.64104449e+10] --- Actual line: [0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.97718686e+09] + 0.00000000e+00 2.00000000e+00 0.00000000e+00 2.00000000e+00 + 1.65325327e+10] --- Actual line: [0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.85827774e+09] + 0.00000000e+00 2.00000000e+00 0.00000000e+00 2.00000000e+00 + 1.64333136e+10] --- Actual line: [0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.93213141e+09] + 0.00000000e+00 2.00000000e+00 0.00000000e+00 2.00000000e+00 + 1.63945446e+10] --- Actual line: [0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.94382417e+09] - --- Actual line: [0.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 1.0000000e+00 - 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 3.9169451e+09] - --- Actual line: [0.0000000e+00 0.0000000e+00 1.0000000e+00 1.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 3.8197097e+09] + 0.00000000e+00 2.00000000e+00 0.00000000e+00 2.00000000e+00 + 1.64468274e+10] + --- Actual line: [0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 + 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 + 0.00000000e+00 2.00000000e+00 0.00000000e+00 2.00000000e+00 + 1.64136772e+10] --- Actual line: [0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.88705765e+09] + 0.00000000e+00 2.00000000e+00 0.00000000e+00 2.00000000e+00 + 1.66200474e+10] --- Actual line: [0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 + 0.00000000e+00 2.00000000e+00 0.00000000e+00 2.00000000e+00 + 1.65284612e+10] + --- Actual line: [0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.85628401e+09] + 0.00000000e+00 2.00000000e+00 0.00000000e+00 2.00000000e+00 + 1.65801459e+10] --- Actual line: [0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 7.98881566e+09] + 0.00000000e+00 2.00000000e+00 0.00000000e+00 2.00000000e+00 + 1.67656398e+10] --- Actual line: [0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 8.00755914e+09] - --- Actual line: [0.0000000e+00 1.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 8.1639984e+09] + 0.00000000e+00 2.00000000e+00 0.00000000e+00 2.00000000e+00 + 1.71084057e+10] --- Actual line: [0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.91317448e+09] + 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 + 0.00000000e+00 2.00000000e+00 0.00000000e+00 2.00000000e+00 + 1.70335407e+10] --- Actual line: [0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.79236067e+09] + 0.00000000e+00 2.00000000e+00 0.00000000e+00 2.00000000e+00 + 1.62670662e+10] --- Actual line: [0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.95130413e+09] - --- Actual line: [0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 - 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.94770086e+09] + 0.00000000e+00 2.00000000e+00 0.00000000e+00 2.00000000e+00 + 1.64547568e+10] + --- Actual line: [0.0000000e+00 1.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 + 0.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 + 0.0000000e+00 2.0000000e+00 1.6456192e+10] + --- Actual line: [0.000000e+00 1.000000e+00 1.000000e+00 0.000000e+00 0.000000e+00 + 1.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 2.000000e+00 + 0.000000e+00 2.000000e+00 1.619685e+10] --- Actual line: [0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.97987774e+09] + 0.00000000e+00 2.00000000e+00 0.00000000e+00 2.00000000e+00 + 1.65246647e+10] --- Actual line: [0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 4.07078277e+09] - --- Actual line: [0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 - 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.92768349e+09] + 0.00000000e+00 2.00000000e+00 0.00000000e+00 2.00000000e+00 + 1.65313028e+10] --- Actual line: [0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.86764905e+09] + 0.00000000e+00 2.00000000e+00 0.00000000e+00 2.00000000e+00 + 1.63322369e+10] + --- Actual line: [0.0000000e+00 1.0000000e+00 1.0000000e+00 0.0000000e+00 1.0000000e+00 + 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 + 0.0000000e+00 2.0000000e+00 1.6457519e+10] --- Actual line: [0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.86171955e+09] + 0.00000000e+00 2.00000000e+00 0.00000000e+00 2.00000000e+00 + 1.65419952e+10] --- Actual line: [0.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.90114499e+09] + 0.00000000e+00 2.00000000e+00 0.00000000e+00 2.00000000e+00 + 1.63654068e+10] --- Actual line: [0.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.84782617e+09] + 0.00000000e+00 2.00000000e+00 0.00000000e+00 2.00000000e+00 + 1.65633665e+10] --- Actual line: [0.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.82937822e+09] + 0.00000000e+00 2.00000000e+00 0.00000000e+00 2.00000000e+00 + 1.66358072e+10] --- Actual line: [0.00000000e+00 2.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 8.72927887e+09] - --- Actual line: [0.0000000e+00 2.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 8.6553109e+09] + 0.00000000e+00 2.00000000e+00 0.00000000e+00 2.00000000e+00 + 1.59185733e+10] --- Actual line: [0.00000000e+00 2.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 8.62589494e+09] + 0.00000000e+00 2.00000000e+00 0.00000000e+00 2.00000000e+00 + 1.57581316e+10] + --- Actual line: [0.00000000e+00 2.00000000e+00 1.00000000e+00 0.00000000e+00 + 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 + 0.00000000e+00 2.00000000e+00 0.00000000e+00 2.00000000e+00 + 1.59254942e+10] --- Actual line: [0.00000000e+00 2.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.95035198e+09] + 0.00000000e+00 2.00000000e+00 0.00000000e+00 2.00000000e+00 + 1.64712355e+10] --- Actual line: [0.00000000e+00 2.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.93032323e+09] + 0.00000000e+00 2.00000000e+00 0.00000000e+00 2.00000000e+00 + 1.63019911e+10] --- Actual line: [0.00000000e+00 2.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.96114905e+09] + 0.00000000e+00 2.00000000e+00 0.00000000e+00 2.00000000e+00 + 1.64199029e+10] --- Actual line: [0.00000000e+00 2.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.87793802e+09] - --- Actual line: [0.0000000e+00 2.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 - 1.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 3.8543369e+09] + 0.00000000e+00 2.00000000e+00 0.00000000e+00 2.00000000e+00 + 1.65327514e+10] --- Actual line: [0.00000000e+00 2.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.98490518e+09] + 0.00000000e+00 2.00000000e+00 0.00000000e+00 2.00000000e+00 + 1.62357957e+10] + --- Actual line: [0.00000000e+00 2.00000000e+00 1.00000000e+00 0.00000000e+00 + 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 + 0.00000000e+00 2.00000000e+00 0.00000000e+00 2.00000000e+00 + 1.64373384e+10] --- Actual line: [0.00000000e+00 2.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.92574069e+09] + 0.00000000e+00 2.00000000e+00 0.00000000e+00 2.00000000e+00 + 1.65407092e+10] --- Actual line: [0.00000000e+00 2.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.94052953e+09] + 0.00000000e+00 2.00000000e+00 0.00000000e+00 2.00000000e+00 + 1.67071537e+10] --- Actual line: [0.00000000e+00 2.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.88274122e+09] + 0.00000000e+00 2.00000000e+00 0.00000000e+00 2.00000000e+00 + 1.65222075e+10] --- Actual line: [0.00000000e+00 2.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.88348006e+09] - --- Actual line: [0.0000000e+00 2.0000000e+00 1.0000000e+00 1.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 3.7733998e+09] + 0.00000000e+00 2.00000000e+00 0.00000000e+00 2.00000000e+00 + 1.65636408e+10] --- Actual line: [0.00000000e+00 2.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 + 0.00000000e+00 2.00000000e+00 0.00000000e+00 2.00000000e+00 + 1.66192188e+10] + --- Actual line: [0.00000000e+00 2.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.77953232e+09] + 0.00000000e+00 2.00000000e+00 0.00000000e+00 2.00000000e+00 + 1.66868299e+10] --- Actual line: [1.00000000e+00 3.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 8.62649023e+09] + 0.00000000e+00 2.00000000e+00 0.00000000e+00 2.00000000e+00 + 1.60725967e+10] --- Actual line: [1.00000000e+00 3.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 8.48766742e+09] + 0.00000000e+00 2.00000000e+00 0.00000000e+00 2.00000000e+00 + 1.60261033e+10] --- Actual line: [1.00000000e+00 3.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 8.62559732e+09] + 0.00000000e+00 2.00000000e+00 0.00000000e+00 2.00000000e+00 + 1.57801136e+10] --- Actual line: [1.00000000e+00 3.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.87481256e+09] + 0.00000000e+00 2.00000000e+00 0.00000000e+00 2.00000000e+00 + 1.65090329e+10] --- Actual line: [1.00000000e+00 3.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.80397363e+09] + 0.00000000e+00 2.00000000e+00 0.00000000e+00 2.00000000e+00 + 1.64678991e+10] --- Actual line: [1.00000000e+00 3.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.91283763e+09] + 0.00000000e+00 2.00000000e+00 0.00000000e+00 2.00000000e+00 + 1.63824315e+10] --- Actual line: [1.00000000e+00 3.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 4.49818273e+09] + 0.00000000e+00 2.00000000e+00 0.00000000e+00 2.00000000e+00 + 1.65330247e+10] --- Actual line: [1.00000000e+00 3.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 4.06997094e+09] - --- Actual line: [1.0000000e+00 3.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 - 1.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 3.9235227e+09] + 0.00000000e+00 2.00000000e+00 0.00000000e+00 2.00000000e+00 + 1.65983644e+10] + --- Actual line: [1.00000000e+00 3.00000000e+00 1.00000000e+00 0.00000000e+00 + 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 + 0.00000000e+00 2.00000000e+00 0.00000000e+00 2.00000000e+00 + 1.63247982e+10] --- Actual line: [1.00000000e+00 3.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.91239368e+09] + 0.00000000e+00 2.00000000e+00 0.00000000e+00 2.00000000e+00 + 1.65743476e+10] --- Actual line: [1.00000000e+00 3.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.91527348e+09] + 0.00000000e+00 2.00000000e+00 0.00000000e+00 2.00000000e+00 + 1.65787715e+10] --- Actual line: [1.00000000e+00 3.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.86006493e+09] + 0.00000000e+00 2.00000000e+00 0.00000000e+00 2.00000000e+00 + 1.65670435e+10] --- Actual line: [1.00000000e+00 3.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.86746955e+09] + 0.00000000e+00 2.00000000e+00 0.00000000e+00 2.00000000e+00 + 1.65097416e+10] --- Actual line: [1.00000000e+00 3.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.78034673e+09] + 0.00000000e+00 2.00000000e+00 0.00000000e+00 2.00000000e+00 + 1.67318092e+10] --- Actual line: [1.00000000e+00 3.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.91149079e+09] - --- remove_aberrant_points: do we remove value [0, 0.0, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0] ---- Computing the list of the 10 first neighbours of '100001-0-0' -*** START computing ci exp matrix -X = [[0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.]] -*** END computing ci exp matrix, first computation result [[[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - ... - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]]] ---- Ordered by distance, Printing the list of the 10 first neighbours of '100001-0-0' ---- Neighbour 0 in the list of neghbours, And at position 0 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3925232177.483298 - --- Energy: 23.92680302847992 - --- Workload: 93918300000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 1 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3912699841.144387 - --- Energy: 24.008138624748163 - --- Workload: 93936500000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 2 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3910282478.8062687 - --- Energy: 24.04973010017626 - --- Workload: 94041200000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 15 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 7988815658.07869 - --- Energy: 28.77615884915817 - --- Workload: 229888000000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 16 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 8007559135.824218 - --- Energy: 28.68325147336931 - --- Workload: 229682000000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 17 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 8163998399.856314 - --- Energy: 28.155953672150755 - --- Workload: 229866000000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 3 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3946501229.335133 - --- Energy: 23.768609723161067 - --- Workload: 93802800000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 4 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3938853242.267046 - --- Energy: 23.907751006381503 - --- Workload: 94169000000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 5 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3969482617.6356173 - --- Energy: 23.647042756264316 - --- Workload: 93866600000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 6 in the X datas point --------------- - --- Configuration: 100100-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3914798329.164073 - --- Energy: 24.34321151135318 - --- Workload: 95298900000.0 --------------- ---- Ordered by energy, Printing the list of the 10 first neighbours of '100001-0-0' ---- Neighbour 0 in the list of neghbours, And at position 5 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3969482617.6356173 - --- Energy: 23.647042756264316 - --- Workload: 93866600000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 3 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3946501229.335133 - --- Energy: 23.768609723161067 - --- Workload: 93802800000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 4 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3938853242.267046 - --- Energy: 23.907751006381503 - --- Workload: 94169000000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 0 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3925232177.483298 - --- Energy: 23.92680302847992 - --- Workload: 93918300000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 1 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3912699841.144387 - --- Energy: 24.008138624748163 - --- Workload: 93936500000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 2 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3910282478.8062687 - --- Energy: 24.04973010017626 - --- Workload: 94041200000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 6 in the X datas point --------------- - --- Configuration: 100100-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3914798329.164073 - --- Energy: 24.34321151135318 - --- Workload: 95298900000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 17 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8163998399.856314 - --- Energy: 28.155953672150755 - --- Workload: 229866000000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 16 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8007559135.824218 - --- Energy: 28.68325147336931 - --- Workload: 229682000000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 15 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 7988815658.07869 - --- Energy: 28.77615884915817 - --- Workload: 229888000000.0 --------------- --------------- ---- Median at position 4 in the list of neghbours, And at position 1 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Energy efficiency: 3912699841.144387 - --- Energy: 24.008138624748163 - --- Workload: 93936500000.0 --------------- ---- Comparing the median energy with the energy of that data point ---- The energy of the current configuration (24.008138624748163 mAh) it is NOT far from the median. ---- Median :24.008138624748163, the gap is : 10 ---- So No we don't romove this configuration '100001-0-0' - --- remove_aberrant_points: The value [0, 0.0, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0] is not an abberant point. - --- remove_aberrant_points: do we remove value [0, 0.0, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0] ---- Computing the list of the 10 first neighbours of '100001-0-0' -*** START computing ci exp matrix -X = [[0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.]] -*** END computing ci exp matrix, cached result [[[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - ... - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]]] ---- Ordered by distance, Printing the list of the 10 first neighbours of '100001-0-0' ---- Neighbour 0 in the list of neghbours, And at position 0 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3925232177.483298 - --- Energy: 23.92680302847992 - --- Workload: 93918300000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 1 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3912699841.144387 - --- Energy: 24.008138624748163 - --- Workload: 93936500000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 2 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3910282478.8062687 - --- Energy: 24.04973010017626 - --- Workload: 94041200000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 15 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 7988815658.07869 - --- Energy: 28.77615884915817 - --- Workload: 229888000000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 16 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 8007559135.824218 - --- Energy: 28.68325147336931 - --- Workload: 229682000000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 17 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 8163998399.856314 - --- Energy: 28.155953672150755 - --- Workload: 229866000000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 3 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3946501229.335133 - --- Energy: 23.768609723161067 - --- Workload: 93802800000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 4 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3938853242.267046 - --- Energy: 23.907751006381503 - --- Workload: 94169000000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 5 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3969482617.6356173 - --- Energy: 23.647042756264316 - --- Workload: 93866600000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 6 in the X datas point --------------- - --- Configuration: 100100-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3914798329.164073 - --- Energy: 24.34321151135318 - --- Workload: 95298900000.0 --------------- ---- Ordered by energy, Printing the list of the 10 first neighbours of '100001-0-0' ---- Neighbour 0 in the list of neghbours, And at position 5 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3969482617.6356173 - --- Energy: 23.647042756264316 - --- Workload: 93866600000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 3 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3946501229.335133 - --- Energy: 23.768609723161067 - --- Workload: 93802800000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 4 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3938853242.267046 - --- Energy: 23.907751006381503 - --- Workload: 94169000000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 0 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3925232177.483298 - --- Energy: 23.92680302847992 - --- Workload: 93918300000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 1 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3912699841.144387 - --- Energy: 24.008138624748163 - --- Workload: 93936500000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 2 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3910282478.8062687 - --- Energy: 24.04973010017626 - --- Workload: 94041200000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 6 in the X datas point --------------- - --- Configuration: 100100-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3914798329.164073 - --- Energy: 24.34321151135318 - --- Workload: 95298900000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 17 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8163998399.856314 - --- Energy: 28.155953672150755 - --- Workload: 229866000000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 16 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8007559135.824218 - --- Energy: 28.68325147336931 - --- Workload: 229682000000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 15 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 7988815658.07869 - --- Energy: 28.77615884915817 - --- Workload: 229888000000.0 --------------- --------------- ---- Median at position 4 in the list of neghbours, And at position 1 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Energy efficiency: 3912699841.144387 - --- Energy: 24.008138624748163 - --- Workload: 93936500000.0 --------------- ---- Comparing the median energy with the energy of that data point ---- The energy of the current configuration (24.008138624748163 mAh) it is NOT far from the median. ---- Median :24.008138624748163, the gap is : 10 ---- So No we don't romove this configuration '100001-0-0' - --- remove_aberrant_points: The value [0, 0.0, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0] is not an abberant point. - --- remove_aberrant_points: do we remove value [0, 0.0, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0] ---- Computing the list of the 10 first neighbours of '100001-0-0' -*** START computing ci exp matrix -X = [[0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.]] -*** END computing ci exp matrix, cached result [[[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - ... - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]]] ---- Ordered by distance, Printing the list of the 10 first neighbours of '100001-0-0' ---- Neighbour 0 in the list of neghbours, And at position 0 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3925232177.483298 - --- Energy: 23.92680302847992 - --- Workload: 93918300000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 1 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3912699841.144387 - --- Energy: 24.008138624748163 - --- Workload: 93936500000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 2 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3910282478.8062687 - --- Energy: 24.04973010017626 - --- Workload: 94041200000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 15 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 7988815658.07869 - --- Energy: 28.77615884915817 - --- Workload: 229888000000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 16 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 8007559135.824218 - --- Energy: 28.68325147336931 - --- Workload: 229682000000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 17 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 8163998399.856314 - --- Energy: 28.155953672150755 - --- Workload: 229866000000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 3 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3946501229.335133 - --- Energy: 23.768609723161067 - --- Workload: 93802800000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 4 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3938853242.267046 - --- Energy: 23.907751006381503 - --- Workload: 94169000000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 5 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3969482617.6356173 - --- Energy: 23.647042756264316 - --- Workload: 93866600000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 6 in the X datas point --------------- - --- Configuration: 100100-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3914798329.164073 - --- Energy: 24.34321151135318 - --- Workload: 95298900000.0 --------------- ---- Ordered by energy, Printing the list of the 10 first neighbours of '100001-0-0' ---- Neighbour 0 in the list of neghbours, And at position 5 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3969482617.6356173 - --- Energy: 23.647042756264316 - --- Workload: 93866600000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 3 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3946501229.335133 - --- Energy: 23.768609723161067 - --- Workload: 93802800000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 4 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3938853242.267046 - --- Energy: 23.907751006381503 - --- Workload: 94169000000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 0 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3925232177.483298 - --- Energy: 23.92680302847992 - --- Workload: 93918300000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 1 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3912699841.144387 - --- Energy: 24.008138624748163 - --- Workload: 93936500000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 2 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3910282478.8062687 - --- Energy: 24.04973010017626 - --- Workload: 94041200000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 6 in the X datas point --------------- - --- Configuration: 100100-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3914798329.164073 - --- Energy: 24.34321151135318 - --- Workload: 95298900000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 17 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8163998399.856314 - --- Energy: 28.155953672150755 - --- Workload: 229866000000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 16 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8007559135.824218 - --- Energy: 28.68325147336931 - --- Workload: 229682000000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 15 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 7988815658.07869 - --- Energy: 28.77615884915817 - --- Workload: 229888000000.0 --------------- --------------- ---- Median at position 4 in the list of neghbours, And at position 1 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Energy efficiency: 3912699841.144387 - --- Energy: 24.008138624748163 - --- Workload: 93936500000.0 --------------- ---- Comparing the median energy with the energy of that data point ---- The energy of the current configuration (24.008138624748163 mAh) it is NOT far from the median. ---- Median :24.008138624748163, the gap is : 10 ---- So No we don't romove this configuration '100001-0-0' - --- remove_aberrant_points: The value [0, 0.0, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0] is not an abberant point. - --- remove_aberrant_points: do we remove value [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0] ---- Computing the list of the 10 first neighbours of '100010-0-0' -*** START computing ci exp matrix -X = [[0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.]] -*** END computing ci exp matrix, cached result [[[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - ... - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]]] ---- Ordered by distance, Printing the list of the 10 first neighbours of '100010-0-0' ---- Neighbour 0 in the list of neghbours, And at position 3 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3946501229.335133 - --- Energy: 23.768609723161067 - --- Workload: 93802800000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 4 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3938853242.267046 - --- Energy: 23.907751006381503 - --- Workload: 94169000000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 5 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3969482617.6356173 - --- Energy: 23.647042756264316 - --- Workload: 93866600000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 18 in the X datas point --------------- - --- Configuration: 200020-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3913174484.5370913 - --- Energy: 24.03237046200954 - --- Workload: 94042900000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 19 in the X datas point --------------- - --- Configuration: 200020-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3792360668.6690335 - --- Energy: 24.734270276684956 - --- Workload: 93801200000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 20 in the X datas point --------------- - --- Configuration: 200020-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3951304127.927423 - --- Energy: 23.743288058460422 - --- Workload: 93816800000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 0 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3925232177.483298 - --- Energy: 23.92680302847992 - --- Workload: 93918300000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 1 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3912699841.144387 - --- Energy: 24.008138624748163 - --- Workload: 93936500000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 2 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3910282478.8062687 - --- Energy: 24.04973010017626 - --- Workload: 94041200000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 6 in the X datas point --------------- - --- Configuration: 100100-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3914798329.164073 - --- Energy: 24.34321151135318 - --- Workload: 95298900000.0 --------------- ---- Ordered by energy, Printing the list of the 10 first neighbours of '100010-0-0' ---- Neighbour 0 in the list of neghbours, And at position 5 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3969482617.6356173 - --- Energy: 23.647042756264316 - --- Workload: 93866600000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 20 in the X datas point --------------- - --- Configuration: 200020-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3951304127.927423 - --- Energy: 23.743288058460422 - --- Workload: 93816800000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 3 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3946501229.335133 - --- Energy: 23.768609723161067 - --- Workload: 93802800000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 4 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3938853242.267046 - --- Energy: 23.907751006381503 - --- Workload: 94169000000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 0 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3925232177.483298 - --- Energy: 23.92680302847992 - --- Workload: 93918300000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 1 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3912699841.144387 - --- Energy: 24.008138624748163 - --- Workload: 93936500000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 18 in the X datas point --------------- - --- Configuration: 200020-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3913174484.5370913 - --- Energy: 24.03237046200954 - --- Workload: 94042900000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 2 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3910282478.8062687 - --- Energy: 24.04973010017626 - --- Workload: 94041200000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 6 in the X datas point --------------- - --- Configuration: 100100-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3914798329.164073 - --- Energy: 24.34321151135318 - --- Workload: 95298900000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 19 in the X datas point --------------- - --- Configuration: 200020-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3792360668.6690335 - --- Energy: 24.734270276684956 - --- Workload: 93801200000.0 --------------- --------------- ---- Median at position 4 in the list of neghbours, And at position 0 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Energy efficiency: 3925232177.483298 - --- Energy: 23.92680302847992 - --- Workload: 93918300000.0 --------------- ---- Comparing the median energy with the energy of that data point ---- The energy of the current configuration (23.92680302847992 mAh) it is NOT far from the median. ---- Median :23.92680302847992, the gap is : 10 ---- So No we don't romove this configuration '100010-0-0' - --- remove_aberrant_points: The value [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0] is not an abberant point. - --- remove_aberrant_points: do we remove value [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0] ---- Computing the list of the 10 first neighbours of '100010-0-0' -*** START computing ci exp matrix -X = [[0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.]] -*** END computing ci exp matrix, cached result [[[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - ... - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]]] ---- Ordered by distance, Printing the list of the 10 first neighbours of '100010-0-0' ---- Neighbour 0 in the list of neghbours, And at position 3 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3946501229.335133 - --- Energy: 23.768609723161067 - --- Workload: 93802800000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 4 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3938853242.267046 - --- Energy: 23.907751006381503 - --- Workload: 94169000000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 5 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3969482617.6356173 - --- Energy: 23.647042756264316 - --- Workload: 93866600000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 18 in the X datas point --------------- - --- Configuration: 200020-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3913174484.5370913 - --- Energy: 24.03237046200954 - --- Workload: 94042900000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 19 in the X datas point --------------- - --- Configuration: 200020-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3792360668.6690335 - --- Energy: 24.734270276684956 - --- Workload: 93801200000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 20 in the X datas point --------------- - --- Configuration: 200020-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3951304127.927423 - --- Energy: 23.743288058460422 - --- Workload: 93816800000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 0 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3925232177.483298 - --- Energy: 23.92680302847992 - --- Workload: 93918300000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 1 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3912699841.144387 - --- Energy: 24.008138624748163 - --- Workload: 93936500000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 2 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3910282478.8062687 - --- Energy: 24.04973010017626 - --- Workload: 94041200000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 6 in the X datas point --------------- - --- Configuration: 100100-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3914798329.164073 - --- Energy: 24.34321151135318 - --- Workload: 95298900000.0 --------------- ---- Ordered by energy, Printing the list of the 10 first neighbours of '100010-0-0' ---- Neighbour 0 in the list of neghbours, And at position 5 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3969482617.6356173 - --- Energy: 23.647042756264316 - --- Workload: 93866600000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 20 in the X datas point --------------- - --- Configuration: 200020-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3951304127.927423 - --- Energy: 23.743288058460422 - --- Workload: 93816800000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 3 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3946501229.335133 - --- Energy: 23.768609723161067 - --- Workload: 93802800000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 4 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3938853242.267046 - --- Energy: 23.907751006381503 - --- Workload: 94169000000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 0 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3925232177.483298 - --- Energy: 23.92680302847992 - --- Workload: 93918300000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 1 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3912699841.144387 - --- Energy: 24.008138624748163 - --- Workload: 93936500000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 18 in the X datas point --------------- - --- Configuration: 200020-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3913174484.5370913 - --- Energy: 24.03237046200954 - --- Workload: 94042900000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 2 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3910282478.8062687 - --- Energy: 24.04973010017626 - --- Workload: 94041200000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 6 in the X datas point --------------- - --- Configuration: 100100-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3914798329.164073 - --- Energy: 24.34321151135318 - --- Workload: 95298900000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 19 in the X datas point --------------- - --- Configuration: 200020-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3792360668.6690335 - --- Energy: 24.734270276684956 - --- Workload: 93801200000.0 --------------- --------------- ---- Median at position 4 in the list of neghbours, And at position 0 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Energy efficiency: 3925232177.483298 - --- Energy: 23.92680302847992 - --- Workload: 93918300000.0 --------------- ---- Comparing the median energy with the energy of that data point ---- The energy of the current configuration (23.92680302847992 mAh) it is NOT far from the median. ---- Median :23.92680302847992, the gap is : 10 ---- So No we don't romove this configuration '100010-0-0' - --- remove_aberrant_points: The value [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0] is not an abberant point. - --- remove_aberrant_points: do we remove value [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0] ---- Computing the list of the 10 first neighbours of '100010-0-0' -*** START computing ci exp matrix -X = [[0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.]] -*** END computing ci exp matrix, cached result [[[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - ... - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]]] ---- Ordered by distance, Printing the list of the 10 first neighbours of '100010-0-0' ---- Neighbour 0 in the list of neghbours, And at position 3 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3946501229.335133 - --- Energy: 23.768609723161067 - --- Workload: 93802800000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 4 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3938853242.267046 - --- Energy: 23.907751006381503 - --- Workload: 94169000000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 5 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3969482617.6356173 - --- Energy: 23.647042756264316 - --- Workload: 93866600000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 18 in the X datas point --------------- - --- Configuration: 200020-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3913174484.5370913 - --- Energy: 24.03237046200954 - --- Workload: 94042900000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 19 in the X datas point --------------- - --- Configuration: 200020-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3792360668.6690335 - --- Energy: 24.734270276684956 - --- Workload: 93801200000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 20 in the X datas point --------------- - --- Configuration: 200020-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3951304127.927423 - --- Energy: 23.743288058460422 - --- Workload: 93816800000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 0 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3925232177.483298 - --- Energy: 23.92680302847992 - --- Workload: 93918300000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 1 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3912699841.144387 - --- Energy: 24.008138624748163 - --- Workload: 93936500000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 2 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3910282478.8062687 - --- Energy: 24.04973010017626 - --- Workload: 94041200000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 6 in the X datas point --------------- - --- Configuration: 100100-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3914798329.164073 - --- Energy: 24.34321151135318 - --- Workload: 95298900000.0 --------------- ---- Ordered by energy, Printing the list of the 10 first neighbours of '100010-0-0' ---- Neighbour 0 in the list of neghbours, And at position 5 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3969482617.6356173 - --- Energy: 23.647042756264316 - --- Workload: 93866600000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 20 in the X datas point --------------- - --- Configuration: 200020-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3951304127.927423 - --- Energy: 23.743288058460422 - --- Workload: 93816800000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 3 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3946501229.335133 - --- Energy: 23.768609723161067 - --- Workload: 93802800000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 4 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3938853242.267046 - --- Energy: 23.907751006381503 - --- Workload: 94169000000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 0 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3925232177.483298 - --- Energy: 23.92680302847992 - --- Workload: 93918300000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 1 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3912699841.144387 - --- Energy: 24.008138624748163 - --- Workload: 93936500000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 18 in the X datas point --------------- - --- Configuration: 200020-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3913174484.5370913 - --- Energy: 24.03237046200954 - --- Workload: 94042900000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 2 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3910282478.8062687 - --- Energy: 24.04973010017626 - --- Workload: 94041200000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 6 in the X datas point --------------- - --- Configuration: 100100-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3914798329.164073 - --- Energy: 24.34321151135318 - --- Workload: 95298900000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 19 in the X datas point --------------- - --- Configuration: 200020-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3792360668.6690335 - --- Energy: 24.734270276684956 - --- Workload: 93801200000.0 --------------- --------------- ---- Median at position 4 in the list of neghbours, And at position 0 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Energy efficiency: 3925232177.483298 - --- Energy: 23.92680302847992 - --- Workload: 93918300000.0 --------------- ---- Comparing the median energy with the energy of that data point ---- The energy of the current configuration (23.92680302847992 mAh) it is NOT far from the median. ---- Median :23.92680302847992, the gap is : 10 ---- So No we don't romove this configuration '100010-0-0' - --- remove_aberrant_points: The value [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0] is not an abberant point. - --- remove_aberrant_points: do we remove value [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0] ---- Computing the list of the 10 first neighbours of '100100-0-0' -*** START computing ci exp matrix -X = [[0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.]] -*** END computing ci exp matrix, cached result [[[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - ... - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]]] ---- Ordered by distance, Printing the list of the 10 first neighbours of '100100-0-0' ---- Neighbour 0 in the list of neghbours, And at position 6 in the X datas point --------------- - --- Configuration: 100100-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3914798329.164073 - --- Energy: 24.34321151135318 - --- Workload: 95298900000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 7 in the X datas point --------------- - --- Configuration: 100100-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3977186856.1928773 - --- Energy: 23.66236144271759 - --- Workload: 94109700000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 8 in the X datas point --------------- - --- Configuration: 100100-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3858277741.981534 - --- Energy: 24.282936366326563 - --- Workload: 93690400000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 21 in the X datas point --------------- - --- Configuration: 200200-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3947700859.019707 - --- Energy: 23.750591714866186 - --- Workload: 93760200000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 22 in the X datas point --------------- - --- Configuration: 200200-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3979877738.155884 - --- Energy: 23.505960200642747 - --- Workload: 93550800000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 23 in the X datas point --------------- - --- Configuration: 200200-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 4070782770.8190007 - --- Energy: 23.42848921387117 - --- Workload: 95372100000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 0 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3925232177.483298 - --- Energy: 23.92680302847992 - --- Workload: 93918300000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 1 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3912699841.144387 - --- Energy: 24.008138624748163 - --- Workload: 93936500000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 2 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3910282478.8062687 - --- Energy: 24.04973010017626 - --- Workload: 94041200000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 3 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3946501229.335133 - --- Energy: 23.768609723161067 - --- Workload: 93802800000.0 --------------- ---- Ordered by energy, Printing the list of the 10 first neighbours of '100100-0-0' ---- Neighbour 0 in the list of neghbours, And at position 23 in the X datas point --------------- - --- Configuration: 200200-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 4070782770.8190007 - --- Energy: 23.42848921387117 - --- Workload: 95372100000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 22 in the X datas point --------------- - --- Configuration: 200200-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3979877738.155884 - --- Energy: 23.505960200642747 - --- Workload: 93550800000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 7 in the X datas point --------------- - --- Configuration: 100100-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3977186856.1928773 - --- Energy: 23.66236144271759 - --- Workload: 94109700000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 21 in the X datas point --------------- - --- Configuration: 200200-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3947700859.019707 - --- Energy: 23.750591714866186 - --- Workload: 93760200000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 3 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3946501229.335133 - --- Energy: 23.768609723161067 - --- Workload: 93802800000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 0 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3925232177.483298 - --- Energy: 23.92680302847992 - --- Workload: 93918300000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 1 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3912699841.144387 - --- Energy: 24.008138624748163 - --- Workload: 93936500000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 2 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3910282478.8062687 - --- Energy: 24.04973010017626 - --- Workload: 94041200000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 8 in the X datas point --------------- - --- Configuration: 100100-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3858277741.981534 - --- Energy: 24.282936366326563 - --- Workload: 93690400000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 6 in the X datas point --------------- - --- Configuration: 100100-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3914798329.164073 - --- Energy: 24.34321151135318 - --- Workload: 95298900000.0 --------------- --------------- ---- Median at position 4 in the list of neghbours, And at position 3 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Energy efficiency: 3946501229.335133 - --- Energy: 23.768609723161067 - --- Workload: 93802800000.0 --------------- ---- Comparing the median energy with the energy of that data point ---- The energy of the current configuration (23.768609723161067 mAh) it is NOT far from the median. ---- Median :23.768609723161067, the gap is : 10 ---- So No we don't romove this configuration '100100-0-0' - --- remove_aberrant_points: The value [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0] is not an abberant point. - --- remove_aberrant_points: do we remove value [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0] ---- Computing the list of the 10 first neighbours of '100100-0-0' -*** START computing ci exp matrix -X = [[0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.]] -*** END computing ci exp matrix, cached result [[[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - ... - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]]] ---- Ordered by distance, Printing the list of the 10 first neighbours of '100100-0-0' ---- Neighbour 0 in the list of neghbours, And at position 6 in the X datas point --------------- - --- Configuration: 100100-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3914798329.164073 - --- Energy: 24.34321151135318 - --- Workload: 95298900000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 7 in the X datas point --------------- - --- Configuration: 100100-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3977186856.1928773 - --- Energy: 23.66236144271759 - --- Workload: 94109700000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 8 in the X datas point --------------- - --- Configuration: 100100-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3858277741.981534 - --- Energy: 24.282936366326563 - --- Workload: 93690400000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 21 in the X datas point --------------- - --- Configuration: 200200-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3947700859.019707 - --- Energy: 23.750591714866186 - --- Workload: 93760200000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 22 in the X datas point --------------- - --- Configuration: 200200-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3979877738.155884 - --- Energy: 23.505960200642747 - --- Workload: 93550800000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 23 in the X datas point --------------- - --- Configuration: 200200-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 4070782770.8190007 - --- Energy: 23.42848921387117 - --- Workload: 95372100000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 0 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3925232177.483298 - --- Energy: 23.92680302847992 - --- Workload: 93918300000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 1 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3912699841.144387 - --- Energy: 24.008138624748163 - --- Workload: 93936500000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 2 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3910282478.8062687 - --- Energy: 24.04973010017626 - --- Workload: 94041200000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 3 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3946501229.335133 - --- Energy: 23.768609723161067 - --- Workload: 93802800000.0 --------------- ---- Ordered by energy, Printing the list of the 10 first neighbours of '100100-0-0' ---- Neighbour 0 in the list of neghbours, And at position 23 in the X datas point --------------- - --- Configuration: 200200-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 4070782770.8190007 - --- Energy: 23.42848921387117 - --- Workload: 95372100000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 22 in the X datas point --------------- - --- Configuration: 200200-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3979877738.155884 - --- Energy: 23.505960200642747 - --- Workload: 93550800000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 7 in the X datas point --------------- - --- Configuration: 100100-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3977186856.1928773 - --- Energy: 23.66236144271759 - --- Workload: 94109700000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 21 in the X datas point --------------- - --- Configuration: 200200-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3947700859.019707 - --- Energy: 23.750591714866186 - --- Workload: 93760200000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 3 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3946501229.335133 - --- Energy: 23.768609723161067 - --- Workload: 93802800000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 0 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3925232177.483298 - --- Energy: 23.92680302847992 - --- Workload: 93918300000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 1 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3912699841.144387 - --- Energy: 24.008138624748163 - --- Workload: 93936500000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 2 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3910282478.8062687 - --- Energy: 24.04973010017626 - --- Workload: 94041200000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 8 in the X datas point --------------- - --- Configuration: 100100-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3858277741.981534 - --- Energy: 24.282936366326563 - --- Workload: 93690400000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 6 in the X datas point --------------- - --- Configuration: 100100-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3914798329.164073 - --- Energy: 24.34321151135318 - --- Workload: 95298900000.0 --------------- --------------- ---- Median at position 4 in the list of neghbours, And at position 3 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Energy efficiency: 3946501229.335133 - --- Energy: 23.768609723161067 - --- Workload: 93802800000.0 --------------- ---- Comparing the median energy with the energy of that data point ---- The energy of the current configuration (23.768609723161067 mAh) it is NOT far from the median. ---- Median :23.768609723161067, the gap is : 10 ---- So No we don't romove this configuration '100100-0-0' - --- remove_aberrant_points: The value [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0] is not an abberant point. - --- remove_aberrant_points: do we remove value [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0] ---- Computing the list of the 10 first neighbours of '100100-0-0' -*** START computing ci exp matrix -X = [[0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.]] -*** END computing ci exp matrix, cached result [[[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - ... - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]]] ---- Ordered by distance, Printing the list of the 10 first neighbours of '100100-0-0' ---- Neighbour 0 in the list of neghbours, And at position 6 in the X datas point --------------- - --- Configuration: 100100-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3914798329.164073 - --- Energy: 24.34321151135318 - --- Workload: 95298900000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 7 in the X datas point --------------- - --- Configuration: 100100-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3977186856.1928773 - --- Energy: 23.66236144271759 - --- Workload: 94109700000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 8 in the X datas point --------------- - --- Configuration: 100100-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3858277741.981534 - --- Energy: 24.282936366326563 - --- Workload: 93690400000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 21 in the X datas point --------------- - --- Configuration: 200200-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3947700859.019707 - --- Energy: 23.750591714866186 - --- Workload: 93760200000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 22 in the X datas point --------------- - --- Configuration: 200200-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3979877738.155884 - --- Energy: 23.505960200642747 - --- Workload: 93550800000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 23 in the X datas point --------------- - --- Configuration: 200200-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 4070782770.8190007 - --- Energy: 23.42848921387117 - --- Workload: 95372100000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 0 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3925232177.483298 - --- Energy: 23.92680302847992 - --- Workload: 93918300000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 1 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3912699841.144387 - --- Energy: 24.008138624748163 - --- Workload: 93936500000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 2 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3910282478.8062687 - --- Energy: 24.04973010017626 - --- Workload: 94041200000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 3 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3946501229.335133 - --- Energy: 23.768609723161067 - --- Workload: 93802800000.0 --------------- ---- Ordered by energy, Printing the list of the 10 first neighbours of '100100-0-0' ---- Neighbour 0 in the list of neghbours, And at position 23 in the X datas point --------------- - --- Configuration: 200200-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 4070782770.8190007 - --- Energy: 23.42848921387117 - --- Workload: 95372100000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 22 in the X datas point --------------- - --- Configuration: 200200-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3979877738.155884 - --- Energy: 23.505960200642747 - --- Workload: 93550800000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 7 in the X datas point --------------- - --- Configuration: 100100-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3977186856.1928773 - --- Energy: 23.66236144271759 - --- Workload: 94109700000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 21 in the X datas point --------------- - --- Configuration: 200200-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3947700859.019707 - --- Energy: 23.750591714866186 - --- Workload: 93760200000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 3 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3946501229.335133 - --- Energy: 23.768609723161067 - --- Workload: 93802800000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 0 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3925232177.483298 - --- Energy: 23.92680302847992 - --- Workload: 93918300000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 1 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3912699841.144387 - --- Energy: 24.008138624748163 - --- Workload: 93936500000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 2 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3910282478.8062687 - --- Energy: 24.04973010017626 - --- Workload: 94041200000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 8 in the X datas point --------------- - --- Configuration: 100100-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3858277741.981534 - --- Energy: 24.282936366326563 - --- Workload: 93690400000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 6 in the X datas point --------------- - --- Configuration: 100100-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3914798329.164073 - --- Energy: 24.34321151135318 - --- Workload: 95298900000.0 --------------- --------------- ---- Median at position 4 in the list of neghbours, And at position 3 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Energy efficiency: 3946501229.335133 - --- Energy: 23.768609723161067 - --- Workload: 93802800000.0 --------------- ---- Comparing the median energy with the energy of that data point ---- The energy of the current configuration (23.768609723161067 mAh) it is NOT far from the median. ---- Median :23.768609723161067, the gap is : 10 ---- So No we don't romove this configuration '100100-0-0' - --- remove_aberrant_points: The value [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0] is not an abberant point. - --- remove_aberrant_points: do we remove value [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0] ---- Computing the list of the 10 first neighbours of '101000-0-0' -*** START computing ci exp matrix -X = [[0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.]] -*** END computing ci exp matrix, cached result [[[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - ... - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]]] ---- Ordered by distance, Printing the list of the 10 first neighbours of '101000-0-0' ---- Neighbour 0 in the list of neghbours, And at position 9 in the X datas point --------------- - --- Configuration: 101000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3932131411.8317833 - --- Energy: 23.827633134312034 - --- Workload: 93693400000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 10 in the X datas point --------------- - --- Configuration: 101000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3943824168.5432696 - --- Energy: 23.826661712544205 - --- Workload: 93968300000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 11 in the X datas point --------------- - --- Configuration: 101000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3916945096.180587 - --- Energy: 24.05507728451459 - --- Workload: 94222600000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 24 in the X datas point --------------- - --- Configuration: 202000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3927683491.5535164 - --- Energy: 24.092534379540634 - --- Workload: 94627800000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 25 in the X datas point --------------- - --- Configuration: 202000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3867649049.525246 - --- Energy: 24.21312283502527 - --- Workload: 93647900000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 26 in the X datas point --------------- - --- Configuration: 202000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3861719546.4796567 - --- Energy: 24.183210213672954 - --- Workload: 93388700000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 0 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3925232177.483298 - --- Energy: 23.92680302847992 - --- Workload: 93918300000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 1 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3912699841.144387 - --- Energy: 24.008138624748163 - --- Workload: 93936500000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 2 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3910282478.8062687 - --- Energy: 24.04973010017626 - --- Workload: 94041200000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 3 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3946501229.335133 - --- Energy: 23.768609723161067 - --- Workload: 93802800000.0 --------------- ---- Ordered by energy, Printing the list of the 10 first neighbours of '101000-0-0' ---- Neighbour 0 in the list of neghbours, And at position 3 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3946501229.335133 - --- Energy: 23.768609723161067 - --- Workload: 93802800000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 10 in the X datas point --------------- - --- Configuration: 101000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3943824168.5432696 - --- Energy: 23.826661712544205 - --- Workload: 93968300000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 9 in the X datas point --------------- - --- Configuration: 101000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3932131411.8317833 - --- Energy: 23.827633134312034 - --- Workload: 93693400000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 0 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3925232177.483298 - --- Energy: 23.92680302847992 - --- Workload: 93918300000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 1 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3912699841.144387 - --- Energy: 24.008138624748163 - --- Workload: 93936500000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 2 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3910282478.8062687 - --- Energy: 24.04973010017626 - --- Workload: 94041200000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 11 in the X datas point --------------- - --- Configuration: 101000-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3916945096.180587 - --- Energy: 24.05507728451459 - --- Workload: 94222600000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 24 in the X datas point --------------- - --- Configuration: 202000-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3927683491.5535164 - --- Energy: 24.092534379540634 - --- Workload: 94627800000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 26 in the X datas point --------------- - --- Configuration: 202000-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3861719546.4796567 - --- Energy: 24.183210213672954 - --- Workload: 93388700000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 25 in the X datas point --------------- - --- Configuration: 202000-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3867649049.525246 - --- Energy: 24.21312283502527 - --- Workload: 93647900000.0 --------------- --------------- ---- Median at position 4 in the list of neghbours, And at position 1 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Energy efficiency: 3912699841.144387 - --- Energy: 24.008138624748163 - --- Workload: 93936500000.0 --------------- ---- Comparing the median energy with the energy of that data point ---- The energy of the current configuration (24.008138624748163 mAh) it is NOT far from the median. ---- Median :24.008138624748163, the gap is : 10 ---- So No we don't romove this configuration '101000-0-0' - --- remove_aberrant_points: The value [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0] is not an abberant point. - --- remove_aberrant_points: do we remove value [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0] ---- Computing the list of the 10 first neighbours of '101000-0-0' -*** START computing ci exp matrix -X = [[0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.]] -*** END computing ci exp matrix, cached result [[[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - ... - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]]] ---- Ordered by distance, Printing the list of the 10 first neighbours of '101000-0-0' ---- Neighbour 0 in the list of neghbours, And at position 9 in the X datas point --------------- - --- Configuration: 101000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3932131411.8317833 - --- Energy: 23.827633134312034 - --- Workload: 93693400000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 10 in the X datas point --------------- - --- Configuration: 101000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3943824168.5432696 - --- Energy: 23.826661712544205 - --- Workload: 93968300000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 11 in the X datas point --------------- - --- Configuration: 101000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3916945096.180587 - --- Energy: 24.05507728451459 - --- Workload: 94222600000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 24 in the X datas point --------------- - --- Configuration: 202000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3927683491.5535164 - --- Energy: 24.092534379540634 - --- Workload: 94627800000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 25 in the X datas point --------------- - --- Configuration: 202000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3867649049.525246 - --- Energy: 24.21312283502527 - --- Workload: 93647900000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 26 in the X datas point --------------- - --- Configuration: 202000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3861719546.4796567 - --- Energy: 24.183210213672954 - --- Workload: 93388700000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 0 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3925232177.483298 - --- Energy: 23.92680302847992 - --- Workload: 93918300000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 1 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3912699841.144387 - --- Energy: 24.008138624748163 - --- Workload: 93936500000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 2 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3910282478.8062687 - --- Energy: 24.04973010017626 - --- Workload: 94041200000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 3 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3946501229.335133 - --- Energy: 23.768609723161067 - --- Workload: 93802800000.0 --------------- ---- Ordered by energy, Printing the list of the 10 first neighbours of '101000-0-0' ---- Neighbour 0 in the list of neghbours, And at position 3 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3946501229.335133 - --- Energy: 23.768609723161067 - --- Workload: 93802800000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 10 in the X datas point --------------- - --- Configuration: 101000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3943824168.5432696 - --- Energy: 23.826661712544205 - --- Workload: 93968300000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 9 in the X datas point --------------- - --- Configuration: 101000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3932131411.8317833 - --- Energy: 23.827633134312034 - --- Workload: 93693400000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 0 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3925232177.483298 - --- Energy: 23.92680302847992 - --- Workload: 93918300000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 1 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3912699841.144387 - --- Energy: 24.008138624748163 - --- Workload: 93936500000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 2 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3910282478.8062687 - --- Energy: 24.04973010017626 - --- Workload: 94041200000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 11 in the X datas point --------------- - --- Configuration: 101000-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3916945096.180587 - --- Energy: 24.05507728451459 - --- Workload: 94222600000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 24 in the X datas point --------------- - --- Configuration: 202000-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3927683491.5535164 - --- Energy: 24.092534379540634 - --- Workload: 94627800000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 26 in the X datas point --------------- - --- Configuration: 202000-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3861719546.4796567 - --- Energy: 24.183210213672954 - --- Workload: 93388700000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 25 in the X datas point --------------- - --- Configuration: 202000-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3867649049.525246 - --- Energy: 24.21312283502527 - --- Workload: 93647900000.0 --------------- --------------- ---- Median at position 4 in the list of neghbours, And at position 1 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Energy efficiency: 3912699841.144387 - --- Energy: 24.008138624748163 - --- Workload: 93936500000.0 --------------- ---- Comparing the median energy with the energy of that data point ---- The energy of the current configuration (24.008138624748163 mAh) it is NOT far from the median. ---- Median :24.008138624748163, the gap is : 10 ---- So No we don't romove this configuration '101000-0-0' - --- remove_aberrant_points: The value [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0] is not an abberant point. - --- remove_aberrant_points: do we remove value [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0] ---- Computing the list of the 10 first neighbours of '101000-0-0' -*** START computing ci exp matrix -X = [[0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.]] -*** END computing ci exp matrix, cached result [[[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - ... - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]]] ---- Ordered by distance, Printing the list of the 10 first neighbours of '101000-0-0' ---- Neighbour 0 in the list of neghbours, And at position 9 in the X datas point --------------- - --- Configuration: 101000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3932131411.8317833 - --- Energy: 23.827633134312034 - --- Workload: 93693400000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 10 in the X datas point --------------- - --- Configuration: 101000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3943824168.5432696 - --- Energy: 23.826661712544205 - --- Workload: 93968300000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 11 in the X datas point --------------- - --- Configuration: 101000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3916945096.180587 - --- Energy: 24.05507728451459 - --- Workload: 94222600000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 24 in the X datas point --------------- - --- Configuration: 202000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3927683491.5535164 - --- Energy: 24.092534379540634 - --- Workload: 94627800000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 25 in the X datas point --------------- - --- Configuration: 202000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3867649049.525246 - --- Energy: 24.21312283502527 - --- Workload: 93647900000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 26 in the X datas point --------------- - --- Configuration: 202000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3861719546.4796567 - --- Energy: 24.183210213672954 - --- Workload: 93388700000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 0 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3925232177.483298 - --- Energy: 23.92680302847992 - --- Workload: 93918300000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 1 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3912699841.144387 - --- Energy: 24.008138624748163 - --- Workload: 93936500000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 2 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3910282478.8062687 - --- Energy: 24.04973010017626 - --- Workload: 94041200000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 3 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3946501229.335133 - --- Energy: 23.768609723161067 - --- Workload: 93802800000.0 --------------- ---- Ordered by energy, Printing the list of the 10 first neighbours of '101000-0-0' ---- Neighbour 0 in the list of neghbours, And at position 3 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3946501229.335133 - --- Energy: 23.768609723161067 - --- Workload: 93802800000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 10 in the X datas point --------------- - --- Configuration: 101000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3943824168.5432696 - --- Energy: 23.826661712544205 - --- Workload: 93968300000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 9 in the X datas point --------------- - --- Configuration: 101000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3932131411.8317833 - --- Energy: 23.827633134312034 - --- Workload: 93693400000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 0 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3925232177.483298 - --- Energy: 23.92680302847992 - --- Workload: 93918300000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 1 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3912699841.144387 - --- Energy: 24.008138624748163 - --- Workload: 93936500000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 2 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3910282478.8062687 - --- Energy: 24.04973010017626 - --- Workload: 94041200000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 11 in the X datas point --------------- - --- Configuration: 101000-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3916945096.180587 - --- Energy: 24.05507728451459 - --- Workload: 94222600000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 24 in the X datas point --------------- - --- Configuration: 202000-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3927683491.5535164 - --- Energy: 24.092534379540634 - --- Workload: 94627800000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 26 in the X datas point --------------- - --- Configuration: 202000-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3861719546.4796567 - --- Energy: 24.183210213672954 - --- Workload: 93388700000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 25 in the X datas point --------------- - --- Configuration: 202000-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3867649049.525246 - --- Energy: 24.21312283502527 - --- Workload: 93647900000.0 --------------- --------------- ---- Median at position 4 in the list of neghbours, And at position 1 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Energy efficiency: 3912699841.144387 - --- Energy: 24.008138624748163 - --- Workload: 93936500000.0 --------------- ---- Comparing the median energy with the energy of that data point ---- The energy of the current configuration (24.008138624748163 mAh) it is NOT far from the median. ---- Median :24.008138624748163, the gap is : 10 ---- So No we don't romove this configuration '101000-0-0' - --- remove_aberrant_points: The value [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0] is not an abberant point. - --- remove_aberrant_points: do we remove value [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0] ---- Computing the list of the 10 first neighbours of '110000-0-0' -*** START computing ci exp matrix -X = [[0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.]] -*** END computing ci exp matrix, cached result [[[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - ... - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]]] ---- Ordered by distance, Printing the list of the 10 first neighbours of '110000-0-0' ---- Neighbour 0 in the list of neghbours, And at position 12 in the X datas point --------------- - --- Configuration: 110000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3819709702.062643 - --- Energy: 24.42419267600996 - --- Workload: 93293200000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 13 in the X datas point --------------- - --- Configuration: 110000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3887057652.839107 - --- Energy: 23.99322866107899 - --- Workload: 93263200000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 14 in the X datas point --------------- - --- Configuration: 110000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3856284007.604592 - --- Energy: 24.207459297994163 - --- Workload: 93350900000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 27 in the X datas point --------------- - --- Configuration: 220000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3901144986.0534062 - --- Energy: 23.877164417300968 - --- Workload: 93148100000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 28 in the X datas point --------------- - --- Configuration: 220000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3847826170.604917 - --- Energy: 24.264174107781162 - --- Workload: 93364400000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 29 in the X datas point --------------- - --- Configuration: 220000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3829378223.8577924 - --- Energy: 24.344031085422476 - --- Workload: 93222400000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 0 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3925232177.483298 - --- Energy: 23.92680302847992 - --- Workload: 93918300000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 1 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3912699841.144387 - --- Energy: 24.008138624748163 - --- Workload: 93936500000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 2 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3910282478.8062687 - --- Energy: 24.04973010017626 - --- Workload: 94041200000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 3 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3946501229.335133 - --- Energy: 23.768609723161067 - --- Workload: 93802800000.0 --------------- ---- Ordered by energy, Printing the list of the 10 first neighbours of '110000-0-0' ---- Neighbour 0 in the list of neghbours, And at position 3 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3946501229.335133 - --- Energy: 23.768609723161067 - --- Workload: 93802800000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 27 in the X datas point --------------- - --- Configuration: 220000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3901144986.0534062 - --- Energy: 23.877164417300968 - --- Workload: 93148100000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 0 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3925232177.483298 - --- Energy: 23.92680302847992 - --- Workload: 93918300000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 13 in the X datas point --------------- - --- Configuration: 110000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3887057652.839107 - --- Energy: 23.99322866107899 - --- Workload: 93263200000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 1 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3912699841.144387 - --- Energy: 24.008138624748163 - --- Workload: 93936500000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 2 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3910282478.8062687 - --- Energy: 24.04973010017626 - --- Workload: 94041200000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 14 in the X datas point --------------- - --- Configuration: 110000-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3856284007.604592 - --- Energy: 24.207459297994163 - --- Workload: 93350900000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 28 in the X datas point --------------- - --- Configuration: 220000-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3847826170.604917 - --- Energy: 24.264174107781162 - --- Workload: 93364400000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 29 in the X datas point --------------- - --- Configuration: 220000-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3829378223.8577924 - --- Energy: 24.344031085422476 - --- Workload: 93222400000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 12 in the X datas point --------------- - --- Configuration: 110000-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3819709702.062643 - --- Energy: 24.42419267600996 - --- Workload: 93293200000.0 --------------- --------------- ---- Median at position 4 in the list of neghbours, And at position 1 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Energy efficiency: 3912699841.144387 - --- Energy: 24.008138624748163 - --- Workload: 93936500000.0 --------------- ---- Comparing the median energy with the energy of that data point ---- The energy of the current configuration (24.008138624748163 mAh) it is NOT far from the median. ---- Median :24.008138624748163, the gap is : 10 ---- So No we don't romove this configuration '110000-0-0' - --- remove_aberrant_points: The value [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0] is not an abberant point. - --- remove_aberrant_points: do we remove value [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0] ---- Computing the list of the 10 first neighbours of '110000-0-0' -*** START computing ci exp matrix -X = [[0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.]] -*** END computing ci exp matrix, cached result [[[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - ... - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]]] ---- Ordered by distance, Printing the list of the 10 first neighbours of '110000-0-0' ---- Neighbour 0 in the list of neghbours, And at position 12 in the X datas point --------------- - --- Configuration: 110000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3819709702.062643 - --- Energy: 24.42419267600996 - --- Workload: 93293200000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 13 in the X datas point --------------- - --- Configuration: 110000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3887057652.839107 - --- Energy: 23.99322866107899 - --- Workload: 93263200000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 14 in the X datas point --------------- - --- Configuration: 110000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3856284007.604592 - --- Energy: 24.207459297994163 - --- Workload: 93350900000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 27 in the X datas point --------------- - --- Configuration: 220000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3901144986.0534062 - --- Energy: 23.877164417300968 - --- Workload: 93148100000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 28 in the X datas point --------------- - --- Configuration: 220000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3847826170.604917 - --- Energy: 24.264174107781162 - --- Workload: 93364400000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 29 in the X datas point --------------- - --- Configuration: 220000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3829378223.8577924 - --- Energy: 24.344031085422476 - --- Workload: 93222400000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 0 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3925232177.483298 - --- Energy: 23.92680302847992 - --- Workload: 93918300000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 1 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3912699841.144387 - --- Energy: 24.008138624748163 - --- Workload: 93936500000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 2 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3910282478.8062687 - --- Energy: 24.04973010017626 - --- Workload: 94041200000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 3 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3946501229.335133 - --- Energy: 23.768609723161067 - --- Workload: 93802800000.0 --------------- ---- Ordered by energy, Printing the list of the 10 first neighbours of '110000-0-0' ---- Neighbour 0 in the list of neghbours, And at position 3 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3946501229.335133 - --- Energy: 23.768609723161067 - --- Workload: 93802800000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 27 in the X datas point --------------- - --- Configuration: 220000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3901144986.0534062 - --- Energy: 23.877164417300968 - --- Workload: 93148100000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 0 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3925232177.483298 - --- Energy: 23.92680302847992 - --- Workload: 93918300000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 13 in the X datas point --------------- - --- Configuration: 110000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3887057652.839107 - --- Energy: 23.99322866107899 - --- Workload: 93263200000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 1 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3912699841.144387 - --- Energy: 24.008138624748163 - --- Workload: 93936500000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 2 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3910282478.8062687 - --- Energy: 24.04973010017626 - --- Workload: 94041200000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 14 in the X datas point --------------- - --- Configuration: 110000-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3856284007.604592 - --- Energy: 24.207459297994163 - --- Workload: 93350900000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 28 in the X datas point --------------- - --- Configuration: 220000-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3847826170.604917 - --- Energy: 24.264174107781162 - --- Workload: 93364400000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 29 in the X datas point --------------- - --- Configuration: 220000-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3829378223.8577924 - --- Energy: 24.344031085422476 - --- Workload: 93222400000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 12 in the X datas point --------------- - --- Configuration: 110000-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3819709702.062643 - --- Energy: 24.42419267600996 - --- Workload: 93293200000.0 --------------- --------------- ---- Median at position 4 in the list of neghbours, And at position 1 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Energy efficiency: 3912699841.144387 - --- Energy: 24.008138624748163 - --- Workload: 93936500000.0 --------------- ---- Comparing the median energy with the energy of that data point ---- The energy of the current configuration (24.008138624748163 mAh) it is NOT far from the median. ---- Median :24.008138624748163, the gap is : 10 ---- So No we don't romove this configuration '110000-0-0' - --- remove_aberrant_points: The value [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0] is not an abberant point. - --- remove_aberrant_points: do we remove value [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0] ---- Computing the list of the 10 first neighbours of '110000-0-0' -*** START computing ci exp matrix -X = [[0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.]] -*** END computing ci exp matrix, cached result [[[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - ... - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]]] ---- Ordered by distance, Printing the list of the 10 first neighbours of '110000-0-0' ---- Neighbour 0 in the list of neghbours, And at position 12 in the X datas point --------------- - --- Configuration: 110000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3819709702.062643 - --- Energy: 24.42419267600996 - --- Workload: 93293200000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 13 in the X datas point --------------- - --- Configuration: 110000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3887057652.839107 - --- Energy: 23.99322866107899 - --- Workload: 93263200000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 14 in the X datas point --------------- - --- Configuration: 110000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3856284007.604592 - --- Energy: 24.207459297994163 - --- Workload: 93350900000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 27 in the X datas point --------------- - --- Configuration: 220000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3901144986.0534062 - --- Energy: 23.877164417300968 - --- Workload: 93148100000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 28 in the X datas point --------------- - --- Configuration: 220000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3847826170.604917 - --- Energy: 24.264174107781162 - --- Workload: 93364400000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 29 in the X datas point --------------- - --- Configuration: 220000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3829378223.8577924 - --- Energy: 24.344031085422476 - --- Workload: 93222400000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 0 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3925232177.483298 - --- Energy: 23.92680302847992 - --- Workload: 93918300000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 1 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3912699841.144387 - --- Energy: 24.008138624748163 - --- Workload: 93936500000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 2 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3910282478.8062687 - --- Energy: 24.04973010017626 - --- Workload: 94041200000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 3 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3946501229.335133 - --- Energy: 23.768609723161067 - --- Workload: 93802800000.0 --------------- ---- Ordered by energy, Printing the list of the 10 first neighbours of '110000-0-0' ---- Neighbour 0 in the list of neghbours, And at position 3 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3946501229.335133 - --- Energy: 23.768609723161067 - --- Workload: 93802800000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 27 in the X datas point --------------- - --- Configuration: 220000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3901144986.0534062 - --- Energy: 23.877164417300968 - --- Workload: 93148100000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 0 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3925232177.483298 - --- Energy: 23.92680302847992 - --- Workload: 93918300000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 13 in the X datas point --------------- - --- Configuration: 110000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3887057652.839107 - --- Energy: 23.99322866107899 - --- Workload: 93263200000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 1 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3912699841.144387 - --- Energy: 24.008138624748163 - --- Workload: 93936500000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 2 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3910282478.8062687 - --- Energy: 24.04973010017626 - --- Workload: 94041200000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 14 in the X datas point --------------- - --- Configuration: 110000-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3856284007.604592 - --- Energy: 24.207459297994163 - --- Workload: 93350900000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 28 in the X datas point --------------- - --- Configuration: 220000-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3847826170.604917 - --- Energy: 24.264174107781162 - --- Workload: 93364400000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 29 in the X datas point --------------- - --- Configuration: 220000-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3829378223.8577924 - --- Energy: 24.344031085422476 - --- Workload: 93222400000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 12 in the X datas point --------------- - --- Configuration: 110000-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3819709702.062643 - --- Energy: 24.42419267600996 - --- Workload: 93293200000.0 --------------- --------------- ---- Median at position 4 in the list of neghbours, And at position 1 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Energy efficiency: 3912699841.144387 - --- Energy: 24.008138624748163 - --- Workload: 93936500000.0 --------------- ---- Comparing the median energy with the energy of that data point ---- The energy of the current configuration (24.008138624748163 mAh) it is NOT far from the median. ---- Median :24.008138624748163, the gap is : 10 ---- So No we don't romove this configuration '110000-0-0' - --- remove_aberrant_points: The value [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0] is not an abberant point. - --- remove_aberrant_points: do we remove value [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0] ---- Computing the list of the 10 first neighbours of '200002-0-0' -*** START computing ci exp matrix -X = [[0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.]] -*** END computing ci exp matrix, cached result [[[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - ... - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]]] ---- Ordered by distance, Printing the list of the 10 first neighbours of '200002-0-0' ---- Neighbour 0 in the list of neghbours, And at position 15 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 7988815658.07869 - --- Energy: 28.77615884915817 - --- Workload: 229888000000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 16 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 8007559135.824218 - --- Energy: 28.68325147336931 - --- Workload: 229682000000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 17 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 8163998399.856314 - --- Energy: 28.155953672150755 - --- Workload: 229866000000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 0 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3925232177.483298 - --- Energy: 23.92680302847992 - --- Workload: 93918300000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 1 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3912699841.144387 - --- Energy: 24.008138624748163 - --- Workload: 93936500000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 2 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3910282478.8062687 - --- Energy: 24.04973010017626 - --- Workload: 94041200000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 30 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 8729278874.272196 - --- Energy: 35.32232791967017 - --- Workload: 308338000000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 31 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 8655310898.767483 - --- Energy: 35.53991612451346 - --- Workload: 307609000000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 32 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 8625894936.599672 - --- Energy: 35.71754166492727 - --- Workload: 308096000000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 18 in the X datas point --------------- - --- Configuration: 200020-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3913174484.5370913 - --- Energy: 24.03237046200954 - --- Workload: 94042900000.0 --------------- ---- Ordered by energy, Printing the list of the 10 first neighbours of '200002-0-0' ---- Neighbour 0 in the list of neghbours, And at position 0 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3925232177.483298 - --- Energy: 23.92680302847992 - --- Workload: 93918300000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 1 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3912699841.144387 - --- Energy: 24.008138624748163 - --- Workload: 93936500000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 18 in the X datas point --------------- - --- Configuration: 200020-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3913174484.5370913 - --- Energy: 24.03237046200954 - --- Workload: 94042900000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 2 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3910282478.8062687 - --- Energy: 24.04973010017626 - --- Workload: 94041200000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 17 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 8163998399.856314 - --- Energy: 28.155953672150755 - --- Workload: 229866000000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 16 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 8007559135.824218 - --- Energy: 28.68325147336931 - --- Workload: 229682000000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 15 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 7988815658.07869 - --- Energy: 28.77615884915817 - --- Workload: 229888000000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 30 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 8729278874.272196 - --- Energy: 35.32232791967017 - --- Workload: 308338000000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 31 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 8655310898.767483 - --- Energy: 35.53991612451346 - --- Workload: 307609000000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 32 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8625894936.599672 - --- Energy: 35.71754166492727 - --- Workload: 308096000000.0 --------------- --------------- ---- Median at position 4 in the list of neghbours, And at position 17 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Energy efficiency: 8163998399.856314 - --- Energy: 28.155953672150755 - --- Workload: 229866000000.0 --------------- ---- Comparing the median energy with the energy of that data point ---- The energy of the current configuration (28.155953672150755 mAh) it is NOT far from the median. ---- Median :28.155953672150755, the gap is : 10 ---- So No we don't romove this configuration '200002-0-0' - --- remove_aberrant_points: The value [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0] is not an abberant point. - --- remove_aberrant_points: do we remove value [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0] ---- Computing the list of the 10 first neighbours of '200002-0-0' -*** START computing ci exp matrix -X = [[0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.]] -*** END computing ci exp matrix, cached result [[[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - ... - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]]] ---- Ordered by distance, Printing the list of the 10 first neighbours of '200002-0-0' ---- Neighbour 0 in the list of neghbours, And at position 15 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 7988815658.07869 - --- Energy: 28.77615884915817 - --- Workload: 229888000000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 16 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 8007559135.824218 - --- Energy: 28.68325147336931 - --- Workload: 229682000000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 17 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 8163998399.856314 - --- Energy: 28.155953672150755 - --- Workload: 229866000000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 0 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3925232177.483298 - --- Energy: 23.92680302847992 - --- Workload: 93918300000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 1 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3912699841.144387 - --- Energy: 24.008138624748163 - --- Workload: 93936500000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 2 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3910282478.8062687 - --- Energy: 24.04973010017626 - --- Workload: 94041200000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 30 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 8729278874.272196 - --- Energy: 35.32232791967017 - --- Workload: 308338000000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 31 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 8655310898.767483 - --- Energy: 35.53991612451346 - --- Workload: 307609000000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 32 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 8625894936.599672 - --- Energy: 35.71754166492727 - --- Workload: 308096000000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 18 in the X datas point --------------- - --- Configuration: 200020-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3913174484.5370913 - --- Energy: 24.03237046200954 - --- Workload: 94042900000.0 --------------- ---- Ordered by energy, Printing the list of the 10 first neighbours of '200002-0-0' ---- Neighbour 0 in the list of neghbours, And at position 0 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3925232177.483298 - --- Energy: 23.92680302847992 - --- Workload: 93918300000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 1 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3912699841.144387 - --- Energy: 24.008138624748163 - --- Workload: 93936500000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 18 in the X datas point --------------- - --- Configuration: 200020-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3913174484.5370913 - --- Energy: 24.03237046200954 - --- Workload: 94042900000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 2 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3910282478.8062687 - --- Energy: 24.04973010017626 - --- Workload: 94041200000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 17 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 8163998399.856314 - --- Energy: 28.155953672150755 - --- Workload: 229866000000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 16 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 8007559135.824218 - --- Energy: 28.68325147336931 - --- Workload: 229682000000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 15 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 7988815658.07869 - --- Energy: 28.77615884915817 - --- Workload: 229888000000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 30 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 8729278874.272196 - --- Energy: 35.32232791967017 - --- Workload: 308338000000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 31 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 8655310898.767483 - --- Energy: 35.53991612451346 - --- Workload: 307609000000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 32 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8625894936.599672 - --- Energy: 35.71754166492727 - --- Workload: 308096000000.0 --------------- --------------- ---- Median at position 4 in the list of neghbours, And at position 17 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Energy efficiency: 8163998399.856314 - --- Energy: 28.155953672150755 - --- Workload: 229866000000.0 --------------- ---- Comparing the median energy with the energy of that data point ---- The energy of the current configuration (28.155953672150755 mAh) it is NOT far from the median. ---- Median :28.155953672150755, the gap is : 10 ---- So No we don't romove this configuration '200002-0-0' - --- remove_aberrant_points: The value [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0] is not an abberant point. - --- remove_aberrant_points: do we remove value [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0] ---- Computing the list of the 10 first neighbours of '200002-0-0' -*** START computing ci exp matrix -X = [[0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.]] -*** END computing ci exp matrix, cached result [[[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - ... - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]]] ---- Ordered by distance, Printing the list of the 10 first neighbours of '200002-0-0' ---- Neighbour 0 in the list of neghbours, And at position 15 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 7988815658.07869 - --- Energy: 28.77615884915817 - --- Workload: 229888000000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 16 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 8007559135.824218 - --- Energy: 28.68325147336931 - --- Workload: 229682000000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 17 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 8163998399.856314 - --- Energy: 28.155953672150755 - --- Workload: 229866000000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 0 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3925232177.483298 - --- Energy: 23.92680302847992 - --- Workload: 93918300000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 1 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3912699841.144387 - --- Energy: 24.008138624748163 - --- Workload: 93936500000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 2 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3910282478.8062687 - --- Energy: 24.04973010017626 - --- Workload: 94041200000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 30 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 8729278874.272196 - --- Energy: 35.32232791967017 - --- Workload: 308338000000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 31 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 8655310898.767483 - --- Energy: 35.53991612451346 - --- Workload: 307609000000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 32 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 8625894936.599672 - --- Energy: 35.71754166492727 - --- Workload: 308096000000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 18 in the X datas point --------------- - --- Configuration: 200020-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3913174484.5370913 - --- Energy: 24.03237046200954 - --- Workload: 94042900000.0 --------------- ---- Ordered by energy, Printing the list of the 10 first neighbours of '200002-0-0' ---- Neighbour 0 in the list of neghbours, And at position 0 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3925232177.483298 - --- Energy: 23.92680302847992 - --- Workload: 93918300000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 1 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3912699841.144387 - --- Energy: 24.008138624748163 - --- Workload: 93936500000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 18 in the X datas point --------------- - --- Configuration: 200020-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3913174484.5370913 - --- Energy: 24.03237046200954 - --- Workload: 94042900000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 2 in the X datas point --------------- - --- Configuration: 100001-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3910282478.8062687 - --- Energy: 24.04973010017626 - --- Workload: 94041200000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 17 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 8163998399.856314 - --- Energy: 28.155953672150755 - --- Workload: 229866000000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 16 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 8007559135.824218 - --- Energy: 28.68325147336931 - --- Workload: 229682000000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 15 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 7988815658.07869 - --- Energy: 28.77615884915817 - --- Workload: 229888000000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 30 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 8729278874.272196 - --- Energy: 35.32232791967017 - --- Workload: 308338000000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 31 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 8655310898.767483 - --- Energy: 35.53991612451346 - --- Workload: 307609000000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 32 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8625894936.599672 - --- Energy: 35.71754166492727 - --- Workload: 308096000000.0 --------------- --------------- ---- Median at position 4 in the list of neghbours, And at position 17 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Energy efficiency: 8163998399.856314 - --- Energy: 28.155953672150755 - --- Workload: 229866000000.0 --------------- ---- Comparing the median energy with the energy of that data point ---- The energy of the current configuration (28.155953672150755 mAh) it is NOT far from the median. ---- Median :28.155953672150755, the gap is : 10 ---- So No we don't romove this configuration '200002-0-0' - --- remove_aberrant_points: The value [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0] is not an abberant point. - --- remove_aberrant_points: do we remove value [0, 1.0, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0] ---- Computing the list of the 10 first neighbours of '200020-0-0' -*** START computing ci exp matrix -X = [[0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.]] -*** END computing ci exp matrix, cached result [[[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - ... - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]]] ---- Ordered by distance, Printing the list of the 10 first neighbours of '200020-0-0' ---- Neighbour 0 in the list of neghbours, And at position 18 in the X datas point --------------- - --- Configuration: 200020-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3913174484.5370913 - --- Energy: 24.03237046200954 - --- Workload: 94042900000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 19 in the X datas point --------------- - --- Configuration: 200020-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3792360668.6690335 - --- Energy: 24.734270276684956 - --- Workload: 93801200000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 20 in the X datas point --------------- - --- Configuration: 200020-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3951304127.927423 - --- Energy: 23.743288058460422 - --- Workload: 93816800000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 3 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3946501229.335133 - --- Energy: 23.768609723161067 - --- Workload: 93802800000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 4 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3938853242.267046 - --- Energy: 23.907751006381503 - --- Workload: 94169000000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 5 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3969482617.6356173 - --- Energy: 23.647042756264316 - --- Workload: 93866600000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 33 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3950351976.361094 - --- Energy: 23.716971835375215 - --- Workload: 93690400000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 34 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3930323229.7824173 - --- Energy: 23.953804227268574 - --- Workload: 94146300000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 35 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3961149050.1164575 - --- Energy: 23.66038518521068 - --- Workload: 93722400000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 15 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 7988815658.07869 - --- Energy: 28.77615884915817 - --- Workload: 229888000000.0 --------------- ---- Ordered by energy, Printing the list of the 10 first neighbours of '200020-0-0' ---- Neighbour 0 in the list of neghbours, And at position 5 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3969482617.6356173 - --- Energy: 23.647042756264316 - --- Workload: 93866600000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 35 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3961149050.1164575 - --- Energy: 23.66038518521068 - --- Workload: 93722400000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 33 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3950351976.361094 - --- Energy: 23.716971835375215 - --- Workload: 93690400000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 20 in the X datas point --------------- - --- Configuration: 200020-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3951304127.927423 - --- Energy: 23.743288058460422 - --- Workload: 93816800000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 3 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3946501229.335133 - --- Energy: 23.768609723161067 - --- Workload: 93802800000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 4 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3938853242.267046 - --- Energy: 23.907751006381503 - --- Workload: 94169000000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 34 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3930323229.7824173 - --- Energy: 23.953804227268574 - --- Workload: 94146300000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 18 in the X datas point --------------- - --- Configuration: 200020-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3913174484.5370913 - --- Energy: 24.03237046200954 - --- Workload: 94042900000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 19 in the X datas point --------------- - --- Configuration: 200020-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3792360668.6690335 - --- Energy: 24.734270276684956 - --- Workload: 93801200000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 15 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 7988815658.07869 - --- Energy: 28.77615884915817 - --- Workload: 229888000000.0 --------------- --------------- ---- Median at position 4 in the list of neghbours, And at position 3 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Energy efficiency: 3946501229.335133 - --- Energy: 23.768609723161067 - --- Workload: 93802800000.0 --------------- ---- Comparing the median energy with the energy of that data point ---- The energy of the current configuration (23.768609723161067 mAh) it is NOT far from the median. ---- Median :23.768609723161067, the gap is : 10 ---- So No we don't romove this configuration '200020-0-0' - --- remove_aberrant_points: The value [0, 1.0, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0] is not an abberant point. - --- remove_aberrant_points: do we remove value [0, 1.0, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0] ---- Computing the list of the 10 first neighbours of '200020-0-0' -*** START computing ci exp matrix -X = [[0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.]] -*** END computing ci exp matrix, cached result [[[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - ... - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]]] ---- Ordered by distance, Printing the list of the 10 first neighbours of '200020-0-0' ---- Neighbour 0 in the list of neghbours, And at position 18 in the X datas point --------------- - --- Configuration: 200020-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3913174484.5370913 - --- Energy: 24.03237046200954 - --- Workload: 94042900000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 19 in the X datas point --------------- - --- Configuration: 200020-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3792360668.6690335 - --- Energy: 24.734270276684956 - --- Workload: 93801200000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 20 in the X datas point --------------- - --- Configuration: 200020-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3951304127.927423 - --- Energy: 23.743288058460422 - --- Workload: 93816800000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 3 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3946501229.335133 - --- Energy: 23.768609723161067 - --- Workload: 93802800000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 4 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3938853242.267046 - --- Energy: 23.907751006381503 - --- Workload: 94169000000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 5 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3969482617.6356173 - --- Energy: 23.647042756264316 - --- Workload: 93866600000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 33 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3950351976.361094 - --- Energy: 23.716971835375215 - --- Workload: 93690400000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 34 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3930323229.7824173 - --- Energy: 23.953804227268574 - --- Workload: 94146300000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 35 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3961149050.1164575 - --- Energy: 23.66038518521068 - --- Workload: 93722400000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 15 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 7988815658.07869 - --- Energy: 28.77615884915817 - --- Workload: 229888000000.0 --------------- ---- Ordered by energy, Printing the list of the 10 first neighbours of '200020-0-0' ---- Neighbour 0 in the list of neghbours, And at position 5 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3969482617.6356173 - --- Energy: 23.647042756264316 - --- Workload: 93866600000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 35 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3961149050.1164575 - --- Energy: 23.66038518521068 - --- Workload: 93722400000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 33 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3950351976.361094 - --- Energy: 23.716971835375215 - --- Workload: 93690400000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 20 in the X datas point --------------- - --- Configuration: 200020-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3951304127.927423 - --- Energy: 23.743288058460422 - --- Workload: 93816800000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 3 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3946501229.335133 - --- Energy: 23.768609723161067 - --- Workload: 93802800000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 4 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3938853242.267046 - --- Energy: 23.907751006381503 - --- Workload: 94169000000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 34 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3930323229.7824173 - --- Energy: 23.953804227268574 - --- Workload: 94146300000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 18 in the X datas point --------------- - --- Configuration: 200020-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3913174484.5370913 - --- Energy: 24.03237046200954 - --- Workload: 94042900000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 19 in the X datas point --------------- - --- Configuration: 200020-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3792360668.6690335 - --- Energy: 24.734270276684956 - --- Workload: 93801200000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 15 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 7988815658.07869 - --- Energy: 28.77615884915817 - --- Workload: 229888000000.0 --------------- --------------- ---- Median at position 4 in the list of neghbours, And at position 3 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Energy efficiency: 3946501229.335133 - --- Energy: 23.768609723161067 - --- Workload: 93802800000.0 --------------- ---- Comparing the median energy with the energy of that data point ---- The energy of the current configuration (23.768609723161067 mAh) it is NOT far from the median. ---- Median :23.768609723161067, the gap is : 10 ---- So No we don't romove this configuration '200020-0-0' - --- remove_aberrant_points: The value [0, 1.0, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0] is not an abberant point. - --- remove_aberrant_points: do we remove value [0, 1.0, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0] ---- Computing the list of the 10 first neighbours of '200020-0-0' -*** START computing ci exp matrix -X = [[0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.]] -*** END computing ci exp matrix, cached result [[[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - ... - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]]] ---- Ordered by distance, Printing the list of the 10 first neighbours of '200020-0-0' ---- Neighbour 0 in the list of neghbours, And at position 18 in the X datas point --------------- - --- Configuration: 200020-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3913174484.5370913 - --- Energy: 24.03237046200954 - --- Workload: 94042900000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 19 in the X datas point --------------- - --- Configuration: 200020-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3792360668.6690335 - --- Energy: 24.734270276684956 - --- Workload: 93801200000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 20 in the X datas point --------------- - --- Configuration: 200020-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3951304127.927423 - --- Energy: 23.743288058460422 - --- Workload: 93816800000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 3 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3946501229.335133 - --- Energy: 23.768609723161067 - --- Workload: 93802800000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 4 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3938853242.267046 - --- Energy: 23.907751006381503 - --- Workload: 94169000000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 5 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3969482617.6356173 - --- Energy: 23.647042756264316 - --- Workload: 93866600000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 33 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3950351976.361094 - --- Energy: 23.716971835375215 - --- Workload: 93690400000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 34 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3930323229.7824173 - --- Energy: 23.953804227268574 - --- Workload: 94146300000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 35 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3961149050.1164575 - --- Energy: 23.66038518521068 - --- Workload: 93722400000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 15 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 7988815658.07869 - --- Energy: 28.77615884915817 - --- Workload: 229888000000.0 --------------- ---- Ordered by energy, Printing the list of the 10 first neighbours of '200020-0-0' ---- Neighbour 0 in the list of neghbours, And at position 5 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3969482617.6356173 - --- Energy: 23.647042756264316 - --- Workload: 93866600000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 35 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3961149050.1164575 - --- Energy: 23.66038518521068 - --- Workload: 93722400000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 33 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3950351976.361094 - --- Energy: 23.716971835375215 - --- Workload: 93690400000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 20 in the X datas point --------------- - --- Configuration: 200020-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3951304127.927423 - --- Energy: 23.743288058460422 - --- Workload: 93816800000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 3 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3946501229.335133 - --- Energy: 23.768609723161067 - --- Workload: 93802800000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 4 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3938853242.267046 - --- Energy: 23.907751006381503 - --- Workload: 94169000000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 34 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3930323229.7824173 - --- Energy: 23.953804227268574 - --- Workload: 94146300000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 18 in the X datas point --------------- - --- Configuration: 200020-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3913174484.5370913 - --- Energy: 24.03237046200954 - --- Workload: 94042900000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 19 in the X datas point --------------- - --- Configuration: 200020-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3792360668.6690335 - --- Energy: 24.734270276684956 - --- Workload: 93801200000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 15 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 7988815658.07869 - --- Energy: 28.77615884915817 - --- Workload: 229888000000.0 --------------- --------------- ---- Median at position 4 in the list of neghbours, And at position 3 in the X datas point --------------- - --- Configuration: 100010-0-0 - --- Energy efficiency: 3946501229.335133 - --- Energy: 23.768609723161067 - --- Workload: 93802800000.0 --------------- ---- Comparing the median energy with the energy of that data point ---- The energy of the current configuration (23.768609723161067 mAh) it is NOT far from the median. ---- Median :23.768609723161067, the gap is : 10 ---- So No we don't romove this configuration '200020-0-0' - --- remove_aberrant_points: The value [0, 1.0, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0] is not an abberant point. - --- remove_aberrant_points: do we remove value [0, 1.0, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0] ---- Computing the list of the 10 first neighbours of '200200-0-0' -*** START computing ci exp matrix -X = [[0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.]] -*** END computing ci exp matrix, cached result [[[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - ... - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]]] ---- Ordered by distance, Printing the list of the 10 first neighbours of '200200-0-0' ---- Neighbour 0 in the list of neghbours, And at position 21 in the X datas point --------------- - --- Configuration: 200200-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3947700859.019707 - --- Energy: 23.750591714866186 - --- Workload: 93760200000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 22 in the X datas point --------------- - --- Configuration: 200200-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3979877738.155884 - --- Energy: 23.505960200642747 - --- Workload: 93550800000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 23 in the X datas point --------------- - --- Configuration: 200200-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 4070782770.8190007 - --- Energy: 23.42848921387117 - --- Workload: 95372100000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 6 in the X datas point --------------- - --- Configuration: 100100-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3914798329.164073 - --- Energy: 24.34321151135318 - --- Workload: 95298900000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 7 in the X datas point --------------- - --- Configuration: 100100-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3977186856.1928773 - --- Energy: 23.66236144271759 - --- Workload: 94109700000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 8 in the X datas point --------------- - --- Configuration: 100100-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3858277741.981534 - --- Energy: 24.282936366326563 - --- Workload: 93690400000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 36 in the X datas point --------------- - --- Configuration: 300300-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3877938022.79452 - --- Energy: 24.1559718861257 - --- Workload: 93675200000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 37 in the X datas point --------------- - --- Configuration: 300300-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3854336899.8797445 - --- Energy: 24.32865158873136 - --- Workload: 93770900000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 38 in the X datas point --------------- - --- Configuration: 300300-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3984905179.181261 - --- Energy: 23.538369217832788 - --- Workload: 93798100000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 15 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 7988815658.07869 - --- Energy: 28.77615884915817 - --- Workload: 229888000000.0 --------------- ---- Ordered by energy, Printing the list of the 10 first neighbours of '200200-0-0' ---- Neighbour 0 in the list of neghbours, And at position 23 in the X datas point --------------- - --- Configuration: 200200-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 4070782770.8190007 - --- Energy: 23.42848921387117 - --- Workload: 95372100000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 22 in the X datas point --------------- - --- Configuration: 200200-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3979877738.155884 - --- Energy: 23.505960200642747 - --- Workload: 93550800000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 38 in the X datas point --------------- - --- Configuration: 300300-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3984905179.181261 - --- Energy: 23.538369217832788 - --- Workload: 93798100000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 7 in the X datas point --------------- - --- Configuration: 100100-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3977186856.1928773 - --- Energy: 23.66236144271759 - --- Workload: 94109700000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 21 in the X datas point --------------- - --- Configuration: 200200-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3947700859.019707 - --- Energy: 23.750591714866186 - --- Workload: 93760200000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 36 in the X datas point --------------- - --- Configuration: 300300-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3877938022.79452 - --- Energy: 24.1559718861257 - --- Workload: 93675200000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 8 in the X datas point --------------- - --- Configuration: 100100-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3858277741.981534 - --- Energy: 24.282936366326563 - --- Workload: 93690400000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 37 in the X datas point --------------- - --- Configuration: 300300-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3854336899.8797445 - --- Energy: 24.32865158873136 - --- Workload: 93770900000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 6 in the X datas point --------------- - --- Configuration: 100100-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3914798329.164073 - --- Energy: 24.34321151135318 - --- Workload: 95298900000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 15 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 7988815658.07869 - --- Energy: 28.77615884915817 - --- Workload: 229888000000.0 --------------- --------------- ---- Median at position 4 in the list of neghbours, And at position 21 in the X datas point --------------- - --- Configuration: 200200-0-0 - --- Energy efficiency: 3947700859.019707 - --- Energy: 23.750591714866186 - --- Workload: 93760200000.0 --------------- ---- Comparing the median energy with the energy of that data point ---- The energy of the current configuration (23.750591714866186 mAh) it is NOT far from the median. ---- Median :23.750591714866186, the gap is : 10 ---- So No we don't romove this configuration '200200-0-0' - --- remove_aberrant_points: The value [0, 1.0, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0] is not an abberant point. - --- remove_aberrant_points: do we remove value [0, 1.0, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0] ---- Computing the list of the 10 first neighbours of '200200-0-0' -*** START computing ci exp matrix -X = [[0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.]] -*** END computing ci exp matrix, cached result [[[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - ... - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]]] ---- Ordered by distance, Printing the list of the 10 first neighbours of '200200-0-0' ---- Neighbour 0 in the list of neghbours, And at position 21 in the X datas point --------------- - --- Configuration: 200200-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3947700859.019707 - --- Energy: 23.750591714866186 - --- Workload: 93760200000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 22 in the X datas point --------------- - --- Configuration: 200200-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3979877738.155884 - --- Energy: 23.505960200642747 - --- Workload: 93550800000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 23 in the X datas point --------------- - --- Configuration: 200200-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 4070782770.8190007 - --- Energy: 23.42848921387117 - --- Workload: 95372100000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 6 in the X datas point --------------- - --- Configuration: 100100-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3914798329.164073 - --- Energy: 24.34321151135318 - --- Workload: 95298900000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 7 in the X datas point --------------- - --- Configuration: 100100-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3977186856.1928773 - --- Energy: 23.66236144271759 - --- Workload: 94109700000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 8 in the X datas point --------------- - --- Configuration: 100100-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3858277741.981534 - --- Energy: 24.282936366326563 - --- Workload: 93690400000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 36 in the X datas point --------------- - --- Configuration: 300300-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3877938022.79452 - --- Energy: 24.1559718861257 - --- Workload: 93675200000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 37 in the X datas point --------------- - --- Configuration: 300300-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3854336899.8797445 - --- Energy: 24.32865158873136 - --- Workload: 93770900000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 38 in the X datas point --------------- - --- Configuration: 300300-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3984905179.181261 - --- Energy: 23.538369217832788 - --- Workload: 93798100000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 15 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 7988815658.07869 - --- Energy: 28.77615884915817 - --- Workload: 229888000000.0 --------------- ---- Ordered by energy, Printing the list of the 10 first neighbours of '200200-0-0' ---- Neighbour 0 in the list of neghbours, And at position 23 in the X datas point --------------- - --- Configuration: 200200-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 4070782770.8190007 - --- Energy: 23.42848921387117 - --- Workload: 95372100000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 22 in the X datas point --------------- - --- Configuration: 200200-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3979877738.155884 - --- Energy: 23.505960200642747 - --- Workload: 93550800000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 38 in the X datas point --------------- - --- Configuration: 300300-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3984905179.181261 - --- Energy: 23.538369217832788 - --- Workload: 93798100000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 7 in the X datas point --------------- - --- Configuration: 100100-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3977186856.1928773 - --- Energy: 23.66236144271759 - --- Workload: 94109700000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 21 in the X datas point --------------- - --- Configuration: 200200-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3947700859.019707 - --- Energy: 23.750591714866186 - --- Workload: 93760200000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 36 in the X datas point --------------- - --- Configuration: 300300-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3877938022.79452 - --- Energy: 24.1559718861257 - --- Workload: 93675200000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 8 in the X datas point --------------- - --- Configuration: 100100-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3858277741.981534 - --- Energy: 24.282936366326563 - --- Workload: 93690400000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 37 in the X datas point --------------- - --- Configuration: 300300-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3854336899.8797445 - --- Energy: 24.32865158873136 - --- Workload: 93770900000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 6 in the X datas point --------------- - --- Configuration: 100100-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3914798329.164073 - --- Energy: 24.34321151135318 - --- Workload: 95298900000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 15 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 7988815658.07869 - --- Energy: 28.77615884915817 - --- Workload: 229888000000.0 --------------- --------------- ---- Median at position 4 in the list of neghbours, And at position 21 in the X datas point --------------- - --- Configuration: 200200-0-0 - --- Energy efficiency: 3947700859.019707 - --- Energy: 23.750591714866186 - --- Workload: 93760200000.0 --------------- ---- Comparing the median energy with the energy of that data point ---- The energy of the current configuration (23.750591714866186 mAh) it is NOT far from the median. ---- Median :23.750591714866186, the gap is : 10 ---- So No we don't romove this configuration '200200-0-0' - --- remove_aberrant_points: The value [0, 1.0, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0] is not an abberant point. - --- remove_aberrant_points: do we remove value [0, 1.0, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0] ---- Computing the list of the 10 first neighbours of '200200-0-0' -*** START computing ci exp matrix -X = [[0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.]] -*** END computing ci exp matrix, cached result [[[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - ... - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]]] ---- Ordered by distance, Printing the list of the 10 first neighbours of '200200-0-0' ---- Neighbour 0 in the list of neghbours, And at position 21 in the X datas point --------------- - --- Configuration: 200200-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3947700859.019707 - --- Energy: 23.750591714866186 - --- Workload: 93760200000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 22 in the X datas point --------------- - --- Configuration: 200200-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3979877738.155884 - --- Energy: 23.505960200642747 - --- Workload: 93550800000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 23 in the X datas point --------------- - --- Configuration: 200200-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 4070782770.8190007 - --- Energy: 23.42848921387117 - --- Workload: 95372100000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 6 in the X datas point --------------- - --- Configuration: 100100-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3914798329.164073 - --- Energy: 24.34321151135318 - --- Workload: 95298900000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 7 in the X datas point --------------- - --- Configuration: 100100-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3977186856.1928773 - --- Energy: 23.66236144271759 - --- Workload: 94109700000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 8 in the X datas point --------------- - --- Configuration: 100100-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3858277741.981534 - --- Energy: 24.282936366326563 - --- Workload: 93690400000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 36 in the X datas point --------------- - --- Configuration: 300300-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3877938022.79452 - --- Energy: 24.1559718861257 - --- Workload: 93675200000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 37 in the X datas point --------------- - --- Configuration: 300300-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3854336899.8797445 - --- Energy: 24.32865158873136 - --- Workload: 93770900000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 38 in the X datas point --------------- - --- Configuration: 300300-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3984905179.181261 - --- Energy: 23.538369217832788 - --- Workload: 93798100000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 15 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 7988815658.07869 - --- Energy: 28.77615884915817 - --- Workload: 229888000000.0 --------------- ---- Ordered by energy, Printing the list of the 10 first neighbours of '200200-0-0' ---- Neighbour 0 in the list of neghbours, And at position 23 in the X datas point --------------- - --- Configuration: 200200-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 4070782770.8190007 - --- Energy: 23.42848921387117 - --- Workload: 95372100000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 22 in the X datas point --------------- - --- Configuration: 200200-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3979877738.155884 - --- Energy: 23.505960200642747 - --- Workload: 93550800000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 38 in the X datas point --------------- - --- Configuration: 300300-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3984905179.181261 - --- Energy: 23.538369217832788 - --- Workload: 93798100000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 7 in the X datas point --------------- - --- Configuration: 100100-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3977186856.1928773 - --- Energy: 23.66236144271759 - --- Workload: 94109700000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 21 in the X datas point --------------- - --- Configuration: 200200-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3947700859.019707 - --- Energy: 23.750591714866186 - --- Workload: 93760200000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 36 in the X datas point --------------- - --- Configuration: 300300-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3877938022.79452 - --- Energy: 24.1559718861257 - --- Workload: 93675200000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 8 in the X datas point --------------- - --- Configuration: 100100-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3858277741.981534 - --- Energy: 24.282936366326563 - --- Workload: 93690400000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 37 in the X datas point --------------- - --- Configuration: 300300-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3854336899.8797445 - --- Energy: 24.32865158873136 - --- Workload: 93770900000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 6 in the X datas point --------------- - --- Configuration: 100100-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3914798329.164073 - --- Energy: 24.34321151135318 - --- Workload: 95298900000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 15 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 7988815658.07869 - --- Energy: 28.77615884915817 - --- Workload: 229888000000.0 --------------- --------------- ---- Median at position 4 in the list of neghbours, And at position 21 in the X datas point --------------- - --- Configuration: 200200-0-0 - --- Energy efficiency: 3947700859.019707 - --- Energy: 23.750591714866186 - --- Workload: 93760200000.0 --------------- ---- Comparing the median energy with the energy of that data point ---- The energy of the current configuration (23.750591714866186 mAh) it is NOT far from the median. ---- Median :23.750591714866186, the gap is : 10 ---- So No we don't romove this configuration '200200-0-0' - --- remove_aberrant_points: The value [0, 1.0, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0] is not an abberant point. - --- remove_aberrant_points: do we remove value [0, 1.0, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0] ---- Computing the list of the 10 first neighbours of '202000-0-0' -*** START computing ci exp matrix -X = [[0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.]] -*** END computing ci exp matrix, cached result [[[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - ... - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]]] ---- Ordered by distance, Printing the list of the 10 first neighbours of '202000-0-0' ---- Neighbour 0 in the list of neghbours, And at position 24 in the X datas point --------------- - --- Configuration: 202000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3927683491.5535164 - --- Energy: 24.092534379540634 - --- Workload: 94627800000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 25 in the X datas point --------------- - --- Configuration: 202000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3867649049.525246 - --- Energy: 24.21312283502527 - --- Workload: 93647900000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 26 in the X datas point --------------- - --- Configuration: 202000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3861719546.4796567 - --- Energy: 24.183210213672954 - --- Workload: 93388700000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 9 in the X datas point --------------- - --- Configuration: 101000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3932131411.8317833 - --- Energy: 23.827633134312034 - --- Workload: 93693400000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 10 in the X datas point --------------- - --- Configuration: 101000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3943824168.5432696 - --- Energy: 23.826661712544205 - --- Workload: 93968300000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 11 in the X datas point --------------- - --- Configuration: 101000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3916945096.180587 - --- Energy: 24.05507728451459 - --- Workload: 94222600000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 39 in the X datas point --------------- - --- Configuration: 303000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3925740689.124521 - --- Energy: 23.867682919071562 - --- Workload: 93698300000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 40 in the X datas point --------------- - --- Configuration: 303000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3940529528.3580203 - --- Energy: 23.84547723870087 - --- Workload: 93963800000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 41 in the X datas point --------------- - --- Configuration: 303000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3882741215.2980003 - --- Energy: 24.080718397086365 - --- Workload: 93499300000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 15 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 7988815658.07869 - --- Energy: 28.77615884915817 - --- Workload: 229888000000.0 --------------- ---- Ordered by energy, Printing the list of the 10 first neighbours of '202000-0-0' ---- Neighbour 0 in the list of neghbours, And at position 10 in the X datas point --------------- - --- Configuration: 101000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3943824168.5432696 - --- Energy: 23.826661712544205 - --- Workload: 93968300000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 9 in the X datas point --------------- - --- Configuration: 101000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3932131411.8317833 - --- Energy: 23.827633134312034 - --- Workload: 93693400000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 40 in the X datas point --------------- - --- Configuration: 303000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3940529528.3580203 - --- Energy: 23.84547723870087 - --- Workload: 93963800000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 39 in the X datas point --------------- - --- Configuration: 303000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3925740689.124521 - --- Energy: 23.867682919071562 - --- Workload: 93698300000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 11 in the X datas point --------------- - --- Configuration: 101000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3916945096.180587 - --- Energy: 24.05507728451459 - --- Workload: 94222600000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 41 in the X datas point --------------- - --- Configuration: 303000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3882741215.2980003 - --- Energy: 24.080718397086365 - --- Workload: 93499300000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 24 in the X datas point --------------- - --- Configuration: 202000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3927683491.5535164 - --- Energy: 24.092534379540634 - --- Workload: 94627800000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 26 in the X datas point --------------- - --- Configuration: 202000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3861719546.4796567 - --- Energy: 24.183210213672954 - --- Workload: 93388700000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 25 in the X datas point --------------- - --- Configuration: 202000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3867649049.525246 - --- Energy: 24.21312283502527 - --- Workload: 93647900000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 15 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 7988815658.07869 - --- Energy: 28.77615884915817 - --- Workload: 229888000000.0 --------------- --------------- ---- Median at position 4 in the list of neghbours, And at position 11 in the X datas point --------------- - --- Configuration: 101000-0-0 - --- Energy efficiency: 3916945096.180587 - --- Energy: 24.05507728451459 - --- Workload: 94222600000.0 --------------- ---- Comparing the median energy with the energy of that data point ---- The energy of the current configuration (24.05507728451459 mAh) it is NOT far from the median. ---- Median :24.05507728451459, the gap is : 10 ---- So No we don't romove this configuration '202000-0-0' - --- remove_aberrant_points: The value [0, 1.0, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0] is not an abberant point. - --- remove_aberrant_points: do we remove value [0, 1.0, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0] ---- Computing the list of the 10 first neighbours of '202000-0-0' -*** START computing ci exp matrix -X = [[0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.]] -*** END computing ci exp matrix, cached result [[[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - ... - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]]] ---- Ordered by distance, Printing the list of the 10 first neighbours of '202000-0-0' ---- Neighbour 0 in the list of neghbours, And at position 24 in the X datas point --------------- - --- Configuration: 202000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3927683491.5535164 - --- Energy: 24.092534379540634 - --- Workload: 94627800000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 25 in the X datas point --------------- - --- Configuration: 202000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3867649049.525246 - --- Energy: 24.21312283502527 - --- Workload: 93647900000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 26 in the X datas point --------------- - --- Configuration: 202000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3861719546.4796567 - --- Energy: 24.183210213672954 - --- Workload: 93388700000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 9 in the X datas point --------------- - --- Configuration: 101000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3932131411.8317833 - --- Energy: 23.827633134312034 - --- Workload: 93693400000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 10 in the X datas point --------------- - --- Configuration: 101000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3943824168.5432696 - --- Energy: 23.826661712544205 - --- Workload: 93968300000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 11 in the X datas point --------------- - --- Configuration: 101000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3916945096.180587 - --- Energy: 24.05507728451459 - --- Workload: 94222600000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 39 in the X datas point --------------- - --- Configuration: 303000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3925740689.124521 - --- Energy: 23.867682919071562 - --- Workload: 93698300000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 40 in the X datas point --------------- - --- Configuration: 303000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3940529528.3580203 - --- Energy: 23.84547723870087 - --- Workload: 93963800000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 41 in the X datas point --------------- - --- Configuration: 303000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3882741215.2980003 - --- Energy: 24.080718397086365 - --- Workload: 93499300000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 15 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 7988815658.07869 - --- Energy: 28.77615884915817 - --- Workload: 229888000000.0 --------------- ---- Ordered by energy, Printing the list of the 10 first neighbours of '202000-0-0' ---- Neighbour 0 in the list of neghbours, And at position 10 in the X datas point --------------- - --- Configuration: 101000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3943824168.5432696 - --- Energy: 23.826661712544205 - --- Workload: 93968300000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 9 in the X datas point --------------- - --- Configuration: 101000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3932131411.8317833 - --- Energy: 23.827633134312034 - --- Workload: 93693400000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 40 in the X datas point --------------- - --- Configuration: 303000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3940529528.3580203 - --- Energy: 23.84547723870087 - --- Workload: 93963800000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 39 in the X datas point --------------- - --- Configuration: 303000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3925740689.124521 - --- Energy: 23.867682919071562 - --- Workload: 93698300000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 11 in the X datas point --------------- - --- Configuration: 101000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3916945096.180587 - --- Energy: 24.05507728451459 - --- Workload: 94222600000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 41 in the X datas point --------------- - --- Configuration: 303000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3882741215.2980003 - --- Energy: 24.080718397086365 - --- Workload: 93499300000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 24 in the X datas point --------------- - --- Configuration: 202000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3927683491.5535164 - --- Energy: 24.092534379540634 - --- Workload: 94627800000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 26 in the X datas point --------------- - --- Configuration: 202000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3861719546.4796567 - --- Energy: 24.183210213672954 - --- Workload: 93388700000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 25 in the X datas point --------------- - --- Configuration: 202000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3867649049.525246 - --- Energy: 24.21312283502527 - --- Workload: 93647900000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 15 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 7988815658.07869 - --- Energy: 28.77615884915817 - --- Workload: 229888000000.0 --------------- --------------- ---- Median at position 4 in the list of neghbours, And at position 11 in the X datas point --------------- - --- Configuration: 101000-0-0 - --- Energy efficiency: 3916945096.180587 - --- Energy: 24.05507728451459 - --- Workload: 94222600000.0 --------------- ---- Comparing the median energy with the energy of that data point ---- The energy of the current configuration (24.05507728451459 mAh) it is NOT far from the median. ---- Median :24.05507728451459, the gap is : 10 ---- So No we don't romove this configuration '202000-0-0' - --- remove_aberrant_points: The value [0, 1.0, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0] is not an abberant point. - --- remove_aberrant_points: do we remove value [0, 1.0, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0] ---- Computing the list of the 10 first neighbours of '202000-0-0' -*** START computing ci exp matrix -X = [[0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.]] -*** END computing ci exp matrix, cached result [[[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - ... - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]]] ---- Ordered by distance, Printing the list of the 10 first neighbours of '202000-0-0' ---- Neighbour 0 in the list of neghbours, And at position 24 in the X datas point --------------- - --- Configuration: 202000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3927683491.5535164 - --- Energy: 24.092534379540634 - --- Workload: 94627800000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 25 in the X datas point --------------- - --- Configuration: 202000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3867649049.525246 - --- Energy: 24.21312283502527 - --- Workload: 93647900000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 26 in the X datas point --------------- - --- Configuration: 202000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3861719546.4796567 - --- Energy: 24.183210213672954 - --- Workload: 93388700000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 9 in the X datas point --------------- - --- Configuration: 101000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3932131411.8317833 - --- Energy: 23.827633134312034 - --- Workload: 93693400000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 10 in the X datas point --------------- - --- Configuration: 101000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3943824168.5432696 - --- Energy: 23.826661712544205 - --- Workload: 93968300000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 11 in the X datas point --------------- - --- Configuration: 101000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3916945096.180587 - --- Energy: 24.05507728451459 - --- Workload: 94222600000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 39 in the X datas point --------------- - --- Configuration: 303000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3925740689.124521 - --- Energy: 23.867682919071562 - --- Workload: 93698300000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 40 in the X datas point --------------- - --- Configuration: 303000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3940529528.3580203 - --- Energy: 23.84547723870087 - --- Workload: 93963800000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 41 in the X datas point --------------- - --- Configuration: 303000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3882741215.2980003 - --- Energy: 24.080718397086365 - --- Workload: 93499300000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 15 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 7988815658.07869 - --- Energy: 28.77615884915817 - --- Workload: 229888000000.0 --------------- ---- Ordered by energy, Printing the list of the 10 first neighbours of '202000-0-0' ---- Neighbour 0 in the list of neghbours, And at position 10 in the X datas point --------------- - --- Configuration: 101000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3943824168.5432696 - --- Energy: 23.826661712544205 - --- Workload: 93968300000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 9 in the X datas point --------------- - --- Configuration: 101000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3932131411.8317833 - --- Energy: 23.827633134312034 - --- Workload: 93693400000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 40 in the X datas point --------------- - --- Configuration: 303000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3940529528.3580203 - --- Energy: 23.84547723870087 - --- Workload: 93963800000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 39 in the X datas point --------------- - --- Configuration: 303000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3925740689.124521 - --- Energy: 23.867682919071562 - --- Workload: 93698300000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 11 in the X datas point --------------- - --- Configuration: 101000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3916945096.180587 - --- Energy: 24.05507728451459 - --- Workload: 94222600000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 41 in the X datas point --------------- - --- Configuration: 303000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3882741215.2980003 - --- Energy: 24.080718397086365 - --- Workload: 93499300000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 24 in the X datas point --------------- - --- Configuration: 202000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3927683491.5535164 - --- Energy: 24.092534379540634 - --- Workload: 94627800000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 26 in the X datas point --------------- - --- Configuration: 202000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3861719546.4796567 - --- Energy: 24.183210213672954 - --- Workload: 93388700000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 25 in the X datas point --------------- - --- Configuration: 202000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3867649049.525246 - --- Energy: 24.21312283502527 - --- Workload: 93647900000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 15 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 7988815658.07869 - --- Energy: 28.77615884915817 - --- Workload: 229888000000.0 --------------- --------------- ---- Median at position 4 in the list of neghbours, And at position 11 in the X datas point --------------- - --- Configuration: 101000-0-0 - --- Energy efficiency: 3916945096.180587 - --- Energy: 24.05507728451459 - --- Workload: 94222600000.0 --------------- ---- Comparing the median energy with the energy of that data point ---- The energy of the current configuration (24.05507728451459 mAh) it is NOT far from the median. ---- Median :24.05507728451459, the gap is : 10 ---- So No we don't romove this configuration '202000-0-0' - --- remove_aberrant_points: The value [0, 1.0, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0] is not an abberant point. - --- remove_aberrant_points: do we remove value [0, 1.0, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0] ---- Computing the list of the 10 first neighbours of '220000-0-0' -*** START computing ci exp matrix -X = [[0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.]] -*** END computing ci exp matrix, cached result [[[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - ... - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]]] ---- Ordered by distance, Printing the list of the 10 first neighbours of '220000-0-0' ---- Neighbour 0 in the list of neghbours, And at position 27 in the X datas point --------------- - --- Configuration: 220000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3901144986.0534062 - --- Energy: 23.877164417300968 - --- Workload: 93148100000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 28 in the X datas point --------------- - --- Configuration: 220000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3847826170.604917 - --- Energy: 24.264174107781162 - --- Workload: 93364400000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 29 in the X datas point --------------- - --- Configuration: 220000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3829378223.8577924 - --- Energy: 24.344031085422476 - --- Workload: 93222400000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 12 in the X datas point --------------- - --- Configuration: 110000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3819709702.062643 - --- Energy: 24.42419267600996 - --- Workload: 93293200000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 13 in the X datas point --------------- - --- Configuration: 110000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3887057652.839107 - --- Energy: 23.99322866107899 - --- Workload: 93263200000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 14 in the X datas point --------------- - --- Configuration: 110000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3856284007.604592 - --- Energy: 24.207459297994163 - --- Workload: 93350900000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 42 in the X datas point --------------- - --- Configuration: 330000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3883480064.155091 - --- Energy: 24.08059502443054 - --- Workload: 93516400000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 43 in the X datas point --------------- - --- Configuration: 330000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3773399795.481731 - --- Energy: 24.637735624906814 - --- Workload: 92968000000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 44 in the X datas point --------------- - --- Configuration: 330000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3779532320.67064 - --- Energy: 24.641747385770024 - --- Workload: 93134300000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 15 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 7988815658.07869 - --- Energy: 28.77615884915817 - --- Workload: 229888000000.0 --------------- ---- Ordered by energy, Printing the list of the 10 first neighbours of '220000-0-0' ---- Neighbour 0 in the list of neghbours, And at position 27 in the X datas point --------------- - --- Configuration: 220000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3901144986.0534062 - --- Energy: 23.877164417300968 - --- Workload: 93148100000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 13 in the X datas point --------------- - --- Configuration: 110000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3887057652.839107 - --- Energy: 23.99322866107899 - --- Workload: 93263200000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 42 in the X datas point --------------- - --- Configuration: 330000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3883480064.155091 - --- Energy: 24.08059502443054 - --- Workload: 93516400000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 14 in the X datas point --------------- - --- Configuration: 110000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3856284007.604592 - --- Energy: 24.207459297994163 - --- Workload: 93350900000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 28 in the X datas point --------------- - --- Configuration: 220000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3847826170.604917 - --- Energy: 24.264174107781162 - --- Workload: 93364400000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 29 in the X datas point --------------- - --- Configuration: 220000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3829378223.8577924 - --- Energy: 24.344031085422476 - --- Workload: 93222400000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 12 in the X datas point --------------- - --- Configuration: 110000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3819709702.062643 - --- Energy: 24.42419267600996 - --- Workload: 93293200000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 43 in the X datas point --------------- - --- Configuration: 330000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3773399795.481731 - --- Energy: 24.637735624906814 - --- Workload: 92968000000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 44 in the X datas point --------------- - --- Configuration: 330000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3779532320.67064 - --- Energy: 24.641747385770024 - --- Workload: 93134300000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 15 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 7988815658.07869 - --- Energy: 28.77615884915817 - --- Workload: 229888000000.0 --------------- --------------- ---- Median at position 4 in the list of neghbours, And at position 28 in the X datas point --------------- - --- Configuration: 220000-0-0 - --- Energy efficiency: 3847826170.604917 - --- Energy: 24.264174107781162 - --- Workload: 93364400000.0 --------------- ---- Comparing the median energy with the energy of that data point ---- The energy of the current configuration (24.264174107781162 mAh) it is NOT far from the median. ---- Median :24.264174107781162, the gap is : 10 ---- So No we don't romove this configuration '220000-0-0' - --- remove_aberrant_points: The value [0, 1.0, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0] is not an abberant point. - --- remove_aberrant_points: do we remove value [0, 1.0, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0] ---- Computing the list of the 10 first neighbours of '220000-0-0' -*** START computing ci exp matrix -X = [[0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.]] -*** END computing ci exp matrix, cached result [[[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - ... - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]]] ---- Ordered by distance, Printing the list of the 10 first neighbours of '220000-0-0' ---- Neighbour 0 in the list of neghbours, And at position 27 in the X datas point --------------- - --- Configuration: 220000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3901144986.0534062 - --- Energy: 23.877164417300968 - --- Workload: 93148100000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 28 in the X datas point --------------- - --- Configuration: 220000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3847826170.604917 - --- Energy: 24.264174107781162 - --- Workload: 93364400000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 29 in the X datas point --------------- - --- Configuration: 220000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3829378223.8577924 - --- Energy: 24.344031085422476 - --- Workload: 93222400000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 12 in the X datas point --------------- - --- Configuration: 110000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3819709702.062643 - --- Energy: 24.42419267600996 - --- Workload: 93293200000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 13 in the X datas point --------------- - --- Configuration: 110000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3887057652.839107 - --- Energy: 23.99322866107899 - --- Workload: 93263200000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 14 in the X datas point --------------- - --- Configuration: 110000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3856284007.604592 - --- Energy: 24.207459297994163 - --- Workload: 93350900000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 42 in the X datas point --------------- - --- Configuration: 330000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3883480064.155091 - --- Energy: 24.08059502443054 - --- Workload: 93516400000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 43 in the X datas point --------------- - --- Configuration: 330000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3773399795.481731 - --- Energy: 24.637735624906814 - --- Workload: 92968000000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 44 in the X datas point --------------- - --- Configuration: 330000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3779532320.67064 - --- Energy: 24.641747385770024 - --- Workload: 93134300000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 15 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 7988815658.07869 - --- Energy: 28.77615884915817 - --- Workload: 229888000000.0 --------------- ---- Ordered by energy, Printing the list of the 10 first neighbours of '220000-0-0' ---- Neighbour 0 in the list of neghbours, And at position 27 in the X datas point --------------- - --- Configuration: 220000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3901144986.0534062 - --- Energy: 23.877164417300968 - --- Workload: 93148100000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 13 in the X datas point --------------- - --- Configuration: 110000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3887057652.839107 - --- Energy: 23.99322866107899 - --- Workload: 93263200000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 42 in the X datas point --------------- - --- Configuration: 330000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3883480064.155091 - --- Energy: 24.08059502443054 - --- Workload: 93516400000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 14 in the X datas point --------------- - --- Configuration: 110000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3856284007.604592 - --- Energy: 24.207459297994163 - --- Workload: 93350900000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 28 in the X datas point --------------- - --- Configuration: 220000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3847826170.604917 - --- Energy: 24.264174107781162 - --- Workload: 93364400000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 29 in the X datas point --------------- - --- Configuration: 220000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3829378223.8577924 - --- Energy: 24.344031085422476 - --- Workload: 93222400000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 12 in the X datas point --------------- - --- Configuration: 110000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3819709702.062643 - --- Energy: 24.42419267600996 - --- Workload: 93293200000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 43 in the X datas point --------------- - --- Configuration: 330000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3773399795.481731 - --- Energy: 24.637735624906814 - --- Workload: 92968000000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 44 in the X datas point --------------- - --- Configuration: 330000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3779532320.67064 - --- Energy: 24.641747385770024 - --- Workload: 93134300000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 15 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 7988815658.07869 - --- Energy: 28.77615884915817 - --- Workload: 229888000000.0 --------------- --------------- ---- Median at position 4 in the list of neghbours, And at position 28 in the X datas point --------------- - --- Configuration: 220000-0-0 - --- Energy efficiency: 3847826170.604917 - --- Energy: 24.264174107781162 - --- Workload: 93364400000.0 --------------- ---- Comparing the median energy with the energy of that data point ---- The energy of the current configuration (24.264174107781162 mAh) it is NOT far from the median. ---- Median :24.264174107781162, the gap is : 10 ---- So No we don't romove this configuration '220000-0-0' - --- remove_aberrant_points: The value [0, 1.0, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0] is not an abberant point. - --- remove_aberrant_points: do we remove value [0, 1.0, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0] ---- Computing the list of the 10 first neighbours of '220000-0-0' -*** START computing ci exp matrix -X = [[0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.]] -*** END computing ci exp matrix, cached result [[[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - ... - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]]] ---- Ordered by distance, Printing the list of the 10 first neighbours of '220000-0-0' ---- Neighbour 0 in the list of neghbours, And at position 27 in the X datas point --------------- - --- Configuration: 220000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3901144986.0534062 - --- Energy: 23.877164417300968 - --- Workload: 93148100000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 28 in the X datas point --------------- - --- Configuration: 220000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3847826170.604917 - --- Energy: 24.264174107781162 - --- Workload: 93364400000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 29 in the X datas point --------------- - --- Configuration: 220000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3829378223.8577924 - --- Energy: 24.344031085422476 - --- Workload: 93222400000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 12 in the X datas point --------------- - --- Configuration: 110000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3819709702.062643 - --- Energy: 24.42419267600996 - --- Workload: 93293200000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 13 in the X datas point --------------- - --- Configuration: 110000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3887057652.839107 - --- Energy: 23.99322866107899 - --- Workload: 93263200000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 14 in the X datas point --------------- - --- Configuration: 110000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3856284007.604592 - --- Energy: 24.207459297994163 - --- Workload: 93350900000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 42 in the X datas point --------------- - --- Configuration: 330000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3883480064.155091 - --- Energy: 24.08059502443054 - --- Workload: 93516400000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 43 in the X datas point --------------- - --- Configuration: 330000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3773399795.481731 - --- Energy: 24.637735624906814 - --- Workload: 92968000000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 44 in the X datas point --------------- - --- Configuration: 330000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3779532320.67064 - --- Energy: 24.641747385770024 - --- Workload: 93134300000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 15 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 7988815658.07869 - --- Energy: 28.77615884915817 - --- Workload: 229888000000.0 --------------- ---- Ordered by energy, Printing the list of the 10 first neighbours of '220000-0-0' ---- Neighbour 0 in the list of neghbours, And at position 27 in the X datas point --------------- - --- Configuration: 220000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3901144986.0534062 - --- Energy: 23.877164417300968 - --- Workload: 93148100000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 13 in the X datas point --------------- - --- Configuration: 110000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3887057652.839107 - --- Energy: 23.99322866107899 - --- Workload: 93263200000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 42 in the X datas point --------------- - --- Configuration: 330000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3883480064.155091 - --- Energy: 24.08059502443054 - --- Workload: 93516400000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 14 in the X datas point --------------- - --- Configuration: 110000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3856284007.604592 - --- Energy: 24.207459297994163 - --- Workload: 93350900000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 28 in the X datas point --------------- - --- Configuration: 220000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3847826170.604917 - --- Energy: 24.264174107781162 - --- Workload: 93364400000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 29 in the X datas point --------------- - --- Configuration: 220000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3829378223.8577924 - --- Energy: 24.344031085422476 - --- Workload: 93222400000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 12 in the X datas point --------------- - --- Configuration: 110000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3819709702.062643 - --- Energy: 24.42419267600996 - --- Workload: 93293200000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 43 in the X datas point --------------- - --- Configuration: 330000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3773399795.481731 - --- Energy: 24.637735624906814 - --- Workload: 92968000000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 44 in the X datas point --------------- - --- Configuration: 330000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3779532320.67064 - --- Energy: 24.641747385770024 - --- Workload: 93134300000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 15 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 7988815658.07869 - --- Energy: 28.77615884915817 - --- Workload: 229888000000.0 --------------- --------------- ---- Median at position 4 in the list of neghbours, And at position 28 in the X datas point --------------- - --- Configuration: 220000-0-0 - --- Energy efficiency: 3847826170.604917 - --- Energy: 24.264174107781162 - --- Workload: 93364400000.0 --------------- ---- Comparing the median energy with the energy of that data point ---- The energy of the current configuration (24.264174107781162 mAh) it is NOT far from the median. ---- Median :24.264174107781162, the gap is : 10 ---- So No we don't romove this configuration '220000-0-0' - --- remove_aberrant_points: The value [0, 1.0, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0] is not an abberant point. - --- remove_aberrant_points: do we remove value [0, 2.0, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0] ---- Computing the list of the 10 first neighbours of '300003-0-0' -*** START computing ci exp matrix -X = [[0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.]] -*** END computing ci exp matrix, cached result [[[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - ... - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]]] ---- Ordered by distance, Printing the list of the 10 first neighbours of '300003-0-0' ---- Neighbour 0 in the list of neghbours, And at position 30 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 8729278874.272196 - --- Energy: 35.32232791967017 - --- Workload: 308338000000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 31 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 8655310898.767483 - --- Energy: 35.53991612451346 - --- Workload: 307609000000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 32 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 8625894936.599672 - --- Energy: 35.71754166492727 - --- Workload: 308096000000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 15 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 7988815658.07869 - --- Energy: 28.77615884915817 - --- Workload: 229888000000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 16 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 8007559135.824218 - --- Energy: 28.68325147336931 - --- Workload: 229682000000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 17 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 8163998399.856314 - --- Energy: 28.155953672150755 - --- Workload: 229866000000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 33 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3950351976.361094 - --- Energy: 23.716971835375215 - --- Workload: 93690400000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 34 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3930323229.7824173 - --- Energy: 23.953804227268574 - --- Workload: 94146300000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 35 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3961149050.1164575 - --- Energy: 23.66038518521068 - --- Workload: 93722400000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 36 in the X datas point --------------- - --- Configuration: 300300-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3877938022.79452 - --- Energy: 24.1559718861257 - --- Workload: 93675200000.0 --------------- ---- Ordered by energy, Printing the list of the 10 first neighbours of '300003-0-0' ---- Neighbour 0 in the list of neghbours, And at position 35 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3961149050.1164575 - --- Energy: 23.66038518521068 - --- Workload: 93722400000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 33 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3950351976.361094 - --- Energy: 23.716971835375215 - --- Workload: 93690400000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 34 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3930323229.7824173 - --- Energy: 23.953804227268574 - --- Workload: 94146300000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 36 in the X datas point --------------- - --- Configuration: 300300-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3877938022.79452 - --- Energy: 24.1559718861257 - --- Workload: 93675200000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 17 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 8163998399.856314 - --- Energy: 28.155953672150755 - --- Workload: 229866000000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 16 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 8007559135.824218 - --- Energy: 28.68325147336931 - --- Workload: 229682000000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 15 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 7988815658.07869 - --- Energy: 28.77615884915817 - --- Workload: 229888000000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 30 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8729278874.272196 - --- Energy: 35.32232791967017 - --- Workload: 308338000000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 31 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8655310898.767483 - --- Energy: 35.53991612451346 - --- Workload: 307609000000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 32 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8625894936.599672 - --- Energy: 35.71754166492727 - --- Workload: 308096000000.0 --------------- --------------- ---- Median at position 4 in the list of neghbours, And at position 17 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Energy efficiency: 8163998399.856314 - --- Energy: 28.155953672150755 - --- Workload: 229866000000.0 --------------- ---- Comparing the median energy with the energy of that data point ---- The energy of the current configuration (28.155953672150755 mAh) it is NOT far from the median. ---- Median :28.155953672150755, the gap is : 10 ---- So No we don't romove this configuration '300003-0-0' - --- remove_aberrant_points: The value [0, 2.0, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0] is not an abberant point. - --- remove_aberrant_points: do we remove value [0, 2.0, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0] ---- Computing the list of the 10 first neighbours of '300003-0-0' -*** START computing ci exp matrix -X = [[0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.]] -*** END computing ci exp matrix, cached result [[[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - ... - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]]] ---- Ordered by distance, Printing the list of the 10 first neighbours of '300003-0-0' ---- Neighbour 0 in the list of neghbours, And at position 30 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 8729278874.272196 - --- Energy: 35.32232791967017 - --- Workload: 308338000000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 31 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 8655310898.767483 - --- Energy: 35.53991612451346 - --- Workload: 307609000000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 32 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 8625894936.599672 - --- Energy: 35.71754166492727 - --- Workload: 308096000000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 15 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 7988815658.07869 - --- Energy: 28.77615884915817 - --- Workload: 229888000000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 16 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 8007559135.824218 - --- Energy: 28.68325147336931 - --- Workload: 229682000000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 17 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 8163998399.856314 - --- Energy: 28.155953672150755 - --- Workload: 229866000000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 33 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3950351976.361094 - --- Energy: 23.716971835375215 - --- Workload: 93690400000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 34 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3930323229.7824173 - --- Energy: 23.953804227268574 - --- Workload: 94146300000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 35 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3961149050.1164575 - --- Energy: 23.66038518521068 - --- Workload: 93722400000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 36 in the X datas point --------------- - --- Configuration: 300300-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3877938022.79452 - --- Energy: 24.1559718861257 - --- Workload: 93675200000.0 --------------- ---- Ordered by energy, Printing the list of the 10 first neighbours of '300003-0-0' ---- Neighbour 0 in the list of neghbours, And at position 35 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3961149050.1164575 - --- Energy: 23.66038518521068 - --- Workload: 93722400000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 33 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3950351976.361094 - --- Energy: 23.716971835375215 - --- Workload: 93690400000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 34 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3930323229.7824173 - --- Energy: 23.953804227268574 - --- Workload: 94146300000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 36 in the X datas point --------------- - --- Configuration: 300300-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3877938022.79452 - --- Energy: 24.1559718861257 - --- Workload: 93675200000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 17 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 8163998399.856314 - --- Energy: 28.155953672150755 - --- Workload: 229866000000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 16 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 8007559135.824218 - --- Energy: 28.68325147336931 - --- Workload: 229682000000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 15 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 7988815658.07869 - --- Energy: 28.77615884915817 - --- Workload: 229888000000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 30 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8729278874.272196 - --- Energy: 35.32232791967017 - --- Workload: 308338000000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 31 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8655310898.767483 - --- Energy: 35.53991612451346 - --- Workload: 307609000000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 32 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8625894936.599672 - --- Energy: 35.71754166492727 - --- Workload: 308096000000.0 --------------- --------------- ---- Median at position 4 in the list of neghbours, And at position 17 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Energy efficiency: 8163998399.856314 - --- Energy: 28.155953672150755 - --- Workload: 229866000000.0 --------------- ---- Comparing the median energy with the energy of that data point ---- The energy of the current configuration (28.155953672150755 mAh) it is NOT far from the median. ---- Median :28.155953672150755, the gap is : 10 ---- So No we don't romove this configuration '300003-0-0' - --- remove_aberrant_points: The value [0, 2.0, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0] is not an abberant point. - --- remove_aberrant_points: do we remove value [0, 2.0, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0] ---- Computing the list of the 10 first neighbours of '300003-0-0' -*** START computing ci exp matrix -X = [[0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.]] -*** END computing ci exp matrix, cached result [[[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - ... - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]]] ---- Ordered by distance, Printing the list of the 10 first neighbours of '300003-0-0' ---- Neighbour 0 in the list of neghbours, And at position 30 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 8729278874.272196 - --- Energy: 35.32232791967017 - --- Workload: 308338000000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 31 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 8655310898.767483 - --- Energy: 35.53991612451346 - --- Workload: 307609000000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 32 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 8625894936.599672 - --- Energy: 35.71754166492727 - --- Workload: 308096000000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 15 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 7988815658.07869 - --- Energy: 28.77615884915817 - --- Workload: 229888000000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 16 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 8007559135.824218 - --- Energy: 28.68325147336931 - --- Workload: 229682000000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 17 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 8163998399.856314 - --- Energy: 28.155953672150755 - --- Workload: 229866000000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 33 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3950351976.361094 - --- Energy: 23.716971835375215 - --- Workload: 93690400000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 34 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3930323229.7824173 - --- Energy: 23.953804227268574 - --- Workload: 94146300000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 35 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3961149050.1164575 - --- Energy: 23.66038518521068 - --- Workload: 93722400000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 36 in the X datas point --------------- - --- Configuration: 300300-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3877938022.79452 - --- Energy: 24.1559718861257 - --- Workload: 93675200000.0 --------------- ---- Ordered by energy, Printing the list of the 10 first neighbours of '300003-0-0' ---- Neighbour 0 in the list of neghbours, And at position 35 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3961149050.1164575 - --- Energy: 23.66038518521068 - --- Workload: 93722400000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 33 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3950351976.361094 - --- Energy: 23.716971835375215 - --- Workload: 93690400000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 34 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3930323229.7824173 - --- Energy: 23.953804227268574 - --- Workload: 94146300000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 36 in the X datas point --------------- - --- Configuration: 300300-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3877938022.79452 - --- Energy: 24.1559718861257 - --- Workload: 93675200000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 17 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 8163998399.856314 - --- Energy: 28.155953672150755 - --- Workload: 229866000000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 16 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 8007559135.824218 - --- Energy: 28.68325147336931 - --- Workload: 229682000000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 15 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 7988815658.07869 - --- Energy: 28.77615884915817 - --- Workload: 229888000000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 30 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8729278874.272196 - --- Energy: 35.32232791967017 - --- Workload: 308338000000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 31 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8655310898.767483 - --- Energy: 35.53991612451346 - --- Workload: 307609000000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 32 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8625894936.599672 - --- Energy: 35.71754166492727 - --- Workload: 308096000000.0 --------------- --------------- ---- Median at position 4 in the list of neghbours, And at position 17 in the X datas point --------------- - --- Configuration: 200002-0-0 - --- Energy efficiency: 8163998399.856314 - --- Energy: 28.155953672150755 - --- Workload: 229866000000.0 --------------- ---- Comparing the median energy with the energy of that data point ---- The energy of the current configuration (28.155953672150755 mAh) it is NOT far from the median. ---- Median :28.155953672150755, the gap is : 10 ---- So No we don't romove this configuration '300003-0-0' - --- remove_aberrant_points: The value [0, 2.0, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0] is not an abberant point. - --- remove_aberrant_points: do we remove value [0, 2.0, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0] ---- Computing the list of the 10 first neighbours of '300030-0-0' -*** START computing ci exp matrix -X = [[0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.]] -*** END computing ci exp matrix, cached result [[[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - ... - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]]] ---- Ordered by distance, Printing the list of the 10 first neighbours of '300030-0-0' ---- Neighbour 0 in the list of neghbours, And at position 33 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3950351976.361094 - --- Energy: 23.716971835375215 - --- Workload: 93690400000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 34 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3930323229.7824173 - --- Energy: 23.953804227268574 - --- Workload: 94146300000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 35 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3961149050.1164575 - --- Energy: 23.66038518521068 - --- Workload: 93722400000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 18 in the X datas point --------------- - --- Configuration: 200020-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3913174484.5370913 - --- Energy: 24.03237046200954 - --- Workload: 94042900000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 19 in the X datas point --------------- - --- Configuration: 200020-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3792360668.6690335 - --- Energy: 24.734270276684956 - --- Workload: 93801200000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 20 in the X datas point --------------- - --- Configuration: 200020-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3951304127.927423 - --- Energy: 23.743288058460422 - --- Workload: 93816800000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 30 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8729278874.272196 - --- Energy: 35.32232791967017 - --- Workload: 308338000000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 31 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8655310898.767483 - --- Energy: 35.53991612451346 - --- Workload: 307609000000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 32 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8625894936.599672 - --- Energy: 35.71754166492727 - --- Workload: 308096000000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 36 in the X datas point --------------- - --- Configuration: 300300-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3877938022.79452 - --- Energy: 24.1559718861257 - --- Workload: 93675200000.0 --------------- ---- Ordered by energy, Printing the list of the 10 first neighbours of '300030-0-0' ---- Neighbour 0 in the list of neghbours, And at position 35 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3961149050.1164575 - --- Energy: 23.66038518521068 - --- Workload: 93722400000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 33 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3950351976.361094 - --- Energy: 23.716971835375215 - --- Workload: 93690400000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 20 in the X datas point --------------- - --- Configuration: 200020-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3951304127.927423 - --- Energy: 23.743288058460422 - --- Workload: 93816800000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 34 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3930323229.7824173 - --- Energy: 23.953804227268574 - --- Workload: 94146300000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 18 in the X datas point --------------- - --- Configuration: 200020-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3913174484.5370913 - --- Energy: 24.03237046200954 - --- Workload: 94042900000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 36 in the X datas point --------------- - --- Configuration: 300300-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3877938022.79452 - --- Energy: 24.1559718861257 - --- Workload: 93675200000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 19 in the X datas point --------------- - --- Configuration: 200020-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3792360668.6690335 - --- Energy: 24.734270276684956 - --- Workload: 93801200000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 30 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8729278874.272196 - --- Energy: 35.32232791967017 - --- Workload: 308338000000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 31 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8655310898.767483 - --- Energy: 35.53991612451346 - --- Workload: 307609000000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 32 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8625894936.599672 - --- Energy: 35.71754166492727 - --- Workload: 308096000000.0 --------------- --------------- ---- Median at position 4 in the list of neghbours, And at position 18 in the X datas point --------------- - --- Configuration: 200020-0-0 - --- Energy efficiency: 3913174484.5370913 - --- Energy: 24.03237046200954 - --- Workload: 94042900000.0 --------------- ---- Comparing the median energy with the energy of that data point ---- The energy of the current configuration (24.03237046200954 mAh) it is NOT far from the median. ---- Median :24.03237046200954, the gap is : 10 ---- So No we don't romove this configuration '300030-0-0' - --- remove_aberrant_points: The value [0, 2.0, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0] is not an abberant point. - --- remove_aberrant_points: do we remove value [0, 2.0, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0] ---- Computing the list of the 10 first neighbours of '300030-0-0' -*** START computing ci exp matrix -X = [[0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.]] -*** END computing ci exp matrix, cached result [[[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - ... - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]]] ---- Ordered by distance, Printing the list of the 10 first neighbours of '300030-0-0' ---- Neighbour 0 in the list of neghbours, And at position 33 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3950351976.361094 - --- Energy: 23.716971835375215 - --- Workload: 93690400000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 34 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3930323229.7824173 - --- Energy: 23.953804227268574 - --- Workload: 94146300000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 35 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3961149050.1164575 - --- Energy: 23.66038518521068 - --- Workload: 93722400000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 18 in the X datas point --------------- - --- Configuration: 200020-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3913174484.5370913 - --- Energy: 24.03237046200954 - --- Workload: 94042900000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 19 in the X datas point --------------- - --- Configuration: 200020-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3792360668.6690335 - --- Energy: 24.734270276684956 - --- Workload: 93801200000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 20 in the X datas point --------------- - --- Configuration: 200020-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3951304127.927423 - --- Energy: 23.743288058460422 - --- Workload: 93816800000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 30 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8729278874.272196 - --- Energy: 35.32232791967017 - --- Workload: 308338000000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 31 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8655310898.767483 - --- Energy: 35.53991612451346 - --- Workload: 307609000000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 32 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8625894936.599672 - --- Energy: 35.71754166492727 - --- Workload: 308096000000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 36 in the X datas point --------------- - --- Configuration: 300300-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3877938022.79452 - --- Energy: 24.1559718861257 - --- Workload: 93675200000.0 --------------- ---- Ordered by energy, Printing the list of the 10 first neighbours of '300030-0-0' ---- Neighbour 0 in the list of neghbours, And at position 35 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3961149050.1164575 - --- Energy: 23.66038518521068 - --- Workload: 93722400000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 33 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3950351976.361094 - --- Energy: 23.716971835375215 - --- Workload: 93690400000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 20 in the X datas point --------------- - --- Configuration: 200020-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3951304127.927423 - --- Energy: 23.743288058460422 - --- Workload: 93816800000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 34 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3930323229.7824173 - --- Energy: 23.953804227268574 - --- Workload: 94146300000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 18 in the X datas point --------------- - --- Configuration: 200020-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3913174484.5370913 - --- Energy: 24.03237046200954 - --- Workload: 94042900000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 36 in the X datas point --------------- - --- Configuration: 300300-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3877938022.79452 - --- Energy: 24.1559718861257 - --- Workload: 93675200000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 19 in the X datas point --------------- - --- Configuration: 200020-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3792360668.6690335 - --- Energy: 24.734270276684956 - --- Workload: 93801200000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 30 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8729278874.272196 - --- Energy: 35.32232791967017 - --- Workload: 308338000000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 31 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8655310898.767483 - --- Energy: 35.53991612451346 - --- Workload: 307609000000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 32 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8625894936.599672 - --- Energy: 35.71754166492727 - --- Workload: 308096000000.0 --------------- --------------- ---- Median at position 4 in the list of neghbours, And at position 18 in the X datas point --------------- - --- Configuration: 200020-0-0 - --- Energy efficiency: 3913174484.5370913 - --- Energy: 24.03237046200954 - --- Workload: 94042900000.0 --------------- ---- Comparing the median energy with the energy of that data point ---- The energy of the current configuration (24.03237046200954 mAh) it is NOT far from the median. ---- Median :24.03237046200954, the gap is : 10 ---- So No we don't romove this configuration '300030-0-0' - --- remove_aberrant_points: The value [0, 2.0, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0] is not an abberant point. - --- remove_aberrant_points: do we remove value [0, 2.0, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0] ---- Computing the list of the 10 first neighbours of '300030-0-0' -*** START computing ci exp matrix -X = [[0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.]] -*** END computing ci exp matrix, cached result [[[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - ... - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]]] ---- Ordered by distance, Printing the list of the 10 first neighbours of '300030-0-0' ---- Neighbour 0 in the list of neghbours, And at position 33 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3950351976.361094 - --- Energy: 23.716971835375215 - --- Workload: 93690400000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 34 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3930323229.7824173 - --- Energy: 23.953804227268574 - --- Workload: 94146300000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 35 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3961149050.1164575 - --- Energy: 23.66038518521068 - --- Workload: 93722400000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 18 in the X datas point --------------- - --- Configuration: 200020-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3913174484.5370913 - --- Energy: 24.03237046200954 - --- Workload: 94042900000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 19 in the X datas point --------------- - --- Configuration: 200020-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3792360668.6690335 - --- Energy: 24.734270276684956 - --- Workload: 93801200000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 20 in the X datas point --------------- - --- Configuration: 200020-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3951304127.927423 - --- Energy: 23.743288058460422 - --- Workload: 93816800000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 30 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8729278874.272196 - --- Energy: 35.32232791967017 - --- Workload: 308338000000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 31 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8655310898.767483 - --- Energy: 35.53991612451346 - --- Workload: 307609000000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 32 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8625894936.599672 - --- Energy: 35.71754166492727 - --- Workload: 308096000000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 36 in the X datas point --------------- - --- Configuration: 300300-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3877938022.79452 - --- Energy: 24.1559718861257 - --- Workload: 93675200000.0 --------------- ---- Ordered by energy, Printing the list of the 10 first neighbours of '300030-0-0' ---- Neighbour 0 in the list of neghbours, And at position 35 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3961149050.1164575 - --- Energy: 23.66038518521068 - --- Workload: 93722400000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 33 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3950351976.361094 - --- Energy: 23.716971835375215 - --- Workload: 93690400000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 20 in the X datas point --------------- - --- Configuration: 200020-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3951304127.927423 - --- Energy: 23.743288058460422 - --- Workload: 93816800000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 34 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3930323229.7824173 - --- Energy: 23.953804227268574 - --- Workload: 94146300000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 18 in the X datas point --------------- - --- Configuration: 200020-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3913174484.5370913 - --- Energy: 24.03237046200954 - --- Workload: 94042900000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 36 in the X datas point --------------- - --- Configuration: 300300-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3877938022.79452 - --- Energy: 24.1559718861257 - --- Workload: 93675200000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 19 in the X datas point --------------- - --- Configuration: 200020-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3792360668.6690335 - --- Energy: 24.734270276684956 - --- Workload: 93801200000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 30 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8729278874.272196 - --- Energy: 35.32232791967017 - --- Workload: 308338000000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 31 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8655310898.767483 - --- Energy: 35.53991612451346 - --- Workload: 307609000000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 32 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8625894936.599672 - --- Energy: 35.71754166492727 - --- Workload: 308096000000.0 --------------- --------------- ---- Median at position 4 in the list of neghbours, And at position 18 in the X datas point --------------- - --- Configuration: 200020-0-0 - --- Energy efficiency: 3913174484.5370913 - --- Energy: 24.03237046200954 - --- Workload: 94042900000.0 --------------- ---- Comparing the median energy with the energy of that data point ---- The energy of the current configuration (24.03237046200954 mAh) it is NOT far from the median. ---- Median :24.03237046200954, the gap is : 10 ---- So No we don't romove this configuration '300030-0-0' - --- remove_aberrant_points: The value [0, 2.0, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0] is not an abberant point. - --- remove_aberrant_points: do we remove value [0, 2.0, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0] ---- Computing the list of the 10 first neighbours of '300300-0-0' -*** START computing ci exp matrix -X = [[0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.]] -*** END computing ci exp matrix, cached result [[[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - ... - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]]] ---- Ordered by distance, Printing the list of the 10 first neighbours of '300300-0-0' ---- Neighbour 0 in the list of neghbours, And at position 36 in the X datas point --------------- - --- Configuration: 300300-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3877938022.79452 - --- Energy: 24.1559718861257 - --- Workload: 93675200000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 37 in the X datas point --------------- - --- Configuration: 300300-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3854336899.8797445 - --- Energy: 24.32865158873136 - --- Workload: 93770900000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 38 in the X datas point --------------- - --- Configuration: 300300-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3984905179.181261 - --- Energy: 23.538369217832788 - --- Workload: 93798100000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 21 in the X datas point --------------- - --- Configuration: 200200-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3947700859.019707 - --- Energy: 23.750591714866186 - --- Workload: 93760200000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 22 in the X datas point --------------- - --- Configuration: 200200-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3979877738.155884 - --- Energy: 23.505960200642747 - --- Workload: 93550800000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 23 in the X datas point --------------- - --- Configuration: 200200-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 4070782770.8190007 - --- Energy: 23.42848921387117 - --- Workload: 95372100000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 30 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8729278874.272196 - --- Energy: 35.32232791967017 - --- Workload: 308338000000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 31 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8655310898.767483 - --- Energy: 35.53991612451346 - --- Workload: 307609000000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 32 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8625894936.599672 - --- Energy: 35.71754166492727 - --- Workload: 308096000000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 33 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3950351976.361094 - --- Energy: 23.716971835375215 - --- Workload: 93690400000.0 --------------- ---- Ordered by energy, Printing the list of the 10 first neighbours of '300300-0-0' ---- Neighbour 0 in the list of neghbours, And at position 23 in the X datas point --------------- - --- Configuration: 200200-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 4070782770.8190007 - --- Energy: 23.42848921387117 - --- Workload: 95372100000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 22 in the X datas point --------------- - --- Configuration: 200200-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3979877738.155884 - --- Energy: 23.505960200642747 - --- Workload: 93550800000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 38 in the X datas point --------------- - --- Configuration: 300300-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3984905179.181261 - --- Energy: 23.538369217832788 - --- Workload: 93798100000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 33 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3950351976.361094 - --- Energy: 23.716971835375215 - --- Workload: 93690400000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 21 in the X datas point --------------- - --- Configuration: 200200-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3947700859.019707 - --- Energy: 23.750591714866186 - --- Workload: 93760200000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 36 in the X datas point --------------- - --- Configuration: 300300-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3877938022.79452 - --- Energy: 24.1559718861257 - --- Workload: 93675200000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 37 in the X datas point --------------- - --- Configuration: 300300-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3854336899.8797445 - --- Energy: 24.32865158873136 - --- Workload: 93770900000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 30 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8729278874.272196 - --- Energy: 35.32232791967017 - --- Workload: 308338000000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 31 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8655310898.767483 - --- Energy: 35.53991612451346 - --- Workload: 307609000000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 32 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8625894936.599672 - --- Energy: 35.71754166492727 - --- Workload: 308096000000.0 --------------- --------------- ---- Median at position 4 in the list of neghbours, And at position 21 in the X datas point --------------- - --- Configuration: 200200-0-0 - --- Energy efficiency: 3947700859.019707 - --- Energy: 23.750591714866186 - --- Workload: 93760200000.0 --------------- ---- Comparing the median energy with the energy of that data point ---- The energy of the current configuration (23.750591714866186 mAh) it is NOT far from the median. ---- Median :23.750591714866186, the gap is : 10 ---- So No we don't romove this configuration '300300-0-0' - --- remove_aberrant_points: The value [0, 2.0, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0] is not an abberant point. - --- remove_aberrant_points: do we remove value [0, 2.0, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0] ---- Computing the list of the 10 first neighbours of '300300-0-0' -*** START computing ci exp matrix -X = [[0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.]] -*** END computing ci exp matrix, cached result [[[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - ... - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]]] ---- Ordered by distance, Printing the list of the 10 first neighbours of '300300-0-0' ---- Neighbour 0 in the list of neghbours, And at position 36 in the X datas point --------------- - --- Configuration: 300300-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3877938022.79452 - --- Energy: 24.1559718861257 - --- Workload: 93675200000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 37 in the X datas point --------------- - --- Configuration: 300300-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3854336899.8797445 - --- Energy: 24.32865158873136 - --- Workload: 93770900000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 38 in the X datas point --------------- - --- Configuration: 300300-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3984905179.181261 - --- Energy: 23.538369217832788 - --- Workload: 93798100000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 21 in the X datas point --------------- - --- Configuration: 200200-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3947700859.019707 - --- Energy: 23.750591714866186 - --- Workload: 93760200000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 22 in the X datas point --------------- - --- Configuration: 200200-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3979877738.155884 - --- Energy: 23.505960200642747 - --- Workload: 93550800000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 23 in the X datas point --------------- - --- Configuration: 200200-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 4070782770.8190007 - --- Energy: 23.42848921387117 - --- Workload: 95372100000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 30 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8729278874.272196 - --- Energy: 35.32232791967017 - --- Workload: 308338000000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 31 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8655310898.767483 - --- Energy: 35.53991612451346 - --- Workload: 307609000000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 32 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8625894936.599672 - --- Energy: 35.71754166492727 - --- Workload: 308096000000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 33 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3950351976.361094 - --- Energy: 23.716971835375215 - --- Workload: 93690400000.0 --------------- ---- Ordered by energy, Printing the list of the 10 first neighbours of '300300-0-0' ---- Neighbour 0 in the list of neghbours, And at position 23 in the X datas point --------------- - --- Configuration: 200200-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 4070782770.8190007 - --- Energy: 23.42848921387117 - --- Workload: 95372100000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 22 in the X datas point --------------- - --- Configuration: 200200-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3979877738.155884 - --- Energy: 23.505960200642747 - --- Workload: 93550800000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 38 in the X datas point --------------- - --- Configuration: 300300-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3984905179.181261 - --- Energy: 23.538369217832788 - --- Workload: 93798100000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 33 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3950351976.361094 - --- Energy: 23.716971835375215 - --- Workload: 93690400000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 21 in the X datas point --------------- - --- Configuration: 200200-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3947700859.019707 - --- Energy: 23.750591714866186 - --- Workload: 93760200000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 36 in the X datas point --------------- - --- Configuration: 300300-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3877938022.79452 - --- Energy: 24.1559718861257 - --- Workload: 93675200000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 37 in the X datas point --------------- - --- Configuration: 300300-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3854336899.8797445 - --- Energy: 24.32865158873136 - --- Workload: 93770900000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 30 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8729278874.272196 - --- Energy: 35.32232791967017 - --- Workload: 308338000000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 31 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8655310898.767483 - --- Energy: 35.53991612451346 - --- Workload: 307609000000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 32 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8625894936.599672 - --- Energy: 35.71754166492727 - --- Workload: 308096000000.0 --------------- --------------- ---- Median at position 4 in the list of neghbours, And at position 21 in the X datas point --------------- - --- Configuration: 200200-0-0 - --- Energy efficiency: 3947700859.019707 - --- Energy: 23.750591714866186 - --- Workload: 93760200000.0 --------------- ---- Comparing the median energy with the energy of that data point ---- The energy of the current configuration (23.750591714866186 mAh) it is NOT far from the median. ---- Median :23.750591714866186, the gap is : 10 ---- So No we don't romove this configuration '300300-0-0' - --- remove_aberrant_points: The value [0, 2.0, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0] is not an abberant point. - --- remove_aberrant_points: do we remove value [0, 2.0, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0] ---- Computing the list of the 10 first neighbours of '300300-0-0' -*** START computing ci exp matrix -X = [[0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.]] -*** END computing ci exp matrix, cached result [[[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - ... - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]]] ---- Ordered by distance, Printing the list of the 10 first neighbours of '300300-0-0' ---- Neighbour 0 in the list of neghbours, And at position 36 in the X datas point --------------- - --- Configuration: 300300-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3877938022.79452 - --- Energy: 24.1559718861257 - --- Workload: 93675200000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 37 in the X datas point --------------- - --- Configuration: 300300-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3854336899.8797445 - --- Energy: 24.32865158873136 - --- Workload: 93770900000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 38 in the X datas point --------------- - --- Configuration: 300300-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3984905179.181261 - --- Energy: 23.538369217832788 - --- Workload: 93798100000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 21 in the X datas point --------------- - --- Configuration: 200200-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3947700859.019707 - --- Energy: 23.750591714866186 - --- Workload: 93760200000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 22 in the X datas point --------------- - --- Configuration: 200200-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3979877738.155884 - --- Energy: 23.505960200642747 - --- Workload: 93550800000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 23 in the X datas point --------------- - --- Configuration: 200200-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 4070782770.8190007 - --- Energy: 23.42848921387117 - --- Workload: 95372100000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 30 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8729278874.272196 - --- Energy: 35.32232791967017 - --- Workload: 308338000000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 31 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8655310898.767483 - --- Energy: 35.53991612451346 - --- Workload: 307609000000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 32 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8625894936.599672 - --- Energy: 35.71754166492727 - --- Workload: 308096000000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 33 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3950351976.361094 - --- Energy: 23.716971835375215 - --- Workload: 93690400000.0 --------------- ---- Ordered by energy, Printing the list of the 10 first neighbours of '300300-0-0' ---- Neighbour 0 in the list of neghbours, And at position 23 in the X datas point --------------- - --- Configuration: 200200-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 4070782770.8190007 - --- Energy: 23.42848921387117 - --- Workload: 95372100000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 22 in the X datas point --------------- - --- Configuration: 200200-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3979877738.155884 - --- Energy: 23.505960200642747 - --- Workload: 93550800000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 38 in the X datas point --------------- - --- Configuration: 300300-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3984905179.181261 - --- Energy: 23.538369217832788 - --- Workload: 93798100000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 33 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3950351976.361094 - --- Energy: 23.716971835375215 - --- Workload: 93690400000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 21 in the X datas point --------------- - --- Configuration: 200200-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3947700859.019707 - --- Energy: 23.750591714866186 - --- Workload: 93760200000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 36 in the X datas point --------------- - --- Configuration: 300300-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3877938022.79452 - --- Energy: 24.1559718861257 - --- Workload: 93675200000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 37 in the X datas point --------------- - --- Configuration: 300300-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3854336899.8797445 - --- Energy: 24.32865158873136 - --- Workload: 93770900000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 30 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8729278874.272196 - --- Energy: 35.32232791967017 - --- Workload: 308338000000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 31 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8655310898.767483 - --- Energy: 35.53991612451346 - --- Workload: 307609000000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 32 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8625894936.599672 - --- Energy: 35.71754166492727 - --- Workload: 308096000000.0 --------------- --------------- ---- Median at position 4 in the list of neghbours, And at position 21 in the X datas point --------------- - --- Configuration: 200200-0-0 - --- Energy efficiency: 3947700859.019707 - --- Energy: 23.750591714866186 - --- Workload: 93760200000.0 --------------- ---- Comparing the median energy with the energy of that data point ---- The energy of the current configuration (23.750591714866186 mAh) it is NOT far from the median. ---- Median :23.750591714866186, the gap is : 10 ---- So No we don't romove this configuration '300300-0-0' - --- remove_aberrant_points: The value [0, 2.0, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0] is not an abberant point. - --- remove_aberrant_points: do we remove value [0, 2.0, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0] ---- Computing the list of the 10 first neighbours of '303000-0-0' -*** START computing ci exp matrix -X = [[0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.]] -*** END computing ci exp matrix, cached result [[[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - ... - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]]] ---- Ordered by distance, Printing the list of the 10 first neighbours of '303000-0-0' ---- Neighbour 0 in the list of neghbours, And at position 39 in the X datas point --------------- - --- Configuration: 303000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3925740689.124521 - --- Energy: 23.867682919071562 - --- Workload: 93698300000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 40 in the X datas point --------------- - --- Configuration: 303000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3940529528.3580203 - --- Energy: 23.84547723870087 - --- Workload: 93963800000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 41 in the X datas point --------------- - --- Configuration: 303000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3882741215.2980003 - --- Energy: 24.080718397086365 - --- Workload: 93499300000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 24 in the X datas point --------------- - --- Configuration: 202000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3927683491.5535164 - --- Energy: 24.092534379540634 - --- Workload: 94627800000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 25 in the X datas point --------------- - --- Configuration: 202000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3867649049.525246 - --- Energy: 24.21312283502527 - --- Workload: 93647900000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 26 in the X datas point --------------- - --- Configuration: 202000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3861719546.4796567 - --- Energy: 24.183210213672954 - --- Workload: 93388700000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 30 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8729278874.272196 - --- Energy: 35.32232791967017 - --- Workload: 308338000000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 31 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8655310898.767483 - --- Energy: 35.53991612451346 - --- Workload: 307609000000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 32 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8625894936.599672 - --- Energy: 35.71754166492727 - --- Workload: 308096000000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 33 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3950351976.361094 - --- Energy: 23.716971835375215 - --- Workload: 93690400000.0 --------------- ---- Ordered by energy, Printing the list of the 10 first neighbours of '303000-0-0' ---- Neighbour 0 in the list of neghbours, And at position 33 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3950351976.361094 - --- Energy: 23.716971835375215 - --- Workload: 93690400000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 40 in the X datas point --------------- - --- Configuration: 303000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3940529528.3580203 - --- Energy: 23.84547723870087 - --- Workload: 93963800000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 39 in the X datas point --------------- - --- Configuration: 303000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3925740689.124521 - --- Energy: 23.867682919071562 - --- Workload: 93698300000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 41 in the X datas point --------------- - --- Configuration: 303000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3882741215.2980003 - --- Energy: 24.080718397086365 - --- Workload: 93499300000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 24 in the X datas point --------------- - --- Configuration: 202000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3927683491.5535164 - --- Energy: 24.092534379540634 - --- Workload: 94627800000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 26 in the X datas point --------------- - --- Configuration: 202000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3861719546.4796567 - --- Energy: 24.183210213672954 - --- Workload: 93388700000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 25 in the X datas point --------------- - --- Configuration: 202000-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3867649049.525246 - --- Energy: 24.21312283502527 - --- Workload: 93647900000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 30 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8729278874.272196 - --- Energy: 35.32232791967017 - --- Workload: 308338000000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 31 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8655310898.767483 - --- Energy: 35.53991612451346 - --- Workload: 307609000000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 32 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8625894936.599672 - --- Energy: 35.71754166492727 - --- Workload: 308096000000.0 --------------- --------------- ---- Median at position 4 in the list of neghbours, And at position 24 in the X datas point --------------- - --- Configuration: 202000-0-0 - --- Energy efficiency: 3927683491.5535164 - --- Energy: 24.092534379540634 - --- Workload: 94627800000.0 --------------- ---- Comparing the median energy with the energy of that data point ---- The energy of the current configuration (24.092534379540634 mAh) it is NOT far from the median. ---- Median :24.092534379540634, the gap is : 10 ---- So No we don't romove this configuration '303000-0-0' - --- remove_aberrant_points: The value [0, 2.0, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0] is not an abberant point. - --- remove_aberrant_points: do we remove value [0, 2.0, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0] ---- Computing the list of the 10 first neighbours of '303000-0-0' -*** START computing ci exp matrix -X = [[0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.]] -*** END computing ci exp matrix, cached result [[[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - ... - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]]] ---- Ordered by distance, Printing the list of the 10 first neighbours of '303000-0-0' ---- Neighbour 0 in the list of neghbours, And at position 39 in the X datas point --------------- - --- Configuration: 303000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3925740689.124521 - --- Energy: 23.867682919071562 - --- Workload: 93698300000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 40 in the X datas point --------------- - --- Configuration: 303000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3940529528.3580203 - --- Energy: 23.84547723870087 - --- Workload: 93963800000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 41 in the X datas point --------------- - --- Configuration: 303000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3882741215.2980003 - --- Energy: 24.080718397086365 - --- Workload: 93499300000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 24 in the X datas point --------------- - --- Configuration: 202000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3927683491.5535164 - --- Energy: 24.092534379540634 - --- Workload: 94627800000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 25 in the X datas point --------------- - --- Configuration: 202000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3867649049.525246 - --- Energy: 24.21312283502527 - --- Workload: 93647900000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 26 in the X datas point --------------- - --- Configuration: 202000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3861719546.4796567 - --- Energy: 24.183210213672954 - --- Workload: 93388700000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 30 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8729278874.272196 - --- Energy: 35.32232791967017 - --- Workload: 308338000000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 31 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8655310898.767483 - --- Energy: 35.53991612451346 - --- Workload: 307609000000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 32 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8625894936.599672 - --- Energy: 35.71754166492727 - --- Workload: 308096000000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 33 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3950351976.361094 - --- Energy: 23.716971835375215 - --- Workload: 93690400000.0 --------------- ---- Ordered by energy, Printing the list of the 10 first neighbours of '303000-0-0' ---- Neighbour 0 in the list of neghbours, And at position 33 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3950351976.361094 - --- Energy: 23.716971835375215 - --- Workload: 93690400000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 40 in the X datas point --------------- - --- Configuration: 303000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3940529528.3580203 - --- Energy: 23.84547723870087 - --- Workload: 93963800000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 39 in the X datas point --------------- - --- Configuration: 303000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3925740689.124521 - --- Energy: 23.867682919071562 - --- Workload: 93698300000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 41 in the X datas point --------------- - --- Configuration: 303000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3882741215.2980003 - --- Energy: 24.080718397086365 - --- Workload: 93499300000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 24 in the X datas point --------------- - --- Configuration: 202000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3927683491.5535164 - --- Energy: 24.092534379540634 - --- Workload: 94627800000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 26 in the X datas point --------------- - --- Configuration: 202000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3861719546.4796567 - --- Energy: 24.183210213672954 - --- Workload: 93388700000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 25 in the X datas point --------------- - --- Configuration: 202000-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3867649049.525246 - --- Energy: 24.21312283502527 - --- Workload: 93647900000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 30 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8729278874.272196 - --- Energy: 35.32232791967017 - --- Workload: 308338000000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 31 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8655310898.767483 - --- Energy: 35.53991612451346 - --- Workload: 307609000000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 32 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8625894936.599672 - --- Energy: 35.71754166492727 - --- Workload: 308096000000.0 --------------- --------------- ---- Median at position 4 in the list of neghbours, And at position 24 in the X datas point --------------- - --- Configuration: 202000-0-0 - --- Energy efficiency: 3927683491.5535164 - --- Energy: 24.092534379540634 - --- Workload: 94627800000.0 --------------- ---- Comparing the median energy with the energy of that data point ---- The energy of the current configuration (24.092534379540634 mAh) it is NOT far from the median. ---- Median :24.092534379540634, the gap is : 10 ---- So No we don't romove this configuration '303000-0-0' - --- remove_aberrant_points: The value [0, 2.0, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0] is not an abberant point. - --- remove_aberrant_points: do we remove value [0, 2.0, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0] ---- Computing the list of the 10 first neighbours of '303000-0-0' -*** START computing ci exp matrix -X = [[0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.]] -*** END computing ci exp matrix, cached result [[[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - ... - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]]] ---- Ordered by distance, Printing the list of the 10 first neighbours of '303000-0-0' ---- Neighbour 0 in the list of neghbours, And at position 39 in the X datas point --------------- - --- Configuration: 303000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3925740689.124521 - --- Energy: 23.867682919071562 - --- Workload: 93698300000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 40 in the X datas point --------------- - --- Configuration: 303000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3940529528.3580203 - --- Energy: 23.84547723870087 - --- Workload: 93963800000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 41 in the X datas point --------------- - --- Configuration: 303000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3882741215.2980003 - --- Energy: 24.080718397086365 - --- Workload: 93499300000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 24 in the X datas point --------------- - --- Configuration: 202000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3927683491.5535164 - --- Energy: 24.092534379540634 - --- Workload: 94627800000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 25 in the X datas point --------------- - --- Configuration: 202000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3867649049.525246 - --- Energy: 24.21312283502527 - --- Workload: 93647900000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 26 in the X datas point --------------- - --- Configuration: 202000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3861719546.4796567 - --- Energy: 24.183210213672954 - --- Workload: 93388700000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 30 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8729278874.272196 - --- Energy: 35.32232791967017 - --- Workload: 308338000000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 31 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8655310898.767483 - --- Energy: 35.53991612451346 - --- Workload: 307609000000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 32 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8625894936.599672 - --- Energy: 35.71754166492727 - --- Workload: 308096000000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 33 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3950351976.361094 - --- Energy: 23.716971835375215 - --- Workload: 93690400000.0 --------------- ---- Ordered by energy, Printing the list of the 10 first neighbours of '303000-0-0' ---- Neighbour 0 in the list of neghbours, And at position 33 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3950351976.361094 - --- Energy: 23.716971835375215 - --- Workload: 93690400000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 40 in the X datas point --------------- - --- Configuration: 303000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3940529528.3580203 - --- Energy: 23.84547723870087 - --- Workload: 93963800000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 39 in the X datas point --------------- - --- Configuration: 303000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3925740689.124521 - --- Energy: 23.867682919071562 - --- Workload: 93698300000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 41 in the X datas point --------------- - --- Configuration: 303000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3882741215.2980003 - --- Energy: 24.080718397086365 - --- Workload: 93499300000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 24 in the X datas point --------------- - --- Configuration: 202000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3927683491.5535164 - --- Energy: 24.092534379540634 - --- Workload: 94627800000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 26 in the X datas point --------------- - --- Configuration: 202000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3861719546.4796567 - --- Energy: 24.183210213672954 - --- Workload: 93388700000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 25 in the X datas point --------------- - --- Configuration: 202000-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3867649049.525246 - --- Energy: 24.21312283502527 - --- Workload: 93647900000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 30 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8729278874.272196 - --- Energy: 35.32232791967017 - --- Workload: 308338000000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 31 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8655310898.767483 - --- Energy: 35.53991612451346 - --- Workload: 307609000000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 32 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8625894936.599672 - --- Energy: 35.71754166492727 - --- Workload: 308096000000.0 --------------- --------------- ---- Median at position 4 in the list of neghbours, And at position 24 in the X datas point --------------- - --- Configuration: 202000-0-0 - --- Energy efficiency: 3927683491.5535164 - --- Energy: 24.092534379540634 - --- Workload: 94627800000.0 --------------- ---- Comparing the median energy with the energy of that data point ---- The energy of the current configuration (24.092534379540634 mAh) it is NOT far from the median. ---- Median :24.092534379540634, the gap is : 10 ---- So No we don't romove this configuration '303000-0-0' - --- remove_aberrant_points: The value [0, 2.0, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0] is not an abberant point. - --- remove_aberrant_points: do we remove value [0, 2.0, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0] ---- Computing the list of the 10 first neighbours of '330000-0-0' -*** START computing ci exp matrix -X = [[0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.]] -*** END computing ci exp matrix, cached result [[[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - ... - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]]] ---- Ordered by distance, Printing the list of the 10 first neighbours of '330000-0-0' ---- Neighbour 0 in the list of neghbours, And at position 42 in the X datas point --------------- - --- Configuration: 330000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3883480064.155091 - --- Energy: 24.08059502443054 - --- Workload: 93516400000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 43 in the X datas point --------------- - --- Configuration: 330000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3773399795.481731 - --- Energy: 24.637735624906814 - --- Workload: 92968000000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 44 in the X datas point --------------- - --- Configuration: 330000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3779532320.67064 - --- Energy: 24.641747385770024 - --- Workload: 93134300000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 27 in the X datas point --------------- - --- Configuration: 220000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3901144986.0534062 - --- Energy: 23.877164417300968 - --- Workload: 93148100000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 28 in the X datas point --------------- - --- Configuration: 220000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3847826170.604917 - --- Energy: 24.264174107781162 - --- Workload: 93364400000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 29 in the X datas point --------------- - --- Configuration: 220000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3829378223.8577924 - --- Energy: 24.344031085422476 - --- Workload: 93222400000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 30 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8729278874.272196 - --- Energy: 35.32232791967017 - --- Workload: 308338000000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 31 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8655310898.767483 - --- Energy: 35.53991612451346 - --- Workload: 307609000000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 32 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8625894936.599672 - --- Energy: 35.71754166492727 - --- Workload: 308096000000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 33 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3950351976.361094 - --- Energy: 23.716971835375215 - --- Workload: 93690400000.0 --------------- ---- Ordered by energy, Printing the list of the 10 first neighbours of '330000-0-0' ---- Neighbour 0 in the list of neghbours, And at position 33 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3950351976.361094 - --- Energy: 23.716971835375215 - --- Workload: 93690400000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 27 in the X datas point --------------- - --- Configuration: 220000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3901144986.0534062 - --- Energy: 23.877164417300968 - --- Workload: 93148100000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 42 in the X datas point --------------- - --- Configuration: 330000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3883480064.155091 - --- Energy: 24.08059502443054 - --- Workload: 93516400000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 28 in the X datas point --------------- - --- Configuration: 220000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3847826170.604917 - --- Energy: 24.264174107781162 - --- Workload: 93364400000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 29 in the X datas point --------------- - --- Configuration: 220000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3829378223.8577924 - --- Energy: 24.344031085422476 - --- Workload: 93222400000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 43 in the X datas point --------------- - --- Configuration: 330000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3773399795.481731 - --- Energy: 24.637735624906814 - --- Workload: 92968000000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 44 in the X datas point --------------- - --- Configuration: 330000-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3779532320.67064 - --- Energy: 24.641747385770024 - --- Workload: 93134300000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 30 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8729278874.272196 - --- Energy: 35.32232791967017 - --- Workload: 308338000000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 31 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8655310898.767483 - --- Energy: 35.53991612451346 - --- Workload: 307609000000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 32 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8625894936.599672 - --- Energy: 35.71754166492727 - --- Workload: 308096000000.0 --------------- --------------- ---- Median at position 4 in the list of neghbours, And at position 29 in the X datas point --------------- - --- Configuration: 220000-0-0 - --- Energy efficiency: 3829378223.8577924 - --- Energy: 24.344031085422476 - --- Workload: 93222400000.0 --------------- ---- Comparing the median energy with the energy of that data point ---- The energy of the current configuration (24.344031085422476 mAh) it is NOT far from the median. ---- Median :24.344031085422476, the gap is : 10 ---- So No we don't romove this configuration '330000-0-0' - --- remove_aberrant_points: The value [0, 2.0, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0] is not an abberant point. - --- remove_aberrant_points: do we remove value [0, 2.0, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0] ---- Computing the list of the 10 first neighbours of '330000-0-0' -*** START computing ci exp matrix -X = [[0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.]] -*** END computing ci exp matrix, cached result [[[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - ... - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]]] ---- Ordered by distance, Printing the list of the 10 first neighbours of '330000-0-0' ---- Neighbour 0 in the list of neghbours, And at position 42 in the X datas point --------------- - --- Configuration: 330000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3883480064.155091 - --- Energy: 24.08059502443054 - --- Workload: 93516400000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 43 in the X datas point --------------- - --- Configuration: 330000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3773399795.481731 - --- Energy: 24.637735624906814 - --- Workload: 92968000000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 44 in the X datas point --------------- - --- Configuration: 330000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3779532320.67064 - --- Energy: 24.641747385770024 - --- Workload: 93134300000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 27 in the X datas point --------------- - --- Configuration: 220000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3901144986.0534062 - --- Energy: 23.877164417300968 - --- Workload: 93148100000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 28 in the X datas point --------------- - --- Configuration: 220000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3847826170.604917 - --- Energy: 24.264174107781162 - --- Workload: 93364400000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 29 in the X datas point --------------- - --- Configuration: 220000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3829378223.8577924 - --- Energy: 24.344031085422476 - --- Workload: 93222400000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 30 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8729278874.272196 - --- Energy: 35.32232791967017 - --- Workload: 308338000000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 31 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8655310898.767483 - --- Energy: 35.53991612451346 - --- Workload: 307609000000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 32 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8625894936.599672 - --- Energy: 35.71754166492727 - --- Workload: 308096000000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 33 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3950351976.361094 - --- Energy: 23.716971835375215 - --- Workload: 93690400000.0 --------------- ---- Ordered by energy, Printing the list of the 10 first neighbours of '330000-0-0' ---- Neighbour 0 in the list of neghbours, And at position 33 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3950351976.361094 - --- Energy: 23.716971835375215 - --- Workload: 93690400000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 27 in the X datas point --------------- - --- Configuration: 220000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3901144986.0534062 - --- Energy: 23.877164417300968 - --- Workload: 93148100000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 42 in the X datas point --------------- - --- Configuration: 330000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3883480064.155091 - --- Energy: 24.08059502443054 - --- Workload: 93516400000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 28 in the X datas point --------------- - --- Configuration: 220000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3847826170.604917 - --- Energy: 24.264174107781162 - --- Workload: 93364400000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 29 in the X datas point --------------- - --- Configuration: 220000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3829378223.8577924 - --- Energy: 24.344031085422476 - --- Workload: 93222400000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 43 in the X datas point --------------- - --- Configuration: 330000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3773399795.481731 - --- Energy: 24.637735624906814 - --- Workload: 92968000000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 44 in the X datas point --------------- - --- Configuration: 330000-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3779532320.67064 - --- Energy: 24.641747385770024 - --- Workload: 93134300000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 30 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8729278874.272196 - --- Energy: 35.32232791967017 - --- Workload: 308338000000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 31 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8655310898.767483 - --- Energy: 35.53991612451346 - --- Workload: 307609000000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 32 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8625894936.599672 - --- Energy: 35.71754166492727 - --- Workload: 308096000000.0 --------------- --------------- ---- Median at position 4 in the list of neghbours, And at position 29 in the X datas point --------------- - --- Configuration: 220000-0-0 - --- Energy efficiency: 3829378223.8577924 - --- Energy: 24.344031085422476 - --- Workload: 93222400000.0 --------------- ---- Comparing the median energy with the energy of that data point ---- The energy of the current configuration (24.344031085422476 mAh) it is NOT far from the median. ---- Median :24.344031085422476, the gap is : 10 ---- So No we don't romove this configuration '330000-0-0' - --- remove_aberrant_points: The value [0, 2.0, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0] is not an abberant point. - --- remove_aberrant_points: do we remove value [0, 2.0, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0] ---- Computing the list of the 10 first neighbours of '330000-0-0' -*** START computing ci exp matrix -X = [[0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.]] -*** END computing ci exp matrix, cached result [[[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - ... - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]]] ---- Ordered by distance, Printing the list of the 10 first neighbours of '330000-0-0' ---- Neighbour 0 in the list of neghbours, And at position 42 in the X datas point --------------- - --- Configuration: 330000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3883480064.155091 - --- Energy: 24.08059502443054 - --- Workload: 93516400000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 43 in the X datas point --------------- - --- Configuration: 330000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3773399795.481731 - --- Energy: 24.637735624906814 - --- Workload: 92968000000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 44 in the X datas point --------------- - --- Configuration: 330000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3779532320.67064 - --- Energy: 24.641747385770024 - --- Workload: 93134300000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 27 in the X datas point --------------- - --- Configuration: 220000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3901144986.0534062 - --- Energy: 23.877164417300968 - --- Workload: 93148100000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 28 in the X datas point --------------- - --- Configuration: 220000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3847826170.604917 - --- Energy: 24.264174107781162 - --- Workload: 93364400000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 29 in the X datas point --------------- - --- Configuration: 220000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3829378223.8577924 - --- Energy: 24.344031085422476 - --- Workload: 93222400000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 30 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8729278874.272196 - --- Energy: 35.32232791967017 - --- Workload: 308338000000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 31 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8655310898.767483 - --- Energy: 35.53991612451346 - --- Workload: 307609000000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 32 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8625894936.599672 - --- Energy: 35.71754166492727 - --- Workload: 308096000000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 33 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3950351976.361094 - --- Energy: 23.716971835375215 - --- Workload: 93690400000.0 --------------- ---- Ordered by energy, Printing the list of the 10 first neighbours of '330000-0-0' ---- Neighbour 0 in the list of neghbours, And at position 33 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3950351976.361094 - --- Energy: 23.716971835375215 - --- Workload: 93690400000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 27 in the X datas point --------------- - --- Configuration: 220000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3901144986.0534062 - --- Energy: 23.877164417300968 - --- Workload: 93148100000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 42 in the X datas point --------------- - --- Configuration: 330000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3883480064.155091 - --- Energy: 24.08059502443054 - --- Workload: 93516400000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 28 in the X datas point --------------- - --- Configuration: 220000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3847826170.604917 - --- Energy: 24.264174107781162 - --- Workload: 93364400000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 29 in the X datas point --------------- - --- Configuration: 220000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3829378223.8577924 - --- Energy: 24.344031085422476 - --- Workload: 93222400000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 43 in the X datas point --------------- - --- Configuration: 330000-0-0 - --- Distance from that configuration: [0.92596108] - --- Energy efficiency: 3773399795.481731 - --- Energy: 24.637735624906814 - --- Workload: 92968000000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 44 in the X datas point --------------- - --- Configuration: 330000-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3779532320.67064 - --- Energy: 24.641747385770024 - --- Workload: 93134300000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 30 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8729278874.272196 - --- Energy: 35.32232791967017 - --- Workload: 308338000000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 31 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8655310898.767483 - --- Energy: 35.53991612451346 - --- Workload: 307609000000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 32 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8625894936.599672 - --- Energy: 35.71754166492727 - --- Workload: 308096000000.0 --------------- --------------- ---- Median at position 4 in the list of neghbours, And at position 29 in the X datas point --------------- - --- Configuration: 220000-0-0 - --- Energy efficiency: 3829378223.8577924 - --- Energy: 24.344031085422476 - --- Workload: 93222400000.0 --------------- ---- Comparing the median energy with the energy of that data point ---- The energy of the current configuration (24.344031085422476 mAh) it is NOT far from the median. ---- Median :24.344031085422476, the gap is : 10 ---- So No we don't romove this configuration '330000-0-0' - --- remove_aberrant_points: The value [0, 2.0, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0] is not an abberant point. - --- remove_aberrant_points: do we remove value [1, 3, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0] ---- Computing the list of the 10 first neighbours of '400004-0-0' -*** START computing ci exp matrix -X = [[0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.]] -*** END computing ci exp matrix, cached result [[[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - ... - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]]] ---- Ordered by distance, Printing the list of the 10 first neighbours of '400004-0-0' ---- Neighbour 0 in the list of neghbours, And at position 45 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 8626490226.186573 - --- Energy: 35.68737472207005 - --- Workload: 307857000000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 46 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 8487667419.239845 - --- Energy: 36.26627936290422 - --- Workload: 307816000000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 47 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 8625597322.614592 - --- Energy: 35.74753244365377 - --- Workload: 308344000000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 30 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8729278874.272196 - --- Energy: 35.32232791967017 - --- Workload: 308338000000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 31 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8655310898.767483 - --- Energy: 35.53991612451346 - --- Workload: 307609000000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 32 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8625894936.599672 - --- Energy: 35.71754166492727 - --- Workload: 308096000000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 48 in the X datas point --------------- - --- Configuration: 400040-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3874812555.9426064 - --- Energy: 24.208364980550822 - --- Workload: 93802800000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 49 in the X datas point --------------- - --- Configuration: 400040-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3803973630.8547907 - --- Energy: 24.545508459651504 - --- Workload: 93370600000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 50 in the X datas point --------------- - --- Configuration: 400040-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3912837628.97691 - --- Energy: 23.955644418717593 - --- Workload: 93734500000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 51 in the X datas point --------------- - --- Configuration: 400400-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 4498182734.175393 - --- Energy: 20.892728190680728 - --- Workload: 93979300000.0 --------------- ---- Ordered by energy, Printing the list of the 10 first neighbours of '400004-0-0' ---- Neighbour 0 in the list of neghbours, And at position 51 in the X datas point --------------- - --- Configuration: 400400-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 4498182734.175393 - --- Energy: 20.892728190680728 - --- Workload: 93979300000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 50 in the X datas point --------------- - --- Configuration: 400040-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3912837628.97691 - --- Energy: 23.955644418717593 - --- Workload: 93734500000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 48 in the X datas point --------------- - --- Configuration: 400040-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3874812555.9426064 - --- Energy: 24.208364980550822 - --- Workload: 93802800000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 49 in the X datas point --------------- - --- Configuration: 400040-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3803973630.8547907 - --- Energy: 24.545508459651504 - --- Workload: 93370600000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 30 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8729278874.272196 - --- Energy: 35.32232791967017 - --- Workload: 308338000000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 31 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8655310898.767483 - --- Energy: 35.53991612451346 - --- Workload: 307609000000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 45 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8626490226.186573 - --- Energy: 35.68737472207005 - --- Workload: 307857000000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 32 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8625894936.599672 - --- Energy: 35.71754166492727 - --- Workload: 308096000000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 47 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8625597322.614592 - --- Energy: 35.74753244365377 - --- Workload: 308344000000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 46 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8487667419.239845 - --- Energy: 36.26627936290422 - --- Workload: 307816000000.0 --------------- --------------- ---- Median at position 4 in the list of neghbours, And at position 30 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Energy efficiency: 8729278874.272196 - --- Energy: 35.32232791967017 - --- Workload: 308338000000.0 --------------- ---- Comparing the median energy with the energy of that data point ---- The energy of the current configuration (35.32232791967017 mAh) it is NOT far from the median. ---- Median :35.32232791967017, the gap is : 10 ---- So No we don't romove this configuration '400004-0-0' - --- remove_aberrant_points: The value [1, 3, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0] is not an abberant point. - --- remove_aberrant_points: do we remove value [1, 3, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0] ---- Computing the list of the 10 first neighbours of '400004-0-0' -*** START computing ci exp matrix -X = [[0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.]] -*** END computing ci exp matrix, cached result [[[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - ... - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]]] ---- Ordered by distance, Printing the list of the 10 first neighbours of '400004-0-0' ---- Neighbour 0 in the list of neghbours, And at position 45 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 8626490226.186573 - --- Energy: 35.68737472207005 - --- Workload: 307857000000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 46 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 8487667419.239845 - --- Energy: 36.26627936290422 - --- Workload: 307816000000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 47 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 8625597322.614592 - --- Energy: 35.74753244365377 - --- Workload: 308344000000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 30 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8729278874.272196 - --- Energy: 35.32232791967017 - --- Workload: 308338000000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 31 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8655310898.767483 - --- Energy: 35.53991612451346 - --- Workload: 307609000000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 32 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8625894936.599672 - --- Energy: 35.71754166492727 - --- Workload: 308096000000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 48 in the X datas point --------------- - --- Configuration: 400040-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3874812555.9426064 - --- Energy: 24.208364980550822 - --- Workload: 93802800000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 49 in the X datas point --------------- - --- Configuration: 400040-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3803973630.8547907 - --- Energy: 24.545508459651504 - --- Workload: 93370600000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 50 in the X datas point --------------- - --- Configuration: 400040-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3912837628.97691 - --- Energy: 23.955644418717593 - --- Workload: 93734500000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 51 in the X datas point --------------- - --- Configuration: 400400-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 4498182734.175393 - --- Energy: 20.892728190680728 - --- Workload: 93979300000.0 --------------- ---- Ordered by energy, Printing the list of the 10 first neighbours of '400004-0-0' ---- Neighbour 0 in the list of neghbours, And at position 51 in the X datas point --------------- - --- Configuration: 400400-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 4498182734.175393 - --- Energy: 20.892728190680728 - --- Workload: 93979300000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 50 in the X datas point --------------- - --- Configuration: 400040-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3912837628.97691 - --- Energy: 23.955644418717593 - --- Workload: 93734500000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 48 in the X datas point --------------- - --- Configuration: 400040-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3874812555.9426064 - --- Energy: 24.208364980550822 - --- Workload: 93802800000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 49 in the X datas point --------------- - --- Configuration: 400040-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3803973630.8547907 - --- Energy: 24.545508459651504 - --- Workload: 93370600000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 30 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8729278874.272196 - --- Energy: 35.32232791967017 - --- Workload: 308338000000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 31 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8655310898.767483 - --- Energy: 35.53991612451346 - --- Workload: 307609000000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 45 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8626490226.186573 - --- Energy: 35.68737472207005 - --- Workload: 307857000000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 32 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8625894936.599672 - --- Energy: 35.71754166492727 - --- Workload: 308096000000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 47 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8625597322.614592 - --- Energy: 35.74753244365377 - --- Workload: 308344000000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 46 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8487667419.239845 - --- Energy: 36.26627936290422 - --- Workload: 307816000000.0 --------------- --------------- ---- Median at position 4 in the list of neghbours, And at position 30 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Energy efficiency: 8729278874.272196 - --- Energy: 35.32232791967017 - --- Workload: 308338000000.0 --------------- ---- Comparing the median energy with the energy of that data point ---- The energy of the current configuration (35.32232791967017 mAh) it is NOT far from the median. ---- Median :35.32232791967017, the gap is : 10 ---- So No we don't romove this configuration '400004-0-0' - --- remove_aberrant_points: The value [1, 3, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0] is not an abberant point. - --- remove_aberrant_points: do we remove value [1, 3, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0] ---- Computing the list of the 10 first neighbours of '400004-0-0' -*** START computing ci exp matrix -X = [[0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.]] -*** END computing ci exp matrix, cached result [[[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - ... - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]]] ---- Ordered by distance, Printing the list of the 10 first neighbours of '400004-0-0' ---- Neighbour 0 in the list of neghbours, And at position 45 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 8626490226.186573 - --- Energy: 35.68737472207005 - --- Workload: 307857000000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 46 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 8487667419.239845 - --- Energy: 36.26627936290422 - --- Workload: 307816000000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 47 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 8625597322.614592 - --- Energy: 35.74753244365377 - --- Workload: 308344000000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 30 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8729278874.272196 - --- Energy: 35.32232791967017 - --- Workload: 308338000000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 31 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8655310898.767483 - --- Energy: 35.53991612451346 - --- Workload: 307609000000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 32 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8625894936.599672 - --- Energy: 35.71754166492727 - --- Workload: 308096000000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 48 in the X datas point --------------- - --- Configuration: 400040-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3874812555.9426064 - --- Energy: 24.208364980550822 - --- Workload: 93802800000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 49 in the X datas point --------------- - --- Configuration: 400040-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3803973630.8547907 - --- Energy: 24.545508459651504 - --- Workload: 93370600000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 50 in the X datas point --------------- - --- Configuration: 400040-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3912837628.97691 - --- Energy: 23.955644418717593 - --- Workload: 93734500000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 51 in the X datas point --------------- - --- Configuration: 400400-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 4498182734.175393 - --- Energy: 20.892728190680728 - --- Workload: 93979300000.0 --------------- ---- Ordered by energy, Printing the list of the 10 first neighbours of '400004-0-0' ---- Neighbour 0 in the list of neghbours, And at position 51 in the X datas point --------------- - --- Configuration: 400400-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 4498182734.175393 - --- Energy: 20.892728190680728 - --- Workload: 93979300000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 50 in the X datas point --------------- - --- Configuration: 400040-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3912837628.97691 - --- Energy: 23.955644418717593 - --- Workload: 93734500000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 48 in the X datas point --------------- - --- Configuration: 400040-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3874812555.9426064 - --- Energy: 24.208364980550822 - --- Workload: 93802800000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 49 in the X datas point --------------- - --- Configuration: 400040-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3803973630.8547907 - --- Energy: 24.545508459651504 - --- Workload: 93370600000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 30 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8729278874.272196 - --- Energy: 35.32232791967017 - --- Workload: 308338000000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 31 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8655310898.767483 - --- Energy: 35.53991612451346 - --- Workload: 307609000000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 45 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8626490226.186573 - --- Energy: 35.68737472207005 - --- Workload: 307857000000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 32 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8625894936.599672 - --- Energy: 35.71754166492727 - --- Workload: 308096000000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 47 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8625597322.614592 - --- Energy: 35.74753244365377 - --- Workload: 308344000000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 46 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8487667419.239845 - --- Energy: 36.26627936290422 - --- Workload: 307816000000.0 --------------- --------------- ---- Median at position 4 in the list of neghbours, And at position 30 in the X datas point --------------- - --- Configuration: 300003-0-0 - --- Energy efficiency: 8729278874.272196 - --- Energy: 35.32232791967017 - --- Workload: 308338000000.0 --------------- ---- Comparing the median energy with the energy of that data point ---- The energy of the current configuration (35.32232791967017 mAh) it is NOT far from the median. ---- Median :35.32232791967017, the gap is : 10 ---- So No we don't romove this configuration '400004-0-0' - --- remove_aberrant_points: The value [1, 3, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0] is not an abberant point. - --- remove_aberrant_points: do we remove value [1, 3, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0] ---- Computing the list of the 10 first neighbours of '400040-0-0' -*** START computing ci exp matrix -X = [[0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.]] -*** END computing ci exp matrix, cached result [[[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - ... - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]]] ---- Ordered by distance, Printing the list of the 10 first neighbours of '400040-0-0' ---- Neighbour 0 in the list of neghbours, And at position 48 in the X datas point --------------- - --- Configuration: 400040-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3874812555.9426064 - --- Energy: 24.208364980550822 - --- Workload: 93802800000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 49 in the X datas point --------------- - --- Configuration: 400040-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3803973630.8547907 - --- Energy: 24.545508459651504 - --- Workload: 93370600000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 50 in the X datas point --------------- - --- Configuration: 400040-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3912837628.97691 - --- Energy: 23.955644418717593 - --- Workload: 93734500000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 33 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3950351976.361094 - --- Energy: 23.716971835375215 - --- Workload: 93690400000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 34 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3930323229.7824173 - --- Energy: 23.953804227268574 - --- Workload: 94146300000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 35 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3961149050.1164575 - --- Energy: 23.66038518521068 - --- Workload: 93722400000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 45 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8626490226.186573 - --- Energy: 35.68737472207005 - --- Workload: 307857000000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 46 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8487667419.239845 - --- Energy: 36.26627936290422 - --- Workload: 307816000000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 47 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8625597322.614592 - --- Energy: 35.74753244365377 - --- Workload: 308344000000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 51 in the X datas point --------------- - --- Configuration: 400400-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 4498182734.175393 - --- Energy: 20.892728190680728 - --- Workload: 93979300000.0 --------------- ---- Ordered by energy, Printing the list of the 10 first neighbours of '400040-0-0' ---- Neighbour 0 in the list of neghbours, And at position 51 in the X datas point --------------- - --- Configuration: 400400-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 4498182734.175393 - --- Energy: 20.892728190680728 - --- Workload: 93979300000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 35 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3961149050.1164575 - --- Energy: 23.66038518521068 - --- Workload: 93722400000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 33 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3950351976.361094 - --- Energy: 23.716971835375215 - --- Workload: 93690400000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 34 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3930323229.7824173 - --- Energy: 23.953804227268574 - --- Workload: 94146300000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 50 in the X datas point --------------- - --- Configuration: 400040-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3912837628.97691 - --- Energy: 23.955644418717593 - --- Workload: 93734500000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 48 in the X datas point --------------- - --- Configuration: 400040-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3874812555.9426064 - --- Energy: 24.208364980550822 - --- Workload: 93802800000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 49 in the X datas point --------------- - --- Configuration: 400040-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3803973630.8547907 - --- Energy: 24.545508459651504 - --- Workload: 93370600000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 45 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8626490226.186573 - --- Energy: 35.68737472207005 - --- Workload: 307857000000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 47 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8625597322.614592 - --- Energy: 35.74753244365377 - --- Workload: 308344000000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 46 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8487667419.239845 - --- Energy: 36.26627936290422 - --- Workload: 307816000000.0 --------------- --------------- ---- Median at position 4 in the list of neghbours, And at position 50 in the X datas point --------------- - --- Configuration: 400040-0-0 - --- Energy efficiency: 3912837628.97691 - --- Energy: 23.955644418717593 - --- Workload: 93734500000.0 --------------- ---- Comparing the median energy with the energy of that data point ---- The energy of the current configuration (23.955644418717593 mAh) it is NOT far from the median. ---- Median :23.955644418717593, the gap is : 10 ---- So No we don't romove this configuration '400040-0-0' - --- remove_aberrant_points: The value [1, 3, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0] is not an abberant point. - --- remove_aberrant_points: do we remove value [1, 3, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0] ---- Computing the list of the 10 first neighbours of '400040-0-0' -*** START computing ci exp matrix -X = [[0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.]] -*** END computing ci exp matrix, cached result [[[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - ... - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]]] ---- Ordered by distance, Printing the list of the 10 first neighbours of '400040-0-0' ---- Neighbour 0 in the list of neghbours, And at position 48 in the X datas point --------------- - --- Configuration: 400040-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3874812555.9426064 - --- Energy: 24.208364980550822 - --- Workload: 93802800000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 49 in the X datas point --------------- - --- Configuration: 400040-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3803973630.8547907 - --- Energy: 24.545508459651504 - --- Workload: 93370600000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 50 in the X datas point --------------- - --- Configuration: 400040-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3912837628.97691 - --- Energy: 23.955644418717593 - --- Workload: 93734500000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 33 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3950351976.361094 - --- Energy: 23.716971835375215 - --- Workload: 93690400000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 34 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3930323229.7824173 - --- Energy: 23.953804227268574 - --- Workload: 94146300000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 35 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3961149050.1164575 - --- Energy: 23.66038518521068 - --- Workload: 93722400000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 45 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8626490226.186573 - --- Energy: 35.68737472207005 - --- Workload: 307857000000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 46 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8487667419.239845 - --- Energy: 36.26627936290422 - --- Workload: 307816000000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 47 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8625597322.614592 - --- Energy: 35.74753244365377 - --- Workload: 308344000000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 51 in the X datas point --------------- - --- Configuration: 400400-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 4498182734.175393 - --- Energy: 20.892728190680728 - --- Workload: 93979300000.0 --------------- ---- Ordered by energy, Printing the list of the 10 first neighbours of '400040-0-0' ---- Neighbour 0 in the list of neghbours, And at position 51 in the X datas point --------------- - --- Configuration: 400400-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 4498182734.175393 - --- Energy: 20.892728190680728 - --- Workload: 93979300000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 35 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3961149050.1164575 - --- Energy: 23.66038518521068 - --- Workload: 93722400000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 33 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3950351976.361094 - --- Energy: 23.716971835375215 - --- Workload: 93690400000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 34 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3930323229.7824173 - --- Energy: 23.953804227268574 - --- Workload: 94146300000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 50 in the X datas point --------------- - --- Configuration: 400040-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3912837628.97691 - --- Energy: 23.955644418717593 - --- Workload: 93734500000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 48 in the X datas point --------------- - --- Configuration: 400040-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3874812555.9426064 - --- Energy: 24.208364980550822 - --- Workload: 93802800000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 49 in the X datas point --------------- - --- Configuration: 400040-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3803973630.8547907 - --- Energy: 24.545508459651504 - --- Workload: 93370600000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 45 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8626490226.186573 - --- Energy: 35.68737472207005 - --- Workload: 307857000000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 47 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8625597322.614592 - --- Energy: 35.74753244365377 - --- Workload: 308344000000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 46 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8487667419.239845 - --- Energy: 36.26627936290422 - --- Workload: 307816000000.0 --------------- --------------- ---- Median at position 4 in the list of neghbours, And at position 50 in the X datas point --------------- - --- Configuration: 400040-0-0 - --- Energy efficiency: 3912837628.97691 - --- Energy: 23.955644418717593 - --- Workload: 93734500000.0 --------------- ---- Comparing the median energy with the energy of that data point ---- The energy of the current configuration (23.955644418717593 mAh) it is NOT far from the median. ---- Median :23.955644418717593, the gap is : 10 ---- So No we don't romove this configuration '400040-0-0' - --- remove_aberrant_points: The value [1, 3, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0] is not an abberant point. - --- remove_aberrant_points: do we remove value [1, 3, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0] ---- Computing the list of the 10 first neighbours of '400040-0-0' -*** START computing ci exp matrix -X = [[0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.]] -*** END computing ci exp matrix, cached result [[[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - ... - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]]] ---- Ordered by distance, Printing the list of the 10 first neighbours of '400040-0-0' ---- Neighbour 0 in the list of neghbours, And at position 48 in the X datas point --------------- - --- Configuration: 400040-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3874812555.9426064 - --- Energy: 24.208364980550822 - --- Workload: 93802800000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 49 in the X datas point --------------- - --- Configuration: 400040-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3803973630.8547907 - --- Energy: 24.545508459651504 - --- Workload: 93370600000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 50 in the X datas point --------------- - --- Configuration: 400040-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3912837628.97691 - --- Energy: 23.955644418717593 - --- Workload: 93734500000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 33 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3950351976.361094 - --- Energy: 23.716971835375215 - --- Workload: 93690400000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 34 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3930323229.7824173 - --- Energy: 23.953804227268574 - --- Workload: 94146300000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 35 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3961149050.1164575 - --- Energy: 23.66038518521068 - --- Workload: 93722400000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 45 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8626490226.186573 - --- Energy: 35.68737472207005 - --- Workload: 307857000000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 46 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8487667419.239845 - --- Energy: 36.26627936290422 - --- Workload: 307816000000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 47 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8625597322.614592 - --- Energy: 35.74753244365377 - --- Workload: 308344000000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 51 in the X datas point --------------- - --- Configuration: 400400-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 4498182734.175393 - --- Energy: 20.892728190680728 - --- Workload: 93979300000.0 --------------- ---- Ordered by energy, Printing the list of the 10 first neighbours of '400040-0-0' ---- Neighbour 0 in the list of neghbours, And at position 51 in the X datas point --------------- - --- Configuration: 400400-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 4498182734.175393 - --- Energy: 20.892728190680728 - --- Workload: 93979300000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 35 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3961149050.1164575 - --- Energy: 23.66038518521068 - --- Workload: 93722400000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 33 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3950351976.361094 - --- Energy: 23.716971835375215 - --- Workload: 93690400000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 34 in the X datas point --------------- - --- Configuration: 300030-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3930323229.7824173 - --- Energy: 23.953804227268574 - --- Workload: 94146300000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 50 in the X datas point --------------- - --- Configuration: 400040-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3912837628.97691 - --- Energy: 23.955644418717593 - --- Workload: 93734500000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 48 in the X datas point --------------- - --- Configuration: 400040-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3874812555.9426064 - --- Energy: 24.208364980550822 - --- Workload: 93802800000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 49 in the X datas point --------------- - --- Configuration: 400040-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3803973630.8547907 - --- Energy: 24.545508459651504 - --- Workload: 93370600000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 45 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8626490226.186573 - --- Energy: 35.68737472207005 - --- Workload: 307857000000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 47 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8625597322.614592 - --- Energy: 35.74753244365377 - --- Workload: 308344000000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 46 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8487667419.239845 - --- Energy: 36.26627936290422 - --- Workload: 307816000000.0 --------------- --------------- ---- Median at position 4 in the list of neghbours, And at position 50 in the X datas point --------------- - --- Configuration: 400040-0-0 - --- Energy efficiency: 3912837628.97691 - --- Energy: 23.955644418717593 - --- Workload: 93734500000.0 --------------- ---- Comparing the median energy with the energy of that data point ---- The energy of the current configuration (23.955644418717593 mAh) it is NOT far from the median. ---- Median :23.955644418717593, the gap is : 10 ---- So No we don't romove this configuration '400040-0-0' - --- remove_aberrant_points: The value [1, 3, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0] is not an abberant point. - --- remove_aberrant_points: do we remove value [1, 3, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0] ---- Computing the list of the 10 first neighbours of '400400-0-0' -*** START computing ci exp matrix -X = [[0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.]] -*** END computing ci exp matrix, cached result [[[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - ... - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]]] ---- Ordered by distance, Printing the list of the 10 first neighbours of '400400-0-0' ---- Neighbour 0 in the list of neghbours, And at position 51 in the X datas point --------------- - --- Configuration: 400400-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 4498182734.175393 - --- Energy: 20.892728190680728 - --- Workload: 93979300000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 52 in the X datas point --------------- - --- Configuration: 400400-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 4069970940.4074855 - --- Energy: 23.056442545915072 - --- Workload: 93839100000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 53 in the X datas point --------------- - --- Configuration: 400400-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3923522695.617033 - --- Energy: 23.859797472163574 - --- Workload: 93614500000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 36 in the X datas point --------------- - --- Configuration: 300300-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3877938022.79452 - --- Energy: 24.1559718861257 - --- Workload: 93675200000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 37 in the X datas point --------------- - --- Configuration: 300300-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3854336899.8797445 - --- Energy: 24.32865158873136 - --- Workload: 93770900000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 38 in the X datas point --------------- - --- Configuration: 300300-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3984905179.181261 - --- Energy: 23.538369217832788 - --- Workload: 93798100000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 45 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8626490226.186573 - --- Energy: 35.68737472207005 - --- Workload: 307857000000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 46 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8487667419.239845 - --- Energy: 36.26627936290422 - --- Workload: 307816000000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 47 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8625597322.614592 - --- Energy: 35.74753244365377 - --- Workload: 308344000000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 48 in the X datas point --------------- - --- Configuration: 400040-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3874812555.9426064 - --- Energy: 24.208364980550822 - --- Workload: 93802800000.0 --------------- ---- Ordered by energy, Printing the list of the 10 first neighbours of '400400-0-0' ---- Neighbour 0 in the list of neghbours, And at position 51 in the X datas point --------------- - --- Configuration: 400400-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 4498182734.175393 - --- Energy: 20.892728190680728 - --- Workload: 93979300000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 52 in the X datas point --------------- - --- Configuration: 400400-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 4069970940.4074855 - --- Energy: 23.056442545915072 - --- Workload: 93839100000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 38 in the X datas point --------------- - --- Configuration: 300300-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3984905179.181261 - --- Energy: 23.538369217832788 - --- Workload: 93798100000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 53 in the X datas point --------------- - --- Configuration: 400400-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3923522695.617033 - --- Energy: 23.859797472163574 - --- Workload: 93614500000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 36 in the X datas point --------------- - --- Configuration: 300300-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3877938022.79452 - --- Energy: 24.1559718861257 - --- Workload: 93675200000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 48 in the X datas point --------------- - --- Configuration: 400040-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3874812555.9426064 - --- Energy: 24.208364980550822 - --- Workload: 93802800000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 37 in the X datas point --------------- - --- Configuration: 300300-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3854336899.8797445 - --- Energy: 24.32865158873136 - --- Workload: 93770900000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 45 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8626490226.186573 - --- Energy: 35.68737472207005 - --- Workload: 307857000000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 47 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8625597322.614592 - --- Energy: 35.74753244365377 - --- Workload: 308344000000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 46 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8487667419.239845 - --- Energy: 36.26627936290422 - --- Workload: 307816000000.0 --------------- --------------- ---- Median at position 4 in the list of neghbours, And at position 36 in the X datas point --------------- - --- Configuration: 300300-0-0 - --- Energy efficiency: 3877938022.79452 - --- Energy: 24.1559718861257 - --- Workload: 93675200000.0 --------------- ---- Comparing the median energy with the energy of that data point ---- The energy of the current configuration (24.1559718861257 mAh) it is NOT far from the median. ---- Median :24.1559718861257, the gap is : 10 ---- So No we don't romove this configuration '400400-0-0' - --- remove_aberrant_points: The value [1, 3, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0] is not an abberant point. - --- remove_aberrant_points: do we remove value [1, 3, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0] ---- Computing the list of the 10 first neighbours of '400400-0-0' -*** START computing ci exp matrix -X = [[0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.]] -*** END computing ci exp matrix, cached result [[[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - ... - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]]] ---- Ordered by distance, Printing the list of the 10 first neighbours of '400400-0-0' ---- Neighbour 0 in the list of neghbours, And at position 51 in the X datas point --------------- - --- Configuration: 400400-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 4498182734.175393 - --- Energy: 20.892728190680728 - --- Workload: 93979300000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 52 in the X datas point --------------- - --- Configuration: 400400-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 4069970940.4074855 - --- Energy: 23.056442545915072 - --- Workload: 93839100000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 53 in the X datas point --------------- - --- Configuration: 400400-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3923522695.617033 - --- Energy: 23.859797472163574 - --- Workload: 93614500000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 36 in the X datas point --------------- - --- Configuration: 300300-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3877938022.79452 - --- Energy: 24.1559718861257 - --- Workload: 93675200000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 37 in the X datas point --------------- - --- Configuration: 300300-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3854336899.8797445 - --- Energy: 24.32865158873136 - --- Workload: 93770900000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 38 in the X datas point --------------- - --- Configuration: 300300-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3984905179.181261 - --- Energy: 23.538369217832788 - --- Workload: 93798100000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 45 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8626490226.186573 - --- Energy: 35.68737472207005 - --- Workload: 307857000000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 46 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8487667419.239845 - --- Energy: 36.26627936290422 - --- Workload: 307816000000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 47 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8625597322.614592 - --- Energy: 35.74753244365377 - --- Workload: 308344000000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 48 in the X datas point --------------- - --- Configuration: 400040-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3874812555.9426064 - --- Energy: 24.208364980550822 - --- Workload: 93802800000.0 --------------- ---- Ordered by energy, Printing the list of the 10 first neighbours of '400400-0-0' ---- Neighbour 0 in the list of neghbours, And at position 51 in the X datas point --------------- - --- Configuration: 400400-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 4498182734.175393 - --- Energy: 20.892728190680728 - --- Workload: 93979300000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 52 in the X datas point --------------- - --- Configuration: 400400-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 4069970940.4074855 - --- Energy: 23.056442545915072 - --- Workload: 93839100000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 38 in the X datas point --------------- - --- Configuration: 300300-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3984905179.181261 - --- Energy: 23.538369217832788 - --- Workload: 93798100000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 53 in the X datas point --------------- - --- Configuration: 400400-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3923522695.617033 - --- Energy: 23.859797472163574 - --- Workload: 93614500000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 36 in the X datas point --------------- - --- Configuration: 300300-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3877938022.79452 - --- Energy: 24.1559718861257 - --- Workload: 93675200000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 48 in the X datas point --------------- - --- Configuration: 400040-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3874812555.9426064 - --- Energy: 24.208364980550822 - --- Workload: 93802800000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 37 in the X datas point --------------- - --- Configuration: 300300-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3854336899.8797445 - --- Energy: 24.32865158873136 - --- Workload: 93770900000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 45 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8626490226.186573 - --- Energy: 35.68737472207005 - --- Workload: 307857000000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 47 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8625597322.614592 - --- Energy: 35.74753244365377 - --- Workload: 308344000000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 46 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8487667419.239845 - --- Energy: 36.26627936290422 - --- Workload: 307816000000.0 --------------- --------------- ---- Median at position 4 in the list of neghbours, And at position 36 in the X datas point --------------- - --- Configuration: 300300-0-0 - --- Energy efficiency: 3877938022.79452 - --- Energy: 24.1559718861257 - --- Workload: 93675200000.0 --------------- ---- Comparing the median energy with the energy of that data point ---- The energy of the current configuration (24.1559718861257 mAh) it is NOT far from the median. ---- Median :24.1559718861257, the gap is : 10 ---- So No we don't romove this configuration '400400-0-0' - --- remove_aberrant_points: The value [1, 3, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0] is not an abberant point. - --- remove_aberrant_points: do we remove value [1, 3, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0] ---- Computing the list of the 10 first neighbours of '400400-0-0' -*** START computing ci exp matrix -X = [[0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.]] -*** END computing ci exp matrix, cached result [[[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - ... - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]]] ---- Ordered by distance, Printing the list of the 10 first neighbours of '400400-0-0' ---- Neighbour 0 in the list of neghbours, And at position 51 in the X datas point --------------- - --- Configuration: 400400-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 4498182734.175393 - --- Energy: 20.892728190680728 - --- Workload: 93979300000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 52 in the X datas point --------------- - --- Configuration: 400400-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 4069970940.4074855 - --- Energy: 23.056442545915072 - --- Workload: 93839100000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 53 in the X datas point --------------- - --- Configuration: 400400-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3923522695.617033 - --- Energy: 23.859797472163574 - --- Workload: 93614500000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 36 in the X datas point --------------- - --- Configuration: 300300-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3877938022.79452 - --- Energy: 24.1559718861257 - --- Workload: 93675200000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 37 in the X datas point --------------- - --- Configuration: 300300-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3854336899.8797445 - --- Energy: 24.32865158873136 - --- Workload: 93770900000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 38 in the X datas point --------------- - --- Configuration: 300300-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3984905179.181261 - --- Energy: 23.538369217832788 - --- Workload: 93798100000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 45 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8626490226.186573 - --- Energy: 35.68737472207005 - --- Workload: 307857000000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 46 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8487667419.239845 - --- Energy: 36.26627936290422 - --- Workload: 307816000000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 47 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8625597322.614592 - --- Energy: 35.74753244365377 - --- Workload: 308344000000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 48 in the X datas point --------------- - --- Configuration: 400040-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3874812555.9426064 - --- Energy: 24.208364980550822 - --- Workload: 93802800000.0 --------------- ---- Ordered by energy, Printing the list of the 10 first neighbours of '400400-0-0' ---- Neighbour 0 in the list of neghbours, And at position 51 in the X datas point --------------- - --- Configuration: 400400-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 4498182734.175393 - --- Energy: 20.892728190680728 - --- Workload: 93979300000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 52 in the X datas point --------------- - --- Configuration: 400400-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 4069970940.4074855 - --- Energy: 23.056442545915072 - --- Workload: 93839100000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 38 in the X datas point --------------- - --- Configuration: 300300-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3984905179.181261 - --- Energy: 23.538369217832788 - --- Workload: 93798100000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 53 in the X datas point --------------- - --- Configuration: 400400-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3923522695.617033 - --- Energy: 23.859797472163574 - --- Workload: 93614500000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 36 in the X datas point --------------- - --- Configuration: 300300-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3877938022.79452 - --- Energy: 24.1559718861257 - --- Workload: 93675200000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 48 in the X datas point --------------- - --- Configuration: 400040-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3874812555.9426064 - --- Energy: 24.208364980550822 - --- Workload: 93802800000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 37 in the X datas point --------------- - --- Configuration: 300300-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3854336899.8797445 - --- Energy: 24.32865158873136 - --- Workload: 93770900000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 45 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8626490226.186573 - --- Energy: 35.68737472207005 - --- Workload: 307857000000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 47 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8625597322.614592 - --- Energy: 35.74753244365377 - --- Workload: 308344000000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 46 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8487667419.239845 - --- Energy: 36.26627936290422 - --- Workload: 307816000000.0 --------------- --------------- ---- Median at position 4 in the list of neghbours, And at position 36 in the X datas point --------------- - --- Configuration: 300300-0-0 - --- Energy efficiency: 3877938022.79452 - --- Energy: 24.1559718861257 - --- Workload: 93675200000.0 --------------- ---- Comparing the median energy with the energy of that data point ---- The energy of the current configuration (24.1559718861257 mAh) it is NOT far from the median. ---- Median :24.1559718861257, the gap is : 10 ---- So No we don't romove this configuration '400400-0-0' - --- remove_aberrant_points: The value [1, 3, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0] is not an abberant point. - --- remove_aberrant_points: do we remove value [1, 3, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0] ---- Computing the list of the 10 first neighbours of '404000-0-0' -*** START computing ci exp matrix -X = [[0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.]] -*** END computing ci exp matrix, cached result [[[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - ... - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]]] ---- Ordered by distance, Printing the list of the 10 first neighbours of '404000-0-0' ---- Neighbour 0 in the list of neghbours, And at position 54 in the X datas point --------------- - --- Configuration: 404000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3912393680.701727 - --- Energy: 23.929599517536357 - --- Workload: 93622100000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 55 in the X datas point --------------- - --- Configuration: 404000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3915273481.8527074 - --- Energy: 23.98063541047566 - --- Workload: 93890700000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 56 in the X datas point --------------- - --- Configuration: 404000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3860064926.29206 - --- Energy: 24.285864392102688 - --- Workload: 93745000000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 39 in the X datas point --------------- - --- Configuration: 303000-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3925740689.124521 - --- Energy: 23.867682919071562 - --- Workload: 93698300000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 40 in the X datas point --------------- - --- Configuration: 303000-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3940529528.3580203 - --- Energy: 23.84547723870087 - --- Workload: 93963800000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 41 in the X datas point --------------- - --- Configuration: 303000-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3882741215.2980003 - --- Energy: 24.080718397086365 - --- Workload: 93499300000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 45 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8626490226.186573 - --- Energy: 35.68737472207005 - --- Workload: 307857000000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 46 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8487667419.239845 - --- Energy: 36.26627936290422 - --- Workload: 307816000000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 47 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8625597322.614592 - --- Energy: 35.74753244365377 - --- Workload: 308344000000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 48 in the X datas point --------------- - --- Configuration: 400040-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3874812555.9426064 - --- Energy: 24.208364980550822 - --- Workload: 93802800000.0 --------------- ---- Ordered by energy, Printing the list of the 10 first neighbours of '404000-0-0' ---- Neighbour 0 in the list of neghbours, And at position 40 in the X datas point --------------- - --- Configuration: 303000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3940529528.3580203 - --- Energy: 23.84547723870087 - --- Workload: 93963800000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 39 in the X datas point --------------- - --- Configuration: 303000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3925740689.124521 - --- Energy: 23.867682919071562 - --- Workload: 93698300000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 54 in the X datas point --------------- - --- Configuration: 404000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3912393680.701727 - --- Energy: 23.929599517536357 - --- Workload: 93622100000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 55 in the X datas point --------------- - --- Configuration: 404000-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3915273481.8527074 - --- Energy: 23.98063541047566 - --- Workload: 93890700000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 41 in the X datas point --------------- - --- Configuration: 303000-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3882741215.2980003 - --- Energy: 24.080718397086365 - --- Workload: 93499300000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 48 in the X datas point --------------- - --- Configuration: 400040-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3874812555.9426064 - --- Energy: 24.208364980550822 - --- Workload: 93802800000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 56 in the X datas point --------------- - --- Configuration: 404000-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3860064926.29206 - --- Energy: 24.285864392102688 - --- Workload: 93745000000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 45 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8626490226.186573 - --- Energy: 35.68737472207005 - --- Workload: 307857000000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 47 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8625597322.614592 - --- Energy: 35.74753244365377 - --- Workload: 308344000000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 46 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8487667419.239845 - --- Energy: 36.26627936290422 - --- Workload: 307816000000.0 --------------- --------------- ---- Median at position 4 in the list of neghbours, And at position 41 in the X datas point --------------- - --- Configuration: 303000-0-0 - --- Energy efficiency: 3882741215.2980003 - --- Energy: 24.080718397086365 - --- Workload: 93499300000.0 --------------- ---- Comparing the median energy with the energy of that data point ---- The energy of the current configuration (24.080718397086365 mAh) it is NOT far from the median. ---- Median :24.080718397086365, the gap is : 10 ---- So No we don't romove this configuration '404000-0-0' - --- remove_aberrant_points: The value [1, 3, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0] is not an abberant point. - --- remove_aberrant_points: do we remove value [1, 3, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0] ---- Computing the list of the 10 first neighbours of '404000-0-0' -*** START computing ci exp matrix -X = [[0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.]] -*** END computing ci exp matrix, cached result [[[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - ... - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]]] ---- Ordered by distance, Printing the list of the 10 first neighbours of '404000-0-0' ---- Neighbour 0 in the list of neghbours, And at position 54 in the X datas point --------------- - --- Configuration: 404000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3912393680.701727 - --- Energy: 23.929599517536357 - --- Workload: 93622100000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 55 in the X datas point --------------- - --- Configuration: 404000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3915273481.8527074 - --- Energy: 23.98063541047566 - --- Workload: 93890700000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 56 in the X datas point --------------- - --- Configuration: 404000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3860064926.29206 - --- Energy: 24.285864392102688 - --- Workload: 93745000000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 39 in the X datas point --------------- - --- Configuration: 303000-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3925740689.124521 - --- Energy: 23.867682919071562 - --- Workload: 93698300000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 40 in the X datas point --------------- - --- Configuration: 303000-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3940529528.3580203 - --- Energy: 23.84547723870087 - --- Workload: 93963800000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 41 in the X datas point --------------- - --- Configuration: 303000-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3882741215.2980003 - --- Energy: 24.080718397086365 - --- Workload: 93499300000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 45 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8626490226.186573 - --- Energy: 35.68737472207005 - --- Workload: 307857000000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 46 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8487667419.239845 - --- Energy: 36.26627936290422 - --- Workload: 307816000000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 47 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8625597322.614592 - --- Energy: 35.74753244365377 - --- Workload: 308344000000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 48 in the X datas point --------------- - --- Configuration: 400040-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3874812555.9426064 - --- Energy: 24.208364980550822 - --- Workload: 93802800000.0 --------------- ---- Ordered by energy, Printing the list of the 10 first neighbours of '404000-0-0' ---- Neighbour 0 in the list of neghbours, And at position 40 in the X datas point --------------- - --- Configuration: 303000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3940529528.3580203 - --- Energy: 23.84547723870087 - --- Workload: 93963800000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 39 in the X datas point --------------- - --- Configuration: 303000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3925740689.124521 - --- Energy: 23.867682919071562 - --- Workload: 93698300000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 54 in the X datas point --------------- - --- Configuration: 404000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3912393680.701727 - --- Energy: 23.929599517536357 - --- Workload: 93622100000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 55 in the X datas point --------------- - --- Configuration: 404000-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3915273481.8527074 - --- Energy: 23.98063541047566 - --- Workload: 93890700000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 41 in the X datas point --------------- - --- Configuration: 303000-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3882741215.2980003 - --- Energy: 24.080718397086365 - --- Workload: 93499300000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 48 in the X datas point --------------- - --- Configuration: 400040-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3874812555.9426064 - --- Energy: 24.208364980550822 - --- Workload: 93802800000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 56 in the X datas point --------------- - --- Configuration: 404000-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3860064926.29206 - --- Energy: 24.285864392102688 - --- Workload: 93745000000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 45 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8626490226.186573 - --- Energy: 35.68737472207005 - --- Workload: 307857000000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 47 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8625597322.614592 - --- Energy: 35.74753244365377 - --- Workload: 308344000000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 46 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8487667419.239845 - --- Energy: 36.26627936290422 - --- Workload: 307816000000.0 --------------- --------------- ---- Median at position 4 in the list of neghbours, And at position 41 in the X datas point --------------- - --- Configuration: 303000-0-0 - --- Energy efficiency: 3882741215.2980003 - --- Energy: 24.080718397086365 - --- Workload: 93499300000.0 --------------- ---- Comparing the median energy with the energy of that data point ---- The energy of the current configuration (24.080718397086365 mAh) it is NOT far from the median. ---- Median :24.080718397086365, the gap is : 10 ---- So No we don't romove this configuration '404000-0-0' - --- remove_aberrant_points: The value [1, 3, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0] is not an abberant point. - --- remove_aberrant_points: do we remove value [1, 3, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0] ---- Computing the list of the 10 first neighbours of '404000-0-0' -*** START computing ci exp matrix -X = [[0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.]] -*** END computing ci exp matrix, cached result [[[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - ... - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]]] ---- Ordered by distance, Printing the list of the 10 first neighbours of '404000-0-0' ---- Neighbour 0 in the list of neghbours, And at position 54 in the X datas point --------------- - --- Configuration: 404000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3912393680.701727 - --- Energy: 23.929599517536357 - --- Workload: 93622100000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 55 in the X datas point --------------- - --- Configuration: 404000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3915273481.8527074 - --- Energy: 23.98063541047566 - --- Workload: 93890700000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 56 in the X datas point --------------- - --- Configuration: 404000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3860064926.29206 - --- Energy: 24.285864392102688 - --- Workload: 93745000000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 39 in the X datas point --------------- - --- Configuration: 303000-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3925740689.124521 - --- Energy: 23.867682919071562 - --- Workload: 93698300000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 40 in the X datas point --------------- - --- Configuration: 303000-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3940529528.3580203 - --- Energy: 23.84547723870087 - --- Workload: 93963800000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 41 in the X datas point --------------- - --- Configuration: 303000-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3882741215.2980003 - --- Energy: 24.080718397086365 - --- Workload: 93499300000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 45 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8626490226.186573 - --- Energy: 35.68737472207005 - --- Workload: 307857000000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 46 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8487667419.239845 - --- Energy: 36.26627936290422 - --- Workload: 307816000000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 47 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8625597322.614592 - --- Energy: 35.74753244365377 - --- Workload: 308344000000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 48 in the X datas point --------------- - --- Configuration: 400040-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3874812555.9426064 - --- Energy: 24.208364980550822 - --- Workload: 93802800000.0 --------------- ---- Ordered by energy, Printing the list of the 10 first neighbours of '404000-0-0' ---- Neighbour 0 in the list of neghbours, And at position 40 in the X datas point --------------- - --- Configuration: 303000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3940529528.3580203 - --- Energy: 23.84547723870087 - --- Workload: 93963800000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 39 in the X datas point --------------- - --- Configuration: 303000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3925740689.124521 - --- Energy: 23.867682919071562 - --- Workload: 93698300000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 54 in the X datas point --------------- - --- Configuration: 404000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3912393680.701727 - --- Energy: 23.929599517536357 - --- Workload: 93622100000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 55 in the X datas point --------------- - --- Configuration: 404000-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3915273481.8527074 - --- Energy: 23.98063541047566 - --- Workload: 93890700000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 41 in the X datas point --------------- - --- Configuration: 303000-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3882741215.2980003 - --- Energy: 24.080718397086365 - --- Workload: 93499300000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 48 in the X datas point --------------- - --- Configuration: 400040-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3874812555.9426064 - --- Energy: 24.208364980550822 - --- Workload: 93802800000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 56 in the X datas point --------------- - --- Configuration: 404000-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3860064926.29206 - --- Energy: 24.285864392102688 - --- Workload: 93745000000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 45 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8626490226.186573 - --- Energy: 35.68737472207005 - --- Workload: 307857000000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 47 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8625597322.614592 - --- Energy: 35.74753244365377 - --- Workload: 308344000000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 46 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8487667419.239845 - --- Energy: 36.26627936290422 - --- Workload: 307816000000.0 --------------- --------------- ---- Median at position 4 in the list of neghbours, And at position 41 in the X datas point --------------- - --- Configuration: 303000-0-0 - --- Energy efficiency: 3882741215.2980003 - --- Energy: 24.080718397086365 - --- Workload: 93499300000.0 --------------- ---- Comparing the median energy with the energy of that data point ---- The energy of the current configuration (24.080718397086365 mAh) it is NOT far from the median. ---- Median :24.080718397086365, the gap is : 10 ---- So No we don't romove this configuration '404000-0-0' - --- remove_aberrant_points: The value [1, 3, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0] is not an abberant point. - --- remove_aberrant_points: do we remove value [1, 3, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0] ---- Computing the list of the 10 first neighbours of '440000-0-0' -*** START computing ci exp matrix -X = [[0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.]] -*** END computing ci exp matrix, cached result [[[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - ... - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]]] ---- Ordered by distance, Printing the list of the 10 first neighbours of '440000-0-0' ---- Neighbour 0 in the list of neghbours, And at position 57 in the X datas point --------------- - --- Configuration: 440000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3867469553.3459415 - --- Energy: 24.084653436720817 - --- Workload: 93146600000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 58 in the X datas point --------------- - --- Configuration: 440000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3780346733.402388 - --- Energy: 24.652112755988767 - --- Workload: 93193500000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 59 in the X datas point --------------- - --- Configuration: 440000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3911490786.4834523 - --- Energy: 23.764456566046302 - --- Workload: 92954500000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 42 in the X datas point --------------- - --- Configuration: 330000-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3883480064.155091 - --- Energy: 24.08059502443054 - --- Workload: 93516400000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 43 in the X datas point --------------- - --- Configuration: 330000-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3773399795.481731 - --- Energy: 24.637735624906814 - --- Workload: 92968000000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 44 in the X datas point --------------- - --- Configuration: 330000-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3779532320.67064 - --- Energy: 24.641747385770024 - --- Workload: 93134300000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 45 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8626490226.186573 - --- Energy: 35.68737472207005 - --- Workload: 307857000000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 46 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8487667419.239845 - --- Energy: 36.26627936290422 - --- Workload: 307816000000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 47 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8625597322.614592 - --- Energy: 35.74753244365377 - --- Workload: 308344000000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 48 in the X datas point --------------- - --- Configuration: 400040-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3874812555.9426064 - --- Energy: 24.208364980550822 - --- Workload: 93802800000.0 --------------- ---- Ordered by energy, Printing the list of the 10 first neighbours of '440000-0-0' ---- Neighbour 0 in the list of neghbours, And at position 59 in the X datas point --------------- - --- Configuration: 440000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3911490786.4834523 - --- Energy: 23.764456566046302 - --- Workload: 92954500000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 42 in the X datas point --------------- - --- Configuration: 330000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3883480064.155091 - --- Energy: 24.08059502443054 - --- Workload: 93516400000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 57 in the X datas point --------------- - --- Configuration: 440000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3867469553.3459415 - --- Energy: 24.084653436720817 - --- Workload: 93146600000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 48 in the X datas point --------------- - --- Configuration: 400040-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3874812555.9426064 - --- Energy: 24.208364980550822 - --- Workload: 93802800000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 43 in the X datas point --------------- - --- Configuration: 330000-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3773399795.481731 - --- Energy: 24.637735624906814 - --- Workload: 92968000000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 44 in the X datas point --------------- - --- Configuration: 330000-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3779532320.67064 - --- Energy: 24.641747385770024 - --- Workload: 93134300000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 58 in the X datas point --------------- - --- Configuration: 440000-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3780346733.402388 - --- Energy: 24.652112755988767 - --- Workload: 93193500000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 45 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8626490226.186573 - --- Energy: 35.68737472207005 - --- Workload: 307857000000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 47 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8625597322.614592 - --- Energy: 35.74753244365377 - --- Workload: 308344000000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 46 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8487667419.239845 - --- Energy: 36.26627936290422 - --- Workload: 307816000000.0 --------------- --------------- ---- Median at position 4 in the list of neghbours, And at position 43 in the X datas point --------------- - --- Configuration: 330000-0-0 - --- Energy efficiency: 3773399795.481731 - --- Energy: 24.637735624906814 - --- Workload: 92968000000.0 --------------- ---- Comparing the median energy with the energy of that data point ---- The energy of the current configuration (24.637735624906814 mAh) it is NOT far from the median. ---- Median :24.637735624906814, the gap is : 10 ---- So No we don't romove this configuration '440000-0-0' - --- remove_aberrant_points: The value [1, 3, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0] is not an abberant point. - --- remove_aberrant_points: do we remove value [1, 3, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0] ---- Computing the list of the 10 first neighbours of '440000-0-0' -*** START computing ci exp matrix -X = [[0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.]] -*** END computing ci exp matrix, cached result [[[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - ... - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]]] ---- Ordered by distance, Printing the list of the 10 first neighbours of '440000-0-0' ---- Neighbour 0 in the list of neghbours, And at position 57 in the X datas point --------------- - --- Configuration: 440000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3867469553.3459415 - --- Energy: 24.084653436720817 - --- Workload: 93146600000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 58 in the X datas point --------------- - --- Configuration: 440000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3780346733.402388 - --- Energy: 24.652112755988767 - --- Workload: 93193500000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 59 in the X datas point --------------- - --- Configuration: 440000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3911490786.4834523 - --- Energy: 23.764456566046302 - --- Workload: 92954500000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 42 in the X datas point --------------- - --- Configuration: 330000-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3883480064.155091 - --- Energy: 24.08059502443054 - --- Workload: 93516400000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 43 in the X datas point --------------- - --- Configuration: 330000-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3773399795.481731 - --- Energy: 24.637735624906814 - --- Workload: 92968000000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 44 in the X datas point --------------- - --- Configuration: 330000-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3779532320.67064 - --- Energy: 24.641747385770024 - --- Workload: 93134300000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 45 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8626490226.186573 - --- Energy: 35.68737472207005 - --- Workload: 307857000000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 46 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8487667419.239845 - --- Energy: 36.26627936290422 - --- Workload: 307816000000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 47 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8625597322.614592 - --- Energy: 35.74753244365377 - --- Workload: 308344000000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 48 in the X datas point --------------- - --- Configuration: 400040-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3874812555.9426064 - --- Energy: 24.208364980550822 - --- Workload: 93802800000.0 --------------- ---- Ordered by energy, Printing the list of the 10 first neighbours of '440000-0-0' ---- Neighbour 0 in the list of neghbours, And at position 59 in the X datas point --------------- - --- Configuration: 440000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3911490786.4834523 - --- Energy: 23.764456566046302 - --- Workload: 92954500000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 42 in the X datas point --------------- - --- Configuration: 330000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3883480064.155091 - --- Energy: 24.08059502443054 - --- Workload: 93516400000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 57 in the X datas point --------------- - --- Configuration: 440000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3867469553.3459415 - --- Energy: 24.084653436720817 - --- Workload: 93146600000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 48 in the X datas point --------------- - --- Configuration: 400040-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3874812555.9426064 - --- Energy: 24.208364980550822 - --- Workload: 93802800000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 43 in the X datas point --------------- - --- Configuration: 330000-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3773399795.481731 - --- Energy: 24.637735624906814 - --- Workload: 92968000000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 44 in the X datas point --------------- - --- Configuration: 330000-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3779532320.67064 - --- Energy: 24.641747385770024 - --- Workload: 93134300000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 58 in the X datas point --------------- - --- Configuration: 440000-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3780346733.402388 - --- Energy: 24.652112755988767 - --- Workload: 93193500000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 45 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8626490226.186573 - --- Energy: 35.68737472207005 - --- Workload: 307857000000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 47 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8625597322.614592 - --- Energy: 35.74753244365377 - --- Workload: 308344000000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 46 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8487667419.239845 - --- Energy: 36.26627936290422 - --- Workload: 307816000000.0 --------------- --------------- ---- Median at position 4 in the list of neghbours, And at position 43 in the X datas point --------------- - --- Configuration: 330000-0-0 - --- Energy efficiency: 3773399795.481731 - --- Energy: 24.637735624906814 - --- Workload: 92968000000.0 --------------- ---- Comparing the median energy with the energy of that data point ---- The energy of the current configuration (24.637735624906814 mAh) it is NOT far from the median. ---- Median :24.637735624906814, the gap is : 10 ---- So No we don't romove this configuration '440000-0-0' - --- remove_aberrant_points: The value [1, 3, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0] is not an abberant point. - --- remove_aberrant_points: do we remove value [1, 3, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0] ---- Computing the list of the 10 first neighbours of '440000-0-0' -*** START computing ci exp matrix -X = [[0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.]] -*** END computing ci exp matrix, cached result [[[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - [[1. ] - [1. ] - [1. ] - ... - [0.39729471] - [0.39729471] - [0.39729471]] - - ... - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]] - - [[0.39729471] - [0.39729471] - [0.39729471] - ... - [1. ] - [1. ] - [1. ]]] ---- Ordered by distance, Printing the list of the 10 first neighbours of '440000-0-0' ---- Neighbour 0 in the list of neghbours, And at position 57 in the X datas point --------------- - --- Configuration: 440000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3867469553.3459415 - --- Energy: 24.084653436720817 - --- Workload: 93146600000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 58 in the X datas point --------------- - --- Configuration: 440000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3780346733.402388 - --- Energy: 24.652112755988767 - --- Workload: 93193500000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 59 in the X datas point --------------- - --- Configuration: 440000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3911490786.4834523 - --- Energy: 23.764456566046302 - --- Workload: 92954500000.0 --------------- ---- Neighbour 3 in the list of neghbours, And at position 42 in the X datas point --------------- - --- Configuration: 330000-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3883480064.155091 - --- Energy: 24.08059502443054 - --- Workload: 93516400000.0 --------------- ---- Neighbour 4 in the list of neghbours, And at position 43 in the X datas point --------------- - --- Configuration: 330000-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3773399795.481731 - --- Energy: 24.637735624906814 - --- Workload: 92968000000.0 --------------- ---- Neighbour 5 in the list of neghbours, And at position 44 in the X datas point --------------- - --- Configuration: 330000-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3779532320.67064 - --- Energy: 24.641747385770024 - --- Workload: 93134300000.0 --------------- ---- Neighbour 6 in the list of neghbours, And at position 45 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8626490226.186573 - --- Energy: 35.68737472207005 - --- Workload: 307857000000.0 --------------- ---- Neighbour 7 in the list of neghbours, And at position 46 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8487667419.239845 - --- Energy: 36.26627936290422 - --- Workload: 307816000000.0 --------------- ---- Neighbour 8 in the list of neghbours, And at position 47 in the X datas point --------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8625597322.614592 - --- Energy: 35.74753244365377 - --- Workload: 308344000000.0 --------------- ---- Neighbour 9 in the list of neghbours, And at position 48 in the X datas point --------------- - --- Configuration: 400040-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3874812555.9426064 - --- Energy: 24.208364980550822 - --- Workload: 93802800000.0 --------------- ---- Ordered by energy, Printing the list of the 10 first neighbours of '440000-0-0' ---- Neighbour 0 in the list of neghbours, And at position 59 in the X datas point --------------- - --- Configuration: 440000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3911490786.4834523 - --- Energy: 23.764456566046302 - --- Workload: 92954500000.0 --------------- ---- Neighbour 1 in the list of neghbours, And at position 42 in the X datas point --------------- - --- Configuration: 330000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3883480064.155091 - --- Energy: 24.08059502443054 - --- Workload: 93516400000.0 --------------- ---- Neighbour 2 in the list of neghbours, And at position 57 in the X datas point --------------- - --- Configuration: 440000-0-0 - --- Distance from that configuration: [1.] - --- Energy efficiency: 3867469553.3459415 - --- Energy: 24.084653436720817 - --- Workload: 93146600000.0 + 0.00000000e+00 2.00000000e+00 0.00000000e+00 2.00000000e+00 + 1.65044281e+10] + --- Checking value [0, 0.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0] + --- Retained configurations [] + --- Answer : we add the configuration, it is not yet present + --- Checking value [0, 0.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0] + --- Retained configurations [[0, 0.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0]] + --- Answer : configuration is present, have it been processed? -1 + --- Answer : the configuration 100001-2-2 is already present at positions [0, 1, 2] + --- Position: 0 +-------------- + --- Configuration: 100001-2-2 + --- Energy efficiency: 16754768826.077124 + --- Energy: 69.52409009723863 + --- Workload: 1164860000000.0 +-------------- + --- Position: 1 +-------------- + --- Configuration: 100001-2-2 + --- Energy efficiency: 16403311500.525728 + --- Energy: 71.0813570024315 + --- Workload: 1165970000000.0 +-------------- + --- Position: 2 +-------------- + --- Configuration: 100001-2-2 + --- Energy efficiency: 16507397790.319733 + --- Energy: 70.47748663452633 + --- Workload: 1163400000000.0 +-------------- +---------------------- Listing and computing the mean +--- Ordered by energy, Printing the list of the 3 duplicates of '100001-2-2' +--- Duplicate 0 in the list of duplicate, And at position 1 in the X datas point +-------------- + --- Configuration: 100001-2-2 + --- Energy efficiency: 16403311500.525728 + --- Energy: 71.0813570024315 + --- Workload: 1165970000000.0 +-------------- +--- Duplicate 1 in the list of duplicate, And at position 2 in the X datas point +-------------- + --- Configuration: 100001-2-2 + --- Energy efficiency: 16507397790.319733 + --- Energy: 70.47748663452633 + --- Workload: 1163400000000.0 +-------------- +--- Duplicate 2 in the list of duplicate, And at position 0 in the X datas point +-------------- + --- Configuration: 100001-2-2 + --- Energy efficiency: 16754768826.077124 + --- Energy: 69.52409009723863 + --- Workload: 1164860000000.0 +-------------- +-------------- +--- We append this mean as duplicate reprensentant in the X datas point +-------------- + --- Configuration: 100001-2-2 + --- Energy efficiency: 16555159372.307528 + --- Energy: 70.36097791139882 + --- Workload: 1164743333333.3333 +-------------- + --- Checking value [0, 0.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0] + --- Retained configurations [[0, 0.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0]] + --- Answer : configuration is present, have it been processed? 0 + --- Checking value [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0] + --- Retained configurations [[0, 0.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0]] + --- Answer : we add the configuration, it is not yet present + --- Checking value [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0] + --- Retained configurations [[0, 0.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0]] + --- Answer : configuration is present, have it been processed? -1 + --- Answer : the configuration 100010-2-2 is already present at positions [3, 4, 5] + --- Position: 3 +-------------- + --- Configuration: 100010-2-2 + --- Energy efficiency: 16637938492.868979 + --- Energy: 70.09045877144594 + --- Workload: 1166160000000.0 +-------------- + --- Position: 4 +-------------- + --- Configuration: 100010-2-2 + --- Energy efficiency: 16458467058.378183 + --- Energy: 70.58915136388794 + --- Workload: 1161790000000.0 +-------------- + --- Position: 5 +-------------- + --- Configuration: 100010-2-2 + --- Energy efficiency: 16296783992.64689 + --- Energy: 71.30789275413113 + --- Workload: 1162090000000.0 +-------------- +---------------------- Listing and computing the mean +--- Ordered by energy, Printing the list of the 3 duplicates of '100010-2-2' +--- Duplicate 0 in the list of duplicate, And at position 5 in the X datas point +-------------- + --- Configuration: 100010-2-2 + --- Energy efficiency: 16296783992.64689 + --- Energy: 71.30789275413113 + --- Workload: 1162090000000.0 +-------------- +--- Duplicate 1 in the list of duplicate, And at position 4 in the X datas point +-------------- + --- Configuration: 100010-2-2 + --- Energy efficiency: 16458467058.378183 + --- Energy: 70.58915136388794 + --- Workload: 1161790000000.0 +-------------- +--- Duplicate 2 in the list of duplicate, And at position 3 in the X datas point +-------------- + --- Configuration: 100010-2-2 + --- Energy efficiency: 16637938492.868979 + --- Energy: 70.09045877144594 + --- Workload: 1166160000000.0 +-------------- +-------------- +--- We append this mean as duplicate reprensentant in the X datas point +-------------- + --- Configuration: 100010-2-2 + --- Energy efficiency: 16464396514.63135 + --- Energy: 70.66250096315501 + --- Workload: 1163346666666.6667 +-------------- + --- Checking value [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0] + --- Retained configurations [[0, 0.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0]] + --- Answer : configuration is present, have it been processed? 1 + --- Checking value [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0] + --- Retained configurations [[0, 0.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0]] + --- Answer : we add the configuration, it is not yet present + --- Checking value [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0] + --- Retained configurations [[0, 0.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0]] + --- Answer : configuration is present, have it been processed? -1 + --- Answer : the configuration 100100-2-2 is already present at positions [6, 7, 8] + --- Position: 6 +-------------- + --- Configuration: 100100-2-2 + --- Energy efficiency: 16410444919.98267 + --- Energy: 70.742778041012 + --- Workload: 1160920000000.0 +-------------- + --- Position: 7 +-------------- + --- Configuration: 100100-2-2 + --- Energy efficiency: 16532532717.882248 + --- Energy: 70.57358750924872 + --- Workload: 1166760000000.0 +-------------- + --- Position: 8 +-------------- + --- Configuration: 100100-2-2 + --- Energy efficiency: 16433313613.356997 + --- Energy: 70.90841487980666 + --- Workload: 1165260000000.0 +-------------- +---------------------- Listing and computing the mean +--- Ordered by energy, Printing the list of the 3 duplicates of '100100-2-2' +--- Duplicate 0 in the list of duplicate, And at position 8 in the X datas point +-------------- + --- Configuration: 100100-2-2 + --- Energy efficiency: 16433313613.356997 + --- Energy: 70.90841487980666 + --- Workload: 1165260000000.0 +-------------- +--- Duplicate 1 in the list of duplicate, And at position 6 in the X datas point +-------------- + --- Configuration: 100100-2-2 + --- Energy efficiency: 16410444919.98267 + --- Energy: 70.742778041012 + --- Workload: 1160920000000.0 +-------------- +--- Duplicate 2 in the list of duplicate, And at position 7 in the X datas point +-------------- + --- Configuration: 100100-2-2 + --- Energy efficiency: 16532532717.882248 + --- Energy: 70.57358750924872 + --- Workload: 1166760000000.0 +-------------- +-------------- +--- We append this mean as duplicate reprensentant in the X datas point +-------------- + --- Configuration: 100100-2-2 + --- Energy efficiency: 16458763750.407305 + --- Energy: 70.74159347668912 + --- Workload: 1164313333333.3333 +-------------- + --- Checking value [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0] + --- Retained configurations [[0, 0.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0]] + --- Answer : configuration is present, have it been processed? 2 + --- Checking value [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0] + --- Retained configurations [[0, 0.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0]] + --- Answer : we add the configuration, it is not yet present + --- Checking value [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0] + --- Retained configurations [[0, 0.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0]] + --- Answer : configuration is present, have it been processed? -1 + --- Answer : the configuration 101000-2-2 is already present at positions [9, 10, 11] + --- Position: 9 +-------------- + --- Configuration: 101000-2-2 + --- Energy efficiency: 16394544551.355093 + --- Energy: 70.73694231384944 + --- Workload: 1159700000000.0 +-------------- + --- Position: 10 +-------------- + --- Configuration: 101000-2-2 + --- Energy efficiency: 16446827406.99319 + --- Energy: 70.87019823828456 + --- Workload: 1165590000000.0 +-------------- + --- Position: 11 +-------------- + --- Configuration: 101000-2-2 + --- Energy efficiency: 16413677188.92799 + --- Energy: 70.66304539864001 + --- Workload: 1159840000000.0 +-------------- +---------------------- Listing and computing the mean +--- Ordered by energy, Printing the list of the 3 duplicates of '101000-2-2' +--- Duplicate 0 in the list of duplicate, And at position 10 in the X datas point +-------------- + --- Configuration: 101000-2-2 + --- Energy efficiency: 16446827406.99319 + --- Energy: 70.87019823828456 + --- Workload: 1165590000000.0 +-------------- +--- Duplicate 1 in the list of duplicate, And at position 9 in the X datas point +-------------- + --- Configuration: 101000-2-2 + --- Energy efficiency: 16394544551.355093 + --- Energy: 70.73694231384944 + --- Workload: 1159700000000.0 +-------------- +--- Duplicate 2 in the list of duplicate, And at position 11 in the X datas point +-------------- + --- Configuration: 101000-2-2 + --- Energy efficiency: 16413677188.92799 + --- Energy: 70.66304539864001 + --- Workload: 1159840000000.0 +-------------- +-------------- +--- We append this mean as duplicate reprensentant in the X datas point +-------------- + --- Configuration: 101000-2-2 + --- Energy efficiency: 16418349715.758759 + --- Energy: 70.75672865025801 + --- Workload: 1161710000000.0 +-------------- + --- Checking value [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0] + --- Retained configurations [[0, 0.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0]] + --- Answer : configuration is present, have it been processed? 3 + --- Checking value [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0] + --- Retained configurations [[0, 0.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0]] + --- Answer : we add the configuration, it is not yet present + --- Checking value [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0] + --- Retained configurations [[0, 0.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0]] + --- Answer : configuration is present, have it been processed? -1 + --- Answer : the configuration 110000-2-2 is already present at positions [12, 13, 14] + --- Position: 12 +-------------- + --- Configuration: 110000-2-2 + --- Energy efficiency: 16620047433.615376 + --- Energy: 70.11291945420209 + --- Workload: 1165280000000.0 +-------------- + --- Position: 13 +-------------- + --- Configuration: 110000-2-2 + --- Energy efficiency: 16528461183.735334 + --- Energy: 70.4747458234224 + --- Workload: 1164840000000.0 +-------------- + --- Position: 14 +-------------- + --- Configuration: 110000-2-2 + --- Energy efficiency: 16580145938.44455 + --- Energy: 70.35766711410953 + --- Workload: 1166540000000.0 +-------------- +---------------------- Listing and computing the mean +--- Ordered by energy, Printing the list of the 3 duplicates of '110000-2-2' +--- Duplicate 0 in the list of duplicate, And at position 13 in the X datas point +-------------- + --- Configuration: 110000-2-2 + --- Energy efficiency: 16528461183.735334 + --- Energy: 70.4747458234224 + --- Workload: 1164840000000.0 +-------------- +--- Duplicate 1 in the list of duplicate, And at position 14 in the X datas point +-------------- + --- Configuration: 110000-2-2 + --- Energy efficiency: 16580145938.44455 + --- Energy: 70.35766711410953 + --- Workload: 1166540000000.0 +-------------- +--- Duplicate 2 in the list of duplicate, And at position 12 in the X datas point +-------------- + --- Configuration: 110000-2-2 + --- Energy efficiency: 16620047433.615376 + --- Energy: 70.11291945420209 + --- Workload: 1165280000000.0 +-------------- +-------------- +--- We append this mean as duplicate reprensentant in the X datas point +-------------- + --- Configuration: 110000-2-2 + --- Energy efficiency: 16576218185.265085 + --- Energy: 70.31511079724467 + --- Workload: 1165553333333.3333 +-------------- + --- Checking value [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0] + --- Retained configurations [[0, 0.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0]] + --- Answer : configuration is present, have it been processed? 4 + --- Checking value [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0] + --- Retained configurations [[0, 0.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0]] + --- Answer : we add the configuration, it is not yet present + --- Checking value [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0] + --- Retained configurations [[0, 0.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0]] + --- Answer : configuration is present, have it been processed? -1 + --- Answer : the configuration 200002-2-2 is already present at positions [15, 16, 17] + --- Position: 15 +-------------- + --- Configuration: 200002-2-2 + --- Energy efficiency: 16765639827.112722 + --- Energy: 77.96541094759694 + --- Workload: 1307140000000.0 +-------------- + --- Position: 16 +-------------- + --- Configuration: 200002-2-2 + --- Energy efficiency: 17108405701.889452 + --- Energy: 76.2023086156267 + --- Workload: 1303700000000.0 +-------------- + --- Position: 17 +-------------- + --- Configuration: 200002-2-2 + --- Energy efficiency: 17033540745.081139 + --- Energy: 76.33647794504182 + --- Workload: 1300280000000.0 +-------------- +---------------------- Listing and computing the mean +--- Ordered by energy, Printing the list of the 3 duplicates of '200002-2-2' +--- Duplicate 0 in the list of duplicate, And at position 15 in the X datas point +-------------- + --- Configuration: 200002-2-2 + --- Energy efficiency: 16765639827.112722 + --- Energy: 77.96541094759694 + --- Workload: 1307140000000.0 +-------------- +--- Duplicate 1 in the list of duplicate, And at position 17 in the X datas point +-------------- + --- Configuration: 200002-2-2 + --- Energy efficiency: 17033540745.081139 + --- Energy: 76.33647794504182 + --- Workload: 1300280000000.0 +-------------- +--- Duplicate 2 in the list of duplicate, And at position 16 in the X datas point +-------------- + --- Configuration: 200002-2-2 + --- Energy efficiency: 17108405701.889452 + --- Energy: 76.2023086156267 + --- Workload: 1303700000000.0 +-------------- +-------------- +--- We append this mean as duplicate reprensentant in the X datas point +-------------- + --- Configuration: 200002-2-2 + --- Energy efficiency: 16969195424.694437 + --- Energy: 76.83473250275516 + --- Workload: 1303706666666.6667 +-------------- + --- Checking value [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0] + --- Retained configurations [[0, 0.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0]] + --- Answer : configuration is present, have it been processed? 5 + --- Checking value [0, 1.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0] + --- Retained configurations [[0, 0.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0]] + --- Answer : we add the configuration, it is not yet present + --- Checking value [0, 1.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0] + --- Retained configurations [[0, 0.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0]] + --- Answer : configuration is present, have it been processed? -1 + --- Answer : the configuration 200020-2-2 is already present at positions [18, 19, 20] + --- Position: 18 +-------------- + --- Configuration: 200020-2-2 + --- Energy efficiency: 16267066185.812191 + --- Energy: 71.64787072655308 + --- Workload: 1165500000000.0 +-------------- + --- Position: 19 +-------------- + --- Configuration: 200020-2-2 + --- Energy efficiency: 16454756823.376287 + --- Energy: 70.59299246340379 + --- Workload: 1161590000000.0 +-------------- + --- Position: 20 +-------------- + --- Configuration: 200020-2-2 + --- Energy efficiency: 16456191971.353062 + --- Energy: 70.62997330800367 + --- Workload: 1162300000000.0 +-------------- +---------------------- Listing and computing the mean +--- Ordered by energy, Printing the list of the 3 duplicates of '200020-2-2' +--- Duplicate 0 in the list of duplicate, And at position 18 in the X datas point +-------------- + --- Configuration: 200020-2-2 + --- Energy efficiency: 16267066185.812191 + --- Energy: 71.64787072655308 + --- Workload: 1165500000000.0 +-------------- +--- Duplicate 1 in the list of duplicate, And at position 20 in the X datas point +-------------- + --- Configuration: 200020-2-2 + --- Energy efficiency: 16456191971.353062 + --- Energy: 70.62997330800367 + --- Workload: 1162300000000.0 +-------------- +--- Duplicate 2 in the list of duplicate, And at position 19 in the X datas point +-------------- + --- Configuration: 200020-2-2 + --- Energy efficiency: 16454756823.376287 + --- Energy: 70.59299246340379 + --- Workload: 1161590000000.0 +-------------- +-------------- +--- We append this mean as duplicate reprensentant in the X datas point +-------------- + --- Configuration: 200020-2-2 + --- Energy efficiency: 16392671660.180513 + --- Energy: 70.95694549932018 + --- Workload: 1163130000000.0 +-------------- + --- Checking value [0, 1.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0] + --- Retained configurations [[0, 0.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0]] + --- Answer : configuration is present, have it been processed? 6 + --- Checking value [0, 1.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0] + --- Retained configurations [[0, 0.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0]] + --- Answer : we add the configuration, it is not yet present + --- Checking value [0, 1.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0] + --- Retained configurations [[0, 0.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0]] + --- Answer : configuration is present, have it been processed? -1 + --- Answer : the configuration 200200-2-2 is already present at positions [21, 22, 23] + --- Position: 21 +-------------- + --- Configuration: 200200-2-2 + --- Energy efficiency: 16196850036.604881 + --- Energy: 71.59418143367965 + --- Workload: 1159600000000.0 +-------------- + --- Position: 22 +-------------- + --- Configuration: 200200-2-2 + --- Energy efficiency: 16524664714.552942 + --- Energy: 70.63924455966055 + --- Workload: 1167290000000.0 +-------------- + --- Position: 23 +-------------- + --- Configuration: 200200-2-2 + --- Energy efficiency: 16531302848.508793 + --- Energy: 70.53403938823975 + --- Workload: 1166020000000.0 +-------------- +---------------------- Listing and computing the mean +--- Ordered by energy, Printing the list of the 3 duplicates of '200200-2-2' +--- Duplicate 0 in the list of duplicate, And at position 21 in the X datas point +-------------- + --- Configuration: 200200-2-2 + --- Energy efficiency: 16196850036.604881 + --- Energy: 71.59418143367965 + --- Workload: 1159600000000.0 +-------------- +--- Duplicate 1 in the list of duplicate, And at position 22 in the X datas point +-------------- + --- Configuration: 200200-2-2 + --- Energy efficiency: 16524664714.552942 + --- Energy: 70.63924455966055 + --- Workload: 1167290000000.0 +-------------- +--- Duplicate 2 in the list of duplicate, And at position 23 in the X datas point +-------------- + --- Configuration: 200200-2-2 + --- Energy efficiency: 16531302848.508793 + --- Energy: 70.53403938823975 + --- Workload: 1166020000000.0 +-------------- +-------------- +--- We append this mean as duplicate reprensentant in the X datas point +-------------- + --- Configuration: 200200-2-2 + --- Energy efficiency: 16417605866.555536 + --- Energy: 70.92248846052665 + --- Workload: 1164303333333.3333 +-------------- + --- Checking value [0, 1.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0] + --- Retained configurations [[0, 0.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0]] + --- Answer : configuration is present, have it been processed? 7 + --- Checking value [0, 1.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0] + --- Retained configurations [[0, 0.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0]] + --- Answer : we add the configuration, it is not yet present + --- Checking value [0, 1.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0] + --- Retained configurations [[0, 0.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0]] + --- Answer : configuration is present, have it been processed? -1 + --- Answer : the configuration 202000-2-2 is already present at positions [24, 25, 26] + --- Position: 24 +-------------- + --- Configuration: 202000-2-2 + --- Energy efficiency: 16332236895.829727 + --- Energy: 71.49423895337264 + --- Workload: 1167660000000.0 +-------------- + --- Position: 25 +-------------- + --- Configuration: 202000-2-2 + --- Energy efficiency: 16457519029.006376 + --- Energy: 70.60359391424801 + --- Workload: 1161960000000.0 +-------------- + --- Position: 26 +-------------- + --- Configuration: 202000-2-2 + --- Energy efficiency: 16541995163.120615 + --- Energy: 70.52715331333978 + --- Workload: 1166660000000.0 +-------------- +---------------------- Listing and computing the mean +--- Ordered by energy, Printing the list of the 3 duplicates of '202000-2-2' +--- Duplicate 0 in the list of duplicate, And at position 24 in the X datas point +-------------- + --- Configuration: 202000-2-2 + --- Energy efficiency: 16332236895.829727 + --- Energy: 71.49423895337264 + --- Workload: 1167660000000.0 +-------------- +--- Duplicate 1 in the list of duplicate, And at position 25 in the X datas point +-------------- + --- Configuration: 202000-2-2 + --- Energy efficiency: 16457519029.006376 + --- Energy: 70.60359391424801 + --- Workload: 1161960000000.0 +-------------- +--- Duplicate 2 in the list of duplicate, And at position 26 in the X datas point +-------------- + --- Configuration: 202000-2-2 + --- Energy efficiency: 16541995163.120615 + --- Energy: 70.52715331333978 + --- Workload: 1166660000000.0 +-------------- +-------------- +--- We append this mean as duplicate reprensentant in the X datas point +-------------- + --- Configuration: 202000-2-2 + --- Energy efficiency: 16443917029.318907 + --- Energy: 70.87499539365348 + --- Workload: 1165426666666.6667 +-------------- + --- Checking value [0, 1.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0] + --- Retained configurations [[0, 0.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0]] + --- Answer : configuration is present, have it been processed? 8 + --- Checking value [0, 1.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0] + --- Retained configurations [[0, 0.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0]] + --- Answer : we add the configuration, it is not yet present + --- Checking value [0, 1.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0] + --- Retained configurations [[0, 0.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0]] + --- Answer : configuration is present, have it been processed? -1 + --- Answer : the configuration 220000-2-2 is already present at positions [27, 28, 29] + --- Position: 27 +-------------- + --- Configuration: 220000-2-2 + --- Energy efficiency: 16365406803.099607 + --- Energy: 71.18060224267974 + --- Workload: 1164900000000.0 +-------------- + --- Position: 28 +-------------- + --- Configuration: 220000-2-2 + --- Energy efficiency: 16563366471.108519 + --- Energy: 70.32392311813075 + --- Workload: 1164800000000.0 +-------------- + --- Position: 29 +-------------- + --- Configuration: 220000-2-2 + --- Energy efficiency: 16635807244.228622 + --- Energy: 70.05135389771442 + --- Workload: 1165360000000.0 +-------------- +---------------------- Listing and computing the mean +--- Ordered by energy, Printing the list of the 3 duplicates of '220000-2-2' +--- Duplicate 0 in the list of duplicate, And at position 27 in the X datas point +-------------- + --- Configuration: 220000-2-2 + --- Energy efficiency: 16365406803.099607 + --- Energy: 71.18060224267974 + --- Workload: 1164900000000.0 +-------------- +--- Duplicate 1 in the list of duplicate, And at position 28 in the X datas point +-------------- + --- Configuration: 220000-2-2 + --- Energy efficiency: 16563366471.108519 + --- Energy: 70.32392311813075 + --- Workload: 1164800000000.0 +-------------- +--- Duplicate 2 in the list of duplicate, And at position 29 in the X datas point +-------------- + --- Configuration: 220000-2-2 + --- Energy efficiency: 16635807244.228622 + --- Energy: 70.05135389771442 + --- Workload: 1165360000000.0 +-------------- +-------------- +--- We append this mean as duplicate reprensentant in the X datas point +-------------- + --- Configuration: 220000-2-2 + --- Energy efficiency: 16521526839.478918 + --- Energy: 70.5186264195083 + --- Workload: 1165020000000.0 +-------------- + --- Checking value [0, 1.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0] + --- Retained configurations [[0, 0.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0]] + --- Answer : configuration is present, have it been processed? 9 + --- Checking value [0, 2.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0] + --- Retained configurations [[0, 0.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0]] + --- Answer : we add the configuration, it is not yet present + --- Checking value [0, 2.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0] + --- Retained configurations [[0, 0.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0]] + --- Answer : configuration is present, have it been processed? -1 + --- Answer : the configuration 300003-2-2 is already present at positions [30, 31, 32] + --- Position: 30 +-------------- + --- Configuration: 300003-2-2 + --- Energy efficiency: 15918573313.785324 + --- Energy: 86.59637719434818 + --- Workload: 1378490000000.0 +-------------- + --- Position: 31 +-------------- + --- Configuration: 300003-2-2 + --- Energy efficiency: 15758131589.853653 + --- Energy: 87.6265526980771 + --- Workload: 1380830000000.0 +-------------- + --- Position: 32 +-------------- + --- Configuration: 300003-2-2 + --- Energy efficiency: 15925494168.084036 + --- Energy: 87.08870790047656 + --- Workload: 1386930000000.0 +-------------- +---------------------- Listing and computing the mean +--- Ordered by energy, Printing the list of the 3 duplicates of '300003-2-2' +--- Duplicate 0 in the list of duplicate, And at position 31 in the X datas point +-------------- + --- Configuration: 300003-2-2 + --- Energy efficiency: 15758131589.853653 + --- Energy: 87.6265526980771 + --- Workload: 1380830000000.0 +-------------- +--- Duplicate 1 in the list of duplicate, And at position 32 in the X datas point +-------------- + --- Configuration: 300003-2-2 + --- Energy efficiency: 15925494168.084036 + --- Energy: 87.08870790047656 + --- Workload: 1386930000000.0 +-------------- +--- Duplicate 2 in the list of duplicate, And at position 30 in the X datas point +-------------- + --- Configuration: 300003-2-2 + --- Energy efficiency: 15918573313.785324 + --- Energy: 86.59637719434818 + --- Workload: 1378490000000.0 +-------------- +-------------- +--- We append this mean as duplicate reprensentant in the X datas point +-------------- + --- Configuration: 300003-2-2 + --- Energy efficiency: 15867399690.574339 + --- Energy: 87.1038792643006 + --- Workload: 1382083333333.3333 +-------------- + --- Checking value [0, 2.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0] + --- Retained configurations [[0, 0.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0]] + --- Answer : configuration is present, have it been processed? 10 + --- Checking value [0, 2.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0] + --- Retained configurations [[0, 0.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0]] + --- Answer : we add the configuration, it is not yet present + --- Checking value [0, 2.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0] + --- Retained configurations [[0, 0.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0]] + --- Answer : configuration is present, have it been processed? -1 + --- Answer : the configuration 300030-2-2 is already present at positions [33, 34, 35] + --- Position: 33 +-------------- + --- Configuration: 300030-2-2 + --- Energy efficiency: 16471235457.957994 + --- Energy: 70.45738299722346 + --- Workload: 1160520000000.0 +-------------- + --- Position: 34 +-------------- + --- Configuration: 300030-2-2 + --- Energy efficiency: 16301991125.196033 + --- Energy: 71.52806365064377 + --- Workload: 1166050000000.0 +-------------- + --- Position: 35 +-------------- + --- Configuration: 300030-2-2 + --- Energy efficiency: 16419902892.694292 + --- Energy: 70.36461641518005 + --- Workload: 1155380000000.0 +-------------- +---------------------- Listing and computing the mean +--- Ordered by energy, Printing the list of the 3 duplicates of '300030-2-2' +--- Duplicate 0 in the list of duplicate, And at position 34 in the X datas point +-------------- + --- Configuration: 300030-2-2 + --- Energy efficiency: 16301991125.196033 + --- Energy: 71.52806365064377 + --- Workload: 1166050000000.0 +-------------- +--- Duplicate 1 in the list of duplicate, And at position 33 in the X datas point +-------------- + --- Configuration: 300030-2-2 + --- Energy efficiency: 16471235457.957994 + --- Energy: 70.45738299722346 + --- Workload: 1160520000000.0 +-------------- +--- Duplicate 2 in the list of duplicate, And at position 35 in the X datas point +-------------- + --- Configuration: 300030-2-2 + --- Energy efficiency: 16419902892.694292 + --- Energy: 70.36461641518005 + --- Workload: 1155380000000.0 +-------------- +-------------- +--- We append this mean as duplicate reprensentant in the X datas point +-------------- + --- Configuration: 300030-2-2 + --- Energy efficiency: 16397709825.282774 + --- Energy: 70.7833543543491 + --- Workload: 1160650000000.0 +-------------- + --- Checking value [0, 2.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0] + --- Retained configurations [[0, 0.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0]] + --- Answer : configuration is present, have it been processed? 11 + --- Checking value [0, 2.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0] + --- Retained configurations [[0, 0.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0]] + --- Answer : we add the configuration, it is not yet present + --- Checking value [0, 2.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0] + --- Retained configurations [[0, 0.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0]] + --- Answer : configuration is present, have it been processed? -1 + --- Answer : the configuration 300300-2-2 is already present at positions [36, 37, 38] + --- Position: 36 +-------------- + --- Configuration: 300300-2-2 + --- Energy efficiency: 16532751380.484741 + --- Energy: 70.54538704058632 + --- Workload: 1166310000000.0 +-------------- + --- Position: 37 +-------------- + --- Configuration: 300300-2-2 + --- Energy efficiency: 16235795708.229763 + --- Energy: 71.57822660827733 + --- Workload: 1162130000000.0 +-------------- + --- Position: 38 +-------------- + --- Configuration: 300300-2-2 + --- Energy efficiency: 16437338400.416851 + --- Energy: 70.7170408596214 + --- Workload: 1162400000000.0 +-------------- +---------------------- Listing and computing the mean +--- Ordered by energy, Printing the list of the 3 duplicates of '300300-2-2' +--- Duplicate 0 in the list of duplicate, And at position 37 in the X datas point +-------------- + --- Configuration: 300300-2-2 + --- Energy efficiency: 16235795708.229763 + --- Energy: 71.57822660827733 + --- Workload: 1162130000000.0 +-------------- +--- Duplicate 1 in the list of duplicate, And at position 38 in the X datas point +-------------- + --- Configuration: 300300-2-2 + --- Energy efficiency: 16437338400.416851 + --- Energy: 70.7170408596214 + --- Workload: 1162400000000.0 +-------------- +--- Duplicate 2 in the list of duplicate, And at position 36 in the X datas point +-------------- + --- Configuration: 300300-2-2 + --- Energy efficiency: 16532751380.484741 + --- Energy: 70.54538704058632 + --- Workload: 1166310000000.0 +-------------- +-------------- +--- We append this mean as duplicate reprensentant in the X datas point +-------------- + --- Configuration: 300300-2-2 + --- Energy efficiency: 16401961829.710451 + --- Energy: 70.94688483616169 + --- Workload: 1163613333333.3333 +-------------- + --- Checking value [0, 2.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0] + --- Retained configurations [[0, 0.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0]] + --- Answer : configuration is present, have it been processed? 12 + --- Checking value [0, 2.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0] + --- Retained configurations [[0, 0.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0]] + --- Answer : we add the configuration, it is not yet present + --- Checking value [0, 2.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0] + --- Retained configurations [[0, 0.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0]] + --- Answer : configuration is present, have it been processed? -1 + --- Answer : the configuration 303000-2-2 is already present at positions [39, 40, 41] + --- Position: 39 +-------------- + --- Configuration: 303000-2-2 + --- Energy efficiency: 16540709166.3648 + --- Energy: 70.12091351608217 + --- Workload: 1159850000000.0 +-------------- + --- Position: 40 +-------------- + --- Configuration: 303000-2-2 + --- Energy efficiency: 16707153669.058018 + --- Energy: 69.80058323418798 + --- Workload: 1166170000000.0 +-------------- + --- Position: 41 +-------------- + --- Configuration: 303000-2-2 + --- Energy efficiency: 16522207499.09954 + --- Energy: 70.54568641754493 + --- Workload: 1165570000000.0 +-------------- +---------------------- Listing and computing the mean +--- Ordered by energy, Printing the list of the 3 duplicates of '303000-2-2' +--- Duplicate 0 in the list of duplicate, And at position 41 in the X datas point +-------------- + --- Configuration: 303000-2-2 + --- Energy efficiency: 16522207499.09954 + --- Energy: 70.54568641754493 + --- Workload: 1165570000000.0 +-------------- +--- Duplicate 1 in the list of duplicate, And at position 39 in the X datas point +-------------- + --- Configuration: 303000-2-2 + --- Energy efficiency: 16540709166.3648 + --- Energy: 70.12091351608217 + --- Workload: 1159850000000.0 +-------------- +--- Duplicate 2 in the list of duplicate, And at position 40 in the X datas point +-------------- + --- Configuration: 303000-2-2 + --- Energy efficiency: 16707153669.058018 + --- Energy: 69.80058323418798 + --- Workload: 1166170000000.0 +-------------- +-------------- +--- We append this mean as duplicate reprensentant in the X datas point +-------------- + --- Configuration: 303000-2-2 + --- Energy efficiency: 16590023444.840784 + --- Energy: 70.15572772260502 + --- Workload: 1163863333333.3333 +-------------- + --- Checking value [0, 2.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0] + --- Retained configurations [[0, 0.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0]] + --- Answer : configuration is present, have it been processed? 13 + --- Checking value [0, 2.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0] + --- Retained configurations [[0, 0.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0]] + --- Answer : we add the configuration, it is not yet present + --- Checking value [0, 2.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0] + --- Retained configurations [[0, 0.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0]] + --- Answer : configuration is present, have it been processed? -1 + --- Answer : the configuration 330000-2-2 is already present at positions [42, 43, 44] + --- Position: 42 +-------------- + --- Configuration: 330000-2-2 + --- Energy efficiency: 16563640820.761528 + --- Energy: 70.33175275813268 + --- Workload: 1164950000000.0 +-------------- + --- Position: 43 +-------------- + --- Configuration: 330000-2-2 + --- Energy efficiency: 16619218797.001228 + --- Energy: 70.08575253785934 + --- Workload: 1164770000000.0 +-------------- + --- Position: 44 +-------------- + --- Configuration: 330000-2-2 + --- Energy efficiency: 16686829919.486046 + --- Energy: 69.76401393868103 + --- Workload: 1164140000000.0 +-------------- +---------------------- Listing and computing the mean +--- Ordered by energy, Printing the list of the 3 duplicates of '330000-2-2' +--- Duplicate 0 in the list of duplicate, And at position 42 in the X datas point +-------------- + --- Configuration: 330000-2-2 + --- Energy efficiency: 16563640820.761528 + --- Energy: 70.33175275813268 + --- Workload: 1164950000000.0 +-------------- +--- Duplicate 1 in the list of duplicate, And at position 43 in the X datas point +-------------- + --- Configuration: 330000-2-2 + --- Energy efficiency: 16619218797.001228 + --- Energy: 70.08575253785934 + --- Workload: 1164770000000.0 +-------------- +--- Duplicate 2 in the list of duplicate, And at position 44 in the X datas point +-------------- + --- Configuration: 330000-2-2 + --- Energy efficiency: 16686829919.486046 + --- Energy: 69.76401393868103 + --- Workload: 1164140000000.0 +-------------- +-------------- +--- We append this mean as duplicate reprensentant in the X datas point +-------------- + --- Configuration: 330000-2-2 + --- Energy efficiency: 16623229845.749601 + --- Energy: 70.06050641155768 + --- Workload: 1164620000000.0 +-------------- + --- Checking value [0, 2.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0] + --- Retained configurations [[0, 0.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0]] + --- Answer : configuration is present, have it been processed? 14 + --- Checking value [1, 3, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0] + --- Retained configurations [[0, 0.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0]] + --- Answer : we add the configuration, it is not yet present + --- Checking value [1, 3, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0] + --- Retained configurations [[0, 0.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [1, 3, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0]] + --- Answer : configuration is present, have it been processed? -1 + --- Answer : the configuration 400004-2-2 is already present at positions [45, 46, 47] + --- Position: 45 +-------------- + --- Configuration: 400004-2-2 + --- Energy efficiency: 16072596704.796225 + --- Energy: 86.25868546652029 + --- Workload: 1386400000000.0 +-------------- + --- Position: 46 +-------------- + --- Configuration: 400004-2-2 + --- Energy efficiency: 16026103317.082867 + --- Energy: 86.36279724758774 + --- Workload: 1384060000000.0 +-------------- + --- Position: 47 +-------------- + --- Configuration: 400004-2-2 + --- Energy efficiency: 15780113585.257587 + --- Energy: 87.80479279136466 + --- Workload: 1385570000000.0 +-------------- +---------------------- Listing and computing the mean +--- Ordered by energy, Printing the list of the 3 duplicates of '400004-2-2' +--- Duplicate 0 in the list of duplicate, And at position 47 in the X datas point +-------------- + --- Configuration: 400004-2-2 + --- Energy efficiency: 15780113585.257587 + --- Energy: 87.80479279136466 + --- Workload: 1385570000000.0 +-------------- +--- Duplicate 1 in the list of duplicate, And at position 46 in the X datas point +-------------- + --- Configuration: 400004-2-2 + --- Energy efficiency: 16026103317.082867 + --- Energy: 86.36279724758774 + --- Workload: 1384060000000.0 +-------------- +--- Duplicate 2 in the list of duplicate, And at position 45 in the X datas point +-------------- + --- Configuration: 400004-2-2 + --- Energy efficiency: 16072596704.796225 + --- Energy: 86.25868546652029 + --- Workload: 1386400000000.0 +-------------- +-------------- +--- We append this mean as duplicate reprensentant in the X datas point +-------------- + --- Configuration: 400004-2-2 + --- Energy efficiency: 15959604535.712227 + --- Energy: 86.80875850182423 + --- Workload: 1385343333333.3333 +-------------- + --- Checking value [1, 3, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0] + --- Retained configurations [[0, 0.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [1, 3, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0]] + --- Answer : configuration is present, have it been processed? 15 + --- Checking value [1, 3, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0] + --- Retained configurations [[0, 0.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [1, 3, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0]] + --- Answer : we add the configuration, it is not yet present + --- Checking value [1, 3, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0] + --- Retained configurations [[0, 0.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [1, 3, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [1, 3, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0]] + --- Answer : configuration is present, have it been processed? -1 + --- Answer : the configuration 400040-2-2 is already present at positions [48, 49, 50] + --- Position: 48 +-------------- + --- Configuration: 400040-2-2 + --- Energy efficiency: 16509032917.360735 + --- Energy: 70.19794533916524 + --- Workload: 1158900000000.0 -------------- ---- Neighbour 3 in the list of neghbours, And at position 48 in the X datas point + --- Position: 49 -------------- - --- Configuration: 400040-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3874812555.9426064 - --- Energy: 24.208364980550822 - --- Workload: 93802800000.0 + --- Configuration: 400040-2-2 + --- Energy efficiency: 16467899124.237123 + --- Energy: 70.4697908210477 + --- Workload: 1160490000000.0 +-------------- + --- Position: 50 +-------------- + --- Configuration: 400040-2-2 + --- Energy efficiency: 16382431480.480333 + --- Energy: 71.17628500575493 + --- Workload: 1166040000000.0 +-------------- +---------------------- Listing and computing the mean +--- Ordered by energy, Printing the list of the 3 duplicates of '400040-2-2' +--- Duplicate 0 in the list of duplicate, And at position 50 in the X datas point +-------------- + --- Configuration: 400040-2-2 + --- Energy efficiency: 16382431480.480333 + --- Energy: 71.17628500575493 + --- Workload: 1166040000000.0 +-------------- +--- Duplicate 1 in the list of duplicate, And at position 49 in the X datas point +-------------- + --- Configuration: 400040-2-2 + --- Energy efficiency: 16467899124.237123 + --- Energy: 70.4697908210477 + --- Workload: 1160490000000.0 +-------------- +--- Duplicate 2 in the list of duplicate, And at position 48 in the X datas point +-------------- + --- Configuration: 400040-2-2 + --- Energy efficiency: 16509032917.360735 + --- Energy: 70.19794533916524 + --- Workload: 1158900000000.0 -------------- ---- Neighbour 4 in the list of neghbours, And at position 43 in the X datas point -------------- - --- Configuration: 330000-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3773399795.481731 - --- Energy: 24.637735624906814 - --- Workload: 92968000000.0 +--- We append this mean as duplicate reprensentant in the X datas point +-------------- + --- Configuration: 400040-2-2 + --- Energy efficiency: 16453121174.026064 + --- Energy: 70.61467372198929 + --- Workload: 1161810000000.0 +-------------- + --- Checking value [1, 3, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0] + --- Retained configurations [[0, 0.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [1, 3, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [1, 3, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0]] + --- Answer : configuration is present, have it been processed? 16 + --- Checking value [1, 3, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0] + --- Retained configurations [[0, 0.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [1, 3, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [1, 3, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0]] + --- Answer : we add the configuration, it is not yet present + --- Checking value [1, 3, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0] + --- Retained configurations [[0, 0.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [1, 3, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [1, 3, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [1, 3, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0]] + --- Answer : configuration is present, have it been processed? -1 + --- Answer : the configuration 400400-2-2 is already present at positions [51, 52, 53] + --- Position: 51 +-------------- + --- Configuration: 400400-2-2 + --- Energy efficiency: 16533024716.871952 + --- Energy: 70.49037916333526 + --- Workload: 1165420000000.0 -------------- ---- Neighbour 5 in the list of neghbours, And at position 44 in the X datas point + --- Position: 52 -------------- - --- Configuration: 330000-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3779532320.67064 - --- Energy: 24.641747385770024 - --- Workload: 93134300000.0 + --- Configuration: 400400-2-2 + --- Energy efficiency: 16598364397.1723 + --- Energy: 69.9851801502394 + --- Workload: 1161640000000.0 +-------------- + --- Position: 53 +-------------- + --- Configuration: 400400-2-2 + --- Energy efficiency: 16324798184.682442 + --- Energy: 71.47653617449954 + --- Workload: 1166840000000.0 +-------------- +---------------------- Listing and computing the mean +--- Ordered by energy, Printing the list of the 3 duplicates of '400400-2-2' +--- Duplicate 0 in the list of duplicate, And at position 53 in the X datas point +-------------- + --- Configuration: 400400-2-2 + --- Energy efficiency: 16324798184.682442 + --- Energy: 71.47653617449954 + --- Workload: 1166840000000.0 +-------------- +--- Duplicate 1 in the list of duplicate, And at position 51 in the X datas point +-------------- + --- Configuration: 400400-2-2 + --- Energy efficiency: 16533024716.871952 + --- Energy: 70.49037916333526 + --- Workload: 1165420000000.0 +-------------- +--- Duplicate 2 in the list of duplicate, And at position 52 in the X datas point +-------------- + --- Configuration: 400400-2-2 + --- Energy efficiency: 16598364397.1723 + --- Energy: 69.9851801502394 + --- Workload: 1161640000000.0 -------------- ---- Neighbour 6 in the list of neghbours, And at position 58 in the X datas point -------------- - --- Configuration: 440000-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 3780346733.402388 - --- Energy: 24.652112755988767 - --- Workload: 93193500000.0 +--- We append this mean as duplicate reprensentant in the X datas point +-------------- + --- Configuration: 400400-2-2 + --- Energy efficiency: 16485395766.242231 + --- Energy: 70.65069849602473 + --- Workload: 1164633333333.3333 +-------------- + --- Checking value [1, 3, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0] + --- Retained configurations [[0, 0.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [1, 3, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [1, 3, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [1, 3, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0]] + --- Answer : configuration is present, have it been processed? 17 + --- Checking value [1, 3, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0] + --- Retained configurations [[0, 0.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [1, 3, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [1, 3, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [1, 3, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0]] + --- Answer : we add the configuration, it is not yet present + --- Checking value [1, 3, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0] + --- Retained configurations [[0, 0.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [1, 3, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [1, 3, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [1, 3, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [1, 3, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0]] + --- Answer : configuration is present, have it been processed? -1 + --- Answer : the configuration 404000-2-2 is already present at positions [54, 55, 56] + --- Position: 54 +-------------- + --- Configuration: 404000-2-2 + --- Energy efficiency: 16574347550.808664 + --- Energy: 70.21932151401353 + --- Workload: 1163840000000.0 -------------- ---- Neighbour 7 in the list of neghbours, And at position 45 in the X datas point + --- Position: 55 -------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8626490226.186573 - --- Energy: 35.68737472207005 - --- Workload: 307857000000.0 + --- Configuration: 404000-2-2 + --- Energy efficiency: 16578771546.185972 + --- Energy: 70.47809119531738 + --- Workload: 1168440000000.0 -------------- ---- Neighbour 8 in the list of neghbours, And at position 47 in the X datas point + --- Position: 56 +-------------- + --- Configuration: 404000-2-2 + --- Energy efficiency: 16567043511.68308 + --- Energy: 70.39942218336223 + --- Workload: 1166310000000.0 +-------------- +---------------------- Listing and computing the mean +--- Ordered by energy, Printing the list of the 3 duplicates of '404000-2-2' +--- Duplicate 0 in the list of duplicate, And at position 55 in the X datas point +-------------- + --- Configuration: 404000-2-2 + --- Energy efficiency: 16578771546.185972 + --- Energy: 70.47809119531738 + --- Workload: 1168440000000.0 +-------------- +--- Duplicate 1 in the list of duplicate, And at position 56 in the X datas point +-------------- + --- Configuration: 404000-2-2 + --- Energy efficiency: 16567043511.68308 + --- Energy: 70.39942218336223 + --- Workload: 1166310000000.0 -------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8625597322.614592 - --- Energy: 35.74753244365377 - --- Workload: 308344000000.0 +--- Duplicate 2 in the list of duplicate, And at position 54 in the X datas point -------------- ---- Neighbour 9 in the list of neghbours, And at position 46 in the X datas point + --- Configuration: 404000-2-2 + --- Energy efficiency: 16574347550.808664 + --- Energy: 70.21932151401353 + --- Workload: 1163840000000.0 -------------- - --- Configuration: 400004-0-0 - --- Distance from that configuration: [0.85740392] - --- Energy efficiency: 8487667419.239845 - --- Energy: 36.26627936290422 - --- Workload: 307816000000.0 -------------- +--- We append this mean as duplicate reprensentant in the X datas point -------------- ---- Median at position 4 in the list of neghbours, And at position 43 in the X datas point + --- Configuration: 404000-2-2 + --- Energy efficiency: 16573387536.225906 + --- Energy: 70.36561163089772 + --- Workload: 1166196666666.6667 -------------- - --- Configuration: 330000-0-0 - --- Energy efficiency: 3773399795.481731 - --- Energy: 24.637735624906814 - --- Workload: 92968000000.0 + --- Checking value [1, 3, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0] + --- Retained configurations [[0, 0.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [1, 3, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [1, 3, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [1, 3, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [1, 3, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0]] + --- Answer : configuration is present, have it been processed? 18 + --- Checking value [1, 3, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0] + --- Retained configurations [[0, 0.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [1, 3, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [1, 3, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [1, 3, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [1, 3, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0]] + --- Answer : we add the configuration, it is not yet present + --- Checking value [1, 3, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0] + --- Retained configurations [[0, 0.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [1, 3, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [1, 3, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [1, 3, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [1, 3, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [1, 3, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0]] + --- Answer : configuration is present, have it been processed? -1 + --- Answer : the configuration 440000-2-2 is already present at positions [57, 58, 59] + --- Position: 57 -------------- ---- Comparing the median energy with the energy of that data point ---- The energy of the current configuration (24.637735624906814 mAh) it is NOT far from the median. ---- Median :24.637735624906814, the gap is : 10 ---- So No we don't romove this configuration '440000-0-0' - --- remove_aberrant_points: The value [1, 3, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0] is not an abberant point. ---- remove_aberrant_points: Printing all 0 removed points + --- Configuration: 440000-2-2 + --- Energy efficiency: 16509741573.01516 + --- Energy: 70.67041858464086 + --- Workload: 1166750000000.0 +-------------- + --- Position: 58 +-------------- + --- Configuration: 440000-2-2 + --- Energy efficiency: 16731809177.062698 + --- Energy: 69.63985178549414 + --- Workload: 1165200000000.0 +-------------- + --- Position: 59 +-------------- + --- Configuration: 440000-2-2 + --- Energy efficiency: 16504428138.069445 + --- Energy: 70.57015429696514 + --- Workload: 1164720000000.0 +-------------- +---------------------- Listing and computing the mean +--- Ordered by energy, Printing the list of the 3 duplicates of '440000-2-2' +--- Duplicate 0 in the list of duplicate, And at position 57 in the X datas point +-------------- + --- Configuration: 440000-2-2 + --- Energy efficiency: 16509741573.01516 + --- Energy: 70.67041858464086 + --- Workload: 1166750000000.0 +-------------- +--- Duplicate 1 in the list of duplicate, And at position 59 in the X datas point +-------------- + --- Configuration: 440000-2-2 + --- Energy efficiency: 16504428138.069445 + --- Energy: 70.57015429696514 + --- Workload: 1164720000000.0 +-------------- +--- Duplicate 2 in the list of duplicate, And at position 58 in the X datas point +-------------- + --- Configuration: 440000-2-2 + --- Energy efficiency: 16731809177.062698 + --- Energy: 69.63985178549414 + --- Workload: 1165200000000.0 +-------------- +-------------- +--- We append this mean as duplicate reprensentant in the X datas point +-------------- + --- Configuration: 440000-2-2 + --- Energy efficiency: 16581992962.715767 + --- Energy: 70.29347488903339 + --- Workload: 1165556666666.6667 +-------------- + --- Checking value [1, 3, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0] + --- Retained configurations [[0, 0.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [1, 3, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [1, 3, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [1, 3, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [1, 3, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [1, 3, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0]] + --- Answer : configuration is present, have it been processed? 19 final_X_user friendly : - ['100001-0-0', '100001-0-0', '100001-0-0', '100010-0-0', '100010-0-0', '100010-0-0', '100100-0-0', '100100-0-0', '100100-0-0', '101000-0-0', '101000-0-0', '101000-0-0', '110000-0-0', '110000-0-0', '110000-0-0', '200002-0-0', '200002-0-0', '200002-0-0', '200020-0-0', '200020-0-0', '200020-0-0', '200200-0-0', '200200-0-0', '200200-0-0', '202000-0-0', '202000-0-0', '202000-0-0', '220000-0-0', '220000-0-0', '220000-0-0', '300003-0-0', '300003-0-0', '300003-0-0', '300030-0-0', '300030-0-0', '300030-0-0', '300300-0-0', '300300-0-0', '300300-0-0', '303000-0-0', '303000-0-0', '303000-0-0', '330000-0-0', '330000-0-0', '330000-0-0', '400004-0-0', '400004-0-0', '400004-0-0', '400040-0-0', '400040-0-0', '400040-0-0', '400400-0-0', '400400-0-0', '400400-0-0', '404000-0-0', '404000-0-0', '404000-0-0', '440000-0-0', '440000-0-0', '440000-0-0'] + ['100001-2-2', '100010-2-2', '100100-2-2', '101000-2-2', '110000-2-2', '200002-2-2', '200020-2-2', '200200-2-2', '202000-2-2', '220000-2-2', '300003-2-2', '300030-2-2', '300300-2-2', '303000-2-2', '330000-2-2', '400004-2-2', '400040-2-2', '400400-2-2', '404000-2-2', '440000-2-2'] final_X : - [[0, 0.0, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0], [0, 0.0, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0], [0, 0.0, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0], [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0], [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0], [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0], [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0], [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0], [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0], [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0], [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0], [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0], [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0], [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0], [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0], [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0], [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0], [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0], [0, 1.0, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0], [0, 1.0, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0], [0, 1.0, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0], [0, 1.0, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0], [0, 1.0, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0], [0, 1.0, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0], [0, 1.0, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0], [0, 1.0, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0], [0, 1.0, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0], [0, 1.0, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0], [0, 1.0, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0], [0, 1.0, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0], [0, 2.0, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0], [0, 2.0, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0], [0, 2.0, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0], [0, 2.0, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0], [0, 2.0, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0], [0, 2.0, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0], [0, 2.0, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0], [0, 2.0, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0], [0, 2.0, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0], [0, 2.0, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0], [0, 2.0, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0], [0, 2.0, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0], [0, 2.0, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0], [0, 2.0, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0], [0, 2.0, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0], [1, 3, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0], [1, 3, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0], [1, 3, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0], [1, 3, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0], [1, 3, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0], [1, 3, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0], [1, 3, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0], [1, 3, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0], [1, 3, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0], [1, 3, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0], [1, 3, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0], [1, 3, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0], [1, 3, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0], [1, 3, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0], [1, 3, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0]] + [[0, 0.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [1, 3, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [1, 3, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [1, 3, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [1, 3, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [1, 3, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0]] final_y : - [3925232177.483298, 3912699841.144387, 3910282478.8062687, 3946501229.335133, 3938853242.267046, 3969482617.6356173, 3914798329.164073, 3977186856.1928773, 3858277741.981534, 3932131411.8317833, 3943824168.5432696, 3916945096.180587, 3819709702.062643, 3887057652.839107, 3856284007.604592, 7988815658.07869, 8007559135.824218, 8163998399.856314, 3913174484.5370913, 3792360668.6690335, 3951304127.927423, 3947700859.019707, 3979877738.155884, 4070782770.8190007, 3927683491.5535164, 3867649049.525246, 3861719546.4796567, 3901144986.0534062, 3847826170.604917, 3829378223.8577924, 8729278874.272196, 8655310898.767483, 8625894936.599672, 3950351976.361094, 3930323229.7824173, 3961149050.1164575, 3877938022.79452, 3854336899.8797445, 3984905179.181261, 3925740689.124521, 3940529528.3580203, 3882741215.2980003, 3883480064.155091, 3773399795.481731, 3779532320.67064, 8626490226.186573, 8487667419.239845, 8625597322.614592, 3874812555.9426064, 3803973630.8547907, 3912837628.97691, 4498182734.175393, 4069970940.4074855, 3923522695.617033, 3912393680.701727, 3915273481.8527074, 3860064926.29206, 3867469553.3459415, 3780346733.402388, 3911490786.4834523] + [16555159372.307528, 16464396514.63135, 16458763750.407305, 16418349715.758759, 16576218185.265085, 16969195424.694437, 16392671660.180513, 16417605866.555536, 16443917029.318907, 16521526839.478918, 15867399690.574339, 16397709825.282774, 16401961829.710451, 16590023444.840784, 16623229845.749601, 15959604535.712227, 16453121174.026064, 16485395766.242231, 16573387536.225906, 16581992962.715767] --- Actual line: ['X_0' 'X_1' 'X_2' 'X_3' 'X_4' 'X_5' 'X_6' 'X_7' 'X_8' 'X_9' 'X_10' 'X_11' 'y'] --- Actual line: [0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.92523218e+09] - --- Actual line: [0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.91269984e+09] - --- Actual line: [0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.91028248e+09] + 0.00000000e+00 2.00000000e+00 0.00000000e+00 2.00000000e+00 + 1.65551594e+10] --- Actual line: [0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.94650123e+09] - --- Actual line: [0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.93885324e+09] - --- Actual line: [0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.96948262e+09] + 0.00000000e+00 2.00000000e+00 0.00000000e+00 2.00000000e+00 + 1.64643965e+10] --- Actual line: [0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.91479833e+09] - --- Actual line: [0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 - 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.97718686e+09] - --- Actual line: [0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 - 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.85827774e+09] - --- Actual line: [0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 - 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.93213141e+09] + 0.00000000e+00 2.00000000e+00 0.00000000e+00 2.00000000e+00 + 1.64587638e+10] --- Actual line: [0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.94382417e+09] - --- Actual line: [0.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 1.0000000e+00 - 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 3.9169451e+09] - --- Actual line: [0.0000000e+00 0.0000000e+00 1.0000000e+00 1.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 3.8197097e+09] + 0.00000000e+00 2.00000000e+00 0.00000000e+00 2.00000000e+00 + 1.64183497e+10] --- Actual line: [0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.88705765e+09] - --- Actual line: [0.00000000e+00 0.00000000e+00 1.00000000e+00 1.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.85628401e+09] + 0.00000000e+00 2.00000000e+00 0.00000000e+00 2.00000000e+00 + 1.65762182e+10] --- Actual line: [0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 7.98881566e+09] - --- Actual line: [0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 8.00755914e+09] - --- Actual line: [0.0000000e+00 1.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 8.1639984e+09] - --- Actual line: [0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.91317448e+09] + 0.00000000e+00 2.00000000e+00 0.00000000e+00 2.00000000e+00 + 1.69691954e+10] --- Actual line: [0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.79236067e+09] - --- Actual line: [0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.95130413e+09] + 0.00000000e+00 2.00000000e+00 0.00000000e+00 2.00000000e+00 + 1.63926717e+10] --- Actual line: [0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.94770086e+09] - --- Actual line: [0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 - 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.97987774e+09] - --- Actual line: [0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 - 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 4.07078277e+09] - --- Actual line: [0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 - 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.92768349e+09] - --- Actual line: [0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 - 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.86764905e+09] - --- Actual line: [0.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 - 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.86171955e+09] + 0.00000000e+00 2.00000000e+00 0.00000000e+00 2.00000000e+00 + 1.64176059e+10] + --- Actual line: [0.0000000e+00 1.0000000e+00 1.0000000e+00 0.0000000e+00 1.0000000e+00 + 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 + 0.0000000e+00 2.0000000e+00 1.6443917e+10] --- Actual line: [0.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.90114499e+09] - --- Actual line: [0.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.84782617e+09] - --- Actual line: [0.00000000e+00 1.00000000e+00 1.00000000e+00 1.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.82937822e+09] + 0.00000000e+00 2.00000000e+00 0.00000000e+00 2.00000000e+00 + 1.65215268e+10] --- Actual line: [0.00000000e+00 2.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 8.72927887e+09] - --- Actual line: [0.0000000e+00 2.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 8.6553109e+09] - --- Actual line: [0.00000000e+00 2.00000000e+00 1.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 8.62589494e+09] - --- Actual line: [0.00000000e+00 2.00000000e+00 1.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.95035198e+09] - --- Actual line: [0.00000000e+00 2.00000000e+00 1.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.93032323e+09] + 0.00000000e+00 2.00000000e+00 0.00000000e+00 2.00000000e+00 + 1.58673997e+10] --- Actual line: [0.00000000e+00 2.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.96114905e+09] + 0.00000000e+00 2.00000000e+00 0.00000000e+00 2.00000000e+00 + 1.63977098e+10] --- Actual line: [0.00000000e+00 2.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.87793802e+09] - --- Actual line: [0.0000000e+00 2.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 - 1.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 3.8543369e+09] - --- Actual line: [0.00000000e+00 2.00000000e+00 1.00000000e+00 0.00000000e+00 - 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.98490518e+09] + 0.00000000e+00 2.00000000e+00 0.00000000e+00 2.00000000e+00 + 1.64019618e+10] --- Actual line: [0.00000000e+00 2.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.92574069e+09] - --- Actual line: [0.00000000e+00 2.00000000e+00 1.00000000e+00 0.00000000e+00 - 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.94052953e+09] - --- Actual line: [0.00000000e+00 2.00000000e+00 1.00000000e+00 0.00000000e+00 - 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.88274122e+09] - --- Actual line: [0.00000000e+00 2.00000000e+00 1.00000000e+00 1.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.88348006e+09] - --- Actual line: [0.0000000e+00 2.0000000e+00 1.0000000e+00 1.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 3.7733998e+09] + 0.00000000e+00 2.00000000e+00 0.00000000e+00 2.00000000e+00 + 1.65900234e+10] --- Actual line: [0.00000000e+00 2.00000000e+00 1.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.77953232e+09] + 0.00000000e+00 2.00000000e+00 0.00000000e+00 2.00000000e+00 + 1.66232298e+10] --- Actual line: [1.00000000e+00 3.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 8.62649023e+09] - --- Actual line: [1.00000000e+00 3.00000000e+00 1.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 8.48766742e+09] - --- Actual line: [1.00000000e+00 3.00000000e+00 1.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 8.62559732e+09] + 0.00000000e+00 2.00000000e+00 0.00000000e+00 2.00000000e+00 + 1.59596045e+10] --- Actual line: [1.00000000e+00 3.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.87481256e+09] - --- Actual line: [1.00000000e+00 3.00000000e+00 1.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.80397363e+09] - --- Actual line: [1.00000000e+00 3.00000000e+00 1.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.91283763e+09] + 0.00000000e+00 2.00000000e+00 0.00000000e+00 2.00000000e+00 + 1.64531212e+10] --- Actual line: [1.00000000e+00 3.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 4.49818273e+09] - --- Actual line: [1.00000000e+00 3.00000000e+00 1.00000000e+00 0.00000000e+00 - 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 4.06997094e+09] - --- Actual line: [1.0000000e+00 3.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 - 1.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 - 0.0000000e+00 0.0000000e+00 3.9235227e+09] + 0.00000000e+00 2.00000000e+00 0.00000000e+00 2.00000000e+00 + 1.64853958e+10] --- Actual line: [1.00000000e+00 3.00000000e+00 1.00000000e+00 0.00000000e+00 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.91239368e+09] - --- Actual line: [1.00000000e+00 3.00000000e+00 1.00000000e+00 0.00000000e+00 - 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.91527348e+09] - --- Actual line: [1.00000000e+00 3.00000000e+00 1.00000000e+00 0.00000000e+00 - 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.86006493e+09] - --- Actual line: [1.00000000e+00 3.00000000e+00 1.00000000e+00 1.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.86746955e+09] - --- Actual line: [1.00000000e+00 3.00000000e+00 1.00000000e+00 1.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.78034673e+09] - --- Actual line: [1.00000000e+00 3.00000000e+00 1.00000000e+00 1.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 - 3.91149079e+09] ---- Size of X after removing aberrants points from the dataset: 60 ---- Number of abberant points removed : 0 -*** Ratio energy by wokload : [3925232177.483298, 3912699841.144387, 3910282478.8062687, 3946501229.335133, 3938853242.267046, 3969482617.6356173, 3914798329.164073, 3977186856.1928773, 3858277741.981534, 3932131411.8317833, 3943824168.5432696, 3916945096.180587, 3819709702.062643, 3887057652.839107, 3856284007.604592, 7988815658.07869, 8007559135.824218, 8163998399.856314, 3913174484.5370913, 3792360668.6690335, 3951304127.927423, 3947700859.019707, 3979877738.155884, 4070782770.8190007, 3927683491.5535164, 3867649049.525246, 3861719546.4796567, 3901144986.0534062, 3847826170.604917, 3829378223.8577924, 8729278874.272196, 8655310898.767483, 8625894936.599672, 3950351976.361094, 3930323229.7824173, 3961149050.1164575, 3877938022.79452, 3854336899.8797445, 3984905179.181261, 3925740689.124521, 3940529528.3580203, 3882741215.2980003, 3883480064.155091, 3773399795.481731, 3779532320.67064, 8626490226.186573, 8487667419.239845, 8625597322.614592, 3874812555.9426064, 3803973630.8547907, 3912837628.97691, 4498182734.175393, 4069970940.4074855, 3923522695.617033, 3912393680.701727, 3915273481.8527074, 3860064926.29206, 3867469553.3459415, 3780346733.402388, 3911490786.4834523] + 0.00000000e+00 2.00000000e+00 0.00000000e+00 2.00000000e+00 + 1.65733875e+10] + --- Actual line: [1.0000000e+00 3.0000000e+00 1.0000000e+00 1.0000000e+00 0.0000000e+00 + 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 2.0000000e+00 + 0.0000000e+00 2.0000000e+00 1.6581993e+10] +--- Size of X after removing duplicates: 20 +--- Number of duplicates points removed : 40 +*** Ratio energy by wokload : [16555159372.307528, 16464396514.63135, 16458763750.407305, 16418349715.758759, 16576218185.265085, 16969195424.694437, 16392671660.180513, 16417605866.555536, 16443917029.318907, 16521526839.478918, 15867399690.574339, 16397709825.282774, 16401961829.710451, 16590023444.840784, 16623229845.749601, 15959604535.712227, 16453121174.026064, 16485395766.242231, 16573387536.225906, 16581992962.715767] ---> getting userfriendly values from X values ---> getting userfriendly values from X values -Train set Configurations : [[0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 1. 0. 0. 0. 0. 0.] - [0. 2. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.] - [1. 3. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0.] - [0. 2. 1. 0. 1. 0. 0. 0. 0. 0. 0. 0.]] -Train set energy by workload : [8.16399840e+09 3.78034673e+09 3.88348006e+09 3.92352270e+09 - 3.81970970e+09 3.85628401e+09 3.91239368e+09 8.00755914e+09 - 3.91028248e+09 3.86764905e+09 3.79236067e+09 3.86746955e+09 - 3.91479833e+09 3.88274122e+09 3.92768349e+09 3.96948262e+09 - 4.49818273e+09 3.95035198e+09 3.93885324e+09 3.98490518e+09 - 3.94650123e+09 3.92574069e+09 3.85433690e+09 3.95130413e+09 - 3.86171955e+09 3.87481256e+09 3.94770086e+09 4.06997094e+09 - 8.65531090e+09 3.93032323e+09 3.97718686e+09 3.91149079e+09 - 3.91694510e+09 3.91317448e+09 3.77339980e+09 3.97987774e+09 - 3.85827774e+09 8.62649023e+09 7.98881566e+09 3.94052953e+09] -Test set Configurations : [[0, 2.0, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0], [0, 0.0, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0], [1, 3, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0], [1, 3, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0], [0, 1.0, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0], [1, 3, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0], [0, 2.0, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0], [0, 1.0, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0], [1, 3, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0], [0, 2.0, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0], [0, 0.0, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0], [0, 2.0, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0], [0, 2.0, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0], [0, 1.0, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0], [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0], [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0], [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0], [1, 3, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0], [0, 1.0, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0], [1, 3, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0]] -Test set energy by workload : [3877938022.79452, 3925232177.483298, 8625597322.614592, 3915273481.8527074, 4070782770.8190007, 8487667419.239845, 3961149050.1164575, 3847826170.604917, 3803973630.8547907, 8625894936.599672, 3912699841.144387, 8729278874.272196, 3779532320.67064, 3901144986.0534062, 3932131411.8317833, 3943824168.5432696, 3887057652.839107, 3860064926.29206, 3829378223.8577924, 3912837628.97691] -Train set Configurations in user friendly mode : ['200002-0-0', '440000-0-0', '330000-0-0', '400400-0-0', '110000-0-0', '110000-0-0', '404000-0-0', '200002-0-0', '100001-0-0', '202000-0-0', '200020-0-0', '440000-0-0', '100100-0-0', '303000-0-0', '202000-0-0', '100010-0-0', '400400-0-0', '300030-0-0', '100010-0-0', '300300-0-0', '100010-0-0', '303000-0-0', '300300-0-0', '200020-0-0', '202000-0-0', '400040-0-0', '200200-0-0', '400400-0-0', '300003-0-0', '300030-0-0', '100100-0-0', '440000-0-0', '101000-0-0', '200020-0-0', '330000-0-0', '200200-0-0', '100100-0-0', '400004-0-0', '200002-0-0', '303000-0-0'] -Test set Configurations in user friendly mode : ['300300-0-0', '100001-0-0', '400004-0-0', '404000-0-0', '200200-0-0', '400004-0-0', '300030-0-0', '220000-0-0', '400040-0-0', '300003-0-0', '100001-0-0', '300003-0-0', '330000-0-0', '220000-0-0', '101000-0-0', '101000-0-0', '110000-0-0', '404000-0-0', '220000-0-0', '400040-0-0'] -Size of X_train: 40 -Size of X_test: 20 +Train set Configurations : [[0. 2. 1. 0. 0. 0. 0. 1. 0. 2. 0. 2.] + [0. 0. 1. 0. 0. 0. 1. 0. 0. 2. 0. 2.] + [1. 3. 1. 0. 0. 1. 0. 0. 0. 2. 0. 2.] + [0. 1. 1. 0. 0. 1. 0. 0. 0. 2. 0. 2.] + [1. 3. 1. 0. 0. 0. 1. 0. 0. 2. 0. 2.] + [0. 2. 1. 1. 0. 0. 0. 0. 0. 2. 0. 2.] + [0. 0. 1. 0. 0. 1. 0. 0. 0. 2. 0. 2.] + [0. 2. 1. 0. 0. 0. 1. 0. 0. 2. 0. 2.] + [0. 1. 1. 0. 0. 0. 1. 0. 0. 2. 0. 2.] + [1. 3. 1. 1. 0. 0. 0. 0. 0. 2. 0. 2.] + [0. 2. 1. 0. 1. 0. 0. 0. 0. 2. 0. 2.] + [1. 3. 1. 0. 0. 0. 0. 1. 0. 2. 0. 2.] + [0. 1. 1. 0. 1. 0. 0. 0. 0. 2. 0. 2.]] +Train set energy by workload : [1.58673997e+10 1.64643965e+10 1.64853958e+10 1.64176059e+10 + 1.64531212e+10 1.66232298e+10 1.64587638e+10 1.63977098e+10 + 1.63926717e+10 1.65819930e+10 1.65900234e+10 1.59596045e+10 + 1.64439170e+10] +Test set Configurations : [[0, 2.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [1, 3, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 1.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0]] +Test set energy by workload : [16401961829.710451, 16576218185.265085, 16573387536.225906, 16555159372.307528, 16521526839.478918, 16969195424.694437, 16418349715.758759] +Train set Configurations in user friendly mode : ['300003-2-2', '100010-2-2', '400400-2-2', '200200-2-2', '400040-2-2', '330000-2-2', '100100-2-2', '300030-2-2', '200020-2-2', '440000-2-2', '303000-2-2', '400004-2-2', '202000-2-2'] +Test set Configurations in user friendly mode : ['300300-2-2', '110000-2-2', '404000-2-2', '100001-2-2', '220000-2-2', '200002-2-2', '101000-2-2'] +Size of X_train: 13 +Size of X_test: 7 ***** Training the datas ***** - **** Predicted y test = [4.04151040e+09 5.57415928e+09 8.68852382e+09 3.91464095e+09 - 4.14066638e+09 8.68852382e+09 3.93013840e+09 4.09889812e+09 - 3.86839046e+09 8.46983386e+09 5.57415928e+09 8.46983386e+09 - 3.95279790e+09 4.09889812e+09 3.60439093e+09 3.60439093e+09 - 3.74697037e+09 3.91464095e+09 4.09889812e+09 3.86839046e+09] + **** Predicted y test = [1.64221421e+10 1.61958859e+10 1.64779476e+10 1.56275933e+10 + 1.67042720e+10 1.60595638e+10 1.59997787e+10] Start computin r squared, result = -column mean vector= [4841464250.873068, 4841464250.873068, 4841464250.873068, 4841464250.873068, 4841464250.873068, 4841464250.873068, 4841464250.873068, 4841464250.873068, 4841464250.873068, 4841464250.873068, 4841464250.873068, 4841464250.873068, 4841464250.873068, 4841464250.873068, 4841464250.873068, 4841464250.873068, 4841464250.873068, 4841464250.873068, 4841464250.873068, 4841464250.873068] - diff with mean vector [-9.63526228e+08 -9.16232073e+08 3.78413307e+09 -9.26190769e+08 - -7.70681480e+08 3.64620317e+09 -8.80315201e+08 -9.93638080e+08 - -1.03749062e+09 3.78443069e+09 -9.28764410e+08 3.88781462e+09 - -1.06193193e+09 -9.40319265e+08 -9.09332839e+08 -8.97640082e+08 - -9.54406598e+08 -9.81399325e+08 -1.01208603e+09 -9.28626622e+08] - diff with mean vector squared [9.28382792e+17 8.39481212e+17 1.43196631e+19 8.57829341e+17 - 5.93949944e+17 1.32947975e+19 7.74954853e+17 9.87316635e+17 - 1.07638679e+18 1.43219156e+19 8.62603329e+17 1.51151025e+19 - 1.12769942e+18 8.84200320e+17 8.26886212e+17 8.05757717e+17 - 9.10891954e+17 9.63144634e+17 1.02431813e+18 8.62347403e+17] - diff with predicted vector [-1.63572376e+08 -1.64892710e+09 -6.29264955e+07 6.32532517e+05 - -6.98836124e+07 -2.00856399e+08 3.10106520e+07 -2.51071949e+08 - -6.44168304e+07 1.56061072e+08 -1.66145944e+09 2.59445009e+08 - -1.73265575e+08 -1.97753134e+08 3.27740484e+08 3.39433241e+08 - 1.40087282e+08 -5.45760230e+07 -2.69519896e+08 4.44471677e+07] - diff with predicted vector squared [2.67559222e+16 2.71896058e+18 3.95974384e+15 4.00097385e+11 - 4.88371929e+15 4.03432930e+16 9.61660539e+14 6.30371236e+16 - 4.14952804e+15 2.43550581e+16 2.76044746e+18 6.73117129e+16 - 3.00209596e+16 3.91063018e+16 1.07413825e+17 1.15214925e+17 - 1.96244467e+16 2.97854229e+15 7.26409742e+16 1.97555072e+15] -End computing r squared, result = 0.9144810248408353 - Kernel ridge R2 score = 0.9144810248408353 +column mean vector= [16573685557.634441, 16573685557.634441, 16573685557.634441, 16573685557.634441, 16573685557.634441, 16573685557.634441, 16573685557.634441] + diff with mean vector [-1.71723728e+08 2.53262763e+06 -2.98021409e+05 -1.85261853e+07 + -5.21587182e+07 3.95509867e+08 -1.55335842e+08] + diff with mean vector squared [2.94890387e+16 6.41420272e+12 8.88167599e+10 3.43219543e+14 + 2.72053188e+15 1.56428055e+17 2.41292238e+16] + diff with predicted vector [-2.01802243e+07 3.80332240e+08 9.54398936e+07 9.27566068e+08 + -1.82745188e+08 9.09631586e+08 4.18570994e+08] + diff with predicted vector squared [4.07241452e+14 1.44652613e+17 9.10877329e+15 8.60378810e+17 + 3.33958036e+16 8.27429622e+17 1.75201677e+17] +End computing r squared, result = -8.621844617992203 + Kernel ridge R2 score = -8.621844617992203 printing plots -Size of X ---: 60 -Size of y ---: 60 -X ---: [[0, 0.0, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0], [0, 0.0, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0], [0, 0.0, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0], [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0], [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0], [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0], [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0], [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0], [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0], [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0], [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0], [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0], [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0], [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0], [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0], [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0], [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0], [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0], [0, 1.0, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0], [0, 1.0, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0], [0, 1.0, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0], [0, 1.0, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0], [0, 1.0, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0], [0, 1.0, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0], [0, 1.0, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0], [0, 1.0, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0], [0, 1.0, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0], [0, 1.0, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0], [0, 1.0, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0], [0, 1.0, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0], [0, 2.0, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0], [0, 2.0, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0], [0, 2.0, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0], [0, 2.0, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0], [0, 2.0, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0], [0, 2.0, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0], [0, 2.0, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0], [0, 2.0, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0], [0, 2.0, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0], [0, 2.0, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0], [0, 2.0, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0], [0, 2.0, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0], [0, 2.0, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0], [0, 2.0, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0], [0, 2.0, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0], [1, 3, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0], [1, 3, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0], [1, 3, 1, 0, 0, 0, 0, 1, 0, 0.0, 0, 0.0], [1, 3, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0], [1, 3, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0], [1, 3, 1, 0, 0, 0, 1, 0, 0, 0.0, 0, 0.0], [1, 3, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0], [1, 3, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0], [1, 3, 1, 0, 0, 1, 0, 0, 0, 0.0, 0, 0.0], [1, 3, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0], [1, 3, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0], [1, 3, 1, 0, 1, 0, 0, 0, 0, 0.0, 0, 0.0], [1, 3, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0], [1, 3, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0], [1, 3, 1, 1, 0, 0, 0, 0, 0, 0.0, 0, 0.0]] -y ---: [3925232177.483298, 3912699841.144387, 3910282478.8062687, 3946501229.335133, 3938853242.267046, 3969482617.6356173, 3914798329.164073, 3977186856.1928773, 3858277741.981534, 3932131411.8317833, 3943824168.5432696, 3916945096.180587, 3819709702.062643, 3887057652.839107, 3856284007.604592, 7988815658.07869, 8007559135.824218, 8163998399.856314, 3913174484.5370913, 3792360668.6690335, 3951304127.927423, 3947700859.019707, 3979877738.155884, 4070782770.8190007, 3927683491.5535164, 3867649049.525246, 3861719546.4796567, 3901144986.0534062, 3847826170.604917, 3829378223.8577924, 8729278874.272196, 8655310898.767483, 8625894936.599672, 3950351976.361094, 3930323229.7824173, 3961149050.1164575, 3877938022.79452, 3854336899.8797445, 3984905179.181261, 3925740689.124521, 3940529528.3580203, 3882741215.2980003, 3883480064.155091, 3773399795.481731, 3779532320.67064, 8626490226.186573, 8487667419.239845, 8625597322.614592, 3874812555.9426064, 3803973630.8547907, 3912837628.97691, 4498182734.175393, 4069970940.4074855, 3923522695.617033, 3912393680.701727, 3915273481.8527074, 3860064926.29206, 3867469553.3459415, 3780346733.402388, 3911490786.4834523] +Size of X ---: 20 +Size of y ---: 20 +X ---: [[0, 0.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 0.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 1.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [0, 2.0, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0], [1, 3, 1, 0, 0, 0, 0, 1, 0, 2.0, 0, 2.0], [1, 3, 1, 0, 0, 0, 1, 0, 0, 2.0, 0, 2.0], [1, 3, 1, 0, 0, 1, 0, 0, 0, 2.0, 0, 2.0], [1, 3, 1, 0, 1, 0, 0, 0, 0, 2.0, 0, 2.0], [1, 3, 1, 1, 0, 0, 0, 0, 0, 2.0, 0, 2.0]] +y ---: [16555159372.307528, 16464396514.63135, 16458763750.407305, 16418349715.758759, 16576218185.265085, 16969195424.694437, 16392671660.180513, 16417605866.555536, 16443917029.318907, 16521526839.478918, 15867399690.574339, 16397709825.282774, 16401961829.710451, 16590023444.840784, 16623229845.749601, 15959604535.712227, 16453121174.026064, 16485395766.242231, 16573387536.225906, 16581992962.715767] ---> getting userfriendly values from X values Start computin r squared, result = -column mean vector= [4841464250.873068, 4841464250.873068, 4841464250.873068, 4841464250.873068, 4841464250.873068, 4841464250.873068, 4841464250.873068, 4841464250.873068, 4841464250.873068, 4841464250.873068, 4841464250.873068, 4841464250.873068, 4841464250.873068, 4841464250.873068, 4841464250.873068, 4841464250.873068, 4841464250.873068, 4841464250.873068, 4841464250.873068, 4841464250.873068] - diff with mean vector [-9.63526228e+08 -9.16232073e+08 3.78413307e+09 -9.26190769e+08 - -7.70681480e+08 3.64620317e+09 -8.80315201e+08 -9.93638080e+08 - -1.03749062e+09 3.78443069e+09 -9.28764410e+08 3.88781462e+09 - -1.06193193e+09 -9.40319265e+08 -9.09332839e+08 -8.97640082e+08 - -9.54406598e+08 -9.81399325e+08 -1.01208603e+09 -9.28626622e+08] - diff with mean vector squared [9.28382792e+17 8.39481212e+17 1.43196631e+19 8.57829341e+17 - 5.93949944e+17 1.32947975e+19 7.74954853e+17 9.87316635e+17 - 1.07638679e+18 1.43219156e+19 8.62603329e+17 1.51151025e+19 - 1.12769942e+18 8.84200320e+17 8.26886212e+17 8.05757717e+17 - 9.10891954e+17 9.63144634e+17 1.02431813e+18 8.62347403e+17] - diff with predicted vector [-1.63572376e+08 -1.64892710e+09 -6.29264955e+07 6.32532517e+05 - -6.98836124e+07 -2.00856399e+08 3.10106520e+07 -2.51071949e+08 - -6.44168304e+07 1.56061072e+08 -1.66145944e+09 2.59445009e+08 - -1.73265575e+08 -1.97753134e+08 3.27740484e+08 3.39433241e+08 - 1.40087282e+08 -5.45760230e+07 -2.69519896e+08 4.44471677e+07] - diff with predicted vector squared [2.67559222e+16 2.71896058e+18 3.95974384e+15 4.00097385e+11 - 4.88371929e+15 4.03432930e+16 9.61660539e+14 6.30371236e+16 - 4.14952804e+15 2.43550581e+16 2.76044746e+18 6.73117129e+16 - 3.00209596e+16 3.91063018e+16 1.07413825e+17 1.15214925e+17 - 1.96244467e+16 2.97854229e+15 7.26409742e+16 1.97555072e+15] -End computing r squared, result = 0.9144810248408353 +column mean vector= [16573685557.634441, 16573685557.634441, 16573685557.634441, 16573685557.634441, 16573685557.634441, 16573685557.634441, 16573685557.634441] + diff with mean vector [-1.71723728e+08 2.53262763e+06 -2.98021409e+05 -1.85261853e+07 + -5.21587182e+07 3.95509867e+08 -1.55335842e+08] + diff with mean vector squared [2.94890387e+16 6.41420272e+12 8.88167599e+10 3.43219543e+14 + 2.72053188e+15 1.56428055e+17 2.41292238e+16] + diff with predicted vector [-2.01802243e+07 3.80332240e+08 9.54398936e+07 9.27566068e+08 + -1.82745188e+08 9.09631586e+08 4.18570994e+08] + diff with predicted vector squared [4.07241452e+14 1.44652613e+17 9.10877329e+15 8.60378810e+17 + 3.33958036e+16 8.27429622e+17 1.75201677e+17] +End computing r squared, result = -8.621844617992203 Start computin r squared, result = -column mean vector= [4841464250.873068, 4841464250.873068, 4841464250.873068, 4841464250.873068, 4841464250.873068, 4841464250.873068, 4841464250.873068, 4841464250.873068, 4841464250.873068, 4841464250.873068, 4841464250.873068, 4841464250.873068, 4841464250.873068, 4841464250.873068, 4841464250.873068, 4841464250.873068, 4841464250.873068, 4841464250.873068, 4841464250.873068, 4841464250.873068] - diff with mean vector [-9.63526228e+08 -9.16232073e+08 3.78413307e+09 -9.26190769e+08 - -7.70681480e+08 3.64620317e+09 -8.80315201e+08 -9.93638080e+08 - -1.03749062e+09 3.78443069e+09 -9.28764410e+08 3.88781462e+09 - -1.06193193e+09 -9.40319265e+08 -9.09332839e+08 -8.97640082e+08 - -9.54406598e+08 -9.81399325e+08 -1.01208603e+09 -9.28626622e+08] - diff with mean vector squared [9.28382792e+17 8.39481212e+17 1.43196631e+19 8.57829341e+17 - 5.93949944e+17 1.32947975e+19 7.74954853e+17 9.87316635e+17 - 1.07638679e+18 1.43219156e+19 8.62603329e+17 1.51151025e+19 - 1.12769942e+18 8.84200320e+17 8.26886212e+17 8.05757717e+17 - 9.10891954e+17 9.63144634e+17 1.02431813e+18 8.62347403e+17] - diff with predicted vector [-1.63572376e+08 -1.64892710e+09 -6.29264955e+07 6.32532517e+05 - -6.98836124e+07 -2.00856399e+08 3.10106520e+07 -2.51071949e+08 - -6.44168304e+07 1.56061072e+08 -1.66145944e+09 2.59445009e+08 - -1.73265575e+08 -1.97753134e+08 3.27740484e+08 3.39433241e+08 - 1.40087282e+08 -5.45760230e+07 -2.69519896e+08 4.44471677e+07] - diff with predicted vector squared [2.67559222e+16 2.71896058e+18 3.95974384e+15 4.00097385e+11 - 4.88371929e+15 4.03432930e+16 9.61660539e+14 6.30371236e+16 - 4.14952804e+15 2.43550581e+16 2.76044746e+18 6.73117129e+16 - 3.00209596e+16 3.91063018e+16 1.07413825e+17 1.15214925e+17 - 1.96244467e+16 2.97854229e+15 7.26409742e+16 1.97555072e+15] -End computing r squared, result = 0.9144810248408353 - R2 error = 0.9144810248408353 - --- Actual line: ['google_pixel_4a_5g', 'google_pixel_4a_5g_format', False, False, 1000, 0.01000000099, False, '----', 0, 1000000000.0, 1000000000.0, 1e-09, 1000, 0.1, 100, False, 0.9144810248408353, 10, 10, 'base_Y_F'] ---- Total execution time: 0.8334255218505859 seconds = 0.013890425364176432 mins +column mean vector= [16573685557.634441, 16573685557.634441, 16573685557.634441, 16573685557.634441, 16573685557.634441, 16573685557.634441, 16573685557.634441] + diff with mean vector [-1.71723728e+08 2.53262763e+06 -2.98021409e+05 -1.85261853e+07 + -5.21587182e+07 3.95509867e+08 -1.55335842e+08] + diff with mean vector squared [2.94890387e+16 6.41420272e+12 8.88167599e+10 3.43219543e+14 + 2.72053188e+15 1.56428055e+17 2.41292238e+16] + diff with predicted vector [-2.01802243e+07 3.80332240e+08 9.54398936e+07 9.27566068e+08 + -1.82745188e+08 9.09631586e+08 4.18570994e+08] + diff with predicted vector squared [4.07241452e+14 1.44652613e+17 9.10877329e+15 8.60378810e+17 + 3.33958036e+16 8.27429622e+17 1.75201677e+17] +End computing r squared, result = -8.621844617992203 + R2 error = -8.621844617992203 + --- Actual line: ['google_pixel_4a_5g', 'google_pixel_4a_5g_format', False, False, 1000, 0.01000000099, False, '----', 0, 1000000000.0, 1000000000.0, 1e-09, 1000, 0.1, 100, False, -8.621844617992203, 10, 10, 'base_Y_F'] +--- Total execution time: 0.614708423614502 seconds = 0.010245140393575032 mins diff --git a/kernel_ridge_linear_model/marginal_effect_exploration_automatic_experiments_0.89_base_Y/visual_help_f_X_0_over_X_0__X_1__X_2__X_3__X_4__X_5__X_6__X_7__X_8.png b/kernel_ridge_linear_model/marginal_effect_exploration_automatic_experiments_0.89_base_Y/visual_help_f_X_0_over_X_0__X_1__X_2__X_3__X_4__X_5__X_6__X_7__X_8.png new file mode 100755 index 0000000000000000000000000000000000000000..af44974bba2990804780afe16b514d80b6d4fd25 GIT binary patch literal 454464 zcmeFZg;$jC*EdQ^O9_Z{g9r$ygVLpfND0y{r7*N~NFxXe2q;~GL5g$;NDkddcegai z+2ikd-uHReIqUoZXPsH=s|)<X+;iR6wfCp?9j2=MfQ0ZGAqEBpiNZrUbqowVd<+cS zar{g0ojaMo<KQn$C-nz182MfFEAR!5rSxNI42+^EqB9d*_?p1}p^g&<#^qn=|1jV4 zUZ#U@-gTDOc79@K;p}SSXpZsN#M$1)&e_J=l=-E(qm#8AQkefXzu*mKD`#hWr+Wed zw*TvY;J0(M6c{ntt--*!FjkP0)^IaipTJ8PkfX!fPIp}~sKn(_r{Z~yyTbicL*w<8 z?AJ#uq3Rk^s^nMReoFJB(kNu<!;!{SQ<Wpjx-PHbA+R@bF+s~8kJ_{-h`-o!k7N5j z8r#MmGvBEsw9NfF^nbqkf+7|L$p7an8=IJn;{W&t+yDQK|4*%l+UsJE{pXqmhT`ve zwfNt&$X@#Kazl5Igd=dRpw3W&N80oTib$Y3tvz0#K*+p3>x)(aQhm<i<j;!wr82uI zr1~r;$AY^Tvw+8+Ws_iv;e3NCjf3^k!Piv0N{YK5L>w}%8&sCub6Jg5P!PRiH~H-v z0{Lxsv6FY~a4t&n&XlT*)l_ZGb-mJWw2FpdMK^>kI#j86pK9n7KT|v2T@e24@ZEVu zohRUkj){k-dk%Z8r`Y_FaBO)bqxhHCS9mfkIzO7LM|Ync?`dw1R}B6=KYdJ?{gmgk zzU@e%w0T#OPM%TSWR~jlp=x)h!3rl!;aIP(q`R4l@2_WbDkT`J!~R$2x`ZDV%H8xc zXvn~IBKz;@mgN2}N&wZ_0v|ZRE=)$R(D>Era6#%9qq^FUcWggilkh4(=Dag5*ZjEk z;S47RRtU2E_|~)5w{Ccp=O^<qDjJQ!Bnyjr@J1Zm9)}aIsLsKG>Ah~r_%p)A50)uv zE~^9YYzeqjQZ(ZA9m8<glv5@6td%=I-i~1&-khj<{92M%D_?`;+O4-@H=ce=SRMQt zKR)0rqf;-&_4wm6^}fiL8^1pr`5eoW(A`mrEc@|d_|6nrP^rV*{ZYhqjoh?PN*^*f zRZ?tf!$?l=`TJg+?L{f<ENzrcJvD2N5R~mLOf~zcu#eG;nDSz4Nr>in)E+?OW}K$^ z^=Yx!XUs^a)`9>$(vPtT&5;aWcjwzOH!GGHX@_*bz9^`9O2x0QeSW%C7rppryOH#f zsz~421^i}>{!fpyH~Cc4{5+;#;hExM?TAP2v)zxl$@BMYr-kXui{X5A8dEw0=U#br zU*ieoBoUKlMcT7@S$&RQ6%Px~`PCKF@}K7EW>>nbeR@9lg`=*?q4`m^;(Lv7YQBLq z=>VnIlBWk7PogCMmM3{mi(!%qm>PDAAL{p<^W3%hU81nR(*J<5Q11AF1pEB)^3GgK zwtmwRW~6-!OWpSL)vm)-w^@RijDaUA;v8%1KfJbTPxHMH$Z?SvipdQ5aE+EohC%aq zgO@Y(RZnu1pLeH-TSQ>QR<tmBDs`pXrzpzF#Xgr$&V{p|jbC?uka&OamU;V?7#V^* zlg8j(1p*2WofLS7WI?n0-m3#VF%<e$FE^a?^(#8wmVLMEUZvzxUfx^kPP~!_w|2dv zgUM_ARqO=Eqqu}vD}tI7f$DAl4x)Z~agUM|I5R%5W-j}ygXT39M2n*}p02`IBomYi z`+Mpx{_0t_Ma#n_jB#=p*Zbq{CbGx|C&c=>PP#wnGxFZojG66Lkvz|WH_d-BkehDg zxp7<Eep)J-Pw&n|iS-lV`z1c-Co8bEe{mCio`8kom@1r%6)BX=7|+5XsJSs>sp<m< z)kfW)PRy+^qRRKeCx&9I!f9#VExhh2+zqjKcepg68teW~AO2nZR^3Hy*ISkVdanDC z^q*l{f5RibnzlAvP*70!*F*SeL*qT;b4vd_;ZoZ%3-yd-32$8**hQpF67Y^^Cu;?c z^hhWI3Iy5}j@k1MrfR+61i<q31rbv9QC-*QF>8q&gd^2|ytgzw_(d~Z(^4hjru0(B zhbK%DUL#q72P-+LtMqprm%Wa6R}5=B+U`J=Nvd5+@qET`&vnzLS;^-e?6kmpG&{T_ zJ~Uxj*R@1SjXi!mAMAr${^6VF%~apN6<&4bDC!uB-(NJpKGT~KONV{n*wMI@9>N&C z*OF*gI~wuf%>Kr&W4rg)HRttjj{IfR5_xI%v30AQ(1rf>ue`F!FLVf`O)!?Kt8r@O z*)Ga#{Q=%(`ktoORQ*~8E}9XQ9Q3g{jtlK=6-@aG4jtVwTv7bGCApK|Eu(08G4@(N z-u~)yzCZk!kepm?wGo2__S#h=-}4{(VzZYXh&+g5ynT`RklnfPx&-XDd(O*bca|-W z3CKJYHZf*C2wVP<r!lzlr+J{(`?TYNf^kTI2P+WYW7cBp9oqvX#gfy_DiwdX#5=ap zGv$+Kub^<Q%r=Fu$%b71aD@-yU#JfSC0l{uXeNY--McqKo|D4`-z90h$SmX=CGvMr z<DBhy)&j;%Pr7XOSs>wwjt^F#p}LG;p?bEW<M<)rB>UnH_1fDjm<^<oXR5V(gdfF@ z=VNv!`m!IHUzKLUVOEUiXV?*(dG~<v-Q2xM(IG7(Z;t-dTh`GE1X8sY?XhjcB!_u= zWvk;APHWITRwt@l69=sDjiYFVn~9qk7%$h$QtePFNc@slBp~C|toU8!x)roRv09CF zlL^Nx)#t=IhJwC}PciNW4<?IP^>XmB#OeBX3vQoC22qQ@G_Ds=*n|8$WN>Gb)D`{6 zT7o-12(Nv9lJhav%8>M(%f@fbNDepV8x-Y?E~!s`ztAWM`J!8D^SPkrKv!4}j{nI` zsfTiMJXpxpnFiExku()uNBx^i;{z?7%wp1n<$j*W3-Jq_j97T`udnnPR66%woFAro z+086o=3jKEk4hAF+x0y^*>|MG=`UM<ql6d_m8(2$pjKf=SoKJyylip2Z8xd^Y3*73 zMYrTd>_YR!j)qW5?0w$bT;E8M7BdzELwIwyt^4GVp$#s>1~~=QyNbtkbSWt>B{kO; zslMHF-_2sYW%X9fJ3Pl&p!Uf0yzb&$rH^l%dH*@zs|7x_jKJEtNKvKN7q+tq`{1+@ z;cl@^RJ?!yD#SK8$2}RfbOUiP=dw3aJjQ<I@J@@@#NN-{v7K=y&j9{>_f1?CezV`3 zPo3+hEfk?vn$sEUrL8NaN=$gs@#$A!cMLNy|B?vG`D^69Kovvble+zTc&A9UIp9Y} z{mJyDDH6mubK}8cH<WMgMjsaL&_tzHCoUY!!VW8z>8EK@nAXX&c)ARO-*lenGG4i% zty*R~_VmCPHOW0z>s_S~HdN>9YfU~gZd7}^DLTrCe|hdGNbF=W(XOKm^I#;1`r6^7 zXF<s)=|@-sFZGvNCdn=%l4*r4^tBN-;dg9*FDHw-ezeP+u|OQ?M1){$7Mr6?H;C#Z zzmB-R-K=e6P>^80=~o<wurs7(;(J<+{AKE0=#{`YM1?rE@jI%=V~X7fp+h0@`{okp z2p6|%dpDPkLh1fk)l4sZe3Acdh(y_^G;FvSN7(1gO-F)0kxXuDC@*pRW?6M)Q0t-b z`W*r)W@kI6Sjwe8JM~^0Zkti!lP$Nq1L}`9hm`A?%Xdc1qS|)o-9vU?c~5*@aL9GU z)5dd!O^T%7>M<QBEK_mYSUVc=zHDA?Gg`dsi*Ws#M9y}<)o!UX(Xx4))ZJ&;!1Y7A zRcmG<va*d>UN*c_4_VPfjC%+@8YPscUDS{jxVYqnW%IW?Rnq7H5sMwm^0T%Fju6op zt^1#|z3xYMiMaZ_>}A8<*Vl4$dNK%HN=f{JMQM(Y=AyDCnkC*W+-GDKNLos-KM+N2 zRXkFE&zob9DO0{tI_94uD{A6ts{7rdQ;26KNEC^+OS9DPwv2x&cAyi>5xVA{uBVUX zATr#zkG(27z&7&IZTa#|2Bq%vqLwq4wV^f#8W-vVN*v9dG2g$(4{Af8X>UJ?s@Z9# z+Z8Qv;<A^Jv(U?)O-NF;XLLK=C`(MYvLcCaXHk6w$MTxse~u;p{Q8roa)Kx#c`*{g z^6g)^O#B~re4RfZ4e8mnxh@~zAx?UOuJrYGvSUe>?<`h-J_Rh$R^s4<W1zxf<^Pi! zizVTcxq#_JHS(Dmt-W+8KS6H|OC?jI{B7jH-Im5b4)x)QSP24^+%i%m{jyrR%H`x? z&Nwm-{Yy<WMzLub8xp;x_9qMRM$blMv>rYzJEn*@y(Esbn)!s`e>Y0vBzJsZt2Z-b z{xeAf7Lqmnl+|_ko?)KEIg;|Q7$@MYQEan%Pq_j!fKKHqa-#AFEt|a=CPGhDdE3|P z@6jCTo~=!SMHXfQ{HBM<k+f|8WW09n#Q>pj2esf0SGNZG*^f(x+j`@w4J0Ug1naiO zIhB?^OZ_Ja?~{jQr0#(W&SkmyTALVCqS%3MudgjIO;qUk91yIp;pZEB+$q?`j3xbM zluLK7Rp5-;J=oo3f;EV4IicBetHx42gQYwyQ3Ltr+U?g=2|K1Jl6FxfH`{cGi;Tob zVvv=%zd6(G=dr}1GoSK=Z~8qAFW1p7LmHg-JrZcU<q$w=J>`2*L(6+I5=0j}@)A0) z?~Xs6N5bXi2V`W&QM)ARpZ3O`y4xJ*ni=|fUlX^eE>&WtY_{A2+{?9ad4b*>V{LJq zraJQL^kr)4tYbe6Y~;MjT?ZwZYn4P!GHDb1T*xo8oJ`1@vkADR=G|PWUaXDOkpcJv z)8$tQBZW7O->1&89k6xKw777MUy;8TH@I8%xH_&Wyi+pPb-i(<yD-0NK~|^!&C7_8 z6XFFt^XpedJ0D^Nij=b6eB)C8$CkFqf$BKYfqee^)aabI{+`%X93(IZ4g=X>f9B~o z2&ht6dyVe*zdp@-c316ha>IMkLd@$#E#gXJqaID&60bJ=z3KNF5AW33Jj#2-U-4@% zxGX4*!zVn1)1JQZWz-eM$e*`VnaU@8FU}qNCrI2wZJ91Jo-{Z#2}mwc`kg(PWLAA; zCelvQ&dDew#mM&7|AcWR;Zo@vl0P_<@m}`Dd|6}<e-+OKocCX%Z%ht1W&n7L<Z&9Y z+YyaeBNo9M+hUG(iqGQKLPFOTF`U&O8g=rE_fR|Kj6;20D5Q~Wc`S7vVo2I^jz+#5 zq~zsqy5Z1fVal9NzxPhV9HtfNnm!}9|0d;Lf2%0jrlPRLD@kB>oT9}%iPTh5YSO@a ze~^YT65o}6S1)R&+|OI!YOKpQB1WOFx<9_qSJilAh7u{^wLBdVMII#edFM;P$<_T& zLk+HxUfwhvnCz*4d@W}I75}L6l)y-AXG5t)w9{TKB+<5u>)2L`0-C0LZQ|+uJN#E1 z8pqC&boxmdO|OL~`0GwBgpkIf*q6g;1mbq8b$Lb?B;2;saOjc|6qt4OB;EEC!W99U z<x(x36!Y1XNDmX8^(V(}*Jv8M{K%&Xti{@pRc^2$e%9PD9LhJ~t!sRY$u-_1b8ojp zMk0g=fKKy1p&`2*O{Ndrcrla6ox(Hx<r#+iFNVGePTiMHBc1C^y4#<HgJoa-A;Q+8 zDs%VACdS+d28(W;DML~oIol|g|3s@SuSr%F>H}pQ!PZ5Cn?ud9Ss9J)kBXU3JjiMI zlMLw*<bNhlL|(Eg#Y;f6)!J}YxN*Y<&-G_7!*WZdp~p&gpG<27Ut!&hwYR0#cW8Qv z_C9I)W?q(s1pbfl>UqYu<=mYb8VSq8tov;lr#ZjxEnY{`n^tyt*W3Bs<UjTc5lpf- z>vuOJ=Ob1NeixbeUHK*B!xmZ0a_f~qq`iYM<pf=@|6GKy_QK&&XyUNjNd374KTfQm z(U^Gplr7e#`HtzD;&|@MMFM{VZHbb}LK_J#4VuhN+snD%YvS%k^WSIt98;Z^_$VU8 zOB!YFtP*Nni6Tbsnu(1szm#Dn9P4=bV>xFWbEy6jzU|tTl95tYSQ%X6o{yLNNe(9w zo@PvZLk+l!H6t4f`xunE4`)POd3ma<F0bGl;sl)I%pH-W$vH~AI(u-fJ&dvxb9EBx z%0w2<^x2iu46PT>dHIj01Ah|fzOM94u_tulH|_3E>LFy3=2`Lz*l_jfHi-VBUjcY| zcB1)e%du)04bF#c!-tZrcaa%?Wv}ga@YF5^DZjgfPma-i)Wyg)F5@D&s+qrDm7ct$ zT_49A?LkaxALOZul8_4~jYJXPo=SXL85|U=L^Qh^*88%uW(+W!X~^G)oqb(wx0P+t z7ZXkL+7l54mB)*TgOV3#PBWA)JGqWaU3qagbXe#3^vhMzWN3eV^oe=vTj{>(-Um## zFT%$G8fRZ-6wBSLIh?$@7g^b=35r3*O}m^BCZCZrf$85b3N-b~khf(OJ3k0Nh!a@F z8qbpZj(W3Svp=M#InadI^ndsp7~23;?;PDSWFC+X4r?D4(t`3?Ld_!6rmJfXb8iss zhcCtXtJZ}yYdl;&L<JpprHJbRCsJH!eJ9&@hNP^MfJ;6;MPn1AuXa<lyNBPqC1UD6 zhfRr*S}gaZuc8%&+s_A7(ahnRh<)0;9cUPXc6H|#&4lv?@IF})x@aM%#$#U{=!+(r z%w!$&xKg+4M=^>Ij1-v-0tnXxs@H*V7~>lMdwytioG9t*bG(L&(g0L=>^o8ElC3Yl z`YVib7ok^bvpdY=d9Y4X>)Ig1a(=Wk$H`I3<Z~o_ettOh1y)3e;j4T&b#YDd!jH#^ zcb>!5tODY^$)k86aD(!|LA&Z@-tTJn@0Cy<+3jpn7)4(yO*r>Iem+`kz6uhOQ2v5M z*RS`U_uzM?cdTtzZABJ&t2Oi2{OKba8(zfpNxl8zsY1ZP#u%!Ig`a|z$-cVD4ruI+ zMke30qBD!0H0kSR%?a^xrQ>WhwqvEwC#&68Ti>xoUjk^P4y5_XLi>ARp1()p5{4jz ze9`%Cu?kmSXP<-@8}%Z;;{JPn1KnUi1a&qBVU@ifxB#}snJebCj2#UqFo?d?00lv7 z*vPjAjeG~-X7HL599KCmC<;HFb_+LSh%8Xf{aQ#;cQi{xd+=m4>HeE**&c_Rd1zXm z;<3sTbFIv~VFNUT7;_?*>L8gQ!nP^sW1qtXYPJ6|h1s|0*)ut92$>}N7o9q$h`G<( ziM&fuF}^_dWrfiaO1U>2wCs+GwdAN}-gi_E^djYi6BjFBBr#f>`(mykB?mLoQXBb= zXtm@G9pa;%|DNY&w8p}9{<BzKsnK1%d{%L!>8a~-Pdzd2ufyt_5~}&r{VI~0mR(8j zE*>=K<SVC$@u1##5Q6&g;FwO4egA5tiw{Z@WHilyOC<9bJ3;5ymL|3DS3OQTi{pg@ z7yBAhhLu&3O31Q{e(e$#GLqq*^Ft~gbvY2JM4It1$;PvSVcA-Z^sVlhRNK>htT&$Y zBa%O?rn#YQZ!$@Z{5vhm)p7ds6}H7gg|sxeFbW!frh2iX>44`;UCGZue-w&Hq(sY3 zq+;8C#1F96c0d(v*2TlYsjpzfxB8}CBm;!qNT?b#%45crxGCFNno<U2xxQl?2PX#x z;<EjdM&#H4d$btoC20{G-&m$t#5nt3kSo}=!|87MRZD+xoeFGz%w6cdR5o6(XIGQm z9K}>%2;KDRs|TUZsrXH_(C#|3R3wh&G(W4$BfpHEGgBM{4*_wVFQDA*c5g%#qvl;G zr;6P@fPkWmxW<p1;)bg>D<1(os5Cp#X2J=!e?o4P!b-N*)ek?`zH8>|^!k<+RfOj~ zZR#6r?XjLZWC^8X!}*z~ZsF6;@ToghpUp;--U+oBHLDR{%ou08aB#YJh2GAg|8HiL zMDz@tEd^slev4jR%L95X*NxxVwdV(Vw9UJwwVQK!skXCPg}dQW0;S2{&puJVn|Hs7 zPcdUcEQaxlt_fIue6<yvw+P3mxm?lQX_xAKXqTi8VmrSmcaNto{#vSI&laoTP_DX# z`$<L~i%j|ek=`|anAN~wSMS}i?^OMxMZt1g;)+ec!!EAs$m~{EoQMhcNDP+1>naXy zcwAy`{(CqB<RVO^^)Kq|CmqIY%M^YBw_2zL31C4~(j0e<v902fY5dpn?I-yd$CL^c zSamI(AcHo$xm{xI919#MG?8^_VQ_tjL0o@ZEbW%<?_1rDtGJjZV!u>Ntkihww2@U? zM|@iE2F%jisY+=X`+k;6^-#BT9m#CdpOUm+kIXatKX>T%uRPJ7S6s>t{iG^SJiSxg z7ion*`PTDqZa*uJ@fPxJj-XB1OA&R=_p(bjmzJsTRMZb0qq}|-PN#oxNt3;h5wzKT zeLUc2?G10N^>NrjF|8*2=^n$KcyIDB!WPSVB|{W;86KjjN9YpYNBhjHh*XE~d_@BV zMn>(E<qmW6pWZ&nIt`5X$0cevvYZ}on>>?VV=9^CdGaZu<VNJ5&xfD}p{B$=4_b}5 zvS#kr(Zvy{WQA0|q9f?Q&O;P3)w@o4bG`Dl#Asby0Y_l^L(WmTo+{_SZbeRjdA(04 zU7sOJ(7KNuKG!=&JGQnE<Cbw%1WgU|+ko9gvB}v*eq9PV!nGLy7sit9iF`~);rGa1 znez&kD(F%wq=W=)yz-`Qkt|tk6s#{LRw4#JB93lC<P&nNv@`3{FY{FUMp+ha$@<8$ z5z;E>71oyPV)TJ=(^j@2Qr7ISH;U*tpSryKVDo}mAorrs2INNsy3(d@--~0NQd{y^ zKuF-1{DaFfckiRrN~~%Z;`Fl2sr-Yw;?C-g6IsYgkQ4WK_S{-8p~B-n8>60ZUv23| z6W#yp6Vg9tpde8^Q?#mY*OW=7xlcGoSo3Py<jNniS0NbWUiWK4Lbw~G4Mac}w*C=? zSH3NkK%#%jr{%LIn8bF8SIdv__QB=^Z;j0#kgCz-R=s(akaXo1a$Gy#r3dS-_E+_~ z1#slJvrYZpf-R9pNOk?8t1!MUv&iCKjjvB1H_MV?u2UWkfyrTJVD<Yc=O!K1CYPU} z-A@v_0{2YO;)f<5fzd}&xj8hxu`9XSh$|k)WDu8rTT9>nZ35R~2!C7kP~)-OtrYy) zlhv=;P5q<aEf?-%RNi)(>;VLP)==8miG5fq8?Io(R%IKbSV$M{V<#fR?#>wY`^O8E zk>?({dw`eIR9cZi*l6{h-X;d0fc+lc9NW!xuLj0`OvzKZ!ZVq#0^?#%Q^aNVPZ-xi z=<b)R1;j<Tt^Uo9Hxx2E3gD{my-u5VHOXF>3}M`xoKF|mR(grBd67r=Lj_Bxfgw5Z zFA_bkkaI#ze4OALi8<xuo9}au(##Fje-<;B2haHpJC5)-t>3FW)WLC>7`xp!XDhRa z{VB}b3>0Ec4v`X8{c5+OSn+W;x%eUnYwt++6LE=*DytIJMr>Mb<ycajoFu3VW4{WF z7idm#OOvb4I7<WXO>#a<e&)_#=b-Ogc5nCI<O!c^`Dg?qmTIY*k?{%jCv2aCFyrGO zGv-f}>u#s*yaf+Y&h(aosbQ2{iiQVUQ&SN$q`FG!x8I(+5djS(^r&t+nR87yW~vVm zEX}s%9=Wt5o+{<TVm14I3eF9`XcGt1__jUPYA69EXR8O)P)*$fyU}9#TGG<I-Z|{j z3D_msKWKJIP-`yqM0ZHORiy%hyRPN%%Df?fy42k8W~*5V{R5iynGr|I)VWVn)sK~O z1%gTFI2R~MlV`?PCtRoAZ~4C`&=0twTk^1!L6<orn*nRtum(5qI(kpyAOqg>j$Nmc zR(7t4Lhd~RKKtsC{&zV-bBcQDk}NqQN4n`l(|DfoyR4u`D>nVpqjlY$Q>n1dB}*a8 zua+Q^9bSdenU~Yf*oX^RbX?u5vnp4`UGjXk-4zekQa>?n8Wj`Lh8T4I@B0+~QSTaJ zmb4}GpH<zBr|YR<;O}s7!bg0yL8!fxVVt!#5j$TCPGr+|<-)nu(?_7PFl#{9HKaW4 zns_t_=H2ny<kQRtQE_$UYN@gI{gW>k)~lG#zZqq@Zw9*J;#QGA*DD^OQ)m?xQ?RWn z#IeC%$FtJ$AHpG1s0iRKs8&zOx<9OPz<Es$dJ9TmJ*RwU(*>Jqg7<f#q+2nAeGDZc zOLcNwI$L%7mPjO#70F_CdQ{xKk<_HTk{i{J@V1hPa8Z#MJV>{DRZ9(}(moX^-d)C5 z-qla8ykh<qwI`mTtwJAT=(Qu?&2>EIm=yMP%&yKLj%wkT0sqa2L~B2>pO5Y5Uwz-l zMJiR5l@0Guw?wtYa3!Yu{c6P%8~3AYvU)ssIiqTrl+<{7krVlCuBK?`?&N((uU|V< z(k#v|f~AU2-PT|+g1oUX@yCC<DsKVuh|iymo^x9plsCxw2NKJVH=1g@yWFdrym~5o zRzQu4D-MV=ghjx1<_KeEiTqx^gDkUVKb6ZpYw*;si7d0a8*s>;k$o+Wmh7ht5puxb zU8zP((d8|XMrXcxK3!|{nW%0l4(cy3lGLeFPQIs*)=eUPt6G?bV%7_5fxzV^)+J=C zQS4_`)=oUG!@m)ZfhSjOyeVz;#_(E`%!ykpajs4HZ@9ios$$oyczvavN_TOVp7{#S zdonT^)O{N|gtO-{TK>79oGqtK-D@~%_z?)4BVe#pe`baQI`q%Alk3`}5m}6~6%D)h zrlu~79L##)k99Dv2}&kyWdsREHolYcnR9z(>u*+5g>pv3^3pGz(|<=>yIHx4@la9a zwTqt-<P-1XF?kuQV?iy;$>jgjp{k@t6S$j*c0zKAq{P7t1ax9&kRca#wV(E;v0ns@ zOFh?|*q<I*A?0+Lpl2sTEB!exD}C7<-t(>RPC)h>04t~uC{y&59dxOP&->qWzB@xN zcY*K!aq1S&0lzj2JfPf6{%<aan-iVd_3^&j)Ad4+bMP45rW;No7(|~A@vP43JTRF5 zD41bVd-d=&Z~jf5ncFrasuE8J<bTX73<Tx<v$7=AXbw)mof*O<ywdYktKg2=rS;!G z9yND@kK`3~=D1h&cpODRyi3|&1zyiSup<HDGUUYX2y(J7N#!QvaBZuWsor;n@b>(` zyKD1G8mk7*RQ&hqR<i44FF1SAf1v#@D}4}JL6Z@cR0)IHu`;_<FPbSa*WY!%bvGy% zg`c&Oor7h!7H{aG0N&z{qTP9TC-pmpDc+|C?~je|-eg={n$H=Z@wBXHuCzqOJsxU` z!>&911)i}$f1?+meV$`;lhj6MQigla)Jr5h55DE=eE-C+Q=BE?byTQ8GE(7`)0He* zh8+CzUSY=)NSsjWwcF2^hYdX+#|Z=dt8|!awurEjJlhVqvDFYn^jOipbbR3RlLx!B zEh$NNomN5KU&Y3|oKTbj?DXLQ*O>)y2+rHrBEz-$>ErD?62#n#&uTU+*PKyte4X08 zEtIk3lB)TFe*xFP{*ZZW`74xs*8phipIo&}_NkNowHyH;fmi$MU$(gIuMH1_`|^6T zKPRdyULcj<sMhP7H={Z2almoL`e2^kVFNf}$R-3+^}$jO7*h==Y2)eDl0YjeeJ}pP zl_%geH+dw9x%XuS2hYKBn|G-CP0g_-i8#o#Uy=~19Wi?y161P24MUs1CXzpk(E`Du z_n@X$lgK0<$`UM&b)wC=jY5;gXY_g(qGfl7@T|Edfp?dtAna1I%<dL4@YkI=io2|8 z-1V`UsMM?tw@ax?SFYb7Mn$@(N6cymtgxuSny}5yl>0Q2AX*)29>w#kM~!=|<q1s! z#=kzN?bFUMln!j#;^7*&qdKd2>vRVr%dV-~Kc2tuAZ=MKoAh|JySCh$xjV5w`hB4a zplDlRka<hx)<{t!s4_?4b2lSbMEFmG=A6N&b^$YYKH;X<k$o}{d;>T%+NYH5ciZWA z$J#a<kJfIvZtAz;DUpu3w8!#9UjTc4e?mIeD0BStRztE%`QFsMm+J`w^5An0CEs(2 zJ|`I?>zDQk8e?K@!$aI)E9G1DnI~x{Kftyjij~BF$-fIOTB}!~p@`*GFx3aV!8eZC zKm0x=?}#R)&w<p@L~`Uh395)j6mJI3U5eZLoRcEN18!1)cgsrER&C6V(|l{XsO#o8 zF6AU{rdTfenB*nGgR3-~<zXiUpr}}I>w0w&%}mz^&<s_<fhxWsvej6)C)Pz28I~)c zYL~Wo-@UnLKO>yK(q11|p9o?tN(XeYU(vyhJ~d9YkU9G24S@ve%C;4bi`KbwZ>KzL zwkB(ew@mIPtETLD7C7aiO`Pu?L8eg?Kw}3W8xy*7yqp=;q1|g=ZQGOfiuQG|b$Pct zy3(=!C&W@nv+@oH9~04J-%m`lQ*PDrhFV{HbFyYEg1r2Q@t$)ozhQNGge$PtHQ2|f zP70+df>+q%RzKfxjJq`k<qUV4{}e)i%?Qqt7E*QQlM1X9N18FNo{y(&Jptmry`X-P zsr(1unTDW+Pn>aWos+-nNjU55(^qS?n>vYbWF7jkFe%67WPDiblBBN@A<hMj#_5Tg zyYKAiQVW!0hMV(f<tKGTbA<D2eu*9b<}#&3q@|p6lYgjwEx;DvaEu<oW#3P>7Pys! zib{;e_nZDiR{I?>PQlvEH;=m*KzEb7>WB~7F@2w@y%XqcM*?QK;7GbG9)Vk?n2Bh) zUA}*+V~C66rDF_)g~Rtxuq|njswbmdHzmiV8i7C&_m>uSByb{sX_vnWa<K33B?6D; z6in-$tfTK<$Bq>&K?}c%jnBt1AG*zkam{Pn|2=buSO92gTw^$6c!)#$%oEsLx2Bo{ zH^R&xe2|f9MM2_%9aC>yyZKhphC{&ErQCW(6$)V~{Bq0?I+Ky%ZRrovwH0<abN5*e zbZ*#f{Qj{IHA?I-Nb>KItbf+k0;}GPlQyo@0SIuszY#DI^6h9|w$SW|&aT?QM9)O> z*RIK5<el6N;yZx>bHs7Io!vXVGNbig?;g}2jdIq<H4!20&8~?|nkJ%^$0Gl+cd-c3 z{9(M7M}_-!PKk4iJKl#AT+(D-OZq<ap7xE`S_r)?qh1iaTT(6$dqa015;;>Q^3=Gt zoOV;<DFi9x{IBDSv2Lw*+7`^+FNfu{$IAuw?5Xo|{A~+1^R#6u1`Z*aUp+Q`t3VY~ zT9?$h-xl9EMvI6@zDH3#Qxcs#){;JcT3T1b9r@Aw$*aNB7|jk#0$2<QTOhMNRxAPK z*1%uHjSSo6>Mp_3^`kd?`t@7Kfm(m{M!JqVIpXzM_hkO2GfMm14Un!s>cm6Li~49~ zJtY4iu*!~8M}Ebb@Fjn-X%is<eFlAIM8=sfXdi;juT)Qyr~aYjgYubuhvC~sUOPcq zc9YekSvX$1ZCufj)2Vckq$4>3pn8rT7IhZZx)s)Y=PxdmhnepZlF8_I6V(qb88Q{j zrT2qyn7dVTXvm|IAka>OW!U9(2c1v3LE6svDSYnU^!Q@w7&2zpf3FrTw(NG^jig!^ z!SU(lBipW8`IOk9I$bX>#=hvq-9Ye4T8Xr7kI3C(ulw9#iOc_cE9D_JiHNeX*8mel z3wR7Jol$B!ptD7f%u#XgT{F{9s|GGjSfDdawo|p@^PYC0>WLwY9uF(`b!)vU6ci+u zO^I3vs?Bm-w<bB?&o<PCP;50S+Aek_^BT;ii)vI8z2(kxI~cVbEV1sNpYZyi6#uI2 zGw6Yi-`qwA`KEy!@GXhD88Kyh@#N{x93?~WZy(g>53zob4pKl&xkZ`XX%YRwW8UD- z5=rV-x0Y>E`B#Y$@?#+Wy@}q8fZ}MPjy<7TW;3c@iB|wNj{*m1aUYH@gCv)sf!}>N zea;E_v}g8j`;zJd@V*Xy)%pr0Fd=q6fG!DC;dibSYA3gWENj+!xeumEW5>wE-kFxp z1d#s)q=w-v_EgCGJd(2h>4yng+7g73e%2noQLl~F$ltzfTzyI|{iqBARJqV%Ki1c4 zV397PskFai8_CufBh-A4)z3MmICz)~t0|tFCiZAbja$mh&YI!O_u~iiukbx6aa=Sh z<tA^Q@|BG{h9Ad;0zZH8cZmey013qx!Q4FA&D4SA73UD$`wDjZ!>=0<F8W{>YIX7V z9Gz3K;4TGF^#u!;FoA{DS393ukRAlcWD$o3Vs~B$?j17$b2_R2$DCe#=93ED{Lv1! z`R)QL2OV<*vSv}s!YV~$nqKl^m|ycHPZD)jGX_ih6NoZuLQ-b{WN*#Ijt`v(xj?5} zXaNc7BRweT=j-YT(KIM3j$lxtzy4!d?sFSzu=-I~;q$@r-!g;pyy!cr7|Wf0UGvMc zV8FonJtWS#)OTS`wV?S5$;$mL)K@bdDKrWAUE^6syE~Mt#<nL3Kl~>E6K>)Eeq}hb zXC8yq{y$zT7}$aTzI3jK-=_&^SN)f$GU#+h=oIPx@ltBy6~)f&&2e;WikKr+*s?1Z zazdYh>n6ZIXy^Zn9nS`1%Ansy@s97=PRQ!-A78H<)mFEsh*woEXM}4&SY{9`0@>OC zZXOonJKiVGE-1dT)=ndwZ)8%QkVzZ>0@bO#6L2_7Oe-XpXHYeiC3ji+mJ(a-r27&B zq$2qTGaryb=nph@fw85-DPIInZ;J0<cXZ5kA4J%XvD*?S%WQ*L3Y6|#&q{4Z2LRK5 zL;LVQe9k?D?@Ix0(acd!9srrzR{iWQz|(8cLccuC``8Wuwf!Aih|PDd6gSp&(a`8V zsObE$yz_S8d!W;h3k>=M=11EztLU7o?7K$KMAiJ#e~DR(u~OUTs{@}`q2k}-Q4Cgl zIq9|cIEG>aD5EB%Ry5EdM};tY|M3Kg(wZmW6%Ck0iE~apC?+)<k2mts83e4m0R6di z6e5e9r>}==->KuELXIA)EIbE#A|zhW4JXL5`L$;SdVN_H`MvNUO-4@65#B9vsx$%l zAqr-X?Rvb0MJO>jgRq4%VVh<CF0(5@=SG{ACD3+_`|iBju)fn9ut&15t7nCdKWpw> zTFb9e<}<9;MqX)Yfu@<3U%7hyHVC9TTjf%3P0x;YuGi)q!dZ{UXw6cHQF^Too_5(6 z?V=2?ko_O_PPG7>zPRr#K8KJn=k03C6!-gBIA{+E;Gw$b;ijft^-l0_NW{(aVR;S# zr2Pc@H;bB2Hw#(4b3f+V_)wmnCRCsSU<lb>w;?)Z-uY4U90Dv9XE#*Sq+Sy&GQWNG z^LnYce*h3KRoHnNb!WTb>rD96%`{k9__eI93^XJ8tu5%%0c!qa*8NQ=e46N1@w>!2 zMnO&eX%VUIc)6McK0datDLRsbRm07N-~M0~y1oXif5mztl<7BAUTB~BIwbf!Hhv7F z6Qqxy+oQ9#Hc_`<47EC7m=n8)@4G|(H=B6w=zU)xDx_RdWq}a0feu+N4Q|k*15K`2 z0{X^p4^dR;yQ5YtgBJeatn%0bXa@^IPwShu8eqb)tovi&TQLe-M9{vj0vBj)t|cll zz5FiZstt=wgJ@shab8xHoBadMp}G1j5}nV?`<Ksbb=jIU_(aYGKqFHLT@^Sve$ThX zEL6dLhcGG>nJ)sB%dF>1slFd$%g3r*3xF1U--NTM5cV`%k?Q;>HfcioG<-AjtLE2F zPKzC%;{}Y6>X~S(MG_Kz=ztxg`18N<g^;uR1SIlH;w@`a^;s^heEmv;s+Shrj%XXy z=I~$Ewe?^4^SZ`E$^C&Ra48TF{qp@;TL#cfJM|JqLDRqvCos)8IUH?&m-Heg-7=9Q zh3OEZEmnB*85aEntk2uB=|8M`Wh^@q)F7-dmL(?&(YMX9vI5%Ise$}jKD#XZeNQSH zgl1i}EhJfawEh*UwlGYYe@DR)Hf`a!{XSu}yY%!Dq_KM;b1)1}+@N`TY%lgD;<t2r z$`4!K08Uw2)BW*$1p-$q=tEa4YCr7<>Fl!FquFrtYv^1m?1yRz*Ucm^rq5`KG&J*G z%TSP~o=>|_Y8Z6)e-Qec(aTZu;xl7Ai7LrE+T}K*Lf%WsuB%WD+Z@e~nY{n>UVWu9 zo_qK)ILJj#LgR~u!fw{XcdV7b$4<bh6E?#kzIN;3;w!o>Bz~zWgT3ruc&py6>b=O0 z#_p5TS1W8Ip?<-7sS@7KwO+^1l2j+X4-IraK`Qw}?DnMZg}1?Xi^s|0o-Yjwjio0b zfvb(FGA~d%7RRUO46Y=5x%XOLS-Y#x-W>}3P_UI+AT$P4eGM&NVZBapZHwmMxBxSn zdrB1Le?F4d1wCh<ElP~loP5m?ELt8*sAe%+nC3k%u63n#!9L2TyJf{Jtuy~<Z?SV9 zsB>o-COVoi#b;1Cko7AtE$^I>loSLM*&*Ki+P^0+l6jtRjy{mZZAQn<L0?Ei_mP;{ z4KxQ^SR1eSu0UW1c~qKR+|zSt)ENky5#w5ttAGcTXzITKEZ1sxgALzVrrVt$I43jO zkt$hdGxjg>*SMERioBsEco#b`gp?`ng!{@rg&j^<#SX*24i-BvaXe4yzGVz#UrEu* zjdTLC=2@O1)!5%)37>-wfJP63W^%GxPUwsw+R9%r2wtY%1Jz@f&Uq?yQwg1UbRVAa z!^ECXR&#j8k6S-llN1kTw`L`~7@Sb&ykm3}%5!Pmb1@$rc!dytgUVbe^sRUX^AIld zVn$uGvPI>>;nkd+2&vO1CE9ZMb>e?6E<s&;0hXBS%sJZHRE7H$ZJj<Q{sL^|zCqr} z?1f-{!rqPLblH$+Ixv!v`FuD(uhMl3*&Iq=IX4E1jq~R)+lc%NWaSFyo^1(i=eF`z zl<Fb?A73W7Y0P7~%asqRK`qjRk%25Rm(6h<ZwLVQ@$oD!IUlU+v<Wy1p3a5~d=cF& zm+d=WwB^>eb2bUvB-`P??To$ho>Y0ci(>DmXphIiI?n_u<18&)vud3i8~nW|AlGaJ z3B6hff@Xj^XqE^(p8@eI4yoTe!PZWfMx3E1|I=~QI;{ii?^K37(F)QL_QY=fL+6Rm zGpAa;%X`wt((%QHXy5uSqw#1VJy8ER^Vi`{OI->+X=0jrx`SCBvK6l@IpY?HIQkra z*w4s}-dX-gvo+c%cxg|HcE@9hvGTWE%3O^PcYxpFhzV2OpT0+fpjc${KDJ@9p>!Sn zL!lrcQlyU?;!U^J)>OsSyTDx;d@x(4k1ogL996lLTIiyY!5)BQbh!3h&p7BiOvljH zK{T9`V;bff;+;!ai+cRYtgWP%|Ez!SRwTMv65+5qRaaM17?!0OIS8Q2dM7w8EIrMI zHqIJwBP1474I&s1mszO{7Se;-p=v5AZu8&o9pvl-t;<{;>+OS0=Mv>=2<vvdMU;5` z+Ink;jv9S-a6%irCEL=xEY4KRgBeb+3xvA<1@x-nePnfC9KU)RZM6|H<N=Ds&Cj~N zCo4HZ0wteHY=|Dm(&Rkcy%Wp%_+#tQQ5vo#4C<KOh=~VvN}-u_c*CSHpSh-eux!eQ zx8Dm20$fr)a}@nuR=&ycywx7f8>O#=&%yqRANr8)1(!jy%PcWL6h((nUc3NYg|g3$ zb6SS13f*1DEQOtyV7a!r%^bK8<zc9mCh@gG)8;aWl>h~dlcN%sMVItmIu+xAfa{|X zv=~x3v)?asC)&&2wBj`h--Ls{7swO)fUg&h!jCh8*elIn?&<vpGDg$s{ToPAi<Wu8 z(+a}p8OaiQu%>P^&IheO)}?wMd^kg+Y%V@yNdJ)L8SE}~3-J9|M~4>r`Yd2)S}6JU z^x@?N{zHP0UWi%k^pOPh$pv`+u`fGpLzBNb14U*n&nng+fyk%fbF#v<_t;+hu-bi3 zkw|u_GV?u=?(z+t;$IP;2cSmtx?g#1E2xtpM__Gxl?kBV6Le04l2hsJkSyGZw;MAS z@dPLa!uGf+$Dkoes~OM;5!U3-(ihZWHo)vXuM|oFeRr<JX5tc2=R&~4z`&{VcHe6v zK5E%|uNjm;U3HHTFGZJQP+a850eWUAb{G;Ty<U{)s1OHVdynpL#irF89l)xgD9u+` zxEjq7uTcHXZ|G1{4^1SjtRtu`gNSJEe6E*Q&;O}1iUwG^5QcdUV;A3ITo&GIDc&t= z5#}mEI?3=prRVLb9Q;rQ*A_z^G}Eq`bv*sck%}%7J;?GDSV-*9)cNUQJawE^P3Y5Q zq|bk$7e}-IpqJ<?l~w_44<cKq>|d^ruprzVVnzuND2IO9DNz=w<x=-O3j(<ri;BGf z3>Ie9`C+uMVlXTYGJ6r$eM7)tYz9ObU+Z8hM-l!FW=pn=X8`R9;LwpdH#lZiX-K)I z&KOS!GFCP_7hLpaJ}}D@#fqv&YvCk}V%k^%M;D;lLZavigir|<S((V+O3@S=BE~m_ zW`e!Ax%J+~@|MGR#zFxlR^X;%&?W&oE-!qA%zE-t0MedZOa=oBGa3x{wmYP_3-r=^ zpfV};P#=eGGM~p1NZo`CDs*oJ*LMk*;^^vW>lO$Bnl@{%MH*YOFAz$bIGcr~2_IOG zoj=PeG%}Tx9!~I)`?u<Zn)zfn4|?!l`EVTy61j()%iiosE`w1Xy%9$$Yjhzx4meqc zyz+a$?9=p1|EpE~OE}BPDG(yY92%*&bixCt67#yKZ&3R?;QwSkn%ytjiXp<Ao2@an zGQZ<6D;IO^S{xqVmEKvht(&L7#W<`&7j~ZWEd_1~GU|R8hoA+Tlf;?-tlImj@|Jv# z*>6GLXsM<4f{c**M($;L5#wOfHHa#ookQuLud#Mhxi<MYj;v?(k~C&@U3VvcjBU+T zVk}R58D_T+J!I>JeDA(J+#M<aF09DQQNk))$Z@5*n__`r%b~Fx-%lf7U*{Yy!y;mu zOswHRmiIQ!H*&9fp-f_kQ1~4-RSeTHl_dOVc+Xp1MV@EU@`jEJ73jSH;j%kZCjmeE z0IqV7zTBGR+xpVD1Yh(;lU!WDzUUaiggg1ON{BMxG$E+EY3DNOZMOx!N!)8n`n&aS z7TTF`q<eo4Gi>kwckxK({09L|VLC&alE}SGU!*aFG~NLXDAcjGm9J+VZj23Q;Y>=8 zKtmF~k_WfB60+D9+(`7;f&11|010AK->Jd?8nhMr?hk4Soi&n5wicc;1Ri)B+tnU_ zf*~frS>JX%|17gu!_T_J9DX>~v8dJ}-`d&Rg$CIEXGdB72#Ci#Lj*d#F%#HR>GC3( z?ZIW?E4DzwgzTyV_+p_D>ov=MAZV!_wg-(EkTRsX(_ajJF%QPtV*XX?8qRLVwgXad zd-29tS$Eb^fNS=QD|jBacyuQ>miO~Ts=M=Gw8w&b8Z?AriLM>X?i9X${aFvKakLS$ z;?|-k0^@T@)xvuqU~_U@o4g1!FWF)j2RMrk2e<&@5^o{BgbG<8*k1wEODj4JWd7YB zNFx2pa{F$M+mdI$e!2ws4)Wn9Mm!q1Z)soq;H96QXQ2h6Kk(T;T)BW4(M;BoBNgG~ zqtHV#)8ESfyI2s({JR;BK=YqeI4(pZ5wQA}>Y3-zR{Kt{KO*e-eOn@E*?jZhh@*^3 z7K!lkbkI4YmF7MYgQ+0TDZ0x2Mz8ibzONGJf1Y$deO>SNV@Nta+8*Zbj>D@lZiG`# zR^h5GZS2x)`z9ik>p#76dGP2LSYV(NG<t}(Jcv)V8nuo`$qc`?lGlK%CYqqmpyK`% z_Eg!8#)!ST@}V5+6F4BB!7xmWwSp%64x~A%C)_Y=m-7V_uM+BpgO`mS#PlMnf1{4m z_L+43?+w%Bv27e&=8CS~pM6hy1kqrpEEkG6fveRt-3G{_O{;}veWqBVf(5Bj$2eX$ z*h6MNo|8Py@7ZV9#h&v{vih)C3L|%Wby5`#)rAZbswvwHizM1UHk8gyVbnH0>0@Is z0>C|lXa31~rEk~QnP@$5LHd#S4I}QOTA+M=8=Sg3mFZNYaK!m91VHUypMs5P5h2#- z6Ex&};6~jJCyRf~5(1n>rR2don>EI8my~a472RF3h5;<)&P0UD<cnpb&ia4jpfX}L zu1>-3$uKlIjmALcXMBB(GuC6vg|wNwe+tc(V>-~aa5VqVw(q$81F1_}Q;nj(Z;r#h zu9&f9@e5gD4qb9SJ92OVo~&5ro&a;6KeF^hoM}Zo4{QjOan~+imgX4Ozd)agPcFbX zIuV$_ukhX3j)0oK=f6*Ge;r~<I6*M7%ZzwSeoJba2+=@J+#pJLaaecJ*0~1*#;u}T z+mk}hiK96xOcf51)8v(fjU=nEA_i_+47<d~0Z1i>7zV`ZPOYpPU|bG?#M>`85hcJr zSq;c%5%_ml3on%yz4=Lt_4#TyOrMoG_XBmG`usJ&vOVikrBn@^iowYm&q3&_nh=ic zK%|?9+X1j9$Vz*mb^`?$&p$>W-Qcmm`auwzEbV9c^2?rvJB_D(uzg(9QJN#g=Hb<P z6k|lkuMQ<my?xL3wN?zt_QpVThzOr@S?-bEJ(={}dT)Gt7kdoLfO59R+)wQO-Fi>l ziL=E#npjyIvks=cU#FZ!k9%*kPrA^qmf>rpqqLm&JwOLiP{lh&gHs+mv}6+z;&=%0 zfJd%5_^YhlHznukDxI2cft13Isp(uF%Fh8=T6Y$eBHN;fkxgwa=O3^0jf<*VRbmlm zjOHX;VU73F9_i1Ewi6rIHCOLQh^)&}9~j^?_GEKRdM;i0)*-(N9&mixTdnwJxR=ow zgP>_XR>U}XOm7*-Z}40lOPbZjXx;UQp<UqMiOm|QQCb_L-<M=CNRC5y{SF6Mu7-%o zrxA|fpC))OO}}N4WycS-u8NXGGwSLn%2TXJr;#!stDNq^UL}|cbutS9lqgLbZT^8L zBh=cppesK_<c|y&`H0*X1xSP5m!Z*ASpO)UT-yvl(qSNgL!cN8qNzP7S-t;k+uD;a z5}+2)K3W4|2+f;TL62GiD7Or?egzZz(yyy{{w{)q4<hN`O`%hqLITeFS}+}tZiTD; zIVy=oroeaU7;}kEc2+IAt)WczbsB_Ga6GF$0w8nPUMbp{EUHy00|)=R((p^B*ZG>g z`&^Z%Mj^I3fWb6o^swo_ZH|7=;ny!Obgl~7N(Ra8#)L%%k;=RixRlv+a?WAP&Vb2Q zLGf=T#;ug>jOB@OHd!@?f4v6^d?j2ECx@7G9^{#A(Qc}a(R`cu;dmxYPg%lz@08E! z<012ZS`Ws=8`c^youPre!p8dp-1Zp*XgE9*7*8QhT6&Qp?%AP@3D=$C{PiPD2pa&S z2a!PUpB`j~UHHby-C6MYai?Axc<w8gNUpWMl$S6b0|8l4K(DkTf*h^Kxq$SAws)VM z7p^15?Pb4t{VsRNtObAl+2~uN(rVVI9xC?5H^pe3m6qo8ZIzPB2O)Wokqp~0Kh3OD zQ(Uyz_5NUw!$$SjdVBI9l)0Hk4sWbS(HMCZ<r~&i#u}7CpMF%43o(JELmzZB0>q_J zVtG-}-`1mmjNRtJ)aL)j)}BdM8Qruq`{iqXv{>U7SoZ3pTOjM2HWU7Q`Ll@lI5OX@ z$Y5fE9dFHa;G?i*WGrc{xYzZk-*O=~$C#7<AYdVY4z?N08^7OFct<m$0>VW;Kn<T7 z0IjgH<*^Vu20l37K>eSs=8UOJgjU#e*GH(G+uBNhmP{PzSOtaUKksGW(`8q0FLhaa z3W<C9l?JN3t!TQ+8;me16`M*Q$sd3o2(VrWj`O#wP~@TeFAzQcU%G^xvo!3p1p{*s z`Vc&Acw4%So>QPiR9vl>hA>N5HO;&F`T^i#yL}U!m0e26<vyCNo8D;4qekV*0^x+N zP-x7(!v7H2CWim8CUQ0ZBltA)HOBSRHKA^)SJl|JHy;!nO5RJ?Pxm4}ZgP~DgVzef zf2sSi%=s|Dy$^*XF?|GV`AoEa9UOW_EA%WBEriqV!V$frS!$yrEO&+RKc67m^}n7F zqUQh86N~g8n3OH^gwuxr%VApF=_s%d%%1n4Nc}(j&_CV{e`K@Kb{e6V`hUF?@&4m& zuqw*`zdZXvaka13`&4_21_krz)rmK18c*53YJ4^g=Ds}&0_yYe@*?y=M(h$u>?2;X z4)tdI=(o(){Le+Jss2wVqB>*+%=>89);EySLAyE;@6X7V>)+TP=9o6Uwum?y1@i>w z%|B6}_3&WK?yDfA|I^E5Czsk{9!x;~M<@buNgqNoU+iZZR>AXpe+xarp=}Nm{QvBV zBPZaT`=DulhFLdM6*dvzZ?w++1Cpr1!RmmaG|_DD8t9_n2kZ_Y3t*<bE30_`j_5HX zqPag4&7UXSmy*9gjHH+etOE53uf5LIK`o=(W?41_MHg8JsAXzskOgwV6QI8_wvj^i z(2Rxe+k+1sBP47ya`U!XGck-|*zS=u$*a>lZ3y<P1$a*=hW=-D-Zi=YBi-+E{@Xop zbUHx~#SY2ksH8rf^4fcYK1?_Z|M3nCwd2tB{&DiX!7Q9K+{X}y>`)!=gyE81Q|Rq| z#n<`KgVjR?Mob0FZJ_F~tM)+8zHR&yBjy?qnztcRKmz-fzNkYX%foSI@?00(hw}ST z!}o2Dm0*Ca5%4;f^%22+uw~lBk`Uj><-Fj53Fzj$!0D0omI>dVc{@nz4~WapYYBdO zp+#vRkU8+o1NJ<33c?`=Fi8YU+rU0TyK4(E6yNkK)F<p4NxlH2qB!CK>kfK${0R(z zu=}B(3LtFJAanNuw9TxJW-Xa@$(1%}9q6Zg41yT@xf0UIm@Fk%^}w3NIRm}Ht~r8) z6gdyiCm^90xoPz?`RvgbvrQOv>Ac7|hlyN@BzmX<C!p+Es?Yg$fN#pmT8V)vgZ`T} z=l?zgpNOy<`uF4x2UplH-sqcm1rnn_`T;i!$r5Y@kV^cNb@7131>u}ex1<N8Y(ZIv zJv7~L1pT@xOU@JQ?}e)DNAd03=nxw?cJNWN_W@dSbQXZHsq!i4IOx0GlmuFhMF+eR zV_R*;N*^z}z`!kP3e2>Rc36;<%SNm9FeUVUdhF@~XYCk!5qfML{Wu3E5&NH6a<Y?L zao}sN0w_#OKT-%iZ-Jz&hs-^v#Rv(ILczUw!00Zwgo;;z)ZTA+xWN4WztENcqpoU2 zzUbA2wFP+KLLXF^9vBOPJkE~z;=d;l>8zW^qPx7QbU1FwfCnf<nme;ikDuQvvHC|( z)K?*ev^r{;stL&PEp>=n!B~un#AgUBnm6N1-P7&!2HC1_gP}4%37$FN<+?pBy$}59 z3tEW3bu$W{k)Ws*@00$1bfz(+^R2IyxAxbkeAaJXAt8C4cbyMm4Ek!{2|-UZ>g8#0 zoaIdrj0S-vYJ%#cgPh0Q#X^~;4_?uIwmDKX*RYkmRVyojRwIUJ`=uDuJf&U#&KQ^; zF)Yp;{OMPDbgwc{{!uqNLZ|BsvogwXG*J-?-5^a4!pY4;R&CsA^DUVry0o=ex!cam z!8D7VccnL)%%BK_Gq%b>UU<%mLf8t-?Y!OmTNpXwGeW)jG}NzJmRGw(<JS}rgjO#~ z%F;J`41reW%RVYB#`F<ufivKW=aNbsNoj)1(2f`)nh?iozgH?4hiTrR@<P1?eGH1> zK|iSqVZqg|yH!kByCiu7HXrI%zkD@as2PLNfh?EbFq6i+=MPt{I2=DBp)IgJ3_5?z z7W4RD$_^MI5U|nuc8Y!$hR^8+V$arZ;*wRT%ar$_0;&?=LxNq+j7Y$caVy<?FL<pt z@}BkT_MHGD9h4;%XXn!@QU;9k1Wlxm?_i8w-n-8$=*(cVM~}jq+2y!;gGo0leS!G^ zZyjYg_J6VW-SJrW?cWHIY>~{!DqBU!rtHxm*`tW8PBSYR8L1G;2vHQ78K)JpB_xzB zE9B%vvY+Fl>-ycl*X#E@&%e(<Pk(gZSFghP9mnT5-s|{Gfj=<ZMP!_8x#9SYGQrTU zF4UT{O)#E$*ghlc4U6$ZYf~}yXj;3k4~iBXnImpTdsnnemY(Yw9t0e-Ho=cos7Aj= zPZ$_B%Nojp_D77x1AO|tqW)o2Y_gT6jhhx5qUUqxfhy&jV(OwR(@R(Ck?x|zIaL94 z^hvLW?apw)r)~od?|b5NaeB=r`|mE&U;()hkL)_wySaw>sp{l;(4X7_XV@Efd*+ZJ zH|e?8g&4n^u>ce%o%j&wbdok$S@L#yUF7K4D`BU;TDajo+ALU%vf*uii(_P%u~%YF zE}-)mHuQ|!*9TEMadC5Q0Oi^K$?5L>W0LWA*XDTkE)<ZMZjaw-JYsn9m{aJFVJ{;c z2#zS?7TH|KiHsh=ZZ-H!yeiqL_TxBC<bw1L#K*eWPL7=FhcT_S8A1|Tq!_VDD(rU^ zX{-Qph^Yne;?if?l_=srT)(W25cUBgrv8C!K63lxX1Z(@cxi6rCKhxWmHw&sP$;;X zRL03^cRy*9%+5<uj*IibR6}V4<y~S0nm;b2e4-B#fk1SaKcU5(n6WFwTuJ#uCO8V| zf)(@*C<+lbHb3GJnL0K|TE~J>1<wD%%G)uTCFtBA=D(BMSq$SZZYhIrsQX(i&O7ci zFmp*_R$K5QWhHYBgzYex7I4wr{dA_kMLMI3TOsHJ8NQ#?qT!dk8KbaC_Vd&BT=%3W zkN*~m6Je#V3VLJ2yRZlSq#+ClXLAb2y#mv?e~S?Z71U1nxspw%%jhaFr3~y9M$O9M zLzv7S`w=J#Y;^_F2YDy56Zsegu-@IC)D)eqXC5BndK^W-O=LpWWI5bW{bdn4fP`OE z0}08^%<ZT0m)<F{dZHH8TZ(}C)?W=iQ9L92QAN?i!$T9t=>+N9f(<#lMTmpMI9NTG z9uvn?z;vhM%Ib#nyHh(+{QZCA+wc&$0u0(we~49@JRc}UWp$L=)WR$fx3s7rn>`UM zEF;zl`UYo%m}#h;2n+XBU|x;+=ZVyqA)+MTAKQtj*rZPkzZwRGCoj)w40-snjQgC8 z0TFw^wyU~1SSHlFds4W2ra!-MHXus%`+e=F9DZLhL5Q&4cfB5qL-qz$mQ^5kP{KC( z0*9G7f3f2=sD*ldne$iQUGHNu#XLc3UiEOH%S_?T=dl;zh<e-kOyV^fxzx!=8fT-J zC6GLNZGT$)0LYYWD(GY$TjpK}J<N=O;2&G5L`3NMCqRmjk?EI>Wk507aHuUphd3XM z|HHn>9VfmAm~DL&^KB4V;FHQR-u9J8RTCb7=_g@tu<EG1e-+04?!rK!(Qpep$l0)# z3;R6c0OGgdG>uw?erq1Z-=Lr?hCJ{Ca;~^J(`Q1-9ym;b3uX9WVZwKKU%lK44^T`d z6NoqW!-j61hdxE!Ga4MK;eG@!K*uwO@{~ksw+*lo7$}-t)Ou$@-0@O3S?ahwBX;}! zF=_146zGpID-p5?Udyc0mK@H6Q{~vpWb0$VTz-LrAV)pCDpKDupG!4j78DcxnReCC z1AfzG_gzwqrK_gYo8CDJ=`K;YukP<mJuxX!uApfaXb7xQ8+j@C{kC1ZP&6A-T4Y}H zUukTIgTxj)uvhTea<oD2fuC5w?slrFoXoj(zSkDs@BOws1g=B#A|XJCq!GaFuY_PG z2}{XKKM7ord=ty38~-z-$_VOH>}k($O}{T-g$}mRPhN=S)wYT|&w8mHG)xFmf}d*} z=z!A#gk{4XNs~`Q7W4IW9xn>MwV1iLiae!d_FvROg(lBOyOuiiXG%}|Q~;?pX*BWm zz39i8#C=JTO(Ds?GNsX?a#p4PzJFTQf%5B{=|_&FIcW1?lEV5Fb!KB|h3<AmQ0F!M zC2_9IfYPQTair@xab8+i260|i*BjzItFA*XpeeZ_=sf#|%G54{$I>Lt{ZUA~5OSm% z|4g$rkTUWtc?C)ot0?yi6vxmIwXN!qpS|MQ`ckh;gSM+NtI|PQ-tnzwNr57h$0J$% zgOV}j$P763-ayx_Q{!3G9y}FIjmZjsw}J#l%xVb<v&M9J*+T`@UG=0wS;-sm&^#f* z5XDC6&Cl%i-XV;BcH}qGNlxMU(~;3w411!nh`?A>dR-u?1}4J|mc#M%d6eA-4p3}+ z+$gqmp@*}^T>I%MuTqnqoMFpitZ*(pB#Wh##JDJ9>L~W&r$jLq@^JivzN@9G37-Pu zSOiCb&HV~wGtUpTdMA;R0c8hSiYX#*%l<Fqc?3HO2@hw58S<)z7QhQ?cRb9^Hl62~ zv7*)JAL#M4ZxNI_08a2pZ+oS2F~Ep@;m*K%0d>aPc0iIZYWDtdnfVIy3V&W=VU@?V zWkvQh)%4*<UEdjnq?fl4+JDRfo~gGNEo8Xm3!+;%WSm(a6>^N1KeD~!CL$mG{!d<B z*<;;5l*T>Zi*9|p9fc|BXxP1f+a_J+2cTr?Y$WRL9qtWSi-6lBRTVe;>mUDHwMPHZ zu^sKw=96+x4h>qL8xK8&{dlLI^2X56$90|G({JgW=w9Ac9<uZFr{N?XN{nV0kqDhq z@(f8&b0}{YuG9hzj+WD6#$dCasSq|@Mv<7+B^J3rOHF%`c4ap-$i4aW(0sHl(K_}= zsJm!+_#*<Mk;1TbpY&5L7rzDamBvz95n`8B`n_j=f36AW1fT5@iwK4w60+wLrq;7c zB1Y>OEs_eHUsF714SJ`OgaXJs%Fm6SiPwXutJ}Lw7WesPC%Rf+anI6IVehJP9{j<z z*Db{VTNk5fKk7Z>DgRN1lF;@<GDzLkuc^@-9=4M%6Dg%GmBG5Z&+GvzZ<}1cQ08&2 zx|EXW=h?u?Nq4Q~Ab0Arkwp2n2$^!5N|pERH!Eh?MtuvnIDVg5xWkAQY^<6X%*(v% zUC3eSUD&xerOK2u{+pXvw|mFMWWeue-QD#ncsx(y#_w<_4{s$<#(mo%8$3EFY_h~* z`X)o>+TheFEV-&-&8&Z~P~oErCo-FtN#87nBbAic@9eiWJNw>5Xu}mAzXiWEDD9>v z*VVF$8&g6UIqcYi`?SqCi21ofHqshdjPC^-fM(aeHK^}|T~-LA1R3MRD|abq)Yhxg zZJ9>oLp&v|yqD!<UCR8IgIqyYcg!K>*Fi!p1&5Q9t_6W~#>Nxp?FKyT&V`S$8$YsS z=Ds(o41gODclbG&rV5EpgWps0`JVzIqGkWnj`CHfIwAO|>gK0Yqg|U~$B9q%w>XQ~ z)y?u4`DBmXXEAm<ZuDTir26-Fhaw>wEq9HUKt-4#vQ&>4f2|npw_Di*>S4Vjz;~#w z?c;>Imioy>?`BE!`d<P5L~ZF_LLzO4*&~*Wua+Ep7&q$IG<{@bW%i7-Z?dAn#RofN zGzuT@ZaXSa2NVXR^JG1}+-xFQV)O9;v6rX4D7p9kke9I<NvMPx#Rw8f-fp@BrYxbC zUTHB`bUR$XZv;B~SeC3ma>>Z{+3#Z~HoN9pc5J!90~glEKR(tZYP_HYsds%W!vZxB z^U!mQENFPi42#LZIEM*qgLF=4BXnwQE=G9ZbipE-RfgvIb)O&B*9}kzW|Qh$VG-n6 z0Y$)z%q*s$D##;@vsE^XdGg_tQ;GD-9H}eVlX`@*Dz~l)(mP$=YMpl}$b;il#QQEp zOSSskRWu_A;x*gwfWfPMy>z>xoiFXHp433RndJ7cP-~1aob^*8*h%8rt@KZl^3((t z*OC07=T<J_BznFU<u!E$b)4E;E}S}H^bLH4UmOP0+RfsMO)A`;#kE)rH{?l9Kawq} zJJs&N<d`6mcoE-75p<QtaZmGsUkAB&(AY6!MjxS5#==3S&Yl}ekH7nA6*bGR`~MiZ z>3Hqqa+|}*A5ISLd-hg?-{Rk=ryV(tz27Joycl)8#E$mIKnmOrK0yk0gF0m~z(6E& z3V9~Qz!~=7L66A4O*<Upt=fN(!!59mQn3UC0Bw8AsV9zt=x+PH+9P(M0M{>PSWCVu zh(bDO?P-B-m)LK^Sy}X0tCcybHJCh~vW${B1_!ZVb!Jnka54ult_RO@j@OLezFsVK zJwF+eK8PMVC59R%yfpG8J^+dvD}#)53fY?u)zC#W-D)L)i8sd6DV@Y-zAuj_4@x9{ z<g^x(>8L6ZF1g`!cTlrZ!I3<CSJvywEmh2?Fk4N2ug}M^)-d?KRu8Ad-D%MFE_tQ= zxc)ZiOz=#3V~?5knV;=u>;^d(r$XQ;(n<32xX_P!XeSQP2rk`XvmI@`d7#CAUAd%1 zCGZgL*T<S4lV><eZ0h~P6$FhptVRzW<|YFZ(AkSWZB{sfpr=kAY(FPQbaz&|@7+xk z&e@>88neO9cQUVPJ#l7hz+beAj{UjMNn>1`-sr;rWHOS;QMZbZcI)}dj+>F^LhJx3 z`A^g+{}_PA*7|n9;lUr=L_K6`$H_vilS9I|hX%ir?k3}+RUIn#{gDL3%3_PqOn8kC zN9v5@+bE&~q~y|7%Vb*S&E!k2sx2L(_8c=!D|N7Y4IPFtBzwFQ^vqsVJ)Zuk0)d%v zI;trr=n=@*C=N3_Qo<p~969~YgZTVBB(@>II|Y(GhO;!8BwqEwliZME2!;vIb}5f? z$S1oI6$sGLEQnAO)9nE3{sKo!?>|PQ9>@oL?!Vl~WGf9|OwZOjPSUywp`t0EEZG57 z*DQLDUW4LQd=KWmIZ!V>6RWml&aYgQJ`Y|x<k8xJNv3@jl6C#Z%fQ~&4Ti8DMB=2% z`C<K`(Ov~ea~05H?v49vkOP#k3hkXcgmGa2hPT<(j2C<|+JJm&dEnUF1ahwr4dj@P z1MLtEO6mtJ?<`W5L5`vtSmqkA3ipWM(fTUR-T{!@t3vxPys>mHp!v~|`?c@fVwLkX zN&q0SZwekP(C9*MKZjanS#SI-2>IK6OhM5o4XC0IT&Wwm1d|8wq~0?qB;nfCZAy|s z>L1lh^%T5~NkSAlpjhhxp<6E?4&8`uPK92Y9g<>lo%h|4#sP5Un3@`}vLFYQ2BQWR z=$N8k$pwN&Hz@{>t_Xo1+%W+VnR%qR@NO*EIqK2L6qLu&M%n{@x&yHjl<h|EOwR2< zM$J!nTp-q_=_d?Nx_Fe6w~2y1wDz`+mmcYP!ePX*;LPs~@JAZ6@;pFPZB==2O)pJ{ zQSVaM?ry$~+k;MT4!rg4`124PX^;x_QiJ&*Jo0tEYhMlB1hYZJJUNJB6DgR41y{af z-QO~6wtLk31WU_FvB8vK2(U_g7TjT<iI3q$yGFv--#y}xe}_VM&NZ$58Z`WU0Xdj{ zIftAq^IzdfY>Z@T7dP|Ym@+UcOdVh<q_$#HA}=*b$0OO{zWs1gDg@sJ##=wQ>rIJN zzeS=9YyJIpz<%CRc(_?(fu)6;Z_*wbc-tB&-u}GnhW&4@X!_%1g(vp1Z$cL$^n)vZ ziK%%K#GcO!gG6f2cUn{nu{QkLOk=M*tMaX>)TKcdoL4_URl$44*nsVh(4;<aSxSA^ z{|k2e7Z?YfQ{~Xb3wi{S9j>v*B*R=AzIscn!71zmL^54V3mCeH^+*pNrI`<PC?GgK z)+FhFr<Et6r3#KS%s43yP{&V3g~t`#K;7Anb5WKC29j>z!^1tj+G3Xj5Kz&C1=*{( z`A{|z9}}NRrr~US=rWYpsBLsN_AY3V+$31*B!&hWAFjcyCEg_EvO23zzA&bCy5<h) ztAb<@96@L%p1T~Z)Gc37s%c?~93YO96hV}I7dZS*d{LJ3E|e^%wR`Xpv{UKMfU)^? zt1`7>hrND0^a0pudeDxHmvhwBdWhVXcm;|?jrua<3(zP%0!1?yp*-<1l&uU(<@|s@ z;|C?wJ^;0UV(I?2>f>1ufyCK|Qqa`HBXlA$6n`)66I>Y)V!>q5<Ss%bVo4c~1^&7s zkhHanr{%6Me3Q8P_!G{bj7-mZufDYLEK*$XxZJEb5L^IgGdU|a$L%!IDdM^W;2BzF zX;~G!NTxak1^{6LyX%yZbwWOXF+MQDO%DcID8AG~!AZm5b-1Q8IfY=gDS~?z6dT{c z75A-Q6hUg%B&PLGuh(wS9S+KrdY7j4L-8IMkU9IrS~X3Gf&+J6D&8k8dNh6?A6m3P z6{QV*MjO-bmjHs#1BI%7&GjHz;Vx91nB@o<!(aH~)vxj8-`)fK{pY?;_{~v{trI~* zFr$lGt1xl~gK%4!y|1A8k|4)4?l<6V?YI=`Dk+{RG0z`O5AiaxhiNo?|JG-ft6+X| zr&C9@S|x`7tCIo=+f@{Tu|FqHpF^@n>}4c41acXxGYnavpkaNgemtY3r3Ocjqtw3L z_4E{$Ow}_R<feJ*55xZgaT;&;ZAie>UCxA}h_4Z@dV8|s6GUG+J*Pe@`T^{z%qqkb zOTvl}B6J8xAqaH_FuHr{;Sc})0s}#RrT8fWAfts4;bi6rAy9z4f$Dh!Aik>JfgqZ? z8YKIEcvMUYF+@;P+kImTy#BU&aZ!I;y$nnSl%iX3Y=Bz`%Fe4cC!%ov4e<F`0_Jh~ ze>i=}BmemcTL0y{_^##}rK7;?P^)&3HbXpdJTrW<KVyFz7z6RY4Gd~#_J8#}`9H?^ zXVH4)_W|49p*I(@2B%0Eb4IVt?)JtTI1o<4(Nn}m%`R(KlU|NYzHQIXIJB$}@H~Z@ z_!a~f;Bi8~G=Ba2gQdUHeIcyKIP)4_+__K|Cq3k$U_RyQ2VBD&kVuJ-!W;4iu%5Rd z<-Sg&m{SJ~N-A&AD|Nz+Nnz(s>XFxsZAd?93okG0E%1)q0&wUgaJ$pjBO-yXeuJ=} zrvjJMLIM19z5?8|JBlqU_yULTWq7KuKr8nZ&R4BlUMNf*;>PuW*og6~vT2Q(dsn$= zfa*FkH;Pre0xi`gI2R=Z_8+vk=l}Ao0t`gKNL!7NPWaZz^*LK`+@4^Q#L-qcfboS{ z#^t3vQ091bGJu>i5NX3lSPw}}SAq^g3DbwO0R1SjQx^}DsUa#DknzsUk8H+VTt<!U zsZ0LA$#0aO2dBgwT<}|9=ID7Ybd>lZs83$OYkvwUgkv>aQR+VUS}5N`n%5QJw_@M) z#tB@yoFHs!vj^GfDe70|Ktg8-{)7kaCS)_wGK-JX%)udY1tqS5E5Y`~IoF9`6hA6V z%$E+tAqsLtxn{f}`wxY|sehgl1AZ1xlWL#$Z%ivo;ful%`3B6VJ#9Dpa<B28v4sBU z>JiA_#WI*c>b?5I(0DDoD~U%990Hd>@J^?qO=Tw*e>86m66kpdGoV?{L0#HqXXom* zc;eilsjr%D(^qbFLwB_X!_-?4r?tyjrVE;T4!hq%uYR3B7E#6(ZnorI01bk`YXq>1 zEMZV!u0hi5TP8EFy3CXBZCdH<v!r}h?Y;st82iTNyVT;CB4G*dzJM>IH_|j}pA^ax zhqS6#C)Qyh5?U1(&({@@!$saVmf`{&kRHHQ*siBG{K%3c4c09b->)9t%EqelVF`tL zf8d!8VGRAtHGBt58JW$pPN_s0mb+MjZSv9@RP{u$DiBuOfmFAseNI(C1A7h4k36FB ze7fvF07V`h<^lrPEa-mV+WQwSNT5^~4=;QU9goJvf}S1WYS0Clq3Eu>YsG3oXUII# zvrPHPrqd{NawSSf(fu;LD2+Nmy2%RUdP7?b5I%?$hby-Uh?<Qa0gq`6ZK!rBNs#Q- za^LWeGPo*k!W`%_pEEeOP!B%;g#-^%%Dc+hRcO<~F|bBpCu1~E)Iz9B7AW-ie(D@m zOFQHp=8lETqh2Ul0xPcZ-W~L&j#!dYE65`Stz^uvd+%g$5cN+UA^mM?6u4~+E^_LE zWHKn@psXvOGV7QxY8Q^hn^t+bB3ke*axdd)+e7=xo&K1DZRZN8%C#e6#yEp8i&ITY zfbV_<p7cb)LH>hM>{Y;Ph%fX5(Kada`#PVXB&T_@V|y3G6t?|k`ZcQmEiB_SWC|ag zV2Gic^`3lkA+x<17#m2~p{(O29$j)OhcBu@Kt24FYl(&`NQaCnt+E~p#AmPr7zUGN zjHTQmJCV*q7sN)^$9Z%%7<8^3G-Ss>nT~Y%#0Eo(qOV`4`e?v@g^NK+ka!Vyx`X1L z2ywS)3Rp>viKNit1xCX_i}p{Fqk?<Qe}2;+3X&ls;}ZSTqbZ`k9+~J2Px2I-vrda4 z@d~u<@1SaN*S)mpa_2L)27kQ~)=i}b!laDx{q?1)7SuRz<;RETgX1k*20?u>5_N=9 z@p!HTo^*rEAJ0Q)mmYCD<bxSM875;;Q-Qg`P3pd>nRkeV7?Iy>TPd9Lbla+_h;-_C znniCcI^j7$HLD>3U4K#PvKVmpYh(AR-)M?dUp8(_H-S9)i+x|&Xw=@CE@+bZzBIWE z1~R1h6&oS(SsXg|^E>_4v7qRq)OiGjd+*F^&4}&}++1c^mkV(V46GV{-Cg7iMWtuz zH4||GEvrgFIY^Cqs!s*Yl9{LxQB!i3N7*)tbIxLKeLcB`)<2XrktIr7);2lUS3ipR zTWAQi_baSG4{-QhA~$k%L4dOgVMdU%u`~>*)~CmPAQ|g9cW1g6Byb7p-9Av3fgkP= zcanmbznEnh0kTka41>e6Klhq-&BL=0F2w8%R6VciJZP}y5$KL$;*l!oJB%i_RVeho z0PP3(v_~}G4GR-C0)S0$hZ|#^i}LT0HwpuvOk3jvs07^MS+&lzmiF&EvI_^x{_I!o zYV8LXDE7@7^rAM$kPT728w;mc%)X?W?mG%yUx8&9o(lt(21Lp8fY>@b+k;lp(x3#s zX4y7XZJA?*9dr@<B*;TS^KGMA|LTs{=C%I7xKx^;$QA*@Iy^e$if-?_=!itwo6Nz# zcR1g)@@i<M`#f($A9Cvd>=Yk;XDVX~;E)6ZC2$cAfDTCmR%Gxh1?B~&Z}Q1MJvK&t z=7nN2)<B+)0nh0wo97VxC~?$Ll2A8e={`Blz%kG&g$C5a*Ad|-e7$rbWEnUy{vYUw z7GIcxl8yxlk+>P$5v#b6i@wmDV<8q&oNcRa70`6+rU&F(%^*Ft1P3wv;(u@TSGJqM zKs9XR4`UHtG2wxoUkKwB6q(7)eYWI=ak)!+NsE$$6ou)z44woIJMuLojX8GaRyHC@ zjKkAy8H~@s{tD+Cf>|hG^h&Ogm^(<&o-^<WRdp4S3$b+{;T_wtwNnid<{2Iu=2tU) z+p=|_yN7Dtu`-`{@_@0IrN7-ZdwH0XW3Kvm1sI!f)}j?ELakjXIU$Szv-lOr#sqd_ zmX03x;P62q`2?ZsuOL4J!hnQt8yr~hvA#QQ`e?wc)3Y-DZ8Mq|{Z>9n_SAQfw}-fw z(n*^yYzZ~Ei_C=?n)!iCb`BzW9`|{5PN|kXw@6@`qR>lCE=ZX;v_)ksn$d1JQ>7o> zozazIX!qo&V<9}bSKZ;lyagG@^EibK;mg@wAy?n&c*wk**LS3tsZ{QMPLp@&$!8DQ zlJa118Md2?7?GCD9>A#13sOA!Alp?$pQqQ2Jt`#K{ha}KOr`&|(@_rZePNbL4$D8v zECE&`TCa5`IWjIzJvdx=$kUFeO_AV;Rr+6$kzu{FNbXyFfyOH<QkA%XCReFHYnHBu zlp5JF6p!50qomm;^riNqW(j)g)qh=T|Lj)l{*@`QL<Zzod@b3D@f1uabv*4nJCnz` zWhVtbVk?@G;?e7~owTDN*7q-ZJu(#~<6@Whm+h+}+<0ISzcuVNOVlH9e1(M2m^iGk z!_dq-OZ}ltepNj_<NB5LBCZFd9^OxI{MTo{_q3kM->$DJjOH&}+~EH6tMe45;U|?9 zw_fN@z0yXLc*Q8?T&R<Fx9V#lU9z~0t?w|XD1@dIMAdP6Mf=eXlHu5gKuNpNB##M* zaJmhB-CMP&qsMU<7Qg~ZEJGWY3IhbQ#Ig9+6sEtu-rvm)00p&i8U<YqhCa7~hC##8 zPBCnKBYleAc;)!fi8ZsTU;~(~uRy-z8K<FgBb<YB!QrJ;nZcr-jb|vB@x{PWbkpQy zYJk#oB&7w9%Dm!I+bKb3=>5(o9O0<47Bi?LGPFzo8SHIsQdRlcVZ;lUd8we!JDtc2 z)OP-MmJZixGeR5zGqEO?1xAxUAcgQEA8}+i9g~m_?Y8RD5nN{!1JON%1A8h;BbDQC z?|e^6t7lyX|CCnAe|xxeaN@L?W5$1GLF<hg_td<IiJqPo^18zcfpnnM<G!cCl2&xq zX^1~y`FtA50Cb4fB->SKPq~RWj@AMsi(+Y~lRjVw=IyRum6k`LvcA+$N-#z36#xir zIHW(FhW<j>mqTFCb{1NQseGmqlXmF4bG;AXX%)u-k9o%6{A5y7ip=ad>?k;0XyL8T z*meF@KmL0lGoH<sLeZWtze?$?9Hw|~+G!`;o4Y*hYNFXn&Gd7Jj>KKd=SI9Gq=!j_ z>;RxW?j1FyMAJF!Lo@u2s4a!5gq^g6RYkG{2He=4DHLRfsik2h_9QssegE{`WY>D} zZ+&%t@2$^2<`}rQ1eVt+Nh<XpG3tV5BE^cV=o%T-gx}5aw90nyk@p>Lv<YxNAO-4n zL*z3@n%Bbzh$v>+8E{U@4kyZinmn--=*fche*aOaKi+GP73-^#@M>242vQK_C52LR zEHXzadZt_jJMv_{VOI;~Mu@CxS7U`NG-y~%<AXFE6V5--==SHJ`S;gQ#g|Odfenkh z@H`nAZ;bCaGZIP7&K09kyE9!SMkIZ#Z1y+Z3Z_;<?D+Uj06Gnyi`zzk`sTJD$lEq* z{ciG>Mt(^Yv+mf-IDRqg_8QRpNpT9CTaeHsu1p9fk;=()Z5fpdmIE~hMCtfPy(Bq| ztFaX`_X5XY)a>2cU6;Q`RdN!el#okCwg(3`7(M!IQ7SPQpDSoit2t;^ajX_Lvq!GI zYtwV|e7E?4>(!&}=B*1UkITq<``#LU&Lrmi#P(rdqLvXSq}&^#v2e=u?;z*_XR#s7 zPLCA={YF_w9)<>X!^n6U`nIWROGabg^uapVP1GXVRQJ%gY8{6*zc4D2nWcq%17N|L zL@1eNR>6WoD5ook`W_kaHyW3ZGUVOw(<!l>iTB5diHM;!yA1Hd6=XYuA>lo-D})&f z{U98v4HXupU9H1(iy!`?oRCv`g`w}jFwb{|cIX9o$im}qB+6rNs<3mm1bK>al?U0X zE>Yrcs;p=JE+fMnrwMVTRaiOHBy}7|b6Tl@YFIc!bs(6W{xVEbSy@cely(opWDk8k z*<}wWJe><9geA@OWJNma5)&0x4KN0-FYm`MfP#%k&MScpi&dea^bW^;h>rxLtGV4L z`;AWtddQJN-U36rJ}j2`ni<OESP?XJr1bps{lGimxwqNSQ|q?EgKonR1e{YLKht=A zpr+n5HA71TTDYKLGGgg=S)#jkt`8RNk-X>LA^;rP`0-|rfGGWG=-|DPUh)}x+a0hX zWV*Aqohj``j*lNC*LP7W2q^u`$Y!m+(b}jT!?WXlD?h#sL~qggWq)~!JcB}WEAK)P zPMXC~Kl1jVMU~r{MkSezrHz}MFZ5G|i0Sp!L`8^ac0RbJIdU6?zq?;p%WbZ&({+q~ zV}3!0!88Ww?-cRq+l7Y)X6l%S{tjgfRD?=@p9^mQx<l>MqI98yKwGTVU~kwf*gN9f zboj$M2rkYl69Q7y1E~*PNSu$H^q`UYiu{{DgWaY(m=Q3K+AGxmq<|_N)Dt?-`ama` zri<i!hX){(Zm}!<KAf$OJKn;!u%c}z@HagjMR5sDr$ATl)R+6r4CF)1+y(3a^-C%f z0xbI#VfH9j02;yA638Q%1v~64m^#}wEp|}$1;X_<*hOnW72oD7Zqvf~h3e)|xoeRx z#MN|z5$G!t1;{}Rz{c4$=nN59eWT?CNSo&eohr4Fs4;#WxS@VXgDTlLI|lbE&K(7X zOs>QJn>4^R>_KTZWd)anmxot=gRTu`OYZqy7z&;<1Oy2g!uaO5SptHUOy5W1@xW4; zf(G$CBs=)cb{&_9?*lVw7g*4Gz$My?*ap-`180O6T!HhX3o!O4_z>CDb9Y`v{doTi z)?>XyPW&$)4-T@~I)j=640!FRt^6jL91XZM$|VFT2cNeQG+_Io1TfDvMA1Uy;#8!C z(&W^`$!!ToMa*l4GVKsyg0`DgL+c+)cM0;_C-2q{9s_Joei&wSKd_**p8X&fC0+o! z1_`y(3jr-6l9TskME*98w$}eNju=wVYZz1FC{Jj78p^wIDHbg#S${v9%7lBd8g#YT z&i=vGvR2CW@c8`M=-zL~{yF;iYVQBV<0y-9zlv!XR6Ijx&pvq&(+u##SHN1Qszd5v z247d77)}MSRTL!i!z6}z#!u@M(L<SWI!I_=oA;on0E$F=We?~aMHES^9{qygz&V)v z43G$iIg;O9<F*jlGL?Q+EDdh<<JReAvyY$^N^+*B8VM^0W0u6EkmuqMejf|VSPlQL zuL{rn8?=KBW%VJe5NIaf89?!{c6rRt><G&U-@`^DSj3}L4Rdff9cwUTW3)C9rpqBz zi8*QiD)n%qe4@WEk#bkaPsnAl4y{VRA}06uu#@}eu-pGH_$@BFAQEDK{_`sX6HKV| zpZ|o<{r~^q|Jn60fPoKz!pPld0D@*c!12z&!prjA&3VwApJ*zo0-o#*%wJ$`(?Sp| z?-?fqsoJ_g56H{oWMGimd=Q@jQ9L*JU7>H(wEdiFy1&cm1j-$L1FO~ELg9SIz(v&8 zAAXAGD;q4(%+05#o_FZ$S8>WMrZ?1hBTr|2&FCf{d*8R*;&6Um=pcJ4P#hBqEratX z07+7>qOF@qGd@ZeQfg60^c5(lE6@z1T%R+L*tnwY2tb}8Ks9HTcM&-td~4{e<3Jh! z*mO7wwptXS@f9-DuYlU)Db(r;3#4HD3d7B(qXL5f`U-Cx=|IF8=;F8s=^*DnN4R2= z4*6o-H&^Y|@7#iNjeHp>i3%b=K@R-}x}=yepnWbu!9&X<&Ww_#<yxcys3$I<@^SO| z#Qn81`=3)i%>8WR!Fk8OA5Z{Zk+@FeAw`h;9Q>~#xPA5EgVweIc)k(OUjnq-TM#0? zK|cHQ5J`aIh^CXuy+L5v3zyZ(L?I08#Vn1ni!rIHf~=Rh`0GwjUQ@zOLr$hm&mq?^ zv_b-{_55Tcz#?q+*c|0Q=c5QG1c@Xu@aRg{07Q5TDlQ`Oc+U{bM@5#xd4Vv&#NMT) z$yEgKp%M(Lf;>R%GLZvJQZHE)2e4|Zl(9psMqEu{&8t5aexEj<ubt8Fu}slku9Hr3 zKRfTprJ(_wT-F_=_S^mhYVB>xDL^i#15^n4<<GfI>cN?MMqn8ZN0*6+$l$n%e|7Ot zO^S^{F9J5UM<{FyvxNr&CkJv7o{3$`hqLhw)KQQn8b6C8$X!7&1d|A2{W95Pz4Y*7 zsGh;09DBMp75JZub3wizLwZogE%+h%n3TK>`p9*oCz{$IM_)^0?!%80JdAz)3>>-n z*UT>j!DrYm=!6fH@=02T4n2uA0QPA#cQq1V?-0nE2GgqzzOMT9hDcX_BK$ot&Dk)0 zw0X{aeqo3r=TH_r{U<<M+ggW!7nr<Dq02KqISHna_;*xJ<>RDlfU>>;Szz0$5T<p^ zy(oh3`{PA_pI;yx&_m2n)n~$XB-elTF4lAxSOHCN*ck7c1Jdgqv4WD^atU%j!&STj z<D9LZs2SY5uMiZ(Im-PA_!izh&q@H`uE4|B@i<_1-47ysd#Y6c*t(o!kd?_odoy4O zoxZYn8u0rT9B7Yt8~4sGx2F~uX6q@&Qx6{IOYH<nv|<9E)U}4a<z=5kVswkQqc^Mu z(aJ}r>3iZ4%M0|bE!<mdIuZAmV`t2EH)c58LEcI+98{hz!@y_Kg(4D)C<}!2JeDTY zu9v$p9sVsKs}E;QJ_MO<5&sT@WuEPOx6Q__{lE^>vlec+e%dRBek<P(Ul_2ri$8q= z%UkCLi}SYOpG=a^K`?1c=1K39j4OVC`)F$@KtFLA!XtX&f@o{lq1dKvQl>B9?2Fm3 z*ehEKKH102q~hddb%bfGb7u;v=zrZ4HY?bbqADL{vwURg)x*f-T`sEJFRViTaLt`y zety8n{DSr0hd7HkxA=h3&E_U)nPdOFtp<;?V=1^aUc*F{^HS$xcUj;fth!AVvko-_ z^1&C-WEnR1pw};T%%=80u+)oy3g7;mOMEHk?%WuLZNBOOkkE<gRgbNK;}$T+*S4%) zV1cvwuFoXz1DzWdoP1c2sY%a$RC;Bvnxfa{<)qKo6jK8nL~MpFbA}Eh{OgctY40yU zLG|kMl}kgIuUJ#V>PsCm_ukg3j`jEbW?#@tujLG)_#3%_+4M5%&QPwRu>@WEeCIY% zT*J=>;A$qfkQXa756R@QpAsxGbbKbQRZV4o!uv6wP0zIhZj-s}SOvt>wqEM!_kmTw znBLZOwEk0_{DJh7gblTnT=2{feykR(<J=Q{ludDh&AsRCOC3>LsX3*tsPwEVl@w9U zb9H;m;n;yQqfMdqR?n1NombFKxC^G+bFenkEb+gug@Zx&>1gAb&(&jP`g|YZDj4m- zUE}>a2v5oyN)$kDo-GItLJ>x-+=6^<@t4Zo4*scue+aq1@TzHSynwJ|_2n{M3-emY zKC=CHSKKIyq-%ic_eThSc%>ezI)~x`?5n^_#LHvcOJ0jYotYz0s$lE7i(`eN_ap2; zk3N%8kxolkHU%9s-&}@jykBp&zWBmrNPuK>ue%vqVpd}JBpRF84Rps>(9Xwbt$@}c zt|UA1n8el9!nc4r6#a5>tlL$J>oPJwSWpv9xe?}FP;<kN64jYYc<U6l57IJcCpo6~ zt7SpwjTG%T16VW`*C}+ZNadvYOt|PktYI>-6i7=<{t4Ux%{vG84s_x15$t@#P;(Ma z7cgnMR(L@*eUSWkoOqa=FBcAphfkamIG6}@U~qZhDqiBXY{g8?SMTIe0i-EElTtaS zOTDv;xIgF;VkbWNaXpMxGl}CANpb1EXL}8Syw0$uI5dT?xC`Q6z<l6zPM@@Pka(zl z!WIs9yo?FWx%05;FD6>Hc-!Q$5qy6_lRzIKi8jF|Rc4P!htz`-c3qsz)a{QVAHr$! z6I4ivu+x%@_@Dh_!c;DFQMWz*ELp0r>~A28OaLacO&YdznuZ>a@gw?Dw>kthi|gm2 z+jOukqQjy<vLf)zIdkDRIP#vUhkJn5?<Z&uV3j1CnolAh>piYT>r9b+=f7nN$vetW z4A%LHP1ca#bBA1PO?M;>ccfTwhLbxsQlXu_5>{84L7=CXk$G{AhqWIY3p%TF^96X& z2{8E3-NP}r_}b0lPF@Y>fkuAXkX4XMCGL@^qy%2{B+x%nj-jxW*XJYd2~q3~&x|UA zY^Njc2I&wp#r!fU1mqmO+ahkW(u97+7gG2?CQ5GhUg)Rv7||(hC!PNv+p$i3{Lgl* zuP|ocmylP7T<2sTz<@Fxo@Ub<tFKUadx3K%8{VKMqel?Ct6x(#?+P=`zA@8Ru)`B( z*`7y!z3M5M8^gT*<En#8pgC$aKQ%XbZPy=yR`HT&mXl`c#u|U1$teQ+=L(dAtpB+c zt5>}|PX83pHz((~R8>tUH6(?{UJqU4zjNMa_3=A{CHDK-kqRr?L%+$(;Dk5a&465) z0<GBy;tXK|*-CZtgCb2~z%RC%zlL+&{Lct^d+=&D#lcuQ7Hp(qf`pghfmhZj9<Q{l zxT+NN_o}8CjWQj^zYDNFXpSsf`C@JcRTX+iIQcK(*Rvx<eqx(i{gRJsP@z}oI{NJZ zx><2<h4A*=M!!*_dqvNK_N4P?LzB>6Ntvvd!vQMl&EN|Gi=EUuoi22QrPO#tL+u(L z73ozs;7^ns3;uE*2eYb4Vp#}1v+qo>x6GD8v$_^2jD(XDN$$%H!6cOvFJdm-P%edn z=F#eK8!0*?>Qz&m*+G-sz&qz%ir&NXNU>A(axcL55vCn?c9~*O7<vLcJ0V|k9L(IG zivu>|gwcj2CbEHDetCXpsftF5Uf1Jb`d4Q@=zU-O(e|DC5c&bMuw)FJX)&HGRd8sE z2}f}D_;E4ZwOpJ6ruQ<aTEeS}4=@FJ$Ug|K9{BCUL4yD6kF!Z=^;4X&Sz*APbZuyi zEUp>>BB<#00wtjq$NU!%!BgNI3%nyDRXkIH4Zjl4v6X}x{*Ju|F$d@8?a<{chWZ43 zoPl`Xw{9bN=5N3&0Ii%p9t9=^)zix_#)`^*y&r2Mdu3|P8;%9QM@eMF>SBF$eurm( ze9o(La3{l7cKoT{QVgbwhDA4laCgF{20Ax!R`T3~X3u}Ur}{G{AVk3=@SB(dh5mWR zfUfVA_~GzEZO&eD>s$K^c4AFr)ukQ!1kcqqhLD++rWh?vc*IqM@+xPaJtbAa>Us$n z6{KyuoAt^dL0f9)$1llf6+O%bPhO{fPCjSdwDj6*c>?bV>H>T}xqW%!od)r#j%Qz1 z>Uo7lsb$BbcE}KOT_G@D#cZ*%3I?jBj!V8nx}LBoh_>;_{uQ}Yb`dYjipl|$Y>kho zA6V!Wf;$MEJn9ToTEhsHxFRk><H3L>{y=_2XK45ZpggT!Qgwt|nUCK?Gh@W3{@eZn z=EvBie+1PEX>#`6Pg^LG0tXUch&z|*Q%`3R4qiIVf@QD6gQ>e2pLxwh__3&N2eqky zS6<kPfROAN#M88YF+$MM>yECeh++zISPUcLD3ko5qKqwd`s3N6!LvEUl@B5&Cr-x5 zK2m`?J(Yj{IPBvbT_7)b@A^Y+!(pY<x#EDVZ3N#DF*#vlS20UVX~@SWi#G=dE<P3q z>i%bOi73VHTCI94Zw~afEtlfG3|9Z$hr_-6@ig|7tCFPptQ)cEPPyf?h1m4E0a;kq z9=q+X^t`faLdg~yZ#>)YQzoqA<X76K1%wT%@eCXod*!&EjXahGx%y4%vmLQ(?*q^! z4YOK_gMQo5fBs<Qi-OK*$`zZGUmWPdrVq&4!g(l%7H`s4Ad^{6!#{C2t?#P|3XjO@ zU>uo9MgQ({`E5hE6McO)avNyy)5?Ti^)!48z__ma79C<zdx8bL+-9R|uR7^Y1)*um zSbY|Zw>^0+$ct7Jei%<P{0uDV;5=3~UxJ-3$&TX!xd;~DwD*(?C-E-}HwPpha@%g7 z0k(1@(tjqFZbW|kJ=O1O2LC>h9$8PN(QV}aW{%jmxz_%kIOtsl6613Mr3I7)9An|- zfN*OVpO~V02Rcpfb)u2RK>FKT!uKxjFY4K0V6t3{JoKTGxNGgu$mhV<Ea?Cx&+SKc zPuJAZ97=6#bS2a!l@a-{WW)QL52HQt8}L&!g+Dv)Y~*25rJXD#rq+LQ;B1SCr?=|J zk5>mqJcC|`7Rq&cCR?0$)$&22--@9Lw|`4#aZPm7{<Nmiv_GjW*zK21eY!~Li*)+Z zrJ!j^7WkR10ZZ>8?pf!;mDwBoud-u3H?%<|y9$!>T!_AU4V_n>W*k4QwKU2iUCz*% zwMj<F-%TiCNoy1VgpeLtk_q8_1{YFJ&%*w`pV_fw8#^#CbtD>pett$1C8HXG;zS;l zD?UA$>ONy1?qT7BVNq9?JJv4mwPf+^)umq5){r%38IRoDFCZFz_fkjd)6s5G^QgOU z5GKYgW#|}9LH}xZG1UfkQ;woEgBRHpB*?!$4~f^afOaQ|9Y8vuAJY(bP;<e*0#3$7 zTXNEku%D_atMl2h{S*xVCZ4q>4nE1}bW{@LbJBB}lK*r6h{#;<B?No-fHLysOC6=P zGyNtnAzDCq6krEkw7fz_H6^!A+)_?C^l&#~Tl|p>8d`IfQ@R<#m`q2D^8lHgTB&oh zknQ-~s$0>p-s$$x{WD<qxsgH#{nx_*05E?QwxMRKaMAzTz>MfHQiw9-y%fe`0QX0k zLu(*2*1q)tf&$!o8xy0kkHrOcRZI`J`rhizPKQk=XRdX^i8~M7e3Dp(s;O2h9s*pt zGKp`tL(+l!i5IR5kY(^1IQCqG5Hp`L?p2Lj(A^J!(z<n;m8sA~N_ad`%o}gBaThqE zpV^UY(9<px+XnL&7QzYfiv+G4`ak<4e-<lxc<w6hTKfELlu#oZv){-zPEC;LJ^L}i z1)@1OI=%O|t_%ZS11fDN3AM3cSCHdkp+t+1Kx{`o#L(uq10DFqvtFH2N7kh$j6M`R z|94Ych~g`t93joMTabRb5(#K4@1FZs7$j8N-$<d;W9BtZ0vkO4S@aN0*FJgnRxkg? z&eC{;wuYA((_yLQk0Hj;?oHVUgS#;1MT^J`c_splo;icVNK3<Ue<QjV$ULG1HQ_+S zz+jAlX?Zeu3Dm|QslO;<RzPLO;i$ayeHtFjuaH|%?o#yAWEVEl%>sAbu6npe`CDLc z%N+{udmCe1B(_Yojp1TCAM~BzpamA-1IcCZYEN3RPLU51&QDFh9<oeHX5vK7{Qddx zl{U+_<`1xad1HTn%Kb<wt-*S6>*oM=i3%7CzY<0FQ(Hr;e5`IAsTTlv0yP;Hq$EYj zMvS>HwkF6@y(Y-dF(%6gjARD?M&5?Ab-(LK>>-(D4Ja7<nup|r^zG5&?h_x$V~+ut zvU7qd78;&7aH0IL8ZnbSAY#TZuzzzy*4$73d*Y$dq?GBungQ)NH=7Ug`ZDaa`Y{6V z_^b{BB#w!V@rgpB(!VPJOgEqMX`EvBnLWM+1Kiu}NQ&4P->!$`(e&WXHH3SAHb*6{ z*T|ecOExz@yoF-kF(VF6Q`#(2l>Gff*DG}bZHtmy^d48T{{$+WuK;R)g>F|%1OE&O zZp%<O>sb&-?gH*q618@QHj5{>SU|`+MO!6@5aMI>V>EB;N={6D2er;6<T+q+`3ylv z!*1<D)7QDagRyqwMH#G)Xrbs0=XbaC(~c`GsNvP9G`dNjC4>N<9CYfa3%@t5N_!g% z%t;OapE;0_mjkm5Wa^Uv-(s;l1F<L`IYpJ+8LQE7hJCN!e9r&N3LgE^f==Fy%z6~1 zPutiID(FvpRZsc#m0&VyJq&-Q?`Gi#!lO9p|MvIbkN^JCmyYS)-ls7C#l|x*fzV=T zh(p!5gwotjLff<YS`Hn2lsv(}S_c1mEtdljErbc1U&%K!MbPUjz<m@~v?rH3DIjCs z@AvCW*+<k>`I%6H0iXrJxY_hmx)F&Y%LdY?08pR|`B)_t6?@tdXLrz-B&AQfgGoIb zd`8a@ec%S`VJkq#RLra)2Mt(0L}nyxf<Z_75Uu|AkMK!(p235#FPfn|Dyjg^Ph|jP zdwrD|j_GuQ&&BB}ga)1g|B8UT)V1}XG!E!oVI`9K@<F~`vOg7U^8O}0pdY<uK-Uk# z8?Jk+U}Cu_S_0Zww@WMk1jLYGkJr)!ui-moaM|d}LqbF%L)IcB9$o8)yqaMM4gnm> z_AW%AzUFOwfsnH{EznZ+sxp~oI#sV-eGhC8$P`Dubpg5taqOJ%i5cV}Z22k_ScIls z0@OI(hk{xaE%>|zu8$kJlVx_@T%g;%;Eo2Ye>K8LOA3r{qS%D<e^T=)3}5^K;^gcZ zu*s}V#_B$2;AzOd{=bXMC&vMvdj;6{gh_6EF{CxjVdvjnLQOq0_pvsjPFu9w!2l#o z=Q87^2hB!({OB@-)gR0c1Gd<9dSZn}1Z{Ig(cPu@z>K2XiuDm11>N$g(S1ShpD@pD zWE40F1@okCsw|iljprZ=Lt^x#cLCds8lwEvk8^1xA>p}(I0CLgFK+-y`)Pr=$1Y0I z6v=TeM!K`Mit}|41d)?pv#HUh$6p>e2Rx?nzk1w<<n6HOS>P#;CL_q6dDWFa9FklZ zYTt%fv}}0h-|pLQ&hf1JOw{iSuA#-e3O#A8A8B0)JP|tkxHphaH#&kt7=w*I2ivJj zLd0H$Iu@FbXYas~2?^g9w4a}D&E#K$Bk?U%fHqGExjLJ3FA0lK*4G!sOlwiV5<v1f z5E+oU3Fqn{2=LA0f0cknxniIg^3N%r$>B>uC&v5q0l%9U8KFCh<DZfmK*3I+e?mHi z_6AzmQ?}$w!*wpre;dFRn{y}(0XE2(D7#QJtM|$;ha}~Bjq$w8TWk2r=YM{4_N80y zC`#ZbPd>;Q2!Ug28v{P$Fm4(IKm-O+TphcbTZ6J1vN6K0=XWRdGlGX4k+B}FMCtVe zz(UNL)VSxzI7dme7fexFCn3T)tM~HF!TIaG%y3jm<Pc`xTu!s~4aSbF&4W+k^4`|y z-sEN;%+tJQ+@MvtisE_?w&#HbUSo{$e67Wng$!ZP6GIc%5XjDpGZFbQ&Rz>l-z!v! zy=m4FGjNwkN>^cL!B=4x^cb;W8p{?(g2LggH|TAIvJ}$-K~yl1R5Bl01pW7P07G~- zy^l&xhaO&I*47)!g00WKFtAQFWnqiGpWOC~!?ShVsK`$vzOrDm&tUGJ&yJMv8~Z>Q zO9#7P{H6oQ^Z(_Z`TZeM`2fVDYQ`tV*`bJkUxbvvU&K$g;!S%=3P8dLbKoY#SoJ_S z+-o@EAY@w{VU+vL&myKb<OMsdx>F~Yg2u8F7!vfRqY5<ne~tX7n~?npkb566=@QC> z7aI!iK#$4G<BznPgYO+~hH^2zkz1x{{sRxmPY~O-WvXn!0pyOF0I0dz5q%)mf9&0v zB>6e><1nlt&C)UfAp{_YKrCZG*tZH=PWUlsd7k!Oz1h6B*_W@^U+IsGW#SL_N2-=_ zA4w36`T(T_;dbD=vDt*?P)xuWt<rplLz&I76V&ly&?NoM%PWC9I15^`4{%&$od*g< zKckqhWbx4oN=2GOsYF5CNKK9#gQvG2X@Fzb0SMP5u!Zm}@CHFt{}W;<;23xVpv)>) z2!tewFgl4^nk}+uODU>I$2XD_hM<^}po57{fTXX&KZf8Aj}3rLSrA2DK^|fYdmY}R z_!$tx7RUkEmXfOp`V9=c!)SHjWF@d(t>lIMI53>#!a@5MLL@8=tSA_Bp93h45LMXG zUYV;25|UMT<35$$`*7500x}pnGF2)eqyU55(Yy&$H<MK8r0xQ!FCu7;cCSIh0!=tg zReeeF3q48J9TSC$vU9Iyl52JbmWMd*E;IB4d?HB;owbhy!!cpU7qFk$6hK*|j1`zC z^G|_Yby2iJmn#nB6O6+$1OX-;{sW0j!GnB`BbD+VFO->^izY(zSe#-Y)yw>MIy`F^ zYF9dC@Pi-(Y>XNoy<%v}!%>EiaIk}cixLG!)Bq9wi3XlDw6Wma4ajut$P8wBw|k&h zH~S^570Li9C2#XGvRc$A2jZXv^&xkMwc8UeRSX<#tALO3jW(+SW3dVYj8kaP77U-Z zvdP>QBk)GVVHcs#!B-bk6>wblgs>UY&JDEf{+ee8{A9Q&*Gpn1enkGA7Z^p%1Zx|- zUoj04l#V*X;*GiU^7A-DD5E@&hV(qGYP?)P{Tg%i*4yHg{xUe)qFrw<9`p~J=M<ET zuZ7xyg`*B{T0TDvsCBCkR8gIH7WZTRk@IKT&FCxTJAH;fuPp<ncpSb<Py&*h##;ix z<O3xMPp}C%`i+`3TsU9qV+Vt~ohSwWG4;Zj9QC69aymQLUn`RaX11Oj7j*zL9=JDX z`4$u!Jx}RJNcw660@NF%yyT5~!`~x?`|3`#Yu8TLir?wkm%GR$QZsV_#F4`WX%x{H zM-^v+JzGssw0IVA{0smPF;1^Uf1$Lfs3UoRf}8{}6FcPvlKaUNiB8X4LM&<BW}2o* zRTwSqs&YcatQ<XTtt33+Uc~Wo^e(CxnBoxkDCzXGIWQ`%X2U82JuEc~>|TODUlc3Q zUf2SUNGG!B^a9Sn+rWrzuJ=hBq#LAsjaH@Oi6LopweVNha36}9_)^?1=`!|#!t_r1 z^&^7HK>yfErCa#$Ct0-f$<5xHf_X1?6_hr=l#t6+*xqa#R*QS##z1uD>%R64c%g6R z8Nwx*TO9}*U>|{z73K_=sZNTK^{{tWyN0Q-#A=?x{=dm{t@F*QC-=PiV?T*tc8F$` zjtn=Xwd+bQ)Xs)d4hLCr)XQjglb9io>e1b_`LmewKfYEkK+hy(`d-bH_<0;bl{1ld zwD8n}2NPBxr^7S3S8({x$y3ab!r`h9kogngDi=9|>`IUYL-|0~lBpqNu@M)>wnZ^u zZ#EsoeWoCp;YmD*U8&!o#?Gjnf4KO4q3FlJ3lKb^pj@+T3ddm}zi;JG>zSut?}RI4 zG^dW?j<`cjX82-k51w36j$RQUBSZzn#;eu5oH^qu+wW~swKEt>y-+f|o$a6}`O@J_ zk`uPomxXeTYRnW8SK>+x98w+{>W>Z2!Dtre@E%Z@B<G-px2(q`odn&v-;FPsZ2^>^ z!A3Ry&T~0}x)*0;w$11+IkFXIc-n5|Ic3y-%;}!~`Zs%v?_=wmN8Qh2x0}usGHo-? zM^}BEL8NTIpUNQ|`^R}9r0;%4IwJpIW5R@}KgKD$xG=e#otH}^mWJm9m&PHf$@0ph z?{yngQ%st@=%{pE#|4B+lJB5#q9pUqD{vo}GKrXN*V9{ARHi*}ps0sWqYkp3GinZk zvSL>un3c`l%E2Hbp%%bUu~hzsOE+d0>xJoeGp4S>RBrX22($YRh79p&dShiDp|YgP zGc2i94dUf5qPC%+WM*Y(H*YUb${UBC8y8U5f(6XB;;gM_$@_{r$@5y4CQo1&T&7z= z9(1x+)j^_tqt`~tziI9JG<kPp_9)cMDaP97gSP1)@$ZTGJUrn9g<O0TI$7AG2I?=9 zo^C6m?Rc4+6!mbiFD5t)q;@XOY%kKMV}m2H1d&%dhq?~Y)m~tS+TWD9d9#ek*bw`W zL*A@r5CT-y$-Tg2!?Od&g(M7SPk^Zp?G1q}`Mqz9i!k;{B7r;Q&(6Lv(STjw&lq`> z+O+WtSaPihNz7EpvP%^;NgluBTgBICThN~B7HIBmpCb}go!sn&iklqr;%Y{Q>*;;A zlKTUah^EXYZFuWMv`zuQ-Xkt<G*44vrl6?-ra$AHyiR|_m&iC)c^o*;mp<rNl6v9u zsd1m2x<82*vK@ZF`E2H1`s-)o2w$LuX_T6qU({Wt*>v7GfEikSmo~uNrG3k0=@7*r zH<g)$7__DKDG%(iWo&8hxoR3bIJq<;k>}DN7!EdbyDU;K14>={arM)(;kV_F0;C{) z3qTt25zyxKf_(H!Z)<skbZf$C1qab8EotGdo?8&*fsf-fKK9KUk(~Hoj?~^Q=usdh z-ph?$H~YGm)h-;#NERX<wN_WM)SFs)ByGjht7sAadIH~PA=zsWn4DjR7@b(U`~%t# z+w;l$(l~FQ&(p`JAH`dF1yKnd6ogO@P3*GGi9bLCrHAmP+NsRz-%L$YB}kpUQ)Z_{ zxjpSI$`7sJR-P<v1Y-`Er((pzep$T0kT{<5S}1Iu%>P>EZ2lKFE?!ddFX3;be`fdT zruiy+f?qvF(<AIr3FQ&T_NT}}=Fo6a)wCSa&rMv5y)Bvx7sM@7pym(>Jzgfpa=7N~ zbrpU83Gt7QSJ-=5ekVpzr@CEui@i8M31DaIr9V=gqcF4ZeoZ<*x(UKWk&-`=D$%Ux zI`-m9o+}KyfImAMP2qocNtm3N;r5?P0c_7C8`sswCD(P5sC|7p$r&ZrwN`K%oA}hZ zSyqHU;J42zm1c2Y0fWz^8KIA}H_%^MRBCLHqc18EFWH+H$Zj>!QyEy?iGsfbC4HU} z%Da1<=x=^vaw>x-y;_%6U}!}OK(gfZv@os`{KxYN&{J#7>zLrAmyMr1=#d7Z$$)Gq z(H=Gc4>2@9+}clT{XwnMhg6y{dYv5R9{<?g4g#nwO{F2(=1)g42~X(aP8oJ?i+u1% zxR-Q!_IW+5kI9fyKgbf;(3&*}FT2w&(=(y#rD^Jk7_srxb!ZN3S!Dv=LJsD10O9Ww zbbP562mHs0*vUFA2FHkxbPaRqOm|a0FjU}Um^|Kh!25?8HHQAD$-xdLMS7OtdUc5) zJu=qs8=LSPe7imKKE<WbwpLf0t98W!?L@11tn}>~xM(pH5s?g-HP{wR;C(;o*+5u| zOL|D8LXxL{I~xkv9EL8&?OyPrb@G&u@Ro{bqK+tv0r_d^y&OP%k=s_p3N)`g0VyuY z#4{nn1GW(uj+d(f)&2dGl&1a_&io|w_B&y2LBa*edZS~kgr<oVkJ_^vxN~A9LHs`) zF+Kn>Z<k|_v37o23Ov-*_)uDwKgda~P}YCU_kgL*k8!>@XRQP657S<}uvhVsqkA)= zNI*^PZ5g1pV_$jZ;VH*jSQ^=?ZIWDTd40@l{QcpJ*44_0*1aT}Q_)#U!`h%MHY+T_ zAZrsfFGJj*H#!0Vb99cY*sJ)UgQ^J32FLixem$cbcX3V5DGxV0aci#G(kz3A*G`v` zu-ABlfTKh5Nnw9b>GjJL4N@02AfZM}BhZu=c%ZneNX?}*mcj!-LM)4*>pd1$sqQ** zdM7O}MFIj{Y&y=T1lw?_)9Vp)s+^|NBFk^Dw!>YX=Tkp=1fX4*qZhaa$l36nt({va z+9z33Zt+7@@!HEv+4LqNWP(73<COww;G}AmA(DJj?_-g&{O(-7y8?w6g)Sk4CS0us zU`9O3lX_zE=so3AVx{WFh)IiuwwRoeibKw1gyJ5b-12J9B_*>=1`#t80L68Q8Wz_* zn`~b!1$oL0q*X9&jp$Srlh@hH(nflksSpV%y4)wtiyU@5=EQIgR)gtg(uKr~%sb#i zlY-0jL&I3;jz!y-h9rgj5O+H5!}e&oj(*wS!n^wxl@N=|_WEE35iY%P%WT<SAz36% z7DUDWF4tHZQDPnKeoipMMmA^pO#i~bCU4xu&I|QlW$Xk3S?+;nG1j*JVIP#HL0^^t zukwR9lWl02wKYx?t6am;@UVkiOY2r%@$ga_C6QP9m=EnbLzgDyyZ2r5nou;e*0_RV z$J5@Wf<>X~H4}AVMrSFmX#M)lt!g<c!<&%wtoLiU(s0hcDu4H(<j8|BmA=2;a|WgA z45*Enk(!;N(|`UtoWHT|U3kqz3X%ZA90=N$8=18mZ}V%UXJvkNt?vLmdn+_!-0#Nk z^VU~k%E2JXmEJ_X56Rtw>6N<M>z}r88N%<hBFaFI-0o%O*N7AhO)_K<elhc`%&VWO z=hxOO2;lh|yqJuo>f$*DNq>5<d|RI_pZR4A-dgcR&~ssW8(&p%*HKqV5Y!gK^Uc!$ z-%4B{J>6Huv}-myl1D%u>gSnJVyN+BW{e`GB710aWt<%V0jg2!)WooZ+rO!?l2$Z& zc$&t&ZnB~SnT#{7Q-&szX8gz5C=-Q8ZW9ApmM{)uO-n(@y2x?1=0i)@7Z+s6KrNCD zREPl1!5I938)u9Bh;S|+%FUYjs@_T%c}HW%;zp}MZYIv^zI+lFX7{}$=kSFLAX+v- zf+w!r?F7+#XgHH#_*F5J8tbWQxf9Mc{yrcpWb--K%~9KkA9tjl^ak*AdnLSpL1B0@ zMa~RIil<n+4ye@Bum;lfsXt7DU92tAkWbu|X@|rppFL>+YcTYj?W#LWf;N%&HJ|e@ z*gO%lLd!Y|TiM3EeVgwl6-0S($bxiYAs^)M+69{gxYHktu%oV9AoA4Mg!_2Q-~qpw zWq`Gx_SIXt#nl!g38o&;nDL;Px>lqEGS?^L7X6j~i?6Q^XtHnHwh@s~kcq?qkx)ud zI;0d-S_SD45n=RbhDa(1A}u8iO2=rBoU{Tmx<eQ+as$TL_nY_gyzle9U+kaz{zJCw z`o$T?d7Q`T5h6GMpnEVTz_D+JjRcUGm^((+(kjlr6CjB96#oJ-8lU$n1e&KJK7dUF zkR2OO@ddz8<mxR366g=&R)9kg<~vEQ1ZB-9ci4c|&`%Mz&YT$)p@5LBLn*T!l-o#7 zD?Kfk3vGWss9k^ANqaO!+`V2Kr0Df9U{MhbeI>j2TkjZX8!QSL$dV!6slB<ixl@{% zqZ?NX$x!Jdc~|jy26&mnG2{&oimZh0`MLMol}{<|T$`?Psa??97HvWHG=+JVr3a=b zrk)4n4&IMo$p<6tFcOt)fn;HfVaVjW>ScfP-7Re3@Y`2~q4jO_2oHmwoq)#h4eaPA zG@!MG|7xc+h)l1$B=aFDCPQ#(K`8Z)dkca3d&<TQPzN<Ed!be^?eDw%Wqm9Mu#mRh zdlGJMqpyK1>!{KbqE>Udg1wo(e?-vZLGXIUolm};`f`e(Ui=$$ZCS!?EbGF^fnx># zNtw}ic-t@hwT2qOmWFl`hKl!%W4gQ<oYq_oL8nB8Pbu~{=ljUrXQsL*BBcKW(-i)! zN76^Qcx<y?&Nx<L{V*&bp-~I;0mST5g5vJxJ^K0S1Uy_%Z@qbDQavGrewbB&I~fyj z_}x}gOS2Zk?h0Gq_{E{`d%5%A{3>e?70Oe5NPHjE>iOl7lvB3@<D#NASJ`N~aezUm zM#Y8qE?wXLvM6`y2JJ9<MGqv~4MpYJ?wNuLiPUEcrzhZo8)<Kh)4=J;D{dxw<L~mG z`Br|tM(%#fhebG^J)pi-dfN$$0+CwCAu~D-Al_wJ2Ugx{WTogup)c9<AX>>1zgAJ? zswg)vbqO8z7ot0v7^-u1?Q<Uw3ux=*&`eHO`7j8`xeKEiJR|fGpe4YjAa_BIuqK*l zswm&PbarQJ{4L$)3+B|zt-9tOr+h$lb^C?a5G5>pML8we^r{2UW;z6e<Ui#OZr#Z( zKg%&=Qwk7F42sSBG0*}s0X5La<orXzFq$l~y}f(QKqnnO2P$HKZJ1{d3Icyo5&dIB zx)#uwa0B!~tZxEB(+WBJ1ByohFT-CU?=mB$4b%>2f4_DB{NhjKEXdP~cBd`6h!^z8 zY`$f>H3lYVXMkqq>rL;ZE{Wy;I<luPw%W4TDF$Kmc8qM7XzGj#radq0wCJ-513Eb{ zGrX*KA`RFpZzOw#z-4lh@A+^u#eM4b^cjOpMxcG#b#Y*QFn~NToVT1z^4fkU0s;&P zU$U~Zq~kIr&ZUQE^{sAPHw~~jW8s$or)iWikkLTQ46#2$nsHAX0W?Q`?7s`U2SJRX zppY#8qpaG{7l^Sw>bhdkE2UyA{3z_c%;<;pB}hl1R{GnD_swGWzO|7xx?Rbg+M>_C zlhw<Ig1)ebhjIpOCo^Jf-zR|-w%e1UPt<X(qm&8tP-fkv+Hv-(<^iFQ^tST;iHe)3 zJC1?@^DL_u!6}rgU<XsZXqtf5RVHAXf-a@%XUqGIpek}mo;AaGg^Vv(jFAV_AA@|U zSKnZjf}a40O<eG1AZyRFlIK^FX7=2P?H4GR`T`EXBjVe=N=1NR_dfuudt(re^+W!a zit827Phq&QIz{G^(Sq^B1~0xKlrcSKJKsIo4CMZn6zQ}rS{i>GeoofWP5EHEOJ?Mg ztNH-*({^7OP>Ewki~mvJX6T_>WI$);-TF0v1u=YlssYk|@^!}rL<6~u+*z9up^_4L zSOj!&$^`ou1M@_qf@?`+nv>0!Sm=I(Tt}^0LrJnmH7a1b9|&#$pb%(4aP^mJ5`t<W z1Szkp_e?BOehpq+noSj-F`5VHBpB47Y(on=jrr&_9w$SD!H~fGtl2iyL31bl+tc=Z zd#BFryyLoe{(Q+@n*rrh2ms&4CmmNu1>Osw*I@kBPEq@#ty94Mh#fj{vIQin7&0oV z;e2WB`#Y&xoi-7P0F^g_JdX5KJYCf*K}qHyD31{=E->rHUSSUe7OwN16G&1PvRI5q zXBI|#Q_a9h8v)QDKW|9A&Cf5*LCyip&qioWCVghwpo8C4RE0sUdHMtgnR`00&V^(> zbr(Ry4RkSOEwS`G()K0&MaFe9rvuO5Cl`VR&pVZZY4xrG0r#ANSGqB2a`A?8sx-&Q zhos7@(8*MD1eh=*=&d`XsCV<v#@Ul9F`7o~a~4-7Z`1_ca^E<?0T4eG07@9)Zmo#} zrq78978SkJ>aDj&P8$^Gx#a*!`z0^koi>l^=c{K4r|gI3f?-@GDPUr&2AI=wBaUAD z)WpYS{rkn(&=!SJwXnUr?X30;G(e03;2KZ+?rLeybzF|<Kkp%VkWW&av^z7=qf88( zmuA~+_Hh~%m}pgzkXQ8FKCJFfnQ&CP1i!NCR{)J;HO>$MbcFCrC7^CnQyOa3>RKxJ zMn(~mNv3bli}vve3ohBBO34Sc@4<<^ke&J^&;oq<qq6WNcoQ?5NHeve%$K>n2FOtU zpZm;{(H4FvN$%iZuzKcN5fx$=g>L94nh3z=?-ZyU8pWNwI^<q`uJtsx$5k;SM>@pO z)&pOF4s<z`ta-e-j8@sG6&cwR9Nq$an?W+DesEpO#&pL5Rl4bTv53}bJs6uZ`QflZ z?*4b$W@#$4E6$*g>Qq1i8v;U^OvQdL3}XP)QO>emb^{2=^b6yOWeIR3)yPUwCD$_; z&Imb0)V|RM1)I3pylCw!@KayOEPAR*8GUV@M>kiqIxe2A0HQ3lZu?}^;o*0(b^|DA zF=ajq1?7;=?xB=Pmz*m<LICpr6;Mo)Vumb%#~j$BsLdgB5Fg*vUIj9K7q7r?=K<a8 z{0zZ6>aVw(orZx3DrY+=NiQntS%LT|W@CmtSvC5zPf61>Fb)GB#A_d2&uBw|e*)JB zRjK+h3lMf+g8QZFmk7;Yx%=lO1L_hvO2LBWhqId|g1dDQ_$2b2q1$pBVew!N1_8h~ zJz6KGeuua|d=4ZcIU%`!%F}oSntKz-?LL6FofNYWfDiToWtvp%X^!_)pw)*@6Ra^= zK|hN;(=z%~{bqzsJt4eVA!DHxJc?B<Xh&I;JtXV6kVnZpNS1<s^#TLbud;Au-1$I` zm_jojM1BSL@CV7MSp*QW;H}i+KOTK@`aASf4`_62k=fWjk&vhJ77KuqUB79u1|r)$ z&;k67T(bzPT<`w;>oPS!4s*Uf$>%I|C(A7WWW50Jj<U%P)HBh`Ao`ji9Res%l(7Pn zVpHQ8=zLH4B*383Smxh0)6bA6R4OUI1C2e}hyFy?G%YP`wITZ@z>@@Qg2peuH$Znz z&&MiNwi5s>5+e7HaM1l|IU8mO66PVm{wMc$E_B{-l{^5Y;CxVd%C{}5xlhe1^#lxy zecAzDuV4&JoH&~9tVyy2rS;vYuoSXP^(pQ1S=lQ2x9^3*s=)+|nlH+F;eb4Pdz$W2 zZPEd7)4f`DfB~r%YkWa>mCQ&WUIhbi*6PxMq^9rZP#w_cqP#+ds{;)-gBLyL1spju zM*d3KWIQ>EMUa6GpdAM4P~ear0`0I+Uc~0HqK_glW&Y%0_dv`GOcZ*<P6SQ*y&tPU zK9WefbSbL+FW2GU6oyOxR}KT%x=+6VRFzG2rruf*)W1MMHk8+V<_;Fz?XRHm;ilz% zIS8X3;Dm$%mQkO^Rlvjm0XmuE5qwfH<HatB+sPv^$b^K9wo+TPARM@~B#!qC7+Zk) z-7F}dC(}qS-8c&f!OzI_qi}Lj7|?TgV!Hqb;Dye+(96)*q@CqVjWaTA1<2`9(zs|) z%qAVu<@wt7OnQSE=F(c-?i}C^IY+Mn%!OP)=Z^h*i`Glw#wCXVd+ayv4v$g>07mSX zC1%kK&Wf>n_z-Z#3(env-pO<w1*^AVS54~av~^lk82V03K-g8wr$=c8pXglk_J1XB z0?~CN>dbBPTp1Rn3^-7Y!IiLO#RS9ETg>DxXUhT>%MEi`B^zp5Y0xscLMM1{;^R{N z_qQ=#{uc4wg5Qko#f$HNw>N{I!zh6N#@x^+0s>zs@3GFG^k}eMm%|!_o#ZS3G=6vX zOB)zjEC-`H+*|N{dtl8@8H$&%ftJmOqjs`?|Hz5Va#4=yo5^U!oa#1tp<pCbvZg|v z1K%*(k0i7R>hw_w)X`|*6vIM8e<(J5_X1t5z?`uD{o}3w{$tNei;X|t?Vh4)f}7l# zE%x@>h_v#v^|KbL<(y4T^`45-hy>cTVnbB3s}ZU*RRt74o%u4`YKh~X5!a?6z)qBZ ziTvSRA}PnT?OPafK75_G=fp8zFYIJ8vG40}x&w}wfM_}`rkZdKR$_wSKVmw$?l<p# zTymGPp~NHxHv4crl-A-QFJ$Py7Lqlu$!-#-n8OKF!uI60st!yS^sRF>3#@tn*{4z+ zj*P5e1E{#-I<=Njg4xw0qrj0c_T^C}3#0n#TnG8tk?C2^?wW|J8sUqNSM>Y2E-qcy z9`pBlyT_ibTwr_o+)flP{AwbH(<#I|4kNlKxZ7ciSMb0!mwk?h@&Js<0U=KILqLsu zI{Q)!K$fKk9pk_zTFKz8fvVcei<}ulry(5LAth8KcaxsLfUqk*Yj@UoZcF4w9*lYt z7LCNEsUI2xj+C}V2|R)5$F+AFqmThQl<2j2&!6$~)rl^Ze1C>`Z-`^9<u7+i>>`~` ztqV|M0OsQ^nP?L|*AIZoApk)O`n+dQGv>LYtUOacQUVd$52K1Q+iX}z^qTB*-H_Jo zfp%Y7eM>nniSE9z$NVty@2@(dslh(Yg#dDuzaAZ3T1DTv3+v0V$tr*&rTw)<@IIe$ zYxH|^o%uB=69YwGO^GQml!&a+b`!KEfpsr=E_La~U85|0+}pDd?q&(0XNn)<pCor% z)R}Kt0RLC6-$%-Y*kq>y{*^Li5LnnJHt9ub8;94xPuytSrQ3g``X?g>?l#s;UfFZ! z`HaIBP60O~0?O#RUjdQnHQ+1!wNv3E!fbN0Uv&7Mer33I1yEY5ncj!d5|po-jZj-t z;BsE&g(WV$wQ6;?9DOSwKhtty-b`XbWw_MxA(2?6gNme(<I&&+45gXkX!S>-*tZ`d zXBC5Dx?&&Y@5^YVJrgt`FNvbLY=Vzg{}}D+^B;+#o9MEYW@QnCjs~-q^|+={R*;l* z>8h<6pnv)3DBj!r7445d!R?yz;hCRWVSj!C_ReD)II{5DI;k*5XSu_AY@f^-draQ7 zrR7uSjMHW~b3l^qtRMm)Q1XbYJpgxo1J%OMr4}t``^bYev^)x)g!1N(FlSo#pA*ce z7yPnzmeIrbO^`+Z%}sPa)43dn<x6PKvvrcM(Lydu->YW@%Q#c~bhe@+o3nCHa9}V$ z?Ic@F<*hCd0w#HMRvQ%<An%NU%toCM&lA~%k%8{gw*K40kGv@9I<gzjnOM@__>gts zoLsu)xz75m7+bVc4ZV=2U5W6G-=hV^N}wU&pIzB;IXRyVXddK&RL&gpL7L*1wI5m; zK1!CPm)LSoJDM+GAE4r2b~w@6H|?d4^2E)uK>gNHw9>4_NtydJY5dPmwO*vlneqzW zgHL=}<3cy8#pv9)FPo6OCYMCFXJ+w82t`|`&KYZRD$u0mH~PD+T}E5f$Vmlx|L<lx zhn2R96g0oC*gVWDCoWmNUY;n5QoV&9QD!_H7*o`~cWTLxL`XXXrGX)UCfe%E1;<_> zpUW5NODNq0@PMgD*C(-O8G)5qtJw5g#?MN`Hy=+)$}Z!ZM-HkTBF1cH`5tG5)csJz z^Q~Fjv9j=8PZPl7=B=UIt+EY)p9Qsb9_4unUwzzqTuGvBuerFDV(o)zZhKkB-->d> z#~Rdfxwu49t(9F|<oCqb&fFE#e)aAOUAQK@aKezs`r*UAz|QHmADT^e#xRmYc8rv` z++c@0@PZaVzJ8#x+T{BLn36{3ajk+R^bVg>>%*YXPuB#?Hk;cS?75^kSRKvj!yC>! zr^#{+=_c%B*rs!822<8{C&cB~y*OoS9KyLnDs=iw8fj<=Z;1NoxWsB_P5BA1$^&gx zY`brXoaq>a;^{z(T$Gpa-a{(5n=|_FB9B~_;!Swc{B3`DG>>^5#g~q;<4Jlsh~oY( zO%pAuuUcA~nqJWX_qg$pKxSbL7a8Azjv!%4M}B~6BO(JdKgfD-T_ke=0=))!=4(Jx zcnvDdt7MH!K;(KxR=cpIyOhmV{iXSA6hZNv%|_UD@o-DjX=wp`JJazPb`8G~>0+=k zJ&K*&Y38}QER*taBbhOqt)Q4#PN3+L?5Zbnom<`|t|ck+eGsVH@NKK1JuuI;#M~`u zf@7g>EXydwa&j&)#f9Y}VKzCJe&Bi{jdm8e&)JX9Ul`N$;kdVW#C656c+_ja8J%V# z98rE;KB!2%fUD{|97JG`C2|*!Q;1WtP@fZ%!BX;0QCj0sp+Bg=+1dd5)U;ng1hnl> zMof<7$qjFyL9#z6jEPJ)SOpSK<iWf3%;q3oe+?8(R&$c<Mab_fSgr45@_3f>92Bpc z7`M}cqLCJQD=ctv+-VbypxB=xmL?A(o64u_mgn!nc=+WTT@aBrv+gm6<UO>S+>qb! zy~Q`;89XljPUl)(zdmx~{4-i9bD1MHsNqry!5@8WhQG3mYVja1T*K0p3m64*$J9HW zbJq8S8=JEhE}ZvLU|lK_-%=|?7j028im0k8zw-w|l{c=7J>mhb5mG<TO4DcG;W&G$ zFAUo485PjfSAI@9Jd!ZSS2Qu`qA@5L-edv^+83xs(_&4_gnTqLftL)ANr>$89jr;? zf-INqQ<l-)h*!lZ@GOIuY9h{5QI-nT<}N35A4Ba)Ee`&BW~;4I(&oZYK3TQAH`>k= zCj-<p(M3YmJ5>U@tH_7o8?_8tyWK&c<9ZIF5!VpvY|?XLz;Vk8)ox1g^Rf1$s2(Y8 zdhnUZ)<lah9V{JmHjx=!8NqJ)`K*z)ya_2m)8o_6`$+WJZoJcO(+ZyM*t*Vk!AB*& z(Y!aD(3g0N({VSJ5!NB=Sav>)!chl}cQbY!%fCzlfhYV?=(D$d!~T4-GYduiTBsU~ zUDl}7l}+^V^zb|6#^Zc+k*@|(AdT$-(+RGOEGrsIvdRV9%&9idOY<zqHI?^^$MTJ+ z_Hd%vi07|`#(k#<TlqL*A<?*Gr7pg?Y+l;j_v6dKbzyB_vmg@$*hBO9Zrf?Dhm=}^ zFv)gON~?)hT*E4>yKL;x-WQjV-eGSyrZr(e2-BcsWq2&0<sS5{JZh=vy1)^1x(+jx zRa7n@-59Nx^5I@O8u?ItJR($w*6sGgnD7z)l+aIOD}(-2^hO>MLa+EQj=K_?@nXHc z{!1(<$rNA?`X!C|Paiu7Wh75u?~S0qdDo@xC*A#aAQEbciaC^C{fyb)`o7#oneDuA z{s>-XL%C&KvUS@i@1stQGv8A#Hd%_&RJE&o98m2X?YQRW!@4*5g{txD84HX>Y!z#A z)=gC;6u8WNv>j@pWgDrfF17mSj-cIUC`x3cWK$J}xrpttU7qzi#UB4c57WNw=&l(j zlRRH8bzb>8k08*50P$D$l`YD1iU#Mox5n;zj?|7FPe0^?+xz5vz=G@C4oJw_A{N<- z%4*b*=Qza<lTiJuZYE}<cL;vrwjr=<61o1<<4rhH`pg^!l;GDb>q~GF3`;2{$|D>G zPt1>DH!0nt7LQ;L=X%0a$uHBH63Kho&F{Ufq<WsO=w;+uE%|*IzOq#$6OvhJg^O5` zHXpApj{ob697=pI&W~+vs%@M|M~mdB^uZvM<V@i}HJ>Tq?QQZiOT^z2aIvpaEg_pt zCyDFeT<@NMTsMK->!afLSqu8qpjz6x5eCVcouh`<s~!*KfA3y^p#}PE#v+L{^X5K4 zwh>k0lDco^Bkiy(v*n~g-)gVwVp4x8`##bxbM3*Yrg8!|PT&Z>!80O00qs5>KJME{ ziYn=5UcrW5X72JTakjxkJHjK?%NHk{ht-fpRC}d^t*A~(Uujt%yU(o1=^8(WS?T3Q zKu_m;<WoyqIjJ?KX~0m>hlHmQ&8|X=y#{hdUA+-KwtAcydGiqmfTp9oaz;?+1cW;d ztwJ?(>MW^B{B{aNQq1v97?=0$vu-R$j8N&dqw1#9M^h%Qp2m)|BsaPJLgEMFjJFSe zmVb(z_Uk~A4`pjrES5fX4s&45yOSjkNp4VQ7X+3CI#@YaLCAsX+t>MB&Sr4)E87dS z>b?nlgVynupS$dz7fn_35*X!@CMN{{a>csovP1K6ha`+2GDF(;AokHnFF#OL?i7+! zP*CkYsUU6`B8ib0@<dJ%<h@C!TuJf2_fkTf_)pe|sk^KP$DLc?Jb&iQE%W+l54G^8 zFNe6^cQ_?`h%?=NnsXC!OXHl9Y8zk5=l5+7voEw8GGOVrv>B9G80fOn{g(!g{E;=v zjyjY(^@wHs25D7jx#qafrEkYOm6&f(>0pb+9&a=Zo7iG~1uq%BEN@3o!OhLhXN6OR zw5k62Xr3MKeUKCbtN)<R3}I$=N`j_+W*FO@Nn*}ndJrPqU3H{dw<DQ4-tkp#HsISK zZ8n6_M2xGy^Z2Q%_#ouZTkO@J5xAM3<wb96b;Ti!eIH)jmcI03C+6wm_NSeEO^=0g zz4M#becFF<^lWz)PmUGHr!S*<j<nJ+)(MM$A7Qz@RPbzCSG(DdU>IyltVo7%-Y!SN z558^;VPs?!L><z$1O<s&5bgI`T3YgF2S31+wU|GP3DOUEj7?PJe>F+ivTPPr>?f$n zuNVvQF8r=y|FHQ?sCL7T<>(~g7K8xvvxq?KK5(zYdqnz5Xiwel5}c1mtlQ%Kl8<X4 z`?o$>Sw{r8e7Np=dfWSoROp*RjR~G5(ZSyCj~au$K|wBaA6d_AC-(&vvIagEH_FX) zZ$=V%jb2i$=zESO!25~Nz%{$Jz83GsWx0!srorQzX=O08^2|E3(Y1NA5A!Wbt;RxU zX7i2D*_YyqmKBh-9v-}6c$Kkd$Tjdvbr!~Sg8a#sy7Tz?`IE1SJs0B@<7^Sr*E-)0 z(`bX0XoV2AX*r4&J?LpOskOG0@>qQ<I~5O2k0)MTamf7beWBl1*o%f=+Jz<AlBE+? z=FK#qJ`0Dq;wgQ9_Pg$g?8@nF@$*lJBi)1zIU^LeY?8Q1l51bK^W_)&>+>zQFjbp; zW6klD-7ldOwk!~~Q^VOaP9?Y^D%wlkef%<F;Z`=_$dFGBpP4=4{dj1P#K`W5{y{zi zGYfNU4c~=TK8IHB<o>+AEUn4aUPR!khg>S6Hrs8r*h`cRxh}vj<NEQr@{*7e1=O*x zTj9?^xn{_WuU8dVSx%;8w-;k+c4~{;<=UfJ@49kjlblUb)Xb5_5*S4|5{8cO`6y&k zyAAXHdsOfNb;p5!bcqK)lg!3S<_4c>B%x@Hz0pD7Gd}y?GKBm;;Db8H94*Fac6z}7 zm_HgzpLE{Namh-B`C1a&85hwfEUYd3X-8v)>g)Z~18YjY-&l$dXMA5aJV%ynikNj_ z85cm0=}tcV@_pZ5Ld3!TZpYsQ0kDE20SlsaE<b2qif45v9p<DS>5eNT`07w(g;`V3 z#tMM#<7a^wUzoyKI2vCtp+(;EridT4J6NanZ}2%URwp-9)s<`9_c8?hPDzR5h44k^ ze=qF!``PL`%*g}nh*2J)c_rA3ImvSsgZEc|makH=fhXvi`&RD?R<iygdwJ&;<BM9Q zC>KB5O_3f4`c*9B)Hin{eF;cTN@r0hPkFZVW*EhsQfDddrl0mJYn%h2;E+?3w18jR zpGzbf>VuC28`$HO@4;5I<yF}VKL1>_jfg#HAQhE$+u`IYSVG-az(f*4s@c%*JebCA zkfNRFkC>-DJ?JNL^7lD<sD~$nJJIf*@&`QFow;{M@u%5HvzuB%Pd4bg`&cM)Sx__- z$V2v~?&f?7+AD`tyY}PLQ&=mH$RJe68v7_$?jYkQb>~E1|NOA6@6R46Ew;?*DM(ks zjgz`^r(%RO6OY>i4&|?7kDjd0bO&0MM+V%Dpu)c!H#r{+=kO3WLb|8mMzWJ!k;0Et zF>BvS_MiULfElB6oP95BW0uG28YlGKUe1=9|L5Jh;6B+i#e>+ZYT6cLE)am3mvc=o z<!{&gDoa;%5q;WNpIhB&;I<?ou_z&R^d|rGizBOAmWzkft`4}mNs39Z#&`ed94g<B ze&9LhDl|Gdc5Rk}wV+<&CXH@dEAnx5wt$RMqudh{>Fu^fYwTQ*<#_XoUO@nM{@;e6 z6d1bx5IeW{fb{z9Dz`0;@wLM`T#=AaT*`9~JAKIC<rldLjykGCss4OD<&qUgMb!J2 ziR8-JXloZ<A{(}}KgmjdF?UT|A8ma9NQl&JkMC-iJ5D<ulqLR&+!&|Vh;a`u>)y{c zC5%mO<Q@-AZoq|vv;XeNH56Yry__WV_)+{x*6;gVyMaDZl6&6fvkZUkl~O6FYDm9I zMn3QwOJx^&|G?98>pO?!bQ~oQ)K|!1so!gGm}AAx*lNGbA3fTfG$SHE&rLD=|2BLx zR#23yOhY4$%ZCKp_Li`DLBdx!pNG+lV$!I*_tVDmQJluyU|M})Z;{=0pT~E4<dLIc zQc9CUKSlXkjyIa1{Qt9)_2*57yT4;Lzcs@Ao?q>y)+;IfcF{w0dx|)T_vEETbzrzD zGRuh}fsn1CxD-hmjk^)!r>Xu#4+`z%hGIxQAycBPCi)UrSh}K`poCJr#g7|NDrKL2 z{au~A^6z}L)7g8;@=|7o(h%`6LZ-<hFKthqd2Y7=pKpxR-scSYfIeUmmt;sI`t>BZ zcr)`S`Lfi9&#S)t0~;x#3~{yY8eM?gr>a63<Ml8Wn~3i(Gv!p(idHUIpvoiJBL!bT z6s|oDp3#?b&g(tAGmby%`XblxV`@+CHsLtoSHd)7w~3I9SOL{vzsD2{Ze!A1DIf_2 zDM5l@U*Av!ER5b;{I#E>lXT5f?78>>!;;eE`G(M3<XVrD<5wrw6C#U0oBgT6`0zrv z>ZxQWRyQSS<r!1CYuR^gws+N4?@NDg)%E!ntx8m*b69!qc4bNQYZFYg_8n_@u2`U) zK=HBh?t0EKs+Qg7$_FB>)DGvgSr&d>GBGB#i5I!f`fU;wQMXnJj0iD6c8RKv{c%L6 zds7hymRro*V*5$llu^h*xYGI=EAi4%M|1<m*P?OUvcql4{=HQ(gpGOl>}*R5Q)ze? z@aG)K^CFur)3`2a@tfo7aWXasjz3(qXu56+4RyrVuWVq4R5<=*sy`(v!pas_GAlmB z$#vpI1zHZ)vz0b?_%J;8AvCiL^Qv)!b&fr0j458vk8b{X;G5`Md&}VZlIDk;Ce$lG z^Vu9To*$_WY%fIFiMlvWH@X<j8ab}{@(-QUqE)<DDQW#{yK2YAjS3#jrVBYC3&a;p ztILfM2j%95$z?Eo`R6#{&7Y{-4JxxA`^YQsfU0<|$h!!B+e50F<%Kt~?Uh)PU$XD@ zWxdh07l<yzV*6lhi;`EF0KGk553Z<uv|-Q~SA>6O2jAM%vfBu&06kThpdk15T6SPn zuE%LV*VlieYkYpJXY9r3lhJVH0oc7Ueg)=lbFb<S6t;t0=5-}|q-Ohlde)~8NJnvc zsjx3}6|)!G8#2}7wp9<4lL}nSM-%5~z)F}(ah-4uH&M2)l!P02t<G~yK6WtQrpm0# zz$ap;i9S(c5JvkjyJ^y4(}vQv_}&ZVrgyB5^|Yj(9K-WWwqV||{zpk83UsK*WggOk z-uf)OIx?&o)S*E%Gs6*?c{dAgzKZj;lyfPf*Sz9B>Rq_EA>$F%aElA;%KngcMTu-U zCMSU5NL!B4J4VvRkFHg^`yP~lV8^oczhBtnb9FyeGe)df><Nv^bHDTo^>FHk%r|Wo z#qMssuL4B(<e`_ZI?Ovxr?MYg%i~^JZWsGvjz4K7(a40MQ>mZ&mY25B7w_t}mWiU8 z`8sab+$f%-p<3c-QBVJ%Hl`%>9_H;1L)S@eZrWG6$K#Fkt8e{b<P2LgseM4>U`g>S zaQlnhDk?nWx!*QE{N1*fJra9UnpZQi!qKD;+ERN}Mn0}rj)rYcVxYffIGM@?MkjY; z0#2$NuG^Ut^hUpVa6Htcw(>o^m1B}@yx3W@O@Fwwj@8Mr@q0IHj+6+V2hnh-)e}a> z)N>mc#Z5uxXY&0PmR2qz^JXps_rEF)irp10^0{0=>7{+N64{6-0G<guZD<<x;VE;; zfuPt^M21yI+O@yt>vqJ>$IR}qg#+%9RW24Ko~jWfbdsSVKJ5KiMk^In?kVExo2V(Z zkcDVFla~~^^|>y8khP9X$aPp+u3sT_JME~#7wfJeOA1<Jx}vb=kN~nr4H1jj{Y2Ap zdpH!*zSeCd#CB_=jMmV0vb7n8FZw9kQ}s-aa+5^~N?R#8{xSe_J+!z1(;fLgukd`E zQZ3y?i=SYxruhY!;@B6}@yF>hfnvg2nPRfS^Qabep$oF(+_rVU6bE*66OIE`^8a;I zC1`IO>ARXa(tjl67w5M4EWrqvjEu&CX%Kz*3t*Vfy{J}dUwhygvNkg`_>S<it~<3< z)-J{`k(HlzM1f(reWtawY!ub3#PmSwAvCC}G%ELP<8$b4A$;z(x$#9gnh96zXPHb7 zjT-m8@Si($bx9Gw<89KsBRx_Nr}nIx%g|Jj)R?!9=Ck1vA=+y5E*eFrm(N@=)z{yD zR~<>!Oc?tz_Tpgo2C*tJ11<NCa&AZKiNOf>#b&ql1Y0Gm7J+GwJVT<=x)I(qX#7#j z>cLR9N0Lz5_j>#2McNV5nyYUA-^7EixY84NrrQxK^RPx))sC$T#q*ltf$ha_8?&N= z;uWBquGLPgUQLZEs+#?jwa{P0cX*%v<*4P6IL(P*h{iAEUGT6Y(5q!ZqZeIMSe4ly zFLUQiXiok6xz1SWqP~V`di<d2nD-sIM-c&h(X7SaYaD)Ew&K|d)_UpzbMvilA5$Ss z)UQc7I6}Im@dY`#i5J+<(D!XT&Ceop3iP-qwpkVX`Pc-#&rN<Fa%rm)Gc-!A6(6me z;@J)h3yJTgrHM9ue!OMuJO3YN!|7(GVt1}f%rHa)#ckIeXlS7C@l^sBG{YyJBbd$- zQ5*PW+4cFgrCff6SA%B@ImATipgP<`&w%wv-?K2}PWDOFodO=<Wqe?s!-Mmf=tt*m z;_dZLVwIFF;gEvfZYRh0P7`ciS+?;U4FTOR^bYdZNCocEjjb{lC3ytBb5X%dfARw& zIGkTU{`u66E-K1(gT<}Hr~gthw!C1!B49Be|6s}+91~Zv`%d;|S$XLuNUWzRkMO`K z&8E8{tyTzGNnhLyTukm4gf*kWFu0<R69efXCGG-#;}pjmYqa%$efISF?M%;Vfw%^f z|BB&!uU+}fs!owtX0u7l<R@d^O&h}U1*9eK;|~-asnSx*6P+cb<SSndF4BL#ms`lJ zEhPsxZphQLKer_&FFZdhay%R(C(A_4kF52gLHw>-M-A}^5F&5v?e^XXR3FAg2O7@! zg}#c|c>Av-^y0VCVDF24y3L<VvmBG3pzZN?{SqvnJjp+e9`);wflgbMEbUU~!WBHO z_0;%wZK|Kyrs&9W8Xari=IM`#-TuY5W|rW~XR3cZOf$7)LANpZV1=17Pjd&lV|enf z7o1l0xGJ$MG0^Jjy}Hg(fq3#jKZPko2{sF&r0PBs&7om9lE7gO4iL3|h|qXl*>b0y z+tnMbx^ch5`pnCNR=-RsNjLI&{1XtgTHfDrG5k+cNf5qyN6I==!j3hzZcZyHIoYzZ zsbrIGGePi7RY|AwiPt-~#h;5Ai#^{RIsA3)luPu`HOJ9w*P*ZHr7E;<BJz4`I*i=3 z|Gd?bP2x|w`F+}3O1Qy3I*7!Pu~khqytF7G(Jt}nHw}MIpZdq3-PgB@S0c9OK5o?W z(g08C!r9nGn~u*)`;#o;YIDhCp=IW#iG<4dPT5>hJYyuaT}tbH=ZA99Xd8-d`i%VO zMdKXXl{|9V;kHgiTglht@e|iW{}n}Z>}Ns{rtPyPK}A0|jsLxE$@4!VTA!AsMwlXl z$-n0Lih49dY8lyyCR-_iO?ScZx>_!-!Gr!-D_suX>c`V%gXDB*yi!PJXo<u3+j^Hb zBtF1>65P0#)8KpS!1rQ;P{DA8>JrEMEaQ0#Lw1#ia^Zw@>&MnM=Cf9<w}s9^x4DN- zR-e|gJ=>rnrWfVI!Rp{bFKB3a51}Q8>Geo}Jx0uOAUq3i#~WWh%-2pTP_0vCrN}|E zMnJtbl)kfk8@GU&L<H!DXP!P8&lo?d?ffwnX0<0WSx=iNw;S&2!YOwUzo(Sut9Y0W zy)P&uDDjHRo0UJqhGOup`QogI@#%x~TJw%pJIif{G^Pa@T)knni$o7SETQeAZ9rSL zC6AAj6C*&X8#yeg455!N<iMvhhoqJoD<ShpdRxg<z+TzRl{MJb-hqkNq|`F>r{8`4 zzdya9u};5BY^CXkW#EztZRze_;R!ol%>Q|;ESX|is6)b-wso)VKD(5zBuCS$>%_}w zVj>eu)hr+wm*ReGs#J@iPxyIOg_+wcoTl(LyZq<+@-?X^#rw#Hu6vDlmq6gP=z@1Z zpb>&gJhz)~w86XAe1?@;)H}9B{$+}?ylEt8jN_vG^W)QxLSB<@HT4MnbfDnebupiP zvgvpKMfA~)%+cmuwY=~N&aIFa6oY&#q@`BVRHdB*!AK_YM7)x|7(qe;CGpwCw#`b! z<UpwsP4B_hg+Lfz5M&vv!}&`gcDhU4Q^e}5f6SA%0T0Nu`tYwAUh<ZCc?Vk6{+|vl zSbO%d^7mg7keASmprDYqmL}(0x@!;W_3cwx0|)wtX_9W0G=FA>q<^@QH9g*|p2rf? ztKObY-BBQa5M+3~{WTNohqDw)>-U?N#!qwEu?~nsf+5}Ou_JQ$bTjGUs^+nJkmp~0 zaQHx+);KOZMECySv@14Q%pJ#Zp%a@Priq;(6#zu*0#W8x!^4oWfVmf9iHv@sZku6X z5JTG1L}NFuf$bKu%t`mJ0k&kJ9bGYlh0dgpVLl$Qm5t|uAk64|2(G9z&u43(C8XB< ztW;&8xcty(jn#2=ayWf>Fj5*Dmh_*Op*~bQy@rK?=BKMjk<vAx`gb_nouYM9{7PF; z5TUJ>PA1&Fe*U+nv4Q-d8YAYN2lG{{MfD!IlFaMEy!s=IR>Ryl?q&c}h&;(DWO?K) zhe>?kFb8(_)EsdNE7^L(W6|P$(-yOPo!_=5Zr-(2*|eaS;FwWw8DrcbMC=gXaD#51 ztefQVY1!$KHv8B8QKIpxlKptSiFYy!I#5+fT4i8tx{!(%r7BiD6r30XfjBG|zwY<~ zB;t+=s@$Ec6#>HV`69PXl~P!-7->PXuFiDF5V0R?edyjt5<TUHBQ!cx5&WSe;|3li z{B%hAQMV)Wu`ZI@4o88QvB%d+Yy2h$M){~;Qc)>MUr^f)w#C11@guG*NjZ(<gvN{U za^vo`ngx%VgOo-#j61nKt&&WU4Yp9TUNqX&Q<XWkv#As0qfrg##H3{yk_eozTZT9< z^I7B4f5O_jYgY`CPM<+bZtTwou_Tnhjm(NJMw?zW4jL8L=z|{t1mio|24RAC)*YrD zlI@ghKYp2q<@~X;;S$tLHW{?`e8rgpd1f-jK`d@W8tT6E$&m4F&%}<!;g=DIvy$#= zdBuWkUeoCMCC}L#|MSd|iWNILU#mubQePP#@$*>`Q|*@uSw)LIMwq)^c{!a!1jv+b z|1NbT>G^Yz<sYSKV_v(_{jhhw$(5ET<0Jzj${396J^iDbub8jU#uKME)VG*TJb%-? zl}p_rg_}hTT6V;I_{TiO%)csHIe3O#obE6|YXBR_Hju(+{m;8r*%Swe#Tujg!Yqt0 z3K|8~xUZw_e-z2EXKveDmUA5ZeZj<Hgp@yczj`HaJtwZIoh;k#b~CK^Bv{{cA<dJ9 zHPw9o89Nw<U-$qkZ+>O^vU*GXy`E2;DM+SQ`*AN17`L3=Xkb!|j72R^liJ0CKvID# z=`5=$Tlr(=TGtE)$H+|3G3v!d%qy%&u)%_uXe&=gn=<F!&0Ic_x*zD#xS$?lHDl_B zsWYJ)vn!-(sr0P51>#S^^DC!nsCO?61mq{hcYfPeTTyrBs(<&m*ZO?bx=P4T(U{zB zSr-DrgPgeY&At^*x+~9nx^s1?a_%GB_ZUCVQJs&eiy^MrZtTb1jZA*bJ{#k><M2jn ziiYU@T6P)gPr3g%!kBqg_g;L=`ua8J#EJPNhT?txCYl|l-)ZZ;+X8cy$1jSNU@Qhr z5&rPo)sFN%4Yu)!fqP<|E9!R0vISP!hf`aRCFQwx{=OA2aYgbCj~oY^Rr}U(QN!1x zsU2?M0s<Rl&)(7d-%Me3p>}8Dtnz}7oj=d#1ey<J&+%n$EerCy6WhoGEz=zOicMFi z9;yaNyY8gfq2~v&r()1y28t}P>%!tsSA;4!GP_#_wz?h&y;p**8uklN7fSmbX8L6q z5kF%`OzApoqbrH|Q36xjag!V0n!HHSH;G4yQsZgDeAug2@mr7lCQ$2c&~1*oNozmc zf18EtvdK6xWA>fx;&Ref<{O6`Yl355iYps;6J77ND+A1*mM<xUJ-P|kPo&QbLEwac zw!ecNw81=P8DMz&hmPnpZ7(}Vg&)CDO-$VJ0F$HHpHmvpMLN9ycC3jP+f2XOKP>)} z2N#Lx-JE~~cF3(Zu~*4^8ys6zQ<M0{&&@MWo+V@cxz`?eX`=t=CD;ZWJ!jlhre8f{ zRlZ@h9@y#kr)CkhlipYn{5W-+_IDi>0DM|t&C{jsHv(J(1rVe7B6j(tLI<DORnL&5 zHDfG2uHC^GBX=x2T~6!Y@56*dEIq9UmdO%X*uzHHE1o80qm2I(2e7w&;`}<t@^-r2 zYgd}fwFP~!QkVmhuP+_MM}v|E9-d|!7s5#Cr1_3{FSQb}gyQ4K(;{hNPeT#*;`%}D zu~js&kxO254p!)Nul8>tH<b#Zu&gd2IU!0?rNg8tjoT0NfS@7*G-S;CRduI?N$|hI zWg6)(2Ypkma9oqK7D6@hb=46@IPLB@f0ImgPoti7Tzv4DJpQaX(PQmZW2%(VVTu1P zH`5h>lQ47y+?39O#Ht^;L;Yk(D|&u}W0G6?Pw5ih!~4st(Gt=ge{?W00Ls;~B*!*S z=0~o5JZ^^LYNgWQ8E#sOi{LgFfZKfY^p@SGGCZdtcuexivY0+3fXZFPTMr5Oldunt z`?hPD&mH*nsjecWz4v;wPlE@tyKzNtc#;Gj<J%m{+#589P^gHco&%2m40Xn@UeP#> z3Z*Z-J6s`=`ykQrHO}`c9!8MW^LPrCl<I<LgoW((Ht1Tw`29Eq<B}#Li6eC;_kZdo z@x%yfenMZnv-7rsTHngUmV#zQhAp%hu2gNT6!R!^_+uiZv%FL>HlRDi-48$6?p3F0 z8oUp^R^M%0Dken6U!pWVHPhVtH0$c{4f3TRfHs73)o$^IaX>!AQFY0h*eNuz9gkL^ zo}|}!r36LRQtf#f)1{tsu}=ev&=2r2MM2-z%$y5lyu}yqAAV##8c1_8B4P9p-M6qZ z_tu!AWu&Dg6wp)ivN%_bKl8e8Jgce5@C?9p3pqOPrqp8)tT7?`EgX}Hdpu2!-KHi! zdV5YAXz$>=3rPL=w^XQm-soL{arfBXxOlm~dUoF*FT<3!<)aWC@idfGhgn9~CSPL5 zTvq-D7L-Kq3&I=j{{;}tcFx{v+P>wUhWAXXB781B_&f<Ras1lxS{kvu&h)t3?_g)3 zb^m?w{`*Pn@nn-Xe$SM&SBGvo-m9A?5&TFSF7kMnwD>7j@w+!GVs=DRg1>94g$1>1 z+WcG=^)AvfC6%Wg-4V)R><g&OuV<4BT50P0X{2kUp>I9*JqxYKoHzW%Q<$mJT({~j z<-6AOy*%7+oArc#<n2!pU(~<I@fJ_6dZ(5NGG{Fk{6s4n751HBCMNg2iJV^oUZf;P zPwvi&5TK?B&YW!7(AaoC)~|X#<0e+Z^M|8Smj+Z0TBbA&j)0LsxV<8_{TcLk2!bm} zSm8ya6MAx7I;%Xg3Y+%dp`bH<dr3HX*3ZXidEdOWFOhq?qeFZ$#&m3l!{dCnQ3Q|& z*9e$AOCo+;yPIsm(tEo>Q#@O!9K9=&NXHm5z$=T;wi{1^^;K+YnJ!uvcPAn6aPrAV z1vc2?JXa?yC+p^JIrs)_9{;MJViek81GNb{veSufB`>lkzUp{*ddzn$*LQ3~@94d$ z)B3q30SC|S4SM-4diSOSanjPH!_kK(C%ly@&Z=(uK-zD4<5AP@Blol&$+VqhjD2;! z_N=}mqw}3NOG`ZqMxmOibu&#Kk#Mhy&22Lnw?kyu;?ijID@dRid*N+Z*1b@lZ4rIb zE{9&eh`0MjVKjx0;<u{IKgltq?fGz)`_Oqoj~e1-;sa>z3&oA!n&s&?Vvvy8IPqL| zR@oE9TNiG6SXn$tdORA&vf9*>6d(V~r0F~jSg<nEz@oG=-GEYAs)hzHEtm^UTYkI% zu|Mbz)0CI4SA!^FIsBM`4VrBkd|Nr}rTHv+-1VUZ{GO-P8@&Sniy)2`{SKH-_G|}= z5A}U;K{PNz(nhvvSK*a4%5i6n-JOiQG_1^G|C=f6@y#cG7P}mywjlq_F?6M&8MR%E zcIXJ=9qPMX3Ts-vVA%b>e;Lm<OqbvjKU>uFtQ_Y|g>Ihu-58tpSgdoABS}D6h%ogu z+0>5YMUGmc3I*BN-uL=OA!B8qdN-6fGX347jyhxg1&o+*6CQs&Wt|jTOsFmPPAwlN zel^|u=7#k^NxS(i79YhfOS-qJhhGS>An4wZyxTrF*HyJIG@L!%;$l=qSy$XUdE0N! z6~<+HQS7<=_Vr@>)B=Ha);I%01Isa2_&xUGZ8bBZLbmnjQ-D@0!R{Zvzc;;5ng4Zy zgLmXjrN;Xvv^NNC;yrh^MMf}?pa5FceluIrVl>e)u`%}k>NAo`3GgwJgQD`pGw{7M zxwl7Mf8!eSLMw{8p5Q{(i@UI6)Vl9Xyf5+C5QrGKzI<!1-mt=co0)oGkmfBu3Pn>U zu&hiGk=I%qzj)6nOhBmM^aE!v6L0F=t0+0M6RvAHggvG-obwzV_MfukQe4%3dZVF| zfx|*2@^OI!mEeT<n(^rR(F>7-5q!~+1@5pGlu0-Zjb;9iXgl?eeVPBkTL1CdWG-Sg zccXEJs&U4%&mNB=?L+-=d=ENi=#EF_3D*68q=auGbQVQ26{TIAo%!3UG&HP2Hcbn< zn}hr<jTVU0q^h)$j;A8$g`5?t#iCF_Y1#7&RcfWBWfAw1c$11~*t9V;CZY1LmPe}B zn8dUXxs3f_6;f@gjIr~-Bb@t4IG#gfbtGQm9MaN>SthQxTd4|-dJ{nF!V2GydK|sy zbBZp9qWv55hEh(|I^M_}qtbuHjqcRph26^9SD+G`eA(_xKnBfz`HjtKpM4^sm((Rc zM!2gRkMyDs@(41N=8a74jE`@m98|Mn4NalnNnsQHTs%H^dt{AJh6a@r<UzLg!t*0; z!d`yymiiN(Cp;_ztTN>4hQO-3ZR<j;Udn!ffMR{Q4+zJTFCZ+2&T=#*9LWYXd=r5L zf?^RCI__D=$JPxj3x|y9dosVIb$kkkoTTvmNg=Db&e6+$^yjD+^&NT?;J2ArS{-3$ zRCH?Dzq!kXPDn`U*(l?dApaZcQFSpZL6X){NNA4}G7~UQ&<=F8l`gsl5`tsN6(?;3 zqQogp>w7Cbj$$(j-;u=OiqZJ4cAoagdh2?sNap1VuxypFJ)eFrh%;*jFE5&@PASwM z{_-_LVm-&@9`mBH+uo={zWScX=laz`AL~e~@ZxbI8oFIO3Gv;;xcSW~nc~+hHsu5< z{8rEn+w`x-O7p8enmkVJnoqP^%(nEX+RAsQqM|+NUW(rQXy<kq6Y;WppsuhlJAQDf zJxQb0O+ZV|lly6~gQ3HA4`SEnK*6*BeHHw=+!kq>Gz;$+Jm=sdS&eh05_<pQkZ;{M zsIvSoX`#S@PEf{XVu3yax^o*^PS|TYMq`f~{IJu1uX=XVZoFI5Lj2LENqJ%}$raB= zf%vw3HO)RNk>)r1@*B&j`4b_@!CmtQE%;iJrlM)^^j2nZ{Ug&$ArxI$-FH-YT1&*F z{_>Z;UJQqwc(Cmte*1f_aFixD&gPMAm?Y#ur<#qGc<cvPLy){xh%q!>D5sqprahDT z)F83)em#DdvIhg)r{N8-*-&n_vIaTE9|BD5Rl6FWjiT|5#^+ZUGeo1YMn5The}x=g z@&8$MhQ}0ZW6(E>4?=x_9GnfP`+n9;>RlU$ae@}jg1m3y*1K)3y^)PI6T0FeE$=n< zefdn6q?2x97S^)~^32F~zVTp0(OS{;kk3UiLgU(9aDh`IPD`I#nVcxr{Oo4Gq*-Co zQ`Rz;HUdgw>MULT+zvJy=%$%TEHb#LVYa2zF})8`TVLg%X@y;76@1+M9Om{vOW$*! zvjJCRHb8zqz<rv~FinuD47qdNadc@h*J$l~>~x^uX&(Q<kAob>Y%I?AxiurY9SElO z8_A?4_xf#(!=~eC+1O)1hrLzjM+h+)CB{J!R(M0dg;?wL`vZ$L4B=l8tGdL~2a5s| z^7c~0$!JXStAw<34UyDl&W(;f6>{gJ4&so%R&x!1#>CIXcLuu+J@Albp{$hTds5}q z^4vXR*@5sZ>9CmEseVjhAilC@)5B5F+n4{NwsR7V1aE>fYk$n5>#WFRa$b?tSY5;_ z%4f<-A}gu92xnkguSZnX1hg^+-)~lr@bAce%@arR7d%VKF7~y;haE5LP30HU;D3lE z_H)DXMSS)Lqj^~aU0<#yh}}zdyC+S*sshgXS@K!e`g_)M{8s)v!wx)6kYSIpr_MW4 z$-ArSLttT8jW6R(B^~9~Zw$u=;A_N<JjQ-J%UE0975EjiKBtT4uE<14@x(x0yXfTE z?**1`v{ei$)QjyfwQaqo=v^jLe3DOLm;<RauZbT7X3A^h-*x!y(~@R)k|#INN1sj0 zy$R#f$1Q#th~K#y5>yqU5B#r3S(d`D-i&Oj&nsK)m0)qcw;3oP?-5ad-r4PDQl6|; zENYr339>=aAvd~0pH9olvZ&--u{pO14Fv9wPzuwXqe~AsBf?3WUA6M9!t>;onn%QK z({bF(I+qX4rw0y=nqv2C9(xW$>alw!82R&9!uK_~t&i(_rDmzV0a~FyL=ti9&0SS7 zawg|w3Q6p;i$@=O<|+Ro7`v{IW()&&owp^ZihRsxr6%y%(^mU>O)IhPrO~bdh=<p0 z4n0ydrp{EV3B4W^&CX4s_p<Nrqq!NdJ)*!NwM=4a*8K%{afZm8OY*h%rpC)g>|QLO zTuE~*qUgLQVp^j$^;q-sk*?{#$rQWVS50m5Qb=e5*$c|Z80GDhH{6nmZMZd3mpXWH zmnM?6w;Q&lj~k()B9nJyB#(Xsxo<6rHyu1b(v@4(bxR{1q%{$0<nhZJCOe<eYg3!S z;xdH%XzXDTc8vH=ev2n{tA0_yVbphy2Qjx%brd&UMxbt*6<=#S>TdGEkNXiErhQl9 z5i1)ma?38MTN78}nXVYD+!IEn%$L9&6%XF%vBb)EN0=|rRz8>i#V<XC-j<a2Sd<iw zX)2-nA;V=zg=!t2Zfpwtqjdg<SHQrmnErsv(F(@MrNy`BSGx7bkeZ^I{Ip?)^oqOL z@Ux?@Y67eEmx|9!g@mr_Pn;9lSz5FzL8H!0W`rPQdpS;e#<-mrIH@Q?8{cUwqwTes zF@kh|TDQ;6hQ0rw0W$eyqv2>FeRl{D23(9!wKU-h38eE}<+_My8!Og_8WSNGp<eeX zLcch;7}M$HnD}@M$W{oR*9=%#M0z}j;grhIj??oaa*IC^zN@fpL7_ytxYRTIk?Ge% z#==(}tOooR8cb8enh`k1;{|h%JbCNtcB^{S{%9*Il<F=*?7k)p`;bjAuC!c1KJ^rG z$4$4s$9pX(NQul>(xfrnx?;Lz*IL$IOn^7p<5f&|RqFbQ6aACE<5j-nqK)jwbqF+e z%(qqCr*)%M{;1WRblgP3%Flai8@+rY<?||fn)}5yo6kw*(SuI(6sn$}9x0sixzI&) zmML0qd=W;Vo>EVAPYPkBq7q*8=<IOXIxSx^tu^|J$xw<{16mh)!b=(sF%T~@u#5=8 z3@5yC=z71W426C5l6OifqTPQZJ8kt}K}$V32yZrl(!cmU8$#s+vEJ4G+~dxBnWpnK zD3_Za7^ZfAvEKu@*;dbX$)d}Mf_TvGkV;;d_ey1-yn6Bu=jQZbBeCB<hgKeEN$_!U z{`}Z_C#&5$g%2-UQ~=6BT2+T3WB#cjf5PGE^=law9<X{sU6XAJsJlr`yqKb$wW=JY z?KElijlAv+la;72g;11f&>(G9eGHirYqgm{-N%2biiV-Zs{iLQ32$rC=Rj3-cVVU3 zZ+V9)ZEWhd$xO1C_sZCBk3>AUA|d~x8FYugZw(O^KgVQaAieX@g?ldXoH5ffpQ`2q zD@?_`_11;{&P2F@N?`Iet39fRtvyLFiE4e1gQ#RDSJN|{re)$*R<rFhZ+~8!zudBK zAa39y#hzX4(qm{DxEQ9XV_hWe-i~Y-Es_hxD0ym4fA{BgU3pXWC=?W+#Dv`20sF#u z?G$H?hGvlCE7@cz;l=7h1+O^hr-L#7PN8s6*|#E|vKo}<&5B=HZJBSA6gt_8yEkrr zU3R|wqxs=tfGB%Uh#F%4U6b<`FY9CZe{-)?H93D$IQf1NU(EIE@?}34xHXe&i+Q_w z=ij8O3A_Z7?aU!G(fg1$+4jeR8f}i;k7;D0NozR8->~rG<72(zy8lJjoA^Vy|NsA| zRHI}@N0ICimF&VW#xjKxqoa~+$)0^5J4r+KeV?&YvSi<tb?idckTI6A&sfL$yVN=F z_xpUlx8EPYjk&IQUC-y^aeq9n!^8t=Z_9>v<*Ui`7PPKzFH1(}a>`wdn|jSlfFo*u zZNJ|02St9}<wl&rz6+ZssnKdTY_wct{xtipZ_Na2Y_sX}ZMXl>glIsaB>+i%dmn;o zn<Cs+q?s$gW{!&zQ%7CC((OFk)Mev;X-euLRIZ;TohZg%n`~w{K0T@%aYvrqK$wx- zJzAUUjY7T}v(z#SE|g51xnnKRKhrrUM~Uq~Beu!`vVgVmlf>{<x{3saJ*$vQJLeyX zP{xMgrnP6{WHx@puc5U6ah>7<mit>ixVNbA=Jm&XLz8)Qvyc^Ee_yNKvTK6Pn#b=4 zR5>R+9w(8~<7KtxG>G)@7Maid*h*T#<n$GahVc$5$`~?zTIk1S5<fU_cWjw`G|Pn` zl5`VOn*qMg34Pa|k)p0=*Eh#7E;3C}!Io1tv?#q1;w7GVM-^%Ex;3OrErh}r#?-y? z3l#%SoA|nH?aj|+XZjK5oPU8yrJ>5mNd3{Em*bP(hnz0jIo?ZQwPb<)Ewo8t1&Uf+ z;zyPhWpsJJXjqW1coaBq+^my4NB3dkU6e}N|JBAhGa7{#-h^);5TZT!4nGu#i6ffv ztd+l*9*TZtc+OJRay-mr-|FTYl+{hfwhVr7A3+xd{c6|n$i(^$!IY0r?iqs~ivabw z&S?0xd9c)&Ez?F-s7_82$xq#Fjy2M6uB=K?)GN2Ad0Bgl5D^6yf;E}cbPoa4Qc_$E z{_+fNdjPSqqR~%Ce3YZn-)N){8|A3U>h!xc@I9}4Dct%BWPCegG!B!8shmG=p)r<| zG5hT){0sE4H@o!QkBM`FGdF%dwH?9fpOR8yqv0}qTE7ds92d&7{>v#~%JXuI484rK zX*0K!R9gR3kQFgI>;iBbz%4)0(W-g^;{E<~^;d=moXlwH6x-`<=Rj8e<O*0EXNn-$ zrS9@Uh4;euyU(=ufLAASjx71-pe?sG#%nO+Ci*+@u(RDuR-gZe!~!#2QBz~~vcpNn zog)#AeB8!i@jaoa7y2mNt_?tKT-ZopRp^3&)o$wT_v05;>;2>CSt}C;j0oXfI{rpn zZA`eR&FCfnny+Wmu!h3fhj&yq&b8_%+%@TGVd%Jips?{&4`yq&T4CJSK73%afv^Y` zv1p5CEc$R-c0B!2r2zHt+-w1$OgP)w)D!1QDH`JKUfW({KM;Eif;Z!yv8{1Vv{I3> zv>R`BnZ~ZU;`f{b7#A#$!+2ItA1C*P<@i8B^bjI&_s$>dKrJ25LpHk(2B73b>+?~w zx7sv@<yc}0^U1f-2$6DrdNp|O#9W}wzTbj2Fy<+>!MKjcvJOrxip25X7DatqM4h## z8Pd8(C8(1ROtiANXz8S-MM8l|@2nC|tjmh6gJUvPAuJE6l+QF~U3bgM3R(fMAHb=y z5wvEw_F}XYiMG6gDVjxZ@{V2ie5#m(hd8W#)B*n2HFgI*8^8ahWN^8=_pav?<WiH9 z`Y$>$Ujhsw6TcboSO9@Wlq?DsWjh%bS?qnrZaT@OvHdwuxU7__pH=o59)a>2Sx?Mi z8B9{B>kMak<oduwfXYi*oP$zTu-f>2UH`QB)6FXh($&<hLwo(_RH`WeLcY|I$?rX# z1|0`h5q<N)+6=A2(!Og0QdEnQ%|&dSA}ikK3f?%gU3bf=`P;lSM6(_IaSwthe!$Q_ zjL&L^MWbJ56mQ;OiKN`JiPC3r%Dwb;nd)OtaIbUO*E!Q2);G!Y8@!$6vNX=YSlXJ4 zIcDR%(T6068;a4#78~cIISu%MOUwz6kS57inSS9HH3fcT^FDo-Dg?xVfBjWr`=3>F zyf*{uRFq<RC1u>ZEw*dt-*~~!id6u%4&Z8fh8Zq_I(i~ksxX&33N35&8N+U86vkXZ zGeJ;4k)DGSL%ZHf`+BbP?h6@P>3tgn1ZCj|aC{SeyUSfxl4{yUYMwoVb`|FVW-ofI zYxNntGt+<b!qWmZcg^h|lUvE++U(fV*N*=US%}=$?X$JdrjMZK)~_uVrw`|1_qGd= z)dR+rRMjU3>Ph5^mCl(T&4S&hK3=pjwvrm+{j)a=9^%qP(-{6kj{HUdanK$j=0z^C zb=f_ahFBl+fk!;hAJ@rh!-v$sW<|YKcHg&w&~vUQ>{Ax+DOV0EnZkpiE3-rQ(-0Ra zI8KVw6o;6=QTW7HX)-PSROLbvPug$eIlp1gb66IM{@dM{!|G@w+l%`Ql*=D$Reyl7 z3PAcbYBiMbVWvY>7l~@5vE-HPurw)B9GbB<3ISQm)X5F575u>pAu;<*>i`$&YsIBc zJ4QBa9WLwf;9HCjd7Juo{n5EnH@$L?n#&(aQXV1`_cGzE(F}|aUA~OC&xV!o&L5pK zU?k<LtfEn$*{lb|ug)w8oDdC_Yjy-_Q<VY3@N&JbyJxI+mcH|Q$8v6^m4l}n_IGOv z_kk^SWq7s<-gVc=VtjVE0+=dnUsrOJG7Oxpwg+e-hVQ<MZvlZcq+Jl!tgpBCB!xU1 z$TzjB+cFyOphstt7lcN?a?sDTG6uNmJGFc#a$X~o9WGZgJ~bvefhB;2nNvxT4I_Rf znTt+IJ3mz7=QIlVg{VdXV>(L`hb|KeQ(6CA-@FG*J<Dka8`h<p%iKM8naX?Olr&3; z<=m;ZMu|u;l!0|frrGavp4^d|uaQ_))x~x_So^nUM-0|r#<##^TeygIYN=%&9y&iW ze$7XT<yN7daa3X)z({TQ^IB5mr4r389*R6pK&{*w)?9jELF2ZzqsRExV#D6$L@k%~ zeAJt2BOEd9_-8XI+%vW5J0B!-z(U<7wih)5=Vjx3xF%O6R@eD1uEJAoZLs28o)WTs z9~$B9TMh!xOV!5j24O1&{s;>cpl&yc#>D#>$uvl(#FMmK{@N3s5t=!L93lH{#-<*1 zOUiuoZhs0#HDdtAd_F>D{kj#x{mn}K&+NZ1*m9iY0`o-5QcLN02R<W=LwEAbWEEt9 ztq$CByxca~&34dXGkW|s*Q={OTGQJ%1+(<Nc-MNLv)|CLfK$8nlZ8?(S>KV?HFy_* z6v8g0aAY)&FY6*i*dAms0)r%mej%hj9mC5OX78EeuF2`T>jN3tNT$;0&90XbtE;-G zN#b*VtP2na|2uP;@}l3(sIyo~+Vj{uKb)DqGwT@5IQ<LsHG@ZqYOul01~@0azH~Cx z2Cm?CGWzXt+v=j~m|-PH*F)+c{j(c`I=T|3bL>bF2WpH~73zS-#ZPredh#=S6ZqU) z^xWh@DO1w`K$P8}Cto+uJpq7FTk6Jp0R%0>7aA{Y%8O!4M{j#H?9_NgJ(Xp<W-SsL zXYe=UL8IUdpE%7qktCAJg3GHUJ2GKwm8A|{9}mtAK6oO#a4k~Pd)|SRRg)F7LDS<Y z{~X)nyL1qM_K73?xqiFI7Y-QeV$AU=D(|9Px$F3`XU61r)2fH%-H9ER%FWmaA~ zeJfAqA5^p2Pray(Ix)fIHe9q%&>3I~c9xIVx2$g=PL;OdIdrucnbqq8R?|Ce$2-6N zl2c5Rh!`&d@35emYDB>&x4l~e$AH~)G7GQMHqyj+iSH0Kt4q&PvQ&szAt-W)llAS% zNFhJ5$o?9HkI0!KGRh=6H9D_-oQf^jqR-d~t63cTU);#(iKS$=!($jIN0Q)p&maj- zcv}mA^1Y_fiX=Nn4$%2>r-E_Y<jx1K5luC5TW`WYbwgt@Gu~zb*>@8T8W-q3=6H16 z%S}ee%$!`6SR14dRD7<r467niuHcIE_gB|r7C6(AF^6iM?)x$GE0|$Y9THO+<WHU@ zV*7eaa7%|@DtHRUjXrG93AZhlKTnD~;o%pe@;BZHjg|>;kqa*3ZtMGWb*ea5xZRd@ z11^oF3!5X3F>ZMJ9BxAoEK4_NYCLJNe``u(=IV?C;A#MXvHvw$Y0G4h2?Ilr<G@;d z7g(+8Lx_*WgwNmSht+<+nFUB*XKHpy2_5oXKDHppc=;1BnEbKf#Q68s+4eRg7E#K@ zyY8l<q?k_0d<i=Z1Y;!XI1V%$%p0<8#+BN$w>TGp!$tDQamf9-4RC^)+Ya9)2&dC1 z7)It_Zg{<Rjler)#EaP!bp1FXG?V81l59bhB`5=0?<%*hcDYjF2$&xGN)Ar{LMjo8 zSx9a*CG<=<LPUaroNXvd$>y@3itin?>9etO%@?tf!VlQk9X@j|0Dc-)>plvekQ|$% zVOlc`rj*xpj@?iqw>OvTBzSOR4(|M5tCu&6n&l|96U)Z!83r5ZJ>jrGCdHF^RF!)v zP%+Jto>=zGioqY+f*k``uyTyHQskAD#S*{2RF?P7O^?<7xB~EEQyiQ0a3cwd_zoel z{zB9e_!^N)$K;r#n3a<ZY>X%a@^FrpDcoV(KQudMD~WB}dh0;~cH32}L4H?6=jiL& z_=;x)v;xTl=Wd#kH;U})7d8vV@vzeK6lzQ7-ieG2)4N>uK)`}N3yEG%b?jBc5Lxt` zSm5an$IWJ*?#s%d)<Gxq`#zh}k%&mI(O9*R;EhjL<bUi%dX<ODId5cFF1{&J`PwOj zHLv@_0>REhE!xx2I^|COJp9jPX`I|r@-iwk9AHRCxDOj~Gh;3e_%60E+K8~3z`CFb z2Y6-K>%C7fz2SN-F5f4gV#qsgg&RlB3u(frV4=DHI?E^MxzQ6Ay8egf5*#=%qJynm zrU+NusYJCy&Qd5Hz=<U@KLHXgO^!ZtQaKkTrJ*vDTuRCZ)l`jMphNLv`Q4|-IU8(~ zDNAqqbRJ!uAs8<$-wJAsoxchM1XP<50^pc-kZ}v6H3-|dx$%04zWTLJdr)PqxMr?X z<MTMs;-fcnC7X9@E_~+$0NVBp!L6LF53r>Ri=Km*;^s}i4@vwppGzGqL|#wmRf{sb z$3TcUCOoa*L=+$I-O9&!bre3D9CScOf#rJw4`>FxqhW;O!*P6^*93C&?%uPx1Mirc zquvg~lkd`g;N$I350ib|b=F7lcBj3_3Hc5amaG!xYqx8_-}&@po@hB+x5~)MbkC(t zawX-mreUwvJ#X!~09f*s?X~QUzbC+qLz5*c>Jq=9NIA$X)o5I+ic(>tWd&-NPj=(! z_@>~I_l|}4k{mFbK~S5V&@!(sxR&52L9%I0|NN0$Z|SghEzUdA%8pr2QgNJIGTN!v zaKT;EIq6Zqu)Rtl&T!j(%#dUmBE}ji;aVK0EH#PO{7sm2stqKeVmgz6(uYYUueEl) zLL0hCS!<Db^#5`#z*Yr*rRE!sK&Z4p!O6kNEQ&RfxenAQ%X4zt{iuN>mgDoV@Tf=! zu3)gi_SrDg%fmcvO4a4f-!ECG%p!J?Q!BHQMbbMGpz&Y@GL^Ox(#yVxzXsW5nz$d> z5gElH>qY7`vYmeIalEsJ(Y@D26+~#Nw3fXhV|+fl>k%&L30s%zMPOae<R@4ex45OV z8hd`Ms%}63)8Q0pY<P7bZo1Eb{j^)yKVyCdASH#4KB$hhX3!L9cA(!cgt77{^%GzT zz(Y`crin}7<PUAxTdu-`=}qhKTdGw-K^k~t(v3!q{queMic=hpxj0!hb{u!zdqRde zXeL6|>fI&~e!TBwHD2#n?@+{mE4=ewsou{U6b>lpIfxCfe;!_Ag)W!OJX80>bu+wm z!S9i5d#=<S$TEGb=jV61e5KDW+t3DrK5<Em77E^Bp<mIRuTDISHl2Ftf`eb58og%s zwy>7N<}cTxS%0ep+x|0pt{RZpK$=UQ<Ey%UwZFKeaTm8wW_mV3|7Y_OW63uPhl)aF z#Ti5)NK*24U^3^EiSeV)lv{Qa)58dvE_Z6Qvk@oslA5V?EGxjzm~IZ{HtZFxu(Na& zHjEehCr!uDM676341t6~=hC+tdGZkNTeabsA!dh5H&n)M39?CwAx~rz3op}pIIa+a zp%H(sTpz-S8MD!ti>fTFF=0yR^;TZc{SV5|s46Q>;Ak@vrl>WrDE6O<UIl1@-HhFS z!<Aq3o5mzhgXF`ubpB1qI+5KzH#cS1f2?uImhj3f?41*(!j|<whe<bsU0|Y}=X%&C zj|@G85TpA9UFX~B$gk_$nCF;Zy!ZGJQJoDTZyA(-fO+!iNefJWPqUams1lJB1BYGu zuaL7){H7;q{=gV_)K0G{ki69T_JErGFf}iAbubQ5EjnvSt`N`yl`>j=b9;l-H8{Ks z$(KO&9)=tPvcq<PC3BV9P)QvTA`6AaRFsV_-Y-cZ<4;kvfjmeQ^0<S~du(|xi`9!X zh;*9G8+M;GT64q3uWiSl;2-~!fy9SDCcdGwyO@f+`Eb6=R=|f!n3KKimOSccQ%QE2 zss!yJzpLf#Fje8zSc-i{I^O{~__A?)5f=?25xZh!HzGMv)S*+$oze4TXtzN<_5j^? z97ijzMHqShg7-^h(7vL-@C}I}R!&!Q@SwR~s-wlzaEbZ3KA6?`D0v~O)=D~Si#Du& z)aZQK4D+AjI$IwQ5VxBDNEdoyhdq90gx1<WAK-N_H^RPXgf6_RCVn4GVwAV)ao&ny z>nU^J4zYei2AlO;^=VQV5$;^ImT}(e1IIsRkGi+Vb?Qf*nXH>=NHui$yf08lBHN$U z9GNN#A`c4M3&begNy@N^3wRCobfE$N_Je;muxcK?DdH>VzWXoBk@{IgJfLH+{#VEN ztdCFCAG+i=;+0bOOz~VXdUUIA?@#uAMK{dB6K8+`s&(7bOt_oo^h!ZC^)4d5uH4!T zk?Y;T){lH+WA`3=s_tT&nYP#bg?X4Z%FJx-!l*tuzME%&oYn3i#gq+Jorn*Q1Ah%h zTS;qUJ~SD$4%|4*QrX>-NXlpN_WXqpfA(x>dk-zF_zy_+`*9~JYb7Lk9xBb^Pj(>W z%uqQXiuv~=C1jR0(tvgDsD9#mZ~gh6s>sMoy^IPyI^?K3%?`?Nw$q#ZIjDNSO%G7O zJZF6y0<9X`9sRj1mYZII@omUw^(v<<I|h7EV=`K+VfU#}Shou&AP06ZZku;$O`YY0 z+ojp3br1hX%0qqIl!n~RPR<YjR4dapUaUy5$m}lM$gRV$SEW~OL>}a5ivY!_!YN>t zqlNvtWC_i-b#}EtMlBUK`UC7G_qO_PNz~b_+*rrIv_NyjMB7kanQ#!9j}Mj^baM1s z?E?;F;*p9A3bH#Qug*YhIB+<^UIM(SnhEWx>TyqiAUnJ?GB!sRY_i%#j*5HW(96z+ z-iOvZtrGCw${Qzu+p0T@uG%+QDJ;J=t=%XBc-S2#RlaVRymq>yj2@UZ?!F?^R2+=O zN(lae@YKvs5h&W!Wv}T{U;DwRiEf=1e$}(0fp)5_%d?Zm=WYnwbE-D1M{03YkkW;m z3O^UDED3E{bj*|==6bmGGG;50-JglGd@tYqh1XN8fn37F8Sbe+{y5%za8Le8!Up2s zI`~5ngIEa_b!!6R@ij?W`Fbf9Zm?pX;%2zF-sM$5wS0nhnb&#H-7p^&LP&QE)itlo zFBz^m5A0$qJHa(@J`fY3+i~qy-Grl{PT1Pv<lzeg9qHPl)vKCB0{2fY!+d#%u9*9C zGvyne)PUg$yr(4_S?S4EwLq6a^_RKFP%C6F)pOE#q<lyHC2aNm-}(omYQqMwVE9$7 z(TPkvVOucv^7A_*nZ?4J1U9VpSx`T>NeP<TEjkSATrbu=nm8j^91G*wq;345%?dXG zg~SLoqx(Oju2%<MGo4m#)p0Mo^`jg;Cu-^ypcK!V97o>Na03`MvHu-MXcR2YX{&1H zGaDtzn6%A)-Ao|qRp<}53OgE&Pg<7DYtxq>QZ4!0Z|gAU^P=)OPZV9DZ5sEkIzH%) zFwYEiHqX2}0YHA@HoUW-Y4F1dA?k-ghMCAVlU(C=Jq`P6o;XMSN>aBOwyMq@(EVE$ z@0Vvcy>6-$APM~vL5-5`!hOX(IM1|$J`l~2sNw)_EGOVPL|ri}n3X3N@izb=H=%^; zk14Gj(0eCxH}FNdm7*cjnUhgxD_YtvQcgGnT`<FNQiNMmyQB>3ZWYoE1`S^MC^~B! zgfRvuEs5WIti1XbEGG5oCM5FgRy6cWI2vXFWJ|j{gMg*$<h$jR-P9@|R4#R%)uYQk z9!B3DvCboMcWXV|`hXJV4i!9lx#R$QG9fFjXT<ON$X0$q8$JpV|LnNO2^k4@4DPwr zS<pqg+@>+HIM~Bkw@g`%5+?=Fe2ebfe4Nw>W+r7FFShbdRrnC(i6^19N27pM@cRox z>E2!@))qm=yUVzKm^6UPIDzEDf@`%Na1Xg#9~OnK=QZi5MAvX{vMrv^IvMJP=2t%$ z*0|giCu)nRwsF*HI0Hkwt5p_#+1V(GpT4{60W=wOg|;;=s=b8X@`bokmvAKr@PmgL z(1w2n|2Q-70|D?$EotXj(vz?DoDFb5MVDPl?Ka;OTOiy2B?p*dB1aC!@dv-;Z2gA0 z9QwK_NsyVfUhM$Db!;?WiSP9=i=T0N9e#FWd^dn==97N+q0<anqMzrlob6OwsV@fF zJom=r=ISM@FNBzGmFc>t>cB>;FM35b^BnCrco%AJcysR)3?xlP(_m<O@ch9O98_Ys zwRy~7c}#Lk^?mDIsE-xQl@HSVT`)Aq`DY(&+ILQZLdO8Xce_v;t#qUnmO_!x3eJr? zq$RKH79`elOLMIacM6z7$g+Cl$9uQ`%e8wKESJdcyUwu|{ic9P=|oeJM|woHz4PSa zV^lPdXQPBEP*S@ci`6L%-oz-q$spOvRVpR4tr-g&SK>|%*n;0PL)I}!VCz&}eto7! zJM|HY(2^tIj_o1&m9ejFx>K>eoGJ}cN-oF%L)_JBiFGjZ%k0W|;}UM}y+JpY6Re=T zL&#vgkiVBY_M1fwshV=V-n;0XG}s;pKlCnXd6=}R@7R$=w5iq1=N$VSI(>;z(EwgD zKO}f)rTb0aZVBh!umeBix-EEkuuvt`wk(`Mc`;Jh)NWk=nRF?~!7MZmWzH#+>`@X7 z>-Mmd<Tm}DBrb7CEy_-GuzJeC!>${b9fZ&4LN9lH2><^J%^(z8PTfaePClddP)!va z;3(_QEeIcDL8_^}<%OT@dQkorAaIc?L)y)3VI8a>-Yg6O!FzgD1*ol>`*u91yr`VM z8$SZBY!?-CCNSe1nh=v2;mI>|nRYg6xC_znGfsVun4GR|@fP_b1{4Pzwo%m$?a-<( z&<|hk5^wQmS;(_}x<7w!%^BRs4m#c13LCg#zQJo5nmLZ@wi|L8^aU-dpS}SCT<Em< zD}}1PpHwa09`#T*A06y23N{MzXJ!zTyt9Z)Pf@|-;{RT9sR!l0DH1ybDb`Cl><Z); zM{mWiTTN$x@MBTOv)Iq0cN@4XJ7=d<*VUblM^F)E1mUmVbYxy%_$DWlTMH;hGoU9^ z!cp1P@MghesUK?O8jN&>E%LKf0^QaRbI^WO-){4kE(?1<FX5FsbR6nwTfbO!>{sOC zxol<)O!dFE`8IY+#33ep)o+U`tD<jAftScNYD4=VPFps7FP}4CdelxbQ@TCD^y9c& z-?dk?X0-CDkljuB!##=N_mc?EGmGO?06MxdFyHtBfnh5Lw!v!B=dc?MMsatdbPe37 z`<0m&xy)BS<m8X>!MIJwML0hm?)feRiCx&^$+v0T`<7KxzBg20YCdy<a^m~0!W6{{ z{}n_5Hhrm2*ieY+X?yN5OH0;kinWfe9D2-n=snV-wj00CnII4;S6pRD@JO7sENS2! zn#)o6B8|(v&>}mAM5>wFdPm0U7>5@D*_Huun2nm2@<#z51q)>EF_@s37G)EyqGeN# z5xIg8+K}(ipX1SBPM_uHNIIMie9>?N)Ebq{;lwA(K9rB|NaO`Jll%vyGOg?M?f&ze z#<RWkVh#RdM2@CJKezIO;d*EGhKpqzeSOkXX90<t1(2u(6TQTTH-%U;G#xo*A{esS z=@+y8TFPeW9I_ks=4EO-zwTG>0(j-eRd!~hmj=hQcAx{f-u}Cs$4U7Q!f=X5k5iR) z{mBCl=<u4F^*}!P^PJ&W?Xu3+YzBC*#17bMo!p(LSega9z)~anvchiH{_FY7+~4T+ zFtzY;@|!fqwpUUbUN?kR+%<~*kWuS&{=&dapq19%Y65jB`URqInWo=+3DltVqDo9} z#Z1F<cAh~6&=1T)877_95(_v}MUAdp6P*qoXle{trS@|kV2UUC@IE@)48Sa?a2MK= zuYf#LHN(AzR)5C~cSj;V{rEo%iJkn21hs>aBnJ!FAc?l;ojo_0Jg~6%jNOFwCd}xd z!dT&nXK2uNxmxeCiWAVwrX&N_+KO@TVlheH=T*^rM&LlqSckr6SD0PA@Yo>;|KTXO zDa|<#q<zF8_|QwTvAvPgERT$rpUC@}!wsBo^?WSBi7rcToU)zH1`8fW53|G|71sm( z$VNHag!7j!mw!tD{Idvgb$j1A(R{9UD(;%a7rdP|b)W00%UmYDnmMswb36XezE7p( zCND^gc4g!p#^(=f93iR$!obKzEF|rK557^#__hJh-avkIys72AkXc!~>A)(9IrnQ& zT0g%#?)c`>g&f&vt49LYBx(g12JRN~-Rl_i>yM#g{c#$C3Y|A@8boCAG4`7>dY17* z79lB(ehbf6s3{!tFw3`l`y=0Kfsz{_d<5`fjNSDP4c05EodHMfo%-46M*Pc_uTjBI zG+8-4pYo{L%&5%suFF~6vrzm=(+Rxc$<wmeia!edK5xMNiG=$h9ei+H@WK}V`gue5 zE9IuNnxv_BjG^Dk54;i<lHFU-@2Xr>=LQ(1uHPd_$Z++}B4v^<m-6L@N}5>&Euyl4 znF2)QHy4#j^c;9bAqq@T*{%FqL;H?%d~VVFKdVbXz)YWf(+_oAZ~Lit+At-mW(UU( zdJ}>v3z+G6@oTIs4gq~IJ1g}49Z&?w8T$?_La<4h<sZBF347I3Gd!xbrmDK5N);~I zmAnGgEIUOO<ojEE!;_&6(8l&}_ncyahTln2v?^IANuh_?AE_=HPENlQzQL^F6)xuG zF~`aDXZoD7HaTnNl$GV<lsQ(ULvZG72C7s-@CrVkHIvP?F$coxNL{#pYX))XLA}7b z_D@X!&}&oWw64q+A$CZg&F5>GX_4C$?nu?3o<a_FlHc8^--|J=9@<O6uq|Q_mOT$` z`)+n;7hvy5(+2N19=!=a>|}^U*cCtY?&l>MQL#@&Sr_xRJJ(VR%FtnFZIxRS!#+sk z7t=Oh$1a(&f9wSHhmujm%u=t{yvzZB>9OFaeXx5p&scsOBzYXRLucLO-BJG4prG#S zc0(9Y4)j}<trv5*sw)!sV}i>4DaBE!PZutxC)K6Y!X<EzD14Yz(Vx#%_W8br@)Fgb zSc|`$6OU-N5I?S^vzML1_~&?9Eivj*mbX-o7zprhu78ZBS5;mdFL{@@YtuyYuYGpR zE2bdJ+bH>>sf$XKakTYQ@d)elGq-FyX*vw@Y+88T*wUqU@%dfu(P|B~XvvApocTcs zPv8{!e{>{U=bG@_1ej!eI3^U9k%FMII`@!<cTG6>z}V`-R!Mh+7_S-Geo+z*zCC8^ zILcGob7@rza;a_}Dkq)_r*8KrVQ)^ssG(gX*2RY6RFBZ(w5osN`7*L?2_C?PN9q<& zYx?Y;H1n#;wLEsjEP~ZA!4k(e@#0NR)s;wg<J~O2D2egg;5lm=7@htG^V4_HTH3g_ zJEF&pRbPt}KJpX6iuuAP`R$@3soK)VO05s-hVbgYyAYkjEp%&_<hlNaiX7z^$i4y* z{zlUK*jkX(<)?zWf2uuXr}F?F5jwd?{tacvRlS%S$-Vp`{Z5C=je-|2L{^;Rwm!yj z3%JUX5S9wG8{|-qB+@Jkxi;)O!{+H1F4Nf>q4E+WFC`nOlWAd8Q@rvu!-KP#`2-A& zl0E#W+l*9j<k2%y^N%@|1nOVxm)?#7k`h2hY;N@*9~p>g3JkcGOS5+C1yyACA(ui# zsx2nyuuE;XhUhZ&hp0I9?3NT(o{Mhsx$Clzni-QJy202#CueSbsT5rPHd!W<`<XN8 zi%FERJtt&3La89i$_X6d)-vOVus@+g>ieVQ^cNvA>E6oj<l<5C;MXRTfeN7aV<+$c zkDrEne7F5r9y7~6^<6^mU*6<<)pIlVMWON>tLrv2;QQB-5zUm5*G@g>pPZDZG&)*? z%jlztNHEfMuf)IU%h=)<Y()L4k1hN-ZJNi>RllhH%*+(bvhCq<<R$wn*n@UH)^;WQ ze<}!44+ya^ZbTF$x-Cv;v{ug_aNuMwF?RNp+*NECGjig1nPP6)9$4B}`)Kqr`XHCR zeHeTbyHSy%@`awK!8xM*y60k5yYgW%hB}Wg-($NSc6C2z0f^fCDp4tYMmn`{jY2zw zB7OjA9QSK1r4=Kd$ei&fPW-Jj^|x)3!Y8u_9J*t(^DK{{!_EFVpsAM`5;r}$!U*vK zrxKn{w#Z0dM^*`WK7>TsMT1)$So<^ZWe?D=McG^(RdJy%Uj?E;9mE%F_j{wcrmUrT z-Fi>*i~F2^TV(ZzEAIN$Hg~_tI9TUX_YYn67*(FN^jtdQS>#-rZ3cRP_?___PV{xd zIQe#$u@R)#Bm6aFV}LB0OQ7%C-9pzMTb?dB+$6rxUuLYv#M^&)%z5o$`MlR%R=HLU z*J|I?YN8S_xjU$x2&lvA&hD}2iIMeupu<#)I^?$Q?vtGYL7IQ>)p(A^R$r>74?o2= z15=1V&&JQr(X?*TBRvW!C}+z*O5&v1=0b@K1$rL}@8{HGj$*mt(SKq;m)x`Q+BnML zkqmmd&`iS{swKYh1qrVustRsvD74A-h+G9;o2%>~DQ(nhv7F~u;YJ^mm+|NYi^+c4 z-kiohs`*z5gNFCp#gR<=Xj7Tm5`ZI|&l6gb<+g0wi!Q>18#3QEEI2W2xLqRz^{zEg zE?F<B;gSr!&Dc!p_`So?U3dE>49F3|(L)lY`4%(xZ3=7N3W=ZK>u8`mhueX%TUL8u zpajg^ZYLFYbSr}%Z^RnSp01_$Pxam8pFh7NJ#!rJ%C3j#j?IZ{Uc#Sx!SW0YYG={= z2UgDf?C)Wx-Fa7jvWH2IGW0`d3FQapt#Em?++ZUwn%OU2S%RYQ2sS67M7Ee-^eXda zhp)iHB|+&xQ`S}NIqgv(`2Kri_w*CePsAjwt$3xZ?xeB1@pbLgThf}>nH}B)JGus) z$okDXh_|{A7lQis`o<nN?4~Yijgzy6B>>L3rhqf-lH(HE8zqP)NVwDDH_v53@U6&d zyUW(Mn$fRk!jqq(k8UD!6kMY^3e}`|_(R8P-bkiguHSLjZvdjSS9gZW6pHk#E^2!p z-PQxr(Zb`;Oe|0OTmPqIMdWredlCrEz(SQq8xSI6dq+~>COW_`LNqEWGAb&A>xpIx z*}lMDk7wNnPUw3ypH)k3!rttF%6x3)##^|QvI*22eLY`&0li02@2g3nGD_{n*kNZf z^*chUifU2Krc)}zJaF?3v3c7Lg?Mr%JE}R!o6Ip$Vvt>?%VHA;k77rzjlSEy-Bk@a zA2I{|0$pv;2)@yUHRa^%NJJX%B|VbcpqrDd0H2@^D}zIp4xtgwZi*WMGTw^a{?`&7 zL%fag9Xbm(5*M^#imqC}?Q!L`1s+!JdB>jV>s8szMhW2CO85=}7YARIk4{E^$?|QW z1SL(J7g?=yyhR&0>}|}dFyvkRK&dwnEZ?{NWm*T#sQsgC#dX(i7!lrfj`8h*)pm$Z z<dS8&W1QbI$NqIy_KaH_#IvrgIgeQMfpS0nuT+lrWMFtqV26@M8|l8K?qPD=+g)Nz zbw8Oh`b!r>0{-YP&MSkaF(?~Lgvn&iJ2a^Aj?#-Gf4D{IS#v_PAa8fy$3e&y>fpUp zmOykugFkF5pJoW+Y0A|sKSi73q|E+_lMzu3fbegB-5>|7d-r*m8LQ)TI+4R1Oq><u ztnW$1Tq)LB7A-)l--#np4rJD<WAuiO9SiOv##eN|10F?r{nRbtsd?cHXx0A_dPI)j zCS-g|JCh^-BA}y_;*(7Ggb9DgT(BPeXJas$<xczo!2gaRp!a0h-^O%zKUm`oqvy7o z;q;oo3R$eBrSHH&T~-_4D?!FAhGdcb0Mm{zx-jSKlsPReCmKli$z}%wne&MpcMM*N z3|#bs!IBNhm++vKu42S<S>ZkUG+D6Hd=94ld_cufIJ1G&_*|Y;H{uJZL)~tK+z3!w z=IQeho#Gl>K^M7shawgqYPNysSl%aw<rR6ZBIN(uqE-6L$y~noQ#*B}u`&1|?hFMz z^jwmgZ|6gjI_9Vg-d-{Ht#gRBsGMspWBCU*{2gL#>*_ZanA5=*$TDO{T9P|xRN7!_ zPgrkML4;2L3u{ZlJbQ<%+s*!A1Lz4<m|H=XNwDVZZ-u+jAF#Afko78!DF3ZfVNIU( zIOu1`mDhhi1NQDG1u4}!SjF!<4bG-|a6_=Q_(m-y9q0tVF3aHPX-G3#36@C2myKV$ z-owD<x=i}S#g5%-RxiNbg43>6zk?}`)bvZZ56kUv=(e*V3^fxRxdl(#gFCV<StCov z{M+@%iL`$)WVx%ex;nm&eSoh2{HuoJu|7cO)=r-Lx8+0%yw?NiCiD>&s97&q&V*}3 zlw=f;l`&Lrz+yaWPPq14dP(@QKuNkNm-77Njgk<Wi0b6jC3wVccuKTGK_-Edm+2a> z!%vP;kMFX^_$>c+4Ue1kV~KVr%cdnI4Ho@F>{wlErFq^5T9w#~`=D3JTFvpJ$CZ5A zC><-G$XrBs%pJcmSPR@v&^Um#EW_L@3Be%FHRrRpE0Eu?->?9*UB}cCuUC%KbU=@X zQK<FliA+tSs=M&ICk$a^N83eZH*VR(+lBV=PA4}6CEM$)6JeNL3e>n+a<^vZJ=z+x zLEkSlH7lG^<+-??#u-O)yb$qVk6R7Y?)SNaz4zIhK400CCj$4#?P5?y>;W+2mjjz^ zLvtB=A)?RVkg)Rza8<;KmvuE1hnpihQO>i;3u~u!`o}iD3>^y|i~M+Z9Bt)CGr~w& z^8I_hw|^wQplJc3_8iePODR(P`CwQ+;jUqU^rgP12OR_EeLcUFD?Iseb=V6?aSNxH zMZnhm1jtIOhAzzLDA_yj)ZYGOA>+9Zer&qAo6@oYRIN(Mm>W%-=f4$_-=aF>G~u4{ zKzOpfGB4=;a5nI&px)x%S(;8H`)rm=*{#*$$^QF-y=V7dJ%Ksu*;4=Sp&!NybYlFs zdlm2<Kac)g=zFAir_Fa@dc9JTkR07cN-+2mC3?1_6qsGR_M-HkW8XNcsTmx;FNC2d zTgo~mgB*gvR;9eZ3PJL1CRXaVExhqx-=L<Og*#2yB+u*;kdrHV$9og2AvQneQ>c=4 zH!NTwvR7Ty#F#|t)1c-D`%f%fWBkPW;U{N#sNhMt8AgertF8!knGg{HXN3@$W#_Br z@BCn4@jx@SI$IZ8)_Yhqj&w-$DA?aCz&!w1k}g%shg!#9!iE>Af3IJMhL3Sr*8ba9 ze|3Ei_jJF%!Ub20W(t^n;+X!HcZgUO8j+q!-Wtd5uK`;U6LcMn*-5iGQBk)M>NmZE zthB7q{Q&|OENUD*<9JJ-F^f~kn<=uXU0G-AWO%{4FWy>u{Zmco%*bH7>NkOYQ-2uM z5RBty6)QN1^vFZu3d9<2dz%em$)PsoG^0i5XH%_am0_700V$mgc*gJ8j?5U+QkSRf ztn|{rR|oI?94e(jgNdhT6#93=(b5-^!O!|Ol6!;8n#us*c4Fu^O>!gV58aDIk(60Y zZRr<EFZiPU)L*a;N*P#<DnN5HSiZ+CKFk0f4L#n^;NxZ6r?lnkW2OxXw-N*o<=IQ; zp^Q?HUCf#*M!0W8|6M+9?fYZ#THE0AS#KOV`Pgzg%~$U;Q;N1vxB##&#sv2ZyTvSb zsIb3WR0M$2*&sjhiU2Gac#5bnqVcF`b1b-D#&yfj>sveKR%XyLj#Ij1UFiS7A=uZ} zB|@xh<~@(Wy<K6F56m~qFM6xB0RaiN#NMu|1mj(Q*4JGJ0vBU+cRrY`$UYG}H!sJm zI@3OS#=f6-JVbC%$$<F@C$H1EH-+{6&4C_*sJ`~kQyZCZHapJ0yn$vmt0ze_3Tv6x z*ksV!VoGhE8%>2D4K*m^<-yk<5g?HP(B=N|Ih||AU3_}iOl0iL;JhCV1!6Lcu5{#C z+u8rA?^<RcdjA>jJ~{G-)+^n6u)BZnhReLI!~~(L*j4QYa{1nkJ9?wBr5dh(A8GP# zDycR^6Hlc*le$%H)v;(L{Vf0C!{%Mj3>VaLyu*I<wC%A%3^uJv4jx9Mux-nxz|%B} zgDV@}@$a~;326}DXm~A~Bo;AsPqx$-IP2kM<h_27!EGD87Gjk1x?@o;f93PW9<R!V z|2{S9xAF_UY$e=PhxfyMMT*(JX_vETDP>-|99H_&>z_XiKyQ~o`$@<Znd|NwaHGC4 zBV7_(hmKy#?>rE8MW6Uwyv*UEL9xm+nh23Wz3}Dc@kz$g5B#%b`YGpOa)PD4yzU_* zdRCh(>gasTwvH?3U)lVegBZ^xpe4ET-?r#`<XwknlDv&T!Ovy<%{D51aCo>wgvRC4 zOZ~fJRbZ$<OH;XLW>_N&N2u!IrxbB+{MeTuBx)ijaejjxz)E9x&VsGMd<!&6FZ2ur zgQa#~gPAoC#ySjozO`shSf!kweYqNwK{%aYxRRE<ss$=L6%tKD+IcX<fz$@BGvYCb zajtj^F_s*~YzT+&hd|jJ0!({U!iQq%ro$jzD-0U3>o+9Y8_N%OaS>H*ToZ}~s!Y(Y z187LCpZeJJ!qau)6D<BN7+0Cgn|$-P+fxYWS0@dMQcp_Z71>dyZVC+TJkVIIo;++3 zS7_NvYCdrdzHR_-D6s00WDOR?<rHFudDCXhX)9K38dzOkZwiF5I#^>wPU7|@ejcgP zgn=8dL%c-^-_6l-@d4H9o7k?8Q3dIa;oXm)9XbLE&S;_Ib@v;g<hcGT#(TbD0z{DZ zr3R1a!j-@DSe?H59)rBs;a&oFbZf5tttC#8SPS>MRuTl*D0h0%p4qEyTvnc!a-xX& z2f26K#?-ZzngK$XDxVeAY@x09WPIqhSFw{qJ<3WYZyq5%bQLjAA>rJcn1RHBg6E03 zz_<+;lI|LcRN|Dmt%}6m4WCA-yWI$u6=@}^c!bnAmwy4WDVq4QE1$m-qlB~zJ~<aJ zkt*8wyX&X6#uwUr?37ykoK{7ibMX}5{m0kYORS7r#jF3%lG%TD`atXznh~EIPBydQ zq;`-Tq!rcoAOj~0An8_Io)hh4w0FAzl^VN@=R@j(SXk1R0QdwM%yy3H=lV5^nOk*E z@xd~fWOFssjab;NCUm5X)x#NnutvSYN=qE<UYT!~i^w0SCCwh;`tzYWp{3g-W&N{p zGAu8qx>DkV#yhY6atq0LR-NtSfl=P3xpK;otdZA+7=$6e;2SHwjS&2Y-#B!axA9Ha zk-4qlAqGRefJlj1;;QjT#}9-rsgCdOj?H2V!swo=UVf*5@TU-BGHmZbE2pPC$#V9- zXF#FkV9$xDV18YOKN&VgV#^;#eHs_IMR0{!q>C)gK!v@FE%!@aj??Vb99WJR0}Y&q zI!vFicgCB}a!&aK_e0!<{L?&&Ki=_%r9>+=49XJ?#Wm{M<J6v&->**e;;?i2m{YeI za719ARzZ_9X3a&}{R%jpqTBTu-{#0Wxc|ePRdWzTwW)BWcVBtoe0tt%BNje5y;bX^ za(co0M$#*O>0#Q*hhL_5Ph;wZgqz9In=LAveL<@p2-9=J!O!PNdA*+UyIcAV<8_qo zedq|juQyb!2u=Tw`s^{YpDnTCj9ov!U+b@VEGjAUXEq=Cu~deRa<)8+AjZ6eh;WNk zJ9)f24e%RSebi1GUEWUhQA(a{L4!`|?ZxYL$j%o|ZH9)iO8h_A#d{hBX0Y1D9A7Sj z49;$?m$@yov)pz(guwZigrBM69844-bI{5T@cszTz*P7mmC~L0Y*j_iOL4>d55{c) zRc(?sd7^c)GK$u<f6qTUDsFG|dE{Lu!i<FMC0yrp3@;cxmtOARK?>+BJXF^1XfLQj zFLw6cVo=(Jju8}D&1cEL`(6MEa|!zMO*kyRlaQ`LZD-asBN`^keuFUrmRl<szrkN_ z+^*;Vzm=d6qI-B9Bq}><ck>0T{y(A7Zy=_H7TD%Of4F6~sgdmUeKOv+y@?@L36vT0 zAjoeIc%nI#1}f>u7)`_|evcE>^S&LHa}-o_F*EF?Oq|OEGI&bjm)A7+a{4>=>fN>F zNq@J7jXxg0fKNnBflPPV8$CWb-mLR+RFa&L>pA%{Ma=U?iK=1A{_Dh`aCT#@zp@2K z;d?jqUmUgkS?={}^Im0M0sn8L-fO>NZTOufzwB6|0&kSv(pv}%uB5&XAvHC2ijXOu zUB`g`{;YUVO8DEgKlPW;l8M`Hi+bgwZl)<k*}H$p@85Qs)e_wuC^N{X1cU+U2AT~S zpv`2*e?s&yU5SvAl8qFYjWSS=W##1}0D$mz3Gu#R($P)ELeI*FQzM$Q%0D(DJMmlc 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	cP_mwsyzK1bD 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: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�w2y`xW<y>oHbRvE-4tsH1 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 literal 0 HcmV?d00001 diff --git a/kernel_ridge_linear_model/marginal_effect_exploration_automatic_experiments_0.89_base_Y/visual_help_f_X_1_over_X_0__X_1__X_2__X_3__X_4__X_5__X_6__X_7__X_8.png b/kernel_ridge_linear_model/marginal_effect_exploration_automatic_experiments_0.89_base_Y/visual_help_f_X_1_over_X_0__X_1__X_2__X_3__X_4__X_5__X_6__X_7__X_8.png new file mode 100755 index 0000000000000000000000000000000000000000..157909049eeca3f1512a85ae4ccf1bf17f11ecc3 GIT binary patch literal 449140 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%0AD?Im5kN=c(FFfs&;YEc{>}Yf`}0o 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�gy`6RO{&%SE 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�L^xV2t9>FWp~O0r5auCo6VX4` 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�*@MJ@tQ3w`ngCFZ9_RgGiN+)S-slTwdOB=3&nz5-PE}b>9o& z(;4DA_9T4a)(G@k&y|}=@uB!1#=ZnYx3Vt-%B>sG49OVi{X(eqz<M559^U&xo?;45 z_5pgM8q_od`_tVPK7-Kj&ep=mI04%Mwfu$xa@{jxVfL6Hr`)eDK8{^5y_aMkvC)-D zzZdPdM(Ba=dC?dRzC&QzQ#K2bl&%FJy*IQz=92J~iq7o>TgpyWgL>)}x2ncKdUbpB z?8NY8Y9!O6BPt7f6rbllq7H(TAL3+A0V|(ornanu78K#iyVZOp!kT}+Y>chV49bXC zp}U+#O0jsKVe@|K<GvhL6ze>Sx;>FIlHk1JGS+e}6n0B2XOkQv;)5wM;PIR--#v&j z(=hiq0Z?0CplTV~&6a=DihEV2rH?Of7)awtEg;~;%X`L9M;WLViU`Yv@y!Y3_lc2M z$?QdbZ`_zrJwf>iZrxk^NP1d(1{(d{osZnzW{mRi++3R$FW*mvyDTu>>83`CMvmJ7 z1pEO+6T_fBk(*fNo(gfks!w=-S(mlb^Dwm~H4^Q|zSU^i_eBA2i!D52djj)Pw>P?u zc^2cwo4?iE7yU2}3xutu=YoJ;SAzvVwF$%8V1Ok6Fd&d*u3Y4o`E%&SbAiB?Ws<jm zC`DY$5-wFy7o7R>>ljT!-ymr%2f;ZrytW`usB%92Hyjil=~NB7E_PD<lxV#F9>ajL zU7p7%6=_N36%s=U8}n#7dkimYD;wDLnd5o>2P=1!Y%5^zeNvYYnUKAabI++MBJQRw z8>>Dd|Iy&oYWSSp)8;JQ2_;)rk9~qlZouNcpp#Ms*M#)C{nClLR)KM?)gKxu$JWev zH=fBK!Ci8xbB}CtaX9Sje(;{4Nt5ujY;y3j-kBapAJYsbV1C~9(4ps?gB7(E`%xa@ z=c6rBH>1+gmdU!DQ|f>M=FND|ugs-Sm5KV}*=cz~{QVV$+qUlNWalwrhhe>IOT!1P zCCj*#MrXjAy4D(1gfvzA(zX=tb^N;pbaU6dZj#TkTOerb(qr@^6yC@XPR)hr?bKz? zr{HDYH2_a4xQ5~&-OUGPqU84nv%vLanE?^1(lwLU@w=NtdUj~?#{6_yif);AcZ{8! zyx*@1S#f;QT=+gPWPIIGunxWcLN}(=MQ<n8MD!T74(56GvhSewJ+F%n<P$&WuGll| zFUdeD?Wae3(XZ9IU2rdR^V$1aZ$l+%0qbUhzEaj-%U`BD`mi)CzObog$eD(X%z7iD z7l?)b?ZzZHvOnRCh4e{SUP9HxZb;2sW3>mPo^i};i|fs3kcW<J)<5M^E}+F9ErYJ_ z8?gYBg*-BmyDVHI3eP=+pqJgy9-gbc48aE=>a_|O4hA(5Y)vxp=>md>6hz4O^;SZ% ziJcgqPIep_vT%^_Lwa^~$QIszYoP72u}GleCgkz(OB)Pth8={~D#nR4Zh6e&_LOhd z{HFTcadpWwEh%jw{FIZb*Nn27Ov$#j<l4MXMDQ-DJwRA78kqNJc`3eJ?IxA;X};Of z;K!$!<){5RQw{b;4qvv6;dR<0-4#At05h0a42W*_Qah`1<48}0R5HEkd;fq?UaWR3 zv%K19i`K4rx(rxewc@P_otAvhC(=?a#zFpb1OQw~D*Mabui{i~-o`==M-iG)C}&UC z@II#%MkHNmeTMA`fu+Vpr?~^=5<i4kSR;a{o8uY?qJ#q?I_Tz`$t}-V`E30-@_NQ= z|BYE}ppMqr&}gC7SkG8Ap7Um0NwNq2_*=uqe?TE1#O$if$fwGp?Trx2qqBP$gSIsN zJ{2R+=5t=%iGh>ncn2u30q5|nhkEGn8WQUxUn1V2S>LhY;M7dt7hs3p?pSWmt@&d- zN3rg>z_gd0oXmeuQ&1c)ZK+UuUUT)#>W0L@dXHu+H&lT4f8P*`UFN>Eo+F7nw~EA^ zO4QAizFU<d40xQ_W!cBMyXD_x-yh$+G<1Yq%yO}u{@uPZJe*@e=<NJO$MwhRYj~wh zuM?60*Fuqpok!<JvQhO9W|?Qv*yOxs8OEgY9J;p18HfT|{N7EP07~!E;(yK+W38Xz z!%ZxQyoYdO0JAJ6khL&80l@o96B+sVbtm&6VwEPy!vJ{Y>r@ej@aR5XCGE;1L>vp) zQvq19%OOCOWk?z@I$|Jma#xJ>W6z`J)h1EWzM|kAiiXh_iT_nuup<@pE94E5Sx?^A zAJ!pssYre=oe&xPeHtQtmzHv`pB|)>-#K<N>=dwyrlNbrRzAhvxe2wW;1jv0ov3yF zGf}lP>}Ft-SZ;MQDiu5E{@7@=@<rSZ&i!Nhl5RUYLZWyzCQf%Uw%#hm+6OIu^h_#O zFFY}ktUmu0QM$o>z*u*!$Hl5}6)xUneAj}=At+qAKL_&5<iR~JX+x1S0L7ZSk0BOa z5AKziS*VyDUTDDXLCO((OdT)zx9Z0+{_a<EbM{5U!iutn3y7|rUB>VR?IKVEkdxj) z>*EzubIxJNE-gAr08Yv{A$+>1yN_og0VT$H-5aKR%=}<{(4Dv}OmB>4rLhWYAN)ml z&iwi%lT8X`|0-4?(P+okwlwTTOT^5r0&t@BevUT(^!r~2+^z6^gi5I4Z^|2Ln=>uO z{RFU~w++p~V>-zztv%B9D_WU4Z-;D;ALBJo4LPl(NACstfoI(@w49&K)6LeDpQ#a} zmeUE_c(61KxZ8`fHG=vRP>olNS=Ih_iKJ1}1;@B*`=beTSKYk25h(A>@4YCAThXfn z8tZpgS_LrlnZHw+wvWg{3hHP?&IpwY><YjHvh&(_q1<(>qXJ<F$$u4?B>?s`;D=NQ zL(;Qr*&gYV4?I%>cWkrudpTfy+)o8mZzH}h>25^?)^y^A#NU7xMoi(^7g8?_5^M_o z8eiC8R4gH1-EOqCvc)ZleXFGpB|7~*K%E^MV$;LQILDR+C1aIW%|h)Ia&?57kg@%j z)_Sxk>4j-c=jq~&x(mTBJz)}Pmb8ZvRH-pVXZC%%&QG$#GtBQgeY2=NLOYeKOCxD~ z<?C7e!g5vZP1={M6`KfmO_uu34~FM$@2VVgX7Bi36iF3Kkr>A&EbCX^T=}8*eENvb zC=mGIGNOR>T+(Cu^Phj0l}Q1&*!?w}jtE_Ubrh!r$1%wx_@wd^=$GS6mGuyHPg;X> zZxBF^+gqizM^c~f%dH-qrshBN?%uU@L6F_A{V%47<NHaXWU6v@`&e_8kBs)ZtrDZO zn!lXKoIWiac9>ka>RoRsHGSvy8s5=a`pXr;ITiB8QFS>GIfqiui(2W4SeBMujQ67z zW-R}>2%dGG8SjhfT8?}Yr|%A$Y9yR$#$ul9|FF${Xwx*a+b2oFIq|s-M}`s$8A5(Q zEN`7~#D3C<WE9H!X>_XuR|>Y12|iwi=R4h$RvWB=U?mXVal##YF||1NK|0M|o~nsU z=$d=JdJO}WA2k`WRh5roUZZ<rv?47?Yfh>*j7jE3oaHSyRt_I=*!e=7rXT^M^`_{Y zn?B2YDSm042eHmgLv^sd?++eXA2nxf?fb^P{!ysQ^#Ne$`g+;qgl^~nsl_jpti@ZS z3YQT=&@(FAL(u#W5tJz?CeF^k1=fG?ga`Sb(Mw;p0os9ZzDke5Yi7EkHsJy<R)T1e zQrqmpt{oS#nfP9&)ZKO&k~*ymJbF}|XdKJs=tNb!xF1LkweE?TwyU58OC>k$PX9Mt zs`#50gwlPv{P>HrOugmC<fFSA-#M`FCI!}HCWH64e7x2loAoslW{;EB4MRD|H$C+l z9(_Hn6#W&c>$y0_#TkABIv~WnLVG;NT+Vi??yHF2L&SYd|Nf?8m7pVE<n7?e($~=Y z#I40R#}OTU@HgcfgoljiT5`nx-(k*!?;r>7R{1O(0S?*`;Ghlu6oc55(la7MOn4Cb z$j51qo`pz@W(#2dM9J}`l&iH`@^i^OIrs=?yp1_dn!I#o_>JdR3h_}{BZ?I{aC9e9 z*D}l{Qz9R{!q)tOqC>rsGrbOBY9{R3(w}-KWvHi;(k+OSqu1(rX5RW`q)Dh1XrVIJ zWcKLU2RGcHuO4`vguF)nph|hPATYhZ^ecVlr2mKmoXt!(LKBpST@@27`UvFcMy$2j zp!<{8Gks!sVaG1{Jlqvu<ZE$Mp(8XU!r6JEWCO#iU+`3QZ`+jbn9tz2bMqGXPilNG zumH1)jIRg`R?i#c%Z$p7OkUUyw>%ToR18bc6Ib{Z=)IH%{u~@%+`2+bGg}K^RRj@7 z$j!T!#=~?>j!ifxbc|M6>$sp(9do<>4{2#5!j0ucUiN}soD1q3umo1=ZF9!;_HF}c zlV}d#nAr=g3)@CsEhgi*@3MIBFo8qBVS@&c*Yb#*!7czzi+f{qZ_eyVUbuzSF0oyr zk|I~|qjF^fHF1WT@b6HN_>ud6D@4-CV(Oy-oP~*@E@N1Q?Bd}F59?=)prS8kVYvV` z3);QOGN+kt-~uIY9k|iFXQ(Rj=SH47d3H|$edS}Pf--S37Zj7rwY2iW|8Vba{oY>@ zxYBu#9k;d4gB^L<k5>r%>+=C|v0)+S8_*I{uj?gz#2hj}pK^Z1SqC9&PT9&^k@1KE zcZG3;@yN#I$}gU5)@J~j{{sDV*n%g5Yiw2`e>nITQk&j+Gxc)Bdb+45bIrVa%6d|3 zn=R$EZH0wHz%d0zWceZRmpSsj-U6J}Ah65hK1M0AyLJD92H$Jj&pE^7vXjIEq{zB_ zHPAF6h#yBx@8YGRB8824&0fk#uy^`ibnr!FDYqE`Qd-yphW<Gts9S(|)DvWiC$A;x z4}NBsoG#Jdz;#Nx23U3Sk&&Pk$r&ZiYn?sA*PZ6l)!Qi@ZaoN~I$<l8-Wi~oke?Wv z((Rb1apPFZWMk$Q-Yz+?Is9jAQy@#B_GXrD-mt?L_HCg}^W%xXNFo|LjzBVT8Xo<o z#rl2cgprOBOIzkBv<1}9_1BH=f6kTzzqa>DN{Sux7pr_GvD<%#pCrmJ_$112YvYFG z0g0A4ub2|Q{dT`J*?Ct=T1Ee|4!;?iHf<<w1v9+bg=<TDhar=;HdX#rq4m}FA^Rk| zx+YQTMH4PbR(xsvvVUuN!Qbk(k(Qr-PK#!t+}SVDC@-z+-U@u1WM2-jDTE<QVgGbK zoq{DXMZVoz3|z}zmH3e68@O+*=i56P*5vl2om5?sa#+Hz;i7O3_qg}%_EfmTPPxDw zJ861uuKbZhWN@!Nzta$>t>1o64O_ictS9q+w<Y7T1^vcKJ!H|)#PYu8^3M`4ovi@T zilbV{keg_1tX2Z|BHudupQtz4J}<JE+wGu9j+-fp)|(4KzJrm2F>`|q?An`{VPd`g z8p<PEZ^W|H+`Zmum7`edzNsgouE`QK%S{IuQ5W=+L-=N3)-Vu0K>P~N@)>@2eHCx~ zD0q^t87~)dRld12GpMh~HN}2#;a|q5XSi_T3A~#gPgX;IsDT8WIP$`Hk+l?k&ap@O zQQj@@L=V@<iOc>R#nH?*uuC0ouT0u%_WW;#^-7TM)Vv>r`+u@LSI<EV2(jJ5PlK`Y zh@u;qT#W7Xo6GKYYHX8br>+D#um5d+_+2n-bhB=S3U^}y3wJh@(~PBw1#2MO>>^Zg z%43&2tZ0QfL6x3Bv9k=6T>lpoO%g8#5f%TWs07_T;9FI)K|ISKbpu?A{g_1UD3$^? z%VjB?muSk7d|_Y^Nr093gHO06i@u*azDmS?Yx@7#diQvy-~WHS2!*U(luAz3OQ|$c z<TRvG$)Qw|!^o+!S><dtNm?a`LTFeLI<cJQyg3wdnnTPCa~@_6!x-EAo~qaT`+mJY zzkm9xTXJ2`>$)C~`{RDFhsbQIo-(e4DJZYTXswBmK9nSTzd3pZU#e8m?0eUnK!StC z^ZBkKG$4#oKQy0h4k{g6G*IbvS5OpJxcgN^`?A5V+xi^oKy7ulEB8dA_XAh?hK|mi zLZiX*zw0LA!??xh1v^Jlnn839_9(mO<-v~ESoKoidsvsz=TrkaPhl{p`AG)vBMQ{* zy?Sc(7|5>T_KL*7N8t5o-C~DI6r6JNKFW3HW;-$r=?Ou*{4T)ob02?!HGY`#I5O_r zm4VRx*pZN-!w)=eIh6%GZE+;#`Hg%o5|KX-COvfz9Q!QR0@1&J*@ao7e(OE2HSiW< z;)Q)c@;~f++<+ZtyDH8{g~8y(07(;G-i{qvKs<4w7*M@AsxPLLJtg^HN06P>cLqhq zqK7*alC(Orvlq8k&p$Ljx_7QA1&3>!ZeA9XtDjlEr8U*0LTXORCi+>q9RM6Dy57vb zoNTZuI^K@pPGq&fhFP{x<~X4WfV613zjHVGhl>+JDs|ugWv<9{Z<aJtf4ph4h*p|X zR;3A1E=(x?gOdKIa~n3SEnGNbd{t@8Ef<a;cuI<#iTpfg6ncfy(U_96l!@3D6c7!7 z+eC0v7S~;GtSu<fx)Ra+P!cTUnfLv=sqSLVCqQy}qUW8iwMW#BYvjV0B?N$?AQ%@> zMjDUZE~7uxVBabA8JXj75=%Jq&d>CxvW4YmD~+)}V_{~@2-#4r(TUH9-p+6q@iZn| zsZ^VLhXt^&ZI-J39A-xgVeFVS_1@}`Uv%@a<?shY9b*r(IcM@%(ea7b1a;A2n50in znR1Ahg=)w*YtS+N1#X3B5a8kr_4g57={koVE5Ah=(tj*VFR4HGJ|IPNN~htqGA@}n z0Seu_U>23BXo+5wi_kdnn){d0i{}e+I1<<WqQ_wM@E;qAI>&8nXGjuQY;?rBt6!b3 z-x@uBfn~{34i1#ieQQ88Hzo3&@KGEB(i|zt=e&6f!(AY*&y}-T)q}HulaB&)r36zb z2!2Y>ZRB18puj%uMK7d#N0oI}Abn*cK<#BeyNA`JNu2iZ=AXhFSWgE1-0w}kxP;-w zr1$?l3s@ST3Z@mw&(r7R>tsry)Ecc+l7%dw5^f;;fGn7RFwx6TYX;#6WL5e8|M7l) zm{}>mX`g{>-RGlf59=fP&d3yBRcyatsT&4x|0b$`CY*ETP{S}jd$No^%$c}VN?UDt z1dt3iW)#jS+o<CkL@MpDN;X-A$)37xZva8F82=|_%KP2@i%6?-59_{>7QeVoV-cRs z;3v=06Jxq5a$Y$>1Jp=swC9?$bm)tm6UZ&z=JiD~ikvRzBe7npm&&l5_8PKL7vvQ@ zfBPAKz)epZy!2gXELYBk18=6fKoUTg<i0m*jb~`0y!SZ(<@!bFqJKQ12|_a+_gWHr zY6^;WTrAR_W7J-wEd9KP^$n4)oYo&$vTD;gWYM57IxGxvJkFc?8!N_E`;IXn^)|e> z6K9EZwI+3ioxj6;KI80iJea$zFh$mqRZ#qovic#E1JB^Z@NOo74$H<?yXfKz)uJf@ z#=Eag+gSo&`Jed?Z|mZvFp#fGizXKS)%rNE&d)u)R+gkGSHEY!0<`QsNex=2@Ndb> zck?F$`^j<pHb%Wo*MD%k4(mH2;p8NGWMaLzLCNfGQgWuDQ72UHxExk`ZbRgJS~v9o z?gUg*f^IXw`5KK1_Uua*)9p;^o=g!!qAt<4cz<D6TzZX{+WZ!gmxL*fvUbvwWo)AV zaPK`~8xqrFQ+ofh*Vecn?*r_xNuIl)L0INbN9GC2=ldJcT28^7ZK@Cj+hG+?{VUo~ zsyMDfDu1o+F|BF%+8@$ro5X1??2H>d7_3JZ3Ry|#Eu>WFf+GN^>?LlRdztc+izs)H zrUK?63a$t7dfmO63Fy@4%;)jTH$l><8Y^OcruSD+^C2?#y)1h>FpN>>e~?+&{vs{+ zX@strTtt40_NI8`E>%mL-cJs86j;dM+#e303*9x(v|IWiY0iIj(;D_RIB~U#z}rSF zfroG|2htG3b^eh~in;jWTC@K7M>p;OnYc_5y3!d~UjC^y=FwCSty`-p6C(-w`FgQ( zhLcSe;I&DZwiI2Vd_;Tm{90Dj9a;bX2{zvTO(yy6qbP-oSI0^Md`h>xB&TQ4{M<Kq zLt!)%5m5Vzx>lfzS&k#<<YBVkrgM}*4KdY(-U}k%#>$-X3Nd#y=LqxXNxGw<{i<WZ zcypH?Ps0iwcP-)0m*QWjFDqAci=X*O&xAY~lb~~lwAabw-Zc!7cwk!5Z@=`Q&)z?_ z+M>x<+w4bXbN!OjiE0yeSB5Wg_fL1vzEabvjg~ki`qo{$v=t0^u3bZb3JMn9oR~g# z=fCP7rr~Bq5K#BPqO&b%uZu_w7aL{6O?S|bf0pG;!*k)FQU7-4idD3QM(A;$igmtZ zOl0}AQwSh~s`Fh6-3__UQ*&z^yGX=Dw8*eq%zo~EKJGJCe)Mj~@?Ggs|CF%W)26%^ zBavpQ_6>|+quOQ2fN&Hqye{I8Oa84hkndtF#a7}&5Y1bJgxYUgen>II7FfP~GAFh| zLkPWC3AshDBB{Pc--gxkuD0DgI?LFfYb>ZC0ED~~tKYC5e&qOZC3eg8IK{U>g_PIa z(^U6jYiMrUM3ag(p=Gkg&({H$&3sj71Ri!K#)QDYU3fr{loha>^l#VSpjkk|nj$jR zS~I-6US@WKgYP>f%Yz0JF#q4p<84s}`!b+Il?;8mMSnrcr!&nIYULyE4ivcFMDkWY zXLNJA&dHslV?`%JN3t24&?lH1`jgix3g1c-R$}_j*q!Lt(F%lLprRi5;q_T}2K{EG z)eN?s#K68sXe2_g@;)`vU|Pd#!X{UmZ|@_3r%kOpa6E47Lt@<Aa41s<+*JypjBcFB z2-!LD*FVS2JOC2M%7@lNGqVx7izYEPMJpYYKi#ffh-b2Pq{LkewB`OMrYQeau@}#B zONW-D$J4?T<oBMGFz!V^%X3+4Op!Z`0e#SDmcx<!#orY16{7~OL*O0Md6ZSdZd1~I z)08k*pE$(xLfK>g>>cp7X(P8Z1ru+eC631_ijBG|jn+B;S}U3`fq?cH2V{7m@w zCcNxpMpYNY(PP;Ngu{ByaK*6XnPlGvnx-B)j}1b(>v=cYSVB{%u{cCCV~-E_4Ty78 z-{ODhlA#e!X-=kJH)wtcT~>D!k~%c-Ox*qx7(kE~tfB32<n~>{DUVXE4DD=#jbA?e zlnWIBAzD|SwJn|1{y0YNsn1uw<Jo2JAsi6D)T(Rw9E4m1P|w#Kb>>OOm^!Aec<EeT zp&9)>@p*l8Wpa;acMSJ&yOUtQ`dZf^xrkXi@PiXfSgwP|0jLAF{?reTl-utF?_o9l z?adT8?`Ju{;XgJt2&4!Y@-6EUmZr1}of@ag^{2QUXMEFno-3xnRfhVa(ZqSjG*bMD zkQ{x<uWMWlnNrl7bPz{f>^b<p2zQ?NGYeZ(jG&=T?>WXdZ>|#pXjY4N(2R)0Y5};p zmU`FkIr;jk`)P<SxvFK)Q=HU@nY7Pa&8Vp0n7RlY`8;a4^3-$wHUm{1;=IXS$%T|7 z+WZr%)owseWXC`nBNwL$!wtA_;wQqmMZBHsScFh%eog_;_crbjiK2q$s<rn;(b3K` zRr~X!dl#5$pvY;L(uAaKWl#(YHT;i^kIru}Upk7H{-!r}Xw?nN!)xj({tzR0XqAQY zwzO@@(#=mP3IMjFFVNit-nPFkD;>7?sR7J|<b7*}x=>U%rfoB*i^@w_Ec~~MV&9GJ z>YMMX%!)r1zb&qR+Sj>3{5ae1BcZwp1K4c?2#GsR#6a10V=RF%yz?ll)1g>?linlS z`OQ-slC0<H<wZNYa@hSrFyk!XS4!k)uv|g4Ms>UP$X@m0UE#cpoCR&<YR%de?*`0? zs&3EsnQzCwL`)wXZ&SwQ!GuV`rL@Ifz%|B(bXgmEsI`XV^<spjU1&U3H4YfW_Y$}_ zTJ`(?5#_BsK0#l2s1$-F#zxk_;nx82(3dib#X8E=2Dj3)3u(5TGdMMfO%Oa@fa52w z)!EZ1yN6Wnp8?a7L-_W3w{TN3Zu9I3H!!R_`CXvYb=iwqU<_afHJPvZMPR%-FSmKo z)?xUN<HczE7f-MEE)@US#5SrMu-IG&G=49e#(AN}2F9F~*hNlHA_~6fJbe(kn5H!@ z3M4nOOlm#W#@!kLz5f9IbTWy0*W)Di==JMQrV?RD_xw>KV#cyMUm0)+RudT(aseK| zpHiv88uvZ4cjcFZA{@nSSi3E^dMj2){7+%%R4pu#x_ieNpYul$VQ-CghJTE$qj1at z`}&skdgR2*7RjfR)+L0On4Oxp?TQWbt+Xg(VC0=?v*!E9?=Ua#9$SH&SPylGmjfS2 zP+_`PhK(`@?35vM>nX4mvj=Btzd26rAEPEWELClCD+oXNMoTjk^C|&TLAaZK@~kH5 z?1O@{{LqSTsp(&$^pUwcwfSwUj-=>~4m8x)-+H+H^aUZ@R=asl$rc`yH>vAt+D_|^ z<1mMbsL>ATTEtpa5hLJ!NGt+!Vmb(gKkSu1jTc_Fz3-z@Bts4hagv6e3~7|rJHllo zTRw1m-_lf*8hOpo&{z}dU^S+la$mjfIxs?m$d^uD*f`T}SlFlimlbY|PAo{qvFSAq z3uLO+7sLU5Dg6cgo`c=@mK-_4ME8(Hv;<2mctN+7dL_7301SbB%qUge<FL9+`=fn< ztUc64V1jVZYuQ(faja~rX<8B-&hAJBpc|@hy+?-KT3;B4>B7l~uJiy7+fTtre8Q(J zDT9v;v4m>#)jI2{f(Rh3;osf)(M=kadhsG!nol<v3ln{g2=gvz#suz$(aJtKxYTG9 zvdfthPlPuaX<7k0HMaJ{7VGEBP12%Ri&;X%HI-icR}=p|fqZ@F+A(ts^lKUxeK<nk z@(n&Vm!=Ng7F6jBX_hXt($acdq#g1jfB&Y5^&A5A)sF%~b8TY(nUx<5a{jLL<H(X` ziPIqDx`o90Wm!L#dU7oo(J0n^Zxvck$grdOelTAz`cPivr5pefA|notEyn1SrJ6IR z!#LizW-`tOd;#zGqH%(4@6!`@T5fGIW(e6WupaR)Ozu5k?Vf&R6lQx7wAiYFVjOND ztw#!Id91EG@(j5SpUp=d4`NUFOC2^tA*%v@bTux|4`?xom_OABXA4q&ZOG2*F0}rj zG2kMGsD|YOcO&9Zi1gTvadKWcU(_92J7^CKv1MDf8fr{_*{O(}*5F?_{92Md;$wpL z=}hA16;Cut)n@9~snAnn41<Wq6e{WmZWr9%Ql8rWf071dg@jU{i90#X#2nlFX!pZQ zGBOzlQ%aGG>vFG1j+Fs>H}7$v+M|Q2?~u<ouzbHs#$EP%go(3Da9#M+ar1geLnb;f zk!y4iwrFe^u>Azl)k-gb-L6wRIh-x~*dHU7Ua`3#<OJ?5jGV*_>D>Fulq&n}2nY#> zxzUJu&(uQR5$h*tCO!VIe1}IvYt2FDD)#aKeRluTm6AFSyM_D;ZsLDWc7C+|Vx=qm zQ+`O?0)Ggqugn~ECX2DHi(5<y0v+F_$xapEwl2Wvyyi?j8{rk?HX`qghA#sbkrTdI z;ky;@XqgY>V#If9o(ve;Kpa*EDNLO0`EqRPdvOP;(AZ;z8eDm5^>ILFyzb0wka4%~ zjw5X)3mQ(6>%JBLSQG6JnK9YZr5hrA2mMC=D>9I`P;}mrSo+%?wy5Cj>e<yg!d4#V zGv~Xj<2DZa-ntfAv2Q8{vG@v1Yw}2@R-*Aikk^nmz)^AsF!<=2pA5y@Gfhu)b~1cM zr)@j%=B)E`$GD1pT)wrb*1i8VxY!tmk(P2bev}tHp-?aWSo}neP|7d2v<#lFx~Q(f z+wL%V%$KXP`{^|=!pmGBO}F-UShy?Ef-H6V^+iV7y0m89D-7&<3HhD5!~mM#SSh7; zq<KTi-e!yw#Tk(tz0o_TWh>|$Rs3$smm=;}cTJW-q<2o8!uTf>MODwG(iQ5BAfG(U zxNg&m4|PkAWAt&PvG(_AAI1G|>Q<e8OEXNthj|NWn4PfPd5w@B6L#>S{sX?2&NN_- zP!`#?YY3j^#pXzWjCmu2=87D^-sSJqk~#0Mb{@{Tf31FbF{blueAr{SqpQPG>^o+6 z<Kyfv-moj`QCD~^#kGtVpQFm}8;x=>9<=VW8jLB`^hH3F|69>nx-=<k-|Ztvq|dR~ z+&hq`hOGU8ykOTcXR<$m1@m2aRs{Ema%-5Q`G2AnPwj7+1p3x+?;4C2Qlnc(0#@K1 z7x`)<B*lk1y>t1p;8SEzqp8aH2E`xIBN=TwYah~e?ByD`DOy8W5eLr^M?!qGiCIx4 z(fuO-?x4?FJ#v3|rBbO+LcdzeNmrJzvH4o!Fj%ef)w}Sr8uP=&m(^};o%*o2F|hn& zm~1#)E(5qRG-Rw=Dj(3$GWA8n33P(9q`@WPgo-cFF|O8xT}DbE?+-ge?Bu+&^_SAR z{ti^ap1IEdk4)8>fI}68)E~4Qd-AFxhQ8qB!<kQPJ^3FsKl_4V+KAm2s^(DG?deFn z_xXkKn6DERkQc1Xxr}s3UR}2||8e{JJ7BT=`jnjyWD^%wta<N>#$j4BMWt%NwjPW) zO}q?nMxNS>M|zsQg?a$hU)cyb-q;0*4dwsGys~1i59sww9xK=}HRLsY#V5$;)u1Uj zq9>WvBiG|OtDJNklESto-{|u$AwvP-LCIi~d)V~Hd}^S3>_%iCQKr0kK6hlDO1^f8 zgrPF_nz>OnbY{^}I&8^M82{UNO*(2i=YRAm22Tf)u7rll0H;Ckiv+AaTqxT577gvQ zqvuZhec^XoKQdpgFMRVyu5W%%utiLvqboZbQ=otKoDV*~kai1@VSB&Mm<l^qZ|R^k z4Dz!0(Uo;$Cdz}>GOy#RJ(a<Amu>c+f04ktB)1Q*0HaLEbQ7SYR>;1y9n%vB>b&Kr z9=Dk1u4;$O56)hL`UdAtf#&*RN;P8txy2M0)1@#VerwGj5F02m|DT(zMrySfbkcR6 z>I;0)YV6Jl?R)WpMkjo9@O{vPf9(-d$WdoQ9QgRLP(jEx_!<qr#+IP)m*~IJm$1W- zxCcK#S^6r=CC3MBre1Gd+IBe!{z^IUxN0EeZ`|HL3(v*{OOoy{y?t4p|COnf4rFGn zyZcmfSNiDue$Ac9{?hYDdw*9C%j(@?A+!87y?{T`wp~5M*8UB_AYHt1>Y6bzNnbJg zp#`g4lGBq6FT%awPgmGD>LJIG_L)H9104}_yIOkh;Rthj`IJDuV>gBy8F(vf$`|Qw zX=o-o!oFN-c#^;}^*)-?7$2FSpHx1VFM=-iZ%LL&p$s%hMUOV2k_bP5!td)W@jq^} z8FE`D7FvWN+J$(ZjSyEhHZ%hJ1@B2QZoO3H>l1q%acQR)Nc&^g0W8%H6s&8dbaVFT zuD(a;tARbesr-!fIWF8;vexb^RE~{Ysg1xj17jwC%$m}|zG{1II`zqkRb}gG<0s{d z;u9&tk)XUC^-_89I)Zi>S>h>H5O$9|rXYMX>pyp!U{u7Je#t4iD^-mVt<E}u4w_RL z6$a2IWWIw-3{J3lK^Yyi987IAF7TI1k@jw~+?`#=j1rJHe?e*en0e2&*9e51gOCcX z46Y(KB6>PgBijJDzaB9uwlJ(ethwwHGjEk-|Hi&zvb_v&T;$#hfym%a)rBp8o;?n) zX@vAb|0LM-Hws!6HeP|$(#Oz1PjEvQ+6>JIKGpO`d+dD)nd=i{gJ(W71v#wrdpdSl z*8=^3Jo;8a0(<Q5vfflGHGpGwOszH!_udg+AxU60`$ZZ<aGnmMa#=o6xyPYpBS6h$ zAN}u!X-M>u4TqKb=&?{VTPZ{iNWpA>wDZq6*+;HP={&J?)B!(GS6JN7Y!w#4xjv{t z_mOp;tjEph@0$IXZWhu&t~p$lr86Z81Xnbb6uyt$i$7V~kowB9kNGyGr}Sg<#|Vn~ zq+`Wo>r2^F&=tFb_<gBx?U@o=XNim$I+;s$|9K(AQ_LoN9ylx@ms~*?#BR$(-F{2x zr<Qyc=cfKQ-((?LNwLHqgK!wwU(jgcN!A+8if*vvD%7VpSo`B0fAviYpG+Z3TLQ~f z#a4^v*EFU^Z5%qRYt|bl0Bgu)=~QP0ZA@$)(peqh9t_OO?i(<FE{4=1#9ugQ-ugYZ zMfS0S$?@U8>5d7Wl_X%hSiT0=3JCvDt4$S0a%*|dLyRXDzBh29HZQBC+&S2xJ%sSh zc~sg-_Y`Z_aQ})qGXW<vIom&K#5$}TJjYlxaO-vNgUYT)ZZD?=I*SFvW}05Rmjxe# zz7PwzJgSQOGrMp9KJ4<)BRRmkJcT;nQ)xL1Ws5kI`x`KI?6l-{ax3bshw~sR7obl6 zN>*$L-mD=kW^A(2K*mSLsCQ>)EHG(aIXgP@$S=Vbk68?Gpa<9Am!A&GW_<hG{|cd9 zVsy#_k(2kg?hm`LL;BzB5wz$bGY1nwt_Z*oqlS%!mkm-0^Sr7jT&A%|Q^m%c!lM_Q z)KrX_Twr+VO=yOw7_Y>eg#tY==ma3dv(yk^j41w!|ETd44aNsNg0JeLHpa0+xI+bt zSSvfAWBR#JR<>Nb7t0Tdl8^hb{JtPTKH&_=xRn!HlcC@UyH6)DYNA&mn*#67YFa~P zzl#<T`fASbTm!fcg8hb#6X`Gms(B*nn&HJ-o7SWA_~3&mUbf*N%{sUez8Y)Cc#=!{ zFBKjzE_ufhB{+y%KY7br2<tIk&YFD*N74j6mT!5S^4cTjPu9oXmA&A-gZ-W0fnxtr z>&ocvvHqm&Uf$rS|Dg|Z|FxaQ0Ci<}6xsswjhzF6<Ivo(S9O)_LgxR3eGx!P0R8;5 zx^VP@xQc@G3%IDU`n(V>2W(KzoJ|aiGn;-tRg*QT?|O2k!LH1z#jnX_^y5LpkA;B% zOo?S#=)G(YYfv`OIz6UbYS{^huq9?d+O}SqO%9w}7Nb~?JIp6}FMTqPzOhPWYR@}& zQ76OLuV1)CxgF`S&>f*hc>2uyT2D=nK3ub#9gv5U&h8y6dIr6|p6DQkYMl!epw{Fz z{y98Tqe`#vl2k&RL0ugZmgq7Z#*?<(Ll5jcn0W*Y<Oh>`muC&v$aN^ci0o+9^r^(7 zME3iZ^pVlu<crbEg6)6Lz&=|9mj`=EFd9LED(#S1L0YahA?s-g0f4uEo1ZT^z^J-K z;DWIRZdQQYkEJ0Z{}%b&?2uU&X^PtdbD1<-TA1sxtn8kBvGs>G+RBUcl7d;qo83ac z^@ymOO-o*Xcvh{*D@J7GV7Z@Henku8&gxwEAtClcp2z5g4p~Rh^#XLc_Pu^xSMjpV zc@SA)82F1&@yMl*E<NoIU;howmOgtZBt8mPh#Tz)k;E+Tjo6U&!1yIw3)Ike$|2lK z^w*qm(|1%@YjWPRJNxGjTiUxBt{+c2LHO6CO4*?trgQ-7cSR@FlcQR_`zp9sicCmh zaN5Hja`t+AIvVc=#!O;vdY2PN+e<jWyvd@X;e#*kL48iyPABQ*hUJy}YEz@WFZw9I zL-<A#rsDa4C&9c4Z*#Xl<Oa7r(Pc0{fA2<8GFWVm%UB0pjEAp*H;1y=25|-$UTn*I zHA`EEz(n{afCwen25+1r3|~%wHs{}ym}9Qf#}uc@m?3FKz_ySbj+yWPDrS}01lg(( zq`<X?B!P7Ex$bVN@6um5z3xcK8&P+o0M0W@J;|#-u4nf4zskwg`Fw;jc5M|%6gQ~~ zWC;py<mLyiQ2NbI*Vj2UMjy_fSN|mqZ$H!oDGGkfNG+T@VwN&IkXqU0`$P8ef6;>e zADcQ{;?|7S_F0*G=L0`f8bctd`Z8DF>j}qr*X$C1^b1vUFe#mrc)D|1bYm{|$~;wn z>77_yC=ArKPuyBtaGi1ZL=@YZCiqF)=is+}QyW$4K?fiu>6iEVI;Gj1QZkh$>Jui? zyl9V!k<0+iHPrO$0u*6nt4H|{&`R?06$fcs(8<b^RH$QJH|kG60}@uk4P~KgCF6kP zfar;fOS}bpby2}<`V*b8S_b3C^6*cG_4fRkhZm3MOzF3LAr$h!>ut-Y31~pa(mQo7 zxAGd_i1^UmaBe68ln-YpzG1&rL_Whf0ThRD(-(iB08~I6d2~h-JuSOoOoxJ2Y9^1S zPl}dLkZrhr-IF!F+OH-|(Fj-oDjiBRINQHi^$WNGo{6Rw1?sz9Ne=Esuz(dMN2Q3< z1W@P8-!vk)q4DbFL>K1G*|>~bF1(!YNho0HB>?w=e_=MoX#?>9qrxez@?E99j%}&c zZg+KdYa*&8_o`R9(m2qjzxL8TAmJ}u_Vf)jaQ@~j42^hnGU<H_e6sH`99aank*BnV zjReBkZ2*g0^t0@vY%|46F=W4+2Lprdb(R*^#tzjuR%Cw>sIZ*7n0u_WuB7(WcX)5* zBw!)R<BYTGw9YllQP3O?-bUt(x%}fRMCTA{2GtNcd;902WSfxxw3z5EQ(C0?_Lz`Y z=D6;aIyi4ZSse)Alm20p3Sygqg*y;m5+G}=h&GP&kAxMU`JGE}BwBYR(_q#&w4zH` z&=R?Y(13eX?yX^$A~>u4#&;+lV+#gw$&U%qFm6747)R9RANI*Xehry$aUxR`(&>-O z3bt}-C=~opag19N7Sw{~*IGRF3l<&TVnGOg5HRVdNx|F}wN)?mm3SEOuVu~e>9H=Y zU6f8=J$0703@*dypS|Jfp(WR>z`#syuuM(qA8R`2YK;cQcQk_8^`0bi1w)59ja1J{ zZ+B?BR3^?m1PMcX@5t#e4992xE7C3gQHqfNMxiUmoE{2o8QpDPZ>rq4-uRrTYd`tz z$gattv6Iy+qE&pQ&7y>ky;yJUkN$zir_zAZn2<~PUHv$`-AWh~-SJToY*#WNk|qlg z>H%W416-6_Q`ZAYk^11EP3Z#5=~q?6xdO7$ye><G-KaCuK4SArwWbbFUpNemK<+Tq z>&gogD&4=-`4)d%GaJ;J57_ZfI!g#OK=7mvN~0?yyL*nHWfZD2i&&=8G>uXP$Wyi@ z#l-Tt{{>jx+Eoq8v~R7ZKYH3uVZ<XkE%7e98?lKy^thz&N^p06E<m8qP#fFz&I+li zRqdT^FiTp{`08&C1h#z#Ag*7-hPEUazMe9sFsSUadQnhXh~#V!|0o^u*?Y&&Y=NU* zOiP@JF6Xbn)$rALmO{s(;|dz3C&+pZ$SIjZbS2ji;uf4aTaD15KtR6+*OH$cY(fBi zL|1A`^U0)@_S+FUPd48*v+Yk+rWf<8H-^{&Ca|-KKy1{%r$+G*-y5?V=AA`sL(gIS z%55#t?bnPO9ez_**tOfDkA3^BujqJnrk$=7aIFf`L@$v4_*Ta*v}+{icJn%Xh@ND+ zt!|=dA__8K;VlK}2E9dVnA&yVbHJJm3-5D1GWM*Zc<ye_T+!-9w^NMX76{|UVQoiB zD_QpNa0if@F_vj*fSZ3a{U~P*@&`D3$+swrXJl0<HMJN&XJekZz6{Fx%7P<p3b6>4 z*iRIR(}JhkONtQWg%e#_Qu7t}0t8=kHKPq$yhR*FZCt<G-;3`%L2jotmH17!ySwyv zz<Kj;UX<j|wHw;_buJp51gh4hufI3q@?JP7X-T<ZyDKv|#=yQ1f9VQC29gJ#`Q#V5 zm6ZEYnDhKlw`m+0MI!pkukT>>Tn%xo24kOPz(DX~)J!<Wq<OI8#Lniz1+96<wb3PY z8ql!(m}MWix>k?5IRRyxe76BiU`?3!{}&@Oj&gGEKQr4dv~2q%@ZRufTWqxKwN!RR zjUnJt(thZDM3KBUO!%GclN|s4$5UxIo#p8n2wHc(6yX`Z-lPPVvcn9QN6~KvWDd>7 z@AFm-huz9)bE(^Vq#;vWknuEiL07+v$pTFDKxe3!3iqg*-XSyW>aw@_Nc!xy`Et17 z8<!tid!ip`JBOxLh|q=GnP1Vjd<G9EyC`I><uWE>D}Iu@I*i|zV|?0UE&3{gew7Qz z501K>XL)3k?-S`0-^va=2e)z#M&ztMd#5)2PJ(e8S$inq#We-#FPfxDJ0pX{#<d(_ z`M3%UcCt?liJDCatYs;a-qCBU!Hl_MaAA;!W%PDhVVT+=Y>ad3*2*pL);Yr5La$~H zdn5Y;`)A+hgmn^d0cP^09RB#LBIqtW>ON8Og?|Ts#l!^=x#&O9)b7oK^IE2S9Z9my z(a7%Lqcp#$u;X%SinEz(;h%$t-M&&Vx$j~u&|;_~Hb6pss;}n}#y69uHkWUHeO?j& z?j84y5607kO9nDGq;EJ~x>fg`I_>%Y1N%K1BF(AYL)roz$JU)GSg%v=tI=DFk{U6O zuvXqKl2aZ%;RO#|f_IFy?Yhj-WIao%@2HqaW3P`}O+ja9o|Pt%ya%gR!sF&;&$aJN zl74lxS@Pe^6v4>16qBt%uuQS{c)5S>C1i(ydmD86{fM>LI2<*9_^L-2K)h`sU&L20 zH0x-6TiRy${@~e#%$D`K%6Y%th-J$ezt56Wb1EYy-2SdH=uRYj&oG>Z_o8%a`^SU1 zU$<Lm7~+L)hW!H<r&rXJNW$LWo@G?^47XL05py)n<ssjCG;qdEP;n%w$d3jYz${&w zUDzgu++#AgP+hG9AY!q>IkJzaN0I$2xANY;c%}RnmrVjNmnM??YR6JL!`i{Lv}I~& z1YoWWw%z>SOlr6OOE6<mnvsj>fsKg2sH#$2pquggu>m2MSk-SXvb%46VGX0VI?(^F zJoZLzW1iekorGE~;i0kBT;;Op7x!~Ym_F%;okS_QURP$Kn2y`tAj(TX%_obS(bj<t z9>2Nq;XZSORq?xPN;X<8!2jdvKfZqsoJOyV%?<N*L38Zb;ElgEkFR-g^u^izj@*Tx zc1SMpD~9QD?L79mrWb{;Tqf?B%>++#|4#YZiQ(-pmDpqHfm>liihVBhF6ug7Ybpe0 zfxqG19?gB|o0rt+XdyQD)@sB9&V7rJ^$O)7TOTv}V_dgpbnYEsZ(g00!e7~$#w+mP zP|Z#gg5#sFf!tO%A|_jcKbUt<h7sr9Ss9eqihZxMj#}Zo<^4^b3fyYB+uLF0(Z9de zp>vOH-m%hN*cfTJ&1F1#p>`K^Ep-vdVfF!RmebW<Y$OdF`q}jwR2b=1IylZa^Q$8$ z-F_0oMm_TFc@)^<H)0pd3bGgSJ{sxac_gyWOwsR3if?R?f55K0f}pmCP5uIjk>%#q zuGjC>DTmi<*CyX}P#}q|qvaQKsUk;Av1H?ZD0nl_0HE$i1;W4{WmN6BXfj||bN+!A zaj|SdGpjlkQR|7XjHM%WcBzE0MgeirjbkB0{sOFj&oC-x#vEWB5R2nSEn}x6a>yYw zY<v!W7w5{M*QWCxiz-9Vb^C{W_;~67aY^J)@ef1-Q4A8|@P#2)rC6HW{5T64$67kR zn!rCqEZ{5GYroDhqZ%ao03{^ji6%BX&rstYec$6dpXdKpM(Ix!%seDzEL)XHug@Co zb_t`=?<K$2S(T}i49>5;^6>lrlixZIKI+!H8f0{+0!Z2T+AXRqV*FM1t<i%CcsW$B z(AOF}Len^S<WNs_Vp-b_?Y&DTTEf&y-nko<mQheNxur$KrQT}~<=XIctxuFcwW+VI zQN*vt;{Dim&`DCWULZ5qA>o4Sd2|Ef^kM^ohJBF8l3OZBsEsboaXdU+G8okN&kT3f zjly*xet6Lx82EsA$)mvp{g?ppS+CAG2{XGTpp7%Fal$DRq&dK@awB*X)s+G0Q`@KJ z+|sfE*xGreRyDY)(APjg>mv8P=X~|O|1hlguMK$&jWef9HjpZm9MKktzZ?!2j;?!o z7O~8^drht?+Bjft1kFHT&Vze_lHP)$y*8J3fzVUZZ-5J4%!FGWz@h9h6PDVAI;hOz zzV5L^PZRrIj4cx|B8!&&J%XrPt@aEDvVs7KeJgPevVaYlN1&Da>eg0m&#)WORIpz8 zC{RrE27ow65N=)v=e?XWvyvm*jtP6{1U9MyzwK_AyX>33C9h}O<K8oc7!~(b;E%~N zEy9QC>c%vk<as#juvk#GYJvL#p%fIk0+UoaNz68H#SVLYY4n>Go9}Kuuhq6Sf}IS_ zQ#d^IS$6hje$US+IW3S`sj`XBuV8}1opo4N`_{r|6p5!Jb3k0_@%IXX>d#>|6XlQ{ z-G}x1Z>@ytv)|_6ww|#T8yXesIoknVT6v^OUztmVb|uK{PM8}^`<Q>0b?j)eH0*wl z0<yVfM#4A6<$UVQZ5&z2qwDpnwnoZNa0v86guU!-XdqckcBe%sh1JxOW%NluEtxcm z<RZ%_|BhwzG0!tP!fQ|O1Xnzp4D~qz7}Sd8S#vPSxO{zhF=AkD%i{!iM}*2<j3e>B ze5b;jL>5Ki?$O##j9)um9tc0OKsW==NqcYDwN!gzz{`)orvTIL;5y`Z!WtVYIGq;_ zD4@`tgMc{CFmQQ)$Vl|wer}7u0uc4-FOO~^b9KP)L1Lj**OZPpZG&ApU{Yvo8gpO# zb{1r5MSNoFhe}SYTCdbtYiZNTo#jIamhjE|);*oIFh*P=i;2*CVk=c^Nm+bMt*z#_ zzR@mf7%M%gPTGi<+jm>=QrDpAJw=%8DD|`Mi}ZS~LxtB1_p*Gc6R&H<f6VTYNTJqM zf5zC1mP7vT_Ppb_wc|;n*?daF2Q9YTXs`-t^TZ`_<YH#j1C&rou;NAMu}*}f_tAAX zlP*EB0W1NoYvL8LkYcmB;8}MtcZGVZA&cneneRPII8R?JKGr&RNp`1#5T2G~z`sj2 zozq)g&dBr5yP*v+T)JYJDo}NqaMWrLMzgYn7xT}eDpP}jW$f-zlACUl(zJ|v2>MW0 z3wS#5Z5eKFQzl&U!Tg%N(y%&W%M_4AVKz)9068W>g8=DR@j(F7j=rL>Vw%Hky91S7 zs~{~cDWGYHRX7I6wnjG$0+N1fskMoa6`TT)rbrx`jfZmM!37o(G|^2XkC0WEx3}a5 zVq)7SQ~<Z`cNIa-fXx-ZYsoKpqI2mw@hls=u+!@tQ~1g}JqY%)SNB>fliO<S&A0bB z7>R1g$l60;KJVH)(#$AVz5rqDrt7}<Fkpl=mSnc~TxO_zn*KsBb~k(*;@cixt5au$ zzaO3i4LCX5z3$n-&!c6tPNTPH&IEk;%GYv!FUfu8GkFR6!oANH1mr)XJk?A5P6tT` z^uY9imH$@Y@J$L?oa*2x_JDE4Lurc2MWxBJsvMy<p?gcB6jEE5Uz!2CvP!0p`+U{} zqTQgCX>SfC^7r)<1Piu{h<80E()s)zlexPgcHmZJ9Q^3fWH}_KFKO!>^|qDAD*SX1 zHP{aa_pd#NOk{t=r}V(SEPh<$W*b|H?I{Y%IXIAR3pj;252oc3lEW!d=;?2kNxW{w zRTmIo`2r1CUR%gbmFJC;cnKiGSz*I_%Tr{*lx%X%APWe9AKY)q-VX{9kk`1f$sMQF zt=?W1=x*LCuCPfNd8qQxZB-?45$#x^3R_EEro~S~c^~<OH2JIOL3Ht5DZ6~u8;gSL zo$=T4er=ME@OM4eKQ{uw+VD20GrRxH@TY8G$k!V<*QFa4n2O8WG+%!9!PUO5Rhd=` z<PS%v^kP!)@~AO&v81J<R3ch2nqQ7S|J61Q{O|#%nKQpNCa8G8_>6By^ib%E_I7)U zR67nmr<^jGrD$&nSbrT0hso$1d>?=+KF}i!e4>r76&q4LR#!gH7&P54i^|DmngmEl zfWp`B82s}LJllK#$;I8dY$;FNqiVt;kk72ICkV-kEj$X0W?EBqy+O7&iZ^AZxYq?t z1@-8`SSMDq$eH_B0;b9ew3M(o8FqxNB7zWYLzgbptfMWDFm}xXsn38*a^dLF^6Sex zNJBPz1+9uJCK&K)9$1g}3d%N<TI(k*&B&vh@!XT(_cPHmyp|b#Uf9}zVZic3(DFms z<o%El6Ua!()M4JbdK0&HhXub45)sujDwbLhw;*h6+Uc|1!PjeF5TK-4w8c^;EZ+Ou z@x#l~PnNeFYcfpf+B4o@6H=B_sI5BHX?Bdn@{H*DEU2DndsA?oolPyjBjm;={-Bgz zx~pbaHu?Lvj`Y0Zq8T;00m9eOdZ0=S9<~ecodqOtpl2{W(gwF+r}+l1Dc4b^!Nk|` zb%AhCCmPqE!)M#kCAs?q)zukQQdCz!>6GuOge4xN>zohi;pkWap-6iry}xinhLb5J zUuUfX<jF8}JXCirQ?Y+1_cr5Gfx#AImZPav%IBUkiMuxZo@^X&aXeJ>%LxZag2#iT zgC8DyB?fNjXsn%2!5+fB;Wx|9(1_JjU>|p}<3T`#HNZ_csAbnx4cwCCH6A&{FNQdS zdxw}{0%#SEDVT)vKZ6V>4)Ou>c=XUg1@r`%pMjyT*o80${drOJIiCA)+_E`oLR%g^ z4&tY2x0?okGcErx=cq3?jZ}&z7`I&8_E_etOt;}xbwe5jilU3=WO+(xlJ032h$1~B zp#XEkL8Np+9PNQ!Y}3usRHd%xK?Uy^PhaWo$ZlS_QLJ}Un%HfRC3{)1F9(l1ALui3 zbXa_!4Hg2n@I%WrmWZ403$gK-BGXT%jt)GZoyVeo88g6^fY9lz;4pcFacX3T3H!s! zh=MNft)kCD#Byi!CvCv!kLXvB)yEURhKL$HOxiCT)R_RhjR*58U~v`hB&zl|@7F#p zt~Cj#`P!Mao4Kg+92aDTghUYl=;O~pC{#*`Y)C{2=9JllA(ptbeE3R^{MDm-e_04Z zsMlB>VLF*=<CLiK6Tk+Sykv=v!u(UIM&Po(o+FUerC1z)$^+dhQF9vv*!UG%W4TLb zT&i%#hqchHQB3g#_rPD5&|EE+JiCwdb@t*=8ELf)M4vaH&%Y~(2Fwzo0|lzz)d06k z5@&V`ZgvY9;RO*48wy00Dwf;9{Pr5af5StbxCBH9q9B9ImlYQ;W1!q4A*1t#HuNxT z8m)I5*C$<W*ILbNv><(LTw+?oXdp>M#6Xf{7GtIK*GJ@YB^O%11MQlu_{d#Px$|nh z3S;-sZ-Nm9?ap@h61X`I>#Q>P&@qBWT`eT1R7$A~(CGvvns}!eBqH>+b(?3J%$mJd z+sz4@%y^*n^pZ#1v~+pfk?2vO5D=H(hk~7bBVcY~yui58yvP0uc+OZ<t;*D!$wK81 z!vZCO?C8McHiftG?u^Q9yjBK{v#&K(zal_-B)_63v@ijjEH_2gSpx3hqxp>roF8UC zhT3Lc1YS}n@>-VlZ^L+VBcWgN@Bb=L0Y8I2g({pbxyR-`4~S|v88RQRY;REw_M!D( zW9^Y6=KdW`L0{Hu=Oh9hR+xhTzsA%ci!$bOc^V4eJc_ibM=OBx*BDtCh$TdZr{-?T zMF?aR@dEf~?ZS$Cw)&at3Qw8!slKBpFJWyoByd@TG$6aTpFi!d2mv07SzuqjQbT3| z0>U6LBLc3gWHL9IQI1%Cf(Q^OZV@OBc0gDisq@njpQUy<s#dBV0&@9^K|iAplL?$2 z^K}EgQc%HY>8F{}u9~WZFr5?lwrk!O&LzMz=68+t6<<UIz3f;#d*mKbugO{4O2PF6 z23FG?pBJp{+;za!^PUAQ3Dt6PMz{3YaUys2bP1*u&xFjcJ9jYyQ5P?*y~1(cWJBF* zY`7|pR|6ZCddz-#_Du|#)05A8O#dA)0k!dW9#pOrB!|p9qstqDTacTHB2<3CnpxE@ zkGti>zQ(#9y`W;lMnKarT&J54jnt$GtRxM{p4?j#4fo_o!{p1Owg`OWul^EiCFk9w z`C4U0m!&*^bUinrI}O<}b-9#*ypp%f-t09D%Br67jyl`FycGQ6i{}G`T}61^v#bYz zG0kIHyY}kp4h%MuE}#L=E)Yuo8AM+&r!Vkozh_AsE_oX+8E7A)3s`gkuXf}!aq@F& z0(_Y?F3W$%FvJcS?%<`ZFi`yrc?iG5ke`9D&k1wd02h|nSc7_-^VY-&`doG)Kf?&o zbtIq!Bp&bykF#|wR=kPFj=k*N!+ChVVzuYzNA<8}FI|MUygJKgkaL^JJ>DS7p6fcG zH@D%yRWY2!!nQ;fc}{e=TH8XmwogH%fi`!nd{00;;NZAV&JAyeZO*~x4QFSYHY{^% z{i0J!*W<+;D3Bf#mU-af9#dVQ9umSf<{a^uVW&hW4CuHh(JcK`ea<lqYdw-<jv4~4 zKt=58YSlU2RBCW!^jYrpRdKGl;uQ6f<D!{|0}7_vid}pUL?gYR6n_S-C`H!;&-_MC zotATto7NBal<*0_%9U$^mR|e0UTZT=or32_2YSu+$fhg+UZB83EK6Ho<~q=dvEeuu zmlZPRfgT%_2aG5N>3sjSK87|JFpz>SoUX}=LJx4WWY>Ou`Bgf51vP84hWfk(oS*|2 zQaT6Ff;6QND5f1KWC}2q0@|?}twV{S&5dt2oIyT{#(qE-4VN4tgkA}t`pNc3bWNzp zC3%7tpj|oB=pLZ%VP)4ten>?VRyeq25f=eRK2)@-KjG=`Hb-07O%mk{dbH7T*% zhQ9X;g8R%C(z(1-K>^<r$lumI?adXkcWboanymx?ox7uHp|zbhcWh?|xJcKg(-!E4 zGU4yw)UXHo=z-*kSRPf)*0&{`>fv$+R(rv{*Fksy-U!%`)G`CyEulTB9$B+R!S;6Z z_QdDo*BHdx<&lO>T0n61y$fH>Pr&0*E$sfJt?Y@K7tzq2J=EGd8u7BrezC=N{88wy z8$J035Mm6(aM~{wE(k^Lwugm9+la7^)0{pkjbAH$UAGzZ_)U#LS&5X-WltG}TjrdV zVzX`Kg|cqi-zkGL{EC{vRnpqMfTc1JW{tAOytj-Iq%D~rv{0oDSB$D*Y7BWGMJdB6 zjJ(uZz2Soq2O*l}iB%N^c6B!99aTjBfTd|qk*dniXNM_(BNSlbk48;*YKUq%Nw%*v zMg4S^cCd8G#$%^ORd4ZmKknR%3QR`oj9_4TU)}V(=U=L^Uj`fLGFgQ$*Kt)J>AU+$ zk`83fn`10&%d^}1B(&5j=RdK)E!dW1vs8oVEh%A2bZXtP6vg<gihPH>mNb}tZ!LKG zIl#|LpI0+{M+xBmwY#FBgXCD}J$tSC&%hjTUL~=Sf-Y{CU^`;c;9Nn-F1@?-@gTzL z3)#I1-}LcC0g@hG#g???6e_bE9rBgLN>X$Ctj?F5Db<t%2J0St16&IH5^5q9l6oI- z#QLCCzVJSUie#zjAN%ithL`TuP2x1Cvw`5vL0`H>4bzx!LffnPO6OC(8zHT5M%PVO zn^9wI*4Nw$t$YlPKwoU~Y##$e(-!M|kNNvsU@Q^+@!L?~6*NV#E6uxJ7oDZ308(oU zz2dtS?l`ZnPVCZ`Z^~K1k}f4b9Q9$dSE!M?J;af%Nbtko#_u7mV)BaH0zL*q|8Pf& z8Q1`IE-WeA49~7H7>QngdvJ?o@)Tcnt(95=0Pyp-t*Ow1Z}*O_IR2v3h+TrZ;2T=B z)lFSfLfIXV@s}qP+Szt}t3#i(GJ-R_x3#m5##!PN99K6{Gf;3yFAntmATa)u%KE>< z@$b#F`67e;A#t@~*#ei!z1WJX{x+g4;?Yz)cr%Tjs@qMjUJcvo=bnF=<CK#(nvLom zYwC}6z)S*>TKW2l0Q>iSnfw~3$uXe!zqyRPJ|AR`%D6sW{u*zf0t>@!$ukgC_bHF} zwd_~ubwg)gh(n2#Q@b3?)>ANU&Wsa2^s&qj3tks}cUaLmIA)(BXG4v^$a_N~U&>!X zsXEFi44reQp?~%k3aHoA9YNsN6?=34WcQ>Z#xO|2GaOuBl$PQ`rAgNp3B;FylW#Jt z(L~p2-BU50NOZSYeua5@$nIMf#r6bz59nnF4Qo?=#|EjT#e^>kD@>NtqJ(GbKO^iF zPQ07&Ub#W^Q<$QDga4TV-JcP0UacR=592(Ct!XS9aj2>4OIy^(IMG{p0BHOxtM#V_ z>f)QoT1<B2fDNX<zjvrP2<i9xU+>Y&Pt(dI`^p3O<!r!zQ)r5t)2<lh%i0f^73I}! zaFOnv647xWyX;;1{4}s*cV6_WXyPP76*5&=7Js40NAb2lIcgRW)LMwXwZPBy00*F| zAFQgH`pFoh^|<3#Ar*j_JOX5g9v}3=RVEilR`gQNDemER{UhucPDNBNJX7lywOt*_ zaFVR`lC*KCNhMdqgXhz7m$EZwZ;-NmXaq)4(y>5}z6uN#iSi;{0C6cl>0J@+#*@m2 zQWmSP6SB!*Hg-ZUpXGDc#W75bOAAWi6jlTVJii_J9|CO=S9I`O?-8dXh6jOB=avWP z=cGPx{W=3_fQYPTZtyE+AlP>On{0hrH1)<4Ahz&Jj*GI6TmN-nksmfYy*0XZ+UmZ8 zlDAh=?v%)>A7K8&A=R`E{t-e030qItX#%yW)6qzV8$53g>Sop$H64{*aY=8kQkXCg z&zWc{MZ(`U<VRL4{;qO5M9Ttudaknq?_EaHw7l|U!D9dDDFQkjr6}JwR*ucbe)dri z$|p}Cq$li0LyG1AAj10A%wAro;;FG!(bnq<RjJvQ@>*)0=QttP<j>>L0I9l@+VPPN z8J`F7glE8{0z9kYMaT<qSB*o@x_#u58}IjRSI3e#jmFI8=;G(epKncI&LJ<aKFpnt z++JUn%JOww5gF_?Ap~4oit?F*`hfx+0EX7^H4nda@W1UD+q|?B>!&zw6tsxNO?8Iq zy#8oSLfQF$ug35EZ<$e%!BugE9PxXv%<$ruT0(1YOHv{ib-C4j_xr+znXb|DDHg~o zwr^fIQ$z7mf&bOl{^=q}<d#5W^S1&pd;JPBTs*nj3)r?;{3P>q4lIr`3W-twNz3wG z^(BfUAH0<g|Lg+=xJc;+@AXjk_i=j~0p>`B_qO-0?b!}l+RSO{i6%}16cb2@_j-vx z&u#3=n%$0mkQmhI5K#Wdy8$pPAf4uYG7vsov(VN`G(z06Tyo2$U<}gu&indUsh4dP z9Dqfs7W#S??bDHzvK1;81hC9&7Sd=1DRg)prJK{T5MKA2+S&UxWj)YXRA$zG$Jdx0 zH)LSR(zFeXPr#UN;xM;*!r6SFS8Fa0c*{cu3vQ!}{G5raV^#g=*l0^bifCVnd*QHh zwfRpogH1F}54~rYa65T^)agTHdw96b4xZCWy+XS&m$8tM5bnn=svr_R(3w6v0YGIc zKQ8hdY^UMw0X<CeNvgN5HHaO#ni}RzBcdl-G<UUMRy4e*)d8S=9Rr8yLr5+=mHu)E z#ljHvbiS0cV2z`pMB6<<N$34O<*FS`7MeP7t7yu*=e8E<AnlP<5LFZT4l;2Gic!T< za=(84dhddLe#WolW`O*tQhWg%w7H41XhXMgo>WWTNfC+jZc%L5X%ShQqy`OVx=Luf ztjs(P^dA<kkW8%43~E(J1l`TY{MDwA89W)rabLBeo*rhNgFh0$yqyPgUC6Zu>+|QC zQ@RxsIBs?0a;Bdb`-hRDS9=(CWE~i~L#uQ=_&2T+M-=g4$6GtmQqh?+<^YV?JMkeQ z7(mo~5{c1=#YTDe$ZM|{6dHdM5dOEd2fL2)TAUBD%qfSj|D1=-7H<f9UYXnVPbQ1! zqxhXmXV|Vtpca;pNT}?24p`JH%K(X$In|Qq#D^4z(nO{f3o$ERJc+FE5>ljj<;SUk zG<Eo>3bxdOc<<z!A||YgxAf{OZg1bdGIndI7fA6D>U1CW1Ah~zr|fP@XLv<In6v{U zFCn~6N-L;CA%$MGkOEW@1?3Rl0qLHV{TI)H70Z7p9^6BLFD%~2Y5_p|Gnf~do@b}} zE`PCbgtzYv{CbvtPfeU9s<j^$LdJdSxFJW`nGakKK%lT8R#1wWh^84FcwbXj1ayrz z4Jq5NGCpxQt;IPVp(|-cKw5PS>*993z7<-W2O|X+gBso;3^nacS!8<S@m3Y83CE7E zf4*N>x19%fR7>s?Kc92D)JrnvL1>fY-JH7~>rlqs{K_%i55h%l4#kFEZ|vBxtPPyp zwEKOv*I%pkDUKZrAxd?n;V$QDX;aNvcMOr9_~NLWGqjvLE*i&%8*}idDM2(2&>lRa zb*rWXGgP1|%+M$L^pB7s)AfXCG(3(Z?s|w$Vim3fs#C|1eUH9)tJ*y=;D3yrxhiYC zn6rN!jWKTuvi7i)ZKuZqA7ZaO_X;{-$M|S^2VyA()PX}9ogo0()hn(PF4E;=B$o4} z78MHwW|zFAUs?+_2*K)Jxer%-u^OrvfJlxQ_fp+$urm2ETAP-kciA9O7g_r2E2z#_ zy90bq*G^Y$lDXaccv2?jyodUg*5m8l&h%gPKU*9ofgfFzLMwSq^CceG)0hf(#JE|5 z#k|p2orTJcq1d-?i9jGF<RRy#>D9i5SVA6W3#)646Mlwov!wD9_z!)4ST=npSac(F ziw)OZU@Q0}0L}!Ifn7AL^Rc^)bRPW6sRqf>hC?UIe~4w`&EM;hi`gmnfrNvK`FkL) zLW%B#<25nF%H(<&_<m^FT@ZC24)d84vjx7-cMNiW$LLzo?nVc)C!B!k&0No{-Var+ z01T$=_hOGJu80Xjmk5{pennMRth@n6N%0dvh2;p~b;UBNa5G>T@O#7$8@1k-{b0ur zbh*D{M|tnbhj;9cEbD-p<|NPI!%mjq`N?}aEcSGmAF2mh*Sz?$rnJHd+G8(t`3L5c zgWQi@XY{C#{y)CH0xYVoU0YuiL_|=eQ&AA4yGKw!Bt`@jq=X@*q?=Jmr9?Uhq+5n= zC5G<q?(T+vZ9L!kzwcb<|F27V)puscTF>*`@vOb}{$5Y2@E$VS0$*Wt!3lDKSNDqI zC)C>B77;Mg4D&BMBbh0Y)ox)YWxH-?AABb7>^-gfil27Gy{s>H+%^QI#UD3hxF@lf z`_GX4KshKv&Z7<Cy-gDq!_R2`*&C{|nJ`gRb?|#1Z7SSqy`6HX`tEF5^D?&8Px4`D zS`n`7P;iq}3}S%d)Z)FteDl@KLs~2f*{l6G-P*BsTu3QP3eGD0V$+IOm$`mvJ$CkG z0J~G$5ZUJ2sR+M7?t!N%LV_$ruWhG>@3kq3mz%I_JG8z>)xV@$8~NuuQY0x5RKXE` z!lz}rYo4AhpC-l{4vtte&Ud#6H}dMb!TTq`#}h}mDd(^jp1Ufbf^)c?L3rg&*S{(J z^=mUj7n|DrHrv-@6ylu#!L_KxoIe&ODr1ZHIYtI1TvwCIjHcX-ZYLLCAES9%lDC!5 zymLSKLT9m>%qfC%#G;MCbEv4d_<G^>;Q=^o1`QtRjnAwu?*-2Iz3sq};gwz5^KSPb z7Zy~M7~e=vwTw;?tN*9*)s37g8H*9<wc_8;#`?8}1a7X<=vNO<VHKNgFqn??z+Ju8 zB68gA)~$dgi8tWRK8HNmdU75?P#h@mjCQ*s&UNg%zxdgS26*Q~X;Ah8(fXre+I7c8 z?sBo6rqhp*x0t7Erih0Jzw%E2O*gKb0`cl73DgMrtv6LsvQa_$i$t#W*|oM`0|T0t z6Ha&=csmZ!yhV1|C|kU2eFE0G5j-^N(!0F4SdGOYW04FkijJ}VPW9*|*MkU-&p&^f zJe9m&pH=>NG72l=4WVXzR+>*_Jr(EsYp3;+?<JdlT&t*)y}f+8v%hP<Q7Q>n5EY#` z5#d$QRM7;#QWZScX}bN5F(=t84I;J@OXS?LyTb;FRL_UxB0X;HK8b!m#M9%&=M%Sh zeflMPJ%YT@aEWX7>AKy3&lIOvfh=mJVaEKsR<5N#=h<hGmj=?}#QLGzwiF05CEg@> zSEy;XxNz)Ck=7C$zJUeR1u}%3N?rzkiWG-K0|#B#CrS4(MWUVsr?R3*8VaA=-_{XS zgUd7o+(r!4$?5xow`${H8;fx^nbOlsO<>p5gSQ7{5vQABsPj~gGt|@iKq*4@xYS~z zgw=P=cy6=s^R-u}=39R0H-8k`b%r^I%I{S!Bl8f)b+Z0+S|V_4pKvW%$3MAmhj<Jq zI{EsvPOdxtUequRD7=xz;c1<1j%^b#>%ZHa<Gw_ioNYpm@WN92A$R+q1-O#-0p3y> z0jG-heq=zParuX8x@wta)A~o+m41Q#oCXv;<xdcDu`h7wIa)pFJZ)YOH0S82;2d1x z{^p$RocWpCuA)JMp7)ExR)u0AL5{dk;tP|wuF7TQz`CFq>x*k{%Wxa^ZX2IKou74H z+Wd*QDiycuc0+0BaPMg!8GCOJFa>a`JSaN3*YwZx$RHQOoSnXX&r^ZGs?zBDTB$Z1 z&4Jt3!1De1t_b6JJ3%ALS&`vVy=%QWk6`ay{I)})$Y^GQ6<QOgSKgi7-7)ebr)l~z zi>4jQ_))d)wf*8)h%e<^nydS8<}1pum`}q+dPaAJC}H1EDG_p^kINn-<i<KDA5xbX zZ9cRw|08oNa7#woI1JyV)rP#`j80z86dvn0Twk)SE9Jg^$BH_r)qR<=8qFWp{7PF~ zqkYLh_oDl@rjjvp&UOON11kHLOiq>Ltg-GC<CXZ2rw^sahJ`Idr9%GLNm+Rsd*`I{ z5WhWoMZpxiZQPpl>SV1KBmAdSA7S?UjYIiXa7}Z&ucZLZwPfDKBTPg)oqA*1Y%x(? zkog)zcwN1mgtq+`f!bYhjNCs>H*G#-dUVAlYYT=^y?-Kt`6{KOzfdngRs2lnhZ+Jz zi7ao_J#$2>N9oagbUtstD!qEiN1dYM<xJA5nMbz`oPyl2IVl=#C{`nue}5vXy;8`Q zCSuFnQ}AB#DO!&9=~zkw9W0>lZNUoGwBv6}KXtpfZVxhA^%TDd(n6f0dKq%JB~GGZ zg;6{8Fjm#?`o$CDT=t_u`cJZZ(e&GtlB(s0RJrBmVcF=HVcFGgQ-W7|I=OB2DE55h zbc`AbCWIPOniD@FQp6cW1#b4P=gqBO8|dGYjwNV{3n*XuW9c3jD&A4k{G{0Q{)OEx z5%PyImXNvuVOG9$ZOIDf+OzYm!20bs7?#DAdwaeWOvyF^xi4K`G-vHofAhWg<=R*w z9vw1TV6rjxUF3bs7;a9Y3BGe%T4I~2j;q<S7yk|a$Omtj4Kz3`J%w%wBqyhc-p|If zRK$u<)`^I(vwK!K6R26_@CnHi!~JbPEM<UAlU2h=w_fn6u%e@G74AmAS96Zib>$-Q zUvcF4JsHwX56vig`wbQOLf;<D84TNWyW5J-ebtvBNo7UqyGl_jRu8cE4<+i1?y2^B zk6L%=Rx%plc<6-hu^&p;mL`4=;;FP-`oVuXG8cVu-JX_<I?bdfR=_@%*CtSuElxfw zSAOg<c?ucAFVeP|At7IGtXb(%!Q<c8WPNepk-c(wuJdm5N;2oo7t#YP<zcU=Jeelm z70B$EwX#SED~t#<-1L3S(u`-B@gSNi)sZjd<_m@HB9Y7&>ns)+Icz<D$@4+)7aQWt zzBhe^l+QXJlPPQCjfOC`6?3Xctl24BaU1ij$5Ua*xXn(n6F8OX;IR>wKbt05;Oiks z_$z7Y<6iDp9WFFqodSqL(GC>6a#ma<xsgTJJ*VITj<eP;^tZ}H6PgyjoqknR!W1kA z*=54R(_L$`no_oDVJZf#1&@2&3lwM5Zm$KSUoc8-qV}V2ZtZ;9%6AG<K+U@=x-{of z*CyfDy3uqBIrI3H(~Ruhw;dSpP)R3{iR`O-X1PUML=Z`8<ZC-HlrpTU9bGnsFM&w$ z3H?USFZW)D1Sh6jp(oC#-ybcBe;T1@%!#E-C11nyIg%vmMoMs+z>oX4f{Q4pTM_E$ zztg!l^+R#^47xssBWsj-ihLx^wP8+!C^QdCGg6IwUWK6j?%(MgOeZKkSr3ceRHnVF zW$TLH!oDF^r%dS|*fRUE|NE#~kpbR{i4uQ`01qb^KXabap5NAQUb&?Te$L^}6E({F zB7@7vpip$9;djA?cMk2&wb{3hZv}M)8ZfOC1yjm2^oqALn4|AB8JB-VFvvt|#Zza- zwm(>AZ$5TcV+{ti1|_EVX1DN!kQ=YlyzkA*r(-{58c?)<$T>Rb`f(b>)X9uz$*qRK z<<V`2@j0Bmyuo*u)r0TJl^2JleBG9)YD8^QoG}HS`bSFkx;=`HXY}pc&t!|%KPobf z%6LZUsb-ScoV#t|7b((hy`@vA)-^C2?$TiC&8gyU_boj-CsBksniC_31;6jdnKI9D zwU@4J*<E2S@br!TT}^)7%8V-B`&~6x%t>y=XAp7B`MUhj4k)B^zdAIzuV?Ue(2H}K zi1S@zCff8zbqO6a>{cV60fkLB&WBu%Cu_<_%CN2g1s$+c1yk^&B>~J&vgta`55z&{ z3@B)v)LxHzM;I&hv#mTIYccdoXCtQ0069YbNN$lwFnd`k0c@>!osFBSH=E&{EMR3n z=@%bEw-p69UO}+@QD$J4mA1lp!KTlhbW;j${9f#lgnc{}i_~WA;yj`)Ax}z#Q)(80 zjIGtGbVgQgLe|BLomH_qIm+Spu_Fn`p#>J4m<X9yx77SNF}>8-u_DCpij0KiLrAxi z8O_@qx~^SQz4DtC)X+Egv?N2=3nS51pHBTEiH-6*bL2B~vz)X8@MHCQB8<D_*$HVz zJ`#U*m0+La#P|g~R?>I6eSmIZqk+$86IYV%NSrq^9<e_0_L<`~piq`{!?aa|^pGjB zelrdP*WmcsGbw|`Y3Y~~Zct(LrDOIPgBd~HpVk@%kL{azqD*ny*#a2l*g?A%Jte|0 zFSxIrt0Oxa;Lnl@EuqDm-S_Of6dhzek&k5+Y3?tZ?A;&!M6X4>%X>rz8~&}VMSNTT zEN+^N8(&vFi+ks_0z$6vu@?wt#5^v8LyyL8H}8q&C|4rAX1os`_MLUbvc)dkG4<(f z6vLQbj_;Be2<nH8#W|Eqk2)~Qo?L3*{X+JF&vxf-GFEb_$@%Au$VO>YYif@x@RcW< zwF)SfuX?6gr(`SHoJFLXziQ_i;=$YsIQ~8u_`(9DBlXwMyA?8ox#<;2t}i01`W@Gw zwepY~3M&s6oS?Tpet5VLp{UfKONMBDxM=xKr*(CwMf)6`{xO`H*D%IX>dwmeYT<y^ z!MBTVZ!3P@;58`f`bQ~Wjh(_Tz~m{#U$S<4ORI5g-HlKh5BD48lz>9iF9cOP+`qF_ z2p*hsqk$|3E;fA>6akxVG&AsZ>>v1$YfQP`|MqUc*M&yEcYKNWt8&J0Yi0xo=|&=C zh(>hS39Ex?sQAkm1~!s#S|%&prYU;}b~5s#hcuH&Ev3m>-31zR#u=`~x|8D=A8YVe z@v2HiR;9$OO;d8?_R>gSU-EZy5n(Rrf84{3iO^Eb=t}xXsbsQVb+W$dMQQ#x;9bR< znMI4+`3}mERNKW;=?+dd?fY%?TG5CBc(0u>9*RZXaV|8!@2z&F07Xo+MU|jB!k-uI ziANgnP!!>H)r?SHh>RwLr&2N51lzl*6?WcL#?Er><E_e3(lNNa7Y9ei$-6KH$5md} z*p_K;5}pDwuE5rxagm0u+1GF0s$Z4nyS^qyF`GK}MIV;5v=?n2A|Fb?or^Y3>7d)b z{zI|Qc#+><>qSra5>B#?U^ISKzM-t)gf(0i)9GnTE6ZN2(b5rN{K;jn+fMj?>GvfS znzEo2{%<xi9Zu!L4y*&c{$eS6m{z_P_G*`+KiHHkTq{}m3j5%#eT>dszFNJ?ld-%4 z!J!U0#GlgXeXa&eV<(aY@J{*@smhUaieMN4-)>5eq!|tNSy$0q_Z?=P`<67v*Qc+w zS2&!u>ZY%>rnS(yfR2~0_SL=>&P4CkaG3PWNfGwAg7o!JuVZDLMQhrUO3`Zp0!JT2 zl$%}xrJ_P}P9M8_oS_`MLqMhKxpOFQQ{lXHcji-}Wvp3D$emh*3teS|8_e~_R!9nG zkCd6ytKP6j^c;Q)^7pB`-O(oa&A%1^1%=%ki{RX801p(6tsbxBb}+J!9d3tL$7GkU zmklWhuZ2`D$y+p=SD)=asEcs=`8kIn#B%!PEmb9YAJPuWxhtc7UIJ4K<HoOh`~{}E z&iql#uhm~sMRMsn_~q^=+LQ)NzjqQ}@X_kv?$e9gE!4aE3nxfk?=eMFhUw|Gt;?g- z1}y3N<eD7(W4uTqG!S7dPDz8^9`5p@=%Mrv>B}R*g<dLI@dLqPAqQ*qZI^m;-CVCw zTbK53L*=2Yc^|tCSG@Ib@&J2GYQg<7|41J9BACCTpf(qmkI1fs9BO50*!{gDH%5*E zsoUGida_<_VScgc4QpMqb2;uowewB5?3gC{^EI~%F2t<jTR1%1|L!gF@MNC9TCJ{x z-+s*Yt$EoWlci|$vUF`(evI5L2Ik{icljDv{;`n=rdrjSZeG{-xWo7XJt9uy)6=5s z-CRF?!zf5^Jgs&CJ};>)Jrr_kW3o`Uq{7!A14E}<F^yL=r=(;5K$))<(Y}BejmG+H zb1b`jkDD{G`_&%D8td=3Clt2sow0kLnbc|6^=l-F`=asmN`-Ne`ZnFr68}Y5=?5ho zS2MXfN)Lm1#~I3r2x{A2#d<|S<WY+@daZb(N}w72B)5VK^*zR6`s)yP+?HQWF~5S~ zT*zu(psT4}mn5max<#e!RQW?`D$D0~vq91%(qnnA0hZn*;o^`J`c*Dp!c+Rije&3G z!F+O0lFXd0A{IZN!FXEtZ2fT=w<2F*eCJoSP<c8w%Xu|EdER*Z{RbBLKC@W?`k7Dq zhw_v2_32G)*PcBNw<)kKjKuy?sHJZj*3clapgN!7%YQ?DY!f>n(lMuUfB2M}A$IUX zX7=`lG$Hir6m+1=Ed9{L`F^o!sn~_(NzsUT%NtGGzSRcUxn)s@*vY*r+1JUbl>VFy z+kwae28G`@uGCrz=>);-a)TpfeqJ9#*TX|`ke-&U3t{vA%<@`Uxx&HC2E#e^EG;QM zbJ0Mh_I>7iQmII)948cNOalfTKbCs$mz?Gap-rJ*fPdt}N^?S~(yX5>KZ>>He7HXG z-^i2=-7Vxy{0&BYJ-%s2c^bTpbayoZ5y0f)ywIxzZ=*Ti^foj^x!M)Au$AAda@R@L z^^4>g_V~VU_~nN}#SQw~HqpQ3h(hlx6wEewFoy*RjPcz!FK2BbVQJ(#{|Cpqfm*Go z`z5RJgK9;OLf?+9vK50N=1jez;}z04ERGf@gYjM4NYfNTzDzXv(p$a;d^CIT`St$h zC!_&i6p%rEaE*xP!@Kv%O63L5suI8!&)Qn5F`}T_Ju{?7I9U@e@-Gj2*Kt{CcyC7z z{WG-OziyOjOGYd0BP=hPW0^Oq+mHG40K+IZGb7%B(Q4tft%dIO@TdbBC%SGKSU$k0 z_$ih8sGtd#G3NUPPE9?jc8u%X6YVDOmfBd`{-z7ssm^BvZG1y|!K-hpk5w%DCsotQ z5Daai2P|>VIR&p$b1Mc>8tB}4nn)&JAP^AD78*QbPLTh$u!4Dpt`!{@$?vMk5FMlz z-WKAfXFb{~;TrHo=lDk%{ZYm<^>~)G*>+{hmDQonp<QCG?g88NXUYoXfR+~HOEl56 zemM=&_ThSiy_HfbuIgQtMQQ^(t~V)7F;}gOE}h9ootYLb#5s?fO#gE*Y7MtLKUy#> zCJhYVYzl$au?>woZ^SmhPB&|JE|d<(530hwDG{w%f9S}FaL!6N<$fC&f4Sbwc+`K5 zYo5Be*%Ux;&wxIfX%nSC#1af^NlCw3AniA6`sV%xvoB|`UYt#l&D)TCp@aJ+*}3w> z3Gy%Jb)&Pnz!8e%$PpP|Cg^w!z8$6$AzG6Ff$#T7TE%@|^PU8CyMLDBl(_wY@;Lg} z4HSHfQA(aXIITeeE!cu$>yb-bWm?qIw;o;Oei@;A=5(j$_*Ahu-ngNI5&xJx+3{x% z+Q0y7WwncA-6;w6yEVEBGjZk{$<wGT?3j_?&fpTYo$@~?x_=<W+`+vwf=Tx>UhT*F z&^=%85h3N#@5310Sw5_N&aC-M@$lx8f>k??qb=+NCdA#nK^eXgGphER%@^@#LGywe zUt~zBQVJb{xQvD^w-B9@-yOg3$vAte^}06>vap3jk^Ge_jYw>IYkl;a0kP+E+1*I& zRAupnZ{pn;ZK084C(bp#8!IAW*m~`h+kN%N!@c+xgcRJ8S;~H#!Cvw=80al)66$X; zXj|2?u$UU%OT3OB&{L1k5O!!g;*s{j(VIM7t;5etrWe6K6l3cZ)MlyVeZ1xg;>S_K z3Mapl&qiD6h%4XQcHfB1UKB0<g7$N3sA2=SlGuIhguT5}#r?2&y{y}7pV3L^)RPVT znq^%e)}^BF`$Ked`36yd4Og<{Ejl?o8WmIwGjb`3ISl7UrjwfA5<|4@Z?v(&XQ4%L zMC;+>o`E2t{res&l`IBsX(xw+AP4;aeZqIz!?Hc`7#@;Q<4NHhB2sl!K2;cBWzg(= z<)}-pQ%|gJCw!<81mpbB9PwOqpE)|e6&mGf#+L4mFDhrjdccZ1Oy@$PvtR~l1W`kE ze^u#G$9uh;=+VA(f`nTU%x8ulUlQBokUcazP0r8GC8Z~SO*u!VBpFF@FH~Cpwd0C1 zrtII%2p}eiV2H*WSL{<Iuh#IsUMzCpz}3|fl8^F{7TC(zCa*PqFUn29pcr`8JfEdI z#FLN7S{CPaRy7RtvK&C<QhNNn?RsP3eM+Uc(LBL$EXKEFLB}QQ=qYuJ8YyHTfNBr4 z`^$PVZsS3Z&TG%{NX8gwqx_aCj1zDZ7~rw5N|hBxK}B?+7_uOY;sPgfZ=7f0@-YpF zK9rI;?nU-Z2pD-!H}Ky%m8zNSG&ht7w_f}A)=$RhJk&OxHS%LD2*bF)6>NpK7gcHb z>3Q!nlP{;PwclhWMSmS}s`?Lc&S}v7EA0-W+L@dP50kr$g6cHyiJEfP>`S|1N&gIm z8n1r^)C>n&&;<CkGb!!1)Z{7boU8`WxoiHO8)t~_UjDH6M={K?6W5|!BuRz%jU6sA z>~T7tzflZl2NEqp@QVzw7w(&C4xK+At4MBQct86uS&M3xYx4xvktyl-D&PdQsnvlX z3Ia)kiRj|;8;_b3(~Gd8<i1r<=}1Wn%F)9uN)L?O9hfZyEEk8;D@<~xtgmiKXxMbt z)IMh5Hg>8_k`<CehiMk=-D9w0{J%jI@RHB)vl}QJb?~rc)b-3`#-`zf!!0HKbG;#> zpsF9_QreQ;yHcS!>0*B~)hABM8$W*tJMY4W3&vvXl=$N9T=tJDh4e4&#O_J{)iy<Y zdp|nk9IfrOFbx&y>I+u=S0SgNLfokJ-X)EoVEq7`rbPy|cRrmy{|Kk3+xZI|`)uXu zdwJS0tys0FAQTZ4s+So%BcPX`p~@#e7BAnjDA4>dQsfC+-QggYLDjEz8vL0Y>0Mjq znOX@aE}?*>a7|gu`<R9>a^ja0$HQ`1!ze%{LVs29*(MHEQXqimp!FX8r_LR>KaEbl zdq$pa$ntfq9^+qs7=HR9a65oY9)Y=PX48vS(`SiJQRoavq{;k2!-Mf7ndNTYe4OS) zTeBw>o5EQsagwOnffd5tTnuQ@7r`Z6s1gv74?INKaK1}gG$`=lY(FLAmTi@dE;NlQ zdl37ESQI$GqKzvhBwLyN-VWBCa+IKmAzB?GgW39lH^3<o?6O*>@N`<&i<GxD3v>WL zY01DZ%WQWNl5`po8j-_lQX89N3(a?2()Q!*18f6)pp`1&YbXP)t>JjHi2-R#3b+a- z*QDa4hGn_lp8f%YcQ4wP$FWta$_}1jB9<ZZ2@FHP`<gp2NslSy?`4nk0XYon184px z{T|4~!%u3M|Ln+|nNH(J)OX%X0##kpKw!2913r0qzMr^0d=HnoaJwG<u=?C={NGpV zyE{;^nCJK;H=Sfjpk#dpp%}hRjxcaf!s7zplN<X=<jO$1<e}G}AQENz*%XlxaCydb zvGl4OdVn+;y_PPfew;me=~BTpW`2<z{1YzLMHmVbJv>sj);HR&do=@O2uuU)qIA#z zoePh8k1%lj^7GV$NMfI>rJzQ?c&2CsZTja6OZnM;Sm{gvi@I@g7<JIZ<C@|61&1-) zeA7@BwCUL%UdL6)8x2mAZkgYGy08EJtnrd3@rZQ)H%;>A?5hVkEccV9O9xyZCHRdX zm){GDN$xdsiMiX*)bn&kx3oUX-(AuV9)W3a5AX+A{_lm1r>WcETH+OXg;{=IyekxK z96_%gm2aOqMe3;(j@J71W*JJ=K3wiX3yK=#Y2oNZRMnAjyFn&$(sG`h_JAjst63{g z=V6IonO|T_#QxzRVx}GP4;2%EodpKeNz&a-{+yi3L<iCNdAs11TNBK@IT793GK=ZO z`L8%=-nFF$;h!%-jcEXJas6K&DFixkHP26WY(5I}x7K`l8uOm%Vr_IRu4Z<J>AWrt zf^nmv7@A|hy9{S~T?Jyu5P;rWJ2LKWQcYys<bN+y(MfQ5QLVFM%qTV2KN353obDRn zS`xyKsypR#eE8e8@-X#QzG{>>zGNs4|3DmSO7(y9KS7DDlOYLalDbMYgW*t%4E_2> z=+EnO73|ZGSPebn9ue66+=)8Sb?{&!jxf+<plL>yR@9P%s~{t8gznlfvl(eweJsN) z(f4$%=GiSv+dPo#wHf13AanBwekCH3SMILAB43o@wcW=y5x<>Yfl;Qu92{=p7bx*w z=lmCp&^RwKDCLc{Hy@S|(STygAphzNjIduMV?@mRX^-m#Pk$@<9$IRIe*Fg7lC($4 z<I{Do^tla46i*6Gp~BK9DU>az-EkKrTz^6~I1s?~45@^3s3>p~Bn97Pcyh>T`A312 zPaq6M0!xw9aA9gOR1<vu&K!JhSZbuu`0tca4=)KW{mJObgzj-ySRrXFW9^Nl%jlD{ zun{tZ*B|By=(^~6wgT&LWi<$2iJYb!Jx|GL+M5XuZ^k*dyi44IRp&c}QNA;5#H^mj zN|b}BukAn^gOHI6Pn!S%p|Yf+P07t_6n@rxXF(Y{bj-+xAh^t1Z%&~6jtNo_5Wp-l zNsqoG^MPwkd*9a}qHPuMS$YC%CaPoP!o@lLxT2cWfKd)b7y0J>>-KY^t8(t1Et()w zn&Q_K5z6g>GXs`{kZrY3r+N-(n!)e&W^nDC`7g?GrDH^{uA>>*XFQ~h^CIFmb?(R7 zSU!T9gzT;enXQ&rB8ZHa<$M|Y?Bum(f9s&9&Cgx7buL#?vygDNy+Y2O_k)%{hYMzj z7zD*=LUcO#F%fRRmifUQ%->?5(hq*XdZUg*-s)*EZRa%~&+DvgALAHgtQra){B>O- z6>@-!$2ckC<0fGYY}Xe7uX~FSsv%f^gTpmxBk6)}8IzWq`iJg#IKntFZ<XUa_L}n# zAb?&)fzgu5f+jaY@EOt1d#8mQgtfd|_vL~UeA<<$<jXwTze?2=jL2u%D3li@tcuW8 zv`$1YOQ`#A-``C2e|D=u+sYm3l+*6ZMKUM8@SI+E7(G)885Q{Y3s<M~&!Kt9`l9u0 z19Wkj#{^|;+Qfmr?D4V_d>I)OgRwMcCQ83k=eywl&ir5An~|OVe}$~g`)NJt$&TkZ z-5*bRal7@H{1Xd!jh78VXc+GHymgB3$;sw<ZDXz$!Kw0mO~p+3OSK*yez?n`Mx;+S zgH|L<iqw+M15Vdu@2`u)FX<&0!aT{LY4fw8e?fb5NpAW@c#5Tzq@1?n>ne|&Y!PxL zNu%f=k&1~0L7y*e&L<Iy^lH@7!x*xjuX+yeA%f!=-&5z#!Ah5el6bAE@uJi4jnvhp z#VGxOyWf;ZNS5vy$Pq8~#~JVZ7v_E4eb`!71)4#vvXq4^6o`~Rul*T3N65H!NZ2$Y zvP<WqhKS#41Z7tpFMH+!Tbh=Y#wOaM?z*p?C2n}vWk+yY!Y`0j$*Y|{=DNQEq5U|i zsCm`VylIa-f17#PQi`cRZ~tQ#`D(e>+CAp1(O^E25LwM=%QIBdrc@#}Dh3T^L-OXu ztu52{|J{~*tL3Pl10)9~!m{SU5JR--YpO`M(%B!f=<MS0G64wYFhE0mR5hdoNqP-n z8r!9M+RjCuJt<$#$VB(OQD;^E&>V=ngd33|Vys52!M<iW7Bb_+)Ufxuy=28xXPmWo z^oLnNm()<Vo1Dvg2O*p6!v1Eq>eKCE(MRtLhirxn2qyA}>hvk`0UJxm5gM`Li!L$E zm(gsQcjlw`7n^3l(Qm%?4UX<Li|4qN6TV+!-fUU<_dHyby+>lD|M~{_ZpzCNWQ?dr z5jbeHs7r?*r@lipC^nZU^RFKff;E@$|F6Ga{_oa1fXG5o2jS6w{V)iC$o&8P`{kdk zJwRLYfBa)4J>Y}?{!Q@7R;s@Q<v+eYe*>aP|M^L7X%_3}mn^|LOw9mn8&tX99HwbE zRMYTjC0R5l+De0cu0#vmax1oN6`XCv^z{JxD6WlxEjs<~I;|l=xEY@%G?3f~x#qvI z^*>IaWDPok|Kr~f|NE7IDgN)f|9j#8zrj*c-ygG|SWRYkHMZmtT`ygTy9`P(&^0C% zgTDUtGI}`s8jgp7vh;)oE(Ok3bvV5`$BuL?0uiMDB&S3d>X#c5I1kpM36O`iL)7-8 zigg*-mlhwR$Q15SMrKY_Ht^4e@U%9+tPY#xvPyW*bRf^I?dtAG>xFAM8Bg`Vw2zwK zq6u6VpVfC63GVeO<)cn#8HXsxH@#{YTgH$3iw$I13zhewKE<Y5>p<0hp~z|??U~V3 zPi$sxm5?)JE{Yy^1-8FYH!CbMW-lJK8q)Em4y#-c-Dp~`*lC9tTPt`Cfw@ksS*)2K zrwZn{%yX|0)NhPjR5FG9O~9Tb*iI*LV2yEmS%&&gvVKX}O@78P5MC=#vO5^FH>^He zv&gq_nV}rQ(>|<O1;(1q9p^F)&@~u3+dy7GiQITwaQ6FZzq&<RfZ%+DX?`1Di`&J? zgdya~-?8RU5L!yAU~}8@)z))fD||aO0$#zj9h?t4TY^86|1`W+kSfZGl8bZMZt{eO z!Kq3NfkkI(2Mk}940qt`GL3*c+GZp~9+Xe$%d(G+>~PB|M}Uk2W>(osPIRo>@sin! zyUFN+*g=!n)>pV54z0__DHA}mHB=4RF+za312XV!Z%;QXH#-+JK&O8}fuABAu3;sE z=u>%XW(quX|ID1Sj7`l}Pg1SH!%lB8Wh(sk>hrx^3@~i9z@MLhxx%~zYZyva(JePo zQZuQrGbRF09<jZ2II)=f4(wtF=J>Adj}w?yxKnp91!$%?TJi{;pC457M-hc!EE}lb z9<t0c!j5F(Hs}Kcer_7`Xq|6|^Fs-Qp}jb4s7d9AiX>)lKpR!=oE|u@m%Zg9E%H+! z3jZ7!eSA^Dzo#3?5Ri%VD6hS!oevYitm|6&uz#R`08~)p%X}8y2JNc{v@vl`%juqQ zLny#8(5quHAVm69-HzsV#E+xLcT+I2_Ty@GMxSBshtRqGal|%1`xC!WP1u^aIGb=B z^yeQRbZ7(H-VW*o%Wv}(jXSMiPJs93@^r`_TwwK9mZ4~-z`Iu9|Bg7UB52jA3Kuf9 z&pymtC2)8urUT-!j{*cy&(Efz1=z(=1>5Vy&nLwonlPX_H8S|I7JtV@38%Ln1`<z% zie@iOdTixXASfYj99YW>`V9EXlhBZEs37%S)~!)3J>|RIvUsRRf|H-Hww=T-PIo9% zW9{A{(v!nJP}vRYNG`tL<#Id%y@MESS)w=vj;q3llkPhwFSP83^usY*4Yb-Gd=&N* zuJ#B}&_7gcda|>)kmP@ysyU6RC4g0IE>(&#)q*=%#)MbxCSwAG*CXKnRPSY55GR1a zrBpRkH?*(045iN?fovJGpinx!EIv+pGyeSTI8&8Yo#HriSbq$~z+0UIT~`tQSOg** zFt_2JxHol1e?Fa69aLI~5xRo39Xy<6ghdj3vM66Ga`|1>F0{fkemc*;aGvyMG8|W) zF{fg?`ShJMwXO10egrgt{-8HmF2F1ezrxjYe<K2Uae&n3Aul_e_NDZuvU)+|UEvBc zthJ4IKqJ^&2?MsduHFKnR}B)v<pC_PB-eRtW&7hK1vsBNV$60x)20f$Nv?e#c&nJ^ zC%K~zYbM&!F#o1K@)s}=(rq&~(~sC4Wwb2T=uo`}TFz^IgN_TalprCEXTsFYnIv!$ z!<$;brUWA*?FZn#YEr4<%*Q~gQnauZYs>(%*^J70HSb6%D25UhuWyw<A7#R~4idH| zwVt$U(^F)f+%P7H_CN_0(@;17+8vl6X`0B16F1Z`&>O}GP_M>tS4_crC2T0ZV}Xpq zL~PAK`g!SU90}spK+A7(Fl<>OV(yDK-0e@{pnp=6%Io+iFqM)X>Qqo<W}#ose8FRT z?DCG|&y*5%xVD?)l(hv}!H;?1lD|4+@nRglv9cRN7n}$hpsrt2?<fi3_qT{m)G$hs zi8QPfot)wlMJ9)9m2E{&oTh9V|G5@mV&`15J4JwWI8QQSB>Npq;+4wjogChThibd8 zFqFhqbIsF1MCY+Xlx3jkej|!+F8|5L?Iy;Bt?nj5co^oZ9c-_O)3QVKV6>(Iq%z*h zsxu-Mr0@`kG1siz4S!(WsA>a0>2PU{7I+#4?Z&rBtep${-n6WlpI&yxYHtg(6xUCA z)5eXQ-f`9g!`-?+WQdwhleFfD5uLsh*x3KhBzqMMwYnb7K}m!D#pwbpU;E;CK(f`j zme#xW=98@NBSC<{aTXJ&`hkGq20<}`1}&3RPdGBGp!=oglNR&RxiFE5kYvI1rgq_t ziU&!eA+Fxkc8x_7ZYPhL&m$T{7zivB2(7?FW7<epEsNMmf{p~igyyK=*iljQ5XR<i z+~E#vO4IM62c;dXE@)G5JoR1a!|LO{Tr1eJyOqn?igrif6o%5Gbz=my09I>KFOFS$ z6KO)%N@fD;gE%p*z?nYNiPa3SEdnHybY<oIR~6eOEPH|O2cWlD00f=Pxd}Hs0c5bK zJ1r&WLnX=+j)$Ejck4zVhoemCW({6GRN#i3R<esdbhiJ&11+63E*{5{m7H=bVXK8$ z`+2*V_emAYD!I)?V|F8}AYpWini!%laU?EWOAz!V@{uRS$d-Op1bCHN<G~K<;#9<R zs>ZW)47XW<!g#2O$cDMxXqI3(wANMc!7p$WeW=pxd+}E!+#m;AB)pbo4INpFcZE>P zk@6eI)vJXl{cue_XAE~-kn4i*gqlrm^--IJ0XSF3-QaMymHaGG;7w({2YDcRGb<lN zLWQcfx_00{D<)tW%Wa5~$q{f|nJ`N9M?+BR3AeDJO!|iYS_h%l>Q*4q<vi(Kq)z8> z06zaHM{zD7>!Sga#rwl1;bKRR`?Zm0t6BN&%~dC38wMw9#oFh)lthv4w}sMty5b<% zMGCF2=6AG1yX_cEfMMM}r2%bBM}fIzY)iXw#|7t5HLoTW#(p)!*i)uzJ7{C1rW_y* zRsmAJv|CK@Hb9+>E})g*qJ=l8X`6%NvZ$_iIJR4FHw^~5?IxZc))B#5QM#j`6zw1u zi^YWHO##zdhUzT1Ns##D>`>w-{)Tv%SCS4uY(}kpboiFhyP1L>g(oh<J7BK)15ZG8 zECsnqYd?cLobo0W%f67FME>*IZq%~j)cMdI4UmiVxOS)U5~*4dG)h!^*vQ{)7nI)* z@YpLj4uqGIg12Yp>lk1pr?^7rP=MY<kwDq7L445!ce7f$px<;wg5VQeWOF%ozerX! z$u9hs_-Lw{K1|DLNfIf61hK`(H)5KP0e$)2641-Csun*)(VWvJ48UG3bhPsizIU$} zr`J9i2Agz>Sw;o-Nm<|RDFKtQ1CvBH2#+gz6fLHT$z1g1y4hOl0lD|pw#e3w5t{fE z3TWc(YoKw!1cF`#CW6KhBo8VZ-OQ|J{XXUl5HWTaQtPdHQbStM=(M)C{uMDod)(=5 zrS7unPTRURulJ}}IPc>8#4r`*=41y75~-N)6mAXjbcPl*rbW&U!69Jf)8C%lM6sMe zO-0R*f3B-pzg9X7slC8^et4?^yxizV`CcUc@;{BTdXf5JO=~FuO=gos^iXp7Cf0wK z8d`Yu_ylSUuX3Y~<fih;&IdkUm@huJ?hc2^I5a&9zbD2Tg>{xCh}(iXcNr)j4?PL; zhPuf|!I^+^T*RLE`$GS1LpeM`#>Ss*?&_aTV6F2XY1sCu?4(LxKbVi~a4|T)w?tZf zSTCY=x{G^D9R=#92^2E~zL!;kcEx06MF-eWn27s2;XoM3S%7se6UJF3)8CGQtwpE@ zsBZCz?dJvZ#vN2F@P=u-9i8I7u!L|M{*4zWz>$g?wq^`}qFZ2eV1uxJI^^&hi{?8l z8`I;2I;>-)XrQu|i&L=v9Sdvf{|X3hMIHp*m+UC7fhHPeDN|(+lH)JCV)hmh+YSme zrLwHM<3AH1oU>I_T$!B*A)(!fS+OL1RMT~@&wu`T@)ls61(v5<4g6Ig`~cG{!+^X9 z*Y>t@oy4Lw;$bxPKbg2V_t&%^<7G#>9B(Wp2DYEw7TxW{ysg>}#XyThMo}g_IGg_S zPhrRpxq?O(Jd9ub-&RZ$L(D-KDUnAcBKfk?by*3;?DFnAY0iPag-aq(6>cYM;R7q6 z7`-{%1wk1?xh*pc7&O=x<X+so%V9087GQS!BNi5`ziMwgMo-JAHc!O-nq5*NU~>9k z1p(8B#Y@<pjF4Md7nu@HR(^KA(q-5>L1CME31+jGnsm46I;lpd!;-A_@Sv_Q>-L{V zSQu~7Rh^?x911rNLm&b$G-%brN(nIt1h5LsD!>YtvVppUvDxbo9-YQO<^8Cz9}EK~ z&Url&t_v-7dho^>Br9wV)vXF-$xahaFbnqn*klhwO!4{g%EG|h4xP)n2d=C~(+D8J zp>SQY-4D7}%jv1}!BL@a-lgYtNm24@0es|F5IdTEG<^j{bICF*?nr6gXtwWFl;&Lr z1I+tIRmamsV)r+W7)NdoSRzG|H(aYX3oY5O>^0J`tS9zYd8^5bdK&U4$+HP>VGrxb z-0%Van2nNFxE!|g=dY8#TDw0_<E&|de*hu4Bf0ovQ;letbif5D8_h#DncO`Yint0O zI=|TN>q6rQaz8^=n;mmJ4COvU)9X_nVP+tTQ{DioSltAwNA4;Rc`Zdl2GKS4PA-ej zXqyAXju%h41<&2Bzy}RDA!31$+q+DN<G<p*aPD6S7jn-2`ymhr&X9ldS4~y|7-V*V zyaIY?5<$xX;R<x)-e31YuBOHlZwE%QQ3sIyRSDz?aI^mV=lcFODdcJ{#Ul72VW}L@ zmkNE(^?&^wK+=U(pp}^enjJ@HXx{$6kNF=4MC%<{Qa}p+Q}-L({%d`3(@E31+7zAb zj~IeUt-gs`+KO2aVH`nTocYp2o&s1W^_9`UB)8Je4is(@v7Xv8U~ZWoP872i4gM7P zkk|WKRv%h=W64tutqFuyTPagTs!iA6vA05u`BL?QhuDFfc~Ix~!}VZ{-x-AUJ1Y6W zmE3AEb$!t2fGV+PAg4jdr9@!HwDC{GP&>{B4ds-tM`f2SXAA)~83NY;VxQmU%-|xa zbSWho9bUPr4^fqHf<c<IMQKCBI7fp!LR7^QZq8zsXTX6_JKXIsPK^yq6&I7nKUhjj z3~1hH>6R_-U4kQzdtAQMoXH-oXkSES0|7Av3UMn?mE${c2YL|3+W|;UozaVP0eXI- zv0dzB6=I>SNfE?j08lQ32ACjzUj%T#fYS7r_`V0D$bDhpOZbx2LSSp3<|%ZZctg{E zDLI@(EO7=*p5cCgeFgnV;KgC!so2#4bs#YFNh=p6k1Rd5YQYl3h&7O)Sg>2WBNOL* z0}~N|bmeTC>5Q4Rx;#auxJ{02xY>hsP94tUJKG=k<aaO-0?h3sfzc8ffKysjSneM- zz{E}(rNv&?rSXBC;%xzsG;e~^)ll8MRKKX^=9Afj7{1>^Px)^PEyh>0alAdBCasPT zT@)u^mS|0TZ+aMvI(<l+=~G;_m+c5sDU#YL%ynfYI9Zg2y*sq=mUr6oPgeu=<(sNn z5vb;R?2b*c=;F#Xv&-o_gh39Fgoahqqa#{tfERN^`M@h#g+xG=kuC5k^nhr5yTdrn zUNZUR!M=@7!s?wshv!vkd#H;e)TKw^3UIa~2SCs&q}%e%iiT2r1j$%_=4~}fXqC(7 znNwM}aypI=#>k>#sKX#b$Z;Gp4i<t{|IEhKi>(g<@}hodFhm4E$fb6h9eE^M1gaKs z)tJu5)_>T1+Zj<VRt?ARuUZ2t-=ZKe<#9Q&C6SNDTmcW#2iS3tj{`gWQ)*tig`v!6 zcU_V_dN4xZw(0JY|4~(S)Zp{R;Y=XA%kfN7utM|77JyjEs*gM`2TP!JcyWO$sy_ED z99z`4{pCq2Ahk|hrM3?_4Y~QS(<y=>^YXPfhx@k?$&in56n(pR%ud~It#Dv|CfUcf zm~+oto}N!Ug4-0}#So}C>K+C0$Vr{2G`gw=k@`}{UfdRh-Np6(nLuiAtJ@9fTPt0U zpx=sLGKe+{vp9`MEv8=jKhPppXnh<pr!=0Bm*4`#(rOGpV$#c(8$oHZc6FW$eLGJ; zH31}Po9(QH+fKAgtpyPL%(~;z!s{jU$W4;5G4tB7TOB=d`vny_YVL%))FM};C;kY8 zZ?SDY?Yk|!`W^PkYjpYQviasG-W8@h$Imd@6_t&H%D)280K^S|81Kk$5Six$-nYR+ z;3c*47&FJz=(oC916{{s2gJ3M^{)}5+kSWx^*lIT{``R1*LQv7VT|=O`B(+m`OYVq z8RYo_64*$HKVPo<0|}PD1^lbxP4bxeYxm(7U=JK=;3ENl?PQ1N9Mmw7ZHRD9J7W=W zZuS6@9;!*cD55AS>mTZeJQSDV=K`s1Px!{;jmq8z&IYO;RZxT|fFUS51pz@!Yt%X$ z=+By8`eep{*^7C0e2n*oQf4|0N%l5=19Ir@f%5<}%tQptDL7B9iykPD=B8ja{lTi! zCkK$DLjie`Gk^@V1maAAfP9Vs3(Slw=6Q3QT0Gd`dFy;B=NxgV1P)N(j2On+zPZyq z4J=G61b}c8kvS%K(}}yH1hN7=encwWr#InxV3t)p?&J@$J#SO(mUX7(R+_YEh9%%M zxdIdcmdiOImi{<SpDhD-XE`diLvvdP@Y#UvUz2JNSSh+9CvwFe5oOEULT3+IhciGv zK5-%0fwDgL;(vGA3_n&K*0awq^{}U`0x{uFS}}PYNKOM~P^{%V0XU=l?W=ZT{r&ld zAHRJ7Mcw*Ee{ofz@>Ozf0vBMFwBSf=ICePSM6E+>IQ?-%Ca?NKidy@V6R5TWCELwU zd^<_xZblku*>p+zGXi50Vh4p=y{Tfn1kXq=z&<<Wc_5tlAXb3^>w700hFY}xOQyUi zw>K3;R@6G0N$<(f*Br5g06rP(2^WMGsUtQj588L+&x-+p!a#IFL@s!-*T{Mml4>o5 zpft`OG0?_1gBYBfdOC{cnKroZ4)3FlcIt53&!>bOkUPUP3|vXJfNPS9$!-JGa8eW? z8pG!sjNbw_@S&D%A3>!l;cND~Bfv4#4gtiHGv=q1kNo-4vR=LckwIXoG?JEdm1{Ud zwwLXKJpWjTw-RZ3m%$V;OQP6sfMQVOI5YrEBMgK<k9M~q2dkTB`pXJrmb(N8=3(#E z)NDi9`=CJ7^dG3bBFkbVIsIh-nDem%O(5<0Hm9c{Cv;*0a?*S;5A`WM`o}Q6v~6aC zo$t@LK~_}VFcybl=HrjgL$ppRp$(vpyhzWu`Oa<{r%-y#K5A!bp8j+U7Ut)=?PXeP z76IpE_Uz~xP(~QAoH*DUxgCsZr7fW&F#TOGRz)om1K#W4Oe`I%<NmEMDZ6Nxd84Q4 z05VIvOBwg}0R(a7<^%sfdn+DC)aa|cHyXbt7%o<t*ZuMdZ`@AI!tB78>eD%Pe?yTO z@*|fZE78r*1g4PuXsV4T9aF(vvc3ab$TFwZJpwL*hDTASr~uIXJKi6Mlz}7|`_^d{ zfdoE(Zrh5Nki^^k^t-l%lusc?Tg)q7PUJMI-3(E#KPn!}Ub)-t%lEmgPgb~*c1_Ca zw-=(g5G&!>N6M^NU2{+9-~vQiXn3eY>l6}T`-0hZdYg`({Wj4CSmgo8tc`7)JZMcv zg=-fZF!3fx5?DhnAUzx|Gkk3eSpB5)1lGx~Xtt%DLiQj$8+V)fjYZJfK<8)png(dT z1w@|0r8B!zGnnm%bz6Y0dSL;DJbyux_KjmbnU;kTN$s?l;HY-7my0A8!$c@fUeNI< zeeSrjIh2qXDCX4lWa)S2vJ0jm!g02I;>_HfA7`U<3}4Ua;_RRU_H0M{Vo&=BCC$(H z`6#um`(pG2tS}DZ#Ys}L2G3pF<qLlAIMW9H`2uRvWw4ee%oRwL_6uaHpmFmIALDb! z7&{(DY&GjouDKo3BD41inlAX`dlq_0SX94Xqzj<RE>~t>6kkKl&syL6ohk_fPU-CW zrOyN7{xX&S{&(u*!z9Y1xzYJ+Y!~yQs05?sB9Ysc(M0Z}V=<j9FWn11Upz6o9kT;Z z05D418Wo&&YE29}00S2+v)lqtk6I>A4ttkYv<}KvRdStF&Pzk)pC>NB&2HU9jZPwS zrH-^;0|q<HZBnMbiTdjDW)0%<mo6~stuth)dxTko7R<uH)3-acZnP(Z4ci@G5&}c* zcUK_`5BWvIDg3ksvQbyyHv5qLM2g+4Y)Kv5MLt`ce0E##p?xrW@*l&@D+j@GyGf_q zDW?P+7m~FXVv5ME9Y_7mBkSf)1^XTCw|<l*>=)-77jXl)2tSoKYRNubw6p#lv+1X6 zzt;H-s^U>P<39!QTsbdxY=2+HnQdUI+;>j;95=avyV!6jLU;Tb{xFb249gK1FbgQG zxm<$7-3d^CXEoS6tGO@4;ZT!i=noF9MoeEEMC~>bosW7Mcd{S`?Wo;OwV@d3q^zZ7 zBYVwNwsH(K2Zo@uTXo%V);>>Pge(S0Kj&J;k|UIs7;*DL@sZyHlslkFv{B(fjw=x7 z&|rU6Jpnpq+dE}TIb5LFq2`1_9XV|s26epWgzk=MrF1kBmHp_@;kGks0CFd4<^3+{ zju{4bQGFM@>f@Ri<=6E`fvtZaretW6l_zyB_-;DY1t393&$9(3H?i1p*~$X<i}^XF zP?t9$@E^H=V3*P)tzH6LCe{4msQuHh$5_a-J4~6GS_|jU%4O?H|8s-NA0k~0hqG(( zF;>k?N48|nl{3^EjXU+cM{@HJ!awNOC1c#a@GCGGEzmz-5USxsz|T`Rz#}Y%ZmkQV zr6h!QXL|$eTaK?vfOD`d096q@l$DV$^rQ=T9PgF)DF5=!eBfA)J_&UHU50BST9Am| zB1M^{u6K9vP$IlMG$jxW`0x;3oad#{sinKv_u+I~JU*N|jZh2klqpYZQidaLe`aa_ zFmil8i2>Q2DQFB_0=UQY096U880+CZiu0vZ%BbL!*BAHVmZ#HeLuf(M@aQP1=XRX= zquUmDiV}M$t=q05r{4LA%`_3Y{TySIa=aT*9Nxn(1_JAx{USuFm|xssB+^FM^|oKC z(~&aamctioRiQp<kJPJ<%k4mi97ghvu|i(9h?rL~9@HGOKU;-a+#-azy{ou|!I_06 z%h{tqC^<$k#(b2R>N)2&Thy4xh1e_}iex~;THcKSTw&E~iL%9GyYD0x#Dp8haOZbZ zBd`kMMuBJW?Zk2!?yAZ=5J?%Y<IjtrpX@hGcWjB^y)#bub0dj>_-xm?f~gRoFq=~% z<*q@&_^-Q%^@7(2<Yz9Cq(boC!rKZ<Pnfnm^!PO1gw(kK?fH@hi>FJsq3-@5BJi}0 z>$qcgjZv)ar4ytifR_mMUaT&Z6a*i^Qf@mSzVpv0jgd@<e6t{QgLK$}d9U&5ati`v zI0o|C>nP2W@_;JmyVUim7jQqTYBHkDqSB}Kn_e^)NZc{3ai5jzn7eiC&QCP;FMxLx z(s0xrUKK)%Wh+0{Lt;zNXYT0hUw!xM?mKq<OAD}P4!_tNl)<CHxf$9EhjZJ1Y&HQO zQK@5LY*tFrgaBhez~7k&mY9)?g};q`-&VqvWBr?1Am<$mq8&cetMeY-u*>4O@^aJb z{@S&RT|CJ$?DJ?-w9I*!o=4e&S+zOJZm#Xk_>DD>S(+WNUv>E=bpYh=IXYFGsbgC_ zx!XQ5Muw2`1{S8$6zCkOpBKD(sT8?)I-AdF>(1C5MHD%m#w~)|+~Xw@TM9%dNtN1p z$Sm-ls_RgKzL3%7nJH;~HyFm$NVFqT%3Q0YCXz5r)l0(JGS&2K{O$`yw;LAH)<2_1 zM3M!4T6a7WCYPRVw-Nb$oR2h|w_|ircR%-H+}0g(eEmK3W_f6A>XyUL5T_5))(;97 z@r~ogWA3%dsA!P@!aQTxZ&N%ee{-B~O2%<_0b(W9d4sq)cq0Do!AECzZTZV+HJe>N zaf-8-MKd-#eu&}6)*T9m)<S@iy&+?d<%Fgd!4LebW5aLpLj+*Usv!P~Ibz-$K(E^n z<fgjrWoowtRs%k(2M4ws>7Hm1U@=f%AGxy}?|%DT?^~?0FU29!_!co1dG#dqieU@a z9o#vWpC9d{I5IXeT2OAM^n+}PtuCz}u?6gT>nH!-lsD{D$9$(q)1#PN+$qFq2A^fz z)c2Ugp_a?jd27`WCX6IvcH8qTCU6{iX<?Io-o-e(0r?sOMaPl{zWn<Rl<-crG`vvm z8ud?=o4_QbAAv0T+|8u4)ufJ!aJxqiMEGO%ls=b6`2@-6TUSpUuWZtstFzw4hYrqR zTkTL)UxgYw6VIu=3UZucPfTJkM_aOnqp6SIp8a-B5qnI(muNBpOwdxQGeG3pcSvM* zIw%ujS|W(j7~7}hhoR_dINY&&4E86y3&DIoXqj=30Cy0Sz7nm}t-D!3kd(?#)Kj)4 zemehN<V6*dAfo6ER%Zj3i<_7%X<O}ENU(wsQ~AZ&hBj3j>8)FF+aalXlx78rIlYR< zXI8)inn$%g72jdHB1WuZfWsFuJ(*1eRF;~#1rR)?)H*?mQ(xLx#7+ox;>(~$agYA3 znx8tI?UN-$EW1z-wZ2Pt@RxfDVMI;p`v{{=@|)OUa^H?@WYnDWIhY(l_dIwET9uId zERMG^S#B(T)nAGpMVO?&z|Az)JdWoQ=l59<-I!$ingI4H2mKZ3NglAov@vVRT>J#F z<q5CO``*l$qk3iKnp2ph+WGA(V{H%Ud>twmH7EbvC&@p&MnXUqgneYNRsMDi-{r>> zR^jN_$}notp@3r0k2zW>K4cjc25)|INkD5u!gB#NKW%MNsSE6v#dLI)LH;KkF}AYB zpB2?c2aa7@C!$LP^L$MDLWZhPGoz+YBARh`<Id4RcevQ$AA)v%D<5Bl>HPS`w_@T= zj4Ge4xT;^$@);(2d&?^mKqAR}hm>#Z5VD_;=0T-Qs4hQO&I9lB$d0m<y}*D^;`9Eo z7_3EFGdjsKv&9?D<JqGcsG=X{Y)ipu&8Qc-qNbHbu~&}#2u8Pm-yM)(@Veh-k!y_% z6%M86gBK5f$ed1tJ*+hyPaQB2sXvw$!hSg?8?F0;ex36mXJj6RQr2HhhF8TQ&yS8$ zU7XKY+(4M1o4mNpBD`B6o9*6x_geRBB9DI?h$1GrLKp)h{m5Ct5-O$7^;bzcj=aR+ zRUCvaz{rb2lE(aU^teg~cfvm|=)LS$;ogtqn;toXxX6x0K5{pamQ^<*qjs9ky;i5n zV&XQ*bT{r5bi+UNc<%aM7DM*BwfOw4C^xwv+Tblaj`*3+SFk_rUKi16eDKKP>EhQK zh0WawL$FYwqOu3cA>Mx>lLVg(6{p(%EvT=*(A1@{De5*}U{w5AF3#cIhUSLTTQ*-g z5r)F6zw5-|JLCwdz`eq+kf?W0opm(98tYqHL%#1>iLq{Px<Gs_VY$7<=XXAkMs#X% zAK_{v;JdzPzU`;5recqE!5<PvxdS~ROJIRB@YxQpuR`#XMlk%G*3ZG6#bK*j{q+A( z^_Fo}Mcencihz`WN9huf5+tQlN|Y27kmdl2boW8&1_9}AkQOOHly0QEyIbnOdDg~z z@9+P-@r@s4v-jG2tvTj*jEN#V?nFH|7`u%=(E)aeFF)u&<rR{`vT0UN*iLrGL-j{h zsQ>nfYxcC^1tf<wey6Ydtsx_XQY6P?K1wzxIuNr!GK%19mdBHkF0b6Mdpnc2P*i(_ zB72QOmbhzP!aIM4JiRL@;x1$fBIvZ(-!je_%-(P1-#)T0iC%V!tMLShtsxsh-#?a{ z!3Rq2g+2@Wh$l6oek!K$OXequzk@d-f6(I(+UvS~r~kGZ{jS)J2X38DJ2ELzag%Zz zCQycOs(wOYxdB~yRKu$Nm`nkE#u=0fm1~}YE0j`EsQ1Bp7AFw=(N7`&^o_2|GE!^1 z;m&N;s?cVi`wDk(CQ%!eoB7rB{z_Wb9_Q;E0h-QT4?8Zk(+b&H-BqniW}&T8Nje0( z=p{SOet~*D3yR2d-1FA)t?f`0*7F9pJ{0dCnMD-g(JhpScszL4eM@aUa(0OBs#7|? zDQn3cPsrLS%Ju{Zhi)xmD{*k!hNFg?kc2-40GB=>$9bd7=G?CsX?;=VW6q1A<oKW; zMFy6jm~8`8Wx9xsZfl{E*OtZZB*NBOgB};hojd@Xgtz=#y*|F{vfXnzvZ?`m13`m0 z2{1utE|83eojQUFjzUF)^q0*24C4Ac{ttjpa#~sr+*bm)mT(UfpEdM-yz=fPMu6&Y zWz`duvCQs7-al7R^q(a!Pwv^)0hN6Dq=>p&hVdJab%{8&G@Qt}5fSyK8=K`Q`9-mx zdv3sisChc|V|Vxa?4sCYK<t$j+ZK>#bWq-VfDmE36q|;W7niAjB|5m_+gGr#^X634 zD*5dzy0F8uRBiE5Tfi@%1VDF|k?v|kwuY*0T|}whli(oLw|n}!{VYa{F8JC0l)c5W zVo=9;4Y98m%&g?x2qOcRWoa{XDQ2$9q*U<k6(rpwQM7|DNC>4vzP)a1FFKxlPjzKp zgo>}eT#syXfTzAhvg?s<9}E}&+q?dPE^s+$F?+%e^wRdl?vTDDh()~%a|cC6&*ku4 z2zFa-L+a`AO)QIDHb{2rIBs)^0tIb#k#%AUYB`~-4A}R?QbF7JjZFnTB;;IC2b6#f z;$RVwFW<{R|7ICg))Qx<Oo9Uz>Imq`zV%-}@*HT5y8^x<lMj287AZ0F4v4F^ECJKh zHI#i1S)Fmq<Qw7s?x;!O_$dnEC+9{tQyHE&l=MZZ3il@?XdBgFqN(MFy+W%>qjn{# z&RU_2-{&OoU6rrwb?o+Po8Jkz41B2?J{8Nf+*=}1s@{*$!nSH#H$8ETm|a<-@mv(& zqi0oeKB$Q(M={<PJ{umAXi>otoke58Pd)g=L+zUJL<9x26y^E1@^)Uylcr=)1LDyB zwAnP_ZkxMZ0}Kd~vX;3@@r_`*%m|Y0MT(S~ZX(*@R47F_OthhiQP%~VcOc2f7*eG` z&zqESWc0A5aDAs-31M>=rP-W2->xTgx=UV6n7&oFOw#4O!`6lA$}wEy-pl4O@iTd6 zB`U`q{0=WVMJGLg)=X4v>l~EAxY}iZ0u{rTfPv_?xb!4~-xl5PoRl=J5&E55_o`{N ze9i}^*gh*BR53UW-W4tj50IkYAcUfzvtp~t97Tjz&BeX+n8(r6Sg`XgtXexvN*)6( znZv_8%-`;QS7!H+pubQZi@0$~oGRK<vkT%p9R+tUfO-};IgnZSxIY#(>UlYu(a=C( zJUXwMhirHv7}0073CpI~1>K~xy5g-a0hL{7tu|jgSUk*Ou^RoF<ozr6)fshLxm#{| zl&F>GzMT1|6iLQIUUE;&fk4DYHtr6i)yV;dIg(wVvp4bY_LZllGB{arD=rSEh76vX z=kQ;hF77($eI}h#ZS~sk27KcBLLNFCe}M`#7qazUY`jr776!fTt~Oowr_ZdIf-2nW zin=GmkRmv#drNk;^}k#(&3M;Q{;y=NzDDsDmN8kRR!UwdwDH$Bl7y65|L9}G5&axg zcW{gi@4jQ|NYyHz1Yl_{Pa&r4{Er8vE|~r1ch`b4WikbBcBG!4fsW6c(+Y?U{IQnL zmhya|qYbKw&!Y5&DZhi}+^XsE#nQKUsva!UE1y-6X#ynkFfvHyAnTDZxw0p+nuLTz z>FyS#NT`bxx<b!vg;Vhf^yp|~ANB9B-JUa*A8=lPrH;M7yFx|{+GU4k`}7u7j3S9q z0j-eChg7&ZvqD!QTsD>zvaE#e=w)UB0Gu<`s0y8#BQwSOWIb4W_pHYEn;$FjMg9f8 z=wWH4AQ8~A@9yd($EgeKr=VX|dhsgel&3Id%uLaX3@STQFqEn#>>A_zw?QN0Ow||S z0uGQ7B}b;sT+YwJ7=!76#z}3fX`y(8liI?=SbTQuTw6ii?qs)@Jge6Wog9*>;ZJ~m zNBah6<Fjl3B)-?-0xTRHT|b&@>LqFpOxHau1DMrQsBgDqwbcM+c+C3E%k5dN4ve@+ zrc~ke*VoA%f(2JyHf7uOR8j2mi1rQLXwA|k8uh7ou@lrQS-!%ga@K!Bz4So98LZ_v zy+l6V1#%w%x;apRY#0DUrsk&ek)KW6aFND@1i{`x1J+V-%cnO(W4KZPh|C9-vkQ4G z%dvVX;l|ME`Mzi{qzcE6K0S9J5v;#Cpy)&nm%%*XQ}CGH3C)cz|Jg8#*p(GK@6T}V z7J>lg6)SWuvCY3256!r>WBEe<DAeV*C2FtXF39jx9RrQ_vqKuhvyG;%Jw0MR$&(k0 zT)Dc~P2JR@<faaxaGJ8I5j&P}iQBAScu>;r@c9q9&jO$oyG#6k<ADm<@`~X>Z4e(% z2lXL`{WMfmwS7{o{Tc!Z%V*V}c%|#>!9l0H4OjbdufNcGI2S|_xZhRKJuSz#YEnTQ zIDq|Q+2$1crj;2R(4fz>VyVyCWe;lS1gAXv^QZs5W#8ssj#fPoF2@je%T6k!<1op< zO<p^}d$#7V6YfqJ&Yr~CJHP#QhDwTe;Ec!N1@&(S7uE26bUp7m<S7HQ<<I-Sv>cnW zi%T^J^|fii{@~$FK+=#e970#^U$I?Y6;Oj=!;ERAc+v=gn^j61bQw=U&9zAG+h<6k zHxT}(;V;g1g#C{qx`%y`@B<py-FcwR9gpo^oNHd{bI&k>Yd4K#@%9SfLl8Uu<)Ik9 zJ-<j!yRpzHFsN`VND3(dd~)XUHjeY#O;{RKnS}!KSAg2uR*Ccur>5}&;Tb5vQataO z`965_z7P=Wp#UCt31;BV7^J1+5I3gjV&ou=w$quomzutYk$T|{+C)i8xb2U<O+*Fy zL%I8exo5TE5%M#D1H5#f>%`FV>ELt8)JtRIevi@FzRF3m#I^4+@-5~28i*yLi_0rb z>+p%+<1aPQ?^^YsSC#)0xA*s8T?M0!m1%?9$~=xM(BzXN1lQ^LSTh{3`Z*>ZN%3et z=C)b5$;uy#7Z;eQ2=MJDZ}6^=gT{4F#$(s;zS#aJnjuE;5G9n8H+q*hz9>Hm30tPy z6|QJpaPeuOB&u&G-%cpM;n2(|Q^R|1m+JAiW3k-2h~KN{CDCF8;lOj^34Y>BCDC^L z#L#t;3|wAhoPQ}ZQ_A^J?ux^-r9|*P)>-K4(aRswV()W*gmPx0oh9b{+^OilXF7Uv zGO^29Ww3~O*~mcXL1pSVN#g^N{53O%Gc7rIV2Il6gL&s6avyWc486GE{@F<XYmh}U zcD<G`m1AjMjrYEbxNoSuy#<)*0I@voXy_iz-g)jaF`+`gkxZ5Zjnc$AL)X-_t6HiD zAiY)-*@de+pT=utkPl#r2?5RXPpY{Tv*+64(P4h_k*rX0!_|3f1L!lYo@G6W_Z+yp zAbCFY)t<|SM7ER=*nKSBieep0<vJM>TkpHu@=$Vr>3^a(y-_e)BZe>0|1%;J6Liqe zNCGP(dvlq^JQJmauUwaVtPpm(IpuDBtK!f*wz|pCEX%NN1_cZebDo1=yU%0CF1R)7 zNNFj2Gj~n3h23o&(DF0-P2v6w&5&uRi}9oyw^e26G2mnH_5V0(yj*XF>ias1_3A+q zZsC{vgZDY$4A1O7#!S}T>s!6={8W3dz*SXXCH41vmbFGF(RtX79xQoXrC+(!r<pUL z=jznYh$F2k@vi5lrp-`6n^|!U1B&O?amOm%Y0~{R@LB!+&N%`0YYSqgbiv+D{Bv*- zLLU>nH@3RD`?Qa0-T)UcKx9lRLBc154XPIHvYg3pW&xSdgbN~={5~laG=i>s*Hp@* z)9A+@)TxroB`L1UptY-@Yk5^{lxR`O?4H|Z1_-}8Tz8Xb(P<KHK>*}4bOJWx>ThJP zu!SpxHC46{X&F(U{=zH=Mt~0AUH3>uedzd)6xzOIIf8KUA8Q%G<%5bsMSB2xjm!)a zWVrz6-&9nU|9O?^HOPX(_kt-2mqC9|4rovld|nJ)U?f>V^>oSn;`zU8Hh9B#C;V-} zrRPhh1-#G^&o@wuqZ<`|2AXp62w}F<)OJXVr)J-e@Z&V8xNdzy8@kY92zNP9H>&nH zkp`Smc-5eKNJaJk1<sQ-b8yb;g~S15pO2Er@sK;(mpuT|@OpaL0Oh0u6_P0CBnknQ zpKv^zdvaQ!Q^<AT$aQXy(kO{4-VP`Lka*3CG#8LT1RVVGv4MY~n-L;r9YN82Uv_!V zAsPa+__<o;Vc<9H&dWQ%m`_XmIQ@rVo~Cr<cY-YALgGYg-1-9G!C7vh;W4l>V^Z2H zJA$s}J19crFLa<2n)iW~gAbn7*~$iV8rW*53-5-|Rrgzm(YeBpKnwPw0lD2R@^_5R z4G<_%&?!UuMQdEaNBM>|X?DOQowcwd%HGo&hUDM9zQ%1Mu||w*xCuBhxIy?L_z+~g zAop3EAdn|D@s21X@O(UsWhG0ZN(ml*PAll>#fW*dt$H}q^4YdO^uPZE0PWP!9(<L` znCuMLzBm9UyoG3I65!kfri(b#t^y;3n;DZ^RvSPlC}5}fqb6`!;c<A+uDq82|FG0x zD<}_GkkC=Lf!qTyKC9%u?knDmM^HHnyw;<AP^X+0vZX`h)Ab)iiKdp=K?b~-p`73R z`R??n%^f4bh4NlNmIRb~8zd=$bzpmjx^dmrPXTW_G3Wp5AIm|g?R(x1<vjF;{<(%- z&(m+H6V#O+#7{5p3@V9<K&BmAu`AddD61YDjwC`o$TPE(uSJz_D?#1(;3v40?)Um} zPT-}u*5oRIy@U8?jvjPNp>@60576h3cy!USRu7!fy*k@@Y2Pk+KtEsS800iUj8wAY zgy}d~j8P48r=P>!=_f(L&q1ifl~ZtEST7pn7OVtJ6_G6Tvz!5a^SE4rcRY)q>k@>A z04Cy<#yfm}K#k@U)Uj)oSmX7Qe>200jprTt=Npvwtv{I&a)ZuJl-9p)j=$79AJ~HQ zm210GupZLT5%j-TtnT%qK?eERG^zZ;e~w6#7>Tb}n|cc9T8o%5%yjsjXX#rTc85KD ztHDMP4|pYK#Z3}5G`b@Ru0pg7<S3-T)$zkEx`ny761@;Yr2w704yxpS03b54r4l$e zQHA$HtxHPhxlh3}Oh_Q)CIV>RQo7sK`;|mIN8tWaOPuSkCE}j9U_{9B;V4f*_;L69 zI3p1d-wXWPP!35o)mQ&EUK1+P6;Jfb*-yi*uC4!<<C0GeV6HBz<J%e&WIu>|dXB&N z+bkQ$8^5j0e*zi7Bahcan}N9(2A<5EYa!Jl*`yj)xJ69Xi^X0!uC<&rzT59`Hc3_a zkmkYh*x@eS@B{TS)ion55KN~j1xr&=`0zX!>!}~3RoUY0m$3ZzKE1;(uC`A1ttkh{ zUc0u&5k-Dw>S_{y3*8h5E6mzmB*_eOHXmehd(f5~^)d9f1TW?|$<az0r^&?iw+h-e z#(^@gL&3HJ`X=1~_L;p89yYfYM_?c<S%L;nA%r6hEBb2mSxyLu0yZ0XT7VTh0Kz2h zo;-wJg?v~h$z(V7A%A6h-8YUM3e1W7TTXE0M6VeV9uP=qa$?rK#J`$kXNv|AA;gsM zD<HhApv0;HLbW;%evlb1_sx+d7R8S|a%AWU_7daY&!u5}@a{G7oGE|kUCVirwki9R zC|~f9r;?c*=Z(vhz>7NO_aXV@SNPAkRbnhZoMs0RN@@;*sDv;7qP3td>FE%;XVpa9 zd0Jo>O;iT|xT(|6#<G{SeQpwhFTQFe_?X=q!A}zF3``>x`DfA(5Dxu@Pl^fdT@7C( zj(Lrc#6>Kw2GI)i9)YKI_vn*%n1yS4&?Vbh-o=>7o3`Ypf!!P$XUWnOjlMW26O~&9 zVrg<-Ss4NA*6Y9EG${(CiQ}LM)@!B@kQicGCSg~@<1bp`&Oh=l!<a7R-|)-A3d;}g zKLL4BrR7+pHd4U!8<i30))1xHo7uIqO2Mu9FJ^(zh0=kViy35cy2zF@WnB4|^D0sh zF2cLw&Y-9kurkp+v>M=vmTL74MTcWD4&frfi@g%0OBNEUR)z26{}=24?n%e1lBoMF z{?2z1{RDn0+GkFZs~yQX#7z>W3!|GpO6v-CUhf6r|MGA$HzX(0tH*4eym-D?imk&& zJp$q}>0ffGnD{+Zuu@x3*nlUCkZFexr_Yut2o164T+;23%!H1mZXn}yajEZTt5=mN zG%WVozz(^JYyY;Unff1thnEtTm=6qO?hh}1<0F(QjK_iGeQplCSKWVse*?)T3GByD zdF0kH_K)6e+T05gL#!_a!&}<IM*GkD1Dq+7bN3ua8>4k{VfC%tt@b(8@locvwy7D_ zrg}8?2p(EpS;t)A4fm6WIXiz$OjlJHG?GFNxN);GTYAeuK6iH^hk3*65zN*yzb$9V zP}vN^=9hh{&g0)PjK>bYN)>*q5X}udcr}9ImpzLjIr79IgPTx-;GX<F$T5Lxkl?>O z8vF*S+T;DQ)X7CqpkTT`Rl)^G9i0Bt3|oi_TQ^eMkK6jlApZ7a^mXc?jcu$hCS7z1 zNgvq4>Aw+NL<B6*>@KcJ4j|}TJOc8$E6l!cGd*6U$ziW)9l~O3{QHB%EF@p7tO5Pl zdy!-^S_hMRH}8q~;*SE(PMddPwa@>(W<xhY@}Io#7j<0$(E2<q@8O+fb!#G@iGa}f zaVX6!*=?t09I!-Rbbx&neD4-V2SW4l<)6gAucT8fy|08AOURNbnqsb(kQ*FzD0^yv z(GrX>Ca{|Dq;#9K2=3XgB2K|l`2Owo_Cg?HA)I@M<tr<%_kRMDypJ9dHX2Li9$`FE z&|{F^H>t-bjdgFL9|*f_OS=p({jR#cY5F8G5_2g(QTz301d-0_ga5o!)2+P5%~vsY zWt@f-9(oBsi-V_?Jb$E(d+0dnbnzt4(!S9yv%Wv&@@{_Z^O1YXcfEJXtl*Vm)$)|@ zd!u}%xY%2e?#3U0*jl~$!0HZJX$t3cs2fY+EJaHaaKm2vYo{P@<3A7aLNI$T1Q$Y1 zTQ<WH^2ZP08<M$L*5lxFs`o3#EfQAhte``z6`YE_%hONWTS0unsQGU2*-3`pzn8FV zR+RqUMU-5pWL?gAXh7q%zZ%*!{vh>WWQn7F)DISp?#YicG!?y6M5AzrH79Rtq7~WX zxK?MGGs;I<<EB%Zuhoc?TayW`a1$iTz}04EsA8)+K`hWasL^d}_Zywq2#Rpr=_B{i zGB1<f0WOSM0!9sa?Ksvhd~(ULEJpp>oP!%<OX2P;V%Q+|5wk;oLbmxz>OdG|ER0!6 zMN^+VG$D$wbpM{2IHhopNWBYe21k-xRyW<=dRT42;fS2+S;c!_+y)%PSV8#kY#74+ z0lD`K1rG??Z2%{(MhHf$2d>SYYuxrriM#PN#e4#pY(7IZ{<zl6K@75b2MT!GK#OWE zmy2eI748UV9ri)5;<0|fpvTGH8J_Y}?W!v!X<69Qu)_L&2v@NvKL1+o&7$kjn6g+= zdM~}#7ZK%ky&tH#o}Br~Wl>&)OI&<*@o|*<;mgvlE=2FtKEi(}kgw3-qUZA+Z1Kfy z8-Fa#VS$%ymd9qV$tRh_lFugv-3_DN(rqRS2P~(?!=D`Hq^<iv9~jV-G6@0!eX7)* z48Icg7TEbJ<sUHWc9w)N{O)AmxpOtBJH@wMcAcWrX6X?Sp*MUHQPE&cZD@ktL6Wuo zJt#ttDXIh!-#Y23>!T9_g4L`=-uPRR`)pX185amweqJA$eHErjF}a4YXPGQatCZ5L z<9sg@3jOd0YW1xl_@a8XYIZ&m3D>Gv$RhzrU3}owa<tC|4`J4)z1M#$lR;}NNVTPd zok_3r>j551ctiu|qCS;_Ba5mr7h^-g$-}Z;f*ncu;XtmDt!E~;mcPlbO#C)9jVI+} zt;=cc7EOUCDpqX94$T@q?q%%_e>HK|cWa&BVno1oea0ctA(GQ1B|q={sflosO)Kd* z6jIxc1V)dZ%T(Z1Uv?xF#=F;71MJvA1n>~kaE7p#Y!15}?1<MgXR0Y3Vh9k=g|(vd zu1)lI2D0Y`bq3c*C=0tgC?s1d9=5)s$Fs;_c|!)i5x6>LLck*vu;{~*iDd3`An#j4 zbSGRrUcBroOr`u*$cF&{aCLB=UkN%M(PE#}_r@cNhsd3A@FpgUY^a2@7*3I=yboE0 zJm}2NAm4=zS9TzsQX<#*fDaBvvOTlHz=E9!NIlNq{QENL_E+3!Mul&8qn@iOtSG#z z+LW{p!EG#TPddo|c?ax~ESZ&p=80<LAO;ysS<&I^lol%`C}>gc&f>i(J$2*g*{1s| zCl3+R_+r@hx$4IA<J;f3h?GT#sW^<gU%2>8d~Hqs7Ib95uAv9^3PY2+3qBL;>r7y9 zgni|>_ZxE+7VS6%PSE2kiB>5Vpy4sDntDF81@<nsXA^d#I!?>8SvxJjiE?u~fT5;8 zhWtF4)z(tm8XSLOgh!frpuq|-qQe0k&W1A9{*>=nrSS@_+26iqm2{mGd_p!Bb|fBr zMdE<{>%$)+PVXmSww6Md!Josz82p?DN8cW?a!1iZw_ZN$iQN{{VB{!M?0vSU&sI0; zxZ+cY^I|KuC~_SHUS^%t7P^0XlT(44Dee%p@dHds;Cilm-tRx6(@J7z74w0Id8$?Z z{#EyJf?09LwD8k*>N>?pP#bd!0hf3=C@+O4fj<&^_K^Uz;X!ocBrrMwCnHeA$3ZB_ zru!|3o4Q}N(?cjr@fosbw5T{C+bY50Ot^8A7uLi-zV6Vk0;9|JFOoB{mmFV;;-?M8 zUqTa$*Hw1mj}@C@)cGR29{-_{R+I8d+(TRN$BT2anim%YHJtT-AHJ44Qzr!vwBXZE zKg0y>wuT>XSkYl7dFQ~RuwR$+Ul^*!N3qzG6vGAAwlq`VbpHJ`RhLIt+s_BdU)O%S zu^a{`BQZj#Nvl2S{Dpj;r~S<~ylbaFjfw5IjeOM>Su-K0Xr;W+xy$pFW7OL}oNVy( z^e1-aaFF)V(<}h$>~aY3A3s}7)jO>i17dnPXm$#_0Rd0@G$hvJ?>OW2*=`qLcD_nZ z*I5{l#Ww}`HccQ0HTJAq(_m<vWty7vhXHWzbN%H*T*NZi=at#p??Z|<%^*|%Dkg`a zq&};}F8;<Qg?ti0;)V*ag;(1<4j(yeNk*`5sjyARlXqr_$}Zbc8y4K)@>_REf6FBp z@bhZ-K^@ln302HwkzhOXjxr<C+KvO7to4(DcSAQ@d07}QO~ei}3o_k0HDm;DH)xVg zK99w7731eiQ2D;eQ_nN4%ZG_NOvNF}9{ifZmqYFl4=0BrO&B^MryR1Q0RkXXh1VJ| zAScB;ptdNL!^1^*@ja(Ebz?8WajtHAfO53+C$QbFr1Gp|UYUD<q<|jCfJY?i4bL`| zuh;i#dDnPjyOXoIL!PvGaEWzbyH0}X2S!x3C5$0iR(SdA_=DbVsmE8;gTibfBNBaT z67Q4>sD}M%;BmE2GUi*mUr`%wU~LoBY`$)F9Ugr>eh0X0zqJ%@ZfPdLWnEIT3Y*PF zbnsgR-%w*atR<>F*-777ESw&cXiJFJkqKE$$yxW*ubJV)@EzEbGzEA%NW2Eon+bu9 zDBM!HYT)REAZ`HIid;Yw){#;4i#`hN5KeTR(4!>fx}4h6KM3`=%mHWLGwVe`1f3hu zVKYB=Efuii&C?Bp6bP_ZDHc9F8@4pe?yyhNaH3UIn_QNlyJ0SJHeqVm=77ccWM?^c zSNkUm0Urk4VY!?JridzfvPizGRPmZ5Q;v~`8VFL-*-@m~oIcM+sJL*L`}95ozd4@8 zJ(snS)<DTAH9d6$I*un^GHOq{#<n;%1>Is+#v)C(EV-UhjN3ZhstLZ7Vr=(bs?eI! z^cBq9y}hNoQK#POV&y7*qMWES_RW^v!Rox8I+8L@O%s%XArY&ZwR}0(5#V@A#NASw zrTP+;pxa3-d*W9Lxs3S9@KGPaa76*0@D6B0f9e^YKn;<<Iehi`Ab=Ud`_B?Xp$rg5 zK!=$?;`$*Yo!&uY?0rt~1(%Dne}8Yvw7iAh*Ey)mW!=Y@-<(KaL%yw5DFX2UDqhF- zwF5@gbO-nevz6+2N?v=1{&r0CHgSxTO%6?Z=+9aw1x7=#A)i;4E#68v|9D;Sb`EkV zQw`7*8FZO+mx51Y*>vnf($l$v%~cfaH2r~=No1n8|IBw9zLJ_uV{2+epI0SLx_FJ6 z47|06b=}N}3~k$<(AIlOR)oZuc|(CT-Oho^QAl9u7@o4>x8Ya&Q83Kn;}MN+$%gV@ z!~yvxd(ouL@7B4}L~n6j|9X%TqN*<Zln=HH$`<RtAhm)00u$&}!UE2~<hX3p+5x!) zka#UXKd%N(j4Mc}vWYh4n{kH!1$-e7O6hjW`z7YjK%Qiq1i(NriJt_KjQ5tMjJGv@ zuRLYCj#HvLfgkH1JQhR}6CK^eP}7b1=E11^q+I(~nH+yqBa@VBUvN*es+}jv#toQa z8ccTzu+?#Du!C)oPPHARdA8K3FiJ+NBX??YjfWVeGC7jFTm<z@U&P{Luin*Cg!^Ud zTr7HqW*8XQ-b?&6ffQQ$i$3l-HBv5s*iH^67QPrB)feE7(kD84T24dhM`1wg6T7Z7 zjva23p+d4haA-&oM%VnCX_}|*39jms-q7Q_1$@WBT*l3NBn^}G>;9T`R!i}&Yv>!8 zXhQ~k&&grCT8x?J>LP!CaE_VU5!g2Xd1{Irs#(CmLjgwAuEbRU5{OSr_fQfL`6P&v zv`b-_0v0`6R4w<{l5DdyM*c9gu5t;JEmK2xbCAeL+JTPaNMf-f9gvAd(A@C=!F8+V z59jKOFr(NG1u}-SNELo-4^qOzksWT<=uiGloXwAexlPZ<?;m**Bp~9YL}(M+sd+t~ zM|bJY36rK*++J_9?<yv|NF$*phb`+|zG(2cu|D8wt(%a;8Ffp?vAaCVGi_<sO6L`( zG-*&dfw88IVYSf%(hs>MUu4GPn$_?@MWg&Cyxq%);md<YBU%;edqjPk^i~9m@ZA07 z*z?Dswd*oe!XNm=Hf|q3q%*8<7YiK>(^xfL|G3b+r~3!_zGfLaJV-L$baA>f-+8Q} zOOdH~jz34wk!|5l%PQNY?wo?_mvrKI71G)k?i_L;utBlL@=3tJ_viuwSD_D77nB|_ zW#x^>+YU7zw?3lXjr-c`5EG3pBF%$aAj4Vu0@@ZqR{R7fOpn38`eCIpvO*xP(yn*V z2-~y6mjT|7Z`8&kMdnAjX!^=WMH{&=nr6?29F%U06E%3dl!|frlbK(M+`BO<wx1)= zRjP80PTaAiJp1RZQh^wWFiuYG9Yt#k9cm#3d{~pf4!Vw3u#YJ<2vCYUnq0P_D=iF_ z6=<ehmXl$6f>0URYnvNYjET_d8aLMmBEo>HluQKL^W__!9mLObIGQPar?S>tcx-ad zqpAsxw^$`z#%R=PT-j9X`1UD~_F^`V6?2aUIktuZNUCPb@K#GDNCv;MEXD7e<Z|81 zP2Re*ASGER(KWj{d2Ws?Q~ks~inP<v<Gl<>pZQOH(Czgq&|8Ev?B?r)pCB>d7VItv zbREl8_=>mKn#x~hVOQ8A!SJ}bDU?z{p0QKf9%mtdN7R}%6BIoDu5<+U7GaB0EIEN< zGOO~~R=9t|7}=q`N2c*`kB>%0l$@e-t#^9E+e{OT*B`Tia9B=Git$(^%<l(lPryLP zKI621+?oC>axe4St&SqBSq}z-*J=BzGYgqT5ym*FFS=~s0L!neWMLby%y@jJ3Mv1j zJ;#0)K@q4HCL;lr%aq1s_xX-frSsl-^oTES-?p*08nT*?2|Q6S;Or?s3Zxr2O>>R8 zS?v8I){S5=<S?HlY6OmL(EO>K-={0U@^~mrmk;9%rBmGhMC{Kxg3!NIvs&!`8S?Xd z_)8E*D94(<6~V$&5ohjiw-U|e5vC0lT1%MTT8SSkOgmn=n-S1k^@|I?Bk3H74z%^t zvVv_;oaGCXfQWh`dd5$D7#D5-R!bJX#0>qrG22*)IHR}tG&gLS$6KEF`ae=o8ohat zhq!@KbYYNRZeqB~Iww%oV<;nS_q<gw-E{{ks{kGk(&ptzG<8^Z6P=G{Z$UVy#{!P4 zJ6VccL%7I}bB!<!lWbrm`I|EF7%lM*<HJd^wR$^T3-#%u_MS`BO=?z6%3#Vyl#ri8 zC$|9$wWFq(_EQp}TgETbr=rn28wW3Vm@dt6pH*F?TQ^R8!70S=DgBRx49|J~`U`fw z7lwy1T8W$l70)TT$((67z5YRPdQn0Bhkh#0?{G>ux4`d_+ib(_i|<diizRg1>0ExB z7zP(ziMJ&v&xil^Op2P5Ao8f^tR_*?g>q9lr<c6TTgW@Ij0FBNM!w|S5%oFZESrrG zYcu`%@b5!{iwAI51Mq=nl^KwEWLBXXP|kPv?1OBbN%za>r^~T@lgwetqzv)z2E{;% zp2RUg+i<=C($M3x@N=2c&%SCub0wnT%a1!*<|&l8!<)q8Npe4S4q2FImfNy6JQuc7 zi`JnVajR1TKaFydgNjU6R90@>gJ8RnNzXMEBYU>z_wyeYH`hf1?XkIYsQ;VFr<xV? z;?dp4uN--yE~JhGAG-Ms4!Tfg%~+TR_9xS9eA}^bg~(5E(he=5nkZKNlZ+a<+*F>9 z)Q~?pG-uv`gWyW)pu_pRI7UNZbkiC2lE?@O2cs_p-3g}m#7bZoS(1&qrg0hR?SFTP z&?U&@CQV|$Qd`>TvxBMNIxuf+K;`Z9K*;<N;RdG7<B;lok|n-v-vnUqHGdUP@qf}& zdj;u<-<;>wx9_9@h&PGNG4A~)4uyNB=~v?AQV8)jY$f8{ec9fO)O@Occd!W$C(-dM zRi^x6%$Ax2gQ0FTbq5atRrousgI;Z>4Hx8)dJFuQQd@}K{al^#z{grUiV=!prjfgj zmuz#fGvo(7N%=bGuOE(B`P8;47vDh?cpG%`cDL%&uVk~9oJxDPI*;m3ashe87$k?? zw%2cYfFmoxzFPSGO-#`@#h9Wh-IyY=tJV1KXejX+O6ZaQ%)<P@^%mawz|A)gXspPP zuRTgFR$vSb>qbE>t<?|nT4eQKVI-j$+cMVNr)c}D$AI&K8tjqr(LDGG%`iU8tNE}t z7WSw)mHypl99B3nU-B)RFDCF)>Yyz7%ya(=5xRFI$mNk0n)09?m%$y$Jx2T`Jgwjl zB+K|PmGedC_B86wPBqzu`Xa8yDFUf?&rKFQWUuzr-M&l_$nHA`TY%f7_p1oG5N4Zw zki+%9z!$uk$|4`UmAOLMRHZd(!rSvhj1rK~ri>CFkigz+6Qmciu=BRFp&6gZov2!O z*U;AbZV+5wa~vjVHeD5xE~%});QVsoXV!9#{F2ytm(nt2w2B384pYMtTaVLGV(TRh zeoo4NJ3Ox;{(1}2_NV}PV)D4C;+5(r-UMu6((IwQ0;UJ9H}O7x)xO*)8u*>c`Faj; zmP&VS@>$&<&|Q>CUs8x74cLy~dw+*q+D&Qj<=`WEUY9W2oKT4a3Nf7=EEJdw5Qb?S z(K2^R+OH8-n{hG7{_p0&r_!FQkZj+mfqfv(XO)fWJWtD7&tAWW(I0*l0q<0+#L7Ex z^|t0(qk0``V{xbQVyeRE`AM=PlSdK!Va?;HE>p=FdOg}0FcoV0qJUkaPw09Twlm78 zYgrsi+iK_J7RYpGE|Dj4&4nF^;&33+``9+!cq;oZe^K%k8F}xd;u>(eD-RqE*keU0 zkQ$~2{V+#n94NY(4~A-t(hi45M_t@9ozf*8ZPk}Lkvq6`pgNi8ccn@tfBB!~Wx}HE zd3ihzMMrH#t16nZ>}8i<m-t{>NjXG-XaU}`9N&Eo4T#37=-FIB60`Ko<VaFg^rH^K z35M-xId<MQb1JU+$hsCs*1agg#rKP*=UlXZF(bJd)XZ<)YvqLLnzty3H4Hp%vcwHi zOvSwa`s_%r!RFZImxLJJT1VG=Fa)4n;-(4}`eh)|`0aA-VNrT2v(JU*>GGy!pE(r- zj~^~ZT7l6YWhjygYSKrGpt(o9aEr-;V`GyEu0s9hL5K1dPDG8G-s2e_qUQ>`AO#g; zn2y}%YvF(^ScJ;PE<~IqBpqy5WQl#)Ar{fQ_bmu+RZhL8oV?+pdR5xh%Dds2D^j_R zasGsjPG&h%QEi8$gqopDfXN=eqv7D|fj-IN87$L8?Z4~o!Cm3KUm&C#eH@(MW4D2g zdmQTbS`k12jMw3jklqgN7`Mgs9phmFcZ}O&ry6dPXw>LCAJ<VrbhSt?P^q(|yj`o4 z7*l8n4N?5``A3Lz4~eV?+Ev1oAvacQsxNlP0$9wC71={RsB#RL+UThn&;OjQemg~N zZ!r6BPhH|}Y1f{>q=5qy&x$lzIREr{gw3CPe3iI!ob&Js_E&W(h@3ICV7Ug$F))LX zXTxmijwA^$F0GQF`nrR+*-PG6r0eJ%WUC8rT(z|hFnu~i*r15zBW~O%UX6F^Xv2%g zqgA|jTIi1#OP?3ttoh=edtSL=Pd1t7X@u}ev~6)d&8M1}7V?F+37W}vzpUcH3U>%? zILJRE+#z`<q58D!ro-j2rehbI@4F}o-UQn9v+jDoX`i54W#gCO={h0~8Ka@UB`x&| zyK2IUpSC}hIC)a}2syB5y7`Rz;(zy?7sNlgb6W#ptp`f#lqUCq>P~1DjS(=un-PAS zk=M#^_HEUa6p6)j%3&#$2w*kP=*FDLPYIKr;pu-ZJarHp^->~kAZYca<76^gJH{wY z7!i@tD}Gs<FYL?QDJ6V_H>wsKCTS?_KUI&S>o4c`D))KM{bz*+V5rE{?6&7pJ^90F zp<7;nNSCi<l>Q+q)kZ=zXwS-zUnikKT~PfnE<;*nBF~;RPoy)<;yZZ~H<rir-C}e> z#+1j?3KRpW43|UeteF@6(7;NtX-_*qo3_R9B5P$m(<n(t+0-}jag2w?$|zatz~4&y z_lwJOnh$N@OMd0Ga!vL{?_X78T$Sx`R<FMtPHny546VX=U5WUNpxrI7`a<V-ELlSC zT~Y&l#o=e+F27>HNU+?COr9Dg)3G|*v)?g4U_;49Du3%hA`LXBvqw!|br0}6-H=W0 z5$_#nZj{l*);FaqtN|DOgcs7@pETd>bv9r!=U}hlJ)3wG#WE!yBruYZ&cGj(xyTRl zqWu(Z_C8`;Fe_*HVQw4cX8^CpkO@BGdX{<9eBrVDmFtDSulqp`fAypVL6{p{x%vF- zWACsLVHYU8zO7uEXDMD({PLst&K=b$T_c)KXZCI8mF(FgIQ6ZiSkc>(amu=2<c7xI zH&J;TlP~IXC}%;Ycu|gG2wc)SI`Nb7bH`H7ir408MbFqRQmVOB^y~`FnCi!Ne2Y5- zR4n=N2Nm_IB)Rgcv)Yc!IBQ#Z*0XgtKki63Tz@1Mz0iwLG+WY$0&K33DP@d~vaokR zH#5~8J~8;}PH>?ZaEZPg^Dt#Y!hqBA-`PJx7HQ<u+mv(lnkdXcN&GLXCBZXSYL5C! z&SF&h12;gtZu$K^PZkV0maC0()?27w_c=(NVNc)eh7ARd(9_hn8J{Hb(}D>P@#_CM zQpICK4WGYICXyQz=>@(cpe(-Dl|@zs`b=3;JdGKX?O#Dl{AE7PG1I9orp9X-?|Q-L zmTq2m7C*=KUs_zPUJu{*M_Bu2!}O8%cMV8-n@sM}iACt}*2p!L!iCxXz!w%WWzfca zvd@-<{|NZZ%Q_>sda`)Y=?dBeGyk`#WuD`Ff43ASdPD0(tdqXHxO&@2+y=dk({kLU ztf&PHtuS5_-m1XAId$4^rSILCQ<g?#s-9Dueop15IYl7<d5gxb0M>z3Iq^;?z&r4q zEVD8^(K^gVQZu2JVfDGFwOz_UWZ-!%j1yHZmw5PPg@<`Eq-3GBc8$^Ej~_BEasS^Q zh%rxQ){PLM{qYg`LQg>}#_iEGjT#E;DBVYep))|tBd3$e)3>9D!&ee_)2BD;2dl!e z-26v{<lM92Q*_U6o>uNoctf*bOSA3#j$iM^-i!KB99{QquK~x$A{|d_DklUgH$W*h zh<8A=t1ir!qxmkc@BNTsKK>t(Ex!$g9UhT*7myZrEfnVO0RoE|a+4>D%-zIqho+1{ zakpJ4;3XxuY*z#fmpRDzcmfz5Q|2%HcM=_jyuaY_f+<^I+7KDjW`{5v!G?yn4f4j> zpv`!WK2L?!!onLt<&m90G_pDvW2aynmvN$RC-Itw%SfZ>{^CCNWBGUBT{#$jFdc>1 zUowV<ID98%B2}NIISam`(Of1;wEjhjw=eUM&eWAt=ip<aus#gmo}!E3f(&Uh7z@U5 zW$vu~Jd&j3y{($Xcsx?PA-!D<Yd0MlPok3~*^WQ*>mTJxVuv|6@VU$<B%x(BmCX#W zb@>BE3;HZ+fSFUrm=s?d@&s+XBisi^Z(e4f7p#?t2E&g(Q{*y<8eoI4Gj>xFM;_*b z%#;qgwil9ZOE<MVxUL3IX}u1H*^^``+iC+{^I_5T;Ol-mqOV!YiK>3!Z>FE8w=Vwu z(L($5-Rv%xvXF1ILQQG4O?Nse!r?lSn#mPE_{QQ$dM_j5G5`C1klANllj(iI2dUoX zM3B1N%R6P=L@RR{@As--JY6wJYdJplcR)UaIl+fd)ICAuXcY=b9;VT`1o*<9k06W- z7h!8gQydt|Q)!+J11|(;R<Md|f>B3L)ZWA%T6R-eFXn>&-o@$0;N<;~==#qQTpd++ zWJpJ?=+wNyF`1}~-pc&h93v^cyluOU)B#(~1JgPcWk<Y&yq}U;9svhRsC0#A$U99| z3HBS3t&e6o0xRIC{+D8}+VFngU)PW~PyC~3az~cx?Cr+|c=TP%UdrsBGBO!IV_5e` z5JRKPFVy!1-UyPY>VR_Jdt-mXY*RJ7EL=sezZgI7-u~fw^rx%m9t>xzBzy!QI)MK< zfnP&oDcrs0VJ*6i6dCo9o}uB?sWOa79>L<j)8#N~+~XK)jD+{HRaGoJLr!3)y*z&? zlG@;;@xKPT_;&@(h5BDHKPZz1cUPqZ7)MNn)KIpY!UtI#_IfO6W82CuYNF=Jdg>%! zmEWW#708BcSZE9!*;A&4<%$%iLecR56eza@y87$9ZV1Ojirra_mwWsmO9!p6R${ys zk06wkQU2pN{cXJN@74G=X?J}%_lI3743hn|EXWe=GCULB_*jE6($Sc6Q)_)UsQ9dI z9t@ee3q8z1PjW+I43FLCsh|J12Y>jCv4+DRgZqrJh7lLGC>ipVV~a<Zbc1n;$apj@ zJm4}!d5T2Fo#@?AA3<wb{N2OShjCu!rt_KyACb}D4Fb-|5_wr&hR;r=$<fO9m9D>w z+5VrC=KNC>j~#+KVT1HPjf*C(w+47J?;QybuO(-qB~5alG|?!8+9ex;V6pwq6d9}q zLD<B}R7ftUWSQ)*LUK%YeAANjkAorUnw|h(Yy4l-;}b9Yhst+{6-a$NtJ|tD^lYcS zq>r)7y9Sh+N;3nQ!q-GMDEQyh$4Z=YYOfCCZOE8mk+J7lJ}l}|iO30;c$06nqmp~U zwfVo}4``FtLoqvt81p_~u)Wdg5ft9urkS?GE(C@Jcrg8X&9oMeG=)wD^5MDU>S_Ue zNnukXB<I_YYCpm(nap;Z2~FMqWT{_u!lE>AulBcZAMmUJcnNM@>wLfkjlGI=lFtP# zdG~wNT3n%8G6sU|wGS2W1Au_^%V94HC`eicgxRvQlEO8^ZTkGYQShNeuWuuLbV_e4 z6piVh#T`Ahv2F{M?)@Dmvo6IKovlRixfL_a*sz)xLty8KH@){EE}!5``5TMt6<!ub z?(>o2W#urt+JkfX<wVghSF!K|sy5zJW^Ln0YRCA%eM6DxVJv8I^D8P8>h-42Eax8W z(S@HfQ}CzwhUVoBc5a~W?H(8X_9m|2#emnh@Jwd2cOIk(hF>iuo=cZ7v(A(R45(>P z^4%d#{d3oMqoPo>ReJns4P%JPM!<g*K-KG!eo%hUbx_7UcdGoWe42H#x{(K+W0v~w zyQ>Y#_CbzyeQEfV!P1I_#KMM!<kTs*b4-$qq+9D8gSJgtVG-<ZBs#8Ta<C9tV+XgT z$a+B)RzqcresKHD{ldHdskDiD*2pWw{Z#ZmhR6&t-q`msqRjmHY>s$Qrb;;>q80O) zoa@=@yn2i}lB2n)G(tvC(tXOrz5BvXAN!yshk9Fu>)s^S9J@!)Gy3^z0rhi1GMc+G zrcmL~;WuS$+L>1Jnb@Akrb0Z3l^HLcM@^9z#%4AQ&78@jlKn2hq#0B`j@9vXD)YAH zo77Lj;ewYcuvO`?&W3Z@siFMFk6iPu>@iBmCC;}RNJ<J77d&1rqMiL>ucvY-6n<9d zv`kG`b*`~hU=^awu%U61TR3y&=6l79@vx{(;$c0H!UhSs=di$Wp@NuiE)(TW@Qxm3 z+T99)=QX9wkB|Rg4P$~SpvsrvY7fLI4#X!1L^fh_HJkpo!&0O6sjo>TkogK7gtQ)= zsYXMcSKqHQ;EB91RgV3wOv<7+jX`a~`v)Ukl(@h#PlAirU_y#s)MgK}_j8g=01h@I zTMM(<<_o3$0J@szi(S;@)~W8O-^7vioEjqkj-0Ya#FEsX*j&C$1&^sq#jj|{WUY3D z*-ZSd5o}<kR8Ar(Mz;P$=Vy<>;zOl-Q+65nwUK)zOO$Lpqzu@;|31}cQ^B*|;FDGs zS996X)4b5&a$c&z;QdE1)1M1v3*}5fi9HR9i9X`a!^DNFl%Oe)=1O7WO)xHJEZV8h zl1i}51`YQj8fba{Tja}G!EcODyc`3f;pb_r&4F#4#Yhg?kxb+u|Mr}AvR=$xrZA*h z-$7H60s|#Z%kmXLZfAs(1wqd8+B-PMy-j<yHPJgjX>?$#R|rV&g~ush&}yGpj-<=m zOr^ViQ0HxYr2Y#UC8Aq+K|-yS6H;C`WD)h}e>WY3_tjcYCuS$ST>`~FbJ#`?{TFOB z;LT{>{OJ0v0KZj1#Gq-na`J7|eT-RLuSZT53Kn+_&1mJ5?5*)nJ2)a*^E}`{;9E?i z6jETn`^U5FVlKD?^xpLQ6a8~s|MOvKe|qW9`^b=*R+Hhb0l~2VVuLsXRUJ4Q;t_=0 z4|c({=kcI2F#k}R#@!)2N@#WGFQ%<uFHt_Lsa=F~JB`da8Emow$uUs$VH08ykD?hI z6Q~$;RT1r<iG)69mMb(md)PnSmv?{|;DR;;-<?O_xKw!k0h<_S|Aojlyina^=B4g& zyveZ{+2qF+DRGLh*L*CGE55S(wpAwwILxy3kPwS)ylpd`UVL*FAn7^v<g!2<!Ax9x zTdOt`sGxE&swXlh-olG-rZZQUs1K$2+tzH&zc{=}7p}D;*wwp@de3yhw4<J&`@{bA z?ni~oKG*5%vGkym-hDql`jtc{srjfhsgsw)bBa20Ze|VTA&iHAFrI1}08rK&cV$@g za}Pf=ou~{Gp0cnJDPQz=J5vXYxkz*{92y(d(}ba?jF^8~g!K?7wC+Z)S5`j5zi$d% zxg7PU&*oq8Z#E87Gif8n28Z^SJ_&#JkK+qKn7XV9abWY+&*S}`*S90kQ6SISZu#q9 zJhGBzUlf77x#KKPCP?-DC&m&(r?WlUs%caNpB=hsUXstnr<4y6(y0~>hQz*5%;=Vm z|KdrOOBrcUBb|T<8O1+(nw0x9vs2lm$Mg1CE`F2JB}3&@G#=k-jtAvjN%b$A!nSh3 zPzP$jre;~=Av?T#+lqt@?C=AK4+CdeLoEKNMB|XVUZ(ygzN~+05@7s9^5l-tOo?Nb z!z5OAu3es4k&|f@N2lLTs=dYVat<t7XA$>v<<mwZsSr98kD?I2`f6-8S`e)1VW_ve z{f~xkAOHI`Uxkcq+kjA~uUZY1V}5`^_}sOia5JD&(_g|ro=ro!?(**=G0LEx8&^4r zG1}%?p*b*P1^YXhlyH98MD(n$ffY0E`X7@s?BgkHJQm((9Qn85{mespHLz(I-V0Hv z1u6e;Ba#@*yF0D%J84osJMK$~?YEJ};%UT7?EO2Ze|F(ztk9>^RMps``v^x$Ad>%_ zK`Ym6^SoS$@bKOt9z~n`W*j20Cq(x^Y&XPK)p|w@GgNnYMQ13Jf=}8VXo|6wa*40W zAITqhQ`>NWnzq=!Y)kR{t-%<{(yb;xs`Yijk6Z5zU}9lkl#(a63Sz3MMpectsMnYW zM_>2%amY{TC+pyW=Vwkp+ZV~c^n8v{v#p5V*hZSnFPV&R@x{BpowKME<58W_1U;VM z3F7s*<g=Hg&022TtXfXftXd8E2n>tC=%}BBlGM$d#yOVje9K_76E2dCXuvgy8yoGM z#yb9Ho4ej|r&0Wh!meTHWI(A6K|;y-7+*{-)x-J>@D{Ig9F6HjrZG3@XVjU@Hk)s@ z(A~8hwi_2n<0&)MN|Jory!tci1Ox3<F1(kv5G`*j%@%7ze4Z0mZ1`!Ou2jO^=1piy zBCRfW{X0&|#?8Ib$p1d)c|C=mBgmg}0XB<>X@FtX%mT?Wh7xf)e+?(*JTv9S&LfR_ z#e#d4aZoID^x>QE8uvFWn0YOCM<T`?>l4mTv6U?hcX@RvqnH*x3>1b+h0GZJxgCRb zGm0|%HE;FE%0m~LqQ|LXrx^!}SEZ+eoWK<2%qbtmc2KubFgQz-<bS1bQm6NyZDq%X zlfE-O^^f%(zCR;@xgDNW^Y``_yhz*jlgbZ=og@I&J&4u&Ftu3~A>kUomzTLNxgz0r z(L(OEC`s<~;Va41+NPGJ>37ZVTH}A@^r9FlkDgk#ps_ud4M5XQMG`P}-ooiVHK@?c zLp;pMwJYW9VSZg)64-XkS>4fB!FLCKwh^-9_D|M;=i)uvAv|C`i%1P=95Ml{)C3oF zkjf%97Qc*WbTuHerRW0mdz-f3S>Oig8cMBg>?1jBu>+rO4fA_hAd2I%=zNU-$!|TG zHPH^G6C5GkaOdv6IP#XmuXm2EyUXjX?mnyI^Wy4?U|^y;p&tQdTeBPa;$o|{)pI2V z-%YPZfz}a}_G4ViK6MqV>h!04R#gI2>kg74<s)yQfLKkC_FdF-tny6AWGmga<vgpH zNvN{%wLe!g`wz^^$Q<IqNBGqp-pG%q;{5OgE`j7n|E&eFty~8a%OS>M92#~3qObA0 zE}?h@6DVx>ny|R`Azch7%dzplkn6*V7NCp($;8fNDRSNnGHHxUWlwD$B~=D$8~PBD zjo&xA7utXO4f&@e>PZJpa>ibCC2DuxgS<iFr2|R9rFgRl{1gh4-<+Zn^8Bz|iBuM< z2ZuD9Q{n%6+da<-*3EZn&hMCaWFsfOyESIc3wM`htvkF>-~M8Kkbjs#ZDT#?-+fN| zn`!TzB%}Wl?tA|VS$p<#GOhA#4*RqP@1yU$=$s$=K6DAHOI6W?1?<<Pv|?xZ_nSNn z{@}G~YMyRq^NlI!XKR>2WR>ZwH~0?pGm{8tbZ9}FBe_rew;e)@dweoioaXl}Dp?iQ zpULAkHIRR+ka(Uvpgv%AYdN#8Sr5aI^3F7Vnv$C5SG-7-zf}{Zzy6dwa}^s9zQ@qy z!h&OJ6TVRMI&+k>Ex1G{A~u*S_qgCf_ELqfV6?p2JB<fkJ4HV1BDH^ChP?kY^5T=; zP->Kya47c1+eN$p2YHPnb&uxF@P(ADto5$ux@NZrmo<Fr9!dZA+@R1PC<KBFL{VLW zKrb*)$EjQ$WMy9uLT}8Sk$;v?GmkrAqIvcg2aVpsoP?V>VWDnqTSOtcxB;=B^N@?l zQz7qt?wG48u$MId=J?z%{)2oKHEA8(g^#i@gDbnVSnDhkCI%8INp(_>)g}FnbEYy% z{>yRaKig$6=|s{Tg3kM`R8!GUw9W}(11_&a8PHmm51L>#Sc*NgHX~G6HiE&)f_Y#6 zvcgit<h>=aeXoA>{<bzIo&Or&1cM*Pf|Q4XFdG;}qUdT|KF+>B@dD<(m1cMR#^=bP zju+7m+fUGWLnT8o;9cHlsCe&yA3yKs1vG~<k7^LSmN>Q{q1rdv4uV56i(+)V-J9#$ zO9qc!aDw_m4v5r{2jc8m_*fh$CU57=QxMjCw3axOYg5P(_L`l=u1;y}g*QMcF0{^- zEp)9Zb}?-}!Ka$hdR1mPUSxha65Mg_aKJe@$WtgldbvGICS>%>-k15bL18bl!C$1; z$Wg0Teay><7$h-kt;5HG<L_W9Q_*;I1R?El7ptka14ct!`pXXPb*1^Iy(9deO)N-( z%>#;P2EKNS`N0Jcs?rBV@2@QV5V%M|V@Oxy5szD%)1SzzBa0*9#)``_%lPVxIQwLz z;%!Jn1+yb!5D4GncL}t8Y!S+KBHc$}Y2(sWQg!vx>qz6d(X9t1CBN&80s~1>$%ef| zS39f{)=(iwttO=F8Sj5MXQZAkhIDy_bkqFjIC+GAL>y_e6b4r)9(HO*NH9^!zdC6# zi(&K0FQL^orcLSendjFjEqpvfP>6B#qe7O5<TIr`X7E<U%kP@zL}I>24oKP?l>xS- zgAqSqk?1wj!s@}JV{6`OdQq`)80D?2Zh^re>qs?Bg#<2->2O^in{{mx28+_(VvK^e zYKZ`0X^{eWhaZyBcZr<*OxolN`yU%2wU~lUrE^7#o&MQZvjuKnZmPWj|AXtHvID(g zJ<}6V{QNu6=PCSY+ptgwt6?NqT*!5krdqdhu-wZ0D$Wj%h@CE_X;6y(<n}3)@RTsD zUnFpTQO2Q9B%_$KmOah!BQ@{*(J;ke>bII+w7Ty4NsBPqS7#f`Nj3n0KbIjI8u@r2 z=eIXl)+xp|WErh~fM)C>D^o4|?SHkd0f<%W>jAkQTBjAKP~7-d2zPHg0t6jA5Ir`z z_rmu#>^W&4+Q#sLRAZb?6N>b`IH>2?SofQ$y$$guB&_htnL5(+g5^}+Jaxt}IxFd; z`u~_Z4@au|_y3a|%1+swV}!EzcI**CLiQ$QkFwXX_uhM#70KS)QR3J_#*vvg_OX6% z-S_?Z{{De-c%AEYy{_x|d_4V9YZn{IxSq0cu}|^{&)nRr!^B0(pHGwesn%sK>d?g< z-rKmhX4_-=Xa21LX$Q3<yEtijrTlz9=~W-tX2Fal{on8ARfwCQ+_^eA_T7~u@a!V< z>@z%IyY3_ry^sST>Qg3vBegyzL%C8*v$<Uta-#gA!InOBj$7EdV%#2g&wn@(c%-2) z;VKK26mAoR4o-O`KgW924vgzJS=z(d;Z=>G2w8(zya5I{n?nwpSc;KS?<XzBhiTZZ zs2IZOAHh-!ZndexZo0F`82-{l5Ztl~ObIiybjh}bA??S!8g7fNqCGL<<Z<2*jsvCA z@ibF}XM952TI^MT=|V+Jtb@I1$Tg&}gDb?N$OFdR;T*#uw5}ua#Nw!z*(Cc%Rp*q* zcunOfF3!{w=9V>)NELtTpHfj9tj~`u@cVq?FM^C$p!V`L$4jwCKIm)X4cvCg?4yra z<jC_v@kxpGh~u7iS)mu-pT1{#src86<=*bG$m{lV7$#_qeT_`<RutcUp68=&Y`yhO z01j!!+y=e3`}2{ARy`}7d`fIt=Nj|<+=3a|{}#WO+q#`_0BOo%1^BM@8URWY((iAw zN&h2V%Ud4#XGQT<l4g^|jNliPr=S85Gw|QuS+BwDY69Kap1M^D54+ENnWy`msZ8%k z^hPu9Ua4uocVxwrlV(E(A@*z)IwjfArZh>LGwfe#9g}DuR)r)9N(d30ZN~nc%DLs! z=MCwvp47DQD5drD*naZhR(lyM+UxtD?jr%))$+bbpMw90QG>M7jT8m34rrwhYo2(p zxZvdFyIjOealoik8l9fzRuIa4?AkQ`-Ni!Pd%`@~cj%&S-2Q$Cj{(qHzXJVM+y)W- za{A8Gq}L~}KH*@SM6nGB%;$=~4K(2OC5(#{fA}VUDH_uof%Pm&*m?IUlu{!z*o;vO zG1J!#mR%bEQBgJRb*6aUCjtC~Ek)ix{#o4(fmVQ)Gj}8=9{&T!34+-j`dD!h@=bao z&KJKN9R7O3F7fEa9`B~C_D!^vB`ditT!*GzV92@kI`yK=yWDj>^p(HN7F+JNcIexF zi)EVQ#%Qybe?)a>`k4(~i<OI9%8puiJZ2a1P@*$FDX4r|a}kjNCB+Z1FWjI=oh8e( zoU~B0vQqq<K?xZg^C7-#r1W4{``Yzpw%$DC<)SQmURO*Wd>-#34&Y@Z`6JtUp$YP2 z^!rNfaQPCn*!q9N7iS>9&+3*Lb4xnnf-V8JW7G{8d2??gM42^37?bJ|t1H0^Cza+A zPU`Gpv)K=nkB{t}6RfC`B_1!vev~9IB1;qY67`yoYSEUV4z734rL&R&)LPLo(hje} zi`ABOuIP)X^4Fk|LfC%}&!_zrAqG6YpyeSDNXYCy4k{GtX<^1Qz`|ii#_0L+m900- z>2mY>DC!?AUHJ`(O!cJASc4X=ia~zfa+94*Oeel=00OzNX~Hb_=53<q>hb`X(LduM zDzp<#t|4w$5=hU*J(5MHy+o`!-k$S*%vH+3KGLm&JCd4-g@!SSJst7<3%9C40{b$T z&_+V+{DZ-IXOcx37hIkW%P0#(uM@k_4A$+>B^%1*`Yg<XOfJi4rm(|&eoYW1M6^kF z9Q9Y?QYQ__&!TonM3R=I--*&wk^}l1gXz>Y-#8!!UK9|Yez-|5A&^<>(rKQY`Pf;K z{n6%fa{|!_x;MDFG>oyarbBa{HpREnCDKCPA_;0#-Su{-^R&>4XdBOaN^3+4RYjM? zE9Z+x0vbJ{_O}NnYTS-fz6GjJsezD8&Ao?H^r0TJ&&Z2}1N@)e3N}AfYxx(veV~2{ zVuW_(3HJHWPV6$Ec;7Snx_(Y`RXD(=ke-XD)|gwH4Rm6yNPD;~dl0zhVXQ~hA_T}( zN8Ds>H;n_({2@F#5i9?DQ(H#@jTv{qro8ieSa)zVDB{KHIDr*B=hnmF%&q&*uXF5k zNzw;pzDTbc(P>E3iYsruy`Z+IcYMou4+BWAFArOB-kJuN)Nh3^)Wp*G#<faKTH|73 znbto<c{E-O#c+;=>X8e+tXm#R`qVcrq8hDC<S!U?VDW%ojs5NKf45(r9#W`C8kg@0 z@|LQ+(bxS>>=}=0YZBU2avw7W%P+nvWr<)k_c_Ld6EU9<kgVr*U>9AkssAjyWXlte z21*OGo%f?!x3eQ|sm6@;L687-2>XLOgF|HYbV4neAyV@n=9^c|%2ih3%ZlRB+j_rS zsS{b6Q%b8j7@H$J$G_<H$=U2=m(Og~0Z;H(c}zKER(W^-Y)t$Z`%~7!xTZ>dski?o z-|O<?C%NFdIUwE%sg(0nN%#tPi~K=k>y?AhHXN>7NVK^<4-$6It}5dCLE8b|Jv_im zOEX2_#F=7>0OUV9sFuD!yz`70=V6?1(@6AoD?1m>PL=&a3-e%K=Y9`65a7rTL`>;G zSr9k{M;fnciZ}Qi=IuVSxBl_{yz6($CZ2WFA~JMC@pkQA7P@SA0S_LMg?huOGPfV4 z@ouVffj5$RF}@V@b{nw#O2JcQ%_(<}2t_|f@3=s{Fp*v}P)Bg*6sw3=i!OR0ep)_w zN3qB)^s!ovK}#R@Fn+@V#U6=u>VJ1gq2VkIPdfmI_<oz<xmZD3V&MzW>N47INk|O< zYqIBk{cUd3?MqFM=F6>nhOE8+)d1kKxUqEf{_!Idt6k+b$%9#JyS%6lh=6ItrHxf) zeMFFpBM&16F}uK$(Vvn_K46}5Z%usW;m&66oxG?tC8(oVqOuI?x73J=%zSyk&rT|R zMUJhWA8Rh_w79m{-c;#bc%mz48s~>3)idJ_q4r;=Jo4m4sR|$9+PHj`i|W6&y}>cl z?-1oJul$BWmOK;nesEk)AhYaeu?nJh8RTiWyemrO`&}e>ZD3iUL$QD;r4)@HjS3Wd zzMDeSbIculSuag7qJK=#qvxgaiFERd?bhq9w@3WI;3k5``D;+ak?`-#6A~-7`Jg6I z=IU+zcY4$+z~)DJBJHdE93w%@`1pu;6D)W7Ri=*%yKhbh0gvs_p?E%Uw|xHixk7ZX z<5#AR#53c^22U2aC`s0aZ^hysIdyJQfb4wCo#_uG1IN+}@%MgF7tviKUpUgs?@-Bt z+4_%&G+6=rn(e!|QOC2@&*h_Q>XlVOxhZ4JoJixuT~$pYt7_v=l2vNueu5xuD`~-U z|3%WNknKDt4PV?voT)tgVrQHZb~Q>=I0+9YZ_$MUT}qm*&w+v`RdSQGihh%H13a}5 z9X{ho{+<GHWChnSTokffMGQEp7nx9p0v0T4ty^V@oF|aQkoq_18Zby3ov{z!X7aWb zUG=d@YMw=tF>~E&8UXy?Rpq`JccY!_Ck;t`VIUi$P7w(Fngif({#JiOZfktj+0K#c zw<;BYRZ+$;y$lqjd?y@Qd~S`&E{O*?7Da`-RQUA*n|tJ5f@<ZZ*y^Pt$-W=?c(=a? zC@ACzI(s}Y8mKpg#iLiZJm$gnuXy{)RA1wyNxVOk|0Muz&R;8r5OxSC#qqL1bE4Fs z-JpCy%mms?0Uo5}gxWLaX2}(CdUfx8(8?L5TfN{&Qrgq4UFAuO!w1cm&NWsTp1oE5 z)bp*EQdjtp8qGWfiSjd^-_M<Bhjo&9s_7?9q$cP3boDU&&jS$y@jq>a)KCe$6^{4b z6{cNC5`9_@ef~>LFrR=?w!Xi~w)|aGCqB{la=N0n2cc>{=YhL*f~lcqgC50PPz25b zVv4s|_Buh$9<-`{{kW!WDwH$t<c=Y`NzQot?=-!sIqe*a&(eT`FabRLBGQuFT-YyB zY#~yMOt;vq#hRaCK;Br(O|7Tc#)@yIYv1aDgwHJ7mh2rn!W3!ofzt(<feYB^`R3aX ziuNb>(CpP}{!#wBj$4hBWxy2ZUQtUQeiR~lYoJ5B1;fA(8RKzOHc7ftsFnn#ZjaSo z9mv<9b&Y#D^CoIO9Z|cTC)}bK0Pv>@{w`^=D-K5xB=@6E?{=o^E+F2+#eT;$i#mo1 zwazx!LlG5iavrTT65_io3d2G(McK*f?y=B5(a7?)G0sup@R`YWB~6+TEx}9HEWt&a zkpDYnE6P2$=<+!j08{U=QNBL)zY+TDTs-^^?cAs2P&MuV3Y5()VSZ&I!v=aW_YHHx ze(n^&c>?*+bU?tLH2}ynxSdSY0nstH#peVaD2<J!Kqg&W%<`d9V6)qrBv|@==S-Q6 zMVHyvV&EX%!-<Nb+P%K)F48kKUL(bG$&h1a%F|#bPXrGWC?q)$%&w<KY?z+ir95E8 zy27xYP&2?f6;?Jw^)d|spc|X9@p*Q2<B!FkSv2F=b(Hon3{b;&0+D)<v~BWF?#7e8 zXUZMUgY^Zf?+}2w0hdE(xl9s=dXb|^Qi0STp-VLzEKu?8V|-jo+vC}Li$6SZ=A>;b zn7F7;>ugz#%1@NV2AOHHgh<O(7G}qt2oE07SuuqOOVPy>tje9QzfxFX2SRv=j+Cld zu|nmQV}Na7ei@IZU>PRfIIkD3{X9{Je5f+@(f&ey){}qB5s*^<jpz4v6q1F366jC; zc<--?pFbfi-jcp;Jf48Z^LCc^k`>W35JF~Sn|a<vf{uI{aIxP@tKu5-1(?aM<ClbR z1K%gi(`x$afD`q83mx;xcQ3XWCsbV4K@?j5a?77Zo@*_&E=F4VinpT}szb?>977<p zNFLa^XVJ#OLwFqw2wwLd_ca9x$8XEnQ5H0{0EsXa-Wb6Nx`Ma|8x*pVn^^*RRieq# zq9*4!c9$<6;<U2+yokqH%<}jn_qB6%In1a3;+4C#XRN&{C14LHwJJ%`fkOrA&Vdvi zNfj5sx@dKaqjlw-wmK1ns2VQ;K?WPN=aJtMy6L=k6QIpalwc<=%$r->o;Q$SV{m3U z_m>TQ#|=R4lS`ids{R#ze}W(xUYg|~s#Ain<<<dVkx*`y7Ei%UPZ3%1MC&C6x#o11 zUef33A%S@xh}ij!ece-i{mWL!GmcXsNq5MYD8(5^hVHsBHghK38z%S-)`Ji_Ai7?= zu*rH+m6MVSMG^G%5|8#JsAHgBvinIbZ8iX67&LXTzFl9v7Fb&^U{`3bjZ?6P$?aXr zk^A9;C`*#LlvugaH5mfu{a)g@ep>WhGI0zj<?2%o;BUA|mB5cLHlWo>a&;Wc=h+q4 zX8w{4^)ZC1E6(HTpZZMenmpw8K+?^men7=DC{`r+uS>rrP#nn2tm?NtqWw*hGw?%r z({TQ&J!vxoekUt=V#Vul6{_I1)ZA1fL1s1J;_Dbt^BPww4X{APRUNWY`(3JkauYtc zA-Rw|)w@&(`M~_|IYYriz8$=M3*%;>1X;?t7&89|mUWZ;&vql5i=6gE#l^E+mO!U) zSgQxtwL=JG&<e-zk(5Gfpe4Uz^+NGz()~dVLD~xcz8d_J3fI;GKb<{ZH>jKMHXSr) zgy+2A2`|)q7Y03z3{xF@yqPxpQb2(;xf8s4ZX;39SgTU@O*%g|L(CR`u)P3(6JNui zc=t>T+@d?{tjZ#r?nXbDT_lKS$Rd9l<Jv^%?Bq(PaLj>ah|}1U>>rXum``+|d;LLi zKnCueQgEf=n5?|stwYIpRuMbW!=m;T?>JAU>9SUPRFA6YD~jevI`1>Nsq_PB94~-J z2ly_36-IGVz1?U56oEE_V1J(zAZbAOCVJ~OdiZZ7nyZukwS6qGiYOJya2PGcqFMWS zk6AAHOP1N{i$@eMxhX6I!l~sK9hQUd*aSQ-!feCeC}R#CJPWqPNa#5h$Y(S`5;gK@ z2Vq-(wVBrQFaOs4Me+;8U&|>aj(rGFC?AB9Ct)$`e^@AXnc`F>6|hvYP4rVGUtKox z#Wcg8&bWM#H(ZTik=&|JGO-A?dhpk*t*5fCj2gIu1DVi&Ei1{h`HW1waA9QA2j7;> zw|eSZz-Yu)vJq@2iD><v|2pYV=V)AfL$$!YNs|%$`_w_>>2pEv!eb{WNM##kvaFmV z1(kmwDI^rLQe*q7T%A-*>dY!?w?8qfakVqYgBJks#k15Q=wPzq260-w6Ez><N6|qA zPNvqb+M`rA+P(7cmP}d{T?6VXqAZz5hB-I~3m%dVMvB*ckC1u5KJGyJ-Bdx%i=23W zG%LOddv{!&b0u0MPjT*^`iQbPTJoFCCYO81_7i!tK1Rt6XGvc>uh{D0V+%hwNx>E1 zU%+2E(|mqBQ4|`}ZG1~p+HDYF9eP`70+*p=5_;oJ0mqF#<*t4HGEZ|RzFKha)0cxZ zs*opiz!z0X{Z!9g9Sz4~1yi8#ibJwo?{3BJEJahn<*tW6!;8IQHm`|G(Yx5Ay?re^ zmdW7t5^8u9f=f(&onCc4IgiI0b#_Y`I{E2;Q<~Vpask9?X#<VbEqK809B>5P)cZVG zaGOv&{}FwgE%Ny`<Td1v`OwI1TKI1BcVCB<B&)ylb*R~mSR7qr!81oDrHuDf?8J(A z#QEJi!Tgp8{)wZJYWZ9B4#@dzxVW!vOZn3~)~n~v(UhTPWT}j&=RP}X((^*36w%Bd zDe@)w^cZ3-iKyY0@^#D^Jqix{y6Md3Ly1cdnFyVg4eDS}#{%LwA2Y%E@<(Zh5v}Wh z%jH3-vYx~w!D1^wAfJd?8=KQc%y_|#QHre!zc8TaV7I`#b9Wa|y-G{UvLOHdlvYwh zEzfS9Odg~D0;q-|iXDn37G$3^!SG}z=!z4rsGb+4!ztRXsX)(-`DwI&7u(e{be69m zU=$j9c=Jg0hg|1yTm#LHY8_0IX7}~vw6kJ!FEm6Lavte&mu3XQazBm4FszM@a19$( z-FSV#=zF5-u{`)Ptz~of<JVeGm{W{^{&6_I5?ul%tqNgLC0_p^v$z_gye%Xz*rHHO z-Y?NUc7k7OMm{(2EZEHABmNZ!wF{iZ%B)S+bJKB4vAN{PU;)oAg>RbDjJHqoJdodF zVUz5mZur4)7^)B*?f&s_sBG1guYo=f8RFe99Lhg<5HW6cZ38?lS|u@6D9dp!S;1BX zyB}Srunq#6Chx5e62}(!36smx-2QfotBz_@m}hh|kp!}fgKZcqE&fd+X>HCm;VR-i zO}b~=lqmQBt5v_6-Y0GAc(BHjL*H4Kvv>_V!D{%eFogOUtZne@DUsjo0^8NMVRnr& zkp>=a#zLFzp1&DF0F74j<g1M&-vtnMllQ(f{V%ERB-%!tQS2O<bSRu;ehY58Mb}+^ z>*u|d>U*ob5FY3xW#d<*VT~~U+9bWA(4QM*ZcQQ$GXT+(j6RM9g;7BUFaxWl+xV-a zd)%r=u`Ur!XYxa7AVOrCFtCi^wtm<r^gLA0ZfP?Zdk!?%_|+@V{;CG@TcqO&M6dfb zLY2Zn^{M&?z?1AoxRFHY5Mt3pXJ%+}g#m$5tZs_i%k9t6AV8Pyu{>+mG`EE+Qyvd_ zPekF`i4nFbX&0LyF`O+pj|`(`>P$4Vq=vOIe1C>h<i|)ALZXhUxeh!sM|X)lBW*<A zKi_J5MF{xSlf9FpKXzKna#Lx6UjqxfdTBBx0Z{2T#4n!U3CRey=4Hd9Qnv>DgGV@| z-@Bc1CIL%y9`|sLYMZsVB3=QU@0yBFixa_+-IV?ID^od~CaZyHliCu4iAXaRmpqb< zGTD$`CD>UKM5z+fQ~Xm{y)MG`eN{U7Xc&d=)&oVqS;NoU@#^c8lX2tfnu;HF;dop6 zcdeK^1{i53{(Sg@H6>!(hmKY->x<gZ3@etWL2QU_+c3h@5E@GdERyR~0(SVZZ(WI5 zaXfXeH0h?;20w~TQMy0&hgS$zT?DSA^Yavk#pK0T$}s|ek6uodyd4+c^%(y7^$b@f z#lhmJ)@=<CT;ABq+{n4otHkiPhWHd-c{K)fn^bnO7|;x+9U@woeM@vhQE3BgY<blH z!%N%`a4FMVM_(?(h(>RLsy$`>qC1sIv;dfR4hT-xJ&VpW$l|lP#tOVq6Gq0%-v8OZ zkF$LVUIp?e+kqba76)brfH5hzz~ym=A4r*KtPBO6y1@P4^Y4Yw;Lu8Wh=s&;+C6bU zPcc%lbt35D8P6%)f9Gk=J<4E7MQEsEOU;Md%l@=%;g2^Ss?0`Ux#Vhf+BEB%NG>r_ zSt-O;rr7oMNFrZ2D!Ioq|0Iq>XoE*{Roqg^0o6n5-Nq3P_SB?Uo;JWiewnjhzj5qC zMt7#onMdi&){m8G@l4uK!mj<(HXj1M#p4?@*!BBYIk^tmrK7ok$=rZqILD3ewHZEC zs?;JcD8hxavx$|#zgc<<SnEeB(v%P!(E_%>el4#f$`;VUmex_d;MN+8kS~!ng~F80 zAOGPX?_p#UlA1Z;-7fU+DBFa`(lJPISe9#(@QeCUCa_H|qCm!Q53>&5?^WtBr|?VE z8deAv4rqg@^mTI}S!5|TAY4AvX%->(ELCo_<vY726iwEC+23$pa9P7A<!yAWVy_xI zzg)vK>Of6J*LSyCS!X^NQ-ew<t@K^Ej6UorRbxA>VxBV^T6oxnXs7(D8UpK#{dnh` z4a@S<Y{!H5@m!HL?8(a=+|#0kb5<k)-DD=N?b@KgIKiwaSa{kOaTen0^wYyar8A%F zl?};u8um(#@E_aun7779r`U67EW*Gs->;f_TJ$w<OuE`v(_JcJSsAbOp{u!foN;@d zo=2;v_h8;UoZ>kC;HterG4-V<kca1YUYo_>Szm%r0KCM7x2y{75#CVKqPi2y`|hK< zhLP!AhZx6X&;}c!d-{VKS@A{KkspRb2Jfo-Ll*SPFG*W*9rtbiK|v6($tdli{WcD{ z(d^O+;g`<kUhw|Y{yAl0Dvso^Wu~3e8?Kd`=#N4I)KK^h{?#q^_8P#++5nP&<9Ew} zIMzUHkn{Bo$O)KESjBlw7S)}$|M8u>&5PRwV7B@vx5PNH!>@dw0odk~IKWr+;whD3 z@oN&f`^IBz+!RXRd%-Y&d`1UxXiEr)oOmq>6xtoI5cJkoisDKH+?&ruYX=+UE7etK zra$}ilYNLKOjYW2-Vi0J#XQg?Fk3k%%BR~=c9mXD{95PojC7%Q%SD2c;KhLa*DySZ zomma3>!R#;P7?)C%f3v%Dd`Vd6Z}!XFk#*u#NK)`&%V}7y4``lu3I0)f{uWWHtkeS zpbf|KlWz2K+g>W$s29@d;cJ-CON8wrxIR(#@u0%N4rGdx;ANtw1l{9D0cwB+c#uGp ztMJfkOLnNDM_7I1)9Yd%cpg376`miB#bo1AD+TvQN$+@;y>Gj&=j&DSZ|BXmid`vX zYm}#7_d@g%a|fmit1WS<Wer!$7hP3FBf~0-iE)I(c9e2oocFNO<wup&)IK6tQmj+( ztIaaf_2V=mCpuP5;`KFpbcNqrOmO&jY-SB}O3@~pVdQ1WNXcg8Lk)5;ITp!XVLJI% z2ks8EEwlL33vG}p_*j}y^J|B8q>2z(<=;#W#G<v}l`dMG@bYUNUkc*VrWW1WC1mI( z*<aQ4F;67hV*YiiaImv)zqY@s;T{gP!;!O{U!s3PwVqO1F|em;8muA1U;LSWGlX-l z<HyRluC=7CerDTCCM$k!!7zy}*BpuFl;2Px3x`pQ#elDpiJ}Evq)+26g7Oe7M7k!6 zZ{ptgFK!-p$d3{9E>Tw(wO}pcXc#E~K5g~ik4XPuUh@zpmjDYN3pc+ub)MKg`ACFT z9_WB7J8jxiJ7XQVudM(a#MejPJx5*ZZeI)MKcZB1=m7Sq&27l)-*j@Kp8#gK?w0+3 zljPogLl0y*JAS)`=-UA+z~S4-lv}_JhfJ8o3&8nx_ldpf@&H3Ps8t3F7ymUzK4vZg zA!Yh1xfFDlf`D*JY#3@B=gJBrlMaScu2CiN!U?2J6VAW;JE#TeEpNo!1vO^+jOo~> z4Ur_V;a}Hltvadx;NVLnqJ{0&y?gGnOf$#3<;<^InXcq4>A67x6L*n7;`^`0zh6=^ zHOs4hJ4kC_tB!{<dGGf9!YY-8OB*qlRIZ4;&*&SqYc`>{8R4xuIT)Y@PC6kOhcLRZ z(ZDTP2zp}=+_FOl4}wu2c}+d)jH3jSrB{yF+Sx%KT4T|XDx9{%RBNVWu6i``q45G_ zHMVK>nwP@NoWyj;A`W)LOm&Po!#oE}>WMM9&QgGkxG`3l2<G#|eqrbVL=0)Nf()_f zIbghL<LLItXfm*$5_Qzq=<t*}Z8x#jw$XKu^#v^5Sr$`M<iqR=ry!^$F(rwWizp}4 zO~6-|-|0fb9q2n6G(8D6mTlYIEH8d4=TTo6;A?Om6Ksb~%{)*r+FJT>$@`Hn#2p}V zRvmKRFIsXpy8K{sToI7B2llJ&q&+GaHikadKN)sK@!^VNNc(D8PYEp#lrL&>F3N6W z7N6dAz<2)S?f|@+qxf_93EiViG6_%b4S}7Th~VI@<uJ_c*K08bdjN2@-E4vABlRM6 z?8r9mB&WODf~EsTR{aa;m;eLd?4eTkOQb$udA=5es%bKWg@v6lxNFfOsdt}L)*NBI zeMpiM2mNh2!tvSe;y2FEuK&&CVlo(j0;ePb!+K(t%o{~J>pWI09sIC)v=@5v@EHy= zj&`kH77Mo-dxrSTl>kJ^!$svbq>iP_tW;}vAZ}qwLml*FBR6XurY_0WD;LtgPwnt( zp`msT*V0AxhkOHu9x`1}MJ%nYA5+3!-=QB?_l~ajA-KqAIW<}-H(b#qU*4-n#9Eq1 zG9dyW@mDG1k#aB5S?2q8UVP~(!?r3HYpJ<f{l`!;5Qf84CRz%W`t@l_2p3Jnu|EVB zqY5#5NN80DSQ!UBL}OR7i?DeEp;ldEEanq~V`b&|q65XMF0%1u!&aL`j7P8pesP4l zAz)8#BdJ!m)xJv7PYRM}wFJ?|T#mh)W0g}!IN0W$F?#D$^qaI~HB<=CqO`IGV=(7} zOMqP}1*)J;DKwtL?%et7xjylfbzpT|hqXm~+gjWn^PcaYA1%}M8hSgid-nf27Om1a z?B*+esywfK+}l*Nm&p$Ze&s23B}HO+)o4%zU-?Qi{urA96m5K09Qd=`^=Tff62l|i zqh@E)XQu?80CC#+2*EhVUtdRUbgcGGzR!5vb}s7;#U9S!l>;&1XC7AbIW#8iQ1b#f zCC8h1BRV<DY1LLzNhG3|ry<sz?mAKo-^%vIOiOiapap8gBk`hGl%DW3dM!rq&AD2l z^dAD=o@UX!x)mJ}t$p1EW2C|XPg4QAQBR;36AjE@NPWXxu~~Ty522meG(pg=T!117 z`X7%4(E4*LVI+SNWa7^+B!`F-5<2lg9%|N-ngCL#QIc^Eb9GW+RT-Wxh$UWKb?D5u ztl^Ua3nA$r59s^Kl{8DNDsr)#`qj|K`7MKtfz=EAdRt~g_DyrFB#uj-dLvb@O2Nfg z*0i9*5h-gWE;!AG1;T=3T8oe@Lz`~-n{>6bhzB<fB|r!Tx;w}p_c8;6*J1zcp_TFi zIDbiF4L|h-p+b$LNd0=;XfE&<4k#W%-DNX&H^r6K@GiNne8b5=Zq>2FY%51k?psI) za370Ic&Ws<eZ@Lh8s*!_nMq8lsDATBV%|!tk9?TWKBcx!aD(#g17N(XNV9s!f$|*F z;r4UR_os==V+F4%u<)I%)7V*tJ9C4CoWoUg<!R7lWC{ms5$Cprb(6I7y^#O>?rqZH zG&{Mbjah5Yqh`sut5dU087Gh=ur@6+Q`u)IW2<z$@%IDYj}eV8tdF&ml@A$W4+g91 zKE}l`_c&LE)rm%I6ax$4$$;%V*JS7s=$d9N4t&LB*J?kqrvTWB#{hN{a5Pq0cJw`M zDnGc>w>O9SFVGaXEfB%+XBTv7@kXfytY#pcEo2R-LEj1Hf>Bu=(_R9D6DG=|rA>Nn zc)rUsx=BIl-!EoXa$kQ9GU4yjqLo&qE;J}7q#sC&c4BYDKWKu!(c;O~@N0JDuELp3 zj+6d(+X#>_l%GC&D1aEvmx4(>{Bnt_XuFdhi0$y?-NN{53~u)SjF8+OU22A?DhrgF zI2p})SzuHKxU`l&-DO&@>c(Z6K!!PDD8n+M@kP36?WZ9gQqG>&74>EdiP+%|^ZcQQ zQuZCxiO$U<h-e3-;(7PCzR1H@;g*H{T}E}`Z9L5z1U=T|sldX3t;)8bZjurhVf?$G z-eLs&J*)xLBC?##H??^hKN&LmG0a2<oK$I|(FD837sSyE&qzJBGAV}hVk3$=7*4om zgU6wWP7L4SL7lA8Qd2pgHr3-KS^1x<sEm%yZ3-drJ&Szd90sV+7{bB0lggI9RD<6+ zZWw?tO6eVvQ$@=G6$DsjMN;inSmt_|X`8nU#-@gT5Q^0!GRdB*ERJ98kpFd{Si+pn z*L6*pOb|H>;H^gEv8!mn3^d<7?*+BbZ6h%eeON5?1k3Cxp7SKpOUicXArQT%4)lI< zg13zD`pchG7ti4=ov&`rEFN;@PTbp8cMms8E#20?7R7<0q71TvX<+De<0S}9zX6P7 z{j<r@6U99ot3vh`p?di}Jll$eNv;FjHOW=b+!HwYJ1)<cS0hFWZ9fmpC{g(*y+EBA z76yQGdOsk=h95~6o|ZxEF9R-$yo=vHH4L>F9o!WE_ck2L0wj!%sIny<;@-eR_go>| zm<-9=IsO`eU>I3Cu6{2dcB75DVVwmMEwY}qj?KHm0Y^(>bs!x){o|lI*1i7md}591 zv*GaaSw(pODTD&y@449%2n&}Q(!7O~3zv4hG?V3C_rGa8W-3KSvvAu+spg+mOWIR< zt_e3uS=M7<+#D&(Nxy`rSbnNpTvhjJj!<b$Gko1eOHT+PjpXu75DW2<%Sbd^Epa_l zfDZPpE2|FwXxXuz!veoz;(rX^u6EG)^B+_I;g}EOv3oui2H6?PKx58h`r==|A#Ivs zDgGVYgjOYq7i@Vc*BHJQ08q)22p5_Bk4U#o_IqjFd9Q%r-~qvjpTw#MED9S@(5nw$ zL~u8iE#uxrX4i(RwU$*q2;Eh3TnkhC@!X1lDJ)Sv`VxMWjDSe=JQi{(TUPX%P2@n{ zr#6ZK^R`UuM;(75t1Xxdu@d_|>7pK0=Q5R0cQTIm529eJ1TTws3{50si9<QSVKf!N z+S%o7*J))hvUK`)dbACVw>cJ|a$Qr%eLOMb$z_$neDq<HZGZs)<vt;@nwk%WKTF?^ z0EBKWj2&nj{J~&02fdtsL=Lr9a&4v6QQ+gzTGWVdcc~G{fOA=6y<$5LYw}M&;3D&S zNy#mBp2?7Wp=G=}1RYqTD~%_g5^z{oYuM&X1QbxrkAF$m-C4j{59EA#-Iq~v1F;l` zHzQ2|%^U=Ze;S5{R9`;KH8wd01y}e%ZvC>+aXAAl{%6AjPK55?eG^Rd2`?`rG%ZTw zZkeC2szof?QE;};0KrpI4ZBwL-SL#J%?{CF%_jj<#Iq1=MbL`=u0;T(q$UtsA_(Li z{2`2$Iz6zb)_Y4$Nzv9_CCLedFSR5*je&)$WvutrOk<QZwbVG;i%%ok#hDV2Te7$Q z%ACH#u0DcbP7op^n-iAH-PgL9?$hCA^<1W4%(y%6v%s2cfFjZKavqn$3kfcPxoPAI zGlLU(7LLfzK9eYk4pI8~yh$D&0a07d$%5x2p&T#YyDOZQ|7S-)W=g`mzxCjYQtQb% zOp%)ohEUB>3<shKDJ|(_Z?JBqd?GU*m||+`zW3rcX3K_{vps$;b$De3kvI~MlH26Y z>DOCJM|u?-F_O-Djp1Y@vXe0D6;~<d^zwu@QS`V;Ue9Wjmf_-T8QUSTg+kxLIoy0# zT_h~E>dFttXJ+pgaqMrI3lf6&0~iXPkc_;radZ4v1<loLY4-W2fkc`zK5vjM&M61g zaNb_oWoyA9^7%y6iq)8-X}n1^P{37_Z=UvMhhL|n3N4z6Cb7>;Z%VS0)vQ3PtIWB3 zY1_m_+^d>Is9pjqcNH296J?qO89!dB%%*!2=S@7pW)qz+m{&DR>%zDPz5s`*(Ql<f zC|gD1^;#+~&o$CmlMeo*S2)Efo}idsR@`peBKs7iq}%YTop*tBK)jNG<hfUt1MrJg ze%au+;-4U*dkSnVKWgExzZ4$gDr};dBHE*vCdgrVpPAcp_dFGRKEMH0Wyf=%gP78W z-1HY;l_a0LGZ>Lho}V4&eT`0f6-j4pX!kF6qi@za%f9aF^e6Pk?X2N8?Q5<Pc#i#& z`y!&nu>!CVEmuAYCB1yg>eL?7g>f$no9H1gmLP$h<}8()sY<QlL&8Y%tKxmeU>N9b zOX`BvM!a!!*;}5beEg;i3X*C}4o5+=tT`(k!2S<JI<U8*x7h(`%Jiz_Z_+Gz5z9Db z?QGT$zOI!gG2=b$u^FGnOWiA*q%PFQ&$DIcXDQTLETvE|P03Xe8dtg`PRpqNmn}~( zYctyRn^P6V3saWrAyD_Q3*P^f^+~$+FCYd-<U^u^3;wZFVWyKra#>AVJyO{(Nka)A zjdQG?^GLp<GV$Bivb;G8oC1V-8DWxlZwFcfls5H(cd{7TUl%=+h%u-O8&#lt>{xF< zoat6#`B2s{_FhuwDn<+c<4|Y1nRsea_xekBqLe%eaw9eI0eW`*9se{Zq1I|2>D_K3 zhjTSRElIQ~`L96F7-$25u~zg#@)v1<$(ZN~VbA@+NehG~{ADs?Z9MCkBEpFJF(e#% z4dYf#DX6jHl=J))=rTUYD@lJ7{Glz`=$InzUYx^mqbRv$MF;RMYM93=%@O-0KPZ~^ zu3ustmQH+==9_%OH+#>h)npcel#KVcLzpcL`X(5-SJj%);5@*Qr2%e<b`4!oU5EVN zrNlVpS_nw&HbpO>k+1+TL0O~yYBYOs3t9HlkwVI>-yz&&1*1b^@7TGHL%{1gi_Txa z?Dv)u?)S>Q)a}!3firFtZ~F9WUEO|&GQe>dIoRGEw>C?d%<0){jn9YopJ$xsukxYB zqo1t~8;^|tQU41yd5xtb+>0`Pqi-3-FU-cmq_^H^(8G9BQNLa_f}nwU_!|}vM@6#P z3Jr)A`_763Be0+)csyJ@{#1rTPLgK$PCNjcb&8-n8Gv+-R5ukKGi4%wqjwCF*zHFd zg{abD^P+yLrATJZ!8d<Yb07Od3|t<r&}hsjKB@lZnO)QmLgEUi8rWj_WxlQ*8)AB! z<4!h0sh)=7|5cy21-x@q+qka&1@0hp#~jB@Hq~SV+2f&T?BP#nY`ZVMtAicbjrcCn zn$$f2%Vt{)C>g!D3!R>`cJ}ubeiaY}8t+|*?_d0EBvT-<a^tA$?-2m$$uz{v0-Bd8 zg>u<dQpJtcRG-)5c>Xzf;~c{3%dvRYhD6P);+G|j&cNzq<3V*8(qkeI2+0&}oC{gM zp}vd{s~^oEOZ_tX4>Lxd{EH+{q~X{JlWQ&QD)}FB2g=o$!f&OwpvuAPK#u^h1FEdK zs$;dglsYfWPB6)bu>edlqPQw6N3t5Tsz!~18%QU^cnH@^45J;9)4ts?n!d|57mPv* zR}RtSJKX;u9X8nxlE!^C#Yek|up(ubJaA<l1aVn_O4hUo*&iS~y=x?!lStSSRHtct ziJRu2WrVRpF-o6{?|i^0*|4qV8EuQZ8nD{m(jN~+B+*9;+xj(0Iwz2?ll!;47|j4= zi1r_~KnTc90NA|}twX!Q5)LB~WtL=B11{ETl3PTEsL3(SA9=5@662mNVN^dcw#LBw zY3#r_KYi;q?8Mo@{*9RE*sadyH;cm7>y1F5KTqbw!b+|sgL30D7k?5dRSdsx1kb|^ z8P%l0AI$&cuqoc`PB){Q4)UWQSz}eFdS#l<tx2|kk5Ci%Fk)>=S(XhTyW*Aa{Z0y$ zNHXU*n-E+x%{__!c8Aekx2}ulx+wvBL6lrb0qc^LF~}+0rPwXN6;O+E2%E>V#HMiN zgwb=ci@y*AO|pwVcs}O=+vkb1Es@|D`llEE2Pl}}7t|4e4c!w`@Y}Q>W>ENzDU@Wq z3hAAtC~%eX#an3tWH-rzSD3aB01}tN715=0-pa)hz^D4Osa9rN@IA_$f=eF3BTq%Q z#loq|U{40E$Kd@cqm%<Af=sW99tZkBOxT~%QxDPjHQDX}il9U{L9@EYq=>RadO(Ri zoN1}zP)%ABB~50f@_umVDZUUYI7^;;VDN0bVa9-K<YczUeYBpnB22XKKdHILk|$mk z>Jz$<KyVMQE`&obiCS!_(Ybz#-xtup`-UyFbO<`JVhLJPInMUAonjGLa90=5NHuT9 znL}}&nYhbP_!_zmx|TCW$6CB%amxjG0f;>Fq_oXg&xfKozNo7lFEFY7&F|}9)mx!B zSK>tWh?+*d7d!W<gQ<w_oQ8YLdX70xM)g<#_TG!Ys-};M5Xr&584=>0=jF!k1OWP= zf*b$0$thF2P)n#Alk>sa5(FBZ<>ApdCxP5Js@s~}3H1t&D<<%EY$BSJunK;qu$N?s zW#9m>^bVvpFr(;V<~U~~T+S;ze320jOlggTraODMU0k8bbTjFxEn4TG?*F;gD@?AQ zdIJ&E(=Vyis(1!fpMA(rpR3ex=PU0bGKkEu=;GM7=nBX=d5AB0ccqxI(16t!Ag@lG zAu*u@yum2o>xmd&mLY|r`hUr1mS%{r&Ep3@wZkn1QtkBK%~@3`<6?O+gD?MpTuRl> zaj&WREL;hH>;E>e&*mn`O&DaY8B&S_oj+5AImZ@NxqbRVB1O@FR9^nhz<7Om3R!%# z!R<NcbI9&}R1_7i6~sG9ySM(IcZuC_OgFy<Q?E3ytK2`n;2WuK3x$D$rSSof$w;&c zjJ=119i(El!m+YtGyA%~d2UG9^IxGc(;CrEM*_YoE$3EWh0pzOxJIg5K9<xZV7pPG zsdB<ES6DK-AvlP^p@(%(jM(%TI@~^v!YFcq=2-DPRji%GSih#tj`*s@Tbk&O(&#hI zffzw}-Qs)45&@2vseqwj=08J2!8T8W#Blv4Q`uVKZf2rwf$*&6UY2~8Fs#8At-s`A zX(zq(!TXm|a@aM0Dp=@LUg7k~5}PzdJXep1t|wCT$urplV8GqV-f^kD!COn`R6$cF zS=e|m?f`X&@elQ7eDjbxSbS)H_YKOK?pQXLmDGLYs;Bg83m3w>sRU2ECYuEY-N0BW zrU(9N1mOqDi~>?kZUw6@(OEl5pi{L&gVCaE+%m%<BBC}O%3pVpDQy+elWeEK2heMp zis~nyw@Ik|x9_a_YGy_<3TcEr>BF3=+SUuTKy+a=0M&5I5Z__odVxCDOh50@V=fqw zVfL4THo44K==1If2q#qW11vpa*0=QctY?K|4_v#7lkZ~*gM9E4`Nsz0FoQtBkpAa2 z0pJyqOUuGKoLytDBsYwN(y)kl=%x7*26Wv7CJUlG<H6|rt{Us?0Frqm1hilmKiFHB zgQk0E@S@q_d|T$kac$$HQ?a&X6rjZ+W<h(sy0C5{SRQEN42G22l1Fe46J0;UgLU={ z;rR^_3VL>9Y!DM=m~($Gj#T~tZ~on&cd{SWxcWS*&a0gI|K^!>6kQBdSJ+P9x4_)` z_+4>+QdzJ~i5_RhykM2i5v5X*IHwX!t2$ZXa{s0?y`rt3c^)T0ZE@Y3Ek|tVPJRpK z{tTN2y3K+`dKJXnP^{pjG%t$;C(LfSX8&~|ct|JnuTpG+N5Ph{btnekrN*gCL6MZ% zNR0+fPPggVg{6N`itU+$;|4|l<9Ot1GBwizrB*6#$&9s87|lnpnzSz%3|HNnx{jW} zu?|FHSqX;44r5ff?61CHI?5em`O3%<JuV@3T#NZ^_up_icy;Hgom_$=zAvlQfJU0L zc#wfBxQ7x@$v_O9rF?7mBJ8GgnFzG}-2Aes?^XAoMR>~^_G{`ld0(}mStTFO6Rww; zycYYa{e;||!*iLgfNzZPDc5yh!QQ=@vlqu@-Y|pXq5ptBii>Qjr!hWGjzdKQ&G$EG zP~ow<lucpD$31xDX{|;-;*Oqjk#tn|Zm9n8{>k3@^XmS0NwbA+kKnows)^K#EW?r8 z5iU<@gv|O9y1`Jy-5j6<{q3e;1;)zi3ZDJoB3JHU5<oD<Lv!dkemMG8LL)$|B+V<X zzSXg4d#3BZO6N2#Pj02|g-EJnt7+rC4RUsYN{RqUBU#qavu>ilE1lB{v0IP(K7{ZA zzm$}1Q6*28GrpqPS{TWT%K$a;66|MeGQzK&0wNqju&!G;&G2dX(=m+HH`oke5BAO1 zJPtya+eLoYPg~~PBjp{;H_pQ`i&yuSZ%F@yah=IjvH0M5YZ~T!OV49ch8Fqc$HU6^ z{dk86h{^TL8A`rMtF<(7Mm;z?6uc7^J47*PV3%O!y*CFuM&a89{~u+R@k;)X_q@H- zq-*Rw#Q%upY(jBaF-w<5D)oygjGhzlJ<xZc$xDh3Uxd4U!wdVf21buydv?+<s&;lC z?@ttBT)$+wg7cg41gSr-d+oLs6Jmpz7a3W+lHj-6!-SZo266wre=l|`MR4@kE#`v< z75s`%<4N&RVH}>tzn=}fVDx>sNW2(yYg(Zx3l&$19b$0_iAiWH%9;yjiM2zu4Kr8W z3}!MXo6&`zHh}-3a3!jc2@Y0NY@A}v^^bu>rX?cxW+mNYmxV*qzF3uD0l^{B;WMgh zB%$IK!U`P;zQdwd=;8>g9UQXD^I*R9d`SVKp6RQu(m$(I$w_O%9T6*VoQCbEXw2&; z|Lj+`)tfoT{9P)Y@mAV9c!Wn|qzmef@f=6_QkQ-9a0Er;TLw$pq!zWvGaI*;G>K-n zj@|zRIBh?dYt)dCy`5r|0b(Wf*{|BeWrBBxN#k+c=*?!c8+!?>KK)(qv;|_Kp0}4@ z^L%_iMcc5KbSa`^7`;sh(9V)tNpIm*gI^vh7^%E-<DlIUKPMGhYP9{(D*cD(zZb-# z6CfJU+Gb&><8qzL=ItR4rP{56V;5NR`DsbB=iKHtCTTonbr59J7^Q-6&q|S~)D{6c zukL&eVdAi*JH4h@Fq3G;ta>d3w;jH%=}_LncFIFV?xqPI=ZDYd+5MKS^QD(&+rl?8 zyD3f;AYWI3CeWvDx5nR|gPYM}=mC}|!7tm-XKyhRE#}z(wDj;JV&;ql!vM=7@M^Ot zcrG4V7nb0Ypxd*0hj9?Ns&RYsu<z$~9kPrJe21LU{R?Lh#MP6NCEOyN<bos}(aw4q z5X(}yD4BFOpN&5k21BD)R~0EXh6siv4c(VtqtQ55cG9`Jh$&>A-(7>Ohue<a$ON-x z0J5+FJTQQSsut%_k*Y@hcp(lqUY!92h1W#0fM1t=Rq@J<$wYL3nDhUKgMsGyH`ASv zxb0t?$me>9vOK8pNMo}Pbb2{k>#O-VhEB!1d@1h!JEn~n!cDM=Mv}!71cI620&;pV zis^g6j6p9`GZlLVCxmf?qQ3y2W~U%d83Fk5!l{Fg%8HA;yLr}ED1;gY*rfm}zWr1Y zzU_cF*$!8TQ}{96kAO=z&Ia@gi2VTf)#WLQNf1ZcYA3BU9eJu?p#q2dc2!*zdI!-> zUKMf*PrH9$yR=kdnf?u+jLlXB#{JI{6u+qpjJ~`UVUBitx76&ucRS4IPEA$SP}ru1 zc7b0)DHfp%qC}1JpCP%BY*)Eku`UHzEJj`LplI)d>q2&~goaO!tT4CGa)&_c&Ij(z zE6o3S%b!+MCf)`YynVX$_{-5PMfXN%rRu6fR<h{Uc7_XlLJ9(Y{@2T|u3zlZkdAtu z*~SMZWO)QXp*?1PaY+JP>Le_LubK$`C>G%4gZNL~2zvPUwM2u5!M&dBk;{VZd=cNI z%11&?;ag>m%-v~*2&z6TN7_sOlk2-n4ZkaQ+BP^oKBG@e;|wN#AfxnC3QhLlflLyG z6zp!i@jX_O?(jQrlraJ^7{Vdp3<YvesIYJgiCd)59e-p+AuHw#r&Xx6x7u62Gw;7& zwZ6Bk8<n*A^ZC2}#;(Lo-uFYwMZN)=MZR2{Xr38E)910B8cKd&ZQGDBCT*Uy*tYhd zz76tDxpRu85}V*OX2};s2gs1XQIo3y6G%MI{#)!W??JKA8{4C?uu<oWo(4bRx370& zqudW&L}%rp4v~_=mGu7M*^R07@0_Ce{#4N#nY-zwORDRxF?RM03*Go%!$(XG|C~+C zfGZzuTjeO93Yt`rR?#o4iV91$xSHT#t%z6BJ0aYWmEG6{CNXI7yymxbh#5m)xzM33 z;kw78ZO;Wm6z>lk)P<gz{h(pvI#156>=`oAPu{f@i)U$R9`SJAW{6cead_W)PF}o& zz2d+<8ntFRHCF~hAGmPhGP(--w|%nb<eF$=G%-V-kGOpgLsa2Z5ow^S93@&?<?O{c zD?iT({x+#Jsxq^qvgno1wV+KR%WFzVejMjVIhX<-s3kZyy3)Hrk&l9hi#RtQ#kHe3 zL9m9ryK_0lz-$v<aDiY%=f%n$J0F}MdtMR3?;VQ>-Dq-yVitu%M^HckuXyVR(2!oX zwIE^;rv*2YD@<b>+qpiF72Kl_X9J-s1Mw$eXz<kFrNw-|M#tp{>KWFtMVjS~kl+9Z zFiYyodha*><~h1G<Z&?=XTV49yx-dl?ypf7!MTCmuWeEz{Pq<WuI?_jpTL<)=aI@p zFWJu$?@`xWKHmWwpMfLe8r~eNUEnwqv&uz^V8P5w$NKd!`_|aRsqRtIHkWJ5id=@c zrhM+>jrnm%+=)_H3%qrS*a@4mv#Yi5zweelUo)ts-LYEU>h&i^%Pqb&5gSQrRyz5r zUJX;QtmX|Jrp3y%lRl(u8u}%rCr#5a7I=Z{*)x<UKEzmkcF=68v^Z(BIJt;vffKhq zs{MX_agFZK;OmY*v9Tw=!eD=krwHwCAvi-)upb$H`2{4E7Qi~UOFD2i9Pow7h{G|M zh0^nnuHp5({|>nII$yk)Zkhn8*E3B-y*DlT7Td)Ww@MnZe?ipK8>hTWu*0J8o!s~u zbq?7ka7?%QdihxF7h_uW^NzlZAHQ7dQp6uytWIo|XdCZGKi<D<)yJ6UGW6p5AmegX zB}u5cs3t|rGgtc8Wl=AV?->8$hNP>=h0Jf^9q#8W-5)=z;~cL!LwW9p3=>{=LE%T6 zMC7Zds&dSSVLaJC4;3lFGepOQ6@qHwkew-KrvljF<L5h&#To6%T0A2Am7s=jMRWx} z|4GR;aqQ{`{}jHH@l7HR;6&%yBt>5lI-VV-RSSc!dUncy=yvW;veAd9!udGuY2QI_ zmbOfM3;eeP4vSn1omHvuSh*05ui3ev{ML-A>ytML0CypkFSVa5rrmZA5%Hx6HH*0X zvL)l{-&X=3!9CG!m{I;+Z5dQijplD&{w~jrdR_5u^@Ahq2x31MrV@Rw=(m^HDeN;K zb3@%a3OOUmT}TM4VsQ9zJ}?#j|D7?D%YGB__M;N69KRz)e>V%cZ#t8B#`{5A%0R2= zc60I5-wQpF=STd0x)!gbhZqhp)F?`f4F^EvVA!)J*kH2HUBdw!KR@wHh+hQC3V(S8 zOwZW^6Q$84zoh(Q_|VH*0kqAHYO`p^Um!3f?pUKe%&HSK_@?Z#KGxYQTNe*d0k}pN z)|ubq`<jUlGlh@*<Wo=zL$dpSCmF<5?+C7l;?6}X(R6x*oek5_`J;Z5-@6X>{Yf6I zNV^wSvA%rW)RxxTZ79T51~WP;63HHYZaiGti+j*hqNmk2;Y#ZgZ!3OKFmaXwS=d&r z>HMJjUHQ8{W4ypHedHH;qw^}t>DaSL?Kbz~V`iiFxbG!Z!kr#-Bc)qJH~YU#8q$+~ z2{cjghbiXR`myN7S0<?2u1<{ns{iE18t0N4u1MF_`|~hSz`=!2Qn9IJKj{f-Qd-j3 zz20(s#?RgD=f$Y)MUSAb@0U%RrtCVisX1Mo?LnbV&khJpf{!$>YHnYOj%c$?$Y6aD zP$+)DnOYZ)-Uz<4Wz@&P@E146ZOS(3+P&lGIbv7#$^h0eHnUpwWdYrBLYZ}mxX<W= zzN?Joa9x!Db6ds1%ImomRn$-4)e^kgDCzU=G|Ng?r5u>=MEIH?_uGuT7%QT8WnyX* z5`R1?JXK%)6jb>ZsJ6xMtP`kq2}ZVti3x_jeCR-EVkynlxbQ|8+V3u1IFb6*z1)eW zl%K9=73$Xuoc96S)_SuC!ZEAFYzOTt(Cv|)HXMs)VL5ho6{6ISRb-7m!g<<$7FFPL zp0=I>vUp__BQFR=qz*jGY<M+zR#HPA%%-!81620N_T^h<NEz38B3Fjr0lB|(5xd~L zIqc?rk%Z(SAM|k9WlYAK?h|n8&MbvBMw5j@vUzP(Eln*cociU@3?4VJ%F5}7-b23F zRbijtCFX^krG({g@X{6H6I8o7Q`WBTyY{m=+A8I_?`|^?k6u_U3ySaP3Ekin5a=Ez z1pdL`JvZx03PaYOEj?7#=`y6VBHjO`&a4n^J51`|h7@Ij;XAiYDQ5GBdL5*)`oPH> zYPX@d;Pav0JEwP#MRvG3S-StNbXP2y?g7#IECHQ(GKYq<(y`~JRht?CCZeYj>McG- z``0%f*KVx!esXJuN2+f_nx>-(F^iAQ1CI`Zi1$$jx|c%plFpMVpfp!Ar-xj-g}cY( z!Tt{bBchMU>$a<)J6{b@>uGIUE6C_26}q$G|HsywheO@A@xzrg6`A%SdlIGW`!-2Y z+1e$;5JI+W8OzKhL>XITl0Bia?_?S4*a>A{XBhi7W0)CZ=KXd*_wRXr?|Z!eJ8&G| z>$=X*`B~0WPz4z-L+>;)zMR7p>oBnt@g;oe2$?m}YW=x^1=04FLY==$(B{&7r$20< zb`pu(Axpl4eKcW6PLH<W?<ip8)v<xAu5vp>)txp!a;wpE{gl2bgolis^W0T-xkuW3 z%!uvh#K>S;ix_h$oF@1KzPdZ1QtMdm@^k#xMVAw6{dbcJ-7g8cx#wl*jJ0sE7&a>f z;v3fjs1lHmJF4vV0Jgm)dZ0zm8!^oRKIId(go6DFOw1%rLsEJ$U0TR=Hx1o$yFLP3 zl*gLy3;bRZ=dqKBcknL(DXH50bNiapXE`Ih8wvzAH)D=%E-lde{r2Co+@`kFy9&Br z@*Rd_cZ+X9g2$I~1@G<|%)juo35~*S^7W}+3$We_m1DQ{T96?SIMNM<0r{tf^F+M{ z(`c(F?#x?qJ)u(Hm%OFEdD&vQNdhjSAFz4QXBxLVv93MQE_HYQaP{5Gd_H_<_)M96 zs+U~brWfkvY{H@MLl1=Zfis}fM+{I4*W~W&AL2&4owB=SyHCgM?RT+`wtC$9v4KqH zk4pmc)9X~UYlTFB&n|tZmRs{!#?BQ&1=@c!*S@67<;Jd6O03x1>SKj!j>fUVo=U#6 z1l?cbXTgX~7u_1M4xiKUy&^V}W(2>BX2pjb!jH)YY5A7g#uRn;YiSWq0JW<zgfV}m zp)%><GHK4MFdVfdoK;(7q#RMD%kSQ%>2u3UFeaX-l^qIyMGxNuv8HPVqnr-2J(5M) zg!gWOPJ;V?n$=L7vf#)TQ5+)rA{6D$>hwxg1v?#1@)A^Y+IZL3eRlSmiiSWYvCCS1 z?!e^uZ_{?`y^Bd&TKF@hi;zZQ&1KX<R^e>u?AMx*MUq@TB46I3%U(EksJq`gt;wZi z&;+w~s5^@I>_4y#DBA2GS>M~n{KAaWx2Ke!>$fkIS82w}kv%Im!ztW9PoBYQ25k}A z6cFictp3k-sqO+#`1NcJt^}?tYRfIXDTH6M!~I?-lo{}cR1H2k?&|gscPGk9V2Ht` zhpzlJyph4)n!~#4Ps~GmWbS<rML9C#=&wNn@~g*f#v+5*TdA&fB3(VsZ1u<p^0JR- z^cbq#ejW>dx+gVW6VfNV5gao`i76ysRzUx}n}TTZ<WJnrTY7cXVsc5>)>&^1S~b1y zad-EeFz?=7-ajVTa64a{1RGT})hpf#gE5eA`jgUgx2s)Ty42X>Fy!gHv6Ds6e=BV6 zu-L2ghXP)ACtZXjt*xHezBcFFkX4mm2);zV^%Rvhtx*2j|5DDo;v5bi^8`#VGwfda zinLU)lr9YPK`V78uyudC_B}z9_t{3(IHbl}>JNCwr&NgMPSwEH7f5%p&4ZRtK7CT$ zw&4PSRq5+(;z4EfV=nvJZhE%W6bSI{K@RX8W@?#_%-$IRo`{sbq?yTK!gtpWcb##G zu3(q)vuKHG&)+8Yd=ahgMXr{{py~yENO0Z}+oUP=1GaJ671E!$8rxUbku&YyH?eQ9 zZ??+prM*iTSy6wYgj)=RD<Zez3j^}h{$llikpIl1g3mHXsQT=PIc$)#jc1M8)rs+2 zq_5#B*)3P8-V`mtt5@0gHfl&BXphJ^i3n-ZV`y<aW`_9K&G)OuK{2>RN3}rBPVM~s z3fGdmkd>kFn@9GkJWIfTMI}l`(KASM@+pStoh`+hirSv$%nzWpavCxqzFJ)XVu^2y zckC`TAylN?6v<O~zpXzgj||13f*Cn}?i688<WrnS6y?nyE%YYI<lVXOHik3&!YXSg zb-?GHf#Z&HrR}TR-`ob!Bk6=|BQ~ijXK7^>Tlg3p>bvE*!S@XE5*#SAu6E=dn5XWP zsf?uHS3CQT>L~ax_?_ws9pNZ!5WacXA+^q}ru5NRjA9Kv9874Oi!^!?Kjm4)fI`Uv zM62-+PBu0e?WGJJt`Rw7b?w5X<umrj{uabD{>{>H9i$T~f*0<$omPhu1MgXLrX?xJ z-zT)RXyl*nh~a@be&opLJKj;S!j0)$AJO@w(`Ri%oq7H+&Q#U1_bv}~v?Ap(&Y+>} z<q3o+hC--m;+z5chF*QWnx+7ph>`RM8Cexxx~-w`=hj(ny!IRxBrewNxsfY=S;Dth zcwJS7V(=hKmi{c)G-_5Fr~3|-JZ%O>)BJQQxqx4%`s81j#nouJl<uDg7W~mSXB*e` zPGz3HS+{H;Z4t^WU@tI&0y;uniU(jB`gz9?w5o4ZQ0@`LarA{;f#oAOrLV4@I+B(N zh&+k^9h#2?Nm<yMS(3ZYlf7LWv@?W$Cx1ywIzfsjMs!WpEx7#<WFu;k#5jp~6R`Oe zhn?fffjiQGWpORvh3P+6UEEL_mMGAW@Q%AD0{$)EUa&jp-}k48>pD@c<E669%gmcP z0Zf}oM0vN};x(Skj6S$}Sk(LZNHTn~2v!;;Q;G40@=UU}=}>s>x3sCe5{u)PW2J-^ z&3DD7v5%*me2%-;-bBRjl{Txo(pa<tn4bh{%cN)b`L389zu0fTuCl?WK0BMxg0kJp zjj{~woILJbQ|oUykFx5b7lyQOE=Hy%;)i)Y>*=!uyr82Q>Q!bbUTor61UesUw_?7t z`Nj}vU)$bsHEwe{)Lc0|$Ql*s?S~7${)y3Sv`Heze`9qxYU;5+*#|uDwP1W~RT9E? zrCb|kJFan*tzY<GX?w5r406Zr!IsfmWlm#)!e#k#fdE<MYd;m;X}mCz0z_O<%7^&^ z=eEPVfgnPY!nxDj2i-p&S!zY_${gHZpn4bTNW-hkPODf{n_^bSTE(qY^E&HYzTr#_ z2i*1s1Ew8NqcjH93MX>Gr2QmX-cjt*1Z)UPm8d|FFS==x9u=D>h~Z0V#7=0(DId%_ z;Wf9oeTN~>-kakihjS7+T1^;V6Wrk6uG;f;M-ZP))Fkn|>Wf-Ov<C2A+g^mDq}4pH zUDL}Gv@NC9`%!k`UZp6y@Dz%YT{!!Q2l^x^-r-nutLM+QSg`lCx1X`&%DYQrpU=yn z<|+@zMfU25n({Gs)p-xkTOSLI%@?yjCgVS1xOL7fEyv>5vamJfWS1TJZjvuX@0Jvt z5eJ=}Qf@sLl>%x%L%_NjhT0bS#V8bWwzSU^lIzYs_gAf)Y@MNox$M0>+czxqe-Kmv z5pZ~U#3WseZGYq_N;jD79wC!LGhx^5TCrF3W|h&?!pjF5=ek$vjc<E*i_6A6*s( zb>gNs%y2IC^Wq$AB~(RqGV^{vyQJFd8P}5syN}|w3mv!KA-0XT^~;034HB0<*KSb_ zW{TL@Xdd=d!OyL?<BZmP=&w_MK)Dqo8YF$?m~fu$t}-v3TkCY;NyaeiPtpP8cME`0 zRCUB>%`5Xr3YuAJ5)lGQ%CcmNnCA^&NlVRDBdsCCSCDls4r{(@4um<>Y78(g8a!Ln z=X@H`5aeY;*DVdRzCng&zhwZEdJ`FzzxDZTn(uu<y8Z{_w;1872K%dpXWc9E97h8L zB+&qSQIN`OQS?k>kgM^G)OMJK<e5WiHi_~VSDAcM+z0gziBH_Q`-ux<<%qb1XqJgQ zQC}-SJdb$`f2&9BlAV83+KAB6ic#z(WHWu<t=G7sv9GP^=)mch4$b%2Ziq`Yh(Wdp zGnUppm6Qdkdzq5R?WZSg^ZR*tk(2R<t0?*CzM44UVhL$A4hoF7c@BDK@IwZZFn31c z%DUu({tr6T)AqnRYTKC96WxWc9IV<KchW#c0~ta}*b<rFJtY`Y<NsColv_xiZbM?r zN3a4PkSIzzRhI@u&+SU%(Tv@E=yb*81xlV&BT>Dmxv~ynynM5_<m^|^JkbuRDC!sQ z8#RSY1l?N@VrCMDTO6!~AFm@RQS5(V0@<(5xhIYZ`0*4O3cCwf4&NMMl;dc?$r}E1 zIF$oU&6x-Ak-Du)RBKR$vvqVlQ^eEsQ#i0Wkw6ItU~#(vN-}RgM$EPMl+YaZN{5qH zT6Sj4)$*sSHAA)A6k$WLa%z*=4WbV$SAEy(F7&4e^EJ4V4hfb_xEz@{-V&te8&#kQ z@MZ>~w&ymnSlChhv>ICFCSFY1tbmDRF4fr!LvXv*>;5{!b+@WDN-MO>CI^S82JU1J z1JK@sO3k}<C)o3`GROhHMB!9;?twXFo)$B=yd10AGgI1&PZ^j@uIs71k9_vl?Gz#R zS8wW6N0{t&U9}KC-5Q~HIEq;0;*8fcKpl@f$K_2h+4=Z5In4`FVR?U`ZU~1e&#@@C zSnvpF&b0g%Wreo$PyW4jUM%INWw8<_Le-_$SVxvo#t;2aQR=c7odd=`$#TC(|9HkM z`;KsGh#u5T*_bgnJdMRN!xV%IICB|(EoMzX#d;=#Xw{gMn^=2QF(w%lq0DQg4s4iS zAD8^Cm3n&hFVg4H;&qRcz1f}CcGoJ-{^iTecTT6CA@nlN>+Y+(#3s<K<#Iui!Wq}p zJDwc2(Yzl;{tn`RX~=6=^35^(X=Oojh*5U$OC{L8#-S<19O^_RVV3q0o{*(dW36qw zf`wxI`H!Q>)~*LKCX<Bv@D(&$gBp5|kq}Ks4d_{C=Op+uF#D@!;PGO09v`HN2hpLM z3JZeTfc1D_%Q01%vc@&)HP|;S4EaA;KfX2sI#TldrQq{lGlM56;|wcl5zTI-yc1GK zuts!o+{?zvaJfr)#1Rm$l^WHLe+}0i<Z%2ZpJ^@@7ZE3#ZxSAfyD+QHy}=cNd}a<! zx~W(`FQ^SNo@_g-=JDiH59y*96@vD>0b{6bh{=aX!G+{c3bRjk?DwU$AB8riLNS|Z z&c4@R@&@Jof8wR2N5t&4x#~<Xt7@GN<5A)N0JYX391AIPxEre2@p8uDM)}4kTmU52 zF`!+_ryVYEZuvd};2B#HxRo)bA4K;V0N#JM%YNc7w!BvP>ixiAnn{a__F;CVG^OHf z;{tA`z>>k*Yhtwo$UVWyEL#iarK~`fb1TEHHoGpDByZnoP}h8uuf`Kk|A?%TS@FBn z!5O#B3qlbyTyG^73pNZZg13Tbjp=gxk<p24$*)c1P?z3YLPv9?!c=&ce)L9fl)ds@ zz7jZYJFtwi6#89`59TjRjlv<kzX`$i#FL?xysgr4y@(4C;_z$L3xX|NOXdOYFk)sM zUK~Z<(h=UO^YB!%`7<QdbMEg0=-;sGQd(aPe8LDhO5I?W|0E?PsFIDkbheqVUOMi* zTc^SXuRh-#A2%^jOvtf5?1Qv(h{MM=;r2wF*Kr)c*=mr_SZ3vL1zG1Nmdjp<8}aE3 z$xI*hKWRgMQFSo573a5mGfg>4Hd22^m5FT(50!)DecCj@DYCy1UEC5Q{9X>brHo$r zjGgTe2qCG{4F+F_H!J+OM-gm?xbX*`po!MmepmHPp?583wQ6tUcix%G^aggA%8+lS z2rLnojqc!g1=nP8;&fVTulrxBw9~=xzal~1+|_}G&(;&G`|4-*@tqca%Ky6Ssj0f6 ztjR{WK~#qAjmcSo$fvqiv!>F;k7swd?JC+K65ufYRJ+xBH_BAQKID0p4Rkx&(d54! zCt|RK1X&0W55y#tY?W7;#H&XK-HReP^>E;}#_zE@Ox4Cnyh70uEaqKRh~J?Rf{bvO zPrcsRc8FF)R2Q8Q6f~=^?LnG={PPCdApU&=>(;y}oHNQ*Mp<o0kE6^JDKu$NCmAnK zA80{HUs!LMp?{0|yjR_Pd%hIe_gt07ncuE-@`XO+KC}NW(H0i{D!f(Uq_!ey4z$Uh z%aK8vpgYliloqRpBlxV%@2JCIf61|I>h_#W>evbzvdVsg{2eB@dcUv>moN#!-QA@{ zrDg#mPi4uUHokBpTPGE@@p#mk;+xb!8gmqugnA8&2IiVAr^+%oQe?@V8CKjLvEkb} z`0uK$9wl`RzXjd-4e5KxD6Ut~sy=0#=GB07g^;4DQZ>H%PU!X-`RD!TWUTj2>Y?jT z>7jac8`}@gx)s#pawX(1UUS{pZWJvWGHd!1`QJu#g_Av?C&iq>zxerwAYti--W|*K zA14a&+qm0YP5DPpFy=dexq!ck*MYogq(9i`=X(V^s+sZZHs65^;lF<eC`&aL@WJYK zEA83F7?2)k3iD60d-@u|4Y}OZ2!a_wUeDZN=}&*etLD!O;%MO%&U6(!K59l6^*da) zATyzW^umL;Y=7tB*4C@g6sCS4cUvOdm+XPwttd#;rpLO~d>1;Q?fxf-iJg-0-@IUh z+0mGEuM=TndOy*(Lq>h$t$}v%U%l$5h?jMrXaqF~_3GuoSR>&czq8YRROlh;2|Xd( z$tO^}QZVyQHScVZ&^4#S=iNTO`>ng@OcumXKLRU~zX^XS$rB@NR#yU2i%-x$I8pn^ z+RMTDKQ*`PwO?7SHp)&o*JVp&{z20{TTv|<Zz*nxHe>zdD914FxwE}dCdl>&>f<44 zit>(vn~g~(C)KSip-1ZYF`m<^PrSDm(@+83POigk4OiVh@XK?NM4=-ycjn`H<^sK* z`)xeCwKE6qB>PKaS3D9mwBUY@nQ#M~h?g1OxTw7NOlix{W?TXZv}Ysmv^A~BA>daS z9{fA!r+XCTQXiNxvkdOI-nso}%4SN}Z~vxS)<~es0LwwxY2|h+o>NpKmgUJD99}SY zzr|l>AiNmluDKLT_)>)X=LUGR=(;yDbojf(7~tDZ&c=Q*erl?V!_g7l@~`f?**v>) z+2BdQt6F6zv`xz&S0?j>5He^93ee1Vq4NcXtd1M)7tuC>`n4h&EuZ$Gh+nU`xVk)P z)YRhn`I>tUf@6VzPIj!w@_7F6r4({pwm>DDCd?-OqbF?buN^E2gdeM$=9C$hjM+&{ zA&vnCEua$by@~e7a=u+7E1ulYP?=VF$pNK#+8^LVF4Tv|YeIDCWH%|#_6HNZrxAZ5 zQmq^6ui+5AIqL+s=CXhzh||(`UA<hW8A#UR#QOG^rhqm#OZivr7VDbPwYE|=ntb)9 z<6#)IT}vl8rRc^Xgr0iGEt7l{MWtZO*-C}e<yxJyGx2I<YGPpbYkc;V-k0CleZpEs z!kZ@sw#-tMC@WllcCR#5rv8_6^Jws&R46z#$n8P8RzDieq{JF{EY!QeRQi`Yy$^yV zb<g=a9=kVqa&Cvacg1&n?(+lKX5-)yl0~l*^4=j_&_3qi>E&<}Ti+3@|50x=Dm+!@ zaP99VV`bs?BS?eou8DhVcga@98AUP_&+bgQB=nd7|G*tMIl>wx|CaVAD*S_t^vE*_ zF7s0YZ+sJ4IcFr$WNT~x#^IC_41T-v-(&bE$MqAdE46B_p~j$MGwP>&!lB|bPeE^F z=|}%Enqp9uqeKON=^?-0%o8LN*ES_~*_LqddO-H(ry<y@aOFibYCF<{%4wP^s!7;* zw?2{qhyIo+WXg~-HX7I~BqTkgqsvY6hl!1(r2tm2iPR8kFYM$@g-X|a%8H7J+We)w zH${6n)}-v(ZS68NDLKvc$7zL_aW{1yxB?j+59b-e3)g1wnXi!j65WfyliZ5$Y{B15 z96jX_Bx@d`@d0QKdLy6<59Y1`nq{uFK=oaeQxvMX2`9jDJhHXKBb@)c{8zq=sNKq@ z>#s1ek>LMfz-+|t8L3CTeuE`hq1s#Ni4n`s=lu?|G{$Fm28NImLq<LTCIs8`Dg!JX zb5k+n%~$&ivNRE!AdmQz8BvT(kk#1bd*@8mFS{x(T(^@nXE-Q26J>aM4YcQ$>X=-e z>_g*&`6X{%Jc%`poaqtqz40RlB~J0ss`#drn_!Ei!&R}90hfe@9K%i=BedVJdMGoa zW<9&kCxdA4PCV8hq0%ml$dcu#_4Ca#TCWscFfv@^Ik$IsTm}uG2`Mnq<793kcA!C; z(bvg2St^lZalaJhb;2RvoPWXHz4pwiUFz&U;grFo*~G*El~kbg5{Qq>Upie++$H!s z>RWvB;d#Dst4Si?`vwZ6+Nk|##V!c>WjonhaSeE(x1A^riC8~@Mm{v9TxF;vG&X~A zl`RR*NW>g%H61NiQ_gA;o(dVKeVAaji}PJ@nmsYIQ(lAhy<!pN+m!_L@PhV&5v%S+ zODh99d$jka<Av_?CYU$w?Q2<RaxA|HQ7q=W?W#xN6}Ky<g1>JH{(zv1&%*-zhC<l+ z?)_@3H!(e8(Tp)JGpAOi$Ncn`K-B)dhw2r63#m|+RI7&A#-)4oCG)jn!>^GrY9L8} z*?Eyk$gSEoT&j#xDrX2ow)0kQ6Z`ED#8|->0$+Xg_Bi@WA+twlz*sqDVDWdnqn7<w zS#1TrB{do*Wb?ydxWn8?t3<ien7hvN;Y$qkIM+4#pk`_#uDo@~llo3IxOZ6DlKcq= z=m@hX^iX@@!+agOM1>OipPNDfgmb-k>AKx<d!F@k5`x12BU~&u?BLsWAl!M)b*@DK z<iW+fqHm2Vi16}D%Sk$K5-Rf!^PN16kW9Y!MlXoNLqT2d%E08-$Phkr>SU)ueTMAz zgxO7sU5n!07+S-q0KMlmfDVgMvt6@qi&b!R`SCUOw#O&yt1uzYTbeI2xak$$MfhgY zLWm4AmK)fn9Rbp-lIL4)FZyX$W6(6PADTkGrQaX$e9P4*F{_ug($u&U{Af@b^Kap- zqjytuJ}cF$f5^X>IvBwN&U~jLahFl+eZ6ilniNq=i`gPzc?a4aKb&;eD%5@`vq>bu zYm~nDnJLg(IwiV46VnFR3oECV{DrKTj{#1IiNE5c?W;d2(5R*;rZ9ViysSVm{p6H? zL8bl1!TxsLnb}3jhm*z5Gcjq!?I+Y`?}+&~Mo%?-n|q%`Uy(Eetj+c*$n;l9-ioZ& zmj7t-QgAi)o8y=xe1|;ZoIj|M1w&>R6^pJw&n@?#i+0wPwj{4MqK8x$lZ0dr1FKRs zqF){LEU^&b&(b#A-d{6+yH!&kF-leW*vk49l`_VXI$EYw;l-34)gCm>$EN-&+mcd( z1OtjxR&BO>o1N2RX$uEfFg3Zb%31mi?H0<FsKl_|0%=;egBg~vgG<qx-@*~Z`^mv0 z3HaNnHHm=6r1F1QlbZVGZ3(FnalCl-jj@P#MW^B)t1Ch?iMov2!s$ybwQ=f^$lg3d z>NmsUw1Phzm=He^->*ccnmeJp6K=13A`BdNL;lAA*Vdn3iv1!?_&B(K9l7qWa)*G{ zR^eI!PLxW9#X<SAl1}fF#>6?rr6c$6H^7q1?@XTwC3kirJLh4ESmfBtB(C~!QL&{f zHh)A^h<v@Dvaoet@k;X7*LbPi*76dOF+EZ83$fX=(J;<M1Z8Nd3PTo;0|ES)H^0p; zKFBvrzP{CWgz`HkM{|*z#_fmNWG*>SmWP4}yxZIiU@2!|y_WUIGA^5cIXe~?-d-<{ ze-Ly-??jbeZJ$dIk!$eX;PHbb?mAjUo+#1pR7WbzUH=Cx8lZiZ4&|Pr<(`_HCViph zNgYn@4M%mg3OpY_^`h5IpNN{AIhBDbGI-nNlgeiYNd(#6hKhU69@TMd*O`WQST0tz z#*`tdGIe_AF1p!*#ceWYJTI+NzI2E>p}tq6o_VSKw*v*Ff<2HZ-N^W!eB1<&tpmTF zZ(UrGQg7li<THh+Q2qO^zIViL_uL%SpA;jv&+VgS371>n7{s2Cep9|bm973YwU*oA zs@f5lSDLi??~3we1C}%I1!Mn~ba%ta-7~E@&1~9s;tn;B*fEfumzWZQX;5`dbIr^N zFCB!rlUsXn2_8egIYko(=JM*~DllM;Q?&F~y2_Hjqks$1iPF4O{*mwd`V&a`#c37g zXxMEcdbo)Mp#8llE_RHea>;|zGP!$Ms>F*aI8RQZIL}9+Ew0JeXo2iLVLT&>84)zk zNt7KGO9^fLY*%w<z5w9UP_-hkqG#;?7>A;eD>m7^GypZ%E#=fL$v(#eZU(Rkdu?j3 zdJ&7JW5G5({}jA8zi!^dL&XB!u|=&fc_TDfr^{torchMvK23lRF2Ots8potEzB~HO zNx3Qi;@h%~>NCjarOrkq7WGhbIBo0Nuo~yKI*yy7=cPA4V8=BVg*IL%-1c=an<V?9 z9AAHJX>zb{^BfDS67c#ZDI7F~J`}Jv-{ZT@>8-Y0`Rfy$`(I`wpoyQPtLQcsiyH*V zvbHLzO@7xyC2)d2BRoW|PVmh7@RzsugpfYdQq)}6bZWf6gzGr+9NKv2^NSa~jM=8& zjD=qxr{;T())nRn_nemoc#UJyho@+GU!D)AWCqkqmBCy0HodlaNhC-wr@Kf`()<^K z)tG>JmV1uwEeQ!vn7bs7#xrqLs>!;{M=l)KX#vz<3u}R<f8A$&oHL++`m1jJ3GG)B zL@GvRw|)cru+cW3tN(GM89co%*p{vSvQ?e1e*P$JAdj~20LN4JdFD$74lc{%oKW|E zA0f94=Ad;9y@icJ^K7D~_9S+8sZtxux*M9d$09~|ey;=Zz5pA3MsddsbZO;ucQvt* zb4Hjo14FyW@$mOmeMfI`p^?G$NguQ6>e@JzmJ!BA|Kg8Cb&2YwlS;43n(n`-$<O3! z^r^9lkL@{G&&R==-KTvUwc$RZ5b=@K04d{nR6vk<OP+(rhjww@1#gFLIwo!55CQFc zss^tCuh0L_izEX|r6kQ8`T!a^*yec+i&~KScMOopx_gc{58%!q<jLY&(5&8)H_s*I z6eVBW(VWvh=X1J3)`sYv>g@vKL6O7raqYa!X>dx!7I?R?sadO`K!+(;-DK&85DJ+y zPte~K4uu$3J8SZIyZKb_v6qN18ckTUinR+jDFPQXrYUyZ-sBssHUW9l_QW70WM8|G zN>!Y`8Pg@0(77Oy14xcPU4QP>y4AeXx2%taf3E2`<u-7a4+c7B!Sb#1x`5LJ%G`P0 z?GC?bj_gGW6dgGRdC_F1NA!dJi>@}k3lhNxVUPDE7{E2|mc&P^fe!Wu=RpKdUZ@bk zY&6INnx#W>+mt|@DO28P_@`C(UHbrK)*#p#WWTf`9+a|9CTv%vDsN8<OhR6Cn(5mh zCTF0B;grw5mVS<r0!6Xiy$nfT{&{5ROD17pXz>w>Vxc-~a#sHWXwhNXln0=JP+0{Z zGbU~G<Xa@{L+B$-WI8q2Z;Fxv`0Cb<;sJr@pRN*s<|v&{;}>;pRYnBnWJU~FmE_Y9 zuybN(r{Y@M{76g0rj13LbFcB_3AAG)IeOJdq2L9Rwca~_BJmP(;B$LVU&`nN?HVxt zXXM!fze|YGo60Tx7-a9G&|7S=T~XwOdbpLBx!Y!rg1??`D*2KpQ@XE4LmGCxSflI# z|6NGc=$B*y<IBxe>{`I31rG19B^%$gVwpp8QOKGrU?ux{UlZcpJx1B*!kYe(WP;FU zSb`7sZfI=1+Q~8a)X>`K8Z+&s&74}#=~0>C-YDNRR3HO%COb*|2d*ZfVL?Xb0(2>R zYGlv$NUBG3O9sj&1*B;OAg=$H#AW$1JVI#~7@LL$zWX|oSAqDb!0*r2GzbdpAm%>X zdWoP>N7Tr&*Cg_RATjH>zB^zb<dwC~>{(A*^J~soHbFB6z$^v#=G4(ALTsGnGL9Rt zR8~6KMJsGeIvvt|d;O69q3azQHcdKhe>Uj9{P+5)ptrhIqP!u^fBBYrMo>}1;Zifk zFL3g}HYZhc`H50nH_ep&qE19nLIL9fIEKvzOlRNM#K;-kqEyPF<8nQ^*Y6oC;9VBd zI&~I2ii=~hB%9*%0@QFJlpQ2q#&Y$%sdCrSjlt4R&KU@@54K&GhO!sLlP^@ptH_wf z_DtS{0=vp72I7lOWTQd6N?3b^ci@T{yv<>`p;GUlHPbplntk#kNDRH)Rva+X@m+iH zh|^njr%?4@-GU?sea2|##hsr+NoY9lm{+`Y&Eqaeu=WvGp8h_PgztGDL8~Z_CcuiP z>_faw>K|&%FvN2#E}zJ#v+PKy$*7Y?X_lVFpP~`_l=D@8nvVrEI@OAdAHz)Dewnwl zlH(n<R}5^NiU~3o>Z+bq(z>JlhBm8&{+%Sa2j~t&z&CR|^21C_>*$9`jK12IBN<lJ zzwkQ;`I*KkT70OgrZB6>dRTeT7@4m%+QQD4QJWkI>J5vudtGOC0Nkvy&Hm5@UR?Tt zu1XL1DB7*cE4J!8PUPY92^&SiXoh)QFwf5M2W;3^m+=k>4QBfhl?j#e+7IE6@!v`g z2>mMPxPx`aGCNKVsm^BE&~sEEj>1Ds3NAdJxA$}%FU%vNGEUR->oz%&J+%F-=XP3( zrQ)E_Ui-}@<M=cR=iLG(?OZH=pOQ2qDjeiS-<mu5@f3WoJ8H|HctL36VOAw0IyGq@ ze~Yi~oaU^kCo}(^mdP6@->BMWEy}ro<!$?ozSh#cf!a0ig2hy3EZPG&u)v6T@>Yjw zod+X%ik{r`X`m$=&B!)M-SJIT(b@<EkMka5uW$LVdZrRA_m)ge3XrQ#VCkzB4Wv1z zI+9bC3T=BxG=I#Y!hDJ`7@8hy1G&>;FQy!&hR_||FZM1wi4V;k5-0zXkB2*uyQu=r zT7(~;B()Ymzv<#RI)3pVJ4J0PJT>+FNaZbUy;S*NLFIFICVY?TdYJ+GIbV13nSm`C zb|!l-@z^A{kBHA?l2T~*kz#CmYL__ZTln>WmW26PCEXO~0||&#r-H;a_o!n7qH&;E zJ<HyYXvK|o?urV=7h6MZmaTy$u1y@C{t6geIIx9f^;^%Tr1bzNd*=T-**^<6!aYNu z=ZTWaIo?bro(~@k8$7nSNZyhVnjvgH;lQgYGGv19<>Tic3i$+(XaXpwFr|w^AO}?7 zcuAfpLE!7kGEV;uBLxKOs7wVhI|{l|5Bl7_3FSw74qKapJV-9Z!CmN|rm)RLN5H}? zqCE{F7dC$@Xi(6f$P;QD-zulkJ~Y`O+Y`#)oyx+MbxSlrR|iP;t6WQdLTOXL=X_)j z&+}iw;+StEa=X|%4u(Jd4M|pUi!mbf%bHn&A>_HK$Is&oLkBU=Ufvlp<{WVYGUU>1 zWsA#k8iecgP5PrGYSWO7v@8Y^!uF>&%2(qPZmg2@2Y*Zf+<mIbI8BgJz)20&{^4e| z()${a<{w!6;*IYq!`tV4vtRb?Ey_Rn;9*VC=Iuu=vCyR1FOJRfIIWR6%j+k!US*e4 z*>6T&cs@fIxu}`m?Ofb)&UX2Ui5v5OB%-ByPj;4eJO+Qwb%^75xc7B4JZF;h(k9E8 zkQ6cV2aP?ifxRpv#`K#CU#j@|CzYu_kVydQyd7+h8mN3u7@5aIC=H(y(n;)oln+cY zZoNtN3>2ONAxi<dBK%wi<IHy{$k)wSe`&rKMoq15SLRHo{#xwb@7erCr4U-pf{hU6 zQ;<=!gfNQ_U%+M*n8^6`g=fL{{=k#9H%~z~Mb_>Rqm&27LfuNYOH!!0izgs7((CTd zA=K)SF?ywWI_|Ii`0%rD@`Jp5(dp5RAk-%9wXoz?1!}D?zB`mf8M)Rw-6qRhWJvsi z36GIi>}U$xhZn$Y9e2}AT+^H`Nf_DT6xG#OdbxAmN-;w9JzKTr<)|I8=r-nY7p+J* z5lriDnGHQ*Qr;%2Ql;QV-xLpJDi&*wchv7JnYtY$9;h6fm^6*RMhQsT$3=-44vyM> z%(rBcADW<~eF+^LWdjW?0_R4uE`N`@@r%6V%<fKY?`>(uCZG_oArW0>{@qTDrq9zi zIi~dyT}PHV?i_m0Mc^{fC44p+v$Z!2M}O_t(P|Dv%n&q({Q5r6$i7XTtT(_;Z{i$w zs(QNsvHEREr29&b0*i=FLKiu)yd^sd&;c(L6C8!282l!#>PhA(3QqQG>|(F@Y=~E3 z4PDAWbs|@rS=H~k$$@LSt(h6ChQj^c+cHT7*z`w(k$AJd5z|hg-AtKUYsLfgQap&* zCp08*nsjlf(535xjbrA#>p!^SmceP2j-tvA>rSqL<iXd2AY9Fq(vJc6nN#sBc*1I9 zd0+P6&8@dkG&x*n?@{Xho%>6wk({Q;bMqa)d&dXK&U{XezAcFwgJXET6l6`Xdw-F; z&H^Nuln|a|vRm4OPnJq5q)4BT5KJ7ZdsVIvoBSL~vcQ((-zORdRt=4B8G4qeb#xcx zlFDT*QH4BL13_JGbHsM|6JJTFPj0w9M|G;ejC(@6_q{M6Rh8`fDgs~ulQOlo-=8V` zOGWbo0RpVa6xCu%sg`i2U|2G2CslimsO`$Y1N6mW55NM7wtj3)oMMuK=IN#1;fk(7 z-JO41C6kKURTq_xRkR_n*l;h)jlJ!by5`%Q^OU`c+pFOC$t(GB%;gGG>ia`xXj12q zL&3Vo6EjY0VacRB^UoEpy$ybJe$G+=0^jU#RJz1Ita)5Gg&V{h!L|8KH9A%9e57^5 zBOXX4#{6xy7nV-~X|r7VYfeOc={}F~?n$?1M{I;XRA1^jlY-V}hw}0%K(6j*^lHwz zHt*G^xp5?nznl{d60P!UH+U{euZ*hRyhyZoit07{!V!(xVYc7*Q0fp)xED{G9iV81 z?sxN*Un9SCdHf=q&Ewx6%fmH#3SXY|h!-0>eZ|ExKe(sv^A?p0u4;ta@h^$IIf&^d z^2`p6&REr}Th}Fm+b_p~-iO;a-zN3luL}+@F@EhWj=Ul*)LT-gy00+)$phtqO)H~I zz52-CidqXgo|8!H5q!z}SPa{&Ss_&oeq233Ovbi#e6}AL$5I9RS$9egK?yfu1?%`B zyTOowAuAzis?tdro{y2u20O4B+wPKP;?)V!ayw69c9hbyk7XI|kG;146t}+8L4=!+ zle0Ly<*j)xt`jhSRAoZ?<Xze;{)07cxwg`1U&Sj3zwg07i_y+-Cjjcmy%>(OMj~5m zqAG5);dS#QIG3I^_q>pja^}_6^o>vX1<U@_a&{5;h1R<1UDA8RjK0<j<1ukOOO*$9 zy+|phvjNVUOJsMZpa^c`TP?$IuM0vh!bH(zwWSU(>pivW>KKO0R@B{mRhzW+AVlvY z2(j5E>0IY3w&F6bJs>2_QX;Tu)8HW)%-~;ah2gIMQATF2-i7;1pNxNdPG-*({r641 zG3OUq)9L%`b8wt^p1RVj{vWaM#ybkHsumi+DZV}tqo|YrJJ_lfg(v7;z09tlinFPE zEB3;8)@@C|)bn@Fx{4so>M4^w17(H|{5`fN1-{)*Sy3K8$~gZ9(zD%IBsXnt3jx#n z-w`(85#D<nFuV?a-%aQ_gh<3meLfDd$GsdqyVE^_5pN3(I}wsl9Qp2{w}`hK=a%Dj z+GJ7{-MJ-ws{oZmVf9oQ^-6}jg&h1ig9`TTm$Aja?POjskUnycY~S;~l|4T1ntBC5 z>JcFNrhS^J@~3qJjAM6$INZAUqkx|t-fuZjeRSjeCPIA}3&z3O0BAB5lK5CwQtVrG zUw!vQ{}3>VmU&S{twj0>w8rZC*+th-#l>fu?fI3qpQHq7u@M8&F{J4yuG9@fS0`O+ zv~-WPQD~ComA;TcuqJSY6}6Z%p1!+{j$6HDukjl-L=}|HXzmfpj5!61;Z%>Vla6GG z*)QVBUeh1BJ-T-qTXg(<nm=V3Hp@)$lCpv_-8JGKfJETL2Biz0WZLfpe=IO&N!H!u zS3G4O68I#X$w;NuB8%e;a3fx9<N|KoR<%k>NXO#|!cgPrTqiEiu(<t^gsZae=F(}X z;1AbTG?bAsUur?PKU#YX5Kx(oWH+r@n%f%d`+6<?*~{P!)%e36)V`BITX&1$d&8P2 zf`qXxJP;%8e&$sG2_6+ND^RC+Md+tKGnD<3s590UtnBEy`w(dXy?rVwxK%DJtrRcq zGtyfKltl8*%B|1y(FtCF(qXx3ACkE#HD45!+{upRmGXX)@ZdV&Jha?=PZ!rIF5vdx z_tgldd=#@cf>2V%N8sv?^e>sW33eXsRFpnPkt#q9vQt{7RD)?Fmq*3HkUZS~sHbB< zR>eF^co!(Bs2v})4-jnJtqban2L8nj;jFPK*0z3~8saG}2Td&y((J|0T~Ca5p`n!r zXC~HBJ3wpBrep&iLpLo95)L!M-P*vXa9wxfz1N5_PrclE_t_2GjXU%57xf@B5wEKi zc|4+QU>HdrI|tji`Nt-Q)G|0^np(3v<@@;-q=8|AVqmVxQ}L@B;SMlUpxJRlQLdQq zZP<1*Pb&+znX@^cPHF9q3>g8fVFZYLsEW+#iGtlHhr=5^1B(P{;h`9B52c?Uu>#w- zuX#Uu8$j4N6062W0@|jfZ_>lTo(|I7oyC=$+i(qiD%W)nl99LHZtZ%q-Ox=@wK8oH zc?aVQL$+2h(|AheR-xh4+k5%(^mMPaPx-EmOIbaC##+)8*^W1WC8Lw-_NvgCQ>2>R z>n;E<7UvEH{}ltFd3fzX3H+2bKh8IN!O6pZZO{!^Y7mlnhNRLucNGi`gP*5o+Uscb zR|PV|OiVmKKB`nCix((fm=sMarj4}t)GjLuvPzmJ)1>G36M2O|_B!@(BmWh^M#pNF z9J!URA#3us&8@g5DYgAuDPGZM3}%_-u79qN^4lhti*5(H(7V(%DJ?WH!=u2KzBd*b zzFxCNg9QC!hFkF8%a{-mC?nlD^;o4D+*$W_NydcO0JpRe5zw*YGJq%x4VssCRa%DI z3<Utf-b}_lPOt*};*TcxnU=@6uTx>2fiMSfEo8}L@9Kn*DeheXSj+rp<u^stVwiBV z%)LFTr!T#8?2{r-f2*Q2pD2I(2bz^LW{fE0!|Q(G;mZfpmvknK-vCR$N$}&Bb*Fav zr}eZ1N=wwfv&#y!D{hqcL?9nceX$J#d_P+?%#UjEodr`7L7s2$_?i#;mGf0r5M^b& zD_rL2kEz@4kGF@V9tZ!E44Gyh76SH{x}I)m0#BX}03sqP6PuAfNh#Z<*+w#`&G78h zy^&O{*&2D86MD742)Dt7d%3X^MgJ6~hN<-m=$Q}b(c9eX9RNry6Cr#OHz07MBBnq5 zY5=ty!-QjMFrew9ME;2S$4Ay~_0L{{scG2<ds!X6rO!;SBzw%Y4-@C(L#1Hq!~+{@ z$KBNyOpol|Z~-h<Fu;KeW=&sl<JsPAk>*HV*<0zgM96C{=%`HEPA~VuM1r_cGlxA| z4eEbYwM!aETFP?}KIrE&9)mS&CnS3OtOhjjBZXmN_CW6mBh}qC@0CACArh`QTjn21 zt_?>q0h1+|qwR}#Fmu=GqRg2mpf<tidyb?V4EH4A49zeTm8gI!0IeqAE$)Xw?sP^L zMt&_RYu_IT;nrRVA}KD1D%0%-w6)uno;eSg;Z-f?`LyL2St{MQ7jkea7bHeWJ~rvd zKn^0fd$B(TVH;@>O6ZnC$+EF`l_eEWtSv?QanpdWhMI&$TRRE2Tf?KTH(nxNP2p5? zQ+X$jVdep{VR<FTC2Fr`exk5XjUscnU6OD9i|r-8mXe6iB^knix%;nb(`fMKUU|FL z`HH;#OGfr@D!aE-hv9|bVXju4xnQoj*7=iNY=${>)Cqpn*yGY+l$?Xb)(ZaSE;UnD z1-)2bz;67T1a%V##<K7fH)e#<^h5V28<*1kgdl)Cr-@Z2c-(!fJmA9!)iwx?h7g~j zoq$<g0iE{P3il5xmXZL_OPiW&YU=HVUiaO6!`#laxbaRxVezKl{qamTbe6PVWoAQE z;)b^-K&<_&`6J}gmz^vXZ6^Q4*+s@;Sas9M2Pt$Xbl@C6U4ILPbkqDwiCQ+JuETT~ znHIUJ+CXsN<=MX{7V{s*AB<ek1uO3}@$Gn!1!mTRHEF`vA;B^MGhEq#Y;$B_-8Y1F zwBC!oRKQwVoJXzAXH7Bkrquh`f~=j0_${v1R;@Mn0VqSCy&$`7I~;P~7qAB{TC9JL z2*m8mhhN+>xPBa)UT^2{QsI!^dlNJ6=tibU?@7e#{n6G91>6^spiA_nHo;>j@9Kv} zpx%iXPgG)J#>SsRQ{jB+$Ls|e0WBC|M!KWlyoSA5$%s6fjwVRtCknA?P<kp4jQ^@; z_o`ei$89T3se+eeuhW-%HD`qZAlND%l%^?f_{zEPLw7&D#pn3<8X#pfy#tj53P?}D z?i&UmWpB5(l-2lFef9#{t-gZKtO4}rxjyS-*!=R8Uq0QG*{LLv3Yff^pJzz;h5<4D zG2fW2M9SQ`575ipM9*CN7OaW7h3iCGNz1Zcep4&e)Tmm=#(#3=%`ch5BMrm?Mmt{u zhc!85!BJgN>&0Ze>!g7jYao22DH`x&IBE8m)yqVYH6@Z0VdB+W?&@Zvl0LS%K^D!A z^-wyMmdDo)0SdYMzZ@BJeyT7gG*RYo6-fl@tA7ne5Vg7WX(he$rk&p_yNe|$M{LhN zf;eWtI1;cG*sWa1?B0v|+cKPNDAa4OK|QM*Z^Il{P;{;DE`Z}%L=yBU<MdzJfmN{k zQ*EPmN<(2`XYlcIUC~QY8Vlb@fl?oUpZL6ALc@Lq0kAOFb3tXV09pGLU$EkJ5^6fO znN|H>KO(U1lF8y-c4RaUS@95aPRY12Q<rL>AFrQG%Mn)lZh=MVs5Wwdr4R>xmlGS= z7k1x=F{wDYr5vl#Zv~kx8ObAJ5yyl!GXv|6Pth<o<u{0fPlH3@n*Hn!-S&?^r={}b zW-fY?pH@E|*tSbd@(P%KI%!kzr0Ad6OYL;8b7>&->dx~SgbuB|qSoc-*u+}7+?`1J z<#BNWpkL)=p($>x?uNt&pE3jO;E=sNvjF}8ATqkykeZ2Z^$BRzp_$jsnP-Ip<l8{< znpbuZ`#x=Lowc?&k7mth1HlsU0pNT`aiqio$%q#Ier_B_`{<|Z&tV8DN5!_52MecF z(K)(zG@rqE&)c<Q?};9h=h3@z46Mm_Qj#crAJlgI9$<IF1rYuagP=50lU^?t|BD82 zzf*CO5`dC`_Z<=$vS<{6ZoX3ya(>l*lzzZ-GC&-=H!9250AdUVkRl(R`?O<lAvA+K z9q|$VnJlWda`LzvRn&*})z?)s{tC-{YLuU-uwM7_NYl&i3^}ND{#<wGpRXl8eNlgX z8Zw9Sj!0k4g&?2(ej1a);aR6-eTmYTd9(k0FL=xr1V&ggiBH7@&Ok|*TriZH!Lztq zh540*vKZ7o+Naj88sMg+fD|wO$Cf9<8fjRurYLBwtTLU=H%V`06BW$QEq2aIs@-nw zG>1q1^m^BKai86W{rqF;3+DaDeU~<lrEZb^q@cCZDal=y+u>|LUaYD?rf>g8wJ-Zo zQZT5s9S+w7HsN|4#%Ia$8K>y`a<%BUG?Z7>7!o5D54dg4#^)ZW67&se|5@u(yy|qV z_L{AQIuGm<rt()2SDgW!bLO_pA?UV!ekyANJU?F=zr?ZkthVf|XP$Te@|e~5HRjZ= ze|V3Uc)(c21mf2YBiRXt|GA{GE3)@cumDiLhH700gS<{8I7nZBRCTyHZ@e==|5-a+ z$#}sBB98L_Q2IlGYFuuqzR~mFA&Ht19(F0oOuJH}bd{OHVr<yxD;PjW^O^9}3#Gd| zIG@*Kq;F0uKW2tRm?J~Tx=5vGh7Y8DF7$RyJ=st(PD#i+`7z(we_v&3FD~VuC;94n zk!kMmfAXaOia;^4(SClwaJg-5NbsaO^CxgigV+)^Co6wh*RiiN`(^g}IoJ|_?a9ce zvPm#28@jg$n!#<Vu<%>JHY^)IfO4oEfuT443F0$A>}g@czj6n-Uj_tV3T`L}!w0q! zi<#-Z)pjkdzAEmOJ0CA?Q;)#AFLQbH@hLjCo@3LFH!d^~B6t4I{A1xYhv4aMs|w%O z+~BtiAoJR~$_4r4YJW6h$~Ty5`!Jn7o7x46<k{I}f^b!LP{HjyVH}imGwY_@ByUHW zM<%s$+{M!wNH5VZgMaIP4)QC$fXe0n7G-os?bLjdJ}(r<(F#<U1RwbDAlUv`#In2l zRX5B0i+{0&m(Iee3=5ue>4ihq>f@Tc)#A{-2)xpPm=W@6Q+4NMg55cl56>ecVd@i@ zG-ka_vSoSv;fl$_l-=e9z|GH(vGGhPGCR-1T936fo*c%{ibGYjzD?2EpZu&<tv8Tv zbD-4J^%!aENrLsvu6J~IU%a)}-!RfNH`m%JL^?VzVNa%MR7z-Clcpd)*8e&VV6YsZ zwVbfQO><Jv$EEG~KFE<1yQCB4NKS^H6-vH;Q(8BAb=#fk746C@Y{7Na?A4Qhjv4!1 zqSeE3tc(6FcA?aVRrr0mPL2I}+0xfrwJ#MY?oo`U6n*+t&=h87yt^}&xAXfHeNJa3 z&N-n-0Fse;#9x~iWbKq=5J_Gmh953lt$cZ;?8L_)*6-)i$={5aczu8BsSPIuUWHwA z_Y~pVy&?Z6c`Pa2-@BcOPxEq56J(BBjh6=U%%cCAXJU0*-ga0Xz?TbxfF3`<*Wl2W zQuPh<(wss$f*bczkh`;9zlsg}D8;lD@7pZNMT^&LOws69RZbcE^iF|i<YJjV0xlzy z{Qr5F>&2)483kdFBH3qEkIzXD7{D3*e<ve=!IM{ROl=uWdA0eL1I#Rea*%riqy0Pk z2rt;e_7-I5{c>CYn3^INJ9=cBe|dbD4Hlwu-hl!a&SFv2uO;GgRI5i4m#kr~?0P zfQ|$bR)fEWlOY(8hyj%@29-Agn&K-m%I332W5o3Q<XgZb^@Pht?&CZ{A8oY#FPJ`U z!?^%~-qSQK^K;now&k>Y=b%^}c<nXSgbtJKXmJBI)-#e+-80~G|8<5pJ^N`PKiJ*5 zXa(7$@#Ey!66XXb%$vMqqQ`7MF(pbGTVl*vu!G~aUn>iZUP*`O3lv+<mdA@w?-{!f z@*MQi+%s|$!x>gGbrU;-)KfrLTDNNm^Jo<7Ak=ImY%9<?MvbCejdeAKt7H!hwSNk# zCUm<6c-g6+CIiM{fcH4U?1;^>>=4uE`Tj8`_Y9n`QF7PpY5C^!MfJA%fnD@kZ#Q$d z@v@V?&3|&!RlT*=HYJnfYeH?Oe2rXbCq7{bZBCnw2z|A`b-%+Y-%~0UC*N+{8$uw? zOW>HWaurK*Z4_5ywvj~j>0lGYHdTfCol2cpud8xd5y-DAV3#F_<EfP_^wNX*p1oZ( zdQCHcs)AwNg>vBRukBg#IlxR>z4G0i1fTc5?9Pj#g(a|KqLMl%#Qz>G>GS}{JGC0% zFGDY4>mc?p%?#AXx51ed6%=hL<1c_Qw)?EIG_S@y`~z;2Vbm?hcrd;QJ8pS+3^e0` z$NL`OZ$Z^Fhc2!z28f!Dl}?mw#9XpQ+H+Tt_fImwmDv0GbLq?u{?6a)ORbNDMnrV~ za20G8M$UC)qiEW@CG*9v{=asqY4)T;z66xs4stur!0kut_3VYCH)VvHYlXW#{+biW zWNa^<le5dp>Xt3-h{9!F!MGCD!pmXn5#o9`H}iPMF+l|Rlk!4(%>xP>vtU9;Voaa8 ze~bTHL})mH?=)dUPVwk+58(LgDUoqr4lQ|$r)pZ!!yCj|e{i3tnlETf))~HS<C7O| zj=9uw!JJ9*@_0KWAmlrDRgj#xZqNoM%6AlCQf|I#gVQtp&!*T$K`rSUUu=sj<N$-0 zBjbzA=gtwxZ)$E6?|%dR%+;xsEMPQ2JlgHp*mSIcwY*!3IV3n;O%!vKI3qm7?V;6^ z&IFn;^K)z(X7IGrz76vSdV=7_JW=vtb5j8U+HCqp@|vPi6r#BcCxda(>g1iT_r=RF z8v}G4j0c9CZOY{nZi8aAP{@ngRr2=j&o`?i`QAZjGm=QHjuTL`{jSCF2Cp>jXXi|{ zNA5#WoAH;+<&ak=IcMyVgMVe|{Q3P6?0;RK3x8p9w}wY7=Av%>8B^wheqgEqkgAt% zUgx`oNSva)HrIr_6B}z+9jR*)e9n@J=&U-;WbhY2U&84f^bZ;32tFdvXzY-wp38aE z4>+ZJpH=g>09M|p)p-MuKO;bMGbP&xgbp&?-Z3gsoX8PIcY)>}<}%ch>Ht^FuSl7@ z(t<wWcZqlk>Q0&xe=+91IXcwCMjDw6mnaM2zqwDJ|7EhdWw>@LQ}lQ~7_fHYkLj^y zGf+a`xB4-{ypZ1rzF0&+|29CI;zXu7{Z?yuXNBF<HG%fYdmu<iQDwA%igctmfVHc7 zsApttY+%JErMhfHf~r|xFM(^GV4$oQ<`!@+12%W1Zy1Br-rhZl*Lhm}AxD52;(yz$ zMl*G{DwK1Dw`}kKO6m4k?YEFlS`V1l0JFk3*rN_lQ%|Y23x9@p{%ybhAFkdrs;Tt- z{#KEqRLdB8KvYzeF1?5-pa_VK7KjK4NDVy@66q=>bVLwDL{K`?L86q<iy$2-3B4zw zBq1Ts!I}B~=J~(#1<REMC-=FpeeM0(fS{k<7<2@m6!*jQiJEjd#h5h?S9qN65rh+t zX1y7gI~xh+49$*W=cRbc$zuKBzs6Z^D2ZtcY9Ep5Ya!KDf6t$+B>~a)&aneOijF6~ zz<NA4Uh<P9FnB!!$lj#bmFb`9&V~tfw%zqYcE|khdbGDBM4DKMu<N%m&E7Dx?eq+t zGeAC}K<YCR3M#acFJy9ljE+at%&xLyHcMjFt({u|*D9|1-%z+wluCJt>sBzAnbCd| zuf5f#r&ycNKxJ0NlV)<kiKU&1*%*P__{%9%<|naAE9~!FgkZ5{2gbeXJ~bsb@-73p z-x#jEIIXhxreWQLHv59(nM7KhQ0;l9ZSmBoVMrr1W41jVdP7)5pkwZW_ykw~d*v}w zPEu~ub0i`#T)xiltCvuDZ_2g()y#Lm*XpsED*xZalU~$5r@-hNO_}HGu=aey?aJn8 zd<(ic0!M86`*Mn~_2p}wdiwzo<}Mh*Aqv&h>Q(WDDh#~~b>3Y$C3s4j{xfT%V;V4( zU_+24!;XSKRPv#X4gp7L*0aMH8ublET2aHP0Cs7TIws74_Ht}^vX!UXO{lv`cZWm) z=z>chPAxTVMOAyH`&^Lg#=|rs(YQ`-F}GMQ>SGmtx=n^(4dEKg(p}iHK4|B@axGCR z`}3kTGxtFP2ox$Q|E>8ZDjx%rX2I&DRcOMWV0hDd_?G30RNliTUUz~wPTH8$#HN%C z2_Dg5GRD2L%*FEC@(TS<!@vZT?mL{<1JJIDP13I&xDk9<Fvk(Yb(7Zu$q^{>)*>Ke zPiwMj<e_rZa}S=qCH;ja?&H->+;^(Ad5(`={vP`TLLNMFD~9#{EZ^yDn2C9H;-Ibk zMY04)R@x)rOp}&6ee4D7$8>B_hEVYIl60u`tn@5Eo*`|p+gS8o2GSYD=e=b7P7abi zH5D00US5d<m!BYnltd?=?KZPUdh(;C-|W6%?PARH4A-+PSsrmsvw8Hcz>g)CfvZu^ z-?A-?PO`sf!OM-|OfJbe&V90SluAM&doceT${YVagLnXT05vz2T67@!LsUagV79+g zMZ3;7jeB{N{V?dU-h#3fo{~;hPi9YwZmku0=k&W2$(9Yfdg9Ypilw<4Z6+dY?U+qK zkL=doYey=Y0ozBUDC-%izOXqZhSbwc6QCOK*L1Q(w@w&kG$({?shD*Gmym11OJlSS z2?KchnU^LPC{LM8G$}aPD-lkDMOne6-TDRjKx%HU+8^RxqysG`^6#AFg8IfhL*yJ9 zdp@u-(GrHQj`qCPAk%BC=SqsOqo{*A#CqhahnQirX-=6Elf^+s>?xk2Z1nq^H%f+T zL(86RA4yd3x{wuJST(9R)_ZI0_lO>PSqg3~C@?2gx@uqYEZIo?EG5owTZd>nTt4}Q zHAT|6fk63X^saOA&nbDJ%gsMT(O)jA0B-z!s#5TTS5Me`lm`hMM%82(n+^pDJaWT} z-UWI1+Bm&MC~~*WMMbBujGkNDi+<%JAhu@g1FC}rcDb!T$9M()C=~8qE49jI+=vxV zM45fE_Xzl;!mn$8k_K5?9(ltn=7&3F?>k(bSP5mzZ?J+5{n^a&UC98xo}^r0xw<Ye zN6-|aEld}>dgnL&BE15l<iOr8>-u3;hmWyB;rAw@*zcra*qaDXnwLxD552E;kAHNN zFT3sv#@>BUNM-X$v+Q+VtwvfccV?50x9@KKAEn-Qb@!DEhC>jheEBDeUwL}!CF#dV zS|$fvV3LcbdU5rTbfeQLj(N{K!S5+|H=Ei70CoZ81Y@MxZ+sIQfvxq4?d^?i%}?(p zdY6ovGX@qr@E;#|{$qjeMeZPC=Whv>Ia&>LKB2{Jzpr@TB(LJu45TP9$`8#zA@zVh z!*!)IE25Bl=s3LKe4~xoRwbgpo{aCuozk#290y@{-r4=_T3IeO99V&Bc5?l`Yw{J< zep<i`L1bR)aJF%U{XiI=A?SfjGD%X#eDhFRJLlLAhitg`c(q4@DgdZL`pCUAh=|0D z|K9QRQ$N_1{+-GIhOQ09K8e}d=W6P09e|#qq=`S)XhQ`MJTZH1z0o)7Cv1ghmTG2A z1t}L=A!Vy6P}C-?A|QY&ZFbUk_v%b`?z`W_+#fImg-*+A*Zumo<MdUgV|^+3p1+fu z13hGDX*D}CYd;j?KxeU;=9`dY3!?YGk#{TjN|V%_CZIEaTRvS)!%tszOZ^0_ywX~) zPYp!Sys}|;T+1t9eO5)){lVp>QejD;zq5?4r=L3k^2#-<96m9;*0V%iZvMImHCsar zkyphwNMGGaS^<cvD?*QV%tr;?eX}xOL|A%yuO9hbvH#>au2Csw<_2xtPm88U^zC_a z_ue*W<I3SFK#{jTtco?J!({$18)Q#j1=0~q%D`&z2lLDy+le)>3(~nHXl}tyJ1_=h zZ8!tAs<~TIZ@HpiSW9eJ6FQ0=#=)+J<26n!Cv$MNNhdI#=Ig+9Aa^o|cIP^5UfXVd z1`ak({0#&)Y&`)gn9bA61XcoA1Ap$1k<lxI!JQPl>6}I>Hla<q$!>jF-O4s&H^wU` zv5<!mf;vz3b+zE*B`z_Rd9Q#oMd<83<il^VYA$8YFWUJrO51k7R7apFEx$Qf7VI1E zzXMGgMj2{ezo7m#Dh^}p3vw;IXsDt%YS|G|UXrd`cvwsanWwg1wwlrU=!{TTbnn{_ zS6gzj!z$*qHN6_jM_R>ebgqnhKQ0wykY3wsc)pz^V;%iB0v1X_?p2m5r#AFl(3vk) z*56Tya_Z3sH~C3{Ivy0kN58g8t9Px9_8Y6bZMa~ce3|v*rYKm}z_+GTKCmOVYbFo~ z3;gpKl7m4LC2>g<O}6M`@Y`0peEbVJ<$5&7u2DO9=fe4g!CSlpecu|b2Exlayb!P_ zIxD$r5<H^>3IR}}6_sCEe6IUMf-bfM`MmC2KjG#QK7^s3h{j(?2X76W>|hhq^u66L z(Zv5{LwApv`{nMDoa(U(Gz0!<D&hP2)4z2$ehO`+v0n<zVN|s89vgN&SHSr3H7uK2 zv|lIq@RR-HXWK7kv2ytlB{DL??NRJE*2aG`&vcu{M9aO>S4Ka{_R?~g<YTo-s&~)E z-au^%RNaF{qpz%cloZy>7&1)2(~80;+&?ShD~cJq4WU`pB98;V;R>t|>`!vEVFneN z3uX|&Q@m&0QX3Wm8tefKcSgA}i-1cB^VHtAsenb*ap28M$aF}<aYr5RNc*|ACXGF+ z*<?{$;w5q9Ll>XfJxKm7okPCzT)^S1ph}VOyrOzU#}dw?fo=XY&c)%wlHl&Pbz8CU zV=)7GIDS@JUajtvI_jIX46yZbm#UCXKoBHZ#z>NO_M*+Zf{L0G;@`SCQ^itfI43SX z-Z>dY<^0gEj5rkVW`91hc=>@^NQ1rY_ec_uADz_~Y8O0^spJ6wX&2%jax4V>FF97@ z07gYy=tVlQ!97ixhB##%yRUb%dTPR5EP0z~ev;+kf?+OBdUMC52H5e3kxs1fL;ko} z9kU@G_a~&1i0=Kr(?1FeLdXLJ*kAxSvD85A+7ZK}&0B&W#JkbBF1uJ=!9^32S`<}* zQK>xS_c4LQT4tq2;mdqS&yQL*6BKx}Vy6sGgpZFK4hXH6><7D>D19y{`~$>jAh#$w z&reLC=Y><xYPO$`JpnV;n|x20wdxr0f9x5UP6C36G8y%+JB1@OnoK6%ZKy?{8yzi= zBb(%*$E^Um6Yvyz4@wP|4~#WeAkW(TMBawN)bpVwX2YQ^_Dt>2soVLkH8z<McKo1A z`NT3a^Mt}e=QH+Pjku(y3Rc{6?s#ax4x!%`*s~uXhH~WT++!okaSg?ox;z)xV2y-l z5PrFHfve+w0H+Erk!g`ieEdm81TQ~yOX$1lwHR#ANQq(+=~bo@Y4v1AU9+DREKBZq zO4WV@PnWh$x!DlcG(hEp_3u!huiB$|6whd??ObReT5@C<?^A`6=XN3AO&XRR)!MwA z_^;_EcQpZwiVUZ5<X_*eu3z*sehy$<zJ{$McOCuvLOw0oXgrJ2JocYw*z~%E5_mgL z*FbaEQ?m-l_;Mw7bXqB3Dq3Sj);N?|z~`@KoM@YNIM2%&ng|bNCCD|(o($EsdGWLI zrj7-I?@YD?CqXyq7y)OkC%sdD;%dg>Hl9T6G!F`3WYYG6Yty}>@L$~^%K~td<C-Kn zQdqsVPBYnV7LeqCj#n)s;bdUKWYZ-lU}TKy=V>R2hm;?(P#naV+ixFjciz5)R!A)F z{W{|37!sm8dlm`JWIk4b2Qs_=8><0M9?)HM1?rFp*te1E9vZQu{T58POAr<KOrtT? zJQeT%{Z?$38Td|d*Na>PWTn+Kd7C+q*4oRkt2H|Clde=LR!&iRn%cA{)_o!}w66^4 z3Pyl@j4Pqh+l{|+1IJb~e97E57<F4QzFpKtQbt;(A8!n-VOJi<s=XN}>rP4|Ip zKVk?RbF=JBrv0YwtWzqt5h5eb5Y&2R-Zl9P6I|PGabtW6`PS7lZCjJgHw;VvH^w`| z4n!;Cd%Z+c^*&J&2A{0PTf3GiV1Wtdicq|9GZ;%2L6esgteE$Qf@C&2p&HQopG;Oa zLRr=EUXn+l<WS0u&2p~(J=w<Xw5JtK%vvb|mhR=yU@Cw4UvBte-WS_nr5i2G>55MU ztH{QIQ2sAdqZgC-q{_i3*MoVAcOXDM9kF7u;3<+Kj=i3?U8PiOoVG3ST(JDq7Ru%j z<ea3LL_sF5?v3Qu6}4@}%Tc&fCT7b+eo3vQMGbo$+@K>EnxFR@)EL$yMPn5W?m1aa zZ50owp%!ZJ(Mzt}uP(h3HT%j0bM*uYF%dUA6T{m?lsBZzQA)VeEX!=u_Zy*a0AC+q zfBMfG+z%72;5YnCasMDEGms6YFD~)*`e6aRm?`He6Jg!AmqnuKWqj{<(!7^jsLW;A zo{O#$P1P!T2__9u4d<cjEm4t>b5;!;Fu2@Vk%m&&9J#J<C)D{vX;E8%{N-5N8~Cgt zFsm}dF3Qsuba0|tPc5%b?T=Fu8WhZ2zKq$Phc>!|KLWkNUr@}M5qE+(LLBwsrcdwY zL-uQ9qD~8EUb-7ool`N>f*!NIlp?dS`8^k*38+~f0MEcDIjh&`U!H*m04Ig=#NRG+ zcD2x6T*h@V6S|MBD`}cb6o8X%trO0zKzJ}WRVMjGxT_XKon9acuO8;^K&M2qO1*R8 zJONEFgYak&<2-?n>!0bpxCi*RoiGZh+D?YA%T4MNnkCzZ=sa*6C)>d2lZH>lX}hx* z@3@L6cXMYKgxZ-CPsV>`oBg5d6K_*HHYf73>gF-A?U5^%0{~YWl?)UgrT$|X{gcnk zHi|+{v-W^OZBuDcWr^?9JKmLQ_s2WU5EUwQ+somG8iY;pCR=mA#E=ZBLfKCJ%9bg- zFzUX0hQjaVK3~eBNwDtBN6#^-too>#x!Zy7*G4Zmr(we~zh(D+d%+fsw#P4^mmd)N z@j<01?d@W&JenR#m$12lx`#sga0GlJEPW`U|2)X4BX3XHJ;7&RvC#sZ;qv+*b6e`U zW)wbtKhdO`Fe8P0g*C`jkfaes10@81n6l#IxsKXh960$LaU3Ygi{Mag9zlT`EA?+M zZcm!Mlj$#RQ-WW*jvA6|MqdsGe|&{kV9B`(`!(Vm;t?Hz=(xf#WksIjOlnPe)mBq_ zE0aO-%&^R^%{cn^JY#pvv=r9?>@(%R2h?j+1_9hERGIK&i1EFysKc+{h$h8-=Q%B@ zZf5|)xAV5WxlZfnd&+0;4rx&#O6bDXeGzBe10=2BIr&vorwAprM!!2yn9q0j9=`^j zHG%mI`0xcRONUO!ryNRWv~K-#F&Kno+K}gwJ;!nzuFpT9i|l<-is%){ME}y)fF-s5 zHH9rHBWwbTRva;|OL=x$ck+y(g0^G3mH)|~sBCBP-i|_AT%~op+`QB8`wa^pi^Uwi zX=N!m7&(raQ2<Ww$@x5&mlS&|Vp=b4UMzKnm2?_YBN>w^0ntF(X^{eMkC#MqpLc8j zy5Jn3fr|Km>+ht^;Z4qH?*ApxbE=K$cXJLVo`P!&_2bbsTowQ7D>^!lJAvN3`dJ=f z(_mYc!ledmE*tzG4%<GiS4s(yWJ>X>algcCdD|g!yF)6hJa=EK&=~i9PT*v(6^|6^ zqfxqm>FzR^fHytsG!uU(zqnJ}5N;_S-Ah7j-^*NP!41~IZsHPsuWAVle$$XK9BVG_ zt<K3RMTsC?Ot_|p6_>6Ml0x_+;_fs>U}#CK+ocOhk1Z38g(PyRt-Yv<MrADVyu(^Q zw_aUX1@pCM6I9S<aEaeqa*9PpUV}E-xL4qFc^rl|XiX8MiD<G#7IRIEeGr736quHx z3J!d5a)=#!)XrA=f|`9TK$S(hYmrML)SYc!x?Cx}N{*f)M{7@wVkIY4-~jZis_Eh? zGU)r-*X+}k-N!f4ELwLmP<JD%lz0bXZcvEOyt}U9x`dp=+8I;DZxDv%RlEM#z2e3| ziUioO-JALvgT<GZ%EuQoKiV#4Y|}m`Yy4i})GRX4*Kx<nfl|LV_6zblJTo{Skh5@S z;2J>aK1O*V*xbuaOS0fKd+qX3cC3|CpsKq<WqdjSkJjHocr3CvJdt#R_5oJ&gxBAx zKKO%m$s+1!{nb^IwnAn)>hrY^)$=#XBqvnvn~SWpRJb++>t}H!5lUU$sL?{K=&E%B zv5b{hRpF5&30vq9QwGRI(X<CmdObz!rg)ZV3{;$0VhVi6WoTkACuZ$=P8p8__^+@N z%56{;=QJBY#=6LdH!8XVGMofNbz=C)_a*0gFV(<rX0==z3v-@d_sGp-Y}+c_4$l7q zrxr9B;Y&;!)APu47M6W+r+DZ1&+lSm(=-I=2Xvj1SymEM@N84IT8KZbr^#sHL6$yb z{nj)<{((BFM)vsxy16~n^gT90b)xsPHnJJv<%@*;#MA&YQK4MF)|9^66(SmrdjwJ& z>fgDu#ALl)0e-GV*(LBTEC)cyH?PtcK+k(ZJSuck$6jyc6Q+Gx#8w4wGd5SaUFlMq z|I3Da@`pu-d5R#t70zI9z5zdy^7g6GU)Xcbg_ifzQ-~NJ5LK!!d(#+v&A_*IfS{SB znSrXO%_$12b)tNiol3-|b!J)e_lLpSl}rwDd?7M`*VuFZ{(LX2LzEqBeREshm1f)W zX5`d&AU(Fa&Y#l1!*2aQFqLW(>bFDL!4#4?NldP~J4I5Tl2Zq;EMphLnubfxkS90j zlYgGg#Mcb*CvQ|29hjQ?p3KU8lC72fb;&jVh=z^`GX`?Ls2p~<|JN&6YiyoXRJ4LI z?Hj>2-=Z7QFBnUX>Q`TvA+537?DZU|e&|T#CBMQMU<v-#iqc_L$-Bkj_iN%WH^T&p znJC|~<oZ_$;U5oUYOHvP;_PCTIddjw*z!To#cm<vMPdET><Oh~KLyGa?&37p@t>An z83CIp(66<E>{3<9e+S<#`<{qvL$8OJr39k{0!fFCp{aG=b~l%B?OSg$P-&~q`uh7J zL>)c1Z-<ufDolk}t*$tHD-9<X*Ben1Q|*B$oPV-R%nTe0D2E1s;P2%wU3+3Jq)7qU zr@Q1-R07w>j`TxBpxHgb3w;*@C@Hc`Hs%x(dhRSCNo%N<<6*d0nf$WTqMfk*84Tk@ z0J#a^NoCc(^X9Ef_@}o5-dkr~+j7-)z13Fo8()w-A#U@cufFn>LP{$POi6kKpFRDJ zEMqc%Ryuu0ipfYN7jVfs`ZozYd)Hf3T2#B)w*i=Kh+*3a6$bU!sx*GtkG}v^RAb&& zdEaAr?&V+R`5I&ZpHVM8Z1)#KV}E7$qYWP8XQ{#m^6#q_S<|8p@V=+s(Y#6htX=?2 z6wQOWEn4fw9uN3^XG!U}U-|Us+c)1gVA(&r0gCY=ke;CUyc+WnRAPsZcDkyKFgZW` z@dJKjRQmDQB8L(0+udywe0+TrT`7h&y})(cGOs>ks`{m(aJQ%jj>Bk#IcpPyoJp^A zO8>~+_&>?{p8#AheWJIJad0`q1#fn{HBe;xwA#S59|bR4a(>B4^1>$`vq<tMX+|xH zGU7p%IRxlS-@ABO5#Eq&SP&Za<2tnsoz8vz<15n8kUucy%ET}fuAq+jU8;UO*pHzo zl33nAlpSVkFP?kA*WnWC9jT<2r`%g{4Bx>@BgS{eYBmLg0@j<u$T<-a{S14iLC+dn zR(OWeoQ1>}3__BHpyWLJhrS15;2`S_@7Dpm$?t#hkgZS(pkMrKtGd=~ZQ#UKa{=8S z4?{Y=_L4Q!vA!EI8z6x7KAX64F|qhs8^37gwZ^wHpGYQ*A)b^oLp+ZA0xn?I=VCog z{71wsb$j@c3%>IVj(xmlhPSjCsWaGk`0ZC3H7Y$7e<Jl1_!SeagXfH!RgzC)L5?S3 zfx8hWCVNiutQ#&VQ;ir<1m%psRy&s5iDCiPIX!B?0F}WSW#cFKH~&#%;g2)&4)GZm zF~LTm>Y51s`NW44Hjwo{>yCNUQm)k~yB2u?96-?jF}F7=2?oFi#i0`i0X=)hYCSUj zXpbmDNQ+@^QkaXs6;b*VU_BP5Y6-)l!KV1*oewZld#GmF!qQjCbNMDt&v_!M0u%ks zpakEarD&<MfJ+QV?e>E2)-6zXpGwqy-3cMwh|aXP3sCT(YVn^ecDs{cRIPG3;1yLv zLyd-u+gCV~C$rh*Y-sIBJSOHaS)$s#07Q9XfNkC`P`g1&*q|2GNT*bfeF@aUun(j3 zUt&xxE7f=I6P-JUs|BR+r$cjUN|>MbkXKinZi@3|{)ef7V@#TY055?>E}A}q{(W&f zjM?W;aQ#%aM)vn<&qFwATha&<6BjQJ?X)*mX!F4`A8)_h74vH!(GqREnC8lI8BJ6< z;)3=O+2c7ReJQJ5W!j=AGq4?^zWQnTM38a5Xb^fN<Fw{JeqbvAquBX|iB-1wg}ASa ze->wA_g~Z6e%JXYA*6})RxxKQLQ|!k9Nz^A0vdS^DjCHZ^Tg(Sp;x_M8z@9Lv-6hh zg4|^&@x0vB-{D^%_5C+;84p;63i5^CD8FAKez?{sc-<CKeeLY1p}2y{aR8n!%1{^` zO|I<9%!tu7t(7kGF%>s=y61E^<*#qf*X=d;3IDX7@V0KM;mvx9lp@NFh7d#9VRn^n zdyflO1G_al%w}d2B#M=6ty(gXLP21_>iXlNB5rYd-qHGf@xY8aT3<Io#?cSbJhh-P zu+^s9155;C?nBmUM*k4H0e+d*8^|He(Q7)iC9|2F^w$EPl|~d&QXC;(=aE<aau}-a zz{vusU-wqrh%U%+21#j&B3B;xaF#!tU)JnZct$?EA|jw|?rpKdcxh*DgRjX8<bM9` zs?mx^5j@x^pxVms25q=sT*s290nj=*9N5d;1~F9d5^E8`Ci{5+{t-Bf9Q}Y8y4mqS z2#8Mjy(fHcD#i@>Qd)K=uv)^Ewiv<0GZ?Qu6H=E+xfO#-NlCCe{$W>&#owzrXI6Ph zTt~NlE9dKkUk2$Y<^pZGcv2n_g4*Ps@A<WkJ+hR7Ezmg0f`r{O2f*q#;MQH5$>Zdg z+R<UK=LOY$W+A29c5(l|;N!$1bPuqIPbXw=Vig-;wRoY8YGZ$>`tO~}s&@@D0u3`F z`vri)9A><qT-6m0ZVHZzn@N$izbDOB$bysI)X|H?mg9)pb1?w(RLqg@^v{<ZYKVT` z(|jPDERENlgM&2&2wMzz?baRam&%0f*+Fg-@CQ<wgi|DovRU@H1g<^B56FRu3jsox zm(N=7Lx>kOl=B5zLfny_sAF@7_#C-nkb0BNBnfd7HO&yq5mM~=FHMLgTdvVVYb#$x ztewY!CGYgV3$|>A$kt<ZrD|Z$o4o0F;wS&v$qBcs?Lu+RR|YJgF~P*FYt~nsn&0%S znH7o_$~EG?*}i9|*B-0)J^;hHmI&67jvqv^IwaS_gngvp*<S}zab0FN*JCxJ`o|}{ zst~yAN*D^}sB*Y*1F<t-Sf4I<EG2vdOUz@nH0UWy5qevO4t(nMCwks;yW|geYEhGo z@hh{o20V}j@svpg&<NL*b+YTPW#m|L0Gz5l!>wF{DwVBwf|-=D6}K;)8V&KDm)0g( z>`$aEAxbL8z_7xKq2ZyvSg5K1_onmA;vMJ>QO8)$2cxtgsPd4xQ&GjR6tN!hp<4_h z60`VqDCM;sazWVYWhHmrf;zVt`k2Z+%O$PAFX(D4Hq|)rmlB`qKK10*+<n&@z^D?l zl+{pJOxTR*xQe{{K=<Q@05@$p4;^K&vsgi7zX7z(%(FuR*FW^79_cRv!m%p{Aw%G2 z`nTQacsSKu@H8t#9;<~U=sW9=&x1SVxv+Uk=X!YgSYvxOAcxmh?C{Ho|A-<|<hR9? zw|~|eTY*!%fdhYX<;93O32sR?)C>q|?Z5mWv)1^fK(yaK2O&~xvF~S)n07EM4rTz0 z>~#2g*4FD)!UfldRET4CzmzcVA^j+wJL~bUO}J8iN)MgS;5d%pBXO|9xCDh1WZw)M zMOj^P7*QLEro0BQ!}O`#=)aVv6@A+?8}1Bs&Din~^mS=$nI&-B7!V6`M4=UT+h=nN zz;rymaB`h*_EPGXjM+OXH78v^m(6%AE;2NRp$A=3MgQxPLahzE?)PfBd0FTeh|ZRV zlylj)osWG$lkPczl<x>!$_Xk<$*Ug<|0y+9?HWq!HxKw?&w6Bt!)`^xsWk$**tLPf z0U8EC^0Tq%k>%edaWQt6G(+~7vk1PX`rrg*(jdeDS?$**kg-MR4<o;q*OLUAV7j&T zOAGpSQZizs;In5vbg`RC_psVKwBSAzOEF`&MnFFNUt$%zl{>IxQ&2n?aNYHW2YT~O zakrU`O3##wXAKN6=@q9T>B9h^WFZW#F)76cCQPijm9>k4ehn8#t`g`jZO^_4vZqiZ zFCqXZD6O$Dg&pC#b#62Asy%nc0CR-*8LYl+V2(>+-4l*YkYaqb-yJtds|+WhDjC;~ ziT*gi?DxL96xr7z1Z!bbw|381J}u~leIHs)@uC{;ZB@Z!i_0xd&FMwpMT3-Y<bX=# zXSe2TYzPpI@w1|L7j{vFgG$IqKGScp2<#7%g8p{{`<rAiF;*GK{V)VUK<cF%6pFnO z5S5}qwm>;Gh^#V;uT3g&g=J}+oR5J4rkc|IadK-l43Ufv>m4a!gbADqI7|SrXmT4x zGL^uF{{Na+Hh+TYKL?EHzl>ZGx3m?o3#^6*wenm5u!lCUXmpUX<vKG?dI79|GkLc! zq`5HwhCT6xwS9KtQ==NG=;KIAb+)nAQfq5Bl=@Pp(5r}ey_VQ4!&|K{#^fKPly*K` z)Rse5)-_<<k@^yCswv|SSNcMX2&vJ+*FJrlvA;zLE(t++)+ySyn`7?w+0RSF-jaRk zn;4eohpdO_g?CfVs|omr!`m_ub2=hiai2?F`}fY@NRvj^XIxzk-qgo<0fw+&F#u(8 z|9>Z=K6`{LS6BU2=e3e&rkZUP(z2j7k=O@L%@>&pxeNL9RI0o$m?&%R*eqOsVaO?d zx;g*opNk-EDi?6h@ScA#8?w3tmb_CGf6ZDpNhn$|P=XUmx2UDH+ssAjaV`BO>;AT^ ziFLX1PV*ZVc^0(pf~bcOyea^8?o%&1ruX;z8ux$Lw^ZhttFExlv@QD`W#_M1y3-cG zYH7z2l-bscn2%<a<x}5?LlNUQPi2xCGLN|!{K$M49iKLINJ@BzeQ_vCKa7cbqGKc+ z33py2ZyF4aGQ@ufOeqzA-qA{P4BS+!<a`Mp?$iUXus`ITQsUZnnvq$%m?*`ll(m2k zb}GGZG`6vR$GmqwaGt^M%ef7Jw643{ock0hz9yq#8@A?%P?3nAG!;>cenq~=Z=zw7 zH?dr8u>N+p!}x;me(8p`xABG1X<b}?B)tIUxbYm4xbh)jIPZ6BSh1krt4pJYk%4=P zjCt>Y2bunOt$-|;qgt?iq`)4_Aav&b@<r$(oG3c?O74Of6fduVo~q_Gu}PrO<}hk? zb=aJ8`i=iSiH8LYHkVB>)am=~^&+zxfH<XOYTL^Mz#wZy5PRbb(MNOM5vF<K!Ogk# zIXPQFs{Ei9`$MO>vaNx_x40ovO*YIJ;fN;@;7&&T7(anj^#0;@@aAk@f8^o1L&<pm z3<8i`phX_Vx~5482qViBgtt}{o0SYFb@)PZw5C`%w^_=8b%3mk=Q;3lH@<OBz)n)x zNiOCW`h?qn{*ZHt>>{P&r_{-P95lUi{Et=e|2U+Gov#awTcReD^A{q8`nHnk)mH8U zfjNXKmeccRgz4Ak0aSX0Lb>Goel-*aDWGAqy6DBVk4yq9dYQ=DZkJC>fd60~@E`8s zzI)x!s=xDhflCSs4%l9_70c{;Rs>{qC)+GpN0vHm*$L=GwF}_(Cyud#QF;fE{iHO( zN3Q2wy9VSIpA&EOw7v1Ni&c-<103o|<ZsyzDw*EAn16=gpD3ONpiGW<y}0aMLXs{1 zB5#xJ!-hs0@Iu-)Va$psuFpQ8v`Z+e951{j0^WO<F)L+Q<6Ac_IC<U>7>Kt%Ej@Wx z0baiUK+`?ocG<TRzZPr|j+C4hRvO;VRbZT*pePw_Vv{&!&cE>{*U!e*=%dv{AT8H} z?g=3qX|%cuz?9z%kKJHh-rXs}-lmL2=>ovK(F{;aHi};pMgy`hdHck3Qh-hjYka9D z&vh?w^Pv&GZ}O3_%1_9H-k~G)V?Ht$oq$UsVNgh_aBBH6X^wh(^8*OjRnjMEYWRCo zUofDf4NGZ7X$_P#0A!5X4yyEwBUAsvZuWEPMjO1e_i9CiMYG3ej#sk;{u+B0H3a1; z0%SuD{gu~$)ip5z<g}$J24KqN{cz=(3qfkX1@lIj+7}^AHc98=W#c=QDAi=76p{{f z04LgDnXlmQ6Fc6wQMCNkI&Sj46ia#>$m3@iuGRapl_YmA8AiDDpx)<_wrUvAXm?!2 zN1!ym?{%jZ(Yoku%DmX{vm8IQ?nkn*f_iej2^hb4W=hv?<WEypN?h6Hy4vm4{<#&i zWz`{6LDTEMBn&~bubumyX1lXOt8oct4&PqP$|{5DTT&*-yn0x-*?mXCjTN1_tC>uL z*|NmQlqzDme!b5b)Y^41qZ<-M7i?4BqUN8I#v#`-h0K3u<H~FXTIQW(PtMF85w0K2 zouC2QwMVP{LrLl&^xOLPq#?O4Y5urJZjSAO@e%omdWpyB;&1kL!e@`PanqX&bbvwu zV$$9COXu7w)pl<rt~(i+C0DK0I23@VA2Is1Qio42v#z;W;)itzjcnyr$Q$?ePc#-r zcg)17Z4c{Z)z9S%i-kt!OD^Xi@4X|mNg0^Jhfn^3j&~{FG;-iRvX*6XD063+m2jQj zr?iNctf;19JXY!e%~)}sba&20K-@ad&@W40JP)$guTeIeZ;l+K#;4pJ0ImSAM#X-G zjPn3vVqj}tu@_V#9@enf@^tMngKA=dSsQm%t3HQVeo&m&ux(L19$K8X|3kBST_o@$ zwXmTLih;-M*YM6r^oDiJ#vE<w%-tW8iOF{degOp|QU{OA2zv$)@;Ca!_XGUAQt80E zEY}FoC7{aRb}EYBW$aBX82*9X?oBcFBhu{!>ikxk#S>}%eW=sY(%%IJCb_cneq4_I z2_jnvRRis!iGc(P-w_~;uOD)_8bn0T5$py3+Iei6scvnHnAPpUoZY&V6Zk>J$};bM z1e1TNgH^$sPbhlvf+kLJeZEd{pLd7$Ew%l7<;=`$MHD3niUPWPUneAk$yuCzY?SN5 zdf^?NQsCiF1=L_^lp~jNHTkMBj;@jw$!<q=i<cq?D>EA0y*tL1J`ey^uS&q^pn)p$ z6fyIMhSc(lCav(Q&~Gij58IdB=}9})AKL!etJaDiRi<UtX~FND@UA0i;RZ!N+mjN2 zWWC*Qp7~MCadLjW(0Y6SJ@;FNoF6zdkiWDLYzPu|A1MvE3FP_+a+-1mKuki7b?G@N z#Z{qo$%TF{rf}lN8|B7p#Vfir8pK1Ky8(wkTvm3|N11X6o&eHoK+c%}amC&0n(J!n zx&A)~oUOf2eafB7Zff~CYP+7XoBpYnk{<GOhh<xp+ky74GHtKE5+2Pl0eJYk)Dsbs z^oho3C|nXW-cewPW0#`qy=#-_yRg!~?vYYcVEF;y*#hzTdhW5iOCi^WYg>Ct8_YV( zxy?fKhp|JgLlf-L2LF503J7d7d2b_%U?r6}t>xUJRlcP?aug}2JU{?p_eJXQ;@*}B z3R?7@Y3VkMs=Y^OdoU#mYw-+HUB1-^)&JE?ePHIt&y*-Bh{yVQC+PlORP{LGYzXs< z8rA3tH&jvR4VaWa0H0I=6l}#adeBHWj_-Ceiby;Sj>qO~`DInJ&6<6H3G4|yYN(Bd zO%Qp(7lqtpf0@EsP(MN4^>sQf|1}UO*4x=!)mU>hQY9BGGAc^1({`taQS@P>-G<$7 z+{!%~2l(Yz@Ni`&w9Job&&9a=y|Jg}S&^^RP)jx6*)BrHT4HBjba031f)dj*wTx9z zEV<fo9M@U0ifAL~cM6`*d#a=!ZsapPns?tcJk}iseE$HiDR?t2WVVZpPMc9^a0w>2 z+hSERU=88|5LmV`l+V`s6*0~w)^|&r;%`+JW<+m4$wt~$kY_w=S7`%sOk6t*T4p9? zH*Cy1`9Ccjh{62%-e3!fE=P}bp6Go;qXcD<G+NulcMEf3Upn7#yxoMclb&M-e&O*B zk#C68`(!WLJeNFI6~3qv;ovt{QArjgHyB{XJnc#oA_|m3{JLyh)ndg+i4(CuZC^re zXD3iv5)@%{`x0%X&D)#e8nB%W_PV$VdUgfjA2$FkdaBx5On}5JI?9%<@i9MkQ%O@7 zRX?H6X8{LT6M~EI<ww6m2e0L&)W*Ac+_mrUEd-K-oraPh60;1fnoGEk%<SBuNnYOy z^07yMACc;KbsSAsqiWY5R1uUQT(@OduwT@T@z{-%CgcYib};}31&Dy`<9kN(P>iIh z;-RQl9^=LH!`#s(^s`s__vGs21Gb;Oue!I-o;2<$z-nDoz9p&&LYIoFdQBH)t&0cA zsRbNydBBpw5smL>H+Z5J3_ZF34kIVNDE`a*zS#tE{xx9j?#rxk=(3sg?8IDY<$Zzp zw%SJ~*B$O9<D@bUcK@*djJYks2f?GgIXAy1=S1TM4)!TVZX4gp$1kG7X*GSvWx|bh z^y>LIV@uU;P_%@@L)7?A(URhfWy0}u&q6olloHo4tbDvUzVHJ|0svg|1YAhe4bUT; zyND5AHyU_=zG|up5c$?GYG>5Hr-^)n^1YUW#$)=s7aH4R-H}WB=kjMiDl1WS;d47t z3ilK+IaLJQytsXTTuBohvk7{3@E>N_$#eg&J%f5Hfg$4(U82x8JUxvS6v1rOT>D-R zvKNYrNY{50;ydOc$}pz-Cra!O9pBdzjBn-tNewa@-758h(fczSDu-UEaXHh<95e4> zNH1Vq>Gre@#va1qos0ASj>Pf6b9bQtIkI)jCD5#1Ruq2JGw_wIx^f358uaUYV20tD zox83x{Yy^PcJVE$Q*cy-`+w|tP8gpi9jV{M3#t4I;L&p-FQc3VzRsGMFV&3C6M<5a z{*yR0ZTh{HLl2XwaW>SX^~6>Uz*er&8s^ECa&MKlFJtII(T-=`^^?NGPv~WcospF2 z6Tp_DuXUSLxzCkhJXKYRojRW=Z6f3eCcR0uPXRgy$jmc354py$$u|Lf&SGO9FI#|) zR2>fAA?_l`jp!$K7H59RR@0vjnmx>|sffB4L!AA&FdMvbgeOxT9;)?5ve~}3*6G(e zzH#C18vFHta^LJTTw~7#y9{LItWMsrnM=r?+T>Ieo;?*~->$l|w#Y4}iP;ae)A*Rt z&)&-3I3!i3Z5V}ymzjOyCI-%cgk{%xZT0|v_P-t6f44VgFleLI?_ct<0rk!G_FNA- zqS*5fF^Pr*A8D1~G(V4Pf1|gQY5P|k*#A@6*^8Fye4K+4!br!cbK6_GeOzF|aaCtT zoA$gcAeWX1Ko+gVdDCsC&)J|J0}=CLZ<m5L?y{h#%?YY3r8TJ&fS-gcI~@eklX5PK zWP(u=Qcl>Id&Xjj3Gax<6Ven+Mbs&{u@|vYSTzk=TX<)&_b>p8M<;ZQ{ZmE@1!PT= zP}{-qsj=y4mI4Wp?y>6^PAH$&T{m7~dd?}jg6BU1c(i$kLCCpw#UfEXpvkgy(wj|$ zs{r(Vuiz@z@sE`4X$>T&4DR1H_ZcWHl0w=O((_z$^i0=K0C(9OZGVI*0@~-{j%1un zE=eL+1L#r1%J0uQMwtMBz6+ySXgn)IJuTxxz?OpY(W2fBfTh(tbMTGu{-0=)4dp?8 zXPqD#wfzO>{|tYXTRoeZ9#jt72dHECYBY`ZGU~Ehq9vi_R#Hf=*W!aljSY;`!(4ph zWFAK4bMZL4%O}d=E$<})n?>3R(=?E=zAV%%1t8#J5Mixe@G?8HK<3ZN(Ys$mr0ZC? zf8%h`l0U<zopi;hp$j=rQ!@?bPOSl})^=za5rtU(+&ef3`ow?A=40Vf<4!)V+HXKv zZ$D4th+`+x>WC39C7`nGtfQV9{Qbr+OkjbEC~VCs`ov_wgbf!EzZj2UviAdw$)2he zzN=6lJ=p3=51evzir*TeXG3kZO`Fz@f#bC_5dB&WG+ixWIH~i&IJUe)@o{vBl1H=a z2`RAZGr{5QQ`vy=0{nk{kY6*^4FL2bLS*4ZoYs##o7t==Hi^S?2CvZP)HSC&MS6Iu z1<Q}v(GF!FfgA4U`9JfLrtxIQX8kbrdEaq}7Haec7#j_<QIavjWtlmM12T9D(s6&= zh&6g%{&GQa*Nj4oOWWoPKkIM}D*~CovV^<AiV{<kilWWigsYfTGhr3(wL^eB909-f z{si~s)nQFEiUv?bN1_YXKmeoZU#vVKdSL6dNmto!=Keta1>RjRh0&hBrp$xPCEA>v zj>mFZ6QqldT~AKoC824B+<3?p!*>=E<`&gMY%6+26}QwF5rHF+1)vm~PRs0P^H$;J zZCzKxL-#uYMRDFm_EtuhZbT)ueL^AkMC$j1sH=AO>dQn@Pipq$1DRw&betw%0fdl! z_q^wlt@SyuFl&4N-0hvjIiN~;Nvhj!gMFMjbLFYv_&-2rLKPCYn|<@|WU2|X<-Z21 zX^9iHsdAy|@P)Z}!n>+~G+^Jwx;gxrh!>GidYf!*vZM+P{Z{|RO5Ap3<>vTT&!p&P z3#e0_`^tL!<}jvlF6f|2_Pi#WRJ%$CGu#{{plzddw+1)3l%NR*a%sS&3c#v)GMoe~ z5)3^FxxHZ((9v(a3Bt~ItBEEovc)T4-qvF}DBcxKpsdeh^vyY@Xim^Ig`SXEld7Gs zlC0gBKtvDHc^tMG4C?ZE?eAOk{_5JX(27zGSyw7l4dl_}8#p{sDtTP10j9P!b<&1U zOmou3#*A-bNQsUHIfnSzI3UWk$ej(&JylKsh2hEn%mIID`;wrH?a_-S^$gh$p+Q=c z44!9to4Vv?l74m{Mbzd=nz1|N;k>B=N{2NhNc0ET&K-D(E~_B+$Mwc(UmU?KRJQFp z1f(FgDQ5f>e--fl+}Qsu{|zX7XDE+cmzhiun^AZ)`$~d?k1`)AAC4&@+y3~ZE0_rW zcvV!WO?zp!g%oe6Q==5FEZlqI40nbJvPk-lFyR<LHzkedXHrrDXWNXI?b<T-ww=pA z>5Jlk-?YjS_T&Ct{7+mhPPMs39HAAmPG8qmOFiltR)C+0w<)s_Ub5L|*UGTXr`f<K z`Ul%<r$xl3jdQsUlWQ`h3>9nJs_{a*B&U}rhM}4Us4ZO*=nUexOEW8KGi!mTbL&Lw zOqgZj8aq3H##{xW&zZkTF@V|d0A;eEd>7f}A{(k=%S5V^hqVC97mb1Tb|zm)G0@xh z6k#|Gk^-mn{H6P>?KCJc;x#z4N#P8Xzvki4nyaD#YOeUeOg%F6H42c?S^tizVd&$E z&Rbnqxo5r4;k7GYIG^(r3!=O}j&{@qI@PO^_|A7exq3p^RriSZQIN<U`O5CWm4A{t zG+Ie`YK=kkpHVQtOgz(mhzvZR5sBIM5yVih?h}L6fWo=zL1x166u$OygEwzdih-C_ z9hUwp8>|jEih&gRd)Do*4Y#m|y>I71s|k7ouGTiAe$(TFBNr7>m>c<4SOeY}e1Akg zP@Vt|1wJOQvmPY_g`{m<DA+}fK+yt}h_GaT$`t)~gpm65N`q^H-%<VqT9R4)zT|H; z9@o1gB8>$1_Ph9V>j(O2os&b;?b83J{1!z+lNQ7-E==xsyl}6+DQdyYE5PS>?@fO= znJ0te1@3i3zm8r+)C;zc(FDR}G_1+*kXjht^N<3+Fvl&Ix;2;Fr2)-AU=;Y(kdW0C z@eY>sq10Ta^DSoyd!r<!Eghb!Hp(V9(QQq#NSF7lboaF2l}g0y&$9x%Fgq;)rnzX3 zW>cfdL~(;^gGbiA%}#g=r1x2yMveebDA#VWi&>q5`+YNue_C*jq8e5#Nx9Xvr^}zk zR#<I{PC=&Mf(pfGFKH~Y0^BCNWb0W@!a0*d&}>HC6{z5IdK>q|&>5*s2NR6OP!XEe z<_M^82X)!UqxawuK!akC9Ji{2jX;93wTRQw6A}|z`s7eb`)SHaBZcOiY+aPB%vm!- zR~?MUppg>aY7Ne~mubfNNZI*xmn#KG4Vl_Mw3*I-`&d*la;T@L`!koMWzSrbYNa@G zq&!sn8x$VjXqusN>%HNU5sws?)aXv<o@F*w7$nI?f8D3@krVsA)cpi=A!cmUa}$^U zyCrMr(M3tkUud9EWg@P)qEgAG#f<~2G*{jb%%1miXtWg+1srckEeF9xb({Bs0VXiZ zL$8OQxqx)Ax9X8*G12w7Sm}K#=N9Q?wEf)G?F{5!Rxu$meH-MsdcS6N-=Man1&!TQ z(#FZ{UKpXkzT4iL?$6T}xx*{a$BI4M??VSO$g8w$RVrp7plICxHZOX=Q;43;PT9uP ze#w@3&980qp=g%1VOIYca4QY`C+sNrdI6BHdM;mdJpT6Qp-am&K34KYXUD{ACbjk1 zGFUXPFqtPrm|;2;f8YnK$6Y=J-bCx%+J2Q=_EFoLc`dQ3Ofq~$A<E>nLJpM0g&!cd za25GMy-bJ0e+s%tz6LkV=E8fr-GtHBc9(`fsaO>$XI{AqI0T_c9k{@!44DqUddT(z zqZwN-j*znE{3+nmNP=yzq#gzSWJQ8=@d9MLfsO^M2%n)(&C+zX!)%J?!%Dwi5~LS8 z^x6N5Z*LT+Lv`Mw^eM=p;cbdo>VlV@r^h8-J${W}f}gkp;5ur;fK4!JbEdcW?%bsm zjE6*V?RQgMN1^X6r*7--JT6dj<J}gI<?|5L7}eIFuDQRMnvt1tH+k^ETk`dy_RXY% zfut8c4%`AyoKt+t&-lW5ng@G^zIDXq((e*t!4+09@}Gd0^-PCQXCmvbY_)rqE!TuQ zDc*(G0~5j^Yej)TfbjfFZ7OG`My#$`3oK4HmNvdqpx<aBOi8kYckHIi6xD_<Uozw) z&wdUBL^e$27nF^5%(ACThgB>0cG?#8q=$slZGc-9JpgbjBknR)5<W;Lqxr?QFA8J) zzql<m(mIKc0ehw9-}XuXW@V(bWhn@lyydt8|L9w@DX3A;dBs>>495kxv)e17lS(Hu z<KliCz7%ME8k`Z;Awz!}%MElMD1NF^Ifl1(Xl^yV!NHLNrgyZDJ0l<Ese*T_l^F_M zAioUQT=IA7`ridA!$_C?TftDqmgAW+yY(1>OkB;p6yNoGwbG!VnyW?oF;E%+XC%c! zCuiAS>3_P;`#G1a0PP<<MF4F?19Ju;GPG6gnWPQW)NZZObjnptX!Qe_9_;>r_G5g< zi_cGgL|iv44&Fz-p3!dWq*FFA7Stw35&0^@xF|Kpmo*_xjNBD;3L<{!H-GR2gi)f5 zg4@JzSt4F+wj#R9mxi}Np>>V7hvUA6gDG*8f#<VKi?g<d5NndqF`%3T47x2~Not!Y zh7b<=f;t{3n6(>)UzXzQC=@IzTe5Y0dDl)r+nQ(LR5q0G*FkIc{(rih05&g>!KqT~ zi|AHI%BnA8VD;o|+oG+1+9OQ(qmX5p?>LDc^|jtoEij1Eqx4M1Lb}iA_Yt}!GJu&# zir6>cwRKz5c&*qF(J)R4q1Vd2%=rAR&Afe3!3V7|GmOMHx15@B`F$$9UlORKkjh+0 z4FC1Rvl@F{Xhe!e@JQ38cBVFmfYl;=k9n&eqdvX0_xR(t*`|8j>j7?Z=+~L8R6pKU zR<s}ezToU~)%j${Xf57t2(h2{g>r~4BT`YP5ljyHnvcY-2TY}+{>+=rc`#AMQ8DTn z$81=f6)GTRpJ%?c$%QuS2H|nePh(u7jidG&lZqICD=(vSur+&PF`#!YMRG#QmB1!O z!A!Hyd-xuph5r*lAeY(DNUI0lA|dLZRu#m~CP0CVW`CV3`z%pTnD@csLprS4QgfV_ z0+(vClpZSC9F`r@u_ga#L#Lp+pz0p2D(#(Q&qdL9aUCU35{EU?(A<>RUHYmuDA*dL zKZT34KdHKibz;$ACWb3^r4R&uYP^ZG?V1or&DSbf({<Jb*9pEN7Y!iDW;aQguBLQJ zO38^s#P_Sl;j@pp&lPFkM)oF2N>VNxsMm&yd*ZH`N#ZyBhaLTA#TJOW%--rN2SKU7 zYsLuCZt2?<Oqx#NGE-{nPt>!jmKugQ%SKd!xGSEW7XK!HwBMZj$yUS=XnOaGh<zNQ z@Px4=tx%v)+?m7QeAuOy@S^uEPOfEZ+j3o2(*}Aklk{T#2Ry<Bn>K~`$|34g3cv0) zkUi`CtCbp)HYtSHKV|X;3a7;iM#r+^1m=!cw*Qp}b!<tv_7S;NPE_%WTrl)41E+P4 zfPPWb-orE{AHNG!$pdF@7YHbLz&e>mdF_(H9ziIMwEVC+M}XVYJ!i-7`>{Xh?uCKa z%t*zW3NG(aDK3EiH40!%YQd~KI?kX<j*Ge8Lw*jYOjL7bl7^5vP#`OR0%db7>C~SP z>OM9LsT(FSRr`7joN6?fHeM^S2GAvXzUn{h#Rq?D@A=38$m4|@qwhMd3BTjJJuLNo z5Sdsccx*OKV`t9TX22Bhc;y~GXgT1QXLbK3e+2f`@6nOlm}E(|%-wn*1UWcvDu1C7 ztDUx8=Ld^s{<Sd?hlL%srk^IF7JRwl*b(&M-c)?yl<srd6F~|56WXkdA&x)0cdtGb zHJm4982tZA6qK$}a`p>8R1`BSx^a>NFDohAamn*e8We(Mb|+{f!Va?U#89G1gFE&n zmRT%VQv(U(0|7tj1GgrfTkRtNDxV}fglFBqCLd^KS6%PV=Lf>g^53X~13?7WQ+IvZ z?z!!U&34fGQ1~E>yKJk_LLh*AQv-Gf#H=_pA~9KlJN3Et9AAGkv*YaDbb0+V+51+z zW4#QQsCx@vxorMdWk&!?m$oYug9}9^2NxZkI>_unLo9kofa3pQ==f5*E`b2y7&?AV z6O=rM4KWw^7@{<D9cm$0Evf3At@vtbMRke-6v*bGdsO(-NHLk@SC0O_SDq=mSF^Mm zOYMkIYbZTQF&Ow&Lq0!=)_S9%S^c4ADVa|#nP6pk(iK>@aqn_$p+9WNp}y^h1(8iC zW|F=>uoVVX0&rLr_=1Db*nckLw)kXLk|cb=sHZt@<phq$jHy1h;9y1++>OfwpYKiL zYs;@*ex+D5mtyD^EL)#m<&@WY`+H?+k-1TTbxlRN#^XxQ;}10nohIPxHX&PsBhZ)N z82&UW-y;Pa`h8hpZV%|!BSFn&zU8sEQ4C}BTfFaqOAdmfBaY>`Y=4&FZw<aW7CEa2 zu@S!lwLWK=`Tmb_BZ>|*i}il)GL}4UB6ZU+wi?^9|7h&sb`JQM>&4%XuQ6evaMxc= zT9{uZv$sv5dTs{eJFC=ozr@Lr#jodago0f4wb~^C3<1joOp3IYxQJz&^w1w)Llrwo zS}J8AARnDE;2Z4{==J&UrFqkNyO!6aFu<`3PG5JAP<4)q&{S6^|KJ8n9iv$^jsVF$ zO}XD|uD+_%7+?*oPA}W=u@cie_MqYP6Rft5mJSFnW@EzNbfdPO4;(A=;(p!)4b;@u zDb&fHu~5@Ls2%t*9}41KzH0e)hn9r#_`UT}+)^>HJq4l|_!9*DYdKev!3{JENJP$` z9ag)B=4<%`l}(hH(mK>Aks1AlVpXq%;2X&v57+g(opY5Gy`M1y&yXlm5ko+>nUQOK z!pM4?0F#31`$|Sse~6Tz>qn-68C!#N=|%}bEn*}%Xa6$jRcna3l+I;NC>-l?SpY51 zyAqVEa=hv>o4thtbnf{su&oVOR_<|Xt30jXmJm1lz6RY3QScoIYL9^nqvmc9W$u3m z?mz0<@b`#bf?97O7hxBI=rDGzty}P%Gb_d2!9O1uo!2;f>LucscvWn{1=W6XLg~N@ zVp0xdE`SR~5LJHMyL=@IQc|G-(eE={N%TjrX=nLViXU;UJaUnB^EQxztQGuXl*F#C z`*s1nZLEn{7I+>>hFMv%I|wUCF3Ep17`2zYT>(YVFStz9{eN7Yi$Bx-|Nm2oa_)qj zlPF~&XEsqNNvbQ!VF}@y^I6%JLn!AQLk<a*^Z9I!oAbFjpSB^V*k;U(ec!sS&-eTJ z{r&;B-R!m3;qiPt?vEjD8e6BSiq$7O0rZxQ&{g@AVX`_e)U!Dcv2t=K!E*qN>LPny z?`GctXd$>D=dX_H`lP?aKpb^*b%G;HW)#rW#Gsi3^xJm87A-`iE7v(L+t8g1vcDg= zL5&3bYI}-HFeM0bvh0VxXJE<9P}~)>@jpXL#f$YX+Yy^(K;muqOggn~S&YlK!vpA& z+JOJMhs#B*<mTk6FI*W`f)6VhfZ)sexq$u?l@4AX20PZyNIx;%oLT~V)9C#S`Z9<C zcsLr?Y(OaoQ|Wu|EL(p+XIwaPr#BS$2+iKi&f;`RV<A;GzJ<jeC;pK0rOO?5#Y>Ej z_XKw3?^#}(C2O4sqK1dANDI3$#vygCw9fQ;*VnXR=Trp6*m;Tohdu|snE)dDqJ40= zZ(2_{`FX0Z!*5(OjNJNGc;T2~96P}xT<3t~u3JM<?{AmP2NQ!=u5)tDxMn@9GtO6b zOjUw^wvc$-38U5d{9uoPlwL`5YL7L`k&GAX;UdKl|Cw{&Qt8TbN)unJX<5kxw;QK< z5PklRlKY^07`K{vDza3mBHeS&_JQJPjnvJZ8lTuiy;P60jCR(p$Db2yaH}<$wSO5> ze(#e03R(F+E&bH&idlrJT8+OM>1b!S)MN3FRUX1sa+)&|%s|4bL|9)hR>}O?KCVbu zvk$XmCjD>;d)4c$qD@&j`ll_9+HUX7%Weg^CoN(;o4Kv@PWO3EJmg2ZMy{=*;?NHU z)z5W8>_OdEsQv(W{fOfaXxmQSt@YtT*YqC+14$zxtXIk9Hxg#~{9k{Idi_0}iq_tT zrF(U*9vx&XsX0wuGZ+SdQSB#Z^(K81wnBC94{L1rk{Ij9-PuOW0gwbp&@RlYrLqwX zLTv{ge49;1HC->*l86u9*w}9n$Yrb}Q{>qa`?%<xou_|3ZqP7RE7z^7Bm#N1mpg!| ztM(;`dH~!~mjRs#r3PP4L@aNK1JG|4h9Nbfs@?`@7_qpivD;~w*0?^|xE@X3ns-FA zfH(bz4+*(~K@5zJ>GW@}s+2}r9_lqM*qIs}Sj_{Vn$p$w6B#6E4wRM+RSo~dDWkCA zp1yY<LT`om@wv;b;cS;tBx!Q4xZdmZ&|h2;S8VQ?JwM?NR7UZ>o4$Ih1k)X5SiLpn zc+X-ynyEQLQ-jKX9$>`!=%kmnUoo8mghxv>6EIqw^?4zP+XLdQ5!LW7m7i^HE=uPt zw}a9;#cHbjIzJf(oW1<G7Z#V93Qaz^cFmAzedNK=Y_E2IVtP0Qc8fIP&ZdpH)JtBl z9ND{_p^a|g@@cvcfTGpAl{?2;E9kqi<eZ|<?^SiP@qV~Y$)E#jlrwf58_fACpQHCZ zy^{&090c`q1D^)Q=(3KN9_G+Y#2*q#n_+=;EGHd%8Ue$wzz68|V(EU5AS_bgzv>ME z%UdLRyB-gCNRusSLn)vN3fo>%y5kf8I8_9VYxk13C{nRP6MyMQ^|Si6bZmTzW_KO# zCxvR0^u(=xCQkaBD$1f>tDN=psWA+PyCqm&1FkZ*>4klW?K0<o%Ch^dz2X$&{FuNu zyCg3`Eho){G4M_<!e3K-MGvg`{QWxB8?94&!nA==`Tdkv!egf}OlpXrhAzdqKl%?4 zT~7wS)L5t&waspS&16l$k!iKi(?>9UA_{5dOnegQ*D|yjHVmRaghn<Uqm_e2FqyoU z2dVcx&tamFg1oCg{4xsHl7Y}3AnRA`Rd2E>dD+5?I6OqD<qefe=f9N<F<O>0hX&oi zP|mB5(~U0=F;=>Y7y@BKKaFY)CyssoR_L$-R1Pfm??CN-M^!)Z<#$b)yg$6|3}I{( zg|)=aohwSp@os=Qg>1v{z**Ys4l$9v915u!vh_I%X&IinZZ25MN6_Bvo%Q=QK9|yH ze?X8rMMpD@K*9JxDlDqR-7-%G5aD}JFtdA;pdgqD^nYo(O}V%0&3_d%b4}U(Hg>o< zC$!;%S>9mmqaY2yiQHgs<vKw{DP33r@^Z&G5e>gM+BYSDz=1&Ed{i#f<z;cxy3)k- zWHfZI0{Vten+GwxMFyb!ER>mG#`f&NB$GLN+=qza_$OBZDs34taWF*D-0y|*!=9%{ z?17ZOtk^Y+*E-Bf$CxStTn;tR`_c{c7+NS^PEhV*0QKPJ?svlmqNo9!PgH~?R%R4L zprq>n9&M)8nH$*s{4YR-1hSF<yg@+Q4r7j@9Rk`jue$w24IRBY;%lCZoNAQ{r0c1? z!}#9ON!SdJHe(u}1F`S^JQio(Fk$T*?B-C&N9rmuDYdS-RNrl$vkat}00>oHzB%9M z%Ho3h3hXc7DDh2D3*p0ZvLLasgy(;?o1W=8DaVQpHZpGgwFoT~1M-X(bIzZe1Q@^W zRlRD<jl>n4!-lWeT_5z6VQH_EDnF0dWHB7Z0RR6oP(7t!c&pF5FGRLmr0yEm9nhv# z(y@QA0D(VxM>O6B&itc<`-yF2Bu^!USbxyR_COJ&qswaq7OrvbM87+ob9ydujZYW# ztnK-A(bdZYLZP;@CBoi^+9}GL9th(l0_wLsqcMX6;O_1HQTKk1%dj#M84C$4rJ6Gz zVWs-7sIf4<C0ml(BO=hZ1{$u`KV{{+@(4bZYn^z_H075OXzW`R6;5|{rfA5RS^urQ z?>tSxol(okbXaG06da^Yj@?-aq-L+0A_hYApA<I67a^R?E(FpLW>D>gN_0SpWg@@G z>Kcl%GrR>*6?u&uszu>JU}esP-SI~<PWxPRot_6l-l)A-rY+BYL9DVhD7lS8-Z-Om zMd6mA3v9=;p!~F(;RgfN%^kC2;RtKNA?FO47QG9?Hs7@07|*k4*a1V5l@L5Gz9<z+ zQaVp5Y4G>WifWTk%2t9@h#1~{86L~xTs<}xPWMTqw`WciI7OJawMJo5D|w?EL6cu! zryU>t(P&YE)B1;ruE-6H2Uc?cM`lzS_;Bxjy(pjVyUG7isbSfG#hDX`kZh<B)Xjm* zEWO!da&l&SF7`5)(1Y?n3w`(x4~QA)>9*|Yr9zd?w;$e2M9f|VBWZ?=<*i;I&pIq( zG1rPaEK>o9yyt)(6`)?Q=fu_a)sF#U&D>wt`1SeEw>%AuQ-*x(Yj17W&BWglJ*eg* ze*sYFt)XEV5S_lJ7fGkoSkHL9&#YIQvP=fbu(;&cPgW4G;r|SXou68elYOV;e~F{j zt;QDhm0LflXBr6yS%zbr3j?Y8$^t55#a%4c4Q?7)KEJ6B^SDj#YG?BoZEU)TZ0RT^ z@tu<S3q}F}(2N40^PMdEvKoKicw7HECS<DS#-%+@=3mMn;Q<Wc$!j<BG4)P^oK9Ui zjw!lsCPfr!(`EWesLcgadp0Mp;bBvP3u}g>%<=3uCAyRO5+XaUK)=r|fxctmvmfls zHj)%!9qORoTXJ`l$V$9z5!)qHYZ(<iEHzuVi`jlx+WR*CR;B(DuZTpe^<|{o<%Sz3 z+M;RsgFkW9_`Nyc=alQ$1^k>2AxW%OE~gK3Y@XX}7B`^Wmkrl#-Nj5kv?v>Q`ZyhA zX<jxuD82?MO*pIjN|%@NC8G8VY&l?a-C3z<wu)<9bqcGt`c>9G;-~GDo_bmf?JKx& zqk1<=3!a3M1N@0U^`Bb?g-Fkgl{@7n`c$&-0J<~4Lj&Y%8P*8qVo<y`*Twa-IRX(8 zmD_^w%xQ}6e#quK*)$RK*25Z_p(>6m-n70}%nGm|_@RS;1Kk%iu9F-1ci6*V(>w<` z3^tH>d#i?6ELnV6d2(0>E>?gjOxN_eL<~jVNAYzfB28wJWGu{sezq(BWoYZ!C%bks zJoYBOtf)xfa3%*JgZ?F>vC*Gz0y{2JZ5l91eFp5IEcXooZct7U03$iPv?4ue^?)D{ z2<5Rjx%M~NO=17y{BD2xAv^SGUpQNEQ2$j;77?R4TWjl0E$Mc<<5y!%XM7Il<J~X5 zr2=byHK%BQ;?ou31-T14crL2Ajwm(gcwnnUupE47UX1J0@V`{v>cS+Ob)d{8K{mKf z;%!e1KjMT2veX8Vq1d+QJ5Z!YAH&e`^%oW{hL@_7mgM^0cs&#$6299?zQOTtDqf^p zho@T_E-H5KUWKVODRV^zQi_QagQLJyn;wRgo3hljHUOdu$pd~((&m0Nm;2iIDIVbk zo0PS1IvuYX2-!E~%eTU^q|jwK-jCXtbL(JF*CU9?s5d>ne?H-P*~oQY^s748%`o%Q z;cT@}Y=o29>CJ-kxu8I0_`O10AmM>3B;4&R0Cv*_mx@ohYt_~$BS`&s{KMaS-!)vM zKiYW=p#Wt*o7!^SRjvI1l1b%v7Wi*3Z6a@rE7jXX5$F~s-&woMrDpsYUaLC!PZ=<m zg9|C3Lt|WAm!JY^3)E4OkrC!b0iAeiB#C~jdezV(FrA<vtXQpVzvhJ4<KT6!?F5k` z1NHZ<FE;i@TWkYCHlWYv?(8?UQIq2-I%@As-No0j7TV^Jc%=h+$Fq5Sl=pk=Bz1FB z7u!cC;>wm}73l>fJQn2l-&Di6XE1DrhZmHe$G5W;2mC#Rhb#&a(dZ&nxydYV;`IBX z5*TL`p1Fo*_x=z|#QWV4J~OuM=l<>W{B=$d6wM`Oo2JGMjo56Vzgs*A)sIi)@n~IG zIf|;6z|;KmpS7-tkS^s%R0wQkZGRY+d?@@4f?vX>-}u)iHlV!ihsTnM?;i&%^mYe` zMitM70Hl3#wS(HJ#yA8(P<1`Cu@;aDrVUCmj$bp&qrGnb!1jlU#p|~VbgTIf{+7Q8 zp$0;f_X|*zs+<rAeO}<*K5qG>p-;<J766M2NzDy2haV6g9a_E4@Nx?I%g$U5aGL?x zM&YM4PAgqFcPp7rv{rs{VgdOb#VSaQ%dOvV8zIN@Hb2WX*qOFYqUP()CVP)nM=4Qt z99HW9g0EluO^rifl`fJHZ9P*yW+(fr_n1z-K_N$cF{1StJyh^#x)o{>WPV`nG$|OC zZq}9_9!}rYUpjAlrX7SbNa&Ttn~y#EnVH4lsQy{7O-2fc|JeCcCTy0Ml1TnmB$TAK zR_5h#<JD);4aJ`Js^-eHBPgoT_N{79tFJ?%Gd$gt><Y2J8{Wo@-qKv~RBnC1?cD29 zE!8(M=%3;POd20;zn^f&4pygo(}AkQLn5F^cxhPYqY!872auTWi{30wExkl*>CLdP zd-xECF`llVuKSIfq$qOf&4;i22&_SB;o??lhR(5fwoBMvhtSjMoxuI!M&<G~t5g9@ zGr({$wyhJb2SVw-qOI1cYtgX;{_5RcL#q%S;W@(-K$?e*D9syDIxX0IMuaztMv9#$ zJohyZ_TljwRbEc@y3$(teVz96S+RYp!4^eiJ=Te%^0K(=1j^3~{}_C{hO!h2h_ILX zg~g_ne|e8gTtFpieby+p36EEt*_#1SxZK?bHBZLMYLzqDD28%h3MR1Te)w1S%QfcA z!KQ*U=n!c`KbqZ1^*I%il5w@2-(@{htoZmZm9_isd8z{Guw{UW%F>YW<$%!kY$Oq$ zV_f&H_pzJy)3%duWQL3_xA5J)$g}FX;Qn_da1E~S`kvxSKMe$ZEfZM<<gF?IHrQb~ zCHML{X|E7qcp~!Y;P>o)9m~NXOL`bZPh_|q!aKn5?kd0TEp5n_HVe`C=**LP#{LFm zzc$uin|jQ1p6H0-!RaD4?~bq$p^h0YR~Fcr?<q517c?T^<OZZR&eq*jAClJfvvKFQ zp&|*og=*D;^dCjFuF`Od@vQPb1qB|Sr3xrLfRYuILh@plBKlb<A1%x;x>Ds><+Voa z+dr6p@rB7GCw4w}PXPL5Q7Ru;HaEK=ee1FY!tQDi9CRot;Z|RfpkCiY%Jm3n1Hqqg z0hHGD15QfxZvQac<~uUl8QXe9Z>CekXZ5Eg%dWnccBu?RgYP8Xz{|Zo(^1Niu=HW_ zY2(d)uK1#~l}Xe339;)I>-mU7HNrzcj#qadt>BDl?V7UAbRi28ZsDZWCY4)IUuEG0 zk?tTu32oCD+9Bk)FjQfvhABN%LCgwNQ`Ez2KS)Q4Fv~G>j*IJIs|ivXNe+k57i#zH z^O6Gk!_NtF`3JbdzjlA3Y1dinE^#OJiuYZ}X`oYBAOUE1!N*^n0py0xA=2jC{e@OJ zE|doaSm=D~Qoo;TyPq#FDEUz^bPsw|1aa1I;nUt4<h23g5}Ta>Fvf*~ci+Y5n$1P+ zXu%^{BHT}+HY<*kAME8-DUQh4%jDE7<{!8*T}ZAXy*+3RS<&AQ*o+AY<7p%{Rmy1; z*|Ja`LHuxe-sC)0Ae`}%@eFyZ8aFk6s8n&zyrKi)_;drVLq;0VYqpW{Pr<`J@B^Ku zVXM*_sbMJU+?gx0M4?&Nrj5r}fQ~ltTtH;CA5PydLweC52T=?w+BT5yT+Rm6E)Ni6 z8_7S`ZYntwy`6X5c_YT_!`P%{`13-J4?g#5e;(nI;Kb=Hh;S)^4}e*g!HYm(fuaMc z5?z>YQqCuIxQ*3+q>|oNvtQCVlNC7FQZNNn?i?rtC}r=wUqL1eR_7-nZ~a0FMl0=g zoaZOMy6g*7Qs1d}Ax|x4_qysWb}UG-bsr>D2KkAj>xViF`-NkOvt{o(pY`*44H#nE z-jD(DJ_DFD{^{a_?XIH%MF9xom>BQ%aGKmKD&R=bo%MJo?qE<-d8Fp7q|itAp!7O} znO4Q|ngO#sGn<H2J)3Xt6eid^1#PpC6SWV<<VSV^<|KA}j|$1=S+eBtk1Z6p<v2*6 zl%&xp$4xR*dheo=Z}exX%+lxjEeb)pN-dc9qSDIFxuo+*xpU3Gz7V(wcu<dL@x7T} zf7cTRKnL)ruzlq3>85{Vd-KoJNbaNKqV67NRdT{ag(i~b?*{9R*8-TwT}Z-})ZfQF z#mZWK@(LE?r8h8$H9?eqss{jJ-Ia)=d_!o`rV!tY1eV$G0b5L)_|}bG@t;af(DXlb zP&-qOfcPHeIj>83*T8)NgI*GW8|l2kA5$C*U8~k_mqU4`aV+S|B$9WHRSiEcYdQ`; zKt0H7pv~5gNVd=lWe1&<|29h?cA03Y{z8>7TKS*|Pj2XJUXfczWcA8MONrOIHsdD% zPuM{+7C~pOXzxe-wSK}%2hnDq)hPQEN4d2R9vTZ7BDenHvf9^0Aim0o-!&E?L*78A ze}?3TvUu{?3g_+NMIe}s3x`J5{}u+Cmvk(sExZp#p~!umTMjqdjtGQGzXz6;NK)fo z9qP?t*@(vUp$!8_YN3#?i=%>^H}9rz-5nMJr2ge)pfUXxAJ7DWctv}I+}JR1elt0l z1B_z&h5_4|w?Wh!ppW~pVdNiXFQ7U2ZR*)izMvL*r-;4Ccr<lZRaoznyQu`Av4>o< z5`TgYje+tL39m+;JUGDJ;wOFR)_e8r1{h4xUNi*Fxeoa3O%?(3ZB2KpcDhKAVzYoN zc+8F;iAc#;d}=LIBM0qeELN0fr)n;neNClCepIk0xyJYrqud`0s$4ZktOngMfd$^` zb0}5R$KD!4vTW9gnlS=5yRvp&%*<ASWBO~+^0I-vGi`%I&XyxHO8~k0zM}PYv!PCB zzGrsDJ9QT$*8;XFEK@Y{Bp_t<JDSgJr{cJUcL6Pc6Lu0ZmsM9FfW4hj2f>MB*;>q- zeF~Ct0O%9g!~O2BVe`d;Kqc}=HtYMyyLq!8v+cq`9QOq9AF}{2uUxx`v+J&Y7|LhC zrBhJZr3~Sc?Q1o=kfGla0`UXlc)(>s*B$@I=)d9s%;9$sRrE7%!(e6p`%e?`mkWIg z=|m~#_g!H{w%c@`c4Ntd?TP_;9+QLzxkr6x6cXU>-(5N_k(W?mY;(@+)eb@kM_c`o z?ZM#rB1qeE6)<;_8Oa5lJl%A9#N+Mo>cJw;6<F$++{$FqT^3$Z`nImjM&T=E@h{{p zWa2%C9x(LEHAFcZg*lw`Sa2>r7jZ7Zg0b2!aTSWXa>fuY@{agvg{7Uz!YTvdL%Z{3 zQ_`<RY?#xiE{YAru4=gX-N?o+Z{NT26im_>Dxf{Gn^bvmnHCe)r53Co;wq>O7Z4FX zuw&O>`T?`D0+zK_XE0Hw2>!NKk)@(0@r2HnNI>F;MvK#3po5zSrsoPh;XteU=|h8T z!yHfn#hVLch(Kf4Mi`^bFJB9BxUwGXIPKX^$cF+e5hZL*-<5yWmGttr8aYl@JW<Z# z0xLgv)AiIarGps2c5t0cwtYcBgHlC`ioLAk*!G;yt-rWtM3rIP*-zJ@O{Ms<t20DA z&nBQdjp%?8a9Bnl3hD>&AKjrvNyIO_y?BE@zAD9M))A>hrBV40H3Y6tt$MFX)o}`z zQXC&6fbV;`X6WOUxJ-*r09Q5D{Y_)<IbU%Y5PZx|Vd3(dGduVP^nw2u^sx+s6;fJ# zVvPh|x!HcUYwhP!obI3<CBz8gV~}Q$rsUWZfNFGeG%keHS~}(7vS1=0_|QWyCQXOF zviPu|qC-_HH=hC2<=m`X656U@^F?9rEL!mfNvQ-Z1~;C8inzrpIJv9B>(*8s-Pg3# zHFQm^b^T<vQd{C<)pNS*o@`2=0r;6eN9&s196;y(i=VGjz0m9<O6H1@-Sz@?=9IPR zE-T2z-M<LL`4a_p2xo|ii8ALRHHF&pj@9`QirAM4bzAT?6i~-t8Q}>1YKUo6IDs_` z*^$XEFQ{-LkR9e@R#IqJ!G|v<$4@BP_c&P3W;wRb!)<UNDco-xu`eg&Y!}IlM+jac zo6Z{If&95nU3iqDcg#nbd=RzbJK_rGPY~-$E3F>f$QM^r;P<U(YpRs)no5|@Wodr) zeip;)ER#JwIrr`s@2bogresiYp96O_og>gNxiR`xeGoB&cK+-8#};miIUzuo_93F- z4q7K!+2+(FZ&KddToSOyF9J2Gc<+c6_y3BXfU3LAf4gmZW%P$qwaMfU=2G!MZS}!z zrj>^=#HMuO1*-gcZizm-x&C)XHBt3ewA0=7Q`7`sd9WM_XX6rn;v^(1fQX?UK{zvK z0{-zxAlSQ`pXF*Q%K+LmP6KCk*)8jQ`5v{m15o~L`eJpjECRtDwHc?I>?Z|@vuy*; z!UIC6QJR_mO*!jW0ch|WUx)kcvZT68mz)tX0Q+{ct5se3<R3_uF>T_)O9MM0djKmr zG;jT++B0zW`5DltU-RgNN6$$@fa7@S`D#Dw>MfXdy%{Xf^9v;iRge9^S+!Y-c;=oj zme)ALfiBVL&nOyi2fxvc?1*YzmSOL)gvW>V#K;N{Exglq%?cNkfDt8(#Xn>rF*l5b z4_a!hBOJzG#^{r_0if9=`tXljn8d&Q(`_@zJfFTR4}_QC%3Ut*F;n`1gsTU1(WtE( zwASkL;q=Zc`=1~duI6&S3F<>N#6X23BBN|~WW3ETdStqPFZLF8&7@Nw;1drY6YLm+ zCC-V~v_bHyb0tSr(IsopTg2b&0mamz>aK{5Zzb=Y*Outw_t-oFD@JO&5KM*2He~5T z)n^#MT*1wJK8=rE640Og7}>peOx<V>ql6yKO$>9isf2K}^M*j*Y+iR9g4c_>50#XN zxYRiLjY(mzI9?J*=lG_Em7A&_3@)CJieu{H-}73-112Q15&43<iyhTZzl%%;=AT97 z7t!t-H_Cw*9xv9{1=psY{Xg_Qo0Dsp>HVVDKl5_be&hG}jCp_*oW)M9@3CenZ_8%8 zBf)}!pNCF#)v%rXpr(ECj>u-k-*H|a|FZsM>|-CN*FDz(x$tgfsq8rJZOlBbB^X_l z3=n)(5YT7a(<W_q(Fggscc4@*0sdL*PJvI>eRS(@t9hJaJ(f;7N~7p!Q>BL4?b00a zMKzF?vS#_7W^1+$w+E+UrBfydAEbfqfp9NBcDPNfEQ)57b~7Xrxb~)cL!VWyUc-GY zt#q<@03<arqxG-AYvSGwF9w>=OgpAkH70R!x>mQ)r(8Msr(-?@5)ijn_1)TqzE@9q zl+{-DZMvIEsz*g`t9!2BIYyzpAAB?84gd$gX#nQ4Jzoq^ASV+3S}lF5I0XLph`Ok^ zCg;ao>x)QYufTz$U-X-}{0N%yC;fml-5FdUz5Up3%f|4R@lLS!QU-&GD+$npR^Zr7 z#=k@&3~z(o0duCWu2WfszuECs&9mq&qci}pT$-f5*iuTDihGbYzG&wDeznFr1)_5L z@}#kRe$f`V>R|QDMYR(js?LWE^G-ZxgbLgh$v|h7f`S*uu62iL3ia@Ma@!i%497tQ z->`gOR7a(>)&<ehk8fo_zt!XqK7~UeUhkzX)L><{cSSIL%I`>7Eek*?4(?q{y1+X^ zRbwL7r!(&XIt;acUCwI<#ptO5ZlMk|=1hd5%=l$d_6p;@Y7Mp`KZ=b#t<NU`#4kNt zeV$o8BTCmK8gyDmqrduDN|*5kV^zMWw>w5rs_g$?xs1hT5YTk?M;`>Zd44#{p4~Q? zxGsR=U;wlr=l8%@hVF<hto5dG3SKz~he)^h9QkBa!hzEl*zYm{hBojmkQi87Yr5|1 z!^j&r@41d|3*NH7h7(s1xoW%FE0&gTS`P8G1AsILF#%vky$GF}i1=O?Qu{Yyo4nm? zg@~I=@8su*(YMGA96U30U9mt76lsE6%5Vy(E9l}^8gEURQgK*|Fadh+u!afiM|)%N zFaLG*@8f25#!XwXN9EWG1aSGFUf+3Q)8iyWB1q^SdT^moEdC18W(b81^~vXWM>LUq zZk#V7ny#FVb_;b?pyL?d3<E$&1=pJNW#N*r(!EPSc`S1}u{5z4G!Vnf;@E+li7v2? zNSUQCV1SU7dtzMu=F%d_u`TH-?U@cyJjPsx|Kej}b{09d!F1{+IB50ZWSBcJJo|H2 z10$IA{}`-4CQcQPO9K^MP7mciPib0a;Bj}Xh0J9V7Q||~feK}POSgK$^+=e;#YvCl zpX?y@5`DBj=eh@HreVH8LDfX>dTIc&-i|e5T(7;gLjW*WOT6>>X$<wAX#zz|^6_yk zFC4ldrh#a%Ft39MuhAmUe(r3=6_vruRwHA;Ea^7iNl?1Rw)hMn+28W*rI?Lvvo9!c z{>&?pz5Ek8CMb{C^SSlPWJkXpNG#kZ0fum}o~b}Ct)dbOYC&TTngnMm4_LMBd9`;* ziCpnIPuGua)zp5=t9=5o9P#-kZOXikXNUnU%OC#NZ??t^=yDL%f20u`fbTL46cTPk zd>pfT&jgIA(tQt6_CNiz49`C7g6A}WQlxBODBqBKG{euD)ht_hy8E1!X|nD0lIxD0 zRrj^|Pd9B!r5QCJVWMn>T{gFiC77&Ac6$Xb_$l{qvH=ygXpK*$HS4je))6IXvW_#! zlU95LJZ}i{wy#z&jdi!>qsWBvd*?`!?Nnm!4MZuBS8X)7!T-dVH)s{aTBQEqDr|Le z!J{|~v32;@th;YrF!>!t>x9Bs`FouoU!P)n>l^S@%nv_Rld5n@1xB7_I`Swokg1;Y z#&e}0vT>n48=doOe!L7TKqUHo;t#N;et^7P)lX`c$;qv0S-b-9<e#{*ev~I)M$Qju z9{^b-(}`y%kT-+<+3(=0tqYXpY`=f0s%Zh3H>+$KbuG#)k%9jdz$7+$957p|mh2`v zgyBDamPl~xmoNpiHy=xap-k1ncZ=l_pC86<z1gw5LZ6=%DH^EzxNiI%%%<hVq?WCZ za!A4|te?i(;>I{zu&?YV(R%87+PjvMs%3|Dn_py&xL|g0P+>`Q&VARGah<(lTi`A> zFX6VNWj^$`cwJc~7K6T1tAAxZcp_?ZfyH-l;ic)Pv=kK0wc-{-67n;u`!}K1<xRWv zVwtRa9uz0UT)7ge--%yUwRq}nLJ!py)Db=de|dJS%Ub92u}`OsXQNg*kfkHlVssx| ztT8HRP-MjlNX-TN7HzB|@p9m-*9u<Lb@QXUr>ly}f)+;seAntZ+kZ=7krO#^PS<Ij zH+1i0g5V3Fb%Rorp5t9_^|Xf*!neeEN9yH=<jl9P**ZUnriFbl4JL|mgJsb5@wU&O z{FYNE-OwBnd2fsi5$2Ti%vyHeo9t&K78`!sFu@!ige{WY9T#rQML_VMjW!a47Ny07 zmaB-p5WUJ%Ec4-;L(ebDH|ky+?qG*JmucvHMl`#PZj;~Q;dehWj|(s=N@IU53Ii5q z;eRivu*)I5gnAB*1`f1H#rY(1fn)(&!MXNxeGpRRgKMM5Lv78p^AFiS675kieOEoW z>6;NHm7j2-OLHhn!Kh)t#;HH+$%6FJ{`GLmqVKQ7B!Yh)a;!7UPvSA|W6Bia^w%X2 zB79O2li*uJyiPu!ZswLP8JIOy5<=WN_x)xeh0y0c(=UnD`D4uZ{pZb?f$-by2D}u9 z@8%d4y<i@=v7nh9BC<4{Ar)O`^t38dWr)1oN;=0&kyhn?CGf1QLqU~uj3mDHxROa^ za#r#_;L9|5aFjP_n+N-}zcj7ZdT<7Pr2LbJy|`Xg;*ZbStKz$Z3t!|k^5m9JSoaT8 zzeAUQMnP-oG9UAs_mq)#GD5sS5RxpZQ}MI<t-jfS$b<>w7sKMnF-NX6k$EAp!h?W8 z5i||7n+cB6>VM>Il`Rwz<90y}RMi65z3b}Q#wzhmY=JV)75-CvQ4!CT?ee@}R*69a z$`Q-mw)*-BahP@t7tQ&k`hYs7wf|0U$P2&MjW=bE+KM%dJ)^z)1eV$W+NXfP`2XY7 z{u3A{tr+(^i$ny!>;53a>@N*B<B<9-YGHBM4Tsir<!2JV3Tk9mf8y7sCnby~wM`aV zH@WZ&DBb{&kozAuEq0QDD@F;2?YTqHS*(rBZ0E3DK6#JJUo@3i$k>bpxf@qg!ztEU z!qI6ADeJf;!(cJ~*uM2$!gn9vj;Ah~qGq4yRP(-~^lNpb|8rdrGK=l6F&`_n!EYEi zksj!V!5r-h>>}nrnmEDk9Vb+JvYbO1c%ePD8nMTSdVXIY#P>QzXm+7n|B|dVQQ_nl z;tnN$VcKu_lmA)w4dH!F$3c<Gc9Kvbi&zy>j017hdGQ)*x1~K+pl83uYQhMB?-HO1 zlGm%2Vm0O@Z99b_{Nm0s=c*H~`5}m?#(^^60r?-aS+@m{4S%|bxVh6I54Z8_IAx+Q zB7<4G*YlH2L)*Ngs5Uf9y1m^nGF#krk7~A6`aAJdq9C?UMt)2g``q#7`SHsW1#mi# zPaz^kS4Hm`;%vXN#U$D(pV0vo+N$zAx9mLcv$D4$2|;>BLxmM1ppokrfIMv=;Nimh zXE_an*JYo!&{UC@%hXi{4-N=1{n0NpU|%IhZq=(^k`9%*)&rV;b`nAm3;E=ISmRqy z{yglTe~ASh%3j?hp<fXLsTmL%zdp|TmP^4Kk57yesiepY+s#IWKz^CJT3Oiq5CQMT zN>@U_6#T|;!%(VmX?N-;yQS0kB1sT)Lx*4&XeLoVKU0RhC&>7(ee2wt!)ui^R0Wld zp&sjs5u4{85`YU08I6RWkZE_c=?G<QxA_+CM{k!uo4_|r=uG<NH;+5Y=)eqcFUnmi z#|MJ#z-A+n>`dm%*BjyVyVTH<>%i)o1y+}Y46Be#a+YJp!;nb2b!It1a`%kz!WSwb zcdOXZDhJ4i<eh==zUEY_xi>T6aFXmj)&WhfeeZp%I*KvLXC%-smwe`b0eW?!Q|h=E z!}pcE`R0H$;6*#fyJ^d<)*^<h!E!yHL#OUJgX59Mg+-0Knp#B$Q9rXQI%_q#0_g?k z9-5my4G&?Os8}8X*p?y6%c^eJxqyMCI#oM-a+QO18>n&jdMZ6sKTQ;=Zbc8xvc7(k zE0%1u4d4xit{MySpMAw8j*uI@mD;~?DCsr3(f^|>90YEjuL2}$<t|WF&9fx6)0f;2 zUtT)aRkm|i)Voyf72#aRfy6fh-@=^97AkY`xpUZXCAMW^#RPqu#_HNZyT;WLR@BI( zh&~;k?YDhe7y%E@kEIDlbS!?i(9jk}ESujmu{~t2ZJB>j6$0{YpU>D>VHq?G)fyJL zpbw4gE$!FZ1-eHuY3WD-b+wy{-82blbM9^Wp{HO6;jCJ$o1C{;53U0JD$Og=D?Bwi zllB=pF@~h$#~cMPY{WO`PxnF4iHkLamS<;ADBjy+Dy=F4A^%DT$XBD%eHQ?6@SIvJ zAn5KG0y!IKiP3Q+tqFPdfCgo(hBTH%0NR0ZLzjC_3OoCU&te^+o4F%T-^MBYO^$0e zs9|$9y@IBaw1Zn&>!X{akpdfb4>#qj-_<M_3-5@7Un;7avEnR`%PD&-0k^Pcb7>g} zTcOFtcHej1KIzBAU}%fkX!#cd;-z|=+476M<JL01e~V)UL#S=y2Vs_Rya(0~5ex4n zL1va`q0aQXlKSD^#|Z|)%htW7KC3qL_>cqeKOzDEfsdWz9IC&6gfMtvNMc@@<>M__ zvyV?}RDj&q_HGG$0brZTEhRV>%q@L!-7nD*jYf+&FT5?TXtg|2C0B1f2MIbn@lN2A zQf;YiQUXaD4l+X+x^=4r+_m>{p^8@J<}ck#X(<S1zlAWCj-k^F`mab)_;Q02?J){| zIR8np3Vm;N2Rx2C-m@yH;~nVA9`)}viWfx<?wv~CixGOT*rDT=!k(Pi?wZBZf~QXd zh;4O!1b5`ebrLJDu|`<~F?x5+9kldke>vvGp{9c<^o%peijdJL=Y4LN3FaFe;%OO* zsYuQ<LkxK9&oRNjfry(?``|Cdl*hDZRakRZ^J}G!aWE0RsI8ZFFBstiyqIP=RAQl@ z?DEqp)!m{DznA4~THioh@w99}6-DlUS#R;d5Z~|I931msdJ`<mw>p$Gx1dx>%iqoj z0edWtOQ0K7IL){(1X^qEN1XA_66Wj@ay-2%;4LWcqz<$W{0svqjUA>)cj?D7T@GBL zjj~NJq1AC8>Y+=2OntEssC4`n8Sr`D3cP5gs6z`=3hn{OVW8uTThzMzc=tn=V&eJm z_q|!1;VvJNjhb)l%rfI1t;JF7Zd*r}-*ds7(-!voCnI8m=-1u#clGCzl~RWaFSEOy zkPS?YX%;=5E6p#kn%y3cQ5NY_>qtI^QEafADwmt;Oo>QBzz+1qVV#LLs+4ae-s|Ve zQfIc&@|%+7g4Ez%edU!jYiLt>c<C|w-VnO?=D7P@b=O3^F5cTL|KHe=LQ&1GR`kqe zcP#sAXy9e{Ce@>azmoDRBaaiYQLN7N>?O#l0*>9pg-oOE=i(3P1I=%{HCICv?!fox znVtjyz~sC0u0+U|KT+=Y5)=63Zw45CSG+j3^Mb%9`m*%=Az6Fa%=I1l7^>#1AwrZF zh^-K#4u+_mrU)lX?$KL<H80PwMd`<boT#XNO6**nzpVPnf3ikE={0~L=)9nWs_8I{ z#Q55;J@k8McBp$M0&!Rnzc8L~H?6xr-7o53>&lyEB*p||)+EGY@mpZ9C??^TL{s<v z*>sx8<DV&c*Bz2&GX74fTqO^t#awPIr^m=)sAz|^Sy7?5D?$_psX{6puinwe!!?v& z;lQsLS*$QtR&DXNHkpX6>f3u{WrV~^t_^xjNr_J=Z@VwIvq@X6O~!ta%j50Z-V)?X zmnig***pDXv|{_cQEA3+GskktIp=gy2j~FJQt+#O-i9cu_Lso%cmGb14qEVh1SLji zSgmhmtqE$4sg#k;rVj<N0yXxK!>#KdGQeo#_9BF(iYenOKSww?M3kNF;H)}xZ?C97 z`&+ucH-Do4jW4BgSF5v-%ZtY6@wdk5X7=ph6YsRS5y2-~TVDld{uU(&?<4^!uD@GN zbgUX*9#j;vwS;@Sr%k!GyS9gkyW@IHUFkHpOZ3H?;jWA4Akj+_U1vmU=AFTn@1<le z8d~?#nhXm&9;H~inz>GezXl$7MV>|K7s&t02H8c+Hf~N4NANSRW+$2r(Zr@|V(^0c zl>(37)lPyH!A%|gcL>PaB;)71yX`<zk$}+oHs^?D?WiK!Yo$MjnkEzl#JR;3YUB<C zcp%CitH$rP<alG$+*MFOu|!Shr(N|NCdjpg6AAV!&HeES_s=EjNB%HG+?I52n8I)N zKFSs*^v_cqoyt~L%`=JrNvc5)NI+6ecE`#c<a@n7Zkz{)-l78@O=F$X4?2v~R;nH8 zQ@khS)C*4@lC290^cp64O>_&Y_J5QeT;~8mMtF&tXy>)65~S`wY=|tHVn7LC&^AT* z;@y`AZ9<AGX(9@$x8EE~<C#DLVtLv32Y^_<es|d2?1tjR_o6JCy<p%&2s-3Q5#nSP zWTgKFNm|7B)xksa&8NKcdbK4?R)I^;Yel#CJt|R^NxBpE4%C=ktF?0dbl*s?%cc=A zR95s2;r*u*MpkD;($Gia&nsN+45EedN=B@MdXs}UebD9`s)-e_k?sFF_5LiKbIyFK zE?-mm`NJF7L%_L&x7L1dqEGWWdyeVwpDMn7AccQv|3uWcs$F+z^LXN0PSrMV)|ToQ z$Gwg$H@WWLX#qAHnZsJRUtE>^>x$0@g2R}c8(*~@`_w8ew6$PI0PQJ?Lm)tL2=PV> zli|UQu7vU~F|}~YjEs!=XTGf=A<d(_MZL?kLq^VmU-grJ_nQ(nE%JEsU^BnUS5(0{ zT)qIV;MmaH$=VV#?T<Uy3x_tt8KVP7o7YZ=e&#|??PP@jr-XDwp$0DhN>^49fZUnR zAgXO_rZ;bS@&;+51=lW;EA)Nc#mDt`R&?D}u9`8<L%Qyis=mA*n;4cHwHqcf-0`eb z0%Wq9Ev|p|^a=a5SG3pr{d50CZEak$QF0*60co>B*?B{q*yf>kHRA11pPsTH551>6 zNU1`f-${~J3q9N{R9Z%d7*i&X*L|Nu3bMzQ9E2QuWWGCpy;HnCj?=ly8CL?p`EBp$ zpRE$)wN`)r=FNEL>u@LJp31C@(PShWO7tdhr>>}JuwRdTT1(|Y+fJ6XX98p8%Em(W z{V|{L1BrVgnT@z*^mb)MAm>&%oX+A5G}qA`@5;s0zpZZ6vCdCb*j&QJN<t3M51*mL z5b8vKKYhKBg|UvuzLc8ANW(^YAG=!wGfG~a9uLn|>pd{f+W!1+Pm;wSk|8NBSCBTt z3t;{rr#8w5xzi~o=?d^r$e?m7(1qxF>(_O~4~eexH!g{1v1y-RZf!WG*QJ)lRLvjE ze~f;G5yPbpJL#*LHboaT)VZxA<kFreF5Y4p(#_^+9mJ-;<V|g+<a6y61D94_yB^~n zmPpQ>PHvNXuguU@<8qR612wqLwB65Bcd{Is`TC}TH})ahz(p?6&liDek_g1rbiv#g z<SZ<R)`s=1`;;bPSC*^BKgA=)wB$&|^a8POuFipmPYVR-TS_M77MF%a4M$!-_N$LK zP2(YALP8+-bae-k-;K&Izx2a$z}S#1Or&R!XmyXBA4T4Q=>7V@#_cc$LCWo!#=(zh zc9Ifmcww=on4ZN(B1XBfOfHVeT{jWH$5xpw<ix&Pm^VzLcE)ML-1s^-co}~tDy{#S zs7UHitmM?Y&ZB%tll9j)V?5`F+G48yt-mRi=8WjSl-?fUc^lW>nRnmSyB^;IWLb;w zEjH*^%AD9|FrLxpKg_rFTE>;rjF5JD<+v3P-#$eJAb5RakVF2MsN@?LPd<X+#d>Et z+zT37L?}if@7B1jrlXDlQbA!w5m-rh+@VW`<D{ej&EHf#fcAYe$?Gg&cs2dB(&eZ= zQs(pZLCZt63$1(8&Oo!npUE7Al>&2=ke|pg=;Qp##ILo@G7-vE4it-)z@{$Rlb+}< zfc#lTwD~E{Uy+G$XHKS1(HQXCRMDo@o?8|Rcr~2Jw?e7E_x|fe)-Y!j^?C&T0=cXs zM&DU33_(dE@dC5eMprkK4wH!~Gn>Im4sqR{!)59FYs<oWhywblmw?>lS(L(nMaO8G z$R8DY`>-uMi2W4$_=?M;=N}+hNB0@yZ_ZTj6%q%KEMjH%S?^lQUDA_sECM>;pFc4u zIDe;SIQ#tp$Mu2_zTZY3{+&~hX?(@$uWGI5SJEG~ozvEP>7>)i^<HoDpdYA%PMM93 zhxfhd+xuO%qq3(y+rQ*HIswywtyf?z0C?xjUMjgZ(`DhtwDQB8+i=C>!J)Nj-5zb^ zVqZ~$Kg+t#lwGuLoiDc>Uzaqk)6h}Swe9t^dGoWY;k%dYkk%g$uGJ2BO#gDZ9%n6t zDD7d`614B!R<n9gCo5^4Ry(*O+1nv*Q0MlTb0W|+$r_gJc#;CM8Zi{MM|_OBxfZJI z8&rPh&F~3dzLWG+=L73;I<dCz-c0>XZ2`RU*a;3sE_dYuo0fCwCwv<Z_T1VC#b4pL zKzn36<){$6%yrn`GvhXV1z-P*PxqzSH!ck<t0s$O!3z!IEoSZ=VB|+wDsgg)rPLRO z!k6V!%ynsKUR3n~vSh1W-NC8|Ef|^JBWWGgqb|WUsR@O022I4bS*_cDEck>`4}UGJ z202+G>(H_NLU-+bXX^|rafwi(ix*1;e`bVu=9w0Z{yevxz0tONgKfDirP-Ar5LCBb zdBCBy{%8=ZHww}Dtao3M)6;$2ZQ}ZA#|tl21B${OWuZbVmpE74k!XZJr3>CtPK~yx z*8P4=1Dw|z;#5;Kv!)@kD%~&gOvxSs56Ab?R+2wNFDa{~EylM1bZIWZBE3(#d=&M_ zm#XWR!}mn6Pq0u@y-ZN|Hiy<CH#h*+RR0n@s1!LpY=j!+2#p1Wv#74z(G!QhG<&(H z4|kz!L=AvRO~k7Fb;++tbyQOk8L74`PJROvmfnYfc>LC%A`jxz`Lfry-h=ndnCu|< zHAIldTBz(?k_V=l6k2IxCP1!LP2efYbr<<;$0A!O<5|0r;j|XCe-iT>%G$hi%6yDt z0NeZVKy_JQH{ix{(3uCynY6=K=}H06jdCvR3ft;od*TYGceOSp38S9#dK1v%Ts$BJ z57dcmmIx91*6*7E(E_ZgN-5039>qp1N+%pVrd+sn`#CNyd@0kNy5Dvaf5YCrd9nE+ zQ&$|Oyq`lTQ{bi|Pup~cCjF_{!dSHDen7N=65~ZO!@X61;%;0D<}R)5m)5XnRx6`K zWwYrwc)cQ&>fYF+uedyR7UK|HqULgDgTDA|vT3G6yIgv)%603@^?>cuSIEk|U*N75 zc&D!EuUWcpD&CNkPppM)b0*|ls;0m_lz-DEA>sQ<D3iYce^PD3&*s#K@ZngKt)=hX z9A_YPrQ@=FDT%M_tOP%``r$?PUJ5nMPzU^1nZ@i21@ie{T!{XioM}gH>r~<#F$v)O z#yc9NTEdAvHOhuPJ7kdcVDudLiDvRXVcyCZa{W>)HrjVwsobav#_G}V6m+Uyw5>8} zcI^#uyiv3bYGwFUyyve)`)O^5HY*3FP*_NYhC!(Uxjgq-qF3;~sPM3iNbR7^c021b z6}GbI4_5v9_{8KYjoET~rg|0bXf5q|%&RJX-<7uZ%0<vn!*jBUvob16F?ad`CZSWi zOWh&&{;?tbF7=j2{Wl$i1`Dl(+Y|zoSGl(%HQbTS2+M(9>FuM#TDz>PW<tLdhyl@x zB(vr{0a}Z4nNy4o@}xNwKXZalWC*X|w(gm)CymKFE_8+BPmT`uF;M0zE<E~1U}(B^ z;DlD>72SqeDw<Y>dZtF7liJL`h$AQ2UjZJW(FHT&04;r0Bw^l!t<jL73l(H2KiC4D z+E+S@4#7*k_@xjAw89zzXRv*&<=ISwCQq?KDB(3}_;Zk8RLWkA{kjBD_oW53)+v6I zQMBb>`9iJ7IPyJAKb*_nbxjH*i}RG{jJr~zZqpfsk9u}q8Ea9&)3#lMaCJ~g6L0cn z*$V*qW&Y?>w%V7R)AxzdU>nnIBYh=9%zPhES5b`>wkFF(v5hex*4PJQNXCBNAwk)A z*K5u`_w&=~{omdq%D*?bP?mahKQEL<Hb*XrQdH!8<8ANJzN8RQ^f{$7%FaO%Kqr7p zyk?X#E~iO-*njI|l5OJx&+zor_txTKdmC~8>Tyj&v51uOc$bD%&z=6rcJLN|5$w@l z(7g#-gsA%fZ_pII=I&As+axZD17Z~-gJC5n-c;H-rIe*t4#7QC!qi_L(FJRzx?gm{ zo+EvasvHv@QkKMw2`L#>CJH?1A`bAF3o8pFs5F(jFHVBA;8D+~q{VFh2|kQ79JZg6 z<axAMAIptp8ZI|Jz9)Y>q#A6-w4du9>XN+MR#SexrB?MEmJiE}WrfR%;c5o7LllBM zhJ8X?dS55zw_G@SxEr5<$abwWH%5f$jB&lOatN*Y&b2h3BC=^&SgN!*wre^eNM_X- z5`rCm+>sKnN9bc--;wM#_aUck^n^G@-D6m3l4~3Nm8co+Mb3aAUzQ6g!eIZ|jDd$F z%`p64xglLLAcAR`AU;v<o=~rhTwQdl|8116{N=j%qN}jq<)dF=8=6zwR{djYJ2j4H z_7vFyzx%Z(--FhmGGx%xlsGG_>5!mzk-t@lk0ZCoNZ9V&m`(=^MwmFo>e}wt1`FnN zEj+V&-8VIA_0|Q<l<oE5eiZ3ZFmDi*qmX%hNtJ1T{`HZ4-o87i8b#u>_g40GtPzGS zvPw>$+X~JYVPJUK3@)=X{qLu5Y}8WQQ|xKxEIY@>g7BIeYq!jbs-L!1@M|WnhBTOP zia|}kTzgr^nrkmkQRxf9-knly0FNxOB;}|0jj9wf+q^GJ%;W?=8)hEff(srlL)ja% zm+VE(54yv^AAM(hmpFKzkGc12uy8t+Yu{CjcreCs6r=1QC@a90s?3?vd;Ni+`eO4@ zo92j<TAx_$N0bU~>-LlgoD3o#Sz4f%2X4Pry5pp22U%F=+AocYTTs3`5u}2tzg;e% zwU}4QLXb~9>F*I)!L_K&HL$xS)*_o?w=%bQeS(XUc=1=Jp-R`|D9=X_Oj<12@NW^% z0j^caOClv^A1|36t7{Q1QPOfq3VArjZy#{|;+XK4f=4=`u&g)=(@{jM6<p?Zc2bBi zEiOyl9{WCxPjXsuTqje8v>df05pko?^zP7!9)o?s7Qw9~6+<&2Xtk{KdpxAm>i6^W z$a})BTTR>=w<kki3b(n9Xv0VJQ^^?^UloY&uR$4HNyG2;_oi4YkB`<ro1PXk4RUTe zF4`LgO<Yh6{QMC*v7&P{Ayb`V7x*<3zpD;e_qWSk<ge1`zO5oGd~BZwD^0T)HAJ6c z8XAo7<Wa@4QsQ1(nDo(D#nRaHsx(Fd3){9QgKYv1e9}*DMfjcy_umi0-x9g9l%y;p z_&AMQsO!dMtU<DkzARU{epl@I)jOl^uN_p1KNI*zd1VB)n0|>Db9oz(Ov4E=iwaiP zs?*la2+Fsu-V5cl>Y)}x2hP8x-Q(G+56Mucw7tgH;M`9XM__gL1|=d85_d}h%>~$r zd^)s+AHiwE>4g@=55`Y`KrKq~{@$7`#B{$ioqpG|ZgRSiRtJpIR)8W=Zwe_9RZjzO z2ueL0;*M}}|8!z=Cb{t(Cfo`mOa5*jIW1LuA-b>-#OpF8xc4^Zrjl*kt#7SA+j=!G zEq;%Bm`E8suf!JgwWP)cKc7n($l{!6$^8O<+f`CaZ!<)QTORnB$F4Je38@XDi^U@E z+CGriEs<~xQ9rJim0I~M^7?|_FgVjG(&T}uW{6MFO~+31QODaI;t_7Y2GGrq6na`O zSExkZ-Js>ZT196%$B`|clZGRD2hhr-GF=GWQh|;Yt!!7oV0p0IYlFUT_iGTM`ATEg z0ytMgzcj=?Xmnk@;;QkGO9;;j3(!&p&Z__z>*>`@uKaUbOkxpUWN!cT8<R+e=X7C) zM&8>|_|JI;oTPGRv3PcC6jG+-)kwbLr$sMp991#o-|3wAT&ZQA!Qm9NZJk<M{?|I& zY@T^cl+Zk$Lavu8pI(cg%*HkM*|9)86Brw1Le-opVsI~c<w$zluRgU6+45seoaH8= zL{f5l&ELZFH%Ajn6N>V5dxrb0rWE`ug14=P^N)>`jHh3pIyJmi$GNSr<*zV88K~uZ zGt_a6)}z{8Vsiw3+`LGvwlLAiR=f*l^*K`IwC6J`exz0*Q*BPxs^?=yMj*CT@l(#M z=ce@IV~_bG%kY>nxotC+J+!RPwUThx+b>mJT~aS5WFj!&wC<b35xV(M)1{=<_7WSw zJ4UHje2<r9TQl%`nrkq?LR$cxkFiC4N;H!!I#>JE2&)oVXtgA}F3!0?VO|}T84&yJ zN#S#ywM@6qT0icg!s|%j4OQ0RHN}B34JOlu;c~)dO^uQ-eTQn6=Ej*(Z_DE=Zti;y zDUp~hhfV@?)d7s~8wW}xFq5AX#Wsv7oS4DSb0K{wUB->26P}~yc_0#()`_VftH=ad z-3gbgK%)whn-ty35h!pJne+Cqw^q2IMPd_ANJOK6=hvzHtp4EUpKS)3Z4n`_9ayI_ z-ljOWaVRa#`-?*~-h#CnZQiFWsocejokZ=XfmoNKM%7IipUyj#77H~!Emu>d2KD@f z4)0a<YW0)Qm<jUt3Z1r-6nuPM47lI-z`lGIP2+8Tsw~sLWDvJb7$bk|JEprH#$60a zC@e&rzr6yiQ6F<#31^Gs%m`O{GZ%K0`?jeK2a^`|q~j3fZM4TaR$$|scn*I^HRqrE zz1d@K?9qw4{D4~YRaa<2Qx(R-U0W#|*TLaboHlw+J^DpaoAybBlXT1fF!kQyRR90~ zc%>W?$Eb{R9IMi_JC1d%G7^#onK?;b9Gp0^M@~jKNQLYXdXbTlmF*m594n4P=p0!G z;h4wzJ=Od3`u_fNxh{2G+|T2Fzu(sVbCHC7z@yVvPqJP1!CW58x4e0N29COY8FrB4 z_wLmVzw$7Ua>za5i;Q=tD|ORr{lgT>HQX1~15ct+L@RGmy$AX|&n!k8POENOuM<=F zw<TPVSX)zMKJCR3F{~_@OU2o$_>$c|Giu2HUY~<v2yOFCu``6+%tXj-tj1Z2_$Tb? zwVUec)}`gT;(kRXtR;bR`cFF#RnAzbC5R+m4}(kh8%M1?kF7X0BjP0BpAmz@ki=(7 z#(1-Im0B@4fjnnR6w1<W*F@bKOp8*}8ZlEbM_FwIe_}&RT#MmO1+FDtsAzv&%;_t# zo-mr%7r<Oxv)ySbl}$w^cwLD_bmt0!=znHDQstXj>gEWXPOC{WdceOQHeA_xeCS2O zgHB)KSdYItN^@V2p_&tKtQ=dk`y@<5urI&GiI5_#3CfSDu`Fo)!b+{kMD~4w*{kS3 zQ<HGf6RvAy1U&534@_N+_R~x(@0Mn@o_cL+^Z~EB(%y9LAL3l6JPDdB;xm)U5_ZdP zAbYy}=bd^+>ROkLpJVVu_^=1#7LGF<auknUoGgoT>(>acQqt_f(6|-3&kp`1gv1&u z)L`6g&9&fME(G%rI|FCzhY@Z!kyumMVOYu%cU0i$kF&tsco(=<#k@LUkrF=viHZBa zRi^BF;L9;xzpCH+n~#vptRKmiXk&|h7QTP($0Zs;A=!1m%JafK+m+6TabdJ*JagF} zbNT*pqMY_57@mIaKdc_W>cs<FOz@wRux6Nl{kx@*kiNU`!A>krtm`j7R<p+9xryD& zB&J$_q9mor(e53lXIckX0P=NfZ?>#+_Xn*r8-o-E`EZDZ>reRU?6Y<46xW8ePgYGe zAFFJ52kZ2bM3S!aQ}UCsLb7Sj`+@13&eIaKucHoJRr~fXwEYs@sjJ*}VXq_V!#=(4 zwXTrRp3l6tJ>bd4(;bn>MZSu)m8YnQd0zAV`fR)tn|s+kNUl7>{?h)qgKrLL@icLH zwf{5c{G;7K?tfaytd)7_r-i?xhN2NZxtStpIYOJV*c_iYW{>Z_okfXxOev<18pe2H z%8!)CcU=aS%&YP1?wo#=8Vzj1&zNlwLQC+6e_4)0CC}nhvD~0OgLY6ci`M9;)>HVe zdBTO&wzb?vCWRpk-cPLVzhg@BXl=<++dBQ_uYYY#Ox^oUTn<qMHS_oJGuze<GYizq z(qSw_EC6%e1kGK%z+f}@AW`{Zt4$W`J+Dfwk!jeJksb=Q+5M@lwaknP!QgM2h9<OH z^6yRmPF+;Ek-{^DbjQ&p7G<l9EJZdh6ba%b{G*3%v`b1K7r1S#4*&u0>)`k=%*l8i zwUlxH<HQ-v<wEyPceKlYCF{{_6jD1}9I#gKUCe4<%8CdSD4DHv3l$PvQ9ImX;@+tZ zhQrvB*%Tkn#2Q0EMoKHRDVCe}LHV_<oG+9A@fa-+P6qY&F7G(Q!X+llyfwVeYay|< z?30Pn$H1B^7KRMT?iY8%5<ZZV!2C(^<Tr4F-;&M{=T*<CXgMZs5@qa?(|f&KOp6xZ zlNMzmIbC7o9I85W6h2FV)J&G?Pn#u6TuWDlY1z5{iu_fnZvip>i~qC>HHUx(PaIWo zaN)Ca$1NYb*C}}|Q4-4c7UN7oQ743WG(nbmJ+g}!!3`)Bazy&PpLr97mtk(q4Xd9N z>f?&?|5UFymATfK66PL9C$Zf2mkSX138-<UFg7RO64_#1V6AofX5C&^spOa5zhsBr zAOZw?6Uy$yg&Bh17XKt|O^sFkw@|1uI?*i2WZFgPcR{z(^GQ_1@mb~-(Ud95?PuO; zX6Z+AvQ5*%6gGa6Ycoh4oXA_P{viM47iRn=`0v3mCqn&pQQ(qinTX7Ci1BJ0_Ee^b zMngorZu=f?PerO#-~D4GD(9M&o3likv6@Htr75w(^hMt+DaY2?$OTsFYt0%miTvBV z3H&K<68T29(%4#r_ydq>&Hg^)%>PpX?XeSW{2Y#0tn6_5wRVXSgRr|(bsg@DE)iUp zAcGh3(w@+xz;Her-YgnIqwXHtEq*O!ZlUy}w3)SYg$4bktdwghx02U?*+TgS6+QAJ z!6&lffekhX@~0s;0I5X}zD%B#{;=pXRExiTFCLz99IUyS`V{tj!f*IcNzx%I!rA2n zS>RQ-EZ#iNSWwgm)~thjqa79#BnEl?N-job4rA0mYUakJ2u+Dsg`cX=pCCscpKZO+ z0uXmYsv^%j(^o}DekRwbjuPLFHlk3SR(%4O=7UtxvEGsBIGq`<e*!7dvAO;lQ5?#* z=R)9*l^L%Q$(Uv`yst+WRLjVeh}9JWZ+N@)oON`f{qHr~Dz66rv(z!Rib^QtDFo$g zi5+c3nmZ(lP|jgq$Q7~UWVwo1;^bnuGp~d@JwH+&j6l2nu;ct0oVAyFHKfLo-*FQ& z$Zaj|xyz}w-TO>n`_V2i2>w)BCv>|y8`q*zN@QOsEofss^!f>j+e{zybB}MgicxsZ z*H13JZi1Izp$|@r4@O(HRo)6!I3~QnF_LAC`ywln*0H}a%w@e{uAlzn1YQD=k77Rp z-bc#CA)Q(fI%n~nW8_Q6TZ#!Cs?F!m=6tVs;ei$zk1z~bW3kthZunXLWa)XxT3p39 zH2`yiaQE>rrz@5o$g*Z|X{FI}>+LgL3crHBd0BTzq=dmQ+Cr>Ct`y*>&!#(R?#cPr z#ye&Ic8AWe?CLZkyw|^b^aaVGc}RjI)HSg#588S`<bG4_u#<MW+2<;q!QdZW{!sUI ziJX4jA@<@^+)tx249=5ZxeMD__Qd6ryd>sTo^UjmdRLO*{cw+9xR;f)yuFuZyU+BR zg-4%_q`w3ZtC6|{gf`~*43?$c6%O24{*HEWPky<tBw+sLSS4p(Gs$A*5H4Eed5EWJ zw=DOw7F(eV1EGRzCs%n^qCy^~no2X+cofO4Kc1XVv+*Kp3MF&U#i9|(93DzKUfg|a z#!-D?_3^MrDt^cNjlar`SDamVS?+~0c$e%<=nad-+)UDb9djg<to`T3EKG-Q-r{)@ z;(2Ppben}S+*+12%}20m=HP2{z5iy@-B-@Y_;GJ~p46hr@Ck25-wAXSZELzXFard6 zYz>G|e(*d)i$wzfv}<Ll6I#S#3XvP^NXYCqegmLRG3$xBMUEOHiM2=tw~sx>@j6gp zs$WK!>v<3Td7JcQpO4Dp+ha8!mos7LYYkCWKR1?MkcCmXSB|*9RVp&(U(=HmIgDN1 zh?4^+NAOO+uTNYhpLS*khN5WnY~FX;*&~&MZTrNRIUfzr{aGP^xu7!m$~@-m_8ENY zlV?zrDR$_lg#^j3rKZ|)ibv;y80WSE$rBT``_DL8&8J+~zx#!&)mwg?ZS9xSs|hG# zbZj{ShWWzRcd8@SRn2;YO<Ci|z$}9AA}`5N8Ee7Hc15K4yWDP|-i~NM3_a5(TZ*}G zm6qs1Xq7$cp=Wx=IxqJ;{l1;@P_RPLiy`1c#6`?u-0Te8ZLUk1a<Eop^p_a!sGO!O z_+Qxu)JPSgR;B5!y%?Cx>DKSXk-mmJ)LYLM+Cc;o=2;XEo=)u@Gs`PXcDIOO0^7EK zaZRKVlb+)`$<ds{S9JQ`uJF=vi9|e<5qSK5Fz^PAi$YT#&*XS>H}{ksek9-i`J@|D zd8*1pGQA2?P!(}2pF^1Xdim3LC9Fqd^i}277pOK)Hi)T*SG%Sl)kO~>q8yOi13EW) zCX?uP@ENZ+As9C<UBJRK<0sA<{Ks!BU09`C=54#;ukZ$#CU7dl38ApshuuCBH)}k# zEG-@(%VhDM`Dod69&~um=9zLy+5t3EA?d1Ge)edO7#`*nyu18U9Sytuuq6y{^-7wJ z7_TUOu&*-JdrM3QkIi$ca~APWmKxa>PnK0~a)W%ocfU}`Ovzl<cjIcUdcEdrZJVlL zCh43<52qgwNcJ0qtOywS-AK5(GSo4dE-^<h7V}?M-XYoUUUibGJc@%lNpw2Rcl%+j zh!qCc)W50f>e`^qcQMy&@M<$<5l+NSGqmn@CMWYD@KRUibiLB8*@DuGYxmNduzQsH z@L5{o^@gq*;2*V{Km_d4M_7mK{Gk=PTJx7EdFxsaPA)txc)ix<gM#R_yk%EoT|4FX zX8if%g`{JCuDD$t0R087i>#(%UsXcFHZN<1m+ie;w0?mQACOp7w^USozI;8(z`S8P zL#-8^z%7}o##zGUzVp4fr~yY!o|~V2Brp9=+}=CQ+j;HmNm3{`lb~w1L&Z`P1H@aC z3TAj;4OaZ<IZd&($PyXApD&JCwN5UzSmmdeL-t!>B7yp~vn;#kVo+M!1}Unm3uVeU zLN$I)B8>w&qL(y%b*T=EnU39HX+?)9<0gk;gZ!(@1(R1;{=;n%Ta)p+r9O*((<(7` zySbcs)Vv%_x%0JBFL==C3Ae(QL6fr5Mw2o@+x|t?Siing9@w!dgD3+_$E^BfKDg@3 zEoULJhdZoKNoUB9>io7k_+g8#5HUx(IWLEC?B_qhYM75n>CQ95P(C?V{g$_S+KJhe z(-3dxS4v!z9Q&T@hek}ne;(N4u0ELab;yy`5;6D`1y(a^Df%{3&3RN`;!Je)t+Db- z&V?D3&akf7zvZ-Y<xxX#>pPA1Qm3Py;U9G%&p3bnJPhZ+6+yx)8}5E%s>XPajq3V7 z+SN2uu|#>D*EYwqD=jiD+6ziT8y^qF)i>>(c<8bcl)4omBT_1PRK>k+rw7V_inzcS zI<-BYB{clWg{@T?5+*j=%|k*Pe&xd+ROGxO7^3|Iv?dnv-iiEp-P!8*$jY&wkN&QU z--}%!n~7_f0qfGM&d~7q+~_y4k89xPWu;2-`Nn2>#_y(w_DXH2SoDhh9e$C2FO0}t zQ4O<Ap^dfCGyE}~W<AqvvuO#jsAE5F2g<)*6I-r%Gp&(Onb@s7v36u}ca~v$oNM>_ z&22kRsJ-`8Gcbk^qn_^H*meZ_mszcbIi223CC;?b1&Qs;*HrOavQl$e1Cn>n%uyNb z64#vbh;wqDGdyy?fh?<4e%$IY^{)uNJ{MxJ_jUDI5iMx1j^8rZYm=Cofn!92KYtTr z=(3O(OmtCRb@lt*7{s<f#t8;EUEd0aT`;@$e=Scx44AYxk3y2wp;BOh;qYy0OqCHN zT*4XVCmPXz4qrdfgIzt|>T~0pD(QVIr$X{k7d%;GQzLGj=x!2PmHZSg*4mr5>&#q{ z)B)fK3G?wfhSsU%rb+>bmf|XukC>MDJ6ut^^=qV}g{@KtZ&tS2V3(}Nq1uc9k8nP5 zm$75QEB+IDyRAGTx6SYfPlBu%vrcAgKBOc!L(QK^SHASOw`GrO5eCcMcdmky%oMY( zT-3-<ml}%ACqc!}bZy}{6U>TzX1FD<eXE`k${J_Ie$PWs%6n`&tzOXGvo%xMKP|Uw zaqOGZ=YN+Nc4Q%U?(L_6olyHdd7Fw03m`ph1l;EQrCdIpRE#Y+9P<;(i;n7HI66%6 zJ-unZ(MA?_VyPq;r(^Xgl)uH|MRBCl!VM1%9ox1a7pCE$1t3h3j~Y8L+#X<JAcUlM zO1~O{C|i_<W?a_=s^tLDD*5~{Di|9cV8ZWoayF+|SCkaMQS*{JFA7C7`?p2lO{;sx zv;dzFKlKLg=`wVa`*%Xm+2Y8ngYd57r0^yG)x+xH4Sk<YBzI{{(PbzT&YZs*i&)1i z0k5yul_-PD9ZFwmDVw!3@?W#NDwAn5kmayWB|n;+Ur4O)q2e&H-EcS`ageTwtXX|? ztE!uNRU&H06*>?tz>kJJflP}|3VEew)KyN7h!le}rB5dWuMX*txAWul^DO1aalj)p zE{LcLCUQWr118yK4F~im<8*+;VTW!O9-9ZEE}O5bhL`yIr`qHYm@{*b^lQ~hB}Q=e z!C6+Ef-7!7k>uA=(o1UsEnJH+9N*h6PM{yBke><sek45q5)@75Ozu4)fAY|w{Z;*I zns@BygKw$W)$@KD1!_L{)`(cD9FC1fw;bYXDsjOBLrggQAAh!FFRezGlCz>`Qlpi{ z&|<By3n5Zs#LHG>n}kjDQNX6AJ50d%$VKj{Vt3CqKelO}>N1com&L1ILm_2iO4VQ| zxE(mf@IPijRyHNi7TzH$=Y&j)#AYzgf}+JZza>jH%r`Hoxk#s@j<3t2=(uUEs#%9F zTPeQ0)YhbF;AXaPU1b5+_|gQ6n&mTRE{MDOoTWp+E29*Qc7mUCpF#<AeJX80wb_x7 zQj;2z25PD->{q3P{qTbImt2|eUAMq{IG?aW_RvUOo-cOiRr)PAl>ZOCDhv#fVM^G- z=A@V3Gxg9GBe(0)rqBR(Wx*vI0~af2N&lc;5wOxz)<u>l)=i!dTz=1)JNry{6e8Q* zSfe8{Q$~lb5lTT!Ypt}bA{rmS&+)D_VXjlX?R>1Z%oJ<pY6pE5-p(Eq+aqmr&rO^a z%k+FGQf<8|f^pW<?$Pa(1k&@~cy%MD*l5ujs(C}fPbsIE<Y+We^6dsHk`+Y{OPJxS z)EW)&F$~&!`UU4v9F19{RiTg3Jvw=))(~nl)@}ZK-W9f?!`qosRLi_`lp)st*SuWa z90EFJiFfvy#rw)Ps^x$T_~Z~{eTGa6CqiAKiIiAfdT1q_mh;0hmUX7OG(%Mj=99}q zEUkT4!hXKg8V-8>EPEnX=qJMEB0@SA^crLO@Ezm?QvWOIx|t-{c*V4jL3B!U4ooC* zc-wZ%D^`CMPp$su6_+c_18nHhIjH-&CiiL&tx$872*-pYm;=#n**RTt)82+H1U7w1 zBRw_pYp_TK#=3R8MBV)6Ush4qntMeiXzhqf%btG7X8c6f$1=PqCe@7-0OU|(_lCG# z#%Mxzumx?=!H#OjboJ|<9U6nYeP-(U(l*?c+9~P<C$=YoFM!ceN{dLr-nZekL)T+G zw5OD2!#y?YX1~aKw#sTjmv@*bt-cHNExpfN&QX4=tOjP&>eIf1=Jb7$)NQ_isZ-z5 ziSqu?vYF53if+G~_BGTeV@;Z)a!4+$#5f@9fYI%H0<C9p1~2SwNs;pocbo~Sl$4d4 z(fa@<0|(n2M;c|lOFy=j+KYlM9&<7RxtY%$9&Gk#;J{h~!Pb2HA+fuW(rHkqqh=d3 zD5xtnCs-^tuNA}Em*w(juhp(QCrf&YoAVOZXHdL^H%44{s|@YN9|t?dOpMHch9auG zC%n9(Me%`kp6?S$X8OPwm9Cto@)9LYpj}-a?Z!HXemNH~Ju+^+uijd?(AgDzem|O^ zV86s-vAZ8T4=w>0vFzp=t2&8B2fWI?5=X2OTQr@KN5I(Zzta*w;RR(v&sw{8>nZ_k zE7!v@x57hc(HMBXF3g^%Ti5FKFTo?;IhZec1tZc|#Q!U~19nNyt$V!42=Nm)H<KMx zG`7FDaeq3+-DquRTD`%i?UJ?054!b+kmGtXJms6MS(x-?w?*gUWM?<ipHqjzZYo2x zJp9Zw)3}7&O$WrJT@=ETt+kL7s~-~(m$;jC8Vy;F3_AJGZMwaBI@rb;1=j8P+19pJ z^x3-T(&(ABqyy-HHI-9VkskEXE55DksAo%xZM~e!B;P*?xw6v{mngyOpis(<oKA^r z<)<haZZ~0=g|I5e$``7xvE+FRV15CnAk#$E(Ypk-^A|>{dRgB5k#MjG+RIP=ecB3z z$98D(>`5ZzOvfS?$_L=-BCx-xvOg&^@K(Ye_V8r)l~$|!?ea##DI;=B^h(lDt0C>@ zAt(KWR^(a|Lh+v9dJ}oDu`rCmw=K?<6VFQK+Y=l=GIN-bSUPFeOSBNNudwQP9Sf$g z0*E8i{sj{y*r=G{uuD!02z`HCtuH)&Y>lJ2yyEMhYFvhl1A$TD!g3qsVnxQ~`e-SN zl=zJMP4D7`Gs*YBsfcN%dnJZ6s*+x|YSwN)d}E>>I+@%PzaEDz2gEV!V(VeP5`$;9 z4b$}{@7x3tdE*edxe3a&jKW{^xx?6-Wgo4jaXVyC5ywzo<TUtzcq&pGdj2KPe{g&& zi@mfMM)a82$u&vGVs55w*(T{h9XfbFUq*G5ZfVpwzMN(x(hma|PErTD#aoeuMyhYd z92-1TBq-)|1Y6Kj<vuTfFv8Sj!!m1HgJmx*k6N-68`Qx{PhbWAHONQ$p2DLWq>nb$ z^eoq0QU0&cs`l23ZTu%#MDhc6hXVbp5(5_9(+dENSMnW^oe5AuLjCId?|I0z4{?wG zw9)51Abj2V*5#Ghxab-P%gRox047Cl)`iXNY*tlLI1%AXZB)8ZXm9|z{gOSBBT*jB zc@!N978-V2Y79~6Zi>`g@tR2dA0zZxem)#>3EiB08O|8vj_)4*?#ayvCwfpREL&66 zamC3fYd%F9FfRRImS3VxqAX;8Fp{TPj=6s7k-#rtcR8DDFf$PAq5s3$w<<-Q4p%B7 zek{GC#aoGlmvzU2Cw)<dX--Fh$R{NC5GR0|Hm>u~uvj5U^~yHYLH0q=ilsq#JW1x2 z@q?jp(aHG9o%u6hEAI)R3xVH0cE)sOai9mjkdPyR_dYE`j0?imr#tEsmAX<|rvOaC z59Pvpk()+-cyht`XQFbsAo@a<upM|Hm<#g)H5Y!Q{JyU|{uU?`{G&vcVqi5NGb}y* z89UNMM_&4)s!-isMTdNugK1l|AgiP(_s>v1!lUz@%yEc;F8h_k78RE<9Xb~Hb(qP} zCycOY_g1Z0$HGWq$>67=J{JQ2LmO0jz9PPuF78<LImpGrD>}Ghz@6x%BP3SC<}0|e zb?EqB5;*LWL%gF+CqDZ!Y3#;+{qR;J);5ZB_7Vo?)YKt~ZbtfksWXD=cIrl%-uqHR z59i9CCi4o#com}E=C=^%ek7P!^5gcf%X}m2zV~)AME!fX1l+0Q*C>sKY9ls(R${8m z@mpNWh$+M7rv&=k9qQFGE4En;CH2eg6-SsI)_xPrqRp$h?e`YiR&o@Vn?QR1qklY( zaLgPO*xW=2xQI)6CSxx3x1R%cdt|&`nO<1-FW~Z@V#!ln^5J9vLbn3ty-iv{ypi$; z<?Z>h0?6nD>vwGtX3rdHZ=S@O9NJX$@PuE>@?^X*O!y<Cil|oPa}e&POi@K6PC>6E zo2JNjzXe1=f|4H?SW`Bab8J7j#d%Uy67T2T2iae-xgV3yuNW{_mbCP0xsgTJ*n36k zF-vo9H68TOC5m~|CwAe9gR>jY6u>xqd}tGOcXVDw9RZK_hAv1^UU){N(TWVOUCvHh zmw;ZP@cWQY9f2kjI5fTigKUXfx2AH|7c78S*(|>!eUlrjEBv=%DmU@!5wGB%E&TIc zXdb5%^y9JJb#7KYQ-=4&p}M{w%2Lg82SB73RrOv{G3>z|zgRe6tcl$eTIBJ;xTYS@ z<7n$+)Cw#69VHvs1T`=z2FD^Vk}Getx%k8)2tP~CW56QZ+f~;xT=1DJm|_FV!uuv* z8%w5Be{V~!S#HnI9o)|GL$iNJ!?IV%TJ!WS;GEs34(7gSYoJ{`<=u>Y=FR)<K#;rD z+yzb00K*dZveo_V?0~k=UOb|bbnD&co8z}>du*9?LqQcM=Rfbtb=SP$5>x(FO~d~4 zvc?^;UYLnXOMnZ0{xRd#)lM7Br*CIR+p6ntvsc5d!8=e#XnZ$TBSyAw!_E1@$&7ux zNPaC(3JK0V`2E8*tErccmXZss$xYHnh?@ZcQ}5CRe`&8q?(k(>vJg`DdekW-Gw!Fx z8CT+T#)DDU!cD_yfR?Jj%%L!$(#KHLT4D_`#q=_^6(TLw1bL$0+5=mHTm(QndNc#s zxy77;MytS4cwKDz_NaqfS&hS57XO!gAkfA7?m^o6$8H2ID(<m6kOC<3VT_TsaVKyy zED+%~sQ7RF&M)cvK=3*0--9@Xf35dc5@O1Wjw?$0)h>Gj$Jfsv3#&AcFv<XsSV^ik zxhX_fk=J>iZ7WALSsgB1cogBFcsfS{;d7r|i{^5)@>`WM`*2T5srHlP1&J7BY`5gJ zULF|djPUAd*N&A!o;~eo=XYAT*y>Y#oUTCprg)E`DyFX;<s#8({?Ntr9^_gNPk)s5 zWoe*i4!ARldWsT_y*;?+*(|cHT&5!8bzt_@%PUg_m-+??Wl@UK1#`uqJb@x`A%7uc z(^llE+x$B%q&JQ%H9MgVnR-d}IRx<L$|C^1mYqh|xfz3=NGXSi80z`wY|8|B#uH_? z>N{s%ksFY-3M(v`k5;@(Xs~r4i_uzH(0(%RCwsI@)cPW_9h5QX=T#`QnIiF9-6vIy zvre)^t0K`~*48wKAtR(V&%VvOy7^kQ{+-&>gr54ljZP{DkK)=epyDu6K^GhQ9-GRl zEVvTgB3HU|Cd=Q*^z-^cUBs_ote!{=a{LzRqt;wKT0Y__sr!K$$j8vHKa{!4eby<@ z39=oESZ|$8-aujszeXMz=xz16ecz!_#hT-HW+#J!LFb1clr5zPX+^(d;70;km&abO z12+XEb~9}(RkVsZWw`LdOhOzR5zpUR)hhQM=~jr?3umxAQFM$_6I+vU=>2TN=4;d# zBPB;ZvCHuB0&AquUs&-RVUUpVq&43DuE^IYVcK*2YbJNG?!YhQMBSPV_9%5v%^7Ic zuEo~5@q6Luv^W31dK};19S5hhk_vQHsXX5UfmVFCVa=l9?(R~UIutSIbnhUr?_ZGG zjHX1_*2<@ZFNMI>B<uUB-cw20uM3*HIzGB!3x4h!IKKmiK>%ELmGKhDa(^6;lbFgC z--C*8O;)pGB&ZiP^RFRvi~;F#(rppMJyo3;PjP3_(apGSSqOV*wCAhosqion=Wn%} zsax$i>6b5==cdbOI~1rp_UU?+gzw6zSO2u@?;cekRd?j3s^YrJ)*X;UoPA0SVi0*) z<-C|kIpo@i211IK7J{M>bA=-m&5_PIQY%%Z;^2`;uy}2d=c;f~)8m<ru8xbFPJVLh zc{Y!uZ4H~G%uUPvhgkenyo)%r-aQ#Hx%syO4dPbnDnTOiHM9q<?=;iEPxM-1%DO$& zt^x@K_c<Cg!@r1;`I=KEr+<1a5k}kg%9ZfZDkP<IcUr$F0CSMs*|(U$NG{AzvtIo9 zY^z}@>T4P~j5!mBw?(meCX9<ZgNoW7>m6`LG(iVvNawa%=z7rZA<Vq>&2(JljVFG* zl#k2N;aIx@U<p}ECzm-L!)(k&o}gdw6<B;x68QvT31Vuc>*d81CKd7JnoHfl(W)v3 zKFXKg`~Zd~*o_3q6_(li(l+C}k<b01(k|@w6#g>W`HnKuKU7H_O_BDslJUtTW1FuV zlo^hskf}>i5s8nXP|_dO3Y3uuKwSN--`vsV;Ks-0kd<nq$&tq^rv+_#`kpNb1(O8o z6b}(YQ5(W|CtUgY++Y;{1%_(OZM%1syrdRcTK84kg(Jo6jA{<&k;gNU4Mx0Q0W+jl zqw&jt1t*&V7q1q`z3s})d(*?fxv(YEm>qB{#*Oim;+V&oLVQp$9<Y74fuYi1sy3}e z5)5d@K-D2$=tmN67eO$u3Cq;u$#-DlD-&@*SAEBMA^Et-%c`%o+D$qv!iuJB%U;k6 zK=UcHt*&ZvZ;_DwGLXICd_KJPgQ!OtF?V=R_O;8qT3qEu>QiK)+~}sAX{Y8qyNX1# zccfKZShS3>pdvmZyF>OD4uw-adby*nZ_rLq6I61F{yn!`1Z_~5pt@Rm34f)dbk}ya zWvu5t)Z3~-bn@Jdhn@8EBZ&WTPSUqtcl9JBC)`~c+HvMFT%L|B(ezV<>p^RYtUP@s zu7f=I((Ci5g!_)E$)?K8MTNMF6WZ25dehLfbZqk)iyD6IM@qaxD2cIM7WT^+QDF$M zPDxWW#YgHa+Xkx^apc(gdn%8N<gLj9bOnacc^X1FFU|~PACYYUT}nDThf*1M4<=Z1 zqd^!vfzc0t`+24;Tg^lS8>=JOymH-rWMGSKz9Zf_rz^oIg!DNSmz_r@yK=9nvsK&` zEwXwS3V^$L(GQT6@hZ8Dw8{cu<BKSm=S{)zU%{&L6jbQHE@<;JmZ(y1<_(c~`JtvN z+8jB~$P9LgH-=NV;jgzr2l@;U_0JudT_qxRhXeQ5Xz)_2vS#dI!o7y;@7%wso$GPH zD<v?gen(dfWQC!%z>k@|MA!tCZcrvbABkVi_ekQi1CRBc7F-uEzly(7d2PS?9R3QX zIJE{hrCWQL*iTDTjPMe^Y%}=PJK8suP1u((>PMX^lRi8M3Rr&wrhosUIzGpN?TAm? z50TNIJE+2MD_yPuWxx?#7x|r8z5rHxs4Gy8q5G0?`+1G~hJFP3G?QHbaq(HJ-}vI1 zgSnfwJvx04xI`bQq)bWlR(_-Ty~S9&%)3#O7K>>_=u;6+aEP-O*|J1@X243AP3c}% znm0kr<<U{$TO>|g)kD)x2|!AgIn8o?BsiN`Z6OWeg6=okJiGB{ER!5@^{Za&G<3-- zk?%`PAPZ70&j~ldd8Xjr;ofXD;oi1?8(AGZG*Q>L6rxCHtC@W0#D*3V_NC=^tiP&! z(}k6@VY)FsUEF&I>h+_hU;z;>VX3PSOon=XV>vW<ni>Ri9NYY7zeuEa>hlfDc)L_+ zhzL{z^hAAOz3I@x<LIWa{(#l<E&IYrOR80;=C#K$0fou|A+g>cTy;v$F0lG~0B5Ja z?;!^Fm11~0j)-~BywgeI^*Cgabs*;EYVs_<y5h`HLwSR4dRrpl(IaWIzmS$xLU-jp z7Y{Jwg(T#`!m(@#?77kZv`{R|@5*#}Xz;iHj~p?E_7dU}`O)d_@u8d&x#nEzH;^U! zIu3CU!7X8L%ux$rD2`v)2*hbEsF>AFc`iH}*#Dz^@PRiakVS^pB0q&*5%<%9{tLg< z>&gQvIyGbAr$0k>Tj=@j^3CZavBRU;kuswcWl%Sk<IXjg9c{@n^3qmhUai+XZEHcH znEx0550^P>?zg1VGtxuiNCQ!l>=ELz2pU^X8wQWj)V<+9p_+4HB1JUDX+oZr02Lnj zEr09)`0Z0WaK;?X72bDR0&bOE!!A}&bEUMt`SLvn67tFc$w>Nc0A%&_nyA_A&fPC) z0jv9Y+_^grfGPzCF}N+pQuVWju0rpPK>I<vMbEy_m!_smTDTzZt&^@Zb($wmwxoAA z3zh{pQvEgcpm{fyiAbm{XV~IYh(S)(@R9zg5Xh@PA2xDNVrZ4O8;uwm9vcQhc=q?u z1g4ErJSdSZzbVH3Y4t5;l62eqc#u0kWF`08mT`(lcuh{W0gN~)))_d(lU45xd8kBt z%LwIa8Y~fXPK&OEJ1VW{fmZ5f#nt9K0i>byKEWSIYd<VYa^+F@&_TYK{4mbNy3fWq zbc@cRi9YSyre22hqPZ&jP{d|uVqrtv;h2@nEC-<4z_TB~*MP1}%bCOJ1)YDkoI`l0 zVz!)J&04_oODMUxo~CMsB|}iI^A~<>uROI*)+$l)Xh#LexPH}5_nY!QS#p^n45;m& z*BmU-7jybuoWp9Wb2lG3vu%I6yjABXNeam7UmG*CiJsX%-KO4hZ;o|$?eS3g>Tnm+ z8Hl*4--c;J24Pm9QprZ^5=LT7ta0_Zoe=C(Df+-7E$y9O_*Nx<iTx0pN20@Pn@3fa zg?Ul3ROQ?rb>ffG2!tmFDw><@U^aNzK5hE8IIT~Of7TMD#mw#zsn6^VyJbcr_p{U8 zak5D-KKb#f%ii!^cIp%>;v`yfY-FxR>=Cxj*Pr5YlwfR*Y#1U6SQelT)R(@-6s;Nm zi{6!OyXUvo;}!7yNh?6APv(L(h<S48a&fxYR-;+?&~c1kl=i@>m0(ZAqAaW<-ypdM zb0DdN54-eLbInZ}N1fB(_`|HHF$ePQ1#W*1wD|E$>e+{bg5regEL~;+j=g`z+d<p` z=fGY5C6#x4h}9l#5Z9B5U{(NbQ5P619|aQmg!dX+3Vy~to}f0lxPJcO3E6Z0rUqO= zHJO`w0&p4JIAf|ztC@;ojdK>6t)!_@Q)Oq8@j<q4RDqkoiKFT?`_XPG=Geo;nycw& zruaT3+0q(idszEMCrSk;byEFS$d{ij<e{C?9~Q=AORh{S!5@XEV&Z3}5>bl3JFT?( z%hisZ=bQFVxsP?fY#pC(JgT~2Fp`C)yjqZpmMf1A<A!E~LuUrn&N#&%ATWT*uvz>^ zT~0&V38(f9<|Sv5+LmrMZ!*sCsWXy(%$w~=L;ZOVHL)M6Lx<^!<)ODi{aRNBbyc`U zy3It;<*6EJ3zNwPlbD-N01nKZ(=no}NWwqli!9ioLV8yLLkL&8(Js55Behuq5uPfR z3A+rUylky{qR73*9_RI?J&#lM%+%S#Zb*Eow)0DPhIV^tfJLpg;s#-%#N5K*;N9Ds zQXB&Asc&Nzd5AF8bNG+I;%VA`AK1No1jXn3*IxKhxrB*DAQ_=KvDY?$oI};d%}>yY z*&<87)WcuI;%FNvflsFj@WyN%d_3*_Wz~5{2v=7uF(Q-7owB4WmIeH$D9~aMh7x0Z zZ653oXoDOZ^f%s#;ZY|=rL9Q<{2piK-0`>DwW(J{Q%ldKB4$^Q`D!9^r6)}rmam7Z zMeM%cEw}K^bj?X}Nw@0gk&l+4npun?Uf0|LWG4|`NUe>ti~4#DCg3Ao@Bi)}v^#Pl za<Vu+hy9PD%=h<~XKM$Z!0*7FK9b1|m8B0l);CtlBvbb176}d$2O`^ptDkrB(tQ2_ zXffUB+lsmnqZeV()9DS1DZ>g&?2d3QguO`UHOYmk5MT>9qAz*nWw(vP?~8VNKKe=b z-%55*i5^Fz%BEYueT{}ZXd0n?Z%N;A`zwicsi)LHz{Wl;-OQ!d#Y5oPS@W=Do2mDn zM_dMySh%NU6s>3YvWU>B#H#1k<)`MZat-n?kIrSHpg&c~5n8Zmv2MeYMBGg9+7|Z_ zwG3<e;+$!q7KDi(^1JtTZOZ=C?$z|uu$0G$^iq|<L%lXm&n8tQEsgc~S9o@+D`Rd+ z`n>%JxkqwRv6MWyi}9|na>;N|;pxk6$S@jda$C95ER{4_obXj$cOa%-8IX05g?ue- z>*e3V=*2YXIe=;h+)_oRT-)LUj}wQ&*Wdp@<0|dzij3y*Jz<rWHk6;*CY0Igy6(wL zU8R`X%B$PM&vL65u>fp5=#Y*fR5tlfG7&l|E!L~4IC8?1&okHbA{n1uq=<CuIhIPH zk;8=&<Z|Rm;Synu?bYI(HtgYA>qlO>L1ca=N0c;Xn<J-mT?vUroxn$9d3Ao&JpDtc z&xKFhc6O}SNFJg3$s`B<exBZ&uCc|bL3nif+lrxI2sd?)$3g?Ko~IL`0`GO1SD`gu zrI}$=BjRJY!)h>|QEL2ul(t2Ox4Ki6YnLsfcrYs!BKQksGn=<l_jqf@GemHfEE(gI z{jNl)RrBqEXN7?8BGsgvW8}J}KOsFpHo=luLrL$e@A_1@r>sx-<H18r#%lk2u%dqH zGk(<xak1RIBe74PSa1#8ZWQFK>t)-MRnBNJPOhT~{}$K-<K(*$***XztK=6~O|k_M z_H_~KWK;nQ7a~I$kcEWVS873w+S02JDSD{RH0p0_Ng#2DQWR@c*&@2ftMD+f#s3O$ zG4x0j!&btDX=ibPMu<t4Pz-NWJhcw^uhY(;gRCAZb~;R*aes@#0URr1sJbgU6MQa6 zVL?;VrdAvAc#JQsB+4onZs$MaWpr&M!p@%z_G~rGpT3sv0soC-n;p1rj;{?sXsR%| zhMvk_rge4v%cM75DB9E)L;nCBnlL!NAfV!5ok4n#bw#(_eu!`AbVd;`-R<L&9}dgR zDdqA?x=h<LGo=bOl{)cl)s?hw&*d1B$EhJn*=$G(=pXXKl<C$VDyE^aTiwvXx7_nF z)y3*rMW51m(VSWJSf~3G@n-K5$(?fF@lUY%h?=F5aO|yIzur+e-gx{c6CHZcMd#&7 zqwtbAwNS>mQ<m@ra+D#SVX6{kr##U0OD?A5q)EaWi*MW58#C}0xn{PUzxG`5YH=hR z31X($v{&-B&w-hpXuN+i-$F&=ZS>mB=kB5eNuH66*2;@BrS)<#HJj?i{j0uEN)T<n zKAw)V$#GeMUc&cIzw@ys9?ML@9JTt!d;fDQ<{pW0A*x_Gzhku62|{Ed8;yd1jqLq( zqT2C=UqXT)>go$_y=k)Sx$>wX{=-C`9(gWVsX=y=^eXR^ag2Q@`*(?Qe+?wj8qyab zpS~%AQ~f+?osU~ie6jMP=9fNcUo-K{+MjL;P;}GUV=Hez-%<Iz`kgOeZZZ*t7ZkP< z?3%C`XAUm?I=c^vgQNnvfwg}T;SQU<r){LPrG^uWz)`!qz;0Ux!5jf#-~hqU=xVT{ z2e2+c;YPz<EU{DnYAF92wXNd0rJIR2<I1z)RXjVBsck9NRR!UIySu;!4l9ZbXubpM zKgk9g?A)<Bpz9w|jF}y0cFjF9XKQ*N%D+DYOmv-^ty?!zs$*<*m&MM=gy|EzsZhx~ z*C08UF&Q@_?8|x3Hvq&X_k?E%x~+1{EzSeaGxzBPCWjuzxBi~gS}nuT;l=p$@7}v) zJCS##M%<s^w((>^G5QHdig=4=4I{*BOGaY^fHeQ2>>lVt^Rb9br*yEizGQT)!it#% z+wxB<)msMl_}AfN_HB7|7-~L-TP#(nKuz`;dv6o+>m`4%W4Avef@S@|bFN#8)7oK( zhaX&#o*`XinAS#HN(|yTmso6fKs4=X`VjnA;@YX{?}dLKIqYC%Q;N-ggh}I6iK7-e z>f9?E>oUasE{V%)bAJdfo|Te^Smy*dC!hh=5cboK1|J6JesvR0J~kK{4(>MSaiVG} zFSvhn@3P}OXVd`oC5D!Y8Y%ypBVfkJr?rS<o`*3w4~kwp<wkPtX3(bv%8BwM|Mz>( zQO>wMp206?j;_t9V>H43xK)8Lv#?ljT1)9w>%rn^Zhlg5{YFvFbu~%{OyRA?9rABq zVd~Y4m~f0o5Q?bb%P^A_rh4%JFCu_pYll@m5qas|>r&X_)Kto>40h7lo$=VUeE8sP zuZ`r_Gk@(;yR*h&iidYzw>N<RA3YmO4EH9$x~jii1Gv`X>eAnGW4hF(j|=_-=dIst zl68;D&<!^wn3pM63EHBvV9)z?2edu*F#V!M3N9zPsm^z};Vj3|t95gw`r@Pnf$(XR zcDF2gvQ1P`VFsh!e-=yYQLHQaTC*zyN=l%-p|wCI@m!wmvdWznJw;h+Z%~l_6Z9!F zU@4zV3MJ#orzyeyC}T3O50nM75c7$AN!hBo1!O<UvE*nSpnIUTUA$*QnEs!DWWHtS z;eDpg{4h4ygIa&)jNynW=yHfHiKj0g2zls<yDd@@*vCD{;&$aQg&>P&{1RQu*B02| z27WEk`}$7pb@LEPzDkkEAA@m#z{rH@9In$*YyDfNzH>Oj-CU)0D2`YvhP1IbHeErK zb>)34Z+%~KTCz3tgi^yg?n~+Z_ijJUC;OYZQV$K%JD?m37RM}O9M1lc+t!JW`fmW3 z8}7=JvLH3KA%k&8XkxKp=WvbkT3BfSg$-bD&Pctr$W6Gld6$q{FSA~hzWxT;hS8mo zh;^|(gEu!FNDc99t&Gi$brCG)bM!-OkGc=pj1dxw`|A^hb<M}X+OBJoI)`mQ>u;Pw zdL$P@>nW~coSI=yb8GLR)Xn_QJot|o`ee%BS2JBTH+*dFk6U<d6HraPL+a@w{ZSMm zty}wN;_|am_TCs}y!tGmSG!Th+5&*bd5RBDD@Y9(EBmCx$I@+ugYau)^+!Bumu?#T zr?Cy#-v|ucWN$vWUHp9wSOkJmY%u#qo1HeBs6R@`W)7{CqJ3X(1YwvFbkw2i;shZ! zI^4%4|B&!mmwN~ukuW2uol>ch;^7(YnB>FwQxRxQ5LqEZ8<vcM^A8-J*=k?|B#=AH z?<DE)))WtkkN#CkIs?7<(er$_xk|Z?ssSiG?LQR0JIq#^fL6?0*F&!7rUEL}^~b^; zpW<w;|EC%uT*Y10vXm}SU+Ja&<Ru0f{zEG|tO4CUZ>yJj_JEcrvA3QYL`<aAr)Z4B zXIh#NTQfj9gv|N};1w(Vwy7z+LFm-hnmDFP!}*Ibk<-u0uYQ{u&;D}6k$EE=Q)+a6 z?XZd%XOqzl3yIW9_oyzh$?aL+Z#|w`8-xQg>OaT%F)><rv@MBT=s9)urTgs>oz)jw z4+cIacMP(>N6u)UDot?&x?5W=x)?3#pA<lN1-832h<#fxxWUpm;gt;`wxCuz>JXvH z?~A&<Qs=sLkv*V6i=hWa;PJ)PeeOQ>3pPtv`Z%<hn%fKfo6h0L_}>-oNafQL0^)<e z)}ri1|A=kMK@a_e_gCs{1y{NIX}ceG-RrL?&tKqPzqA@%sbYjVfuq|anal64-9)L{ zLFeWwRHvWq0AC96j@;fzY4rIzy)z@9H@wlh{o?w${~VdMi#1MIYJ?=$KF`+0{!r7O zrq0d-o2zNbDo1s@2m>IY!lSJ}Y^%QtO!u6c6Tg;#c%6Jq14MppqOMGX`)WZ(?~tY7 zC+2t^%A(RBS~%l&KF?jgY^?trz=l8ahuN{XR5fubifzeSSuKPrapYW>I&80xvNi`p zR(U-%)D)MSz4c5*D}xoZGcLntFgNdic1hJc9a87*7z!uEr3-vNz3hG5Qzw7di8Mp~ zY-LfdO*Oepqi6ttc#0y$-#q<~wWCq7HqAVA1$k8T&Y>Sgfp!A{0J?wu(=G&8C;G@p zPKqqx9tWzKbdrR|6GwATIQ|0e%xafg$#~T3ep6l08lkDa|A>JxN>o;NbETSD;P_sN zn5Q|6=dp4Clv}u6xhNjMxcB%2WQVZ$xZz_mvQ`iZ$eI=_M_~6yY5x=lp>2zyD2cOk zI<ms$Uk^ab8|-M&RCwzO8+`stu@l%aq^JUqPCjMB-RClR_UMc>{nGB!oiDKUgevdW zQ!C<c<AAj+X8_c#{q9IgSk({#__nz#8a(8XR21D4;2)XDx|)od4|nH@LGg&$^iK5* zjVo31cmyeFrOwPWyyl(DNnw)NF?8yK*Si<`PYV(_wi`i8r&lwb8)!}q)sNRt>BUgJ z{&i*Q0JbP|o6cua!>oNuaGQDXT91w2#r11}|4+Lp2@Tl%`CWaFrhZRX7&~y@{_5Y@ z77!b9B3$|co4<ZOO$X$_iFl^yPJ?0#o!)&v;{y9;_`KD<rZfW$tv$T*%eF8wOmU{9 zRP?}eOHvr}ySt>R2IO&ECxj`{IZttmce-nNe09Kwh~26@*)KMC;{fPwW%}il>fSHl zdh6?!#f?TP3~kuXMC$*~HO8SebZl2tZ2iLz!6CTPW6q|8<j~!hbWUoi4>v7K>YBgS zb!SPR%}0aBh6MV!@mApI5c-LS^#{y~<|h~Fx}&WQwL@605}R|W3dDj@6}n2c`dO>e z%RUsnA5d*j$>H4s&rChlyjk3)E$#KMM1PrE>W<{IvvttR4KH3@KK)lG0hq-?lp6K` zRQ&$JZIwP3F^XmDPQD8JTxn7CTvSa?H7sbs6Kn*#Jfg_<V((TAT@bSvJTFPhz;6*~ zh<C6yk9-K@U^<Sd$>r<QS)pQO$JfERR&?^%#~|r)n`YTr4P_!3AJD%wBk-Cm1>lr= zYJ(Lfsc9nnxm`WTa9@)Wo3UCcmhz;8ka_)i1Eq6OFZ}V|)&}9U39Q=*c2sqZ?0x<$ zWTyCX3a0R5$m$Ao%H-`A4rz8&GJn#6KGlr3-+)QD1jGf*9o*wu5_v1h0EHE3pNld| zh`y41(Zj6=;V!J~qk2m;-7t|Cg9?)JfkZ5vR|J&?tRjjR$_>k7JYR{}=w!MPZ{ z%0W|iJo&m(9%sX*)y3Q?)zE1b#(k3*KOD%Hz=M{!(HX;>G_ffZ(UTaj&`=xEf2a7o z)MiRjzYj{jQ!e{LVThX=&Lm4K4v?j4defg43PWC<8$5NrC-N5?eQvrgCEYWFWzgQ7 zI-?`2u3vLVB){vByNOMnx`MFH4I%fzr#ZTTH`KbH?J9$7y)H~gR^RSqgrL(BeDb9S zjfJMq8maWW=jv->0RG~K%4=p)`u8~JgZXzTC!c?OvQ6eqB$e_4Rq%RTkGdsZ8bFs% zMNzJMcf9%yI<04;GY@i#-R12w|J>;S4VTbLk;9^<y;NLYVy{JPnWWcY)*`X7(>~6% zFXY-k@otOf$lkMUP$JkQ!HAp@h;y$aY3fEj1rTD5d#mRyBavy0z7-`)+h#V#A0PWT zy<<7+CY1lIHAjot;BvJ1OdEg*wlVb?qdcTwqe4?X$Pnp_K1HJ8Kq+ADyKvX)>DRL% z5OVtc+WAi%wjo!^503@3$5a*{Li^3(_BGq{a)Lpuh{rApCoqK8tyS1ohUt9~vkO&9 zCS(Coi}!_K4ByXlEOsNKvGG$Z`r2#W6R-9|-1c%n!(0rW<ReoGGRPbiqfU0JOY9G` zY*%HB7COc|+WAe5GLYawc{u8s1RKHo^BiGvyYj}jNvQuI10E`ganaT>OZk$k3vU&i zc`YRx6>jkd;_>vC_1FS4$%RiwyO?1v(Jsa-f^ufjuDjt^SMJIX`qsZKifo{BYAJz8 zzh@#hN0n|^`aY79kJ(aapb4N)Vgg*>d_s<}q{Q>T%yEoa4Ot(CQF9)qw=VauhP;nV zc=?qI2t@>;#C~I&eb&tSbI%PQN>k!ui(;+cj-0Uf|Fu<O>RhAB?@gAfj9Pf`cH4K4 zB)ngnc-8Urx2r*GC0wiPW4^lq@AfgDhts>(9DHU$Ri3izt1&2QKz!_89P1pA08>i7 zXzyQYM76g-c>d-aDToocSv#0%W!QLCt0aMKS3I>xm1?c~s1M<CnjW<#H;7jh>w#0t zyA(>*?bA;SGdqzl_G}@Tn_p3#53@1r%<}{H@x71F)01<pDV#HH^`hjHYd_cFbNyMd z|3zwjZrEMOHd6x!Zno%_1^^9NX=8K^0)k2n;#+<tcJU^2x@j8-fp2&$;*<lg<%e;K z9l;HV{dGQEqv|wrhE9W;H!sN2QSzEXV1s#)EvW07h^Olt`{7aN7l4|wH#f1s(swFf z9q{(K4|_M2(sXBJGkF(S^|Fx>f0&KNF+J0A!I59GWF#I9sk|->jW6On_uo4lg0vOx zoocKIk|`3&xn6r}<>XuzjGh&>$8Tpzt>If!0#QR`ud9MG=~2X1l+aoaa_;$;^#|Zu zaXjFY6Z)v^=Y~)J;trFOQVnMzhF9OPRCzh^yF$NIs-G>}AJ93hn56eGIEdt1v#u4o zByhKbNV)ltOYO(NASrXpzf$jL*TQ|UmNSb*4_tgwtal8j(9e$As;RLPHVGW9*6$xP zQ2o5lNiN1vI^P9ZNz2uV=7=nsbK`}diAE!wF7a*%<5_qk9C3J#zyDv!fFfrpbirYF z%^Wvtt&Xjg86kiENDZ^1Pn{VeI86zNGPT=ESyrO8qYRt_2R;W71s=MX1v(r2_>#Y+ zs{H^i;AA}}Um11SKQmoJXdwF6nK~rippehba^OY2aen9Xp$Cx9MocXsk(*|3r;q=i z>M=+APryapCUv13GTmXop)Px6s#aE40~F1`Q$rh-*--wp#^qWu(aUsTNYXsK`a+q! zy7ip9ecBWcOeT*;PpPXZaRsDZk<$+Zk|JsV$kPUZJhw>N*R-Z&;Gr_Er7DUW6QN@Y z&H379{GaPGD}mgz@(XjibJPKmm|%r)W%8NzP&e3oOjta{<Ni&QlhsIc=fAagEjs?D z26$`c@BR}AD=VtvvW;QG94q<$DqmX|H;~-`yU$wUG<1xLyAffZ#Wk%NZW=?!{nBRv zkSk4uBWF^AzcvI*Ttk)7^~RSVxK87#v-QbNBvnuA=a>bM$P+;=y#7$7o^Cnlz(M{P zaFAo@9@3i1V#FLkXc+EETqEdOguX8TIK#nViZ~^@^S0s>*W`){0DA(QYm8(%EkD{0 zM8O_S*6fkxn)8J+&hd~?Tc3=a73QuFJmVDY_Gw9JStltu0CQl7que?qi1uU~g7Xs% zsZ`-wPbi(L37;)0ur975To)rLqxSx9HbQy{`<><?nHIHJ^4I_TS`k4fmeY{<PpZ<9 z8^d}37P+TBPWSF{C<^w!D4Q;W4{NT7BwFiIZ{3$x&VVT|Kae3T3ph)l69)$Mw<1q$ z^QsRRr_V;B^!y6^pLQNNUKrlp=ep6ttI-I5+JohrBrsU&KPBv+ni$n6QNpr>X+Lgh zdK|(XHa}&l8_l)#>oa>>^ie9NGX`Vwr^Ek$T)lZ9l>7hwU#aNGmP$2)WUK5FW1Gnm zO@-7+WXl#}XfU!XWQjq@HkK@*tYgi-n`GY^yOCiAVXR~O-J^5P=l%Wt(fOmlIy3j& zujlJ}Uf1KoPHg8Y^}R)3LrSyG?w)z|d1>s9;cquG4qzq?vpIHwco!eAkUP%eI!*fC z7SE%D)D0h58gQB_4%6+}Rq<y$`1)k<cm^`0n$4}~;V?f|%(Hnl`O`nMcL03bkQ*?; z=k2p!Yj<suS}*ZMZnBakp=TB+0rDCP8<9VSrPY?hlr#MkDy2&<D4F{#BBJ=TSf&dk zxa%d9%F0|XJ!a;!nVu_Q$=``;d(Mmrslj$?y&|%1lz{exh${*+NiwBO_tLo9t|{22 zX*9XkRgDDfX_#PkHLHw@!jE3?w}8!zdLBKHg|&Ku`kZOiru<y^*)w`tQrtPae|o3K zLgP-CThN<dx6A-DeaWCD^JYhlqsBwJzRT`I=0nX8qi8JH<iC%M)C(PYjAxnCYuVHj zRNmFgY>RPg^D)z^#iex7;Z9$of4_Gr0Me-pRox9-)fGr`Oxtu_ie}s7Z-?394jjXd zA**68<nxj*i_;feUJUYVll=GH4VOy?e0G_`r!y~m{S49Ymr-W`F(=+yV3h&eF%Nvq zGD||)ojkI4hCj0-^#`#$^0?;{9=Za*>mRArkAjb9rsJ@mw1mqHW#sht{hYXabQrLi zE-I??9{CUGHa^~aDAOfAAr6ltqCcJc`XCbl?vw6olR61FcHv~|T$}Ue<$Q9^KbCgb z!79~P$}ZYa<=E~mK6E!QWA*)Xm1G&slBZt^L>%vHmtitcaT%_sD;|Gito8c?{J<@4 z&rx-MKD*B{zp*RW)TZ5HtA)XFhy^F1p4iqCdhdx0{)8M@UofR&E=HG2e<h*mOs*D0 zP2EsCK&q?tN@||6t8FehnKzv?`%abfzuz7p5$kSkes6#l8wNW6O;7z23xIXX+j)g8 z&S4RF5o<7Sak8S!<l@n;zH0uCRqZ|!oE2#X7^=}*e@iH~h;Wc&k3KdQ7igYR6;2x` zx5yrjli=~3;l~wL&1ad#$7ruV`Iz<Fh3!hRAK{h3PwFRR*6+4V3qPV>C%@l;sd`gf zOdGSaM)Dpj`+oJ5&o}Bc%h1*gzy5wp?k~9g45sJ*`3`;3s^?QT=<h;IrQPi$$DAC` zwzS1K1OgE4aVs-v5fqBr%QM)uBkQbU4mSMh*e(z*#TCC)PNa6(Il;$<H$Tx%Sv3ai zt+|(D!z!*tgzaXh-qi2_UG*IMb3OhHZPfETEcc4Qv38!bed>!E`e++9j)!jF#e&zS zymSn?m+d!C3;ZDpnTxJOgtM%_AVAO4g<=(z5pf=f*zR@US=wQx2mt#(6skfXmc?&- zCQIcCPq-Qsr@%V(>xDH3LItC9Jiq6gZ{jMCtZg8@oq_lM%>yRn!7Hs!<0*jO1V$zN z*0$$Wh(VJ1>=Ju2_((3Idsyg*6IY#f63YN;Uoy$tvo3(69JYFx7Y&oJr9xiz*caIi zle7-L&@wZtIYooUtS3r+6ko`EIUHm7c?tORoozgL4FnlB!b&;r(S?2lY&G9H6@Whg zdWI-$nX(stj5{`qu6lnf|C<W)*Kdt1lY0qsNr3?rEK5iVVFv4|G7~F1w;aUUqBe4K zwQ6wT_VrP=F7j<jF|IxxBUNDv<4vlcm>+~0<${iKSd@OCHz~D|$}*8ADzq53BtKM- zy%U?=HYP*;%yh%BT)xGjD7{vbs#bILVFWYn5_<zIeE>1a8Sl9Lz4dk9yHFPSw`SVU zJX1t_U#|^<+JaEu0zxrXuh}yLf88@H>XcZ`V(GsN<&hifcUoQedG8;8j<<6NtBIW) zH&!T!0>C2#?hBJ4@`n}%mxHK&_s_T$2Uit(&U6$a=9G9(__xk{{3pRH{x-%BI)>{k zwp0<%6LHHyMCPd`=Ru`4!7aJ;pOeTwsrgTVL*6s2`MX@5mrsmu)%m4!qoZ%Cma{u) zsFUazUxlhU>McQd-^*Bx#5gwC@x9bt<6JI_1R^V7@>KQgeAhp6#f7=obaxCy&etIF z+!i|nC*zr#ya0w|4^2S_vQ9vI%I_N7h0?h_g6?sISi@~8Zb;~#B_Y?wnNJbJr%&Ys z6LdpMGFlI1Wkj&{MRkfFC$Bm^oTnQW>*b`MNfO!|CBJ`^q`*fS`V=XdFZ{dWa{loq zhiLRrlgCeX!9?l8InmvHw*8fIEpQ~fi9CxG)_)dO0W8TsSr;T(c*`=3u|SC5X-8BD zw1s%K?X<KqcL5XitqA*X5&(7m{qjF!{!f|OoeomSt<J1vr%d^$^1rJnFWwn}AQk-U zP8izzwv66YY2F{6Dcr;+&E>~ji-Tr`O#SFkA4_MamlornU?^Y%_-zemKAr1)7mE0t zfb$DvEn8}GRr*oJP-%W4!vV0<Z$A;X#S_p%uiJHHjed>QInU^R3)T(W$*@;dsQqQ; zId^>3N^45Ce?Toaz|7twW{17dQ}E9ZboTg_NuPm<_59SZQ$uH+26#pBHx{A^u@JYW zlw$Ws#)|vd%A+BSZh)~Sp-T5nNH($JN10jW!R0*oq;k@bj9&`6f*=D_t82^xL`TB( z7(riT+iot+vELQ`1KMByFy5JiSQMU@WeHBLX4tvoiT^uf=u?mX0L5StU813kV)Kxi ze92>95Q4gIm`n{Ea{hzz`oXB&g6+Jh0V2ZKdNHv@v>VZSa7N^52@TyCV6(PcYOP}> zW+UQ>Jj-x-*8zO*2@dk>zCrT9^f0ylwzv<o?i&NKPv=H2jT#xTkKT)yi!$rTbq_7H z?dE8?Ldt9AyKVz0aQ(k!rQJo7*+t}+SLYcWV~C7g@>_8>NKsL_;egEs)LQ(iLP~Zr zEK?D~|DWQ>VendM<1@WtmfQjmmC{56kU*2$YN+{?03BM>eRlOGKARRRljvQP0XAhd zN<Rb|0zx5X(w8B#--GUs*;Xp)uypr*)$c5P!3nDOuhRgT=p_>+fEY~x_n?XFhLyav z!Z8(@S|x~gl};;FMa}lD>yHHUPDyCz(=`UpA_p%k6~Ki%DrK>MpRZIK#G5Y6v#B<Q zDezGG{{5fx(+hK^zO<l3&YP*F<f$@Bqb%ec3P5{0w1@=65~=m^tSC4I+@hf#V>Wny zkhyj|iVrc}rACE$z3ndl#$@tjSp*9YbS5T<NhAZ<h%7<87Uyb0F}oEAw;a~No1Qp$ zcfQPt>~*n7!}iG}VB;M6c%&%;FVvxvm2V*|@ZcJq;v#|7y*r@wpjCrXC4JG9+`Z!K z<e?Yww%aBjBanxf?DVgP1I=>HZA?RaRP`Sck3$`+nEh7cT|yoOY`on-oFq~b{46{J zn}EZ#^m#Ih)uH_X%YI9t3amWTFL+oG-xAwbx^_iGNTISwEJU92)1KMKMkgUHIK)|P zSC8^`(@d}!1~6X!u@Z4@76d#cCb`>fWXM#1m759V{q_VP32*zXG_h;tgvu{}Cl&W; zf{t>4e~B@S+*vu)8H1Q?K+IJ`(m*oc`FH`j4S^fvEhY7_doD&YYInd&LuetG_FKCl zF$VHM*H1|48cYkH2TII62>S$W$Vim^kzfH;138L1KFor|XvAcx=$X^t6mmhhQdQ2S z;KI)xdK@+%CixaWz$Xtr-rafGl~duhYgxqd^4~4O*+T!7ZWiv0#O9KdAvQ5!f=Zew z67l!Q&B4oLl;Tx8Oi&sf_(6Y3M^*6)rUk0X>3>1YZwz44m7(iQo6_wt*hdzW^DmDu zw|0|0wiJWDs12dg3m)J79~Q#a3wmffN+5|V7<n|WZu_tnFd_7Jry%&s6Zk=$uh~yh zII$ubY=iGY5Blus#UzUdHlm>t%$sPZ>$@L9hfY?hof|3zSSwp#LS6uZvg5ZeM@-n@ zDBJtMp7Ia-AkTYrivYEG=W5`q7lhDj;)v0&_hviUDS}IO>Mh_7Z51LCuPN!X;nCII zI=j<F@Xb@1$wo|riyQk&t=|tn$%U@HPos@G-r36kZG<*Q?Q5so>hyty_P}!GZ?9&? zhFe_<MRKI9w9|~+AzUxuN4hVo5HW=V!;ny*IigV>KKG&SbW^h7xwQ*Gc=zQEfM||G zhk>AY!=zhK)h``j%CWQKdB&`oZd1C24_U7EtiCgY+Kw?(!Z3<NAxc@*szp)+7lA9r z5!9`%P%0Yu=O**`-00gZcEVtG$8pa&{}M8$umZY)2FQv$e_pdqM2AFIr9h3rTz=*F zO$~*bx~pgf)zOP>_Y#*r^L_y$Yc5>Vr%t*?BNM|NmacZvi8=wdP~A;zeiOOm=gO4y z!7Qh9YA%H1p-d=~q<xSLrYY@FX;As!gB;{9Oik9lEcmxImokOJU&?vb8^777?4sNW zd0QnPbNiX}$GJ0U2Pf7;={g>uvL(JP4FHgN>45Lc{SnD`GwY76uO#zm%f2E@Ph4^l zR61_+?gbzP;u~HPDP4qPqdtVe%MMY5RyPjH66_rAwNTWCE7xZ<Y6~L4?YT>5I0hO` zlKz};6eIfka7?}TG_FQ#+o#)xT;;@V%C-3gEj$BhDlNC<L5JILEOk`n)o4J3{#6h( zr@l-PVTU`U7MYsWPe!aqsY$?~=YH1P$LRviqu2UO`kd`g&${`!dM5XUs0%Vz8C)B% za(6Dt@S!m5C>{W!XR!|ktSnK(I)3QWx-eYL-#NSH_81`BdLduE(9TRD{f(v%#<?YE zhY=sPIX`yW8ytFjT8fZ|zLcywa+-Q)%wd*YFn5t#?9|%y!Cu^4{LnumPodZA#GS9& z+#ZlJ^4@K^JP9zbw)(?hSASILlR3Sza}pgDhP*5FSgxiLUnhJBGfd>Z(a@xF1`|ML zH6NIsuHc@Z#^2(;K$L(yJ2N0ut8sn)Iv39MDFBV8$tn!Q=!%$CQmSRV4;T48%U&fP zZS`j(&v+!&Cv2QD@w3tWu<(br_4vLiC<^)c0dx|4bk~^pz0GqSZ-0fL6mK@Q9jlhb z3<yFb_&5Xy=udziq@jq<3EhaDlK>njV_O`4K3YMJWg;`OtJ9wES$dkv1=f>2?<IJr zn>^{%ZWP5X`K^}wETOo0_wbh|ubF$d(DOeirK0uQWH$aMXV^gV#F3=S$~91Xt2h>8 zR<DHz#@~(-hb#wEET@?XF$3-ZN9v!D>kVrdR{fI9Q#mW;XD9ml>1I}^`8o}?^M!9Q zcamS$Nk?r|1hKY-)05)nTxB=!o-!Fqjwr46^e0E>G`>viu=MEe*j62Vp&5HoW(|L= zSk`_<)=d8=S|Q4rVLcA*JjAj^uKD<=@cQJV*rzcdj{gGDP+JoO05^Ey_?9!mGV85L zKRVTu{XfHDt*tNllusy6R$H6WP<$Tu+Qa86a~6}`YU9ZL;YGP#ne7#DawpDPLM$#4 zTHx#@XZ)_%3O3&&^@8g`KU$73WssDwkRRSDTM(C}|Hi1VSgdy>dFAWg-im?zL&tIQ zpA<|nOoFs=MF!R(C<Q%33UYp~u3%{!jI)rX6p%$1UE;llruUiM!A)Kx+(57pjl;6_ zU07p9X-qP-T^1t;@4QHqP&DFRtM+Pgt*@uVP`Z9kYK26<?l_MWj!(}qUbwZmS`af& zY2JMg5p1*R`L*37-DCr70S%USEAh#%CNVt!O)Nn9QcQN`#75o#t>%D~9;x{a2q*8J zJ^VezLNEXAiKgrqxy6D;wRjp(s38;SGS$p@t9IJ2uSKFL<;AJjx2EY>IHi%#0w0Un z-TOgvA0fX4Q2~C7>9FWkCm^O0=<-!v58osqc4JWxbM}D4B&Hv&G8s688km0PWexh= z@s`3lv&X+a>=BCt-z0BU`Ss+PLap3Q_2EP%@50!BhL&yFrTgBwh9?$s_~+Ri42bz9 zdIeAlgPB)IFm3q0pdBMM3g3miM11!2i^e8WZOF8SfWqf1E7AK{F^1z9Q?F~LT;lc* zygA!mhcKza%Jp(0DY}`?vpaC1Q9<n4a9pF+X7kQ;xpUx<*~KF%_L4EHgGPbSbs~@J zhjz2P=nWw@R4O`BZFJ*nl?RZIZRHLD;flq+b=!~x)fVWNwwh0S@=7sFc&9188~Ta8 z76RNfZe%fPCqIfiiAc*W7AcMUz8|!c(0Kd%@9wSZp{+VM$Tr_5ERI#q8h!4(7^}Yw zn;GLzltM5|#}8?wqGh+rb+8Bq>t)Mpfbkw)AxMML)hkouflm2tO6p#hlF>!z0$l4` zp7%aEOp2-nSWUI=@ha3=nzhlXE5G(_R%?)Y{j?5AZYSJV8e_sBQ7Lu=e;|77|E~Kx z>$99&b1@*tt7!UAzpAY1C%uM;UOVabd{M%EGUvNZ*faUaD~^{4wsjf`JW)IN2-auC z?{gmmrwX6ZkictS<B3@{%-oZlR?~<-m%u`(%ai=txl6meOuPJ?Jzj7+$^~tfhhnG} zCB3$x0XovvjO;cE=w*pyly8Zux5gFRFKPrI#n0ZQpmv(Sq^4`<D@?6!M|du{V)&JC zfYEyPm#|ZSq1Wcg@OvbW(cmxH0e)^Q7)AN~aewsMf%o$N?+{yUzg5Q6py)51T7B33 zW{>{`#4BK+Li{aO@tLy{S|GssoEsN>a9B~bb$m;<IMJ&~AwSI17jDK!YH^4RG=n|Z z$AS?YdB+igVUTMQH8;gCe!wBC{*k$Ju58=xvFt|40jU)h!Udv0xPR0pD=I#98T{+E z3Ox@KCd-E2-G_VcMRk|&uicxr8=$gidy+59|0BONv?+l_F^oBh^q~h%m#03D-?=WK zLFA$gXtRt3+NzF;vqo>+xZ~M05WJIdM(mF3)V-w1s|L~DuM^gN*S6N;f*TCxQoIt1 zB)E&;XVFQZ#iNDDZ*`$0_GoIxrv)tYnoD^8xN>{I|4jQ6^K{Y~wJn<kjgrQ@0_gA3 zuZ;R{AUpshRkIsz2LNi&0}xP-eN?+vMCpq6*!Gl2rx~}d{A9g{M3;wz21bh6g7bwd z0vxm&Xl+q}YEoDXa;x*$Y}qCOqtH>{1wcVgUL8XXEfI9_U3|qRh(K|Gdi20Bkm~od zxT&JR((?<dp!9W>uo#1NnT_z4YM%BoVrIMh&5-s+MV)hx|FHDvuZdHN%byI~tDWca zZ-xW|3?p%8Bm2gur;<A!<XTbq+lyT6S#j;I_mhx;&ZQSfq}e@-eJrAH{XK^Z!RUkN zmH&o@?H}q;$>H{8o$+brH<!3-H%sz!C$?K;bYv<=I{a6wD-P%{i}d(ES!J()Sez8> z@b^W#junt|##QeuY&WlGaZt$M+CQ%pnGE)d1s-Eg=_|HB_Rm9>)VKfstpjC?;wx$p zNOC3Zg*aZ(zoq!W5zuR`=$ro2*u!4HzA&G&cQ8|IYSUUM=_n`W9hy-XMRgA+AETn| zEE1C1Q(;=;xd+}K|H#qWhhLb^ZH^d6YG(1l^$V8Q)(mSe5}mmBZ+D9sb;dxm5Tv~g zVK271Uyde1C>82ra~*PTu&k76Zl6nk^A`SNX*nA{b+uzA>DcI({b6b1A&|ZSAkW#P z%E@sT&6p^$^E={5&iSQU@28v&_nvZkZO;*l-7mDf3pX3&9m>BXhWlAq@Clg!;C&n> z!ULMfCJEt^=>wlMBCMxXe4zTVQem++_$X;phR$aj*E*m4*`>Yi6f%`<umTaf2VFDj z0vP_+W#Kye@hA&KO4_Qj+&Da#Jk0jmc;;Q=hVM(#@tk2#zGQocCI2X>A+@Ukytg>~ zY{gl<JA(tzfs=f~oYHb~*1cy4_a!=a)Dw}92G>v<Z{^b2LT$KTH>%dMI?Z!n{z@lv z_=QwUb|p)_s<bn%x!Ec=9O)Rnvyi|aDjr4{;}5-)Fv*7M=MAYq{W_Yd`c2BS(w0WN zPIi~TX3YW&CG)gAuK{3-AAi<C<t;S{E0>bzG6Po~@t;5YdY&_-_lpj&0{stQ<Q}h6 zM_@OUI-TjWF?8pLuW#YQh<0|aEHj&XvX*ge_$Wuk7F@?ulqqohKhvcB1nzT22g|kK zHt6M5NJg(p;I{h7K|{`e4wxT|4T*1zxYZHndM}t|!@lPayonfW?jK%E$VjjeDd0jb zPF&4UaYcgzTn=0faD`s{shYM$?zfD6Vw2o4=0Z&@43hcM@ekT%PbCC@w0Z!{gKt6s z14a}ebXlBBP{GtEt$~2t7SmB~t44AAmza0C-1d}jHW9j2-ndO0$4Hdq!@ZR+(<6IB zOBZNqdadg_w=C=oMyv`Ju7*kJypy93OA8e`iL@B=f1&e}YMR*8#&owolY7tL9EO3a z<PN70+bRx58i!+Q8cOaBuD+KaQp5wK3XXd+Fp_4Gt2AxK*{oXK0~!tSFDe6Z4p_7{ z2SD2U-)Y(bZOFnpcbkRYMRuN1xtBCo`Kw7TC-V&G200jYE?>V<n82v)=hfu)vqS(s z*HIS|uzPnC*8`+(Z{brZDDC}{$M^_h#@Sud&7Zy&IZsS?sqIoj)uBiGv^AgCW#gs5 zQWas*lTsZhtr7S;N;IS8CD94&ZnAG-Tt{Kpk|vG(KG&Njg%W9_whVxVjFf+N)5Er# zs5fUnk&zMYCwAGBM<mKJ;vTfi&)xXd&;5+qP=yfrIZ2O{-qD9YMlBw(bX$BD{U0Sw zaIt!8;)v=pt@UB;RvL@@aN{=|bQ9~Vu~+7A9b>!xDJ!WPFr}rWVi=XB3v9u|-4&}Z zF5F2aa8Q1Jx|YG#;(!9Z177Y!iG9VA<Bsvf(>_q_@f5A}^747AB}?1p)<+k^XPma} zJMh3no<}kqKOFZM&}FnqSW#^HJ8-ghF~O|;4842ByiJ`Hj>vgvUg%|A?gEiLsTwAU zFsJk;l&b!xShY)Sq1o!GUgNGBLVY|*9LXX1YAd7Zm7U=+d<aQ#;xxFarntm`IWnIm z%u%+5JhxvJNL;Uy$TJQd)>$i%U#oPcvjFXW7_#}J&}}FFHrP2e4RJT-OC5hTM12tU zX3`TtLP^VKzT1BQcFd#Ojjyn2z!E=LTnqi^=BHhjmvAJZ$_cC208G{<o7o};9<eRy zR-JC>SZ2Fqa<LFGF9bu-Pgw@zn~MveE6wkNMV}vX_t0&<x!{r^%lOOjPFrN>q3Oh% z$qjdM?%oxh|Fi(wJo|Typ|jo}=m`yQQq(DzjX$b6@>)+Dh)mv_C9U^qasSbGCSNry zT&t?9)2p-==QQDeeLKr>eon|PUBv8Phgn#+k$AF3#Eig6PGjb4JGmJ<w>oYcUnmfJ z4c&c|jA=oBCZA4{^g})*N(B6*DvI$qOD!a9(qqp$0T#~7N2qXp!o1ttDGXLN@Zd`E zxSVi))&qq(K$8ssG+BvSz9e3%&5Ql3b~_b{>Jjac+=ninUa!pBRc!MUg6CDatE~>? zTG}Y1+)k+-s8v&*$E8L2O*S%rE{A)|Z_1eF_PCx6i}IWZo_9ALEw)kFni^gMm<5b1 zeU|$M8{g@P{2I`EZ}v*O2aWRI54~5QXz-5B%cYnB%IB(rKcT?Th;Bt;m3nm<`Qw%% zT$*vS)8NDIdE%55M5~1N<jY)3FbegGy{O+_(Qrv)vGM;@?S?l%l>jM7%L6D=KNu(7 z&~m-Mk)^KqD%NWei(^ih68rY7n)I}hPy_fsRx!S|%pr8lV@}eX8I^4Q$WBA`Ws=e* z6!~ZKCjk=sO;nTP_nwz@olFrJB;Hm|?B>JY)Gy87p&LQ8Cx0<`^|jY6u|y20<J9_$ z?(;CzZHbtpH&jVJ^3la^6;s0<pV!DEs<sUnE3}X0maCf}?cIK8R`vn+Whn-j&5hmj zh1ikfzQ_aoZQo)v=|M!sPODbwC|h!;C9~$*P>(u$v~=o2Gw!}ez~mc(^F!GjvrsZ# z>Oz^=1I2k<zdsDeKnb^FKmB>rFg4g1yYI>{oMBsp;kAb##ta+5c$t))rq-cSfYoLE z>Y*>tGg!{d0I)@Fb$A62oi(La1rgH|mF1MLDA%}y`T~g)0wXtv{VB<wf7!m&l(l3d z1&3cG=VWsOrDIC+k6t!YEAg17gO2<EJm7o_;WV!KrIE7*t#`JgK7({~k`?>{LhY36 zm`=JyK1zOl<YAP?t41O2B!6cCvGp#}B|Dj`ETf+ciHV5TxK!G%FLW9@U%spMus8WG zM|>WL6MFX>A9-8cxboZ#r~}pQe_#HCwI4RG!p&?4pr4X3IvGPshWKk%-r-^l95F{@ z3{Kk{ZG766X}53au6HhzrcI+ika-#M*CVSZI}h#Htmw1eizsFiV<_Q4e2~5GF=p^= zXh$PZ)ifRehu8~qZ=8AH+1KBfLArxGu=0&w_}_xJMx8C(k?^s8isuE#uxf~V2*T;E zt#2s_i$uhW*LYkr0Gg}nYWz2OvBv9@1<P)_r`g(M;Ci*!P(xp<)S_FfH42}mR!41} z#57Y=W0{dP58{a6utL4!8=E&2(q{F0_9|JuUKR6sn@Yjww1B1BbKg__?<2SQbS&N> z8ozG$HcX0by-xu>*Etr-Cc`}&m(e%*fs*{`yIzV&DUSX_M)Rg)`-8ufVK)-RL?Wbv zSeCH-bJwgMaM_>yl_uWBMmk0wW#}Zzo@t{-Sr_aN;;<~&?=?zCHuKR`zz(GOe%7uI z`)2lj4DdeaLOz-Rr1hCACXmqK(=&v<61k?;fgM(ng%d_pEA^>N%DZ)Vsj62o_tKf3 zm+dm1yuy}MIb8}@YqWPwz4kV*E}+CpBAWm0>$!gD`v_B)S8QV2in;>|F1^?jTGD~0 z9bNs<pfs&9hn@_xETf^r$7avLHi2f!$<+cszLQOAl#SXag)KZSs%I~|{q}9LIZ1LA zi8L3o67pZ%Ni;)FAfh4pz~aEw-XpuIW*c1ZexmWNAWd25Me*lihm725lKQfE4e(#) zum=*JMqrPXdOE@4#!s`&VqUA)%aR_5RTsPUMkf8eRMZ9a1%-@%qgR+ZJ|Ig>xb@S} z<8_6^tdi0gLwKjaMV_#jS3qb}woNzB`X`mJ!-l`RYilzi%KbLhE|w2bUp0HWtZ9cd zHo@R@gTN$!qON^py{A6>D27&^m5}U2P8?LbZi%^{RVk_nFa3FwYSWYd$(bnem}*mC z;Ah4qdUaUHq#x^X9-BjRX3BJ|5%zAofZO=tqf_)7#_j4Jf{tUd3f6Yfl=yHnQi#Qw zj$5@+y3h1FJ!V+RR{|{9s4BI>>fT>(!RP8zskU>lR8O{{(zlP~kFTe`Q14-R&Z7I~ zJl1vrmUhfytdfprsYrC)be~i&i7(y{8WvN@r>|JoZqMur{b;5aYR@SFBLS^rcxLS| zsr<;LK({)H3V1JHyAaW!I3V{N8Fip_j;PRke%+F5LjYbVOB?fS5<J#g2WSz&`Z>~- z0YTVK>pS*Kzfb)ELU%NDFdqJ1kpPfN*WY^wR=Ssv{eDNorq5_)9sDvr_~JG?Iw8I1 z_k(sAzT>TYj{12cGek;S3zRH3-TYQYpb5DG+Z}OBc<}bgX`K@?^>?7kP;2eaH`I-u zWh%Q5hw#o-1|1uH08LIxPqv#_$ov(N&QvTh$A^5KH~0muf_c=f9*EmR7bL6}*2Kb? zyV#fV9`?;eG@I+e#=n0!c)l&oe((@vv2>^SmTkBh0;#um8;3=2Tf@d8`4A2H)&(3d zp{6!|V0o=G^*i#+#KKfX*8gNXZ*UTBlf6&|$Q-jdB-G|%hmR6f-oM?+1YOI%;j;_) zD=Ay;8D{D~bg-J8W{JaJh_|b4xm~;{UvW~l@ov$_@g3XBi<#ZVxN)xv4xb9iDF|S> zIJwdOSdh@>!meIhrD=M3<LK!JzJ#ROlc(DhaHibDk;Aa1S9*iR78?NfDiq*e<(wa@ z+FRv5Tz!=BuK7T2s9bZS^G!{W8-V|VJlw?()#z{{o7e_2VfzcD(z5C$aYPZV-NeA9 zsF6+;ET+?S+IQU{lH39oCIi;RX~-ZO;apo3wGKNYfuWOO0OQcCsBWFL{fnopS5HkB z+KNUT)X}LC0c8Eo*-pK{1?8G+C^x_lYkWgH-+=cX5L;Wf*s)G~Y7xgRofltwdhxHr z5QMeaTQPsD;4if;I84UpeA`dRjY6&|cflPS@yRtm>Tf=4_QhYBFvH}?VJ3j6t@uI{ zI0{jZj8-Ahx!LMRH+w1Fu$s%M2$SUXxWlK>?u2Fl?Oz1l-JPTb*lbM_G$M_tn*0sG zdfYPk52wdxTrK&`V46nulffVj9N}(@<zFbmxz*>#OcbJB*UOi|A?3t17w{%yD@uCg zCUSz^(ul3lQewQk{9#k+?pUZ4B6uC{TzXG9yH+y-DIB!G?@7>nQ}JYj=zTyOzyY?P z>8{}7Gq5)eT5)?n^Y`v=01PMFDRXtL)33Jk0j?}*txYU{*}1F|{rDScrI96{hUQ_m zH;O(E7RH=;QS^<jg@^r_pF*M}Px7)lhh=V-Z|rGo4e~@JNePk+(>hJMmm_8;JQmV7 znUxH@bM`DmflhbDsbSY3&6A3J(Rb&Ra*`>o%YjR2)mYB?=0XWEc>K$Oz1vp7cq0Y> z@6NyqW{Qrjj|~y!fUjKDea1JZ?)kY!x0ZOmuh}7^+`oyyXAPR;riAan$HEoAh!GOg zI;YXEjck1V@Z68IZul4pt6yr<Y;dy`TMBbGQyGonqnNUJIv4X3y^E{QEuEBa3Qbjf z&hks<TtWMHYKw{Ms10X>gxp~5S%~PSXT)!H!Oa*6l|`YA?=sdth0sod>=)Z7@UhWH zT2Bx_rg4s)64?En@@QAD)b*vib*<-(-FvZoaGA3YCE<7?5c723i0ksmppH-Ok53<R zRyA@iKT_Ns>B<AHHDOO<3>;eTWxFN;wdH@)Vxrl=49Gq}0Pt_5_hKF<8|#@c&nWk& zozUGy5+GsD6`((o0Y_hB6><-#^aFXNnqRS|;}p@1g=ofM&U@n-Ex|IE=9@s5W&o~1 z(Zh;RPa)IMtRZQ(GB3ip(N~z63~;JfMDZENuAPNFQAC^T&no_~0N2jxQeqx)cF(IY z2BNxqat%_t&n4KZp!?Jty>D%XWV(UKXI|S#Lmk9F!h8uupA<H84LpeNcK)OrU?E#7 z+Gl7Fxc*}+w-t$kjvuA?s7kS@q{qpQobDs{Z0RH!QA;771xz(k4<lT$KcM=%Z>@y3 z`L?Fg)%8z$Mmv9Cy8NsxDwccWt046$>Wr-SIF~_)O<y3w=py*R=W(P0>FVTa5DuyE zP7W+XAdt{I+T1MzT{{FMXTOq{ZT5yhtIq3*<{e_iwKmBiQ+aFevB>_7TkwcYy;Q{A zUO|`3+dW}k#TE0Z!TvJmwg6~Pc9-X}<3RN?D*x5*>Mbs74cx8do%VOP%GY3b#oi|i zzaxao=gCp$)3Vb-<-WP?5x9-3XD;Mt83BkE7JKRV*}GzHJuBonQ0qH-F33#@*y-`w z6EhHVu+&T&L|mjnZAhca;zpy^Uo-t0^n}1)sX!z|OR?Wl|6!Q{UujQi>`T3%RX%IF zxfDw2@@eB(3_g+NBxxP*N9kk6(|u74T3WC7`xRk+1z@L~)>l5=`1%wQadq5my+CE? zipLGt`K#0)rF*wsUtkP4a<m{9dzT!KzEj!uJ>F#lbFW)kB_eAOqxAAu`c@oEboe%8 zxr{)_J|Imk_;xuTs86PK^e@#9+*QXY(VH4-3x04#{YquV0Z%=WMHDOAh0fJaCh9ub z)^>+k-|3P#hI^~14t_w9?fTP?*`ye?1Lo~x-MCJ6jW92QaJ+-e)HHck3sXIUm(s>p zlj>{WAwZl%6xf1CYRc}f_hoB&twlD*_z5O^tgQ(6By)Qn?oPsbhhr(7^7$20K8$MW z8(^SYtx@Ynbb>S9dO!qdBAo8%(6D#w(<V7<0@e@`5K**2O~2<bT3`>Q=XB~`@fHTV zFJjZ8gj8S|<vcTe=&`zX%A0KLYp?0|7-mj!9Q5ARs=c)(8U9CQmot*C5B^enPn!^5 zVhVD!ZUmu<K8CTpW*D*3jREafxJ8&7iEkC~BI;d@xYBS~%Eb2_!#f}=Mnr*OQwh(g zJ%}K&8C_cXeag~Bx0K<Kn`eK+yg+DALiz%aA%>z0Th?$s2@3V`yf*K<flw`WZ776( z@heTy8a2h3c{ap<g=s}dn`o{XGspG~8;nm3o6X6(f!Up9jjidHZj3e~fxp^6)Rae! zE}PT%<>Vso6<-<=iCf*a*;DQXM;~5F4!9gBjR&s6RWYS@Ge~a)NH&9|3A<%6?AzzO zdx?i>#A>k_`z(uvhl?TucvIS_rUz=n2Zb#C#EttA9SwU9b|*?%fXG`-v+VB#eJQKV zCBgNHI%oGTGZ+V!g`msloyeyF+)jWNQJ|>X;|qrm?P8k0-OrP(W*bbyOlJLYeI$E( zl>oCU`f*vKX&3B~_fX};Q^l#{ESEAo0kkRiL71Pw;XA5A;$Ig#=j!QC23q?;Ou%I< z%1)i)%a1>&xqyM&>Q~y5=WCh*{Sunx&OM67RXGL_Q(r{7NHKR4{p^fCSGO+&Cc=p5 z9Chg&HtI8r2f2K%#_Q@y>j_gGD20C=#G`ylc=7T5xjcC?;&$VY)D;{49|4gt$eLoD z!;f->OKQdDS6RMbmOO-TmC3w>%ExfD8joHK#Vw(ixF-(~Mb)iyz?Ko9vHU)q&{+av zd@7?rKP<iN$%_L3x^6LAp%<bP0Bwr#%@Dg8>TW0x575IU%3TOE<3w#7{eQ%rB4>}* zzV4`k!VC3c&3c@H)QxO@V39o=arRn!WkqR$Sdb?V*KVP$bRP%sDHl$S2Bqh(!2a6C z&4vMbN&rk{jaHCe@k_*B_B8{A!Z2o=@Vep5z}L*A=QNsPBZvc<xZNE9UH<@z`R#qU z+X#w0-0M07a}`a&NZMgn4s8FLbeQG-#_iZHF<`&fVsE?C@<qg{=AKhO<V9%5mRh4n zFR~vMu622xiSVUp;`&Uv*^aJs!_EyGC>44PJK<s%+IkBH$2Z9m!6BQ31n?VP+snN@ zPyXkCo^SS`UTAC2PHZIsK!7WwH-}EwPZX4V_g9rSIO)wauUcJko6l$Bdns^sm@My{ z(-<{NvY~I++iID`IT62G|4<0raD;Xtt}LZ`5;j{l+q?vTL&iKgH`kQ0hby((>e+0Z zf4i?Pj7S;FU<)HhAOtue0-<O+i;JAQ&ja@30Z7Oh!i!5?(=KXk>wu7sTml7bj2xUJ z1rr}ebkr$)aBMXjJpSSUYxLH}cU3fK>DF=uWBLfkXYW-AJi_i0p*O<3X2p>oc&%W* zwTV{d95q!f0S3r{CA&A3B(1}Bt$;(!Yc2!w^Pwv>v9qHeXokaVj;g6sjhGmjs%a)( zCg=^1ot3^|+R=Ue%QvH)pU;>N)vqPn&5nldE|nP{QQ@L0x0{%RHD$PpZp;BybjE>7 z_X7}da{VPW=q6`fZ@~OT!b|_e*n8GtmsTL~iUwB*W2dp|?hCr{euE4ynFSOv{(Z-~ z7(BybV1GmSMJ-kNr`9(*Lj;Wa3pqm-w??ld49ddafH4biBBb6?24ydWB@Qjaj&qZI zMb=n}9{LA(={hNQf=dD)<wcKYsk5)5RX+ZF_%nRmLX`ChQjcAmW1QU;Ae%l)hj)6Y z?<9auF*}aov>_F6wY=m-j>*XTm-e}}U`G!4;OPlwos|%l5&D%Ap;Bx2cqcZ&>j_wN zahvA{xl)P8o3yjGHTe?IHE9pzFa~Jq__QFix9sql!-lXQTM4CJg%9`mYMEmp))OAF zof5ETQ(b(~*-Z*ymvLDudd!FIAl`M>(2-eO4XdDrsRDeCsq{QT1q8gl<jsv5rJQFy z)D=R1kw}kdF^597K{lD+!;$++C&%*;OEbY`4_r2#_?<^A&R>@JgI8S6tF(*h2#0we zm3mpkpv!u!2U%^kKUyz(0(v|dpQBmsA2n=bT<6rBe%st=lL^t!ITS{tJH0OtK&(DV z_1l*26Iengwjn3vV}O*cmo@L_qfBXkN#c+6YV1-7>~5?u^iK$sn1Jv_*@p?)p1iML zS4v(JHsdmB&o8<`bJN@es{MMNDYvT>m>{lr1I^q|Q3pF@$=I8>>JNF*E48}hJNCb; zvtLbmW|Jz0#;XorAD-JaQuekihmrouXB@IgJ2*BZ1TXa|Wh0J4+>y!3KgLwL${8pH zxrJUQF*vmu=&62@rGRy`?JKr_`%9fp0K{-_R^ZT01_MR9YoDfJ*S8MY09?8j=O4kA z`MG7=%Xemp;;e!lXmzJ{Tk(D%ck^ZW<>hCBJRr>4-IL0rtxtwZBQNd_Y-D)!(%~X3 z+>Ql>vVbWj1i(6VhGj1<nUyGD-TBK}X%aYAt%8AL?Dm<Zpi({2%@mJtE&Ynp5<O~J z&O^rz@;}=mJu%YY$wihpXC@xSzczdP&`}%c>^Eaq8dkp_07?CVJZ?`va*V;{Iqn0@ zq53@7A|Yc0gj>J#CgDuxWr|B^g<Bm(qev!WoZ;||_%b@OS@2Ia+Tj5e@@i=Kl&U=4 z62nJ1ec}Js=S?1u0;D4?G4EoW@ou9J`+m!jmcvM&y{PxU2ijajq;VU?AQRl}_S;7P zfXHhpoli@;pifbW<eb_%4QjA68!>V7#4nF^exC4vyoS~E9eEK8&m{VSkKeW4#d37n za|T;cKp+3h>t(Yzm+a-tbN+V0O*7V~g+VLi)_(A+muIVhH2Lj*Vx6TKf4%f^;`Y1a z)J@tIPq%BnDk4X{6r-Eh&(X`u{W5ClSg*&i6NA}a4}Z_h-FQ5Nt6|G0e|z$V?%@@d zee&EjNBpY3U-`Mwa|o?@MwZpKn)KX~#+L|@KgPHmccmXF;1Y%*^yTo(3UR6b$80J9 z@1SfLc6ziJ_W>^95^Fx9klCyOJp1lSDvZ}Nx*A*B(_~QCsVlaW%48w`R%%UAW@%<R zA$h_+RRb=6WEEcpR--yg)mxj$ri=nmgVlp`2$r6M())Uo-`%W13tz?yrKbfqJ{c}n zS|7fAq4<qVhEzetAC$YYjXsvKydS-Q=W9DYG*rT4Di`INF66^(ks#)WHPEA{`8~R+ zCwCuRBSn#~gg=X^Is30qUv8RaB0UK6d78<T`PlB~2w(VViNsHJ3Vm%3ALJN*8QeW< zCVPYOb8WR=eeCb1ih-aFjD1qp<Pp0Be3*W4I##L{@yIKJ`4Y_bgLvm;X$n(ub+OoL z$_>x!ORv~$5%Kn9=lu@-xTkNjCkH$JtTo9-tcA{X5O2x0D?XvLYBtR-`Q^RBo+~Gk ziVVcAW5gInP2$NlAH?Ya9~;5KC{ZLlGs_HWk!A-VB)PPcAwIb;o_x?1CFz!~4`B@o zxBpn}?f)PGMtseR@Y;z8ALmO;h$3l?tbP;OwFj8y40xj!J`6ee7~?PMW$I*5i>n73 zKq?Fxt$c^f@z5yu1nEGE=z`$#?fdS-KXimS+ITxJH(1ZHP>eyeMBx4I%a$tGJ;{jw zp2o?&j!EzVyMvdGRKqpe=CX`tvR1o6GbTMQyCKLFU{Ln4dxTfKvqz|3>4&U=M$4z; z8{NpF&r!NB6M!Pg>ah^VP*LgmkJd)de^eQX-|0iitoEjcMU}Sfsm3NNYzH_nGrHlm za?B>095r8oR$eq5sE*$)C^7%DI}0%b)~I<rAnXsDd+ByeJh{OBIdX49a)%g5?Rl2j z#T5o1h@Ye>SDZjODw1As_zl08mdrbw6%bmQ9;KV1iK9^ZQqwc-ji5*FB9{r*(bESO z`+{m|xo@4nEomsr3jnLq#Y+;<Gx*QrF%|e?v5lWz-O+c;C>>Q-&*!t)mWFn)c9r*x zU8fyTbEisAqDsZlx!;qna^ZFiWrhZ5#=(B<N2a*i_T8v|>zV`&0KXgU(p~>@?q_A3 zBjD=V-<qtg*jsB;|M$bgkqC1y47`Npt<y|^4G@wS+vD#Ou0iL9LYyRLw{_9;!ZA%6 zmD00Se4T=CO?s=InJ0`R-WPg(VMfGj36BEcQOChgz>VS`w^r5FelBb-U?QfoI3M?A zuNW{D_bKmu_rD4RJ0G5#OR2eH;-%(|I7nSa%d)s`+jwq%-{cQ|KwW(K8Z7qxg?<Up zSksR$wvzA8=%9TU9Gg{yP_i}HW;EJ(UD0K{C{XWn@`rYU+@}p8%zNtE!FB6%bLYto z-(9VtCgbtvl)7ln^e(x~uNdhHodFY2nW>p!B<)cG#X3hwwb2R@QtD`jiBRZAF^_4+ z0a^{hG|<<m_qvV^jC5*2?buqC^Jueh^3S|HZpgKQ;DZ+50o<es9ENzd(Z8@vvl>6O zB1EqfKTDq=NKdz$AsS`Tc26jAZVGS4%kTFOyyUeugG+K3=XMMar{?lR4&R4GnsbQ* zlg)NDWb$3r-Eoi&aZtqw@ZCH;U3sVAqg7w(5`ektxUB(*NCP8^su;Cvlvkq)Blj@` zNO_(tRO60fXK;lh!r!7wt#zg`L6tNpaW!oJI3-3FV$CJjrDsgq<p1*7G7jmY=|oDJ zKC@IN29FSC-eGD;f4V(4#muYqNM^$spkk5+^1V<SfKkRFs@ERB-4EZ>d2+^8&LOK$ zViN7rk7)QhG|-x1YOw!B6cct1MOp(cluekYGBy0^_UjrAftx1Pe%J}P^a<eBGs1vB zGjTTRQT_tpD>aU=`=KQxtpXza2otm_A`FJ>r9hhry7uF;M-B|z3nYv20<T)mk9>xN ziP+a;WuZUR*LNADthp@`i&OHvM&H(MzB5?%j*0napQhZx2D-epG!<By**`Ky3z+|H zUu>P;&)c;bDU&A_+>ma`hG|{}D)Kgl5|2Db_n)}r83aeVila3o=r341gg($aR4eTl z96bu&oSM|+^CaXHb$+8&54<ze%|4*O4jo-`Jb+s~w`gJZnnQtzfb9I5iHg$-P%#BT z@{=6d8wHx_Zv^7Be=68}y``G&muB;kM)Q#UpR^)e8xqVy2S+}NTb7T|FPiWs5b<}5 zVJjZmC#!WsUtg&#FeDf;e;{HqI{Dzzr`?5?T(X_8{tttRX%l>U=M#wSu6tJ<i`R#G z^3EgZ_DeTgqV6U;<Nb>>`O0q&pLUk)%(x5cU53~-WPG)Z5Mi_^u{KZOk{hg?Z%;$_ zFQ6nth)9oA1~=?jIvIOmPTMl#nB&EnD$yRbnY~c=kX&WOetHz~TchJBF#BE%mg-1< zdSuB3+CaD<k;Xc-l4Lmr9h!rXMcUfe@Okfb$N~~{JW)2K(?H!gRW#;Dn`*Tkb4Zx{ zGk|r`Z<81)eE~^ls^7Bk+#XoxQ9^fQ&dlY(2I{N0EFJlg%Qm+nRY7rs7i}4Vi&0dv zDqb%_DtNQF=SrcT0n1#8fBT31glGHk!pp^M%8Pfrb&2@{125mYqCeY=l^dO-q}32Z zoiAZUW_zIPrj?Pj4?zvU(5Oe&agBa1UVw|y*P~1?e@>);)k*4?<cB)oGjg(BtNIz_ zNMY{IH^V<l?~hK!N;24lt|B*%q^d6(8a|TZXuAl$@o<<#yc5k$jwbydzqsSm8=8RZ z4W*ICYNGRQCC>&9NGyM2ZHvtd56H6lcj-@04p{&pgs(?p!qOSHXT?gJ_AsZNL>e34 z=6z-=j+1Whb#CJeesHh{zg7GzU#!x$l7%dv!?SJ8<)2Zjd68)`T=vzNJw4mdZ?>=o z1-1WMhG@~~^W2-qZTwfwU5~1j(_j+MeGpxyeSnTHHmHwZmpbr{+nie0_pZI!O*Dv% zbWKCl=QyGZX(Gyg5<m+jVKn}4%0SzDm~Hq8Dx}~6+eP+1kcF7KUh4kW3~-eps;lp3 zh-5Y}b*pv8etOGvnx{fS^U|{qXcGRc#Xiti*`XR@@8soFUVlHLbXs5%v#D1AZh!79 z)a2Mn4X^hSZEOsBdKBQyMedDs4SMQg$akI<_)m2KUC`Rf5yF>-uTlCHuOkniWmy;Y zOgP<o&AjTta99+1yFqG(0`czsbIky60a23VyG0AuUFEj!E7nPO*U#i3puzX>Z_DSP z7Hq#ctw5!dIM1UcxA4@th@2B$-UpPU%j>|1WwN2?YOrxm&B}W*10LE>R^xTcs((7O z(@f??rv1Y+vqEenl$p=6+RW(;TdkbQimRo9UXR_t{godzBZRMvP4Tun&eck?nC>TZ zIRfgQ;&y&73<$RlwWc=i32(J*KOpArj`Y6NXzYsKosv_sf2^3{Xted$9Z1InaQV(o z^%V2b*cuOA(3idF`QB@D=ea=eDaQ`a`v&?IEv2(iet2|1&(ht9;x<6z)7_u=y+1L3 zJx->`_9t>?-rezu9VE(yPW2Kw)8mGzURyKhdNbNjE=mw_<vMp4V7ZwdQwi+)%P}F~ z<m$BX-pgs76fTl)g=0s9&Tc$k>(lz^VqDGWr~S0ra(}*HX3BYQV$CP}-KN8Rfc~m~ z@7@@pr98JQgvMOiepNf*$3>j>NO;ECD?_M_<kM5H^c6*1`B@=o!ug}vqT*#7zTzn$ z_4EoX(vPthEIS1e!w~l)%va%#8glPqe7X1M)z#HotKxnMoCpZzk`b*^c&nQPigoez zo!Un8qJZC6*G|>W2h<5-CTF@<QO}JwLHH<yzU;(i{TQ+Sc!LCmd-Z+FV|Ciw!z>Zw zDRC(!d0hq`@v>fe*G_-kKHKI|MDZzTl&n554Cst`rv~V%edPr<BU#zpFULWGaEGS_ zoJ;h^ex7X6(lT0@P~!XH40M5En=-f!s&cq!LwgH#mhk5(BBo^xAM`Otn3w+mxRy>0 z!A9$;r2GR?{x^4^$YbE6I+xzkJdUWQ@au-w<z}h|rdEGR<0nL2BS~%|>#dB?s{ebr zZbv`~&Xo_K*^z(<c<r?WZpB^_iJpuG7Mg&ZM<C2CyzDs*kPfclAN5Hq!E$dQ?69qe zVch^OCe4O{hdX|u$gl@jL7xsUyk`~GLp*N%K|HJ{*dhdDtPHiH$NL~D@0{*t$w$MZ zlaCI$Xn@v_w=Cul{S;`eG2+xz91BHjI5LmsElW;a3MD@S(1C3Z8W9H#27jA#l|CEH z&pGj*+m*(NRl{Z%HrAyj(0WSJy!tYp)b~~|T$f-mtpU06<jwDO{GUI7OJ;Zwwww{P zhXjN~dza5F?X}R!lcQp`8kpJtG27?yOm!XKLNOh$4LU`8#7<L+S=<Tc<wxlSGY_S} zTwC)#g6$6vfNt@bi;U0GT+1x6Uh98mueT?-WRZhIt8;%2E59fhe9}?!FUO*w9lgP! zzpL9+X_ghgT)+l`)3Z#xt)uhn*Nf5lV&p7aXd8yV*X7ZIfRRaKn+C%<vV-Ftul^uY zBg68nMr^~*{(|;ZrWtgCZj2nfm!A?F(2i8C9KKf^*{c(Obx9aLN5A<VW{Y>`umGwT z_dO$oui?)?wBUWB_nySIEt|;>8ZmT)$!WJ|3vr+zI>p8taJr@2zz^96@zAUfF(YeP zvQRoYa(=TcpL~A5FbrOJU7VZ1r3z9tFpH8i_3F<|a!8KgYjud6Jc?WIJ`t32=KPL( z@x1DCTuV>(16p9zy1J-8OccW+E@G#4udM_4caDwWb^=6rI!8O|ss`2G5rA9&PM+r- zpvPA_ct6N<20R9KYHjAQk9i<^ng1fdJ-RMw`j0!<@Xfd=hUX83$jm^cK&a;Kz2UOk zerq1?-EI)vwR|2*p}kew@^>#=XHGr-)DDQc?4W2y+#%^4u(n1$|1G?cMy9^Fg6r%5 zC@gR!?aYFX($N{V@g8l*aWu~zidHF13PfDC>??i`aab<@PtU>jX{P-Md?3bo_pk0z z_ut=uljK{)G77WGy&mKh0t&G3ulYsA2s7r1`LzhvS2^1e!Ny0{4;tI^3Xb!Q!BGfE zI;N7D5IJ?oo_E3!azXmn#ETX2bFbHOPNuU*lv%mlnr<2W6ddqj(~@m8F^BmVqjI3M zv`G8X^{B)zdyt>hm$@;8kDxyUtH}Yo8X;Y&gzc{Te~4+iTRgsPVw1~T8F%%cy)4;4 zMs0LF7qeJkKXjI(+Vlc=bNUv!xQE7@Ev*iJU`mv(Ntzl?g=m`frK_i$Ed+X{TL$Di zGZ5LO<L}X<(YeapAMYAGkqO>kcmjOaaSv$^YdYhD=LAOMZDo|KR)yLsat$!9AhROd z>Fpsd$7axf@qqLx9BiX^<;^NRKgWaC%-P~Bj9vwFBD;++SMl)i@(do}>BQ5y6L_YI zr7Pxb7~Iwchd!EXBcZp35(x!aj)Tr<n>P_Ta((z>R}!5ZVz&z}ZCL86hcsxb5fd`X ztT9ODgGZR(2GCLh@BpWcuk3b`+Y6G?g%eJ9p2#Rsnl7|q81bE2pMGU1EX1#k!WzKi z^DRjpL}!firLJ=A-5>dVDWQ3_x#A1N;}+UpRC^smZ?4xxu%)PEJ6ixmh_z#?ugTc? z+GC-s(j5d7xfxvJ-`-Y33vW}gBPjC=FSz8i00YNnv0kx?ZTBWfD?0e-y#;uCs9GVW zj09UZwtdTD>zR3=u_Om3adW+O!+9h{tb9VCmGqyQl<?d0w|nEtTRP@T{@JR}04RF6 z?ayj$9}9ec%hO;c+1`!DX1>e7Sn$JFauQ^2FIw4vS+4*YEFlumACouB{=Hg8Le0gO zGu2`&n0RXUthHNj^XZ*j@2m58FXwLXcL8spbhLAc#~+Cz`O-LQXyZ^RP*ELY<a7wH zw8fMf;H7rjUJ=(p3l58AAC`>gpnQOR=BWSLP_Oq)EqE~lu&fiAIQo5=<*cr|0~Hr5 z-sdA?+FAUEFlX!)q8E-cbQ_J@!5r{>!N(l2%=Tb2sN<mP=mz==aB!X&mCy4eP%(V1 zb6G_<7R9KxdeOH}rtG5-Ib_<n>=<4C<Dhq^GQ{2N^Zs&VnutK_P07wsEYp&i_P%9$ zXGYApcdz|!Nyz-IiX<33f)Cz%a-lOqbGrz(TSU5@@2ase!%@5a;ZSkAfup9tZ6n** z@TfP)nqQ+)?V<^98`EhF-eN4al1F`>ejjTOFAQt~-J8pqoI!Dko#@E`JTG*>1NCOx zhY42p(1u~@%Xl#ievxe}to;dbv5@-z(e)lsO=VsC_&AQkI0{%s1%jZ0pkqNnL26V+ z5D~BeA|)aqGL(SylEe`O9h!iON{J3AD!q3iL_wqpNG}mk5JC^3q}~5M@tyB`zx7-H zwOkfVx%b?2c6s)*pRLt1DK!}ImwespoBM9)?BXbrI(A&Pyu#g9SQe#fM7`Y2u@7{m zz;(s!)f{V$G4_K&f;JT}*5h^3%q_(WNL2Am($ZT+Gh)y%E)DoCu5uYEPJImlp6l@~ zw7oc1@%B{y!m5YQ#SQS?-?r<PFFR)LA2-?w$wHfsR`)Kr=dnljhF=C*zxewVuZ0T? zpOmRhDVKk&Hnny2mhQ|KC%9q!Q!%C|;%l0>)fbCU?c3_7@RPD{$@`QG+x#EEmC2JX zA1l%`U@Q-cQ!YZY!(ejq<UKu`R;_`H+0kEL=st9^({a<CGP+MX9kbtEERqiVfe4@C zlh;i0J>}weDD_;4k&kywKKxU@(Zw%^e>z35*3aB-5ch5PQE=FwCh;c-ZnClV4_d?? z`itB29IBqpwWDlb@LiunYMUUUm9c*;Q8Fa&6o<Nx=~Rh*+at<T{QEv$_dGjr=556C z4#t6FCEFE^DGh{qTv!Styv!op^S=5-k*@*azPd9k_M5}WkseUuw)b?&54lH)a8B=i zIW|0z=X%BRn(Sms1@g&%vs%@A;+9Y1zeRB)Jr?5RNvZj_9r}YiyS=D9Mbcf8%^yS3 z<857vupX<!``jTGH6(Ca$M+Ha4ZZW?`_ltHCCeQCZHQO?t=?uKH`=UKe!y>=+Z#C- zueiaGS8lp8z2&<mjm@GA)WQZX=xrUzDC}Z4x|fd?7+nrjEFhkPSn_d_Q|CJQ${Y0Q zebrLOHLpb}9dJ!s9zLUJ(4#Q5HF=u3a$a#k$-wNvH~h{i-z`;?<1QQT3-X#?aKGTk z>T@C7N6Y1)=yEJ3MH|u7%u}i40B;(%KTF7PxDGivjl=1r+4Rpw`bxtdKUlAzIgoJL zlWyPtZ4L`j-7x>cwYeDg!r-)}Z%o5VH>vvN(S)qBXA_*OU7ptk9%>Z}udKvRrnQ;G z*t4z?qdlDO_=NqS;n00&`IGr5)o`}F?bGVQ=kuLtNlzw}ksKdzp2$ag2sWN<bA%yW zBh7S*+f{KJnZ?yLbkZN4{CQrEk?>gRw>Iuf^a#fFJq@T@V{?YzhUd4PNrDVZ97dia z?p>8aVCbb~V76$smj13UOPV*Gm&KN9qpruTBpUxB(#TlnrO<!CLz;Nwmt?W8hU@Du zMP_G`Z?U4vY=1vi8}NYx@#c`$ts`-YgAu7;ANa3hjs_(KZuk=Cni~{zsPT6$^H^-w z7035Sa3^H(V@0d0luxw@G=4p!Kz7cKw9<_^K`-eV^*>3wf^et3xy@GxO!8_^{G2K~ zuKzd{`-9<Wa+7zl#*g}p8k=;Y0oPo&oJ!gpjgC)!gP8M5Js@>FSff;)9l(lbSdqZc zY?WbcOs<voJYBFj5GWoMKayL&KaIRZmyL|<@Ne==I!^*}Nfv@ts%o;xqqU9oMlj=c zTsW-p`D-X?#r+wjy&$pGH3{Vu?FCt+$v=AwT_ZlJi4m{evrsF37^bFrRNKhqA#>bb zrSdW7Rqb_`k=T?q*=m<%YL@b^ZT#Ca06O}RqhHbc_pE)6Q+@NHy5G6ZT@zCOM4bPb zn!%_^-C_Ao!zs+0^Vy|m;aKMOx*azXuc@>(FdW_qwmT8SOaNmfEp$5)aktt!Q>o{l zEKobtoGV%!&xz}fi+FM(nfZ1<urB7+bC4y`_%2v3)iotwH^J+r@h!b)szl7QV1Q+a z(y!}>LZz?2KR}eRVm;|hN0I}3?5U)MSD->IzLsz*vdm+>o7t6ahwDGM`3%1(YEHjI ziG4@^dJE?_GMKIg4Z0t1#FKB?jUP)tFHCsGbBxCsr_0jYhUFiNzyQg2`$wdpLGmwu z33_GTpM0YphiKA5K3R|P$4N<EAJBTZ8m(6<zh_puq!z_^ylBp8`<}V_wIoO0P^I0& zoZdS}GQCGnp;Kmh`7`V&Qqp{iqN#Ym$Kcnf2O<DqbhZ0P8G#dwUkbLh!36<XB7J}H z=bM9#^?E!yo~K(dUCA{oDt@=`wWBuEqJ3wamGTD*vA#c=OIw~NICSswJin2m7w)Cj zUK9O2Qog7(dRFA|s@_A+CGt)&*KiG^8Aq*qlD0by`TujLa8rG4Zv0;wTFqw6Q!!2! zJ1L@F4}C%!je>RBl)JRZhdE~B?QR*Am>Ui??RN+E3VM|9xEjRl|7gR}5g()aJdt<J zcG0nv9SK->g5h}b$+vn0eo5P=Z#f1#I#_Vttnr1UN^P6-U~wS-d+091oY&Y1+q&*` zG{S$Xn>44bgz$kIRL&#Mbu0@F%(z+6Yci*e8hLJ{7Im`QE`j&(lZYG^CHm=le>^54 zis6TZgLEaE{q)#Ont(}<dosKPL;Y0mM|^f36He=+J#6~fuY;-{j&oG~5bM5bd&1Sj z&qNFDk{3Sy>~*y}z4vFeWrNmLplZP3O%6-v6UyaJZl>z+cy+IrnD6tQf6*a!^Sr^^ zbRH0K?8hmo^aM^tY(aS<XTq~d5+B+1E??l8<WfVqQh!gif&~4>I;(5CJZx^W!E-Ku z6ahX)boq&s8iO50mF!Je;DO^kVDal)TD-JakDH}krZRajC}0_QsH&|tqfkb%K?>Ps zQQ!^qb`Sec*vVS<17+`Jq}JT~@$KUNC)ts{<;ekv;>4r=I_%dHW^>4EGj6roepXH6 z++~RuH*w-Wy(k%c3IOqgh_~@nr=H<uyLi=`0jU+oPR96u?u)+~sU)|s$93;xz*pK1 zPD;U;lOE1>QG?Q(C84KPinu@U^P3Hn_ra;m<23u{N@A;>+L#9v-fJzWB1@b5`xiCD z;(?j3=e1#IK$f5r;}F_iVOpnc4;nf)4wl3fg+;|kxFy8N9Sz>O!cOoV@TXG`K7RWw zR7Qh`{c;^t3Cy#|?6fpQIcbmN>E4hmUK$EZ>-Xu+;GnM2@>j3yqAQ~hL=m@pt#I{Z z(ON<V1S3ToVfRJmzdDhh+IWRho-=ix!TGR*RC<ul_5%0($hi29>dD@kWhSz@Pn#KY zvZ4IOirFh5nPNe;CI@Gm2sXC9h?O@ewT<R^#~eBa%>^2Rf8r+IFaNRQeC*5?!Ov%O z&rI8fZZ+$NQE6GiNw?=xNB?`6(0GWFlG;C_smhJI>xd7ZmP^7o!i;gZCp#93n79{J zq^V80EwoQv4smDg-~Kx?qZ>MMW2_!8fj$yvwaR3a38Tg@w`(s82CghSKh6)?n@4Mc z;Q2Sm*nB@tMwAV7>J^?-bMdAmpbLkm(fjit=g2}G1!QqdXQvjb*Nia(2J$EJ+jc1r zwHoS2{|Gv>Wv>_di(Y32_Lq+u#>n4=&oqwF5YBgC2o{R;b0P*Q8xPeXZtgg6QhH}b zPmAMuGiS#&f_i3!6W|n$mt=q8y{$t7;s&vEU5->z2qrt&WfzqpcI5MoaWrZA0h%uT zpk9d}Ufci6zWT<PPyL4;yi^$$F~>Pd)_A6+h?FRYi-^yYzP%)|ZTEkSyXHF|CbB8* zKy%z<hf05o!xYijj&;M?Ykl+stGwkp@7bU2x<>5N&#&#n6$KA#f1ik3xosjIEAJ@i zpsRLIBpAoYkIB_f!04yQmf=u&r!6)dqdi8f5j9##X+Q959^keVLj^4@3xM<Xoyk#Q zbFsUzMQC&#N7GQwU`{51m)JK%w4QQ+=X9un@Uw#JNZjPr)h>#Y122gNt*Q-W*9_mT zpLDT!#$PybCpB>=%O04*;g-67PQ?v^Ckwq>wkJ8CY+aS6G2J>4<DYv+2ZwLd#~vdG z4V?f`)Ip6uI^Ng29fpa&7Z2WWC?9nH`kL#nJa=zK>7d55DaZRYIWO^X7gEET%qYiS zW%+F+v^rX*8JcVk<$2kuz>G;?l?ACUHC8)Ri{yFhsCV8=Spz%~?uQ-I|93lp7BQ=- z*K9JsO}HWEHYUG6vBk7KilTKYA%=Ii1+FPWSY1O`WwByh=7u}HD)^=Y>B#XiCz_gZ zv}wTS*u7#6wH`}nuEaF$xDu$SeZitoXJ_3%%1sYvJeLmh2b7Nmx&|iFLf{nbzgSQ) z^qQ?^@U&UrDapN$ZW&YtzC$m==M}xFF*V~AwwHXq8S<!Wk4m+&Q(<ayB`#XVUNd|Z zLm;`R91%pEiL-U{b2a4t{gKL(y%J_bF3pkbk*F;_{MLIV&T`@Kt>Nq1kUfsw<o#^x zoBrWZ8EUCQ1xOZUooX#Khr&9`3P~t4zw7}2S%pif{8%KAuV1a!6f2`~Z!{P?L95#@ zdpevRy4fJcB@y^yoFbj{?a$G<f=hm^Mw+Lhrxhb_1R`@trVlPYj!-ER5M0%`YRCwN zg5bYKFu;+ATAy8{n8D-1Or9HW`K}SAJc&u#la(D;Z)p*8iWfikVr<P9Y@MamTw6rr z$C@J#o!=j!R5Uo>;pg;2@M?W#D#Cn)tLys38tZ9iIm=hL!cx4kaOST1sFlAocL>jy zy@lrumhNjjE)cK&-$w=`9mDl?=Azr#u$RYIDfv|a6HG8~g5?WGz!#N&-IshHsWmSz zHy1I^_?`b$E3#wYTZ<YuFv2-pIW}e03(~P&4d=CIc68ahtXWVIeOMRD4Kw@>)JSyR zbK<dcGq-;m%kl)9zYQ+)b{|ejL<mXkC9FFo%S*)@47_WOP%r=(<X>d7skq*H>KssG zkG1y>EEJwSWva~^6wj*U_D`EBCVI8*dd`5hi6JnDA)5#FUOG+0@#Pyrw;9B{C+noS z9wZhRj<}eA{CUz*h4hUxNbXnLaBA~c+^>1#BSq^s2dmZ`%-r6_VLDjpPQ*=G&;MWA zlpF{fgni!&wH4cLIV@0Ne49YDdW};0YbwwFzWPqI&;Mu7gEWUmN`^?Jj@SIpDOrBO z`tRvAJiX(s3i1BOcIiC5q3U`l$umz}Kfh@I7^_slCe1?FkyuYqi7V;IgNv}#-8D)- zGgK0iAKdBO?m;ZKpcRE@>wOvUn-!LWhEulO$_*Ff@!p)orC^XVbsHmWD*dDD*_d>N zKCf+ky!0P+F1WIORx&93Rs826`gI4Hw;XlqsBw(_!LIO0rC}-Mtc9I*dIyLF4@{3* zo`{hzQLg`n2d4zv^NBo&u*+|4tw}Y`b|;@&Jv)+`_0imB-5kr{q|Pq}J@$JT+rpPV zAAQ!Oz$~a#U`}#yt7FMBXEuLL#jduqM^~tE+l-gTYOY?hleX6V#Wru@RYsgD4e+(X zb4u(VoJD3&*!*7+okyM%VXMst2g_xX>MLf4zKe@FRUVVDHM*0#3BP4Gv-ecRC(ng$ zQ}31&OyzImr-fr5;f(!DYG~aK@_Bm`LL=ZfX(;{T+vmZzwWD&M?3FR9*cN^ubyL)^ z`gl_+V!1sxIHE7G?;iS(N(tx6z3f+Uo4ZnnJgioZcdP_nTN(M&gYLCU&YdW2Qnj^F z!PZ^-(^zRokBajt#`H?gQK4CIBps8e^7$<)ng6LfM%b;KalB$+`byg}<peBbj}ZQp z3gF$7uluJu;up0IM%pe`Uf&%3S3*T+z3kdUD_D=z8|j|(BSq>2VJk;hzV%zyPJ>); zzi*u>iTmfIj$2ngHHcC5kWo{oZh349h|!@H3%M@^v79FZO2TKATe`Loj7|EFY1daq ztDQ0+*t*H-xOANil89D~maktaE-~tm7giW@h8Xk|LS^MF|B9C=?MN}0za94F-v@pr z+uI-}rTJ}W#4Qp@qUd-2>CJJb6&8ecGC~XL>wlk+tgrBZzZvx)D+oErHaHS%-XQ|7 zbz)Ti&WOC<)z<sx-S=AMNo=<{T`RH)44|lsQ#<*(3T4N>v0q2}UpG{kjyuDZc6m-! z2{)S4-_RblSK2vk;TEaMkG1YOQG6Tejl|B>v#qP(#aG$^He>xnd)FM3v0+{f`Up39 zFuE4MUx!oM*!PQf`g?1~oa^b<9g8%Kub&f8=-O*W0%~A7847~o=Qxdsfjkc3?LsyK z81=Qg3M_`s1lZYLl9iDtzB&7@ZEo;SvgBbWoC~nq4)5!->gm4H7DBaH)ic-m{`U%b zdqTBT3={nBQnqO~E~|CG{_*!SC`=ja@sZxDMvnwQ5>3G&(9rI-%rW_}H$Y{6Hr@(w z`Ti8|++Me`h(ob22CIG;GCDz>QK-{VFfhMnmv%!nPTs)t3#4?DRlK&5>%;{4x*Z!` zrCKxpvpnF4T7L%w?E?E#s!o9rpE*^cOyCV|N$c$!Q8k5FQhiA6NwyDux6z%wtd;9~ zr$sl~PB?c`Um}@x7@&~+_Tcv_LX2Q<=|`{rZxf|VAA>@Ax#a`m54M!9i#ks)x(FS} zLz=49^TR)F?j|V3QX*f<lDs(+X}PDM%JUzaqdw}A=F{sMHPAh;K6;`3_7=1DRa<7( zoR)jHyW1%h;>_o9kvmp>o2>9Poh&1oS}&H4;bE`r_}74&sl%Yt*VaDW&jVlzx+c02 zG!!^+fR)saia)2u)LgaQ!;!TTm(|-p9K6zezs&D7IK}NWrbuMk%uxmH_ofzC%bq;E zMyb0JizJ3#&}<40%k#YhQ<^g!O##~fkL3`?CZ$Y>P2Rm2t38}mk~E+oyqH2^P~u;I zFaHCRfN{nhlmffIeS0kp4S0K4*R%JO=Uk4R)(v*(o$0mdF-Z`7SqY)x#Tt=y@wTR% z$MUYR&QPi{1af8yHN^-W4cO(U$-xIKuGzptF^{6~hSRhc`#kTrD)oTH|0!+s{2iUO z+r^#_?ASnj=t7(QWz3o)XWMG>@In5pid}AdY0Io){oLr)%v1SUmC8+1G5;Af!C{(O z>Td4;uV*p)N12LP{pHa7Evh{@MImhAF5Rr{+q<nV*<96#$76L;Z0@@sFul41wJgWj zGykpsZ<gA8NuV@{vYu08TU>SA_YNwo9=vL2;r8T1{LbE}`%in>D{Jk&ZQYbbwsa>! zCF*rvnf<Jg*4j(RYLx=YoyBk2nu`w`42QDc`<&GLOSR3om#Pz>E<6cxAYO)Tn+P_F zjT4@OK;b#aFE|<VPM$$f)9pV1eJ%sn{D$+db!B=?Mt;dRC=Ds;cH|7u<i~#HcfL;F z4twOpKh1%|@)jpJ*V?3YIWP(YIiejz*%<rVvsdZy;yQnwl&TH8-e!xseppvm4>g{P z*}I|Py!~0(qb{2{b_|HGWFhV`Q2PQEdCm!fiw58EyRF(m+#ZuMdb;%PHl=|>D{5!; zQVg{yF6UiF^+<*>`#mBx9OJff)^~=(7e1f2Ov??q&o_?Qf7kQSl)91S2-ur+spkv} zv-tho?M~Cehkoc-&byN_DMY{X2O~@46<SMqUe8g7+25^RGgqCYzac7E;V$BrxWr1f zqQU0XJhL$(w=x8t$maDUDW0bB@~)2;YYcKf%vZf|r9F*PMI{}1gN?uS!bNc2>#2!< z32a-BKVk4hO>y9@Ut8;;9CGhQ;;o_7J*i_RF?)Y(IFZ6MQ6z5aArjDiKaXIOM0ZEU z+Mm7bRw^E`Fe<puEA~x<88*Fk@o#*(ljIFD*ZMq5+?!?;tJh}-uM~cts$o~8eBF>o zt>!>ZkN;>Ql=ZJZS{PYTQEGBFW~wpF+avjk!0cJlT+P0u`oepg@zy2l+s1d+m3!!@ zIjFemmK8M08;sN*p|vj_wzs0irZ_)}C&BKld;P5ck6vqqcm*TA#wW-F;pV!3wJVeY z{@Va=L@nwHo3~Vp&y)e!FDml&I9*oY?hU;)6tDX(o84qyR8-A|tSXOQK{PIQnyq;k zFG+m*FLIM2@Jklr3Dp|0_R;PFWqjP~Ud;?Xc+JD}89PZ<y6+7siF;Qz5JqQ|;h+L6 zZ=AjF?n2&6RU`E~PFE6z&rjayOkV%Vm}QSXk6Ke<(;T#$2j0(3+-RbeQ@Y$pv>`3z zQMW#qH-bK`e7}u!(YtD@>*wmu*Wz~Noc`^ucW1x+Uk>Br1HXJ|{0BNe-z3=U=;nu> zsPXCOz6RcLg=Lzh9H%(s9@W_}ckco7{vu^xL(NZm!!l}3#QHy?FBaK4;U2z9(=>>g zy%v9<Y3fw`PxU8y!+jhd@7lmr4R@$g9v%-Vy?&Hz9Uxr2x~mc{>VSzGYqLL%4}~eo zRQ?hKeMyH;4_gK!sOB|eIg#;7269U?Dz|SmWX!<RedS+oadA$cU%bU_BwqQTk=`30 zAMuuR?_@fIbI&5%#ljc%QIqqo$!jgyq#kE*LQlofRYQS+NQkw6eA!qt>v8R=w<Qra z{WitFG51Vv?;w&O*vxyzKkAg#vq__6WJix;fVZmE-|X$t7isM6>ziG-?tGY0|DPwm z_MH!Gk9rvAXoVD>UM8^;MlV3Sxm^fDq5R!Gx3i=X73wQv^{@AZ{h$TVm>8KKtI$1R z^hddWju=Jx`RbRoRI^u_o#`%xRx$a1c}gcNhUxKMB?B4GiE7}}nR-~hGtS<kMQm8w zaX@JtQE?^<e|nBt{T6SQx?f3oH}D-{^VysET*MvtThYLo2R)}5GIRGrFQEP+tI1Mk zW;=yfOSzyg<NsxsuXk6Wt7QSm6PPjhQ@&~1Ff#YPhHUvkr=gIWrN2elRd|nn@6s@R z>6?su4PePoaOjCgc{%&K&bEp}pdo7tsNZD>Qn#2w#8IICsxE!+KQx<>!$0*yq)NSP zyyw4|x$<czAdvj%Na6OfbpoX@gUTU~PZ@i@2dQH9(Nttk!TnMa=OZ9e$`@n&riFZ{ zv(>Ov`)b96Gr}^P4x~Zmkfg17oeC`wavANP8&sOp#WW|fTh5}JZxFF@+3NmgMRKye z8CYgm5Z7p(K<A+8Kn6~y*a*GEACaop0GZk8L8|toQ@gVb>&bW>v^CD${%ou{dFV6+ zur`&`!<3Dc><nUtnEID{wgHU6Hif{+0&{labWo}<RbzJJVb>rSSI+4vD!*E9u;8lh zlty%6EfHvHFct50+E;U3H6sr5t30<b=*wYC<6L4R8hSxqt|yq`m#V~H_xmy`dTb*J z1<bbc>3Gr60t>5Le3+q4{Mi4jz=sGoujIisZ!`yHBa`n>CU`cfx7*2byO2z!)c*Xm zAH>2$B6w?0$x6Hb@7L5DP`MrY*Z1#N>@NB$m(_hehGb|Kt<xA$*~lta4KrMD^r&-= zl}|IQ95KH16>4JVChLzCg94^G33~Kj3Py;6tM`Sc@Vo8!_xD3aNEO5ZgoGsD)v)v_ z^ZLmb5A*JeV2j@)17!97=a*9miggbyuPOeYAN|i?8e^a<@qb_X@6YXTLodU>|M;)} z&OHwEdH?I*|9*?bcEH(kKY}=?Sn|bxfB3)eZ~X}#u*J2Gjt;$?|M%S~t1|_CE0X<U z_DcJfwk5)}0(^OC&Ed?0r^aN>X`J>n)a?;RYN*^N>)-e=cB1!s>u4oAIw1@_>E-v% zg$eeI7}FFJ&txJ?E30uRhHqgt*CSu|XD<B``NSTlyKuPOe(QaN=%rHc{@<&MQK*BP zb?*DR-&gWo$1)6lCGg?5ECk7mMVa9F^Mk3HZl3YI7f`Z)VBi1V*T0|T^bl4UdV|*S zz9`}?D)^JcESOQ9W!r-ocUw{8AnIEg2OO^F|NrgP0`4?{1m`%z4Vt~8pcXI}N3-e& zV~|CLLP+?zf4}X&zF(oFXV>W%vt{VRzK{qQGb%1G41+?Gmk_A>uUEpd3pb6%Aauhs zW=8*DfbTJdlFMSq9O}+%PnKc792Y<)b8-)yeCIw^(qg&{>rriZWa%){DiG6}c{5Ig z9jUil__2SqI-<P>aW4!Ck4Yg22RGYboKABZzn5mM4aX`Iv3sAb!!j7046muWYR?); z#|u$`eZ#MH#kKQ$oKh2CgPBV%h4muv*#yj+-9{C7r4&d6p$cD5yIa{LYKs|Ym*uy} zwvz*WRf4|mA-qZgFJlH{po{c&=dqBUg~s5mje7cx*Fhy@E#<=!)I@3kHcH}8IGTeg zqR&vCJ}d{UMrNd9<ZzbcbC(7R%xE=l4jNHOD}$$wM7eber?&d`<!DS555GoDiS5th zY&1?G3pHZInec9POl<}f*22D(kOlY4_lE!I{el5_{uOydx1R=K=coAq#lu$1VDkgY zavbFqd3uqYRoYRIX{tS8E1m|8*Oo%%FX$B`{kgQSOJ8efeLHSoCM4RYXr{4`u>64V zDw8znY;NNJ;XGhFUliM6to7V@h+4TVn~E({+ktY?7(FuL2j){#I!vf&(4sG^eJU{m zwV=>3?a~LhryhOqV7CsOPVyVNn|%LIzu`BB%iu7bC4mBR>6Nwnp_n~>M=nx={NpS% z=b!d2NHbbomUO#N>`^isL9`O~Y$8FBoZ%{Ugo>MH0b%hq0_BoF!6ve|NogK1=1k0Y z!@~z)ia809B@}uLS~bc6Rs>%82>1Z2Ue}`j4l#h&3uJkpMUp>F0t16_QB(M!;z#3X zystf|c&E{$W#U)8u>&;%6o6PvZ}R<uf+*62UC=K3Ng}pD)ZZOHO2MWv?R4jC3)$xl zO-Njz0MTK*K1q*)5$^f?v%@56XW!+ZiAuSllSrCd^OS`p>@%4nAJ|ExNgz#C?{d&U zPBO#Vy=oPG>Co`OVhhVMm{@;A<B}N4*V9Gae$>~8o2oy?nb;Gnqe=3C-Mu45!1?g+ z9jbyAgB3U>1Eq6uwbayv>mPPGD8~`V%RO*f$_rpudrcxW3HMk*x}&!9B+9~_(secB zm(auo=c1BE*N#l@4CjoBxd&O&Bi4R{x1CK$<L5h3dBJvT=vJSuo-oL<2ScvQK^=pc z`JJtMO;fF;&ZuK5ptCG8vWA5k_9szEZ6?HZ5vB^2K|JH}uCW`9MjyO*f2f9!c1!0J z6uUF6;Xuk3#vi=Amn>jW#aV-JURb6dYH^Y^W6cnUgpyu})qKXdn1GfRPS^_7Im-|> ziD}7@dT#X?GzY8b9s(#yRxW^ujI1*{O+6m9Th%`FOSgfv44hf^jMc!*>6^H0v_t63 zla^7SYhQr4HpzVj1<(rY;+h3h=>p%%$s9b@-2@Oxh(ppserm+I7qTXtnG{8Br^#td zFx~0qlNT>a{E-1=r>N`Tk{$-ncaP;MM(aSJYJU*=B?JK*AXkF}i4?IQ^N4}YAxiOT z>cdb#lIaoPFPGjFpvcD=$s2~$E>=vF^re{DwzQTAw?ln*pgPxV6$qg|zV8P@(Cj<9 zC=(iy@)lAloK(8k_+?hTXrnxcSWJsHvt#1Q?I9#bP>ORPNLhS)DT80}-bl<<KMBqy z!9&FhOj)`%;_i-rETnPEXt)o+1lMjzjiO;(8f^ioy-a$;(aDxBrOYW(lp92vJkl)t z|8!-L7AyWKkGFSgngUClH3`H8XA}l%@eV1BI?D0O;L~&y4YW8dQ8JOeN3JOjljd9W zv$leYsWU3;_MlAv?9|Akk&&<Gshm$|Ms;O5A9p>M(diF(yIwzivUoVsxmG4{q9@IU z{dzEU$8H?{Sbbw7Fyu-gvEaMh&u!|3f*90fKtpM8cJHu(dJ`#;Y2`Sngv}|1c9J_x zNC1C(f!&+$jy*|*vz;q}j)3-Eh$A7xK+?|!F{f8hH`|?8Ypjv1TzaP@#_s+@zpFf! z+zP|#&vg)OP7b$4L=Q*d$*!H&zSf$cRiVF|=^jis@dj!QL-M)RCe@5j%TUj?yPvyN zr$uid#bot$&wRLWtFg8_J7ZOu-gri}NqDw@<mlE#mSW#~tI0pjExC(eyU%{m=zHVQ z6rp1q5USZ{yJXN}ko{Nc{#zz?ZV#N?Y?ivEy~f>sm+O1_v{rHLZ4(ti4fO5Lw7uX> z{F(q(QMY35>K&7ZHMmKOnpit86V1u|vp`FzyB@8>eVx)=sXUek+pJWP&o(unkQ{`8 zYXfympz8uJ`dg)IuNWQTMUsTuTeS0R{UDJO)%6E4S=F`6`V-N*V(KZSwc1k$H7+@3 zOJ+{_)oPldU=`YvM+w`Z@Yw$v!D#KsO-3Bb`V~7OjckG_{XL3z*S5d1Yt~*&-(R^j zG>+oST@I?qI-X5`O$JJfc&`!RXSKuaXrG^L^83bJuP=QT(aOxnxyU(-u|(8<p}R}N z@Rut0K7}g0R%n%|>EYsT$(qp!*MF2^FAFA$802<Y!Jus9xz~RJJGOjCb`a!4>gb1R zg30Bh+S8IUbckDyl)E8n2Kd;hQ3$g~$FG8D@wZ)Y7=e1NjT_5j8lbJAOlT#*Ko(|z zaG6|CvH(9^h2YKu_HsI+sPvkaW<B|5JBpv-$+?^?Ik*j9-Dp@R?0u1wT|Nm-!B(TE zKocwh_9#7Dj3`5foeB$robcLVQN23oka;_<pjKkQ2Hs0=`w9{1Gum^}QPPDDmtfKI z$KfOqyaCz^JmQnjeI`!&c7O<M9=iL6`9zHmm2C=-KKWYU$Y-)-GUe2MRD;|lO(;@O zqmp#+!(*jFC$PK{A;Xu+eIU*()AZ~YwQZkyCCF<c@r{>=Lu2KUA&i)iwSVAdb9HNT z=`!4D?%tGUsBHZt+%h9D1%AHM2voLVm7Kpv%DXSGBqL%L2ZA}RQ;#DfR9~I*m74|6 zp39+PEQ%QZm6@W;rCJY!K}ZPD_C64PuMk*Go#eT*$O)JUL055z0oy@chdP+bD310A zrjt&qMDvL))`xgreFzIjJdrf8SK^|*Tx7l;nb1^!Oq7e#n){t(R$TJrEf_l$-hIXq z!9=qlU06;-A|&lOwKA3!ppGF-hR;s%vW>{OxvODFg5a{B$^w$Aq7NhcBu)N%_8}DD zW+dR=4b%#e`xnLmM)!m!x)PZPSO{dI3*TRYNI-cL^5o0cdV0|N!_U>QfF|nxlKUVl z$l-pj7*-rVk5azm`)n-g4Yqn$Nq3{0Do>l&cpdGBzbSq);Pu>c7vgEl@yW?!pJm-y znCLYw+BUX5DB>BM{aka^Z!d47SF4H6@)y`#L=e%+{0F4g7-b8X+zeO1qjRcW1m0K1 z@d$szz$0fbFNY<@dh@cL_RJ;4d0@twbRgla%>JRxMHkDUh#u+`KS(i|#n!*zi;VN~ zSg2#^$W%1c(fiGJM>T!E>h0>jF%O+cQEWGdz<Wmszux)SLF*M}U=q+OJRbl}Ch7!k z5N?Uh!SkJCS&G0shAkmL<Pmv;7hhl;bU*<!v&<|w!o#~seKh=BkuWx<@H;8m;o_=c z^qE^5jU__n%qeVhy1RRx@><1NE_jyjQf)8?Ncy=;sL473q$#pn+v%yYSTnYaZ%0=N z)kz`u%^32QKi$u(oO%_CDXklHJQ4|x*|v|`eR=PV!ap*Bdm>K%D@rotjY&8(GxHk1 zUDNz@cF}X!JfF+J$ZY6L^8m{%$Xbb&*=`7quN+id-K@oGfJF|DARjJXjU#hdOT$sJ zFIqxSl14Ylgbvm$=@*S*uw^hQ^3a0?qnpe0RHb1|`*T2B6EIs`m&VQx_GrOrg3UBP zEtr}P37Abaxtul(OoCh&bdoAeg=s|t6)js4gqIL<?yI&$Ij6k_I)~{{_&27TG|i3` zS6y|VM8v%wT|iX|5O6>@Ir;$ry_rG9cR%B5pGE!~1B7$EhA-=u_&{6}u;g@DCu6a+ zv%+l>6sVW8ld3`jmkbIGkXy3o1<FSU!Y>Mh!muV*ty6G<u73~Y+I4Z$FdQvId$FY1 zI<PH%Ab%lYRLjv7%(Ycndxo3$JH;shJf%Qa_vBn3kTCR_M8u$;GRWr(s*L)3mPe_0 zEpa{?x|O3^Y-`DV06~9&keMr}HNh(8pDS&Bu@y|GGuT_rP8~?0#M;zrFR!Gjc6}4a z7pQgRXNkJ~)QRHHER-10O?DaIG>KMrqi~BT5c7r>x>rIpLy>y!f<(2O-K}VlTSc9F zVduW_&~MNJfWpwMlY0i+5`2s4TlMsZOTNSyc0?W-x-*zC6q`Lyai=S%Q$2Rgo{t6X z7VZq^VS{qgr&y}n>6jF8^n9#igok|=#bc#V{(xg1_}$P+B0Z{3lrg4n1!+xs<4#-+ ziZke<w&lA&rydf_DPh+q@9BzJ^g;yLiPFgeMB+0q@sRLk{Rpg_s89!R5jfFi#PZAR z2XQ>yz*{TeYRYBI1_4wfBe-9)zidLeeEG9NSOi~hrcL2~8KeW6T1t5F>Sn4teZ%0$ z<VRictpjhf$JjMrfVCt!@M)r))#QwDppGQLd}>xAL;&WkE64#~s=%gZyM8&i`8Z}X z7ZaD>5AZOd3=+1(<=aaeUENfq+gy7KBl2tLjqgDluCt}3rw5&|0<@L=R-P46+t*iq z#%=Sp#UppEyjo7sbG}@4mnvS5fU=OzgzJ6x%K@_5`qf5~+;MC9ojPiHj5?RqkUwm& z)t?0`M>t8XNJLRC7=_J1Nb3c#NtjF<`Fw7^{7gudw3$WGaXaLB){q+#(%c}CiaJ*| z4EEur4W~6ujG~~39rK4zi*W(f4)iCerywKD(HF+a1_AXbkun#Nc0W3at-2OluS6?H zV^m%vzFIr-tY`m3Z<7~3TDTH8d+;y*4q=!lZ%~C|cI;x%1`y$4?0Se^X<!a}0lnuP z6q+F@y7C_sDdqF}D8E103q>@N*9DVOVI^fONth}cfK~(WvE(gI15$+E`kOG97a|*x z<0ZZQQ>uR>Vx&RqCgFN~2Oq&KJo^7boHA8^g}X!_^?!a@toY9txI`njlMeI8r^gWo zde?K!q~!)jGYs5W)OUPRJ~~c-P4tVDA2u+Z=F6NoTKz+e<kgT}{y#+T+VIDTW2@vY zA3a*}`_rH3riAjFcenj><%jhv*4GVf>kB)jw`$YfmA~9PaO0ML$RYVvw^&oeX+G7_ zs9DFBn%8WcN~Shzm|DL|OLI2O81LyHJsUNSvU^|Py~inRuOHrARD5C)+Pzt^$$H5x zN2C!Yjh#DH9D=HYvB@<Wvk2PY0s=TPwIQzf58vw5ie5lT=g7Y}Xo7|`dgB-D@T%&U zWKh~$hWZQpF)jroZfL!B$n0_9v94=}r1pG3cRpn+9(d80jvL4>>w34pgY?y$>_FSb zVZh6$Ig^4Da}Y7TWZXwM48s~i(`iwGdHK+$*skRn<a<Rf{jo$5fuKsa4A{Az8<g=V z;`gD=?V+{uKbi0^P^h1S5NJ|{oHF0zE9z(VMMjSCwwFn-L)CE-p%}b-hxPcmxbgj- zkL%~xe2FXnvNQI#T7O8~x)7Q?E&#s~fUaIDf_~L{WMaF_j>ko`$=*uW4c8CofVATR zYx3B{4diV|k|Xv0!#XGioS3eUBX#@jhU=yk6IU)0-=nhb)Q&ABCl|FDEbZ8P{kG1# zh))pZG$BPQSq90ib&()|O1cH#R5NuN=V+`o`*uoCt@P}o2xUfu&-s$AJ{+#X$(j9h z-eht=NHX{W@^^00h%s-}kB+0sxpdXg5}m$74P$hH*;h64u$sc|qR~+JXs(XjBuc-1 z3ETpL=3S?TFtiINz}E>fi}qC`S0#`!%B$~^9}1Vun*l$RS%k}SzrAN(bs7M%4sB4c z)NU^JL}(4S1%R)qI6#vWw@2vNJ#fN;vs>Wd-a}T1kN-x7<?bW_%tZ7B&sNHCNA&nU z?P1C0ZwxbGrerYwwYn=`-LKKvCJ)49;E%Qn-d80mGwXt6(&ncKX;RppH`_O=Q$(!w z?_8t0pT;b!Ok=#wJ0ONJfJ4Z}#rKRNX;}GuCV5Da{7)cMQ@Z%TICiGpVXO)FAxiYI zGkqs3r<j$QTy*182;N#mm_Z<jDSK5$ye|WeBEM!5rK1KXli>!$!n~j4?HPH7JYWB+ z{qBEFiTM`mE~4mgLmmZigeb4LiU|j<Y?I$isVu70`QjHn@twpb>#x6?Kfcuz3Ywpc zNv2PSg(F)$pDxaOBkqMTw{AurYOzha<<nn8W)>~r9)jh=I;_V|nLoKT6&~7%ym}b| zhWJX$djPy3Fz~0v$-CbAWS`}x0X`i25zb=QW2fN;kbQ2WW$2O@94Uod1Yqh&Bl{iL z*>^}hJgkEP;Lj=AtX=Y(OW&x1F={Ec6oq{QNAGKNu4xPN2&)0zoWXm6dINj#g>BQk z-IMLA9G8>)dK%Br7h(sm4FO~UEMpp$6TzNEVYbO}9IGbpM^}Ckc=OnMnOwBf1R~BZ z+N#DiKj5oNo4hmI5+PBm7#Pt%UuNq$V^&mZicO5_lfUS5xSW5sRJ;rXkcYtszMR)$ zAZ;-)_P#Yy6W9=)lgL&0FlIy<2Ufd+S-2}&4L5o%T?~M+Erlooc8dtl$UxWy^_Gld z{!%aJIf3)MuBB=Ts#e;wlT;)$X^AXNAm*9GlE!OvOYO_&4EuWk3ERs#e<?w_vB|c5 z4P$mIBgY%XS=YT1qCG0T5&j06Z>1d_C?e5u$$vC};MzhNfCU$810C{z89=#+qQ0G8 zji3XCa~XRG%O7Iz4To<o=lkoeng7q83HFZ9qa)6H23lE5h;B%Qs3e(z*t)Tgf^9RE z83It+{UC4e1J9nErZkLFB6)i<627#AjspA<b&V#VdlY!TGPM4a30{gXZ|}@R6na8b zEy%{k-m7>vFjo>;;f_JC4^3ps0M=;Y_GFFZ@OuO?X6%8T6nl?82ui<g9f-h@fxsBJ zRtXdFFhmWsgu*CWL0@F}Kxe4#h&rYDSIwQyE&iSn&Q^9zgbaSU7B~Qy`;@<p)m6(3 zmHDY3w-mqWKu*};y@$|95HW;0#oo)vK#&`Q17Xu#1`^1FtDCh0n{SCsZ8J%*5tSrd zP&gBtJZuFxAA|Eumh-IcY;wy*(;h`V9GHxEGi!XPcjnh<61T6NU4As^sHL|iVG1SE zn1Kp$mXET$#lOUZE^p8ru~{rN#}twX-kj&Jn*ZXw)8gIi&l=ZXlPTE3Mu2TubW2yn zW)g{KysNf%J@*|Zw**FQN)VUYL;_g8qzoYT0qob!I)SrDn3tOeU4ou?yP-=5F1dIi zFs{tmnt6#|z`cK)aI?eYogedz1h4h5!>4AKrS^CNn`>OjEMX;1_f<gDl=#*yitvRG ziHQ+5@_t?CTyd>-W+0FSS`hVeS}!bbio(yr+Obo_j-sFXwk#H0f40W@B`pdp5Y`Ql zD)q^&NCOftCJXG1RA_B!V|P`SpyIEbxaOOt<=%kF4CG`LaRP(C!mc!tb(~@^YzxX% zVYv>-&)0i*0xE8ukyYeRu)$IlPBJHt?b3Ak<j+S1oRY~}!DSUcPY1Q~=$B$`BNM<4 zz0Ob7uP~?{n5pN8Xn#A#$E}AN3t!>Y)lhznnr|Upak)zc^&lcMo}7aZj~n@kxW=@6 zyIPQ8Q!#5R92!2SR^nO%Yb09v1t~K73eaJ!AtX(>C9Q9<iJ-Gw0N!M3+?*CbBhOx4 zQsTENd81mp!tO{rqmlYOBU-G~gG-QAa^!t91}?KU#}@5QT!Zj*ZdUUnxdt^IM+=N! zZPO9j=GR?s<1_W7rGNqDt}#Z;>qoWszixcN!1xRX7I?>L;n+^k$if!A4mxz6YIBQr z(sS%;IckM{gw8LqBO_^lm$a5t+-){K8K1Vs$2rborsJvF3A=cg(1rK$tPx*!edh`v z=d_BZMTF~foF6pNzAT~4mBsd7>??V#y<*X7X=VU}z{hiOA7gGGA3ObtHg8CsNly{< z{6$JOIXTVL(J9e+%YI3nvtqi!Ca=V*<BMJPG_MU=VnihQPJp%q4J(?)+FYc4LKfJk ztGDb6nl*?=P)!$WOT<l+0;Z;J|Dw``d~Dq)85-g~e@#I~<l>2*pKX!VlQ`H)`4&ok z>FXPu!zD2mN&U#jF6vR6FCde_j9?C8)3%2KvK<Gn4qmnsli91>MXGFd+%8c-ncYHZ zNlm<((zHgrF@f&5k0*}DLTeSCG#5OdlDTrJ>tguqM)o^r0=Gx7QEl^@%D`z>qK>WY z!F9<AgOi?HvL%cpbzZF?<8I2l4LI^mb9wXb9%AtgiJ^_S%t7bM5od+%qqmQ_<cwGL z0T4bdTf?DAZ+^gfgYC_Ivu)FwjbSN+J6@nI&2rc}>Vp4$7ISL2t2(yucWA84xyLyE zv@PqgNbrbzm-IYcB52f?JX*raXm+QM)-_Cz@5w6Z#b`Mzo`~qTK2e+1q_H$dA4W&$ z<DSSo;pDg5LGmWRrk*S|vgr%BYMVDco`u+hWFyj(=BOwn+BFpgUT%@sov~fjpnJ1S zivRn>&>Om1yg%aea1k}>7pJ@a*imEdyc=(m-<`dYT>d$hBA}Ld$H<mQ$T6|~y{mCL z9mfKfKc(idF&-6bi>j#c#_b!ydmeqqyJiG|4=J7d4j`2<s||2LlS}sX4CKdnWRh zuh@Nx(jr0$Z64=4@|q!-WK4D1=+KrBKtihQhmHNwY{bIzS;R9`v>?SlR(p{l*<Qz= zRZ?tV_s+u6C?$+O+0vLZ;_ZAX-k<!-uhfYAN>hDSW^?VO>F)clsa|W5i{s9vr&-e) z3o7#K_hxHm_x}9Mzn>Jk+<&;MJpHtAU!(lGr}xCfV}0%MvwZ$X#f3Tgv&roB6I!bD zpodl!39(IG5?iY??JUPSd7QZ!OiJ_W9`ZZ$pc9y#Z7uo8gw?uHk@IZU)9it`ny5OT z<Aiy;F^(kbZ`JvRqn7LAKhia(R`Ji2?b0R8=?0^2m5P0a#L#Sy{C*p9Q2(_<5ASsT z0=7LlM+2di15%Q_*yKc1wWfKO)LUm_Ucn}pLRzl8!ouHPJE*$4dmP`g+a-V7qg&y# z28Raa<R}}IujWg{OI2>nBfoy9xGyD+sHhhf_lhd9b)URK<#0I^NyqAgz=Ue7?yj_v z(<L(zo`}5)|L}g@^mNsMpgSghyB1+q{G(e5vJT5GkG+ytb;-|vE=R_@6l8G9ClxjI z)-+_a?C`z*Nf^#w-a0x#<#$v2OUF&KdMK}@0{L&h5%}!{_NX6XWUf}nYm%;b^&})V z`&GhAp4@W5?zW&_Kuo#=iSC|0Uh^oJWaccP^94165i(0CnnA7HJ(WXyI9}pGpI0hA z%NsoZ=g4OO-aRZ4j#j}&l@v=<r0akLA&$KmAf?mEj>Rv>3Nx;*$3a)To=6ymQ1>o4 z8E+s1f>LG@$QesDIbMUwRMC{yRrX$LQd|>J`*!p-(qtktQ6A0p&zu8nEJtY?u`U$1 z!yKe)0+f5$wcx`Q3-?1Qk%)i<d^7J(z`o4wR0$OF)sxE$ZMcx3bcMnsz+!rbsGEDR z=jf4L!w|!@`|E_NGfUYh0l|lMn(V1W*--5Q%3~l7APde<!A(UOyl;BMeNKTNs;yQx z&g|FP(bxu+G=W6VrC!3sl`Tx{t4OO-(D-aujveV@mvh;~ZJ{$Pg@B)ix~yF`<f`<N zHu#nm_ArBF%RW@RqMjvHZ%q0aXUXNEQ5!lg*DQ;%>NfHGy9>oo8ud%6tPQc%B(<rL z+T_3Z@kyB#bBT=QL`xKgDe4b<myvgrFPMIjuI4lE38Q=uzXm&*HjF9EP-5?m^+A<> zpcGJCW%VabD4tnl?=)R>tg2Xan(sRGw&Duw^f1zYqmEcK2Xx4%fN|b2DU3}o9^~z) z2V(6_6VmdgWXOeX2h1?*TYk*KKE1uy@{h+5Zuq<-`LA!TMZ6y$EENFtJ}UgH!H4DH z@)<*QnpDCAj^rAm(NcT=;Y^PRLF^XP8>M)#ci8o3+BKGQO~9m_ToG>H8Q+S9pv{en z#|x7y2S?4Hv5s0UKYz|#WcE0{jCFQG`Qc!Wn`fbkp?~k2UXg(&>g^!o4>%lmx%6ma z9_b&;ii*Y?6%F0wM8R_<(kslHT;W3$^`l=_@+>Se%y08qO6f;kECV!#Iv3!mu}LZ7 zjUd=+f!OLS6x8u8@8MZ0cohS0o1O$X+zY{KZ_^#`nAmXTbJeI7{e>F`K4^lpBu6dd zroU6FTL14O+o-$mGaL&mO1@5NICPkp322a~1^8a1hTnd?_=$nLIN*}Tk_)PaVOdGD z;ZuMsSYn&cliGTFLk9{!;H)1jhGXNS1k1Jfv5GCIV8EvSwNR5(G+T}G&!Q8Vc~``` z)=b4W-wt4rPi9&#kCc|%iWC3wU(<@alLe@a;xoG-k8Q*OyMf6eqe^Jqb?z(@S^SWl zv7o`I&5Xf&s`aI6IX>F7Xc4$1pSn<2QsEs4b-HJP?P)gcof*pMG_~Vj9pr{!%Gor_ zFV<(t^k$#kU{9=|SidU%37m%vPIKn;E!O1x=^vNlb|x8pGAU`gIVxXyA%(H@b}}!C zoj%Ypdw5r;y1aL52t>KwPPkhUHGjYPcp%3HQoZqrTTZb|H!VO6rtoyz>P4p&;uI-n zXz2O&U45&mUT^Y=t$|&SmOfWKYBsna@kYR)nmn>Nc_HWXWiQ#yYpvJRDC*4Kt*H9& zao#C`hgJ2@lxzwqZ1(i~_-ZY?aI7d!*-A5LzrEk2&Z@#rXGYIpJV&Q{xNVz`1#1t0 zA}ai-mrg;zD44+44XeCFBN4a<?WD#JxgLWDET$Kqg?j+GjH{Xd$NS9>nr=2%*Nw(r z7_r0x>l_<i@MT{)`5hhO2`Dj*$Gw|YW>qwGkEn`^gmzA;n6t9YgT(rDH3G&~ER^fy zP5m_oVfC~C+b|mI@j%s4O^P+TtD&<-7xN5Xx<4$-tCF3^AD>-atI~ADE@qtfh^X~N zHd2#(t;9S?qgyYsAfkCcr~K*iN36IWEBBPK8_%}FX_LKT{F|{uZ&3@@K>uA72J%NY zH|pyoTVz#XH&v22aqH>+)f#KLkN5aIp=HeG{&k_-Radcip+B>Cxt}>Wa!%*&6VC0y zlF|PCsu?c7b*ChX&^c4ymCfFU<~jc3*w*P#E!mmJ1A`^nd6!vhT{q*`zP3NVmq}ji zsz88luPiat<aI!0v`J;IWY7oSENV{Y)!t)juDh6Yl!Pzx)Caed6DAnBT`A^-_~LPA zdW-mPK{B)$jl;OqmW!?^&db?xU>E;-!^nH`jCciq=zUfkPw57plZ+pyvE8CSUR2VO zxA&6yQnuV{yV12cd&XH+T#ChPd$yz}upPo=%YlhIg<&g$9}SLE2TTHQsJ>Nd=TUwP zd9|wCNZWgX&mUCczKA{~*it=HT8EUmb;z0tBE7DhWmCCCGZW0wpp-8)T%{CPQ87rt zb#?WLjef}b3F0K)HI{dBt}z%0z#Xr|HerT;`#rJ~d~MF^PaPbLlzrjn{8sNtkto#q zxbsA%o`gP8Pd1fTN1Z1zbR9f>1Vx{0MqRw`IrbC;hS@7NbZ2^(iCTNl)$<YL#ALVX zzV~<gdFkLrm-}L~^cTWy@%3d>=fL%wqOB)BH|~qSEij44beW->27Iy_JUu`EZC-u_ z)7?UBw{SL9j$0z+wvDV-u2=YW>?N^L=?Of??)}|wa(7RP;8~Y1k;Ii5CU#{y-)f5< z<Ud%Z^pw=i82+Scn3~fT(tpThTkb0!-pGAy3)e}l>qxJ5>``()V!l=cehilRqzx0I zdpa>4Rk47d54x-*ZiHbBvRVvm_;livh_-9#N0L{hp#c3t8|MFN$&A;`YiM>s@J&zY z`xE<HDbxI~Ujvsbdj&#dFZm!UFmk6KMTI9AoV432A?ZqzmDrc7u)Q~ySQ@pq0CH*` zR>IjDfHl9z=5W^mFDt^_c=?#<p*?v5rBJ8vwe6MR(d#uKO2Ue&^RZ*!Fr9wL&y%Dh zB==q7Fkg+KG|M=n6NnQNI(=9}mpC>fj(r4?Miv#nT0L@_#bsRZI)H7tDHgR^kx%Ls zU#4soh`)0S-|TORP%3TpKOz5IL2_ZSTdpRKOz^P8#4iw*`zpLz48i<&F@#UHR(AQl zKF1D=OPxbeusEfQE~C0yl7%3kQA6yTKE6~OC!jt>F(+vWQBV!uyDTw`=D5_ex(#iJ zm)Ox6)Yv)CQfqjIm}DhPjNiSdX4NS6Sp<IsJ_$i{q$MGEc^tf2`7^utLj>X?zW*M( zOHO9?j=}q7Oyn7se6;~*qc2b!BzImH=qK>-f?@oCY&>o&4Qg4;s9>yRzZF-`TV^16 z`?BmUf#b8;9?YLbv!es9(jLbOqb-HS-ka=pBOMVPF3cBn4&5UzKO}aSHaP58QP&Vq z#&{+J6`unT;$$58Vi@bO8T{4!2m{Ls1U_~*l?l%B7^U2r_UO5_kKAZFHce40OzZS< zE$Cd<@o5KU<C4L92`qjFBGNDZoN{()J}UVtY_}6OiHe)xmryDv=)#!25tHM19wjsr zQufqYgoaflrZxi+!JLT^2W@63I!b^88AUdQVOwGD>Vku%xZj(VoMA|!+xVE?0zQWZ zq3pbE;5+QJjDY%w7Q&jdW>M+^Uw0)?5(mpT-a4?&<xs~@v`-6RuEg#By&o`HoMiGS z`NyhMu@DAx(Qq%(Rur!eHYw=g*Pqpjk6~960(IUhG59~OMaQ+5W^h3H?`GCrC7K_* z-WTh<rpDXRs5HvELcT-j;hJ)72aQ&ZzAW}3p8muv`F27{qd<n7q4uO+LEkRu&#Oy@ zN0$%or7IedWSW$0Qb~F)_7f&SZL@3ev~ipuKv;n1V(M=jvD7&WRcaUu#EiVBLkI_T zfL=7k$e&-RHTH{tmwK94TG(=J??Y9B?7j}CriCyfjU)Sa^VL^4TJx-HDB&;hQ7h_z zZf33H(t-5QWhpvOCs@tCOucuMb>D9P)`!Dg7^C|x0_G|-U7N`7b!A$ysNKY!DVYLu zIecQ$ZKuNEqJ8{J3@mMK!SLNE{o}}lo?VX1co6^Qmhz{*71||RJC4>o=U_kbi5H3f z)3*`gG>Qw2#@@x5cnpjg`;PYyUc?^3C=Xwi>1AqGhoLxSiOvnU@FKAmi(}Dj8ea)S zF6*2fUxJxh*7%3Gw$M+r{$(XsrD|MRiCBqQTVUR&-kFjn{^#?r1X0QAekimV5X@l% zH`N)Xo$*#WD<C7vuXpoX*=U8Iq$o6n0gB<WMRjf22S=4)rOCC^X(r?UR9e(01whbz zKwZj?q?F;kn4cxr&}ue_NO@Qg-CSla<cfq16;l~=)o1dBK>euK;*Yq{L<N&~hdG2q zj=PIKiNI)~RBX~-gHoV=+6fES{i8F76*Urk#9X8~<7>`BP;*;SR1YC|PoK!G^thg1 zaQM=VdD;#s$=TR@2T}31iNEO);mGpWVM8ch3gR5du806rrsPZ`?m7Ih_L^;}_xP(+ zH|x(oZt3E{{1rh49wb!yq$IQWS(SQvGac^_#HVNp))XMMX@0x|=T@crgET7#XM1_$ zbFP@`kGv1(B?0$l^w6|tgk_Nu-aj2m8oqY+E(_NI->Og&)|g9dHJ?$r>~TcD6GZ$< z`+#aWrR+_F*-e(otGM#*9Ua%se(LPcx<s7~cXUD8MCWD6K<dxy6!m_-5>?_k1UBce z6Dim|f8BT+Vq$bj?UUdr^I|p(kY~a)XivF_XjmytREpgEmnDMMIEOT6T^S3mmU6*C z*AI<=ni~P@7)HRk$?-@QL@ZfEIpWEQ2VY7cnJp0xWgFc{tIqhcB?k(*WeR}94Ig;w z=vwKP-kYHPM?b2!n?x4YmNe)NJpCBeXa|6GK_My&vC18ML9nxk(soSq5s{TPi@G2A z1yAf6mw_B>%`H-}G9(2bpbe-k2I?M@Bu_>nQW&WZ=m2Q~(O{I0l1QJNd*To2Hn0bN zea%CqldK{<`#k>eYV{@|<`Oj0UQxYy8OmRr3<Um?@Jk4NAJ{*e#&sgT79v5EI>x{@ zw?ks$0p$iP?}7KqNe<eVt=J=;H7C8r=xV><fmY0BMHZz{2Dgx(QJm{=_dD=&G?=dS zC?z4XXdn}0g4_@(d#Y9)X1bZg8^<@_Uq;{;zx<w^=h3e)CHIP~Tf)M~vsu0(lzKR9 zoA<a|Rk*Gu{iRu8n-)-FKNK^2J~co2lyDum+ia)oHjcX#%+3ts`rF7JVDLcR^iO=P zrg`E@M^f;|iUY*g^-=t;C^nH^LS_d5|F<i3w*3c!)PX2JW-D&Ar`mr!&cP=j&kIP9 z8&PS2>s@*n+uOkTc{^khZRf{?MJ39^nWrM!FDZc^dwmO<b>mx|M%za-21ymi1R8i2 zs$WcvUUe$i6t~rGQnoM+n-M+ELzsC<C!Ks<ob9@J<&Nh`rbhW#`4%nlkN5)pojwf& zm@;V$8wDY+6&X%ieS7@nW)QrJbv#w=jI7o&lsry_N+87@;TL8PP%$-qn?h&l4gbM4 zgs#xX<!J|gkm#8?^H<f|d$v}}0<A~)l;U?su&b-b5wex%jVNDg_WhPWKRl7P%IGU( zw`Q1n{Tl0U$1MqLQ$hiIC4Oe*=>C{$V{u&7jKem|U8sw5x;f266o31$DBnf1dv)0E z_`7RQccxB3p<?p?BkR56+1%g%@pIa9=s>8pHZ@9zy|=1bZPDs5YE)wdLF^f)rD%!S zQexDo-PmetMa7H~#8!fk*gLU)ciQv$eBbZS@1M30jr-1PU9anUKA+ch9lZ9N2ij={ zy2TYEr7J1<h@cmP4wfz*v|?n-xPXxq*>A)?(Tj@_(&15m_y<=!RvW~eRtGWqq8HNp z!pAN$_yXV%wPp%CV!vJN)?3MH7UUv=1_}inz<#kcz&M%CQ}GLAI>7$(R^S<1@h!(Y zM`%Y-&)|_qa)X6NCL{4K2s_jpdjDvQn-0JD$c)!7#SOSuTlOaUYOWfr{}=#89{!^n z6x^}EpR6QKowxbSx4k@%%i(>O60-GXn1)6yX*_c9+yQjkOXwT3YLa^dK@e>3RUfv( zOjR-Oz~v(Th^EX*m{sKcX}$5*WFi2#N~F&Mfq2AAm~G+$*`@aJLtp3g%!9g2m1#e@ zi7R2=AIhgyUo=*1*al5@?=%5dBnj`{ZVfKlm}*g2*NU1EMjEkG8><+#k@tW$X&xF1 zhU5GDz$qldPiv<i?ziQALNrJM58}JSsSEvRm$N|gd8oZ?8c$({TW=^%`{3Ag0ADQA zsb+akrARHVZxxOMotDB73L2Lm8bKjg8~S}0-ybNmy}RJ4FDy?+A)(BH(Bzde|H7a> z$mQKi%}C%Pk;m*v)O6zED|lCcgDg!QBU+x&c;nqA@eoS)p2pAejbbKr;F{;h=^e}I zA-96NeNUz38v#jBdhQ2kC^H}~OT<>6M2nD!hgzF%4~}VthX6{*2Hh9S-3myyj;%B% z2@t=hS(fw2*8pqZvP8Bz$ZnQuBkEXU)<+Ei{9Da%-66M(cDJnSzwAGicXIL1pu4Ra zdLgtOu<8)o>e#xbLpL?&co=X(vtq}O&I=Mgop67rQ2+#;9I24Sw2*7+=92f1=Ek!D zXYp_2le%153I&Zfg|Syr>ibP4f?gdsnKYR10gbkc4&wPJ@%oFKihwq#f#!U!X~ZfV zZae1mf8c{QPjRXLO{E>~lW3B@NV+UQO%8)H9|OvPjki;lBD4Z_d*JtdS#SW(I}-Bp zJqE6^=9XW_VUm^$0X*1`rXH{k?Th9N1wt#*z%e}#`O(pU(N#9#%L4e?b~&t|_r|I7 z-0g=nAZC@u_MM1r?v|DJE2=K0ortW{So=pOM&Gi_%UZrMy8e)-=R#clu|U=VS8s&4 z!vW;4`J|;8eR8^rffw-7cTea)Lz(0`qdxWGE%#^~GV3(^$-x>88$Uq2u2C9s6a}4} zAB;_L1$6XAw|B#P@0|4EVm~G!P96dfp?dkR+l=<Pl0Ru!7g)Qjd>wEfiuazC?PDfs zhrOYcT2xA+WhWkIvYrq$j=_85fbKQ;5YU)Up1j%sByi-Dx;>iYeih(BT~DI;+mC1n z-Z7te3!uVVritly=H)pNL#-N*PDU{5@=B>O5h=9DK#3NRbm#Tr5$*kLXfL-bt6{LO z!nc9#p$@D_irdk!+sgRNFD$YKP-hyErwa~gZvAoZf(|&{45M%+_|L^&H@N5CdW1&f zLDTd>(<)6uFCrBYEA@Oo=OsUy&j<j{db6O+@|-tMp})Vf>!3wVzBIK#J*~mTQK?%7 zbuixt@EGXpyDb)^Cuwa7f2mYXYU2Lxq21%Y4r#FP5bE$r#Rlz|)YH6_#00?QE-Fu- zGEt4L#W$_W{l`$kXkrK;ZZja#RDE@ztH5^ffNbqx_eqfoL0CY!cnrOJBK?hPn5MuM zzRro*vExxV(*z;1V!YNjVnc#_U!J#ke!+9!Z))8kWY-}vXQ^r>R0r%y1D9xIx#$}j z*?Xiw@tp-+2&;o_Q{acPoc9(0{r!UzpI*a>Ibnq*@n1m&=da(8eVR#2gqWmJ5}o~C z%^O@TuvuqWPNdE_5H<Y!ng9MPhS^#kMnm^$kN!V@wX=L|0xlxacnKhv=g9dGsJ;6A zU=5)_`<#@~2Y(<LAithQQBNiZn;lq=z##z806d2YDeur1LBj!PUJvj?FwT(%m|dXI zGC)>=s#Y1?a<qrQ6dO;D*49t}#%C16Svdfl0ou6V$~*8y|NeC_3vkBEuUFBw?HgJO z<m6Qe|4z8E(ncGrNLIvYgOh<|ox3gHG_t)A@J1Z`+88hlusR^K-34_5pqi0aa&6mH z;Vgt1urxuxzh7D=?dxe{M-lDyxMi#k*k>$gazyqQhI8ls4Pn-(4`{1KNvh*P9v2){ z+B7pwd*)@OJ{M_dbA|-q!vQn31rV{6A7kbHBPzYCF0%Idy)p=c9L88gJIl+5UhLPB zB}IYRn!HN4XfvGuYi_;gC5gKK4iQ+AuSKKs<c^1sD4#wWaUMu}J?yVY7S&Sg*Vl_V zM<<-zmHHms-W0Zu-uC~g+LdbJ|7&?f6MAgCr&P~$IsKk&PJ{vfZYS+wk<KF32zeHK zvNNE#K(teSfs`!Id37?SU+A&6{lxA~2;vGh<eEGlEvPbVzZ<2kczb>S?^&mfsY1M_ zw|*v|8vXFfUIXn*6CGsbfJ1FSyb_+-7(MSKi7CjS?|R6am+t&Dbp}s+fcN*qq5plt zP9=1h5wBEQW8s}TNqhddOv*XnVB~o)3l?y8Fcj%&bH|IfG>_{WPnB6!AHLJw?Jhg~ zwfUZ=g!Vj3k$L}+h<jVxQ;J(4X5}{8G&xbO$1W$^Q2yPT<q{)jhjt6v4C7r>#bn;S zQ>ap-eZoZ=Ew6Zkdx%V1nsh}Q=e9Or(JuG=5~KYRvjL)KFA*R`O~|YHhkLs_oZ}1I zi;JH5^Y?<>Ef70dGfa@%27FpU=Db8^b#m!n^9P#}nPNu3Zgdfd`rr_A3fj!u5YJCr z`x;`rh=uFyGlr8u@<<!rRADSljn7;KrBH5JOLiPDIX`Cew83){;^P3es`Ae(hy32W zqA!f!z?w`1uPr^?I#VnV1N8Ow6{O7aC7BT7rC+ZM`5E}@c8<_i4pQ~KJIHZshtgfV zp_kGMY)-|yq5-Gfr>Ypg4`ua^Ze>*ys1;{{rIIY3tUEgwfSepvyavsHxNt%Ny_PBP zg&!Z@U})fg>%3xrGxXepyHJm-ZD=z;y?CK?sSdq;ws;0hG@T4zikP#2^9%#aq?=OX zmja@V@z?(X!*sbpZe~#gjoHu64E);Zu%qW7m$%SL@#Ue_384W{>SSF;51I*?%!6A< zY0vAI2ROp36*oZKh*MG(5#j4UKE&uLfWRK6R$_@EwYR>yhWii5p#gOSxA)kroq82e z19E;ynlcU?J)trCpDtAhGzAFKfinebdVby|0eBNIaqTzC&-vg*YwjZ*{<UIB9of8! ztG3%5e}>cfx7N1Sdgm%K2zr>pvE83_{03I$vj`Q8EkLeiZP0FI;#X*GhqiFWS(Q(j zSH%`AYh>A)7GZ#QSA6eTV^0KtJ~+^Rak7mPkiI~?JAkhPbQ|M1`M*Gh<3g&6P;3V1 zGY_6#{;TkqJo&4u4>9jsyUM|GIndkLa&P)X?aj!`^VWW|DP_s3$@P!%mec`D-_dTL z$@x?WOnta_Y7AQg*#e5}|2BVSyQg)>G-Nx#(V<)?0tie1HZ8fES$Eb~y5|${e;DnW z(Ta{HU^$BQe}6lp{0tf5d<`W)uJg!Ibob98X?bkY#vdpsGjAHrh7HG%Un)T!L6P1+ z3!u#6=;8a;N<}VXv86@n|G6m3^f9wnru3LYCt!zCVaYF*3!;>Bt)$vyJfIGXZ`?rK zpv;K~fZt91cjIBJC;@66O^R>1ceRSVr?`<O<G@mc{<e59wGrEKd!CWb)rmVvu+jme zm{Z6aj#}2`booA6c?2zT5skM~ceh<nU~fG9*;i0@jt>0!9*GsLx+9`B_pIhyGft#C zyaXrGliMlMJx1&ToQ6Cxs|77&sjtH$BH24N^QOKvk(2|B@WAHD_#flV2G7QU#riei z;=a6bU@0DsU$G@r8%1Md?Oe`a(Ze5nn?g3ze5--;#`5oZBfkVkyU%QR3Kl!g<u%8% zFBD3IXzweZWYZKn3z~s?@_b`KO}@bKG8NtmTF1#ZaYp6+K3z`WscA1@kcv(~K&s~K zLtGYpq2)g6gNK)vk47O3p8uUcr9)V+?RtWemVRZZm^lHo{6^*~O3*wGZ1Qd^I+Nw| zpV1%Bon~t-){J=~+Yuk|300`zp~gQ$Gi0XLF|%oEX)VCJ9hYP1mE(_QXRr?dV?3o; z<h<N|JOaEty+e-sQq0&6?>qky6Wj-T&v?5^ryYpw<<7T;EdWcn4wQMSIRNS_dZ8Kt zb?hpd78rf;&7U!ekn5xAV)c6hE`WWim{c+~#a-U(9~nFBuw4$J-Out7IqD8y0N;5e z!(X+^3G|W^LHRK}f@m6WK?3AfVa<@{a`A(ek{je!<>9*i5s4Mn9E4ym4RBedH8bA> zgu<S-6Y0|eJ7gV*`i$Uw#8(0J5M#u;Q-??JQ-S++hidUGVGYUsZT=pp&<s{}&<tB} zYi-vY5k-<<2JVA}M{G~JEgriJIMgI5Ik>e3H8B8l@j-+>*tEK!T=6L5nfG&*#ar6} z>DvubA@X)u^>e_yEVF}RUjcUEal@9Ro(jwv35^KI6^}3zu~TT+QrsFj!=MXD_iM}! z_`(ndS&UH#!EU0)31yX5j?x#v)g5ewT-;s;QE{28G$9|&5m{XYLQO9>z;On++AYAf zMOlAX)@I^Leu}899nwP%{gIfg$p^%dN^4SJ&uencd2A-+3O1);a`j{1VQ0XzMfgAe zCTZc=>pA27SgAxQ5Jx26?c&6Cj_WTF1C9Z=!<+EY_WtCWVyZQqZ&&MPa2<(B;fR|` zq22A%a2J9O_=(~T+URU82uv8vQ9{Mj&Kff|3rr)qq;YI`B7lj=eOGS^op%1cNuU44 zLZ2ZxwD<wE1YJ}4^eo;9yv|l%3Fy4qsW<={<~E~cq5J+)SJ9|CGRo`IO@rHg-L!0# z<K)=<bRYAR^KH5s)c#4DJ{JC`Cm^Ns2e>*_fS6sOHH9{a@gYivOzNRIOnyp77JaM6 zTN~+f=})nn48=lpl4Wf^@KU~8+Dgm?%<YiX<`)8tt$<C%EgxuRA?Dma$3H53`1ZJL zVc8(9^k(&a2I4eiD_1rvkEml01TY9Q#g5a(+A-Bs*!v?ACeFrx>&BOIs!MBH@MB;H zj!Ne7TpG96uoDZdB50C}({3C<`}onD3lCA7G1-&;KM-Ht-^u^!3w{KASchg+1-ogL z4psqB_xT>}j|&wlG>E1iNa#|Yq^THIX(6z177<g*)#(acj82<nBA0ah7({2;1Er!9 zM08ZYsWQmkzbT_LZq;RErQ^TJjG?)vA9^ZAfa6b3pbaIpRIArWT7vhTjelj*O$lJH zj>H_Pe>LCU=d{$zY!|IBGYOy9<wSN1_l)X75R)S+J7%qbp*k4dwz$0dT@?RJfBX|; z*>r`^3sbnQ#x-)mNcz^uMHjAD<CWK)mvsbbS6zIYhGq+pCpP>`6Q%)?K7Tw){iRl> z6&Mh*JrQ*>wuw6^5piq;FWZ~yvw@pEM#A~hLSaqFm+3(}$<K4fE1!n@1NKG2-qKyn z6IOjTD*4HWN<gp_z8&vAvQ@n)*bpBC-0qK=Hve$u06SMlfwWp`axyBHdKM~HJ$D~I z11szr9{o8eJT7mWF8@(Fe`VhMCRvefL0Q3{35t9bmGjHb6_eo9O`thflYpqNZk3kf zEoAE!1hXB@fVFc>UMltbuHQjr)(Vo)`RJ$981ZiCOw{8x*7>eV<lNzP1%__6%#$aI z_n*b96Llwaz_`dM?#Fn}1N5t#6(*u(V*=!#+|^1ASch$2#Wh2%vD9X4K0o257kcAG zYObnr;e5Vo1(%%KZbE)}%CdthBZmo_S`De8KWh7AC2~qnWw00`V7cj{i%pUCy*utG z8kJMq?z(KqGc7%}A{$Nzai;2BwR3QpFfisV9Nc`wJBmo<#dTTP8J{!>K*yw3s(B#i zArX5vsd~w(<MEz(J?R5X@jm%f)J^*G!Urow+T%|Fm)-l<{=+2e42OO1rUjgPEyg9Z zG8W5lK(q(*81$wU02u=~xg*OxpfGL&Ef;+Hmjw2tyMtC@B0blXk6kPJ+VXaBq0?7> z9n;sa_p-R?%DKV|2?~^2Ei`JOkT@D+5$m;M0eI@3BlW{0=|`fqW2c<q+~1Xuyg0Mv z-J8TBB3kN?2(@sbzN(6Rz@5+Oh4VcZJNWkg*q|)kkhcc)I;~~6u;29W7!qegxe7<0 zv^}&4DyZgjujTHX`JS-@5HeVNse7P=-uf(4p1%uzWHajXgofYvq@;2odI><xrGH|C zTLTE<`?q5R4`~VDa|L8|Ace}8mJ~94Vicw_xny|cJV&cB-9QGUy@?menhe=145DpU zx}Sv(n4pbJqvc+i=am5$h$z5bQ?9}~k)CsnwvK-(hYT#wLtD-5bIMVREjTa49T9=w zfyx(Lb-Vv)Uv{xr6;lMwA&`#k2fu3S!NXXsagX&aNXA=3vehw4A)Bi@T_`(Q`Q#(j zHuKj~a=})a!`3+<&Bofrzr&ST)AdqsyopjD43a|--pUHiGZDBDcJ3GPz?~N_<s<=q z(ym>S1AR2<&A(F40}+H?S&?k=gF$o|#ucF-WS?9RnUu6PAk+#l>er$7`L73Bj`mTj zD$f0yB+IcAAh=HI5NLj8faWleAL*!ao5k!WFlm8RFYLd+G*|3jq><|~xNTv~Si>GD zS28Si@>fu#^LpqLY0=7lQ}4Vb^A+@2zP!<xA}w5(=D^^7P7nODMR9Y7(+QuAdP!Fh zB9~w<{+gh7b;|(}rDCub0rO5{&&#~L8WiK38ZjQ!MB$$MbNI$BP__#Cn8WfdDl9jm zHr36Xuax2(uqqkc8a{J9XQ|)*U;o-$Qip?Ut0Zeo?0qf)RSZoegIhl1K9oQ`g0(J0 z*fiGaU0vcwEsU>n17@2EC*s1MAzkC_yFvCcYK21!f5@K(#r}u0r>*9`{jvPGsEAXi z^+g#7A!gHw_U5*E9?!{lVmRpO9x?v}jUX!ms;zKjn9>(X7|_9SAIL7rI$aH-x0!uK z;MDjWo6kMCJ)u`XEUEW-XSx?L($IfdV$0^zg7cZa4-W_=_EX2X^LLSDZD3RNaM(nu z_?8zVfe(w<8@nsk(u+r8gb#n*=1b3W7%{|0R&6bIqc@#W4$%~I^ZU3j?E(G20}F3S z_3t$tF%FukM`QA5ODQ!fy6kxvO(<8S2oSk3j9-k&pJa3Kbu*^Z5BfJcOIBQ8^A^9) zf!;3e(Uhkf&-?kp@jpEJw%k@fa2#vft+yd#3m?~=wl@;5SgN7yvZ-2Kw+;HP%4KX^ zK5b|rx0x&0N)omad!%S4B3K5K?RU#@UMgK8upB7|A6#MRE}kzs9WqpH;K0iJV(m38 z80*d`ol*33Yh_KU+Nr&3VBKAEe8qr0FM^=g9-UhZ*6ZSkxmn#KZ|z2h+}1jO<XPaL z=SP)D4omg1V(9MkufuJhL$CkG$X(lOIu)Nv`7mN8!t5H0F@NE@#z45P9>p7tyn>K? zMD=xN9w^t&aQlvO#NOX$iRXw3cQ^T$TFZJLY~i;jY^Y&ZC)d?;OJ>xNJ}plXHP>tZ zPjqV&eK2IjAV|kG!-nlMef#ZVC}^|&E31U6@fLTOjlU9TFdoJ@6BDl*bEGVR*YZ$n zP5c5#q>E6WrgdMf`^$)G7?Uqpj?2m~@$XteqLL|P%M^2V4QcT~DWQ#t8<8=5?;v(M zgHpr}sRZ?nI^I@^l3qNyTlo0LD_(&k4lT>#fU;}h^=u(tjQY53NHD~6H^_0NR+#~c zd@D(~DUD*pj0bQtftS;LVn)Pw*!7<g(8}ZTBtr|ls3*V2{W*@BZa90ANp}fmV(iP@ z%iX@6!Tl%M&~qq>|BkKM=W;n8j_$MaqKEY!Ak<+o98X(Gdhs3$on=AU86?bC!~L@6 z*|6__7+Jm+vCb*Ko4e*wX<AtC%TBH4*-5Jwe}W%Q&#Ap``fHFq6wd7ntz`Du4;o9^ zxEV<=zXs0_5eTkAllHjWK6cy!dB=fOflf17k6LuBG$?o6CUM$368_1mzq(BYC=0-K zkpDYqAxZYuob_gP8uPoU?jP<CV)c$}KtfrO!e>OtPUDVSGZq+)MuiPeeZ}YlSy2t* zykUdF156m>TK^6AL3}>))_;fC@R{>OxoGzLfT<qg%el+`;$nC-vsBIHZ&jX83F7V6 zB>!*cW6-ah_urP9Ha|QD+AAdY!F?{&GP2cmw8_}yZ&&7iZ|qK5$YxU$M>IY1HsHfb zec7FX+>xl=SPR?C(Rz}cm&G)2=Zi5s1|MIu&WWQPc(W}z%Zu1gu@lk!8@fKYy+t{N z<ManuQM)2*p(TRRQBQYuiT8(6JOqvs3QjKuNjtca@}B>QDCV74Jl@_J3rW@nV$DZ8 zhCynsC7|E&yGaD3hVexMdvQ1cI(r3fHmE!(C3ig7GQ2V3IHp1t4F-yYwz6gT2_No- z7^w!@emJ?=Qb86EUP3i2+cm6u96Z~+|6Q)mp)PNxiC^o)$FsMpN+m1pUG=jRbkzp_ zAa`oHJ0K)U{~6Nt@_+9Xm%rNm7^Brs(Y^Ca=+&fC#V?lK553DXXv8y!D0a0-=#QE) z;S=u?nQEVregmuTtm3d;bG#YM+TTz$?GyZI;Uyu}$Gkbf$SJ_pmJ`@FE&E@(E1jxd z<0-$kP6;KI*FH3k*M8#4g0^jR0p*of6uVZqx1@;(w4L>MhRz1{r57KSH8tK;vBVY1 zPtBEZ%rA1bO@)hbc|V?xRL(nQSC4ZmQU9NLT5&-}TW>g&$X!0KJ7Jfw@lK@*YJ9Q} z%Q}yk)J{;whN=RU*qw{^?Ahg^Ru{$9g^UUSqg1d|7tfF7x8O+-F-GqvtFhJWEZGnI z2PhP&Kku2z#q~fcdjIHcZ24oxud3{tI)Cd7Rir#kW+zJRTZAewbEB)*CD6A@OKu<V z$V2HyxyJN082cNxN8hgBp!Ta$2g({(x}GS^RJ$JH22iICEWKu~i8j)pBvEj)&cZ?u z{-;iM@)Hg6{zLEMj||;hNjJq&Qi7*kQO<tBvp}TJ?h(7&S^_33$L9Bo1V7~3@Wfda zPiQ#tym9`y5TFMRcKp|1EZdG>A&4bEzl8a0{w2DyI-{=Hd+JJ$n!6=DEy>xCGNDWi z3)7Y6;{l=pw8!_XaEv!2{9O{caL<XQ%HUh?Zzz~XM%=SyNxZ9W{q0)zia#rVIA5Vo z!0c1Tc1yW495eo&k}!W6{`TedN8C~N`9?{MX8A@R^b?Jec;-Cqbl=R}X0O%=UDa-t z>{Vq?;wuy~;5kofg^vPnX!><j`nTkwF9~gV%b)F(<>}p*0@Nomq9KamgHnb^dJD@I zMx^wrVpZ!>+@Xa&RoP@s-eJwb#d1&TNysn=7qMhElr#3l<h{8`0>xa>@>ztlWAy)6 zOke_R8x2g`%br~I)LQ-!{iTj~mNjP%%*Qo;(Pju}BXbb98#{TOduL3mHGwVyb^^pc ztz~QOU|)e9ls{8cj-xKmlQC7?h-}yT6aY7{&^?UiZ-2xfbj+>$0MXnO*Vy&q&Z_WE zT4h|oRX41D+dMnUcX*Qvfffi>hcmEUTk0No1H=oTGL3Mb0Teh*h32Fe&P|*(s<#6J znMAKma)FeyMKdpndL$*4uOGTZ3KA1t%AUUNJT<tPE<t1>T{Zkb6<CtCCI%Smfa{hW zTqfU1RqwWJ&yQ*BX?1P<Geq3+VO>ga(8$dosfp$<ndHFS7awjHkByDL@#^#(?5FdN z7AS`n=~ZS*DcIcrk2SHs_3D(lSqT2DF#6Yc-mn7n9oaqlNsY=w@*^@MCPLe#Aje4; zpf!5`B~7#sNpk?{TdO($=bh)0l)(a)D|C+sR@!Alix-ejb$B37)HF}?4E{|Po#&f_ zMp3O2-xIJB<fKk36lAg=i&*Jb?|)xgZ7r1X>;P6k5p(kFiG>8;=iHyS^?IGj#gTn~ zMxW34DM>!s`majyn%mFZ5s((wG*DDp>5^Id-*<@QP_ZSw_P<=Wy*L;!%scvOuQ@`c zh52U+1Cga{p*5&wqRp^ymfC<XLF7ZVQ3sn!1IcND456lY+Qr16+yyJ+4v>v?sC}+t zBV;8JtvV(JKD7vo$-&{gZYZ;>B?(h`l$@6B$K4&E$N;yWwF{X~pJJm@)rlEN4k~jZ zD2U^@C_1AMU&A-o7aW=SIArXa&4k6Cv|f6)11VAYY6+DUqam?dsRJeBdb0p*z#!-M zp?L`6<^ZB19Yqbi7Q?LKvhDKs#kZ2E7cN8llX}hj5%WX)cjZonN^-plgRLs+D2D|8 z^xI#a&)~D$WY!G1v%=as0GCr$)?6$=1Z@o5lz=a;X?Yk1e2iYa6V`l9@Pd<N?)kGu zBUPSQ<dN&SY_Ue{FEm&ii~mUQidWy_qGwM3O!%`%Tp}v^lJ`WX)Mh9ztd&#^0I^bY zR@^&?Zy(nniAB!UZmZ$jEXte>=4L5TgjHE<k(hgf5qBH}0yQn?-mBLq5!y*K(6nsY zCs!igDO4q|bUTtyWvNQlONz?PGliv_w)LriO53k~5+gP7L$v1q;W{y#vue{2m8js_ zRLl%4N{jx2?t3Y5il}x5B?yfRlySL-nH`W1gyf)w@x4RGb*21!0U4e)2QyBBG^XtT zkqsNcf$hwvRmZS=TFgUVxx%+}Z%A=ETTDRc2$C_+J{hB(o1K0zqB)343v4aRCy-om zq~WR-;qXWN;#q|w6Qp)ucyQ_uqw|s%nySk<k|H2cX*S%+xk1z{Rb#%#e^GKw&a%mi zx=jK02%QDMw`c((dGSWdF0(-`P&jX}gN=4^FTlI|LOChi#csioNfoTq3uH8r#q!|O z0kiU7!IH;K+kYRWjHt%N+OA@QdP_y&XZR942cn7;vaopXN_T~Ke^WfvaM)>6H5$ia z57kxHDq`g2$y0e_WPYFPW;o0uK}wK%KX3FWvcs^3@x&Eu-pjT>c{3MEz*I>`z&MNq zchu*amwnvcT}K?QUO!QGWwsYLHavt#;Dsh&UIH`Szh^P_tZ(!La(_=N@L8Eu?tg4W zmc%Zix`O;7d%x5N)gSDfotGftI#<F(VgM1i?hZYqRZ{K6k0JM^qH={?t5AB8fsVw8 zIJWv9ig2_0#anp~*PIE8V^@z7k<Aa#&L_-C5f>~lLQ6ZueOw=ZP^7G0eb({%c|reu z_VlyWhjRvI1vB(n&~v=%&<$z6%W~GZ${QT4x7NZKy;Z^5Lo*L>=nZ#Oc7fklE(cOt zJ~x^>pNYfM*bw;A5ttILP+dEhAzd($l)04Cu=6+d1L9lH_#L<%X?kMu&d_WAowR`` zN1f%H(ng-64TmZZ`}DbW*Eov}Xa`($MGsUgu6vRl)sG}$WP=lg8E}F&xuo5y4Vy<J z*qZ*;220=eC+<8%_|PG`BJcf8ARf_OJ>3~hFuYluP$At8l!Qo({5wH@3{=NQS~VAF zwKN&y8JJVtP~kV2*!R6n5d!uEJ;b90@cEpB?xdP6wANf78F?dbt?)n00T4_^v-GkT zW!@UYDoWqb>oe_vUFv8sAvlTTy*KN&Z(I3<iVgr7aNk?=8wGJ|Y^4x3NBay<eX-eh zMyC(-C0yPTf5sV=sYf_mOk6_#2#LVxv8(mIP_o$&j7sIkr021r6<x7L`|sJBW(Q=b z36i;KVT`eL2f(z8C(#10sMONpDK6HY(T{Ge-vt9Woz&NLb9wTnLBB&vDNS?R9=*xl zp>}Se=^K4`vaE)QmETc~R4r>i$8CJAO0V-kWo8p2I#WsILU!@e39Ps|3^+N1hh0%^ z!n^G&uE=ww+!9rWt16$|O6X{=S0F@JS;vSpp)%OAXc*%>VJKvMIR3u#Q?eFUP~r#s z@#P(}JDcl7f4Y~4TkJSs8Zh{YoJrD+*p1y0#~Xl-tznflbFm(%@s!}$wtnyILV_9l z!X9K7sOUfz4;)1`OdKaa4W6_--PuToM>==Iu2LQloOl&c8@Ms4`HuiJds~gTek>xs zSIpZd%~pf>)@}vl4E!%`)t0+S>5FCbY-i4q0BK%v(UaS)mAXjQdx$7XtpQ*QcKeM8 zC%to};TDWs37&70GtN~0sQ>vl28L)C=s(Gpu{e^4=NhThjC{(uQ$H8=&&@tbhU>-B z(F7*k)#$m#?bn0aur3c#C`yD<8%SG+*nignarUG04!?P8S^CtQ*swWm9*x=Qv&7Ci zl2XLHZr(!-a|bfQ@vP^>0+}L3_6vNBF{NHI(U^p&=S0Ypiw$_x3aIZq!fif0J(i47 zxo?7Aj8-j&`352%nENkr&B{Mbrg2J>WAVrBbi{$2MerxAZ-2hz;FCdVr-0R}?N*QD zEXL;R_bZ`Qy*~Ks24hk_51K#){;U|DJY;xdr^e^BE7+rs+9j)@?MwdOOLL$yY3H3) z+B80|-KNgH;Tv#EcDS7PzA)JLhQ<=P>2Aj4LaV)ooc;f~>&Pek(JYFx?ufsnR&(c* zYdEcE!<Q~t;hu!V0VfcgS}tPAurjA#e>d6$Qu%f3X2b5+@^Xf4pxo4*HSY6lYy3Iu zi*~bLKPPw;@eT3io<(oFb9a_|_4BzNUG?nhesRO@tq4xBBmBzPD`z;3;xoOYVt@J+ z2iL7W61y}aTIppb116h<soD&mXTaIIuqRbc`o(QV^OHiUKg76r5Jx!piaHn7)(b2$ znGnvq@cEnS;;=8SwC;(q;SSiGG7x4Hpcpe}8oc#01-r5>Z_{OB?Vr<t82SW6rZx>e zxvXAFZq+Q0o8p88f_Rl>MBV(<e;8Fj+*p~QT+rr8zpLUaHYM*RAkMr?F9dB&7pgWr zOCRDq1^FR$qqVOC1tzNk6Q%K;HHFZOK=hijPo)Y!R4nvXhX3|7#4hg$m|p)EzQWU0 zb!DSQh$BE_@xOd@r2cE0BkL16`55*99K(&AfA&dzQm4<g3cfkt>Xd@s<foZ1x!nsU z<Ohs(Bv2t2+NiP5m4?Pkcbqy;g>37$4C+=sz-Hr5eQ7t*=eSOP-A&=0?ri2$d$DJn z=byvt6JJ9SMoK^X1lXaE+~t17WsyETBhMN5y$~7NL`sC7pg4r}GK&d|PQKRf8zW8E z^e-$rvzEV5L*JZ0Zx#{ZSbX=O`r!CSsf<a!8xxBw>r2Ch&zf7+jRT&=w>SkPjE`OK zDExXU(z!WF*p1cxkxk_Gbq$a%SMfcX?XChmj1-3@4;QN+QANH5^$F`XsVi{`l>GOh zx%%up22Dkb&8v^cg$ele`YO%U*Ir{UuOK~Vi)}6L9l)FqTy@nnd`+$Xs%8=*^KRf! zFC(9^jq3z^TGz7IboxXZ1>$S;RD@!l5h7N?bF~fn5MjBOYMvdnCC<UDJwkYQ?4aN> zm?VuB`Bz4BS*lR7<7hJl#;XN!wEg~7FdE(F$!gdtD+v8yuQK;}KEj3)Zw}{miCaNw zDS{gToslUW)#h^IQVZ4Ya63+YpmNcC8wAr511%A<sG&3hDWOQAL&~Jlb3pEP?B+kW z{WkM6V(XrdU$pooC=ku&S*k~zA%t!4*CVBD^>|dWlj9$3T@9kW&)^s`e+8n~N_n*R zc0a(Not+ScK&bxVvW%#a@{<H|)`$ZkH)j{K`9}1$w(&)tT09<&i<B|NczQgXT>+Z- zpea)J`j_(hDy2YmhVgi&56_moy%eYyc{GQVY@X=y;P*+O>-2JJ3KvL9tXAm7En$}n zPsiJLIPTqSt&)+-^Y@8|y+zgrNL1;op`Zu|G^qxd#jA4aU^^@b<#3*qSv%ujQ3Fi6 z@Cu1{h|DJ6SaT)a4<$eH=3VFKc{klv?L(D#Wy1!LjVT6Wl?y#5zn}}`_5Buh0ob$f zC7l|2?$IkH;Wt)dUt+FC^1oMHw$JTN48WSRDaP=#D@eM&mg*V@7&E(%ndaQLr=$5s zxqD8TnIFBsH;`PcF3kAG%AGKMcK*}-)iPD%zLc_D7Tx3ueRlX>E3mQC9ch4Eq>rqX zZ8K1`48I{{8yz_%fGL20kiaXFxj|$`5WZq2ffBI)wM;6#MoN)y@jbk2NY`28Qbw<) zd=;F_k~R65aptVxK-~7u+$6%B{`ZR{AqmO7D$qnp?+&e%Jm+7&h!zwBlqGJ1TYbX! zbKJpaKZ<O=lWlz{2UkdtIJWVZQ};HG2;jva%k<gDg^>@u89bJ$ZvurFHyc~a6&+76 z305<LTFV;K=vOsApXY86nbrHOwQvzK{H><b;zJ-IAS}zuBu*YGBL?putS>l-YdiV& zeXRXC`1rql=t7Xviw-)vk1SWhl?ZQzqE&iF%r6!u0^*6nN3BIO>Er^CJ|{vu;q~Qg zT`FnaV5&_J^RpB~^^2+W^NbNS{tnWwyPUtR#R(VJSIxf1fBcTTUudE{0+?a}Xa9dq z@qjZS%%5vJ?%0H<xAxUyCD_$K0kNnKxX&FQSWXNJLS;#D0sI(#e4^i$*Kve7AQfx> z8Pus-#K*J~-pk#fbfkPFS5JQ&AZi&?9NZgQM9)8;TAXt;<qO%Lzj;{hIM<W=Ao=m2 zR{hA|zfE#h4FRC>XZ_{rb7cBU1JcSKcw3}ZWl^<yt#O_aORPExrM#>G&<qPAUsHQc zIh_a8o4dRIIx=)NQW9eUemW+2O~f{OzP*LDt6R|&gSMgE@h5?o?>9vfTrLbtw_Vqr zP#%#-8L4>U)+|EFMM7yR(c^Ebt^-5TYrwRa3>pM@7gOLT*)*%+_uo_ANym>?q2ocn z;s4Gqd#bJAuAk0pr{_>z2AJ!iN_qOjW}a$s(%Of%KOXC}W*z$r+Kh6AWm0-zK(A?$ zm*ej7QTJ6@eeP=9Gw*3|frtn669(9GKm#uqA9(`_3xxBNV<tJ^PI{Xq;&u|#`9vL# z4e(g&BhDX;c5^SE3$@(A`rnFZ(;Sg81h`J*ZJG*4yGn2paK!zUA@_gM)th17C}${U z==6doI$-T_5Q=f0R2H^+qC?inlGK<ceH#_!oFQ*rO4X{e>zAhkMW`}suOM4BHr|wT zHT@Yf(3z}gLsg0w0e$_XPl3r`o&sdXB2N}uSGWHa)uq=;Or4&c_cBcK6HJ=z$YZkO zexp9n`73sWkGn9y%xjHp5co74a@hz*(K->7;?*C-#WNR-!l}vYzXRi|Oo!Fta_au# zKIK~^sxr%XxHChST-{R}7QF7hOuN8Jy8O#>T&&`(Mu*?CtM^s%>p3)r5bL^a^Yv-E zBfz4K)z?^~vIIo;!0ZZ$)C{uU7wI-FmA4{88e)BM?>2Nru+8C3yG!HahVlV7<r{nn zKzX(L|L13ZOCCgAqS5^S6UwtBzNJT8{=(40Uiv)uETMhzEsMycVFz0dcTDj^%On19 z5hp799B%Wmao?cW&N~U4*-xzY{msjatxfEeWJ9E8Ope&5dz=Oo%x@D~7B0eMc82_= zb?c^if&#m!<oEvcA`EU@xc=!*R>pW~T;<1J`<cp8`OKkvfr?E5|8v0nx4hd~sLzP1 zn3vY3vp4&_vwPk}g!bUE+R;2+Q49}%fr|P_vatp@juJ2m>d%9khlRSZFTcBt8)#Xl zRw6LdyGcs~*De(D(!pfah-@}n^$9t7EF^c9xI47?FwRJsl5Oo3c1?mR5TkL#t+JH5 z^=YE$(Y6-*n<?NQGOf<(x>`>{PKuej@*C~Q=1t88dAmq68sey@0(224MpKX85O)tI z*pA{dr(m9{jc&6K3A2XeZXj5Bf46mR#y*2P$tJCQ)HX-Jh8#v6zcQG#L*))M<W~nj z;Q@QPU2tHCGUbEGpq^?JY3Q+rFWCeOiM|>%<C&YulXyeeYvlKS2Sf{Zk4G@=yKMzr z8QpOC)EnqSYMZ7)R+VpXUScylcZ1>b;9hQ&qe#N`W`6L4BYxs7gHncBcw44N#No_$ z2e&ZmMW&F+A_GpO{(s*-Ae9$)WNI86BiIY*D6Z|+(M@`C88j1|-qq{)gv>3d#>LY* z=P(E2YZOae8S_YVl<9zNt0}*ScYF%;l63piNusrMT6gW1MCF4ht6O7>cQ(UGpq-4t zZS4E4>uaAB();p$_62W@41Tu)%l&&9<sR^|bI_kk|76VpVpiiNg|xF#WWx0taE;36 zuRjVl&Qmf~%NzRJ+a*pN&pNmF!+A8*2q~W=o~r9riRe7=FMC3a$YHSL+SLY?(Hami zk%|FiSg`(LHhA=+kUp1XH|)bOhICZ0lpd9<n$X)i(iAB!Eb)*{c^)AMiqk@USsHs$ zu;+7`hE5E`0G*ZhLzqdvbs~q`{FsS=7LPR9rAk0F6YOt_m1N|(C@(64v49xI5Z+au z^PGoEPTBYL?y#%yaQVvQJsHop3TYpip<V+MG*h11Pl}d!pRLBWo9&7A2_$9J6cS1t zaaDm-GxufQtZ<WD{xPGm#pvBD^jGbaL%O_-xbqDwT^Yn*JSxjp`~R&@i&b&vO|57z zNmNmYUi1Px_W6fiB;bJYbCg>c?KpgUN8WaBwmUI~n+LjbLg|!Z{(kDE-@xp~WUpDQ zAv955MODO~QUY;0!;j3G{kK1{P1~w-y#no*f{DOwI82{}7|Q+y0gd&yhf$QlfDZ<K zEvcL=Wv?iFrY}!>;Q5$pzyoQ+m&Ym*QvbAMW0^CkBEcx54}iDOy{|3f(x+V!iTD;5 z=rNe(uq{N@^bIoi+Gj@I$<Li%K(NgKP8pQ4(4TB<PrC31HIKOD9cg&gfYd6E%H#wZ z!-rUc$Hwco{I+~lE}O}3wy(nRS7>oH1Os%YNQ)1g^2s&X4r_iK;uUj`xk>pNz<Pe* zSH%ojvxvL!Xvmp|?B@pCaLY|C)VJjaU!a3j#1z>sXNcgiHr%~3;nA3%oX=Q=4cdnv zetD({X)uHFm1tCdk@g7I3mhza>zpjC%*vD#k~e)TIKwYx6koM>vRw{W)gX%!(0+*K z<S&X5yGvG^RYuXgjQ__&{)hdER5Q3|<9yUNx!(O^I*L!YpAPe?l@2Qq<krY2l9j;k zOgu6MGhd2-Ca{wayEF3h)&3fdc@jJ#CH7gCKKPG{H*+ufw;x7{M}hA2g^4hVc8SVv zo;Tm1x{es??zT3{{{@TP;|;mDKFh`@@#>L6eKLI<Vkqa|#qx8${}1d{3<qnp7|@f^ zd7~Afa5&=Htj-{vQTRw+EPN-_9S+t;-Q3wOKA4%Pbo5CrC8|Y)n`vC72Cu2Fwf{7< z6Z9_h1d2;w=Kjot>xWd$>s1F1IMjJJ=S3{P@W*A!NW3s_Ap)MlrtnFX$H$D>TK~iX zY|}QxG@O2js)=Ilo{Dx`zW?iPlX7DYU(_5jK&@w?3~}F6-9+YiNP>Ckq443V4G@M6 z{6iV;G{}iDB?VZ7)?n$fVE0U+Y<S@&KY#E|QFP6WlPBTx7KjXCND}4>L-iB2gY5^? zjEPG}F0xO;Da4I84_CO-Z&BY%8Xr9WK{xxN^o4mn`lpe&+QIANL5KF5M@_z@XVYbF zvb%s5^*?><mdLz$2GekEK~)_Ijnk0Yj>w0+p}u+yTJAjfGDuWXw5$?e;W5O&!aee# zRVQWB{f=r2Jpy&lAFkAN-zVUw;#?W;trt^v_Y&!2R%{5cMHA}PN!Ya5KP;2Xyp|o$ zLaB9<!E89MKRYpqkdAIw`Ambm(`Q5e_~T?-|BmM4Z)^T|KdDdR{Y|3BqW?_#&h*a= z2AeHw<C8us*bG<E4^{udOB{7G6?zW2)f9Z<0M%hDf*)8@vUU~|DW7R!Hkz%&TSyfj z?<|$%ck@NcvTS(IvzEOB4LXNH`h?~fz5^azdB&~M<9vzKd|guTYI|n$TV?BekG!E{ zLFw?AIdATC6hy15bnCi?!i9vS$tzGVF}Ke`5*|Ff*SJu*u##vyjf?4d&Idp)&qrl5 zCB4ze<`onCzm_p@dIRuS=mpN^<n&i(Vc&o{S!uTvz-tN#i79|@ZQgNWuk`|)ojuVX zI~GR6Y8-A9Pv}p!%ik)XTm@P}dyI#z(o>s2I*g_7?x^Kne{6;?tNSH|GYGe(lT~_) zM1Xv|ddIpaVqjjW$H(@V0PMK!D_f=(J@rz4Ek-=k7riX&E^AD9yG;n<o09{}fG$~6 zS5!Iw+xN8j<K>@hIcYGAX_r>G(;shR|1@Eg5!4pa$q4Eah~zq52|!j06K!>~B3Z+) z`*{YnQZDOR*uC-Xar~R$k}^mhc|6A8!ClYFv#~A}CBB$*C+!#l<7aHTe}Zs*JkS?^ zD7Vb#s@C!ZvvT5pnDmiq=4H-Ym<hKa>$0g`OcbV?dwX)oT8?M@UQJB@^?=Dd@ah+( zG4|Vgq@Z-E=fhv<WO!jflxCMVVb*1Wp~~BkkQ8&X!u?$uO){I#dNTeLZfO*@Ja zMC!<&nR%H-Kayfncjwts<^oV%4Spl--W7wk34J3R5%+~6We`z>y`!-28PoHPB^N$h z=YLJD=R68=!|hnhGO0=P19`;DW7>fR<M6LIhCWakxU?s<_nOP{wwEwOpuZ`%*x%<x zK?HhJpuqdeS)<f<r|o|1jr=74!>2K?9G!2*r-U83VWkoYlml!`lXn$QjmBB5ppJ${ zn;tlTB~2_p$0lu@w(}kZr5t#G9uPmpIm==G_Rr&QIXFY{D1C&1>{VsRKs!&WZuZq+ zo7O}yCv<`geRa`%`YU@=-13ENz7pPpD9HF&yKc&VV#xPz$e#gkOOZCCB-)cD#cQLL z=*)uw6@zB2tkAI&_syF*owA`1IfX1q7uj7~^`cujOI=&R??Rt-Z(jMXg&8aa1orB6 zL<Ecv0r&f<haXtW@wJGOs$Vn>(O$XPD%d43`+g_ZTBC*Wo7*9NDXKvA=VOKQg{mLt zUNvt7{$y|Z3~rY$z?T=!9rxV*9Yhcc7LV0&64VT-Fk1#@2~|R`YrVr^M=0kK+3%IA zY@uFgPkFzmtF1_y1mSjj?7Qz*TkBBThXs)2E*k`Y)ZxjiK${jqN8U_URUoRAI-s-Q z*k%M$Esz%(NLIFv5*fJ5#-ginA+{Dr9g&Q=mlpdtJxV-&?vX-3t}Cy_JrOJOwzZdX z!SCGm<=e6!=I7j6?JuFB8M!=AW~=2FBD;GzcegL~7wY}YCv4z4bN`;?N~n`t%AFy$ z^X&^>PvlZVC3s%_j3|iKFOFes9h@FPmKNKV^!ka2?{-z-FX0NjWnzW{Q>E~+IgLs+ zjsqd~SGmHd+#V7hEgxO>ZtUH}n-^|<^cuU9GLR2+4`M8Y8EM$<R<Aboah5`c5QCm` z0UZyguRLa3VF@8U9S`XMAlr92cmLB6^C=31r_-N%er^6kzw@iumuKky(kiVNn*Z+S zWq}BVgx}r-u<Slqw1RhmD?l@FEL_&!Z0qQRML#_@2>w}nckm!!u=5pO0xTBJlAaZ4 zalTwtH8yPV_E5EdGk@f>=FO410PX!9+?a`{>utPfUhb!7)mZhjANri<Ssl7tPpBQl zpv~d!xET;#%{?}I{g4k35cN&!zhJed#8PJYM=ZWIT82X_7a1PJLP6ZrFOFW6{AKE> z(GM4%&1>hy!+O{gzMOsJx_LekNR+cK1#k!V6Hd%@^A0#8-YIijL*K;?8Cs6`t_w;K zR=(U6hpPVzmcLVO!~G@ip1%+^sgAv{(hIP@mxd_jjr`rQ0c~P|%_#hr&bcY<-QQ7S z)0&!tEhc8XU+oR{BkAF)i9sUe`cm7_vC3x&{DBp2E3qe72sUBP2H?FYZ&60IjNLcm zPuj*X)d1Rc%84FaM()_L4YpnGszwP=!^j0>K|I>q$f8eL{dytOfo4O4@Cqt=BJoPk z&V?CNWrF{M#;QB@qzi4I=jma6^&}U@JushI>16I|7fj67kB8J8-8V|CPkz0nJD>vr z*d?Dm0NU1SI2Xlz^?!UKg5Cy@%}@ojQsR|Y;`IFNY*`$5Fg~rWq^!~BkM*pl<<PIv z@+wz>y0-Rv9lGij4Y>4G**9wJK*E#i{&NP&DL`lObMZr)o<kgR<h4>#3>R3y81V<D zx`Y-UC&miJNXkdjzmZbSh4I9I!&vp`F=jzxff<IA@+nOdTRFG4JI2o(QlD=}h!6FC zTQrZ;nTCHCTWBb1q;$u&Ts7Uf&tn`*3SUeOuw&u26lz`i_~iok7y6ipKDakDolT-x z)<MFfIWN{?PZbC`BVAko-aS&pdlf~6KQPYQ%I~Q+Gwo!bJ#3FqZtqA8&__?cqXaxr zphLqk@dkoh)qKexl5;%ULb3Hq?3Os6*+e|7wRljnEqxgCOZ12lvcs_{e>YH6o3&3Y zb7g+Zx|-#^DbDJxehygsu6pcfaece`Ru93ASqD>WsGa<c&r(2NAyyqJ?Of+=<ppHr z-HBjLu1ZnRO~zwBE5j9+0;1E~O-8PTIkOlJ2p0z#pag^4OgRte{8bJ%lldB=?ga0K zRu{rEl^!TTLXOkr>3icx*)R5eHbyi1`h{c$SC1~|t%Xc)eEGW<`rZQVo+!D~NvvVh zM+NpPO6VhVdB<%0K)dKFX&I~DoI~&D>44_8odyyU^lUaZX?4H@JMURZpS4l7_}K8f zXph7%4Kc0k#U!n_#_D+U%6L7kL)_8qJWwMn*q7G1Cc)_h$f)bgX9D-owZDpp^#9|< zZMGz@%}6$)pJM+#uJ8?9^s9i?)C`sTnSLl>&DSg9-e#e%_2g;mDf=hc{Pi>(U;Tz= z5z0qC$xOWnh3m&|<Ky4%0Yv|-$wAYcGx5uHzeF~^kdbAJenyn1cA7?lSN|t-1;R^e z)Yg^Ts*`Vz0~-u14s1tf2=L_yZ>z?VfwU$7A~n1ff>otI4hpzQP4$CEcDFwtif9v@ zhwTkyzDuldO6d>DWomz^TA<HkY$PC_Id^;Z5s1(&U5Nj}_cRzRxjf&@_xECy!PiPG z=XBtf$AYu<ACX7EHD9~0$}9)ci47MBK8#fP9Lq?kl>;EZxkInFTxxHR4B48l@>>M8 zs#Rf6`pkuS^>kghpYIDlZv6sI+Kv+Cf<L%43L+~zl#)0PfSyY&ntJro3M|Kqd^~S5 zBF_(HRsjsH0P&5+V53qdEc`3XD|KB&RA55!`Bd&&F%!?gRJ+9r1E$UM9Kor*VuJ1X ziPoft#Qx-ILLrf{PN8=85@uDP-~ND~E37VW%%nFIC57jnK#!!YKBJNz%ti6RJY$Gf zVEKlnRfiY_IziIqaT#jpHotc<mEVO!%Lx@2?-*L8brq^%l$V}ELJL=7fy4+fEu|5b zTjob=_R&D=#FH48{;PR|becM@2`HG97UuOkoBLNeeW24a{6a+tKtK5Xh^Ob2I#(MV z9z-Xl^Io#$CwO1q&8vVenGh+xU}FntZtaR9z;qb_b8NUbTD-5Wowiuwi0a;tzGKI` zQc234<RZK-)h>%TTuR)IJf=kFs#7+ReQq+$c>iMxpEM3^TW(O)vfI7Lix;?2FKjtm z$-G^64}S%riY3g1(cAJWizh-r+!3Oi{4=UJ-k}JD=_jQ?mKDe4GyULtdv1>OX8b)W z2TzhPm>~-pdHjkgUlc{)e2NLZ!pk9{w}V%`t_$?$;SdZ5M|!0iScqw`-%HYO$}=-f z214Z;4bl%bw}S)C*gB(zMRXXiy?9tN@(Ueqn!iuBKRLG>wt1fno|PJ`jw`#NsVrTE zusj{?!FY!k<Z<*-<Rq%ByuO5-)>P!|!W9N6Hs3Vy>V#xxMo#HY7sos~QY$dTSZ@i5 zH6fY>{I4*Ekl0LkYxaKRS!i$S$g@E-Y=Ayte)l=Y<RQp0tMPc+*2$iVFzZULnMy8+ zZ6+1R#1_wLY{sKP+Fxu{jsd+79xaG<HA(lZ9rJBZGtZelXws>rClLcYdfl70ukJBJ z_Oh<sJkC8RcJ8(62f`hHV25ZPEgGhe55^Ai<td#=hYwnu2)K*mKfC22oSyN>?^xj= z(3XxZiBxYZumb0=6idO^-@9q`1a?kSUh7^)ivisQkCUTl6<LM8`?DMamC0%Yf%*-K zXP4?}l?j&EZUIHskw67xB9Pf&A<<xCtVEeh1bG|V?9cb+sb0Iq;0@AYzYwj~9_HoF zkl64rJLaNyc4_!mAVT*~3^7;I<J{4_e4kXL9>c*+G7n+=%&?ObqghLXFI~*T&|}ZP z(j>4Sk(ZHYf-6|`rnjw+Hk3><*TS!$j?=(I9HQ%i@25BMhKu(O`!(m4VqE*P+HRu# z__2~##b>sA+Gi>h&Tx%aVxy9^dq#_8tz!*gt6Gf8m(^tQnCpq`vx|0rd5cH?fC{LY zjGm=e;}c+v=GxR})hL9&GLO*vTud4B)8x*FcL@X0fl4nPxA2|KDx{|TXnaaK80<c^ z<#~09Y%#g8EcJM5JaqL-oq@HiZ$-+^(Bg%bW--J1MUjCB!PXpSr5Hf9WImve=HuXH zz2jyqu_LE`E0{9+b#^Wu+q8Firb0t%Y$U}yz0$-Ram055!*=MXZCD&dVeMR_GlbQt z_Y-s)3I2=QRg^~=xtEL{knbn+<TvKxwT-bw349Oi(PvSee#ng*&{Sub#kif`Y`mA8 zi#ak<cP#GlNtJ3>@lu=zw?lIWD2X5R48z?>A`5zcB=`4uB4Q@lY^Xf@uj{4&a$T=W zAm2Jr9=W744Lh{9{U_ww1BVwexY&uP#aKzW%|LO4!87E*ot8lnUvyK+^3^`o<A}qO zxs18yTn+J1^N0@NivKV=en6)IS!o@ONg%t0){Nxn<StM@Lj4D=dD)V<`h4I!Hg2<v zK;?#z;YkAT-Uq-C(UN+0DA-L~8!pj=@RJA|5hhRL&eIaC-olIQ{u?s8CDr?gGg2ko zMl#a5`idbs@wHN8H_)~0zE5teIed<ijZvF;{@3O`E^u6ChY4S#9B0%&8Aso~FSMMi z?UIR2Z(xt&y`!7WcL{O}w3sft!CIfAdfPX9d^Q1<*GZ{3!#nydxPGzZbzg<I7=e3q zHH!l0Lq+(j)n>{;+bfQ0{y(nHJP_)&fB)y4%2H%|%DzQZ6l32fS*Nm9LIyEOvW|Tn zNA`mmYnH(jLJ8Tjo3hMgXAoI4V;N)_OU4-dK04=le$Vs$yT58a-S_*x-q-cIC~7jc z7eP)Hgpgd57fwP2u*K&osz}7`R8KWN&VfY3JNc8i7;5D(59f47G?<vv9m_;wSdxF3 zlpsn>M{kbYuUF_f5~mu&3`f6N9b5GK@kh*kz?~Nl6$JlON4oL}v9ul^!mzD|TOZUy zl|I6K&J0NvvRQ;{^<liY%6mnxst5hc24Z`3?W!1FJHQpTpC2Lgs2G|P;&q@s@UFVt z`{%pzN}yhWax7AKYUsW<hhP_7@`jq^jph6%AESEeyur@9ORNsTciJ&q1x<zhWnIOt zFw-qAIANq2IjYB<j7YD1O=L`K(Dzjy<MT+gDi>Qzr6$!U`Ao!#m-$RwegJqXMs~VI zb`htK9z86B5v#Q1uwMhvy6t^$%p(L}U$1%NV&*Y+e^)1`!E+p;+ONs`SJl&Lp61m_ zR4%%X7;wdODJYEE7gf8yBjycLV%jwrYh?!1CaFEyHBSGm5{sz>r&803Kmw45|FxYJ zaQ=m%D9#IdzIQ^C`-e~i|Jf8^^+uU<>qC5z(~F;vPfI-47tx7958dR8j)rlmD&x&L z4cPrB=D`W1uRf|0AQ7+g_=LPd*gWWKRmq=>LZAdgq4&ysF<oLNnb^_e(E)y}s3EX~ zAi#HIX*ZRlbtUKHjy8*>?UBraRi0HJd|4bNQJWglwU#xRb>uF|zDS$7vpr!428T+5 zd+uOY0&zih@rQYKg`4R}1JB~-yLMvV9CXlZFqmc-)(MA<?yI4kax#n5Rk7QDNz%8H z(hL$rp`=I!S>u~I4Ovns+84W}r*lM$!_@E9A-8?LVK}DarX~xJF_FN(lJ#NAdcuPy z@K?;TsZi_+|4;_`rq7k5*s7E~akhNnbig2W1$IU8#?d_7-Cc><+Xyk3>f+@Z;rR_s zNzDD0rW$PibsWI?ko*#i38&n5n2_?|WU@TA5?B@Z@38JXk5x!AKsdka=fo@C<-6g9 zz-L)N+U^ON)%j9gKP<5qOv2p{I7wweO?fqn$|*l@Zq3hdjC|Ava$^%RN6wC4Ke7?T zWjOG@1K%`plk=h@{?zt7^9aqiHW5F!p;yMfPn7U0yG2brb>5pe8o>6uu9DO-ppR&; z8LCTG?HY5@o3Y|5NM;ZqXbk{Y)yT1|>Br#I;N*{%m!D6|A>7WQYjExgA71Df7F4R- zP_24*5)Et&2HHCSD4UE$ecOfpIzza0h~y20s@r!tgOl5F;=P;kpw2%X4KrUwSwl1H zJ3DzU4ty`skA^LGbaBIU16VLQFiGt#R}0(N*OExP!!*&{pq?eQj;8V)v9ZZ#y<F&U zoh(M>KuYCN81n?r&i>##w&lr-P96Ez5trOgvdqQuwa_IF54feWM7}>U9q)U0EH(<! zmex7@O!`GT5FB-GEeiIzHaJNZ>KKC1T(~~9*OFg(szG<5GvumGHLbzJxqvDgX!k?+ z?gy=;9C=uj=We$|l&8I?;MO(y*wT-<clI#P3Uq`LgGHeC2e?3}l6MB;xzH2kl>*|< z(2lkHg?+=FgjJOwPEC<PtUuStR;e-T!2KSSI5wzfRSk+-O<}tV#Dq?lR^f^mhf>ML zJN+TL;CJQ83BNCXCTG-KEiK}|O)N~c)w%-Ser_Z=wZH$yX!?2R{fFH~S#4>x=S!Sc z+@W&%ogd+X<*M%MtjUsY<`ro18}7tp1@jj^?IDUr#8eyzGF=!S4~<_<G0yXCkSW&* z9bSA}2OF!vdWlZ^U8<-%<Hpior5aGIEWCPot!%)+AfLNr@9D(8Sjn!RplMz+I&u}B zSgs!Gb-_$#_rA&Qbj`uwGgnT4w}eZ^6`Ru8PGh9@moZ1n5Hg&8YIguA9GyOAyZHiQ zI5xfVux{m~RkY#g)NVU{G%jWzan;THI_@GC@(9Wz)A8l;{8P>tGlwhMjgb^Fedy&t z2XPkGtVr|lM#JJ8Q_>QjHZlU+c+&!}bZu}GN{>ogaL?r{SU-s>2Y;*dK2QklZKslL zd{E?`sduS9V!*ak)bP~OD}TZ!BTYtn?rprCMG8G%c_~S&@p7*Uu}s9{cgjKJU&k&r zcek8BHG?!0=K?<1G|Jwgwcjnx6+5s`MNHTC{+eY4K3JI?uY|CwU7N{d551@_DUZ}$ z64jvHmU9;egYO~q_{4J+=o~O@y5TooaAXsMIJQ3WD%Sl{P_QXo?k((#ww74qH4@9e zCFn%9P#{;jl?(^_3}}vz3Trc#3U#(FJT*4Ppw4sZ%6LIZe)%i+x7d1mb8-W7ZQsUx zsQ*5|4=fy%i~+8b4bTFHB=MDY6#?T?749d)>tk&mo5a@5bMeLzcgU8w-|z&neVyGH z^7ZFIj)ghYW%yzz*=KZn-b7&jPG)29{pUVeQi-6S1;T=3S!E8}xN&vyv7C?op}4Y% z=mzE5T&{~?!dKw9sw?u&i@aR6U9$S&(53ZN`8s2;KDJWp(XQ%Piy=STnz53;kJ#Sj zwf@T!_Fo5L5yPwf$2#w7{9735ZIGS(k1d;#qHxuhl76N?jK}<4eP~0QgJ9udVSm^& z%=+a4`!I)*+9u@&M(0#3Lv(SXe?guTc1dg<6<m#xdzfhS2pD;P#g97&fO=KG6G-e# z*w%c6F#YlIz~C%^Bl82AASd;?sE$o1SpR7NcQ$f--?y1ITCwg9{D~hbphK+jq{?U- zXl3tRR}R}&ZaN|GO`l-6wfeLzI|_-f4FDbW^p-a-0#qc&=?O@xMRHkVkf}-)aW{Ib z{X<?Hyp*NK|L%xyW;8lTj?NPTqVp`$m6$RP!yc}j!nbIBIj8<+c0;GlbFk`7*D1VF z;CO%~I=sH!1+}}DsdtgerO(|!Q?xi<;0%S@IT>ynprUCHcyW4RX*$$&12VVr(kmV4 zUM4@Mgoh8<nLLqRp>f{&V(?IH%g$Q2^fH_Ln)ZK`mwds#Atgz279%_EPmPkHx@DnU z`G<qv%Tc^K^;^sXRF14Yp8WUMR4W=6wX+*k0=)#6+Z)ca+00jGi5^yE`3g~It=HT> z`!0lT@PkE0z}qi#wQg^0`Ng+F3WuB;kZ+8p*q2R7Bz?@aldZfcGis*Ocu~Uma2&fM z)wpQMr!#i7`0iP2PNDw1(4PVApN_*{#Jo+9^uS9mb6Y8$r<n%WEd4OIfniC4O9_h^ z6iNMMMygx1Zt;Etk_$s3n-hU(-04s;N^$SI(m2upn}-0NEs)w*HZ>A=L``llLGP%6 z&jn9!CassYKBu?;aTs{)N2X9-_Vp;byT!nzQdTiv7m43#o$AKcg=<n*3y>K4l=E`b z0)2)5+xgveydt0S*3{)6P6cn}dOe_EazMcbdV2(Ici^0=AxRu#5O-r)e~;nl!@c?` zkmB_jqtKvi?sa^N4y8bekKPxMjmzWR8_v6B2%jkv8%nI{vVFV9j&uR;PdyLQ;iakJ zE!P-&$Kf|f#@DF-dX;rf19+5m^NOI+FC|CMu$B!#-_rCU(2=e0543f)ps+w++t^9d z+H&4jTJa7(px--hSQF^oSpNTV-wE9BzvaFMy*j$l!aSjYufAAzUwQn(NkKNh18(%4 z7-bQz5?g`$tf2E6si3F{jstN+Y(`MObHHR5VlBXM7VsaqJXtpWy{4or?%@gh;gUUH z8<pO^Pfhg6O2lhNv-BwFMJt*Nxj;{JsG<N(YtpjWy?fxbV8lZ#>g@)y6T{0H%wj`j zWTaY&dY4YH<J06bzW%P^dd8Z*0<F^7<!%GOl>N}T-&R+hAVrD+eOA#{-gSe;ChE|Z zEJFxn?yQPsXCf8i6M?*gM*Pb^d!2<;FTM}KvB4O+EZbztD#hT0CI<fS^3RntiA2y7 z>UWpqn#9iq_@-ISufjC_jovWi?){(wl-KTXEW)U+cZ?PsTduc}??NBqAJNeMb>@mT zDr(p*x&)GK#P=I~5|M9Z4)dLm6@Il4?K}Clvl6KXT2lY0K|p7y2RniL39@jwWYxaW zd;{IeCm2;f5mvmrkc|b5m-hQU<~AcTN`8xkM^13$8w;G=%;|Dp%o()fS8c0f9_&XK z^)<KNzraiL4>>a6S>U~^?t=2|z#hWO;~n?~U-3GH%}mA@3sjZ;ey*coFXE`8Ul;7{ zMsKV2n8@w`uj0N7&VC3(UtQ|gEZMuVEi`f+u9zFpNNT+rbDok)o@|^`n<{{k+@GPZ zIb$Q_q&+GYx=DQbcUF7VDk}K_V%9G{93TkVC&_Qs+xs*k9E6O!+o~QDC9^uBBw0YM z=euj<c)g+e`kE$fQd?*F6-f<G#3GvR{&Wy8Q(u*h5Lk?U9BN9>+e_fa0>vtpb{Yw= zPu46>LzlHY{&2Lv1CH8W9T;l3wuM90>x6zf`3x2^b@4gF5jsKbCS%h1u2ttOiePNK zygPyI#FPvHyxs1*)V2)W;o7x-Ou-80=NTD>+7m=omHZ4Pr+89i_oHE_A=oaS@AWG^ z3e#^x%TCr8IQ9;YUU}m}TijWaPTPDBPYMvqx!I^Uti*u2ade%p1!OnO<!$Fm+VKv3 zkWKAWjXuhQxo?fur?sPUeT;-CLuK=Qpw|Xh`BjTt2&zc%{y5H+1+iVL0Kh3#j;l=T zfaTBHKg%Bga_HT7Vzq3Y9kTE)4sK6e*Dn^a*^yDplob#8+il5w&PTxk`LBUD)eyYN z2Y3ER*R-MQ%RQbp6H~PebL%EJC@f0>H`B3g@La9Drq;;io9LeEa$y|i2}@$^DQr!@ zl=Pk`<;yPF0zfE=dxp<9I(5=tU7yC(gv*$`35|0Rt47@35#f)}@!EJbUF*AY=N8e+ z!y6m2hEr5UmNg=Q=auRnPH|m#U6{E%Y=)%=^&|4&YT|(>kME;@ov_OOKljX4UxZEj z(@g_KX`U9)Z}MjN-zxNZJ1in1tR?rHxk7=^U66ZsX$gNpxY>CMh{_o~a=lM-Mu)vd znTZWE7itZ(Z1TqD3b6-&e`ZhKwi0@=S}e3PENU4!WN>54^HRKgsIr>Mzu+Z^lZPY= z5XUhs>~ZL->{J&RE|AVIq}-exe>~hK=~n1=Le)B4dGz=852kbk)csMY+Q9!+93!G! zfmero-Nr}S&d16wj)mjlu4DH4NJ#sRwx#%zxdBX1sOU3XiFq`+bRQ^`S?Za$o@bbQ zzumFda?ngd9DW`JR#2&ax8tn{8+ER*fFG|NC-q9(fL)1SXue6<XxMOGWz4cQeMm+e z$*&o2C>+Xx(fB*5TZ%B}Fo}6?Lq@^Il2s7oQ^?UCr$69pE~sh8IW^=Tw06YbrZk`u zXenWeD>(NJeu_zRuF--%M7lj{2CqE^OlgW?MgxLHCYCr>TF*e@pocpyW}IZvNEo*f zZ~q9i09cJVh87-`cY&aFUfw1IeN_u$;nH))OF8196Os?YO7^@mg}OQQYXWg2IR#&@ z?-^LGTx-$#m;h4p%}ggpRy?S`xR&B%FhQ58P(5f2%Hxj!PH8iAlid{Ab6w1WXI!hT z;~+aKxLCNHf9UtIDlS5yN#X2`7eW0kBW8Si4mN=Q;lI)=ZQlzP3hwXByGf+V*{gtl zg9x$~ih|yYXgLriyKi<+vPR!zVF1j?oFi8m0@#JcOhdX;B`{a`6`e82-|O$L)Vf|< zpRQ8*(RZ_V3m40Ji)~x;$<Bw#{2m#(T@$w5YE_<4t|HW+JU&*)JoL73#`&SX>5|6w z+=ow3``lLBdvI9bbaDIQ!?yXoo;&f^cK0@i21k{E@9jUIhghy0;O1V=1$77r9ri7X zV2{3Mx@deSIJ#dLWJ`fdzy{r)u*8Nv%Hr@PzLOdY_-tP6%DGiq+VG8s_^5Ym(VY_0 z_ud;P;}dg`<ib0DB<KswgE$(j^{dJD%km@MmV7Z}ffQh^FVh%e3<axQWmPRHf7455 zpBo5Vet?UbhxevOYw2+>XJ{<C%#Ahls|-|`78m@fH2W(;?|jnd;`F30FJN7tNjb>+ z?Or^Xv*iwryy&j$K>`SdyRT>*p#zHm9vrn^G0gBfQJeHmd3XdohW7KZ5iiW`XtHzO zzGle3RF7NJ-RcCF^<JC6po7lrh2PXD1c>SQBfYBG;DYHG@7Es#aBr)>-I;VdTVy*0 z{F;IUTy0tL>vcjsWB20I^Wts!GV7>@BqKM?a+#`Hn+^B*{d?nggpM&kUmXj3#U9)e zhW7Zmk+R>AicH)M)){|!jsZ8wib$XB3g6))gMY6Z3o3O_LJE=ZC`+HCAu9U%5>DmJ z8f@|_9a_3M3R~jX8eXH1JrRZRpFbtCKw3IL)L7Cy30IQzk|UE*B;oT%?Evb0p0HBs zM_!dg|7IAysQjqJhHNdw5+oKYq*fF`*PWnpXfh+K+0BZ4hE6@Pe+03jVYVUd1AUj? zrjR<+o#;N@`_z`@Q}~^`S%e_i-lH)-{Pp-Em&srGZjLp}CFh_Yj0~UK6MFlIy|a;8 zXNST0jON1gT~G`x@D>mz0T3gJk!k2{ev^5S^3v-f*}xFu)e#d7#~CeYz$Fg<CCULR zIE68P2l<S@Q9P$qnCnnE$bh;KKXV4r7(Z{K_MnBC@JV$(LxOhe-3<dQfSSoOK1{)b za*5qKb+I9Bz;gf+4vY-L688^q(tmpfLLGMg;8v*|Q}h-cYl&;sL+$oNG9HbOB)zna zT45XV2UsrTC*J`I2~pmieODgk)t99`4$SVVmLj!oPv_oOH+s*S-r=QB;K!{eSqRT! z#?`v;tdRC}uw%#c@(jxc<O#rK<hRC!mN<)GDCttyUs4LXa)KY$RQf)h0yhyqD>HbT z+?tSMnPjg$0&*8}i9vb2Ve95!T9PqgxmtbJX3@bNzM8{>7gfjn)-EH=_KLnb7OTbk z4}6qzO8-B{gUH^ew$mDFeGTUXxfFrgL_voH`46U&&jITXLoAg?sw>`^t68Ch!B6qK zL$ltkt*hX`QxUn9+&TvI64iq$4Ie1*(6qao7wR__x>G<p#sXc0&JVv`J(P9^ZB((5 zEa3JW{NXAI$Cnqv3leX#ebyYW8zd+<OqgMd;>FcY1?f0w^rXttu0m(~br6*0ZFNz* zoxjRegu8BKjCf1144DP#=8T2zN!<>t7kW5e^8r3Cq#~rnd(P?2KSsVB*Zv}yPtUkE zcj6gD$Zu*njL&J2HN0%^v@AG`s{)hZ&y@3zDQrFQH&q0-ham`WpT#vgo5I**7SO}n zF6A%XXL{u@QwQ&1ll^1cc{)<@SJbx^7d4$Kq=2>)%duYAjKr6aQt+bvTf{rza|JS# zb8J~Xki}<*)0H)G20m{tvC1voZkG`T*{K_ccuJQk_{byXe5Ad77lZA7f1EK`%Rd`% z?@J0`iRr2rJ~&~Rimp*<V;FftJcU6NZbxABM%9m+$cXL4>Z0!V|9z|&++%a!72Cb5 zihI}Fjx^Eq&2djIOnka<N|*-)UJQhlx)@sFW}#Twlu8xnVWeU96ytu%3<zAa!S0*{ zH|IObv9qLWXAyV}VwUe`gfv=bD#(O7kG1@)wE=vgiDOarRA`%k!nt<(e)wXa$BZvP ztQYsxuc;L7)L7?aoaDJ{t^1t+|7XtsT4gUkoW@Vd+>qlgAI1e;KAcu$HADD3Z=znC ztetz$(lc2O_2nvepX_XMG9MU=`d>>Da0B7w>|+U3o-aZH9p6Q==1bwpUEpZO<cEO- z2^pd>`g;r<bUG(~Q>ucGU3{M2mXa|)=eQ-C#~c3S+qO^HaS<`^M~3eVOAZb_qi_V~ zzvz0gnfCq+NO0#<@_F5*8gwTM@dd_RZ!9gDDzIwd?5`#(-uTjID3SbVv_d-b<QX>v zDrZFcbnBdTv}B*G*$hhrigDnrj<3ss@b~`ve+=_MhN*Q7iTvxThunD}adZT&nYt5N zzG(<3tW3(SgG+@V29{)o9Vo(?Dqr^%E(tpe5jJY6Z>xqpW1%qI$7LuKfb^)%nU3yV z^d!G2A1@SAts;0j;HVqN8~Vz6=lXVyES|C|h8)I54PStBP-x96FY3)b+JFZ`n#nta z-kujC=wE_d>ne!tkFZ8bY5vzgQqfaSLdqRquN#B|*XG|Y7rP_JW^F_8s%D(f=q4G? zo+muaR9w+@s!>T?&1eHS(Sjh)kGYLSGy<PzM><6$*{UCpmMcL%+$0!RZyoLVAIdX< z&l0pc6rWkcB+{<;!t+2Xi=31$gTiFHNg#teXsqK^Uf7e#8&{^|RgsgyM7o_CLYy0K zfwTg>B?7I6BW~c{#*4Ggun#E*rX*s~^e<tc+i$KPG8IGqO95CP2(XrghCOkrF7uCA zd-Uy&5O^?q4E1(YHPk<#k4X4BOuS^D`BVrPX&<B%tr!_X*T>WVg4=)P7dx$)5?=94 zB`_gw=u9#t#ay!Lh~#-h=y)aBJ$D=R?-2Udcd@pcrWy93^Nu$I$fAiggbqv8oO{6s zM87NVdvtQO@K3b}>F4t7@e}L<#KhAcK9(IzqOEqwM~3WbMaP_Q;J3K$wVeL*E*N$0 z5DJ}8U$4<pN+5AA#Kre_TrlvE&I4Wr5I*AgA8`RNQvt!9$D@}@T9Q4f^R4~=SlkL2 zsY=`A7Er{EY^=N%k43#9W`HLpP;l!`hQ<)wFcla<le|oar7{LX7aV7z6>!YrVYK%? zU9cPw_>PB0^6cVcL^#&&X)Y{!yTgn}=ff=g$?yklvYT0`Y@^N|b$d{i7V(aY5X+^X z&)wEQ^J&{Holh)(P#C^Fy01ET)t*^$=SpLAAquH#Cxl$QUqHwGi%oixVa@><X}uuo zNA2JQFzC_l*>#h34$XwTv)*^ffjcQuiAU&=cDZD)6yt0vWYLJzCJ6_MysU9$*ix^e z43tJX&chx|lY}Lz1fSYhcvM0B2@o6q(Ne$Z+KQIrMC4wpe+Y7DjlAmqzPFljY=u@+ zTbY3=)GQo0OxDk1dN*yhfj8b`0Hg@BhaI8ap<RcjZ1x>3hJ3zhc%EL(g)}%#FaLb7 z<HO)(w5|Vpnc3Q}t#A8Q0{0<pZ;UL7pdYh5IJiq=PE#~+>UMj&&#hapU!Ib&hi>Nw z>wOJRFxY*RysGEMJrXRRpni8nwRn`f9dUZsH!Oc|_11se=Ooh2h7NT?Qo6=<UhvH6 z|EAAaXS_mmNb=@g0GTF1H1LY<k}LBVdb?b8fWys>GGDQ_1^|+I(KxA}7-tzP&2{dh z;mr4O<lH3Je{jk|i~85%r<gjblui{VD|7DHowEp9{9Rm-?`_bm#jY>B?S;?IoiL=9 zu5eUmVr$Agx0bGk!=GG7Nn3_K#+g9|C=patdccyrF7x)EW@_-2=@~;ymWGOI!U+t@ z41ht&JI()|DJ;me?P&x?9T`;Y%NNBKr0$3R(Is%ZBOJhG@NgN@uMYF1%T-@Zrtxss zzhw(s$xYM-U;7fl?;ZQ$uz!qknui5gexC&OQ(F5++f@%r99n;dRRYWS)bq|JA3<QU zVQ%$u3e~ky^2W9wEoAX7q9ff2Fd*I$j^sitB=_RmM$v2hHg};rqi~_ft)7CJ3~UGh zQPKO)I~r(^_tsZh1u{HM<cI4fJJuSZ`FlvnE7*{8O1*Qa>O!|z-h*6Yf!7s7&Ul{- zT^U=Q@nT==wxEYAq<Xy++CX<09bca-f4q6{yFB3~PLd==@FPyKEsM1oP9!lI5Ps-S z$Q`9w^%(IHwV1sR37@FhtP=3e_9x3GT7e<WhCjVLp4MixQtVK>V=r6D6S+=glP1qn zaimE3rYIm+8fCyz)D{F9lt)cQ;#%j02>i}0rN|hi(Ra5Pp(Zq5uTW1T(Yf}Wczr=H zaP)4wtj02|{r$QBeq9HBH{|JM5$F04BQoX6DVO<4SWFzTFP$0P5gS8I3twTYO#tjx z*IPb3Ps2Zptt?<cFsNlD<NJJr#tr#m+RbK|rjTP;1ReLP^^U*B;J_qUNKFU(#+vrd zb6LP(fSlLbpD1*e8)uS~rA{-2Wb@1r*ztul?^ZHeB}l&_jif?zwwIaGL0rmh3@q4m zX?>dW)T%z(NOCXa;V%wUzMvZe;jJq}cBw(}8lDlxWOLVUOgKUKGaG9ah$lB{t17ue zhOK20U(*@TZI0afWo}I?&|vFcVPh#Q^-b^RamX18S#+JlaW1ePV`toZU4Vq5LLiAB ze=K|(GlE~{5hOl!{|fG0#<#@=T!La2^+in9_9z8FLfJl3Yp{aJW{x1{U@Wn9HUqQH z%!Lu&j+KuNs9w-l&i+@kc##cB;@-yEKSQ(~jo_^xq=kqW)a(k4J9=S^7cwAlEbmw$ zC={J6oqPHOJ(*(Wj$x~yY*KF}BxCzFtUUr@N8%$X#EXw<N&(H`0U@>FMJ%wluxI}G z3Dt!rTg2XF%%2jqErP`?hG-?-zn=(~+qVQ$UF8}WA?+Jl4czO(33W&dU^8X4_NJ-z z&~jF5Vr=&z+NAy?GreEah~V#?6VetF8?zl(;g%R_{+2@D%`?EtGvfTxk%wJR9mC4i zCZZ69HZN9nSnpUDM9aiK$_T39v^_|d-7N-}n(npyZvx-(fzR<i2Um4mrgpO3a^N#d zNe3=@9Zh}FxS?}_fR~zAyFQrLC`W3EbiPMS+lI$)v_3w34q6_byu`;7v~{h=mx_H> zP~;|%q~~$k!A5vK53WBJN^K`;-LAW|V`$fxe=XGFxaibS136WJ<IpNoj*AhYn*rR# zf%{zR8f}+`+R2$dQwgkuSns>s%TV3Wa?hyprq8T6N11r%wGYnoM}7ak!jzK|d3}Za zT-yiXI~S1hMNe{GV_pq(i?kIC^WINOt}N_t(B@OYH1o>Oi}n|2q|jBda8VdTxZJ$= zkMINqUt9klM)NJ6mi!Tc!AZ{s{-T*jQ_`&n4jhh?r+d)+aFiPG8l!H92+{TJsy-Xf zeyZ3Y$ioK*;t&`r6Zv8nJaIB^J|1}KN4f)oZCq=0*z!H1_5ih0&qVXtURY0g*daXI z@pYa-c+1qD^WTp#pbgqvpXNzyP}B2RX1B0=f*STvyEm+RGlMe*u!C;_=U9rJRdUB$ zHXBDLNu$N-!f@JPFzIV;x#D?i@rI99Krn_>q<WQ9R#nrYYQY1o@Z1yodCsEg(=Ps} zXr=r;nRVM0%gHo#X;jI%ks+RU(+%sX8q56asey_v63##yT=~ILn9wm(lnr+@|Gg}i zpWU+HCJ4BGzprWihJV)Sizg@3#x$Ph@<n5*^;!J)?BQ1D>Z$5$gs#%}0(ex7+vT+^ zpW2PoIZ(3Xo>ZXAx0R)%C#?_4kLL60wY)F+E6a^Vx6Ega9gB=08<5`{A?1p0IewE; z4Z<g$#WkU0TeG?;^gPf}5;{D)Qd_R}zsDB2tmy8i1QssO=~uF6nMe}Ne9=&@K+}hs zFDv-Y4ktvb5db)=oHPb*%Bs%bpWtB+T@Z&_vgkSnmO57eI^H>K<__u`c;|Jw`o|vm z?$?z1`!wJ;m01QK3^RVPW&0%2GD`Vam#EBi-Sv6^@DqUhB@z3bt4%|lJE8V;W^VyV zScS7_2ymlljr!2VgC3H&^fMwCJ{QPspL=x9UajkbN5p31nBbD##a)_G`qY@!FUh!M ze<E|vHrO+*vZFa?e~{->#Q;AnmP&@_Vwux2nt64I-O5jR@Rz$G;0HoobZMy8cBSkk zAlp{axEVh%K4+hyrat4=s`W#e0oBIyVhUS;+@H`{C3Ch683;}Wj2a`CFIqGo3G(w2 zSPqPQ44}l}#bKId;vL$x^bWC)GSkH3_{yj^6p_4Ez$B!mwL79@C-c|Tq}2&1&QN`k z_154(Z@f?L4etVLVjO7-+rfI6`86Yz4G=PU-g=k9)Nb1~yuuQbz2s0gNHKxC6Hh-s zvQ%%nSRVXJnzUSk-Wy|{>&T9i(pnQ2X5M1KPg0YAz5|va<^<(exe%HT&ca319oVs= zcPZWMt-W>Xd)w_Z!3a+}?(sS+Kf$+2XhB~l8c$G1isyU^B~?&N``IZ;1{!lFwnv7< zxZnrvE)zk$622aE!>2>@6F+r+u#WxV=!~BOaem}d)D##C8SXCG1v)X3rww@<WZ0E7 zqCuWE|BJpMraFETNl1Rkt;?c~uouVX>$b^-d&@g?h<y3ae^yWk4-<%UWcXBPB#3GB zz8b=w-eAlhS&gW2ohcc(Mu~M-MgOUC7UK^X+VSYmJAK5jZA$Ud_*ZtiVG^_t0cu|^ ze<#G()9#I?*V7J?(vpwxWuYKkz?K)}qSagO*WRZub`q~wNk<9}S4-Jeu9k<c0jGdj zg~$CaO-%Yf`2#l=g7z^6Z<$=#4rPJq;V#}1w!bgNHcHmPaUDkA@#l)JZ;Ju`aTRTF zZ22LuD2j;3`!}|{QVG|;gxn~DcP`=PYt8DXLqf*^Q`eOQ(eVwHD(B1!H+Dkx&Kmim zO@YCViQVEr#7gg|cJM=O8UZoU_)}+J(1Lm8Zbe~NgbPi-g1Y=@RMWS}Lx~B167&4@ zK0X2OCi(3!%<0|ma;P}vlQl?s@6WZ4SjaO!Hr@N#<L8L0xUuudh76j%@X|BCobZ=5 z?wHf)(5Z9c3vkfHxy<2^aHDcGE2)(yBGHar_&^dSG;|Rf_@BQ`ZqVhshmWNba~Jpo zn!w+#Jb3y;aQA+NV?t$hIRz$_I8t~F&tCOptMQ$%wrm@ofqIG&A%ylyzq@(V*SRr; zQ-!5_FT{~7yO$O&vsr}nt+pon(q?nF8n_#@o>|nF*SI0;bQ-TYb06_x`MbD}KQ!}! z6LZA&uHx6tJvG;djThc?{`YZ{`5?sB=RpVxk|FEKTbaNT%}7F<^?T^bg6@cE;noK? zN!iW3gLES7t_gZ1)g%x!L6rg`NLmXNYw;4aiZ3ipzGJ`hj%1<+C||#CBJ8P8)?JsF z_NQ4VUl4!zB*o+StFIGA6G46!e#e7+(c<{R%QIdqAu1BI_!^(f?z-4=dpZzX?hs>8 znKKDsErst?u82>2-K~?3UPjmWprm@+^)W!fxvxal%gB>}*YVST%Sfnmz<T1Wx0g`D zkPb{2$BqtfD`-cyIA6)F?4+`H1&Eeu&<UG5R6t)*eaLr|1Q$yQ97q2N__d4!1)NyA ze3_JyPYMP@*6<AJdTuPy1+vkPPeMyTog;F|#p6(Cw$Pharga;<(*E3@7PtriiVk!5 zAyA(y&a!2w%WRsrHNYLr@#02Xg<31d#an~fc9}cKQNfv?%64`eK_rr6@+u%FV1Oop z69tLP+IG&4N@cMBu}S8}deY>YooXxeQ4J@2+58?jXicCyzArb3f>xJj#7BXaS6khG z*ohyk4Ljv3y8DCw^m6N<W><FYvV_ggKl*kPkRhkQzJ{8FhwZXV!g9axRMKl@GwWy2 zdV*=9{o~!Oac<&?vXpoz*P1^}mTEs?Xif`qv2*JmT?Dq_p}I{>@j}V=*){eArk+Eg zkE(^?erYCrhy_l2j->&Br?$&mH20T3+x~R>$tPAG=Ux(wjB~kzhCK?tm2G%=|2cFj zcio6c_?Zl72%?S)LW@C6J6vk%B=h3`Wh%r7gFf)``a1aim}4w}@-Y}HelLUsxwCKu z#>Uyyd+|Jm@WUD|vCf;dD$x5O8so9y>;;#iPdUiG6F!A9yMgjb(GS8CZj<c4$f>?J zNw~4<{VE;EKUw;3b)7tIjsM^~l<d*)1WHO#GWz6;WbW6DG|wFrM%RDG@#q?{fQz`m zIx3vcR<fK9GI}1e0}8qT4!!g$c;yKtpw9&<tnv}Sm})JH{r!#uJn!_)-`sruLa=mE zlPGOG#6(F1ZONW5`QdRAaz;X!!=S@aBd)(aL{(hrH@Wjq-iri2<LwH3!?7gF3%4c3 zC}$)H`$9zt$n2W1h(VPXdLAs%xr?h-i%Y*otKgo=kVGXX6a^fi$#eLf5l<`hsB+OB za9G+h@VG{Ue;F6ZJ=eB6RXD)*?S^J9(IoGY@u;1lSRS%69<u0i1f5MUS3umaI~@4l znS=mI{mPCT0KWL<?{O{VS*hd*E%LZ#evkRy^W%Rh=db}itG*n*t|#2vB(0R~coM<c zen)BhI=G_=2~?_5D3>6iPMy#<*Xhqx*IYv9gQBWo<641QkAL`LzE8XX9F7+XHHV`C z;7S>=NHg&YyF_f@EgroNyEYlO*7h}7KlD8csCV(32F%93PI;<Fa~6-!nU8x{n{L}J z4KOf#zTxU5)u4=cTy!)6UOPJ`$Wfd~b$R60aoO1bzG$ps983`lZAdvNYu-79*uRAI zHi_M;C)Q`36Wlg<p)m8(#|~Qeb8N#8M#T#6rNm78c3&m2b{!sFkz8BngSt$p!@p3H zrcj?Sa`jynhnWv&KIGW*tzC1qL~c44Hc#>6ueSRx9F?8=-(!!bM8Z0rnL#;GnIgx| z;}OVCR5>TfcF}>_d4=Of!X~<-6QaZJpRFyMKuVc+VtU6NXI3&pV7hNIcky=H)^Cw2 z4`l))oj|?>2+8~UIR<}me!a<Ly)$`0#3<pYeSUJr>*!2WW6*tZ0uL$i^l{S6DT8>% z!<WX%bHqEdNVrUb-SHb2@u1IkzGvbl6X)Z>`#F+ux~fdBnbRhhb0mD)rBQF>+l#JK z2IpQmVv|2`+mxzBTlsLRzXA9DSB4sWA9tQjR&L-$Yt|`EU3oix8S1V-?O8&yM9>Wn zaoD-g{&CLS7!4h{R&g8LSx3kBvcd*lwlKYw0&I|{L|I_gERfXISKXq`M&MG4ZJjr^ zXUq`yTR_6D>=Q}FE@Govb!@|8Y^=Mx<O|?JxU?Wv>#l%BE=Pt&8)-JKw~o?N?8+qB zEujjw=?+|oJE8<9<uq9H>0Gp_=D_{{mXA+s4-LR-GliX-T<y%WNGpO&l`E7+Ao&To zlQ+^&h;}t3zz?Qc(6HEH>)#hQWEI4F_#0RN*aYOGh7P7<TX6ti^p82uUJT`?*7g%0 zv{ZuTcg9ZzH@w!_;sJ?^Ux;9J=fFO0;OTmu$*}Lo^6h!8!ozQ%ay)1*Lt@}ktdH~F zHEr}|X}7G872+lnFE?W%&CT-sBv)|e%6qY!)&5?yUf3Ez{+R$-lf^@^YktMSuYfOg ztZX_ed8&e%94uDmcL5`tZ&MqwImM0mA}_vI^fMF@Xt@46N8YvsOQnIgF!es0Go;&p zz?E1g$6GOCaX@KWpW>d=DSYd^3JUl1G6lGL#;P8gLMgP=?1w7YgSzwo8|DVO1_k(e zI@*zUM-r6TwCnZ5c|s%>c|6-zPjTW4jTZs@e-ZB=gvZaQQ9P%aoqDZU-n^ebbrKN{ zWJ*!{B9;f;?<Vc^T=EsJ`Z4gQF^RkJP}8$7)Xiu5M0{^9v5OBPmw?+|5b`apIn?wl z2uu5=LaeXD426Q&ZQ_j|++zSHSn>cs5zP13)l898GnDqb9+`><F5fddSws9Yo`6}X zO4ab=q$k=Dc0Q(I+2Y%EHzmd{#4oxDF#ESZI~>o+Ia3AFQ3)-=6uiqhU{B2RdV@k! zB6W+GJ+}-*LJSk*M=EvpnJrp_vSUbpE%C`Hm~RDVy5H3<-$<`><&Q}0gth)0oS3>> zw_|XaR^F+E6k2XVmL6@UiW0PKDc$o1qpy?XqP=DOAJHNWj)D2D|8fQFBgp2ygl0kT zq9<EvhNfNVlG)A4jb8;^z^6s;Qx(%xtsH~zi3b@GxEqF+$>N;n-M22gKC-)rdYy;E z1n6QQZ4Hn+m<Asek9Tq0h#qU?uuRIMJuBI-d=`lnKln+7E^}X5sr1L+0-26$4$k1) zDG$eO@z#!z`}j%weI$f1pE=8hc|lPm$!4^;(-qGTz#=wfvF|^vCul<CJT@(I<J_{8 zOoGOG1!n-LieW+Dt=*U@{*fK$?YYCjeu5`+J&}B89sc7U;&1>*v!0Pd#1B5Q!A>R8 z7A1bB;N`D)uw{FAc%vcT6G~)8Y|x&yI&_`Lcmu+M3eXa=COfV03mSJCzHVfszLwXM z;X^5Y|Ng?m-2Ywb0L+(h!yao!34488p%=2RBJr`YLmXm4%v{1*b#oSa`*En`Tv^K0 zh&r1#&z}S)ryB2VNSU5|sVMf!&nD)2u8C$4j-UC6?KP_~+h&2&%uXeh;9vdf7L@i% zruce8TdczJ!SLWf%oP{D{)%4dcljo9_aFA(=eE`r)cCRY=Ox<HFIC|SVQw`i7w*A7 zB#7*aYUeq`up%iI)TyHog!j11fr(*+&b7&5w~7Zm3&a2@O=D^ZPZ3+2VL#qO<4b;? z6!2`E@(qZ^ZK&D8<3}fWTroVFk1{K!T@DF4w`e*j!<nKup(k3%u;Tq}bf8a(dQ;z+ zqUIRIc5$^s%-NNJpnYqJ{wii>8PE)ESx&D0U!y-zKmHR%HTmHi*{YYp(Gs_QsnMWN za=F?ZYj*hhrQNVp#Nae_*q|_OTJt?-r|o^r8~EJ{55H<i{+X&-Ew_X|Hc&!E0~^j} zfDf8cX|Z2!rAG0+djT&D;dP$<_x3}sTz{&du*cF>;DSVdsHwpoPDRR=7iYITu7R65 ztco=$KiEoCe5d4ZR4(r(rLlIywtn@D1+a8lG2s_VTkB4kolt1xIvo5-grWivb1TgW zGBZCcJjl8@=C%!?Kf&`tmszns5c%tFhIyuk+S#Umvnhv)=esnSAyR@^$|tATxTPyP zJ9SoHP}w?L=k`u5^+2DxN^a~i*8iXPWQIM<C4B~1I4-#U87DG1BaWY7=)!q9;W|ZE zz}_;m7m~o@uBh@c0)CTdl10BNkBg>dbuf!T1)hhFqRiGs3uT=PFKBHjGg<hOD!h2m zf2z;fD&VLc<W*bc^#LC|107(n>?}x^ljHp2rE>T~^TWEhY~qBXTWW%RP7g_{#BANP z$d4gdK7dDcn#;^}$@5jw5(9&-u1hFe9ZBl1*1BH{Zde-r2eK4$e1ONgD;YSo%D>F4 zNaPYKbPO*A^GHPof5+{Tc;+JWxO6jyV^W?f&&RvN<)3N?@=C@Ei}FftJ?<S(X~vyB zx9N}An*;xtka@dWRGo2v_}3;lqJ_f7mLD5)Z!lxmEt9`=Cey(CuCQF#In<4j{cJ$h z7x$p6vYF+5(Ac?~9l4|eiw;^?yU6y5#e%o0nKFCiwCOP36N=IQdk@$!Ab8AnYp<X` zt^;I4A_zM>6m#LTR?pw=_L)gr&Ozo5gK`(uJZLDGGZ{QSyZDWN`WYaZ-z&DVFUaxz zT3@zbd#Wk=iag0?9Wr4X@Kv(SD+g|Mu+Vz4U$}zmz{u_2f7-&WdJ!<oBe~YCbd{K= zh37J`^l`9M{5TJb64SSr6Uw1R)+$e7&%IL)9QsLBdYw(ic;|zfJGufXVakM7iibtH z%C3V;6-dwtDZZjt)o%p0!qJzS53~>7H68rE@Jz>E)P590D&(@g>=s}ey)f$KB52rF zD%>DszfO|#WIgylT(#qvmnNc_A-wzr!?`X$932M4H$Fc}&}Jf`;D0P{n?}aUH*806 zD2eYc_}V&C8$c5;NIX-q$r(mBFKLbib|z+5D*tgGc_!@`^^t$|!?N;|A>dOo+n6+4 z>hlotV1LdP^z`#WSOj^47IvZIOqkERlvd*utp!oFdl258SOm)<z(+E>Y!r*J*5f^@ zGoJa8KE^Ny6v+(#Evm9?O#a>C66?3~3Ws(bQVh~ka|1K-oAeH}#U6d1<HJ&S*huY3 z3EWxR5CYK4RT2@v8HP)~-PVCdjm}2M;pxK1lu=-Lvl8^LFD;rYPa=}m$Jq;=j-2X9 zJKJR5cbN4|QmK%3-a8mX_{2rKn}pu>j#)U@bIL@e2sVmQ8`L`n_j)=4V(z2}RG?ww zpEC()036`$Ga#|vB8NqmTO8(-hH_1Pm7E(CXZ^mQ>BHUOL9y}Y+d($ws7FqNq39#m zpMZZs;G^Ns$>ML<a2BMZS|n(UO%CevRjV9Cdau;27@r~IcbBKgqzPB%CIn>lueGmw z+tmarId$Gynj+rwpmh6rB-A1o<d3SNes*6{W;oR}%%8XNV<Mk%M`sdmbkOAAmJcom zudzoiwceVUz?XtY4y=d0;~JxKWcDIjljySgL1SXl<vwkPGJSffewh~zXMCTtxlgEH zvEa!N7bIu_u+tuX!0t2{-N4p<z>y{lQL&hmgxb2Z%e+6~>h~1?P1gsIe9BCkmI@St zpMK+UG6RnP6fi&8MO;pJox~{e9Ve2eAIMVvJhP*|Bo$$(3Oef`BKy>kMJ0s}^-VUm zDYVz{?7YmPbs>o{W#C|CcXFrnJ%Qo7`+Tbs4h<N4laE%kThDOE^@|+l-kj)IZJM}m zIbq%iENUU#HU%;|X)$SHnqe0$p@lg)%4(TaZ{kHLS{XX7<9Ak%rN+gf66N;85KQLZ zs@5~Se~XKT6MBjK(r$uZhg@cYB7kXbAt1YL$?I4xPL7Kl85AI@F4Pud7*Uuip@y^5 z3(!4`e9M2#jIE~uohM^;%k!<mzRi@4&sU}g?F?3?k6+zjn>XCKyj?51oGM`tG02yp z#8=Q1#P@Xa3Q^!W@ulB0-0tEzU+!xzr{LHYSS)bN%O<LCS}52nz>@86>492PoI7ko zz9orVDvU!6!h#?k^_A7ys23{E5hOmlLs1$sJCC1P@jAbC4kcRseMKX|dDZ6Uo|+qb z(D^ymTLU7{JBXXhYHlju#^KWw1$hO?y0$n4@#Xa7%|acwB@xyX;}d~JVGfc(0rC|3 zv=O^+`@g@b$%6z$c-9SYuP?=PZ`Y*LuOyZ&^FgI-ViEO9<uJtF3p=}oM#hQX0OK!{ zB;Ane4)_?_w+z?a+G^{9yr-qc+GGU5W0gS_lMJHss6y<P%Xa-~XLQHwpYXYL8_%4R zC4JQid--*q{9G5NCa!d>%>!!9@OB&Vf9^5v;MRiy(_QwC$w+9b;+iDO88!iVZAoc7 z%Lf62NONplo^V2~DB)&c|8>?d#fz5`>i1?~Ez0|T4!KId`HSr}5BVPNn2_o?$!7(t zzgIDR6!CkHSv?p!gK#bYpJpcA23p%%$pRg$Z-X)e5P@k+8r?nlXWM{OA2<GO9b*EH zBi;tn3q0pM#HNTBfl=Mzk-972zek{F_&RK;hSM;J4c0p*#LjakL6qJ7Zr3>bAqzdQ zL}w{ZVJO)iJmJj3tXScdc#fBUYxDA^$Kl4e#f_67z#EO4w>8Jw0W}}A0~WJLF@OEA zQ(MG)@4R>ajUbFT)M7IhTs<CQbf=3V-09{fw-WDYjH#yag5&IRJF>#6-+s5u{j?$a zR(0a(i~WfRW#<a7^pD#0SEgbPPdeCsDWc4hIpeFR$eyq6APY=l`}N7(ape;KSgsYd zNPns6qLS5kGsv?1IjfK8pFUd;B6J@ptL(LHR%hU_&W20ZRkov5gH#yT(wnt2DT)J^ z3<ZY`k+qO@bDTAvc*$93Et}q;JdEQ#k;EYgq6UW>rtuSe-DCyg^&^knPPUs0972%* zHt^_{|Idy(EsZs2>(I%0+c$@`-;!#omHJu?4}ki&gn5K_u1@Ah<=HM_{&cC{<32lu zhIOmgQeCSwsL7x$5vW5DPgreCR^XV6Q)dD&`3-HOc=$>>Q1LNi0e1y~1s=yIMsIA} zH)ozXe3e3Pn>=aED;oa0GCCI0`Ns><{wofz&>_4R63(Y8!_?6c5<hrI?82uaJJ>~% zX7Y7&LNLu6S{CQ|^%39j)NeijXe-B}<vINmys*CoF(kzw$#Ty<>ilR-(vardkhYst z9ui&<On2UU4vlI2l5ztVAimJ%V8NptbbW^SFd*vpzLLeDo1%Tss4K!MGmA>8x_2&( zRd>zj4g8ze#Osux9IEj}7V(6IvWc{HlGm|&b>Q2ouOv&ZQdpJ;3aXgnTTO;@3%htk z`aCt*UwV=Zj%A<Xlo_z=8>n4$)<v>%{bzAc2%z2?iSPX^A-RQl)KGuV)iSKuf(d!o zADQ~T=^vYNR?{bAsASQ@*u3+;OhfIxpNAwJH@#N_xoiilmjEVTZ{Omo>lL2+H+<hx z_^;2<>?9iUfSvcVhkvux1_F^`3|j8^Ad{6MzQfmH$+vebY~e#7-HmHq7@r~7N&TOp zX2rgOt{u6mGW<rW^^6x_T{^kSWL^2uS-5*7>9I_-qH%Y>{9h9f+iFZS!PsUfoB*gn z!1mDa+ZNzhz3l8VpEv52<_6RPt*jv$z~6X$T9%a;Gep)CXXVhjK5N4$U;ma>=IP~P zkKKJK9MC-wL|-H#ls!(;-1K4(?Urd_ch}ovNgqjzG;h0Cf&yHD>wyDY0N5pTb?V^d zLF7cgwnj|@wFax9dl<d<b_VlE=7wN0zGd#Y`nnuKB-I6dVJ)wD3XrZmTbze$xWfob zDx5V|hE&<Uzi(}ALJ|O?=0e!7bAcnzof<o|X8d2XZ}ahCzr2z-4_^WR{pwzfQpx<D z$h6U5JxS)T!VCmjvg}_@GieWGs^t=zdhj2J@cBlOZ@RX0BBkYMGX{^|+W8A<b;as5 zK68ms%QHy#kqe5=K0o?Fe~M@LB*rX`ty=lx9CABpNcBEord^ziWW9w)Tn>(sN;qg! z4jnFhb=j=K@qSlm?mt(Y0p_aGQy#Xh->zfkwmw~DYnKy>)EI<V?g$PoeX=8^D~d0t z-f$L34U#@`z-mqEdiG&8{MI8B%0X{JivmC=x0@?FPQR3Y(+3FvbEY|p!!q~01X7|0 z+sSv_mZ%HDDOJypNs`?POV?yL(-tfd3rm>+BHhLX)^uVs^S{t#Ky`TZe@t~U$6Gnc zLb>A}F9xq3$^_|PZ~Avek$raL8zl!!En-G~(WBm#hGW0#2`v|LXBZ(oJFow}+_N7^ z52h5b?0u#_x0%n5T6z>!+!xir*miAr-Du(>+`myd4v_vZejbknE<9Y7xNB=);Qn=1 zc~yL_u4PTdW`Sec)sGN3%aijUgwe~b+5u?zG1HyI9sSF8BW~45{mJx-&?2IcW$P4J z)_K0|exBT4JRn!QE2kQS3G+uRm-is(ZS*R^ZeDMlBQ&n%>VVuLcEtH%6=*g4v-!gb zG`b!dJn<3fT-y>AcMj+u*^NnyIJu;Eb9jd%-#QWA<Taog$~%}n07yE{>z~SYAO)E! zq$H)`lK>JbXwzXwJOMJ}8|shLwPN<cD2Ez1Ie?ei4}c=RUd5E~zxAtt?O%ARL?jV( z7(UcXx9)HU#`;|bW%CXWnd2!YtFQ*iZWE2Lw);2CZg5B>c0Rx{`EorqyI=ui&Z4C; z<=Y}#)>vQY&#KI?=h6D>v;Vea9`#@o@TW*Is_5CpD9~p~e_#NX16yQk=)THe7t-Fb zQDqkb-YPPU>G1rQfkcn>X<I76LueJeTp)nHfaBwj$WA$as*DzgayIk>r^iOg_M)=z zagKE8FynHH>cpv4R|1-`FPOIGiCE-D_0F{|KO3#JT3XFHca`mJj87!k`Tl@wWANiX z%xb<9K!N&JoU3%h!|LzD&F`PHs2GFjH;ggXuqa+WWfPZ25Onv6Yi;xwZ`99EJ=xUL zc*DBiFTB&~?@2`B8H%w(&hFip>ad5@faH<`#AECS$0{wa-1P{T8v8Ga^-6B3N}k5{ zJ<ZC<VW&clMHPor8LNo5+dx#c{)d(FnabHPoqXGa&&REPY~S<hm6YDBdRDwp8Wd_9 z#?c!Lh{Mqw_Jl>M?Vj4}U_$Cg+NLORPJrm$nk1W2HGGux61;RS+H_7Sr_c(A8hRf3 zRP>`J;Udzez|X{TJw^#4pzPLer`I~K`Rhh|i&67jJ&X#816svdkdqAd1(gC4*Cv2= zvvi(&peu6wkHj7Cp(yrpcK+_i1Ng>`fXT}B7%k8Dv-C+Lpd_5*&|#eLh73(0J{Q<t z%E%%N4$ni>VpDMutQ0HLCFrmr)Cgl2^i_kGyTi#$v?VAmo&!Vkd;<|0%kl<V#UfJo zGt09ImM_ukWAfrqt?(!VyVXC?x*i3S-HGcsla$umi51J~Z=3IE(7l3Z1wuM1*CP#t zR(s6tN~%}y=XuG0Rp5)ig^f632_4dSi;3Rxcjn5_LaVB(adkM(04pkS=Th+-&Zz@| zw+MgrKyTPuB1gS54WMmaxdbIXgE%rul>pTt>-nhY9^bT+lVQ&I+UzLSIR$_Uqf_b& zxh`r(c@?0B_Sgk2up_?DT)fAOP&OGsP34B=T}9cjwIul6Nk?eA`(AWu?we%Ph_@c6 zWbRIv49ny+zdfPD9WD(Z47{(aq7pw_DKWa8)qkm7uD-VPh)~{O%hVJ4J*DG~TWZ+2 zM8H;RUE{&jQl!>^-;4RT3nN>iZY#f))3kHw4On1cU45}?x>s|@4aFC2AN-_R!5)%f zq&nhPzSfirv^kp^Pe;CAx*gC~G@1dv*Pilm=$Uk0*XAJbJ6=ewgJ|m8Y9hlQU%L2` zIqU-Uout6(jYCO%qm;&irT?2^p;cqrHf*{p4E|nyVHw|83SP4GFT<*R4a+#D$!L6? z1{he4lg%_s|LqLn)ry|l`3ayMfN1|)wAzJ;iCg!eLgGv?mDRdfxO9ac>zqM%2?DN@ z_42&cl{dZ5BjW+Z`@S;Vs(x&1-l!GoQ81LrwiAzhnk*QGJI~a!6d%Rm{QtOm6L+ZF z`0c-L6_Su{`x=>wj3qlWp)A?jRkmA_WF7l9GZk5~C5p0Ti3%ejyU8}PjosKM24f7v zSO#O3->3WjexK*~J^#TR$6Pbl^*-O{`8r8%Nhyr;axPbfOv+>At?L(3kna*(`Wc%~ zAgpR?oAS;Lr0eH+KZ0#gLB*5t*d;K0m}76*nr@(#d(k2T;^A#6t-xO{-N~}FpWnUK zS6rG_%n(~=tmHwGI!cP^MW|`}WNid)%9DV(5qWZXcl$*We|>6S&NwC(dnK22BCeU+ zA~edI_blwZ9>GNOM2VxGbQaXr0%WuDb@seX81bH#eX@t;R7*AgT<bWOdvGE1M}yX6 zRZ{YK@LDbbuw?zp4X>JNG93C`{=L1p5jQ*MHzQ8bKEV7|gGtgwYTf<4PBo}|ogO-7 z*6_?pbm$dPx*LEd++{1wRn@xZODt0P`j1jq1PlKzo*kv6nTV3FOhUZ>cCM4^taBp~ z816Mu0`ArKuY3qoVqSk5VFk7ht&VWk32xmRwRvDxIiu0xbxEuz5B{)f@ZOpDkc%_K z)QBxS^q7`;<^V7g>tvS7COC=g5AgM~%oBK+*gf9oGqDx?$OJAPDYWJpRWng?EBtN; zZ1aJN>+^Q75?k0xQaQ8>)xcOxXS1nEFP;xSeoe?i(DzcC>1F+-5dM$Qp>q9<c<9{y zN2FcV*OHxl?mK70&L|<y`I~L4xL)gbI*^0rsZ&k)NYb_wkW9g*SI{|#@Uox`kl6q8 zrYigmJQ%!g0kp}twEfgSB^(SK(tvdyHRw*Sh>{lNOc2HJYmb5Rw{)-~XR<7oy^=na zghrcjgzkaadf~a2Q08kF;ur_!xXZPbL%AXvK?xr!cf~E5X&#-he}|?sbzswM9J-kd z#I5&C^bA}$!?o8d8G|X~7<<xkE<$4FqsL&0jJ5WgV*mzfX@2h|$huZ76|>LPq*l{; zGD$I)Es$j+IHXD%@3O7ChJ*Lv5_%kjfN-^77c=vJR#N`CdMxQEUz_~lfNV%7?UP=s zOS+rX-=^)d^cwMQAoFg?gt`vRW!Xv?{B08aau~mCu{|~Y#Sy>3OV|M7VGt&e+3*tk z5g)XxaTu4sW?Dm<ru~hQ9BQ7wF=Zwh8x&XQ7&pZmDz)*<yiMx0X+V1R9u4d4d7QFX zUrc4~Ca)VVL4%493fG342StheIR_~RX+g;&wRzH;?7igVDRweDB+dCsV!Xx8n3d#_ zfK9hDaz=9@q;(=cfOxk?jA$pn@=ZG7>Li4o$HviOzQ=^kYp*@8;t;@&T60^76*?&X z@!1j^xh+CgzMQOXt}`{ORl$A616D;B@!k;CE9|V75$|;5(Z1v)KpbY2zV@ne`v1RB zvjA?u@R?(^F|rC~shhq6?R}A*faU-FxU5ftK&+t9SLg^s!yx@ckDHPT<-)|rfA0Cl zy-aIV2p4Sh7)aB+s0^s`5Zi}`{(F^d<>CVYW{%6uw_jzs?D(X?re#59B%wWZTiiWL z&^am9MC2jEHa~Ol?^6aAAq*X9ft=0FfmYR-Yx=mqdZ6>5d4N*$$HFH{v=dsXCe_*= z{MYn1N#*qsftIQUWt8+yEj`jTV{aV-!42=x5tySW0Bk`zm9(cWbo*5Br%npoWg``R zX;vg^tH|DYB{wE>#YY(zwd6_o)ddQkN%YaTMk^%&?zHW=0xY0lv+x!bF--P9e4lzJ zmL4-(?8OAE!FvTR)04!w5N920iQYV8we(^M<r~F&g2h>4ZmdNu(3WYTdJIp^jb-+c z60kudM&sQUG~>d*V-oy-$E2_^oq~O0yCb_ducCxh)qE~NdazR_$C@+j3K7^H_2vTW z{72(pHRS=E=hF=yQ0s^yJ-aR-o5eX7K06#J&0N+-(`b<=2&FX9q_X*m%NUhfT08HQ zp4Ua?z<52cEP-8hsCrUJuM39FQ-1C0L~B(jB}KRL{&XZCV_+3+1nI3g>OWJt*}^Bq zcK)C?o;``zs7H9MOD!OdvYZc0qk80!R>C#2ow<xISQ~pzI!P_bOd@?@_BOJxh=)N> z3V*kMJ=YI^qL^G|_<2p;`jgeIyOU~!RPs`}m;JgaL%<ctrn}?*MHDP%X!`(FAe5^~ z`?3;4^-imAU0;)@`2OA43s!qx63e`nu);;i7Zc%5R~8piaCbh@E)u1%zToym*5vXD zV%l5(+vXC5={5*gMX>wB>)Pd8JQn+{D?88h^f}{NMxH1gXTB@MKlr#Da|Jzy^pH+` zu9VEmWDE^*$G=!ehqMnUFpR&z3|Y&`es9;ciM{)>K4rxLE4lTx%5y07eepz0OB^bB z?0pkYeW#5n$-A{gF)7C+`DMzo+t3BYH`M&-tDYw)f&LqE(D2gqEcBQnDhy=3&)pwb zPcd;xxuUgv2*(k+mCq6p7oivJ>6RCPQ<ojHZz<j>e^U%Rg|vMx28UShm}O_F>&ioR z(s6;KWQnozLG9xMam!qiAEh-fM}d^X-d$>4=3lm%Za<4S7nkat0j4s3?a3+y0uUdI z5A8=`=Yt)5dF!lQ-br(JDEoS$;ugjqC#l}}z=(}3bSS(fgoAAsBz;+E;e*WCSLi%( zc`e@`w78gsEtl%PSzd`;@Kg6Xxul-o!%ABYs#W%)Oggw-&3uwPiP0#%HaP%SXf3pD z4hlF)HhohU&*;ka-0?#nWDmsi8lTB!005&MDc-C0EBD#}IoU4I-hz@yHV^l^Q4V&o zpqFiLdf^=9*N!ey6wGqm7gNHpBUhV7z=gBjH@v$&fLpE@DAjtRl=7#C7RvT#)HlcJ zhzldmzB8Y0?_GXH^*Cemz*|b0KUDppZ%G9|P#YpI9ZiZ<ITdM?t(3Ou(KKS1{oTC9 z_stk6ZNX|%(LRriidZynv3NMC;Vrh)EEULFDX*s_`bda3PreLMe6E<#+%c-<XSwYa zcJ5*m;Z;q@3q(%H#`-bI=l)bvWR^{6E9u%i>4uQ!{HMjG48^h<f!ZtMiQXfD`2FlZ zo{zwZ0Kav&Pt1B41ZeYuKOC|91>v@K0_0MJzuI<WyR1v>#<JnOpioV8XRbbo$?`-; zL&=7O7zYgR0#F(IVlS(Wu{z#nxN#s~Tl0DfWFj1SFtS{aYb+wO2v7`MCHIyKcsM?` z?w)p4rp|qlbie~d*53N6_VQENez39BiLGLL=j~VIj108Db*!+0Rg|Ps7WVwsitTzm zAe&?%?gM!C_y1WeDsv53?N7EZ(KG6XkMXBBe=BqG5Om&LuIv(TirSMsk51yG3R0<+ zO)j~^w|w^fxZk8_27c38mn;V~xAhQH96%H#kZ(nkH(tuE<q)cxJOnX5jf+n?oXsuv zKAjy78HhCD)t?VWxTX0D-+W9F?lSNzhwgqH4YTtVn{<JOm@GJc(<8kI8lc$YP}8-A zvz1Ywn0{G5<XTfMHKfq`L1wudQH0F8^Zp^p^Tk@+@z^`exex12eJk;Yb7E3vHWI#k zPuI6?e2B~T>)tD4k{x_bY0FVKzMs6#u99uyqHwnp5swnCO<jGh+5La4t{PU8v#^!y z3f@rb6tZ9T<QP+w7f&>1XB{P2o!x&~W0RmMHtY^e&~hFB!h1ve!yR{NfEHVIkJU}N zTT_4MKXUUQ_qjO?@dx-40HiUSK&CFr0YJ~V!h2D-FXsW02XzK%qGMHa-}%&I-_Ok| z$BxL!rA9~@wLX$G9$3h^BtJr^RXy=1ZwDk>&Rk3v$ZG~x>hcM%L;y#vQr7oSfi}<g zdsplWe~>TP+qwR49euRw-|h*bycd~nJ==JZr2q?YwU8axIeAP2fIN|JU9=J9PS=`? zEy443y)c@9al_w~ubjLQBz2Q3UBSd4{d4-!H{sHe5Z68XiC{QR+w=bC&Z5+CfTYq0 z(ER=-VnuFP`G}DlL)(nu{@*yYwsq@2gMGKI|5R0dEJMHE_Ht1hk;RCqG}xmLaA0yz zl@TvvBBR_`L0J|3A+E;Pvp5eg@e#Usea1DpfP4||22q;j%z$#u>_$9D!;;b&?~%if zjM!P7rDVvp{{B(CASwbe!s+6?_Yau<hV@H&W*!t!G}-w+^;4HVB_;sFr;Ax1cIe)P za{0i?FuH4s$5g;j@MG8iP(%mq%jw8{DzDK7ZYL42<`x{td${Tzg;8BV*(O%y5)b>X z*%Xv)=dGxZPwKpj&Xw}79E8Q_B@l$W5C_|KcwK~$vt$a*bvVKM1|EZQYN+FDjU!(j zTAB?N^aWc^iInaT`|q`%6)kBaO6vp9{4)03_)W|>b5>kD3b0}RQ15#=>2M#|fo%zT z-J0o*oa}>5o{EdvcE{CLm&X8lT1d$N`@F=v+^xru03~=}TnN40$6HJIyD=E}+{s<G zqD(2uOB&3<-DZufy=G51Ghkx;)PA1uv{<&Sw#w^~S?kD`YgjUZ>Nag5q1B&PWPrbS zbu2V-=85H>y6L3T_|1#>p&2G6c-<R-!6qq;ut^9~I^s)skKOE0)0&r$_{IF<^?-Yg z`o9nJEziyoeFUvV`XbWZ?gN1o%M0rf#PMa9%i}Uf%G^9dL>{UgYs*Z*j=NZzgB=vS zs7b)TtLPza8!=0Dp*LV2N%xgAJguj4wsap~E_4*S+Xb5Sil5^Yj~Y^Ep+fs$<KKTR z$$a4%bZ?hA{(nMtlLkW~ThqiO=?!wOkgTEjPz(Re3xw6SD_4!o?<Lu@Xow`bS;|2W zA|HQr$1IGsFjsTvH1<$3Wk5&QM5ghbP4QFq^=LJNadyu7`y<M6_H7CTN6P;tRx>)0 zt0p+jG3TvgaCOL|$ZuGjJi$Z~Dw71AGn*}}+m!C5{U&oj155ie8Ev7BNpi4`vyKkm z4WA^aD%ZcnWRM+e$juZohV<?wJ7s|l4T}x++-O6hRZu4gij{>OXS!*T=h;L7+oqLq zgO$dWJA{KWJe_SpFKAwQzGK$WUtn>Bt^yAzMH25#Ms3BHY(*?B00vJWvVz?FDhL<A z_Js;c!At5D)}DM8OT0zU6*Xl%aC}d1@$y!;u2E9E>#188Q~CWrekg!5BZx;)xTkda zW=WQsxqEf<B-bm*vyAhR@ykx1FhI$QwIGX2PnWp(L2kcA+Rj0gG4`|Dmtlp!WL;yH z6%O5_7Q*f@hf&>XlrTFpyIO@^ql3|)B@B{%kUQYR7}ZqxVmm}Jp|~@2KxtZJ@kkt# z?84M8QNsBF&1h$YemSDT#Q;};0fn#O7W3`m``5h2TM2~e_*zO{s7?6GDwlw>yU|Wl z8wE?;Loz_g0`ez^^)h08_Xl=Ou5If}uC{wB2t}XZA6b_uN!QkWryst5@de{;(*jk0 zWhk9e-{VMQ{Frj=+B!tEm>H(Ul69-DVotKELSH9y5fxDM8-Phg#WJ}nm^a;8`#JUE zP7EzsF*i&!d`Cx9)Xwvl<7CtK8Mxr=?EmgzOg~iiL&7hq+M~i36`gb*sMt8E+BNEL zJm*`5+{oSNj{{CR#1^xsN&OHYDz2(#`SX3R)d#A&N|7jktC>_(tRU721ULElTI8bY zUxjnY3x=Gq1R#Ikefk}DF8)Zl{;}we)5h1sOy2juyO?U<sgN2zD}pxMTd_?(c$g4G zH*pfFZ_VfQm4FY~N_f~DQ_~7N%WJEPaNqw^ll?0nScb|#=;<+hD@tD5D$#m{fu6Ca zZ2Di5xB2iuspY=_{!}4wPgbSyU=pxablB}@>yPQ^Vt0N<W0wStMaBO@VvfS(Nl$al z8Kph|rWQeP_`H0tJHRqQm>Tb&wJ#>>5fxq#=b?(4#RyXV-~eiBJLKEmT<<Knye4S+ z-nKEH4B2=NV{Z|3wv@Bg-NbdPQnkHzIunyzXN8m#O2Af`<>W@Og-+k*ci=EV$v05v z>8Q>!ggABSsq1^9LFws#gToC|iT!m-BkSjWBPcOe?<;Lx6PXEaz$;a^Vx7I6wH&#v zK44t$6qsWsCo$+gH)vO{Ex&jd{wW4)laCf~4yaDz8`9>RIlJP@aZT(D;*J)V*M^i( za`<$J|LX;*BhEVjn&?+ki;BS?YHjPSq@CTiy{}5UgNw*EEz46%ubZYb-N$9NL)Qj< zhj(|j!&_M+yE0jiu!8Fk_CLiTUcaWjEeeWvcenz$oS+-ei8iIu1DRR)(7gixE=At( zTM<LkBx@kEdb8Y1NKL_gYI`@2{GsrRm$Yq`zur=jlzV{$t`^wb?iIg%A7mXuzf5@^ z{-!n|6lTz1cPzY)wl-d<5mfLzt{V^)1tWEuyOoDe0)~uSinYPc2xTGFhC=a6ZwT<& zDNB&tn|`w6+&UgFp{ZbyswyYPCn<7D$V}l8;@HQ46I{nk6{ris$_`iVojBai|Jpl4 z^G)r76@*K?=<jIYDSS#Q@($C16aC#jmt2Z5EvPuRZ39=~<Jg(ltNc<_ejLQ0e_>rH zZ_Z>{Z2M5JJOFA&g@;a@g$-TpeB+dHNyijRVkG&a9+(!g0#jPo!xp_R3AH!_TuDu* zVFz7O-bW|gaAnl62Ea#>w2^?H1^(6jnpCxWmVSpLH}8SF-$IqsGW{2_<^{3R=J1ZL z_3^+u2=4s`Fug3NE|oL1t)ac;+v@ny(AUewLuZ)cBy_cOac^ydxs`PE;+X$6kba<r zLmrEP0=aJ1?AKSA-E~d0vKen$65p~3h*9=^Ihg!aoG~a%9lZGMElH&7nB&`abK!+x zR)T7q|Dt}i<H~tU$d2$kSgd3D8BNZnaFsM9i&#ea1fE#|LVFdA8N62@dzbAU2o7nv zyW2?g3bcW*+-0Mea<&W0DCcb^R#*!*N%8#_ll*5;c6Lvkph8PyfqYeX?-vUd=S3zI z)5C`<C?z?*rTsnx&Bc1?d1SU(Q#EMQ^DO*c?%6xS_6_>n;xkKIu`G-0fy!%_(%R4Z zY=*jQ*C4}{7_$n%z@wiBE#IzNuSR?+pes)8$lz+MYfWmcac_gpOu7}*EV5L%KttR% znF0h$%&)u?gawPb^MXnK)?C8x>dz_%#-0Q3Rsa%iIt?h4__g_IFkxE~PnBer3$a_E zaud<G#wCrJKafjG)vz^LST7l|UC;pBLU)*dEp@XF*r%oF12I8-K<9{pX@h?TT9<lk z&J?1ine?RLYOF>kx2WdSL+uX!-p@Z11ujdZTJB9pDJDy+p1uGOb3_ggjda}Vw$OIo zE-tOriMe_Y!u_$)!v107z1P-R{m1@AicRB8a0cZ2oowVipr-O~!UtBUpjkucJy4>G zx749uJyuRO5|S3-o!O7Co7R+2%s~3i+woA{r7U19#c6QuVr+!w?%x|MUoQ68V7F0% zYGBjfe+7D})e$S_WhWFE_0(_wLYv{VjRbWJ-3;A$+j$x&qs|t0NOBaH+vang*0t`X zV}2h{!ddHgt%u8_VE&G%3fY}g7@sT^gs+1*S}V&hTdUUaV0A9v46nV?xcQdQ|8=mU zx65;J`ILdWR%g(dji7QOqOWXABYlKrvnTt<cdUFiyK(S5N_V5D?UPOG=yMNmO(&4O z*bfzST^4qKdQ}aAw7rpA@a&*QTGJWp_(_B2#OTnGo6(`_`^=>-gAIhOeWC_K=Z<Wj zqbD!md71j~>=OM&<4}2873}3Kp#Oz#@)V;hTJ}HfV|*l}!KZLd!{RTd4DN2b9_bga zGJLb)5$uhz%ips{QiS)+KNH+rW88lj&)UrRXiohq`dI&{G`L)CwqCk>VcxFUbyfL| z*9U}cZzQAw+dL99opOPOOC<+7MHNF^;T9PI)pjF6XS%I)N5X~u@Bj)T3(S(4EjEoz ze00uO!U5*<6uOyZwx`Qnw+@@*3`9X)Qoj%7w3?yB>m29WH08SFQ19L{DyK8eB+Fj} z0OW>=c}X5nwUSF7Vrdv~tx8LrK?rR>zqZNalPlu&pZUS`9U%4Ot~ze#3-9oxuL;Qx z@3lVp(Toj54gUekFC*4)2(MFNj*R-0)oAk$umYd|O{$Ni{`NoZ9p^UOZ$xKzyotMi z?`vk<2i2b{szz6$I+lN5%T#%E>B})A5lokbQ9^7Mv~@%1-Ig5Bh0gou-Y>iOsvNSS z>oJ@dFICDUH530mpIh%8cHh+`>|Ee+GErWB<AOOq=sk4XVcrHx)J;nAeR~-8-{vyZ zOa$%M@(DDb?=uMMWCUCb5&GHs_AvS#&>+NYVC^(eD8bSI!Rp^kbu+fRNXhY}2k_PJ zPrC6n=^LUG1TnFL?guQ%Y%S%C{z!yjp}F)NmJU7EbW!`t`@yobTz`3Q5vR6)Aeu!# zMb0EHsUt+}67+Blj(^VPFQ(oKaB;a;1HCA_hQ`nOjObT!+nml<GR+0kNA|^%<}z3p z<h&$j{)Wi!tD|*&w&me!bUCz2CqpNxM^j<*g0XJqi`GJ_&kT_N{^Q2+W4pNu0zaPz zE<iUhF=5-25qHD?0?cQ8#W3Rx3AUEIZ8AA+;hmT}mQIEPDN%V{KI+O<)5^LdKdP%* zW5XO)9};RAiixff4+CzO+{o@ZN=d;r2YL30@c1)Dg(uV}e^yvsL3#8?f8N$Pi-TR! z1B}Fo;uZL2bLGU<+SS}7{OPFr3;4aKx1N({3sIt-z%WtKU=~zQ$=(PZRPUD{;%KPB zNsXYQpr!K8D6H>H!)ux_)(TlZ#}9xss;WcY1ex;kO*+>0wKh5*-;Eq`@vx-;9y81_ zSl{H-&eBA-nk4RrwKy&aMS7a0HVya?lOSU>-l5BEO)2v>aMn4+eCR@>Sx9TGMmAk! zT|&|B!?+sxXHh9Y)l|9JZ$emxu@CU*@Hrl*@g~M1IM;pdMY%{{?4Kr<24FeikotPd zKX0(~@tZ%lbi!X5&#dYbo{3Z?Bw4PidW$|AYX95jtFtWF*|I%%GdR_mC8A%=C@kBF zbry@Xi4gKffdb!3w~8lT&F51Ka@jC)vXZvZm(ylK;hIdyeqnrG>AD@i?@lO+Ax|uM zQ~SXY;hG|{8?vZqv+PKHC0L){ydC9F=5I=(I+EAJfYwh?<Dj<XN&i2m?gQ!rVOiLq z&}aK?(p4x)V#e|VKNCXQ1#1m2{eBOHm8LI%M2*cb9D)2q#!AQ4KH-HMXrSmoLa}Y< zSMDVgE>KG>{z`7|^e5?+NV-RBTyszJ!pR+3I0P=fd9HJ*IY5AVMaS6O-U^KV_5dB$ z{D3b%YeYRT9lP^6nPC=E0Lv(y6w})RY(l2X3B3Ga&dR6QBpc~uVWBQnhgXV9ztq!Y z9Qtf~;<ev(?vEO0gne-e&~tsI<)n)p|8|d7qZ3>8eifC><)2vhxKk6xrPe(9<ILnx zh-sQ_XWyPV*4Xm|&=mE=Wxy^Hn_Vvxcw5*N1nGQ~J#g3E?#V4&6yx`uELxBkz37|0 z-h#P!N|mt}kNX6&!Myv*#o~9l-sj3{BZAV<*q8eP&jPwCtw(~am=5Adiec;iOC4-e zz$(k{ZOWxw`bbFIY&1iMm}MKhApIX~eSa95R>BB_oFE_X9A4>$HjbGTRD^W%Pe1X5 zoUr3b|AV(*aio1u5Bzi6f>gta@dfY63F_Eo)Uuv|$1`(Hpb`TSee*=MWqZ<=hh*mQ zp?vGT6wA#`nPbm3M7WL3vjS9)y>SY;h~Hm$?y~co-c@jdswyw2aPeUPu*jB&W9K!P zQmtFBmFao?OT)r+52=3&!4{qTpdn)3l`CR5cNG3TE@5eEZ`r#@q*3tHl=seNpi@mC zMLR|7ShiN+U8w6BT#==G<6wrCsTZ~=GW3v$fqMU9hJ|!p>();biC|#2ibVHUI2I+! zt{A3qdt<V*;?XzBd5&L#hl*GgdVZ^6>NMcfv`P@?-tA)<?^x&Tb4Njvpx%h|4YBlQ zPscueaG8EeZ=1Q@S(ru>qx($7VKeM|-4Xv$?K$pL8y(c}&T*ehCnN7<my-@JzuZr> z&M3GH8pjMalq!<s7tC3az|K=vcRgazdFNMjH2q64T_Kqv@6z&cQ04&YjzRabQRi_f zK`ADUHF1p>zc>`CB0e?Mx^uWlE(j<$`9186ptI8TY-!z}SbO(^Nl=|2id|%PAcA<S zIc%}#>U<U$cfH&rdmss=f%{$mI{a-AHjtaI&aqYc#yh{K;&q_=kt@VM-^Nf+di{d- z&3@58H3wg{kSisn?PWYD@tw&nIU}4cfn2RK<}-Y3^0xStNL5R^=9t2yDPD7lAMOkY z>&kE^#I8kX_nl_H?EcVfCxaIo5<QBE1bZ8KYNCmY4p5E@C^5TD>+ps@MPD;pxoigI z!Qw%xBQN`!5I*+*Aj}OIbA0Q`$Q@f`bwkHR??DHG7;c%J-ukEYClIiogzeVjnotdt zz;eLf1_l<qOhBKunVr}!pepzYRysY`Ny=#CMw>fHML*+iD2n{{bnom5)#VH3Z3E9P zjY?~sv6l2Y9`;Q(!P)4kE_(i!X|6r2_gRYDNa;+X_a)`v`=9%ZQV%AV>p{>^#up*< z5n4~ZNEaX)%XQL~(yiaLyZ0~uGkI6Li1dL4xe_X}A~q8`Lrx0r&YbZi+rw{41NzU; z(7L#u7c;83*JpeA+SlRh=6M$Rq)A%o7SZNEY;=-xCEFF%|4dvx;pmbx-Me|Lf0%DR zUBRXEOY+pd;kX`hVbAT#t&<K?`Ifhv=KC{Rtt8Sv%V`lf*xyh9^SN(uNCX-oHC<c} z%u=vP*SsXt=hLYL*d9ksR;idBuJ|fR6x}SHUf8rO(#7$ux6<4gXsqV$*U#3;@;)Jo z8RV-MkhG|ium7O)LD6Ybf!A59^OFxmqZ|3QBw$7>qD`Cm{d#}FPoVYgKN%59GAAZb zI^vojVNceYH!?kTt|IDNr5#Q(?sTg6pS4<QzqSn_<@ZeQaUh3ufQ*g*!=bQe*j#q% z+uD6N=KJj@b{OF-a?V>M6NfrjHtpOeV_uSf_gCL-x9}hsHa5B|o`DeDl0F@*b7E;l zGRibg0&mN9WL69rvC>S5+<SFtKCy*l%INv#HsT81D>XQH19@We@Z<=s)js{3Gg`=J zHlWYFM5ZjH7JTH3i<NjZth;QU6_sUEx1_bJuv5Pdw^^2A@0GD2zl@#QGucrW3B!#5 z8wKXH;{R8n*GxfG(>HtM_6tRON7BCe<eS1jbkac`KV<Fs;kuheKOSdp=%s5Cix92* zi!d9t=I5yJ$L972{5XA{?s9qb1`Wz3o=5^X)tHor4aidF0ti~y0Pv7U4}5|FNkC}e zf8pnRVFQu%M1%FvnHVTzj&d`-{&p|`zbic0aboYV1kZ803Zz~GoY(h$DdcevJ?aHA zDeh7QFSbv#iSWK3H$U;BupD9O@p%6)WWw{p#Foo`kcUH$?d7wzqd6mAZ|I@BAag?= z*v#30EVuiG*i6f&a#KlQA%WPXIvJ_`+TXE35kv+jFM4(UEeuaR7VzfA+CBWzD_r>- zg|OQ&$fG$KCXj!mBxuzSj@2#7nuH5oCso?#E4jDdm(g<)>JCU^KehD`kBXOJy51cN zrGCHWPdhV71tL1he@}e-b{T7Ys1w8e=){+d%9`-Vfy@`(8JH@CSyZ{Jr(t)`J?Gi8 zf6sNf^r}F`kqMHTJd#tjDoGLjy9vV=<Gt!9F%|zY;r3`X$;A865Ahc*lVdk}Ck&^6 zvPVbVB>C*d0AsWb-e&qbRK_6RCO~g1j9yr~ESd)m0L`_i8mOa9r9a6bu7DVmIDljw z{}5gO<9}4c%{1z<y!{b_JlvH)(h-AC1z(yk4dR!TvjZgH$=)^%3)8`&?Ww&JQ8_04 zWF0~8RhVUZ+@&Rpp!%>(FzJsgO?#bXz6knzmIF99z^}fZGG0OG7fZ-HA5X5YX}f2U z@U{-jhK3{m@**R~0-M+CTyLGy(Yj<V!_Q?Uvz=%D*BO2z!S-kq$<t?JmwiKG?%aDg zaov^wxt&bD@oj#?re`l)FAMyAG0nP){{+_&F1Sp9tj>{Nb*BSOXY9u6$dya1oUH{{ zRQ2wI@HL%XM=~>!T8i9du-DNC%v>TIuR}c3mt8*uh?uo|@hw_=;tj%)^w(w}>~-Qr z9iB?C5pivO-=JYzb}+*6G&p=hkXD|qW)$8R_SVO9Z(g_Tu%xqp47ku>y0KS#ob1uA zagQA7QDT}V;1MNPmadOurP+i&*>6DZRt#5PPd<6F#WbQ_SzkVZsJ3DMaqD<OxsH~# z|Cl{@X7D2AY+(m6V)(7_n7;wRnTA~9=~BXhJe+64y)T>UI^;pRJa`umq`NwQuClLE zW$-RO<KOtEcv^YIlVXiU{<f~OSyRPGBxd<x4f%}xF3WIw>CVq@T6idujtB^)qcKV) zjdb&qQpL}2Io8Kq(9xENbCf75zL@ke!mFt(QwgN?L67O;jMul<szQmsTU2bGj}wm4 zSptnfvgI1vRH@pJq4C6pPF1Z|qkWpDZ~o%T`M0}&Z74Mo!zl=(k)6@L^TET4Bk5T? z^rQ1MRqR~)URO%s*G}sC(K!%&$eMj`yf#SlM`n6Si|i6Lmo>b&of(OJmfDj&`PeOv zncb9>xjDJ3ZI#yNBf#1K8TfVI`MHHn#6F)g%ton_gEh~Sm0)+dxNA+q@7||9$nlRX z(@ez5;N=+^$rB_gp2V$s!gu1Yz_uC$nH!1-am$49)@+=N8Go7wSLRzKZ_bN%IeK(T zsi6&4kEe2aSVB0ds~XPX4$$!IN9BZ1o15E)=lIrrt@PHnt$Q|Gq#K8!LYk=T<i5vF zydOHj%pp@7+H_m7J-LI^yIt<5>>^c{lCpP4KgW0nG-Q*Uv<LaZx5K#-$@*O(EZ#j~ zWlxdXy9%BpvBR=1MVQuV#PWQEIh}SiYNC(YG)}8%x;=Km$1G){w!Up?J8`l4q42u& z7a!pshfszxPM@}JH}04tc>{MwMJ;v<p!B;fhhY=d`?KpaW$`*4d@gh0Vtnk%?@RjU zIO${2-dh8+n!+R!K6_i$`<dp`TQigGFFhT?1jl;&6A>M@`axeyB;1zq%=n#n!gr5h ze?5P^M25$c*+oIpQn&8>D}xhDmHVJR81n)<D8oa2N(rsMOlSJV)`8|9p>k{MJLxw3 z!D_V1Zxdu*9Pj@<c1d^-$4d29$l1R4GFc#N>6FL6I&{u-7q!i${UXU^i=ALt#&gJ_ zF{K;<?Te{HSDZc-%eCmthcu{my9<N53*&6=tdNIumOlNWJm_p~4z2Zm;-IC}V~bd% zJTG958^<=km+_Y7S+fbZ%kbx$UsAU|kGm_8a<XHMEzM|&c?YZ<K|-w>GM(b>aY6MH ziT*~@hux`kPyjFd)VxemoIkyK@i_q$(TZYKe1olddTN1fBaM3rXhwR^<`xuP2}AG2 zH~6<3r(+KvOzX%>2J3;NI`Z`Og{&R;IVGG5wmLK}&!9M0dIJ_0xf`0*Ti>54vz+7* zCwAV-`MzZ^JAV<iNgPs+!T8M#((wV?yhh-KgUiVSjPX=$e%va-Q=<ZHQCYJxz(cz! z@nW9F5*y9bSDJnBrPwM6S55tbNE5<n>}1QXY|GqPzRIBSwzkcEx1aK)jeZPe<b%Vu zqXZjrMO<%{S=f6fMon}Z-PA$6wf+b1nBy8pA62ya{;75HLV#xM?lVbtoUkNg11Q|f zW^|XYI?DgVA=Zq0IuWa7C$l(qK+`3w90pK}-hSll*1N@1?7N$%p&J}Mo9fU?adhQy zNZHX<J>g8`L#YpX9&*fjc4vpv2^I!T|3z?vkp~&L=KWFWp%47-VO?U`gt2Z72+bv! zWNgF+N3QSZWJ{{!#tOsly6EN&koKxCmZ#sL9Bp~fotq`w=k^-c94*Rs%c(Kc+EyF) zlYS3O;|)WMR-U0F7n1d>B6e)o5#G0RzH^d5CgFxp5L-HvZEJO7NB5Ms)80#ecjOs3 z+55e9YwR(qBQ0)oJ2fNRW2C2hj5EzpKLG4|qLfHHGrqbLO^#kWIv33g_~#N{u?_bs zp$+P-QV8GUerkTYT*XEoRE7c;)HjDiWj6gSFMojXsY@+KeSu0gk)8xN>`U-47jN@h zM@O6~gGlDZ$k1sCZl3JO4gPVZUxFI|WJ03P9M2#fhH^F=B-&BQc=ka9UVdv)rrjzl z*Z}vp@S9o=ZH`+u`m-tYzP$C8<^g~xET!#@mucMnb}YRmXv<GSyIr5Pg=|&=YG1IZ zZ2KjukDxAe{Bp$Kx_aLUn}uu1U2geVIqI@fw#Cd5UiuZcSY1-Q@ME72?g7EzpxZGy zRUx5R0nO>2SE(fZ9i1H3Hi03JyF#d?Jel#)jfmVhKqEWBL6bQ(!Y@5Ftvl57BK$#B z=^aG-Zn*$i>q*<i>`o1Rb0{{J$NaS|BFG`5Pw159gXYRBzq|=E4d?^l^cg!-lH>oW zoUn}qJ|3$N#Nu?;kM9qWw{BnTSlp8UJ7b*v)IST4(fQGWiz~m+3#5aTM>xZ@EoYY# zgS;4YAEUZ~uA}R+z!kTAG!LfjpIB0Pdck-L-#F~fDBoX*N1u+uZ`kJS;d`+DDoE7u z`}6Wk5&6}5!(mm3d6mw~rfBIxVIV@CeSNWNeXNL$>|1{%p4g+i;J=i7JZ}Hl(yM`7 zW(qE%B_ZYucs9q(mc5V?u#;+Iz99VL9qJ&4y<yw~9DE9rvZV)IFb)dji|aup2CA<2 z!4GOe6~;aidB^%i1%PeBh=69f`pMw$njVt=%Il>;+llPKt;n(Shdq8Y$xMHn+pE3W z#Vf99Z@cizk4wbE<obs#6B$$Gm{)CQZ8A8{I6@r4PBeZ?50ITX|J;#J$&bGZxAUv< z@&5J>*n$7eqzYuG(Epy6r}k;>Cfd{RK`Bq@kD9k#g3-WJwqg;E->q0=&ia6c7T~kQ zip9GAnYiunCY&`x+7NuStD$Mir5N|&g(5d<?!NtKG5tF9&E63b7r6oUYdD&G`|-56 zre|$<?em<7w)<J};qp11u6!qkl4}gE%LGvI_kTtoC#aCZZY^oh08nc~4mk+hm70V5 zyq?%rI|RZsIk(9=^Sx-g_S4bJrd#lP9Ice8w3_!MP+`^GzNMyhRe2(&d$})cv#KVV zJQgznW@a%JFt@VlQ?**2wdNa}($Wez8H90ToZ>B~b5?03#$VMxsfCT+fTkQ<96cPk z*+QH!bYdHZu0hOxL$&*3o5dq5v3m(lVb~bh4^8x*X-?Q&dL(+k++ee|w~pw+zk3n# zapC1lKD`efxJC4c^f^y2Gk6w!><85h`o!Z_ZX!oQf$C%MkgB!E6RF0uQ$KQ+Q2TiW zs2{I*IGEK@U+_`_I23J5)ghP`d2)u%F}eS>Jj`={JQ==RRmLfRd8|*9x#Tpo^g>&@ zP!HE$j3ApA_6a;+D$%{A^`*3aG!njM9C#VszEcUo&5q!|Ik!<O;E}#<(Q@<rxw@hI zJ?V>Y%OmEOxCjR(FJ2oiMexHyPc#Ntw_N)DlUr|n;g@@cwgq&CB=Sp6CtN~bw%9Qz z0Kj1;#eAdI2~bndt#2yVi0PlA^|b}Ig&zDanmY@gfXn6i$o<anIXp47>Gz7-J-heA zXUdBo%-QE6ac^Cm{&G7lJ%+<$<RrEb&pTGXHdd|{_ROifaOSpv*3kC!?cEKd93T0J z>CUwkNgguH!L;hGa0iWq`SZdW?3bdyf9R3exk?4R2#VxSQH)mX5$F9!e`)CoUJi}e z{|;_A++OEWszCYhunFpYfwhKqcqdKIa}8bd$o<x{rvT7|vQm@5Bz}Ht<--RexW}P^ zMcz*g#%K@BXfQ3ki@hd_g8iD|hm>=Dvap%Wr0<Pedf*-&$8RM_rPa(Ba_kr_fBe6D z>;*VvJIa(VcUBxD>ztKD40$8Tn;N;Ps5o7dj&p52{}xFv#^0>HIsKF&mDlWa8p<N{ zY~F%aXL_jY&Y&-`CxzbFvh#Z2b{k#DgE$`^O}1bqd!AH^JGNa8F(QT&m2a48JN0UN zAa~biKmGfI_u*%4g4Z!_l!<01`X>-(ivCEDX=H6r_54zuswLn<n+x(#ADpzTee93# zaSL^%J?5}W$51(0KaG2UOqxqi3}U&=<Ya6QikB^I+uL+qZ|rBrrmen{O3(pTyW^#U zKfc;7bK5MGSe8isA*J4I5=y$ylgD}$9`qVHUq2Rya#O%^v!AxufXe5l%7mZ$Bv{{e zYW7j2cRfPC*dFPT)GGdeF0E^9k!fRow#6ZWj>HKy5V$jGaA_H4q<wcNi{EuC?K-%v ze;j|&&&=NC2T?3)_-EW_CkaD$*Q^uRk6|{5P33;}jSc>VzFE)vvjhWgjUf3;HaJm# zpXq=Q!)2t7?<6ed_vsW61LG6%@K(fcPDoHad(BJ#1T8VbUmV&$KiSOCuI8I;6~|o< zM&(9Gq?Yp<CCeoTON7d{Se#jJn)L`b4B@hW=P}jSGy0o<YtIT_75*BNH1|%ujrU^s zv`&h{v8;|;i&!8^mur27eL?%XcXB{b7tW0~A$k)c>2{SE@25q?3c#1r^~v{pZb(g9 z>Idi=f+A~|zFCXsgov&q0|>8~laZRTIUPEAp*@<fYS1r-Hf5XO<LORK@F!&>l?E`b zsG%LxM$UYr2$z~qJR~}Pnw35dXbF6gW9$EW-de#C+wGK9#KTLF$Q{`sPp^ZUW?C)T z@ad*=kHd4RqI?(G!vJK*SB7ii3L}t7KUF>|&`FHgOx}yl#>&Db4AzimS*_qz$3xn= zy*jGO&byZBp{jc(PMhr(Ej{^71JkLPugPPFh7Rw~@Z1;oP?VS6PtnUZp8xJa&`Dv3 z@=pE~KoA#>N~b!cd1sZq-(39%{v_%6`mt)ADTT2sjvfPuR$hrYj|<7R3@o0i7qEQS znDYu8eXjAdhVoW!{~+_(&TrrxLY8%5-4W0BZ<;Kpjuok&?+y7VSj4iApWk`zIQ<M& z?6W-sz6V+yJ04NX7O7pO|9o7oWv}H4<^pb=Gbf#I(`S%aDY@Ry@%|EFB4@C3|1^qH zvN($)^-Xfjf*(FwCOv1&zqPsz2IXt_YQ{lM?GFLH?mYxEU)=?ma=Q+K{+T`Rvvap+ z(|i4g$L_sxEj}D?*-Ye%8ROrC77IhIdu#6DL4KbN?Daue-eD>PH^XcdG7j}++49MQ zW%J>)-lZE>%dt1HUy9ck8yQ3cpZkdQ^_kIs=c>fDrNyVdv7wAzHe&Z%w1GnH@|2}# zl|Kil<7Mp=oAx_YEbpl$odKz9yFouoYBhA0!VIPLjAO|_Il}v<AjjB)pj3#iT`b>L z#81xYryFMDiT$~H85x`+!QUxbhXE*4gK(5o!hBjNH4msHN#CS_XP+}I+$eDOFry&x z`OBoh39;_y7g6^5*6DYn6)O|F)PI6QxA$5?CfLU@4aNGdyDv6G*pcoJljd{_b{fuU zX2La|NTIhaqz&de+KTm85yJgtd`XYgxs|yi{lW@$xmTxpDwPJYPJ28y=a6G=YiSFF zQWaSC%5OD_E=N?iC%3Eg&W&O#iPMQ|`5_&OL2RdqiLbmav=gn`h=l_1?oRgp!*3cu zp(bBnAXTLkH#s2~P<nU(#_PUoT$ZfgFTc#j;_HSD<dqvVBe15{MK|Ga(7Yq$zTEGa zQ(LdCcfT(E8vjIO)Wo=<DTT=^FDFqsv<LB%MRHy?0`!Pp7W1VBsrk;nDPloTIAo4T zT5l$`h9g`T1`3?ryqLZyiHF_KVKaLCN450!&;EmL(YMPK-15~Oqn*u29{U(7_|;D8 zQt~IaiO|oERJd1APBp8`-qz)Hu%CV|%F1OUvDxLfHEr?!|MSPzy^C1KQV9!n=l_a+ z?=P3^Ox(8W<XGyGfxN_y3?DNFpB%o=O(L!?D*4Jst#B1b%~zM4?6eV=fF{|wdKWG1 z*FD>f=y#Z{Q0eq_82kX`+VI<O{Lomw|6wLks93UQ^_F#GQ-4=yg_Q0ohl&_uJ~66s z#z1xYSC0ALVjiVEBY&?0RqguinZN0yvfWWW42)h5Y{`M6Uwc=I!e-%-C7UT9(KyL6 z=GBUsMtk0qs>uK@t|9kmFydQJEz#aL>Dxp$@5Dd)S&gU&$x~q+q~j$u7$pm&Lvf`` z^xFoMdRu6Umo4_L9#l+Nk0L?!|Gmy;HPm;$fKX)oJY;bEWrJ3o|Bjr%P;zkB0{?2+ zH3FhK+m$=*&PpraT6NF2UX(fM_`6Ki>GBKsIZ9q-$dCK_@9WK(?cl}QPl*w(IK-Bg z(>phPf;L|{XnR-T;|}_N4<w@}7|ca|-+se+H%X@d19xhOMCW4(+S=k+lYb=E4M{WZ zaf`s94ng0Z?SA>(t1~>*C`&<mHDbtZItV@I6sz4vKfkHhk=?xUarcK$!-4Hz&7lz! z$Qh~&^ar`%K#p+0N^bm+{$ldN?1$4>9bU59+yf(Wt)q+X=BAHsxt>qiU?ed2O3Ux2 zCJjUwAwc4;me2U+F`mlBl2P-MHyoSyvZh4&%6KiAdnw?Fu+zyl^oP8Kh7xX@dTnGj zqXgp}xG9w%T6-=cQU%(+7d6&a|N9N!A;T@};(d3?g)-cE19vZ>n5{7d1KoLZ*LFtg z7|%$G)=tyj_K6nyJ&+fj|GEDf2)P;OQ*FH$_%{A0IL-3E%l2m)pANn+zN^pCr`CJi zk>7jV_liX8=e;gtFxL#1Dn<m1ZRxo|Jm;$&^)q%jvzUV@!|A%xWl_UOU|;dF;*^a+ zMV#@`1(B=`lA>O3wbcDSQXiM!dH>Yzivb&HDM7mbjOy+$h{S<-xZv*OG;<hPuLOpZ zu!nb^;UO3>3>(3Bb}3OX1zc79GS#DdxnJ$pg_GLfj={}rpbw78A}mo|{$<@!SKiZJ zZt75_mU@QyVAh&Mx(nnnj#csRq1^vJhmuW&Ql!SVk*4!-zNZ_vKQMEMn5yIfQKMz6 z&+7X(v*RWszkt(%qyiB98So4u_kof!np0yaAnhR37f;(gPj<;yrEG-7*=dXJX*}DR z`lbX3=slZ)(2A_hSA9REsogz>Z+sGrTc-OOhm7<~5)yl{#uEC;9<_%iW>&ryD4ndf zA@yBKD{kf-ZIVyxyi34Op_$(qD12Z^Ysv=QzM;8R3HRUMWVm50o)XB7=%|Qz+;}+4 za*TE>yAHX#<_hM(?QPp2AFBUWw^sN@G5#^iR3^E`=)+G*5sI1MhGJ$weYzx`h6vt$ z_$^Q_yJE=*{UDQm4#}(gS}MCPddbQ0uhEnrF{M|DU+cTG%dX^X#~}Amf3EFnDmnyy z4};Ju#!Mi#k-w+gG|_Re;TtimdVNVF(@;OX+sPUIE7b~dez-iBnK9k&nd0U_@wLfM z#%vribNvcc>L55+jROBE3c2P|%`W9k(X{3Vy{70l*dyUZUlemux;qt`pvO~v{xG%v zOZ$ch++pe@uBcYyjCS?E(*l7YbXCi9+}EK+wmZ-Dkj^phq;^raH(T%Ka-!|+LzA@I za^*gHUi(=2?i;EAX}}mjoGkvH6+2%E-Eo)<NwApKPPA<hPl|7@2uA;sRoQK1x`VA} zZ!669T{~zpNaWxi=%MDoZie4_ygy=ltdfZ$(W%$61D#%WFNM7MGpzFZCT6!8{xr`L z#1KQe#|D$puqwaT>9Y%$0**aFUVLj9I1&tB8^tu{G-6fjw=b+qoWeEpFNlMg2Ry4C zX@Iy#yMP{??O`p7PaPPAkFgRs)_nNibiJ3!ZLXhOmSu;km5*xt<5%VJ;yQB04)=kn zB}F);g=H-8ihGN#9%#QY_$%~??@`kYP>yTCP>V)v{J{}cC!1Qa*a4o6OOM=|yxbpX z4-VHZS3fupo&{R*`2K>d=M^hE9h|gj+URLv9|%LgH_izg_=#ycWxp(}y!iaRw?R?w z=9hBI@JePK-`8~x>xmQmU)`Ke`}i1~`_}(~bI88^B}0ARpKmH=9`@JwtN!b+1lQyl zZPmS-E1&Ti9XQ+t>2}hO$CK|RQhg%OQfj7cyP`mYlZ7-*%hB1z!+YL*OC~Ek6gx4K zzw>e@FpA2xZR1Gz!p01XXaZkngeU%wA`q+HUThr^InXcuu-@jyeqn&M6SVqFR6@;b z)}`%5b3s_r^VgT1t-IUnE$?N1y!ahUxSWRDkpVfFnNEWW;WrbSbB(8)4MWxk!%AW0 zNbD9ODp!QbTF1i=Vs0ha!O0*u$>RAt)|Gx#$f&-KiqECD&%e(f(C!5iZc%@S4Fslz zUXC+$u+eAz9n4WYUHph@HCcmXY!A=`3wEW_KMnuS@JDTE_Si*-MUe6D4RwWo>GIML zZm|YNV-aRG25C~gm9o7*JS=K$YRD<r*AtqsW^M48`}`EkXE&&4bDBt5k>E-6hhi^I zN7@PcO6OPCk@hCbXP8KDzT$Bb<ZZHP#KVKbeDlY{PtKDrr5i~kaMD78go^qc3N(w# zgmZE4P$(62jXv#OR_za6(l#j~XbSAP$DWoxsAvf5G-5VWo_K*@{imy=4}yW`RBKx? zIi>9M_u^+B^P3%O{k5E}fwS#y@Ue3I0CEnjpC_UP>K>ND&Og;W)lP+EUen4nH-#ec z>r*7DQwJC{pW|`IV>V2rfnOLeK^+@9*3Chs%X)gdNj%oS%{N9jblj)Q%!WQdU#QV+ zpSX~lQ%MtnzK3)M3GD6Tau4dVFJ6MIW$doz1xRbk28>I{HhgaM5C-#-{l>M{f%|Sm zu}K*x>|YLU9gE8SqOW%@4T$m0j<R=ZM>o!64xtYDLzG_tMkk#eo8Ia=;oXE52*>`| zxrO4(flJf<Ittx+Kmo~zsriFRCDe4-5%THMtFC)%_y3x$W$$Cxr{RRX(el~1HX`h+ zAN%4~deE<Ot)u_nE9;^UJNKC^q^|c1OuufGV13l>Os5P%8Q*s*n{-Hiv%f8XtMz`M zy-nsy0P{-jLWAtQWdKv+G}gpAn&h%!Q?#}HfQ5U-P6ViIZGka6_XrBj5>beUBUbM+ z&+E79+>*6!hoM49l~UH@Q!l%XsqpXw$ZwNa=zvCj(vP=<iHL!7<yG1OovJV`C+}A^ z01WfQ19beuhR`}OiHB0`VdSJiDa?ECy)lt1yl=M8zo0VTpylp6&dsicFgNoIYNbl( z*;$P^+EZ~|)9t_O9}}YoLi5Xu`uFER{Mn%Ojgvi_v+GSI!Ah5sN(>WcTI8kwd&#rs zomLT89O6+WH4)h>G{v*I7VPXF9XS!C+YKUibL<#VYgH@CEhU0K1{q4Fr1Mhp#Iskp zN#96}hx#rhiw8P*99!Bl#*|P;d4jh;o!Qqcb}1Q2T-Oh4O`YK}dg0IA940U?8%X;S zQBS)N7kpjs_u}seQSBQu^VRnoU~jeU^tX4<xGbek4nke`l$d1X1?p@8Y`x9Z>3Hif zn<ZE5e+a`h)^eZhsTtf}OO#Luj-Sk0dquYJhcLzAhdmz7ERX@<#CJW9WNIpj9xfVk zo`7ub6Rz-_k9e+(CK`R>F|2*}T1p@W?r~RgYeuX}_+#VwMcd+?hX>ap1HiEL1T8V? z$Xbiu{aP-DG{ob%_?W4FZ}l?kP{NI@*z)p=*{E90-aBD^6Ycg|VF61K@it~9k?Mu? z8P4AN7J7(tFd&jI|Bpy+*z>Qb>1(eOG~*faGo`XcTYW4+bAXW6Q{3}8xblkMi3@HE zg06+)rRU#TF;_e+?&Cg!Z=)=AO*M!{%`EX4>cH7V|F)*qt{1#iHQ$R`JN_UEO6pwh zZ0vY0_0zy?B1gdLt-#5t&FLp!#X)Hkc!M;{v=kaMt-A=3h0FPlnhQhmbT2<O&Or>7 z;r;bjiVCpNyy6t8i6$&(Y|oy!57Fv}uBSYFzk5_xR?_)RlIGaWiIM)Kn1GdJaxkyg zg6#-V>YoveM6oW8=a{**!aS}k`rz<dojdwfO?iA|(+uk*t&W+AqOVaK-cJ6t){sPg zscn8)@}pfN{W^mV^J<IU60n`;OZsMD<hq&`(AZMlMefqjKh?eE2cTs!6IbpB4uPtr zbGd&7!<pB8XnflZnp{oIh5?=-=QHe2`|N5YXLU~@cI3);C0Zjgw1$`|YFnccTIsfl z6V2q&VoI_Z?rsr&px#wbN`CoZ+J}~r{vG2!jk&TUX0FAz=DL&GJuJ{&(x`iDEU<*L zl2Xc7&07|CiIjs2Ng!kATEz@3PIADLcbk4{c+2LB>G~wto<mm*DW(<oZXJS!R_cFg zI$s&FLNM+Zep>0b{9*Dl^2oxlhd!ppxh<ODa&YXwO$a1#9>mA2`iu<dJ$F!8SY>lf zeLBm?Bs0Y=>t%w*Of|=0vY?C8d)nBz?T<0L^#6~oHxElH{r|>moHDbtvdPQ^ofcYD zD$89+t*p_+#wK%v8Z#?b+;PE5&CIndmlVmgv@s?39db7}Oj8sW+&~dgK|uk5-*G;l z@AtWW&-MI+mw$OY=jPn+*Lv>{pW3q^+fKUi$|h6=MuTdw@~;SIX_@ukwZp%_e~;#F zsD&NwV|qW~VyeGyNK5Y8W7aH!j5)T1EIQ)v83nJAcJ^toGohj1DbU>3<Zql^Qn9{& znQo3r2P4sfvcLV6*ZUPvErB=B8_=A-jN$s&)Zo^Bi)asWN`-H>I2*M;BOrpxVcIWQ z0}1~MbwOe6OA5`47nNBmjc)AfJ=0j#RwIQx1vESRMZT>Ho}BLLY+E1Lij}R%w4RIh zcf0Po5L-s>%mPg>R=~%JR3U3EF<O9Lo-zZcppM;%*$c>NT%FtcZS>OiX}UDt=gHcn zWsS-2+P6}R&-R|gIpv)BHSEsOiBI5TG*jai<$El5c!yeC8L9JHZSbe8BE^WIvP$6P zchF%y?(hHTB$kBP9}04d1k+vYcayut3c>@R>zhe)>hW{az}_N{72_K(_Iu;nsTtNQ zx@t2gQG1;dN$-n;jRT27KxaN<bZl+ai*RZq6f^&7z}s~Hx&_$MzgDj8@dUPP+{mEW zAu^UTPeKn?O`n~~sd)MsV*TZcyUxw*RYK_d-f=<FKb>I;3;(m94eo}yQyt26`^NO( z{r*mc7t@EUbbGW8W>@LHEn?y-bZG<Ftj`VoMLi?1b0PVCjgARajfJi&Q;OeKrdkeW z3BVipqM@7`ZM>gVJvz&fYkr3x-y9#a(C7f`I9ep#_nYEEDD#aq^EjN!GNnE^E;i{u zLZAHI=QhA^igj=`nt*;@hcpeztQw&qcV;$B_>6!3S5JANA9WKT(u0Widi#7g^pEWM zsu-OWr{eQmDQlO?q*}<?>84X_k^U#MUC!RbGH%UU6{JO;JuYnv3LV~Vpd{$1@yWd} z&}XV#l0>ZBpsp=pY&TEaM1VZHP2*b$(KTW{Rmloy3DJ?M&>N;#%X@@tI~EKEt#m<? zA_rc1OZ3_)+ZofrC2gAS^1ao9;xpJ3wfqJ7Nd?T0qoNjTy*97~`4K^pE#XEq6#8ji zsAR_T8vhr2VLohJ#E*=(l#ZzVd|{-sas<|BV7eIF8ySo%+TqIh1Zhd**?L<0@61aJ zUm829n%Bthvrj>|Qf|?$P<~6MdmXjJ<@qeH{-jug>`-~dx{7VmSDBarHc32E8b)1b zEouwnUDzJtJghI8?#TfYJ|Cru6BW%Ebi?uRP)*gbZHB?R{3FXg((|X8A(s(>S@-dS z8vUKP)vTG#3sWtCcAofu#wx(BFfLJVkqv9IpPD^PNR7dNryQ#M)I{QE#iS|{H^`7u z-S^>Y7N#a)Z9T_&I~Du2<b$FqEy$)owV54LNC$1n-z!9M#(13RjAF=6(~whlohBDq z_R;*WJL%?Oy|5Qm4`dF$tGYPk+T+)6Xv!S2_bO@$9h$V-;d05=<*W9rX^823WRVDO zBz~}7bl-$}*Sg!qa9_l;nmqU{NxvH{S3xyQRzg;J!@tem^z7!f4wMAit-@BFCx=>> zwsDysRw6c5T4Hvx%_Kci=hk_M)jw*jY5laGV84(m{lcE<B1`mi(J8_$>%}_x&2QMH zoF9j^BmW(ms;`XvyT#qF_dDcUaQFeAbC{+gYpvEip3rH3)ej2^&p%&cEzK{+g9Is& z#W(|e|M;!G6taHr<Dh2j^!<KN(36zCbB$^hZY*;j7f>1{$^VVt%QN84Xck%{1HEvN z*9Q;LdV3>$$^)<4#T4Y#3O*CxXJKgXokadyc;VtV*cfNuZjz7u%0B9FO|@(%`#eHQ zwRWMy?F=LM+rIX?UWe0}f`y>lKc(kYat10G-!sFv(b`;`oaY`iMU6Ss@3k<k=RD~F zE@388^v4@?#<os|?BHKs5$$g`G~j5JM-l~3{KwMIcntZc7um+zj=v~B?<Ox>mulEq z@mW*sIqZ}2O*gta_UJ|w=oqvuKf_MEr$J?H^@A<AQRjCkvqu*|Mc2XEq_S<LC71aP z&lR89YQKc74<Aj6V>5yvZv1Un_m(@Mhh7nX)JM_(sd1Nkr@%T09>ksR$|vZ$dxxtQ zU@&hm3wR6(bvUh5TBfaNxee?!#v8Y)0%xYs%^LbEwzK#A)aayd;*PKVBUP*_KSbW| zjelY&_-u`GT}Z<uzbAPFiS&wl@f<@iefXV@#^-p<s_ff=0PN^@4}~FCO|OTJNdZY< ziFC@o&_EdmWH}UysXq?<4A{|(O*t`}<yW9z64i)nGX|TPBp$iH5`D}~{b@i*LIB^& z9bZ`|H+%9~JtKV{IGsjq=H1MfiRVU7uh_?3sjk?kytE6|h44gLMk;r1fRPR(vsjTf zoL_(Q+4r<lo#aw@(i6@|B{LR|`91)nvHv)-faCpq^{EWlVC$sCtv7P~<ze*&%~#Os z6ZTR~3om8eEo$q{_*E&Nk;*ju=mB7LeT)DO`x3y(!Muc3`qcf`Jjz7q8KKyF#oiZt zFUc(HF{}zQV*Yy)_9&y%^08abm2}t3;}y43)w%;8WcYt57XQ>kbJ4zk8jn*(zD}Lk z4jWb_oYvl^HhDEYEFL!KQa9$Fx;}yv^>OATn=VPKkF_dxtPR>CjVNaTknO!-&R0hg z3oTYC0ZTiU=+WxkY0nhe-1l%DPm&s<aYxdYcI2>s+;9N<o!>G4i|XH)2jgW?h=3D3 z=g8hK%y)tjSu>HI+)Rxf(--n1c#YT>JgXe)ZuU+gr$kqefp=Z7)SD|VN$nis-mSdu zL<(Rq+XaS~iSBsrtDuWMjVaI9I|mzwch!0A5y11}^a7KY2n{7EGKLK+xuY>lb*a3e z^FmW(1HZ}VgL|d!>evp}^%MiSnb9rv6=gQQ^(A(jJv@8(T$|Ue!(LY%F>T1hzPrz_ z<r&xBOLg}%JXUokl47(Ra&KXwO6)!m?0bIJoaL=Ad*bA|@9rZ$H+{Sey8Yy<mUGJc zpw{H<<I^^(=rW9Tc`XlGvP}L{sbS%pJ*!yw9=Y&xz<%A*FsIIdyTzdxmp9pIKwk=# z&Nww+=c~(&v<IKkYPsGob@0QN)h7=lJCK&Hwn&Vdg?v;;eewBZz=cko_K&v+rM#PI z$T)j5<~ND`v^C9;c(UBiWd6Ky=-F$yJ)&Esu_J?@%nsv!R#Y*7L(#IW`kcF3zT{&^ zw8x9>>zX#Vp+rT?j3>4IZH40Jd-Y`4O%sa0Kqp&g?OoSKDhVcVc~Vpa8?r<&D1hFp z8~RhJ#hH7rl4&?uySn)T|8{U$u)`m}dwt>KWE6(%=5mfee=poM<8h;<=Q#2xZ08#= zB^jU4MBiIpmU_v1NTD;66}c$@+PEk;wTr0&{9cr2H`936L+#je3&fKB1@TWB4CgEe zeJWNzZo8{M9AfCff4HvA7v^Kwr&ep<6EIIVf1Tgw>CRm6>7PWPrW_TCmWLy8hdjNX zqWo{~QZCd1d}+IiWcw=YMDgBpSYy9@ZOM~|E?RE`<O0JVvAAQ~96$vS%6ms-A#zuO zck}bT?X6k@ui>v#wZAuaD|KA&xNB~$e6SdM(Iz$J3XcIi`1(_Cf1Hu;eO%>^50Lfa z^h?d?SkGuJ)0^&N!6#0R`26;DZt>py^G~9lbE$KU+a}Fy)bto|xfZOxI@~}sD$@}B z9>aR8hrdE3n2QFGq9Mt~bv^O-!UkZijj684T7=#mGI$mftXl)dV)TTa*T+ui8<Gwe zsD0Oke~w4k5Gx-Dod>ww+z_m6f+<D6g{Fi<730gM#Ek)%n-6iLDXe=h<jq3gT=1yP z6RFv~0S~%C&MY6v)6Kti6>m70q<o#m&4E7UP_kyW)vg`^{_3&W{5JV-(s#>t-3Lq7 zaF}@%-!Gz97BIJwHsXPg&2HdB@TJ{4pfnog13ZD!88cV4QXKbeIPar)aBieHn3mS6 zf!J;BFTRjy07cUqB}?w%hIR9uwi8Yl+$z!vbOwZHyU2pebxd~|nz`t8KCyE!W#`Nv z>!we|N7BMa;%sIf_dLk5Dj*y8my!7BaU)$&6a96cqou1eK7{i)CEJ(Gq$qGpm_5~j z@yio4vmfy5ACjHavL7)*J7D{soeRt^Pt}>I`IEr^I)qp>NZL$lW|S?OZ!H&c+*MYi zz@Zq4L3z$YzO<JB?@ytWJa%kj`~w4keR2urn=Ye(o6nV>fg2IcFyc!hF8AE^GdvuO zRtnT`fxxc~<+u1>owo!hA3bX-|2U=Z=tpp#yAC)>8+`pFNpHVEHxIXw+>Q=w)^kd& z3Mq6&lY<%thhKeF8<?7GsyZ~ImV1#3klpOxx;TKQF>@=d>0IK4-Vu5IlP1`OtQlTC zXF-q13siY+=OjLY(((Gu&cYeZ?$~Qb-m$rz;ng{NeJ1@v?_VHk>Xd3KEd~0>Zu!o` zEV5G3k1Hi2Dek|H);eOSy&C$yJ%(l%7#5IPzZ6hcHVGJ!Vs%V2{LBwmq14q{0$zvX zjPZMVjm#fp>J(c)BF9j^z|7oYlCyPYuEQzOfQrAgXv4eeU9Jh_j!WxF!bOU~p(CRK z7EFxN+Upg=F+;-a@h(njnhE>$yRYPakFPn?>Bg>ihdD<G`@n_B?C=D0#*NJStK8`v z=1V)ppGT_)pubJqJ)(K|@!l2j&RzgzTqCxJYIe1Uj}`Zp*x>L+^dpF0|HFw$RwbMB z-yMv@I?bO^e@#Q}j%g&^%Eo$%rcb_@`7@pElS<%?3R|5cI1S>-b8-r_W5Vm@{Cl9v zLcjd##jbC$M&TOOZQpMr5JCz#`^uBPuATi^nUdbA8r_~(zJ7naxk!GSkw*U$dvX3r zja{0x`;U-^k+*JR1p_q>HDM6h*Z`@S^7gfl>}MegZ6W)=FjsRYW^bg@fZR3zX4+HX z5RjL3#wEm1AKg$7C5OcgJf%}NNam|xO^jN%ySrWRp|wVb!59JA@MYDBq4u!w7K_FH zm}YaZsJ7x1<ONRf*%i$##HGjR4}=`f_314<cgCCLK&0dPetg>eY%99BfbsjIWl*C? zDZ`MCs1;ml7Zi{UTd{L6NoxPobHbpT9=s61zr%a>A79W_ng!<m+$QRl!Tvowzy}*Q zXZ&LB?rg`B-@*A##n<uTH=`Q)8lMw`t*;bVL4DMGHFr6qr{SR#YvkD8w`qq+7+&#~ zsOhU;J+G?S^4pa4(B`MfLc-(qZ~Mo_rc*Luy<uZb=BQAI5JMjO+|u`|n7jcyZAf-o zLhQoKRe_Fn%h4Bpof??y?iNRId94QQ@x$xat>jfC-$28yNjqGsm%e)aul3Ln7WTef zdUw`u)$`Fgeo^-eSv#h)GD0ILbNx>dZV8-eVYO|zG2W>@Y<}^kHQoL)iEopE+UF+C zR`1f!(t-w0N}2S&a`}Kl1a)7m*X$MQPDT1U@{=U&(y+OpCEjuE$=A}k!9)9oM?8u| zr`04wPH}J!$~43|FuS1*a<&3h^eEf)SRJ<L(6iu5Cxc?N`pY;<-}-tu)s-Jk^v(w` zS1~hjNb)}}j!t~oT9g!^;)ieBmWDDRv~YuC(oibYUE(KaC$gmjrayhv-7>kQ)Cr!} z^?Tgk9NgLXC;+-<9wcy^I*r(cp>PC{Ujaple*q?0t>c5~jfQK!`#J%`v}Hy~;Lcji z>K&7lc>Q!LfMSZw&k|`h+Wx6$2IQf#eGKTe4B=7cUr=;hRj`=^)0!mNC<SU->bPeg z`1$*;0exmAmT^@)zloepx~xOKx=ELt@lQFc@OuY%&I(_oI=r=JdcWWFc_&_xr!rLJ z3azsztwni2w^Ws`J`8PJ&wWZS;C`4n&v>DSkJgE(EPL+zLh-WkPXwRtq$2GQQ!K^U z#c0V~kB~U?b8Zs<i){3BrhzwRvCiSmsB`oSXPXRu*;5sky!`y~E+xO(g;xu2aaOa( ztTNKM=R2oYk2ot2i8@E5YB_@`$hz4FjmJ_PQ!1w>ze=;N2rEsNuM!*1z|*bA6qXxX zz9>UzHxT}1e?0d7!<F$lUtH_V@UO#+9l$pTJXO{nIP)nJz*IIamH)o%SJIgN%tw8> zmow$%F+2OKp`_$TQjFO3<h!D;cR>$~%G4gp&-Mg5;S$Ab+iYvfF_v-4NgKvSy$kKn zg$in3*yHk@@K+Q(PaT+!g3ByumQ`-%S;k6qCMz7ZPulpT_O1NNEyB+(f?k9_ehVSV zseIFwrmOaduMSft+-ttEoiN!vE1NmnnotjYqGRxD=Pot=$`k3OwG$u)9`GRoBQUHE z0h|8B9FleghHz6gRnG@WAJ?b6A`B1KAG9jooiKR#h~>=jB_qz>H(XE1YG0UMpiK-R zP1e67Ucs~2H5Jd~z5c~1-_I#4Q9Pe!EXu?8wB0rCJOaWBLSec5LF5NXPh7R}j6#1T zUFNiV@1mc^&j*Izp@2-a{I1LyKvoC6RR*bgsm(Lo@VvP9I=L4gZ*p3$yPQ~CZDm|^ z^FQ#&Fn0CPr$PHJO`M>UR{<f4k`dunF&8TTg*oj1g*myvVX6E4-uNCn-vPAm82m`y zFYRie!gyA>+Z)Vi^nl+9U419WfjPrrrp7UmiGt2rYc5{iih}-|<8@>5d2Zu`J7Am@ zjf%_dM)NuS-qZtMiGEEiSI>QV`mO(7FwPu5UagC-!y~zN*}5$<c|>4~F5C{CGMZ>J zlF!-I!F($H^=a^DC+A1pnS$z=%n=VmRGpt`sQYKlL<KGuMCl@&RwNx-|7LY$%{G*q zU*fNJ+7>y!mn_wAte)&!^}>iZMNzB7&AARScohvQdN1Ki<?E((?lQK>@cO>&zzPEc zg`x1%MdS9LFsxp8K&4mM2VS|9<=nI*>vRI>V=J2^3!?hO!PpShQu(((m|5zA_a>~z zFl==Z=pz?j&TM~#I++Feb-60-nXoUNOGGIb*3-AW;UD^#_7O4h1H5+kQx9tO$~+!< zDEqHZ2zQ6fvjb~f^N2OspPrhOeRj8Td7xwSp{tkbcU{yLT0@^2Otk6Gv24=GUm(B= zvcYkY1onkW;dWuzk<#bF01*k4zS^y46MZt*a-K8L`ZhzEJ6kxjdGmqS((UqG;M%AG z03v!DKvcJ0D}xp){IspyVrFNCegG@@Idk{(cR#q__1cV&cK@ImpBv^JcDH_E{AeGk zuka{ryfBLQ*l4aX065w`Zf^5Bv#MSt5Z&gM)xUs*W$ocujre%9TonG<amp)#QWs@y zY$+Y`4WBijV#j!!Mo89XoCx{@04U+Chmhho7Gxlx9a2WTOki87YGAhpT@xP}J(KQj zPAM@#YJaxYRm-h0xP5ULdFeMlz;@d`-7V`VL8|Ctra+LhXTfDI%6H~HTs}U9P`{Tf zy*j{IH!J>ym-T6wxL9c7ke%E?`t(fHt@gZg)(+2mQSQE<1rQU(SAODIl;awpUrsX} zE;|&607O~=SeCDUT`#-AFJs?O(ss?951z!THfzw<A`N3p0j>5u;XJFcK9O0A37GK> z|ClT3#4NhtYQvV}vTN(tqJ!4W_Q`So+!t>lNoe1=wr;|S>bVJ-iMLmSH8z9`D)c@Y z)3Be5+TV26BDkNP_>wcJM}C4t{V>n(xpoqUUZue&p{l?hCq?ZEj_SPbx2xyq1#f?P zy&mR+X!<?~kkoPHY<G*hJXb_!H);$rJU4KRnHH5Wn7#=6#V={Q@^Y4X!wVhoT9=|X zqIK}I6T)vO%o>0No_`^;1KkUKxwAnKvrpc@bw7oUY=PJkk^FxGTAN;6zy!6l-lg;a z=d^Z-1jjz1Zs2hDe?{#yk|Mou+wlA4uAyvB_2xz1+rNmVS;<+K_|sXt9-;cA*(w3^ z^ruJRKu{i;y5)l!Df#NHrY*g9{9T@KPto{uS3U<q6+xthWjKXrNMQvyxYb~3DtxoE z#Lf#E2e+W~><xc!8%9-gzu}YTi(>ut$s}uGXKr<v;hIUueA{WU3FCU5z#nBTF3Yaa zjF^{aagw6LSAE9&D9#5*B^K33R5}qv&fB_*HaoYNvTfGdk_`#-6<JAR@#!|TU5tn3 zCzB>ULazmbg`aC%-P8O7cVVSCQ4MSJW9t6H^iMak%c2r>v-#c3`}k$=vG29i<#`Rt z_*hdZ8OF6Wl4D0-Y%QL?Q`wJ6v&fs-)>yXi0<J1_G(4C_d|vyFuoG}tWS7@AQQAN2 zW94Ggs-yh|r_OYR0{rqKH|MS=ur+Qav@C$IMovt2db_^WA3+dfzKZwEZKvM=D_!uB zxo9CJp4?)hB{tg>N5gA{lB4?U{-p7SJpf`b-mBJ*7cUfb>|Pt53ku11MNg~-&b7O) zoFSHK0%pIuvO&=+q59@S)s~)w<no<GmY~3Ni1IZ*CsnsN{R`^~MUEj`*(N%6wyXL9 zbKu=)^StQ6{Xx{0#FY^zb6BMAiTLH;?~sE)yc6D~ns9XIQiKt5Cu}3Ki$ftV3GjG& zW0oxc{m?(*?#6FFj&8z%$zV;>NPh4P0pF9yWY&G<ZbP{@lD}AOY>5T1V@vnPo<^j2 zyLc|{uixLPyUfc&Imj||jbqOgksQ7mCku|(r$BX=Th}WLJ_h_iiY@+j{u1N9;5~+( zk`3}yJ@Ws^alKs@6ua_Ukz)q?Og7Y2Vh~O~Lq;;^*UStR{AcG*K3l8RcDtJppk#4( zfmTfmj>?iv4=`w5@Y$T7^$%8WVoz$q)@!!%gC?n6=H}~jHyiAe!7G0uD>Pw(Tq6u> zmW3WGl@B=ufq`+82iombUx3xs$Wi@+mZS;f(TO(j?}?CoWHZ#}RKXd1cIFSSYpC9e z&~qn|SU~@A<x54}1*XG!W<X30anJum2wfqg4dvgwjRS9g9o-npn9fPj$@RN*vdCC_ z=4)90NWcB>-W*!J&aa;^Zo4LeuKp}0=qqGtaJW}ade$21%$E#Ij|9o9QfEv8S%BYx zUE3UjP#o)tYk~+%UHLV*QFd1|O1Lj+k%Txry&a{*k1d_%MKEOQQ{dBgH?s;RX5Rp1 znw^1Z+SX3exEJRkztYyf_C;dqL%XT~F-tt_xECZN2vWFv<G%~EJz_;Z5V8vuiEXhT zdqL!E%y&BKxc(}cL7|hg1Bb5V19bey>w)-Mj#G@ch$x9I4A<D0Q>$C2%GE0bZ>MEM zq5}!<a>Jw<VX~|0xHohB=&-YHMdot>o&mSX#b`usAm`P5x8ESz-l^_VyWfriWFC*k zy+@-MwynnSX0QB^HFME}QO;G}U246)`pzWRJu%)6TVZvrT{@k8midKi8lvS)tmp`I zke<;f!d4rC)=YuuYe{y}Xii$x(5Jbew#U8fj$lh8;`|fl8~CM=rm*PFDEEeNn<{~j zBJ-93ex<v9*W{A~k2C2CZIlf(jA^?<cKf@GtX!;IsTifKtFk}l?CF1PY#5(!aBaWc zZRus?gadAnxua6hgm5{F<lArrifee|)4;xeaB6cmjNNLPO@s>t;3W-du+6yIHDAri z`-X7U0C{u3sOmhSQ6fgaC~Pc>ZIJ)*&ihVk1P7i<6B3qXFe9tMu9iL%Y)?a0>%he{ zVP58W&%WlTUORp6Caf7uG2+?_%PymxUcy`1R?33N2-|f7l6@*w7#bvKe<nr-r3<_6 z{@2?OF)5u&%Z~_Yzc;r-obALzsTrNgI@Rzk8BR9%U9R5`UjV)l@@Tus>_|J-KV;a< zjqq*WL4Dj{)}c4*5qZSL?fL2lR5~=rFM7$5$StiOtz%L253O-e+y&~3pBb_1hN|i$ zlc2@w=a%{(4<|)&hVQU9-hAP^!tFj`RB|nV+42i=6A&Y%JY{6mTEWdn`%T{=Ty=VG z&tQYOC>yon@M-YG<JoI{xXdRtaP4RRc_C8OH*XLbQ?}OamZ3H;BG?EuIcw{D9RsYI zmGyJ`Pl&AS4+#=#L_`Hds=17~#DnY@nUE2;LHj~y^bn~)2x46Cr{K3&aZR!(=f0#V z=lT5@3-XrYyo)%Ayq5N>-%00;+J%oU+2r?9*f@WV{WbCqe%?jxTkv{bE4HR07bf2? z+XNC%x$<eqi3D>hD~NF7T4ou)`x-*!VQ*a^dn7Hupn%v`Yo*Wq1K-tCLnx%yu6Y!k zPks;?A@rsKIgYl#{fn#a1hz8Bh!%HFrs%KfBRoQ1$oDdEj=?tOA&ZvlsPx)<&L^BK zuaPfySE2O|hVSpR46)WIzdfqAWrBzPpH&Bxpw+<_xdUo@&ViFw`=s{e7}K&$t{VB9 z6<GMn8Aus4m2C#5Cr0^<PiW!@uL!5eRfyXs6@8(zpYz8^o*T#L!Uk$lr}Q@hyp$wH z+IbwBl?m%1Yjy#;b?Fw{W8z7gPBoe6`K!0irpBaDQ*PJW&qu9rE~<8mXZXphuyb8M z2fdt%w0?&V2Sl5+v>$aXKAxrLsGpxDPQle{dP{g+9ASiH>0NtMTSeLb8j)8`j2u}z zqE{OUhnA<X^}PoI$NA6VP)4ZR$NDK5Zrk<~RehYC`wdJVL#~5OME=%ao3W|_nSR8r z`AB1wt`Nv=*kLs1g*Tp{iLvtv{HZfU-}O~tl5y$ifQgL)$s#rJOv^;CT%1(snHxcr ziE8O-8>~#g_M~sngLpz^Y1MQem+>2Tq2F29(m$=XBIJwU8&QB#4_xJH$;e`%>FUN` zNbbChyc(2tk+2WNOG$VZtlctmYQz9Vt3D+s<oPla@e4orL{ZW@-Bn#>I%3!Jt|bP! z{(+v`rt+$Xbyi8wBSJ!0f5u42MbaAMM6cd!!q*M-!y9q<(WBTZ0a;0QjrJ-`S(FRW zk^nmQQf*qJyr^&Kqi3jtKDn*>V_6(0!Tw=!LPNk~#EA!pdrX58ZG~cPr@P6|5;gjS zpkgN<%ffP^iL9#e$BR!MdMHMF?+YpErA9Q$syPs*ls9or<AxnNbh`7{kyG9*%FJ}p ztMm7S=(c-pQrNFU(yOPFs-fk2Z)yk^W6!L$V2P-!)&I!|4*UJ;u|-&GxXB%MWyI^} zUTb0OV=(quVY4(*ZMbaSCAF#KFCWi$7~Dj{d?{~&iY~!x2{%;P25RqZBbIg;-=~1p zj6HEx)gvpH#tuCsj;2gcnnsyuj}xlw?)mPfj8>RVyBM<n0A!(^j6!5+#dzRvNs;f7 zYinih^RR2==heFLp#XIrBtO>lS^u#2N0V<1k8SlWCXdWuOJ{8J{jM094DX+=th^TR z>DE>6A*O&bC^q&sRD6K}8Z`^^B?~`6g8t4HAlH{RiDM5wYj8u3)|Gy2oG1sgkizq! zH{ePq6_#_(t9rJ`79=J^Z&s#ueuAEiBT|+f00U)9p)Kq!BO-h-QFmSmzqX}YRQJU^ zdZN|*oBS8lapfqm&J7q5x+KGBb)<dw=6C03cPfVsSz`u}!3!MZCO;p+?`mA%K&shK z2$eww;pc)o(jtST{4CxX&FxQj<M(6T87D2@3wp0m@2^>!c77=eVE^7~Fnpx)s_p4q z3#19x85v5!VidYD56zWc6k6b+y(r_8eL*fSK_3&YjD^MOEeEG$m+V#!3b>>^9dxFr zYC~Y?3|cGX+7?p>KSSh!LW=NRAohNFEl9`@^L+Gp+5jW$v}ZlbJQVBIkGb)#`Co7l zBY0h{);Az8+8!dXuO;krKQ{KSP!&hn%3>DZ{ifvp{M~B%*|`gso@c2^^^|lL%=r}L z8iQ|S>xaL_m_=xnWnlt7`t5FUjv*M6;jkD;OdclEHy|GFWFKM|%m3X+OIf#Eezci| zI!VHuU{TfbMwe5hqgml0yrA==h}_c80H*8V<+z{8l@{b@T{uy|GO*@u3C`=^sy0+% zCTlOMJU+y123z3a)VA;XMmb(?mrw!?F<fTNQ153NVzt4&mf$P;0pZRvmdj}-POpna z0XX2%D^3=2U-uDKABBd#);jufQNqhTANo@*6%-WmNE;twYS^2slwXw^9x~netUAz{ z6yOY7dIK)<5+vl7oYFxAY$3Z2-Ki*jtEKH;vuOi=S=*^$ZH4@4K=Pp>!xlKou<&(G zQZPSl?2IvRM6LbA0ti}KFM?t2qt_$29W!&ikx^mW=aTquy~N6vBv5=(-_gc*-2pk~ zR1(+`1l*~C+_Kcp`5$(0QL&|kkP$8TlRD3Y_!ABUxZyy*&POo&t7-dZ&LKL;2RSou z^b|QCqx+e>_ZuD&odCl^`7uFYRujs_-QuU`MaU|NdSh_b4Z-r<6(ZLW<VX-RL5|Rc z+(3v-tVvh<iM8(EzS||sw?XHoPk+VVAa_~(1L<Vuiig(wQEpp8RlAHcaNE!uA0UDc zv<y-hJ=UC!)FwrUSJQw7wvSbR@MhczboW#@m~bRtu*?GzRGWnnT)fv?<2#cN&wkr; z?rf*Vob3GmohEb1FBGgVC0^>?9?rck*Z8LMag{(FF}mtdVfnt&T$BcfH58gr<*X_d zpDOoCxefO`5DpPi$%x)lfvf$^fsfu>;=_&67tm$&Ui5oAY#C+oUBzb@hYN>&<T@&^ z#m9Jwa=?JP78;#-AJ5hbeV$)^BI#OP2JiD|aC~I2A+qDgUesTiY#heT#u(XEYt=yM zL(J`{Mu=F^A2HVzM1$V!whx5z5K30~#MddrhqNf-`Z}~cjOPX`59^&<Sq=<+bt&}7 zqOH@{{1LOz8WXG8l<#{3824ABTgm6Ub`O%R$5=<4Q>^8OW|=sQ8Ce_QSaEaY`QG*2 z>zO@?3Th6raP8IV@z|phoMh>97e2hxTD%Tp|D;JaegX?<4u@GN4WrnmNtmRGm!MtV zYsZr`;r!4fO>Z8p?kk1~p1^yqL_X=QL0cOpJu~)6WNUm&zwVZ12;?s5rgbe8!3byc zdgv3YZXS8=#M7|f3#c|Aw~5GY;kxo|V~6QuZ>0HAo%MGvCfTUE;8yQu&&r-D4AXkc zDzvMq4twMyLaYqwT?4)OE5BZP2djpcEA%uD`EIG^2xX+GIY8M8AO|QvB`D>`=8um9 zt1+GL>gcu^yqOas%D=Z$aADLF^Y$YIL4BW=IuuxmF9Jvy6;M?{?Y-unMoXZ1mIfDn zhE;^M0XZFx33U~ip6daT26!9ArCMwreQmNKFPVaA0*60?h?}oq9E;Rt(ZsSdQ~(r% z+`{z9N5Zz<eIl|pXzqHV)3?Vj@%aVSd$jm~0G$nk_RG${6ZK`Xo&p(Z7?T9tuVQAT zxC2;<dNEDGr_*#N77z!SfcHb!Ltmcd*dO?4`B_7Tf8@ukGAnAfr#D&7IqSWiff=sP z8PL38)_|vi5qLu&FohG>ym^ZAWI53YVBTE+MXv|ZPW4do3TZrnfbP%FL@+i^!tWsX zt=B!VVB3iCLkvS2BL*n&CEs>!n6$zZyoY^GuFL@?>1vL^S(5FkaLHPGDoL^#lS<@~ zfn6EM*%^*^d7K!|?MHl*;lJZ&_8&9(nl{pLYV+rP%Iy7AQV8XDn=Lh#8RsvugxB>~ zm?AR*QU9)V;g1JpIy`8L0#q9@IW7?<ftG00BU^d%(#=$&xPy~N<aYoE3$DDPO%b^r zkBFQ`uHqV1KP<DLURtJCWBqX3T_>}%w^1$!q}^^oLJYx?wQKXF5RQ!h5*BO&e92_X z<OPFDhRoQ=jW0s=yS>Q%;3%1NX_pJqZC=p&Ja_AV9MO;N`TZrTxK)YI=JczxYKxII zwM7c!dF8c(5jK74i}o%Zc25Af*`5k~p8_*Ss=K#4Lv?c?Nf*3WeUGx24przG3|@35 z68b)a7+o=KKOH=QQKLF|e)a_8&`03)qqOp<Z4SC#)1`=+Qp^T$mx3iX-p$yB{|3%~ zLmPmy2CP?4K$m8qUi=Dx7@{$WVx~7uvkL%7LTwVd*DsYQs*>=Evbv`BNrrh_5++7G z7bJI3s{1Sv7-=)(5h@4dj~r&Isjro)=bJU0;^d!`)RXEyZakSeozy~KGIS|Zhfg9U zOjrI>&@g*9@qqE^7FFYedO`iw;Dp@wPD*lzaC$Q8a)TLthgwM04ur~(4RtwZSUw`7 z-1iYm&m}t6dr!k?omN*IqTGG%-;yA;*@*X;fyIi|8K4J7CNy5s-}_9$iWp_fuVcZy z$Z$vl31O+&+3pfRv4|E{muV{;V4WIB>fNF7X4!+`u%Hjl<2HlW-x7grPj4!Le~hJK zaAGTYf7v}0Fx*M_rE9GxjGHy;1=A2hUBb$C(8@4lLYIVkZ;*6GL4OBBMuxD>ntS(# z%A1<!VcZ$4jdJHou}y})@iMxL6N({eV>AzU-MGZW-1N{DKKA4R5_&FpEOY}Uo-&dl zu35;hK3joF;B`3ZgrsBEW$PUF#XPBnQ%4sIO2Ss8mpkQRf%z9W#LX4Z5ynM0m^gvm z9h#+7soN`Kxb*p5ewgfs1RDfuIH>naSClPWNE;-qRw6A5Fz)8w&;85UU))%0a<PKI zo13%nB_5J_Z>%V?#8S2bVogb7oK(1-bVtVwiRRwxMHfi?_O?`5zVrLwOlulZ6b#y( z$d-GB!L5%lKnH*n>Q`MDTcJ+m7Pcg{xokC~e@;GsBR66#_WLF?VjOa8kzT`(97;&H zbp3U$NWVKcU4#=%=haw$t9Wx=)=}!i9_z%pfokukhGfJ>le0J{CnBvi(gP19pklVV zSd^nB%dzXLJHfZ-L6Vt>Fo8_#%5~h@^)4o2y_SX(l|=-enUkp>bZi)8<ZDP~ahoYs zzNrK7tC(?e_&6YQH!R-nWzI<S+2tLqZw1w;+O(@QAlqV(;QoVs+KZmK6};~kjy{uv z-Px42i-9&fXlG$8B}tQT%)4-W9r#JQidCNM!l$FN4}G-nvhwyBM%ij;t=-Kt^h(!P z;?Qb_25^L|vAm_uq-cXw=F1wGmmz=#Qfa^8?^vsDC_KhZ_#F4DUz}3gT>rBVx^wj; z60!L^&xWmk3Ic6?D#LB$_9wYj*g1tyn>JjS&omBaZYMBn*l(>>>{SF+p+*w@aJ%(8 z1<PcmA=dd|8*hZyhX%2D8EH*QQhUirjd{#jIRc5+r%3Oo_vn_xcQei`Z|)0}`-XPA z7J>zt{fQ0M<L76A8nxF4^0|)l-7Cp`O8w?~=w<Oz)e-#z^uxtE4(pk6?d<@$?1h|G zww_9{p%}-Ka&t_cnfpgC3>>Elih!{;Y|86dm#xLF>XPTW>L&Nd``hfE!6@H~DF1kN zAO>2`plZz?ae;j&jg|{txE*~ohwU5$1X*?gS-uKg;j*Z~0`AeXwBw#r`<cK$Ch(gj zg`uV!eRC|tFFV;6mst_$U%@hopYrAEw1EO8>ES<&?J)5%jI{9qfZ*-oxDzXx#F9Ia z*?PN75#pEC?3Za4C*Ckg2TzXuXN8}Z_rpeYIu;J?b%5j;uV0C2t6dJ-4e=h)VLky( z9zS@W8r7oGQ*oBw&#)G8$~_4SxoC&n@W~?!KlUdb%?mgX#448m=<Ko}+h}<*7{5-5 zj=4NTI9abAMmrPach8d}Y@OSGQcGeB<L1!f2oHlwhFqx?v>T`7yGM>NONTV<%@NG) zf)l+URQ3+H4F7dm5bs{qZn^ljASL4hK=XfI<`Y*52q$~$c@=mQl%aT)Q=V_ay4@?+ zkH>Hey+0yA9LNWG!0n9-eXQvP_HtUfsQ=p@Wa2NmT1nUJtj}|l*8JU$=sR+h0wB_o z7|B$LEtbM?002xodg!@;@*SN?P9x%B6}e7zP5yHgvw(l|+AzuM@mSPw60hijf9@|V zl9%Ra*?YO`cGvX4wbD=gs9REJ8A4DoTJep`m3mBs{z%Aevz5f#ItT$5+eKilwVCMk zZyX{`<NWW{PGdoDQx^WJDtqs<P*9g@A2g(}<c_N*)C!JTD=ygG<Nl%ST?@=5yLnEP z{RB@*Z$l5E0yo;649&5dhzaX(>8c9rGEb^fMfQ&a<uFCer-2&1$((<{Kj9**2#;%O z`-cUDICd=AWvaF}$45%|K}MTf{ZX6<VV4nl(GO%VCQ0TnjN^(1ML}_0o3k5x1y9OG zmc#F?*VO8Z-sh|qoKuoI_o=tA?Js+Qe>doQ{;FIzB*!l6XYU((DAzQUvZK~H1rh!k z>%U-xwdbin^(M<2_d8g9{=(Hk*uZQ2g+|USD4=Gf!OUnC<SlJx;!7Io4|>2n@6QtP zL-07oGTu@g`Kw4*cjoaI-e<p0=ONN>Ga$e-$&}D@+Sl38a)O_ATngQN3p8|=2OTn; zSxcDD7e6*1@3njw1|U6s?Mm-`Uez~)2MZAu^{tNetqh5AFmXMU=vdRmag!|KoC&N^ zg6Ebq0yfc!{)NbBG1`2I-*`D7d9_bGL=`x8xnbyT+IV!2yBDn<x|9!;xKP)%x=7;1 z-b*@!_>$st-Ql*|XI-=2euQa|VsCbw+86lp;F8~=A=jqQX(<|69kD(={aIHgtJfd3 zs3ATr6IKjJBMenpLId9%RxX^)!=X*&!J{0mPqz4q|I|ODpH_9f%QTlad)p<cbWs$* zucgsqB7)mL1EDoV!NC)1Be`l(irz5U@ZW6+qCKdOnSVV~29kKo{zG9;DYwC*g*b)8 zaKq&0C55nxjN-7wa1>-GmwSWiuSgg$()zdd1@LbqGUJCfKLp#r#)B1D7el8Ozrk^p zZn@!+`_{8Sy}$mcvKZIzaW@&BwH=^i4CU{Ff*#ll7&2Tp`gW=r5&Ii0?a(1Ih^l_S z&Sdk4x0_6;uT}jftq$ia$iUgBA~&KPGpbhT-k3AKvP@2F+<cP;1yfk%kXjWXbOzX9 zSH%hc&CG~0P2g2#q};P}bZ$}IQS*(Pcc&s{V47#3s<Mlb48;FqQssqT+pX8pJiA?G z*6FT{lwif66Xf}l)(r%)e?PCs$<U0?8TO)PZ>-1@2m4+D9v$pG=YNU(q8{-Ap63`Q zkE2}whU|yFf%_bvJe;Gb*j1?F)y`=89FxX0c9Roc`*xABKRJoG7J_a<><^s0U!eGl zvT-A6SULnii@l`v)s`iZwiNZx8Pa@J%?0S3tDlDx=fT*p<C(c59p0+5@QzGB!>znW z1+=^3QN+BP`_wy*5z@^G+k4M(9Ns3}k#A5HWVq~h&sj2?u3y1gW~+5^o`QnU0Mo~^ zX#^uJP~<H(eYoh?>zHc;?XJ-z8a557e)1~7t~p5EJJ9buS9O9G=a^EhWo&R8jy}4m zXy_#^UTDGooQj}@Iu9*3W%81blIp7~FFw=)_|M#Pj%6@$JIF!2fDB(`qXw{lBRa<a z9-r_aiytjT3+})|5f*k20j~^qb*|0F{=aX|t?-9Wu1^6DR$~i9@8>^cN<XLUwdvJ5 z+B20d_x^m-9k&h|X~W@?z1;Th;A@I42D>f=X&D&kAc(#veGT=y06%+oPfS>%QVc)6 zkHk!@Db`a3`WgQ9@`Zk*np?>8SyCF=sM%3+RybpW>~vZd<=tb7`WAVyT$+L^Dz>N! z2L9)HpRop?<&b`k$(!UuystkZMM1$au4u_RwF1zVgaH=98DQo9yF~|Lg73H#VL=|{ z$({;4b)88==*&Nxy$8@u_y5Kc6u$5W(WXw0^YM2hm?Y!OS%tZsj@tL@q8Fgt&vkyY z>3vC=PrANH0$KnLeM!n>!t{PjXy5ao{*g<QXY$juoJk)WiZ+3ndB*#bghw0~m0Iu| z=i?mI)*|L(CjK-$@ZZ)+V5Pmoqu1_h0mSOrM%kuMfz&uAN8L*y3;dBWZR_5pi#L@n zpD|8fFGAg{WnLoZTMl1E12X4SsC%XsEh6HZ^x}fr0q**T6;s!BQ{Z%qgz;cQyP^d4 zX?Ho(Y+pg=Gk?D~m;S?+TH9AaoN<xdn<wyTprP`B+e6a6ax&zGJ)1ZtV7nU+?lwY} z)&$@lTlIMJ&1%iKz@AO$L^88>1QZhSs@E*C#TVB(yJN*QI4w}n@HcaFn6?z?EbN?A zK1}EF9{O0#@kDq(4_6YKwi6-)7SpL?0cOb8{R=Tl@?{cRWO~%lbr92X?(WzrmR0UD zpkNM>a3r?#LHU0g0MbD-%O<G#d8QQZR@gEy>(DZZ{7i4!St|+oQ3!^DG86xd0lwGX z#<miS)ZE1x?DqTRPp59H9e&tr`#$Z7U=O-?yGyo<rd1X5#%GU(LcB+%EaP=wb8E7# z9Agl2zP$n{M7s;31o6&4N|MS~rKEYi(2$dviLPB6c$J^+dk=NK=JhSzfauOkbrgJ3 zryHz)JNLafpM2P@4%ljsZ*8>@o-DQY=>wsU=ICu>L>inFxo`7U+T_E4S&|^=84%P! zu>$w<0aHci3k-w$1(}tN`s|*?F$w~<l!J>vbdi$F&+QydV?Xr0bgkb_r<Jj}L=_El zUV&;-fQ}%5Y}jn}hOGT#8;+h05*0g7SVXM3bhU?dyL4HE|J2qJ3o%sS_wX^`BVyB~ z3$z)Tqy?z?CY52+U??v{e0IK&?d3G;gZCj)JSum}Py2@@kl#*e2j8T%zEC{wKU}(4 zC`}ou@)&afcvYCNAe{BcPFO6(aV84NBDnShRJDAYD_Z`*k=%0znRgTI^hvk<@~vy> zW#@wEzhH-&jR#&?JdW7%h*w#2?(&ineUmL>mKO8Bic|bS#}2!ME51u>vz%389^@~? zM)rlhT~br{CwFXf-1>2TW%+=~L)NVmKjlTAtv^r`8iV5tQP67-_w?>@ds6b$;1xB! z<*m{g{xk%$xCXXpI1B(3Q3=f!O3Sf*WHNyByu{6qqWce}xg{Jx552er6OFVv+0L9N z{7bcLsX=4<^|Qwz2BHfyX<^^fG)X{%dMae&8RQNDXyy;$zXB?p1|*>?(tr|YEQ&oS znc22^t5Z6>Pg*O20TF$q1&M*~olO87C8Yu>Dv~{6E|lN~IE}-}w%D$%k~sbk(74Dd z4}Q7s)V&wNHweh?!*tGJ&wMkzYil$&APbJ#Nvvl)jIvL~gtX@SJIkrY+(ab4D#!Rj zeQjtzf)wbPGMJsKKnc%Q^#=*)qhUTD*V`4|nKb!Z<5B8~MN_F)F`>K|6V0UJeNjBa zN0=Gcu~QLLwM<ur0_!c_<e8EB;wMYw&t|Rq*A_lq`KfhJk77bz0Nn-k>kpkFFQxed z2>?xFWVFfrm||&yxjLD<+DzI#^>x)WqZ)uwPOmEAZ@y>F?KYXW+9j;kS*QF|1XC9F z_$2y|_wFRWxt*GDXkEvwLH$;7_btLmCJV5G{tYw+Tcoe=?E=mWEY-vZw=QLB1wYf_ zH%z0hIXsjfJ^HqyJ-^%JR!zNrwRh5w?W}x|T~7TecI-(q)Vc_iJO_*GS|1SpTRqUE zIPrM%+S%usPySmSM_B~!wwlS*H!n3*nwG0A%Uq=q7Yy=_W*?%S07K%!J*}b4xN5?@ zl;igYr=@6|D8xa*car%`Y3MuT0AAhy>P6C4frx{XlIkOI@8#8W#9VBBjrCUZX9aXV zvpxWWi8q-JVbl<U-Sgvn&tdjY0To{SWbgg8cAj|qGpo5bR*_j3VwyOz;L{N3oWBV% zS=%an$^kZU(ApVIbF7*U@2E%8zeX%t_!>=)1A8YrSI;3;51rzQ?z9agzD6l+VRVA& ze41QT0zLxyyBDzn@;1}R)htw@B}KACG`d;810t7GI%+D+3+8s>XaaRLyZMo$ygQqA z^cu6!d7=OhlvpNkCmMFC-46wt8=+eTUt`z8rU2H5!^cVZ`I28n1^}JI(G#~(?*O{^ z94@tCatGuN;JI<rMv7@j%)946TN2(LAleimcmNfpxdCS|bs@!F5omr#(q@O_$Fz2! zHdQeS!|5ZXqSOz&>RIe5x$r_~RxL3ZQHgpouYde-(7mf!x2kOOjIBG5FlO~<J9d## ztX<r<wx7OWxZ6qt=U>#tJ`Phk2MY(pv8^QsH2H4jcO`cFRs3A~6J99a-RF&K%ca|3 z&^E?$2N*SYUoqInpg^H2%JzM=_}kAy-1sf7O_OY}UcCOC<V><lgsJ-sWhA%{*p^>6 z@Jc^Oq?_qeS$$|<U%ss{CQU!PXGt?-?y}pCk#!$wVykJ`Uc)DLjJP1^+E)*{LinqE z$jIa0k;ogFe&!iEH|MwS&ScSA&*ez;wigL+#6Yw}V<Z-)sZhFa@gkyCL4In{H8iA0 zLx}EmMG2BIsE%IiyyYYN+NW=$O;x;4!>Jd`m+v{cR+A-Pn(QU8MJ=kYJrpPzMYlJp zkOJDqK#GkI%J4%ELQUtvSJ`dhTBDJWV4Ub+`xQ1<{KjIMz!^G39(pguXtkJfAo_~Z zAvrGrW&u4j`a+)-9m$)R3-`L{d&wyf9@=<s59ZL1>iAr~?mDH&^PZdUwW@$&a8Q}9 z@UoIUZgl9XLEdP{4_EU<_GS)HEWM~A;mlT}!^Y^!cJCm}n_<seGbMR7#~HT*jc(zC zx%79*L+}0BX6}Eg#7x%`uqv|o;*+6hSaVGJmpH}hCE57xNiR@JBq!yEa*NHJuE-_T zH=+#KY9FTtCmcQnYL1r<couBfbgbJwmAHfqd$sIzf;R?iH(DR1W=hANN{=IeM)J1* z^~SeKE=;HUX&<I$L3cu>6Q8Eaj~kzwd*So#4eiN3?u*g@6<^8;VEVU(J0X2loHDcB z{m#~2|HYN-XhJiHXvweK#J^=l92pP&w~ib*p-nX7XKhTdkI-|bckDeJV=Q<2DDP{S zA+LPj`t*JNF==Oept9o2#YS1~%R)uB>Eum;#$scx?zODf%U53}=Kf)iOI#!BCbF;7 zWB)a`)gli5x5;pRR18$|E<JtXw|!agv!M@KC0|M%dHk%Z6RZ3-<$D6hC<Z_(^OrXB zXTI#JaD=J?ExeDK9@uH$T9Vr7QSp_Hwpm@vUnX!PtmbEKT-qWTi>S4s2J;aR^!6lW zGvO1W<*ci+sRKp`3h6sk^({M1n*B>@yF%F)-PSS*ryMMgd>=+AE#=H#>jHD?lheR! ze>Yk-$%`kQu`W4);XYl`^`B1O9}@M=1R{H?9l0S@JgGhU$CIAY2mUMPw+p5_uk*L0 z_Tog}-x1F2V?s*It`Uo8Oy@{BiE=)T$W~tN%odJ0^EG}9Yww=Z1hw%WVG>3Tzq4h~ zot?7%=l-erb11{=JzCSGtJj?Sa@oDi&yE1SUWMSEqFNxhd0Vx-L#=U+7&n)})SBB5 z;yGpE&ThT-{MgNDbx*IR_!tT><-mHp*}u->15j78O<JhsfgG+h6-7j~OIG_<^L@Yp z#nZ}Bn7?KfG55$w(r;0MMU}Ia^jiKQT}V@B?{tE$corA-kPpZcB?B9*yO3m{G9_Lw zkE{3x)7EvGa`qFZmJf7e<wrdHNdj)k|KC^y;~eecbP?+nJltM{7IY}x&7#Gv+eH1K zZ@$nO?qq=dmDaPQXfm@|R^6qSl_~wtEA@Yi^$n-ZqPl-B=SVx#xHy8cQTW?sdaSW< zq|RMURsghm*LtnkUWbQKNRe%5o$j3WI(lKachatzLmjymZ*C;U&fH)POWYqSKQ^)m zQw>yo5mce|#WQ51^=Vp6q*t}E&zcVvo+_%ORt}gPT4UGdR@9#SuZ8W0-n-3%Y2Kol z+>6WkQ7aU5e}=j?$Zq5h-B4d$6YdG>=zr*KM{<xVnN`1yoFT8vCB|GhHmXIGSDq(& z3x%;asUC*^;kKCp16z&FOUiYk`Xl1u=BS25y?v5Phw*=84sbH5)0BPEp%Dp-7^e@A ziHcVCRYOcWF{9Yi^O_r81`%?HF&ahqESv%nfXm!U9EDE(PYwetxxc>GEbxFLN_u%? zmiHly=g&z|i^b&#?zNeR#Z*A66YDdU4L$C!kA-=K45pFhPIOLg#lO?`cUQ6fA(!c! z*MbtCRb&V*Rn=k}-u6`9Z8P_5{uxx%J3L(mqSw1e2G`m+4!YWHvBGNzpXu|EcPECp z<8k9G%ahPg2GE=?2J}KAuR(an#T`1E8D!YsbCY@Yc;6|Ai0=8p&`+(^9Buo=T2yj^ zZ5e9j_bdB*jDviF0Z8$w+wLWqFG+qc@qh1)zw*$SZkm2c<3+wD-8e1<#?1%R-W)Wx zz}mGZg4^mCLx&y2XB8avP%(pcE^nwBjhpAPo&WC!1GYjgLeBS31I3nR`R5~hZ+4(3 zH+Cet%bDb#xwbytEc3gG>dVi{59$ndF8J&o>b=|xjtMhtru5|O@+xp5!a)HFv>j9b z_BCbhK>q@q^KL`{h;ps^GQFNxnODB)2uCO0=X-DpE?gU3=FHnc15SAVVlq#E`(^Yq z!mz)oKllpL5XkzcYhw&b=ch&hDaU&5P9L5r$3!Xpx7|J$Ft;Sr7r!+??>vdbs`gLw z>MuYo%UHY@YwzSa9h%-SY|!&OGGE<^N%H0Cg%(RX^F}zm2g2VzDC1J?ryGIu(3+ax z2M`$>pS&q1VP#7g*JkrSbw?(aGo$teangEl{$cJ=+W*JanfOD!{_j5}OO{b8WtVCy zF^a6iSSln-M<*#p5~{IH*1?bvlBFbKY$0{**|(8B+t|w3hZ$px-B@SL@O$giIiK(M ze1HEz554EU@7L?PuICkJobA1#c3&+J6ti$9)*&lG5E|k3jlWwhzYX;M&U8qP_0O24 z0~!ESSiKf#{R2F8OTUk?6+nsVjooU@_T(gtj<j^B#PUVvXscRXR+R<(LSLVmD&uh8 z9tRd3)U{ERK;H-S`5j>5Gd982a8d&V7(HgI&MA?tmH>(-c)H9(08H+l%K>Y2yfVjL zU+=z`)Nb>hoBM7OEy!mh=JIx~$5($%b`MyFgNBZ$Kw^MR&EuM}YTUX&{+UkqNlbO2 zoS<=SpIN($#-Mu7oth&$lOxy#pru22<l3Zp_^41q!0JL)aeP^ej8o@=7e1k;O%FJ3 zn>4e`KU7rG`vVvQ!Tik9x-zrBtn?*H42diA(caiYpQS;w(J|Qg3Lw<?)eq1^+Ch=i z#LNFiV*<INMR3Q7>DUg8nkR;X<HH-uxfs-uu>SOp1ev9J?lvh&RlWwQ7Um%9dy&Av zv}1fw>rfA9MRY+jAM;pOOwAo2JC#WIf1S7JuKIIQKLL%+|Anj<%z&-wR(ouohd~aG zxi_oQo4b<Sp$E24faa~qE8%dvwA?MM#z5j{Gt|0Fqln!~_6G4jE5f|5d5q~}G1Ko) z1HR2Y$`kv&>VGItLr)2(npolkVWe~Fud{Ky`};C4r&%XXykx{u;>P%Y%D^>zi@wgg zs`bSMx&__-q=|;eLZO123))KC2^HK9T$UT6mCnn88U8jw8gqgSjdRTs0>{f?UkMw9 ztc$mujaTwD9+^1Q$pisc`MN13ml4;Tmk(P|I0tTy<ZBJaW+5E?Eo`^Ldx6ih@;3mp zR+0&5dVtSyGKX`X=pCXLOQBAjC^84uuAk>U0aEGgkWk#@7k@2gmf0=?brpG^Ej2C& zkQG_zA&s$eYNrDw_mc1kcJ-U^IpsU#rqYi4-L|YF;|3ClVsEEcczcSo)BEgh#5ueJ z8F$}yed+A$QeSAHzhFD$g$FBVi^B$e+Rs=CcQ>-NqB8>O29apGFAX$Ky_4?`>0$va zIKba%(px@om5WUF>WeU^`7PtRBUVe%k}fRSZuD|sQn>mTQV4dpcS$5-j}v|w!Uf?1 zkl0?NCs_1zQ_(3Ap-aYYpF4fH9Z++HDKLEpV%_di>ed|_`P7BL^(wr*8sq7B7YdrK z+@bvebZB<&*DH)<>#JR1(|8!kl|d9S!rX4znz|gVPF58l>O8<?aqDR(OcogH#6N%b z5(X%H;I1D_KBB=_tJ}jXuwEKf-zH;lD*}{vsW&N42&$dH1ihp&T{Z6R*XlLD#o;VI z>OPsGfdHB8G}UgDK)02gxxz2o*cFS;v#yi?3Tikau&}0m9U}g-pdxN2$Zzyn>@c5T ziWo_|Irx&LSIM+c^Y2OoAAyP3je%iKUTC3B@rvMXW{8TMwXjKtS+qV0>0s!`X*bOC ztE$0zJNejEi-nGOPwcwQ3tDE#a4cl3{4Kg+Cy(Ic6=|DJuUstj7XduhtY~N7t>EEo z&~>C-zzLV{!yK(&`ZglH_tON)I<9%ZT9C>u`0YdHvlW%Q_s+?tJ}+i#t$FSBsPg@8 zS8c5%l=r`EpVZw|y?C$&V59XXRk9qM22C;bBi>v<bIGdYcwkK%X;p;}fu7lkyD6tn z`U+fvtR`zHz`%#KK)fvdO(4;Aw=XR<sXm3CejI=<ON>@EX%Ax(wY<u%kkS=|KVdfv z5MQxygmnH*zuCtTD!u?-c}@1p=3hhV+haUy1J@s8rmME^$V;?za3&*6{Wk2Z_}vy8 zetTwDWgQ5_Fr_>L1S#Y%mwpLhK+#>6I!lmrlzm;V`qI!1I~?FX6_FH8BcJIKQ3a*a z&YPTLcGaQg9?D>T=I^}qmNp@DWP@lLhOSs@_3obxTKtmcqp@-e@N3qonNi-K@w>nT z*`Zzw>@jgW%Byxo|GWPs&c6;*?EdV7*?~@akSOmdn8S;e6ys|)F`rCcnRBYJA$kJW zo*fNt*2OiuU;c6UnbM3*N6~XlJJjXmY~x%L!|n4~wmQ4{>PkE`_8Oqc6b7YnU-K2; zB*w5N>~COe#5elQ&%U$1E0zG@aRCmZTE%|%s$2VQm~UYnA?>5CZLQ~5EI7-jHepeI zYR>>Z`BE<f$gKPaP(H|`!<-G$Se=YSM{Un31V69oBPtmESeQT8Gzla=8*neLT7SQ( zOGUl>oC6_dx@d0|1{RHiAYAB=qq~{gA=ZQFzx*Du+L#{nCO||HaN0gyy{p0LwJJHK zHVO29j5R86_ccBRWw>^y#Bum4;F`iKuAq+L(+V#ya7#tq%#2nbu5k7Vy=~Wj5|+wd z_f7Zd!sL4)-dfjXz6Q|N^JH96Pes1^y^+5;Qr64}J(I=55}IU>jics+CYup`D~HUH zW5aK}G3SZ{nzhvt?sp!Wh`2w6^>Td4-B`i1)V9AQ&!5@p>$e7#|8(nKK@-Z0EwJfc zhexT(A7@ZQ>x)a+i-7z~uHz=Bd~Zap_9}4A*>q0V4<@=KI9zqh@Z&@MOhP6&1rH}6 z<VlFz#tl`G`La&Q6DPVQX7Seo1s71;5qD*L3u<|Z6)%+CG^e_++}pIBKDL-N=kdWc z&m4}pOs6osGYAUSmUSx}<y*<2Ek4GJM`6syYU|^d>`8)&yP7>eSgLPKUZ>_?GUsSE zY^)L;aN`f4nP|E*+%n?0v*A>aO6*-Qx);C56NbGfxMM&X#O|G4D@Fg1qgGxNhU)Vw zwni(Qn|h$arXO`p`LwF<NnbTGS^hF(_FTu4;Mtq*eN#2PAEJzu4IaUZp$q*M>L)~b z_)|sBrI*zQ6#<rnTD`d{8;hOBfI-$H?rbrkQTA%;@ufiNou-pVz@%>%qa7C3r>m-- ziy$5!_{-dHz)coak;#XD8>Ra*PjqzahVO%kkQx=rc=v&wy%)VI;Nk~f^ws~o=y`Nt z5|3c&dTIv-pHi+`%EFRzJ1t&RZy3;n^Px_!I%4x9S8*|b&4Z|I3D?P<Q`c=biGOT% zGRX?Ns%y=x>DhaEP5kPy0?3#hw03jix-;SHPw}rw5`GcjiesT+X#Nc^=8;bl*2MT4 zfDM}P>|1C%slze)`%;y>Q|V>q4T<h1mbHY^{W`JxnpbuMB`SbIh8g_cT>8td(gS61 zOu8^5fzzNNaiV<t0n-0s)M_tMU;G0mDq!XAT_*H#^wEMYl^adr8(V`a^Ws`5+r!?u zDPMKy-RQ;q1>FWeOOEO7N9w65x>wa(&W~e$lx+#ObBzJV+CZ`$CEaH)dW3g~{32tF zM>)dUYz@OM`KSu#QiD;ITm$O`MDX>o9HpHBz40|wk%FFt+yfe6%4<{LE-NS9$%W|> z*MVq-rYmvHx^9p<I;Txd;|ERss5wpECVZKa*H?~s3+3IHBxig}Io0oO&pkys`Au5= zR&Mx8QuctrJrT7o+qnaCDvurb>;k5{p}lMn9x7FENGKH%Tkuf~@#9Ko^jFv1-DpR+ zT*SW^n?O-Q4g>Q+RC+~RMU8Fh($s6OD2cZ36jLs4t3Ij}j+<LS{Mpe5v(+4LJY~OP zoz*ahQ107`?#eeX$|%e!WYo~ci{<eQjY69}Japhh5~^OocPyxt{_V|o@J6YhXlHu7 zo}PcrdD)VJrb%f2Pu$ee&t_Gg7``pDfSFv?a0hY4_SQ>u?~UUwz?TnY&n4Rx{vwjw z6%=<5j8yjMDxw6vg#$w7D+|$opeStTVnZR+$qiw5$y$`ZmV>@WTzGLSxr;WziySB< z4=vAc+7|%L2&_**wHuKEpu7cxn#Od&MA)Jr1(c*9TB1k%ktj{&%F(?LN|(I&XtQ7N zi0A>2_8hUAS3$JCH!ZSuTjYcW1Lm{jSkl~@$Zk@tChxt1zYnZbW~`ox%JTAgp<He_ zNe$OpOmp>eDxYfJ^q}7p>I?Y-8O4`D(T!HF*a=6#E9=6zkgDkq+oh|sfUX4J;Sa;* zT<g~AEzXwhX$teu&+(lo4%DjSkQc6p8-aF3quNletl?sDI&7BypbWXL-TQ!bcD_F1 zfz|E>xWKIL>Uj+Ff%3e%?^pVf8!{OqiGSWfAwMp(+Yr>sQ>b}(9oQ>;l$uHd$DRC( z0LHOw+RUkdvg#iMtT{dVEk#;K-4?l*+wQeVw?`W3zdn3HdiZHnJA}Xdev%36N9dk9 z0LB_|F+Rap4-Lzhu-d~)XGVe~P3T4bJ2gfBhi$h~Y$5*K^$&$U&7UpWGiJ5`+wP_4 z!6#91YGiO9jay6r2qTIr{ZXUj#((4q-Caf8$_%SW(Wx;BroStB<}rm5cs8Hf*H;IO za$jvYL87dqT-eGdmzA9bR(L4$Mxt+AT#lxWN@vxl90yZ%EzPiimnWt2eMQV|IjrYw zR=-ysu^q{~<WsnGou?Zphgt|EN%ag{|9u^9#RC1B)TR0?x2B=Mc=7z^u^!c)A*luC z46oGc>lt1Hp$%kq?eR@@&KC??81{{O_4p4?y8rvT1k4#62)+EgMfZg*vpXd`$@S$o zyY4r09I$SRNcC3p^^w&1b?z<`w5_k1KSnT7eY+eQX4WKr;UY|Iu)MV|9OB-DUx<@f zQ}z|31Uo8f_!ru~svWSVdsC9CMoeBvaO5pq`%jVtsEpdxK9Q;=T8G36ogO;vDdeEf zJoW2Lny|qf8~B9y`3Z5s%?SSx<U6Feea{lu#kEc#Srz9xuMk>L2;gF~IOHd?AZ+#w zZ0aCOZp3;H*sUhEB|m_hiDCIvV)JsW@2DyQlU?9}fdj)Cv|JOIE%yc!1M`WM0f0yn zb_#I1aH-SIyV#Qj(3||+GT9<aYuyp&=3bbu4SGSw{1Wh6i&JM77}to&KPq1VEi>Oh z^C{;OlvfLOS6T*LTX|*%t`GXeIioZ2ZYryXx(LF>^Crx2>w@JF>k3~R{d+<P)BB8j z_huSfRLrdNqBR*ONwyC(Ai(1IU)>$tXN=ho@M8G*UqY{soR{pZe=vCRDL)!_?Yd?r zPy0{cC<5xsAeM7@PUGMtsTGD~w62ug)PocFHpP^Nim4CAuq^kRxs-XehkF*y0G72E zj6V4?XfR%7>iT}p1*00Ng~+}ImsJB3HRtwj;D^_|xllB~?s7p0@4Voln>Cg%LgD%@ zV+6_`Jw2IOHtK#@Sqrd>E&+7t?di#?bdTEq+<NKrrJ+JNUO#uG3i{Hu=92ye6#cZn zAQg9<o>tpV^rHihK$Ox^FfIu9vOUa?I-Dt!3U`QF&2TwY9i`CR@wy8Rd;!}=oW2VI z?7k1Wgf^B1HeI`dbZhD*Fgz<aP6%ac4~l>7PNJ+m*web=ct~l_EZJ;)@(=Isk7{ew z1%ZL4N9a6R2-vy@aJg(S<p0Y-EZD9BBsAoO#pjACl<Zc8Zw?<j)yf>mMztqF$=pD) zr{-Nb7QW-*c~lK?mVo@Qvt74qOo^$OPx0h9OmQN)mL&$zhZj2MURQI?#xEN)R0@zE z5FUIa(^OWWGwuP&y9X|Cr<`SPrLTls)a%3amI{%N9Wf34Q3fQK?iO@ml}2<MhT_|` zlO5AarQBC2Jr%J4IvC)3EYbs!_c(jr7g;E~IY&a>9*<uTI-W{h1IV1jy*u<LofN=K zuZ3_qs96y!1Fu~A1RuT-Dpd18Nc{gB;Z3D~7~`oI<({$sY$CRP>cyJ;X^Oxzxg+1% zX4t>%EW|XL`dKG&PyJwPt!8L&t)vwtUHCq!@?n6SH~usppf2O)UaMQIChaHaZvju= z6&Z(QQk0&is*JVYv-~6jdaQ192P89RY>n8$Zlw>3Z>m<kaGDxtVou1UG+t-UQrJ{C zhRIVM0jtUc>>F3Ee<r+lwVs|6mFqxEcMJzYZbR?qL;Xq6!}0M}R;jXA$JX|>0tv$W zY(Ajc!QtB56u(m`&Pqe;P07-IrC+eckBaf3+5jiB9=>hh3gM)G-;k{v9A6ix4#gw6 z!1ESQkWzsaXT*fsb42IYuRP6QfnN*FHW##Kg=4wq%rQs5j<NpY*uA?;ZxVmaFj)T2 zxAyzA*@EnnGr*##t@Qz2s6X2-X2Q(Qz|#DBn!x73-FR-2On7(rWvu&VQL^;uFw)nr zYf&p7343p!0hYieSj*_i93vZw(_^PaaPD?|w=G)DH?lkQCS&u6U)2LX@E``brvL$e z%-^s}ZKn9riPZI&GVuYU%EH=_9cQ_zKlQ{7z~7VRDqWlq0HR!8_4K%hlog%!qg8ND zszm80)j<{%&OqI&nYXLf$RrGCt2g;n2*tQ0Hz6aU0LpF)U)P^*3IGc-VMPm^yIw14 zNdiE$Mg9I%Lsrr84FsgWR65_%ck1r01S$%sM*5!(iRt1hKKmLhWTy0yD#mgFPh(Cx z(}}9{G?l}m7be}A&-lZ<v-Q)Nz?3w{Aoi~a4&X8BxPw+?T9c88Ljl%j-yankuD=yN zz<c$zX8MY{o>=sJoA`#?XjfcPJ;ralnqF*vqqXS#^Z2Y%wymO<jOUOQ-hkm~^5OLm zm41&KJf)K_Z)0pt2#tQ}mvOBA6i<xFWs?~K0K0O#^?Q?POOPx{O_uJ7#D*HFgc924 zLvie;4o=y4U;C6x#KLIxpKkn}3J-O}Zy66b=sQFy=u|3naQgT>*w_98Sq2E-P~HJw z;-`<GwdDxk!t1U^aA@Nt-vicf1-b`p7+oG7%MbWGB>lgrS03NBKQVJAKg4Y%67<>u z$NR#TRt8!V<<Hyw=W3dC+1i5#M>Znl*zyHyOh7ZlyBl|~-gbzR#jVfcVo1wWKk(LH zuW!1)&jhFBUq%PSzy%WfHJ?w`{M?<cUO%@WoLM=h+!}hFly9AP{*6QA4H4T-!^PCx z5!UPJv4lilTS<DNPFb%C^-tqz#%)4k{>Y1lE1M6j&Yte_!o#g08hxchnybdjNq6t3 z1kfekXmYtfYZ~u09PX$YtbGM=jrnv~d;@Lw5@hCVYI-U(@Cc21@3=1211Pihpi;R# zGx^z>og&yq57kg7Oz5Tsf=g%ak(Js=6gf!|`+xKlxPVXLcL86E`oMj-pis%$+zHpP z4u{+j49GMe8}ry!Er6(M|BdZ##@y3T+t}EcekC#30$1Q_Orz|4R`4?<2s#y{R8wP0 z2>SkO^g>{5He>DJ0xf*Z2C27=QMMJ=vy;+Q9!v00xe=VM!T!|Q#Sz<L{+=)X)UD}6 z9sE(^(Ix}SSiR^8>H6y7l^3qtZC`z(2i89hI>YlhLKF0M1tV))N^yL1QPtu{zBd{< z=t?MkGx4Fl>$Nsapf;dKE#mj4%kzvGXwN2toc;=GhvSo&?$u)?gBdvZHsNt=u;v(h zC(AXqm($1fQ2cTSHqw0S^lj(eMCEj7I+}L~@D%t-Hm9oz7T>h8L3$VpTJHDAMBYpg z*KErW+70#w=lgAIbx*ol<U0XbfF9@$pk2+-?)!H%W|zHeQvD_pgZG(qufhdYoO>5) zP5o+%=wb6Hx#qBlvIGQSchQ#~yM40oq}DA00q{%14^?emf+HzU-H11TI<F%9n!G7= z?~9$9VIl{LI9jwY#SeIK77(t;dX0BmEM7Nf%ci@+1*R6{+SBZ$IEUATF4iTV*6c;^ zZHEubcX!RbF1VFan&u!8NMFjDnBwQM(z{D%@e(8zms*}Ka#?421X|dm_0^`+zYe6) zPj{j0$^q%mJo@&)=*}dJ*+T<NFSgk`p;x5hJn{yzeS-j47hv;8f^A_u{~|lnhf=M? z1GE!@7Ml<1c7;!9arp}9oS38fO<CRqOY1#Q6C+9nL>de8Yk9aGc?xNj3dC@t+v+D0 z4w04lAs3%Dl~Mvp3MoYh(p~xPHYWR^rfbw$Tz_4doTbNzd#4xhBqrzso?FlDBdNwS zXyKMi%$VcvIkUh4#E_%{VtYUJQ*J1a;M~_M*;B3B3okCSjKTf}q@+UVlh!!Xx>Vpj zEW#bCh4A?MY}r#uB%i>%JeyEu_frIBRCJe<Q{;DA7I43^7p=*_dSkZI7)7lz26YAF zBH9^gfdW64E~b+LsYP|#GlJy3>fl}JIZFLmzaxGRtu&E`tyHd#pkIl}Z5wRNy^II0 z4mP#z7#BymAxB@q?s>zSQ{HDw3Kmwku7ls0G}*i_aH2I`j4*4~4meA=(5;yRNkN}= zcQp(U{d0qjaJLTax`^r?DMjzGsG~L-{=T*9n2_pS?J$|x_${`O4Lds3o#VR<f5=u@ zOVvd<(P=cY136NvRVAN1dzkgjiHwukPm|lP<n@A31X>&4ii{@%u3ZOpIp1#lDktlx zr^^%3E*H0POCg~|&U2O-^qk0%^h#MQsMts?FMK^|PFl{yx?bb5b*LD%vWfM&jYmM~ zI6Y4<y|hHAe(Qe5`M5WI#q-eH1zT7pK{x9U*u=Sk>_Tjrz2s}NO$Gl6PR~)r<0L`l z-D%7Ty*a(k5ac~@_s%^L)Xy()xAYnyRPs2=W;O!v|Hn2lrMa08)usAjJvXU%8fZi< z^?lq4SOEY1r2%jb)uWh$#+966h*rycAKXDY`V;Q@l)L+MO`h?m$+y}(v??p`kJ|6> zP|c~Y>3{&9;_CLzO-<`w<z>2Pq%AXcIeb-IB_A0U8a(Md^2x0nmV^{rNhVa1MD&DG z!|25ls<Rtqtl3Y8gW1cU&4XKsA(uak9@-om&0O*cskp-xLTksr$5sU{+312!Sw?3R z6bwjohlw16st;uEGys;cugo5hYzHt!F7Dn~2->YxM81btgzeP+Kqr-3y!Y~_bP!aW zes@v(X@|8ooeT^bvcuSBBY%EKs}TxOd7YCimL^L*Z#rlp4}{r`zldh87t9qm;`rzc znK50Fj{)t}BTi$$wo-ZYqTi<1(tN4LP-w-L<Hlvp((ILvl+t*f1q(X`S$-W~>vJ%+ zZ8YD4*61sf2Ge`i&7}(cAuH{rtMT;5=+B1MLvx#`)ID6uF2fqq5x_9{Wv$&7kj{nm znD1Bs|8A*~m%q%iOPlcbLbWq@S`PkB{__!*XTs~Mwk3kuDZ#PTNX6vRiTmp_Cgb_q zoUWG^jTa3IvY2fiHkJ^R)FDG3=D{6Oo06(VvE2S0X0Y!&bXvRwW8T4fC#9SI6t^~V zVoP=L&Fd$)CvM94&pvTRpM~BfWy_On$}X)Zk*-WtzVt{y{4r!{i}tX7g!ZS$djaKv zEpNMzzcWe*1zuaJE*|BZq-p$#BtzRboV3o^l9emQ+j$zTi#-O)A7bt(13HJt07Eia zkutAP=#|Mj{aW2!y9xnt?a8cH67<8ALFZ&&AhT-(UlUD7DqSb5+^O`_DNreLo;DDD z>hN$ea#+CRX;6Z%?|z}P=Fj0|VtZD#-b5_@%2@}I#a!fos>gAh8fB_(VMMM2C{+Gh zvmDYvlUw@QQOB#~TRT~0^Iu6OAXh$2RZzq7oqd8T|7q}xdiyP^>-A@+wNADngR4E{ zUSPlH<X`qsY1Ei8ecvy2n$hrOM(PocgR~ToCo1UXhd;I_AY<Q5*pH=nC^)ieC7Vjw z=Pi)F!_3K(i-9GV)ySnwB!Ofi#pc;fsDID~@rD|0%_<RlSxqv<Tl+IeTy3^GlygM+ z$fAZ^N9pf6#`ypa(io#=pQlA4kRI`Uq0xjuC7+js3#S?|3;v^~d0fAJ=bm*i<5V}Q zPj|nP@Bro2iZ=>5pUMtf64}L7h5x-T?{?X?-Vl+*^AWadt3z*XoUc2P3ZOy7@UAV` z5`0J>vE4OBHWEY&rp-L*#=bYdC)xyz0>g&ZHU9d=U9^%B5AwR!ZE=m7BSJT1R=Xsi zQxb@7o(6z{HFo6}p-QZG82-D@WruSzHl-v<5AoLM*l+}KOJ+QgJE8-Y^ZR6q=xBX{ zIo4{kQXx9k8$^Kx2#FurYx;VS)2aMeceHZuqQZ441J3rji#OYayvE;DUvo;F8+MG; zr_9&fp~&{S*mO%7myOliXvzh(jE{=Atn%tSA@|D_g$(p~*KfsjRRMWD(}2jmJL5@R z%`hJ9hCBXOfg|m@*k@;a0>TSMY7H1wEi0bXs3YZQQQluV)5CmseCedbt!~jbYx-_~ z?Fg4%!E0IGFQr(X8spURDRwcSh@D8i0`x`wYY`s)7{cZ2{atn9a|F-H$19?IIKAuE zerkL~#H~9ho2Ys~an%1*3~YtQ4+yL`yPbPCSHSszsAEUO2m-?5_LHg{9otG=A*a%O z&jG#d*aI%zRj8HoDoD2wGs%?Lf}5JSUhoP}CMmi{9HfdD9OgEw6FC)zpoMuZ=g{Cs zU-%*I08LwPp$C}<te9-}UOxXh$ud&UZM<mrkJ?ljI2q{GH#ViNyL|Y^n{rKE{U-ti z{J+{uv2%j>8}AM~e6M-Asts2fIiY5o88Z8YlogkHLG$cu^4YX2Rn+BvE9}Xa3L4PW zeNnY3mc@{HD>CxDuPjjg)<6rHHTM+9_eEHT#GP5;j4uI02<EJ|D;vX&W@P3=JM79{ z)*fgpeQXIhXt)3SdKamwZ_M_qSAOV3ER1=+7F?^g`Xg!EivUlV(_9aER10wxT2>f2 zmzmSOeqXp?#e#W)zz*MJ8TW=-B>K88su^ZQ_Cf{K8fZ6oa!fkwo77ya_^m{6h#<wy zfsCGYhbkyzphcAjJhC{EU|Y@g0|D<+I1#OKJ|9yU!se2j&JdhF!(u;FTDeEO$-*8) zJisB(H1Yi*aW8vV$UGmr?EliGkDgY9O>}rD-l@J@=YjBBxEABw*)SluH1j9kC$Z7J zYf?C`vdpR)H2~=|te;jI8;YO4FY(t1`i0K`Ab;(BC`g@F!18SA@Mz}bLyj0JT>8T_ zx3lkjW4_%D#aK-a&-CM!Zox5+ePx067>fK4XJZ{aALA!@b>^pwQ@`N!^XFv%H|O-c zo^S8Cqr`AG9NvK_m=1f@AM3o-at!IAox+mvdMZ*<{az~?>oaR^Qca|l%4%+>@#{zQ z_c}vJfhkb(3gFe}^WyXbElF;_L=efX)|d_Lgo;6<YNg<{A8#Py@gXZGd>+f6$(^Hy zZj|IW!cDOLGtvGY)9$h!KjO1%fm;rsU{1y)Z0FZLmZ+N)(JV4gR_r0~+c$jI;HviR ztcYysl7P78?hTZ$x^YvoML^_#&=AA<W5bJ8rRHeX?K`6?nf+`F7e@BL`PL7H%h2Bh z{UUVdEhKnjlsjV431l<EdTI99a4r-2!-bR<0QOi^R^+TdfiY>?>eREHdwswAjY8pN zWCFRgV0?icFy1Fna<?v;7hFbNP1)&?+10-4)(icHi6`oKwvV2uE^$!MNDXWgL3KSr zejL9C-~{o;HEbv=v)cR&>%MhCd(q5TPPT>e7JkNfjiO0j2oQjNtoc`lti*Rx#_Hit zfd02OPbs~9eeVw&fiS^t^doTVy7%g)O7HYF#{uq2fHDr~Lwq7pVY+^^P1)%ti7?iW zHzs_SnnWY9f6k<f%l8pg_ftE(ZhSY7?#a--Aj98(k_XTRFvpQ^V|6dM$$}JB&_C1T zGfwAYg8qQ@Z&Ec<Q-Gh{WK|=^Ww2iP2=nR?0K;>JRi&>)vTq*-k-C^i(@IR(ZsbTu zC*V(p_RVquy2bejW$KsvJ}t-_FpVDtQSPISSN!@+lsU!<E3}sd?SEY<!<<6@bdm4o zA@5AwsX1Ni*9h}X&Rr-izAm<XH6`XVen>kr&dXTE3-H92##<R@>R%Q;O3Sg5V&w zFu(OrdFFaEjwq7yxYg=iz!<&{QDkEQ-=U4|hAxT(O&<)MH}Hh|Pgsz%;+iA3&b+?A z@=+~hHn-PfIAD%}w4>$Ek^b;l&MCR<X%QA1NBXd9?xDQvLb;Fz+cN<F{h;n5FlV@x zfs~Eh-FU~pYE?)T*NB9s&fo3irErwWjUV+(j`l0F;nj5q8Gg&Q%x8MG)#osI6WGs1 zh>lUOMd5g+>MjnBu&wDUc5E@k%RP1h`YPf0oAy-|n)g8tGZ*I)iMXKw!<|cyM=Br( z+<3d5kS>T{P&P)o2~HtG@0N3;rsX@mKZ6PfLjClKjQa7<1$jmS1qIDA1bpZ=9}pJA z>8Yx=8>jDTR3oC2yliiedy~UCecFB;uvuAsu$Ty&tg2mK?_BvIm^v3v=nIW!5Rx0v zyDqNQ<EUjn*N+TZ0Wlz_;a_WJ<3vplIhBc%kNL$~Kc+GTC@0))`@U#JPbuDhFa2gJ zIJ3N)+P>0p3+T7MoXqpYSR$}p<yyPSv5EUe#I?T3&%OfBE|=<E11^-u1&(*$1H7-X zplke(F*Bd;R>jk3$mWQqjWE<`>y=Xlg)|+@ySBhGBmd8Y+u{M=N^7=aA)3|=2mIUO z-!ExT0WO35`MX>BOZR^D(9^%94znb_qg@r`|9(7s99YFI`O#D1L%-(#5<G4{v(Zk; zMU!{N@s=D6E8~T|E#5?)%mu95Jviagp-5=*lj5JC<b!Ax&Y5L!)g7R+;Q*Hy8J7Yq z0{Pt*oG*XH*GiU1Y}3)uhXsbZW$N!-G-JI#UAzSz^OnDa`kXI+OPT*HmBV8?;(+F* z>WctrmL#4s2HF_z7)sp=AKSHD59qUD!5TYYJVL#&M<WxvU$CqZ>z!-!fDxRdiv(n5 z7Y|D1lO0G$wogtqTMHP=#hZ_<ofXn$P@Bn*KJ|BCUoN(ii{7-OpM$2(@0Pjv60_g3 zcqgy94g{@UnW_CBFUfd9zebRJYm1DWqIvDIslDSPhEl^i<}FRjFPXqJKF104z%(^> zrdCn8R-M8;-YnMqsb{rm8hV{o%R9|{qZ&HrUL{%LtN?0H-5)|3YG@BOvs4dDTKZrO zX9>iY8-x2c)&0W0fcS+u)fWi@6QP%yMC=B%hA~>G$N(KUUB@W|2x~<Gs$MpvfX;#L zT#C<*PDbhwbf!Yri@&r9vk>pquQ}L%#`;Ozm;#|xy_I*9eE*k8*Jonp8apNRmc6S& zjJUrFo61q%Vj8cf@xfc!Nf-9JBOt8TmCP$M`?4RXaakRhigkWjb)CU5C=Y#2gEF7{ z<8D@p2;=BQ5-QJ#Z{aN|AuWghSrMq1wY?PEt0Rl5S@Qs*gjS%k>yTsU%9_;bI zf((fpZqS&Nb*&v?gyyk$Yu~=D7YL$;WV5ss+Y`S&Wr4p)4Ck;s7<d~<-~h<9`J~Xf zm;c>0wZ<A^h7lCb2@3}U$hoO?S1oMu{(uk_+4;cxO0l(_Wx5Xa3lqXf!@EhuQmW`o zm5xKODXhB8|5g9O{LJga4h7M*SGtSwpttB0{ea=wF8ifrX&9|3sGMmn<?9IHSwU*F zZa{j<vkhCbb)0TTDG0=$?TZGxFLU-ma%<F(=kB^d+a-<@rO`HoAM4@t|3q&}jD?zi zeQCft0|?dCY;#COtrkh`d~Y?w6xmnEBo7v><X@2;Esw_oyWISwicgpE?>zaR&+QKo z@gheYNcw^USTk~HeZ{hfhyMDiPyA^zxgAiMaMVm<o}MYzS?~}d;Gxxk$J_SwEBoz; ztH4sA(8KIHzC5jFbcN_SEZ{)9x*6p4$^$JixR$q^4J9vP4`vZI(y+>{I!{dD{;Q|Q zymKH0%xM!%u834l%y*7Mh<=Z!3ghl*R93p;4<UgY=DYr(tVWZ`h>4f}6oN9C=(cc= z^U1@SzJ}@S%YZHo;Qa|ca(JiqrK+p<>iUIR<J+5(pD<W8l!ak6Md3!f!hhM4Vn3Nk zc&}5x(HmY|TC@p^)zZ|H=2Q&*sG{*PQk0F{{^~$b-SsFv9|Y%%*sdqv!}ZH6{GXi~ zJ=d0v*A<8%bj1n@i@!*|x$u&YGsvWAv-pIDYm*RCIc%c<{W{irK=b%gh?Z!B(8t`G zia&tVZ)pSjnr>~I!bF<P98{oH3fd0>NvzyVjf)^9az<&&2HaG9`70Uy_udjBgE{Qz z>01?QKOj-gL!Nx9B)@HmqKdzKX~Ag^-4nm>jv&yod_SqVx8Ua>_wx!IOBGr=B7nAx z5P%`SDNrs%+q&u+$|v-7M7*<EO6hX#6SsL%n~7bswy1q_46dZLS!z7DAXM)(fh}9q zaK1#%u~@zq-sBs@^mHi)>dp4P?y%o6t27kzlZ($<Q_DPDz}^J;_EB-}pBO8{1hQ8< zwL)FhYW$shAnRRJU4`rqbAM$dA7NHqaoW$4o%Q<jC7i0_b)+poE>S@GwD5MR--bL% zu}7_}_S6Vjm+RSADh{d-mmkOd@Jk>5ES?TtI0I0ZR{0rD7kd)Ym@Nmhf>e6%AQKk8 zy$;O><_x-Hih)2X`g}6Z(P6rEds~btSm*u?RJ2KaiJW{@p_+elR3)oT)L~A0DYx?F zNst4zT63seDL-~M-Pos($atYUe8hZ1bIC1-7C6a>Z~p&WcJhoLr=?}(It^kVIQ`AH z0w<8*t4ID)KX_<U6%I7LzN5xWJ&G9;QofdNlxmi5>=DOJjv#=5`d`=L35qQG;g3jH zkf?T8(1x?$>XC1adbmpyoQvFG%J)t)i9=u)z?v6k*g!OM<#Gs4TN1zQ^H`#r%Xm_X zYrWQ_fN`?Zwm~IdJ$LsXTgSFmpj!jBg@QYRqy)zFG<TT}jmjiTnWf2(oBZ0>6Pnhg zta?HnpV_VV4@u=)<Ki{F_dfSfc3;+C<{B%eYDrE@KDQw6aNw4<jat(b4N?3nlU|Oa zErH=4A56CqfkgVWWK+7|)D}6UTK@i6<9s#@4XA252>1W`fdW>n=cg};gn3oKRL{HA z+V`!61V^!w#&acz?mozScl|zoP1~ty?JA?S8B_saPn}ID?hn#a{#Au0vPCp*qEe}0 zIsk5skz<?0w4MY}8-57AtyChm)m%rA9A)8kxp5UxTi3Jqi#gd^J}tG33@a|GLa2d$ zD~~?btVJ|BLT=Z2NGfRF691B-!jc~e8nDmv0-{L=YbDos*_4;{3EZh!bVp|@I~6A< za5kOhUeC<EmF$O7OE#2DerK#am6R!sgCLz=fN@->#_Aq_kl%@T&{aFzLGXX*-uROB zclG;hpfqPtk?d5-@yipK{T!;4eJ5^3U2nOPeM(Q~`*-U&w_EW2jBn`)9PnhgeFYqc zl9IOep6863R$p<YLcPB!ApZs`*!suvsc!|SVYMF<o{jnzhKWoUr4AOsLe^%c3Wpmv z+(8!%pp8M^@miK2670eePw$JA>ZwpFrY`QYoO}5m&VaMu^IG_<r#FUi+;yWQcu&2- z?;50{y)%@nj#Y+?u)5zz%n%I6s#)~3-@BPLfqg>BY`E7dAQ}nj*K9<&s{F&7n`rhU zM{e(Ab<p*^SK$m{Lkr+J9j>xG^Zzs#Rf`2cwH3>3!L~%GFZ!pFJ5j*N<bLhYycnF` zzSoB01x+YBk=mJ4p&{DJ;COwRzEN4#KGk73zd$tooCgSiI+s_&l~xYLul<>_9@nke zs!E^#dKuOKDQDZ>rR*YrGRR-BwMnhTTF)zt8jTbV&2Jy*%GlN38ngwaK0COqggdnK z!@tD<c%uq<0X$E`2g4>(Xqydl4W&QCeZxlxo9JKL#)~jke@j(=wOQ_hEWuV{Mis&& z`~lnb8UhKqm(7+JDFSQ$JWi_Ru@^o)qu{O;$LuYXe01hkRV}-{#LV#{YQ<vb3Rcv7 zCD>2YRrc=^O$Yt7$PF#Bnj!v9U9=HEPscBG(HJB5g7X#d*DIN&i!5G$PTz1C@;lv* zw*{^iCX&INz6iTkg?fYcQw)u};vnb->Ot_wwufmfjea!0H)z2@T+tuNLWUG3gW8o{ zl>fEQ%YJK|2)ojNj^Lgfd!3tni2o``DliKAeK1xuBt}rc9@-gep9kt6`fQB}K{XB- z^$xeCWuz#LcJ^p|060W<{}bbBw8SSx0UVhzFsqY0TinY}upYZ++KX*EPu?g(%XLxB z#ap#bQm<+CTxSNig$M*Z$OCB<7C2*8wTeQ++t;iuKo{R3x|IdjQdjdw!OP<`S%CS? zL(v!oX<P)(%aC6mmH49dM*Yrj1NLwo?f`VofuB@ZoaX)_qy1HA8~uy5&--ow#_$O% z&uxaUOuGqRIgd*jmS*vObfXMH@||DQzTA7k6vL`7!gg2H?^AeNB(TqvPEM6tH^&_w z#jNUsi=u}O-KVj`<*oMWX4aUdV@GBt_(yKK=J~(UEyF-AM$6hz2t?WU<dfZlR8gK0 zo`&B%*%^`Gx=CfAhUiV3veKXTG@Y9&ub6Z|{4I=mHcPFr#ayAyL+z5X64@aY7uWh0 zd-m2Xm?X`uN0!4gxkoofwX41kG*+so8Xg5);w4HzGR@s)mM1n%B19v=R1<F?5(oG& zZ`PsrwW~7IzTHg}LjEDz1nvv9I14$i(Sct8w3GD^1AX)HQ9;uo%V^^E+LFVv(O@do z%NyI1u*|L(++{NN$=FRQQz&)b=8qxF$VpJ?0W*S!0W(Zma-Od3mY+Y@2Z-h=;3<4z z&YUlK``EuU4Ash}FG2PDd}r!yCM2KtaQB>-oKopA%7z}9j^r6@0Cu)&he8USQ>Pxe zo}R%$rEYQP7&q4hs+A?@7vN9sEq=w7e6+t)$=^o$#Z@-Gz_x)aNp*GOFK85uwf2Hm zkrma0i2&j-&>zwHQgXSqX|kjBvQd@ZcvH^osjN_Iag{zw&s?Zbu(+DIpa>q<^7~^@ zQx0Q6yV+|>cUE6Yn8X=%DxB(6_~@n!xI$G9=k$Dmqnsz9og#2ms+$57KVImJ_h zsmHPZWIOnDAYb-%yGGPbLwsYL>g)?B{tn$p!GIr0b}A42v$ZC%8fAc<@d4Tlu0e{8 z+C&F^oiEk&mG1)C7m#x};g(|CBEgY+uG-q)`3@kuC}EYdmKkb77f#JJ8a+m=a;2U8 z#KJKCL5~BSSLa`Yx5NXeg>hRf{-weW_0w|I*<H16KkvRq;L^XU!ark1+lGHYCX?5C zORL5iRf752_mWPRMBhtoCyyXlIt@WDTKX|JxBEvs=`W@+!C%aF?olp&zRyB0XsH#8 z_I*ISbNTD$P8E*DD<M1;KcO#icHzMH2aW^!_Xba7g}d8nSC*b`zrTcb6Ph0GMjai1 z_kjIw$(^>!_{!kxqwo41_nRz-o~!fxw}l><E7Sx<-2{#RBv2`^RAXwfwu$)n?#b^T z9Dc|cg7%(+W`t6%P)WUq@L0EG1*y6!RdD-SsyLgJ18LB+3Tf%k=}}Ad?m~FNE(r&y ztcsr{ra`ys;p@x%fLmC$Ky5_^{#n;St^apI2XO~zx>SVszA=H`eP=F)p_#rFv=)P1 zVgUWL`EC~-E!9PSJLtbpf5j&Y_7MTHURVL$T2*rx+@2-)&DK<t{xw?Nt-uJ4{Fnzg zb*n#>xY_8SP;op%R9w8cx40mMb#sNqaLQ75s&-MVx2yZ<J|-V<WK{f70jvF`qKN3% zjxDaOt9rvJ;1!7T;OdGod}TEa4i$`Uq-7SDv%4_lMb{p>K8t33BAH(qL^v4`Krn9X zQfFmU;YR#k#u^x{0lG>C*f(HPFoQncqxqWDPMSOVIrsOhqw@#a$>`R!T5MzK8%REM z(U7z@QpW<UU7xLmLg-hPBI}@}r_3G<n-v|`a8l?KL3CVpqx1<jgrP`EuZ$s7+=Ica zyW(AU^%|I_oP}qE>Z>#fROh;)n(J=86^TLuF1d*BsSop~{j849ZQ!1o6Q;Vc;T;I* zHUkZ7<k6APpAFhk307uC<1UgSglJvIrjp*>G0sflp;~yVcdF)UJ{gyZZ8=zTKDiEJ zBJm?5c9&>rw&=LZ_8IU>0D#&0f0EQ8w(T|(mhwFq9*`K@c6PCbNsy?(XJAF~=2KFA zsOS{8T8y-=o@MP-wYIkJNUk{YBmJPz2n-K;!t%41qdFSAD<lim2T4*b*ZJB!p1Xh; z2EF35ZnN91L>=GD<L8#HJ*QC>y$)!VoGC!dxzK<GU;RA^*K6YSC!O$M6odGwSo5$$ zAZKKI2*!&%OpDFHUh}@G2*aODF8C+KL;S#b-8<SE$Azk(T7J7`**v%5w|$DAa|IXA zjT+`x5Fc2`^-u#3EX+uBVtexl8v9(2tJ#(;@UHY2j$c9w;sh$@RiBMbfa~e4ezv}X zOPPRG`2cb?M3>e?<p%oFm(BEDOVqBW)I#`IY+vv{3Z;e#S|Y_zz-gSHA?gxb5$y0Y z(6J)pRf><FE!B4S^j3#8_TnDhFutU2nWwr&IbhZ5MEl=snuEFV%D=K!a$&z{`K>Oj zfiaWU#C`rm6DB6Cx`BN&L@EjxF^b2&NEBqVPREvOi_wQ}E=&|*CzRysh{x3VE4!g{ z0bD5uHJQQNap*LPkPdUH9svH*HvJebav@#1ZV10F^>axvCIbis%E_rNlx6q%z2Q!N ziS`zF;o?7}7&}?qw;Q1Jd^Rx;oE{h)KuC|54j_)b17~F~Vtw|W(Py_!HON46A7SPr zVZP)wk+sd1UbGBbKAW0(Nr&EI*ey&e$hu$bQL}~tJLO-(r^4|@z|zq_X_a|&RI<lo z)rw2QVF*B#33lTKROT>hJPyfj<{tU~_L~BWz}l0uft*thrjELvdUj&UL|?`P24+)X zQ<bJZSHjO^PO`g`q~+=^FT8ON7VMkty_FAVh(>&ybT#t;R)EbwDAoD#g3>%Ta)M1d ze{z4yI*dy-%bTm>h;^qm=){6Wj1b;ORqHQ72b-?LVWG&=n#~Z<$%t~j^~k8N73Yn# z2r54qlOdAW-uf$g@h)dX|L3(tRA2dGgK1QDcvZNXQ5!{}A#Xnph{44_r^Fd)AO~B; z$UP^u?Q5!fR4=VtS`X51`)bT9qIGO(=WQrBz?3ilSk_sMdAcHWR{UYnkT=Cn>QSRX zjTt<J<+A(2n_deoiSG;Ax|<yC{<Sn#IVSJSY9jSbMUXYQsH=x_I#c7~8e8fDxE>VL z@yzL0={r!SL6B@}+Yr|zDdjh5hjr^5Ni}%#M>5*C(xbI^_LX_LyXbKaB)*mGoo8Ib zfvs3=;8fWjC{`1yuW{gTnm?eiQww7A3G*LvSywsG^#SD~m#90b=Au#1l}sxp{*=Y6 z3hzC>@lUM%8rIXEIlbzx;ba}OaT^{q3<4G-E&j)6;{l6lk3U`(%ClaCDq!`QO1R($ zSX@j`;}u~3?DkCoEACYCyHn`L5=D*(*~}hWyx;Bdp-}bAs(9L!=W7_NvHqU(FxWM~ zIRSVCH|YP{Be;hHIjSnet8n1rSl6u<jBfoC$=6C_qAx^W1v^LW>oEfZ>uT8q#_(Cj z&!84jzBKcI3mNz8s>6@W3R!`)Gi$%AoE2{LczI>8@IXEaFr_D%xi|-JoWZUO^ug~O z2L;oRhJK4l8>+og^89zO9AaT+?!=o52a)KsP`!0Mee=P_Yw4cQ2e;3zEq^-@6p7dr zcN>#?@wZMb^&E8c(Na?~NTuMSxFBllPy^94apKYw5ckp}m`5^kZbLueNqX_exfsWC zx26Newo)4NkIJLD9e@bt$3p+Xa=FxsFgekWP7dxsEz9=v&8qtHhCv74o={)Olu4=G z1X+kPXr#KGYLF8Fa!YM}v!Q%+n1TRia^S<&K9zS9>YEGc^Bc!T-iKlXLz%N*N4Bx+ zp87LOM$cKUC-=axfEjEgV0)&`qQX}@%w^zUJn^w#WTR<~Vs3{G0S^CVP4ht2Eb;af z(2y1<HA!VV*j4qVS&1WVnsWPD2Psq^{|m8q20lEkL3}rv37PF=4yT&(58pAK_ORc< zGV%<3N*yB8+zGR5vY!QoVNvSnOTNc};C#|pj`iB5JAF*WazL(Z#L}zG696{a2ZULQ zyBbK?NBgm;qecZd1}AiDT$LkPEcprXY7L4<p}>`(mfrz1y3i6`km$qFBqGhn6JI&4 zxi4ycGHboYlKr1&tgG#EyE*n5eZG5Vo_rrmzW?65j`6djAMja`1vMuH-@|q(yUg%6 zRUVwRoDlDNp7$=>WiHim!;{ghB3K!70kD$0WXVPAo`{1BT*fu<s$`#P{c%3VP0G0H z&BKZg!%y%i&ZB=717fNEC*51nTiGHRw3#+RPTW^=4h$28iC)NRt_@Ws6b2<}LD<48 zD(h82NV37Ek&dt8AZ5j=tFbL&y6WrR<d>7pYA2dOWBC~`^hCX?oUdxQz6Yb9xhGE_ zUa{2)$X8!{)U`ROU4yFpvQd=;45#>^30|9mmD`$4Hq<qw8(OmowZEZl_4i(*t(?(Y zX^#pnmRL`!^?a#<C`rQlrxxb|s;g>^<h-srHoQM2{yhxE8Oy1WP@GK$dkg3hzW_hh zZwG<&2lBI$0j6FmO<Lk?9m5oKZnJ;6k5(=e99j<zh3r+g0NgjPU1#7~<9*3V=5Rcv z`Ixgs@%m2Z`!nQvY;Dcn<2emDnrpTc{*2vS8T$}KSUuPqwDF=xh0e{cR$lTXw}<Jz zQSXC$K`VU++Mdk={zr#GEnGH4GIQ`MTZ(ksfo1J$We8k{k5f~u>i~3|Z(spj49Vkr zw=3Db+je+kOIRi28>$&nFKtJpy~c~)BxuojM^dN574?A8BwZDPEihWu&~^3y38Q>) zyQvx#=5PwIkdC$ub~gk)2JpWsAYhu~Q|2Hn^AQU7uv-?IJ0zGtY8x;MlQ{#HIpbjr zz1<mFIG~|)Skq+!$nOUVLX+YFlabe5&ADRDxjRuJ%gPl;q+Pi(p7pJLS^aj-?W}xC zy?u`c`=p}$sJzEJ89}frd%B;G0zbmals`WY)49byMst&Iaw`iwklEQ7)uP~`A__M1 zy`9_YA=c~TIH*b!^#+M-4+Lt=N=b_kXH>k5j+LRgc4;c563wOr!$fR=d;#L}x>f8< z|4}lT^yj*jVDwZtDK<2k5$qst?>%!4T4qw?BAzcYT?J<c5xY8!O7R+>OHzF=Ny!mH zd6ostkpfL4+q6tTCV#6R+aA)~-3av!p4+H0CgTKR%r#KNd`csSIQ#8Z`l<1t-o1S; z(1X%?X(N%Zr3fxLAuRriB1noiO{qXTnY31;F>j+d0sqs0#axj4k@zZ2+(cSMjMe*4 z6J*z5a7zoEGz$2pb5^9atzGu3QRH6z=kozXvb9Iu8q6)936mEl-l5?3{tqjqc}ag~ z^GNhzMo_<j8kS|GSLwbfd^%v#cv3V$B}cP1hY{YZ<M7y)e>$tUkVy-kCPNhq_U2J| zz=o|vq6<0!9rS_Iitu4%_?Tvx{QLDPEqcSiry}s0LvqI+3(|`)ybpbs0(-nXpH?)L zeL@gRGkez-VV3vj<H%2)HSYIxfwHNQWJbO!C7``Z><PY!PbV~$_`3HKln|`Jkr>f2 zp<RL(QNsL(ARP%1;k&J|TM>2M^tM!H+kMqKac6kSDu!~=dikKWs|;lp_(b~n*g50a z7VWNrblw@rbl6Bz?Rv7c__d6K_O3{{aigQiQ@64_0z+-}XDmVY8rsO@ga0Otn9zd< z8fTpw1z`t?V7uT7JC_%!^2LyP?49X@Xyt7w&C^JQH&G&mOD)B7O%OF=_}WzeXm<Ph zP=uH0TMiEfEQpcY*{Bb5l3pveYi*K_p7-x-9aUf5utAGsvV`P520%QPHYh>)9l)nj zh<9cbJD?-Z`(LmH0_Sn6oN5PVx{6PIUxL1Yk>U!{MVGBrKdiKC`~QL6F;JJ8mAF5q zYv9w4QE+d@gD&nBv^-F7ebrTH?)%*t!XWc8zbY^MiL`qj)VHRCiIr%V;m_YYFICnp z9g^|u$V0Ar!pbW~qmaivW-ah){`;rUKVjFrZp~1PzCppijvBti);*UhUxWBZz#ruT zAsS&KH|N&P?)cY?mB;6V7Pq%eLEbG@t&DhRqcM^FeM8+91u4Zj+ul13*9yzZlU)!! z)$KyT(|I7P7*$B$_H-#K^g}?wrGm;u@b~+hW{DM$zl=3|f?gF59K->pPXnq2)|qoJ z8F*8tiZ(s0WjD8u5}4d6EJ{LH3LWuphvqD|(;tlD4yw_)r~-6tzvMa>+&f*j8`Cx2 z%-OjhKXgx-8xN$fp2z=?7_oCswK2VSOD<^cA#mz&{W^4nA^s~7Cb0FbF#>C>{F%ST zXbr%Sg}^R}N6Wfw082~eB7s#M57Z5qz*xZ~i!GS(MU_gi6LAhu(#cKc!E}*OaRJw} zDgu(SxG$1@!Rd1R#^L9SdH)i$hhnl)GbF8`Z1haE;2>=kk-i?j*pe@sKmtv2r$=Qe zKsc{x+?YbOzABVo<)r3(1XvNTt){~{TCxRSr7jwXcB0~=^=M5b>DtwbJ7XTnSNftQ zu0r7kCMj<`#Fz%=;@Gwf%ICL`Xa&gpE~h9D!)MF}X32pkPm|9M&WUeKVk$yC2dsoQ z-yKHM=T+retdTLsYRY}mR4tFQdvIX9>ZMf&G2}*tLh!D3)4Cp(Gg@3!UuI6b<t1O} za~A<(A9u1z<)b=U{KA-{Lfd=NM|n-{$>5svWNph2K;|Vo_tH91N{)Nzp_ENQ2=f7j z9haOCXqNA^7o`Ab-~og4OIuMuO8rm3E)n=t<94)=ifp8bJUwEUYS67R?@QO^TrMcS zW~p%*bwjfHGwA1=<3z_N-|t{a>WdA!Is~}`t69!&cZG$8GNm1zwbZza$N#h$^FOj? zRJG3gGsiKXF4`J&h@{||Kzcb~r{R^(EX7&;>X!?2w^z+9hNp5KO97wYxui6@a?{}6 zjHV4v24>d<N${0tod@!MsQd9(HqCUl*{7<NG}qFD*OF~hq<a4!Tkjsv^#A^k*Q>)i zp`wJCQVFq&9Oe`%9UKyo(}cv5!<^?>QO;BjbDCp}9G3Gilb98nv*oNUhBeyeeA@4+ z_xt_%zCYjZ@4vb2Hn;8hd_J!0e%-I@y59wRS)Jd)Yk}dzu~b}}Irxe4VaK4O)Q=jg zyC_6Jx9sSSPnheaV5(%W9dbutv@c78C4bTJ=RLpy5>*?_sMXjCIW)oDnrPar(_En^ z)71eh0KnayGTytov>F}4g2(~;S6N6I?|{*Jc~t&eM{-4uKXzB)>-*zz`GACM2=us$ z&=)BoKL_+#XOJB*pIo+(W}H~M(bIC&fEbu^G0VQ^J6Z(V#{Iz!bq9nDDj%2O&j}2N zz6ilNgiue)EnBsSk%(+}1&vnusb0kS`N)=Ew|9i(Fx|1vYd1pF!#;~lRojTU&K@2o z%4}5&;!j&Gr0dwnE!5{;tGig%0tBFP3OS0*tL6hJRb;8hg~DK71wZ)NGf|{H2;_|| z^4@H$>&`Bb-WEA}?S&`I*h(x2;f)r8nfBYz0sp0w_2TL->sQ<}8wt-upooYXOzHUZ zWnQuC==*DlU?wXek8Se%Ucf{1)2(OL);g$&OS{*Sn*ZZuc_TRZ6ArI@zEyoKPO5h` z5qW1O=f{<vRK%DqA0V>yonVo^1>SDSljN-Zk&;{;dEyb-8DMuYWY~}qd2g<|W~l8T z^eA6t_(3tBt;l(VW7F!y4H%^@fT_kXuay=%3M@~|rP}8ZqLr|{&KDULl~&^d4jXee z0*vKBrt}^p!#lJ+$(%IY?%Tk7xnOXrL?xvnvt=h`nKS3o1A|7)w#C25?{$BpprP?m zzBA)1ExuLqpQ(rOt|@?lnrEPDXI+-(sJ9luSsDAA8yJB6fFJy})&}toT2a!#PZ0~R zl-Q06zO0e_2nqQ+i5I*h)2Q}mwaRd#YKo(=z;VrAriF*BhNE^ofodOgusHy8-m#-F ziVpT*Eo_f91<0(BC&8aWz5;UVv){W$8plS)+Jk~d4JU3-TFo5N$;f+4>;C>mO-W1T z)R7uoUyeup#_5PuGiCG}K*R_zJnQQ!lR;O?8sgJsro1qfIazG=iz>^9zbvhmNmx*L zR7oc%IwNt7GrL{+03TSglm?)oSGFbH1WKCgkT?qYkn|8XBwTt>!^8|<pY*WIMtMLd z!d3b<<iOHlHTMhc>&a&_Bf<PT%>+~sP7D~mK-H^{HvQ)5-16d73^6!4BDmO4@o^qm z*Sq|R8IzUrVZq)|OKO0cBwD1}Q`O5r0IToqTv_?gV*d6;dsOB356(V=yMhpo->>8} zDeWF~Ynk7jn3WHR=pJ-*XNFB<YJLPK#yK+K0m_!LV&M0ek-ZtUbjgniV(2=-eEv1< zzz#lBP<Y}`VOJI1MAd>1vod{dnr1;IS*$}F!N)hxYBur+ZWYZ(1`H`$VY2o$@hSp2 zLdh>Q+)(9JEiUFTE?n}<@252a*aP#0y3~&VT8OA6{vA(9PZiC_xM>F!>!~AqaYrOa zXp4A{TXl5YfsDiaYeGQYivrEAyTNkm6bzi6JAcLa!jKOvMgU2)o$kRm;dOBvFj*!X zDW~Je@z!?!$1zqP`M`f}z8D1vh}u^04Hy&LvedqQcEdL#IrG0ir_YPTQj8*+5@e|4 z*L9{;W5;=8plNoQqV*{KyLyqH8aHH4*?85A{W(Z(T$vvDV)hg+p*-vL#y22-xu4i+ zaQaQMq9uJ(n|{f0PU8UydS>LiVProbZCGsJW-$(|?)U;u!CW@Ky?002*cl*r1-q=3 zHZ9d=Za;62hArk=)}dN}s$b*)S?7)U#qXC_CUs!s-6WktymDc>!7Wh$U<_LV16&#Y zOR@a~Ke7+Yt4gwSZSwh7W3!7vmvklmF7MU<j1&xeVF@!$&7v~x@zg&Zpa4a}`Kj-X z<J)q)!&afZA1K~B$i0~N>|NN=AHYn9*paUkQv?nS`~+o@mA>yCPqAI$@;RVgk8xBs z;=VAq6@5nRP%E=Ya3#{uqqgw-P#G@R{3`vXzt}&@I*E5E+{F)CqoFU!3HCpwr|DWR zs(*X}c7ZL!mPO^(mNn;xP@B`sxT~!84<iliyN0`SJX{hTvjFjI>K({ID$1|7<JBS! zrB>g&l+LwGbz771)bQ&L`7Ia**th<Bughf_Sn8M$IZCzNJmw1-75-^Us8zGYUkf|T zYY$nj79v%Kig&3$r}Qf!6sy(xtko@lRY2x>57G^{!pY>p$r8_>2428^uO{DcQRzr^ zQQ&fbT`4VtXFce7(=@CZXNjtuzVNrY`e`tDVMfO@M0E^wtZBVib$i6DElU0%cOvyn zQvhgfI;Z+ryX1FGDIO|X{W9&PLCX4cW1V5*JND}`ha+s&hN`|G?JsUBe}Qyx1puV2 z_Wez60)Zb{p@8eKVaW0?nI^W3;gJC`89$N0osx_V&=hVqu;mJrEZ{7%5G=Fep&Vwk z)1zv6G218fmeO*=N!sIj;=w7p)873}%TF6#w^Me|f(dW03g7Ad<goi<zY1@gnR1;C z$IF>j!B)PV-VL*VA~muUY9WYldq|aFqjIanMn55ClVN$tb@4mqDxb9fB$n6cmd)0* zx`7@b6f_e-<7pP6oLw*Itp2sK>nyAY8>a^ON2E)H@Ker9HY?jEM8>scD-^T@prK&~ zdGDD?QC_IT0T|W!vo4<sT3vY*;}PkP=I3WW6_FQv+E^X@R(J8;Ot?JJJR3|7&*riB zARJwSVq%Kq=_x-}N(<bZf-PqaM&?EI-G|(+Su6QzIh8UWj;iD=(E<`DVvLvbgJK+8 z3EwrMM<~DTr`R+dwJ_~9fCCy_s_Z+*ZT9XE#9D#-o3(UJ9N&byE+YD2z&RA#KRA8$ z$MfZZVITv5{bzm}!-fJ7JZA1<6dK`Lx;Dno`y=1q?fr#e>n6YBW(cM91J*V(=O25| z;;`aN+_RSl4^k#T{wsi1=Kb*uZ2O=S&u!&<E3ThhHHX5BoUJpOXH6A3WfH?#?q3mP z=e8uq0kB$|{_==b<<Bv!Ov?s&uhrb?2($Liq{YNcnX2G(V)K@y=?3R(3+iTHL3a{; zgW%nctg`dW7UKHzK+@*p5L&|#F_Rs2Ve_3xg1h2QqZ-F<Q<}{JiDvlm*yxZLUa!rn zZxh^&5bk1#IGzev<m{{nhIi-&|I*DIHEH@b%hg>4yg>S=WGC3Ns2#dTwbWAyc#v4{ zU&-%|@tYKPR}ja%I3s8{qkQH)n>hR4;H{Ty_~~eBb!w$n@0pB9_Cf2T;Y*=klanfc zo^JzWdMTp571K)l2<K<c<f+W&*iM}8EJ8`TWO+nken6NDtBD-_#D|)Vbt`*BZ$o&! zb*@v*{L6^uS-sZ=x{#>l7uR7-_Ze`QA!NctEkX&RGyqctx$7N3@M8jANJ8e@eapIi z+Z6QC=l90b0_cYX1_xW~pIc9OFXnB(WGG8yh?1kp7pB&Ciz&8KOp%M#5^DdWwfS@3 znR2tr=0*Vll1xS=WM<Mr(J19MDSFvIH*kIl5u?rv1qS$PBi19U*dG)OX0hwa1x>5J z>Kom~z0`hdE+5toHnJnzZk@?vcYV3J$Ty_;C;a_ic|_+*oAqA6aHr2zjCOW@((4sR z8R*z~9<`yHIclruZAXQt+NjP=UX+up#J-?B?kWnnIsn?4NA8#J`l2G(He+=)bNHm@ zVXp#(c;9I6fLdpiT=%hBMFv8uV*;4doloP(3EIPIv#cEdXiZl_x3xLlb?3XrB{+H# z+2d9cvp4G3t5xIXN$;}k2m^T%<KEw__~9vZb4QCM)rIS#NSOb+1E@=G>tl<sW6)bb zn}10wqIi9Bk6OfzRSxH`;e-7o#sKid(_Ay1TRO%A44atAx$St61Tp|LJsV2~Xu~eK ztUm{{K5b3{I=A0qe`C?xkkI(Gl=#0Y)i#mGfG1~`e(=<<(}&M~mjc1#!tn4P#S-TR z(C=a1j{#rS%S#xYcNZlxUN6=Y6vAJL{Yo^eg?{<FX&mslCC)j+lB_oV>$k^krg>Z- z<WT5Zi~8E~>aUBb0TG#MP?hbC<x`^W`a#(V{Jhoat*Nk@E=5*x_;%U1qUFe@HjLi- z537-t&xlwZjdS?BW9h4(SOq}TdAZ6nWPohk`+~e%?NTXT{@i4xVnvQNa`uV6Wc^eB zp+{%TYq5Ofs38;?oSldFbb=XYR#gI~5G25x*+)r;pg!}PC{!~f_M~`fsCN1wc<9eE z1U7j(D8eif>UBpg5wat6#`u}GejUT0WNu1zw_KYg@2fc#U$3#z{FJdL$o?(eGK|!! z5fF5&;ecRu9{);(3lMG?v>%Eassvik)HlQ6)x-vz_@&I)-kV523C&3}E4}PLY6fN( zGAdkczy%AXeC#PAB4_(&c~E|At$#6k`>!hS*2CIzB~vHaNj%az)b)Y?;0Wc`Uo^wK zFEU%Bk>j!E6{fViO?}FM&hdFv>-&(YabPm^k5UEe`yO&cs0Vx_X7as4$Q$x6Q|~Wh z>r(ul*1bPNyx!CSdP#A+Md3`dtgPJ4A1ix(qd+}7utn_u_%my~OsM?4N<R|DemXSV zbH4rR{5c)D%sAz*HaaT56ppgyq9iloyk2eJlSx1R)SMi_ZSc^`0M^N!)oyFr-XiU} zplLpxU?$?DoWr4MuGuyXhimhp{^+JvLi9-l`Ysv|UDH)x<1Q&0_s{DD3BWY^Ts4^V zewdzkc<G%6XsiViq`+I>8+-3IN#~pWM(h8QI5{(YY{mU>Nv-_#Q{1Gb&%3Cu5wymO zCBar^ic7BHLxfL?tWrf)rRAkP^*z2YFW!fm<I<|jEiVA|%P(X2%gTm=ygkc-=7=HG zNeaN)z~d{O*E*N08x6v(&DsW~()k#-H_*WsC&UE9zrDK->doVa>@uXHHqVXErV~~? z-V(N@7$JOf8&z~tu$D5(7u{2D^Y6Vkg4XH>NoKH}0Hv~W5CnOpV3b_i()HY$kvh&i zY8Fi?2=0ICgYeJ>118DqKg`d{fw{oUjq5{Y@%bmC8{I=cM!&P}DpB$yk@d#i5Ma`F zI-`p)%3G@AZP79GhG8f=rNmRJ<J^-G_Lu#3lUo_6n|D9?iT+zHZnCj%cC&)}`;I^R zb8v!EmW&?UHB$NImmm&a&XOWXK~?|4w1zmM<n=NMg%qK}rgbvP$Sw2xiv0h*3u!Bu z>?w9?CJgcPt<X$HL<~;(c6i1vZN~z6HuW;&^{^h6A*u4?PD;?X*<)R^Gwbcg4PGn8 zZHYgRqXFgZ#Gh8~W$ITY2-9#v?m2he1k8)PeN6dl`vJ+O)ih^B?Q(V9e$h|dDlJLa zF}TZ7itPCJeT&&W7;YlGuXZnSgrXg%1}LK2>)s5iCp&$IME$49)a;NE%>}F*19Kd^ zI<U`kIia5x(BSM?q-%!no6r5e`tP?I$Cj-7%&8fLz{=9w3%%qs{yQF8u%p8x8hfwR z*=qXVNpZ<Q4&7EX6f+WQDlp-F?TFYX9c_$oIYclaQ+91Fp1ltX?CnYg&26}&7I%7; zpZNYd4FTlb!UjRtaCr;ZAP9(1rLqJ*wESW%l5B?o4i%`=gDB$4sz}kNHoxwvI{&a_ zY5d8FaoYxz$a}+E9aa`I`0Z0^`<cB(C2Qf;^H(l!Jm8ijRF5eo*JUj;-=&958vsK+ z3M8W2)eN&%`MsV$e@EOy3$lsmhnWxs$7S?pdsM<>^$!DZm+5hyfjd}v>D!WP1|J9? z<(u?zgk->kEwD>C1Nlqq^ZzwwyZ%caBtakfeoTU=*I>6T@2+2ZAC$B-i-Hj;20Hh7 zGj>lsX<HfS0YNMIdI$LbQCBkR%{XH48Y*^IjDMreYplE8^-(gV(Y01kWhTLJIp0lc z^6U@6)gL;+feP`<mrYPkkXD;|l`+KQT!s%#7^2PV|Ihk$GccgduP#<i!2SAp!^KP~ zocqmid<uN{zlWPtGk9<)9@nwgeQ}5HjA}&h@k(e=*P(6^p!aPUX5L|KCSd2jp&mc< z`M)>u$S`J`FDJ;kYb5%)xaHWry#Xf#X%d!l<1PNk$mJP+ICD_3iYrOgqnxD<jFD7> zK8psul{BbNzVd0P?S-XR6(eNc$!+W2vG6vaJ0ACcWQoA5FLe!9S$}96${J4&6KRUP zrN{Upp$NUxWSZA#zJ#3KV0Spqs;U1NDDc9fyD({D^SiG@_zfV*Lq(cXswy+Xr*T(g z3@L#CN0<#+?_Rac+Q|#t!t;^}!Ka-y!@GQsl`uy5M<DA~Hj|-_`!uqjxOrcw5~Ll9 z;Mj(d56<W%piK5pod^%IvIKy9CL_^o`*$cl@SQk7GpR}h;)?jBG!OhQ(U>z}<*WVL zU(ZBr9r1{3^P*z%G-B6pxExscrO@NU6fC=fO%2U<VV#aDJ1>XbMqF2xSZUcq;sjSb zj}=pV%~^!x9yS|OL<4_s)Ky4M?mMHaF@9jr{8D!hu&ka$J1+$;FfKvww5<H<<f6gG z+Ci<7e5c*R`<vKfVN{cdXzjR7;CPJF49JwAe@)U?QIt<{cVW=SzO2d^pyK>${-}8= z0<*B;NZ9C|k#%iDo9UKa4pj1cHWY*oSqW_%cdvZgIGr^V>TGaP;&E1+{1-^Ok3qvD zl~jBTX+!x2s5e^k%eh}I3_i^gkM*T+^~{MjeNyTdn~~p3KfC`Y>Oukl!_STFpCnB@ ziYvUJ^~h>Sqbl=@s=4I`zA<<(GmG-Op7l@&cCRvi$S{YY>7;pO__R~YkLB-o9Gthx z0)U>|;ZA2Vp(=zt7sBv$>Yw1DfN-BDCZi+xHz1EZts)I?;OU2!&kATW^?>W*3KUzE z<4*(B&F+_BSuLk7gh1&Bz~{Ns|IgV|KA>`vvpY{Y6z^k~Bx#E#2;K@9+s5CTUGi4B zo^gaXV!gfLCG~N{j{ENFg;yXymP1ry`>_A@mjTPNMS8Hf?W%UptrxC4)PstA9ZmRU zXl5RuvIb1vfcV>GETcgm2&wLRog%S}s1ASU{|t(ms`CAIWavXB0zdBp(_v<BFzv6= zg5ke(HYymZl40aG*GWS3(EVtM^&iSp-%-M(&q(l0-5lSL-sxQCnr$XiM_m;VQil9u zk+-WMh&va@!u@|c9tYDh>c4ynHs2AY#68WB3WFW`CllB9>lE)SA3|d?<tpWaWMUf@ z*6OyyPeVl@I}Na%xVe_8Ylvh0kpfen2e$CRZQ;i+2x1R0mK(|d<7Z7OUSoMutzj*j zARgA{JGg0TkbR|#F%j+gWGtBSdT<V}VK(2Xt{~T-C^B#J!#MCkPUYeF>G6tbc4Dnf zsC-_fi{1Q0JJ2T&O4$gpQPoPVjNTh`zCFfvxf-FuNaPqhZu~zv?u*K#)#G~HW!>v( zyEAVI_oni0mFV_29HKS4x-FBgsT`4q^k=yi^u9akAy;5uVcXL9ChL8()CQmL?;f#R zw@31pOF(grM}MDJ6wS?WJr0`YX?8G5UpGr<IYZg&w{$0NZx!4N-(w@PF1Y{*d;qqi z-B}D?&!GQ^!rMa*lvb<jXPi+^MO!U+*SF6^nkkJQcI|9b-WdMAWgcWQt(T*;F?VE# zFATV1xFRt<Jody->#I`DJWQY>cKPDu10T1n#$>}^J^JpH@e97u!=2L?){EWtk}D`n zT4|-rcK1Wp+5m*I`W5hDh;G7dXuciXJs2d-y<~NR`_`ppZ2Q;5-_bqbyRi0v-1nQE zX;R{<wj!>s`6xZART>e<3fc`1YI6%B7(fnaiIs3dol~*i)_}uA<($o4fXJmVV6!F8 zJ-huUV@7rc`^UZzpek(!D`FwL1S2Z7go5`XkQ}So&e_0wS>*nPOUu<oZj9yGNpdGY z3ghOdvnuPA+E|J6X|nxaTWOc2Pe&1|TTjX3#k5a$IW5SyCSeUDGmiiBrMkyP!a8ML zyMjRQa&X248yxM)6v0qk3zd7+#fLuqJo@Kzbl!+YnAj?+Oiv6}v!K$(mXVpimA%E= zJNDvB3<zpFNAjG-$&0Sd)t%fnDFD9>=3~nw(5Dwu9%X?k$CxkwM_hg5LW2A*>}QoT zV?w((mILUof$F$*qj>VR3)x3i6KXb?eYkzG3+MlJKzU$nhh``x>4&3?w+t(uy9Qqs z)6Os^)KFNDJxWnwdp}^n^<9$r`~@1YqqE<tsg6SoHtWuWKfLg?e>VQ-_P=+=vQBNu zHckCB)|mW<Jn0k&%3(jTn?6{)2VhUOcC-aiy3^PGoODDqDqaZxskH?T)3R)<A=`xV z4*9wurw%(>ZVaPc06!#+AY^G5vil_3TZBCXY$?fw2J&r|qyC6<a~suGMt^;S0@?qq z(#i^<(E!jYJHwSYSP5~Q(pk!9ozMFJ31TOL-#jCT|9-hwr^G7L?~VVLgIY5J;ftQa zVL(IOODt?-xbu#<^9MsrxWeR_D77GW`zhn(bYsHLw|^py)EK+Lu87~vJFMlPjkJWg z=(!)HW!cvAS4G!wcg;>e^L)kogUf<@*k(y!`Mj32xSpLflw!4377Z4#jwP3C*3~bF z9CRLqOx(v6&M&)!ZR`Q0rqnjMwZ4+>4V_C|lCDpj=kFWIxrK?Q+W8ep$EVDCZ^3)C zZ$z7zaL>wC6;?@|H8Qy?t(|-+=lAim8^O;->5sQp0_Krf92NUA24Q{!usu(kS_)Jn ztaJv_RXx9tQhZZW7p}=mj~tSY7hVUcOGig}uKB1Rmx^V8@;&ccU{?G~`ur~ytgPE_ z{q!#w@sAq8k`K#blzC2Aae405LZ5tWuRUTnR;ClyaOBo(K=9<t9{g-z5gVguw)UVe zcdfUmaS#`ZI+p)11C`+F(8?_9T|K3Z58?&hh#M(ci!u{NX@0kPCIvlE9H-czxfz20 z^*&W%E!f|b_u+mk4HHGtbIEz95@A|2#P%b61}T~m&7mnO<2t2d8GG|NYs`mc=f71` z;%clV8lZB01yd4rAaJMdp+o~;X}}oqPQ`pZznf+tnF{TsazBV{K{mO6a85yoGUGV) zEDte=C8kEIfN?Gu^Nxa9IFxc=z<fKWoSnl?Yk$v(uJFhUq<cJ2wBbZGvwGn|EH$3! zoZB6(9wxuMKb9E_89`kt3%uiw#)p24Sr*pU0iC&gBh<;nOFV~HTlC55<QJ`c8w4Sx zkX3QZDsiwmwjQZ&TEm-PZs*V19i}4`Lg<}){Dsj|6-xEGuLU}@pSe7u%Qx(;W#Dkb z!JtprOvo7aa9e<m_->p=9XnXCMx69B%7jRhqo-P$1AEJuQNCxC4e(<cFU*9KuEa95 z^9#%@;0nx7t09yp+Zt`r38?K;t=t~bFgeEjqx<Hb<|j}rgEbhEsMSG)%QCLYmTP>% z1?L+J$Ep^}Mf5qe4`QeAu9P!}qQE{NTg;Y|a0tW&quVrlERWpLj*<?U-(^C$1Pe1x zb7fX1%j_rJGZ&K~_kB85Vi~~n$XAYaR!J)Qp;b7w6wza=dHnQP&(oD~ZafMGT@Nv- zyXbSgUaxqx;S%y<+QQ_lvSwU*-(5XyPAGBdV+rsM-ru}7sZ8dEU^l}Dl+(K2S^r(8 zm#*5%t-L5#miIgeu@OCclj}%Si6JtgnJ>K4L5p7uPq4138Cg#`AN~k|_5{+K4Uj_) zw_EIx(s}HhN!C@CylVb2X6UptIB*l|@NlB2^T<Zg*~Z+)TYcSH2afcJ3!e}*S*7Sc z+Z=ejas6{_<;<>D5NJ%;%c#`oNF1tS&pYbQJx|BEX#6nEFf0&Q6cUy$GicJ#mY;c* zCuUwi;ubzH`YmNxk5}PCCGlg-R2BmxC6i$qWyK<>!|~~cZ8t}<yY8DuN(vKQ7V8BB z=!@ev<66o~c7#)W2C#Meqg>tU0lA4XJ}VGT?n<nTTr%_OUD~9Bnw*1!E{8Z}eI^bi z%MTxewc+u8O@Tj+ZGQ;vX&c5A{P7*}SsBf{s-6aTVg>%xcj!Wz^&RJUK$z9E#`*GA zj}sg_;B`j@O@XOU|7Y5}IM`^Q`gcX%?3<gSmAvb_^Ja8|-qBQr4A-^FEc*{KE+4BJ z+WN_*IiS9uUXv?uba>>T<52tKR*{|z?vnYXl}wE76>A|`##G0keHx}hxC1+PgxC;k zlJVxyut5?7+8ElsA;3^H#&abdII2A!z|%UrXih~6pVYzP<$@#~I^YEAHE_xSw7m?t zC=kc{2l*<Vr+x||%Xm!tMr)KVo5<lu`HFTqZFrw9P-bE?=d)?@qF{kpk~u90{NN@G z#)9(pRv#Waq25zt;e_o`@H+aBjzYw(o07+ayY6nj{=g@v;3YAyZ0PGe`u*B%)~*i; ze%+VHmo~0{=@X7e3<q-$-9evZ{d4H@z@~x3lva{Nk~&Y4<~5VdhhisURr%7VrB=V> zp^U`Lx^aF(<pLdPlp+LH9+s`-qGM&s!N*L)3oG(-<`SjxeP2h0pEL&29h8x?@miZ; zdr;28gD3}M<aN#sj>3Fk&pn|(727f8t@USIbtMs&iQ~XG7@;!<@6>DB{}2sxK%X=n zAV<I`qN*|%fSsN@^T5i&MLucBM;DV3nP-$lU9{sE;%K~-^&4n4C1Johpwy+Ws#bp_ z8xB6~EF@dJRA^xCKihLzuUyXQDkX$=GkpxatqDUAJKxp2FLDd<7>{C)yvd3=zb+0A z*SWUQ{|U8V%J724GX$~5Q#H8YqyS<-Cat>EVw{1WukX=~@d>C3mJAJUEnL>x$lsF6 zTic%S<F>VMC3w`w^;r!<kdQaam_GI}n9}(9#!T8P_B*zD2}-~uQz6k{s@+QNwB2@A z40YY#+->w}5+9G~n}Ja{_(IfwMaIo&C(+wZg~zeCet-ni25}<Zv8oZhy!S@;gIusH zS|g0m!waDXg#wry$lD|LY7fWV^se7kq(GSbN^C=Vy_&bds4TSQbfj@Uaw?pLGj3^3 zQKn3q1r_iaY~;J%h`}O<q+2vO9ce)^vrjnLaSaTM{owT6KhCVNN1+8wXK08fjri?e z$Pp^HkXJjXYtHKrpMMn6lJih0qNAw58WwHmA1mW$)!uG^$b3V*|Do$XzIKQ)Q^WT$ zy8mU)TFbonjfO(c`=qCG@+`j}zNe(f$YDYHxny~wijzud3(}^exUojr^{)MuMh&ww zK8H?fnh9VOVSVdXvRGvZ#@i2lH_u)XdH~e2_89L}xzWNUbwI#Dpq!2vPF7d!39K>- zqOXdRI~tUA7wfg{+K>b<HSUm(Z4+&8uj+-P(@g!rBO9I>1`0MKgf?Mh>n?o-LuVCc z-f|N^=AG;88`)q<duG=o_zPDro?C0WS`M(KckNB>k!{2!{St|KBZAi-ug*M&wE_6~ zf|Z&iS>v{;k);BLHZ!zsDef0wAgTnbqBsdd54=1h+`muv8Xo%TK0IFXOq6fND-k3K zP7v9GiExA6OF!iBo(+6a3g4%%N(S8(_RTOT5$KZWD9CJ*IVUmYw@3+=R%%aZkIzN$ zEpdCh5$zIjzW#L2eKw!Fac>S$bNDLqfXI5n%5~IsMtpdGtTRF5UdA{pjz6D*8!T2m zp!=~rhaIet+Js_Jf8}fLAA&JjZFG{ZpsH^pa~`?*4J(NC)y1?Tq-0cyO9Fi}@+Zu! z3`b8I3Zj;_oeI}=1otU?2t6A5YuRG$eum>UlcDHlq&cVmg7eJb)pu0Us*E?%n!<vp z_}lOs4xh95M;H|jRXkA?MW>mr9*-+dnbbyJ9yk^xIhaS&`g^iIhTiAu27%?=$f0Sb z$OrdRujD_BAWhz7tcxd)<USg&&gjV1QQNO1o9Bmu_f+J<^9QO(-Z7u1)ABf=ZzBrF zwkN!4+{%^eXH_o4pb)+>CvZC()GfokZMmjDMMA$yTP}|P&XZ?b%aplJyl<Y`LZGJU zHYCcspyTbFDv4p0?dQnJUaVL^cf<1FGva&SI310Rns<62MR^%kcxDjCcQ(*HCr4yf zxr>v>5))X={ViW5im+@&WJ1ye4L=659|kV3X6qBVMbDhHrh7yWLj5S#2cf%`BXc_5 zu|qo&wAIW9y)x+HcWDkphDdZr6scoyHhWDts&{qQI7dK`f^jkH9y<Unq{oF7(HC6t z|BihFT7}C)zI;GsZZ77FK9jakujOFOIwVKhx+np2w8G9EqVPls5(73Qy5ctq8V(FR z?bC|T>J{a-hs>Sxf(=&THgRZ96}xElOGe_9Co2$$H?bXWNgb_SF(XuunMt^jg-gRL zDCpXEQEuqZb=Q9#9bI+1{sr-VU#f=yC#U^gM|DT^t6pV4m7Py(7&g<;gT+YcF1fy3 zg<RzJbF3jpA!x)Uk93Gn?Xv&x%VI>1z2?@3+q3ISWpXZ+D?yhGWEwwYJwsS7ipCH( zhVEHpC#)v!K^?SqbkB&>KfS<u6mRl+&eWwc-cU_$_^Gw-eKpar&wqOU4I`{KkAkna zh90=qohC=-G~?dH#lzLQW-sJDM-R)z2V}m{_!I%hgNex8=rb)|B+)w_baZ1QIM=Va zz;d1SAt@MZ311}FoiI&V-ME<M^g-ECa@HRe&f6XIM@HJLKuxB-PuTZQ6$h^jSxL~e zu`}=O*6KU1*@V-CPEwlja=-aDQhvm<AI>Zu0H*iSC~fJ3@oe<WYoULG4D>2P8{Lj- zPw)8nMlRuInUWRB3A(?h0-X$wukdd3c22k7GWy_Pjd7aU>c4s0TKrUjtM^xvBsZbf zdi$*_J^mly^L362S#ujFtB2%tT*Ix)6v~##iN4pmn(YFHAjBorRzH`9<@3p!ZqZac zbA7%VQa`Dw=Rj&}(I|_(Q0bcbn{~y-CuEiDH}H_t6x!{eTBDn0s$zunO<f6;&AV(4 z!)SCcOx8^93&oA>+%j2-yOOZ@_IG5KH@T-M6q{h{b@W;KQqxj!9FZ%-6JY&RTA(Q& z<|Gtk(^vp%FMO`LP<;BLW>MyY?FaadL{1^eA;qDMT2rWoyVUU9Pt$}8&x|{~y@Wki zx4qs&3(YlHxXb*|*I>G_<oYn@zaSx6Z8ck)2ceeYu2Y&Lf`|_o2AzuX{i9}VrFI~W zR-j<22U$N&RJlF6ziXwc?V62_{>Eb+8jSl%^+02z{>dgvO&`|J`+aFP_nw+czt<%t z;T5g{XoD4ZMm7)0n>MctlP>GZk{A}7_$HA?XC6bT^j!U@qfi<RI@IFt_QJaX=k~D9 zU30vOfYa<bET4g2B#Cdwe>@zhbzN(!cj?WWa=o<nyy>+bo#TCVqYWj_GZmK*qZy`l z{yd_cBa(B!qP=el)Y|CmBTCIY8T0P?l<4BgPh6<^-mg`tXhHfatx66dcL~phOsUPm zlZ<%m*H2~CN*3b?IG9T)ySPTHMR}s{cwh1Jxs*pPE5NVn7-oE|>bjcheb~k4+A5Gd zzrg!4S9!HjS3o3^$AbNsau@A5NgsZxfP#B9hkgW8??Uj#31VVL))Fx>yg>YuH(C$5 zJH##JXI5(Zs&(j_Zt8`A8~=E$XTJRQXYG1twD1Zdg1%Ot2`3bUBdtnZx|fMA-Bs9F zoE!(CH>&$xWN<8ub~7NhASd+bsa!1uX^rxSdA~!S^PCv<Yp`7oR3d9!InH+z4peH# z`z&_S_hUqm#=BlzuRyIC=wy^9{!J9Bf`3ITYNOv|yX^9?)=YFP8GD6KxhsnLa69n+ z0@r?sYm7hyTREDGMKdC1uU)zarWbD(b{1J7)#WS;{IC>3(eN>?M>RJ3{7n?r<W62< zh4l07GYQ9Cih>jp>stiq;%Rg?{7NG&8V>ELfDxXnQx)R+d{iH0ND|zq>kYjlg0nB{ zA-HKJsD(zJK(mx#Ti-I7ka{&KP2~{jR*yo5OVgf^;{R11RcS1ruyHrOpHV~U@E58c zAlx_ep^S(d4c6y<pXcL(v3L&v@GZ1VHBVViSxlL8tTfK%BmS^01}9uDWfdq;z3$Q~ zX77J+xi9RZqqcAYvH*{jDXD0mSrkW#TxjR&x^VrRgg_z-P=6z<rWQXxZacy8vD%`9 zF#TIfmI<J=cAT-FNM!gB2;!lg(Jc9(5-iiR@nkJUQ(D1Vx5qkceK(5yI%?e;<E6O} zQ}ACW$@^%%txxDBjkn$RW2^ZtDljdYXQQjbfV$68&+J05>5#u3Cs6zthL|-K%12Ud z<a;|Kp5YJRYL}cnNYPPg@cOGfP7!=~%0NraB)BIKrNVVPv4A{I_ohv$!D<XpLL^ef zhivwgcSOziKIkV(6%-`t=|0AX5J~@tTEHKXglt`j;O0Srq_gp1*rD=~SwtI+_~Oxi zt3go(EZE@#jzIOl*46Su@m`5#RZQPAaK9;EL+Gd9Wf#&rMQ@Jvwu=vnE<6?Xv9>-T zK~!$Ih}|sozyw}QTLwV2RMWH3<~}m%IHv*SxnAyM4zZ~bGpg%R;}f;oPxFutftk{z zZPH9Zt+%f!nv|2BDpHi%LjTenUZ9*A)kxALIXY@(Wk3pe0FXoFxIllr-exCG7N#f` zN~(&oK~D9|YOxjd5|iV(E397jl~(S^69I}+>e4gy_4)O3YbPa9+N|>V!94|jsPkQ( zV*(5e)eBSabTx_*pY;<?sw;uluja+rie^0v_+LmoaQ8PJPqq8qciunSrBB*(gaj|d zDVK_0*?N*#YCJO6728K$jO)`%aDvX~2|x;X(rW9zZI0PimBb3nmeBM>!&qnSJDZ?| zK&8YNXHC$f9U^xW;8L*d>_-T7qJkWN%5a-bBMPN1#_shvSd!`j=3|*Hs@hd>#U)pe zQfj$gq{oQf;8#cdg?GR)!decP|GY}incKZjzZixXk(H}OUqpvu8ex&N>8j&>&NJPy z4B32R>zwSRRv)NqJQNbuw79R}z1Ubjy8w^z(VH?@8(fpGX%zNV>Bf!t5aGi)DJ01j zM!%y!`jA|Jv~k+953y?zmrTJe8!@Ywji#Reh@WR`D4+@Hk=cKb5&&g%W9spVqM^|R zqR*w-&k$R@ranjJ>#v(EpTIUeUlh|GaPa4@`FYh>78GXr4yQ2Mab5gIn}jIFCCjG2 zd`8O?KXkdq{tNB&z2%u#r>==c<6PaxAL6MB*i-cE&7pWT3#%;cO+7HCRe2u~o=J=4 z)qcGCA3!IkQOt@12@-HQegnH)CkO76+J-s$Gy|}doSfP7Kl!*!J7Ms30ZN`9hb}{& zRkr~N7bM6K1tG0`77+AF#fPFtdKbK9zCTfwP5U}g&CYF)kb^=eWU$ZF0DVtQ(%KcW z9iEOXoQjI#D8!tJVj)xvi%+kKYmis$wW>6Kg+8PGE3TPr9UC!Ax@K%{EY#mEcyw%g zsomkx4lwQdquA;)`#K)%_4_CETumQ~Qw{DvbLyPvNFiRfe#Qwla8o%+#wgfi+soW! z+&lPWSKs9~rzF$j9I8t2>+<Ice24m~NYMxb3_PTOj%<_;nG-j`Lywt|qe#fmY5Vj0 z!1lZwIK{NidLrote`(*}LP>WAF_>sMoJ)R)l0@J`r-^I)53OtvjcJl`l&bd9j;g-7 zRaG&RbKnytXPuGX3)wcCO?}<8u~x2QQ*FzH;AL~DoY6*}B0h#~i7z|KK{M*@klj`E z$T#hkCrRIdf{60zQj_yAM=y)P{<&U!o3yuf^lE*V#J~!_*ZLV9Np$dmo-VM)f1__< z^CUL)b)DbiNkH!X+RP!Nm=!g?4&g1Jw6Tw9r_ySqoHA?s`U*nN>!Z-PJ;p@A29v?W z3GZ?v&`Nt&c?J>BROUfvT@wrKb5<jR?`@ujfGL9XfCf8r4}TI;(<?VOIxY&h1uE&C z&DRP}{yUn@?>(9%n{+Kcx?m}94{G3%MseH746|QxU3Xuua!(a0JjjfH_~t^bQF>`$ zQQ*gAC@j!pJZ7r9PxvH8^imtiTL38(lsPSf%ZQ+z#^xkT8AM~YkhzC#pJ9`3Erkz1 zYvk|`{EJZd80!A*Jf^Gh?YzfXxh&x}4@Uq9RiToUT@7TeG```zIlP~Ua!IFp!E$n5 zjXc=LG#-N<xVbSE<a}tsFk$&%OTO~~sN8IS&V`SXR<(CJL(=H}tu(6t*AAx{maE<N z;HT&4s1+R1h2dc1HQHNbT=nd~i5<{Mjh7LDm$PqK=qR!8GTx{vPG&A-BM%A3b4XMm z16bK)KoDCRh4=rwjC^zG-Ae6hM~)T;@?i|o|NTjDx!R0(gU;98d5h|d$Kz9X*ZTVE zR||9aGNP^a=cjN*)kNv2(vF=w-`$*HiXeKNOIu(L-n_-*-CeerMxV8%hr-&2KXt^$ zDlwmQ2><))v#}i*#$Ll>UZas|<<|yFZJ%0QjK;FzZrI@`181np6qPhFAJJUh>M^9_ z`_UlZ_oD%BVyTu-Qv=VLWq@NPO98^XLl$*TrsOiT%;ui`;*Uq(SWdwVZ-bp>DSp;t zdQ-Rq?KC>ui4YSk#TF_Xwxp0pj?omvYKeWq{;CS4>;lzuMDOt7L|d>(p6c-L?LS<W z4L422BLnIW$`R;DXuWEk;h2d9T*D)?<OiYGCLD&TbSFZ4MSE4(Yizyrow5eGJFfLo ze@Q26Y?S6#R(wKKqU*rJgkMF5`tQ9dOt+03=pE>m+g$5J!pQM#@M4~rXmR2I-#d2J z+$UJsPa;jg$V$)BR4l12YL-X>^G;7Gm<+ks8(8r%PTkZDE8H{etiS^lNJn{cjad8Q zD{c*e=+r&?2M!3Ycn$521PV21SwjiS*CKNEn%Bjsk)ySmuEwm#R*XRp)|aoJ5}C$* ztqavmFN6)!5dCU<{^7Dh>7?4Il+8@Y?Bgq?JNPOx>tT%;B28J7?Fa{k7G@ei>V|#8 zSX-OXg{m$6-VR^bn}0LlXkvSpw5MD^?%{o|8>cZ|26?v6ML+<V#zd&oH-&45BsUH6 za{5jHT!#Kg-~R28TC`k!k+o^vgY<$08>9*1S?x^(Sy0YCS2<So#+7l7+NBPAB63?V z{9+qv%Bqd(_$+HwL&jj^0~@0Zv@&A<)ykMoOO>EU<t>O`N=AR3B60Fl3cyhe-w3MW zGpnWe;jcfmaErZp@cmM*8&8l;Q5!H_fK7sA+XSlRGQ1mqL6Rgvta7anc#9n>y6fT& z(;h`tRQAg2>c0AMB5?Bo2q0_Hu0%<{s5j0ly)_gYARxj}E^8YSb+ahLl~9Tl#M(ml zK=?zYtgQ@Ms4s6?-GU2Ta&<hdBx_b<@c5%tmz1(i8-ji>9)(y>3Gx2)dl9iECph+s zLi2{JYdl`@r#hZk^Gvz`?06%#c3tRlkWQAh7LPzk2jsF#;3(fDW7L2a%W;lVEjpa( zXDjaNTTUbHKBX|FkIMT&SOZ;dN0qA)7v+58JjF~cVjFmtiGd(Y{26lm?AF?Y&5}n1 zf!2{Zm!5j6TIB4@n)};ksUG9LLI{-#I~D$X#9Hd5Qc{-rviZrrh+d}+YeMuaqkZGS zrr6xAk%<or`v!8<^4Sy4qQC03wW_QT=Gea33!WLdNMayZQ@()lI$6e2@<sDcAiYNH zXBG2XzwLv3C@nb?FDW7HTRMp(TG&Yo&sTIsfDUH*)Ej`#7ueioh(As7NB+)<T`3Rk z$)=PlBn17o<)017S1V#qA6^%RuAb{%t4ay!xL6vBp?Nqk-2Xnnr=lr2Rl;USW2DD@ zfLd}ChD@hxF&why$P?fESd6xvK8(@AO@5T>fKZvH*L%P&))7K`Y;2^s^E`~?Li27n zz48&IDvov>*=TecPF9SVuuiW-4?-5v5Pie(`x)D2hsYDAmwcxeGwBYcm*Q1QTNj0) zDSgs%$q-_I`M!Y@tb@X3nwxuH*lN}n|Ni0kgH+w~WKcFiU8CSHwDAW0tb%jKwPq@) z9unmlHw|cB!fjO!9sl}Ai7XETn#04vhr!q8myKx>4T|oFiS?Tk(N0-&ZQS?@n*8I6 zK<0IljBuP}mQ;|MX?f8_M~AE&e?aR#n}1*r6x2(5zfdPB1n07aUS@6r{0ip0AF$2c z@cjLyrp+1q1W8ZX=>MXEz1)8$oRw0&d|&n`J;0)cTJ@?gsni+YJ}3k^eG)_LyNMw1 z=2G{8AAek<656A9rytI5IvK?_oQ6VVoM70DrpDio7FFaV9j5a6-STStrtWBQyxtkn z>c7q~>D29h#*`|g<=<Q{v~|irr+Q+p<i3ih`K1T=5yviy-x0a41OPx-VHrFwp|rDI zl<tKG?0SXMKB5l>;kFN%F*Dv{<&}0<1+~*|ICPLmt{8imkI1|lq<m9loO5nEfF#)G zmFv(LION|7rv|zdD-(VwIwSKD4NTrQwoxM!Kzm@p;a?=LGZwA#U?G+e+D-bo?V2d4 zF52NM1jz#eG$M7;Pic66eh+}D`T!V1N-|(#sGDRf>-*qh*^6^tKk<cGg1xFe+s~Sw zlyHrcRs(uh9$=Waf@V(LT+>@hZcFNFOQ2Mhbf8EMc*g99=V&=Tnt2nYvi||H^#u}q z;nja#^uYU92AgZ2{R6&Uh!8YPZ$ryHu(EO+aulE#>lyo8&tc(YGv(x*w~yra>^q9S zzB`o4t39P-ZPkBM7bq=t0lxO+35*xH63t!|C%PE@@%eZOKC{(*Ur@yRSnr5F=x0A? zMIQEVzM`DhDAP13XR<;P&90wD4M;|L{_)DNsnNhBrNDGRo)$#7YKL;{N()*5G1gM1 z(=EsP@yMl`ZP(cp<tv$kL7PRdY3~0X&5`{0uOdyy&9~h1K7Q<3<q4bD_B0$=e|o{` z-!wV{n?=zoWM^MxBIq~uH#UTyY{z5?)!uY?*e6{qM!7%o+e0qOxG-R2c0p(V8aL}= zh}*X7i=yoMyHnb0`Xq^~?=}mjM6Jkr2n5=JVJ0k7Ac)!%&SI})^hHE@Ek>JI|J^eL zTdjuOuD>>}ar9VzA5KSrrry<3u_Q=`p8{UfJfOQ~&lPYE4t#>V%C@EwgRK4fAs$I! zeTRF^g6GjB>*@Nbg`#O@kD`+$UcKD2TfwkNdQfe_CTU^2{Nw15JV5+xIOaBuPX7yu zdx@TPZLrpj2$%D{Dc5l5WFM4}Qo#SW5hr25PuDeIKwG_I-jv4{>@eQ!6RHQ3!tE_F ze%6V7-D^J_E*HoHY=GA#K?jG{zgQ=y5XW;jk5xg|DwX%)eWv`|o>sA3FU_pfdpf3_ zZq2i;3822B{DLl7K4EA?xU_B>xZ{cWT6zg}eXEYjF3t(<sHIgmmS1uX<{vf;QM!79 zyAm8Z@i3{De~Iqwdq|kVio$869Kb?$I>ecBJ9+Cuy93NStt@@in}S!(i}q{1czNkR zC66#{AK0X@HGbf&Ol)#bH|UITd^2e84#YdocMcy2U_7i#w;u%b6BeH6{cM-<cTi?~ zErD}gD?`&-EGT>7u(uqjR|*>ttTz%nNb`=ZCa0K=6kPq_;;Hfg+GU2<#-B1*JD}_B z&h7<=u4>L9azBD^ct>>PGkD^oJM4uh$9Q4!ZM4mDKb3ev0DhxbjyT@PrATf3;j;vJ zo|I><=>u0Tx>hC$+Gm;~jV(*Fk>!`}Vm24>3wVv>N6G%?n2z@~H<{J(0s3%-E|==U zy!(NpFQ4W9r=;{f`q8RL52shpdodY~5Z;H<k0l}Pcg7FOx;Qsj07ZRuP9cgD$nub; z+{LUGRAm8|Rd;+s8lllsLtNlXIaHRX){ls2f3qmTMOq8{<3)lBG;6c6u->z$ZUqKD zK+yyMxTU`@9rk#xq;5J*BDVV<&g(q@)177MI#^=<EgaZNeo{A;ETYn!lKi}BYxx_q zb|SN@RO4Fxal=bqFGgZ}S3k6Xc%u5Ms3#PdZ`8^0aJxVFiYYtcF0()N0u+6<^1iEA z2d`dll3G}6HTC*b95^F>H!qt%z^23#X@c)n;i}HGUe}scSX@6}HqnePL2+t`*^6@W z<Gh+0{Ug!<N{^thE!yBOf}hz3lrGC98z(6t#wHOxn+A!dv!i9t(Dk3P{l&+RO?6$| z-(?K-%~<_%!wTE$lUqe)J{(pS)6`+?dDFc1h?&ND@?q^6|A|EM+9Ms-RpOML#neLi zE6VJW1!4<^>GK~E5JU=r!v*MjwoC^UE!S+ctb71;+TGm@Z-oo2j|KZ|T-xV`qM_Tg zmR=8@*LT)z3>kLgf{Q<o<T87g;i@mS5JP6$#;FS^9BhhF{;C(58r-w3NA%yV*LfSU zcX*1E#SQdel-81Y8kjYf8ko_{fcex6KWgMR1W6Q?foK!@CR;oD9?yz(>!c5cii9W; z4mF<kau$NnL+$rryFiD9rO9>{Ame(RRqc{Y3~^QzukpA$V<BTANpLLnq>7F6jLoi% z7ZYob7=MTnDI|20XnX70l_311V-zXE*U307)@AnV!>nL`(d$jsrHwwRUTa=L36I3o z$7i))Cikf&dGjQ}9F&q-tLDT><Xt-SZikFqnHjvpuc5uhd{c;3`NGznV6trrGt2ba zj#aa9(5lLK#VJEEOfIw)<1~WeG>xs2tF3Rs<j5-?pG`hKOBdyYoHkQ=;6B7wOFH8{ zCsp{n=yYADRP2asQl;G=wR}(XPmdYz`nbp}hRYRVD(TvyV}xcgd{grn7yBlE)p~d6 z^woL)+uol)br7GxH>$zq!O!ii_xJOBKW*Vyl%IUp6o#Ctv;8K=mpRC!YOeRhzsH7b zF}@YUmOlP^4GFaMSp69;Nzd>!@R+ZoPZxbG{e8|(4TQ630})~4vGsn9X$uMIuFVWq zJyk1?!mn8@co%|bq?wD&fap3?@Ys#dW?FWcF%DXSN4-EVdN;l_I1wPXoHBt<*NMMZ z*DA{?Q}yuDS{jDg6X;gy*U$)oq25rJc5e;VEJKsO+tqmtDNq2_mE4?UZ(tV~AvAb7 znN|J@726RY(ynn&XCHQgs+dBpDj~hp@(A`CHz6z$1L?H0`Aeb!7Hw0_&5T91oCtbQ z5)rHi0rJcr#fxQMJDfGEG=*3ETSpG)y_T*SYUfCU%JH}$eje|a&}1HzP(Fu!yd!}w z7)no)rLPGq#WFZ2ATTU^xFZ0aw%{F5R}jgCFpF1w?{B7VYfydnA9=;G>I^88u@dZm zS7SMX-EyaACo&-~nxD;_+1H&a=9{aVs>WUGG9<8*u;=3EFoB|0em`G-%TV!r|6OT9 zE&dKr16nJY2Q3XGG;J~6ka|mXIZJoKM4sAYFkXvzh@RWHJ_PDYs5_9m<cHRnoJ|^} zF^?`x_zmt}jAmzXd;pfXwO0p&fJQppi*mRDrv)O?PL({bOKIbr=o}H~^E;(E0<UTk z1{G+J3_GJBC>ed{Q3WQufQ>;IZj|jM%Ai|JA{f5vli0SAU(g#ggleK`U(^bLxb|6G zc>xNkSDUp<0@~siW1$lY{cK)~@n*zv3PtL6?b5~8E?IsGM!^C`1H$^Xy#;qqj6A1@ z0HOXh#=hYf&2AsYs5=l#nkun83gM?1TQyBL$a)Dwum~0ukG80hWn#FJ!(CKv?F5kU zG*^6g9ZBQh--!8UdaapRq5T4?x5iOajb{fQD?72fr5hFq0Un)KNarwU9}D*ON|WYV zFN%;DxJd(d(KUKpYR8f<ReU}Bt@j=TO^UIA=O<Ml(Q53k5<~Z#0}h5B6|uV3>KZ1h z34_HOx+<7tz|q9VcLh<L<rvgp(bQ?Y7->(-B%U5PyXUdZ?L{?KbE66xvg>1@K*w87 zZLjo2{VRT%y~L^0i5G(7dT$Y<d4-|qX*iU;2e`B&&Qi(tJyjjg%Xy0qxuI$&s=$a1 zb)F-koJ>v;yL9B1(RPdjr1xsM=)(qS@<am9cuo1RbM(kul`FO}hH_Bv^~ahaX~FVQ zKm3p2`jXX07FvB<yu>BJ4u|KO`ZPJ3g+YfCUe;lFLVq)4mir6pR#7F!o#@aweCi~< zIYp3mC48~?v|cq1JsivoPhtYqm<W9Rh5yDcNllgBluqu0MLXQw$Kr}A@YalOf*G*j z`OPzHWAq8d+E<^jT#Y?Hu|8N^kq{dUoqVz9y^#FV7$H+jm+HXCqHAo(*H<KcP}9}a zJ%_QD4E908+Q~ihI8oXZb7?u6qBP{aC*kKNMr{sXhM<Sg_374{)IPy&Jid4C>;yoo zkvSfBi?jL7vrY@@ATphhrMiqh|3=wE>sH^5EnMRLHt@2C(iRrQ%y#+T3>ZVVC$*zq zK}_o|-ICxIl<3_x7tMu-7agTwyZY!S8AmBsZjOVQS#2i@o~gbxup9S6dSv>DNX0Q) zkv8$0G0bYp0%9M1<rH-@1;*%EuY#eN1^^AvP`wo=liZ@r8<T&~rKY|4>r=AX8!JM` zupz>qC{x-dDN>c`nw7_lU}97nJ1PrChJ)9+`P|S~T*x679@ED?2b9v)V%R>e+v6X0 z8vVFeT|6d^t!wS1hbL<dM@pH3{~v2_9tiasz7LN&rBYOs%GOFDL)jWzvX!ja_agfi z8S7X|W#=G982i3v-v*T}WF1V5rR-zu!&t`fKBIHa@B4k1|6c!;)bxCw<$kXFy07d0 zEJbW}O^W(`)xXLX8F942We(-W={Di*CaJY-t?H#u;%Q0igf@!nIo5BMMkm0B^td8W zb5P%%r=`Od3AeV!y;cy7uMEw?grX!!KW})|cwR=G-gJJHVIs2dm;B0$I7x3$b}=Eu z)dG1PuB%QXv@CF|zm3dxG9Kd=qu-03IUU~-8C<Wric;`i&3Ed;Fd`A^k9LO4`*yUa z1g!LqAvLJw`k^_vr@`bdYcnp#Wkfj47Kd<>#pr7jg_e7;;zrFIb19w!-SeiyS4TdT z^cuTmI}2HMqubu+As!fiol!DZ$ME&AM-a`_uDoyOE`k>6;8L9I{V~-Is|aN;7OfsD zLwG1mkd@)IBCpJ(b2d6BwIdDp`m!qf;5s|NQiV7|^7pyG1v=!d7TfudS0zemBOq_X zSxmT3{dft0u%(B|%tP~$8F}+ZQ^9V-z3!(0@>vu0<u&e}YT0br0s0j$7P%?OeG<a$ zRIg8W&%ynJh_<wY)VFPK@|-Ethy}Cr%C<@22B!PPrbfSZp9*T$Um(De3GPw^&19|I z`s2HA=pU7js4K9=poypzrR7>e(aTTfvF&Da>gJ8#PVwB70?|4eU^dB+y4{8RGPj%a zloL>o_NS%QL04X;r$sFvADKEe>m>3^YkGv6UDV3(D|yE0d9O?FGF@<Y$Yg1j^_duX znM^0+!D^!0kH+vV@iS9<rRe3u!pd_MmZ|#C$}0B~f#qoMf|3k|WpxSV2OickUWK(y zT;x11)0%ZT8uguM-B_dS$Duljfcx0{mja$G4}ML#8Xn=)LQx+}opCAggZ<^7C7y?v z7tgasO10!F#Z+Jg4j4i@kyTG|EI3;vk7NF%W^3N(rFo$FZL}wKiS#I4G(nX6t7*<^ zu{S&MO`Y!yoMffavoT!%Ws5EL=alP=Gz}L|WKjMZk%r5ziOOxhA)E^%RJWL-?%A2+ zCcCBk5MgcJxi}|9jS<@~>ysx1lU0Q2A58x}oqVuo={yF<nsf2(!Y6SP`=lB!K9LE; zYgbd}{hc{WOx~*7usL$E<c??dTjQMlBDZ>;VXO2oPVdQkRyKAQ1}=GtJDV*rM(3@$ zdWhK<P>vjz^U&PEa4ksklfD+u@~9BK{T9(I80!&fjB$2=Ktx+PeU^(;jROHGx<p4G zjB#bg1Yz|CVMjLyhe#vlg#~uj`sS+4r)2ThyL8k5g05a{t-Z>}f`RFdUStp}G`Y5J zY2_8e*Nye@Kq)G)y?voJ{@RBGjNQb_b*nv^Pz=3T<019N-bbn-e!(r5-cli0r%dFH zTGSP)*Qk4CIR7$xg=7xnu}YdUbU>p6N?2R|9hA<i#MTOL0CWajy*&ELTkG#O6-7Xl z*kYWpEKVac<D2iR9agvbTb78`1S9ptEjdFD&nsVEP0KM^HOMg=33_?#W+gbpi<5_Y zR2sHhpcdebcnAAiM5f)$)x<??2!qt#EB5G{v>b?6>$TW=J~Di&(`0}B<xGr@O1RYi zHo~F4SzhN%`J+(c$w1X-d4Hhyr%D|8IjiRLI75p>sM+Ob;{#t`{pgfb<C}e<EC%(u zte!Y$y91#9AwT(e%TrucurOt5echNdizs>9{mOiHWhJ(xApdlDm0gV?PxTKKINN!t zd>#FWAr36vX&Hf)TD#k-+*bOks+wveah9|w$0<us1GN2!N{`!cSTOnIhQ=Vy4jG_p zabeD#V-D6mW3IN8J;i3Zzi66B{fv|v!=bKC`2r3X))b;!ON~$8b_#*k*J4!O9vPvL z*owP!VT<w0ueCt+=Yb!b3~E&#F(H2aisr!n<?w^e#12jS1o!Lc2}h)rc&nH1hnm7K zi^J(V>KpkJ?sK7SX6zT0c@AtEvO^}FuXySOO<lyE!`SM^jytWr{opQPtU@&6^rn&h zs6xBnw9zX=d{j*mOuiNSUBMaEKkVMGYCducnaIrfwk`QkF;XPMq*)|bSS!tiExI8) zqxR8(S3lzaMq8f4nGas}WQzKbcfXuHQzOTj?Vi?*!SRx1U0<bgc5Ch#i7MMH(HN07 zucWLP-wPj$QEi1tX8~it{Vl1XQhu#xx}1vF-r-(WwZo~~|4|Twyofb-E6WlD&1~Hw zIVV2bmeMI8X=p4^`aiT~WlXS+T4JX|2?b5;?n}{;m0W$;@I2z80WU{;SA0wa)9ta+ zPR{oAPOkP~o_-%lQ%dcZ&DaMjrszpcRjZuZZ}6a&a>_Hq#<$_Anr@&T;iQkX&Du6K zWc#l|ryCXw70f%QedZVA4O)@uaHO>G&$atgl~yBPY0s(T`(J$?=OQ3As}pmdEhD5e z=0iMJM`M;Kvg%T^$2i8xSOkQ3bAn56r3bDBZ`f_PFH1}2c62fc@OGNO4gD|mFWYr) zgSBs{xjWG6hCqDVq<F>)=uZ2lf1B6L?zhc=DJ5pM5b_hYdzSzwXg^iTMD)w*gq@UI zs-4~O%}s3!vF6Idz=Sl(`K~_`wapcYlXE=An5kSYe#1XA>U$stB=ncnJYLnr>hc+e zGZpB@iiiFmiHVcXs4&v9EeNM7q3z!5IqV3bVDX|YaG6kMxAVcXcMAQpLhxK^)snv9 zIpM)=ch1kX^lZUQy$zYE6$GHrhD2Xrc`ovuoxA$$RyhlTifp8YD&4K(kLTT-eZiI@ z76CJ!JlQzua_tM7BYpQA_fhs%xYwsklci1%f;wAggdE2Cikqg!BQ7yKU&txI|0Onb zEp2_yIlpviUE<>1IoKETMuS&+D-~!j1N44%;$%5TiwWb=Chge93v>5U#MyARGcSx1 zvAr`*(uVZqp??yxdL}HJ6c(+d_o=K@H07?Q{OD{BZ?$){sfPya81ga_s-B2(XZxpK zp`Yw7u~s%&>CTpv?V=w`VzlDI9*ZQL1HHcTcnnRNVLvv52`pGAdUF86B#V0R8y@?M zkAYkpCCMFfl;54z6mmC1UN_Y}&6FLB=m|Mf%Rs*?O}OI_Al11x&JKQUl{lmMo|wsy zf<nq+8r)NM_?`yqBtlP%hWTUf7#IDMPWU>ZRHodW^e~8G#xDb}Yc|KeN6tMdF#B+= z5<8yt7&l?f&adQv2{wQ1<iK;QvaqAA7BWjOmfd$RehwatBwTFnboc1<oSLiNYo0-e z8Mlr)Fi*V^R{s>Vl-=Rq8Plp2ZaS=!7#lRxF{6wZFH+;AmQ!j@m4t?1?sRWHNmM1D zEKgWC`d(KjXwneMG<U~%^NG0Ysz$RR!v(?>td2k&$QPOkJY-&?>m5m-SfF+dUW0t_ zR|o}a`bAv-SWcV#FxQ>)45v-6w6(c7`RLtP`41-uh0?OBOdVx<{<DLfLDaH)zFKwJ zOp<xV3|TWtQ*pcD5-X4bJ~@<6PaoZIz~%V+^u6zx^wHj-ywHwu^A8g#oZt}db8B4P zj;2;cN($)J&q~;65<3=7s@FPfe$xy}9=69Z?Tx2T`dG2ATxAuyKnUM#lO;q7-xlK( zo_lfZPA5Si45wV!X`X?(cPMU}R+~1j&0Mo|4mFheb6}RLdRVPZ<T(WNd3pG<xygK6 z<})USS%QFV*Y9y3!qcs^l#fWhHzj*erI=Ww^fzv2k1X*IIRz6ws=&hujK@^lJWF&H zf`O!Cr8dXzauDuWY%7s~NPP6K2JM9iH#fy$W9rSjDIrbthmx$@S)2S>c-c<Rozl%f z%xx7JHqDQjcUzA(WrUEa7msz$QO`3Hjo)XKVKdgC-T<@-Jy&c|@e}x8M$&-&dt^uw z_x;Jd)pz+%rP)l6ZL&0<gJnM8II1JBTAVu$xspA(%hpltfMGbjF?FO*5Pl+0euqD{ z=6cUc=6z|rICwm6h7#|)={;MYH7wuWQLfs_;rmk|?iRD;41r44+mi9l3->HE)O|W6 zWpD%5bsv*RjD9)jeB*gd5swB!ki*ArAoE}(<Qfkx)fVC^T@y_HsWS@ualUT4Ym=e8 zR&qb(=NIx98K$`%eT#x$o9;%Ef1fLEBcfGQL!?Bqj^=&aDbtl?`e+HnT9LC4RK=79 zj0{yv3}cQJt6mExZ0#}yCvq0G5uPDfkIYA?n0H1jt0S@*cXX4Cw9ULE^w!EcCG)>0 zFWE<+l_?{_&r3f>T&RtKRup!0b`v`q=_5No^e;?ObfxiVB~8OdNgeA7w($?w?Hgy| z@eJi*9ieYK)b)0>YltPUd2tR+yQznSR+;W{i*@}{B(|^E{-_#*1FmyHz^OhBCbuaA zdbqT)=9zSaKMkgSCfB}FX3(Z}WaR|;ND8c$$q{0o@?rRl_uAEOv@{NA)X<p*h9ijc zQ-^1-f}P_#la#`>XP!aUZ}MIxg?bnyBH6?nZ_j!`38noE`Vp$PJ0yA5g<)a-x9jJ; zu6&uU;jKZmlx8}a+#V1|&fHVXU(c(AbB_>A6O39rJrc}DswI++=Y823@hDR&u?y-K z>)DcV^4?9<CBf7^GnZnITd~9hm5it&S&(I>JK^U2sY;0)n5VpLr-~ed(X1fRzK&%n zI@)ntS&5kt>Jvi1&h3<m1>qr@bS>w<Ai`YMGVTa(TwxYjl&lHjQa{hY#9CnY093`+ z%6{Oqgc)*<%ygOhh|C$xIcDC86?zSeiO`k*XdEG|(VHH{B+dphW~iW*gmHFNb|}Wn zpk6{wamoe4scPOnlNZ`yivFJKEO`-Wg1xmLYU+K?f35~$TT`+S_L$IHYR)Wj0~}R| z*6+O>^zaj29dMg;V;!Cz@|*S5qYpy0_R*{}C*7~dpo~X)bSq<q%zHFd%)Ey0+(yL| z7HjAYm5xX{+Ge{H@!Vc{NUk2O8-q^O@(zhecF)rmwrv^?TgI$edXZ@~>Esw6%7@jc z>JPXxGq8`Y@`Sz3LdiD)xsITKyYaBIKv>p|O!ZaI5F%K%ahLsY!JZwQhhAc1-DO*! z#%BAVnUVs-U`%Y+QGOr3r(+%H{`s_2_O0~N+-RcvwbI9gU^XAce0cTPrrh^S;;MLr zfOMx9n$a<&vNPhwg0_^q(O5skKWi^XoOf)!PPDKy>Vw05RB=Uk$y@hNDg;6+VgA<L zUTtm`Zk_td<o;YlI4H1r-Hj+uhIr1@J~m`_nJh0#5G*uj(wuWgV>}PZgF8cRV^){( zx9<A={+@pUaw$_DN6U&*iJyG)A)q96>y6CmS^uDFM7IB5z+ZS9qBV;s*fWmJzA(2} zl&ZQPBN;2CN=|EVzZ`S<*j++MK#N-9T+e`Ky$Z*#gzOlV&eo-Y&)*3|QNQ-rdd_-_ zvP8{F_&If%Oso-Y7QPfF`_+8paIe|cqZZCiY@V%p+UYX6>A{+Fe&)%HchC-+1)7d7 zR<lbNDh6anscRkcc*7d+(ejv%z>c5pxE@{OkhWm~rnwqJn|kn^yDghh&AS;aU<Gq^ zu~rg?+}G=|A-ZBq@lMDkbma9@5Ml@|q{ZL=dZyOu*KfLCX^)T5)9-yUwyY|DsI?KL zYNY*R<`F{ry0Pdh4}8G(u)gn}co6P-y^m{SC4*JnTI{VDb)&$6V{&2n;)F+2R|#jm zlO%Q4M(FJ$FdM<JzqFW$b+~q8Ydz>nWrcwn40@k^oDa&7BEo$i3~+&Wh=(;B5?A2F z{uW}zC^YTx1AcGn>;sjsMiuAQQ<7^7<?P2e3T{K-lcoKjit^AP5sNyYZBM@3nebtx zp@e?2VpP`}5~>P?Kc3!|Wxi;{Zd4RPa59v_+4jvX5WR9muHThP+W3-EgE*5Pw%m;C zxAi*nE6A|HT8d^Mh9D5G0Z|%y>~zepdmt|Vh0d#{B1Vpbg+4CDwdb<<;IAL~_<&<W zXOB094{>&Jtwc1rPJI4|^xF0JQ2q^S%wYA+>P+warHiJ|T*8uQ?6XS+lVGwRyY1({ z(e)g--|I@aZz))v)W=_B06q@w0L^waAv{C(<6m!h>>A!Fs$<Dcr<Z2Com^{|Cw@9w zO3H!JZ|yY;7j<qzr<fqoa!$wiudUrY@kP8o=`-P%9^NJLA<AVk<TyQ_rDFCkb5<&~ zUhkscC~1N*w%}E4qmkklYSjp+M%!GDu{;xEZuoWcVI$%1?V9sdxh#b}oe=mhbTNXZ zvpHq^zENw11cZ~bQmce5WGP{i$&h5~m2((%Ti}5*dxk-{0l*%aL%tZc<@f}`d#L{e zY2yVMpbfYPseN{1h4CWCOD0u^U|NWzXyDh$H%|>CZX1E(N3B{?7}qXPnEGlJY#7Ub zo%!yxTul`3!NOWkO`4aZhtfA=yj2VvEAx>i_q;xp^wZ3TbwqW(6j9VEkYQaRX*h8c zL-=4Te8;dfd{rtYrvd0J@<+J6AIi2aZo<nsoeBoirqLp-;ema@-MmR4?hQjY<;{ag zj1Qxo5|2E;e!CU|3+57&bW#sw%|1$l+6cXX_}p(TacWoGS6Gd?qv|}v_mIS@O!w6S zbEdhO7W1B&Hf9!JZT%oBl@)>0B<W>|It@eDg&!E{U4cx^l}<Yk=kCP}UURr_Bx$Aw z!_wBO;X`5?R`pJ|coZq1jRf4i(8`lb>m()*7E}@M88!3nMn1;=JB_OEI%7V1U-VlG zndw-HxZORYW6pa#GoA96nn)3s;nw49PxI@BzE6fNX>yYHdXGS6)%{IKgpNbykJrwH zTWYsD>R=D~W^t2mT)2#lnVFbC%&JHKgW*9*HXIIF@i3O`7vzF`8BiZysGwIjynwTH zq=lb|SMqTGxg_LQQWF}~89iwwMI-oW;S|{P8>VkuWF_gJe_3uk*nim?db$0_r~A=( zO!iz!(*;%eyx!h6`@XNVYFe-ww@>N~-Wz>=sq2LwxDD<lIbT3xs^7L{+8MR{<38os zwlxqOfTq>6XZE#!<(Js#MX#<ldA$63{^|6M8Wp^qI6nK{Qq<FKI!5&t*Q{`$>t}Uj z>woIShGbN311cF06jgz&#_14(vuzu!q5qV(e%D{utw4%XKjJweaYcxVyy*BC*wavd zBp+fciJy2Y1~ytNlHJBX-E<ohx*}iNQO#SaD;bp_#KUn%t=1f=95sVfjk=(dL4m|K zZ-#teU*Q}wVXtIc5{myoRW0QW<m7O!wnwQd<u!B3Nj^D}$7wvuJTv^@wLGx^obM<% z@08^f^WDg~5CTw)>C2-zJYPO5xFJY|k>s_5T$nGzzmCVBwrpwW6zel)dV(!&y|#KB zPo2DhMao_SU8yW{_r}1rrn!|P4~70%w%tYr?tc=t-#C~j<(yoa;~!CSq=Wd8u5@WQ z>;9Eu@A9QMn*NTMUfvN$r0RlS9`PiagGJNz+EwQVp&o{WOSUz}J8%6zdTVnvJWQqZ z?rT<rL*lav=$(c)_i_ph8Pe&UuJokS(?CuiUE+d3zWl7FnmV}m7Mi*4^cP2`<W677 zPv)|JC^bJ_AIGItY0<;Zw&MDX1A6}SJ(IQ`R$KDRNV%jq6+*9E$cqJ%`@{T>^aHBn zi8gUQ9kmTNqgp&gwb{}<P$LBHp=(Lm?h)9M|Fvk4OQ-+f;voZtg9uOpUa6)gKwtR# z{&m;=3=3BD&5q9G4&hRUk2nY#47Yf<<c8vnOo4yWT&-!c<&AW|@b(e8Z2JK*Rl!F0 zYbHcM4RD~G{^$%`^JO-2)cf}0vKD|l;i)uC;z}6oFNpk~8TM?RpA3oE=KxV2LZRjq zmnT!t`n|xM3~G*!gsqZ1$#3#jgV5V){wm<zb3qMO4a8M`s8S$^ztQdqQ<9*#J)dmK z_Io|swODuD)T7Xb?fQs=y%hWe<oVy=6hR=Z!qZLHAWdnEr;}X<B2`JjT+bd}xb4Wj zongX7y5g3!X(SEG1b6($W2?Q#Y3&=`IhX+dhrA#2AVv-;(=u2{??joStTxa<_+v(w zdwq^TATGkraWpCR2<KGBFxZsrNv-qHdrZWPS^P~C8Pv8;&0dY6wb+!ag401T5u&8T z`;^b@3U?0cPz}BMYC~YaBeo-uxKlQ^hr_GQpHDsKmz!a7P523hM7x<0?UMY3=Oe0| zr<?g!Uc6(y(MY!nnSaRV$fd^8Qmq0mCY?E$EU|;c2=U96C7*;q)cB-ikMv%I)mZhP ze6RX3&oeE+)yap~nSF5Y{lzO3q0dvD{R}dr7wwZPHE;wVv2#++Rq)FTgg>?`7Ao*! zJHI8vN(=d-nL_ys0=dM(_U>WG_H<KYlHDm#G&ytWVsZ|0MkcwJC+v~<j*e#!N31)| zH)d6IVUo!-#pMblda5*|bVd!0`#MuvME%SQ&DIdeyvT?u1md@RWk?y4!jh~csD;^L z*i2#EasS4yx_1LLPq^;)wwZDNUQ+QUe(a{%F<%ELfypsM?4}ZKsYj@##Tr7<;5Fdu zRL+yh5IqBVDAh-u`Ov~wCyoeW@!83e&VScGw66a3mTp~Bbt4$m%ueFn0I`j5@ZP@p z@+Fbw3HgF*xgYndB;KUeg!Mwc6Whoiljf|GEyvGXu+-1G^rO?W#=Yd5bh*-Ai}PiB zU&G^Zisjh!7cYr(;Uc;8>haa$kdy{MBIl!0sWUV0a2SXMM;3?6qP>=DxRS4Ie(FJR zKG+=4h_)@Rcb)dD+siTJg7&z#-jC|>-6wh|Me&w2pKss5V~DvybqD+8Xi&PldEc^o zv2(X}E$B&hbOh(>J{)%LudI0Jk-+t|ED6br$*W#$d}SRyl<$B)?+knkeY{cYon|h+ z3{R;&KHR<WGy!KDbD+S1(jg`22e?Z#@SlPJ*M?gHuyx*7_+VBX0k#G|JKV1Ljl=G% z>Z1cq*F$)t3ef8vubZ5K;CgRXr18o4W|13Q+(`gc&}>fl3E6H=!;h3E=djO7=x{Yu z_jU&PW^6RP`V~T}9{~g<|D<=t8lXVr>VZnS*g``Y7$Vi`#>N{5#7#mVo0>DiUe}kH zs8P%+A+m`v1?5A=O&nI(T-Wc#ria70^?Y__qBn;Opu?8Q-cbP@KBCDQ3~SRF?UPSf z`A_p%b_dj+=%qugk{`W=D$OIm?!!MrIjc{5QN|9l1WlN)D-<32c8f92#@?pbOiy#? z*(ZYB*uq%?`~l>l#6V$J7Im5I+iuAB=^HrK!-d818PTOLxTt)5w9t_54L$Q1t*EDb zH8*#fxg;a)K7T#lzShQ(ob8^b!0vIA&aBTKpI=xx@^K<|IhsBBr{Je84KDRBS6iI3 z6#laDEI{OJ7#AVSsiiWLxK*lL5t(4z&yC`9wh}|L=H;G@kg|U2RaiQs5WFj3saz!E z5~+zOVS<eOsqQRQx$R5!gH6ntcXCPSY@c-C2(|wE39-{@(w*I5<S`S|4(eSAs<+ye zMaDj&{$}-BENLg<9FyBfv;S2h!Lu|*R}AU%M4%@2$t%f-<=4rb*{#BZVZnTY;qY&L zH}eJ&lYgBKhAxJ*#xT^yh?#u+oBLx=_1!T(VfRMU%jsw>ofs8ktKvG1`roA5yYRqP zp$u>ZjV$_94WnQusDU^dbYY?1yaVGXaA`}lW+Y@wELjhe&n?oKY(H8rboAz_*_lm< ze$Q+y8nM(R!yxfdDM9$|gPrN<XfT1?5h#<G<;Q9#x1fx;N92O&eBq`0A9~o{b@<Zn zXF5*1&tdYMyw$ZoprwM{&hn{f{xcvVs;xg3CM#Gd7Dbb?bXa<17CRgeMJ<zbWu6vx zq7T-wzN<CKGO^t{oo_<1VaL^#^+<|&;Gder?*TQEQWAM|ZnlK+KIn#V%aDy(OZ;R! zH|))`0J*j1Q*nxG-5htqL!e5JV~E)irzek{YTME2bV7he6burAP!~_{u0tSHV*L7k z(uT$-*Y;a;?}KuP?N5O^!|iM>q9T>P56x}(Yf(EuNoyxox<G7*gRxKna{4%M^x_tA z4hawLu~MXjb1CSl@SExrOZ8heCJJ+#HYF|Vk)s8AJCEP=-#wH9BcckbuP@O;WZ@3Q zZ|=FAO@pgQY!196c8U0YyP+=I=sJ+D94<N;xX5+_YwTt3ywRs%x$;ccp=PFZ>&9Zu zTvEG6()!2g(EHurk@3~Q2iovccZM<5hqzyvtHIPXN4IkYwsHrWcbZ$u({MqJ-P`3C z9aDTbGfz2m`4TH=Ys0pm96hsQhF(Cd_g9iUyAwS&Wepb2szwmyqZ{&@4$3(8P>>u> z01hgLm#^CClWXSF(wn5yC=fr7g;C?9=JNFS{aknYB78pDq1RefMV%rayq>+OW8w{8 zf3;s`Cvk7)qlU_p%2DS|UW&2TQcS(-?`B5TAG26#1BTfLL0|cAPqff6T+va>eu3gs z3aruqW%{j#xYj$Caf<eK#W>vnwFt;VidIRNwiu=v#571s@*zHw-dm96y3n5$eF|&S z)R2F2X_D@&xw$=Qu`kt!Vj$9xbKY3sKC&a8Wc|~;5I03r$Q`lI;;1jh{wgiPbrKtP z=!9H28B<m2nU)I=+^Vu0zY5Qn$;v}?0+S;lB53Fa<oF+ZA}GmxYBvoD+vi9a@L4#Q zerjtBd6Pl>Zv|2y6(mjn2a-Sw0$=z~;k@C6Uh5bCHtT4g6!-LvTQ@2}<EO{jHlJm$ zUy3-ZnH0>dgKli{@x285$6|(<j_iAZTR3~Ub*ewjVF`{Jnfs16Gf+-Aqsj8eDNbIx zudq<>anJ@dkqfL~R5!s6xaqO_RlHOIG=KSD13AU^t_kzuK<w^!abPI(2-#6N;4m81 zF<z}6xaPQBH+bx%V`Ezv`6=xS_&*2@^mKsBg8#qe3~+qXAN2UFx*bW0Kg90}<I+E+ z$~hqX3;>H;O!FUwK$K!t5<{5T5CV?`Rk^mFZALFnzCRg4zR_Ss^L#x=23(YloR!HC z2!!(O(DyQ_!!;@`Dn7=pr>&W-5O*hxL$7tpV)heAw<mUvyi=LJAa1Xiz8zPoSZ?3& z_p<^qw3HJ^jK%Nw3fbxsd$lE0bMb~*gXxa*r;vE<fX8c*mi|M9^+g(F)(75p`POA` zZ2tIvLARxCUpqxI-t8<{Dx0d-Lm>M<*9c6_m*>q2p}R+9t4inSn4Z1Accm&5C&!pc zd{4(Npzr;UWP9ygx;-$WOD=*%et4nxuzOPr{UeYGLX?jGo0J^y%bA~+&U>|f|8~*f z{MF{Gx&CS%s^(qH?5*5xic{rdd?%EI++?@YWJJcHnVZ|dKVCORG1ICkvqW2aZ}rIf z)^z>Xgav!dK34`k`WgBPz~%q9owzt4eH-o|wNh)lLI2HbML7zz_p&4fik$$H{y&^z z??Jl6uQ}ur1(h6LiGiwpzuIZD_hZeFwa;0l`1j{deU^o)Aojw47QQ=4qIlWrDcj`l z>mk$kKV+PN2ZCZJ4gaOX;(=Ke{iA#{vfkd;?^k<$AYa6(H8LmGU`S4SrQrs*4Z+8( z`s0dA>I<~Xi-*#kguh0q2|hWk*_}`6r@I(G#3g%upcN)d1Mz#2V@5@)y{e;!Z6bW& zY3G;Sn9ASt!4|?f`Cz7hBdUs)kF3A{5ERJFz*L^(Gd(l8%UNbzs4(-xjdGey|IHzS zwmeUK*AZ<^asLt|ITB<dLZWs9@QKL%0H$uk-E@#c%SUPLe{^d2>&x>$OIJTCeW?b; zQ|Shb4ihhj@;66a4WdTfCaf+E4?6ummk#0g0FU;k+ly>E7@7&b>OINh9<$Dypm`nI z7a8cqU-;_r(w;vimpI<SDn+(;^PzuSRqAa1+&Zsk%d_eA+<*6Zv$@h<gJ{wmo?Fpz z`frbyKKf^yk#&YH!hlu9L98?OGPDp0!r2F^4dlM_W15uqU8n2M6zs<wPa{=+!b``Y z9c}u_uwUYUKxaOANNr`mkm>}C3guWY2Y0f4fy{1=3IwwIh8h&hTfV0r^UK1t%ZOWB z-&^A1dV1;Nj1;O|_1KK<F%!E>Jlm$tnlZG6jdwRs@juqkvd9N_*Ptg2WS)zP(0gCr z2;hUnt8kqIam4>O-4W%xuldYA-cLC&EE-V@II(#G0;xa5zZyWBlXA@ENNVpuNSJ)v zu@6snx+6yIJlQw)*W7QU_-e*Zwlrqh;`Wa~dKmyK2EsK^w(F-UGqb*V(Hm6De&=RK zz^P?^yHjo_Y7?z}D<*)G3dqlOF@&?n7S4i1O`f_(vJ`#pFh0cKWz)`35viofykkdu z9jS@=CdkUF%#@2|(BQL`jvb~KB~G6htWKgH-xi#a&Hc`$lF0ueF4(-l8fER|Yd8zp zi0J%Ch~gZ&R<fJ|AkK3;>ad>Y@%|nDy^ZGdPs-Lr@{c%y8=oG$wz%iLyCLqnkW)@x zyQw@ymz&7@LYLjkZk*qEK<AT24)MK@qpwrrMZ;GvqfIY7=2Ja>{|+F2fBXLw9hmkm zDQTRUJh((STVd`{oS+?0T|e}h{(tol`EO?eArqBf@SGay!8xi%QO|YVii-TYV$x@Y zkh`%F(-vJFpoyQuuzB=LfSzBrT(FjcT>a02!G9%&)6j}Hm`ml$=k2rx=z3fCLTPpF zs`?|eAIH?B-2RK)sRKBg)3dzwPo&W;kl8@hdD|+oO;Xl;)B;Wq$r8>%{QtD}8TXj` z@v{9El?JepV%B>p=mQdH$a8k8gAs{&6T229r$N77!7;)CqgB6P&U`gdilDuWt~Z~_ z4`<f*gS{FKUV<|&oDFLu#e)Q&KPG;JnzC&$f|8<)V1WrLXMms+s9Y_Y?cLXYp81M^ zT?08=W5*diaIJB7KBWNB;+(zqVuFHMTJzJ6Q8)l4QVs^uJ_WIVjANigdWQvR`l;Z$ zeQ|Sb8pb__@OLiv#Jxax+pbyK<_W*Af6VJE)n>EbUs30@ZuyEgI_Cob{)WJ50a0TA zH+Fv*&Y8dYM4F2QKC@IzluUVma5DKQGFW>N`sj8MJ@akE%U>bqBDXqcR4`2q)e+tQ zbodb)ymrOSO9u;U#;tgR9p%UM$J?+OsNU%RH#m*GP-=_>+~7kT@DXrbgKLOOAIbYN zlZ$yD5NGKfnP!7FD!S1j+EBC!7&~)nwoK3s_*j7*mjWl?i{{}$yJR3b0O=K$9L~X= z{7@y5#7m=<7VY-Fl<sUWw%9wyHwKyiY#)7hgwH-1`cQU+V}->pcgp!9^kQ&F&LrVk zfIALN8Mp@V16Ylkw(?1hLVD$4UjqSsb5=E0RQgd26EU4=m0g;-vzFl-XUg@iD)%w@ z9N~02>k&#{A$^cJw9-F3-<0i{U2!hB&;1Ws2L8%#*N*#D-Vw9T%bRRJuXaoFO++x) zx}3g6T;ofU<pPlsGUE_TPB*_3^3XR_E5NED8&#AC53G_|D+v!I-%w<pI|}J_q@F+s z>H__JNV&SW^%YX_ZLy%nqUo0>w6uOC#A{#5H@ssa=16|~26}eG08})4lE=b8_3`|L zY#JpMy~`S}*wUPkSlwdHT>3k<e}<PO{NWHC*1ZxvlG5c8CGf*U-F4Ew&$Y!w=ZF^O zj^pl4--3IYf{F&{+r7o5Ih#z-sOFvp+0F;vpGsnBdlOVZxo!adrnM7Duraztw0Z&V z2246=mT&k@Q8s{MriD9}Qd+5r5o8woTkYsWgPnJBi0k)x_xGxmAI9Ki>laPm5*>%p z*G*3J9y?-kbM^gElY&>b8RyzI^dqpjn_JH6(w$HAc8D+<5R$yqfoN8=t&OBlP}>7# z7+;@J&OYb!Q$GlQf#6h4aq_xZQh2y__BzhhAQM8IPiH)z{PT2_lt%JO^!*h2k2;+l zA(P&3rIOaCXAIdxX1<!=Iu1M(i65MXOWci6v6#KJ0){U?HM2|~2)E<|la6!I_GGEC zL*Bw!D8_p1S!JS?kDfSqv@}=wrN3Qlrbc6d!J*Q>q-*`2fUaRxfRo<ZJ=D-$^Uk1I zWD6DaHGjWG3;Bq75~QjG>b;Dy|I||7z|_a#9(SA@VuL>30P^GB_wP#Hb{2he_aLLg zuOl%*1uPFO`E;fVWtdjh^E~Jyv4t+?aCrfD?^B@13O4)fPFa2Ub*O<b1H{kA+2EE# z@(=sC{%U)kEGMr_7xN|a|F^#hd4By=zzqn0qx<?K<2k8&nH=TpQu>*Tpqhb?bwjna z>@?U+riZtVFheLJeXwSt=`fqTmoi}8a;{VvJfhw*{5?nTfe6+weqD(V?t=z`nbFk5 z`jDylxu8+_`xo9l?U`%;dE0oZM=#~%$42;DDea_iX7;?l52h;TzsZUyiVd~UX*N+W zk%Gz*n|5!I8&GePh!*!VrS;2}Y-v06N#WL=v9JGlyQgLZlR;Q)jR2<TQHzOJG9C%a zU?_2?|8<BP0s5+4-?lJD6;O>r10|auv&C;Ee{=6MJ_<ShUf9dop%$OD`0XwPq7ek3 z1IW?&Wp^vu?{)G<kGfBVg^>q?eAP9o>TY=T4R}w9<#Uk=la5z7!hU%DdP5tfrLA|% zqhD9*se(c|cC)!*kYPekqQsFxjr|c)`|f}ms=E2~ZiQy)7p8F=YzAVY{N4{Y4WmU> z_}bV;_`mK+o6jz(>Jie`kB+jIIBqt%X{#<8NC<gM#0R2v!EY(6s6j^Z2Vt9M<5v2T zb9K3Vr0m*l2R~9;0t-0!f4;2F!A^j)^yka(BIsoF?>CVDUw)+b>fqdtsNXf+S6`3) z5z{}SyZf<Ckd~}1g|MVPyGHa@VbJ%G|1%9%>6|lRSu?L25*AE-^FmgRTV)^X2Osj^ z!2CW;0igKr*TWFdHuc|cAmu06-u?H@|JRQm^4ks-APO!!fMnS&F3Vcj?g%L}p56V| z8$`iA8Qvv?oi^)wSbsbvkp2<mL^q63fH)2Rwxw;t`u%9!?S=i_-(vY9BX;F2w~&TW zi=Uh5+l%U!;}a3<?d|>yl5s8AiqnR`r_wHrvx`Pd-{5${?z^}4^3Ab}-{%IRVRk+T z<O!}a%bp@igCQW|+PS25+U?NG<m*UdPwP?&3CAV2RIaf;#c?1CQcJH=N}k!UdW{E# zV3NF8fi-TYay)HA%$ryIQ~;{W`a&&2IU=T5+RuoL{@o_nmYbavk0y_;s2r+{9ev3L z>;}HDhx%0O4ES_t4Uo_ie_B{AxN$1)kGnX-0aYusfJJ7l*f*UKQ7UTO-)&|4F0$ig zo0nBNJV4oOcG8yUv%rG96IQd{!4vI<o?>gCO>j&)H0=0nq;uR#-W|v;^?>snt+gr& znWK&-dZ`k}_u%(C#wad{+y*2~y;QN!W`3Dj)mFn+J=K#Y;%1Bz-&<{JZ<8dI6m*$@ zlV4U{yCl;`wW%$F#Jc^Wfn8)wsuTsU+Rj(E7}b@pF|2OznY>(QX)gb}s*z$}It}V$ zC>@0XTS)Dd+)>CzAC-p-7yOL3H6f2|fNy%t2=*B?DwaJ-sO9>taeTQork~CA=QZ!O z5R*i{%AclqRiE|f4c`N@Nm8kgJiRHVOBlz?_TbmktueO=@yh-9J=7D8Mv<DSaIt<W zpJrt7$-LiElK2TvOxi+kB);x$pButaXTD)Ut5}iQ$feH(m>E0Qtu+L}43=h9{4;~z ze`c`Nc{)-dtJtH<w$y2cOl3fgyp}338Y&NNg#ePVt@H((Xk+76{YsZv|HeXovC7<! zPtmG_Aq{lCB4rj`ioU?aV>z=8#P_Nfb&#HlZHWeUC33Yuo<A$l^=dMRE34SOg=ali z5CxDl%&awZ1H6x3OV}v8l=wjeeQnH>P)N)btY7^`hXK5AwKn;zdNIvBAQ)3rRbcoG zmx@8{r&tjA?9kROk<U@^p(m=6JJaHv%2KOu7&2HKs$cA;b5L$a<RV!d(E@dls>RaI zEUJ5hUCi@~16%?EOh1-sj9;>R93v!mt#*Gi_=<XO=9{35!B)rb%q1sNLnr>J@p{xo z^;CFg{{Vc#<w$XOoLd7Cg{NAR+PXF7=pw+*jL&Pgchw;Hj4bY2JA2(NAKsMl3Nuaw zh7dgUWPwZKfI3NjN9iAf7lk2bH8xXAJx8pw%{}&h`7?CGGRqyQW<AVQgp{PJ76(`w zb=O4__>l!>*C`Bka)0GuADU1^2Y)$F`*2xFjQHa|rpJ5vwVp%<$I!qau$v(($OpUF z#`QQsO1E1>bWy|Z!j7i5m5DZ>uL~CQyVTT%!3(__qOx<C7la^VuNe4xxoYJOfC^o) zTLQFu7b^BpzSqBM5%J;K=#2>RsLadO-@yVK!3VX5Ut@K2U%VIReA2M`9(ogy-TKa8 z`8la~AMxjIZzW-k*|YgAdrgW0qg~~&MSCS+G~ajf)fL1>a9_&BmA$|;l+p23Uu7vO zX}uD*H!izEv%OjDiyFMv<2h6o70FnzICe(WYXlP&=|3^OT({Cq>Y8ve65pLqA5L%A z24h%UbLJ^5e@3bgOXTNl-05;G-GO_RKN%QUDQu4)wGb((zX+xt;b?DF{9d@u$Ex@o zo*cecZ(9v`#9N?n;3|CA(WBEK>Q=0-sRKn@&YYZHy8Df}fj>WBbKXWmc#XRA*3+2l zZ}VV14~$T}<-L#EJHgu(r@^w=3RCwWm)A<Y8%gC`2w&~(ko==d0SnhEb~<^>l-8-` zoKL{XvtCi`eRpSXPRe9Q_@IHj+}S2yvnWpbY4(~J>;3B}$M=!QXcgF<h}>8e^7=rw zBz*bCgqFkpYJk+sl@+n6(EFuoT6wgS50n@eDypTfIO^9Q*Q5d5(@p%<#|<DzT7(f8 ze7BokR*ktn6&`*WJ?+o2_q_D$ah98)u4EaT#m6k|@^yBP*wd4A&2dD8O?>CAAIX6B zlA|}lpv>KfKL>^qoquis?WnA(U$P&j*`;pH`lHXOPFxk(M|tLA>ir>ZUSTb^>A+#M zNOBXjA1NR4wRE2SWXZ{5U#`ARJ(o3;!91m+5>kyPClbab&W(A@p@7D`D2}&ou@uy< zjLQ4lzf-M{jy}W$pa#QmV~)vU+%`e|=s`Y11+*A3!xIfqkH~|`z#FCR-oC(7Wt>#I z`;kjaHD1Lqe!X7E2s5&nRfz>|`bMz6OBKBq*y1kG81M36aq@OES81im%4bZ8-?o=8 zmB6RgsD>E=5`70M6@Q3n2@LH6<-oIcN%CTJy&Dl;>}52Rn-xw|QDWnjCr?i2u!~X0 z<=PLqy(TYJSvq<8Cd2lCeQU_BR<U*|WZ^oS7l^XSN-E%Ddl?}?dQ1=G4%1*q6RLlF z&Mj24oCOxT7&a*m_<*_|nxruVNa~lAO{^+k&2&`FQr+yG1{?EiOha?`?HCrymnW#2 z^#z?qn1KqaMl1b*NPUm+BAfpTh~m*r^kQ}n=z$Vr9vp|8`%t0r(Y$a##2o?eLN|HI z^>=onv*JB)`}3+a?)OWhj5oZ%mG_c%wpK=(7O{IF<O(!*o$chVR-wwC$hiB|G<dzW z>iSz|^wqjcDU23uYV*kELr=*-`o^>8OXL=2lf8FzTw19iY9mmiU%errChJkim&`LR zuTrB=w$$U59XlGb>q#R#JEL=wNFy~W4k|k;H=+DYu2wWN#9{Y+17A5FshPE+&ZQ3D z>y{;xK){h41`x2!A4|*b{(KpAflyTEK*a@El2;x0eQ8JoEYN#`JdX5cPK(Yypse@~ zpN#21;lt^STn1?<z%HBErX5XEZe-d#SzP4?)}d1+uiSTcpIX;gL}t|5%5!bxK`ZQH z?x-$&+XCSVHUYg0cT(Re?4B@)7Aom-usMvk<nj1XW6)reGGaGk>+-r+n%3MyZ%3aw zc95osKK|!yK3jiz$NP~{sufJnL)Q+JR+t9+I``)tT#VF2VrbZS=9eqD)e}+<*1!e6 z{!Uo6jpn|^kMA&-jp+bjf11-n!$t;jvnaVy4rJ3jw}Bd4SQ523%Toni2jN|!j-W54 z|BNNY>>m7cE@D35R=1;#SkhXk<x4ksZaQ&3J)(QvG6t3kHd(l`Qk!5&XbzjEq#-CS zuE*K*3dF33kIYcRKTc#!PsEF~xLD`J^}=YO!hxK=(uR5m&&B%bU%I0U@pK^#TUtV+ zwB3h0jbn?-`xWs9<Lj}A<(vor;P6uWYY_;W4T+1Me5CJR<w#Mp+!)t|2jk!gq{=Ld z2p;>?djkUnn{0TGx()H)=%9(luEXZT<s{|9Fw<jMeBIl!$7`HeIu}XBI(UHX5+p3W zL76F;tP%s3`f5D@S7lBfpuSZ08`-!wqbLPE0KrLy<P#^-uogC47t#^Rx;nHh##rw! zO|Aq0%YvL$df)k3<o-Ic@rTC1mKR327&Ke>1AjneP9ElbBqp2{V!1+&<k<T~tLL5S zeESCN+VHFCo1)$e8p-kd<cWjsto-?28HTO~u9&Jw#t4_`U*cX|fgMSs2x8Z8osb~Y zN<ypw@LQH{X=x2+13cyuDR;5Gp{g3y?FK-EyM1F-mW^}5STjlAs*HfO5UDx5IVy(B zvGejP1(-UagN<yd83F6v;T|7hZ%o4YM{vL^JbvVet)TCZnInx#-6C>FO~BdMNnE(p zvrmPE_{)}wk@Z^+AQw`CHf&EKRD{I0fBECZKud1$X%y?-MN28K2G@-FcZ@2Jv7pMl zXjBhl_iSPr|9c$3%h#R6&taA(iv?xf9Sum7>&P819Y-xvOHu7Y-p1cD^zGUGi$<;^ z<8)9oe*&Mw3cJ^0<V@2U;h$H%CTwFuE1-Q;ob4?FW7jfLi?#T<k>pSx-O~WB$t?0> zS<mQeKvmAZl*yH;7arQLmO$oVZ66weRAl2Z?J?>`z^H=x)w|)+Be9jy2+n93-Gf>` zbJ!(b*le6xDV>;SuB#T_Z&?oNsSZlbb+ZE2o)g|%nIL|e)Pl>P+q<uvuXN$pW7>;Z zg2C7Zou!A`%thk>JZDx-_;|5LTQL6x@Nr2I6oPFZqM8R?%DRM~a(GNfb}S+1)4D=0 z-!BabUniIx!0JQ`=t8T;J#8;$qj$khL2FNZs<Z?HQ&N?pYyfOm41mpI+9(y7i)R_K zHHa8J9|cCkQo5`(I!6w0nU<}rQxU{u5;1Wu17}}l<O%H1<{0Ol8Kfoi3vcOs8<(@i z2X%b0BjDmf8ts8Nqd|<@QB^~{D&85X;wh@Wo=_D3y88haPSWU=07`d(ynYO!POCiD zaJY2}Jqv>lucZ90p-RES?c;g4eOeMG_GULgg!7dY8lm~T*2-dudN2#Lm>jqa?gevS z*)>`=7d6iTb%hy$!E_FZb{)_^z>Z@8Z&`9Wq@&WOV67~f!VA!W@s`|DNPhvyZSZ|S zumR#Dj89oAOKmP2r+_I5wc-dN=4Bwg)pxKytWM46Vh$W+&G%$DcGbXk$+u|JT@a6G zvx4VgUlvdzVFR`g*$$VwQE}LZyfn8Tti6%1iF)4Z-|zmWX=?XYzE58o-Bqp34_aIu zR3AApP93H<)WS`fG;&$ZFkx{7YlVLiz!tj?Zt!+KPS#gnXomOlRu7Ds#U{tDrI~!j zGk<F_(F%t8%<Ba0I^?@wo%hBZTLC$Vgb^q__hZqsLiiET#L1zg<su%aTIM>D@SW}q z_eti?XrEhoCf9=-x$>K~EDiydZT({pb*@_tbx)Y9FH$oUu+vapB?r`=A+F5IdI9nm z5?%VA3?F+i^K{KEJN)8=bzhJVr4C%C(;9>6yKB^I(A6@UFVF$x2g6&LVz<Xhl~tLR zNgful%hU{W>CZZjm6P=M8ne5KdbWl>P@_R|PKUkll8|R=rM%S3RX1p@jGP-RXkiMV z;nM!OWpyYyojzPw75m2LbY^(jw#>0UBT`Fs9-$JN*4<sJE|xacHxEkHN{zdN#Y08x zOXbkrZYuDf5!igSx7Idimab}}Yg<@Rx>h@AJ7n*>pj%9%B}aR$_Xg_KMPK!dR;>tL z%=<UjDeDG}uGr$=I>4&G0TS*f7foi4+qJQ|DS>lASd8_-9J@+6g#h_ZyGoW^BMcDm zs4_aSkt!(SH=Q10aL3P(_I$0Hn)uJU*?8MhlWznkI?oL?#G<Sg-pP)d7P&?$Mzr>R ztzOULJ4?78;CsvnyP{-hu|X&S5|WLR=8w6W;Jf24ZQnT)?Cx#7Q!7{99mD}LL{P-o z?e2W@K6qKJGbtZqjmhdNR9JY#cCW(`Y3Tff{l4O6@bc<2R2tn(?RIfpU7pfJ2zz5C z$b2n!mLh!j%v{%u-FD}f&$}55{`Rtcn^iTe?05*+Ck!wnwy9l3CJD-3VI@D}g?RF_ zH>_S_%<!Z5gE^@KkA}MH{32`e6i3QD?LAo5S|vgBA?nD&Ucpn^-@4>9*U#HB@p(i^ zJpQ;(c|A$4jUOf);%1>^6iv!pOq5$n?Pi_^x`JFSiQaMw4Hafxy>0t07;*NRFVNAH zM!%%&3bSV{c;DL9D&n(}Ab#rk(XaJ}FE~~rt&=u0zPPOzpQa$LMgcca66K0vV_GmZ zHB{V7%ft9w*dcpk>&At)1bElPu+`&J87B2@3M!{Dy5y{o5Ez~al}AZk$ab5hvM$5r zS~FtN#*HGFx^FHo6v(WNB1>iLPjoU@3PY>(R!;PZ^=*WIe#~6p@@Bz|gRIMbe^>Ia zdPW82lDs|1^4mj^wZu6+kTo%?6lpfjJ3X#Fo7?tYbI0pGoG&+h5=2l>;pG(#W_I`+ zb+)J4Z7YT0rV_nRjBx+rY2iBir3&{tYwF#HF-~Xp98F*D)^78Ip$Fd-xH%1JVMuLl z!nH)5l_!HGU2OnO@D@45mqR0ADVs+*>uuGSQp2SQc~8iuwLDs?dA(z6%7-%wvhu6h zA(z(Pi6-$gdn8@qlK4>YxbZmF>=a;9OlAa{GEK1aX*qm8k~4PzMUsPO6PS#)VAy=S z!VHp1A{)~fIQ_%#A5V-=EcxDlT)(IjIqs1jqV382H~#HtCek=QjKCbH#h>II!W=*u zn@7=lMg;r*9>X69oSveLqgAPmR?6C>@kRz|<tm^Tm~w=Wrq30EPNAnuqH&s$_)f3U zDNl5&W@e&ZF`0AUm^9&guvo9R<^`9?7h~Gv*?&QRPkh|kGY+d(UC``rPz-Gwu(nAU z8=!^;g~8k|hr_%+eQ#_am70r4;rkLj5oPNX-4$iv4_%6wFPfP_nn)gI-)#dr(Ih#y zL_)RP3V7utgKu2hkOugZrFb91tZpj_b`*uCmj}Ej<Q%x4RY{%pMpl^O4||XBDu`!! zZPGipwrg+v9$WEobDh+`<q4Wz%#x`|rdM$oUn!7OsdlnkX8K?2lRIPbxxX`blipth z!1v+w&w{E@QS56Xs^OI9Sn+j<*oTdNL+hRlLF}8UCI-8vW*3xPCaz0dHv=I(f3z6Q zRp#h<Z4;Bczp?npXK;S);tF`NSy?n){qy}@LUGUBkDi&uv=F|I@t}0EI|#QxzIXZb z{m}9J46HX#e?#8*>XTI}foG&dq4sQ1*7+*Cb@!R%P~F*Z(4j^AxJF?vAVqM0&h?*( zOwL)L#@MWWUAW7bpt-Lm2VUT-*6xdTSs`l^S^L&EwCq0vDc1cBfj-+gZYRs6Ag%tO zw?h*9nG6M5{Pk98TDFfyr~Ar%uZ;z<%cPs68UrAPPYqy??*<%t-77dqk*4qDNk_=* zBi35VqD?VI=Ya^Wb564Ksmt}>bk}xG=Gl&WN`>xo=o<q<C2DO^hjsrKt<+;3L#GzI zgQSfNuC6VsoV-gb4Li)efYNjTInKUNT|U)%-_6IQ)8)Q(w;zgyzsT91N59aR^H<pg zG=BaDbK|z0w!;R&NMa~2v=Lg*puo($8FyJ?MA7Z`yh<3gOGtvrv8l1D#}Vlol+=}{ z5u66p1dDMhFYZS}5Z`$o4#InqCpH#l%fCsbG%Ef9rpk8I2x%CD19?pfs$&FMYt!EV zfy4)Zd5Klo<^WXi;>(}Vn-@{C3j&G&rM`9*tGitYZ5^gQ_~K+6wRMgJ_als!3+S`+ zvTCX=BzuH;scigynu!Op&&*?kos*)kup*cfAGC}dH_up6?)lUR0Q>q+n@{r%_;0zh zj({bMsoxgp^Cmut>DO9g6R7RYSI7$*w=V<TH8Pk@5Kh8lK_r8f)PCsX=J!v4wM>ng zz{!%7H%{=!2pwB8xzLG|Z4{9he+k<BC?fT3au*%qC&}@>zV=pS2_qnHBQa{#|C7q8 zYHkWAkgfn~JnjlmxDC2oQ+7MIx6|X>okjV1mGa0lGe%o60=AH2H?l#eeW1T7(zv5s z3oe<g09NP6!bV!2r?IA>3~uk35p6>`?*@|i?^*B{S`p`92YbXad>+e+4+s{%omoAA z?&w&Va^F&BR+f#}%j*yugI!)}z&miPLAUess=f0IN)<`BOH12Y@J@l$b{CRD9V_j* zX+g`lk~a2)25{3Sk=eBSWVe(z1NqbzjG&hish67l;idM^=4aQ+{-4iNfk?|$xU~cb z#bI~EMiaF?mkX7F85g*|8?*X>#UYLzxG{#yeJ&Uw=bjUgUpzCymm2~%mN_LVpKcVL z8`JvDyoLShPO_zPw^@X=+=)+u9uuRNQ|avK?v|^O0xKW8aiBqKsvpZAaubZVlp{Fv zslT{|J{KM7x6s(aSm->7CZ_+xsvHLsy&D2HQ#`vwdfiEF6YtFpkP`lw+{^!kQ4zcA z^+N^G9L^UtkIjR7eb}Ssmy0)d>n146ql~u0fKJ5#qF*do5d;3jZAVu^5Z?ICJAbZ0 zj!GES0=;LC_g}+QLFk!H-5P+uaKr9Ko28EMe6B*IH_v#x-&ZS{1m&@w2CXLs|6zbL zU{FfzZ11dYNx1&ttDR4C3AtPOxN6uULEPdapJWl0@`0u=eFbu+wgm;|*Bhej^&v9k zRE72VbAX#@aT^$*oCk$0!$w1p+2Y^Q@x}Q}u}nM$!`<2dTgk_BP)ld9a!To^$Y~ke zh~2`zr_Dlx(2f}6NX2ey{o$Ng(omlG#kzwOH~RfW{o5?b5?-!{T%QL>jiVFY#y#4p zed`b)HC1#4i3V@iIR(~81gL$ec8e3Kt#4vGVsq;lyys=wPjV&xT>vtd_QQr&fGIlc zbSF;G>*>%K(9qa=`m@Rt_uT(X6gB-CmSlJR`J$c5Gxg+3k<MrocG(NVeI<n86C=IG zbW8e_UQpYEK%&7b6ZL<Cjrf!rwr<h!etszI{ry_NO=@CR3dn8?W=5om&(1Ws#+}wn zBD{G$_KC^K1waSfPK^yOSL(OA`>h{94J@g2J#|v2LAY0>!tQBsK)fWg$Kz{FzBLR| zmpH)=@Q&?NrWrv@m{0=KibSYTN*v>C%0bxxJ~-fQyY9wWZVQ<2GbulKjMsvv!9*Fm zF8*KbUHMnj*S62C*K*rhthLH@AXo>`s^EYigg|S{BtuXTL<FpWh%zW71OfzSYpJA4 zWe!0Z!lYILQNcj9RSW_V!W1B&GK7Q>FoZ}5ByXR1Z`XS3{RM9=`AHB0Ip1^k{_M}^ zv-dd|LK3tXs{jf!0H6jsMb@cCq>dLsL2$Iy!+Z+^D+vZG4Gy1r96s0XNpR~2TG?c= z?aUGRQ#0!JcoA+OYs;g_CjuK4lva$x(cBH(dbovV2&G4PWd>&pV*!Sv2IG9%9QdN0 zZQouYtWPnki^KLVlCCQLGQ#4_cLo0CMm;BwNW_`04c?pK!jEW#$L~4sh#6@LMwC<P z3u2;0I-;mm$Xku3xd|3OAc`hXzCndp{LlC3)LAiibD*j*@f&AU%?_afQ1WZE#P#ur z-)b=C0*#(#xY>Oq>`OGhrSlpQNb+NJ=R+B?Ozo(nU3NH3JB%;mW`*m$Zh;0Tu#zQl z5$kVLj91hn{#RZa&qffxFTV-t!}EW57@qHqs!!Sh+DPyfFb#=5!i=u@Ve=f46ZBW3 zLHO4YfQU6Yhu6#u3WT46PwByN7O13`2zF2QJ9aLnPM#l%h)VEV&P;s_y#);4h5_X3 ze@eP#6n`7ocrHN3*@`p|8m)_uMf9&U&P+2|zKZ-s0FnivT1!Ku9rub!UM4<TLr9+W zM5C>SH<=LB%m#r`;^brBhF4JQ(Lr9a5)4*PpRb~poY1>zy0|>3n>NGP3u`P^scG$> zRQN2;tTQ56Xo2u<(wKz+%~m;N#fx{3?NWJyC}$H(JtR7)T7k*_xqS0+8+@#5y(!=D zlN$aj-Kra`+z@cQkhdCh=5>BE9MF<Wp*DjnxPTZkIa8`mzbH50n+Mi6td4P2%0vOy zo`^lE_+Eqx$4Yo->v>cqi>3br78L*R^`%vEFOJ{or^{Hll^t9b66(IkYkJz>E;lkP zji8R749pRRRa7||B@rv3ii#c2RKtnL;fM~A3pb5}pZ!U=Hc0debh;eUdQ(=@4gvi* zQp&EMyz|hQfs+93(!zF}y5T<I)Day*6y?ZH;3Oplm0_ej#LKv+2T;V)-3Q60l9n(* zvUWZVKp0a%e%&A`Ur^nI1eke-BAM@>VU{FzVWs->qYr5izs6=zetBRW^`ei+cjKnw zWSJ2(YnMR9ErSrlQY9P-%LHk?{9@f0yuuE~&b^ERb7;Yp*QveKZ-E*<BJ;lq1L8!L zsYC7xRpSDEv?W;Dw>kZaVw<OP#QP7e_3X#GVn>rp;ntV1j(a7KZt@IBk0f-_=8E6< zbgq~$^Wl6m_65z$*c)c?NoD)-Zw}E14rMHxx;c8U``!Z2fvW+u-w_R=rGe0Rs%~Om z@9haKs{Q0mp*q*vAsrw7f`2WbHb1&(LWYV-Ig;K|e5gsnv4D)LIo2UJ43JbiydAUc zXZ=0qdHNO_fMLe<AcE*dE7HbY^%lWipVaO3vhV3ZHQ$dJPQ*DXFI+~C8E=R6GPDOe z?r`VVH*r-&5#w3M>zgf>{I|K*KTwK{exf4*{HkStCaHpW%l(mG<iibPajK5H)Ek`3 zGFaB<qI6Ft-`Rxzo6Y1O3*wuWmKKPBEKTUlngKC)YcH0xv21|@q{8H2@-B(~56wQz zUZkc7={|+-E~H1LF&^Zw6NVC3FHu@Q=XR<CSznx7;=X}|tzkL+IC#~vrOTooR%K8? zE&qO>VJT_^Vn>pC93-#yGc)=v=YWE@q|qJ8=TMy~Sm#sClWgPHOnWUxGIb@Biqv(1 zkV3KlqZXQShN}4PFGg~#hx;clS*}OgeCOGsc|N%?<nDtvKM#TI|3dzq8ST!lVdniu z!&`k#{18U_+6uh(m2anbc6RDy5R6X<6e#^jwFQo&65LXf`8Tu@z8CFj$HOaiE?S;q z)OWlgqfSw@WpRn83^$;1w}`T7zs7uYQ=dG)aX+Jc!aUY|?DYM>d5I6J#hY%lseVjt zNqRsX{obgtu}H(5jZ_$>SX&)%IC}Y3%iSvXc>?B$?YhrbKq^BYO`^ulciY#kY7^Or zti+%o$-DaxBla1YTWrP7gvKWjpVBly2XIBH`}<H64gud9#-yhwX`n$T>mo|ieqCC1 zvet~S{RH35(#;M6bnsyR2ny{v>F8{x;DDK($~3Wtc-zLb8Q!Ghzw1Wr&Gx?Q4x%X# z2P-NTqZAWvh?GNYS}{0md}?Oiq%a%6+iAf8eZ4p*ywces;90K<q5_V-J;;GFD`tvf z+7!>%(V8?mYYhA#%|`CT)*#3vP=KKHTO?!vL7XnTu@^fUlDy!1z+K_)10t;=|Ga)< z@qF?;Qbyg#(cM2@E<(l{3aI;{?Nhzr)!`%7Q`KIAsy#78JUStSHuqeU(RwT=BAp6a zSR>OROv`{gDDo5n<cb$ic1cIxq?om|`NQkRyJpLPkQHb}XorIw-L#YE$|NxIT7Yk% zttgr+*PacpYIP9n+08r-@3ZJT^(PUOEgo}(ce!}NWgrK>@VO34^&_^uO02!dvsDKV zB3_-{jMQLOm=z4x;@|K-w285oH4zPHtC^WM3WSCC?66s~6`;fjw!j!khEtm`nU}$b z{{Gq9oW%x}H0%z5zfw?OoKS@Oc=}(@+$;p^t={#;uxek!o8?IFF|tD`UzN(XtV)sX z=F<Z{rI;7W-n999g(&Lwa9jxFGg-1bZG*P8@xbZiamw8%o@nZ|>iQx13o`;}xfvTE zY#UUnYF@aHU4_VN>MYz^8vh0i_N_tF)B5)KwVq^AmaK(OkEl8CLDv6f^j@|O7=b8e z)6xB#H+h{TIf^10_;^+LHZsnQ_Sv|DdJ1$E?I*N(%iCtu)Z>&2UTdA?Evuh!5j`t` ze^d=WVoObe2W@eOt=oluTB+leY_=oWMWX(tw=i)+%Tbobbx9mnMf^sab|9<8k^Ava zEU7IZC~O}fSL|Rmu(M^}3d7%5N@U%UDp&FnEOq9!-~o25ymqa68taB>-UG&Q-NzXf zO2J&f#JTu955w(}Ntc8~y(%oD^c|-(?G2!*(;)agTA$*1Ii(+O89?#LwN@!wcHy7w zr{N8GgBufyQq4)9Qr|3PI6*S93jykTP5V0Agqvh+s=Z;PBzM2)<Xm#u`Mnbhh>j(H z>QERob)C#BtGCAI@hJjE01R?bmyz|K&3lQmuq-k8qgXkpH6b*S7d5w}a(ti3;Xdp_ zl0~vK$moUVRksNjv-Bl)RBwe9WuON8<4QY6It_ZXEahGWs%>orah(2ux~2HK19Tzf zH!%wA6>}Q{7ks<qZ{yTRoBv_TK);^t<k_JccN0Tm8`Ap+m7IwrGeRpp-6zyJF|>*~ zuc_gBn7BMzy1mUX2{}EY-##@EZ7-O}twr{t(tff3IRI&I`0Ay*sKBNU$E4{@2-eqr zb5~&PglD_2$`<i)v+euJ-q~c!;=J?(Nbe?HdbSOK*_LJiRQqRb|8yGju@+W`NeXMA zyL2Qn^lp`%<d1LaYF{est}xbRW5;5u?#|XPd*}I`sxSv)h$-kFj@KcbjK?<(g(aZa zAk}Yuql60|<i0D%PtM8g$qf#YnX3~TKDmgzGu!&|GG;9%g;790qTEByl;HD(@+{ef zKKRK>eF~>{A6<g+03z=FcEH4pLyw!l&;=>87U0iCo+d70^rS6++ynh{x$osZG}&A# z+las8N&iZ6X5Zz4+qJS9UA00W73(h}y+TLcSFiP&BQ^`cS5==XjGhx!7cYn1Z8p~K z<#_WMNpwK^`xY3u8gOkj)GY#`e@_GQIjF$ma3f*@K}aOT2|^|NGDGPkZ{@+gr2V%6 zoW<O?*IJVPN}4=x<cidD>5?+aR}%0u-e|VOAKg#CfS7dM;MA0a-roLnl0%q3rLauK zwwYJ((*ScO$p-zW@y9um!+h&OVOVkPVEest+<-f{fQH}+J!kvU*@K+1NZ`(!tnai7 z3RCTbH;N-V>0!5c9(uni_tA3z{dT1x*;N4iBTGe3RI(WFJLpXJ41YenM7V55Oh~pS zv}ReCSK}rB95Wa;z?*uFb<hiDH6*=puzBRn0YK)pA@>|tHtWUAkxBZ1F{zB8L22)^ z0i{${{zSmQpUCRTGo0_A#*gXS0lYKZOv55EWe2ARA;7yy<0rYmWi(5*)K+@~-SA%d z!vaNSs}37#V}Uzq4Eo0rDzsd@f5gv6la61;QjT{nxkbJy0B%|n4A4R*-d7+g#J&A% zDXV1*>Cx!hOO&W=>k7q2M^DEtFyKv<wh(>t)A@97${dqj)cy6BrBg6h*}JiSa|wBM z*?CuT04X7H7?q!-l5iM%FAyHBsU@67$uDm$S7Sn1G&&aWt|q)*k?i4k%jlC*{WYX* zrBfcXkOM1)n@Un!*N*dHSY^f#BJL}p4>3eLhJpnbJYspeq3-POv?qm}68*ic)Z<nh zK7m}mY@&ZBNg4^1hM?deiJU9T2lJSA_ejFOQ-~(Fl#b+Gkx-}!60}v3!pEB=9{hss z9q|<n^=0P|XxEY0u?5<4tbaL4y`+kgd%OSh?yK??>rj)axYiw#-JS1B=5D2iC()1v zs8T;{c%1<Btn0kQk)6IK59Mb@N*8QvOVG5hVCsL%36w)!*OO@Y=9ZQ=GKT9SmuhcX z-<amS+sinOYU=@23%OETD=)DAbRCIO)-;;TY5b;q=pOir7dou0?8jpD|8xF!72qae z5v!5#;0)l9WwShUwUGM`$(#v`PIinYU9PD;V0c|}>f<vzpu_3?kL7PChV~<xM7kuE z;#Da7m_KMmy8Q2#!ITCjmaB$A?qBPS$G}QXt5##;*8XjZRfMCt&&6&z-Yd<cx)qVO z96JwMVEa0U>D}%e9*_3X!feU2RZ&gY6pF4b)OAb3qpg^K)Be5i{cnD`Q+Si8oqs3t zoZ_qHiWX~_5fJhBUW4!1`edEMfATf-=<5u)CuE3zut4^ct5JzT*qtXvnzFbj%5SGj zVX}9;YbdfEq#43M43~NUP$p>2bp}vX-`gzUQ=-AAv0?0PJ+<<$FJ0CHNt#&6HO^U& z5QP%^(|0(iYSX}Dxx*KP#On)}A6%n?0CtU+l?nB+U3~vkUIt-WhBPwexl@>L6Q&EA zmsf{AJq1MPP)vePwFRzCU0xN4ctPw=D&j^fg|WTEo}8THev8q&CZX)v-iP=hlC7>N zKvRUFmWP;{jtos)&`dKLh_SCP8XTMWX$DLI>BtBxSlF1P6qu-#_v`7*(W|EBNNm*A zqK_t$CR|#qM7cv?#3Dd=UHpCuH;Hf|@6tTDKt?<VrywV8K!sfzqG95plKHchX3^Vz zg{-?2VQ~Ck<wtWOOma`{L8JPO5etb$gb!vE#{t)~M>5KhZ6WEt#+>1Fzcv)ZbSPE> zN9MUGbpYWv1xkmu9XaSXh|_=|QXnQjXaueLEHV}jB4|Sf-iml}nYWY944UR<;mots z&V}dY#`c6!>>?>`&L%}>agRT%Oxo8MM8oSq=H9NuG0jBCA1<hrEQa8ExXz2*6_}jF zZUN$DH%;uyn0{kWzuW)ll?`n$x}Xs3m#1gJLt}ymvjmIuSN?8QPgh;~9ndocI|%WO zo^6X0Uo8;BjT^r<Pig-8eSoSCnNrkuLsis<4CsEb=Rdc2-nIY(a%Kd(=h{;D-Cr}Z zGhw>ArI6@}RPW*p|5)FeXDd$@qLI0_%-qgWr4QpCGJNJluzlI%Cqjd2%U>y{VTIym z0o>sIK_B2VZKq4cC^>~Qiv0YNfe$N&XYNunCx5|2*gH1YJSzyC^DyATShnV$XD+=I z>QR2^M!pWI`xyjC1d1QTr$cLU9z!9m4W`XnLu!KRqD}aPE=$7hx1(i+!tQZT2kI&u z1+_Riw4i^Zg0zx-nAmF1MbfzN=_&9y1W%2pG3J6}L;t+t6Od)|?jg@jfA_01LqDxc zb%K055kj`m^>Fush2nh=cczVSI=^<Cg^<Vx0^HPD0~<0#OBh${<D|dp9N6F~kUk`b zZ*<pjgy2xHWR15`=K+m#m7a>-R`|6MvkGxcMlZ^L@j3$q?`6SjMSK*6pK~2-ksaJ! zU5C?}^)TiHyPj~NnCW;f63swB)vL4xUw$%YerAvss!gLMNrQa-aLcQilpl2bur#K+ zo|0IuF*p&5es5?*S#LmfLuLDZmk@Gv0B|pYbsfo&{B>iFE$;gH-L;s7%EU?Mh$IBU zwhQ<b`AG>gf#?x@yERyN0dvOT0kR$i*4T-xc+SXi+>kl|vmxlFVA&KKX=fU2jwuZ0 z$0}Iv6olor6AA<0OhB4ed0EYu1(FR`gK;muX_WqH&3T!w<VvzUCo9_~e4LMyqH_xb zGnHEp_-w?JK26bkjkv8MobIuz#Hkmiy8`VP5?8YMmiv9ts`gPJs8(&S0Y0g1p~2y8 z9N@dbKvARqk&&e2GBFr8^DGNBqM#_9zM&yxts%%Y0(w%-=2l71v9Z)Yx3as}CIK7C z65o@p0h;qO7O&G^69UJNNrbc6%(PY`*Df;NHZdD}XLs^!cGAIX%8qJ9WicX(RbQdi zY1e~(xo^*p>O*tk!L<)Tz=O*?YBtdf8DPZSA^?J#^=?fBWb^p&>lJWhxCeavZwO0Y za-C|g(@3!}V&52;I%ni7g#~n9c-yC5Lkj?6X*kGP4%7!O9<C2bLw_!G9`^L**DkGU zp|<*`=>#Y8Upn%`H@{ZzS#;wjW-xilsJ0Ndl&JR?TE2)F6U0f#p}yXL#+;1wnh5<{ zc}X8(ym-MqQe7g(mDOqycN<JrB@J&51gAQyxzjNIL<}jEA)`t!%4)oN)wv=YliFGW z`6C#t&r$WY=$w-3D%cRAz0(M%Jp|Xy)Wcy7Q2fS-L#_n>Z}WY^tVTx^VcJpU@bU|E z35qhV0tps^i?#l-f+A*0@-=LA(Pt5qzAV%9s~Ofc#P2Et=i+v@+FR*(XLN8gS5-BG z)y<3*KacKG38l@q7d$5}*{3F<3sqtmPPFI*L}20fyU~8++qZxz%RC2J`N9u6sH>nT zI3^yn72hg1z5Wp<yVNKmwhFe*G5RlvCBW`vmsJapNkuu+(%}<`_dR~|VkLlY%V3%s z;_a>}uPM(}vw*0q5{5*qyy=P|zkykAL~I7rW9cPH$p|5bBaEcgLdEZ{goVE|UVWUA z2Xp}MzTKy2#Ddbv3+<JXRR9|D|Do8NB%D^BU7WZk9#%YS4mj$)EfD^t96L^%`fQaH zQ5K0{Mr{ge5TQaZ)`V`#UMAMR0HAZDFIZWw+b{QBZv_<elvTl$DNNOoz6mhNzCU^^ z<yie>mzs7IZY1lFd(9Wr?f}ywL%LQ5p8ky0pl|s;V*8Wl?Io}H32C~kDs<!cQ|`c_ za<L_Q38H5gJr$ojewsn_S%ArppKU#6P+D*T4fXHg1{}EE+(~~&F^G~T`hkD4vgJOa zSmMhd>|Ux_H3@fM9A=yK^rJM9<I|}u^AALhK=<#2(=#aakNxyZV>(~`aTF9Z6@!%z z2o&fNMn?#4+{C=ZNS?RR_1+gvfj!CKUTDTz71#DYyVdZsWNi_46WpvrHLt}Kp916Z z$foN<&|Tu*2~~@9?J*N1YQ$c1Cx0!`x5lTAfm_Zc6>fg07?ft8yu+1kduhMVe-Z}+ zPgu2|^sD>d9W!tx>Dil5!bPy7>AK(!6gyvfIzZO~aQ{p(PS;nH^2_Y%R<rqCx92w( z)aom=?S>!M9GQX4wW(KzIy?l4^HDb(#vUNcZS5}NX%7R}>a9HkzyixZF`!iE%4~Oo z&5bo&RWEUB_g{o`eqGh$cUM!dxBAq#v0V#cm5qCkG0-hc$YowJ-dSLS2v=j&uy7q< z(^kSho`oMx*1kCU=*vOZ>GLau%MOk}^UDh*6hOd@t|(=DHJHNS4Q4?PwVHFHyyNSV zD#XXL{ZafE#cn+0>sJpE(gaC^2#JL>d^`(vSxKrxlCACuv^?i-!sI`52d^LT@j?Sv z9tdeR$MO&aOzJ2PxM2%`Fy8ec7>o(LT?u;*!gG~>6-EJ;D)cnEK?duIF6<KjLvQu3 zwkSUsfKWpOrOM3`;+oD(WgXg*yG2J<5s{A`>0^+D4Vp(7$r_cwrZsewg}QGb3n&M{ zdg<Kd8%igl{Eb>5h|v46m$!TH7n`R`4S|S(e0^T|unCEJk??9_$lgOb!>L9O(rzdp zN~SG2cjtQnMDoGIV(mxkG(%{O6#^GFybaGmqgukLeV1YP>_T3-5%rva6&gAg2nU{( z)Mkz7+(KlnvM|EDTs?oBg|w4G<jidY^HmYF<OJ71q-TNv^=^dixxdSz)+u5VF+f0! zF7r8j?Y8GwCmTPwg6C8}eLHG6hOa;g_I~%#6lwA@t&x$syP;Bf@GVaI`}ayfYE92a zoSAG5YDUr+AlS(!pl**@Xc*YafzZlQp{L|w^4Tcwxw8&HqtBrhc=dm}+_wG>d(oI* z?6&#yY&{I7?5u^ZlW*I<Y>s|~IrIws8E7<N;t49BNg#NG`yvt4t3^vAEYK?+`2yO- z&_8q^hc3WGjsJdv+4?u*1z&o(_J36<AO7pV+yJc2hlTpEH~zy7e>f>0j>Csg`5`-e u$PRzQh!4l%!*Td<9RA-PhuhcIYmHPT=^m-UFZQB$;cV~z!<{`x&ixONRMuwz literal 0 HcmV?d00001 diff --git a/kernel_ridge_linear_model/model_output_data/From_summaries_X_y_after_removing_aberrant_points.csv b/kernel_ridge_linear_model/model_output_data/From_summaries_X_y_after_removing_aberrant_points.csv index 2ea60f6..58e0cb6 100755 --- a/kernel_ridge_linear_model/model_output_data/From_summaries_X_y_after_removing_aberrant_points.csv +++ b/kernel_ridge_linear_model/model_output_data/From_summaries_X_y_after_removing_aberrant_points.csv @@ -1,61 +1,58 @@ X_0,X_1,X_2,X_3,X_4,X_5,X_6,X_7,X_8,X_9,X_10,X_11,y -0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,3925232177.483298 -0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,3912699841.144387 -0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,3910282478.8062687 -0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,3946501229.335133 -0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,3938853242.267046 -0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,3969482617.6356173 -0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,3914798329.164073 -0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,3977186856.1928773 -0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,3858277741.981534 -0.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3932131411.8317833 -0.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3943824168.5432696 -0.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3916945096.180587 -0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3819709702.062643 -0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3887057652.839107 -0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3856284007.604592 -0.0,1.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,7988815658.07869 -0.0,1.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,8007559135.824218 -0.0,1.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,8163998399.856314 -0.0,1.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,3913174484.5370913 -0.0,1.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,3792360668.6690335 -0.0,1.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,3951304127.927423 -0.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,3947700859.019707 -0.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,3979877738.155884 -0.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,4070782770.8190007 -0.0,1.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3927683491.5535164 -0.0,1.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3867649049.525246 -0.0,1.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3861719546.4796567 -0.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3901144986.0534062 -0.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3847826170.604917 -0.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3829378223.8577924 -0.0,2.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,8729278874.272196 -0.0,2.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,8655310898.767483 -0.0,2.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,8625894936.599672 -0.0,2.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,3950351976.361094 -0.0,2.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,3930323229.7824173 -0.0,2.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,3961149050.1164575 -0.0,2.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,3877938022.79452 -0.0,2.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,3854336899.8797445 -0.0,2.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,3984905179.181261 -0.0,2.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3925740689.124521 -0.0,2.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3940529528.3580203 -0.0,2.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3882741215.2980003 -0.0,2.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3883480064.155091 -0.0,2.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3773399795.481731 -0.0,2.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3779532320.67064 -1.0,3.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,8626490226.186573 -1.0,3.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,8487667419.239845 -1.0,3.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,8625597322.614592 -1.0,3.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,3874812555.9426064 -1.0,3.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,3803973630.8547907 -1.0,3.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,3912837628.97691 -1.0,3.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,4498182734.175393 -1.0,3.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,4069970940.4074855 -1.0,3.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,3923522695.617033 -1.0,3.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3912393680.701727 -1.0,3.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3915273481.8527074 -1.0,3.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3860064926.29206 -1.0,3.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3867469553.3459415 -1.0,3.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3780346733.402388 -1.0,3.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3911490786.4834523 +0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,2.0,0.0,2.0,16754768826.077124 +0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,2.0,0.0,2.0,16403311500.525728 +0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,2.0,0.0,2.0,16507397790.319733 +0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,2.0,0.0,2.0,16637938492.868979 +0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,2.0,0.0,2.0,16458467058.378183 +0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,2.0,0.0,2.0,16296783992.64689 +0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,2.0,0.0,2.0,16410444919.98267 +0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,2.0,0.0,2.0,16532532717.882248 +0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,2.0,0.0,2.0,16433313613.356997 +0.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16394544551.355093 +0.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16446827406.99319 +0.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16413677188.92799 +0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16620047433.615376 +0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16528461183.735334 +0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16580145938.44455 +0.0,1.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,2.0,0.0,2.0,16765639827.112722 +0.0,1.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,2.0,0.0,2.0,17108405701.889452 +0.0,1.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,2.0,0.0,2.0,17033540745.081139 +0.0,1.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,2.0,0.0,2.0,16267066185.812191 +0.0,1.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,2.0,0.0,2.0,16454756823.376287 +0.0,1.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,2.0,0.0,2.0,16456191971.353062 +0.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,2.0,0.0,2.0,16196850036.604881 +0.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,2.0,0.0,2.0,16524664714.552942 +0.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,2.0,0.0,2.0,16531302848.508793 +0.0,1.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16332236895.829727 +0.0,1.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16457519029.006376 +0.0,1.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16541995163.120615 +0.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16365406803.099607 +0.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16563366471.108519 +0.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16635807244.228622 +0.0,2.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,2.0,0.0,2.0,16471235457.957994 +0.0,2.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,2.0,0.0,2.0,16301991125.196033 +0.0,2.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,2.0,0.0,2.0,16419902892.694292 +0.0,2.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,2.0,0.0,2.0,16532751380.484741 +0.0,2.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,2.0,0.0,2.0,16235795708.229763 +0.0,2.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,2.0,0.0,2.0,16437338400.416851 +0.0,2.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16540709166.3648 +0.0,2.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16707153669.058018 +0.0,2.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16522207499.09954 +0.0,2.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16563640820.761528 +0.0,2.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16619218797.001228 +0.0,2.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16686829919.486046 +1.0,3.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,2.0,0.0,2.0,16072596704.796225 +1.0,3.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,2.0,0.0,2.0,16026103317.082867 +1.0,3.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,2.0,0.0,2.0,15780113585.257587 +1.0,3.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,2.0,0.0,2.0,16509032917.360735 +1.0,3.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,2.0,0.0,2.0,16467899124.237123 +1.0,3.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,2.0,0.0,2.0,16382431480.480333 +1.0,3.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,2.0,0.0,2.0,16533024716.871952 +1.0,3.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,2.0,0.0,2.0,16598364397.1723 +1.0,3.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,2.0,0.0,2.0,16324798184.682442 +1.0,3.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16574347550.808664 +1.0,3.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16578771546.185972 +1.0,3.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16567043511.68308 +1.0,3.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16509741573.01516 +1.0,3.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16731809177.062698 +1.0,3.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16504428138.069445 diff --git a/kernel_ridge_linear_model/model_output_data/From_summaries_X_y_after_removing_duplicate.csv b/kernel_ridge_linear_model/model_output_data/From_summaries_X_y_after_removing_duplicate.csv index ffe6630..2d99fd5 100755 --- a/kernel_ridge_linear_model/model_output_data/From_summaries_X_y_after_removing_duplicate.csv +++ b/kernel_ridge_linear_model/model_output_data/From_summaries_X_y_after_removing_duplicate.csv @@ -1,5 +1,21 @@ -X_0,X_1,X_2,X_3,X_4,X_5,X_6,y -0.0,0.0,2.0,0.0,0.0,0.0,0.0,3912699841.144387 -0.0,1.0,2.0,0.0,0.0,0.0,0.0,3867649049.525246 -0.0,2.0,2.0,0.0,0.0,0.0,0.0,3779532320.67064 -1.0,3.0,2.0,0.0,0.0,0.0,0.0,3915273481.8527074 +X_0,X_1,X_2,X_3,X_4,X_5,X_6,X_7,X_8,X_9,X_10,X_11,y +0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,2.0,0.0,2.0,16555159372.307528 +0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,2.0,0.0,2.0,16464396514.63135 +0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,2.0,0.0,2.0,16458763750.407305 +0.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16418349715.758759 +0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16576218185.265085 +0.0,1.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,2.0,0.0,2.0,16969195424.694437 +0.0,1.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,2.0,0.0,2.0,16392671660.180513 +0.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,2.0,0.0,2.0,16417605866.555536 +0.0,1.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16443917029.318907 +0.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16521526839.478918 +0.0,2.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,2.0,0.0,2.0,15867399690.574339 +0.0,2.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,2.0,0.0,2.0,16397709825.282774 +0.0,2.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,2.0,0.0,2.0,16401961829.710451 +0.0,2.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16590023444.840784 +0.0,2.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16623229845.749601 +1.0,3.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,2.0,0.0,2.0,15959604535.712227 +1.0,3.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,2.0,0.0,2.0,16453121174.026064 +1.0,3.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,2.0,0.0,2.0,16485395766.242231 +1.0,3.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16573387536.225906 +1.0,3.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16581992962.715767 diff --git a/kernel_ridge_linear_model/model_output_data/From_summaries_X_y_before_removing_aberrant_points.csv b/kernel_ridge_linear_model/model_output_data/From_summaries_X_y_before_removing_aberrant_points.csv index 2ea60f6..e5023cc 100755 --- a/kernel_ridge_linear_model/model_output_data/From_summaries_X_y_before_removing_aberrant_points.csv +++ b/kernel_ridge_linear_model/model_output_data/From_summaries_X_y_before_removing_aberrant_points.csv @@ -1,61 +1,61 @@ X_0,X_1,X_2,X_3,X_4,X_5,X_6,X_7,X_8,X_9,X_10,X_11,y -0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,3925232177.483298 -0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,3912699841.144387 -0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,3910282478.8062687 -0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,3946501229.335133 -0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,3938853242.267046 -0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,3969482617.6356173 -0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,3914798329.164073 -0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,3977186856.1928773 -0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,3858277741.981534 -0.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3932131411.8317833 -0.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3943824168.5432696 -0.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3916945096.180587 -0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3819709702.062643 -0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3887057652.839107 -0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3856284007.604592 -0.0,1.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,7988815658.07869 -0.0,1.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,8007559135.824218 -0.0,1.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,8163998399.856314 -0.0,1.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,3913174484.5370913 -0.0,1.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,3792360668.6690335 -0.0,1.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,3951304127.927423 -0.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,3947700859.019707 -0.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,3979877738.155884 -0.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,4070782770.8190007 -0.0,1.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3927683491.5535164 -0.0,1.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3867649049.525246 -0.0,1.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3861719546.4796567 -0.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3901144986.0534062 -0.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3847826170.604917 -0.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3829378223.8577924 -0.0,2.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,8729278874.272196 -0.0,2.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,8655310898.767483 -0.0,2.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,8625894936.599672 -0.0,2.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,3950351976.361094 -0.0,2.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,3930323229.7824173 -0.0,2.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,3961149050.1164575 -0.0,2.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,3877938022.79452 -0.0,2.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,3854336899.8797445 -0.0,2.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,3984905179.181261 -0.0,2.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3925740689.124521 -0.0,2.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3940529528.3580203 -0.0,2.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3882741215.2980003 -0.0,2.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3883480064.155091 -0.0,2.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3773399795.481731 -0.0,2.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3779532320.67064 -1.0,3.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,8626490226.186573 -1.0,3.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,8487667419.239845 -1.0,3.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,8625597322.614592 -1.0,3.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,3874812555.9426064 -1.0,3.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,3803973630.8547907 -1.0,3.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,3912837628.97691 -1.0,3.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,4498182734.175393 -1.0,3.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,4069970940.4074855 -1.0,3.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,3923522695.617033 -1.0,3.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3912393680.701727 -1.0,3.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3915273481.8527074 -1.0,3.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3860064926.29206 -1.0,3.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3867469553.3459415 -1.0,3.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3780346733.402388 -1.0,3.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,3911490786.4834523 +0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,2.0,0.0,2.0,16754768826.077124 +0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,2.0,0.0,2.0,16403311500.525728 +0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,2.0,0.0,2.0,16507397790.319733 +0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,2.0,0.0,2.0,16637938492.868979 +0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,2.0,0.0,2.0,16458467058.378183 +0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,2.0,0.0,2.0,16296783992.64689 +0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,2.0,0.0,2.0,16410444919.98267 +0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,2.0,0.0,2.0,16532532717.882248 +0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,2.0,0.0,2.0,16433313613.356997 +0.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16394544551.355093 +0.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16446827406.99319 +0.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16413677188.92799 +0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16620047433.615376 +0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16528461183.735334 +0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16580145938.44455 +0.0,1.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,2.0,0.0,2.0,16765639827.112722 +0.0,1.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,2.0,0.0,2.0,17108405701.889452 +0.0,1.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,2.0,0.0,2.0,17033540745.081139 +0.0,1.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,2.0,0.0,2.0,16267066185.812191 +0.0,1.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,2.0,0.0,2.0,16454756823.376287 +0.0,1.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,2.0,0.0,2.0,16456191971.353062 +0.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,2.0,0.0,2.0,16196850036.604881 +0.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,2.0,0.0,2.0,16524664714.552942 +0.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,2.0,0.0,2.0,16531302848.508793 +0.0,1.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16332236895.829727 +0.0,1.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16457519029.006376 +0.0,1.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16541995163.120615 +0.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16365406803.099607 +0.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16563366471.108519 +0.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16635807244.228622 +0.0,2.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,2.0,0.0,2.0,15918573313.785324 +0.0,2.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,2.0,0.0,2.0,15758131589.853653 +0.0,2.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,2.0,0.0,2.0,15925494168.084036 +0.0,2.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,2.0,0.0,2.0,16471235457.957994 +0.0,2.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,2.0,0.0,2.0,16301991125.196033 +0.0,2.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,2.0,0.0,2.0,16419902892.694292 +0.0,2.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,2.0,0.0,2.0,16532751380.484741 +0.0,2.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,2.0,0.0,2.0,16235795708.229763 +0.0,2.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,2.0,0.0,2.0,16437338400.416851 +0.0,2.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16540709166.3648 +0.0,2.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16707153669.058018 +0.0,2.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16522207499.09954 +0.0,2.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16563640820.761528 +0.0,2.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16619218797.001228 +0.0,2.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16686829919.486046 +1.0,3.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,2.0,0.0,2.0,16072596704.796225 +1.0,3.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,2.0,0.0,2.0,16026103317.082867 +1.0,3.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,2.0,0.0,2.0,15780113585.257587 +1.0,3.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,2.0,0.0,2.0,16509032917.360735 +1.0,3.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,2.0,0.0,2.0,16467899124.237123 +1.0,3.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,2.0,0.0,2.0,16382431480.480333 +1.0,3.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,2.0,0.0,2.0,16533024716.871952 +1.0,3.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,2.0,0.0,2.0,16598364397.1723 +1.0,3.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,2.0,0.0,2.0,16324798184.682442 +1.0,3.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16574347550.808664 +1.0,3.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16578771546.185972 +1.0,3.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16567043511.68308 +1.0,3.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16509741573.01516 +1.0,3.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16731809177.062698 +1.0,3.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16504428138.069445 diff --git a/kernel_ridge_linear_model/model_output_data/From_summaries_X_y_before_removing_duplicate.csv b/kernel_ridge_linear_model/model_output_data/From_summaries_X_y_before_removing_duplicate.csv index a0037e2..e5023cc 100755 --- a/kernel_ridge_linear_model/model_output_data/From_summaries_X_y_before_removing_duplicate.csv +++ b/kernel_ridge_linear_model/model_output_data/From_summaries_X_y_before_removing_duplicate.csv @@ -1,55 +1,61 @@ -X_0,X_1,X_2,X_3,X_4,X_5,X_6,y -0.0,0.0,2.0,0.0,0.0,0.0,0.0,3925232177.483298 -0.0,0.0,2.0,0.0,0.0,0.0,0.0,3912699841.144387 -0.0,0.0,2.0,0.0,0.0,0.0,0.0,3910282478.8062687 -0.0,0.0,2.0,0.0,0.0,0.0,0.0,3946501229.335133 -0.0,0.0,2.0,0.0,0.0,0.0,0.0,3938853242.267046 -0.0,0.0,2.0,0.0,0.0,0.0,0.0,3969482617.6356173 -0.0,0.0,2.0,0.0,0.0,0.0,0.0,3914798329.164073 -0.0,0.0,2.0,0.0,0.0,0.0,0.0,3977186856.1928773 -0.0,0.0,2.0,0.0,0.0,0.0,0.0,3858277741.981534 -0.0,0.0,2.0,0.0,0.0,0.0,0.0,3932131411.8317833 -0.0,0.0,2.0,0.0,0.0,0.0,0.0,3943824168.5432696 -0.0,0.0,2.0,0.0,0.0,0.0,0.0,3916945096.180587 -0.0,0.0,2.0,0.0,0.0,0.0,0.0,3819709702.062643 -0.0,0.0,2.0,0.0,0.0,0.0,0.0,3887057652.839107 -0.0,0.0,2.0,0.0,0.0,0.0,0.0,3856284007.604592 -0.0,1.0,2.0,0.0,0.0,0.0,0.0,7988815658.07869 -0.0,1.0,2.0,0.0,0.0,0.0,0.0,8007559135.824218 -0.0,1.0,2.0,0.0,0.0,0.0,0.0,8163998399.856314 -0.0,1.0,2.0,0.0,0.0,0.0,0.0,3913174484.5370913 -0.0,1.0,2.0,0.0,0.0,0.0,0.0,3792360668.6690335 -0.0,1.0,2.0,0.0,0.0,0.0,0.0,3951304127.927423 -0.0,1.0,2.0,0.0,0.0,0.0,0.0,3947700859.019707 -0.0,1.0,2.0,0.0,0.0,0.0,0.0,3979877738.155884 -0.0,1.0,2.0,0.0,0.0,0.0,0.0,4070782770.8190007 -0.0,1.0,2.0,0.0,0.0,0.0,0.0,3927683491.5535164 -0.0,1.0,2.0,0.0,0.0,0.0,0.0,3867649049.525246 -0.0,1.0,2.0,0.0,0.0,0.0,0.0,3861719546.4796567 -0.0,1.0,2.0,0.0,0.0,0.0,0.0,3901144986.0534062 -0.0,1.0,2.0,0.0,0.0,0.0,0.0,3847826170.604917 -0.0,1.0,2.0,0.0,0.0,0.0,0.0,3829378223.8577924 -0.0,2.0,2.0,0.0,0.0,0.0,0.0,3950351976.361094 -0.0,2.0,2.0,0.0,0.0,0.0,0.0,3930323229.7824173 -0.0,2.0,2.0,0.0,0.0,0.0,0.0,3961149050.1164575 -0.0,2.0,2.0,0.0,0.0,0.0,0.0,3877938022.79452 -0.0,2.0,2.0,0.0,0.0,0.0,0.0,3854336899.8797445 -0.0,2.0,2.0,0.0,0.0,0.0,0.0,3984905179.181261 -0.0,2.0,2.0,0.0,0.0,0.0,0.0,3925740689.124521 -0.0,2.0,2.0,0.0,0.0,0.0,0.0,3940529528.3580203 -0.0,2.0,2.0,0.0,0.0,0.0,0.0,3882741215.2980003 -0.0,2.0,2.0,0.0,0.0,0.0,0.0,3883480064.155091 -0.0,2.0,2.0,0.0,0.0,0.0,0.0,3773399795.481731 -0.0,2.0,2.0,0.0,0.0,0.0,0.0,3779532320.67064 -1.0,3.0,2.0,0.0,0.0,0.0,0.0,3874812555.9426064 -1.0,3.0,2.0,0.0,0.0,0.0,0.0,3803973630.8547907 -1.0,3.0,2.0,0.0,0.0,0.0,0.0,3912837628.97691 -1.0,3.0,2.0,0.0,0.0,0.0,0.0,4498182734.175393 -1.0,3.0,2.0,0.0,0.0,0.0,0.0,4069970940.4074855 -1.0,3.0,2.0,0.0,0.0,0.0,0.0,3923522695.617033 -1.0,3.0,2.0,0.0,0.0,0.0,0.0,3912393680.701727 -1.0,3.0,2.0,0.0,0.0,0.0,0.0,3915273481.8527074 -1.0,3.0,2.0,0.0,0.0,0.0,0.0,3860064926.29206 -1.0,3.0,2.0,0.0,0.0,0.0,0.0,3867469553.3459415 -1.0,3.0,2.0,0.0,0.0,0.0,0.0,3780346733.402388 -1.0,3.0,2.0,0.0,0.0,0.0,0.0,3911490786.4834523 +X_0,X_1,X_2,X_3,X_4,X_5,X_6,X_7,X_8,X_9,X_10,X_11,y +0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,2.0,0.0,2.0,16754768826.077124 +0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,2.0,0.0,2.0,16403311500.525728 +0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,2.0,0.0,2.0,16507397790.319733 +0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,2.0,0.0,2.0,16637938492.868979 +0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,2.0,0.0,2.0,16458467058.378183 +0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,2.0,0.0,2.0,16296783992.64689 +0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,2.0,0.0,2.0,16410444919.98267 +0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,2.0,0.0,2.0,16532532717.882248 +0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,2.0,0.0,2.0,16433313613.356997 +0.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16394544551.355093 +0.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16446827406.99319 +0.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16413677188.92799 +0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16620047433.615376 +0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16528461183.735334 +0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16580145938.44455 +0.0,1.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,2.0,0.0,2.0,16765639827.112722 +0.0,1.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,2.0,0.0,2.0,17108405701.889452 +0.0,1.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,2.0,0.0,2.0,17033540745.081139 +0.0,1.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,2.0,0.0,2.0,16267066185.812191 +0.0,1.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,2.0,0.0,2.0,16454756823.376287 +0.0,1.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,2.0,0.0,2.0,16456191971.353062 +0.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,2.0,0.0,2.0,16196850036.604881 +0.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,2.0,0.0,2.0,16524664714.552942 +0.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,2.0,0.0,2.0,16531302848.508793 +0.0,1.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16332236895.829727 +0.0,1.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16457519029.006376 +0.0,1.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16541995163.120615 +0.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16365406803.099607 +0.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16563366471.108519 +0.0,1.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16635807244.228622 +0.0,2.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,2.0,0.0,2.0,15918573313.785324 +0.0,2.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,2.0,0.0,2.0,15758131589.853653 +0.0,2.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,2.0,0.0,2.0,15925494168.084036 +0.0,2.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,2.0,0.0,2.0,16471235457.957994 +0.0,2.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,2.0,0.0,2.0,16301991125.196033 +0.0,2.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,2.0,0.0,2.0,16419902892.694292 +0.0,2.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,2.0,0.0,2.0,16532751380.484741 +0.0,2.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,2.0,0.0,2.0,16235795708.229763 +0.0,2.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,2.0,0.0,2.0,16437338400.416851 +0.0,2.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16540709166.3648 +0.0,2.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16707153669.058018 +0.0,2.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16522207499.09954 +0.0,2.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16563640820.761528 +0.0,2.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16619218797.001228 +0.0,2.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16686829919.486046 +1.0,3.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,2.0,0.0,2.0,16072596704.796225 +1.0,3.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,2.0,0.0,2.0,16026103317.082867 +1.0,3.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,2.0,0.0,2.0,15780113585.257587 +1.0,3.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,2.0,0.0,2.0,16509032917.360735 +1.0,3.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,2.0,0.0,2.0,16467899124.237123 +1.0,3.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,2.0,0.0,2.0,16382431480.480333 +1.0,3.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,2.0,0.0,2.0,16533024716.871952 +1.0,3.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,2.0,0.0,2.0,16598364397.1723 +1.0,3.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,2.0,0.0,2.0,16324798184.682442 +1.0,3.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16574347550.808664 +1.0,3.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16578771546.185972 +1.0,3.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16567043511.68308 +1.0,3.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16509741573.01516 +1.0,3.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16731809177.062698 +1.0,3.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,2.0,16504428138.069445 diff --git a/kernel_ridge_linear_model/utils_functions.py b/kernel_ridge_linear_model/utils_functions.py index 9966a94..2b78195 100755 --- a/kernel_ridge_linear_model/utils_functions.py +++ b/kernel_ridge_linear_model/utils_functions.py @@ -947,7 +947,7 @@ def is_from_manual_experiment(human_readable_configuration): return False -def remove_duplicates(X_user_friendly, X, y, energy_array = [], workload_array = [] ): +def remove_duplicates(X_user_friendly, X, y, energy_array = [], workload_array = [], retained_value = "median"): final_X_user_friendly = [] final_X = [] final_y = [] @@ -969,6 +969,7 @@ def remove_duplicates(X_user_friendly, X, y, energy_array = [], workload_array places = positions_of_array_in_list_of_array(val, X) print(" --- Answer : the configuration " + X_user_friendly[index_of_loop] +" is already present at positions " + repr(places) ) position_energy_array = [] + position_workload_array = [] for duplicate_index in places: print(" --- Position: " , duplicate_index ) print("--------------") @@ -976,38 +977,73 @@ def remove_duplicates(X_user_friendly, X, y, energy_array = [], workload_array print(" --- Energy efficiency: ", y[duplicate_index] ) print(" --- Energy: " , energy_array[duplicate_index] ) position_energy_array.append([duplicate_index, energy_array[duplicate_index]]) + position_workload_array.append([duplicate_index, workload_array[duplicate_index]]) + print(" --- Workload: ", workload_array[duplicate_index] ) print("--------------") # Now getting the median of duplicates, regarding the energy - sorted_position_energy_array = sorted(position_energy_array, key=lambda kv: kv[1], reverse=True) # with original indexes like [ (12, dist_1), (0, dist_2), (4, dist_3).. ] - print("----------------------") - print("--- Ordered by energy, Printing the list of the " + str(len(places)) + " duplicates of " + repr(X_user_friendly[index_of_loop])) - for index in range(0,len(places)): - position_in_data_point = sorted_position_energy_array[index][0] - print("--- Duplicate " + str(index) + " in the list of duplicate, And at position " + repr(position_in_data_point) + " in the X datas point") + if retained_value == "median": + sorted_position_energy_array = sorted(position_energy_array, key=lambda kv: kv[1], reverse=True) # with original indexes like [ (12, dist_1), (0, dist_2), (4, dist_3).. ] + print("----------------------") + print("--- Ordered by energy, Printing the list of the " + str(len(places)) + " duplicates of " + repr(X_user_friendly[index_of_loop])) + for index in range(0,len(places)): + position_in_data_point = sorted_position_energy_array[index][0] + print("--- Duplicate " + str(index) + " in the list of duplicate, And at position " + repr(position_in_data_point) + " in the X datas point") + print("--------------") + print(" --- Configuration: " , X_user_friendly[position_in_data_point] ) + print(" --- Energy efficiency: ", y[position_in_data_point] ) + print(" --- Energy: " , energy_array[position_in_data_point] ) + print(" --- Workload: ", workload_array[position_in_data_point] ) + print("--------------") + median_index_in_the_duplicate_list = int(len(places)/2) - 1 + median_couple_in_the_duplicate_list = sorted_position_energy_array[median_index_in_the_duplicate_list] # Can obtain something like (4, dist_3) + median_position_in_data_point = median_couple_in_the_duplicate_list[0] print("--------------") - print(" --- Configuration: " , X_user_friendly[position_in_data_point] ) - print(" --- Energy efficiency: ", y[position_in_data_point] ) - print(" --- Energy: " , energy_array[position_in_data_point] ) - print(" --- Workload: ", workload_array[position_in_data_point] ) + print("--- We append this Median as duplicate representant at position " + repr(median_index_in_the_duplicate_list) + " in the list of duplicates, And at position " + repr(median_position_in_data_point) + " in the X datas point") print("--------------") - median_index_in_the_duplicate_list = int(len(places)/2) - 1 - median_couple_in_the_duplicate_list = sorted_position_energy_array[median_index_in_the_duplicate_list] # Can obtain something like (4, dist_3) - median_position_in_data_point = median_couple_in_the_duplicate_list[0] - print("--------------") - print("--- We append this Median as duplicate representant at position " + repr(median_index_in_the_duplicate_list) + " in the list of duplicates, And at position " + repr(median_position_in_data_point) + " in the X datas point") - print("--------------") - print(" --- Configuration: ", X_user_friendly[median_position_in_data_point] ) - print(" --- Energy efficiency: ", y[median_position_in_data_point] ) - print(" --- Energy: " , energy_array[median_position_in_data_point] ) - print(" --- Workload: ", workload_array[median_position_in_data_point] ) - print("--------------") - - final_X_user_friendly[place] = X_user_friendly[median_position_in_data_point] - final_X[place] = val - final_y[place] = y[median_position_in_data_point] - + print(" --- Configuration: ", X_user_friendly[median_position_in_data_point] ) + print(" --- Energy efficiency: ", y[median_position_in_data_point] ) + print(" --- Energy: " , energy_array[median_position_in_data_point] ) + print(" --- Workload: ", workload_array[median_position_in_data_point] ) + print("--------------") + final_X_user_friendly[place] = X_user_friendly[median_position_in_data_point] + final_X[place] = val + final_y[place] = y[median_position_in_data_point] + elif retained_value == "mean": + sorted_position_energy_array = sorted(position_energy_array, key=lambda kv: kv[1], reverse=True) # with original indexes like [ (12, dist_1), (0, dist_2), (4, dist_3).. ] + print("---------------------- Listing and computing the mean") + print("--- Ordered by energy, Printing the list of the " + str(len(places)) + " duplicates of " + repr(X_user_friendly[index_of_loop])) + mean_energy = 0 + mean_workload = 0 + mean_efficiencty = 0 + for index in range(0,len(places)): + position_in_data_point = sorted_position_energy_array[index][0] + print("--- Duplicate " + str(index) + " in the list of duplicate, And at position " + repr(position_in_data_point) + " in the X datas point") + print("--------------") + print(" --- Configuration: " , X_user_friendly[position_in_data_point] ) + print(" --- Energy efficiency: ", y[position_in_data_point] ) + print(" --- Energy: " , energy_array[position_in_data_point] ) + print(" --- Workload: ", workload_array[position_in_data_point] ) + print("--------------") + mean_energy = mean_energy + energy_array[position_in_data_point] + mean_workload = mean_workload + workload_array[position_in_data_point] + mean_efficiencty = mean_efficiencty + y[position_in_data_point] + mean_energy = mean_energy / len(places) + mean_workload = mean_workload / len(places) + mean_efficiencty = mean_efficiencty / len(places) + + print("--------------") + print("--- We append this mean as duplicate reprensentant in the X datas point") + print("--------------") + print(" --- Configuration: ", X_user_friendly[position_in_data_point] ) + print(" --- Energy efficiency: ", mean_efficiencty ) + print(" --- Energy: " , mean_energy ) + print(" --- Workload: ", mean_workload ) + print("--------------") + final_X_user_friendly[place] = X_user_friendly[position_in_data_point] + final_X[place] = val + final_y[place] = mean_efficiencty registered_duplicates.append(val) index_of_loop = index_of_loop +1 -- GitLab