diff --git a/benchmark/report.py b/benchmark/report.py index 9c576562..5eaaab9f 100644 --- a/benchmark/report.py +++ b/benchmark/report.py @@ -17,8 +17,6 @@ PLOT_CONFIG = { "size": {"auto_size": False, "width": 1500, "height": 900}, "template": "plotly_white", "range_slider": False, - "av_s_per_100_steps_10_nodes_benchmark_threshold": 5, - "benchmark_line_color": "grey", } @@ -229,10 +227,7 @@ def _plot_av_s_per_100_steps_10_nodes( """ Creates a bar chart visualising the performance of each version of PrimAITE. - Performance is based on the average training time per 100 steps on 10 nodes. The function also includes a benchmark - line indicating the target maximum time. - - Versions that perform under this time are marked in green, and those over are marked in red. + Performance is based on the average training time per 100 steps on 10 nodes. :param version_times_dict: A dictionary with software versions as keys and average times as values. :return: A Plotly figure object representing the bar chart of the performance metrics. @@ -256,7 +251,6 @@ def _plot_av_s_per_100_steps_10_nodes( versions = sorted(list(version_times_dict.keys())) times = [version_times_dict[version] for version in versions] av_s_per_100_steps_10_nodes_benchmark_threshold = PLOT_CONFIG["av_s_per_100_steps_10_nodes_benchmark_threshold"] - benchmark_line_color = PLOT_CONFIG["benchmark_line_color"] # Calculate the appropriate maximum y-axis value max_y_axis_value = max(max(times), av_s_per_100_steps_10_nodes_benchmark_threshold) + 1 @@ -265,28 +259,11 @@ def _plot_av_s_per_100_steps_10_nodes( go.Bar( x=versions, y=times, - marker_color=[ - "green" if time < av_s_per_100_steps_10_nodes_benchmark_threshold else "red" for time in times - ], text=times, textposition="auto", ) ) - # Add a horizontal line for the benchmark - fig.add_shape( - type="line", - x0=-0.5, # start slightly before the first bar - x1=len(versions) - 0.5, # end slightly after the last bar - y0=av_s_per_100_steps_10_nodes_benchmark_threshold, - y1=av_s_per_100_steps_10_nodes_benchmark_threshold, - line=dict( - color=benchmark_line_color, - width=2, - dash="dot", - ), - ) - fig.update_layout( xaxis_title="PrimAITE Version", yaxis_title="Avg Time per 100 Steps on 10 Nodes (seconds)", diff --git a/benchmark/results/v3/v3.1.0/PrimAITE v3.1.0 Learning Benchmark.pdf b/benchmark/results/v3/v3.1.0/PrimAITE v3.1.0 Learning Benchmark.pdf deleted file mode 100644 index 880fd8de..00000000 Binary files a/benchmark/results/v3/v3.1.0/PrimAITE v3.1.0 Learning Benchmark.pdf and /dev/null differ diff --git a/benchmark/results/v3/v3.1.0/session_metadata/1.json b/benchmark/results/v3/v3.1.0/session_metadata/1.json index 0989c376..54fc43f6 100644 --- a/benchmark/results/v3/v3.1.0/session_metadata/1.json +++ b/benchmark/results/v3/v3.1.0/session_metadata/1.json @@ -1006,4 +1006,4 @@ "999": 112.00000000000009, "1000": 102.55000000000008 } -} \ No newline at end of file +} diff --git a/benchmark/results/v3/v3.1.0/session_metadata/2.json b/benchmark/results/v3/v3.1.0/session_metadata/2.json index 5c0b195e..e5b4b184 100644 --- a/benchmark/results/v3/v3.1.0/session_metadata/2.json +++ b/benchmark/results/v3/v3.1.0/session_metadata/2.json @@ -1006,4 +1006,4 @@ "999": 110.30000000000007, "1000": 118.05000000000011 } -} \ No newline at end of file +} diff --git a/benchmark/results/v3/v3.1.0/session_metadata/3.json b/benchmark/results/v3/v3.1.0/session_metadata/3.json index 4533d3dd..df68d9d6 100644 --- a/benchmark/results/v3/v3.1.0/session_metadata/3.json +++ b/benchmark/results/v3/v3.1.0/session_metadata/3.json @@ -1006,4 +1006,4 @@ "999": 118.44999999999996, "1000": 108.20000000000029 } -} \ No newline at end of file +} diff --git a/benchmark/results/v3/v3.1.0/session_metadata/4.json b/benchmark/results/v3/v3.1.0/session_metadata/4.json index 73288114..b87bdc1e 100644 --- a/benchmark/results/v3/v3.1.0/session_metadata/4.json +++ b/benchmark/results/v3/v3.1.0/session_metadata/4.json @@ -1006,4 +1006,4 @@ "999": 99.50000000000009, "1000": 98.70000000000006 } -} \ No newline at end of file +} diff --git a/benchmark/results/v3/v3.1.0/session_metadata/5.json b/benchmark/results/v3/v3.1.0/session_metadata/5.json index 58428719..fcbacca1 100644 --- a/benchmark/results/v3/v3.1.0/session_metadata/5.json +++ b/benchmark/results/v3/v3.1.0/session_metadata/5.json @@ -1006,4 +1006,4 @@ "999": 118.45000000000007, "1000": 116.3000000000001 } -} \ No newline at end of file +} diff --git a/benchmark/results/v3/v3.2.0/PrimAITE Learning Benchmark of Minor and Bugfix Releases for Major Version 3.png b/benchmark/results/v3/v3.2.0/PrimAITE Learning Benchmark of Minor and Bugfix Releases for Major Version 3.png new file mode 100644 index 00000000..4975795f Binary files /dev/null and b/benchmark/results/v3/v3.2.0/PrimAITE Learning Benchmark of Minor and Bugfix Releases for Major Version 3.png differ diff --git a/benchmark/results/v3/v3.2.0/PrimAITE Performance of Minor and Bugfix Releases for Major Version 3.png b/benchmark/results/v3/v3.2.0/PrimAITE Performance of Minor and Bugfix Releases for Major Version 3.png new file mode 100644 index 00000000..40f29d7b Binary files /dev/null and b/benchmark/results/v3/v3.2.0/PrimAITE Performance of Minor and Bugfix Releases for Major Version 3.png differ diff --git a/benchmark/results/v3/v3.2.0/PrimAITE v3.2.0 Benchmark Report.md b/benchmark/results/v3/v3.2.0/PrimAITE v3.2.0 Benchmark Report.md new file mode 100644 index 00000000..e6f812d1 --- /dev/null +++ b/benchmark/results/v3/v3.2.0/PrimAITE v3.2.0 Benchmark Report.md @@ -0,0 +1,38 @@ +# PrimAITE v3.2.0 Learning Benchmark +## PrimAITE Dev Team +### 2024-07-21 + +--- +## 1 Introduction +PrimAITE v3.2.0 was benchmarked automatically upon release. Learning rate metrics were captured to be referenced during system-level testing and user acceptance testing (UAT). +The benchmarking process consists of running 5 training session using the same config file. Each session trains an agent for 1000 episodes, with each episode consisting of 128 steps. +The total reward per episode from each session is captured. This is then used to calculate an caverage total reward per episode from the 5 individual sessions for smoothing. Finally, a 25-widow rolling average of the average total reward per session is calculated for further smoothing. +## 2 System Information +### 2.1 Python +**Version:** 3.10.14 (main, Apr 6 2024, 18:45:05) [GCC 9.4.0] +### 2.2 System +- **OS:** Linux +- **OS Version:** #76~20.04.1-Ubuntu SMP Thu Jun 13 18:00:23 UTC 2024 +- **Machine:** x86_64 +- **Processor:** x86_64 +### 2.3 CPU +- **Physical Cores:** 2 +- **Total Cores:** 4 +- **Max Frequency:** 0.00Mhz +### 2.4 Memory +- **Total:** 15.62GB +- **Swap Total:** 0.00B +## 3 Stats +- **Total Sessions:** 5 +- **Total Episodes:** 5005 +- **Total Steps:** 640000 +- **Av Session Duration (s):** 1691.5034 +- **Av Step Duration (s):** 0.0529 +- **Av Duration per 100 Steps per 10 Nodes (s):** 5.2859 +## 4 Graphs +### 4.1 v3.2.0 Learning Benchmark Plot +![PrimAITE 3.2.0 Learning Benchmark Plot](PrimAITE v3.2.0 Learning Benchmark.png) +### 4.2 Learning Benchmark of Minor and Bugfix Releases for Major Version 3 +![Learning Benchmark of Minor and Bugfix Releases for Major Version 3](PrimAITE Learning Benchmark of Minor and Bugfix Releases for Major Version 3.png) +### 4.3 Performance of Minor and Bugfix Releases for Major Version 3 +![Performance of Minor and Bugfix Releases for Major Version 3](PrimAITE Performance of Minor and Bugfix Releases for Major Version 3.png) diff --git a/benchmark/results/v3/v3.2.0/PrimAITE v3.2.0 Learning Benchmark.png b/benchmark/results/v3/v3.2.0/PrimAITE v3.2.0 Learning Benchmark.png new file mode 100644 index 00000000..e7f6aba9 Binary files /dev/null and b/benchmark/results/v3/v3.2.0/PrimAITE v3.2.0 Learning Benchmark.png differ diff --git a/benchmark/results/v3/v3.2.0/session_metadata/1.json b/benchmark/results/v3/v3.2.0/session_metadata/1.json new file mode 100644 index 00000000..794f03e3 --- /dev/null +++ b/benchmark/results/v3/v3.2.0/session_metadata/1.json @@ -0,0 +1,1009 @@ +{ + "total_episodes": 1001, + "total_time_steps": 128000, + "total_s": 1492.710504, + "s_per_step": 0.04664720325, + "s_per_100_steps_10_nodes": 4.664720324999999, + "total_reward_per_episode": { + "1": -13.39999999999999, + "2": -33.95000000000001, + "3": -18.79999999999997, + "4": -7.300000000000002, + "5": -28.599999999999937, + "6": -7.2500000000000036, + "7": -38.15000000000004, + "8": -14.199999999999992, + "9": -15.099999999999985, + "10": -13.69999999999998, + "11": -19.899999999999963, + "12": -19.299999999999965, + "13": -3.849999999999989, + "14": -71.20000000000003, + "15": -10.199999999999985, + "16": -60.6000000000001, + "17": -20.69999999999996, + "18": -18.19999999999997, + "19": -22.84999999999996, + "20": -56.20000000000008, + "21": -35.05000000000004, + "22": -69.89999999999998, + "23": -28.300000000000033, + "24": -55.399999999999984, + "25": -18.54999999999997, + "26": -24.449999999999946, + "27": -27.650000000000002, + "28": -48.75000000000007, + "29": -34.90000000000004, + "30": -11.449999999999989, + "31": -40.950000000000045, + "32": -15.999999999999993, + "33": -43.20000000000006, + "34": -30.050000000000026, + "35": -33.44999999999996, + "36": -34.449999999999996, + "37": -74.00000000000001, + "38": -23.699999999999974, + "39": -22.899999999999952, + "40": -9.149999999999956, + "41": -16.04999999999997, + "42": -20.899999999999967, + "43": -4.1999999999999975, + "44": -12.199999999999978, + "45": -18.449999999999967, + "46": -99.15, + "47": -38.20000000000007, + "48": -13.349999999999978, + "49": -60.600000000000094, + "50": -99.45, + "51": -5.199999999999986, + "52": -9.05, + "53": -13.749999999999986, + "54": -6.899999999999998, + "55": -73.49999999999997, + "56": -43.95000000000005, + "57": -88.35, + "58": -86.29999999999983, + "59": -11.149999999999997, + "60": -12.799999999999986, + "61": -22.449999999999953, + "62": -16.549999999999976, + "63": -17.949999999999974, + "64": -14.449999999999989, + "65": -1.0999999999999999, + "66": 3.7000000000000153, + "67": -59.400000000000105, + "68": -43.49999999999997, + "69": -8.449999999999987, + "70": -46.75000000000017, + "71": -6.449999999999994, + "72": -74.4, + "73": -26.849999999999977, + "74": -8.599999999999993, + "75": -63.45, + "76": -5.549999999999984, + "77": -94.35, + "78": -3.0999999999999703, + "79": -40.95000000000011, + "80": -2.3999999999999932, + "81": -34.699999999999974, + "82": 7.600000000000035, + "83": -3.9499999999999806, + "84": -21.649999999999956, + "85": 21.49999999999995, + "86": -17.299999999999972, + "87": -87.14999999999999, + "88": -18.249999999999982, + "89": -16.24999999999998, + "90": -13.449999999999967, + "91": -60.150000000000006, + "92": -30.250000000000004, + "93": -0.7999999999999585, + "94": -11.499999999999995, + "95": -9.69999999999999, + "96": -91.14999999999999, + "97": -5.300000000000008, + "98": 14.550000000000034, + "99": -67.1, + "100": -71.85, + "101": -11.599999999999982, + "102": 3.0499999999999634, + "103": -20.64999999999996, + "104": 1.850000000000031, + "105": -79.1, + "106": -15.34999999999998, + "107": -58.45, + "108": -83.74999999999996, + "109": -73.15000000000002, + "110": -43.45000000000013, + "111": -68.6, + "112": -16.299999999999997, + "113": 1.450000000000024, + "114": -28.70000000000002, + "115": -0.7999999999999883, + "116": -29.69999999999999, + "117": -12.450000000000003, + "118": 2.6500000000000066, + "119": -51.64999999999999, + "120": 13.600000000000016, + "121": -94.85000000000008, + "122": -89.00000000000006, + "123": -10.850000000000003, + "124": 31.59999999999992, + "125": -90.54999999999995, + "126": -8.199999999999983, + "127": 14.2499999999999, + "128": -57.500000000000014, + "129": -81.5, + "130": 49.79999999999988, + "131": -40.45000000000008, + "132": 18.700000000000028, + "133": -1.5500000000000005, + "134": 3.3499999999999712, + "135": -12.649999999999988, + "136": -49.20000000000006, + "137": -23.700000000000014, + "138": -73.35, + "139": -38.94999999999999, + "140": -58.44999999999997, + "141": -93.10000000000001, + "142": -46.99999999999999, + "143": 8.900000000000002, + "144": -16.399999999999977, + "145": -3.700000000000005, + "146": -37.55000000000001, + "147": -4.350000000000045, + "148": -70.60000000000004, + "149": 10.450000000000053, + "150": -96.79999999999995, + "151": 25.849999999999923, + "152": -30.000000000000036, + "153": -50.10000000000004, + "154": 33.399999999999906, + "155": -55.449999999999996, + "156": -49.75000000000002, + "157": -26.049999999999997, + "158": -73.30000000000001, + "159": -9.549999999999988, + "160": -75.55, + "161": 62.09999999999988, + "162": 4.650000000000015, + "163": -76.25000000000004, + "164": -74.4, + "165": 12.000000000000028, + "166": -88.05000000000011, + "167": -60.0000000000001, + "168": -81.25, + "169": 6.700000000000029, + "170": -22.849999999999987, + "171": -93.40000000000003, + "172": -33.350000000000016, + "173": -10.449999999999989, + "174": -27.85000000000002, + "175": -92.85000000000001, + "176": 6.849999999999982, + "177": -67.74999999999997, + "178": -3.1999999999999735, + "179": -75.80000000000004, + "180": 8.44999999999997, + "181": -23.950000000000003, + "182": 9.650000000000004, + "183": -95.89999999999999, + "184": -4.949999999999988, + "185": 21.900000000000006, + "186": -67.65, + "187": 2.249999999999967, + "188": -9.950000000000001, + "189": 53.399999999999956, + "190": 38.59999999999993, + "191": -74.10000000000001, + "192": -90.84999999999994, + "193": 15.999999999999902, + "194": -18.14999999999997, + "195": -21.55000000000003, + "196": -7.849999999999997, + "197": 28.399999999999935, + "198": 54.89999999999993, + "199": 56.699999999999875, + "200": 9.450000000000056, + "201": -38.699999999999996, + "202": 22.149999999999984, + "203": 9.100000000000033, + "204": -53.09999999999994, + "205": 37.399999999999835, + "206": 4.600000000000054, + "207": -0.15000000000001734, + "208": 4.1500000000000155, + "209": -14.69999999999998, + "210": -22.350000000000023, + "211": 10.650000000000025, + "212": -13.749999999999986, + "213": 7.350000000000001, + "214": 8.950000000000031, + "215": 37.1499999999999, + "216": 10.550000000000015, + "217": -59.849999999999966, + "218": 42.45000000000007, + "219": 59.59999999999994, + "220": -30.100000000000012, + "221": 29.800000000000026, + "222": -62.45000000000002, + "223": -72.64999999999999, + "224": -63.24999999999999, + "225": -24.150000000000006, + "226": -12.949999999999985, + "227": 11.600000000000012, + "228": -25.49999999999998, + "229": 78.54999999999995, + "230": 21.05000000000002, + "231": 2.3999999999999972, + "232": 23.750000000000014, + "233": -12.850000000000005, + "234": -90.34999999999997, + "235": -24.850000000000012, + "236": -1.7499999999999662, + "237": 32.59999999999983, + "238": -3.299999999999989, + "239": -12.050000000000011, + "240": 60.99999999999993, + "241": 2.8999999999999453, + "242": 8.900000000000029, + "243": 28.899999999999977, + "244": 48.049999999999926, + "245": 28.29999999999994, + "246": 16.50000000000002, + "247": 59.69999999999998, + "248": -4.300000000000031, + "249": -24.350000000000055, + "250": 59.85000000000001, + "251": 92.24999999999996, + "252": 33.59999999999993, + "253": 47.599999999999966, + "254": -35.15000000000005, + "255": -21.199999999999978, + "256": 10.450000000000001, + "257": 71.49999999999993, + "258": -76.1, + "259": -4.1500000000000306, + "260": 35.04999999999997, + "261": 26.949999999999974, + "262": -32.100000000000016, + "263": 41.84999999999999, + "264": 43.65000000000004, + "265": 35.59999999999999, + "266": 63.6499999999999, + "267": 69.74999999999997, + "268": 6.550000000000038, + "269": -12.000000000000014, + "270": 1.2999999999999938, + "271": 72.95, + "272": 75.24999999999984, + "273": 43.349999999999824, + "274": 48.049999999999855, + "275": 4.099999999999985, + "276": 6.7500000000000275, + "277": 0.699999999999992, + "278": 19.40000000000003, + "279": 62.94999999999984, + "280": 41.10000000000004, + "281": 45.64999999999992, + "282": 65.94999999999995, + "283": -14.550000000000024, + "284": 22.200000000000028, + "285": 12.600000000000005, + "286": -20.049999999999986, + "287": 57.2, + "288": 37.04999999999998, + "289": 41.04999999999983, + "290": 59.499999999999936, + "291": 38.64999999999985, + "292": 16.499999999999996, + "293": 35.39999999999997, + "294": 25.24999999999997, + "295": 41.69999999999986, + "296": 74.14999999999993, + "297": -0.8500000000000294, + "298": 70.54999999999998, + "299": 48.1499999999999, + "300": 60.54999999999992, + "301": 43.79999999999999, + "302": 7.649999999999999, + "303": 70.10000000000004, + "304": -53.04999999999992, + "305": 7.450000000000016, + "306": 72.5999999999999, + "307": 50.99999999999997, + "308": -56.74999999999993, + "309": 74.25000000000001, + "310": 62.89999999999995, + "311": 81.40000000000008, + "312": 38.44999999999995, + "313": 60.8, + "314": 64.2999999999999, + "315": 46.04999999999995, + "316": 83.64999999999989, + "317": 54.6499999999999, + "318": 49.04999999999994, + "319": 70.84999999999998, + "320": 82.55000000000007, + "321": -45.05000000000001, + "322": 87.00000000000003, + "323": 15.64999999999998, + "324": 30.400000000000013, + "325": 87.35000000000005, + "326": 72.29999999999991, + "327": 83.15000000000018, + "328": 47.70000000000001, + "329": -14.950000000000028, + "330": 51.64999999999997, + "331": 18.349999999999998, + "332": 64.99999999999993, + "333": 75.39999999999982, + "334": 89.40000000000009, + "335": 92.4500000000001, + "336": 51.7499999999999, + "337": 86.15000000000006, + "338": -5.399999999999977, + "339": 71.19999999999996, + "340": 91.20000000000002, + "341": 94.80000000000011, + "342": 67.64999999999999, + "343": 79.19999999999995, + "344": 75.89999999999988, + "345": 80.19999999999996, + "346": 49.74999999999992, + "347": 41.29999999999985, + "348": 62.74999999999999, + "349": 69.94999999999987, + "350": 8.29999999999995, + "351": 70.29999999999998, + "352": 20.80000000000006, + "353": 45.5499999999999, + "354": 20.799999999999958, + "355": 62.249999999999844, + "356": -23.85000000000003, + "357": -24.049999999999947, + "358": 49.74999999999986, + "359": 79.19999999999979, + "360": 4.000000000000057, + "361": 91.14999999999984, + "362": 43.74999999999987, + "363": 80.30000000000018, + "364": 97.70000000000012, + "365": 53.64999999999987, + "366": 68.1999999999999, + "367": 88.75000000000006, + "368": 73.54999999999984, + "369": 91.95000000000003, + "370": 11.849999999999994, + "371": 19.849999999999948, + "372": 61.299999999999876, + "373": 89.70000000000016, + "374": 55.35000000000001, + "375": 6.149999999999993, + "376": 83.7, + "377": 76.29999999999981, + "378": 83.95000000000006, + "379": 66.34999999999992, + "380": 87.60000000000008, + "381": 99.25000000000014, + "382": 83.7000000000001, + "383": 86.00000000000009, + "384": 56.849999999999845, + "385": 85.04999999999994, + "386": 85.50000000000007, + "387": 14.39999999999993, + "388": 83.24999999999993, + "389": 75.89999999999985, + "390": 57.4499999999999, + "391": 77.84999999999994, + "392": 72.94999999999989, + "393": 98.15000000000025, + "394": 42.29999999999998, + "395": 76.90000000000003, + "396": 87.15000000000012, + "397": 80.30000000000011, + "398": 76.75000000000009, + "399": 66.00000000000011, + "400": 45.550000000000026, + "401": 59.39999999999992, + "402": 101.75000000000003, + "403": 79.30000000000008, + "404": 63.199999999999875, + "405": 84.6000000000001, + "406": 43.94999999999997, + "407": 71.54999999999987, + "408": 70.05000000000013, + "409": 63.649999999999906, + "410": 86.65000000000005, + "411": 88.55000000000007, + "412": 30.500000000000007, + "413": 79.99999999999996, + "414": 84.10000000000004, + "415": 59.14999999999998, + "416": 86.35000000000012, + "417": 87.50000000000006, + "418": 69.3, + "419": 1.399999999999986, + "420": 73.10000000000005, + "421": 70.35, + "422": 64.19999999999993, + "423": 85.15, + "424": 51.54999999999998, + "425": 78.6000000000001, + "426": 91.89999999999995, + "427": 74.65000000000006, + "428": 40.00000000000005, + "429": 83.65, + "430": 88.20000000000006, + "431": 83.75, + "432": 33.849999999999966, + "433": 69.64999999999995, + "434": 62.849999999999895, + "435": 92.05000000000007, + "436": 57.94999999999996, + "437": 80.30000000000008, + "438": 83.70000000000005, + "439": 88.20000000000005, + "440": 59.84999999999983, + "441": 75.45000000000002, + "442": 90.24999999999986, + "443": 37.349999999999945, + "444": 75.20000000000005, + "445": 75.35000000000005, + "446": 67.15000000000003, + "447": 95.45000000000012, + "448": 81.5, + "449": 78.10000000000002, + "450": 42.45000000000002, + "451": 70.54999999999987, + "452": 46.29999999999997, + "453": -23.650000000000013, + "454": 77.24999999999999, + "455": 71.50000000000001, + "456": 76.20000000000003, + "457": 63.249999999999915, + "458": 88.94999999999997, + "459": 68.29999999999998, + "460": 84.39999999999998, + "461": 79.99999999999999, + "462": 88.05000000000004, + "463": 53.650000000000006, + "464": 92.30000000000001, + "465": 79.39999999999996, + "466": 62.84999999999998, + "467": 69.45000000000006, + "468": 98.25000000000006, + "469": 70.3499999999999, + "470": 83.50000000000004, + "471": 87.74999999999996, + "472": 95.6000000000001, + "473": 79.35000000000004, + "474": 83.75000000000006, + "475": 71.69999999999996, + "476": 79.09999999999991, + "477": 95.45000000000002, + "478": 69.6499999999999, + "479": 75.34999999999997, + "480": 46.350000000000016, + "481": 53.799999999999905, + "482": 81.59999999999998, + "483": 70.64999999999979, + "484": 70.25000000000006, + "485": 79.05, + "486": 64.14999999999999, + "487": 75.75, + "488": 58.69999999999997, + "489": 101.95, + "490": 93.90000000000012, + "491": 93.6999999999999, + "492": 39.04999999999996, + "493": 92.65000000000005, + "494": 22.399999999999995, + "495": 64.4499999999999, + "496": 60.59999999999985, + "497": 88.80000000000008, + "498": 76.04999999999997, + "499": 75.20000000000007, + "500": 87.75, + "501": 47.39999999999992, + "502": 94.00000000000004, + "503": 75.09999999999997, + "504": 54.15000000000006, + "505": 79.50000000000003, + "506": 96.25000000000007, + "507": 81.00000000000009, + "508": 89.30000000000013, + "509": 26.40000000000001, + "510": 89.35000000000007, + "511": 85.8499999999998, + "512": 79.45000000000003, + "513": 84.65000000000003, + "514": 70.55000000000004, + "515": 68.95, + "516": 64.74999999999997, + "517": 85.84999999999982, + "518": 98.40000000000019, + "519": 42.749999999999986, + "520": 10.200000000000022, + "521": 59.29999999999982, + "522": 82.04999999999995, + "523": 75.74999999999994, + "524": 59.64999999999996, + "525": 88.84999999999998, + "526": 84.14999999999993, + "527": 76.60000000000007, + "528": 66.09999999999998, + "529": 101.80000000000021, + "530": 84.65000000000006, + "531": 16.149999999999977, + "532": 79.29999999999987, + "533": 74.20000000000002, + "534": 72.95000000000007, + "535": 66.70000000000002, + "536": 58.24999999999998, + "537": 55.49999999999997, + "538": 72.75000000000006, + "539": 60.0999999999999, + "540": 65.39999999999998, + "541": 48.949999999999974, + "542": 90.75, + "543": 75.39999999999982, + "544": 76.10000000000004, + "545": 83.85, + "546": 49.29999999999989, + "547": 56.999999999999964, + "548": 78.80000000000008, + "549": 93.74999999999982, + "550": 87.6000000000001, + "551": 60.24999999999998, + "552": 86.90000000000003, + "553": 64.55, + "554": 65.99999999999997, + "555": 84.10000000000005, + "556": 58.34999999999999, + "557": 87.55, + "558": 75.70000000000005, + "559": 91.00000000000003, + "560": 79.25000000000003, + "561": 80.89999999999995, + "562": 87.35000000000016, + "563": 28.30000000000002, + "564": 79.74999999999999, + "565": 86.1, + "566": 78.75, + "567": 79.10000000000001, + "568": 66.79999999999998, + "569": 28.250000000000007, + "570": 94.15000000000013, + "571": 57.29999999999993, + "572": 63.449999999999946, + "573": 44.649999999999956, + "574": 69.89999999999999, + "575": 81.74999999999999, + "576": 68.09999999999995, + "577": 77.45000000000012, + "578": 77.24999999999997, + "579": 82.1, + "580": 94.70000000000019, + "581": 93.20000000000014, + "582": 55.89999999999997, + "583": 82.20000000000002, + "584": 98.00000000000013, + "585": 79.75, + "586": 88.20000000000013, + "587": -9.599999999999978, + "588": 99.70000000000017, + "589": 74.7, + "590": 94.35, + "591": 62.449999999999974, + "592": 52.149999999999906, + "593": 59.450000000000024, + "594": 18.89999999999996, + "595": 91.8, + "596": 76.74999999999999, + "597": 73.5000000000001, + "598": 71.04999999999995, + "599": 73.35000000000001, + "600": 77.10000000000002, + "601": 76.94999999999999, + "602": 68.7, + "603": 79.89999999999998, + "604": 57.35000000000002, + "605": 54.29999999999995, + "606": 70.69999999999992, + "607": 94.55000000000011, + "608": 95.55000000000004, + "609": 93.24999999999994, + "610": 70.65, + "611": 72.64999999999992, + "612": 81.99999999999999, + "613": 61.74999999999992, + "614": 91.85000000000004, + "615": 91.8000000000001, + "616": 80.90000000000012, + "617": 77.75000000000003, + "618": 87.00000000000009, + "619": 77.40000000000003, + "620": 38.55, + "621": 86.90000000000009, + "622": 2.850000000000019, + "623": 86.75, + "624": 62.24999999999996, + "625": 93.55000000000008, + "626": 84.40000000000006, + "627": 80.65, + "628": 79.95000000000012, + "629": 87.34999999999975, + "630": 66.19999999999993, + "631": 72.89999999999995, + "632": 44.59999999999989, + "633": 87.44999999999996, + "634": 73.1500000000001, + "635": 86.10000000000008, + "636": 2.2000000000000037, + "637": 46.90000000000004, + "638": 77.45000000000002, + "639": 63.69999999999996, + "640": 83.90000000000002, + "641": 65.40000000000003, + "642": 93.40000000000005, + "643": 80.50000000000006, + "644": 93.09999999999997, + "645": 79.44999999999997, + "646": 83.40000000000002, + "647": 74.75000000000003, + "648": 59.34999999999996, + "649": 86.70000000000003, + "650": 65.39999999999996, + "651": 7.7499999999999565, + "652": 82.6500000000001, + "653": 73.14999999999995, + "654": 97.80000000000025, + "655": 92.64999999999998, + "656": 75.20000000000002, + "657": 91.4000000000001, + "658": 93.65000000000015, + "659": 99.6, + "660": 91.50000000000009, + "661": 78.99999999999999, + "662": 42.049999999999976, + "663": 22.299999999999997, + "664": 52.649999999999935, + "665": 97.05000000000011, + "666": 85.45000000000012, + "667": 30.25, + "668": 78.65000000000006, + "669": 72.84999999999998, + "670": 64.69999999999996, + "671": 86.44999999999985, + "672": 89.14999999999996, + "673": 86.25000000000009, + "674": 20.300000000000026, + "675": 91.69999999999999, + "676": 102.60000000000008, + "677": 67.19999999999993, + "678": 102.3, + "679": 65.34999999999994, + "680": 78.34999999999991, + "681": 49.89999999999994, + "682": 94.40000000000013, + "683": 82.10000000000016, + "684": 50.24999999999996, + "685": 45.999999999999865, + "686": 93.50000000000017, + "687": 50.29999999999993, + "688": 55.54999999999995, + "689": 51.54999999999988, + "690": 65.0999999999999, + "691": 80.69999999999999, + "692": 41.59999999999987, + "693": 95.54999999999994, + "694": 87.14999999999996, + "695": 80.90000000000006, + "696": 60.89999999999995, + "697": 86.05000000000005, + "698": 83.45000000000005, + "699": 61.349999999999966, + "700": 83.80000000000001, + "701": 74.59999999999992, + "702": 87.85000000000012, + "703": 94.50000000000018, + "704": 55.049999999999926, + "705": 82.00000000000001, + "706": 41.499999999999964, + "707": 77.79999999999998, + "708": 64.44999999999996, + "709": 72.05, + "710": 89.05000000000015, + "711": 67.19999999999999, + "712": 74.0000000000001, + "713": 89.64999999999999, + "714": 81.1, + "715": 86.45000000000013, + "716": 85.19999999999996, + "717": 84.65000000000003, + "718": 55.9499999999999, + "719": 85.10000000000004, + "720": 70.20000000000003, + "721": 99.54999999999998, + "722": 76.75000000000003, + "723": 58.40000000000001, + "724": 84.75000000000006, + "725": 83.70000000000012, + "726": 68.74999999999996, + "727": 34.35000000000004, + "728": 88.00000000000009, + "729": 66.09999999999995, + "730": 83.54999999999998, + "731": 98.35, + "732": 87.35, + "733": 80.05000000000003, + "734": 86.69999999999992, + "735": 95.55000000000018, + "736": 86.39999999999998, + "737": 87.69999999999999, + "738": 87.29999999999998, + "739": 101.75000000000009, + "740": 69.55000000000001, + "741": 81.45000000000002, + "742": 84.64999999999996, + "743": 61.79999999999997, + "744": 87.04999999999998, + "745": 84.15000000000002, + "746": 64.3, + "747": 41.849999999999994, + "748": 73.94999999999993, + "749": 31.999999999999964, + "750": 67.70000000000002, + "751": 78.10000000000001, + "752": 76.24999999999999, + "753": 71.60000000000001, + "754": 59.35000000000002, + "755": 83.00000000000009, + "756": 45.70000000000002, + "757": 77.65000000000005, + "758": 57.39999999999994, + "759": 89.15, + "760": 74.49999999999996, + "761": 100.55000000000001, + "762": 73.05, + "763": 97.5500000000001, + "764": 75.10000000000004, + "765": 49.90000000000005, + "766": 65.94999999999999, + "767": 69.00000000000006, + "768": 92.60000000000001, + "769": 93.65000000000008, + "770": 89.4000000000001, + "771": 35.25000000000004, + "772": 75.65000000000015, + "773": 96.0, + "774": 81.70000000000013, + "775": 104.74999999999994, + "776": 87.75000000000011, + "777": 86.39999999999995, + "778": 47.39999999999997, + "779": 63.54999999999999, + "780": 45.499999999999986, + "781": 79.55000000000001, + "782": 69.0, + "783": 80.75, + "784": 88.89999999999996, + "785": 87.00000000000013, + "786": 80.85, + "787": 69.39999999999989, + "788": 10.550000000000004, + "789": 71.04999999999997, + "790": 68.5, + "791": 81.25000000000006, + "792": 61.849999999999916, + "793": 75.75000000000009, + "794": 91.25000000000009, + "795": 66.19999999999997, + "796": 104.60000000000005, + "797": 82.25000000000004, + "798": 57.55000000000004, + "799": 98.99999999999994, + "800": 78.34999999999997, + "801": 71.25000000000004, + "802": 88.74999999999997, + "803": 67.49999999999996, + "804": 89.2, + "805": 88.05000000000001, + "806": 88.75000000000003, + "807": 87.14999999999999, + "808": 67.89999999999998, + "809": 79.45000000000002, + "810": 69.75000000000001, + "811": 87.5, + "812": 97.20000000000006, + "813": 90.30000000000003, + "814": 86.30000000000003, + "815": 77.24999999999996, + "816": 83.30000000000003, + "817": 77.75000000000009, + "818": 93.20000000000003, + "819": 100.95000000000007, + "820": 98.89999999999999, + "821": 55.249999999999986, + "822": 93.65, + "823": 63.750000000000014, + "824": 63.29999999999987, + "825": 79.44999999999999, + "826": 98.99999999999999, + "827": 79.39999999999998, + "828": 98.95000000000019, + "829": 88.30000000000001, + "830": 67.74999999999991, + "831": 103.65000000000026, + "832": 71.14999999999999, + "833": 32.14999999999998, + "834": 76.8000000000001, + "835": 71.40000000000005, + "836": 100.40000000000012, + "837": 81.90000000000009, + "838": 88.25000000000003, + "839": 107.0, + "840": 94.65000000000013, + "841": 83.7, + "842": 92.00000000000003, + "843": 74.2, + "844": 83.30000000000001, + "845": 42.80000000000003, + "846": 90.00000000000007, + "847": 91.45000000000007, + "848": 4.449999999999992, + "849": 62.89999999999994, + "850": 87.20000000000003, + "851": 104.14999999999999, + "852": 101.15000000000006, + "853": 61.39999999999993, + "854": 78.85000000000002, + "855": 92.10000000000005, + "856": 43.84999999999989, + "857": 76.84999999999997, + "858": 63.94999999999994, + "859": 88.90000000000018, + "860": 49.64999999999999, + "861": 98.45000000000003, + "862": 84.90000000000002, + "863": 80.0, + "864": 55.49999999999997, + "865": 75.39999999999992, + "866": 78.95000000000005, + "867": 65.04999999999998, + "868": 99.4, + "869": 72.09999999999995, + "870": 92.15000000000006, + "871": 75.70000000000007, + "872": 82.40000000000002, + "873": 61.59999999999994, + "874": 62.549999999999905, + "875": 82.55000000000003, + "876": 93.85000000000007, + "877": 92.50000000000001, + "878": 68.14999999999999, + "879": 96.55000000000004, + "880": 98.59999999999997, + "881": 92.24999999999994, + "882": 46.25000000000004, + "883": 94.50000000000003, + "884": 84.79999999999998, + "885": 58.65000000000004, + "886": 89.10000000000004, + "887": 81.20000000000007, + "888": 52.29999999999995, + "889": 89.30000000000003, + "890": 79.65000000000003, + "891": 75.45000000000002, + "892": 94.40000000000009, + "893": 66.04999999999997, + "894": 95.65000000000005, + "895": 83.00000000000004, + "896": 60.899999999999956, + "897": 90.50000000000007, + "898": 83.65000000000012, + "899": 82.10000000000002, + "900": 72.94999999999995, + "901": 78.00000000000007, + "902": 81.6, + "903": 81.20000000000003, + "904": 79.15000000000006, + "905": -13.099999999999985, + "906": 73.15000000000008, + "907": 87.44999999999999, + "908": 98.40000000000008, + "909": 77.04999999999998, + "910": 90.95000000000002, + "911": 71.94999999999995, + "912": 94.05000000000001, + "913": 79.19999999999999, + "914": 89.05, + "915": 74.69999999999993, + "916": 78.20000000000002, + "917": 85.69999999999987, + "918": 85.49999999999997, + "919": 80.09999999999997, + "920": 88.60000000000014, + "921": 73.1, + "922": 77.64999999999998, + "923": 68.44999999999992, + "924": 66.19999999999995, + "925": 76.75, + "926": 78.80000000000005, + "927": 76.09999999999994, + "928": 77.10000000000001, + "929": 85.64999999999999, + "930": 80.89999999999998, + "931": 77.74999999999999, + "932": 90.55000000000007, + "933": 90.30000000000005, + "934": 82.30000000000003, + "935": 75.70000000000002, + "936": 71.84999999999997, + "937": 91.40000000000008, + "938": 93.89999999999995, + "939": 81.39999999999998, + "940": 88.64999999999995, + "941": 74.04999999999998, + "942": 86.29999999999998, + "943": 99.35000000000008, + "944": 69.24999999999991, + "945": 82.75, + "946": 76.80000000000004, + "947": 82.15000000000005, + "948": 84.64999999999995, + "949": 72.09999999999998, + "950": 94.60000000000007, + "951": 85.55, + "952": 80.00000000000003, + "953": 83.80000000000003, + "954": 89.85000000000001, + "955": 94.65000000000005, + "956": 53.699999999999896, + "957": 67.89999999999996, + "958": 72.49999999999997, + "959": 85.85, + "960": 94.2, + "961": 86.0500000000001, + "962": 94.6, + "963": 80.94999999999996, + "964": 91.09999999999995, + "965": 77.39999999999993, + "966": 84.85, + "967": 74.94999999999999, + "968": 93.7, + "969": -73.14999999999999, + "970": 85.00000000000011, + "971": 90.40000000000008, + "972": 79.64999999999999, + "973": 92.45000000000005, + "974": 76.49999999999999, + "975": 89.39999999999998, + "976": 89.6500000000001, + "977": 87.55000000000014, + "978": 82.00000000000013, + "979": 82.74999999999997, + "980": 85.24999999999999, + "981": 86.60000000000002, + "982": 82.15000000000009, + "983": 82.64999999999999, + "984": 98.0, + "985": 93.20000000000014, + "986": 84.40000000000013, + "987": 105.50000000000004, + "988": 87.70000000000009, + "989": 71.45000000000009, + "990": 89.80000000000004, + "991": 90.90000000000012, + "992": 72.94999999999999, + "993": 80.55, + "994": 35.000000000000014, + "995": 74.55000000000003, + "996": 71.15, + "997": 97.70000000000016, + "998": 72.50000000000003, + "999": 78.49999999999996, + "1000": 84.69999999999993 + } +} \ No newline at end of file diff --git a/benchmark/results/v3/v3.2.0/session_metadata/2.json b/benchmark/results/v3/v3.2.0/session_metadata/2.json new file mode 100644 index 00000000..e48c34b9 --- /dev/null +++ b/benchmark/results/v3/v3.2.0/session_metadata/2.json @@ -0,0 +1,1009 @@ +{ + "total_episodes": 1001, + "total_time_steps": 128000, + "total_s": 1562.794945, + "s_per_step": 0.04883734203125, + "s_per_100_steps_10_nodes": 4.883734203125, + "total_reward_per_episode": { + "1": -23.94999999999995, + "2": -49.90000000000008, + "3": -22.449999999999953, + "4": -59.45000000000012, + "5": -34.400000000000034, + "6": -46.650000000000134, + "7": -62.400000000000105, + "8": -19.099999999999962, + "9": -62.25000000000007, + "10": -29.04999999999994, + "11": -94.5, + "12": -23.149999999999952, + "13": -18.24999999999997, + "14": -28.699999999999985, + "15": -15.349999999999975, + "16": -24.099999999999998, + "17": -14.59999999999998, + "18": -19.549999999999986, + "19": -65.85000000000001, + "20": -90.90000000000008, + "21": -17.799999999999965, + "22": -19.249999999999954, + "23": -28.24999999999999, + "24": -18.34999999999997, + "25": -40.45000000000013, + "26": -9.849999999999994, + "27": -18.649999999999952, + "28": -57.55000000000009, + "29": -21.34999999999996, + "30": -92.2, + "31": -4.099999999999985, + "32": -44.85000000000006, + "33": -14.449999999999982, + "34": -22.099999999999955, + "35": -0.3999999999999757, + "36": -28.19999999999997, + "37": -24.04999999999997, + "38": -35.399999999999984, + "39": -5.299999999999976, + "40": -18.44999999999997, + "41": -18.19999999999997, + "42": -21.749999999999957, + "43": -13.299999999999985, + "44": -22.399999999999967, + "45": -68.55000000000007, + "46": -14.449999999999983, + "47": -14.449999999999985, + "48": -16.84999999999998, + "49": -14.299999999999983, + "50": -21.14999999999996, + "51": -10.149999999999988, + "52": -21.149999999999956, + "53": -69.45000000000009, + "54": -21.34999999999996, + "55": -22.749999999999954, + "56": -65.65000000000009, + "57": -19.04999999999996, + "58": -5.400000000000012, + "59": -6.549999999999999, + "60": -11.250000000000037, + "61": -22.79999999999995, + "62": 3.5500000000000247, + "63": -101.4, + "64": -26.800000000000022, + "65": -21.799999999999958, + "66": -0.34999999999999876, + "67": -19.549999999999965, + "68": -14.799999999999985, + "69": -11.299999999999985, + "70": -77.45, + "71": -2.3499999999999863, + "72": -18.599999999999973, + "73": -59.05000000000015, + "74": 3.1500000000000474, + "75": -16.149999999999974, + "76": -45.14999999999997, + "77": -20.24999999999996, + "78": -2.150000000000001, + "79": -14.299999999999981, + "80": -19.04999999999996, + "81": -82.14999999999984, + "82": -12.24999999999998, + "83": -18.04999999999997, + "84": -103.04999999999998, + "85": -87.44999999999999, + "86": -11.399999999999988, + "87": -16.149999999999974, + "88": -12.899999999999986, + "89": -77.69999999999989, + "90": -100.7, + "91": -13.299999999999951, + "92": -19.64999999999996, + "93": -51.80000000000011, + "94": 6.7, + "95": -54.900000000000006, + "96": -19.199999999999967, + "97": -14.949999999999985, + "98": -80.6, + "99": -21.599999999999955, + "100": 2.1000000000000387, + "101": -20.449999999999946, + "102": -2.0499999999999936, + "103": -17.69999999999997, + "104": 18.50000000000001, + "105": 4.95000000000006, + "106": -89.80000000000001, + "107": -17.999999999999968, + "108": -23.599999999999948, + "109": -13.149999999999984, + "110": 1.9000000000000068, + "111": -18.29999999999997, + "112": -18.04999999999998, + "113": -23.29999999999995, + "114": -11.149999999999975, + "115": -19.349999999999966, + "116": -11.449999999999992, + "117": -10.199999999999996, + "118": -13.84999999999997, + "119": -46.70000000000005, + "120": -10.099999999999996, + "121": -0.3499999999999561, + "122": -7.950000000000016, + "123": -81.99999999999999, + "124": -47.75, + "125": -27.699999999999946, + "126": -16.049999999999983, + "127": -96.05000000000004, + "128": -9.749999999999991, + "129": -15.799999999999951, + "130": -19.699999999999964, + "131": 21.250000000000068, + "132": -54.30000000000002, + "133": -22.250000000000036, + "134": -16.00000000000004, + "135": 30.449999999999783, + "136": -50.05000000000005, + "137": 1.1000000000000034, + "138": -11.599999999999993, + "139": -68.59999999999997, + "140": -11.299999999999981, + "141": -12.649999999999995, + "142": -41.95000000000004, + "143": 3.399999999999988, + "144": -103.59999999999998, + "145": -78.95000000000002, + "146": 8.050000000000026, + "147": 35.2999999999999, + "148": 12.45000000000006, + "149": -12.649999999999991, + "150": 33.24999999999973, + "151": -15.29999999999998, + "152": 45.2999999999998, + "153": 46.7499999999999, + "154": 6.049999999999996, + "155": -19.949999999999964, + "156": -43.90000000000001, + "157": -77.74999999999996, + "158": -85.60000000000001, + "159": -8.100000000000055, + "160": 11.400000000000048, + "161": 23.8999999999999, + "162": -10.24999999999999, + "163": -12.149999999999997, + "164": -21.650000000000002, + "165": 0.9000000000000052, + "166": 32.19999999999984, + "167": 34.64999999999988, + "168": -56.70000000000009, + "169": -14.249999999999984, + "170": 4.050000000000061, + "171": -2.4999999999999574, + "172": -6.049999999999995, + "173": 15.100000000000058, + "174": -0.6999999999999624, + "175": -41.900000000000006, + "176": 15.400000000000032, + "177": 28.149999999999988, + "178": 5.00000000000004, + "179": 54.54999999999982, + "180": 11.150000000000034, + "181": -38.99999999999996, + "182": -7.899999999999989, + "183": 35.499999999999915, + "184": -2.3500000000000694, + "185": 38.39999999999983, + "186": -4.749999999999997, + "187": 62.84999999999978, + "188": -66.59999999999997, + "189": 6.900000000000055, + "190": 7.100000000000053, + "191": 38.69999999999987, + "192": 22.050000000000075, + "193": 11.200000000000026, + "194": -29.450000000000045, + "195": 19.400000000000027, + "196": -46.59999999999997, + "197": 2.9000000000000057, + "198": 5.349999999999998, + "199": 95.50000000000016, + "200": 14.799999999999992, + "201": -43.35000000000001, + "202": -9.69999999999999, + "203": 46.79999999999993, + "204": 27.600000000000037, + "205": -6.849999999999995, + "206": 10.800000000000017, + "207": 5.000000000000054, + "208": -36.49999999999997, + "209": 11.599999999999923, + "210": 68.69999999999972, + "211": 50.79999999999981, + "212": 27.29999999999995, + "213": 59.74999999999975, + "214": 45.199999999999775, + "215": -40.55000000000008, + "216": 12.499999999999911, + "217": 10.150000000000016, + "218": 35.69999999999986, + "219": 68.44999999999989, + "220": -9.899999999999993, + "221": 53.89999999999991, + "222": 20.800000000000043, + "223": 19.499999999999968, + "224": 10.300000000000033, + "225": 55.14999999999975, + "226": -77.85, + "227": 94.45000000000013, + "228": 10.900000000000016, + "229": 81.30000000000011, + "230": 51.999999999999815, + "231": 40.599999999999845, + "232": 57.79999999999981, + "233": 40.34999999999978, + "234": 67.74999999999991, + "235": 43.79999999999982, + "236": 8.249999999999982, + "237": 21.650000000000038, + "238": -16.550000000000082, + "239": 27.69999999999988, + "240": 63.699999999999875, + "241": 81.29999999999977, + "242": -0.1000000000000445, + "243": 102.45000000000016, + "244": 2.799999999999963, + "245": 12.500000000000007, + "246": -13.249999999999993, + "247": 29.049999999999958, + "248": 27.849999999999966, + "249": 39.94999999999989, + "250": 15.250000000000064, + "251": 32.04999999999983, + "252": -10.150000000000006, + "253": -25.750000000000078, + "254": 17.449999999999967, + "255": 16.400000000000027, + "256": 40.25000000000001, + "257": 42.59999999999985, + "258": 57.09999999999992, + "259": 4.850000000000008, + "260": 72.34999999999994, + "261": 96.65000000000016, + "262": -7.4500000000000055, + "263": 77.84999999999985, + "264": 97.05000000000021, + "265": 93.30000000000013, + "266": 23.899999999999977, + "267": 51.49999999999994, + "268": 55.899999999999785, + "269": 18.800000000000047, + "270": 104.05000000000013, + "271": 82.89999999999989, + "272": 56.349999999999845, + "273": -47.49999999999999, + "274": 77.99999999999997, + "275": 73.14999999999999, + "276": 74.09999999999995, + "277": 39.199999999999854, + "278": 98.5000000000002, + "279": 48.949999999999854, + "280": 19.95000000000007, + "281": 81.75000000000006, + "282": 59.24999999999983, + "283": 80.60000000000008, + "284": 32.69999999999988, + "285": 84.85000000000002, + "286": 78.20000000000016, + "287": 39.749999999999964, + "288": 51.89999999999977, + "289": 62.64999999999981, + "290": 78.80000000000011, + "291": 95.4000000000001, + "292": 87.5, + "293": 61.54999999999989, + "294": 100.09999999999975, + "295": 97.60000000000015, + "296": 97.80000000000013, + "297": 34.84999999999997, + "298": 53.69999999999983, + "299": 47.20000000000002, + "300": 46.69999999999986, + "301": -28.450000000000014, + "302": 34.64999999999996, + "303": 73.39999999999985, + "304": 33.65000000000004, + "305": 45.249999999999936, + "306": 58.399999999999906, + "307": 33.500000000000036, + "308": 86.89999999999998, + "309": 71.90000000000005, + "310": -3.849999999999973, + "311": 55.84999999999991, + "312": 27.249999999999964, + "313": 104.65000000000026, + "314": 60.64999999999993, + "315": 33.24999999999982, + "316": 80.64999999999982, + "317": 54.29999999999978, + "318": 86.7500000000001, + "319": 83.85000000000002, + "320": 103.70000000000022, + "321": 86.60000000000001, + "322": 84.10000000000001, + "323": 92.30000000000004, + "324": 80.64999999999978, + "325": 78.24999999999997, + "326": 73.49999999999991, + "327": 76.50000000000016, + "328": 75.30000000000001, + "329": 67.54999999999983, + "330": 25.149999999999967, + "331": 70.90000000000005, + "332": 85.65000000000008, + "333": 31.550000000000008, + "334": 44.39999999999997, + "335": 86.0999999999999, + "336": 76.24999999999997, + "337": 75.29999999999983, + "338": 72.14999999999988, + "339": 44.64999999999984, + "340": 98.70000000000013, + "341": 51.40000000000001, + "342": 92.90000000000012, + "343": 55.19999999999993, + "344": 91.70000000000017, + "345": 84.39999999999992, + "346": 57.85000000000003, + "347": 74.4499999999999, + "348": 64.14999999999996, + "349": 59.10000000000002, + "350": 91.80000000000005, + "351": 87.00000000000001, + "352": 77.4, + "353": 58.84999999999995, + "354": 34.64999999999998, + "355": -13.350000000000028, + "356": 66.69999999999992, + "357": 92.80000000000014, + "358": 26.150000000000016, + "359": 50.09999999999994, + "360": 68.90000000000003, + "361": -2.5000000000000266, + "362": 76.94999999999985, + "363": 52.34999999999998, + "364": -24.150000000000013, + "365": 66.19999999999982, + "366": 65.19999999999996, + "367": 82.99999999999984, + "368": 89.65000000000018, + "369": 91.79999999999977, + "370": 35.89999999999997, + "371": 94.75000000000016, + "372": 44.19999999999991, + "373": 72.5, + "374": 60.14999999999987, + "375": 73.99999999999994, + "376": 39.64999999999995, + "377": 106.25000000000021, + "378": 94.7499999999998, + "379": 89.25000000000009, + "380": 74.39999999999995, + "381": 55.84999999999986, + "382": 12.049999999999995, + "383": 59.549999999999905, + "384": 41.249999999999886, + "385": 69.09999999999994, + "386": 87.15000000000008, + "387": 71.20000000000022, + "388": 56.249999999999964, + "389": 85.09999999999981, + "390": 80.45000000000002, + "391": 84.50000000000003, + "392": 90.15000000000009, + "393": 57.34999999999978, + "394": 73.60000000000014, + "395": 75.59999999999987, + "396": 61.59999999999992, + "397": 73.29999999999998, + "398": 84.15000000000003, + "399": -17.650000000000013, + "400": 87.30000000000011, + "401": 17.25000000000002, + "402": 82.54999999999987, + "403": 63.94999999999984, + "404": 92.10000000000015, + "405": 82.65000000000006, + "406": 80.35000000000004, + "407": 42.749999999999964, + "408": 73.04999999999998, + "409": 101.2000000000001, + "410": 86.59999999999992, + "411": 33.20000000000009, + "412": 69.49999999999984, + "413": 104.3000000000002, + "414": 39.549999999999955, + "415": 90.9000000000002, + "416": 101.05000000000018, + "417": 94.05000000000018, + "418": 79.60000000000004, + "419": 99.90000000000002, + "420": 96.00000000000018, + "421": 104.8500000000002, + "422": 47.99999999999991, + "423": 96.09999999999974, + "424": 33.89999999999998, + "425": 36.94999999999998, + "426": 23.199999999999886, + "427": 54.5499999999999, + "428": 106.05000000000025, + "429": 75.84999999999997, + "430": 59.399999999999956, + "431": 94.90000000000015, + "432": 68.39999999999993, + "433": 45.04999999999996, + "434": 75.64999999999999, + "435": 87.65000000000005, + "436": 66.64999999999993, + "437": 85.90000000000009, + "438": 80.25000000000004, + "439": 97.55000000000015, + "440": 77.60000000000002, + "441": 91.35000000000001, + "442": 86.89999999999996, + "443": 51.09999999999994, + "444": 45.69999999999996, + "445": 47.649999999999906, + "446": 41.35000000000009, + "447": 75.44999999999995, + "448": 34.60000000000001, + "449": 92.54999999999976, + "450": 88.99999999999999, + "451": 30.499999999999986, + "452": 14.849999999999962, + "453": 33.29999999999994, + "454": 89.15000000000012, + "455": 55.24999999999989, + "456": 93.44999999999983, + "457": 74.10000000000004, + "458": 82.50000000000009, + "459": 68.60000000000007, + "460": 72.3499999999999, + "461": 85.49999999999996, + "462": 69.39999999999982, + "463": 82.10000000000007, + "464": -4.749999999999981, + "465": 87.80000000000001, + "466": 60.49999999999993, + "467": 93.0499999999998, + "468": 91.10000000000016, + "469": 30.799999999999972, + "470": -5.299999999999995, + "471": 57.699999999999896, + "472": 29.299999999999947, + "473": 83.90000000000009, + "474": -16.349999999999973, + "475": 64.99999999999989, + "476": 52.049999999999955, + "477": 86.0499999999998, + "478": 97.70000000000014, + "479": 83.9999999999998, + "480": 60.99999999999989, + "481": 50.94999999999992, + "482": 91.20000000000009, + "483": 22.95000000000002, + "484": 46.24999999999988, + "485": 102.05000000000013, + "486": 94.45000000000014, + "487": 105.55000000000008, + "488": 72.44999999999985, + "489": 68.79999999999994, + "490": 71.09999999999984, + "491": 92.19999999999978, + "492": 35.35000000000004, + "493": 82.39999999999998, + "494": -73.30000000000001, + "495": 89.19999999999975, + "496": 46.14999999999994, + "497": 55.649999999999906, + "498": 19.45, + "499": 58.44999999999991, + "500": 11.350000000000058, + "501": 41.24999999999997, + "502": 44.50000000000001, + "503": 90.04999999999994, + "504": 94.8499999999998, + "505": 103.24999999999976, + "506": 30.24999999999979, + "507": 55.94999999999997, + "508": 10.200000000000045, + "509": 90.99999999999977, + "510": 75.19999999999976, + "511": 87.64999999999978, + "512": 87.39999999999978, + "513": 78.65, + "514": 71.14999999999984, + "515": 86.4499999999998, + "516": 50.049999999999905, + "517": 96.64999999999974, + "518": 19.60000000000002, + "519": 51.299999999999784, + "520": 87.79999999999976, + "521": 92.89999999999976, + "522": 48.54999999999996, + "523": 75.24999999999999, + "524": 97.75000000000001, + "525": 68.49999999999986, + "526": 91.09999999999974, + "527": 91.19999999999979, + "528": 109.60000000000007, + "529": 83.04999999999981, + "530": 97.24999999999983, + "531": 97.39999999999975, + "532": 9.650000000000027, + "533": 90.34999999999977, + "534": 38.949999999999996, + "535": 92.20000000000012, + "536": 94.99999999999991, + "537": -49.05000000000001, + "538": 71.94999999999996, + "539": -9.999999999999984, + "540": 12.65000000000001, + "541": 80.34999999999998, + "542": 101.50000000000018, + "543": 29.19999999999999, + "544": 93.34999999999994, + "545": 111.00000000000026, + "546": 60.0499999999999, + "547": 69.80000000000001, + "548": 40.25000000000002, + "549": 98.04999999999976, + "550": 92.85000000000016, + "551": 48.74999999999994, + "552": 82.90000000000002, + "553": 26.09999999999998, + "554": 101.35000000000011, + "555": 54.79999999999994, + "556": 104.40000000000023, + "557": 100.19999999999975, + "558": 69.34999999999994, + "559": 97.00000000000014, + "560": 65.9499999999999, + "561": 102.74999999999974, + "562": 75.95000000000002, + "563": 97.00000000000016, + "564": 89.60000000000011, + "565": 93.84999999999977, + "566": 101.75000000000018, + "567": 52.649999999999814, + "568": 98.54999999999977, + "569": 97.2500000000001, + "570": 102.14999999999976, + "571": 105.7000000000002, + "572": 109.09999999999995, + "573": -75.50000000000004, + "574": -14.35000000000003, + "575": 93.9000000000001, + "576": 95.54999999999977, + "577": 92.59999999999981, + "578": 82.94999999999983, + "579": -0.4999999999999982, + "580": 46.9999999999999, + "581": 55.09999999999993, + "582": 97.89999999999978, + "583": 104.14999999999976, + "584": 80.40000000000003, + "585": -2.6500000000000106, + "586": 96.60000000000012, + "587": 102.49999999999989, + "588": 67.84999999999991, + "589": 98.19999999999992, + "590": 93.8, + "591": 102.80000000000018, + "592": 96.9000000000001, + "593": 98.95000000000014, + "594": 111.30000000000021, + "595": 65.14999999999974, + "596": 58.7999999999998, + "597": 54.5999999999999, + "598": -34.39999999999996, + "599": -2.6999999999999753, + "600": 104.45, + "601": 53.249999999999815, + "602": 103.60000000000005, + "603": 107.05000000000021, + "604": 85.90000000000006, + "605": 23.549999999999997, + "606": 35.0499999999999, + "607": 100.00000000000014, + "608": 99.89999999999975, + "609": 84.14999999999982, + "610": 91.99999999999979, + "611": 91.45000000000013, + "612": 105.99999999999996, + "613": 95.45000000000006, + "614": 101.94999999999986, + "615": 87.84999999999998, + "616": 101.99999999999973, + "617": 73.74999999999983, + "618": 59.39999999999977, + "619": 98.59999999999978, + "620": 106.40000000000022, + "621": 107.30000000000024, + "622": 60.749999999999915, + "623": 97.35000000000012, + "624": 48.89999999999996, + "625": -9.249999999999988, + "626": 46.94999999999994, + "627": -8.250000000000005, + "628": 66.99999999999989, + "629": 101.39999999999976, + "630": 56.7499999999999, + "631": 104.9000000000002, + "632": 39.099999999999945, + "633": 37.199999999999996, + "634": 98.10000000000016, + "635": 108.15000000000015, + "636": 109.9000000000002, + "637": 62.59999999999994, + "638": 69.34999999999975, + "639": 96.10000000000021, + "640": 8.99999999999999, + "641": 102.6000000000002, + "642": 10.700000000000001, + "643": 102.70000000000022, + "644": 88.39999999999975, + "645": 107.34999999999977, + "646": 24.549999999999986, + "647": 80.34999999999978, + "648": 55.09999999999996, + "649": 23.85, + "650": 101.85000000000016, + "651": 65.49999999999996, + "652": 99.50000000000017, + "653": 88.45000000000007, + "654": 103.10000000000021, + "655": 95.39999999999999, + "656": 94.60000000000012, + "657": 42.099999999999966, + "658": 75.64999999999992, + "659": 93.60000000000001, + "660": 85.59999999999998, + "661": 100.40000000000002, + "662": 91.19999999999978, + "663": 55.649999999999835, + "664": 72.54999999999997, + "665": 52.64999999999994, + "666": 97.94999999999978, + "667": 95.40000000000008, + "668": 102.15000000000008, + "669": 38.34999999999995, + "670": 95.60000000000016, + "671": 93.19999999999978, + "672": 83.30000000000007, + "673": 53.699999999999946, + "674": 78.49999999999983, + "675": 52.199999999999925, + "676": 100.54999999999977, + "677": 99.60000000000008, + "678": 103.3000000000002, + "679": 71.99999999999989, + "680": 75.20000000000007, + "681": 98.49999999999976, + "682": 103.20000000000013, + "683": 94.20000000000007, + "684": 50.39999999999977, + "685": 55.549999999999955, + "686": 95.85000000000007, + "687": 101.64999999999986, + "688": 38.099999999999945, + "689": 95.54999999999995, + "690": 94.25000000000014, + "691": 97.59999999999975, + "692": 96.19999999999976, + "693": 94.75000000000013, + "694": 60.8999999999999, + "695": 63.64999999999982, + "696": 42.04999999999994, + "697": 102.80000000000018, + "698": 79.50000000000001, + "699": 24.10000000000001, + "700": 78.44999999999979, + "701": 82.85000000000004, + "702": 42.94999999999994, + "703": 95.44999999999997, + "704": 14.949999999999973, + "705": 75.65, + "706": 94.15000000000013, + "707": 98.94999999999983, + "708": 97.74999999999977, + "709": 103.50000000000016, + "710": 99.69999999999978, + "711": 104.44999999999973, + "712": 51.249999999999915, + "713": 101.99999999999973, + "714": 69.49999999999987, + "715": 94.60000000000016, + "716": 55.349999999999895, + "717": 68.19999999999978, + "718": 106.70000000000022, + "719": 55.69999999999992, + "720": 96.85000000000015, + "721": 51.499999999999936, + "722": 66.79999999999997, + "723": -25.849999999999962, + "724": 5.400000000000026, + "725": 17.449999999999996, + "726": 100.34999999999977, + "727": 59.999999999999936, + "728": 82.80000000000005, + "729": 100.20000000000019, + "730": 98.69999999999975, + "731": 92.65000000000009, + "732": 64.04999999999974, + "733": 90.54999999999995, + "734": 42.79999999999994, + "735": 65.14999999999992, + "736": 100.74999999999974, + "737": 94.59999999999981, + "738": 96.64999999999978, + "739": 83.99999999999984, + "740": 86.19999999999973, + "741": 80.34999999999982, + "742": 102.05000000000011, + "743": 76.69999999999983, + "744": 92.54999999999978, + "745": 21.999999999999943, + "746": 53.99999999999976, + "747": 101.24999999999974, + "748": 99.40000000000013, + "749": 97.24999999999976, + "750": 97.70000000000006, + "751": -44.60000000000012, + "752": 109.54999999999991, + "753": 93.29999999999978, + "754": 85.64999999999979, + "755": 50.199999999999974, + "756": 10.45000000000006, + "757": 99.99999999999974, + "758": 97.74999999999974, + "759": 93.59999999999974, + "760": 62.949999999999875, + "761": 60.39999999999989, + "762": 100.39999999999976, + "763": 103.04999999999974, + "764": 101.24999999999974, + "765": 82.39999999999982, + "766": 106.89999999999976, + "767": -25.600000000000044, + "768": 92.19999999999976, + "769": 100.74999999999989, + "770": 99.19999999999975, + "771": 102.65000000000019, + "772": 103.89999999999975, + "773": -4.300000000000005, + "774": 100.14999999999978, + "775": 11.500000000000014, + "776": 100.14999999999975, + "777": 104.44999999999978, + "778": 57.099999999999916, + "779": 77.55000000000007, + "780": -43.90000000000004, + "781": 98.69999999999979, + "782": 102.19999999999976, + "783": 94.49999999999993, + "784": 99.54999999999976, + "785": 102.04999999999977, + "786": 96.04999999999977, + "787": 77.24999999999983, + "788": 100.80000000000015, + "789": 96.95000000000006, + "790": 61.099999999999866, + "791": 94.74999999999977, + "792": 96.44999999999978, + "793": 79.29999999999984, + "794": 91.30000000000007, + "795": 56.59999999999992, + "796": 89.09999999999978, + "797": 104.99999999999982, + "798": 51.79999999999992, + "799": 98.50000000000004, + "800": 104.59999999999985, + "801": 6.400000000000054, + "802": 97.15000000000005, + "803": 97.84999999999977, + "804": 94.14999999999976, + "805": 48.14999999999977, + "806": 104.24999999999976, + "807": 98.14999999999976, + "808": 101.34999999999977, + "809": 97.59999999999977, + "810": 99.55000000000018, + "811": 97.29999999999977, + "812": 98.29999999999974, + "813": 29.349999999999973, + "814": 78.39999999999985, + "815": 103.49999999999972, + "816": 87.10000000000005, + "817": 97.94999999999975, + "818": 104.49999999999976, + "819": 102.3999999999999, + "820": 11.950000000000015, + "821": 93.39999999999976, + "822": 84.69999999999975, + "823": 84.14999999999982, + "824": 95.79999999999978, + "825": 97.44999999999983, + "826": 96.79999999999973, + "827": 84.09999999999977, + "828": 50.04999999999992, + "829": 97.5499999999998, + "830": 100.69999999999979, + "831": 101.44999999999975, + "832": 104.34999999999974, + "833": 101.99999999999984, + "834": 86.04999999999988, + "835": 100.44999999999976, + "836": 99.19999999999976, + "837": 101.99999999999974, + "838": 99.1999999999998, + "839": 99.49999999999976, + "840": 102.8999999999999, + "841": 98.99999999999974, + "842": 105.29999999999987, + "843": 99.59999999999975, + "844": 95.74999999999974, + "845": 100.39999999999985, + "846": 48.149999999999935, + "847": 101.29999999999976, + "848": 101.74999999999976, + "849": 101.09999999999994, + "850": 99.29999999999978, + "851": 104.39999999999975, + "852": 103.34999999999977, + "853": 97.79999999999977, + "854": 100.24999999999977, + "855": 109.09999999999977, + "856": 99.99999999999973, + "857": 102.74999999999976, + "858": 102.59999999999975, + "859": 105.49999999999972, + "860": 98.59999999999978, + "861": -82.19999999999999, + "862": 109.34999999999981, + "863": 109.99999999999999, + "864": 102.29999999999983, + "865": 105.39999999999974, + "866": 52.64999999999995, + "867": -86.0, + "868": 102.39999999999976, + "869": 101.59999999999977, + "870": 100.14999999999974, + "871": 94.94999999999978, + "872": 104.39999999999975, + "873": -77.1, + "874": 115.05000000000001, + "875": 106.19999999999973, + "876": 103.19999999999973, + "877": 107.99999999999973, + "878": -72.1, + "879": -0.39999999999995595, + "880": 104.29999999999976, + "881": 103.0499999999998, + "882": 67.99999999999982, + "883": 108.29999999999974, + "884": -3.79999999999999, + "885": 101.64999999999989, + "886": 32.600000000000016, + "887": 106.89999999999974, + "888": 101.54999999999978, + "889": 107.99999999999973, + "890": 105.59999999999975, + "891": 100.94999999999973, + "892": 103.84999999999972, + "893": 106.09999999999974, + "894": 25.699999999999875, + "895": 106.99999999999987, + "896": 104.14999999999978, + "897": 105.59999999999972, + "898": 101.74999999999976, + "899": 102.64999999999972, + "900": 103.64999999999975, + "901": -38.89999999999997, + "902": -76.25, + "903": 69.64999999999986, + "904": 45.94999999999985, + "905": -79.6, + "906": 112.44999999999997, + "907": 99.24999999999976, + "908": 104.04999999999973, + "909": 103.19999999999976, + "910": 101.99999999999977, + "911": 108.34999999999987, + "912": 105.49999999999973, + "913": 104.09999999999977, + "914": -22.15, + "915": 104.79999999999974, + "916": 104.24999999999973, + "917": 103.84999999999972, + "918": 81.94999999999978, + "919": -73.30000000000001, + "920": 109.65000000000002, + "921": 103.69999999999976, + "922": 100.39999999999978, + "923": -54.999999999999964, + "924": 101.94999999999976, + "925": 106.14999999999972, + "926": -75.19999999999999, + "927": -1.7499999999999891, + "928": 96.09999999999981, + "929": 112.3499999999998, + "930": 102.64999999999972, + "931": 102.94999999999973, + "932": 105.34999999999974, + "933": 68.34999999999972, + "934": -72.8, + "935": 106.09999999999984, + "936": 101.24999999999976, + "937": -34.250000000000085, + "938": 103.54999999999977, + "939": 98.79999999999977, + "940": 105.09999999999974, + "941": 107.29999999999973, + "942": 107.39999999999978, + "943": 84.49999999999983, + "944": 102.24999999999974, + "945": 45.99999999999982, + "946": 103.59999999999974, + "947": 78.94999999999987, + "948": 107.34999999999971, + "949": 93.84999999999978, + "950": -61.25000000000002, + "951": 110.14999999999978, + "952": 98.64999999999975, + "953": 101.99999999999977, + "954": 105.49999999999973, + "955": 104.69999999999997, + "956": 77.99999999999973, + "957": -70.7, + "958": 104.99999999999973, + "959": 76.84999999999984, + "960": -65.85000000000002, + "961": 99.89999999999976, + "962": 102.69999999999978, + "963": 95.44999999999978, + "964": 111.44999999999978, + "965": 100.14999999999972, + "966": 102.34999999999974, + "967": 104.29999999999973, + "968": 103.84999999999977, + "969": 104.44999999999973, + "970": 87.19999999999978, + "971": 101.04999999999988, + "972": 79.24999999999974, + "973": 82.5499999999998, + "974": 102.24999999999976, + "975": -37.200000000000074, + "976": 73.39999999999985, + "977": 104.49999999999976, + "978": 101.09999999999975, + "979": 101.74999999999973, + "980": 79.19999999999972, + "981": 107.29999999999973, + "982": 102.24999999999977, + "983": 103.39999999999974, + "984": 96.4999999999998, + "985": 106.24999999999974, + "986": 91.44999999999979, + "987": 91.34999999999977, + "988": 104.19999999999975, + "989": -70.5, + "990": 99.64999999999976, + "991": 104.29999999999976, + "992": -68.7, + "993": -9.149999999999995, + "994": 104.99999999999974, + "995": 100.54999999999977, + "996": 105.54999999999987, + "997": 103.29999999999976, + "998": 105.74999999999974, + "999": 97.59999999999975, + "1000": 103.34999999999978 + } +} \ No newline at end of file diff --git a/benchmark/results/v3/v3.2.0/session_metadata/3.json b/benchmark/results/v3/v3.2.0/session_metadata/3.json new file mode 100644 index 00000000..4e2d845c --- /dev/null +++ b/benchmark/results/v3/v3.2.0/session_metadata/3.json @@ -0,0 +1,1009 @@ +{ + "total_episodes": 1001, + "total_time_steps": 128000, + "total_s": 1582.588555, + "s_per_step": 0.04945589234375, + "s_per_100_steps_10_nodes": 4.945589234375, + "total_reward_per_episode": { + "1": -52.700000000000074, + "2": -12.399999999999986, + "3": -20.949999999999957, + "4": -60.450000000000095, + "5": -11.249999999999998, + "6": -22.099999999999955, + "7": -4.699999999999981, + "8": -48.75000000000002, + "9": -19.94999999999996, + "10": -21.649999999999956, + "11": -33.850000000000044, + "12": -84.89999999999998, + "13": -23.04999999999995, + "14": -68.20000000000002, + "15": -18.049999999999965, + "16": -49.050000000000075, + "17": -26.499999999999932, + "18": -59.8000000000001, + "19": -17.049999999999972, + "20": -44.15000000000004, + "21": -93.85, + "22": -30.19999999999998, + "23": -93.59999999999991, + "24": -21.549999999999955, + "25": -89.1, + "26": -21.14999999999996, + "27": -16.649999999999977, + "28": -18.249999999999968, + "29": -11.499999999999993, + "30": -38.05000000000005, + "31": -16.24999999999997, + "32": -97.15, + "33": -20.999999999999957, + "34": -65.85000000000008, + "35": 4.099999999999987, + "36": -93.79999999999997, + "37": -33.15000000000002, + "38": -63.25000000000018, + "39": 1.35000000000004, + "40": -26.14999999999997, + "41": -0.3999999999999764, + "42": -11.84999999999998, + "43": -13.949999999999982, + "44": -95.69999999999996, + "45": -93.94999999999999, + "46": -12.69999999999998, + "47": 6.850000000000021, + "48": -62.5000000000001, + "49": -14.59999999999998, + "50": -44.600000000000065, + "51": -1.3499999999999843, + "52": -14.299999999999981, + "53": -22.25, + "54": -21.199999999999953, + "55": -14.64999999999998, + "56": -15.799999999999963, + "57": -52.00000000000008, + "58": -46.60000000000006, + "59": -19.199999999999967, + "60": -16.24999999999998, + "61": -89.6, + "62": -20.19999999999997, + "63": -22.349999999999955, + "64": -10.249999999999998, + "65": -10.94999999999999, + "66": -21.09999999999996, + "67": -21.799999999999955, + "68": -14.949999999999982, + "69": -88.45, + "70": -22.39999999999996, + "71": -40.200000000000045, + "72": -51.500000000000085, + "73": -53.599999999999966, + "74": -26.79999999999995, + "75": -14.499999999999986, + "76": -66.45000000000007, + "77": 5.149999999999989, + "78": 2.8499999999999917, + "79": -9.549999999999999, + "80": -27.700000000000042, + "81": -26.700000000000017, + "82": -15.899999999999977, + "83": -59.299999999999955, + "84": -14.099999999999996, + "85": -83.80000000000001, + "86": -17.49999999999996, + "87": -16.599999999999955, + "88": -16.599999999999973, + "89": -23.44999999999995, + "90": -15.69999999999998, + "91": -38.600000000000115, + "92": -22.64999999999996, + "93": -30.499999999999986, + "94": -96.5, + "95": -70.74999999999997, + "96": -2.9499999999999975, + "97": -40.099999999999994, + "98": -20.499999999999964, + "99": -37.20000000000006, + "100": -21.549999999999958, + "101": -7.4000000000000075, + "102": -4.099999999999991, + "103": -101.75000000000003, + "104": 2.400000000000013, + "105": -97.65, + "106": -16.150000000000006, + "107": -58.249999999999936, + "108": -86.85, + "109": -25.199999999999992, + "110": 0.5000000000000107, + "111": -82.29999999999981, + "112": -21.34999999999996, + "113": -55.150000000000084, + "114": -74.65000000000005, + "115": -83.5, + "116": -25.1, + "117": -56.75000000000009, + "118": -12.749999999999984, + "119": -20.29999999999996, + "120": -4.950000000000003, + "121": -10.100000000000005, + "122": -61.99999999999997, + "123": -0.5999999999999976, + "124": -79.20000000000005, + "125": -15.649999999999984, + "126": -15.34999999999998, + "127": 6.4000000000000075, + "128": -10.05, + "129": -17.199999999999974, + "130": -19.649999999999963, + "131": -93.39999999999996, + "132": -70.74999999999997, + "133": -8.0, + "134": 5.900000000000023, + "135": -9.299999999999994, + "136": -13.799999999999976, + "137": -7.350000000000021, + "138": -18.099999999999973, + "139": 16.44999999999999, + "140": -92.54999999999998, + "141": -4.2500000000000036, + "142": -0.8999999999999819, + "143": -20.94999999999996, + "144": -5.0000000000000036, + "145": -81.25, + "146": -70.95000000000002, + "147": -63.00000000000004, + "148": -85.30000000000007, + "149": -69.05000000000001, + "150": 11.849999999999968, + "151": -12.599999999999994, + "152": -14.849999999999985, + "153": -55.84999999999997, + "154": -8.550000000000008, + "155": -20.29999999999996, + "156": -13.59999999999998, + "157": -5.249999999999986, + "158": -8.399999999999983, + "159": -2.199999999999978, + "160": -88.34999999999997, + "161": -81.8, + "162": -83.65, + "163": -7.7499999999999964, + "164": -10.649999999999988, + "165": -90.30000000000013, + "166": -54.14999999999997, + "167": -20.19999999999996, + "168": -11.799999999999983, + "169": -35.050000000000004, + "170": -48.94999999999996, + "171": -66.6, + "172": 30.05000000000001, + "173": -80.05000000000004, + "174": 6.499999999999908, + "175": -85.55000000000001, + "176": -78.30000000000001, + "177": 9.700000000000045, + "178": -83.04999999999995, + "179": -6.439293542825908e-15, + "180": -21.649999999999956, + "181": -8.150000000000002, + "182": -73.10000000000001, + "183": 3.999999999999983, + "184": -78.5, + "185": -77.29999999999995, + "186": -14.199999999999982, + "187": -21.549999999999958, + "188": -69.60000000000002, + "189": -7.949999999999995, + "190": -13.899999999999979, + "191": -18.249999999999964, + "192": 1.3000000000000318, + "193": -4.999999999999987, + "194": -8.649999999999993, + "195": -12.849999999999989, + "196": -6.299999999999991, + "197": 4.700000000000062, + "198": -17.49999999999997, + "199": 6.250000000000008, + "200": -57.499999999999964, + "201": 0.5500000000000398, + "202": -15.449999999999978, + "203": -0.5999999999999763, + "204": -93.69999999999999, + "205": -12.099999999999994, + "206": 1.0500000000000098, + "207": -6.699999999999993, + "208": 59.74999999999974, + "209": -18.09999999999997, + "210": -64.85000000000001, + "211": -0.8999999999999713, + "212": 0.6000000000000199, + "213": -12.09999999999999, + "214": -1.8999999999999853, + "215": -84.85000000000001, + "216": -14.599999999999984, + "217": -27.199999999999985, + "218": -14.149999999999983, + "219": -21.799999999999955, + "220": -70.69999999999995, + "221": 2.9000000000000483, + "222": -8.399999999999993, + "223": -72.60000000000001, + "224": -12.099999999999989, + "225": -14.89999999999997, + "226": -13.249999999999988, + "227": 19.299999999999972, + "228": 34.69999999999985, + "229": -42.55000000000011, + "230": 31.299999999999933, + "231": -61.90000000000002, + "232": -2.24999999999996, + "233": 8.70000000000006, + "234": -24.749999999999968, + "235": -20.099999999999962, + "236": 5.600000000000053, + "237": -10.349999999999994, + "238": 1.9500000000000253, + "239": -1.699999999999972, + "240": 3.4000000000000457, + "241": -35.099999999999994, + "242": 34.44999999999986, + "243": 5.99999999999994, + "244": -14.799999999999983, + "245": -86.14999999999998, + "246": -6.999999999999979, + "247": -48.300000000000075, + "248": -15.350000000000001, + "249": -67.75, + "250": -2.4499999999999904, + "251": -62.2000000000001, + "252": 3.6000000000000156, + "253": -37.85000000000009, + "254": 28.399999999999896, + "255": -31.399999999999984, + "256": -59.94999999999995, + "257": -88.40000000000006, + "258": -82.0, + "259": 19.850000000000062, + "260": -72.40000000000002, + "261": -72.24999999999997, + "262": 11.89999999999998, + "263": 22.65000000000004, + "264": -9.999999999999988, + "265": -74.75, + "266": -86.44999999999997, + "267": -3.6499999999999737, + "268": -65.04999999999995, + "269": -4.550000000000001, + "270": 47.24999999999987, + "271": -2.0999999999999748, + "272": -8.200000000000006, + "273": 24.699999999999957, + "274": -2.7999999999999803, + "275": 3.9999999999999574, + "276": 11.100000000000062, + "277": 27.49999999999994, + "278": -19.549999999999965, + "279": -14.349999999999984, + "280": 18.95, + "281": -60.10000000000007, + "282": 13.600000000000001, + "283": -81.69999999999999, + "284": 54.749999999999744, + "285": 38.54999999999983, + "286": 30.749999999999876, + "287": 17.050000000000033, + "288": 40.949999999999925, + "289": -31.649999999999988, + "290": 22.94999999999995, + "291": 23.999999999999982, + "292": 26.74999999999995, + "293": 12.000000000000043, + "294": -50.60000000000001, + "295": -62.54999999999991, + "296": -2.650000000000011, + "297": -8.950000000000042, + "298": 12.650000000000077, + "299": -8.800000000000013, + "300": -69.75, + "301": 66.25000000000006, + "302": -13.749999999999986, + "303": -32.35, + "304": -5.899999999999976, + "305": -46.10000000000012, + "306": -40.299999999999955, + "307": -38.85000000000002, + "308": -42.550000000000004, + "309": -6.899999999999981, + "310": -12.899999999999995, + "311": -70.24999999999991, + "312": 82.44999999999987, + "313": -100.85, + "314": 2.0999999999999868, + "315": 24.44999999999995, + "316": 1.8000000000000018, + "317": 60.649999999999835, + "318": -12.299999999999994, + "319": 67.09999999999981, + "320": 12.199999999999948, + "321": 9.600000000000058, + "322": -41.45000000000006, + "323": -46.65000000000008, + "324": 42.45000000000004, + "325": -9.200000000000074, + "326": 62.74999999999987, + "327": -38.65000000000001, + "328": -7.0, + "329": 16.19999999999998, + "330": 21.450000000000074, + "331": -17.799999999999972, + "332": 56.649999999999984, + "333": 23.800000000000047, + "334": 1.2500000000000253, + "335": -72.30000000000001, + "336": 42.79999999999991, + "337": -13.599999999999994, + "338": 21.099999999999998, + "339": 10.450000000000077, + "340": -65.89999999999993, + "341": 56.499999999999766, + "342": 27.399999999999864, + "343": 103.7999999999998, + "344": -16.799999999999976, + "345": 27.149999999999924, + "346": -43.49999999999994, + "347": 5.249999999999986, + "348": 9.350000000000005, + "349": 104.45000000000009, + "350": 35.74999999999981, + "351": 63.54999999999974, + "352": 39.99999999999994, + "353": 84.80000000000015, + "354": 78.15000000000018, + "355": -55.3, + "356": 18.40000000000001, + "357": 48.849999999999795, + "358": -40.44999999999999, + "359": 30.500000000000036, + "360": 6.149999999999994, + "361": 79.09999999999995, + "362": 1.5499999999999847, + "363": 23.150000000000016, + "364": 19.100000000000065, + "365": 84.9499999999998, + "366": 16.149999999999995, + "367": 34.19999999999995, + "368": -81.50000000000001, + "369": -70.6, + "370": 88.59999999999985, + "371": 89.04999999999993, + "372": 88.24999999999989, + "373": 68.79999999999974, + "374": -1.7500000000000215, + "375": -45.150000000000006, + "376": 54.4499999999998, + "377": 50.29999999999988, + "378": 32.54999999999995, + "379": -19.750000000000007, + "380": 57.6999999999998, + "381": 43.79999999999988, + "382": 38.29999999999977, + "383": 3.7000000000000512, + "384": -0.30000000000001226, + "385": -0.14999999999996416, + "386": 85.29999999999986, + "387": 103.8500000000002, + "388": 65.74999999999974, + "389": 66.19999999999976, + "390": 34.350000000000016, + "391": 96.64999999999999, + "392": 75.64999999999976, + "393": 41.14999999999987, + "394": 76.49999999999977, + "395": 33.64999999999975, + "396": 54.34999999999991, + "397": 34.35000000000002, + "398": 7.900000000000023, + "399": 89.19999999999986, + "400": 100.09999999999988, + "401": 84.25000000000023, + "402": 104.74999999999983, + "403": 79.99999999999982, + "404": 101.49999999999974, + "405": 62.49999999999974, + "406": 104.55000000000032, + "407": 98.04999999999997, + "408": 38.55, + "409": 28.549999999999926, + "410": 11.549999999999999, + "411": 53.599999999999795, + "412": -41.39999999999997, + "413": 68.94999999999979, + "414": 40.700000000000024, + "415": -6.85, + "416": 8.55000000000005, + "417": 64.9999999999998, + "418": 16.400000000000045, + "419": 30.59999999999983, + "420": 96.65000000000003, + "421": 14.749999999999957, + "422": 8.400000000000006, + "423": 110.70000000000024, + "424": 79.64999999999984, + "425": 32.49999999999972, + "426": 85.14999999999978, + "427": 105.59999999999991, + "428": 98.54999999999971, + "429": 110.0999999999998, + "430": 47.749999999999744, + "431": 45.94999999999988, + "432": 23.55000000000006, + "433": 68.64999999999996, + "434": 2.0500000000000487, + "435": 87.49999999999976, + "436": 97.74999999999979, + "437": 97.74999999999991, + "438": 28.649999999999846, + "439": 0.1000000000000143, + "440": -70.49999999999994, + "441": 61.84999999999994, + "442": 73.19999999999978, + "443": 5.999999999999936, + "444": 27.400000000000013, + "445": 45.34999999999978, + "446": 12.400000000000034, + "447": 93.10000000000004, + "448": 86.89999999999979, + "449": 97.39999999999978, + "450": 72.34999999999998, + "451": -3.1999999999999886, + "452": 66.7499999999999, + "453": 97.64999999999976, + "454": -50.30000000000007, + "455": -35.3000000000001, + "456": 96.34999999999984, + "457": -77.9, + "458": 2.300000000000008, + "459": 14.55000000000003, + "460": 92.54999999999986, + "461": 3.2499999999999876, + "462": 39.99999999999978, + "463": 78.79999999999984, + "464": 82.50000000000011, + "465": 62.099999999999916, + "466": 68.14999999999989, + "467": 93.39999999999984, + "468": 101.09999999999972, + "469": 104.14999999999988, + "470": 99.3500000000001, + "471": 97.70000000000013, + "472": 105.15000000000025, + "473": 101.34999999999981, + "474": -25.45000000000001, + "475": 49.89999999999984, + "476": 95.75000000000011, + "477": 43.89999999999993, + "478": 27.500000000000078, + "479": 73.85000000000005, + "480": 83.19999999999976, + "481": 52.29999999999982, + "482": 80.60000000000001, + "483": 23.70000000000003, + "484": 80.6999999999999, + "485": 69.64999999999989, + "486": 53.74999999999987, + "487": 8.800000000000034, + "488": 97.09999999999977, + "489": 85.60000000000007, + "490": 63.999999999999766, + "491": 98.90000000000016, + "492": 36.04999999999975, + "493": 74.04999999999977, + "494": 16.299999999999997, + "495": 73.10000000000002, + "496": 61.949999999999974, + "497": 98.25000000000006, + "498": 72.34999999999987, + "499": -68.04999999999995, + "500": 106.65000000000016, + "501": 92.65, + "502": 65.89999999999989, + "503": -11.10000000000004, + "504": 76.2499999999999, + "505": 72.39999999999976, + "506": -76.59999999999994, + "507": 89.65, + "508": 19.999999999999993, + "509": 57.04999999999983, + "510": 45.09999999999995, + "511": 92.45, + "512": 83.24999999999993, + "513": 90.75000000000016, + "514": 11.300000000000015, + "515": 68.94999999999973, + "516": 95.35000000000002, + "517": 74.04999999999998, + "518": 17.7, + "519": 97.40000000000008, + "520": 44.89999999999996, + "521": 78.40000000000008, + "522": 67.69999999999975, + "523": 76.50000000000003, + "524": 55.24999999999992, + "525": 98.65000000000013, + "526": 24.84999999999996, + "527": 84.04999999999995, + "528": 68.59999999999982, + "529": 77.14999999999982, + "530": 98.80000000000004, + "531": 95.69999999999976, + "532": 75.04999999999978, + "533": 91.6999999999998, + "534": 97.95000000000005, + "535": 93.89999999999978, + "536": 98.30000000000013, + "537": 97.60000000000016, + "538": 75.85, + "539": -3.3999999999999995, + "540": 27.099999999999994, + "541": 74.34999999999977, + "542": -76.3, + "543": 102.65000000000019, + "544": 68.79999999999993, + "545": 95.19999999999973, + "546": 90.84999999999992, + "547": 95.59999999999974, + "548": 49.89999999999994, + "549": 87.15000000000013, + "550": 97.75000000000014, + "551": 107.39999999999976, + "552": 94.8000000000001, + "553": 75.44999999999999, + "554": 62.649999999999835, + "555": 87.20000000000005, + "556": 95.79999999999986, + "557": 95.49999999999979, + "558": 98.4999999999998, + "559": 55.799999999999756, + "560": 100.19999999999983, + "561": 96.79999999999973, + "562": 98.69999999999989, + "563": 92.95000000000014, + "564": 104.84999999999975, + "565": 92.99999999999993, + "566": 82.14999999999999, + "567": 94.54999999999973, + "568": 84.49999999999982, + "569": 66.69999999999983, + "570": 55.44999999999981, + "571": 99.64999999999974, + "572": 99.39999999999978, + "573": 95.09999999999977, + "574": 95.69999999999979, + "575": 92.89999999999978, + "576": 91.74999999999976, + "577": 101.89999999999975, + "578": 86.79999999999976, + "579": 95.29999999999993, + "580": 90.35000000000004, + "581": 33.249999999999865, + "582": 78.64999999999976, + "583": 73.14999999999986, + "584": 105.49999999999999, + "585": 52.09999999999982, + "586": 83.0999999999998, + "587": 33.14999999999998, + "588": 99.59999999999972, + "589": 59.14999999999975, + "590": 102.39999999999979, + "591": 51.299999999999876, + "592": 101.24999999999976, + "593": 98.80000000000004, + "594": 94.8999999999998, + "595": 81.39999999999986, + "596": 104.54999999999976, + "597": 103.74999999999974, + "598": 101.89999999999978, + "599": 105.94999999999972, + "600": 36.099999999999746, + "601": 105.19999999999973, + "602": 22.299999999999876, + "603": 93.24999999999976, + "604": 105.40000000000008, + "605": 99.09999999999978, + "606": -21.849999999999984, + "607": 88.89999999999979, + "608": 48.099999999999795, + "609": 90.29999999999977, + "610": 102.04999999999988, + "611": 84.2499999999998, + "612": 29.049999999999876, + "613": 89.54999999999978, + "614": 44.39999999999978, + "615": 73.24999999999977, + "616": 33.79999999999988, + "617": 101.94999999999975, + "618": 99.24999999999977, + "619": 74.79999999999978, + "620": 42.499999999999986, + "621": 99.49999999999973, + "622": 68.24999999999986, + "623": 63.849999999999916, + "624": 103.79999999999976, + "625": 82.59999999999975, + "626": 104.99999999999977, + "627": 98.0999999999998, + "628": 103.09999999999977, + "629": 75.44999999999978, + "630": 91.04999999999978, + "631": 100.99999999999974, + "632": 45.399999999999785, + "633": 102.64999999999978, + "634": 87.89999999999972, + "635": 103.19999999999973, + "636": 104.59999999999975, + "637": 94.39999999999984, + "638": 89.64999999999984, + "639": 84.99999999999974, + "640": 103.09999999999977, + "641": 98.39999999999979, + "642": 103.69999999999976, + "643": 12.50000000000004, + "644": 103.39999999999975, + "645": 11.500000000000085, + "646": 99.99999999999977, + "647": 98.04999999999976, + "648": 99.39999999999978, + "649": 102.69999999999976, + "650": 105.39999999999975, + "651": 96.49999999999974, + "652": 105.69999999999973, + "653": 74.24999999999983, + "654": 8.200000000000033, + "655": -78.75000000000003, + "656": 65.79999999999974, + "657": 98.99999999999976, + "658": 104.84999999999975, + "659": 96.64999999999978, + "660": 108.74999999999982, + "661": 100.09999999999977, + "662": 0.7500000000000273, + "663": 72.49999999999974, + "664": 100.44999999999978, + "665": 57.59999999999972, + "666": 109.29999999999978, + "667": 62.24999999999989, + "668": 100.09999999999974, + "669": 106.09999999999975, + "670": 90.09999999999978, + "671": 103.59999999999977, + "672": 68.69999999999976, + "673": 106.9499999999999, + "674": 105.19999999999973, + "675": 103.59999999999975, + "676": 99.69999999999975, + "677": -64.75000000000004, + "678": 71.49999999999989, + "679": 101.29999999999976, + "680": -71.85000000000001, + "681": 106.39999999999975, + "682": 110.45000000000005, + "683": 102.99999999999977, + "684": 99.39999999999976, + "685": 95.54999999999977, + "686": 100.19999999999975, + "687": 104.49999999999973, + "688": 96.69999999999978, + "689": 99.64999999999976, + "690": 81.99999999999977, + "691": 105.19999999999975, + "692": -29.650000000000013, + "693": 100.49999999999974, + "694": 92.04999999999976, + "695": 75.04999999999976, + "696": 103.79999999999974, + "697": 98.04999999999976, + "698": 98.80000000000007, + "699": 99.09999999999977, + "700": -21.800000000000065, + "701": 99.79999999999974, + "702": 107.84999999999974, + "703": 54.94999999999977, + "704": 102.24999999999974, + "705": 1.1500000000000625, + "706": 105.94999999999976, + "707": 102.09999999999972, + "708": 98.64999999999976, + "709": 104.49999999999976, + "710": 79.54999999999986, + "711": 104.39999999999974, + "712": 107.69999999999973, + "713": 78.8499999999998, + "714": 109.09999999999974, + "715": 99.84999999999975, + "716": 107.29999999999974, + "717": 103.84999999999974, + "718": 114.50000000000026, + "719": 105.19999999999975, + "720": 107.6499999999998, + "721": 104.59999999999982, + "722": 97.44999999999979, + "723": 99.14999999999975, + "724": -17.550000000000043, + "725": 106.49999999999973, + "726": 105.24999999999972, + "727": 104.89999999999974, + "728": 105.39999999999975, + "729": 100.19999999999973, + "730": 42.199999999999974, + "731": 107.74999999999974, + "732": 104.24999999999974, + "733": 97.89999999999975, + "734": -14.900000000000013, + "735": 106.39999999999979, + "736": 80.99999999999977, + "737": -79.25000000000001, + "738": 107.49999999999997, + "739": 62.99999999999994, + "740": 100.69999999999975, + "741": 19.30000000000002, + "742": 101.14999999999976, + "743": 101.99999999999977, + "744": 103.34999999999975, + "745": 98.84999999999975, + "746": 94.44999999999978, + "747": 105.39999999999975, + "748": 100.39999999999976, + "749": 104.04999999999977, + "750": 99.24999999999973, + "751": 102.39999999999975, + "752": 95.6999999999998, + "753": 112.2999999999998, + "754": 17.050000000000036, + "755": 103.89999999999976, + "756": 96.54999999999986, + "757": 99.74999999999979, + "758": 101.89999999999976, + "759": -28.45000000000005, + "760": 98.29999999999974, + "761": 100.64999999999974, + "762": 15.150000000000025, + "763": 101.49999999999977, + "764": 103.49999999999973, + "765": 102.44999999999978, + "766": 104.14999999999976, + "767": 103.19999999999976, + "768": 102.94999999999975, + "769": 89.14999999999974, + "770": 109.44999999999978, + "771": 99.84999999999978, + "772": 97.19999999999978, + "773": 95.99999999999976, + "774": 73.79999999999976, + "775": 96.29999999999977, + "776": 102.79999999999974, + "777": 104.94999999999975, + "778": 96.14999999999976, + "779": 105.54999999999973, + "780": 102.04999999999977, + "781": 51.14999999999986, + "782": 95.0999999999998, + "783": 76.39999999999988, + "784": 75.74999999999987, + "785": 83.64999999999989, + "786": 101.94999999999978, + "787": 105.44999999999975, + "788": 102.14999999999976, + "789": 108.79999999999974, + "790": 101.09999999999977, + "791": 103.84999999999977, + "792": -72.64999999999993, + "793": -20.750000000000032, + "794": 71.19999999999976, + "795": 11.150000000000066, + "796": 66.34999999999978, + "797": 103.69999999999976, + "798": 6.000000000000017, + "799": 103.24999999999976, + "800": 18.949999999999854, + "801": -1.700000000000117, + "802": 105.24999999999974, + "803": 104.49999999999976, + "804": 103.99999999999976, + "805": 104.34999999999975, + "806": 104.89999999999974, + "807": 105.9999999999999, + "808": 104.79999999999974, + "809": 99.74999999999977, + "810": 101.24999999999976, + "811": 106.84999999999977, + "812": 93.29999999999977, + "813": 103.94999999999976, + "814": 77.59999999999987, + "815": -77.05, + "816": 101.29999999999976, + "817": 93.7999999999998, + "818": 102.84999999999977, + "819": 101.39999999999978, + "820": 104.44999999999975, + "821": -39.34999999999999, + "822": 103.64999999999976, + "823": 59.799999999999756, + "824": 105.99999999999974, + "825": 59.24999999999977, + "826": -9.499999999999984, + "827": 57.09999999999977, + "828": 104.19999999999976, + "829": 103.24999999999977, + "830": 96.89999999999976, + "831": 104.94999999999976, + "832": 105.44999999999975, + "833": 101.04999999999978, + "834": 103.74999999999976, + "835": 103.64999999999976, + "836": 98.14999999999975, + "837": 102.19999999999978, + "838": 85.74999999999974, + "839": 103.99999999999976, + "840": -86.65, + "841": 106.04999999999973, + "842": 93.9499999999998, + "843": 103.19999999999976, + "844": 102.69999999999976, + "845": 103.24999999999977, + "846": 63.6999999999999, + "847": 103.19999999999976, + "848": 106.09999999999974, + "849": 101.49999999999976, + "850": 104.44999999999976, + "851": 104.64999999999976, + "852": 103.34999999999977, + "853": 102.94999999999978, + "854": 105.89999999999972, + "855": 52.79999999999995, + "856": 103.44999999999976, + "857": 104.04999999999976, + "858": 102.24999999999982, + "859": 104.24999999999976, + "860": 102.14999999999978, + "861": 104.14999999999975, + "862": 99.84999999999975, + "863": 97.24999999999974, + "864": 84.59999999999978, + "865": 103.24999999999977, + "866": 99.34999999999977, + "867": 98.74999999999977, + "868": 94.29999999999978, + "869": 98.54999999999976, + "870": 102.14999999999976, + "871": 104.59999999999975, + "872": 63.99999999999976, + "873": 103.14999999999976, + "874": 103.84999999999977, + "875": 104.29999999999974, + "876": 103.34999999999977, + "877": 102.59999999999977, + "878": 103.94999999999976, + "879": 104.19999999999975, + "880": -9.39999999999999, + "881": 104.79999999999976, + "882": 97.29999999999976, + "883": 101.29999999999978, + "884": 102.54999999999977, + "885": 103.64999999999976, + "886": 103.54999999999976, + "887": 98.39999999999976, + "888": 103.04999999999976, + "889": 100.99999999999976, + "890": 103.04999999999977, + "891": 98.44999999999978, + "892": 105.74999999999973, + "893": 102.94999999999976, + "894": 102.44999999999978, + "895": 103.34999999999977, + "896": 104.24999999999976, + "897": 105.44999999999973, + "898": 106.09999999999971, + "899": 98.2999999999998, + "900": 77.89999999999976, + "901": 103.99999999999976, + "902": 105.14999999999976, + "903": 104.79999999999977, + "904": 103.79999999999977, + "905": 103.74999999999974, + "906": 103.89999999999976, + "907": 103.29999999999977, + "908": 38.749999999999744, + "909": 103.59999999999977, + "910": 99.74999999999976, + "911": 103.69999999999979, + "912": 108.39999999999975, + "913": 104.04999999999977, + "914": 107.94999999999972, + "915": 107.34999999999972, + "916": 109.99999999999993, + "917": 107.54999999999995, + "918": 75.44999999999989, + "919": 110.29999999999991, + "920": 104.04999999999977, + "921": 103.34999999999977, + "922": 97.89999999999982, + "923": 104.64999999999974, + "924": 107.24999999999991, + "925": -58.34999999999999, + "926": 103.89999999999976, + "927": 106.84999999999972, + "928": 55.44999999999982, + "929": 113.19999999999999, + "930": 106.54999999999971, + "931": 104.09999999999977, + "932": 97.64999999999978, + "933": 71.39999999999982, + "934": 66.09999999999974, + "935": 107.39999999999982, + "936": -7.450000000000053, + "937": 104.79999999999991, + "938": 105.59999999999972, + "939": -71.2, + "940": 103.59999999999977, + "941": 103.89999999999976, + "942": -77.80000000000004, + "943": 110.44999999999989, + "944": 106.6999999999999, + "945": 112.39999999999998, + "946": -70.5, + "947": -74.29999999999995, + "948": 103.34999999999977, + "949": 93.19999999999985, + "950": 104.54999999999976, + "951": 106.14999999999974, + "952": 112.64999999999995, + "953": 50.39999999999981, + "954": 105.44999999999973, + "955": 101.94999999999978, + "956": 103.84999999999975, + "957": 104.64999999999976, + "958": 106.24999999999989, + "959": -11.90000000000002, + "960": 105.84999999999974, + "961": 109.09999999999977, + "962": 110.14999999999982, + "963": 1.1999999999999105, + "964": 107.54999999999973, + "965": 101.29999999999977, + "966": 107.04999999999973, + "967": 26.549999999999947, + "968": 107.14999999999972, + "969": 103.94999999999976, + "970": 104.04999999999977, + "971": 104.54999999999983, + "972": 103.24999999999977, + "973": 101.94999999999976, + "974": 103.99999999999974, + "975": 103.39999999999976, + "976": 86.39999999999974, + "977": 103.44999999999976, + "978": 103.29999999999977, + "979": 64.24999999999993, + "980": 100.99999999999977, + "981": 104.34999999999975, + "982": 105.94999999999973, + "983": -84.25, + "984": 26.599999999999902, + "985": -13.549999999999981, + "986": 88.64999999999984, + "987": 105.39999999999975, + "988": 109.24999999999979, + "989": 104.69999999999976, + "990": 104.94999999999975, + "991": 105.54999999999974, + "992": 108.79999999999983, + "993": 105.19999999999975, + "994": 105.8, + "995": 107.69999999999973, + "996": 102.89999999999978, + "997": 100.64999999999984, + "998": 104.7499999999998, + "999": 101.14999999999978, + "1000": 80.94999999999976 + } +} \ No newline at end of file diff --git a/benchmark/results/v3/v3.2.0/session_metadata/4.json b/benchmark/results/v3/v3.2.0/session_metadata/4.json new file mode 100644 index 00000000..6e03a18f --- /dev/null +++ b/benchmark/results/v3/v3.2.0/session_metadata/4.json @@ -0,0 +1,1009 @@ +{ + "total_episodes": 1001, + "total_time_steps": 128000, + "total_s": 1882.688625, + "s_per_step": 0.05883401953125, + "s_per_100_steps_10_nodes": 5.883401953125, + "total_reward_per_episode": { + "1": -20.949999999999964, + "2": -10.399999999999986, + "3": -14.949999999999978, + "4": -78.49999999999993, + "5": -28.65000000000001, + "6": -3.3999999999999915, + "7": -60.05000000000007, + "8": -20.29999999999996, + "9": -65.6500000000001, + "10": -56.50000000000015, + "11": -46.05000000000007, + "12": -35.15000000000002, + "13": -19.749999999999964, + "14": -20.44999999999996, + "15": -20.24999999999996, + "16": -14.549999999999983, + "17": -60.1500000000001, + "18": -35.80000000000006, + "19": -62.799999999999976, + "20": -40.85000000000005, + "21": -33.85000000000008, + "22": -89.4, + "23": -47.35000000000007, + "24": -73.95000000000002, + "25": -94.09999999999997, + "26": -23.04999999999995, + "27": -18.44999999999997, + "28": -12.449999999999983, + "29": -51.00000000000008, + "30": -29.95, + "31": -9.099999999999998, + "32": -17.59999999999997, + "33": -20.850000000000016, + "34": 4.29999999999999, + "35": -14.99999999999998, + "36": -9.749999999999991, + "37": -15.849999999999982, + "38": -16.999999999999975, + "39": -18.399999999999967, + "40": -14.04999999999998, + "41": -20.399999999999967, + "42": -26.099999999999945, + "43": -35.65000000000003, + "44": -18.149999999999974, + "45": -5.049999999999973, + "46": -75.25000000000001, + "47": -18.599999999999973, + "48": -10.050000000000013, + "49": -47.05000000000006, + "50": -78.5, + "51": -50.25000000000007, + "52": -59.450000000000095, + "53": -34.75000000000002, + "54": -71.55, + "55": -3.599999999999974, + "56": -39.350000000000115, + "57": 5.850000000000041, + "58": 18.099999999999966, + "59": -22.449999999999953, + "60": -98.94999999999999, + "61": -21.599999999999962, + "62": -27.549999999999986, + "63": 25.49999999999994, + "64": 10.050000000000022, + "65": -5.0999999999999845, + "66": -14.549999999999978, + "67": -1.400000000000015, + "68": -22.150000000000002, + "69": -38.450000000000045, + "70": -21.14999999999996, + "71": -8.500000000000007, + "72": -23.049999999999955, + "73": -1.9499999999999753, + "74": -15.54999999999998, + "75": -14.80000000000004, + "76": -3.6999999999999993, + "77": -86.4, + "78": -33.89999999999996, + "79": -101.79999999999998, + "80": 2.7000000000000233, + "81": -4.300000000000014, + "82": -22.44999999999998, + "83": -61.19999999999996, + "84": 6.200000000000013, + "85": -0.8499999999999759, + "86": -43.49999999999998, + "87": -71.15, + "88": -14.649999999999977, + "89": -81.94999999999993, + "90": -65.39999999999995, + "91": -88.75, + "92": 6.199999999999973, + "93": -8.099999999999987, + "94": -3.950000000000008, + "95": -15.099999999999978, + "96": 27.199999999999918, + "97": -2.449999999999987, + "98": -58.100000000000065, + "99": -16.24999999999997, + "100": 1.4000000000000197, + "101": -46.599999999999994, + "102": -56.5, + "103": -21.30000000000004, + "104": -2.0499999999999794, + "105": -19.449999999999985, + "106": 16.75000000000006, + "107": -17.89999999999997, + "108": -1.2500000000000242, + "109": -48.2, + "110": 4.800000000000038, + "111": 10.950000000000003, + "112": -16.449999999999974, + "113": -72.74999999999994, + "114": 9.749999999999964, + "115": -21.6, + "116": -42.15000000000005, + "117": -90.35, + "118": -41.79999999999999, + "119": -29.95000000000001, + "120": -5.399999999999983, + "121": 28.499999999999954, + "122": -8.300000000000013, + "123": -7.150000000000016, + "124": 11.40000000000001, + "125": 31.649999999999878, + "126": -40.35000000000002, + "127": -47.19999999999993, + "128": -70.60000000000002, + "129": -77.84999999999994, + "130": -1.799999999999969, + "131": -7.3499999999999925, + "132": -21.949999999999957, + "133": -28.250000000000032, + "134": -59.800000000000075, + "135": 14.250000000000018, + "136": -28.59999999999998, + "137": -2.5999999999999925, + "138": 4.150000000000039, + "139": -80.1, + "140": -8.499999999999998, + "141": -15.150000000000006, + "142": -33.79999999999998, + "143": 26.499999999999996, + "144": 10.200000000000053, + "145": 27.04999999999993, + "146": -13.699999999999974, + "147": -7.6, + "148": -12.049999999999995, + "149": -77.0, + "150": -80.95000000000002, + "151": -5.550000000000013, + "152": 13.650000000000023, + "153": 7.750000000000016, + "154": 35.14999999999982, + "155": 2.0000000000000124, + "156": -16.199999999999974, + "157": -4.199999999999997, + "158": 26.350000000000033, + "159": 0.3000000000000409, + "160": 17.099999999999987, + "161": -78.9, + "162": 3.8499999999999424, + "163": -1.5000000000000249, + "164": -83.3, + "165": 73.15000000000003, + "166": -5.150000000000011, + "167": -18.299999999999955, + "168": 46.34999999999983, + "169": -33.700000000000024, + "170": 23.44999999999998, + "171": 16.499999999999975, + "172": 16.349999999999977, + "173": -55.55000000000001, + "174": 7.399999999999983, + "175": -20.80000000000003, + "176": 1.5000000000000389, + "177": 51.99999999999991, + "178": -30.900000000000016, + "179": 19.69999999999998, + "180": -81.99999999999999, + "181": -10.599999999999994, + "182": -16.899999999999977, + "183": -10.799999999999992, + "184": -3.399999999999988, + "185": 7.500000000000024, + "186": 32.24999999999999, + "187": 58.74999999999989, + "188": -1.4999999999999907, + "189": 24.44999999999993, + "190": -1.3999999999999582, + "191": 14.25000000000001, + "192": 3.1500000000000044, + "193": -0.5500000000000052, + "194": 45.299999999999955, + "195": 69.64999999999995, + "196": 52.54999999999987, + "197": -26.500000000000036, + "198": 1.8000000000000194, + "199": -36.30000000000004, + "200": 33.54999999999989, + "201": 75.94999999999992, + "202": 48.149999999999835, + "203": -24.300000000000043, + "204": -15.950000000000001, + "205": 41.59999999999998, + "206": 82.85000000000001, + "207": 6.300000000000001, + "208": 10.099999999999959, + "209": 29.400000000000006, + "210": -52.70000000000008, + "211": 69.8, + "212": -23.25, + "213": 8.450000000000038, + "214": 53.24999999999989, + "215": 18.700000000000028, + "216": 43.84999999999996, + "217": 68.59999999999997, + "218": 22.199999999999914, + "219": 29.09999999999991, + "220": -52.19999999999995, + "221": 74.15000000000016, + "222": 21.70000000000005, + "223": 31.799999999999983, + "224": -4.599999999999987, + "225": 9.199999999999987, + "226": -6.249999999999983, + "227": -28.14999999999994, + "228": 46.550000000000054, + "229": 69.44999999999987, + "230": 54.29999999999994, + "231": 55.049999999999834, + "232": 75.35000000000005, + "233": 50.09999999999984, + "234": 40.04999999999994, + "235": 40.34999999999977, + "236": 67.50000000000006, + "237": 55.04999999999997, + "238": 50.44999999999999, + "239": 6.8500000000000085, + "240": 45.199999999999996, + "241": 55.44999999999989, + "242": 9.850000000000012, + "243": 79.04999999999998, + "244": -2.9499999999999957, + "245": 35.20000000000002, + "246": 3.4000000000000186, + "247": 80.35000000000004, + "248": 21.90000000000002, + "249": 41.949999999999875, + "250": 23.55000000000003, + "251": 79.40000000000005, + "252": 17.050000000000058, + "253": 52.69999999999999, + "254": 35.04999999999999, + "255": 42.24999999999997, + "256": 26.250000000000007, + "257": 64.5999999999999, + "258": 49.69999999999991, + "259": 42.69999999999992, + "260": 83.39999999999999, + "261": 65.0999999999999, + "262": 67.14999999999996, + "263": 70.99999999999997, + "264": 83.60000000000004, + "265": 71.3, + "266": 6.100000000000051, + "267": -5.299999999999995, + "268": 72.5999999999999, + "269": 69.35000000000002, + "270": 46.59999999999998, + "271": 52.44999999999993, + "272": 69.84999999999992, + "273": 88.40000000000016, + "274": 84.90000000000003, + "275": 14.999999999999982, + "276": 78.55, + "277": 11.750000000000028, + "278": -0.14999999999996505, + "279": 73.45000000000006, + "280": 24.650000000000066, + "281": 47.59999999999991, + "282": 85.20000000000009, + "283": 48.999999999999886, + "284": 63.44999999999994, + "285": 71.89999999999996, + "286": 40.19999999999993, + "287": 24.249999999999915, + "288": 83.00000000000006, + "289": 78.64999999999993, + "290": 77.75000000000001, + "291": 79.65000000000015, + "292": 80.7500000000001, + "293": 68.00000000000001, + "294": 20.600000000000016, + "295": 59.299999999999876, + "296": 45.0999999999999, + "297": 55.19999999999997, + "298": 71.75000000000006, + "299": 97.65000000000012, + "300": 71.55000000000001, + "301": 68.34999999999998, + "302": 71.79999999999988, + "303": 84.04999999999998, + "304": 61.799999999999876, + "305": 71.20000000000002, + "306": 72.50000000000007, + "307": 64.39999999999996, + "308": 36.79999999999997, + "309": 79.49999999999999, + "310": 74.5499999999998, + "311": 61.24999999999996, + "312": 80.59999999999997, + "313": 58.50000000000003, + "314": 83.85000000000004, + "315": 86.20000000000007, + "316": 88.44999999999992, + "317": 74.89999999999992, + "318": 69.54999999999994, + "319": 79.85000000000011, + "320": 56.25000000000001, + "321": 96.30000000000005, + "322": 86.40000000000013, + "323": 68.89999999999995, + "324": -22.399999999999952, + "325": 81.04999999999997, + "326": 75.90000000000005, + "327": 68.80000000000003, + "328": 74.39999999999996, + "329": 80.09999999999995, + "330": 97.4500000000001, + "331": 75.35000000000002, + "332": 85.00000000000003, + "333": 66.74999999999997, + "334": 39.79999999999995, + "335": 45.69999999999997, + "336": 84.70000000000002, + "337": 69.5500000000001, + "338": 84.75000000000001, + "339": 47.399999999999984, + "340": 73.09999999999997, + "341": 76.05, + "342": 96.24999999999991, + "343": 80.20000000000002, + "344": 69.99999999999997, + "345": 54.199999999999946, + "346": 91.39999999999992, + "347": 88.50000000000001, + "348": 48.99999999999996, + "349": 88.44999999999997, + "350": 57.44999999999997, + "351": -53.449999999999925, + "352": 101.30000000000003, + "353": 67.35000000000007, + "354": 51.44999999999999, + "355": 79.25000000000009, + "356": 67.14999999999999, + "357": 77.30000000000017, + "358": 64.84999999999997, + "359": 53.749999999999964, + "360": 103.90000000000008, + "361": 70.75000000000003, + "362": 72.00000000000004, + "363": 84.14999999999999, + "364": 100.79999999999998, + "365": 90.5000000000001, + "366": 71.19999999999996, + "367": 72.24999999999997, + "368": 46.050000000000004, + "369": 83.19999999999996, + "370": 68.99999999999996, + "371": 80.05, + "372": 81.05000000000007, + "373": 90.6, + "374": 83.05000000000005, + "375": 64.19999999999999, + "376": 46.00000000000002, + "377": 66.49999999999997, + "378": 86.04999999999997, + "379": 57.80000000000002, + "380": 45.64999999999997, + "381": 87.69999999999999, + "382": 75.89999999999995, + "383": 59.94999999999995, + "384": 87.35000000000008, + "385": 27.64999999999998, + "386": 15.000000000000037, + "387": 95.60000000000014, + "388": 88.80000000000004, + "389": 79.55000000000008, + "390": 97.34999999999998, + "391": 66.44999999999997, + "392": 91.0000000000001, + "393": 78.0, + "394": 96.35000000000004, + "395": 91.05000000000011, + "396": 96.25000000000006, + "397": 91.70000000000005, + "398": 78.95, + "399": 91.55000000000001, + "400": 80.84999999999997, + "401": 89.85000000000005, + "402": 43.99999999999994, + "403": 59.35000000000008, + "404": 67.55000000000003, + "405": 81.30000000000011, + "406": 85.30000000000001, + "407": 106.69999999999999, + "408": 60.349999999999966, + "409": 82.85000000000001, + "410": 70.00000000000004, + "411": 75.5500000000002, + "412": 84.04999999999998, + "413": 85.25000000000004, + "414": 81.6000000000001, + "415": 76.39999999999995, + "416": 38.449999999999996, + "417": 91.30000000000004, + "418": 7.150000000000002, + "419": 81.30000000000005, + "420": 73.10000000000004, + "421": 64.70000000000002, + "422": 69.30000000000001, + "423": 48.39999999999997, + "424": 63.19999999999998, + "425": 75.54999999999997, + "426": 65.04999999999997, + "427": -0.79999999999999, + "428": 84.35000000000001, + "429": 86.35000000000012, + "430": 80.1, + "431": 35.349999999999966, + "432": 66.09999999999995, + "433": 84.05, + "434": 41.29999999999996, + "435": 80.45000000000003, + "436": 91.74999999999999, + "437": 83.80000000000003, + "438": 98.35000000000007, + "439": 84.00000000000006, + "440": 86.75000000000004, + "441": 86.69999999999996, + "442": 72.55000000000007, + "443": 78.55, + "444": 60.14999999999999, + "445": 55.39999999999998, + "446": 75.60000000000004, + "447": 58.49999999999999, + "448": 99.40000000000002, + "449": 81.70000000000006, + "450": 80.6, + "451": 74.20000000000006, + "452": 73.14999999999995, + "453": 63.200000000000024, + "454": 73.85000000000005, + "455": 86.7, + "456": 73.75000000000006, + "457": 70.49999999999989, + "458": 56.59999999999996, + "459": 90.00000000000009, + "460": 71.5, + "461": 78.99999999999997, + "462": 92.45000000000006, + "463": 86.15000000000006, + "464": 77.15000000000005, + "465": 78.49999999999997, + "466": 87.10000000000001, + "467": 82.00000000000004, + "468": 76.79999999999995, + "469": 83.45000000000005, + "470": 77.35000000000002, + "471": 62.449999999999946, + "472": 78.19999999999999, + "473": 93.40000000000005, + "474": 71.55000000000001, + "475": 92.10000000000005, + "476": 81.25000000000011, + "477": 75.54999999999998, + "478": 85.89999999999996, + "479": 81.4, + "480": 74.25000000000001, + "481": 89.55000000000018, + "482": 87.80000000000004, + "483": 84.9, + "484": 90.50000000000001, + "485": 101.20000000000012, + "486": 81.05000000000001, + "487": 70.3500000000001, + "488": 40.59999999999998, + "489": 76.70000000000007, + "490": 80.70000000000006, + "491": 59.84999999999995, + "492": 96.39999999999996, + "493": 77.24999999999999, + "494": 49.59999999999995, + "495": 39.50000000000003, + "496": 68.6, + "497": 100.45000000000002, + "498": 55.49999999999989, + "499": 40.34999999999987, + "500": 54.25000000000003, + "501": 87.50000000000006, + "502": 49.449999999999925, + "503": 92.85000000000015, + "504": 81.85000000000007, + "505": 83.95000000000003, + "506": 91.50000000000016, + "507": 59.75000000000004, + "508": 81.50000000000004, + "509": 25.549999999999958, + "510": 76.55000000000005, + "511": 33.64999999999999, + "512": 68.39999999999998, + "513": 64.5, + "514": 11.1, + "515": 86.7000000000001, + "516": 86.00000000000004, + "517": 59.3, + "518": 54.45000000000003, + "519": 83.80000000000014, + "520": 59.10000000000002, + "521": 44.35000000000003, + "522": 68.45000000000002, + "523": 91.65000000000002, + "524": 94.59999999999998, + "525": 65.29999999999997, + "526": 51.39999999999996, + "527": 69.05000000000004, + "528": 61.6, + "529": 98.40000000000019, + "530": 69.25000000000001, + "531": 65.00000000000003, + "532": 48.49999999999997, + "533": 94.85000000000011, + "534": 97.7, + "535": 75.30000000000004, + "536": 87.54999999999998, + "537": 101.8500000000001, + "538": 79.7999999999999, + "539": 76.85, + "540": 54.99999999999986, + "541": 85.30000000000004, + "542": 67.10000000000007, + "543": 53.85000000000008, + "544": -57.099999999999945, + "545": 66.45000000000005, + "546": 74.44999999999996, + "547": 84.65000000000008, + "548": 45.75000000000004, + "549": 59.55, + "550": 85.60000000000007, + "551": 58.649999999999956, + "552": 45.45000000000008, + "553": 51.200000000000045, + "554": 72.89999999999999, + "555": 88.95000000000002, + "556": 53.15000000000001, + "557": 2.1499999999999773, + "558": 64.04999999999997, + "559": 67.55000000000005, + "560": 80.45000000000006, + "561": 49.49999999999996, + "562": 99.70000000000002, + "563": 81.90000000000006, + "564": 92.55, + "565": 92.64999999999999, + "566": 71.25000000000006, + "567": 78.3500000000001, + "568": 77.20000000000006, + "569": 92.40000000000002, + "570": 107.24999999999997, + "571": -46.299999999999955, + "572": 92.25000000000001, + "573": 42.549999999999976, + "574": 69.7, + "575": 92.15000000000005, + "576": 45.6, + "577": 61.55000000000003, + "578": 15.70000000000006, + "579": 56.65000000000006, + "580": 96.10000000000002, + "581": 96.85000000000004, + "582": 31.74999999999995, + "583": 54.79999999999997, + "584": 87.54999999999995, + "585": 53.29999999999997, + "586": 72.80000000000001, + "587": 65.75000000000003, + "588": 99.20000000000002, + "589": 87.79999999999997, + "590": 87.75000000000018, + "591": 73.80000000000007, + "592": 53.05000000000007, + "593": 82.10000000000004, + "594": 39.79999999999998, + "595": 78.30000000000003, + "596": 71.15000000000003, + "597": 91.44999999999997, + "598": 65.89999999999992, + "599": 37.99999999999992, + "600": 83.85000000000002, + "601": 75.80000000000003, + "602": 80.65000000000012, + "603": 41.2, + "604": 46.349999999999945, + "605": 82.35, + "606": 83.30000000000007, + "607": 72.00000000000007, + "608": 71.1500000000001, + "609": 85.54999999999993, + "610": 90.35000000000004, + "611": 49.949999999999974, + "612": 60.55000000000004, + "613": 80.85000000000007, + "614": 51.40000000000007, + "615": 85.80000000000003, + "616": 92.45000000000012, + "617": 87.5000000000002, + "618": 62.35000000000004, + "619": 39.199999999999996, + "620": 90.50000000000003, + "621": 83.15000000000009, + "622": 57.74999999999999, + "623": 86.64999999999999, + "624": 81.95000000000009, + "625": 79.69999999999995, + "626": 69.00000000000006, + "627": 93.24999999999994, + "628": 59.34999999999999, + "629": 67.79999999999998, + "630": 75.44999999999993, + "631": 60.49999999999991, + "632": 88.35000000000004, + "633": 61.04999999999998, + "634": 89.64999999999998, + "635": 74.99999999999994, + "636": 68.89999999999999, + "637": 96.09999999999994, + "638": 74.84999999999997, + "639": 78.00000000000001, + "640": 63.59999999999991, + "641": 72.54999999999998, + "642": 90.10000000000014, + "643": 92.45000000000007, + "644": 21.099999999999987, + "645": 93.14999999999995, + "646": 97.40000000000008, + "647": 98.0500000000001, + "648": 90.60000000000004, + "649": 80.64999999999999, + "650": 82.85000000000004, + "651": 92.00000000000003, + "652": 76.99999999999999, + "653": 82.80000000000004, + "654": 74.85, + "655": 74.64999999999999, + "656": 83.5, + "657": -27.750000000000014, + "658": 88.10000000000002, + "659": 85.15000000000006, + "660": 81.30000000000004, + "661": 76.50000000000007, + "662": 88.35000000000004, + "663": 33.2, + "664": 89.85000000000002, + "665": 100.49999999999997, + "666": 89.64999999999998, + "667": 54.90000000000002, + "668": 97.35000000000026, + "669": 90.95000000000003, + "670": 94.75000000000023, + "671": 74.14999999999995, + "672": 80.3, + "673": 84.9, + "674": 82.05000000000007, + "675": 97.75000000000004, + "676": 74.10000000000004, + "677": 85.8500000000001, + "678": 83.15, + "679": 68.4, + "680": 72.14999999999998, + "681": 84.60000000000007, + "682": 73.39999999999996, + "683": 91.14999999999996, + "684": 83.55000000000001, + "685": 62.04999999999997, + "686": 71.54999999999998, + "687": 78.94999999999999, + "688": 57.74999999999999, + "689": 96.19999999999997, + "690": 78.50000000000001, + "691": 91.20000000000014, + "692": 94.85000000000002, + "693": 75.35000000000002, + "694": 73.70000000000005, + "695": 92.90000000000005, + "696": 87.69999999999995, + "697": 77.90000000000002, + "698": 69.9, + "699": 79.40000000000006, + "700": 16.150000000000045, + "701": 81.75000000000003, + "702": 83.55000000000008, + "703": 90.49999999999997, + "704": 70.95, + "705": 77.45, + "706": 84.25000000000004, + "707": 84.05000000000003, + "708": 75.09999999999994, + "709": 85.65000000000008, + "710": 78.19999999999999, + "711": 81.19999999999997, + "712": 34.94999999999999, + "713": 83.25000000000007, + "714": 79.14999999999998, + "715": 72.45000000000002, + "716": 78.35, + "717": 72.14999999999995, + "718": 84.34999999999998, + "719": 89.99999999999999, + "720": 70.74999999999997, + "721": 76.35000000000005, + "722": 95.60000000000012, + "723": 90.69999999999997, + "724": 73.60000000000005, + "725": 42.599999999999945, + "726": 22.749999999999954, + "727": 53.34999999999998, + "728": -14.049999999999986, + "729": 68.64999999999996, + "730": 58.04999999999983, + "731": 85.75000000000003, + "732": 96.35000000000004, + "733": 83.49999999999996, + "734": 81.14999999999993, + "735": 60.74999999999992, + "736": 99.25000000000009, + "737": 67.59999999999992, + "738": 29.14999999999997, + "739": 69.89999999999993, + "740": 77.54999999999998, + "741": 91.25000000000001, + "742": 61.80000000000003, + "743": 94.3500000000002, + "744": 87.35, + "745": 88.20000000000012, + "746": 90.50000000000003, + "747": 102.0500000000001, + "748": 81.29999999999998, + "749": 91.05000000000007, + "750": 65.89999999999996, + "751": 94.15000000000018, + "752": 74.29999999999997, + "753": 95.3999999999999, + "754": -15.299999999999985, + "755": 80.7500000000001, + "756": 78.25000000000003, + "757": 60.00000000000003, + "758": 73.2500000000001, + "759": 71.45000000000002, + "760": 93.75000000000011, + "761": 86.70000000000009, + "762": 47.24999999999984, + "763": 58.799999999999976, + "764": 83.95000000000012, + "765": 102.25, + "766": 36.7000000000001, + "767": 73.04999999999998, + "768": 92.35000000000008, + "769": 106.9000000000001, + "770": 68.89999999999989, + "771": 91.74999999999997, + "772": 84.7, + "773": 98.15, + "774": 83.60000000000004, + "775": 83.75000000000007, + "776": 81.45, + "777": 83.69999999999999, + "778": 81.39999999999999, + "779": 34.09999999999995, + "780": 68.54999999999994, + "781": 101.90000000000005, + "782": 88.10000000000007, + "783": 79.74999999999997, + "784": 99.85000000000018, + "785": 94.75000000000003, + "786": 79.25, + "787": 92.1, + "788": 78.30000000000013, + "789": 70.49999999999996, + "790": -33.599999999999994, + "791": 14.150000000000002, + "792": 86.85000000000012, + "793": 73.69999999999997, + "794": 85.90000000000009, + "795": 73.70000000000012, + "796": 91.35000000000008, + "797": 88.60000000000011, + "798": 87.1000000000001, + "799": 87.94999999999993, + "800": 77.19999999999986, + "801": 73.09999999999998, + "802": 31.099999999999994, + "803": 97.54999999999998, + "804": 73.55000000000001, + "805": 77.20000000000012, + "806": 36.09999999999996, + "807": 70.2, + "808": 87.69999999999999, + "809": 85.8, + "810": 76.00000000000001, + "811": 92.20000000000003, + "812": 76.40000000000005, + "813": 81.70000000000002, + "814": 52.649999999999935, + "815": 30.299999999999994, + "816": 81.55000000000013, + "817": 88.64999999999998, + "818": 93.90000000000006, + "819": 78.19999999999999, + "820": 93.90000000000018, + "821": 117.20000000000002, + "822": 57.449999999999896, + "823": 36.94999999999996, + "824": 102.70000000000024, + "825": 93.94999999999999, + "826": 89.4, + "827": 32.24999999999997, + "828": 100.95000000000006, + "829": 87.40000000000003, + "830": 97.25000000000003, + "831": 109.14999999999999, + "832": 93.09999999999994, + "833": 91.80000000000003, + "834": 99.25000000000004, + "835": 85.35000000000007, + "836": 92.64999999999999, + "837": 68.89999999999996, + "838": 97.50000000000009, + "839": 93.2000000000001, + "840": 92.20000000000002, + "841": 69.75, + "842": 90.35000000000005, + "843": 15.249999999999986, + "844": 100.94999999999996, + "845": 83.15000000000005, + "846": 69.60000000000001, + "847": 82.55000000000001, + "848": 79.0500000000001, + "849": 73.15, + "850": 105.25000000000003, + "851": 104.25000000000009, + "852": 67.30000000000001, + "853": 79.80000000000005, + "854": 64.94999999999995, + "855": 110.14999999999998, + "856": 45.90000000000005, + "857": 82.90000000000005, + "858": 59.49999999999999, + "859": 92.10000000000002, + "860": 41.499999999999794, + "861": 90.60000000000004, + "862": 108.55, + "863": 103.75000000000001, + "864": 86.5000000000001, + "865": 107.40000000000012, + "866": 88.85000000000004, + "867": 87.65000000000002, + "868": 84.40000000000009, + "869": 103.70000000000005, + "870": 73.25000000000003, + "871": 103.3000000000001, + "872": 110.10000000000004, + "873": 30.299999999999997, + "874": 24.800000000000008, + "875": 98.69999999999999, + "876": 89.40000000000002, + "877": 111.0000000000001, + "878": 73.94999999999999, + "879": 101.05000000000001, + "880": 104.85, + "881": 80.30000000000003, + "882": 108.70000000000013, + "883": 110.10000000000001, + "884": 71.49999999999997, + "885": 111.94999999999999, + "886": 0.4000000000000239, + "887": 101.55000000000013, + "888": 103.35000000000024, + "889": 86.75000000000018, + "890": 70.99999999999997, + "891": 69.44999999999996, + "892": 52.79999999999999, + "893": 86.5000000000002, + "894": 96.20000000000002, + "895": 91.60000000000002, + "896": 104.25000000000003, + "897": 24.95000000000001, + "898": -84.65000000000002, + "899": 73.40000000000005, + "900": 106.45000000000005, + "901": 99.90000000000002, + "902": 108.85000000000008, + "903": 107.05000000000008, + "904": 45.69999999999996, + "905": 98.2, + "906": 102.69999999999996, + "907": 23.250000000000004, + "908": 102.45000000000005, + "909": 94.79999999999994, + "910": 91.24999999999997, + "911": 105.25000000000001, + "912": 48.649999999999956, + "913": 60.900000000000006, + "914": 80.70000000000003, + "915": 109.70000000000002, + "916": 112.90000000000002, + "917": 13.849999999999987, + "918": 80.95, + "919": 41.59999999999994, + "920": 65.00000000000011, + "921": 110.25000000000001, + "922": 100.59999999999997, + "923": 71.85, + "924": 101.75000000000018, + "925": 105.30000000000003, + "926": 109.45000000000007, + "927": 106.85000000000002, + "928": 90.80000000000015, + "929": 106.95, + "930": 70.75000000000004, + "931": 80.79999999999995, + "932": 56.29999999999993, + "933": -2.9500000000000095, + "934": 107.25000000000009, + "935": 109.10000000000008, + "936": -1.9000000000000201, + "937": 82.00000000000009, + "938": 82.54999999999997, + "939": 111.00000000000001, + "940": 99.65000000000008, + "941": 103.45, + "942": 101.25000000000007, + "943": 109.95000000000003, + "944": 80.2500000000001, + "945": 110.75000000000007, + "946": 109.15, + "947": 103.3500000000001, + "948": 97.00000000000003, + "949": 99.10000000000002, + "950": 107.35000000000005, + "951": 104.05000000000003, + "952": 112.50000000000001, + "953": 97.70000000000002, + "954": 102.25, + "955": 105.20000000000009, + "956": 107.80000000000001, + "957": -31.15000000000003, + "958": 114.14999999999999, + "959": -0.25000000000000155, + "960": 110.50000000000001, + "961": 82.20000000000002, + "962": 82.15000000000008, + "963": 37.15000000000003, + "964": 108.15000000000008, + "965": 103.1500000000002, + "966": 94.9, + "967": 100.05000000000003, + "968": 100.40000000000009, + "969": 96.65000000000005, + "970": 102.20000000000006, + "971": 84.10000000000008, + "972": 106.25000000000001, + "973": 104.45000000000006, + "974": 98.35000000000007, + "975": 97.69999999999997, + "976": 105.5, + "977": 104.55000000000007, + "978": 106.30000000000003, + "979": 77.05000000000004, + "980": 106.35000000000001, + "981": 109.60000000000012, + "982": 117.75000000000003, + "983": 103.80000000000001, + "984": 105.45000000000007, + "985": 102.45000000000006, + "986": 111.00000000000003, + "987": 107.39999999999999, + "988": 110.15000000000002, + "989": 97.35000000000011, + "990": 36.800000000000004, + "991": 105.35000000000001, + "992": 111.35000000000002, + "993": 107.80000000000003, + "994": 110.7, + "995": 107.60000000000005, + "996": 108.25000000000003, + "997": 42.45000000000003, + "998": 109.85000000000002, + "999": 118.0500000000001, + "1000": 77.95000000000005 + } +} \ No newline at end of file diff --git a/benchmark/results/v3/v3.2.0/session_metadata/5.json b/benchmark/results/v3/v3.2.0/session_metadata/5.json new file mode 100644 index 00000000..ca7ad1e9 --- /dev/null +++ b/benchmark/results/v3/v3.2.0/session_metadata/5.json @@ -0,0 +1,1009 @@ +{ + "total_episodes": 1001, + "total_time_steps": 128000, + "total_s": 1936.734432, + "s_per_step": 0.060522951, + "s_per_100_steps_10_nodes": 6.0522951, + "total_reward_per_episode": { + "1": -13.049999999999988, + "2": -41.25000000000005, + "3": -18.649999999999967, + "4": -22.39999999999996, + "5": -53.10000000000012, + "6": -64.6000000000001, + "7": -10.049999999999988, + "8": -86.89999999999998, + "9": -78.14999999999982, + "10": -52.550000000000075, + "11": -60.8000000000001, + "12": -17.499999999999968, + "13": -36.500000000000064, + "14": -15.599999999999977, + "15": -83.7499999999998, + "16": -62.5000000000001, + "17": -19.099999999999962, + "18": -23.849999999999948, + "19": -22.299999999999965, + "20": -61.1000000000001, + "21": -13.199999999999985, + "22": -21.59999999999999, + "23": -54.250000000000114, + "24": -95.55, + "25": -66.15000000000009, + "26": -16.549999999999976, + "27": -16.399999999999974, + "28": -68.65000000000009, + "29": -12.19999999999999, + "30": -13.499999999999984, + "31": -7.549999999999989, + "32": -9.54999999999999, + "33": -6.800000000000002, + "34": -14.299999999999986, + "35": -15.449999999999976, + "36": -67.29999999999998, + "37": -26.39999999999998, + "38": -17.799999999999997, + "39": -22.449999999999953, + "40": -38.55000000000005, + "41": -20.149999999999963, + "42": -66.94999999999996, + "43": -16.399999999999977, + "44": -13.149999999999988, + "45": -23.64999999999999, + "46": -16.699999999999974, + "47": -7.000000000000004, + "48": -75.1, + "49": -12.949999999999987, + "50": -19.849999999999945, + "51": -2.899999999999963, + "52": -18.700000000000014, + "53": -18.04999999999997, + "54": -25.550000000000022, + "55": -88.2, + "56": -73.05, + "57": -15.69999999999997, + "58": -14.149999999999984, + "59": -76.29999999999998, + "60": -55.250000000000156, + "61": 8.750000000000039, + "62": -19.749999999999964, + "63": -19.299999999999965, + "64": -12.949999999999983, + "65": -7.599999999999996, + "66": -79.45000000000006, + "67": -30.699999999999967, + "68": -23.14999999999994, + "69": -90.25, + "70": -53.40000000000017, + "71": -13.749999999999982, + "72": -13.79999999999998, + "73": -24.99999999999999, + "74": -16.149999999999977, + "75": -14.84999999999998, + "76": -45.70000000000007, + "77": -13.94999999999998, + "78": -55.10000000000009, + "79": -21.599999999999955, + "80": -8.249999999999996, + "81": -12.09999999999999, + "82": -17.94999999999997, + "83": -10.649999999999993, + "84": -73.54999999999998, + "85": -10.449999999999992, + "86": -17.949999999999974, + "87": 4.55000000000002, + "88": -68.89999999999999, + "89": -18.34999999999997, + "90": -9.850000000000007, + "91": -20.799999999999976, + "92": -8.65000000000001, + "93": -11.29999999999999, + "94": -29.65000000000001, + "95": 8.800000000000033, + "96": 10.500000000000062, + "97": -16.449999999999974, + "98": -15.94999999999997, + "99": -18.39999999999997, + "100": -3.999999999999969, + "101": -12.649999999999997, + "102": 1.600000000000041, + "103": -17.54999999999998, + "104": 1.8499999999999883, + "105": 51.899999999999935, + "106": 11.350000000000062, + "107": -3.0999999999999828, + "108": -8.249999999999988, + "109": -70.14999999999999, + "110": 3.4000000000000066, + "111": -89.10000000000008, + "112": -12.299999999999986, + "113": -15.449999999999942, + "114": -56.000000000000114, + "115": -21.249999999999957, + "116": 8.85000000000004, + "117": -85.2, + "118": -56.19999999999995, + "119": -76.45000000000002, + "120": -39.24999999999998, + "121": -9.949999999999983, + "122": 5.350000000000009, + "123": 32.34999999999983, + "124": -7.750000000000002, + "125": 33.94999999999984, + "126": -14.049999999999985, + "127": -2.3499999999999703, + "128": -29.649999999999988, + "129": 16.499999999999975, + "130": -88.80000000000004, + "131": -42.550000000000054, + "132": -22.549999999999955, + "133": -66.1, + "134": -33.25000000000002, + "135": -18.699999999999967, + "136": -22.949999999999957, + "137": 29.049999999999937, + "138": -15.199999999999976, + "139": -12.44999999999997, + "140": 17.65000000000001, + "141": 5.80000000000003, + "142": 56.699999999999875, + "143": -51.99999999999998, + "144": -30.549999999999986, + "145": -2.7999999999999927, + "146": 20.249999999999975, + "147": -35.95000000000003, + "148": 14.600000000000044, + "149": -9.300000000000042, + "150": -1.850000000000004, + "151": -60.19999999999997, + "152": -1.5499999999999594, + "153": 9.450000000000035, + "154": -4.699999999999991, + "155": 2.550000000000015, + "156": -48.84999999999998, + "157": 27.299999999999955, + "158": -2.8999999999999964, + "159": -60.74999999999994, + "160": -16.299999999999983, + "161": -8.849999999999987, + "162": 96.90000000000028, + "163": -39.19999999999999, + "164": -34.15000000000005, + "165": -15.099999999999994, + "166": 17.099999999999998, + "167": 6.100000000000005, + "168": -3.999999999999994, + "169": -4.049999999999983, + "170": -9.550000000000004, + "171": 14.500000000000025, + "172": 8.20000000000001, + "173": 27.29999999999994, + "174": -42.149999999999956, + "175": -5.849999999999981, + "176": 48.19999999999985, + "177": 40.899999999999935, + "178": 43.29999999999996, + "179": -17.54999999999998, + "180": -64.59999999999995, + "181": 1.2000000000000446, + "182": 20.749999999999957, + "183": 20.99999999999997, + "184": -3.299999999999983, + "185": 41.399999999999736, + "186": 24.94999999999998, + "187": 28.59999999999998, + "188": 0.7000000000000185, + "189": 26.04999999999997, + "190": -46.80000000000001, + "191": 12.29999999999999, + "192": 39.899999999999785, + "193": -2.900000000000041, + "194": -74.85, + "195": 9.249999999999957, + "196": -53.34999999999995, + "197": -62.499999999999936, + "198": 17.80000000000001, + "199": 33.44999999999999, + "200": 8.299999999999997, + "201": 0.7000000000000355, + "202": -13.699999999999969, + "203": -64.10000000000001, + "204": 41.050000000000054, + "205": 73.15, + "206": 34.4, + "207": 20.299999999999915, + "208": -39.1, + "209": 7.2000000000000455, + "210": -14.60000000000002, + "211": -49.85, + "212": -0.9500000000000304, + "213": 1.2500000000000062, + "214": 31.199999999999832, + "215": 49.249999999999936, + "216": 21.3, + "217": 41.999999999999886, + "218": 39.299999999999734, + "219": 30.80000000000001, + "220": -25.550000000000036, + "221": 69.70000000000009, + "222": 51.34999999999986, + "223": -14.349999999999984, + "224": 39.39999999999993, + "225": 104.15000000000022, + "226": -2.7499999999999867, + "227": 31.099999999999977, + "228": -15.899999999999995, + "229": 55.40000000000005, + "230": -14.399999999999991, + "231": -14.49999999999998, + "232": 72.55000000000003, + "233": 73.19999999999995, + "234": 77.80000000000008, + "235": 37.9499999999999, + "236": -96.85000000000018, + "237": -55.2, + "238": -19.949999999999953, + "239": 21.44999999999992, + "240": -18.250000000000025, + "241": 43.94999999999981, + "242": 90.95000000000012, + "243": 69.00000000000003, + "244": 50.94999999999984, + "245": 98.00000000000017, + "246": 5.849999999999993, + "247": 84.30000000000013, + "248": 32.84999999999998, + "249": 12.650000000000041, + "250": 3.8000000000000034, + "251": 82.19999999999999, + "252": 5.549999999999958, + "253": 40.549999999999955, + "254": -87.25000000000001, + "255": 27.099999999999905, + "256": -30.549999999999983, + "257": 37.699999999999925, + "258": 23.700000000000053, + "259": 64.8499999999999, + "260": -7.7499999999999645, + "261": 41.09999999999986, + "262": 44.44999999999998, + "263": 14.349999999999993, + "264": 37.84999999999997, + "265": 95.30000000000018, + "266": 44.29999999999993, + "267": 102.0000000000002, + "268": 36.84999999999995, + "269": 25.19999999999999, + "270": 18.10000000000001, + "271": 48.39999999999992, + "272": -5.8, + "273": 78.74999999999994, + "274": 101.25000000000014, + "275": 28.249999999999883, + "276": 0.8499999999999885, + "277": 3.4500000000000144, + "278": 80.29999999999988, + "279": -2.800000000000015, + "280": 73.39999999999989, + "281": 23.60000000000004, + "282": 10.949999999999983, + "283": -5.199999999999985, + "284": 31.450000000000085, + "285": 67.99999999999997, + "286": 16.54999999999997, + "287": 81.45000000000005, + "288": 59.29999999999994, + "289": 44.35000000000001, + "290": 32.099999999999994, + "291": 43.39999999999994, + "292": 58.29999999999986, + "293": 81.75000000000011, + "294": 18.800000000000036, + "295": 65.04999999999997, + "296": 87.60000000000014, + "297": 78.50000000000006, + "298": 63.65000000000005, + "299": 51.99999999999997, + "300": 83.24999999999989, + "301": 7.150000000000009, + "302": 41.49999999999998, + "303": 41.149999999999764, + "304": 30.999999999999908, + "305": 75.59999999999997, + "306": 95.40000000000015, + "307": 30.349999999999973, + "308": 36.44999999999996, + "309": 85.7, + "310": 23.749999999999993, + "311": -20.549999999999986, + "312": 46.949999999999946, + "313": 50.44999999999984, + "314": 102.05000000000031, + "315": 81.99999999999997, + "316": 41.14999999999992, + "317": 27.699999999999992, + "318": 23.649999999999885, + "319": 70.94999999999996, + "320": 103.75000000000013, + "321": 64.34999999999991, + "322": 66.7499999999999, + "323": 57.19999999999981, + "324": 38.599999999999966, + "325": -4.100000000000004, + "326": 49.54999999999993, + "327": 55.599999999999945, + "328": 75.45000000000003, + "329": 75.54999999999997, + "330": 89.65000000000008, + "331": 49.749999999999844, + "332": 89.80000000000004, + "333": 96.00000000000013, + "334": 27.699999999999967, + "335": 21.249999999999986, + "336": 73.14999999999993, + "337": 57.999999999999886, + "338": 16.049999999999983, + "339": 12.849999999999984, + "340": 23.999999999999982, + "341": 82.65000000000013, + "342": 51.19999999999999, + "343": 73.54999999999998, + "344": 25.650000000000013, + "345": 71.94999999999995, + "346": 49.59999999999996, + "347": -7.64999999999999, + "348": -49.39999999999995, + "349": 63.650000000000055, + "350": 52.14999999999988, + "351": 11.550000000000011, + "352": 68.40000000000009, + "353": 96.85000000000018, + "354": 31.199999999999953, + "355": 56.349999999999916, + "356": 92.39999999999998, + "357": 85.10000000000004, + "358": 38.44999999999997, + "359": -34.200000000000024, + "360": 30.89999999999998, + "361": 90.10000000000022, + "362": 76.70000000000005, + "363": 36.749999999999964, + "364": 98.90000000000015, + "365": 71.99999999999991, + "366": 86.25, + "367": 26.099999999999994, + "368": 79.14999999999999, + "369": 64.50000000000006, + "370": 100.50000000000018, + "371": 97.95000000000017, + "372": 53.549999999999926, + "373": 49.150000000000055, + "374": 102.65000000000019, + "375": 95.7000000000001, + "376": 4.199999999999961, + "377": 59.99999999999993, + "378": 92.09999999999987, + "379": 45.249999999999986, + "380": 88.45000000000005, + "381": 95.3, + "382": 93.55000000000013, + "383": 45.099999999999966, + "384": 86.29999999999997, + "385": 78.5499999999999, + "386": 78.45000000000005, + "387": 89.6499999999999, + "388": 37.449999999999996, + "389": 93.09999999999998, + "390": 27.649999999999956, + "391": 60.449999999999925, + "392": 89.60000000000005, + "393": 98.45000000000016, + "394": 55.79999999999986, + "395": 73.19999999999996, + "396": 40.54999999999995, + "397": 60.149999999999814, + "398": 56.34999999999991, + "399": 65.5500000000001, + "400": 49.74999999999993, + "401": 50.84999999999986, + "402": 17.450000000000014, + "403": 87.75000000000007, + "404": 56.24999999999994, + "405": 91.70000000000007, + "406": 61.09999999999988, + "407": 78.95000000000005, + "408": 97.45000000000013, + "409": 91.10000000000001, + "410": 84.20000000000002, + "411": 100.05000000000024, + "412": 74.04999999999988, + "413": 5.400000000000013, + "414": 65.14999999999989, + "415": 90.70000000000005, + "416": 102.95000000000019, + "417": 67.14999999999993, + "418": 93.59999999999998, + "419": 104.10000000000014, + "420": 26.249999999999908, + "421": 84.55000000000014, + "422": 100.75000000000021, + "423": 68.79999999999994, + "424": 82.89999999999999, + "425": 33.64999999999994, + "426": 83.39999999999999, + "427": 94.35000000000011, + "428": 91.6500000000002, + "429": 19.399999999999988, + "430": 64.0499999999999, + "431": 65.44999999999993, + "432": 73.85000000000002, + "433": 108.8000000000001, + "434": 73.99999999999989, + "435": 22.35000000000001, + "436": 99.95000000000016, + "437": 84.94999999999993, + "438": 74.0999999999999, + "439": 90.64999999999993, + "440": 90.24999999999999, + "441": 30.649999999999984, + "442": 94.05000000000015, + "443": 56.349999999999895, + "444": 101.3000000000002, + "445": 58.64999999999988, + "446": 19.44999999999998, + "447": 64.99999999999996, + "448": 38.44999999999995, + "449": 103.30000000000003, + "450": 103.70000000000024, + "451": 80.90000000000005, + "452": 37.44999999999997, + "453": 67.49999999999997, + "454": 62.25000000000004, + "455": 41.90000000000002, + "456": 19.70000000000003, + "457": 43.849999999999945, + "458": 95.25000000000013, + "459": 95.25000000000013, + "460": 64.2499999999999, + "461": 39.850000000000044, + "462": 99.35000000000015, + "463": 93.5000000000001, + "464": 28.599999999999817, + "465": 7.050000000000004, + "466": 83.30000000000011, + "467": 56.14999999999989, + "468": 111.35000000000029, + "469": 43.34999999999996, + "470": 42.44999999999993, + "471": 47.549999999999855, + "472": 46.599999999999945, + "473": 102.45000000000017, + "474": 106.90000000000022, + "475": 107.0500000000002, + "476": 36.95000000000008, + "477": 90.4, + "478": 97.20000000000009, + "479": 62.399999999999956, + "480": 87.69999999999995, + "481": 93.45000000000012, + "482": 92.15000000000012, + "483": 90.40000000000016, + "484": 89.69999999999997, + "485": 31.04999999999995, + "486": 106.20000000000024, + "487": 86.85, + "488": -19.399999999999963, + "489": 88.8500000000001, + "490": 110.05000000000025, + "491": 71.34999999999997, + "492": 32.89999999999997, + "493": 86.79999999999994, + "494": -13.05, + "495": 37.69999999999992, + "496": 108.20000000000023, + "497": 83.30000000000017, + "498": -16.50000000000003, + "499": 100.50000000000018, + "500": 89.85000000000011, + "501": 107.10000000000008, + "502": 79.75000000000013, + "503": -14.100000000000023, + "504": 76.79999999999986, + "505": 31.349999999999824, + "506": 80.05000000000008, + "507": 108.45000000000007, + "508": -23.650000000000002, + "509": 35.49999999999997, + "510": 107.00000000000023, + "511": 23.049999999999986, + "512": 101.1000000000002, + "513": 44.39999999999996, + "514": 4.449999999999996, + "515": 47.699999999999974, + "516": 99.95000000000016, + "517": 63.99999999999997, + "518": 68.59999999999988, + "519": -3.9500000000000455, + "520": 44.74999999999997, + "521": 73.09999999999991, + "522": 106.85000000000022, + "523": 18.950000000000003, + "524": 100.9000000000002, + "525": 54.89999999999991, + "526": 54.64999999999995, + "527": 98.1500000000002, + "528": 70.64999999999999, + "529": 76.09999999999994, + "530": 98.6000000000002, + "531": 75.05, + "532": 35.05000000000004, + "533": 115.20000000000032, + "534": 25.849999999999973, + "535": 26.349999999999994, + "536": 38.44999999999995, + "537": -15.500000000000018, + "538": 94.60000000000016, + "539": 95.09999999999991, + "540": 14.349999999999987, + "541": 56.14999999999991, + "542": 114.60000000000029, + "543": 74.74999999999993, + "544": 67.49999999999996, + "545": 27.900000000000013, + "546": 102.45000000000022, + "547": 66.64999999999993, + "548": 10.699999999999951, + "549": 101.05000000000018, + "550": 35.84999999999998, + "551": 77.05000000000005, + "552": 74.35000000000007, + "553": 95.55000000000013, + "554": 59.8999999999999, + "555": 76.64999999999978, + "556": 107.45000000000022, + "557": 72.19999999999997, + "558": 109.95000000000024, + "559": 27.94999999999999, + "560": 37.15000000000004, + "561": 83.7999999999999, + "562": 28.649999999999956, + "563": 92.65000000000002, + "564": 66.74999999999997, + "565": 60.40000000000002, + "566": -1.100000000000004, + "567": 103.40000000000016, + "568": 78.80000000000003, + "569": 96.5000000000002, + "570": 97.05000000000015, + "571": 71.64999999999993, + "572": 40.89999999999996, + "573": 102.4500000000002, + "574": 74.00000000000001, + "575": 54.34999999999995, + "576": 111.60000000000026, + "577": 93.10000000000012, + "578": 53.59999999999999, + "579": 66.64999999999995, + "580": 44.7, + "581": 32.649999999999956, + "582": 54.69999999999994, + "583": 16.449999999999996, + "584": 108.15000000000025, + "585": 70.84999999999994, + "586": 60.84999999999996, + "587": 6.400000000000038, + "588": 41.499999999999986, + "589": 82.04999999999997, + "590": 78.05000000000003, + "591": 103.45000000000019, + "592": 61.04999999999991, + "593": 28.049999999999997, + "594": 81.99999999999999, + "595": 91.95000000000009, + "596": 69.94999999999993, + "597": -24.999999999999996, + "598": 100.1500000000001, + "599": 68.69999999999996, + "600": 42.399999999999885, + "601": 17.649999999999984, + "602": 95.6499999999998, + "603": 77.10000000000005, + "604": 46.24999999999998, + "605": 84.50000000000006, + "606": 93.75000000000011, + "607": 38.149999999999956, + "608": 46.44999999999994, + "609": 95.15000000000009, + "610": 74.54999999999998, + "611": 75.9, + "612": 98.50000000000016, + "613": 36.99999999999998, + "614": 77.44999999999996, + "615": -54.10000000000001, + "616": 69.34999999999992, + "617": 48.09999999999993, + "618": 90.1, + "619": 93.4500000000001, + "620": 77.5, + "621": 99.10000000000024, + "622": 31.44999999999998, + "623": 88.2000000000001, + "624": 40.94999999999993, + "625": 76.49999999999999, + "626": 80.15000000000002, + "627": 93.60000000000005, + "628": 60.999999999999936, + "629": 77.44999999999995, + "630": 65.84999999999992, + "631": 68.29999999999993, + "632": 80.45000000000005, + "633": 95.50000000000007, + "634": 99.85000000000018, + "635": 97.45000000000013, + "636": 91.35000000000012, + "637": 98.6500000000001, + "638": 91.35000000000015, + "639": 41.84999999999991, + "640": 96.25000000000018, + "641": 101.35000000000012, + "642": 57.49999999999987, + "643": 71.79999999999995, + "644": 69.09999999999994, + "645": 94.94999999999996, + "646": 96.1000000000002, + "647": 96.05000000000017, + "648": 95.00000000000011, + "649": 100.29999999999998, + "650": 97.90000000000003, + "651": 95.65000000000016, + "652": 102.25000000000011, + "653": 101.40000000000018, + "654": 100.24999999999999, + "655": 98.45000000000019, + "656": 14.849999999999998, + "657": 27.19999999999998, + "658": 103.40000000000019, + "659": 69.49999999999991, + "660": 55.29999999999995, + "661": 96.00000000000016, + "662": 94.40000000000013, + "663": 72.14999999999998, + "664": 29.199999999999974, + "665": 98.20000000000016, + "666": 33.65000000000001, + "667": 71.29999999999986, + "668": 93.35000000000014, + "669": 104.95000000000017, + "670": 93.45000000000013, + "671": 40.44999999999996, + "672": -0.94999999999999, + "673": 88.75000000000004, + "674": 45.64999999999995, + "675": 35.39999999999997, + "676": 29.14999999999998, + "677": 66.19999999999996, + "678": 60.84999999999987, + "679": 47.59999999999993, + "680": -9.249999999999988, + "681": 55.29999999999992, + "682": 61.2499999999999, + "683": 104.75000000000018, + "684": 93.15000000000012, + "685": 93.10000000000015, + "686": 17.000000000000004, + "687": 95.50000000000009, + "688": 43.99999999999994, + "689": 106.05000000000015, + "690": 99.30000000000013, + "691": 81.10000000000002, + "692": 74.29999999999993, + "693": 78.40000000000003, + "694": 58.799999999999926, + "695": 99.75000000000016, + "696": 23.10000000000003, + "697": 50.44999999999989, + "698": 86.04999999999997, + "699": 91.95000000000002, + "700": 77.04999999999994, + "701": 73.64999999999996, + "702": -1.5500000000000034, + "703": 70.34999999999995, + "704": 78.49999999999997, + "705": 93.50000000000016, + "706": 60.349999999999916, + "707": 91.99999999999986, + "708": 78.55000000000003, + "709": 89.89999999999996, + "710": 55.09999999999993, + "711": 80.09999999999978, + "712": 91.55000000000007, + "713": 70.59999999999997, + "714": 66.39999999999988, + "715": 90.75000000000013, + "716": 90.30000000000004, + "717": 93.40000000000013, + "718": 78.49999999999986, + "719": 66.24999999999991, + "720": 93.30000000000004, + "721": 94.20000000000019, + "722": 94.15000000000013, + "723": 93.75000000000011, + "724": 46.44999999999999, + "725": 94.4000000000002, + "726": 70.99999999999997, + "727": 94.90000000000008, + "728": 33.79999999999997, + "729": 96.95000000000014, + "730": 78.89999999999996, + "731": 84.40000000000005, + "732": 92.70000000000013, + "733": 27.94999999999996, + "734": 51.19999999999998, + "735": 36.09999999999995, + "736": 101.20000000000012, + "737": 102.0000000000002, + "738": 94.3000000000001, + "739": 57.19999999999994, + "740": 37.549999999999976, + "741": 103.15000000000022, + "742": 72.8, + "743": 20.99999999999997, + "744": 56.19999999999985, + "745": 102.80000000000003, + "746": 102.05000000000013, + "747": 103.85000000000028, + "748": 32.149999999999956, + "749": 99.3000000000002, + "750": 67.94999999999995, + "751": 107.30000000000024, + "752": 88.4500000000001, + "753": 86.80000000000008, + "754": 98.15000000000018, + "755": 54.749999999999915, + "756": 8.000000000000004, + "757": 51.09999999999993, + "758": 57.89999999999992, + "759": 99.00000000000028, + "760": 48.14999999999989, + "761": 31.649999999999977, + "762": 56.549999999999926, + "763": 94.65000000000009, + "764": 40.04999999999995, + "765": 77.50000000000001, + "766": 105.00000000000021, + "767": 78.20000000000002, + "768": 60.1499999999999, + "769": -13.149999999999984, + "770": 79.90000000000008, + "771": 97.64999999999999, + "772": 18.099999999999916, + "773": 75.7499999999999, + "774": 18.849999999999998, + "775": 36.149999999999956, + "776": 70.79999999999995, + "777": 88.05, + "778": 103.90000000000018, + "779": 58.34999999999989, + "780": 97.10000000000021, + "781": 80.35000000000007, + "782": 56.499999999999915, + "783": 80.20000000000002, + "784": 44.64999999999994, + "785": 68.35, + "786": 89.20000000000007, + "787": 101.20000000000017, + "788": 42.19999999999995, + "789": 106.40000000000022, + "790": 104.50000000000014, + "791": 79.80000000000004, + "792": 94.94999999999993, + "793": 91.45000000000016, + "794": -11.30000000000002, + "795": -8.399999999999993, + "796": 91.40000000000019, + "797": 68.64999999999998, + "798": 73.89999999999993, + "799": -6.849999999999985, + "800": 87.45000000000009, + "801": -3.8999999999999972, + "802": 83.00000000000009, + "803": 97.20000000000019, + "804": 102.10000000000015, + "805": 96.30000000000003, + "806": -11.149999999999988, + "807": 60.399999999999835, + "808": -16.29999999999998, + "809": 96.90000000000013, + "810": 81.35000000000002, + "811": 95.69999999999999, + "812": 3.0500000000000425, + "813": 5.950000000000012, + "814": -29.500000000000014, + "815": 86.20000000000002, + "816": 68.79999999999994, + "817": 29.34999999999991, + "818": 85.49999999999999, + "819": -6.450000000000007, + "820": 28.34999999999998, + "821": 102.15000000000019, + "822": -95.8, + "823": -18.84999999999996, + "824": 92.65000000000016, + "825": 21.249999999999915, + "826": -16.650000000000034, + "827": 66.99999999999986, + "828": 92.29999999999995, + "829": 71.74999999999999, + "830": 62.34999999999992, + "831": 43.34999999999995, + "832": 96.25, + "833": 81.14999999999995, + "834": 65.84999999999987, + "835": 35.50000000000003, + "836": 97.59999999999995, + "837": 39.69999999999977, + "838": 88.64999999999996, + "839": 99.50000000000017, + "840": 38.09999999999996, + "841": 86.80000000000005, + "842": 100.3, + "843": 103.55000000000005, + "844": 93.15000000000019, + "845": 73.94999999999982, + "846": 90.10000000000001, + "847": 63.34999999999989, + "848": 94.80000000000005, + "849": 93.65000000000012, + "850": 86.40000000000005, + "851": 78.14999999999995, + "852": 102.90000000000012, + "853": 100.15000000000022, + "854": 90.10000000000011, + "855": 106.50000000000021, + "856": 96.40000000000003, + "857": 74.34999999999995, + "858": 53.99999999999986, + "859": 102.09999999999995, + "860": 65.39999999999996, + "861": 96.20000000000012, + "862": 98.45000000000016, + "863": 102.75000000000016, + "864": 103.0000000000002, + "865": 107.35000000000016, + "866": 45.24999999999994, + "867": 96.95000000000016, + "868": 72.69999999999999, + "869": 73.94999999999999, + "870": 85.30000000000004, + "871": 106.2000000000002, + "872": 22.90000000000004, + "873": 44.74999999999992, + "874": 45.59999999999994, + "875": 33.84999999999993, + "876": 72.3999999999999, + "877": 22.950000000000017, + "878": 102.75000000000016, + "879": 111.55000000000021, + "880": 103.00000000000017, + "881": 43.09999999999993, + "882": 101.55000000000015, + "883": 91.05000000000013, + "884": 99.1999999999999, + "885": 104.00000000000023, + "886": 98.60000000000018, + "887": 103.80000000000018, + "888": 96.99999999999977, + "889": 103.6000000000002, + "890": 104.4000000000002, + "891": 96.60000000000014, + "892": 16.65, + "893": 40.34999999999997, + "894": 76.25000000000001, + "895": 74.2, + "896": 60.44999999999992, + "897": 100.00000000000011, + "898": 59.14999999999992, + "899": 63.199999999999925, + "900": 75.6, + "901": 44.49999999999997, + "902": 99.90000000000018, + "903": 54.79999999999994, + "904": 15.64999999999999, + "905": 32.79999999999996, + "906": 59.49999999999994, + "907": 108.95000000000022, + "908": 104.1000000000002, + "909": 94.70000000000012, + "910": 99.45000000000002, + "911": 24.5, + "912": 26.24999999999997, + "913": 103.09999999999998, + "914": 70.29999999999997, + "915": 35.04999999999995, + "916": 100.0500000000001, + "917": 76.4, + "918": -48.95000000000009, + "919": 94.95000000000007, + "920": 100.15000000000022, + "921": 109.75000000000021, + "922": 106.8000000000002, + "923": 25.200000000000014, + "924": 39.64999999999997, + "925": 67.54999999999995, + "926": 103.15000000000018, + "927": 36.55, + "928": 33.79999999999997, + "929": 62.349999999999845, + "930": 54.79999999999995, + "931": 96.30000000000015, + "932": 55.34999999999993, + "933": 16.84999999999998, + "934": 93.95000000000014, + "935": 44.84999999999995, + "936": 93.00000000000009, + "937": 102.49999999999987, + "938": 98.15000000000002, + "939": 17.000000000000032, + "940": 50.049999999999926, + "941": 111.25000000000024, + "942": -1.6500000000000117, + "943": 65.19999999999992, + "944": 97.40000000000009, + "945": 92.05000000000005, + "946": 89.95000000000005, + "947": 91.54999999999991, + "948": 111.25000000000024, + "949": 99.10000000000015, + "950": 99.25000000000009, + "951": 95.95000000000014, + "952": -8.049999999999999, + "953": 101.1000000000002, + "954": 98.04999999999998, + "955": 89.05000000000015, + "956": 85.55000000000004, + "957": 10.200000000000012, + "958": 9.050000000000004, + "959": 98.90000000000022, + "960": 60.19999999999992, + "961": 70.09999999999988, + "962": 101.35000000000018, + "963": 68.29999999999995, + "964": 100.55000000000013, + "965": 72.44999999999997, + "966": 111.55000000000025, + "967": 100.95000000000017, + "968": -18.150000000000006, + "969": 96.75000000000011, + "970": 104.65000000000018, + "971": 33.19999999999999, + "972": 72.79999999999997, + "973": 73.74999999999996, + "974": 82.00000000000003, + "975": 42.14999999999988, + "976": 103.00000000000018, + "977": 92.2, + "978": 97.00000000000014, + "979": 72.94999999999996, + "980": 109.35000000000022, + "981": 103.05000000000014, + "982": 107.95000000000023, + "983": 103.35000000000018, + "984": 102.5000000000002, + "985": 0.8000000000000016, + "986": 94.40000000000019, + "987": 99.30000000000018, + "988": 95.95000000000016, + "989": 40.50000000000001, + "990": 79.59999999999982, + "991": 109.15000000000026, + "992": 99.20000000000013, + "993": 15.850000000000007, + "994": 84.19999999999993, + "995": 97.05000000000008, + "996": 38.19999999999996, + "997": 95.80000000000013, + "998": 80.19999999999997, + "999": 55.849999999999916, + "1000": 96.95000000000007 + } +} \ No newline at end of file diff --git a/benchmark/results/v3/v3.2.0/v3.2.0_benchmark_metadata.json b/benchmark/results/v3/v3.2.0/v3.2.0_benchmark_metadata.json new file mode 100644 index 00000000..830e980e --- /dev/null +++ b/benchmark/results/v3/v3.2.0/v3.2.0_benchmark_metadata.json @@ -0,0 +1,7445 @@ +{ + "start_timestamp": "2024-07-21T06:49:10.674026", + "end_datetime": "2024-07-21T09:10:09.243057", + "primaite_version": "3.2.0", + "system_info": { + "System": { + "OS": "Linux", + "OS Version": "#76~20.04.1-Ubuntu SMP Thu Jun 13 18:00:23 UTC 2024", + "Machine": "x86_64", + "Processor": "x86_64" + }, + "CPU": { + "Physical Cores": 2, + "Total Cores": 4, + "Max Frequency": "0.00Mhz" + }, + "Memory": { + "Total": "15.62GB", + "Swap Total": "0.00B" + }, + "GPU": [] + }, + "total_sessions": 5, + "total_episodes": 5005, + "total_time_steps": 640000, + "av_s_per_session": 1691.5034122000002, + "av_s_per_step": 0.052859481631250003, + "av_s_per_100_steps_10_nodes": 5.285948163125001, + "combined_total_reward_per_episode": { + "1": -24.80999999999999, + "2": -29.580000000000023, + "3": -19.15999999999996, + "4": -45.62000000000002, + "5": -31.200000000000024, + "6": -28.800000000000033, + "7": -35.070000000000036, + "8": -37.84999999999998, + "9": -48.219999999999985, + "10": -34.69000000000002, + "11": -51.02000000000003, + "12": -35.99999999999998, + "13": -20.279999999999983, + "14": -40.82999999999999, + "15": -29.519999999999936, + "16": -42.160000000000046, + "17": -28.209999999999987, + "18": -31.44000000000001, + "19": -38.16999999999997, + "20": -58.640000000000065, + "21": -38.750000000000014, + "22": -46.06999999999998, + "23": -50.35000000000002, + "24": -52.959999999999994, + "25": -61.67000000000003, + "26": -19.00999999999997, + "27": -19.559999999999977, + "28": -41.13000000000004, + "29": -26.190000000000015, + "30": -37.03, + "31": -15.589999999999998, + "32": -37.03, + "33": -21.260000000000005, + "34": -25.600000000000012, + "35": -12.039999999999981, + "36": -46.69999999999998, + "37": -34.68999999999999, + "38": -31.430000000000017, + "39": -13.539999999999964, + "40": -21.26999999999999, + "41": -15.039999999999969, + "42": -29.509999999999962, + "43": -16.699999999999996, + "44": -32.31999999999997, + "45": -41.92999999999999, + "46": -43.64999999999999, + "47": -14.280000000000001, + "48": -35.570000000000014, + "49": -29.900000000000023, + "50": -52.71, + "51": -13.969999999999999, + "52": -24.53000000000001, + "53": -31.650000000000013, + "54": -29.309999999999985, + "55": -40.53999999999998, + "56": -47.560000000000045, + "57": -33.84999999999999, + "58": -26.869999999999983, + "59": -27.129999999999978, + "60": -38.900000000000034, + "61": -29.53999999999997, + "62": -16.099999999999973, + "63": -27.099999999999987, + "64": -10.879999999999994, + "65": -9.309999999999986, + "66": -22.349999999999994, + "67": -26.570000000000004, + "68": -23.70999999999998, + "69": -47.38000000000001, + "70": -44.230000000000054, + "71": -14.250000000000004, + "72": -36.269999999999996, + "73": -33.29000000000002, + "74": -12.789999999999969, + "75": -24.749999999999996, + "76": -33.31000000000002, + "77": -41.959999999999994, + "78": -18.28000000000001, + "79": -37.64000000000001, + "80": -10.939999999999992, + "81": -31.98999999999997, + "82": -12.189999999999975, + "83": -30.629999999999974, + "84": -41.229999999999976, + "85": -32.21, + "86": -21.529999999999976, + "87": -37.29999999999998, + "88": -26.25999999999998, + "89": -43.53999999999994, + "90": -41.01999999999998, + "91": -44.32000000000001, + "92": -14.999999999999991, + "93": -20.500000000000007, + "94": -26.98, + "95": -28.329999999999977, + "96": -15.12, + "97": -15.849999999999989, + "98": -32.11999999999999, + "99": -32.10999999999999, + "100": -18.779999999999973, + "101": -19.739999999999984, + "102": -11.599999999999996, + "103": -35.79, + "104": 4.510000000000012, + "105": -27.870000000000005, + "106": -18.639999999999976, + "107": -31.139999999999976, + "108": -40.73999999999999, + "109": -45.96999999999999, + "110": -6.570000000000013, + "111": -49.46999999999997, + "112": -16.88999999999998, + "113": -33.03999999999998, + "114": -32.15000000000004, + "115": -29.299999999999976, + "116": -19.909999999999997, + "117": -50.99000000000002, + "118": -24.38999999999998, + "119": -45.010000000000005, + "120": -9.219999999999988, + "121": -17.350000000000016, + "122": -32.38000000000001, + "123": -13.650000000000034, + "124": -18.340000000000025, + "125": -13.660000000000036, + "126": -18.79999999999999, + "127": -24.990000000000006, + "128": -35.510000000000005, + "129": -35.16999999999997, + "130": -16.03000000000001, + "131": -32.50000000000001, + "132": -30.169999999999977, + "133": -25.23000000000001, + "134": -19.96000000000003, + "135": 0.8099999999999703, + "136": -32.92000000000001, + "137": -0.7000000000000177, + "138": -22.81999999999998, + "139": -36.72999999999998, + "140": -30.629999999999985, + "141": -23.869999999999997, + "142": -13.390000000000024, + "143": -6.829999999999989, + "144": -29.069999999999975, + "145": -27.930000000000017, + "146": -18.78, + "147": -15.120000000000044, + "148": -28.179999999999996, + "149": -31.509999999999998, + "150": -26.900000000000052, + "151": -13.560000000000006, + "152": 2.5099999999999683, + "153": -8.400000000000011, + "154": 12.269999999999945, + "155": -18.229999999999983, + "156": -34.459999999999994, + "157": -17.189999999999998, + "158": -28.77, + "159": -16.059999999999985, + "160": -30.339999999999982, + "161": -16.710000000000043, + "162": 2.3000000000000456, + "163": -27.37000000000001, + "164": -44.830000000000005, + "165": -3.8700000000000103, + "166": -19.61000000000005, + "167": -11.550000000000026, + "168": -21.480000000000054, + "169": -16.069999999999993, + "170": -10.769999999999982, + "171": -26.3, + "172": 3.039999999999997, + "173": -20.73000000000001, + "174": -11.36000000000001, + "175": -49.39000000000001, + "176": -1.270000000000023, + "177": 12.599999999999982, + "178": -13.769999999999987, + "179": -3.820000000000045, + "180": -29.72999999999998, + "181": -16.099999999999984, + "182": -13.500000000000004, + "183": -9.240000000000023, + "184": -18.500000000000007, + "185": 6.379999999999928, + "186": -5.880000000000004, + "187": 26.17999999999994, + "188": -29.389999999999993, + "189": 20.569999999999983, + "190": -3.279999999999993, + "191": -5.42000000000002, + "192": -4.89000000000001, + "193": 3.7499999999999796, + "194": -17.160000000000007, + "195": 12.779999999999983, + "196": -12.310000000000008, + "197": -10.599999999999994, + "198": 12.469999999999997, + "199": 31.119999999999997, + "200": 1.7199999999999946, + "201": -0.9700000000000036, + "202": 6.289999999999976, + "203": -6.620000000000013, + "204": -18.81999999999997, + "205": 26.639999999999965, + "206": 26.74000000000002, + "207": 4.949999999999992, + "208": -0.32000000000005285, + "209": 3.0800000000000054, + "210": -17.160000000000082, + "211": 16.099999999999973, + "212": -2.0100000000000096, + "213": 12.93999999999996, + "214": 27.339999999999907, + "215": -4.060000000000047, + "216": 14.71999999999998, + "217": 6.739999999999983, + "218": 25.099999999999916, + "219": 33.22999999999996, + "220": -37.68999999999999, + "221": 46.090000000000046, + "222": 4.599999999999988, + "223": -21.660000000000004, + "224": -6.050000000000004, + "225": 25.889999999999997, + "226": -22.60999999999999, + "227": 25.660000000000025, + "228": 10.149999999999988, + "229": 48.42999999999997, + "230": 28.849999999999945, + "231": 4.329999999999936, + "232": 45.43999999999998, + "233": 31.89999999999992, + "234": 14.1, + "235": 15.429999999999904, + "236": -3.4500000000000113, + "237": 8.749999999999968, + "238": 2.5199999999999974, + "239": 8.449999999999966, + "240": 31.009999999999962, + "241": 29.699999999999886, + "242": 28.80999999999999, + "243": 57.08000000000002, + "244": 16.809999999999953, + "245": 17.570000000000032, + "246": 1.1000000000000125, + "247": 41.02, + "248": 12.589999999999986, + "249": 0.4899999999999508, + "250": 20.00000000000002, + "251": 44.73999999999994, + "252": 9.929999999999989, + "253": 15.44999999999995, + "254": -8.300000000000043, + "255": 6.62999999999999, + "256": -2.709999999999984, + "257": 25.59999999999991, + "258": -5.520000000000022, + "259": 25.61999999999997, + "260": 22.129999999999985, + "261": 31.509999999999984, + "262": 16.78999999999998, + "263": 45.53999999999997, + "264": 50.43000000000005, + "265": 44.150000000000055, + "266": 10.299999999999976, + "267": 42.86000000000003, + "268": 21.369999999999944, + "269": 19.360000000000007, + "270": 43.46, + "271": 50.91999999999996, + "272": 37.48999999999992, + "273": 37.53999999999998, + "274": 61.879999999999995, + "275": 24.89999999999996, + "276": 34.27000000000001, + "277": 16.519999999999964, + "278": 35.70000000000003, + "279": 33.63999999999995, + "280": 35.610000000000014, + "281": 27.69999999999997, + "282": 46.989999999999974, + "283": 5.629999999999994, + "284": 40.90999999999993, + "285": 55.17999999999995, + "286": 29.129999999999985, + "287": 43.93999999999999, + "288": 54.43999999999994, + "289": 39.00999999999992, + "290": 54.220000000000006, + "291": 56.220000000000006, + "292": 53.95999999999998, + "293": 51.74000000000001, + "294": 22.829999999999956, + "295": 40.21999999999999, + "296": 60.40000000000002, + "297": 31.74999999999999, + "298": 54.46, + "299": 47.239999999999995, + "300": 38.45999999999994, + "301": 31.420000000000005, + "302": 28.369999999999965, + "303": 47.269999999999925, + "304": 13.499999999999986, + "305": 30.67999999999996, + "306": 51.72000000000001, + "307": 28.079999999999984, + "308": 12.169999999999995, + "309": 60.89000000000001, + "310": 28.88999999999995, + "311": 21.540000000000013, + "312": 55.139999999999944, + "313": 34.71000000000003, + "314": 62.59000000000003, + "315": 54.38999999999995, + "316": 59.139999999999915, + "317": 54.439999999999884, + "318": 43.339999999999975, + "319": 74.51999999999995, + "320": 71.69000000000008, + "321": 42.36, + "322": 56.56, + "323": 37.47999999999994, + "324": 33.93999999999997, + "325": 46.66999999999999, + "326": 66.79999999999994, + "327": 49.080000000000055, + "328": 53.17, + "329": 44.889999999999944, + "330": 57.070000000000036, + "331": 39.30999999999999, + "332": 76.42, + "333": 58.7, + "334": 40.510000000000005, + "335": 34.639999999999986, + "336": 65.72999999999995, + "337": 55.07999999999997, + "338": 37.729999999999976, + "339": 37.30999999999997, + "340": 44.220000000000034, + "341": 72.28, + "342": 67.07999999999998, + "343": 78.38999999999992, + "344": 49.290000000000006, + "345": 63.57999999999994, + "346": 41.01999999999998, + "347": 40.369999999999955, + "348": 27.169999999999987, + "349": 77.12, + "350": 49.08999999999993, + "351": 35.789999999999964, + "352": 61.58000000000003, + "353": 70.68000000000005, + "354": 43.250000000000014, + "355": 25.839999999999964, + "356": 44.159999999999975, + "357": 56.000000000000036, + "358": 27.749999999999964, + "359": 35.86999999999994, + "360": 42.770000000000024, + "361": 65.72, + "362": 54.18999999999996, + "363": 55.34000000000002, + "364": 58.47000000000006, + "365": 73.4599999999999, + "366": 61.39999999999996, + "367": 60.85999999999997, + "368": 41.379999999999995, + "369": 52.16999999999996, + "370": 61.169999999999995, + "371": 76.33000000000004, + "372": 65.66999999999993, + "373": 74.14999999999999, + "374": 59.89000000000002, + "375": 38.980000000000004, + "376": 45.59999999999995, + "377": 71.86999999999998, + "378": 77.87999999999992, + "379": 47.78000000000001, + "380": 70.75999999999996, + "381": 76.37999999999997, + "382": 60.69999999999999, + "383": 50.85999999999999, + "384": 54.28999999999995, + "385": 52.03999999999995, + "386": 70.28000000000002, + "387": 74.94000000000008, + "388": 66.29999999999993, + "389": 79.96999999999989, + "390": 59.449999999999974, + "391": 77.17999999999998, + "392": 83.86999999999998, + "393": 74.62, + "394": 68.90999999999995, + "395": 70.07999999999996, + "396": 67.97999999999999, + "397": 67.96, + "398": 60.820000000000014, + "399": 58.93000000000002, + "400": 72.70999999999998, + "401": 60.320000000000014, + "402": 70.09999999999994, + "403": 74.06999999999996, + "404": 76.11999999999993, + "405": 80.55000000000003, + "406": 75.05000000000004, + "407": 79.59999999999997, + "408": 67.89000000000003, + "409": 73.47, + "410": 67.8, + "411": 70.19000000000008, + "412": 43.339999999999954, + "413": 68.78, + "414": 62.220000000000006, + "415": 62.06000000000004, + "416": 67.47000000000011, + "417": 81.0, + "418": 53.210000000000015, + "419": 63.46, + "420": 73.02000000000004, + "421": 67.84000000000006, + "422": 58.13000000000002, + "423": 81.82999999999998, + "424": 62.23999999999995, + "425": 51.44999999999993, + "426": 69.73999999999991, + "427": 65.67, + "428": 84.12000000000005, + "429": 75.06999999999998, + "430": 67.89999999999993, + "431": 65.07999999999998, + "432": 53.14999999999999, + "433": 75.23999999999998, + "434": 51.16999999999995, + "435": 73.99999999999999, + "436": 82.80999999999997, + "437": 86.53999999999999, + "438": 73.00999999999998, + "439": 72.10000000000004, + "440": 48.789999999999985, + "441": 69.19999999999997, + "442": 83.38999999999996, + "443": 45.86999999999995, + "444": 61.95000000000003, + "445": 56.47999999999992, + "446": 43.19000000000003, + "447": 77.50000000000001, + "448": 68.16999999999994, + "449": 90.60999999999993, + "450": 77.62000000000005, + "451": 50.589999999999996, + "452": 47.699999999999946, + "453": 47.59999999999994, + "454": 50.44000000000002, + "455": 44.00999999999997, + "456": 71.88999999999996, + "457": 34.759999999999955, + "458": 65.12000000000003, + "459": 67.34000000000006, + "460": 77.00999999999992, + "461": 57.519999999999996, + "462": 77.84999999999997, + "463": 78.84, + "464": 55.15999999999999, + "465": 62.96999999999997, + "466": 72.37999999999998, + "467": 78.80999999999992, + "468": 95.72000000000004, + "469": 66.41999999999994, + "470": 59.47000000000001, + "471": 70.62999999999995, + "472": 70.97000000000006, + "473": 92.09000000000002, + "474": 44.08000000000006, + "475": 77.14999999999998, + "476": 69.02000000000004, + "477": 78.26999999999994, + "478": 75.59000000000005, + "479": 75.39999999999995, + "480": 70.49999999999991, + "481": 68.00999999999999, + "482": 86.67000000000004, + "483": 58.52, + "484": 75.47999999999998, + "485": 76.60000000000002, + "486": 79.92000000000004, + "487": 69.46000000000004, + "488": 49.889999999999915, + "489": 84.38000000000002, + "490": 83.95, + "491": 83.19999999999996, + "492": 47.949999999999946, + "493": 82.62999999999995, + "494": 0.38999999999998564, + "495": 60.78999999999992, + "496": 69.1, + "497": 85.29000000000005, + "498": 41.36999999999994, + "499": 41.29000000000002, + "500": 69.97000000000007, + "501": 75.18, + "502": 66.72, + "503": 46.56, + "504": 76.77999999999994, + "505": 74.08999999999988, + "506": 44.290000000000035, + "507": 78.96000000000004, + "508": 35.47000000000004, + "509": 47.0999999999999, + "510": 78.64000000000001, + "511": 64.52999999999992, + "512": 83.91999999999999, + "513": 72.59000000000003, + "514": 33.70999999999997, + "515": 71.74999999999991, + "516": 79.22000000000001, + "517": 75.96999999999989, + "518": 51.75000000000002, + "519": 54.25999999999999, + "520": 49.34999999999995, + "521": 69.60999999999993, + "522": 74.71999999999998, + "523": 67.61999999999999, + "524": 81.63000000000002, + "525": 75.23999999999998, + "526": 61.229999999999905, + "527": 83.81000000000002, + "528": 75.30999999999997, + "529": 87.3, + "530": 89.71000000000002, + "531": 69.85999999999991, + "532": 49.50999999999994, + "533": 93.26, + "534": 66.68000000000002, + "535": 70.88999999999999, + "536": 75.50999999999999, + "537": 38.080000000000034, + "538": 78.99000000000001, + "539": 43.72999999999996, + "540": 34.89999999999996, + "541": 69.01999999999994, + "542": 59.53000000000011, + "543": 67.17, + "544": 49.72999999999998, + "545": 76.88000000000001, + "546": 75.41999999999997, + "547": 74.73999999999994, + "548": 45.08000000000001, + "549": 87.90999999999998, + "550": 79.93000000000009, + "551": 70.41999999999994, + "552": 76.88000000000007, + "553": 62.57000000000003, + "554": 72.55999999999997, + "555": 78.33999999999996, + "556": 83.83000000000007, + "557": 71.5199999999999, + "558": 83.50999999999999, + "559": 67.85999999999999, + "560": 72.59999999999997, + "561": 82.74999999999986, + "562": 78.07000000000001, + "563": 78.56000000000009, + "564": 86.69999999999996, + "565": 85.19999999999995, + "566": 66.56000000000003, + "567": 81.60999999999996, + "568": 81.16999999999993, + "569": 76.22000000000003, + "570": 91.20999999999997, + "571": 57.599999999999966, + "572": 81.01999999999994, + "573": 41.84999999999998, + "574": 58.98999999999995, + "575": 83.00999999999996, + "576": 82.51999999999995, + "577": 85.31999999999996, + "578": 63.25999999999992, + "579": 60.039999999999985, + "580": 74.57000000000002, + "581": 62.209999999999994, + "582": 63.77999999999988, + "583": 66.14999999999992, + "584": 95.92000000000007, + "585": 50.669999999999945, + "586": 80.31, + "587": 39.639999999999986, + "588": 81.56999999999996, + "589": 80.37999999999991, + "590": 91.27, + "591": 78.76000000000006, + "592": 72.87999999999995, + "593": 73.47000000000006, + "594": 69.38, + "595": 81.71999999999994, + "596": 76.2399999999999, + "597": 59.65999999999995, + "598": 60.91999999999996, + "599": 56.659999999999926, + "600": 68.77999999999993, + "601": 65.76999999999991, + "602": 74.17999999999998, + "603": 79.7, + "604": 68.25000000000003, + "605": 68.75999999999996, + "606": 52.19000000000001, + "607": 78.72000000000001, + "608": 72.22999999999993, + "609": 89.67999999999991, + "610": 85.91999999999993, + "611": 74.83999999999996, + "612": 75.22, + "613": 72.91999999999997, + "614": 73.40999999999994, + "615": 56.91999999999997, + "616": 75.69999999999996, + "617": 77.80999999999995, + "618": 79.61999999999993, + "619": 76.68999999999994, + "620": 71.09000000000006, + "621": 95.19000000000008, + "622": 44.20999999999996, + "623": 84.56000000000003, + "624": 67.56999999999994, + "625": 64.61999999999996, + "626": 77.09999999999997, + "627": 71.46999999999996, + "628": 74.07999999999994, + "629": 81.88999999999984, + "630": 71.05999999999989, + "631": 81.51999999999994, + "632": 59.57999999999994, + "633": 76.76999999999995, + "634": 89.73000000000003, + "635": 93.97999999999999, + "636": 75.39000000000001, + "637": 79.72999999999998, + "638": 80.52999999999994, + "639": 72.92999999999998, + "640": 71.16999999999997, + "641": 88.06000000000003, + "642": 71.07999999999997, + "643": 71.99000000000007, + "644": 75.01999999999987, + "645": 77.27999999999994, + "646": 80.29, + "647": 89.44999999999996, + "648": 79.88999999999996, + "649": 78.83999999999996, + "650": 90.67999999999998, + "651": 71.47999999999996, + "652": 93.42000000000003, + "653": 84.01000000000002, + "654": 76.8400000000001, + "655": 56.48000000000002, + "656": 66.78999999999998, + "657": 46.389999999999965, + "658": 93.13000000000001, + "659": 88.89999999999995, + "660": 84.48999999999998, + "661": 90.4, + "662": 63.34999999999999, + "663": 51.15999999999991, + "664": 68.93999999999994, + "665": 81.19999999999997, + "666": 83.19999999999995, + "667": 62.81999999999997, + "668": 94.32000000000005, + "669": 82.63999999999997, + "670": 87.72000000000006, + "671": 79.56999999999987, + "672": 64.09999999999997, + "673": 84.11, + "674": 66.33999999999992, + "675": 76.12999999999994, + "676": 81.21999999999993, + "677": 50.82000000000001, + "678": 84.22, + "679": 70.92999999999991, + "680": 28.919999999999995, + "681": 78.93999999999988, + "682": 88.54000000000003, + "683": 95.04000000000003, + "684": 75.34999999999994, + "685": 70.44999999999993, + "686": 75.62, + "687": 86.17999999999992, + "688": 58.41999999999992, + "689": 89.79999999999995, + "690": 83.82999999999998, + "691": 91.15999999999994, + "692": 55.45999999999992, + "693": 88.90999999999998, + "694": 74.51999999999991, + "695": 82.44999999999997, + "696": 63.50999999999992, + "697": 83.04999999999998, + "698": 83.54, + "699": 71.17999999999998, + "700": 46.72999999999994, + "701": 82.52999999999994, + "702": 64.12999999999997, + "703": 81.14999999999996, + "704": 64.33999999999992, + "705": 65.95000000000006, + "706": 77.23999999999997, + "707": 90.97999999999988, + "708": 82.89999999999989, + "709": 91.11999999999999, + "710": 80.31999999999994, + "711": 87.46999999999984, + "712": 71.88999999999996, + "713": 84.86999999999992, + "714": 81.04999999999988, + "715": 88.82000000000002, + "716": 83.29999999999993, + "717": 84.44999999999992, + "718": 88.00000000000004, + "719": 80.44999999999993, + "720": 87.75, + "721": 85.23999999999998, + "722": 86.15, + "723": 63.22999999999998, + "724": 38.530000000000015, + "725": 68.92999999999999, + "726": 73.61999999999986, + "727": 69.49999999999996, + "728": 59.18999999999996, + "729": 86.42, + "730": 72.2799999999999, + "731": 93.77999999999999, + "732": 88.93999999999994, + "733": 75.98999999999992, + "734": 49.38999999999995, + "735": 72.78999999999996, + "736": 93.71999999999994, + "737": 54.52999999999997, + "738": 82.97999999999995, + "739": 75.16999999999994, + "740": 74.30999999999987, + "741": 75.10000000000001, + "742": 84.48999999999998, + "743": 71.16999999999996, + "744": 85.29999999999987, + "745": 79.19999999999996, + "746": 81.05999999999993, + "747": 90.87999999999997, + "748": 77.43999999999997, + "749": 84.72999999999995, + "750": 79.69999999999995, + "751": 67.47, + "752": 88.84999999999995, + "753": 91.87999999999991, + "754": 48.98000000000001, + "755": 74.51999999999995, + "756": 47.78999999999999, + "757": 77.6999999999999, + "758": 77.6399999999999, + "759": 64.95, + "760": 75.5299999999999, + "761": 75.98999999999994, + "762": 58.479999999999905, + "763": 91.10999999999993, + "764": 80.76999999999991, + "765": 82.89999999999993, + "766": 83.73999999999997, + "767": 59.56999999999996, + "768": 88.04999999999991, + "769": 75.45999999999997, + "770": 89.36999999999992, + "771": 85.42999999999999, + "772": 75.90999999999991, + "773": 72.31999999999994, + "774": 71.61999999999995, + "775": 66.48999999999995, + "776": 88.5899999999999, + "777": 93.5099999999999, + "778": 77.18999999999997, + "779": 67.81999999999992, + "780": 53.85999999999997, + "781": 82.32999999999996, + "782": 82.17999999999991, + "783": 82.31999999999996, + "784": 81.73999999999994, + "785": 87.15999999999997, + "786": 89.45999999999992, + "787": 89.07999999999993, + "788": 66.8, + "789": 90.73999999999998, + "790": 60.31999999999996, + "791": 74.75999999999992, + "792": 53.48999999999997, + "793": 59.89000000000001, + "794": 65.66999999999999, + "795": 39.850000000000016, + "796": 88.55999999999997, + "797": 89.63999999999994, + "798": 55.27, + "799": 76.36999999999995, + "800": 73.30999999999992, + "801": 29.02999999999999, + "802": 81.04999999999998, + "803": 92.91999999999993, + "804": 92.59999999999994, + "805": 82.80999999999993, + "806": 64.56999999999991, + "807": 84.37999999999991, + "808": 69.0899999999999, + "809": 91.89999999999995, + "810": 85.58, + "811": 95.90999999999991, + "812": 73.64999999999993, + "813": 62.24999999999996, + "814": 53.08999999999993, + "815": 44.039999999999935, + "816": 84.40999999999998, + "817": 77.4999999999999, + "818": 95.98999999999992, + "819": 75.29999999999995, + "820": 67.50999999999998, + "821": 65.72999999999999, + "822": 48.72999999999987, + "823": 45.15999999999992, + "824": 92.08999999999995, + "825": 70.2699999999999, + "826": 51.809999999999945, + "827": 63.96999999999987, + "828": 89.28999999999998, + "829": 89.64999999999992, + "830": 84.98999999999987, + "831": 92.50999999999995, + "832": 94.05999999999987, + "833": 81.62999999999991, + "834": 86.33999999999993, + "835": 79.26999999999994, + "836": 97.59999999999992, + "837": 78.93999999999987, + "838": 91.86999999999993, + "839": 100.63999999999996, + "840": 48.24, + "841": 89.05999999999992, + "842": 96.37999999999997, + "843": 79.15999999999993, + "844": 95.16999999999993, + "845": 80.7099999999999, + "846": 72.30999999999999, + "847": 88.3699999999999, + "848": 77.22999999999993, + "849": 86.45999999999995, + "850": 96.51999999999992, + "851": 99.11999999999992, + "852": 95.60999999999994, + "853": 88.41999999999994, + "854": 88.00999999999992, + "855": 94.13, + "856": 77.91999999999989, + "857": 88.17999999999991, + "858": 76.45999999999988, + "859": 98.56999999999992, + "860": 71.45999999999987, + "861": 61.43999999999998, + "862": 100.21999999999994, + "863": 98.74999999999999, + "864": 86.37999999999997, + "865": 99.75999999999995, + "866": 73.00999999999995, + "867": 52.47999999999998, + "868": 90.63999999999993, + "869": 89.97999999999989, + "870": 90.59999999999994, + "871": 96.94999999999999, + "872": 76.75999999999992, + "873": 32.53999999999992, + "874": 70.36999999999993, + "875": 85.11999999999988, + "876": 92.4399999999999, + "877": 87.40999999999993, + "878": 55.33999999999999, + "879": 82.59, + "880": 80.26999999999998, + "881": 84.69999999999987, + "882": 84.35999999999999, + "883": 101.04999999999994, + "884": 70.84999999999994, + "885": 95.97999999999999, + "886": 64.85, + "887": 98.36999999999998, + "888": 91.4499999999999, + "889": 97.72999999999998, + "890": 92.73999999999994, + "891": 88.17999999999992, + "892": 74.68999999999991, + "893": 80.38999999999993, + "894": 79.24999999999994, + "895": 91.82999999999994, + "896": 86.79999999999988, + "897": 85.29999999999993, + "898": 53.19999999999989, + "899": 83.92999999999991, + "900": 87.3099999999999, + "901": 57.49999999999998, + "902": 63.85, + "903": 83.49999999999994, + "904": 58.04999999999993, + "905": 28.409999999999947, + "906": 90.33999999999995, + "907": 84.43999999999996, + "908": 89.54999999999997, + "909": 94.66999999999992, + "910": 96.67999999999991, + "911": 82.74999999999991, + "912": 76.5699999999999, + "913": 90.2699999999999, + "914": 65.16999999999994, + "915": 86.31999999999987, + "916": 101.07999999999997, + "917": 77.46999999999991, + "918": 54.979999999999905, + "919": 50.729999999999976, + "920": 93.49000000000005, + "921": 100.02999999999994, + "922": 96.66999999999994, + "923": 43.02999999999994, + "924": 83.35999999999996, + "925": 59.47999999999994, + "926": 64.02000000000001, + "927": 64.91999999999994, + "928": 70.64999999999995, + "929": 96.09999999999992, + "930": 83.12999999999988, + "931": 92.37999999999992, + "932": 81.03999999999989, + "933": 48.78999999999992, + "934": 55.36, + "935": 88.62999999999994, + "936": 51.34999999999995, + "937": 69.28999999999998, + "938": 96.74999999999989, + "939": 47.39999999999996, + "940": 89.4099999999999, + "941": 99.98999999999994, + "942": 43.09999999999996, + "943": 93.88999999999996, + "944": 91.16999999999996, + "945": 88.78999999999999, + "946": 61.79999999999997, + "947": 56.33999999999999, + "948": 100.71999999999994, + "949": 91.46999999999996, + "950": 68.89999999999999, + "951": 100.36999999999993, + "952": 79.14999999999995, + "953": 86.99999999999997, + "954": 100.21999999999989, + "955": 99.11000000000001, + "956": 85.77999999999989, + "957": 16.179999999999943, + "958": 81.38999999999992, + "959": 49.89, + "960": 60.979999999999926, + "961": 89.46999999999991, + "962": 98.18999999999997, + "963": 56.60999999999992, + "964": 103.75999999999995, + "965": 90.88999999999993, + "966": 100.13999999999993, + "967": 81.35999999999997, + "968": 77.38999999999992, + "969": 65.72999999999993, + "970": 96.61999999999998, + "971": 82.65999999999997, + "972": 88.2399999999999, + "973": 91.02999999999992, + "974": 92.61999999999992, + "975": 59.089999999999904, + "976": 91.58999999999997, + "977": 98.44999999999995, + "978": 97.93999999999997, + "979": 79.74999999999993, + "980": 96.22999999999995, + "981": 102.17999999999995, + "982": 103.20999999999997, + "983": 61.789999999999985, + "984": 85.80999999999999, + "985": 57.83, + "986": 93.97999999999999, + "987": 101.78999999999994, + "988": 101.44999999999996, + "989": 48.69999999999999, + "990": 82.15999999999988, + "991": 103.04999999999998, + "992": 64.72, + "993": 60.049999999999955, + "994": 88.13999999999994, + "995": 97.48999999999992, + "996": 85.20999999999992, + "997": 87.97999999999999, + "998": 94.60999999999991, + "999": 90.2299999999999, + "1000": 88.77999999999993 + }, + "session_total_reward_per_episode": { + "1": { + "1": -13.39999999999999, + "2": -33.95000000000001, + "3": -18.79999999999997, + "4": -7.300000000000002, + "5": -28.599999999999937, + "6": -7.2500000000000036, + "7": -38.15000000000004, + "8": -14.199999999999992, + "9": -15.099999999999985, + "10": -13.69999999999998, + "11": -19.899999999999963, + "12": -19.299999999999965, + "13": -3.849999999999989, + "14": -71.20000000000003, + "15": -10.199999999999985, + "16": -60.6000000000001, + "17": -20.69999999999996, + "18": -18.19999999999997, + "19": -22.84999999999996, + "20": -56.20000000000008, + "21": -35.05000000000004, + "22": -69.89999999999998, + "23": -28.300000000000033, + "24": -55.399999999999984, + "25": -18.54999999999997, + "26": -24.449999999999946, + "27": -27.650000000000002, + "28": -48.75000000000007, + "29": -34.90000000000004, + "30": -11.449999999999989, + "31": -40.950000000000045, + "32": -15.999999999999993, + "33": -43.20000000000006, + "34": -30.050000000000026, + "35": -33.44999999999996, + "36": -34.449999999999996, + "37": -74.00000000000001, + "38": -23.699999999999974, + "39": -22.899999999999952, + "40": -9.149999999999956, + "41": -16.04999999999997, + "42": -20.899999999999967, + "43": -4.1999999999999975, + "44": -12.199999999999978, + "45": -18.449999999999967, + "46": -99.15, + "47": -38.20000000000007, + "48": -13.349999999999978, + "49": -60.600000000000094, + "50": -99.45, + "51": -5.199999999999986, + "52": -9.05, + "53": -13.749999999999986, + "54": -6.899999999999998, + "55": -73.49999999999997, + "56": -43.95000000000005, + "57": -88.35, + "58": -86.29999999999983, + "59": -11.149999999999997, + "60": -12.799999999999986, + "61": -22.449999999999953, + "62": -16.549999999999976, + "63": -17.949999999999974, + "64": -14.449999999999989, + "65": -1.0999999999999999, + "66": 3.7000000000000153, + "67": -59.400000000000105, + "68": -43.49999999999997, + "69": -8.449999999999987, + "70": -46.75000000000017, + "71": -6.449999999999994, + "72": -74.4, + "73": -26.849999999999977, + "74": -8.599999999999993, + "75": -63.45, + "76": -5.549999999999984, + "77": -94.35, + "78": -3.0999999999999703, + "79": -40.95000000000011, + "80": -2.3999999999999932, + "81": -34.699999999999974, + "82": 7.600000000000035, + "83": -3.9499999999999806, + "84": -21.649999999999956, + "85": 21.49999999999995, + "86": -17.299999999999972, + "87": -87.14999999999999, + "88": -18.249999999999982, + "89": -16.24999999999998, + "90": -13.449999999999967, + "91": -60.150000000000006, + "92": -30.250000000000004, + "93": -0.7999999999999585, + "94": -11.499999999999995, + "95": -9.69999999999999, + "96": -91.14999999999999, + "97": -5.300000000000008, + "98": 14.550000000000034, + "99": -67.1, + "100": -71.85, + "101": -11.599999999999982, + "102": 3.0499999999999634, + "103": -20.64999999999996, + "104": 1.850000000000031, + "105": -79.1, + "106": -15.34999999999998, + "107": -58.45, + "108": -83.74999999999996, + "109": -73.15000000000002, + "110": -43.45000000000013, + "111": -68.6, + "112": -16.299999999999997, + "113": 1.450000000000024, + "114": -28.70000000000002, + "115": -0.7999999999999883, + "116": -29.69999999999999, + "117": -12.450000000000003, + "118": 2.6500000000000066, + "119": -51.64999999999999, + "120": 13.600000000000016, + "121": -94.85000000000008, + "122": -89.00000000000006, + "123": -10.850000000000003, + "124": 31.59999999999992, + "125": -90.54999999999995, + "126": -8.199999999999983, + "127": 14.2499999999999, + "128": -57.500000000000014, + "129": -81.5, + "130": 49.79999999999988, + "131": -40.45000000000008, + "132": 18.700000000000028, + "133": -1.5500000000000005, + "134": 3.3499999999999712, + "135": -12.649999999999988, + "136": -49.20000000000006, + "137": -23.700000000000014, + "138": -73.35, + "139": -38.94999999999999, + "140": -58.44999999999997, + "141": -93.10000000000001, + "142": -46.99999999999999, + "143": 8.900000000000002, + "144": -16.399999999999977, + "145": -3.700000000000005, + "146": -37.55000000000001, + "147": -4.350000000000045, + "148": -70.60000000000004, + "149": 10.450000000000053, + "150": -96.79999999999995, + "151": 25.849999999999923, + "152": -30.000000000000036, + "153": -50.10000000000004, + "154": 33.399999999999906, + "155": -55.449999999999996, + "156": -49.75000000000002, + "157": -26.049999999999997, + "158": -73.30000000000001, + "159": -9.549999999999988, + "160": -75.55, + "161": 62.09999999999988, + "162": 4.650000000000015, + "163": -76.25000000000004, + "164": -74.4, + "165": 12.000000000000028, + "166": -88.05000000000011, + "167": -60.0000000000001, + "168": -81.25, + "169": 6.700000000000029, + "170": -22.849999999999987, + "171": -93.40000000000003, + "172": -33.350000000000016, + "173": -10.449999999999989, + "174": -27.85000000000002, + "175": -92.85000000000001, + "176": 6.849999999999982, + "177": -67.74999999999997, + "178": -3.1999999999999735, + "179": -75.80000000000004, + "180": 8.44999999999997, + "181": -23.950000000000003, + "182": 9.650000000000004, + "183": -95.89999999999999, + "184": -4.949999999999988, + "185": 21.900000000000006, + "186": -67.65, + "187": 2.249999999999967, + "188": -9.950000000000001, + "189": 53.399999999999956, + "190": 38.59999999999993, + "191": -74.10000000000001, + "192": -90.84999999999994, + "193": 15.999999999999902, + "194": -18.14999999999997, + "195": -21.55000000000003, + "196": -7.849999999999997, + "197": 28.399999999999935, + "198": 54.89999999999993, + "199": 56.699999999999875, + "200": 9.450000000000056, + "201": -38.699999999999996, + "202": 22.149999999999984, + "203": 9.100000000000033, + "204": -53.09999999999994, + "205": 37.399999999999835, + "206": 4.600000000000054, + "207": -0.15000000000001734, + "208": 4.1500000000000155, + "209": -14.69999999999998, + "210": -22.350000000000023, + "211": 10.650000000000025, + "212": -13.749999999999986, + "213": 7.350000000000001, + "214": 8.950000000000031, + "215": 37.1499999999999, + "216": 10.550000000000015, + "217": -59.849999999999966, + "218": 42.45000000000007, + "219": 59.59999999999994, + "220": -30.100000000000012, + "221": 29.800000000000026, + "222": -62.45000000000002, + "223": -72.64999999999999, + "224": -63.24999999999999, + "225": -24.150000000000006, + "226": -12.949999999999985, + "227": 11.600000000000012, + "228": -25.49999999999998, + "229": 78.54999999999995, + "230": 21.05000000000002, + "231": 2.3999999999999972, + "232": 23.750000000000014, + "233": -12.850000000000005, + "234": -90.34999999999997, + "235": -24.850000000000012, + "236": -1.7499999999999662, + "237": 32.59999999999983, + "238": -3.299999999999989, + "239": -12.050000000000011, + "240": 60.99999999999993, + "241": 2.8999999999999453, + "242": 8.900000000000029, + "243": 28.899999999999977, + "244": 48.049999999999926, + "245": 28.29999999999994, + "246": 16.50000000000002, + "247": 59.69999999999998, + "248": -4.300000000000031, + "249": -24.350000000000055, + "250": 59.85000000000001, + "251": 92.24999999999996, + "252": 33.59999999999993, + "253": 47.599999999999966, + "254": -35.15000000000005, + "255": -21.199999999999978, + "256": 10.450000000000001, + "257": 71.49999999999993, + "258": -76.1, + "259": -4.1500000000000306, + "260": 35.04999999999997, + "261": 26.949999999999974, + "262": -32.100000000000016, + "263": 41.84999999999999, + "264": 43.65000000000004, + "265": 35.59999999999999, + "266": 63.6499999999999, + "267": 69.74999999999997, + "268": 6.550000000000038, + "269": -12.000000000000014, + "270": 1.2999999999999938, + "271": 72.95, + "272": 75.24999999999984, + "273": 43.349999999999824, + "274": 48.049999999999855, + "275": 4.099999999999985, + "276": 6.7500000000000275, + "277": 0.699999999999992, + "278": 19.40000000000003, + "279": 62.94999999999984, + "280": 41.10000000000004, + "281": 45.64999999999992, + "282": 65.94999999999995, + "283": -14.550000000000024, + "284": 22.200000000000028, + "285": 12.600000000000005, + "286": -20.049999999999986, + "287": 57.2, + "288": 37.04999999999998, + "289": 41.04999999999983, + "290": 59.499999999999936, + "291": 38.64999999999985, + "292": 16.499999999999996, + "293": 35.39999999999997, + "294": 25.24999999999997, + "295": 41.69999999999986, + "296": 74.14999999999993, + "297": -0.8500000000000294, + "298": 70.54999999999998, + "299": 48.1499999999999, + "300": 60.54999999999992, + "301": 43.79999999999999, + "302": 7.649999999999999, + "303": 70.10000000000004, + "304": -53.04999999999992, + "305": 7.450000000000016, + "306": 72.5999999999999, + "307": 50.99999999999997, + "308": -56.74999999999993, + "309": 74.25000000000001, + "310": 62.89999999999995, + "311": 81.40000000000008, + "312": 38.44999999999995, + "313": 60.8, + "314": 64.2999999999999, + "315": 46.04999999999995, + "316": 83.64999999999989, + "317": 54.6499999999999, + "318": 49.04999999999994, + "319": 70.84999999999998, + "320": 82.55000000000007, + "321": -45.05000000000001, + "322": 87.00000000000003, + "323": 15.64999999999998, + "324": 30.400000000000013, + "325": 87.35000000000005, + "326": 72.29999999999991, + "327": 83.15000000000018, + "328": 47.70000000000001, + "329": -14.950000000000028, + "330": 51.64999999999997, + "331": 18.349999999999998, + "332": 64.99999999999993, + "333": 75.39999999999982, + "334": 89.40000000000009, + "335": 92.4500000000001, + "336": 51.7499999999999, + "337": 86.15000000000006, + "338": -5.399999999999977, + "339": 71.19999999999996, + "340": 91.20000000000002, + "341": 94.80000000000011, + "342": 67.64999999999999, + "343": 79.19999999999995, + "344": 75.89999999999988, + "345": 80.19999999999996, + "346": 49.74999999999992, + "347": 41.29999999999985, + "348": 62.74999999999999, + "349": 69.94999999999987, + "350": 8.29999999999995, + "351": 70.29999999999998, + "352": 20.80000000000006, + "353": 45.5499999999999, + "354": 20.799999999999958, + "355": 62.249999999999844, + "356": -23.85000000000003, + "357": -24.049999999999947, + "358": 49.74999999999986, + "359": 79.19999999999979, + "360": 4.000000000000057, + "361": 91.14999999999984, + "362": 43.74999999999987, + "363": 80.30000000000018, + "364": 97.70000000000012, + "365": 53.64999999999987, + "366": 68.1999999999999, + "367": 88.75000000000006, + "368": 73.54999999999984, + "369": 91.95000000000003, + "370": 11.849999999999994, + "371": 19.849999999999948, + "372": 61.299999999999876, + "373": 89.70000000000016, + "374": 55.35000000000001, + "375": 6.149999999999993, + "376": 83.7, + "377": 76.29999999999981, + "378": 83.95000000000006, + "379": 66.34999999999992, + "380": 87.60000000000008, + "381": 99.25000000000014, + "382": 83.7000000000001, + "383": 86.00000000000009, + "384": 56.849999999999845, + "385": 85.04999999999994, + "386": 85.50000000000007, + "387": 14.39999999999993, + "388": 83.24999999999993, + "389": 75.89999999999985, + "390": 57.4499999999999, + "391": 77.84999999999994, + "392": 72.94999999999989, + "393": 98.15000000000025, + "394": 42.29999999999998, + "395": 76.90000000000003, + "396": 87.15000000000012, + "397": 80.30000000000011, + "398": 76.75000000000009, + "399": 66.00000000000011, + "400": 45.550000000000026, + "401": 59.39999999999992, + "402": 101.75000000000003, + "403": 79.30000000000008, + "404": 63.199999999999875, + "405": 84.6000000000001, + "406": 43.94999999999997, + "407": 71.54999999999987, + "408": 70.05000000000013, + "409": 63.649999999999906, + "410": 86.65000000000005, + "411": 88.55000000000007, + "412": 30.500000000000007, + "413": 79.99999999999996, + "414": 84.10000000000004, + "415": 59.14999999999998, + "416": 86.35000000000012, + "417": 87.50000000000006, + "418": 69.3, + "419": 1.399999999999986, + "420": 73.10000000000005, + "421": 70.35, + "422": 64.19999999999993, + "423": 85.15, + "424": 51.54999999999998, + "425": 78.6000000000001, + "426": 91.89999999999995, + "427": 74.65000000000006, + "428": 40.00000000000005, + "429": 83.65, + "430": 88.20000000000006, + "431": 83.75, + "432": 33.849999999999966, + "433": 69.64999999999995, + "434": 62.849999999999895, + "435": 92.05000000000007, + "436": 57.94999999999996, + "437": 80.30000000000008, + "438": 83.70000000000005, + "439": 88.20000000000005, + "440": 59.84999999999983, + "441": 75.45000000000002, + "442": 90.24999999999986, + "443": 37.349999999999945, + "444": 75.20000000000005, + "445": 75.35000000000005, + "446": 67.15000000000003, + "447": 95.45000000000012, + "448": 81.5, + "449": 78.10000000000002, + "450": 42.45000000000002, + "451": 70.54999999999987, + "452": 46.29999999999997, + "453": -23.650000000000013, + "454": 77.24999999999999, + "455": 71.50000000000001, + "456": 76.20000000000003, + "457": 63.249999999999915, + "458": 88.94999999999997, + "459": 68.29999999999998, + "460": 84.39999999999998, + "461": 79.99999999999999, + "462": 88.05000000000004, + "463": 53.650000000000006, + "464": 92.30000000000001, + "465": 79.39999999999996, + "466": 62.84999999999998, + "467": 69.45000000000006, + "468": 98.25000000000006, + "469": 70.3499999999999, + "470": 83.50000000000004, + "471": 87.74999999999996, + "472": 95.6000000000001, + "473": 79.35000000000004, + "474": 83.75000000000006, + "475": 71.69999999999996, + "476": 79.09999999999991, + "477": 95.45000000000002, + "478": 69.6499999999999, + "479": 75.34999999999997, + "480": 46.350000000000016, + "481": 53.799999999999905, + "482": 81.59999999999998, + "483": 70.64999999999979, + "484": 70.25000000000006, + "485": 79.05, + "486": 64.14999999999999, + "487": 75.75, + "488": 58.69999999999997, + "489": 101.95, + "490": 93.90000000000012, + "491": 93.6999999999999, + "492": 39.04999999999996, + "493": 92.65000000000005, + "494": 22.399999999999995, + "495": 64.4499999999999, + "496": 60.59999999999985, + "497": 88.80000000000008, + "498": 76.04999999999997, + "499": 75.20000000000007, + "500": 87.75, + "501": 47.39999999999992, + "502": 94.00000000000004, + "503": 75.09999999999997, + "504": 54.15000000000006, + "505": 79.50000000000003, + "506": 96.25000000000007, + "507": 81.00000000000009, + "508": 89.30000000000013, + "509": 26.40000000000001, + "510": 89.35000000000007, + "511": 85.8499999999998, + "512": 79.45000000000003, + "513": 84.65000000000003, + "514": 70.55000000000004, + "515": 68.95, + "516": 64.74999999999997, + "517": 85.84999999999982, + "518": 98.40000000000019, + "519": 42.749999999999986, + "520": 10.200000000000022, + "521": 59.29999999999982, + "522": 82.04999999999995, + "523": 75.74999999999994, + "524": 59.64999999999996, + "525": 88.84999999999998, + "526": 84.14999999999993, + "527": 76.60000000000007, + "528": 66.09999999999998, + "529": 101.80000000000021, + "530": 84.65000000000006, + "531": 16.149999999999977, + "532": 79.29999999999987, + "533": 74.20000000000002, + "534": 72.95000000000007, + "535": 66.70000000000002, + "536": 58.24999999999998, + "537": 55.49999999999997, + "538": 72.75000000000006, + "539": 60.0999999999999, + "540": 65.39999999999998, + "541": 48.949999999999974, + "542": 90.75, + "543": 75.39999999999982, + "544": 76.10000000000004, + "545": 83.85, + "546": 49.29999999999989, + "547": 56.999999999999964, + "548": 78.80000000000008, + "549": 93.74999999999982, + "550": 87.6000000000001, + "551": 60.24999999999998, + "552": 86.90000000000003, + "553": 64.55, + "554": 65.99999999999997, + "555": 84.10000000000005, + "556": 58.34999999999999, + "557": 87.55, + "558": 75.70000000000005, + "559": 91.00000000000003, + "560": 79.25000000000003, + "561": 80.89999999999995, + "562": 87.35000000000016, + "563": 28.30000000000002, + "564": 79.74999999999999, + "565": 86.1, + "566": 78.75, + "567": 79.10000000000001, + "568": 66.79999999999998, + "569": 28.250000000000007, + "570": 94.15000000000013, + "571": 57.29999999999993, + "572": 63.449999999999946, + "573": 44.649999999999956, + "574": 69.89999999999999, + "575": 81.74999999999999, + "576": 68.09999999999995, + "577": 77.45000000000012, + "578": 77.24999999999997, + "579": 82.1, + "580": 94.70000000000019, + "581": 93.20000000000014, + "582": 55.89999999999997, + "583": 82.20000000000002, + "584": 98.00000000000013, + "585": 79.75, + "586": 88.20000000000013, + "587": -9.599999999999978, + "588": 99.70000000000017, + "589": 74.7, + "590": 94.35, + "591": 62.449999999999974, + "592": 52.149999999999906, + "593": 59.450000000000024, + "594": 18.89999999999996, + "595": 91.8, + "596": 76.74999999999999, + "597": 73.5000000000001, + "598": 71.04999999999995, + "599": 73.35000000000001, + "600": 77.10000000000002, + "601": 76.94999999999999, + "602": 68.7, + "603": 79.89999999999998, + "604": 57.35000000000002, + "605": 54.29999999999995, + "606": 70.69999999999992, + "607": 94.55000000000011, + "608": 95.55000000000004, + "609": 93.24999999999994, + "610": 70.65, + "611": 72.64999999999992, + "612": 81.99999999999999, + "613": 61.74999999999992, + "614": 91.85000000000004, + "615": 91.8000000000001, + "616": 80.90000000000012, + "617": 77.75000000000003, + "618": 87.00000000000009, + "619": 77.40000000000003, + "620": 38.55, + "621": 86.90000000000009, + "622": 2.850000000000019, + "623": 86.75, + "624": 62.24999999999996, + "625": 93.55000000000008, + "626": 84.40000000000006, + "627": 80.65, + "628": 79.95000000000012, + "629": 87.34999999999975, + "630": 66.19999999999993, + "631": 72.89999999999995, + "632": 44.59999999999989, + "633": 87.44999999999996, + "634": 73.1500000000001, + "635": 86.10000000000008, + "636": 2.2000000000000037, + "637": 46.90000000000004, + "638": 77.45000000000002, + "639": 63.69999999999996, + "640": 83.90000000000002, + "641": 65.40000000000003, + "642": 93.40000000000005, + "643": 80.50000000000006, + "644": 93.09999999999997, + "645": 79.44999999999997, + "646": 83.40000000000002, + "647": 74.75000000000003, + "648": 59.34999999999996, + "649": 86.70000000000003, + "650": 65.39999999999996, + "651": 7.7499999999999565, + "652": 82.6500000000001, + "653": 73.14999999999995, + "654": 97.80000000000025, + "655": 92.64999999999998, + "656": 75.20000000000002, + "657": 91.4000000000001, + "658": 93.65000000000015, + "659": 99.6, + "660": 91.50000000000009, + "661": 78.99999999999999, + "662": 42.049999999999976, + "663": 22.299999999999997, + "664": 52.649999999999935, + "665": 97.05000000000011, + "666": 85.45000000000012, + "667": 30.25, + "668": 78.65000000000006, + "669": 72.84999999999998, + "670": 64.69999999999996, + "671": 86.44999999999985, + "672": 89.14999999999996, + "673": 86.25000000000009, + "674": 20.300000000000026, + "675": 91.69999999999999, + "676": 102.60000000000008, + "677": 67.19999999999993, + "678": 102.3, + "679": 65.34999999999994, + "680": 78.34999999999991, + "681": 49.89999999999994, + "682": 94.40000000000013, + "683": 82.10000000000016, + "684": 50.24999999999996, + "685": 45.999999999999865, + "686": 93.50000000000017, + "687": 50.29999999999993, + "688": 55.54999999999995, + "689": 51.54999999999988, + "690": 65.0999999999999, + "691": 80.69999999999999, + "692": 41.59999999999987, + "693": 95.54999999999994, + "694": 87.14999999999996, + "695": 80.90000000000006, + "696": 60.89999999999995, + "697": 86.05000000000005, + "698": 83.45000000000005, + "699": 61.349999999999966, + "700": 83.80000000000001, + "701": 74.59999999999992, + "702": 87.85000000000012, + "703": 94.50000000000018, + "704": 55.049999999999926, + "705": 82.00000000000001, + "706": 41.499999999999964, + "707": 77.79999999999998, + "708": 64.44999999999996, + "709": 72.05, + "710": 89.05000000000015, + "711": 67.19999999999999, + "712": 74.0000000000001, + "713": 89.64999999999999, + "714": 81.1, + "715": 86.45000000000013, + "716": 85.19999999999996, + "717": 84.65000000000003, + "718": 55.9499999999999, + "719": 85.10000000000004, + "720": 70.20000000000003, + "721": 99.54999999999998, + "722": 76.75000000000003, + "723": 58.40000000000001, + "724": 84.75000000000006, + "725": 83.70000000000012, + "726": 68.74999999999996, + "727": 34.35000000000004, + "728": 88.00000000000009, + "729": 66.09999999999995, + "730": 83.54999999999998, + "731": 98.35, + "732": 87.35, + "733": 80.05000000000003, + "734": 86.69999999999992, + "735": 95.55000000000018, + "736": 86.39999999999998, + "737": 87.69999999999999, + "738": 87.29999999999998, + "739": 101.75000000000009, + "740": 69.55000000000001, + "741": 81.45000000000002, + "742": 84.64999999999996, + "743": 61.79999999999997, + "744": 87.04999999999998, + "745": 84.15000000000002, + "746": 64.3, + "747": 41.849999999999994, + "748": 73.94999999999993, + "749": 31.999999999999964, + "750": 67.70000000000002, + "751": 78.10000000000001, + "752": 76.24999999999999, + "753": 71.60000000000001, + "754": 59.35000000000002, + "755": 83.00000000000009, + "756": 45.70000000000002, + "757": 77.65000000000005, + "758": 57.39999999999994, + "759": 89.15, + "760": 74.49999999999996, + "761": 100.55000000000001, + "762": 73.05, + "763": 97.5500000000001, + "764": 75.10000000000004, + "765": 49.90000000000005, + "766": 65.94999999999999, + "767": 69.00000000000006, + "768": 92.60000000000001, + "769": 93.65000000000008, + "770": 89.4000000000001, + "771": 35.25000000000004, + "772": 75.65000000000015, + "773": 96.0, + "774": 81.70000000000013, + "775": 104.74999999999994, + "776": 87.75000000000011, + "777": 86.39999999999995, + "778": 47.39999999999997, + "779": 63.54999999999999, + "780": 45.499999999999986, + "781": 79.55000000000001, + "782": 69.0, + "783": 80.75, + "784": 88.89999999999996, + "785": 87.00000000000013, + "786": 80.85, + "787": 69.39999999999989, + "788": 10.550000000000004, + "789": 71.04999999999997, + "790": 68.5, + "791": 81.25000000000006, + "792": 61.849999999999916, + "793": 75.75000000000009, + "794": 91.25000000000009, + "795": 66.19999999999997, + "796": 104.60000000000005, + "797": 82.25000000000004, + "798": 57.55000000000004, + "799": 98.99999999999994, + "800": 78.34999999999997, + "801": 71.25000000000004, + "802": 88.74999999999997, + "803": 67.49999999999996, + "804": 89.2, + "805": 88.05000000000001, + "806": 88.75000000000003, + "807": 87.14999999999999, + "808": 67.89999999999998, + "809": 79.45000000000002, + "810": 69.75000000000001, + "811": 87.5, + "812": 97.20000000000006, + "813": 90.30000000000003, + "814": 86.30000000000003, + "815": 77.24999999999996, + "816": 83.30000000000003, + "817": 77.75000000000009, + "818": 93.20000000000003, + "819": 100.95000000000007, + "820": 98.89999999999999, + "821": 55.249999999999986, + "822": 93.65, + "823": 63.750000000000014, + "824": 63.29999999999987, + "825": 79.44999999999999, + "826": 98.99999999999999, + "827": 79.39999999999998, + "828": 98.95000000000019, + "829": 88.30000000000001, + "830": 67.74999999999991, + "831": 103.65000000000026, + "832": 71.14999999999999, + "833": 32.14999999999998, + "834": 76.8000000000001, + "835": 71.40000000000005, + "836": 100.40000000000012, + "837": 81.90000000000009, + "838": 88.25000000000003, + "839": 107.0, + "840": 94.65000000000013, + "841": 83.7, + "842": 92.00000000000003, + "843": 74.2, + "844": 83.30000000000001, + "845": 42.80000000000003, + "846": 90.00000000000007, + "847": 91.45000000000007, + "848": 4.449999999999992, + "849": 62.89999999999994, + "850": 87.20000000000003, + "851": 104.14999999999999, + "852": 101.15000000000006, + "853": 61.39999999999993, + "854": 78.85000000000002, + "855": 92.10000000000005, + "856": 43.84999999999989, + "857": 76.84999999999997, + "858": 63.94999999999994, + "859": 88.90000000000018, + "860": 49.64999999999999, + "861": 98.45000000000003, + "862": 84.90000000000002, + "863": 80.0, + "864": 55.49999999999997, + "865": 75.39999999999992, + "866": 78.95000000000005, + "867": 65.04999999999998, + "868": 99.4, + "869": 72.09999999999995, + "870": 92.15000000000006, + "871": 75.70000000000007, + "872": 82.40000000000002, + "873": 61.59999999999994, + "874": 62.549999999999905, + "875": 82.55000000000003, + "876": 93.85000000000007, + "877": 92.50000000000001, + "878": 68.14999999999999, + "879": 96.55000000000004, + "880": 98.59999999999997, + "881": 92.24999999999994, + "882": 46.25000000000004, + "883": 94.50000000000003, + "884": 84.79999999999998, + "885": 58.65000000000004, + "886": 89.10000000000004, + "887": 81.20000000000007, + "888": 52.29999999999995, + "889": 89.30000000000003, + "890": 79.65000000000003, + "891": 75.45000000000002, + "892": 94.40000000000009, + "893": 66.04999999999997, + "894": 95.65000000000005, + "895": 83.00000000000004, + "896": 60.899999999999956, + "897": 90.50000000000007, + "898": 83.65000000000012, + "899": 82.10000000000002, + "900": 72.94999999999995, + "901": 78.00000000000007, + "902": 81.6, + "903": 81.20000000000003, + "904": 79.15000000000006, + "905": -13.099999999999985, + "906": 73.15000000000008, + "907": 87.44999999999999, + "908": 98.40000000000008, + "909": 77.04999999999998, + "910": 90.95000000000002, + "911": 71.94999999999995, + "912": 94.05000000000001, + "913": 79.19999999999999, + "914": 89.05, + "915": 74.69999999999993, + "916": 78.20000000000002, + "917": 85.69999999999987, + "918": 85.49999999999997, + "919": 80.09999999999997, + "920": 88.60000000000014, + "921": 73.1, + "922": 77.64999999999998, + "923": 68.44999999999992, + "924": 66.19999999999995, + "925": 76.75, + "926": 78.80000000000005, + "927": 76.09999999999994, + "928": 77.10000000000001, + "929": 85.64999999999999, + "930": 80.89999999999998, + "931": 77.74999999999999, + "932": 90.55000000000007, + "933": 90.30000000000005, + "934": 82.30000000000003, + "935": 75.70000000000002, + "936": 71.84999999999997, + "937": 91.40000000000008, + "938": 93.89999999999995, + "939": 81.39999999999998, + "940": 88.64999999999995, + "941": 74.04999999999998, + "942": 86.29999999999998, + "943": 99.35000000000008, + "944": 69.24999999999991, + "945": 82.75, + "946": 76.80000000000004, + "947": 82.15000000000005, + "948": 84.64999999999995, + "949": 72.09999999999998, + "950": 94.60000000000007, + "951": 85.55, + "952": 80.00000000000003, + "953": 83.80000000000003, + "954": 89.85000000000001, + "955": 94.65000000000005, + "956": 53.699999999999896, + "957": 67.89999999999996, + "958": 72.49999999999997, + "959": 85.85, + "960": 94.2, + "961": 86.0500000000001, + "962": 94.6, + "963": 80.94999999999996, + "964": 91.09999999999995, + "965": 77.39999999999993, + "966": 84.85, + "967": 74.94999999999999, + "968": 93.7, + "969": -73.14999999999999, + "970": 85.00000000000011, + "971": 90.40000000000008, + "972": 79.64999999999999, + "973": 92.45000000000005, + "974": 76.49999999999999, + "975": 89.39999999999998, + "976": 89.6500000000001, + "977": 87.55000000000014, + "978": 82.00000000000013, + "979": 82.74999999999997, + "980": 85.24999999999999, + "981": 86.60000000000002, + "982": 82.15000000000009, + "983": 82.64999999999999, + "984": 98.0, + "985": 93.20000000000014, + "986": 84.40000000000013, + "987": 105.50000000000004, + "988": 87.70000000000009, + "989": 71.45000000000009, + "990": 89.80000000000004, + "991": 90.90000000000012, + "992": 72.94999999999999, + "993": 80.55, + "994": 35.000000000000014, + "995": 74.55000000000003, + "996": 71.15, + "997": 97.70000000000016, + "998": 72.50000000000003, + "999": 78.49999999999996, + "1000": 84.69999999999993 + }, + "2": { + "1": -23.94999999999995, + "2": -49.90000000000008, + "3": -22.449999999999953, + "4": -59.45000000000012, + "5": -34.400000000000034, + "6": -46.650000000000134, + "7": -62.400000000000105, + "8": -19.099999999999962, + "9": -62.25000000000007, + "10": -29.04999999999994, + "11": -94.5, + "12": -23.149999999999952, + "13": -18.24999999999997, + "14": -28.699999999999985, + "15": -15.349999999999975, + "16": -24.099999999999998, + "17": -14.59999999999998, + "18": -19.549999999999986, + "19": -65.85000000000001, + "20": -90.90000000000008, + "21": -17.799999999999965, + "22": -19.249999999999954, + "23": -28.24999999999999, + "24": -18.34999999999997, + "25": -40.45000000000013, + "26": -9.849999999999994, + "27": -18.649999999999952, + "28": -57.55000000000009, + "29": -21.34999999999996, + "30": -92.2, + "31": -4.099999999999985, + "32": -44.85000000000006, + "33": -14.449999999999982, + "34": -22.099999999999955, + "35": -0.3999999999999757, + "36": -28.19999999999997, + "37": -24.04999999999997, + "38": -35.399999999999984, + "39": -5.299999999999976, + "40": -18.44999999999997, + "41": -18.19999999999997, + "42": -21.749999999999957, + "43": -13.299999999999985, + "44": -22.399999999999967, + "45": -68.55000000000007, + "46": -14.449999999999983, + "47": -14.449999999999985, + "48": -16.84999999999998, + "49": -14.299999999999983, + "50": -21.14999999999996, + "51": -10.149999999999988, + "52": -21.149999999999956, + "53": -69.45000000000009, + "54": -21.34999999999996, + "55": -22.749999999999954, + "56": -65.65000000000009, + "57": -19.04999999999996, + "58": -5.400000000000012, + "59": -6.549999999999999, + "60": -11.250000000000037, + "61": -22.79999999999995, + "62": 3.5500000000000247, + "63": -101.4, + "64": -26.800000000000022, + "65": -21.799999999999958, + "66": -0.34999999999999876, + "67": -19.549999999999965, + "68": -14.799999999999985, + "69": -11.299999999999985, + "70": -77.45, + "71": -2.3499999999999863, + "72": -18.599999999999973, + "73": -59.05000000000015, + "74": 3.1500000000000474, + "75": -16.149999999999974, + "76": -45.14999999999997, + "77": -20.24999999999996, + "78": -2.150000000000001, + "79": -14.299999999999981, + "80": -19.04999999999996, + "81": -82.14999999999984, + "82": -12.24999999999998, + "83": -18.04999999999997, + "84": -103.04999999999998, + "85": -87.44999999999999, + "86": -11.399999999999988, + "87": -16.149999999999974, + "88": -12.899999999999986, + "89": -77.69999999999989, + "90": -100.7, + "91": -13.299999999999951, + "92": -19.64999999999996, + "93": -51.80000000000011, + "94": 6.7, + "95": -54.900000000000006, + "96": -19.199999999999967, + "97": -14.949999999999985, + "98": -80.6, + "99": -21.599999999999955, + "100": 2.1000000000000387, + "101": -20.449999999999946, + "102": -2.0499999999999936, + "103": -17.69999999999997, + "104": 18.50000000000001, + "105": 4.95000000000006, + "106": -89.80000000000001, + "107": -17.999999999999968, + "108": -23.599999999999948, + "109": -13.149999999999984, + "110": 1.9000000000000068, + "111": -18.29999999999997, + "112": -18.04999999999998, + "113": -23.29999999999995, + "114": -11.149999999999975, + "115": -19.349999999999966, + "116": -11.449999999999992, + "117": -10.199999999999996, + "118": -13.84999999999997, + "119": -46.70000000000005, + "120": -10.099999999999996, + "121": -0.3499999999999561, + "122": -7.950000000000016, + "123": -81.99999999999999, + "124": -47.75, + "125": -27.699999999999946, + "126": -16.049999999999983, + "127": -96.05000000000004, + "128": -9.749999999999991, + "129": -15.799999999999951, + "130": -19.699999999999964, + "131": 21.250000000000068, + "132": -54.30000000000002, + "133": -22.250000000000036, + "134": -16.00000000000004, + "135": 30.449999999999783, + "136": -50.05000000000005, + "137": 1.1000000000000034, + "138": -11.599999999999993, + "139": -68.59999999999997, + "140": -11.299999999999981, + "141": -12.649999999999995, + "142": -41.95000000000004, + "143": 3.399999999999988, + "144": -103.59999999999998, + "145": -78.95000000000002, + "146": 8.050000000000026, + "147": 35.2999999999999, + "148": 12.45000000000006, + "149": -12.649999999999991, + "150": 33.24999999999973, + "151": -15.29999999999998, + "152": 45.2999999999998, + "153": 46.7499999999999, + "154": 6.049999999999996, + "155": -19.949999999999964, + "156": -43.90000000000001, + "157": -77.74999999999996, + "158": -85.60000000000001, + "159": -8.100000000000055, + "160": 11.400000000000048, + "161": 23.8999999999999, + "162": -10.24999999999999, + "163": -12.149999999999997, + "164": -21.650000000000002, + "165": 0.9000000000000052, + "166": 32.19999999999984, + "167": 34.64999999999988, + "168": -56.70000000000009, + "169": -14.249999999999984, + "170": 4.050000000000061, + "171": -2.4999999999999574, + "172": -6.049999999999995, + "173": 15.100000000000058, + "174": -0.6999999999999624, + "175": -41.900000000000006, + "176": 15.400000000000032, + "177": 28.149999999999988, + "178": 5.00000000000004, + "179": 54.54999999999982, + "180": 11.150000000000034, + "181": -38.99999999999996, + "182": -7.899999999999989, + "183": 35.499999999999915, + "184": -2.3500000000000694, + "185": 38.39999999999983, + "186": -4.749999999999997, + "187": 62.84999999999978, + "188": -66.59999999999997, + "189": 6.900000000000055, + "190": 7.100000000000053, + "191": 38.69999999999987, + "192": 22.050000000000075, + "193": 11.200000000000026, + "194": -29.450000000000045, + "195": 19.400000000000027, + "196": -46.59999999999997, + "197": 2.9000000000000057, + "198": 5.349999999999998, + "199": 95.50000000000016, + "200": 14.799999999999992, + "201": -43.35000000000001, + "202": -9.69999999999999, + "203": 46.79999999999993, + "204": 27.600000000000037, + "205": -6.849999999999995, + "206": 10.800000000000017, + "207": 5.000000000000054, + "208": -36.49999999999997, + "209": 11.599999999999923, + "210": 68.69999999999972, + "211": 50.79999999999981, + "212": 27.29999999999995, + "213": 59.74999999999975, + "214": 45.199999999999775, + "215": -40.55000000000008, + "216": 12.499999999999911, + "217": 10.150000000000016, + "218": 35.69999999999986, + "219": 68.44999999999989, + "220": -9.899999999999993, + "221": 53.89999999999991, + "222": 20.800000000000043, + "223": 19.499999999999968, + "224": 10.300000000000033, + "225": 55.14999999999975, + "226": -77.85, + "227": 94.45000000000013, + "228": 10.900000000000016, + "229": 81.30000000000011, + "230": 51.999999999999815, + "231": 40.599999999999845, + "232": 57.79999999999981, + "233": 40.34999999999978, + "234": 67.74999999999991, + "235": 43.79999999999982, + "236": 8.249999999999982, + "237": 21.650000000000038, + "238": -16.550000000000082, + "239": 27.69999999999988, + "240": 63.699999999999875, + "241": 81.29999999999977, + "242": -0.1000000000000445, + "243": 102.45000000000016, + "244": 2.799999999999963, + "245": 12.500000000000007, + "246": -13.249999999999993, + "247": 29.049999999999958, + "248": 27.849999999999966, + "249": 39.94999999999989, + "250": 15.250000000000064, + "251": 32.04999999999983, + "252": -10.150000000000006, + "253": -25.750000000000078, + "254": 17.449999999999967, + "255": 16.400000000000027, + "256": 40.25000000000001, + "257": 42.59999999999985, + "258": 57.09999999999992, + "259": 4.850000000000008, + "260": 72.34999999999994, + "261": 96.65000000000016, + "262": -7.4500000000000055, + "263": 77.84999999999985, + "264": 97.05000000000021, + "265": 93.30000000000013, + "266": 23.899999999999977, + "267": 51.49999999999994, + "268": 55.899999999999785, + "269": 18.800000000000047, + "270": 104.05000000000013, + "271": 82.89999999999989, + "272": 56.349999999999845, + "273": -47.49999999999999, + "274": 77.99999999999997, + "275": 73.14999999999999, + "276": 74.09999999999995, + "277": 39.199999999999854, + "278": 98.5000000000002, + "279": 48.949999999999854, + "280": 19.95000000000007, + "281": 81.75000000000006, + "282": 59.24999999999983, + "283": 80.60000000000008, + "284": 32.69999999999988, + "285": 84.85000000000002, + "286": 78.20000000000016, + "287": 39.749999999999964, + "288": 51.89999999999977, + "289": 62.64999999999981, + "290": 78.80000000000011, + "291": 95.4000000000001, + "292": 87.5, + "293": 61.54999999999989, + "294": 100.09999999999975, + "295": 97.60000000000015, + "296": 97.80000000000013, + "297": 34.84999999999997, + "298": 53.69999999999983, + "299": 47.20000000000002, + "300": 46.69999999999986, + "301": -28.450000000000014, + "302": 34.64999999999996, + "303": 73.39999999999985, + "304": 33.65000000000004, + "305": 45.249999999999936, + "306": 58.399999999999906, + "307": 33.500000000000036, + "308": 86.89999999999998, + "309": 71.90000000000005, + "310": -3.849999999999973, + "311": 55.84999999999991, + "312": 27.249999999999964, + "313": 104.65000000000026, + "314": 60.64999999999993, + "315": 33.24999999999982, + "316": 80.64999999999982, + "317": 54.29999999999978, + "318": 86.7500000000001, + "319": 83.85000000000002, + "320": 103.70000000000022, + "321": 86.60000000000001, + "322": 84.10000000000001, + "323": 92.30000000000004, + "324": 80.64999999999978, + "325": 78.24999999999997, + "326": 73.49999999999991, + "327": 76.50000000000016, + "328": 75.30000000000001, + "329": 67.54999999999983, + "330": 25.149999999999967, + "331": 70.90000000000005, + "332": 85.65000000000008, + "333": 31.550000000000008, + "334": 44.39999999999997, + "335": 86.0999999999999, + "336": 76.24999999999997, + "337": 75.29999999999983, + "338": 72.14999999999988, + "339": 44.64999999999984, + "340": 98.70000000000013, + "341": 51.40000000000001, + "342": 92.90000000000012, + "343": 55.19999999999993, + "344": 91.70000000000017, + "345": 84.39999999999992, + "346": 57.85000000000003, + "347": 74.4499999999999, + "348": 64.14999999999996, + "349": 59.10000000000002, + "350": 91.80000000000005, + "351": 87.00000000000001, + "352": 77.4, + "353": 58.84999999999995, + "354": 34.64999999999998, + "355": -13.350000000000028, + "356": 66.69999999999992, + "357": 92.80000000000014, + "358": 26.150000000000016, + "359": 50.09999999999994, + "360": 68.90000000000003, + "361": -2.5000000000000266, + "362": 76.94999999999985, + "363": 52.34999999999998, + "364": -24.150000000000013, + "365": 66.19999999999982, + "366": 65.19999999999996, + "367": 82.99999999999984, + "368": 89.65000000000018, + "369": 91.79999999999977, + "370": 35.89999999999997, + "371": 94.75000000000016, + "372": 44.19999999999991, + "373": 72.5, + "374": 60.14999999999987, + "375": 73.99999999999994, + "376": 39.64999999999995, + "377": 106.25000000000021, + "378": 94.7499999999998, + "379": 89.25000000000009, + "380": 74.39999999999995, + "381": 55.84999999999986, + "382": 12.049999999999995, + "383": 59.549999999999905, + "384": 41.249999999999886, + "385": 69.09999999999994, + "386": 87.15000000000008, + "387": 71.20000000000022, + "388": 56.249999999999964, + "389": 85.09999999999981, + "390": 80.45000000000002, + "391": 84.50000000000003, + "392": 90.15000000000009, + "393": 57.34999999999978, + "394": 73.60000000000014, + "395": 75.59999999999987, + "396": 61.59999999999992, + "397": 73.29999999999998, + "398": 84.15000000000003, + "399": -17.650000000000013, + "400": 87.30000000000011, + "401": 17.25000000000002, + "402": 82.54999999999987, + "403": 63.94999999999984, + "404": 92.10000000000015, + "405": 82.65000000000006, + "406": 80.35000000000004, + "407": 42.749999999999964, + "408": 73.04999999999998, + "409": 101.2000000000001, + "410": 86.59999999999992, + "411": 33.20000000000009, + "412": 69.49999999999984, + "413": 104.3000000000002, + "414": 39.549999999999955, + "415": 90.9000000000002, + "416": 101.05000000000018, + "417": 94.05000000000018, + "418": 79.60000000000004, + "419": 99.90000000000002, + "420": 96.00000000000018, + "421": 104.8500000000002, + "422": 47.99999999999991, + "423": 96.09999999999974, + "424": 33.89999999999998, + "425": 36.94999999999998, + "426": 23.199999999999886, + "427": 54.5499999999999, + "428": 106.05000000000025, + "429": 75.84999999999997, + "430": 59.399999999999956, + "431": 94.90000000000015, + "432": 68.39999999999993, + "433": 45.04999999999996, + "434": 75.64999999999999, + "435": 87.65000000000005, + "436": 66.64999999999993, + "437": 85.90000000000009, + "438": 80.25000000000004, + "439": 97.55000000000015, + "440": 77.60000000000002, + "441": 91.35000000000001, + "442": 86.89999999999996, + "443": 51.09999999999994, + "444": 45.69999999999996, + "445": 47.649999999999906, + "446": 41.35000000000009, + "447": 75.44999999999995, + "448": 34.60000000000001, + "449": 92.54999999999976, + "450": 88.99999999999999, + "451": 30.499999999999986, + "452": 14.849999999999962, + "453": 33.29999999999994, + "454": 89.15000000000012, + "455": 55.24999999999989, + "456": 93.44999999999983, + "457": 74.10000000000004, + "458": 82.50000000000009, + "459": 68.60000000000007, + "460": 72.3499999999999, + "461": 85.49999999999996, + "462": 69.39999999999982, + "463": 82.10000000000007, + "464": -4.749999999999981, + "465": 87.80000000000001, + "466": 60.49999999999993, + "467": 93.0499999999998, + "468": 91.10000000000016, + "469": 30.799999999999972, + "470": -5.299999999999995, + "471": 57.699999999999896, + "472": 29.299999999999947, + "473": 83.90000000000009, + "474": -16.349999999999973, + "475": 64.99999999999989, + "476": 52.049999999999955, + "477": 86.0499999999998, + "478": 97.70000000000014, + "479": 83.9999999999998, + "480": 60.99999999999989, + "481": 50.94999999999992, + "482": 91.20000000000009, + "483": 22.95000000000002, + "484": 46.24999999999988, + "485": 102.05000000000013, + "486": 94.45000000000014, + "487": 105.55000000000008, + "488": 72.44999999999985, + "489": 68.79999999999994, + "490": 71.09999999999984, + "491": 92.19999999999978, + "492": 35.35000000000004, + "493": 82.39999999999998, + "494": -73.30000000000001, + "495": 89.19999999999975, + "496": 46.14999999999994, + "497": 55.649999999999906, + "498": 19.45, + "499": 58.44999999999991, + "500": 11.350000000000058, + "501": 41.24999999999997, + "502": 44.50000000000001, + "503": 90.04999999999994, + "504": 94.8499999999998, + "505": 103.24999999999976, + "506": 30.24999999999979, + "507": 55.94999999999997, + "508": 10.200000000000045, + "509": 90.99999999999977, + "510": 75.19999999999976, + "511": 87.64999999999978, + "512": 87.39999999999978, + "513": 78.65, + "514": 71.14999999999984, + "515": 86.4499999999998, + "516": 50.049999999999905, + "517": 96.64999999999974, + "518": 19.60000000000002, + "519": 51.299999999999784, + "520": 87.79999999999976, + "521": 92.89999999999976, + "522": 48.54999999999996, + "523": 75.24999999999999, + "524": 97.75000000000001, + "525": 68.49999999999986, + "526": 91.09999999999974, + "527": 91.19999999999979, + "528": 109.60000000000007, + "529": 83.04999999999981, + "530": 97.24999999999983, + "531": 97.39999999999975, + "532": 9.650000000000027, + "533": 90.34999999999977, + "534": 38.949999999999996, + "535": 92.20000000000012, + "536": 94.99999999999991, + "537": -49.05000000000001, + "538": 71.94999999999996, + "539": -9.999999999999984, + "540": 12.65000000000001, + "541": 80.34999999999998, + "542": 101.50000000000018, + "543": 29.19999999999999, + "544": 93.34999999999994, + "545": 111.00000000000026, + "546": 60.0499999999999, + "547": 69.80000000000001, + "548": 40.25000000000002, + "549": 98.04999999999976, + "550": 92.85000000000016, + "551": 48.74999999999994, + "552": 82.90000000000002, + "553": 26.09999999999998, + "554": 101.35000000000011, + "555": 54.79999999999994, + "556": 104.40000000000023, + "557": 100.19999999999975, + "558": 69.34999999999994, + "559": 97.00000000000014, + "560": 65.9499999999999, + "561": 102.74999999999974, + "562": 75.95000000000002, + "563": 97.00000000000016, + "564": 89.60000000000011, + "565": 93.84999999999977, + "566": 101.75000000000018, + "567": 52.649999999999814, + "568": 98.54999999999977, + "569": 97.2500000000001, + "570": 102.14999999999976, + "571": 105.7000000000002, + "572": 109.09999999999995, + "573": -75.50000000000004, + "574": -14.35000000000003, + "575": 93.9000000000001, + "576": 95.54999999999977, + "577": 92.59999999999981, + "578": 82.94999999999983, + "579": -0.4999999999999982, + "580": 46.9999999999999, + "581": 55.09999999999993, + "582": 97.89999999999978, + "583": 104.14999999999976, + "584": 80.40000000000003, + "585": -2.6500000000000106, + "586": 96.60000000000012, + "587": 102.49999999999989, + "588": 67.84999999999991, + "589": 98.19999999999992, + "590": 93.8, + "591": 102.80000000000018, + "592": 96.9000000000001, + "593": 98.95000000000014, + "594": 111.30000000000021, + "595": 65.14999999999974, + "596": 58.7999999999998, + "597": 54.5999999999999, + "598": -34.39999999999996, + "599": -2.6999999999999753, + "600": 104.45, + "601": 53.249999999999815, + "602": 103.60000000000005, + "603": 107.05000000000021, + "604": 85.90000000000006, + "605": 23.549999999999997, + "606": 35.0499999999999, + "607": 100.00000000000014, + "608": 99.89999999999975, + "609": 84.14999999999982, + "610": 91.99999999999979, + "611": 91.45000000000013, + "612": 105.99999999999996, + "613": 95.45000000000006, + "614": 101.94999999999986, + "615": 87.84999999999998, + "616": 101.99999999999973, + "617": 73.74999999999983, + "618": 59.39999999999977, + "619": 98.59999999999978, + "620": 106.40000000000022, + "621": 107.30000000000024, + "622": 60.749999999999915, + "623": 97.35000000000012, + "624": 48.89999999999996, + "625": -9.249999999999988, + "626": 46.94999999999994, + "627": -8.250000000000005, + "628": 66.99999999999989, + "629": 101.39999999999976, + "630": 56.7499999999999, + "631": 104.9000000000002, + "632": 39.099999999999945, + "633": 37.199999999999996, + "634": 98.10000000000016, + "635": 108.15000000000015, + "636": 109.9000000000002, + "637": 62.59999999999994, + "638": 69.34999999999975, + "639": 96.10000000000021, + "640": 8.99999999999999, + "641": 102.6000000000002, + "642": 10.700000000000001, + "643": 102.70000000000022, + "644": 88.39999999999975, + "645": 107.34999999999977, + "646": 24.549999999999986, + "647": 80.34999999999978, + "648": 55.09999999999996, + "649": 23.85, + "650": 101.85000000000016, + "651": 65.49999999999996, + "652": 99.50000000000017, + "653": 88.45000000000007, + "654": 103.10000000000021, + "655": 95.39999999999999, + "656": 94.60000000000012, + "657": 42.099999999999966, + "658": 75.64999999999992, + "659": 93.60000000000001, + "660": 85.59999999999998, + "661": 100.40000000000002, + "662": 91.19999999999978, + "663": 55.649999999999835, + "664": 72.54999999999997, + "665": 52.64999999999994, + "666": 97.94999999999978, + "667": 95.40000000000008, + "668": 102.15000000000008, + "669": 38.34999999999995, + "670": 95.60000000000016, + "671": 93.19999999999978, + "672": 83.30000000000007, + "673": 53.699999999999946, + "674": 78.49999999999983, + "675": 52.199999999999925, + "676": 100.54999999999977, + "677": 99.60000000000008, + "678": 103.3000000000002, + "679": 71.99999999999989, + "680": 75.20000000000007, + "681": 98.49999999999976, + "682": 103.20000000000013, + "683": 94.20000000000007, + "684": 50.39999999999977, + "685": 55.549999999999955, + "686": 95.85000000000007, + "687": 101.64999999999986, + "688": 38.099999999999945, + "689": 95.54999999999995, + "690": 94.25000000000014, + "691": 97.59999999999975, + "692": 96.19999999999976, + "693": 94.75000000000013, + "694": 60.8999999999999, + "695": 63.64999999999982, + "696": 42.04999999999994, + "697": 102.80000000000018, + "698": 79.50000000000001, + "699": 24.10000000000001, + "700": 78.44999999999979, + "701": 82.85000000000004, + "702": 42.94999999999994, + "703": 95.44999999999997, + "704": 14.949999999999973, + "705": 75.65, + "706": 94.15000000000013, + "707": 98.94999999999983, + "708": 97.74999999999977, + "709": 103.50000000000016, + "710": 99.69999999999978, + "711": 104.44999999999973, + "712": 51.249999999999915, + "713": 101.99999999999973, + "714": 69.49999999999987, + "715": 94.60000000000016, + "716": 55.349999999999895, + "717": 68.19999999999978, + "718": 106.70000000000022, + "719": 55.69999999999992, + "720": 96.85000000000015, + "721": 51.499999999999936, + "722": 66.79999999999997, + "723": -25.849999999999962, + "724": 5.400000000000026, + "725": 17.449999999999996, + "726": 100.34999999999977, + "727": 59.999999999999936, + "728": 82.80000000000005, + "729": 100.20000000000019, + "730": 98.69999999999975, + "731": 92.65000000000009, + "732": 64.04999999999974, + "733": 90.54999999999995, + "734": 42.79999999999994, + "735": 65.14999999999992, + "736": 100.74999999999974, + "737": 94.59999999999981, + "738": 96.64999999999978, + "739": 83.99999999999984, + "740": 86.19999999999973, + "741": 80.34999999999982, + "742": 102.05000000000011, + "743": 76.69999999999983, + "744": 92.54999999999978, + "745": 21.999999999999943, + "746": 53.99999999999976, + "747": 101.24999999999974, + "748": 99.40000000000013, + "749": 97.24999999999976, + "750": 97.70000000000006, + "751": -44.60000000000012, + "752": 109.54999999999991, + "753": 93.29999999999978, + "754": 85.64999999999979, + "755": 50.199999999999974, + "756": 10.45000000000006, + "757": 99.99999999999974, + "758": 97.74999999999974, + "759": 93.59999999999974, + "760": 62.949999999999875, + "761": 60.39999999999989, + "762": 100.39999999999976, + "763": 103.04999999999974, + "764": 101.24999999999974, + "765": 82.39999999999982, + "766": 106.89999999999976, + "767": -25.600000000000044, + "768": 92.19999999999976, + "769": 100.74999999999989, + "770": 99.19999999999975, + "771": 102.65000000000019, + "772": 103.89999999999975, + "773": -4.300000000000005, + "774": 100.14999999999978, + "775": 11.500000000000014, + "776": 100.14999999999975, + "777": 104.44999999999978, + "778": 57.099999999999916, + "779": 77.55000000000007, + "780": -43.90000000000004, + "781": 98.69999999999979, + "782": 102.19999999999976, + "783": 94.49999999999993, + "784": 99.54999999999976, + "785": 102.04999999999977, + "786": 96.04999999999977, + "787": 77.24999999999983, + "788": 100.80000000000015, + "789": 96.95000000000006, + "790": 61.099999999999866, + "791": 94.74999999999977, + "792": 96.44999999999978, + "793": 79.29999999999984, + "794": 91.30000000000007, + "795": 56.59999999999992, + "796": 89.09999999999978, + "797": 104.99999999999982, + "798": 51.79999999999992, + "799": 98.50000000000004, + "800": 104.59999999999985, + "801": 6.400000000000054, + "802": 97.15000000000005, + "803": 97.84999999999977, + "804": 94.14999999999976, + "805": 48.14999999999977, + "806": 104.24999999999976, + "807": 98.14999999999976, + "808": 101.34999999999977, + "809": 97.59999999999977, + "810": 99.55000000000018, + "811": 97.29999999999977, + "812": 98.29999999999974, + "813": 29.349999999999973, + "814": 78.39999999999985, + "815": 103.49999999999972, + "816": 87.10000000000005, + "817": 97.94999999999975, + "818": 104.49999999999976, + "819": 102.3999999999999, + "820": 11.950000000000015, + "821": 93.39999999999976, + "822": 84.69999999999975, + "823": 84.14999999999982, + "824": 95.79999999999978, + "825": 97.44999999999983, + "826": 96.79999999999973, + "827": 84.09999999999977, + "828": 50.04999999999992, + "829": 97.5499999999998, + "830": 100.69999999999979, + "831": 101.44999999999975, + "832": 104.34999999999974, + "833": 101.99999999999984, + "834": 86.04999999999988, + "835": 100.44999999999976, + "836": 99.19999999999976, + "837": 101.99999999999974, + "838": 99.1999999999998, + "839": 99.49999999999976, + "840": 102.8999999999999, + "841": 98.99999999999974, + "842": 105.29999999999987, + "843": 99.59999999999975, + "844": 95.74999999999974, + "845": 100.39999999999985, + "846": 48.149999999999935, + "847": 101.29999999999976, + "848": 101.74999999999976, + "849": 101.09999999999994, + "850": 99.29999999999978, + "851": 104.39999999999975, + "852": 103.34999999999977, + "853": 97.79999999999977, + "854": 100.24999999999977, + "855": 109.09999999999977, + "856": 99.99999999999973, + "857": 102.74999999999976, + "858": 102.59999999999975, + "859": 105.49999999999972, + "860": 98.59999999999978, + "861": -82.19999999999999, + "862": 109.34999999999981, + "863": 109.99999999999999, + "864": 102.29999999999983, + "865": 105.39999999999974, + "866": 52.64999999999995, + "867": -86.0, + "868": 102.39999999999976, + "869": 101.59999999999977, + "870": 100.14999999999974, + "871": 94.94999999999978, + "872": 104.39999999999975, + "873": -77.1, + "874": 115.05000000000001, + "875": 106.19999999999973, + "876": 103.19999999999973, + "877": 107.99999999999973, + "878": -72.1, + "879": -0.39999999999995595, + "880": 104.29999999999976, + "881": 103.0499999999998, + "882": 67.99999999999982, + "883": 108.29999999999974, + "884": -3.79999999999999, + "885": 101.64999999999989, + "886": 32.600000000000016, + "887": 106.89999999999974, + "888": 101.54999999999978, + "889": 107.99999999999973, + "890": 105.59999999999975, + "891": 100.94999999999973, + "892": 103.84999999999972, + "893": 106.09999999999974, + "894": 25.699999999999875, + "895": 106.99999999999987, + "896": 104.14999999999978, + "897": 105.59999999999972, + "898": 101.74999999999976, + "899": 102.64999999999972, + "900": 103.64999999999975, + "901": -38.89999999999997, + "902": -76.25, + "903": 69.64999999999986, + "904": 45.94999999999985, + "905": -79.6, + "906": 112.44999999999997, + "907": 99.24999999999976, + "908": 104.04999999999973, + "909": 103.19999999999976, + "910": 101.99999999999977, + "911": 108.34999999999987, + "912": 105.49999999999973, + "913": 104.09999999999977, + "914": -22.15, + "915": 104.79999999999974, + "916": 104.24999999999973, + "917": 103.84999999999972, + "918": 81.94999999999978, + "919": -73.30000000000001, + "920": 109.65000000000002, + "921": 103.69999999999976, + "922": 100.39999999999978, + "923": -54.999999999999964, + "924": 101.94999999999976, + "925": 106.14999999999972, + "926": -75.19999999999999, + "927": -1.7499999999999891, + "928": 96.09999999999981, + "929": 112.3499999999998, + "930": 102.64999999999972, + "931": 102.94999999999973, + "932": 105.34999999999974, + "933": 68.34999999999972, + "934": -72.8, + "935": 106.09999999999984, + "936": 101.24999999999976, + "937": -34.250000000000085, + "938": 103.54999999999977, + "939": 98.79999999999977, + "940": 105.09999999999974, + "941": 107.29999999999973, + "942": 107.39999999999978, + "943": 84.49999999999983, + "944": 102.24999999999974, + "945": 45.99999999999982, + "946": 103.59999999999974, + "947": 78.94999999999987, + "948": 107.34999999999971, + "949": 93.84999999999978, + "950": -61.25000000000002, + "951": 110.14999999999978, + "952": 98.64999999999975, + "953": 101.99999999999977, + "954": 105.49999999999973, + "955": 104.69999999999997, + "956": 77.99999999999973, + "957": -70.7, + "958": 104.99999999999973, + "959": 76.84999999999984, + "960": -65.85000000000002, + "961": 99.89999999999976, + "962": 102.69999999999978, + "963": 95.44999999999978, + "964": 111.44999999999978, + "965": 100.14999999999972, + "966": 102.34999999999974, + "967": 104.29999999999973, + "968": 103.84999999999977, + "969": 104.44999999999973, + "970": 87.19999999999978, + "971": 101.04999999999988, + "972": 79.24999999999974, + "973": 82.5499999999998, + "974": 102.24999999999976, + "975": -37.200000000000074, + "976": 73.39999999999985, + "977": 104.49999999999976, + "978": 101.09999999999975, + "979": 101.74999999999973, + "980": 79.19999999999972, + "981": 107.29999999999973, + "982": 102.24999999999977, + "983": 103.39999999999974, + "984": 96.4999999999998, + "985": 106.24999999999974, + "986": 91.44999999999979, + "987": 91.34999999999977, + "988": 104.19999999999975, + "989": -70.5, + "990": 99.64999999999976, + "991": 104.29999999999976, + "992": -68.7, + "993": -9.149999999999995, + "994": 104.99999999999974, + "995": 100.54999999999977, + "996": 105.54999999999987, + "997": 103.29999999999976, + "998": 105.74999999999974, + "999": 97.59999999999975, + "1000": 103.34999999999978 + }, + "3": { + "1": -52.700000000000074, + "2": -12.399999999999986, + "3": -20.949999999999957, + "4": -60.450000000000095, + "5": -11.249999999999998, + "6": -22.099999999999955, + "7": -4.699999999999981, + "8": -48.75000000000002, + "9": -19.94999999999996, + "10": -21.649999999999956, + "11": -33.850000000000044, + "12": -84.89999999999998, + "13": -23.04999999999995, + "14": -68.20000000000002, + "15": -18.049999999999965, + "16": -49.050000000000075, + "17": -26.499999999999932, + "18": -59.8000000000001, + "19": -17.049999999999972, + "20": -44.15000000000004, + "21": -93.85, + "22": -30.19999999999998, + "23": -93.59999999999991, + "24": -21.549999999999955, + "25": -89.1, + "26": -21.14999999999996, + "27": -16.649999999999977, + "28": -18.249999999999968, + "29": -11.499999999999993, + "30": -38.05000000000005, + "31": -16.24999999999997, + "32": -97.15, + "33": -20.999999999999957, + "34": -65.85000000000008, + "35": 4.099999999999987, + "36": -93.79999999999997, + "37": -33.15000000000002, + "38": -63.25000000000018, + "39": 1.35000000000004, + "40": -26.14999999999997, + "41": -0.3999999999999764, + "42": -11.84999999999998, + "43": -13.949999999999982, + "44": -95.69999999999996, + "45": -93.94999999999999, + "46": -12.69999999999998, + "47": 6.850000000000021, + "48": -62.5000000000001, + "49": -14.59999999999998, + "50": -44.600000000000065, + "51": -1.3499999999999843, + "52": -14.299999999999981, + "53": -22.25, + "54": -21.199999999999953, + "55": -14.64999999999998, + "56": -15.799999999999963, + "57": -52.00000000000008, + "58": -46.60000000000006, + "59": -19.199999999999967, + "60": -16.24999999999998, + "61": -89.6, + "62": -20.19999999999997, + "63": -22.349999999999955, + "64": -10.249999999999998, + "65": -10.94999999999999, + "66": -21.09999999999996, + "67": -21.799999999999955, + "68": -14.949999999999982, + "69": -88.45, + "70": -22.39999999999996, + "71": -40.200000000000045, + "72": -51.500000000000085, + "73": -53.599999999999966, + "74": -26.79999999999995, + "75": -14.499999999999986, + "76": -66.45000000000007, + "77": 5.149999999999989, + "78": 2.8499999999999917, + "79": -9.549999999999999, + "80": -27.700000000000042, + "81": -26.700000000000017, + "82": -15.899999999999977, + "83": -59.299999999999955, + "84": -14.099999999999996, + "85": -83.80000000000001, + "86": -17.49999999999996, + "87": -16.599999999999955, + "88": -16.599999999999973, + "89": -23.44999999999995, + "90": -15.69999999999998, + "91": -38.600000000000115, + "92": -22.64999999999996, + "93": -30.499999999999986, + "94": -96.5, + "95": -70.74999999999997, + "96": -2.9499999999999975, + "97": -40.099999999999994, + "98": -20.499999999999964, + "99": -37.20000000000006, + "100": -21.549999999999958, + "101": -7.4000000000000075, + "102": -4.099999999999991, + "103": -101.75000000000003, + "104": 2.400000000000013, + "105": -97.65, + "106": -16.150000000000006, + "107": -58.249999999999936, + "108": -86.85, + "109": -25.199999999999992, + "110": 0.5000000000000107, + "111": -82.29999999999981, + "112": -21.34999999999996, + "113": -55.150000000000084, + "114": -74.65000000000005, + "115": -83.5, + "116": -25.1, + "117": -56.75000000000009, + "118": -12.749999999999984, + "119": -20.29999999999996, + "120": -4.950000000000003, + "121": -10.100000000000005, + "122": -61.99999999999997, + "123": -0.5999999999999976, + "124": -79.20000000000005, + "125": -15.649999999999984, + "126": -15.34999999999998, + "127": 6.4000000000000075, + "128": -10.05, + "129": -17.199999999999974, + "130": -19.649999999999963, + "131": -93.39999999999996, + "132": -70.74999999999997, + "133": -8.0, + "134": 5.900000000000023, + "135": -9.299999999999994, + "136": -13.799999999999976, + "137": -7.350000000000021, + "138": -18.099999999999973, + "139": 16.44999999999999, + "140": -92.54999999999998, + "141": -4.2500000000000036, + "142": -0.8999999999999819, + "143": -20.94999999999996, + "144": -5.0000000000000036, + "145": -81.25, + "146": -70.95000000000002, + "147": -63.00000000000004, + "148": -85.30000000000007, + "149": -69.05000000000001, + "150": 11.849999999999968, + "151": -12.599999999999994, + "152": -14.849999999999985, + "153": -55.84999999999997, + "154": -8.550000000000008, + "155": -20.29999999999996, + "156": -13.59999999999998, + "157": -5.249999999999986, + "158": -8.399999999999983, + "159": -2.199999999999978, + "160": -88.34999999999997, + "161": -81.8, + "162": -83.65, + "163": -7.7499999999999964, + "164": -10.649999999999988, + "165": -90.30000000000013, + "166": -54.14999999999997, + "167": -20.19999999999996, + "168": -11.799999999999983, + "169": -35.050000000000004, + "170": -48.94999999999996, + "171": -66.6, + "172": 30.05000000000001, + "173": -80.05000000000004, + "174": 6.499999999999908, + "175": -85.55000000000001, + "176": -78.30000000000001, + "177": 9.700000000000045, + "178": -83.04999999999995, + "179": -6.439293542825908e-15, + "180": -21.649999999999956, + "181": -8.150000000000002, + "182": -73.10000000000001, + "183": 3.999999999999983, + "184": -78.5, + "185": -77.29999999999995, + "186": -14.199999999999982, + "187": -21.549999999999958, + "188": -69.60000000000002, + "189": -7.949999999999995, + "190": -13.899999999999979, + "191": -18.249999999999964, + "192": 1.3000000000000318, + "193": -4.999999999999987, + "194": -8.649999999999993, + "195": -12.849999999999989, + "196": -6.299999999999991, + "197": 4.700000000000062, + "198": -17.49999999999997, + "199": 6.250000000000008, + "200": -57.499999999999964, + "201": 0.5500000000000398, + "202": -15.449999999999978, + "203": -0.5999999999999763, + "204": -93.69999999999999, + "205": -12.099999999999994, + "206": 1.0500000000000098, + "207": -6.699999999999993, + "208": 59.74999999999974, + "209": -18.09999999999997, + "210": -64.85000000000001, + "211": -0.8999999999999713, + "212": 0.6000000000000199, + "213": -12.09999999999999, + "214": -1.8999999999999853, + "215": -84.85000000000001, + "216": -14.599999999999984, + "217": -27.199999999999985, + "218": -14.149999999999983, + "219": -21.799999999999955, + "220": -70.69999999999995, + "221": 2.9000000000000483, + "222": -8.399999999999993, + "223": -72.60000000000001, + "224": -12.099999999999989, + "225": -14.89999999999997, + "226": -13.249999999999988, + "227": 19.299999999999972, + "228": 34.69999999999985, + "229": -42.55000000000011, + "230": 31.299999999999933, + "231": -61.90000000000002, + "232": -2.24999999999996, + "233": 8.70000000000006, + "234": -24.749999999999968, + "235": -20.099999999999962, + "236": 5.600000000000053, + "237": -10.349999999999994, + "238": 1.9500000000000253, + "239": -1.699999999999972, + "240": 3.4000000000000457, + "241": -35.099999999999994, + "242": 34.44999999999986, + "243": 5.99999999999994, + "244": -14.799999999999983, + "245": -86.14999999999998, + "246": -6.999999999999979, + "247": -48.300000000000075, + "248": -15.350000000000001, + "249": -67.75, + "250": -2.4499999999999904, + "251": -62.2000000000001, + "252": 3.6000000000000156, + "253": -37.85000000000009, + "254": 28.399999999999896, + "255": -31.399999999999984, + "256": -59.94999999999995, + "257": -88.40000000000006, + "258": -82.0, + "259": 19.850000000000062, + "260": -72.40000000000002, + "261": -72.24999999999997, + "262": 11.89999999999998, + "263": 22.65000000000004, + "264": -9.999999999999988, + "265": -74.75, + "266": -86.44999999999997, + "267": -3.6499999999999737, + "268": -65.04999999999995, + "269": -4.550000000000001, + "270": 47.24999999999987, + "271": -2.0999999999999748, + "272": -8.200000000000006, + "273": 24.699999999999957, + "274": -2.7999999999999803, + "275": 3.9999999999999574, + "276": 11.100000000000062, + "277": 27.49999999999994, + "278": -19.549999999999965, + "279": -14.349999999999984, + "280": 18.95, + "281": -60.10000000000007, + "282": 13.600000000000001, + "283": -81.69999999999999, + "284": 54.749999999999744, + "285": 38.54999999999983, + "286": 30.749999999999876, + "287": 17.050000000000033, + "288": 40.949999999999925, + "289": -31.649999999999988, + "290": 22.94999999999995, + "291": 23.999999999999982, + "292": 26.74999999999995, + "293": 12.000000000000043, + "294": -50.60000000000001, + "295": -62.54999999999991, + "296": -2.650000000000011, + "297": -8.950000000000042, + "298": 12.650000000000077, + "299": -8.800000000000013, + "300": -69.75, + "301": 66.25000000000006, + "302": -13.749999999999986, + "303": -32.35, + "304": -5.899999999999976, + "305": -46.10000000000012, + "306": -40.299999999999955, + "307": -38.85000000000002, + "308": -42.550000000000004, + "309": -6.899999999999981, + "310": -12.899999999999995, + "311": -70.24999999999991, + "312": 82.44999999999987, + "313": -100.85, + "314": 2.0999999999999868, + "315": 24.44999999999995, + "316": 1.8000000000000018, + "317": 60.649999999999835, + "318": -12.299999999999994, + "319": 67.09999999999981, + "320": 12.199999999999948, + "321": 9.600000000000058, + "322": -41.45000000000006, + "323": -46.65000000000008, + "324": 42.45000000000004, + "325": -9.200000000000074, + "326": 62.74999999999987, + "327": -38.65000000000001, + "328": -7.0, + "329": 16.19999999999998, + "330": 21.450000000000074, + "331": -17.799999999999972, + "332": 56.649999999999984, + "333": 23.800000000000047, + "334": 1.2500000000000253, + "335": -72.30000000000001, + "336": 42.79999999999991, + "337": -13.599999999999994, + "338": 21.099999999999998, + "339": 10.450000000000077, + "340": -65.89999999999993, + "341": 56.499999999999766, + "342": 27.399999999999864, + "343": 103.7999999999998, + "344": -16.799999999999976, + "345": 27.149999999999924, + "346": -43.49999999999994, + "347": 5.249999999999986, + "348": 9.350000000000005, + "349": 104.45000000000009, + "350": 35.74999999999981, + "351": 63.54999999999974, + "352": 39.99999999999994, + "353": 84.80000000000015, + "354": 78.15000000000018, + "355": -55.3, + "356": 18.40000000000001, + "357": 48.849999999999795, + "358": -40.44999999999999, + "359": 30.500000000000036, + "360": 6.149999999999994, + "361": 79.09999999999995, + "362": 1.5499999999999847, + "363": 23.150000000000016, + "364": 19.100000000000065, + "365": 84.9499999999998, + "366": 16.149999999999995, + "367": 34.19999999999995, + "368": -81.50000000000001, + "369": -70.6, + "370": 88.59999999999985, + "371": 89.04999999999993, + "372": 88.24999999999989, + "373": 68.79999999999974, + "374": -1.7500000000000215, + "375": -45.150000000000006, + "376": 54.4499999999998, + "377": 50.29999999999988, + "378": 32.54999999999995, + "379": -19.750000000000007, + "380": 57.6999999999998, + "381": 43.79999999999988, + "382": 38.29999999999977, + "383": 3.7000000000000512, + "384": -0.30000000000001226, + "385": -0.14999999999996416, + "386": 85.29999999999986, + "387": 103.8500000000002, + "388": 65.74999999999974, + "389": 66.19999999999976, + "390": 34.350000000000016, + "391": 96.64999999999999, + "392": 75.64999999999976, + "393": 41.14999999999987, + "394": 76.49999999999977, + "395": 33.64999999999975, + "396": 54.34999999999991, + "397": 34.35000000000002, + "398": 7.900000000000023, + "399": 89.19999999999986, + "400": 100.09999999999988, + "401": 84.25000000000023, + "402": 104.74999999999983, + "403": 79.99999999999982, + "404": 101.49999999999974, + "405": 62.49999999999974, + "406": 104.55000000000032, + "407": 98.04999999999997, + "408": 38.55, + "409": 28.549999999999926, + "410": 11.549999999999999, + "411": 53.599999999999795, + "412": -41.39999999999997, + "413": 68.94999999999979, + "414": 40.700000000000024, + "415": -6.85, + "416": 8.55000000000005, + "417": 64.9999999999998, + "418": 16.400000000000045, + "419": 30.59999999999983, + "420": 96.65000000000003, + "421": 14.749999999999957, + "422": 8.400000000000006, + "423": 110.70000000000024, + "424": 79.64999999999984, + "425": 32.49999999999972, + "426": 85.14999999999978, + "427": 105.59999999999991, + "428": 98.54999999999971, + "429": 110.0999999999998, + "430": 47.749999999999744, + "431": 45.94999999999988, + "432": 23.55000000000006, + "433": 68.64999999999996, + "434": 2.0500000000000487, + "435": 87.49999999999976, + "436": 97.74999999999979, + "437": 97.74999999999991, + "438": 28.649999999999846, + "439": 0.1000000000000143, + "440": -70.49999999999994, + "441": 61.84999999999994, + "442": 73.19999999999978, + "443": 5.999999999999936, + "444": 27.400000000000013, + "445": 45.34999999999978, + "446": 12.400000000000034, + "447": 93.10000000000004, + "448": 86.89999999999979, + "449": 97.39999999999978, + "450": 72.34999999999998, + "451": -3.1999999999999886, + "452": 66.7499999999999, + "453": 97.64999999999976, + "454": -50.30000000000007, + "455": -35.3000000000001, + "456": 96.34999999999984, + "457": -77.9, + "458": 2.300000000000008, + "459": 14.55000000000003, + "460": 92.54999999999986, + "461": 3.2499999999999876, + "462": 39.99999999999978, + "463": 78.79999999999984, + "464": 82.50000000000011, + "465": 62.099999999999916, + "466": 68.14999999999989, + "467": 93.39999999999984, + "468": 101.09999999999972, + "469": 104.14999999999988, + "470": 99.3500000000001, + "471": 97.70000000000013, + "472": 105.15000000000025, + "473": 101.34999999999981, + "474": -25.45000000000001, + "475": 49.89999999999984, + "476": 95.75000000000011, + "477": 43.89999999999993, + "478": 27.500000000000078, + "479": 73.85000000000005, + "480": 83.19999999999976, + "481": 52.29999999999982, + "482": 80.60000000000001, + "483": 23.70000000000003, + "484": 80.6999999999999, + "485": 69.64999999999989, + "486": 53.74999999999987, + "487": 8.800000000000034, + "488": 97.09999999999977, + "489": 85.60000000000007, + "490": 63.999999999999766, + "491": 98.90000000000016, + "492": 36.04999999999975, + "493": 74.04999999999977, + "494": 16.299999999999997, + "495": 73.10000000000002, + "496": 61.949999999999974, + "497": 98.25000000000006, + "498": 72.34999999999987, + "499": -68.04999999999995, + "500": 106.65000000000016, + "501": 92.65, + "502": 65.89999999999989, + "503": -11.10000000000004, + "504": 76.2499999999999, + "505": 72.39999999999976, + "506": -76.59999999999994, + "507": 89.65, + "508": 19.999999999999993, + "509": 57.04999999999983, + "510": 45.09999999999995, + "511": 92.45, + "512": 83.24999999999993, + "513": 90.75000000000016, + "514": 11.300000000000015, + "515": 68.94999999999973, + "516": 95.35000000000002, + "517": 74.04999999999998, + "518": 17.7, + "519": 97.40000000000008, + "520": 44.89999999999996, + "521": 78.40000000000008, + "522": 67.69999999999975, + "523": 76.50000000000003, + "524": 55.24999999999992, + "525": 98.65000000000013, + "526": 24.84999999999996, + "527": 84.04999999999995, + "528": 68.59999999999982, + "529": 77.14999999999982, + "530": 98.80000000000004, + "531": 95.69999999999976, + "532": 75.04999999999978, + "533": 91.6999999999998, + "534": 97.95000000000005, + "535": 93.89999999999978, + "536": 98.30000000000013, + "537": 97.60000000000016, + "538": 75.85, + "539": -3.3999999999999995, + "540": 27.099999999999994, + "541": 74.34999999999977, + "542": -76.3, + "543": 102.65000000000019, + "544": 68.79999999999993, + "545": 95.19999999999973, + "546": 90.84999999999992, + "547": 95.59999999999974, + "548": 49.89999999999994, + "549": 87.15000000000013, + "550": 97.75000000000014, + "551": 107.39999999999976, + "552": 94.8000000000001, + "553": 75.44999999999999, + "554": 62.649999999999835, + "555": 87.20000000000005, + "556": 95.79999999999986, + "557": 95.49999999999979, + "558": 98.4999999999998, + "559": 55.799999999999756, + "560": 100.19999999999983, + "561": 96.79999999999973, + "562": 98.69999999999989, + "563": 92.95000000000014, + "564": 104.84999999999975, + "565": 92.99999999999993, + "566": 82.14999999999999, + "567": 94.54999999999973, + "568": 84.49999999999982, + "569": 66.69999999999983, + "570": 55.44999999999981, + "571": 99.64999999999974, + "572": 99.39999999999978, + "573": 95.09999999999977, + "574": 95.69999999999979, + "575": 92.89999999999978, + "576": 91.74999999999976, + "577": 101.89999999999975, + "578": 86.79999999999976, + "579": 95.29999999999993, + "580": 90.35000000000004, + "581": 33.249999999999865, + "582": 78.64999999999976, + "583": 73.14999999999986, + "584": 105.49999999999999, + "585": 52.09999999999982, + "586": 83.0999999999998, + "587": 33.14999999999998, + "588": 99.59999999999972, + "589": 59.14999999999975, + "590": 102.39999999999979, + "591": 51.299999999999876, + "592": 101.24999999999976, + "593": 98.80000000000004, + "594": 94.8999999999998, + "595": 81.39999999999986, + "596": 104.54999999999976, + "597": 103.74999999999974, + "598": 101.89999999999978, + "599": 105.94999999999972, + "600": 36.099999999999746, + "601": 105.19999999999973, + "602": 22.299999999999876, + "603": 93.24999999999976, + "604": 105.40000000000008, + "605": 99.09999999999978, + "606": -21.849999999999984, + "607": 88.89999999999979, + "608": 48.099999999999795, + "609": 90.29999999999977, + "610": 102.04999999999988, + "611": 84.2499999999998, + "612": 29.049999999999876, + "613": 89.54999999999978, + "614": 44.39999999999978, + "615": 73.24999999999977, + "616": 33.79999999999988, + "617": 101.94999999999975, + "618": 99.24999999999977, + "619": 74.79999999999978, + "620": 42.499999999999986, + "621": 99.49999999999973, + "622": 68.24999999999986, + "623": 63.849999999999916, + "624": 103.79999999999976, + "625": 82.59999999999975, + "626": 104.99999999999977, + "627": 98.0999999999998, + "628": 103.09999999999977, + "629": 75.44999999999978, + "630": 91.04999999999978, + "631": 100.99999999999974, + "632": 45.399999999999785, + "633": 102.64999999999978, + "634": 87.89999999999972, + "635": 103.19999999999973, + "636": 104.59999999999975, + "637": 94.39999999999984, + "638": 89.64999999999984, + "639": 84.99999999999974, + "640": 103.09999999999977, + "641": 98.39999999999979, + "642": 103.69999999999976, + "643": 12.50000000000004, + "644": 103.39999999999975, + "645": 11.500000000000085, + "646": 99.99999999999977, + "647": 98.04999999999976, + "648": 99.39999999999978, + "649": 102.69999999999976, + "650": 105.39999999999975, + "651": 96.49999999999974, + "652": 105.69999999999973, + "653": 74.24999999999983, + "654": 8.200000000000033, + "655": -78.75000000000003, + "656": 65.79999999999974, + "657": 98.99999999999976, + "658": 104.84999999999975, + "659": 96.64999999999978, + "660": 108.74999999999982, + "661": 100.09999999999977, + "662": 0.7500000000000273, + "663": 72.49999999999974, + "664": 100.44999999999978, + "665": 57.59999999999972, + "666": 109.29999999999978, + "667": 62.24999999999989, + "668": 100.09999999999974, + "669": 106.09999999999975, + "670": 90.09999999999978, + "671": 103.59999999999977, + "672": 68.69999999999976, + "673": 106.9499999999999, + "674": 105.19999999999973, + "675": 103.59999999999975, + "676": 99.69999999999975, + "677": -64.75000000000004, + "678": 71.49999999999989, + "679": 101.29999999999976, + "680": -71.85000000000001, + "681": 106.39999999999975, + "682": 110.45000000000005, + "683": 102.99999999999977, + "684": 99.39999999999976, + "685": 95.54999999999977, + "686": 100.19999999999975, + "687": 104.49999999999973, + "688": 96.69999999999978, + "689": 99.64999999999976, + "690": 81.99999999999977, + "691": 105.19999999999975, + "692": -29.650000000000013, + "693": 100.49999999999974, + "694": 92.04999999999976, + "695": 75.04999999999976, + "696": 103.79999999999974, + "697": 98.04999999999976, + "698": 98.80000000000007, + "699": 99.09999999999977, + "700": -21.800000000000065, + "701": 99.79999999999974, + "702": 107.84999999999974, + "703": 54.94999999999977, + "704": 102.24999999999974, + "705": 1.1500000000000625, + "706": 105.94999999999976, + "707": 102.09999999999972, + "708": 98.64999999999976, + "709": 104.49999999999976, + "710": 79.54999999999986, + "711": 104.39999999999974, + "712": 107.69999999999973, + "713": 78.8499999999998, + "714": 109.09999999999974, + "715": 99.84999999999975, + "716": 107.29999999999974, + "717": 103.84999999999974, + "718": 114.50000000000026, + "719": 105.19999999999975, + "720": 107.6499999999998, + "721": 104.59999999999982, + "722": 97.44999999999979, + "723": 99.14999999999975, + "724": -17.550000000000043, + "725": 106.49999999999973, + "726": 105.24999999999972, + "727": 104.89999999999974, + "728": 105.39999999999975, + "729": 100.19999999999973, + "730": 42.199999999999974, + "731": 107.74999999999974, + "732": 104.24999999999974, + "733": 97.89999999999975, + "734": -14.900000000000013, + "735": 106.39999999999979, + "736": 80.99999999999977, + "737": -79.25000000000001, + "738": 107.49999999999997, + "739": 62.99999999999994, + "740": 100.69999999999975, + "741": 19.30000000000002, + "742": 101.14999999999976, + "743": 101.99999999999977, + "744": 103.34999999999975, + "745": 98.84999999999975, + "746": 94.44999999999978, + "747": 105.39999999999975, + "748": 100.39999999999976, + "749": 104.04999999999977, + "750": 99.24999999999973, + "751": 102.39999999999975, + "752": 95.6999999999998, + "753": 112.2999999999998, + "754": 17.050000000000036, + "755": 103.89999999999976, + "756": 96.54999999999986, + "757": 99.74999999999979, + "758": 101.89999999999976, + "759": -28.45000000000005, + "760": 98.29999999999974, + "761": 100.64999999999974, + "762": 15.150000000000025, + "763": 101.49999999999977, + "764": 103.49999999999973, + "765": 102.44999999999978, + "766": 104.14999999999976, + "767": 103.19999999999976, + "768": 102.94999999999975, + "769": 89.14999999999974, + "770": 109.44999999999978, + "771": 99.84999999999978, + "772": 97.19999999999978, + "773": 95.99999999999976, + "774": 73.79999999999976, + "775": 96.29999999999977, + "776": 102.79999999999974, + "777": 104.94999999999975, + "778": 96.14999999999976, + "779": 105.54999999999973, + "780": 102.04999999999977, + "781": 51.14999999999986, + "782": 95.0999999999998, + "783": 76.39999999999988, + "784": 75.74999999999987, + "785": 83.64999999999989, + "786": 101.94999999999978, + "787": 105.44999999999975, + "788": 102.14999999999976, + "789": 108.79999999999974, + "790": 101.09999999999977, + "791": 103.84999999999977, + "792": -72.64999999999993, + "793": -20.750000000000032, + "794": 71.19999999999976, + "795": 11.150000000000066, + "796": 66.34999999999978, + "797": 103.69999999999976, + "798": 6.000000000000017, + "799": 103.24999999999976, + "800": 18.949999999999854, + "801": -1.700000000000117, + "802": 105.24999999999974, + "803": 104.49999999999976, + "804": 103.99999999999976, + "805": 104.34999999999975, + "806": 104.89999999999974, + "807": 105.9999999999999, + "808": 104.79999999999974, + "809": 99.74999999999977, + "810": 101.24999999999976, + "811": 106.84999999999977, + "812": 93.29999999999977, + "813": 103.94999999999976, + "814": 77.59999999999987, + "815": -77.05, + "816": 101.29999999999976, + "817": 93.7999999999998, + "818": 102.84999999999977, + "819": 101.39999999999978, + "820": 104.44999999999975, + "821": -39.34999999999999, + "822": 103.64999999999976, + "823": 59.799999999999756, + "824": 105.99999999999974, + "825": 59.24999999999977, + "826": -9.499999999999984, + "827": 57.09999999999977, + "828": 104.19999999999976, + "829": 103.24999999999977, + "830": 96.89999999999976, + "831": 104.94999999999976, + "832": 105.44999999999975, + "833": 101.04999999999978, + "834": 103.74999999999976, + "835": 103.64999999999976, + "836": 98.14999999999975, + "837": 102.19999999999978, + "838": 85.74999999999974, + "839": 103.99999999999976, + "840": -86.65, + "841": 106.04999999999973, + "842": 93.9499999999998, + "843": 103.19999999999976, + "844": 102.69999999999976, + "845": 103.24999999999977, + "846": 63.6999999999999, + "847": 103.19999999999976, + "848": 106.09999999999974, + "849": 101.49999999999976, + "850": 104.44999999999976, + "851": 104.64999999999976, + "852": 103.34999999999977, + "853": 102.94999999999978, + "854": 105.89999999999972, + "855": 52.79999999999995, + "856": 103.44999999999976, + "857": 104.04999999999976, + "858": 102.24999999999982, + "859": 104.24999999999976, + "860": 102.14999999999978, + "861": 104.14999999999975, + "862": 99.84999999999975, + "863": 97.24999999999974, + "864": 84.59999999999978, + "865": 103.24999999999977, + "866": 99.34999999999977, + "867": 98.74999999999977, + "868": 94.29999999999978, + "869": 98.54999999999976, + "870": 102.14999999999976, + "871": 104.59999999999975, + "872": 63.99999999999976, + "873": 103.14999999999976, + "874": 103.84999999999977, + "875": 104.29999999999974, + "876": 103.34999999999977, + "877": 102.59999999999977, + "878": 103.94999999999976, + "879": 104.19999999999975, + "880": -9.39999999999999, + "881": 104.79999999999976, + "882": 97.29999999999976, + "883": 101.29999999999978, + "884": 102.54999999999977, + "885": 103.64999999999976, + "886": 103.54999999999976, + "887": 98.39999999999976, + "888": 103.04999999999976, + "889": 100.99999999999976, + "890": 103.04999999999977, + "891": 98.44999999999978, + "892": 105.74999999999973, + "893": 102.94999999999976, + "894": 102.44999999999978, + "895": 103.34999999999977, + "896": 104.24999999999976, + "897": 105.44999999999973, + "898": 106.09999999999971, + "899": 98.2999999999998, + "900": 77.89999999999976, + "901": 103.99999999999976, + "902": 105.14999999999976, + "903": 104.79999999999977, + "904": 103.79999999999977, + "905": 103.74999999999974, + "906": 103.89999999999976, + "907": 103.29999999999977, + "908": 38.749999999999744, + "909": 103.59999999999977, + "910": 99.74999999999976, + "911": 103.69999999999979, + "912": 108.39999999999975, + "913": 104.04999999999977, + "914": 107.94999999999972, + "915": 107.34999999999972, + "916": 109.99999999999993, + "917": 107.54999999999995, + "918": 75.44999999999989, + "919": 110.29999999999991, + "920": 104.04999999999977, + "921": 103.34999999999977, + "922": 97.89999999999982, + "923": 104.64999999999974, + "924": 107.24999999999991, + "925": -58.34999999999999, + "926": 103.89999999999976, + "927": 106.84999999999972, + "928": 55.44999999999982, + "929": 113.19999999999999, + "930": 106.54999999999971, + "931": 104.09999999999977, + "932": 97.64999999999978, + "933": 71.39999999999982, + "934": 66.09999999999974, + "935": 107.39999999999982, + "936": -7.450000000000053, + "937": 104.79999999999991, + "938": 105.59999999999972, + "939": -71.2, + "940": 103.59999999999977, + "941": 103.89999999999976, + "942": -77.80000000000004, + "943": 110.44999999999989, + "944": 106.6999999999999, + "945": 112.39999999999998, + "946": -70.5, + "947": -74.29999999999995, + "948": 103.34999999999977, + "949": 93.19999999999985, + "950": 104.54999999999976, + "951": 106.14999999999974, + "952": 112.64999999999995, + "953": 50.39999999999981, + "954": 105.44999999999973, + "955": 101.94999999999978, + "956": 103.84999999999975, + "957": 104.64999999999976, + "958": 106.24999999999989, + "959": -11.90000000000002, + "960": 105.84999999999974, + "961": 109.09999999999977, + "962": 110.14999999999982, + "963": 1.1999999999999105, + "964": 107.54999999999973, + "965": 101.29999999999977, + "966": 107.04999999999973, + "967": 26.549999999999947, + "968": 107.14999999999972, + "969": 103.94999999999976, + "970": 104.04999999999977, + "971": 104.54999999999983, + "972": 103.24999999999977, + "973": 101.94999999999976, + "974": 103.99999999999974, + "975": 103.39999999999976, + "976": 86.39999999999974, + "977": 103.44999999999976, + "978": 103.29999999999977, + "979": 64.24999999999993, + "980": 100.99999999999977, + "981": 104.34999999999975, + "982": 105.94999999999973, + "983": -84.25, + "984": 26.599999999999902, + "985": -13.549999999999981, + "986": 88.64999999999984, + "987": 105.39999999999975, + "988": 109.24999999999979, + "989": 104.69999999999976, + "990": 104.94999999999975, + "991": 105.54999999999974, + "992": 108.79999999999983, + "993": 105.19999999999975, + "994": 105.8, + "995": 107.69999999999973, + "996": 102.89999999999978, + "997": 100.64999999999984, + "998": 104.7499999999998, + "999": 101.14999999999978, + "1000": 80.94999999999976 + }, + "4": { + "1": -20.949999999999964, + "2": -10.399999999999986, + "3": -14.949999999999978, + "4": -78.49999999999993, + "5": -28.65000000000001, + "6": -3.3999999999999915, + "7": -60.05000000000007, + "8": -20.29999999999996, + "9": -65.6500000000001, + "10": -56.50000000000015, + "11": -46.05000000000007, + "12": -35.15000000000002, + "13": -19.749999999999964, + "14": -20.44999999999996, + "15": -20.24999999999996, + "16": -14.549999999999983, + "17": -60.1500000000001, + "18": -35.80000000000006, + "19": -62.799999999999976, + "20": -40.85000000000005, + "21": -33.85000000000008, + "22": -89.4, + "23": -47.35000000000007, + "24": -73.95000000000002, + "25": -94.09999999999997, + "26": -23.04999999999995, + "27": -18.44999999999997, + "28": -12.449999999999983, + "29": -51.00000000000008, + "30": -29.95, + "31": -9.099999999999998, + "32": -17.59999999999997, + "33": -20.850000000000016, + "34": 4.29999999999999, + "35": -14.99999999999998, + "36": -9.749999999999991, + "37": -15.849999999999982, + "38": -16.999999999999975, + "39": -18.399999999999967, + "40": -14.04999999999998, + "41": -20.399999999999967, + "42": -26.099999999999945, + "43": -35.65000000000003, + "44": -18.149999999999974, + "45": -5.049999999999973, + "46": -75.25000000000001, + "47": -18.599999999999973, + "48": -10.050000000000013, + "49": -47.05000000000006, + "50": -78.5, + "51": -50.25000000000007, + "52": -59.450000000000095, + "53": -34.75000000000002, + "54": -71.55, + "55": -3.599999999999974, + "56": -39.350000000000115, + "57": 5.850000000000041, + "58": 18.099999999999966, + "59": -22.449999999999953, + "60": -98.94999999999999, + "61": -21.599999999999962, + "62": -27.549999999999986, + "63": 25.49999999999994, + "64": 10.050000000000022, + "65": -5.0999999999999845, + "66": -14.549999999999978, + "67": -1.400000000000015, + "68": -22.150000000000002, + "69": -38.450000000000045, + "70": -21.14999999999996, + "71": -8.500000000000007, + "72": -23.049999999999955, + "73": -1.9499999999999753, + "74": -15.54999999999998, + "75": -14.80000000000004, + "76": -3.6999999999999993, + "77": -86.4, + "78": -33.89999999999996, + "79": -101.79999999999998, + "80": 2.7000000000000233, + "81": -4.300000000000014, + "82": -22.44999999999998, + "83": -61.19999999999996, + "84": 6.200000000000013, + "85": -0.8499999999999759, + "86": -43.49999999999998, + "87": -71.15, + "88": -14.649999999999977, + "89": -81.94999999999993, + "90": -65.39999999999995, + "91": -88.75, + "92": 6.199999999999973, + "93": -8.099999999999987, + "94": -3.950000000000008, + "95": -15.099999999999978, + "96": 27.199999999999918, + "97": -2.449999999999987, + "98": -58.100000000000065, + "99": -16.24999999999997, + "100": 1.4000000000000197, + "101": -46.599999999999994, + "102": -56.5, + "103": -21.30000000000004, + "104": -2.0499999999999794, + "105": -19.449999999999985, + "106": 16.75000000000006, + "107": -17.89999999999997, + "108": -1.2500000000000242, + "109": -48.2, + "110": 4.800000000000038, + "111": 10.950000000000003, + "112": -16.449999999999974, + "113": -72.74999999999994, + "114": 9.749999999999964, + "115": -21.6, + "116": -42.15000000000005, + "117": -90.35, + "118": -41.79999999999999, + "119": -29.95000000000001, + "120": -5.399999999999983, + "121": 28.499999999999954, + "122": -8.300000000000013, + "123": -7.150000000000016, + "124": 11.40000000000001, + "125": 31.649999999999878, + "126": -40.35000000000002, + "127": -47.19999999999993, + "128": -70.60000000000002, + "129": -77.84999999999994, + "130": -1.799999999999969, + "131": -7.3499999999999925, + "132": -21.949999999999957, + "133": -28.250000000000032, + "134": -59.800000000000075, + "135": 14.250000000000018, + "136": -28.59999999999998, + "137": -2.5999999999999925, + "138": 4.150000000000039, + "139": -80.1, + "140": -8.499999999999998, + "141": -15.150000000000006, + "142": -33.79999999999998, + "143": 26.499999999999996, + "144": 10.200000000000053, + "145": 27.04999999999993, + "146": -13.699999999999974, + "147": -7.6, + "148": -12.049999999999995, + "149": -77.0, + "150": -80.95000000000002, + "151": -5.550000000000013, + "152": 13.650000000000023, + "153": 7.750000000000016, + "154": 35.14999999999982, + "155": 2.0000000000000124, + "156": -16.199999999999974, + "157": -4.199999999999997, + "158": 26.350000000000033, + "159": 0.3000000000000409, + "160": 17.099999999999987, + "161": -78.9, + "162": 3.8499999999999424, + "163": -1.5000000000000249, + "164": -83.3, + "165": 73.15000000000003, + "166": -5.150000000000011, + "167": -18.299999999999955, + "168": 46.34999999999983, + "169": -33.700000000000024, + "170": 23.44999999999998, + "171": 16.499999999999975, + "172": 16.349999999999977, + "173": -55.55000000000001, + "174": 7.399999999999983, + "175": -20.80000000000003, + "176": 1.5000000000000389, + "177": 51.99999999999991, + "178": -30.900000000000016, + "179": 19.69999999999998, + "180": -81.99999999999999, + "181": -10.599999999999994, + "182": -16.899999999999977, + "183": -10.799999999999992, + "184": -3.399999999999988, + "185": 7.500000000000024, + "186": 32.24999999999999, + "187": 58.74999999999989, + "188": -1.4999999999999907, + "189": 24.44999999999993, + "190": -1.3999999999999582, + "191": 14.25000000000001, + "192": 3.1500000000000044, + "193": -0.5500000000000052, + "194": 45.299999999999955, + "195": 69.64999999999995, + "196": 52.54999999999987, + "197": -26.500000000000036, + "198": 1.8000000000000194, + "199": -36.30000000000004, + "200": 33.54999999999989, + "201": 75.94999999999992, + "202": 48.149999999999835, + "203": -24.300000000000043, + "204": -15.950000000000001, + "205": 41.59999999999998, + "206": 82.85000000000001, + "207": 6.300000000000001, + "208": 10.099999999999959, + "209": 29.400000000000006, + "210": -52.70000000000008, + "211": 69.8, + "212": -23.25, + "213": 8.450000000000038, + "214": 53.24999999999989, + "215": 18.700000000000028, + "216": 43.84999999999996, + "217": 68.59999999999997, + "218": 22.199999999999914, + "219": 29.09999999999991, + "220": -52.19999999999995, + "221": 74.15000000000016, + "222": 21.70000000000005, + "223": 31.799999999999983, + "224": -4.599999999999987, + "225": 9.199999999999987, + "226": -6.249999999999983, + "227": -28.14999999999994, + "228": 46.550000000000054, + "229": 69.44999999999987, + "230": 54.29999999999994, + "231": 55.049999999999834, + "232": 75.35000000000005, + "233": 50.09999999999984, + "234": 40.04999999999994, + "235": 40.34999999999977, + "236": 67.50000000000006, + "237": 55.04999999999997, + "238": 50.44999999999999, + "239": 6.8500000000000085, + "240": 45.199999999999996, + "241": 55.44999999999989, + "242": 9.850000000000012, + "243": 79.04999999999998, + "244": -2.9499999999999957, + "245": 35.20000000000002, + "246": 3.4000000000000186, + "247": 80.35000000000004, + "248": 21.90000000000002, + "249": 41.949999999999875, + "250": 23.55000000000003, + "251": 79.40000000000005, + "252": 17.050000000000058, + "253": 52.69999999999999, + "254": 35.04999999999999, + "255": 42.24999999999997, + "256": 26.250000000000007, + "257": 64.5999999999999, + "258": 49.69999999999991, + "259": 42.69999999999992, + "260": 83.39999999999999, + "261": 65.0999999999999, + "262": 67.14999999999996, + "263": 70.99999999999997, + "264": 83.60000000000004, + "265": 71.3, + "266": 6.100000000000051, + "267": -5.299999999999995, + "268": 72.5999999999999, + "269": 69.35000000000002, + "270": 46.59999999999998, + "271": 52.44999999999993, + "272": 69.84999999999992, + "273": 88.40000000000016, + "274": 84.90000000000003, + "275": 14.999999999999982, + "276": 78.55, + "277": 11.750000000000028, + "278": -0.14999999999996505, + "279": 73.45000000000006, + "280": 24.650000000000066, + "281": 47.59999999999991, + "282": 85.20000000000009, + "283": 48.999999999999886, + "284": 63.44999999999994, + "285": 71.89999999999996, + "286": 40.19999999999993, + "287": 24.249999999999915, + "288": 83.00000000000006, + "289": 78.64999999999993, + "290": 77.75000000000001, + "291": 79.65000000000015, + "292": 80.7500000000001, + "293": 68.00000000000001, + "294": 20.600000000000016, + "295": 59.299999999999876, + "296": 45.0999999999999, + "297": 55.19999999999997, + "298": 71.75000000000006, + "299": 97.65000000000012, + "300": 71.55000000000001, + "301": 68.34999999999998, + "302": 71.79999999999988, + "303": 84.04999999999998, + "304": 61.799999999999876, + "305": 71.20000000000002, + "306": 72.50000000000007, + "307": 64.39999999999996, + "308": 36.79999999999997, + "309": 79.49999999999999, + "310": 74.5499999999998, + "311": 61.24999999999996, + "312": 80.59999999999997, + "313": 58.50000000000003, + "314": 83.85000000000004, + "315": 86.20000000000007, + "316": 88.44999999999992, + "317": 74.89999999999992, + "318": 69.54999999999994, + "319": 79.85000000000011, + "320": 56.25000000000001, + "321": 96.30000000000005, + "322": 86.40000000000013, + "323": 68.89999999999995, + "324": -22.399999999999952, + "325": 81.04999999999997, + "326": 75.90000000000005, + "327": 68.80000000000003, + "328": 74.39999999999996, + "329": 80.09999999999995, + "330": 97.4500000000001, + "331": 75.35000000000002, + "332": 85.00000000000003, + "333": 66.74999999999997, + "334": 39.79999999999995, + "335": 45.69999999999997, + "336": 84.70000000000002, + "337": 69.5500000000001, + "338": 84.75000000000001, + "339": 47.399999999999984, + "340": 73.09999999999997, + "341": 76.05, + "342": 96.24999999999991, + "343": 80.20000000000002, + "344": 69.99999999999997, + "345": 54.199999999999946, + "346": 91.39999999999992, + "347": 88.50000000000001, + "348": 48.99999999999996, + "349": 88.44999999999997, + "350": 57.44999999999997, + "351": -53.449999999999925, + "352": 101.30000000000003, + "353": 67.35000000000007, + "354": 51.44999999999999, + "355": 79.25000000000009, + "356": 67.14999999999999, + "357": 77.30000000000017, + "358": 64.84999999999997, + "359": 53.749999999999964, + "360": 103.90000000000008, + "361": 70.75000000000003, + "362": 72.00000000000004, + "363": 84.14999999999999, + "364": 100.79999999999998, + "365": 90.5000000000001, + "366": 71.19999999999996, + "367": 72.24999999999997, + "368": 46.050000000000004, + "369": 83.19999999999996, + "370": 68.99999999999996, + "371": 80.05, + "372": 81.05000000000007, + "373": 90.6, + "374": 83.05000000000005, + "375": 64.19999999999999, + "376": 46.00000000000002, + "377": 66.49999999999997, + "378": 86.04999999999997, + "379": 57.80000000000002, + "380": 45.64999999999997, + "381": 87.69999999999999, + "382": 75.89999999999995, + "383": 59.94999999999995, + "384": 87.35000000000008, + "385": 27.64999999999998, + "386": 15.000000000000037, + "387": 95.60000000000014, + "388": 88.80000000000004, + "389": 79.55000000000008, + "390": 97.34999999999998, + "391": 66.44999999999997, + "392": 91.0000000000001, + "393": 78.0, + "394": 96.35000000000004, + "395": 91.05000000000011, + "396": 96.25000000000006, + "397": 91.70000000000005, + "398": 78.95, + "399": 91.55000000000001, + "400": 80.84999999999997, + "401": 89.85000000000005, + "402": 43.99999999999994, + "403": 59.35000000000008, + "404": 67.55000000000003, + "405": 81.30000000000011, + "406": 85.30000000000001, + "407": 106.69999999999999, + "408": 60.349999999999966, + "409": 82.85000000000001, + "410": 70.00000000000004, + "411": 75.5500000000002, + "412": 84.04999999999998, + "413": 85.25000000000004, + "414": 81.6000000000001, + "415": 76.39999999999995, + "416": 38.449999999999996, + "417": 91.30000000000004, + "418": 7.150000000000002, + "419": 81.30000000000005, + "420": 73.10000000000004, + "421": 64.70000000000002, + "422": 69.30000000000001, + "423": 48.39999999999997, + "424": 63.19999999999998, + "425": 75.54999999999997, + "426": 65.04999999999997, + "427": -0.79999999999999, + "428": 84.35000000000001, + "429": 86.35000000000012, + "430": 80.1, + "431": 35.349999999999966, + "432": 66.09999999999995, + "433": 84.05, + "434": 41.29999999999996, + "435": 80.45000000000003, + "436": 91.74999999999999, + "437": 83.80000000000003, + "438": 98.35000000000007, + "439": 84.00000000000006, + "440": 86.75000000000004, + "441": 86.69999999999996, + "442": 72.55000000000007, + "443": 78.55, + "444": 60.14999999999999, + "445": 55.39999999999998, + "446": 75.60000000000004, + "447": 58.49999999999999, + "448": 99.40000000000002, + "449": 81.70000000000006, + "450": 80.6, + "451": 74.20000000000006, + "452": 73.14999999999995, + "453": 63.200000000000024, + "454": 73.85000000000005, + "455": 86.7, + "456": 73.75000000000006, + "457": 70.49999999999989, + "458": 56.59999999999996, + "459": 90.00000000000009, + "460": 71.5, + "461": 78.99999999999997, + "462": 92.45000000000006, + "463": 86.15000000000006, + "464": 77.15000000000005, + "465": 78.49999999999997, + "466": 87.10000000000001, + "467": 82.00000000000004, + "468": 76.79999999999995, + "469": 83.45000000000005, + "470": 77.35000000000002, + "471": 62.449999999999946, + "472": 78.19999999999999, + "473": 93.40000000000005, + "474": 71.55000000000001, + "475": 92.10000000000005, + "476": 81.25000000000011, + "477": 75.54999999999998, + "478": 85.89999999999996, + "479": 81.4, + "480": 74.25000000000001, + "481": 89.55000000000018, + "482": 87.80000000000004, + "483": 84.9, + "484": 90.50000000000001, + "485": 101.20000000000012, + "486": 81.05000000000001, + "487": 70.3500000000001, + "488": 40.59999999999998, + "489": 76.70000000000007, + "490": 80.70000000000006, + "491": 59.84999999999995, + "492": 96.39999999999996, + "493": 77.24999999999999, + "494": 49.59999999999995, + "495": 39.50000000000003, + "496": 68.6, + "497": 100.45000000000002, + "498": 55.49999999999989, + "499": 40.34999999999987, + "500": 54.25000000000003, + "501": 87.50000000000006, + "502": 49.449999999999925, + "503": 92.85000000000015, + "504": 81.85000000000007, + "505": 83.95000000000003, + "506": 91.50000000000016, + "507": 59.75000000000004, + "508": 81.50000000000004, + "509": 25.549999999999958, + "510": 76.55000000000005, + "511": 33.64999999999999, + "512": 68.39999999999998, + "513": 64.5, + "514": 11.1, + "515": 86.7000000000001, + "516": 86.00000000000004, + "517": 59.3, + "518": 54.45000000000003, + "519": 83.80000000000014, + "520": 59.10000000000002, + "521": 44.35000000000003, + "522": 68.45000000000002, + "523": 91.65000000000002, + "524": 94.59999999999998, + "525": 65.29999999999997, + "526": 51.39999999999996, + "527": 69.05000000000004, + "528": 61.6, + "529": 98.40000000000019, + "530": 69.25000000000001, + "531": 65.00000000000003, + "532": 48.49999999999997, + "533": 94.85000000000011, + "534": 97.7, + "535": 75.30000000000004, + "536": 87.54999999999998, + "537": 101.8500000000001, + "538": 79.7999999999999, + "539": 76.85, + "540": 54.99999999999986, + "541": 85.30000000000004, + "542": 67.10000000000007, + "543": 53.85000000000008, + "544": -57.099999999999945, + "545": 66.45000000000005, + "546": 74.44999999999996, + "547": 84.65000000000008, + "548": 45.75000000000004, + "549": 59.55, + "550": 85.60000000000007, + "551": 58.649999999999956, + "552": 45.45000000000008, + "553": 51.200000000000045, + "554": 72.89999999999999, + "555": 88.95000000000002, + "556": 53.15000000000001, + "557": 2.1499999999999773, + "558": 64.04999999999997, + "559": 67.55000000000005, + "560": 80.45000000000006, + "561": 49.49999999999996, + "562": 99.70000000000002, + "563": 81.90000000000006, + "564": 92.55, + "565": 92.64999999999999, + "566": 71.25000000000006, + "567": 78.3500000000001, + "568": 77.20000000000006, + "569": 92.40000000000002, + "570": 107.24999999999997, + "571": -46.299999999999955, + "572": 92.25000000000001, + "573": 42.549999999999976, + "574": 69.7, + "575": 92.15000000000005, + "576": 45.6, + "577": 61.55000000000003, + "578": 15.70000000000006, + "579": 56.65000000000006, + "580": 96.10000000000002, + "581": 96.85000000000004, + "582": 31.74999999999995, + "583": 54.79999999999997, + "584": 87.54999999999995, + "585": 53.29999999999997, + "586": 72.80000000000001, + "587": 65.75000000000003, + "588": 99.20000000000002, + "589": 87.79999999999997, + "590": 87.75000000000018, + "591": 73.80000000000007, + "592": 53.05000000000007, + "593": 82.10000000000004, + "594": 39.79999999999998, + "595": 78.30000000000003, + "596": 71.15000000000003, + "597": 91.44999999999997, + "598": 65.89999999999992, + "599": 37.99999999999992, + "600": 83.85000000000002, + "601": 75.80000000000003, + "602": 80.65000000000012, + "603": 41.2, + "604": 46.349999999999945, + "605": 82.35, + "606": 83.30000000000007, + "607": 72.00000000000007, + "608": 71.1500000000001, + "609": 85.54999999999993, + "610": 90.35000000000004, + "611": 49.949999999999974, + "612": 60.55000000000004, + "613": 80.85000000000007, + "614": 51.40000000000007, + "615": 85.80000000000003, + "616": 92.45000000000012, + "617": 87.5000000000002, + "618": 62.35000000000004, + "619": 39.199999999999996, + "620": 90.50000000000003, + "621": 83.15000000000009, + "622": 57.74999999999999, + "623": 86.64999999999999, + "624": 81.95000000000009, + "625": 79.69999999999995, + "626": 69.00000000000006, + "627": 93.24999999999994, + "628": 59.34999999999999, + "629": 67.79999999999998, + "630": 75.44999999999993, + "631": 60.49999999999991, + "632": 88.35000000000004, + "633": 61.04999999999998, + "634": 89.64999999999998, + "635": 74.99999999999994, + "636": 68.89999999999999, + "637": 96.09999999999994, + "638": 74.84999999999997, + "639": 78.00000000000001, + "640": 63.59999999999991, + "641": 72.54999999999998, + "642": 90.10000000000014, + "643": 92.45000000000007, + "644": 21.099999999999987, + "645": 93.14999999999995, + "646": 97.40000000000008, + "647": 98.0500000000001, + "648": 90.60000000000004, + "649": 80.64999999999999, + "650": 82.85000000000004, + "651": 92.00000000000003, + "652": 76.99999999999999, + "653": 82.80000000000004, + "654": 74.85, + "655": 74.64999999999999, + "656": 83.5, + "657": -27.750000000000014, + "658": 88.10000000000002, + "659": 85.15000000000006, + "660": 81.30000000000004, + "661": 76.50000000000007, + "662": 88.35000000000004, + "663": 33.2, + "664": 89.85000000000002, + "665": 100.49999999999997, + "666": 89.64999999999998, + "667": 54.90000000000002, + "668": 97.35000000000026, + "669": 90.95000000000003, + "670": 94.75000000000023, + "671": 74.14999999999995, + "672": 80.3, + "673": 84.9, + "674": 82.05000000000007, + "675": 97.75000000000004, + "676": 74.10000000000004, + "677": 85.8500000000001, + "678": 83.15, + "679": 68.4, + "680": 72.14999999999998, + "681": 84.60000000000007, + "682": 73.39999999999996, + "683": 91.14999999999996, + "684": 83.55000000000001, + "685": 62.04999999999997, + "686": 71.54999999999998, + "687": 78.94999999999999, + "688": 57.74999999999999, + "689": 96.19999999999997, + "690": 78.50000000000001, + "691": 91.20000000000014, + "692": 94.85000000000002, + "693": 75.35000000000002, + "694": 73.70000000000005, + "695": 92.90000000000005, + "696": 87.69999999999995, + "697": 77.90000000000002, + "698": 69.9, + "699": 79.40000000000006, + "700": 16.150000000000045, + "701": 81.75000000000003, + "702": 83.55000000000008, + "703": 90.49999999999997, + "704": 70.95, + "705": 77.45, + "706": 84.25000000000004, + "707": 84.05000000000003, + "708": 75.09999999999994, + "709": 85.65000000000008, + "710": 78.19999999999999, + "711": 81.19999999999997, + "712": 34.94999999999999, + "713": 83.25000000000007, + "714": 79.14999999999998, + "715": 72.45000000000002, + "716": 78.35, + "717": 72.14999999999995, + "718": 84.34999999999998, + "719": 89.99999999999999, + "720": 70.74999999999997, + "721": 76.35000000000005, + "722": 95.60000000000012, + "723": 90.69999999999997, + "724": 73.60000000000005, + "725": 42.599999999999945, + "726": 22.749999999999954, + "727": 53.34999999999998, + "728": -14.049999999999986, + "729": 68.64999999999996, + "730": 58.04999999999983, + "731": 85.75000000000003, + "732": 96.35000000000004, + "733": 83.49999999999996, + "734": 81.14999999999993, + "735": 60.74999999999992, + "736": 99.25000000000009, + "737": 67.59999999999992, + "738": 29.14999999999997, + "739": 69.89999999999993, + "740": 77.54999999999998, + "741": 91.25000000000001, + "742": 61.80000000000003, + "743": 94.3500000000002, + "744": 87.35, + "745": 88.20000000000012, + "746": 90.50000000000003, + "747": 102.0500000000001, + "748": 81.29999999999998, + "749": 91.05000000000007, + "750": 65.89999999999996, + "751": 94.15000000000018, + "752": 74.29999999999997, + "753": 95.3999999999999, + "754": -15.299999999999985, + "755": 80.7500000000001, + "756": 78.25000000000003, + "757": 60.00000000000003, + "758": 73.2500000000001, + "759": 71.45000000000002, + "760": 93.75000000000011, + "761": 86.70000000000009, + "762": 47.24999999999984, + "763": 58.799999999999976, + "764": 83.95000000000012, + "765": 102.25, + "766": 36.7000000000001, + "767": 73.04999999999998, + "768": 92.35000000000008, + "769": 106.9000000000001, + "770": 68.89999999999989, + "771": 91.74999999999997, + "772": 84.7, + "773": 98.15, + "774": 83.60000000000004, + "775": 83.75000000000007, + "776": 81.45, + "777": 83.69999999999999, + "778": 81.39999999999999, + "779": 34.09999999999995, + "780": 68.54999999999994, + "781": 101.90000000000005, + "782": 88.10000000000007, + "783": 79.74999999999997, + "784": 99.85000000000018, + "785": 94.75000000000003, + "786": 79.25, + "787": 92.1, + "788": 78.30000000000013, + "789": 70.49999999999996, + "790": -33.599999999999994, + "791": 14.150000000000002, + "792": 86.85000000000012, + "793": 73.69999999999997, + "794": 85.90000000000009, + "795": 73.70000000000012, + "796": 91.35000000000008, + "797": 88.60000000000011, + "798": 87.1000000000001, + "799": 87.94999999999993, + "800": 77.19999999999986, + "801": 73.09999999999998, + "802": 31.099999999999994, + "803": 97.54999999999998, + "804": 73.55000000000001, + "805": 77.20000000000012, + "806": 36.09999999999996, + "807": 70.2, + "808": 87.69999999999999, + "809": 85.8, + "810": 76.00000000000001, + "811": 92.20000000000003, + "812": 76.40000000000005, + "813": 81.70000000000002, + "814": 52.649999999999935, + "815": 30.299999999999994, + "816": 81.55000000000013, + "817": 88.64999999999998, + "818": 93.90000000000006, + "819": 78.19999999999999, + "820": 93.90000000000018, + "821": 117.20000000000002, + "822": 57.449999999999896, + "823": 36.94999999999996, + "824": 102.70000000000024, + "825": 93.94999999999999, + "826": 89.4, + "827": 32.24999999999997, + "828": 100.95000000000006, + "829": 87.40000000000003, + "830": 97.25000000000003, + "831": 109.14999999999999, + "832": 93.09999999999994, + "833": 91.80000000000003, + "834": 99.25000000000004, + "835": 85.35000000000007, + "836": 92.64999999999999, + "837": 68.89999999999996, + "838": 97.50000000000009, + "839": 93.2000000000001, + "840": 92.20000000000002, + "841": 69.75, + "842": 90.35000000000005, + "843": 15.249999999999986, + "844": 100.94999999999996, + "845": 83.15000000000005, + "846": 69.60000000000001, + "847": 82.55000000000001, + "848": 79.0500000000001, + "849": 73.15, + "850": 105.25000000000003, + "851": 104.25000000000009, + "852": 67.30000000000001, + "853": 79.80000000000005, + "854": 64.94999999999995, + "855": 110.14999999999998, + "856": 45.90000000000005, + "857": 82.90000000000005, + "858": 59.49999999999999, + "859": 92.10000000000002, + "860": 41.499999999999794, + "861": 90.60000000000004, + "862": 108.55, + "863": 103.75000000000001, + "864": 86.5000000000001, + "865": 107.40000000000012, + "866": 88.85000000000004, + "867": 87.65000000000002, + "868": 84.40000000000009, + "869": 103.70000000000005, + "870": 73.25000000000003, + "871": 103.3000000000001, + "872": 110.10000000000004, + "873": 30.299999999999997, + "874": 24.800000000000008, + "875": 98.69999999999999, + "876": 89.40000000000002, + "877": 111.0000000000001, + "878": 73.94999999999999, + "879": 101.05000000000001, + "880": 104.85, + "881": 80.30000000000003, + "882": 108.70000000000013, + "883": 110.10000000000001, + "884": 71.49999999999997, + "885": 111.94999999999999, + "886": 0.4000000000000239, + "887": 101.55000000000013, + "888": 103.35000000000024, + "889": 86.75000000000018, + "890": 70.99999999999997, + "891": 69.44999999999996, + "892": 52.79999999999999, + "893": 86.5000000000002, + "894": 96.20000000000002, + "895": 91.60000000000002, + "896": 104.25000000000003, + "897": 24.95000000000001, + "898": -84.65000000000002, + "899": 73.40000000000005, + "900": 106.45000000000005, + "901": 99.90000000000002, + "902": 108.85000000000008, + "903": 107.05000000000008, + "904": 45.69999999999996, + "905": 98.2, + "906": 102.69999999999996, + "907": 23.250000000000004, + "908": 102.45000000000005, + "909": 94.79999999999994, + "910": 91.24999999999997, + "911": 105.25000000000001, + "912": 48.649999999999956, + "913": 60.900000000000006, + "914": 80.70000000000003, + "915": 109.70000000000002, + "916": 112.90000000000002, + "917": 13.849999999999987, + "918": 80.95, + "919": 41.59999999999994, + "920": 65.00000000000011, + "921": 110.25000000000001, + "922": 100.59999999999997, + "923": 71.85, + "924": 101.75000000000018, + "925": 105.30000000000003, + "926": 109.45000000000007, + "927": 106.85000000000002, + "928": 90.80000000000015, + "929": 106.95, + "930": 70.75000000000004, + "931": 80.79999999999995, + "932": 56.29999999999993, + "933": -2.9500000000000095, + "934": 107.25000000000009, + "935": 109.10000000000008, + "936": -1.9000000000000201, + "937": 82.00000000000009, + "938": 82.54999999999997, + "939": 111.00000000000001, + "940": 99.65000000000008, + "941": 103.45, + "942": 101.25000000000007, + "943": 109.95000000000003, + "944": 80.2500000000001, + "945": 110.75000000000007, + "946": 109.15, + "947": 103.3500000000001, + "948": 97.00000000000003, + "949": 99.10000000000002, + "950": 107.35000000000005, + "951": 104.05000000000003, + "952": 112.50000000000001, + "953": 97.70000000000002, + "954": 102.25, + "955": 105.20000000000009, + "956": 107.80000000000001, + "957": -31.15000000000003, + "958": 114.14999999999999, + "959": -0.25000000000000155, + "960": 110.50000000000001, + "961": 82.20000000000002, + "962": 82.15000000000008, + "963": 37.15000000000003, + "964": 108.15000000000008, + "965": 103.1500000000002, + "966": 94.9, + "967": 100.05000000000003, + "968": 100.40000000000009, + "969": 96.65000000000005, + "970": 102.20000000000006, + "971": 84.10000000000008, + "972": 106.25000000000001, + "973": 104.45000000000006, + "974": 98.35000000000007, + "975": 97.69999999999997, + "976": 105.5, + "977": 104.55000000000007, + "978": 106.30000000000003, + "979": 77.05000000000004, + "980": 106.35000000000001, + "981": 109.60000000000012, + "982": 117.75000000000003, + "983": 103.80000000000001, + "984": 105.45000000000007, + "985": 102.45000000000006, + "986": 111.00000000000003, + "987": 107.39999999999999, + "988": 110.15000000000002, + "989": 97.35000000000011, + "990": 36.800000000000004, + "991": 105.35000000000001, + "992": 111.35000000000002, + "993": 107.80000000000003, + "994": 110.7, + "995": 107.60000000000005, + "996": 108.25000000000003, + "997": 42.45000000000003, + "998": 109.85000000000002, + "999": 118.0500000000001, + "1000": 77.95000000000005 + }, + "5": { + "1": -13.049999999999988, + "2": -41.25000000000005, + "3": -18.649999999999967, + "4": -22.39999999999996, + "5": -53.10000000000012, + "6": -64.6000000000001, + "7": -10.049999999999988, + "8": -86.89999999999998, + "9": -78.14999999999982, + "10": -52.550000000000075, + "11": -60.8000000000001, + "12": -17.499999999999968, + "13": -36.500000000000064, + "14": -15.599999999999977, + "15": -83.7499999999998, + "16": -62.5000000000001, + "17": -19.099999999999962, + "18": -23.849999999999948, + "19": -22.299999999999965, + "20": -61.1000000000001, + "21": -13.199999999999985, + "22": -21.59999999999999, + "23": -54.250000000000114, + "24": -95.55, + "25": -66.15000000000009, + "26": -16.549999999999976, + "27": -16.399999999999974, + "28": -68.65000000000009, + "29": -12.19999999999999, + "30": -13.499999999999984, + "31": -7.549999999999989, + "32": -9.54999999999999, + "33": -6.800000000000002, + "34": -14.299999999999986, + "35": -15.449999999999976, + "36": -67.29999999999998, + "37": -26.39999999999998, + "38": -17.799999999999997, + "39": -22.449999999999953, + "40": -38.55000000000005, + "41": -20.149999999999963, + "42": -66.94999999999996, + "43": -16.399999999999977, + "44": -13.149999999999988, + "45": -23.64999999999999, + "46": -16.699999999999974, + "47": -7.000000000000004, + "48": -75.1, + "49": -12.949999999999987, + "50": -19.849999999999945, + "51": -2.899999999999963, + "52": -18.700000000000014, + "53": -18.04999999999997, + "54": -25.550000000000022, + "55": -88.2, + "56": -73.05, + "57": -15.69999999999997, + "58": -14.149999999999984, + "59": -76.29999999999998, + "60": -55.250000000000156, + "61": 8.750000000000039, + "62": -19.749999999999964, + "63": -19.299999999999965, + "64": -12.949999999999983, + "65": -7.599999999999996, + "66": -79.45000000000006, + "67": -30.699999999999967, + "68": -23.14999999999994, + "69": -90.25, + "70": -53.40000000000017, + "71": -13.749999999999982, + "72": -13.79999999999998, + "73": -24.99999999999999, + "74": -16.149999999999977, + "75": -14.84999999999998, + "76": -45.70000000000007, + "77": -13.94999999999998, + "78": -55.10000000000009, + "79": -21.599999999999955, + "80": -8.249999999999996, + "81": -12.09999999999999, + "82": -17.94999999999997, + "83": -10.649999999999993, + "84": -73.54999999999998, + "85": -10.449999999999992, + "86": -17.949999999999974, + "87": 4.55000000000002, + "88": -68.89999999999999, + "89": -18.34999999999997, + "90": -9.850000000000007, + "91": -20.799999999999976, + "92": -8.65000000000001, + "93": -11.29999999999999, + "94": -29.65000000000001, + "95": 8.800000000000033, + "96": 10.500000000000062, + "97": -16.449999999999974, + "98": -15.94999999999997, + "99": -18.39999999999997, + "100": -3.999999999999969, + "101": -12.649999999999997, + "102": 1.600000000000041, + "103": -17.54999999999998, + "104": 1.8499999999999883, + "105": 51.899999999999935, + "106": 11.350000000000062, + "107": -3.0999999999999828, + "108": -8.249999999999988, + "109": -70.14999999999999, + "110": 3.4000000000000066, + "111": -89.10000000000008, + "112": -12.299999999999986, + "113": -15.449999999999942, + "114": -56.000000000000114, + "115": -21.249999999999957, + "116": 8.85000000000004, + "117": -85.2, + "118": -56.19999999999995, + "119": -76.45000000000002, + "120": -39.24999999999998, + "121": -9.949999999999983, + "122": 5.350000000000009, + "123": 32.34999999999983, + "124": -7.750000000000002, + "125": 33.94999999999984, + "126": -14.049999999999985, + "127": -2.3499999999999703, + "128": -29.649999999999988, + "129": 16.499999999999975, + "130": -88.80000000000004, + "131": -42.550000000000054, + "132": -22.549999999999955, + "133": -66.1, + "134": -33.25000000000002, + "135": -18.699999999999967, + "136": -22.949999999999957, + "137": 29.049999999999937, + "138": -15.199999999999976, + "139": -12.44999999999997, + "140": 17.65000000000001, + "141": 5.80000000000003, + "142": 56.699999999999875, + "143": -51.99999999999998, + "144": -30.549999999999986, + "145": -2.7999999999999927, + "146": 20.249999999999975, + "147": -35.95000000000003, + "148": 14.600000000000044, + "149": -9.300000000000042, + "150": -1.850000000000004, + "151": -60.19999999999997, + "152": -1.5499999999999594, + "153": 9.450000000000035, + "154": -4.699999999999991, + "155": 2.550000000000015, + "156": -48.84999999999998, + "157": 27.299999999999955, + "158": -2.8999999999999964, + "159": -60.74999999999994, + "160": -16.299999999999983, + "161": -8.849999999999987, + "162": 96.90000000000028, + "163": -39.19999999999999, + "164": -34.15000000000005, + "165": -15.099999999999994, + "166": 17.099999999999998, + "167": 6.100000000000005, + "168": -3.999999999999994, + "169": -4.049999999999983, + "170": -9.550000000000004, + "171": 14.500000000000025, + "172": 8.20000000000001, + "173": 27.29999999999994, + "174": -42.149999999999956, + "175": -5.849999999999981, + "176": 48.19999999999985, + "177": 40.899999999999935, + "178": 43.29999999999996, + "179": -17.54999999999998, + "180": -64.59999999999995, + "181": 1.2000000000000446, + "182": 20.749999999999957, + "183": 20.99999999999997, + "184": -3.299999999999983, + "185": 41.399999999999736, + "186": 24.94999999999998, + "187": 28.59999999999998, + "188": 0.7000000000000185, + "189": 26.04999999999997, + "190": -46.80000000000001, + "191": 12.29999999999999, + "192": 39.899999999999785, + "193": -2.900000000000041, + "194": -74.85, + "195": 9.249999999999957, + "196": -53.34999999999995, + "197": -62.499999999999936, + "198": 17.80000000000001, + "199": 33.44999999999999, + "200": 8.299999999999997, + "201": 0.7000000000000355, + "202": -13.699999999999969, + "203": -64.10000000000001, + "204": 41.050000000000054, + "205": 73.15, + "206": 34.4, + "207": 20.299999999999915, + "208": -39.1, + "209": 7.2000000000000455, + "210": -14.60000000000002, + "211": -49.85, + "212": -0.9500000000000304, + "213": 1.2500000000000062, + "214": 31.199999999999832, + "215": 49.249999999999936, + "216": 21.3, + "217": 41.999999999999886, + "218": 39.299999999999734, + "219": 30.80000000000001, + "220": -25.550000000000036, + "221": 69.70000000000009, + "222": 51.34999999999986, + "223": -14.349999999999984, + "224": 39.39999999999993, + "225": 104.15000000000022, + "226": -2.7499999999999867, + "227": 31.099999999999977, + "228": -15.899999999999995, + "229": 55.40000000000005, + "230": -14.399999999999991, + "231": -14.49999999999998, + "232": 72.55000000000003, + "233": 73.19999999999995, + "234": 77.80000000000008, + "235": 37.9499999999999, + "236": -96.85000000000018, + "237": -55.2, + "238": -19.949999999999953, + "239": 21.44999999999992, + "240": -18.250000000000025, + "241": 43.94999999999981, + "242": 90.95000000000012, + "243": 69.00000000000003, + "244": 50.94999999999984, + "245": 98.00000000000017, + "246": 5.849999999999993, + "247": 84.30000000000013, + "248": 32.84999999999998, + "249": 12.650000000000041, + "250": 3.8000000000000034, + "251": 82.19999999999999, + "252": 5.549999999999958, + "253": 40.549999999999955, + "254": -87.25000000000001, + "255": 27.099999999999905, + "256": -30.549999999999983, + "257": 37.699999999999925, + "258": 23.700000000000053, + "259": 64.8499999999999, + "260": -7.7499999999999645, + "261": 41.09999999999986, + "262": 44.44999999999998, + "263": 14.349999999999993, + "264": 37.84999999999997, + "265": 95.30000000000018, + "266": 44.29999999999993, + "267": 102.0000000000002, + "268": 36.84999999999995, + "269": 25.19999999999999, + "270": 18.10000000000001, + "271": 48.39999999999992, + "272": -5.8, + "273": 78.74999999999994, + "274": 101.25000000000014, + "275": 28.249999999999883, + "276": 0.8499999999999885, + "277": 3.4500000000000144, + "278": 80.29999999999988, + "279": -2.800000000000015, + "280": 73.39999999999989, + "281": 23.60000000000004, + "282": 10.949999999999983, + "283": -5.199999999999985, + "284": 31.450000000000085, + "285": 67.99999999999997, + "286": 16.54999999999997, + "287": 81.45000000000005, + "288": 59.29999999999994, + "289": 44.35000000000001, + "290": 32.099999999999994, + "291": 43.39999999999994, + "292": 58.29999999999986, + "293": 81.75000000000011, + "294": 18.800000000000036, + "295": 65.04999999999997, + "296": 87.60000000000014, + "297": 78.50000000000006, + "298": 63.65000000000005, + "299": 51.99999999999997, + "300": 83.24999999999989, + "301": 7.150000000000009, + "302": 41.49999999999998, + "303": 41.149999999999764, + "304": 30.999999999999908, + "305": 75.59999999999997, + "306": 95.40000000000015, + "307": 30.349999999999973, + "308": 36.44999999999996, + "309": 85.7, + "310": 23.749999999999993, + "311": -20.549999999999986, + "312": 46.949999999999946, + "313": 50.44999999999984, + "314": 102.05000000000031, + "315": 81.99999999999997, + "316": 41.14999999999992, + "317": 27.699999999999992, + "318": 23.649999999999885, + "319": 70.94999999999996, + "320": 103.75000000000013, + "321": 64.34999999999991, + "322": 66.7499999999999, + "323": 57.19999999999981, + "324": 38.599999999999966, + "325": -4.100000000000004, + "326": 49.54999999999993, + "327": 55.599999999999945, + "328": 75.45000000000003, + "329": 75.54999999999997, + "330": 89.65000000000008, + "331": 49.749999999999844, + "332": 89.80000000000004, + "333": 96.00000000000013, + "334": 27.699999999999967, + "335": 21.249999999999986, + "336": 73.14999999999993, + "337": 57.999999999999886, + "338": 16.049999999999983, + "339": 12.849999999999984, + "340": 23.999999999999982, + "341": 82.65000000000013, + "342": 51.19999999999999, + "343": 73.54999999999998, + "344": 25.650000000000013, + "345": 71.94999999999995, + "346": 49.59999999999996, + "347": -7.64999999999999, + "348": -49.39999999999995, + "349": 63.650000000000055, + "350": 52.14999999999988, + "351": 11.550000000000011, + "352": 68.40000000000009, + "353": 96.85000000000018, + "354": 31.199999999999953, + "355": 56.349999999999916, + "356": 92.39999999999998, + "357": 85.10000000000004, + "358": 38.44999999999997, + "359": -34.200000000000024, + "360": 30.89999999999998, + "361": 90.10000000000022, + "362": 76.70000000000005, + "363": 36.749999999999964, + "364": 98.90000000000015, + "365": 71.99999999999991, + "366": 86.25, + "367": 26.099999999999994, + "368": 79.14999999999999, + "369": 64.50000000000006, + "370": 100.50000000000018, + "371": 97.95000000000017, + "372": 53.549999999999926, + "373": 49.150000000000055, + "374": 102.65000000000019, + "375": 95.7000000000001, + "376": 4.199999999999961, + "377": 59.99999999999993, + "378": 92.09999999999987, + "379": 45.249999999999986, + "380": 88.45000000000005, + "381": 95.3, + "382": 93.55000000000013, + "383": 45.099999999999966, + "384": 86.29999999999997, + "385": 78.5499999999999, + "386": 78.45000000000005, + "387": 89.6499999999999, + "388": 37.449999999999996, + "389": 93.09999999999998, + "390": 27.649999999999956, + "391": 60.449999999999925, + "392": 89.60000000000005, + "393": 98.45000000000016, + "394": 55.79999999999986, + "395": 73.19999999999996, + "396": 40.54999999999995, + "397": 60.149999999999814, + "398": 56.34999999999991, + "399": 65.5500000000001, + "400": 49.74999999999993, + "401": 50.84999999999986, + "402": 17.450000000000014, + "403": 87.75000000000007, + "404": 56.24999999999994, + "405": 91.70000000000007, + "406": 61.09999999999988, + "407": 78.95000000000005, + "408": 97.45000000000013, + "409": 91.10000000000001, + "410": 84.20000000000002, + "411": 100.05000000000024, + "412": 74.04999999999988, + "413": 5.400000000000013, + "414": 65.14999999999989, + "415": 90.70000000000005, + "416": 102.95000000000019, + "417": 67.14999999999993, + "418": 93.59999999999998, + "419": 104.10000000000014, + "420": 26.249999999999908, + "421": 84.55000000000014, + "422": 100.75000000000021, + "423": 68.79999999999994, + "424": 82.89999999999999, + "425": 33.64999999999994, + "426": 83.39999999999999, + "427": 94.35000000000011, + "428": 91.6500000000002, + "429": 19.399999999999988, + "430": 64.0499999999999, + "431": 65.44999999999993, + "432": 73.85000000000002, + "433": 108.8000000000001, + "434": 73.99999999999989, + "435": 22.35000000000001, + "436": 99.95000000000016, + "437": 84.94999999999993, + "438": 74.0999999999999, + "439": 90.64999999999993, + "440": 90.24999999999999, + "441": 30.649999999999984, + "442": 94.05000000000015, + "443": 56.349999999999895, + "444": 101.3000000000002, + "445": 58.64999999999988, + "446": 19.44999999999998, + "447": 64.99999999999996, + "448": 38.44999999999995, + "449": 103.30000000000003, + "450": 103.70000000000024, + "451": 80.90000000000005, + "452": 37.44999999999997, + "453": 67.49999999999997, + "454": 62.25000000000004, + "455": 41.90000000000002, + "456": 19.70000000000003, + "457": 43.849999999999945, + "458": 95.25000000000013, + "459": 95.25000000000013, + "460": 64.2499999999999, + "461": 39.850000000000044, + "462": 99.35000000000015, + "463": 93.5000000000001, + "464": 28.599999999999817, + "465": 7.050000000000004, + "466": 83.30000000000011, + "467": 56.14999999999989, + "468": 111.35000000000029, + "469": 43.34999999999996, + "470": 42.44999999999993, + "471": 47.549999999999855, + "472": 46.599999999999945, + "473": 102.45000000000017, + "474": 106.90000000000022, + "475": 107.0500000000002, + "476": 36.95000000000008, + "477": 90.4, + "478": 97.20000000000009, + "479": 62.399999999999956, + "480": 87.69999999999995, + "481": 93.45000000000012, + "482": 92.15000000000012, + "483": 90.40000000000016, + "484": 89.69999999999997, + "485": 31.04999999999995, + "486": 106.20000000000024, + "487": 86.85, + "488": -19.399999999999963, + "489": 88.8500000000001, + "490": 110.05000000000025, + "491": 71.34999999999997, + "492": 32.89999999999997, + "493": 86.79999999999994, + "494": -13.05, + "495": 37.69999999999992, + "496": 108.20000000000023, + "497": 83.30000000000017, + "498": -16.50000000000003, + "499": 100.50000000000018, + "500": 89.85000000000011, + "501": 107.10000000000008, + "502": 79.75000000000013, + "503": -14.100000000000023, + "504": 76.79999999999986, + "505": 31.349999999999824, + "506": 80.05000000000008, + "507": 108.45000000000007, + "508": -23.650000000000002, + "509": 35.49999999999997, + "510": 107.00000000000023, + "511": 23.049999999999986, + "512": 101.1000000000002, + "513": 44.39999999999996, + "514": 4.449999999999996, + "515": 47.699999999999974, + "516": 99.95000000000016, + "517": 63.99999999999997, + "518": 68.59999999999988, + "519": -3.9500000000000455, + "520": 44.74999999999997, + "521": 73.09999999999991, + "522": 106.85000000000022, + "523": 18.950000000000003, + "524": 100.9000000000002, + "525": 54.89999999999991, + "526": 54.64999999999995, + "527": 98.1500000000002, + "528": 70.64999999999999, + "529": 76.09999999999994, + "530": 98.6000000000002, + "531": 75.05, + "532": 35.05000000000004, + "533": 115.20000000000032, + "534": 25.849999999999973, + "535": 26.349999999999994, + "536": 38.44999999999995, + "537": -15.500000000000018, + "538": 94.60000000000016, + "539": 95.09999999999991, + "540": 14.349999999999987, + "541": 56.14999999999991, + "542": 114.60000000000029, + "543": 74.74999999999993, + "544": 67.49999999999996, + "545": 27.900000000000013, + "546": 102.45000000000022, + "547": 66.64999999999993, + "548": 10.699999999999951, + "549": 101.05000000000018, + "550": 35.84999999999998, + "551": 77.05000000000005, + "552": 74.35000000000007, + "553": 95.55000000000013, + "554": 59.8999999999999, + "555": 76.64999999999978, + "556": 107.45000000000022, + "557": 72.19999999999997, + "558": 109.95000000000024, + "559": 27.94999999999999, + "560": 37.15000000000004, + "561": 83.7999999999999, + "562": 28.649999999999956, + "563": 92.65000000000002, + "564": 66.74999999999997, + "565": 60.40000000000002, + "566": -1.100000000000004, + "567": 103.40000000000016, + "568": 78.80000000000003, + "569": 96.5000000000002, + "570": 97.05000000000015, + "571": 71.64999999999993, + "572": 40.89999999999996, + "573": 102.4500000000002, + "574": 74.00000000000001, + "575": 54.34999999999995, + "576": 111.60000000000026, + "577": 93.10000000000012, + "578": 53.59999999999999, + "579": 66.64999999999995, + "580": 44.7, + "581": 32.649999999999956, + "582": 54.69999999999994, + "583": 16.449999999999996, + "584": 108.15000000000025, + "585": 70.84999999999994, + "586": 60.84999999999996, + "587": 6.400000000000038, + "588": 41.499999999999986, + "589": 82.04999999999997, + "590": 78.05000000000003, + "591": 103.45000000000019, + "592": 61.04999999999991, + "593": 28.049999999999997, + "594": 81.99999999999999, + "595": 91.95000000000009, + "596": 69.94999999999993, + "597": -24.999999999999996, + "598": 100.1500000000001, + "599": 68.69999999999996, + "600": 42.399999999999885, + "601": 17.649999999999984, + "602": 95.6499999999998, + "603": 77.10000000000005, + "604": 46.24999999999998, + "605": 84.50000000000006, + "606": 93.75000000000011, + "607": 38.149999999999956, + "608": 46.44999999999994, + "609": 95.15000000000009, + "610": 74.54999999999998, + "611": 75.9, + "612": 98.50000000000016, + "613": 36.99999999999998, + "614": 77.44999999999996, + "615": -54.10000000000001, + "616": 69.34999999999992, + "617": 48.09999999999993, + "618": 90.1, + "619": 93.4500000000001, + "620": 77.5, + "621": 99.10000000000024, + "622": 31.44999999999998, + "623": 88.2000000000001, + "624": 40.94999999999993, + "625": 76.49999999999999, + "626": 80.15000000000002, + "627": 93.60000000000005, + "628": 60.999999999999936, + "629": 77.44999999999995, + "630": 65.84999999999992, + "631": 68.29999999999993, + "632": 80.45000000000005, + "633": 95.50000000000007, + "634": 99.85000000000018, + "635": 97.45000000000013, + "636": 91.35000000000012, + "637": 98.6500000000001, + "638": 91.35000000000015, + "639": 41.84999999999991, + "640": 96.25000000000018, + "641": 101.35000000000012, + "642": 57.49999999999987, + "643": 71.79999999999995, + "644": 69.09999999999994, + "645": 94.94999999999996, + "646": 96.1000000000002, + "647": 96.05000000000017, + "648": 95.00000000000011, + "649": 100.29999999999998, + "650": 97.90000000000003, + "651": 95.65000000000016, + "652": 102.25000000000011, + "653": 101.40000000000018, + "654": 100.24999999999999, + "655": 98.45000000000019, + "656": 14.849999999999998, + "657": 27.19999999999998, + "658": 103.40000000000019, + "659": 69.49999999999991, + "660": 55.29999999999995, + "661": 96.00000000000016, + "662": 94.40000000000013, + "663": 72.14999999999998, + "664": 29.199999999999974, + "665": 98.20000000000016, + "666": 33.65000000000001, + "667": 71.29999999999986, + "668": 93.35000000000014, + "669": 104.95000000000017, + "670": 93.45000000000013, + "671": 40.44999999999996, + "672": -0.94999999999999, + "673": 88.75000000000004, + "674": 45.64999999999995, + "675": 35.39999999999997, + "676": 29.14999999999998, + "677": 66.19999999999996, + "678": 60.84999999999987, + "679": 47.59999999999993, + "680": -9.249999999999988, + "681": 55.29999999999992, + "682": 61.2499999999999, + "683": 104.75000000000018, + "684": 93.15000000000012, + "685": 93.10000000000015, + "686": 17.000000000000004, + "687": 95.50000000000009, + "688": 43.99999999999994, + "689": 106.05000000000015, + "690": 99.30000000000013, + "691": 81.10000000000002, + "692": 74.29999999999993, + "693": 78.40000000000003, + "694": 58.799999999999926, + "695": 99.75000000000016, + "696": 23.10000000000003, + "697": 50.44999999999989, + "698": 86.04999999999997, + "699": 91.95000000000002, + "700": 77.04999999999994, + "701": 73.64999999999996, + "702": -1.5500000000000034, + "703": 70.34999999999995, + "704": 78.49999999999997, + "705": 93.50000000000016, + "706": 60.349999999999916, + "707": 91.99999999999986, + "708": 78.55000000000003, + "709": 89.89999999999996, + "710": 55.09999999999993, + "711": 80.09999999999978, + "712": 91.55000000000007, + "713": 70.59999999999997, + "714": 66.39999999999988, + "715": 90.75000000000013, + "716": 90.30000000000004, + "717": 93.40000000000013, + "718": 78.49999999999986, + "719": 66.24999999999991, + "720": 93.30000000000004, + "721": 94.20000000000019, + "722": 94.15000000000013, + "723": 93.75000000000011, + "724": 46.44999999999999, + "725": 94.4000000000002, + "726": 70.99999999999997, + "727": 94.90000000000008, + "728": 33.79999999999997, + "729": 96.95000000000014, + "730": 78.89999999999996, + "731": 84.40000000000005, + "732": 92.70000000000013, + "733": 27.94999999999996, + "734": 51.19999999999998, + "735": 36.09999999999995, + "736": 101.20000000000012, + "737": 102.0000000000002, + "738": 94.3000000000001, + "739": 57.19999999999994, + "740": 37.549999999999976, + "741": 103.15000000000022, + "742": 72.8, + "743": 20.99999999999997, + "744": 56.19999999999985, + "745": 102.80000000000003, + "746": 102.05000000000013, + "747": 103.85000000000028, + "748": 32.149999999999956, + "749": 99.3000000000002, + "750": 67.94999999999995, + "751": 107.30000000000024, + "752": 88.4500000000001, + "753": 86.80000000000008, + "754": 98.15000000000018, + "755": 54.749999999999915, + "756": 8.000000000000004, + "757": 51.09999999999993, + "758": 57.89999999999992, + "759": 99.00000000000028, + "760": 48.14999999999989, + "761": 31.649999999999977, + "762": 56.549999999999926, + "763": 94.65000000000009, + "764": 40.04999999999995, + "765": 77.50000000000001, + "766": 105.00000000000021, + "767": 78.20000000000002, + "768": 60.1499999999999, + "769": -13.149999999999984, + "770": 79.90000000000008, + "771": 97.64999999999999, + "772": 18.099999999999916, + "773": 75.7499999999999, + "774": 18.849999999999998, + "775": 36.149999999999956, + "776": 70.79999999999995, + "777": 88.05, + "778": 103.90000000000018, + "779": 58.34999999999989, + "780": 97.10000000000021, + "781": 80.35000000000007, + "782": 56.499999999999915, + "783": 80.20000000000002, + "784": 44.64999999999994, + "785": 68.35, + "786": 89.20000000000007, + "787": 101.20000000000017, + "788": 42.19999999999995, + "789": 106.40000000000022, + "790": 104.50000000000014, + "791": 79.80000000000004, + "792": 94.94999999999993, + "793": 91.45000000000016, + "794": -11.30000000000002, + "795": -8.399999999999993, + "796": 91.40000000000019, + "797": 68.64999999999998, + "798": 73.89999999999993, + "799": -6.849999999999985, + "800": 87.45000000000009, + "801": -3.8999999999999972, + "802": 83.00000000000009, + "803": 97.20000000000019, + "804": 102.10000000000015, + "805": 96.30000000000003, + "806": -11.149999999999988, + "807": 60.399999999999835, + "808": -16.29999999999998, + "809": 96.90000000000013, + "810": 81.35000000000002, + "811": 95.69999999999999, + "812": 3.0500000000000425, + "813": 5.950000000000012, + "814": -29.500000000000014, + "815": 86.20000000000002, + "816": 68.79999999999994, + "817": 29.34999999999991, + "818": 85.49999999999999, + "819": -6.450000000000007, + "820": 28.34999999999998, + "821": 102.15000000000019, + "822": -95.8, + "823": -18.84999999999996, + "824": 92.65000000000016, + "825": 21.249999999999915, + "826": -16.650000000000034, + "827": 66.99999999999986, + "828": 92.29999999999995, + "829": 71.74999999999999, + "830": 62.34999999999992, + "831": 43.34999999999995, + "832": 96.25, + "833": 81.14999999999995, + "834": 65.84999999999987, + "835": 35.50000000000003, + "836": 97.59999999999995, + "837": 39.69999999999977, + "838": 88.64999999999996, + "839": 99.50000000000017, + "840": 38.09999999999996, + "841": 86.80000000000005, + "842": 100.3, + "843": 103.55000000000005, + "844": 93.15000000000019, + "845": 73.94999999999982, + "846": 90.10000000000001, + "847": 63.34999999999989, + "848": 94.80000000000005, + "849": 93.65000000000012, + "850": 86.40000000000005, + "851": 78.14999999999995, + "852": 102.90000000000012, + "853": 100.15000000000022, + "854": 90.10000000000011, + "855": 106.50000000000021, + "856": 96.40000000000003, + "857": 74.34999999999995, + "858": 53.99999999999986, + "859": 102.09999999999995, + "860": 65.39999999999996, + "861": 96.20000000000012, + "862": 98.45000000000016, + "863": 102.75000000000016, + "864": 103.0000000000002, + "865": 107.35000000000016, + "866": 45.24999999999994, + "867": 96.95000000000016, + "868": 72.69999999999999, + "869": 73.94999999999999, + "870": 85.30000000000004, + "871": 106.2000000000002, + "872": 22.90000000000004, + "873": 44.74999999999992, + "874": 45.59999999999994, + "875": 33.84999999999993, + "876": 72.3999999999999, + "877": 22.950000000000017, + "878": 102.75000000000016, + "879": 111.55000000000021, + "880": 103.00000000000017, + "881": 43.09999999999993, + "882": 101.55000000000015, + "883": 91.05000000000013, + "884": 99.1999999999999, + "885": 104.00000000000023, + "886": 98.60000000000018, + "887": 103.80000000000018, + "888": 96.99999999999977, + "889": 103.6000000000002, + "890": 104.4000000000002, + "891": 96.60000000000014, + "892": 16.65, + "893": 40.34999999999997, + "894": 76.25000000000001, + "895": 74.2, + "896": 60.44999999999992, + "897": 100.00000000000011, + "898": 59.14999999999992, + "899": 63.199999999999925, + "900": 75.6, + "901": 44.49999999999997, + "902": 99.90000000000018, + "903": 54.79999999999994, + "904": 15.64999999999999, + "905": 32.79999999999996, + "906": 59.49999999999994, + "907": 108.95000000000022, + "908": 104.1000000000002, + "909": 94.70000000000012, + "910": 99.45000000000002, + "911": 24.5, + "912": 26.24999999999997, + "913": 103.09999999999998, + "914": 70.29999999999997, + "915": 35.04999999999995, + "916": 100.0500000000001, + "917": 76.4, + "918": -48.95000000000009, + "919": 94.95000000000007, + "920": 100.15000000000022, + "921": 109.75000000000021, + "922": 106.8000000000002, + "923": 25.200000000000014, + "924": 39.64999999999997, + "925": 67.54999999999995, + "926": 103.15000000000018, + "927": 36.55, + "928": 33.79999999999997, + "929": 62.349999999999845, + "930": 54.79999999999995, + "931": 96.30000000000015, + "932": 55.34999999999993, + "933": 16.84999999999998, + "934": 93.95000000000014, + "935": 44.84999999999995, + "936": 93.00000000000009, + "937": 102.49999999999987, + "938": 98.15000000000002, + "939": 17.000000000000032, + "940": 50.049999999999926, + "941": 111.25000000000024, + "942": -1.6500000000000117, + "943": 65.19999999999992, + "944": 97.40000000000009, + "945": 92.05000000000005, + "946": 89.95000000000005, + "947": 91.54999999999991, + "948": 111.25000000000024, + "949": 99.10000000000015, + "950": 99.25000000000009, + "951": 95.95000000000014, + "952": -8.049999999999999, + "953": 101.1000000000002, + "954": 98.04999999999998, + "955": 89.05000000000015, + "956": 85.55000000000004, + "957": 10.200000000000012, + "958": 9.050000000000004, + "959": 98.90000000000022, + "960": 60.19999999999992, + "961": 70.09999999999988, + "962": 101.35000000000018, + "963": 68.29999999999995, + "964": 100.55000000000013, + "965": 72.44999999999997, + "966": 111.55000000000025, + "967": 100.95000000000017, + "968": -18.150000000000006, + "969": 96.75000000000011, + "970": 104.65000000000018, + "971": 33.19999999999999, + "972": 72.79999999999997, + "973": 73.74999999999996, + "974": 82.00000000000003, + "975": 42.14999999999988, + "976": 103.00000000000018, + "977": 92.2, + "978": 97.00000000000014, + "979": 72.94999999999996, + "980": 109.35000000000022, + "981": 103.05000000000014, + "982": 107.95000000000023, + "983": 103.35000000000018, + "984": 102.5000000000002, + "985": 0.8000000000000016, + "986": 94.40000000000019, + "987": 99.30000000000018, + "988": 95.95000000000016, + "989": 40.50000000000001, + "990": 79.59999999999982, + "991": 109.15000000000026, + "992": 99.20000000000013, + "993": 15.850000000000007, + "994": 84.19999999999993, + "995": 97.05000000000008, + "996": 38.19999999999996, + "997": 95.80000000000013, + "998": 80.19999999999997, + "999": 55.849999999999916, + "1000": 96.95000000000007 + } + }, + "config": { + "io_settings": { + "save_agent_actions": true, + "save_step_metadata": false, + "save_pcap_logs": false, + "save_sys_logs": false, + "sys_log_level": "WARNING" + }, + "game": { + "max_episode_length": 128, + "ports": [ + "HTTP", + "POSTGRES_SERVER" + ], + "protocols": [ + "ICMP", + "TCP", + "UDP" + ], + "thresholds": { + "nmne": { + "high": 10, + "medium": 5, + "low": 0 + } + } + }, + "agents": [ + { + "ref": "client_2_green_user", + "team": "GREEN", + "type": "ProbabilisticAgent", + "agent_settings": { + "action_probabilities": { + "0": 0.3, + "1": 0.6, + "2": 0.1 + } + }, + "observation_space": null, + "action_space": { + "action_list": [ + { + "type": "DONOTHING" + }, + { + "type": "NODE_APPLICATION_EXECUTE" + } + ], + "options": { + "nodes": [ + { + "node_name": "client_2", + "applications": [ + { + "application_name": "WebBrowser" + }, + { + "application_name": "DatabaseClient" + } + ] + } + ], + "max_folders_per_node": 1, + "max_files_per_folder": 1, + "max_services_per_node": 1, + "max_applications_per_node": 2 + }, + "action_map": { + "0": { + "action": "DONOTHING", + "options": {} + }, + "1": { + "action": "NODE_APPLICATION_EXECUTE", + "options": { + "node_id": 0, + "application_id": 0 + } + }, + "2": { + "action": "NODE_APPLICATION_EXECUTE", + "options": { + "node_id": 0, + "application_id": 1 + } + } + } + }, + "reward_function": { + "reward_components": [ + { + "type": "WEBPAGE_UNAVAILABLE_PENALTY", + "weight": 0.25, + "options": { + "node_hostname": "client_2" + } + }, + { + "type": "GREEN_ADMIN_DATABASE_UNREACHABLE_PENALTY", + "weight": 0.05, + "options": { + "node_hostname": "client_2" + } + } + ] + } + }, + { + "ref": "client_1_green_user", + "team": "GREEN", + "type": "ProbabilisticAgent", + "agent_settings": { + "action_probabilities": { + "0": 0.3, + "1": 0.6, + "2": 0.1 + } + }, + "observation_space": null, + "action_space": { + "action_list": [ + { + "type": "DONOTHING" + }, + { + "type": "NODE_APPLICATION_EXECUTE" + } + ], + "options": { + "nodes": [ + { + "node_name": "client_1", + "applications": [ + { + "application_name": "WebBrowser" + }, + { + "application_name": "DatabaseClient" + } + ] + } + ], + "max_folders_per_node": 1, + "max_files_per_folder": 1, + "max_services_per_node": 1, + "max_applications_per_node": 2 + }, + "action_map": { + "0": { + "action": "DONOTHING", + "options": {} + }, + "1": { + "action": "NODE_APPLICATION_EXECUTE", + "options": { + "node_id": 0, + "application_id": 0 + } + }, + "2": { + "action": "NODE_APPLICATION_EXECUTE", + "options": { + "node_id": 0, + "application_id": 1 + } + } + } + }, + "reward_function": { + "reward_components": [ + { + "type": "WEBPAGE_UNAVAILABLE_PENALTY", + "weight": 0.25, + "options": { + "node_hostname": "client_1" + } + }, + { + "type": "GREEN_ADMIN_DATABASE_UNREACHABLE_PENALTY", + "weight": 0.05, + "options": { + "node_hostname": "client_1" + } + } + ] + } + }, + { + "ref": "data_manipulation_attacker", + "team": "RED", + "type": "RedDatabaseCorruptingAgent", + "observation_space": null, + "action_space": { + "action_list": [ + { + "type": "DONOTHING" + }, + { + "type": "NODE_APPLICATION_EXECUTE" + } + ], + "options": { + "nodes": [ + { + "node_name": "client_1", + "applications": [ + { + "application_name": "DataManipulationBot" + } + ] + }, + { + "node_name": "client_2", + "applications": [ + { + "application_name": "DataManipulationBot" + } + ] + } + ], + "max_folders_per_node": 1, + "max_files_per_folder": 1, + "max_services_per_node": 1 + } + }, + "reward_function": { + "reward_components": [ + { + "type": "DUMMY" + } + ] + }, + "agent_settings": { + "start_settings": { + "start_step": 25, + "frequency": 20, + "variance": 5 + } + } + }, + { + "ref": "defender", + "team": "BLUE", + "type": "ProxyAgent", + "observation_space": { + "type": "CUSTOM", + "options": { + "components": [ + { + "type": "NODES", + "label": "NODES", + "options": { + "hosts": [ + { + "hostname": "domain_controller" + }, + { + "hostname": "web_server", + "services": [ + { + "service_name": "WebServer" + } + ] + }, + { + "hostname": "database_server", + "folders": [ + { + "folder_name": "database", + "files": [ + { + "file_name": "database.db" + } + ] + } + ] + }, + { + "hostname": "backup_server" + }, + { + "hostname": "security_suite" + }, + { + "hostname": "client_1" + }, + { + "hostname": "client_2" + } + ], + "num_services": 1, + "num_applications": 0, + "num_folders": 1, + "num_files": 1, + "num_nics": 2, + "include_num_access": false, + "include_nmne": true, + "monitored_traffic": { + "icmp": [ + "NONE" + ], + "tcp": [ + "DNS" + ] + }, + "routers": [ + { + "hostname": "router_1" + } + ], + "num_ports": 0, + "ip_list": [ + "192.168.1.10", + "192.168.1.12", + "192.168.1.14", + "192.168.1.16", + "192.168.1.110", + "192.168.10.21", + "192.168.10.22", + "192.168.10.110" + ], + "wildcard_list": [ + "0.0.0.1" + ], + "port_list": [ + 80, + 5432 + ], + "protocol_list": [ + "ICMP", + "TCP", + "UDP" + ], + "num_rules": 10 + } + }, + { + "type": "LINKS", + "label": "LINKS", + "options": { + "link_references": [ + "router_1:eth-1<->switch_1:eth-8", + "router_1:eth-2<->switch_2:eth-8", + "switch_1:eth-1<->domain_controller:eth-1", + "switch_1:eth-2<->web_server:eth-1", + "switch_1:eth-3<->database_server:eth-1", + "switch_1:eth-4<->backup_server:eth-1", + "switch_1:eth-7<->security_suite:eth-1", + "switch_2:eth-1<->client_1:eth-1", + "switch_2:eth-2<->client_2:eth-1", + "switch_2:eth-7<->security_suite:eth-2" + ] + } + }, + { + "type": "NONE", + "label": "ICS", + "options": {} + } + ] + } + }, + "action_space": { + "action_list": [ + { + "type": "DONOTHING" + }, + { + "type": "NODE_SERVICE_SCAN" + }, + { + "type": "NODE_SERVICE_STOP" + }, + { + "type": "NODE_SERVICE_START" + }, + { + "type": "NODE_SERVICE_PAUSE" + }, + { + "type": "NODE_SERVICE_RESUME" + }, + { + "type": "NODE_SERVICE_RESTART" + }, + { + "type": "NODE_SERVICE_DISABLE" + }, + { + "type": "NODE_SERVICE_ENABLE" + }, + { + "type": "NODE_SERVICE_FIX" + }, + { + "type": "NODE_FILE_SCAN" + }, + { + "type": "NODE_FILE_CHECKHASH" + }, + { + "type": "NODE_FILE_DELETE" + }, + { + "type": "NODE_FILE_REPAIR" + }, + { + "type": "NODE_FILE_RESTORE" + }, + { + "type": "NODE_FOLDER_SCAN" + }, + { + "type": "NODE_FOLDER_CHECKHASH" + }, + { + "type": "NODE_FOLDER_REPAIR" + }, + { + "type": "NODE_FOLDER_RESTORE" + }, + { + "type": "NODE_OS_SCAN" + }, + { + "type": "NODE_SHUTDOWN" + }, + { + "type": "NODE_STARTUP" + }, + { + "type": "NODE_RESET" + }, + { + "type": "ROUTER_ACL_ADDRULE" + }, + { + "type": "ROUTER_ACL_REMOVERULE" + }, + { + "type": "HOST_NIC_ENABLE" + }, + { + "type": "HOST_NIC_DISABLE" + } + ], + "action_map": { + "0": { + "action": "DONOTHING", + "options": {} + }, + "1": { + "action": "NODE_SERVICE_SCAN", + "options": { + "node_id": 1, + "service_id": 0 + } + }, + "2": { + "action": "NODE_SERVICE_STOP", + "options": { + "node_id": 1, + "service_id": 0 + } + }, + "3": { + "action": "NODE_SERVICE_START", + "options": { + "node_id": 1, + "service_id": 0 + } + }, + "4": { + "action": "NODE_SERVICE_PAUSE", + "options": { + "node_id": 1, + "service_id": 0 + } + }, + "5": { + "action": "NODE_SERVICE_RESUME", + "options": { + "node_id": 1, + "service_id": 0 + } + }, + "6": { + "action": "NODE_SERVICE_RESTART", + "options": { + "node_id": 1, + "service_id": 0 + } + }, + "7": { + "action": "NODE_SERVICE_DISABLE", + "options": { + "node_id": 1, + "service_id": 0 + } + }, + "8": { + "action": "NODE_SERVICE_ENABLE", + "options": { + "node_id": 1, + "service_id": 0 + } + }, + "9": { + "action": "NODE_FILE_SCAN", + "options": { + "node_id": 2, + "folder_id": 0, + "file_id": 0 + } + }, + "10": { + "action": "NODE_FILE_CHECKHASH", + "options": { + "node_id": 2, + "folder_id": 0, + "file_id": 0 + } + }, + "11": { + "action": "NODE_FILE_DELETE", + "options": { + "node_id": 2, + "folder_id": 0, + "file_id": 0 + } + }, + "12": { + "action": "NODE_FILE_REPAIR", + "options": { + "node_id": 2, + "folder_id": 0, + "file_id": 0 + } + }, + "13": { + "action": "NODE_SERVICE_FIX", + "options": { + "node_id": 2, + "service_id": 0 + } + }, + "14": { + "action": "NODE_FOLDER_SCAN", + "options": { + "node_id": 2, + "folder_id": 0 + } + }, + "15": { + "action": "NODE_FOLDER_CHECKHASH", + "options": { + "node_id": 2, + "folder_id": 0 + } + }, + "16": { + "action": "NODE_FOLDER_REPAIR", + "options": { + "node_id": 2, + "folder_id": 0 + } + }, + "17": { + "action": "NODE_FOLDER_RESTORE", + "options": { + "node_id": 2, + "folder_id": 0 + } + }, + "18": { + "action": "NODE_OS_SCAN", + "options": { + "node_id": 0 + } + }, + "19": { + "action": "NODE_SHUTDOWN", + "options": { + "node_id": 0 + } + }, + "20": { + "action": "NODE_STARTUP", + "options": { + "node_id": 0 + } + }, + "21": { + "action": "NODE_RESET", + "options": { + "node_id": 0 + } + }, + "22": { + "action": "NODE_OS_SCAN", + "options": { + "node_id": 1 + } + }, + "23": { + "action": "NODE_SHUTDOWN", + "options": { + "node_id": 1 + } + }, + "24": { + "action": "NODE_STARTUP", + "options": { + "node_id": 1 + } + }, + "25": { + "action": "NODE_RESET", + "options": { + "node_id": 1 + } + }, + "26": { + "action": "NODE_OS_SCAN", + "options": { + "node_id": 2 + } + }, + "27": { + "action": "NODE_SHUTDOWN", + "options": { + "node_id": 2 + } + }, + "28": { + "action": "NODE_STARTUP", + "options": { + "node_id": 2 + } + }, + "29": { + "action": "NODE_RESET", + "options": { + "node_id": 2 + } + }, + "30": { + "action": "NODE_OS_SCAN", + "options": { + "node_id": 3 + } + }, + "31": { + "action": "NODE_SHUTDOWN", + "options": { + "node_id": 3 + } + }, + "32": { + "action": "NODE_STARTUP", + "options": { + "node_id": 3 + } + }, + "33": { + "action": "NODE_RESET", + "options": { + "node_id": 3 + } + }, + "34": { + "action": "NODE_OS_SCAN", + "options": { + "node_id": 4 + } + }, + "35": { + "action": "NODE_SHUTDOWN", + "options": { + "node_id": 4 + } + }, + "36": { + "action": "NODE_STARTUP", + "options": { + "node_id": 4 + } + }, + "37": { + "action": "NODE_RESET", + "options": { + "node_id": 4 + } + }, + "38": { + "action": "NODE_OS_SCAN", + "options": { + "node_id": 5 + } + }, + "39": { + "action": "NODE_SHUTDOWN", + "options": { + "node_id": 5 + } + }, + "40": { + "action": "NODE_STARTUP", + "options": { + "node_id": 5 + } + }, + "41": { + "action": "NODE_RESET", + "options": { + "node_id": 5 + } + }, + "42": { + "action": "NODE_OS_SCAN", + "options": { + "node_id": 6 + } + }, + "43": { + "action": "NODE_SHUTDOWN", + "options": { + "node_id": 6 + } + }, + "44": { + "action": "NODE_STARTUP", + "options": { + "node_id": 6 + } + }, + "45": { + "action": "NODE_RESET", + "options": { + "node_id": 6 + } + }, + "46": { + "action": "ROUTER_ACL_ADDRULE", + "options": { + "target_router": "router_1", + "position": 1, + "permission": 2, + "source_ip_id": 7, + "dest_ip_id": 1, + "source_port_id": 1, + "dest_port_id": 1, + "protocol_id": 1, + "source_wildcard_id": 0, + "dest_wildcard_id": 0 + } + }, + "47": { + "action": "ROUTER_ACL_ADDRULE", + "options": { + "target_router": "router_1", + "position": 2, + "permission": 2, + "source_ip_id": 8, + "dest_ip_id": 1, + "source_port_id": 1, + "dest_port_id": 1, + "protocol_id": 1, + "source_wildcard_id": 0, + "dest_wildcard_id": 0 + } + }, + "48": { + "action": "ROUTER_ACL_ADDRULE", + "options": { + "target_router": "router_1", + "position": 3, + "permission": 2, + "source_ip_id": 7, + "dest_ip_id": 3, + "source_port_id": 1, + "dest_port_id": 1, + "protocol_id": 3, + "source_wildcard_id": 0, + "dest_wildcard_id": 0 + } + }, + "49": { + "action": "ROUTER_ACL_ADDRULE", + "options": { + "target_router": "router_1", + "position": 4, + "permission": 2, + "source_ip_id": 8, + "dest_ip_id": 3, + "source_port_id": 1, + "dest_port_id": 1, + "protocol_id": 3, + "source_wildcard_id": 0, + "dest_wildcard_id": 0 + } + }, + "50": { + "action": "ROUTER_ACL_ADDRULE", + "options": { + "target_router": "router_1", + "position": 5, + "permission": 2, + "source_ip_id": 7, + "dest_ip_id": 4, + "source_port_id": 1, + "dest_port_id": 1, + "protocol_id": 3, + "source_wildcard_id": 0, + "dest_wildcard_id": 0 + } + }, + "51": { + "action": "ROUTER_ACL_ADDRULE", + "options": { + "target_router": "router_1", + "position": 6, + "permission": 2, + "source_ip_id": 8, + "dest_ip_id": 4, + "source_port_id": 1, + "dest_port_id": 1, + "protocol_id": 3, + "source_wildcard_id": 0, + "dest_wildcard_id": 0 + } + }, + "52": { + "action": "ROUTER_ACL_REMOVERULE", + "options": { + "target_router": "router_1", + "position": 0 + } + }, + "53": { + "action": "ROUTER_ACL_REMOVERULE", + "options": { + "target_router": "router_1", + "position": 1 + } + }, + "54": { + "action": "ROUTER_ACL_REMOVERULE", + "options": { + "target_router": "router_1", + "position": 2 + } + }, + "55": { + "action": "ROUTER_ACL_REMOVERULE", + "options": { + "target_router": "router_1", + "position": 3 + } + }, + "56": { + "action": "ROUTER_ACL_REMOVERULE", + "options": { + "target_router": "router_1", + "position": 4 + } + }, + "57": { + "action": "ROUTER_ACL_REMOVERULE", + "options": { + "target_router": "router_1", + "position": 5 + } + }, + "58": { + "action": "ROUTER_ACL_REMOVERULE", + "options": { + "target_router": "router_1", + "position": 6 + } + }, + "59": { + "action": "ROUTER_ACL_REMOVERULE", + "options": { + "target_router": "router_1", + "position": 7 + } + }, + "60": { + "action": "ROUTER_ACL_REMOVERULE", + "options": { + "target_router": "router_1", + "position": 8 + } + }, + "61": { + "action": "ROUTER_ACL_REMOVERULE", + "options": { + "target_router": "router_1", + "position": 9 + } + }, + "62": { + "action": "HOST_NIC_DISABLE", + "options": { + "node_id": 0, + "nic_id": 0 + } + }, + "63": { + "action": "HOST_NIC_ENABLE", + "options": { + "node_id": 0, + "nic_id": 0 + } + }, + "64": { + "action": "HOST_NIC_DISABLE", + "options": { + "node_id": 1, + "nic_id": 0 + } + }, + "65": { + "action": "HOST_NIC_ENABLE", + "options": { + "node_id": 1, + "nic_id": 0 + } + }, + "66": { + "action": "HOST_NIC_DISABLE", + "options": { + "node_id": 2, + "nic_id": 0 + } + }, + "67": { + "action": "HOST_NIC_ENABLE", + "options": { + "node_id": 2, + "nic_id": 0 + } + }, + "68": { + "action": "HOST_NIC_DISABLE", + "options": { + "node_id": 3, + "nic_id": 0 + } + }, + "69": { + "action": "HOST_NIC_ENABLE", + "options": { + "node_id": 3, + "nic_id": 0 + } + }, + "70": { + "action": "HOST_NIC_DISABLE", + "options": { + "node_id": 4, + "nic_id": 0 + } + }, + "71": { + "action": "HOST_NIC_ENABLE", + "options": { + "node_id": 4, + "nic_id": 0 + } + }, + "72": { + "action": "HOST_NIC_DISABLE", + "options": { + "node_id": 4, + "nic_id": 1 + } + }, + "73": { + "action": "HOST_NIC_ENABLE", + "options": { + "node_id": 4, + "nic_id": 1 + } + }, + "74": { + "action": "HOST_NIC_DISABLE", + "options": { + "node_id": 5, + "nic_id": 0 + } + }, + "75": { + "action": "HOST_NIC_ENABLE", + "options": { + "node_id": 5, + "nic_id": 0 + } + }, + "76": { + "action": "HOST_NIC_DISABLE", + "options": { + "node_id": 6, + "nic_id": 0 + } + }, + "77": { + "action": "HOST_NIC_ENABLE", + "options": { + "node_id": 6, + "nic_id": 0 + } + } + }, + "options": { + "nodes": [ + { + "node_name": "domain_controller" + }, + { + "node_name": "web_server", + "applications": [ + { + "application_name": "DatabaseClient" + } + ], + "services": [ + { + "service_name": "WebServer" + } + ] + }, + { + "node_name": "database_server", + "folders": [ + { + "folder_name": "database", + "files": [ + { + "file_name": "database.db" + } + ] + } + ], + "services": [ + { + "service_name": "DatabaseService" + } + ] + }, + { + "node_name": "backup_server" + }, + { + "node_name": "security_suite" + }, + { + "node_name": "client_1" + }, + { + "node_name": "client_2" + } + ], + "max_folders_per_node": 2, + "max_files_per_folder": 2, + "max_services_per_node": 2, + "max_nics_per_node": 8, + "max_acl_rules": 10, + "ip_list": [ + "192.168.1.10", + "192.168.1.12", + "192.168.1.14", + "192.168.1.16", + "192.168.1.110", + "192.168.10.21", + "192.168.10.22", + "192.168.10.110" + ] + } + }, + "reward_function": { + "reward_components": [ + { + "type": "DATABASE_FILE_INTEGRITY", + "weight": 0.4, + "options": { + "node_hostname": "database_server", + "folder_name": "database", + "file_name": "database.db" + } + }, + { + "type": "SHARED_REWARD", + "weight": 1.0, + "options": { + "agent_name": "client_1_green_user" + } + }, + { + "type": "SHARED_REWARD", + "weight": 1.0, + "options": { + "agent_name": "client_2_green_user" + } + } + ] + }, + "agent_settings": { + "flatten_obs": true, + "action_masking": true + } + } + ], + "simulation": { + "network": { + "nmne_config": { + "capture_nmne": true, + "nmne_capture_keywords": [ + "DELETE" + ] + }, + "nodes": [ + { + "hostname": "router_1", + "type": "router", + "num_ports": 5, + "ports": { + "1": { + "ip_address": "192.168.1.1", + "subnet_mask": "255.255.255.0" + }, + "2": { + "ip_address": "192.168.10.1", + "subnet_mask": "255.255.255.0" + } + }, + "acl": { + "18": { + "action": "PERMIT", + "src_port": "POSTGRES_SERVER", + "dst_port": "POSTGRES_SERVER" + }, + "19": { + "action": "PERMIT", + "src_port": "DNS", + "dst_port": "DNS" + }, + "20": { + "action": "PERMIT", + "src_port": "FTP", + "dst_port": "FTP" + }, + "21": { + "action": "PERMIT", + "src_port": "HTTP", + "dst_port": "HTTP" + }, + "22": { + "action": "PERMIT", + "src_port": "ARP", + "dst_port": "ARP" + }, + "23": { + "action": "PERMIT", + "protocol": "ICMP" + } + } + }, + { + "hostname": "switch_1", + "type": "switch", + "num_ports": 8 + }, + { + "hostname": "switch_2", + "type": "switch", + "num_ports": 8 + }, + { + "hostname": "domain_controller", + "type": "server", + "ip_address": "192.168.1.10", + "subnet_mask": "255.255.255.0", + "default_gateway": "192.168.1.1", + "services": [ + { + "type": "DNSServer", + "options": { + "domain_mapping": { + "arcd.com": "192.168.1.12" + } + } + } + ] + }, + { + "hostname": "web_server", + "type": "server", + "ip_address": "192.168.1.12", + "subnet_mask": "255.255.255.0", + "default_gateway": "192.168.1.1", + "dns_server": "192.168.1.10", + "services": [ + { + "type": "WebServer" + } + ], + "applications": [ + { + "type": "DatabaseClient", + "options": { + "db_server_ip": "192.168.1.14" + } + } + ] + }, + { + "hostname": "database_server", + "type": "server", + "ip_address": "192.168.1.14", + "subnet_mask": "255.255.255.0", + "default_gateway": "192.168.1.1", + "dns_server": "192.168.1.10", + "services": [ + { + "type": "DatabaseService", + "options": { + "backup_server_ip": "192.168.1.16" + } + }, + { + "type": "FTPClient" + } + ] + }, + { + "hostname": "backup_server", + "type": "server", + "ip_address": "192.168.1.16", + "subnet_mask": "255.255.255.0", + "default_gateway": "192.168.1.1", + "dns_server": "192.168.1.10", + "services": [ + { + "type": "FTPServer" + } + ] + }, + { + "hostname": "security_suite", + "type": "server", + "ip_address": "192.168.1.110", + "subnet_mask": "255.255.255.0", + "default_gateway": "192.168.1.1", + "dns_server": "192.168.1.10", + "network_interfaces": { + "2": { + "ip_address": "192.168.10.110", + "subnet_mask": "255.255.255.0" + } + } + }, + { + "hostname": "client_1", + "type": "computer", + "ip_address": "192.168.10.21", + "subnet_mask": "255.255.255.0", + "default_gateway": "192.168.10.1", + "dns_server": "192.168.1.10", + "applications": [ + { + "type": "DataManipulationBot", + "options": { + "port_scan_p_of_success": 0.8, + "data_manipulation_p_of_success": 0.8, + "payload": "DELETE", + "server_ip": "192.168.1.14" + } + }, + { + "type": "WebBrowser", + "options": { + "target_url": "http://arcd.com/users/" + } + }, + { + "type": "DatabaseClient", + "options": { + "db_server_ip": "192.168.1.14" + } + } + ], + "services": [ + { + "type": "DNSClient" + } + ] + }, + { + "hostname": "client_2", + "type": "computer", + "ip_address": "192.168.10.22", + "subnet_mask": "255.255.255.0", + "default_gateway": "192.168.10.1", + "dns_server": "192.168.1.10", + "applications": [ + { + "type": "WebBrowser", + "options": { + "target_url": "http://arcd.com/users/" + } + }, + { + "type": "DataManipulationBot", + "options": { + "port_scan_p_of_success": 0.8, + "data_manipulation_p_of_success": 0.8, + "payload": "DELETE", + "server_ip": "192.168.1.14" + } + }, + { + "type": "DatabaseClient", + "options": { + "db_server_ip": "192.168.1.14" + } + } + ], + "services": [ + { + "type": "DNSClient" + } + ] + } + ], + "links": [ + { + "endpoint_a_hostname": "router_1", + "endpoint_a_port": 1, + "endpoint_b_hostname": "switch_1", + "endpoint_b_port": 8 + }, + { + "endpoint_a_hostname": "router_1", + "endpoint_a_port": 2, + "endpoint_b_hostname": "switch_2", + "endpoint_b_port": 8 + }, + { + "endpoint_a_hostname": "switch_1", + "endpoint_a_port": 1, + "endpoint_b_hostname": "domain_controller", + "endpoint_b_port": 1 + }, + { + "endpoint_a_hostname": "switch_1", + "endpoint_a_port": 2, + "endpoint_b_hostname": "web_server", + "endpoint_b_port": 1 + }, + { + "endpoint_a_hostname": "switch_1", + "endpoint_a_port": 3, + "endpoint_b_hostname": "database_server", + "endpoint_b_port": 1 + }, + { + "endpoint_a_hostname": "switch_1", + "endpoint_a_port": 4, + "endpoint_b_hostname": "backup_server", + "endpoint_b_port": 1 + }, + { + "endpoint_a_hostname": "switch_1", + "endpoint_a_port": 7, + "endpoint_b_hostname": "security_suite", + "endpoint_b_port": 1 + }, + { + "endpoint_a_hostname": "switch_2", + "endpoint_a_port": 1, + "endpoint_b_hostname": "client_1", + "endpoint_b_port": 1 + }, + { + "endpoint_a_hostname": "switch_2", + "endpoint_a_port": 2, + "endpoint_b_hostname": "client_2", + "endpoint_b_port": 1 + }, + { + "endpoint_a_hostname": "switch_2", + "endpoint_a_port": 7, + "endpoint_b_hostname": "security_suite", + "endpoint_b_port": 2 + } + ] + } + } + } +} \ No newline at end of file diff --git a/docs/index.rst b/docs/index.rst index 431dea28..93da9b88 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -8,6 +8,46 @@ Welcome to PrimAITE's documentation What is PrimAITE? ----------------- +.. toctree:: + :maxdepth: 8 + :caption: About PrimAITE: + :hidden: + + source/about + source/dependencies + source/glossary + +.. toctree:: + :caption: Usage: + :hidden: + + source/getting_started + source/game_layer + source/simulation + source/config + source/customising_scenarios + source/varying_config_files + source/environment + source/action_masking + +.. toctree:: + :caption: Notebooks: + :hidden: + + source/example_notebooks + source/notebooks/executed_notebooks + +.. toctree:: + :caption: Developer information: + :hidden: + + source/developer_tools + source/state_system + source/request_system + PrimAITE API + PrimAITE Tests + + Overview ^^^^^^^^ @@ -36,108 +76,6 @@ PrimAITE incorporates the following features: - A PCAP service is seamlessly integrated within the simulation, automatically capturing and logging frames for both inbound and outbound traffic at the network interface level. This automatic functionality, combined with the ability to separate traffic directions, significantly enhances network analysis and troubleshooting capabilities; -- Agent action logs provide a description of every action taken by each agent during the episode. This includes timestep, action, parameters, request and response, for all Blue agent activity, which is aligned with the Track 2 Common Action / Observation Space (CAOS) format. Action logs also details of all scripted / stochastic red / green agent actions; +- Agent action logs provide a description of every action taken by each agent during the episode. This includes timestep, action, parameters, request and response, for all Blue agent activity, which is aligned with the Track 2 Common Action / Observation Space (CAOS) format. Action logs also detail all scripted / stochastic red / green agent actions; - Environment ground truth is provided at every timestep, providing a full description of the environment’s true state; - Alignment with CAOS provides the ability to transfer agents between CAOS compliant environments. - -Architecture -^^^^^^^^^^^^ - -PrimAITE is a Python application and will operate on multiple Operating Systems (Windows, Linux and Mac); -a comprehensive installation and user guide is provided with each release to support its usage. - -Configuration of PrimAITE is achieved via included YAML files which support full control over the network / system laydown being modelled, background pattern of life, adversarial (red agent) behaviour, and step and episode count. -A Simulation Controller layer manages the overall running of the simulation, keeping track of all low-level objects. - -It is agnostic to the number of agents, their action / observation spaces, and the RL library being used. - -It presents a public API providing a method for describing the current state of the simulation, a method that accepts action requests and provides responses, and a method that triggers a timestep advancement. -The Game Layer converts the simulation into a playable game for the agent(s). - -It translates between simulation state and Gymnasium.Spaces to pass action / observation data between the agent(s) and the simulation. It is responsible for calculating rewards, managing Multi-Agent RL (MARL) action turns, and via a single agent interface can interact with Blue, Red and Green agents. - -Agents can either generate their own scripted behaviour or accept input behaviour from an RL agent. - -Finally, a Gymnasium / Ray RLlib Environment Layer forwards requests to the Game Layer as the agent sends them. This layer also manages most of the I/O, such as reading in the configuration files and saving agent logs. - -.. image:: ../../_static/primAITE_architecture.png - :width: 500 - :align: center - - -Training & Evaluation Capability -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -PrimAITE provides a training and evaluation capability to AI agents in the context of cyber-attack, via its Gymnasium / Ray RLlib compliant interface. - -Scenarios can be constructed to reflect network / system laydowns consisting of any configuration of nodes (e.g., PCs, servers etc.) and the networking equipment and links between them. - -All nodes can be configured to contain applications, services, folders and files (and their status). - -Traffic flows between services and applications as directed by an ‘execution definition,’ with the traffic flow on the network governed by the network equipment (switches, routers and firewalls) and the ACL rules and routing tables they employ. - -Highlights of PrimAITE’s training and evaluation capability are: - -- The scenario is not bound to a representation of any platform, system, or technology; -- Fully configurable (network / system laydown, green pattern-of-life, red personas, reward function, ACL rules for each device, number of episodes / steps, action / observation space) and repeatable to suit the requirements of AI agents; -- Can integrate with any Gymnasium / Ray RLlib compliant AI agent . - - -PrimAITE provides a number of use cases (network and red/green action configurations) by default which the user is able to extend and modify as required. - -What is PrimAITE built with ---------------------------- - -* `Gymnasium `_ is used as the basis for AI blue agent interaction with the PrimAITE environment -* `Networkx `_ is used as the underlying data structure used for the PrimAITE environment -* `Stable Baselines 3 `_ is used as a default source of RL algorithms (although PrimAITE is not limited to SB3 agents) -* `Ray RLlib `_ is used as an additional source of RL algorithms -* `Typer `_ is used for building CLIs (Command Line Interface applications) -* `Jupyterlab `_ is used as an extensible environment for interactive and reproducible computing, based on the Jupyter Notebook Architecture -* `Platformdirs `_ is used for finding the right location to store user data and configuration but varies per platform -* `Plotly `_ is used for building high level charts - - -Getting Started with PrimAITE ------------------------------ - -Head over to the :ref:`getting-started` page to install and setup PrimAITE! - -.. toctree:: - :maxdepth: 8 - :caption: About PrimAITE: - :hidden: - - source/about - source/dependencies - source/glossary - -.. toctree:: - :caption: Usage: - :hidden: - - source/getting_started - source/simulation - source/game_layer - source/config - source/environment - source/customising_scenarios - source/varying_config_files - source/action_masking - -.. toctree:: - :caption: Notebooks: - :hidden: - - source/example_notebooks - source/notebooks/executed_notebooks - -.. toctree:: - :caption: Developer information: - :hidden: - - source/developer_tools - source/state_system - source/request_system - PrimAITE API - PrimAITE Tests diff --git a/docs/source/about.rst b/docs/source/about.rst index cc247623..da87102a 100644 --- a/docs/source/about.rst +++ b/docs/source/about.rst @@ -7,27 +7,68 @@ About PrimAITE ============== -PrimAITE is a simulation environment for training agents to protect a computer network from cyber attacks. +Architecture +^^^^^^^^^^^^ -Features -******** +PrimAITE is a Python application and will operate on multiple Operating Systems (Windows, Linux and Mac); +a comprehensive installation and user guide is provided with each release to support its usage. -PrimAITE provides the following features: +Configuration of PrimAITE is achieved via included YAML files which support full control over the network / system laydown being modelled, background pattern of life, adversarial (red agent) behaviour, and step and episode count. +A Simulation Controller layer manages the overall running of the simulation, keeping track of all low-level objects. -* A flexible system for defining network layouts and host configurations -* Highly configurable network hosts, including definition of software, file system, and network interfaces, -* Realistic network traffic simulation, including address and sending packets via internet protocols like TCP, UDP, ICMP, etc. -* Routers with traffic routing and firewall capabilities -* Simulation of customisable deterministic agents -* Support for multiple agents, each having their own customisable observation space, action space, and reward function definition. +It is agnostic to the number of agents, their action / observation spaces, and the RL library being used. + +It presents a public API providing a method for describing the current state of the simulation, a method that accepts action requests and provides responses, and a method that triggers a timestep advancement. +The Game Layer converts the simulation into a playable game for the agent(s). + +It translates between simulation state and Gymnasium.Spaces to pass action / observation data between the agent(s) and the simulation. It is responsible for calculating rewards, managing Multi-Agent RL (MARL) action turns, and via a single agent interface can interact with Blue, Red and Green agents. + +Agents can either generate their own scripted behaviour or accept input behaviour from an RL agent. + +Finally, a Gymnasium / Ray RLlib Environment Layer forwards requests to the Game Layer as the agent sends them. This layer also manages most of the I/O, such as reading in the configuration files and saving agent logs. + +.. image:: ../../_static/primAITE_architecture.png + :width: 500 + :align: center -Structure -********* +Training & Evaluation Capability +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -PrimAITE consists of a simulator and a 'game' layer that allows agents to interact with the simulator. The simulator is built in a modular way where each component such as network hosts, links, networking devices, softwares, etc. are implemented as instances of a base class, meaning they all support the same interface. This allows for standardised configuration using either the Python API or YAML files. -The game layer is built on top of the simulator and it consumes the simulation action/state interface to allow agents to interact with the simulator. The game layer is also responsible for defining the reward function and observation space for the agents. +PrimAITE provides a training and evaluation capability to AI agents in the context of cyber-attack, via its Gymnasium / Ray RLlib compliant interface. +Scenarios can be constructed to reflect network / system laydowns consisting of any configuration of nodes (e.g., PCs, servers etc.) and the networking equipment and links between them. + +All nodes can be configured to contain applications, services, folders and files (and their status). + +Traffic flows between services and applications as directed by an ‘execution definition’, with the traffic flow on the network governed by the network equipment (switches, routers and firewalls) and the ACL rules and routing tables they employ. + +Highlights of PrimAITE’s training and evaluation capability are: + +- The scenario is not bound to a representation of any platform, system, or technology; +- Fully configurable (network / system laydown, green pattern-of-life, red personas, reward function, ACL rules for each device, number of episodes / steps, action / observation space) and repeatable to suit the requirements of AI agents; +- Can integrate with any Gymnasium / Ray RLlib compliant AI agent. + + +PrimAITE provides a number of use cases (network and red/green action configurations) by default which the user is able to extend and modify as required. + +What is PrimAITE built with +--------------------------- + +* `Gymnasium `_ is used as the basis for AI blue agent interaction with the PrimAITE environment +* `Networkx `_ is used as the underlying data structure used for the PrimAITE environment +* `Stable Baselines 3 `_ is used as a default source of RL algorithms (although PrimAITE is not limited to SB3 agents) +* `Ray RLlib `_ is used as an additional source of RL algorithms +* `Typer `_ is used for building CLIs (Command Line Interface applications) +* `Jupyterlab `_ is used as an extensible environment for interactive and reproducible computing, based on the Jupyter Notebook Architecture +* `Platformdirs `_ is used for finding the right location to store user data and configuration but varies per platform +* `Plotly `_ is used for building high level charts + + +Getting Started with PrimAITE +----------------------------- + +Head over to the :ref:`getting-started` page to install and setup PrimAITE! .. Architecture - Nodes and Links diff --git a/docs/source/action_masking.rst b/docs/source/action_masking.rst index 3e5b967b..30b1376d 100644 --- a/docs/source/action_masking.rst +++ b/docs/source/action_masking.rst @@ -18,52 +18,101 @@ Masking Logic ============= The following logic is applied: -* **DONOTHING** : Always possible -* **NODE_HOST_SERVICE_SCAN** : Node is on. Service is running. -* **NODE_HOST_SERVICE_STOP** : Node is on. Service is running. -* **NODE_HOST_SERVICE_START** : Node is on. Service is stopped. -* **NODE_HOST_SERVICE_PAUSE** : Node is on. Service is running. -* **NODE_HOST_SERVICE_RESUME** : Node is on. Service is paused. -* **NODE_HOST_SERVICE_RESTART** : Node is on. Service is running. -* **NODE_HOST_SERVICE_DISABLE** : Node is on. -* **NODE_HOST_SERVICE_ENABLE** : Node is on. Service is disabled. -* **NODE_HOST_SERVICE_FIX** : Node is on. Service is running. -* **NODE_HOST_APPLICATION_EXECUTE** : Node is on. -* **NODE_HOST_APPLICATION_SCAN** : Node is on. Application is running. -* **NODE_HOST_APPLICATION_CLOSE** : Node is on. Application is running. -* **NODE_HOST_APPLICATION_FIX** : Node is on. Application is running. -* **NODE_HOST_APPLICATION_INSTALL** : Node is on. -* **NODE_HOST_APPLICATION_REMOVE** : Node is on. -* **NODE_HOST_FILE_SCAN** : Node is on. File exists. File not deleted. -* **NODE_HOST_FILE_CREATE** : Node is on. -* **NODE_HOST_FILE_CHECKHASH** : Node is on. File exists. File not deleted. -* **NODE_HOST_FILE_DELETE** : Node is on. File exists. -* **NODE_HOST_FILE_REPAIR** : Node is on. File exists. File not deleted. -* **NODE_HOST_FILE_RESTORE** : Node is on. File exists. File is deleted. -* **NODE_HOST_FILE_CORRUPT** : Node is on. File exists. File not deleted. -* **NODE_HOST_FILE_ACCESS** : Node is on. File exists. File not deleted. -* **NODE_HOST_FOLDER_CREATE** : Node is on. -* **NODE_HOST_FOLDER_SCAN** : Node is on. Folder exists. Folder not deleted. -* **NODE_HOST_FOLDER_CHECKHASH** : Node is on. Folder exists. Folder not deleted. -* **NODE_HOST_FOLDER_REPAIR** : Node is on. Folder exists. Folder not deleted. -* **NODE_HOST_FOLDER_RESTORE** : Node is on. Folder exists. Folder is deleted. -* **NODE_HOST_OS_SCAN** : Node is on. -* **NODE_HOST_NIC_ENABLE** : NIC is disabled. Node is on. -* **NODE_HOST_NIC_DISABLE** : NIC is enabled. Node is on. -* **NODE_HOST_SHUTDOWN** : Node is on. -* **NODE_HOST_STARTUP** : Node is off. -* **NODE_HOST_RESET** : Node is on. -* **NODE_HOST_NMAP_PING_SCAN** : Node is on. -* **NODE_HOST_NMAP_PORT_SCAN** : Node is on. -* **NODE_HOST_NMAP_NETWORK_SERVICE_RECON** : Node is on. -* **NODE_ROUTER_PORT_ENABLE** : Router is on. -* **NODE_ROUTER_PORT_DISABLE** : Router is on. -* **NODE_ROUTER_ACL_ADDRULE** : Router is on. -* **NODE_ROUTER_ACL_REMOVERULE** : Router is on. -* **NODE_FIREWALL_PORT_ENABLE** : Firewall is on. -* **NODE_FIREWALL_PORT_DISABLE** : Firewall is on. -* **NODE_FIREWALL_ACL_ADDRULE** : Firewall is on. -* **NODE_FIREWALL_ACL_REMOVERULE** : Firewall is on. ++------------------------------------------+---------------------------------------------------------------------+ +| Action | Action Mask Logic | ++==========================================+=====================================================================+ +| **DONOTHING** | Always Possible. | ++------------------------------------------+---------------------------------------------------------------------+ +| **NODE_HOST_SERVICE_SCAN** | Node is on. Service is running. | ++------------------------------------------+---------------------------------------------------------------------+ +| **NODE_HOST_SERVICE_STOP** | Node is on. Service is running. | ++------------------------------------------+---------------------------------------------------------------------+ +| **NODE_HOST_SERVICE_START** | Node is on. Service is stopped. | ++------------------------------------------+---------------------------------------------------------------------+ +| **NODE_HOST_SERVICE_PAUSE** | Node is on. Service is running. | ++------------------------------------------+---------------------------------------------------------------------+ +| **NODE_HOST_SERVICE_RESUME** | Node is on. Service is paused. | ++------------------------------------------+---------------------------------------------------------------------+ +| **NODE_HOST_SERVICE_RESTART** | Node is on. Service is running. | ++------------------------------------------+---------------------------------------------------------------------+ +| **NODE_HOST_SERVICE_DISABLE** | Node is on. | ++------------------------------------------+---------------------------------------------------------------------+ +| **NODE_HOST_SERVICE_ENABLE** | Node is on. Service is disabled. | ++------------------------------------------+---------------------------------------------------------------------+ +| **NODE_HOST_SERVICE_FIX** | Node is on. Service is running. | ++------------------------------------------+---------------------------------------------------------------------+ +| **NODE_HOST_APPLICATION_EXECUTE** | Node is on. | ++------------------------------------------+---------------------------------------------------------------------+ +| **NODE_HOST_APPLICATION_SCAN** | Node is on. Application is running. | ++------------------------------------------+---------------------------------------------------------------------+ +| **NODE_HOST_APPLICATION_CLOSE** | Node is on. Application is running. | ++------------------------------------------+---------------------------------------------------------------------+ +| **NODE_HOST_APPLICATION_FIX** | Node is on. Application is running. | ++------------------------------------------+---------------------------------------------------------------------+ +| **NODE_HOST_APPLICATION_INSTALL** | Node is on. | ++------------------------------------------+---------------------------------------------------------------------+ +| **NODE_HOST_APPLICATION_REMOVE** | Node is on. | ++------------------------------------------+---------------------------------------------------------------------+ +| **NODE_HOST_FILE_SCAN** | Node is on. File exists. File not deleted. | ++------------------------------------------+---------------------------------------------------------------------+ +| **NODE_HOST_FILE_CREATE** | Node is on. | ++------------------------------------------+---------------------------------------------------------------------+ +| **NODE_HOST_FILE_CHECKHASH** | Node is on. File exists. File not deleted. | ++------------------------------------------+---------------------------------------------------------------------+ +| **NODE_HOST_FILE_DELETE** | Node is on. File exists. | ++------------------------------------------+---------------------------------------------------------------------+ +| **NODE_HOST_FILE_REPAIR** | Node is on. File exists. File not deleted. | ++------------------------------------------+---------------------------------------------------------------------+ +| **NODE_HOST_FILE_RESTORE** | Node is on. File exists. File is deleted. | ++------------------------------------------+---------------------------------------------------------------------+ +| **NODE_HOST_FILE_CORRUPT** | Node is on. File exists. File not deleted. | ++------------------------------------------+---------------------------------------------------------------------+ +| **NODE_HOST_FILE_ACCESS** | Node is on. File exists. File not deleted. | ++------------------------------------------+---------------------------------------------------------------------+ +| **NODE_HOST_FOLDER_CREATE** | Node is on. | ++------------------------------------------+---------------------------------------------------------------------+ +| **NODE_HOST_FOLDER_SCAN** | Node is on. Folder exists. Folder not deleted. | ++------------------------------------------+---------------------------------------------------------------------+ +| **NODE_HOST_FOLDER_CHECKHASH** | Node is on. Folder exists. Folder not deleted. | ++------------------------------------------+---------------------------------------------------------------------+ +| **NODE_HOST_FOLDER_REPAIR** | Node is on. Folder exists. Folder not deleted. | ++------------------------------------------+---------------------------------------------------------------------+ +| **NODE_HOST_FOLDER_RESTORE** | Node is on. Folder exists. Folder is deleted. | ++------------------------------------------+---------------------------------------------------------------------+ +| **NODE_HOST_OS_SCAN** | Node is on. | ++------------------------------------------+---------------------------------------------------------------------+ +| **NODE_HOST_NIC_ENABLE** | NIC is disabled. Node is on. | ++------------------------------------------+---------------------------------------------------------------------+ +| **NODE_HOST_NIC_DISABLE** | NIC is enabled. Node is on. | ++------------------------------------------+---------------------------------------------------------------------+ +| **NODE_HOST_SHUTDOWN** | Node is on. | ++------------------------------------------+---------------------------------------------------------------------+ +| **NODE_HOST_STARTUP** | Node is off. | ++------------------------------------------+---------------------------------------------------------------------+ +| **NODE_HOST_RESET** | Node is on. | ++------------------------------------------+---------------------------------------------------------------------+ +| **NODE_HOST_NMAP_PING_SCAN** | Node is on. | ++------------------------------------------+---------------------------------------------------------------------+ +| **NODE_HOST_NMAP_PORT_SCAN** | Node is on. | ++------------------------------------------+---------------------------------------------------------------------+ +| **NODE_HOST_NMAP_NETWORK_SERVICE_RECON** | Node is on. | ++------------------------------------------+---------------------------------------------------------------------+ +| **NODE_ROUTER_PORT_ENABLE** | Router is on. | ++------------------------------------------+---------------------------------------------------------------------+ +| **NODE_ROUTER_PORT_DISABLE** | Router is on. | ++------------------------------------------+---------------------------------------------------------------------+ +| **NODE_ROUTER_ACL_ADDRULE** | Router is on. | ++------------------------------------------+---------------------------------------------------------------------+ +| **NODE_ROUTER_ACL_REMOVERULE** | Router is on. | ++------------------------------------------+---------------------------------------------------------------------+ +| **NODE_FIREWALL_PORT_ENABLE** | Firewall is on. | ++------------------------------------------+---------------------------------------------------------------------+ +| **NODE_FIREWALL_PORT_DISABLE** | Firewall is on. | ++------------------------------------------+---------------------------------------------------------------------+ +| **NODE_FIREWALL_ACL_ADDRULE** | Firewall is on. | ++------------------------------------------+---------------------------------------------------------------------+ +| **NODE_FIREWALL_ACL_REMOVERULE** | Firewall is on. | ++------------------------------------------+---------------------------------------------------------------------+ Mechanism diff --git a/docs/source/configuration/simulation.rst b/docs/source/configuration/simulation.rst index 48b857d9..fa1d774a 100644 --- a/docs/source/configuration/simulation.rst +++ b/docs/source/configuration/simulation.rst @@ -111,7 +111,7 @@ This is an integer value specifying the allowed bandwidth across the connection. This section configures settings specific to the wireless network's virtual airspace. ``frequency_max_capacity_mbps`` -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This setting allows the user to override the default maximum bandwidth capacity set for each frequency. The key should be the AirSpaceFrequency name and the value be the desired maximum bandwidth capacity in mbps (megabits per second) for diff --git a/docs/source/developer_tools.rst b/docs/source/developer_tools.rst index 3d781e1d..a66b7902 100644 --- a/docs/source/developer_tools.rst +++ b/docs/source/developer_tools.rst @@ -49,36 +49,68 @@ dev-mode configuration The following configures some specific items that the dev-mode overrides, if enabled. -`--sys-log-level` or `-level` ----------------------------- +`--sys-log-level` or `-slevel` +----------------------------- The level of system logs can be overridden by dev-mode. By default, this is set to DEBUG -The available options are [DEBUG|INFO|WARNING|ERROR|CRITICAL] +The available options for both system and agent logs are: -.. code-block:: - - primaite dev-mode config -level INFO - -or ++-------------------+ +| Log Level | ++===================+ +| DEBUG | ++-------------------+ +| INFO | ++-------------------+ +| WARNING | ++-------------------+ +| ERROR | ++-------------------+ +| CRITICAL | ++-------------------+ .. code-block:: primaite dev-mode config --sys-log-level INFO +or + +.. code-block:: + + primaite dev-mode config -slevel INFO + + +`--agent-log-level` or `-alevel` +-------------------------------- + +The level of agent logs can be overridden by dev-mode. + +By default, this is set to DEBUG. + +.. code-block:: + + primaite dev-mode config --agent-log-level INFO + +or + +.. code-block:: + + primaite dev-mode config -alevel INFO + `--output-sys-logs` or `-sys` ----------------------------- -The outputting of system logs can be overridden by dev-mode. +The output of system logs can be overridden by dev-mode. By default, this is set to False Enabling system logs """""""""""""""""""" -To enable outputting of system logs +To enable output of system logs .. code-block:: @@ -93,7 +125,7 @@ or Disabling system logs """"""""""""""""""""" -To disable outputting of system logs +To disable output of system logs .. code-block:: @@ -105,17 +137,47 @@ or primaite dev-mode config -nsys +Enabling agent logs +"""""""""""""""""""" + +To enable output of system logs + +.. code-block:: + + primaite dev-mode config --output-agent-logs + +or + +.. code-block:: + + primaite dev-mode config -agent + +Disabling system logs +""""""""""""""""""""" + +To disable output of system logs + +.. code-block:: + + primaite dev-mode config --no-agent-logs + +or + +.. code-block:: + + primaite dev-mode config -nagent + `--output-pcap-logs` or `-pcap` ------------------------------- -The outputting of packet capture logs can be overridden by dev-mode. +The output of packet capture logs can be overridden by dev-mode. By default, this is set to False Enabling PCAP logs """""""""""""""""" -To enable outputting of packet capture logs +To enable output of packet capture logs .. code-block:: @@ -130,7 +192,7 @@ or Disabling PCAP logs """"""""""""""""""" -To disable outputting of packet capture logs +To disable output of packet capture logs .. code-block:: @@ -145,14 +207,14 @@ or `--output-to-terminal` or `-t` ------------------------------ -The outputting of system logs to the terminal can be overridden by dev-mode. +The output of system logs to the terminal can be overridden by dev-mode. By default, this is set to False Enabling system log output to terminal """""""""""""""""""""""""""""""""""""" -To enable outputting of system logs to terminal +To enable output of system logs to terminal .. code-block:: @@ -167,7 +229,7 @@ or Disabling system log output to terminal """"""""""""""""""""""""""""""""""""""" -To disable outputting of system logs to terminal +To disable output of system logs to terminal .. code-block:: diff --git a/docs/source/example_notebooks.rst b/docs/source/example_notebooks.rst index 466beca3..920175c9 100644 --- a/docs/source/example_notebooks.rst +++ b/docs/source/example_notebooks.rst @@ -2,6 +2,8 @@ © Crown-owned copyright 2024, Defence Science and Technology Laboratory UK +.. _example jupyter notebooks: + Example Jupyter Notebooks ========================= @@ -18,6 +20,7 @@ Running Jupyter Notebooks ------------------------- 1. Navigate to the PrimAITE directory +""""""""""""""""""""""""""""""""""""" .. code-block:: bash :caption: Unix @@ -29,7 +32,10 @@ Running Jupyter Notebooks cd ~\primaite\{VERSION} -2. Run jupyter notebook (the python environment to which you installed PrimAITE must be active) +2. Run jupyter notebook +""""""""""""""""""""""" + +**Please note that the python environment to which you installed PrimAITE must be active.** .. code-block:: bash :caption: Unix @@ -42,11 +48,13 @@ Running Jupyter Notebooks jupyter notebook 3. Opening the jupyter webpage (optional) +""""""""""""""""""""""""""""""""""""""""" The default web browser may automatically open the webpage. However, if that is not the case, click the link shown in your command prompt output. It should look like this: ``http://localhost:8888/?token=0123456798abc0123456789abc`` 4. Navigate to the list of notebooks +""""""""""""""""""""""""""""""""""""""""" The example notebooks are located in ``notebooks/example_notebooks/``. The file system shown in the jupyter webpage is relative to the location in which the ``jupyter notebook`` command was used. @@ -77,6 +85,6 @@ The following extensions should now be installed :width: 300 :align: center -VSCode will then ask for a Python environment version to use. PrimAITE is compatible with Python versions 3.9 - 3.11 +VSCode will then ask for a Python environment version to use. PrimAITE is compatible with Python versions 3.8 - 3.11 You should now be able to interact with the notebook. diff --git a/docs/source/game_layer.rst b/docs/source/game_layer.rst index 2fa6639f..775c02b5 100644 --- a/docs/source/game_layer.rst +++ b/docs/source/game_layer.rst @@ -42,49 +42,50 @@ An agent's reward function is managed by the ``RewardManager``. It calculates re Reward Components ----------------- -Currently implemented are reward components tailored to the data manipulation scenario. View the full API and description of how they work here: :py:module:`primaite.game.agent.reward`. +Currently implemented are reward components tailored to the data manipulation scenario. View the full API and description of how they work here: :py:modules:`primaite.game.agent.rewards`. Reward Sharing -------------- An agent's reward can be based on rewards of other agents. This is particularly useful for modelling a situation where the blue agent's job is to protect the ability of green agents to perform their pattern-of-life. This can be configured in the YAML file this way: -```yaml -green_agent_1: # this agent sometimes tries to access the webpage, and sometimes the database - # actions, observations, and agent settings go here - reward_function: - reward_components: +.. code-block:: yaml - # When the webpage loads, the reward goes up by 0.25 when it fails to load, it goes down to -0.25 - - type: WEBPAGE_UNAVAILABLE_PENALTY - weight: 0.25 - options: - node_hostname: client_2 + green_agent_1: # this agent sometimes tries to access the webpage, and sometimes the database + # actions, observations, and agent settings go here + reward_function: + reward_components: - # When the database is reachable, the reward goes up by 0.05, when it is unreachable it goes down to -0.05 - - type: GREEN_ADMIN_DATABASE_UNREACHABLE_PENALTY - weight: 0.05 - options: - node_hostname: client_2 + # When the webpage loads, the reward goes up by 0.25 when it fails to load, it goes down to -0.25 + - type: WEBPAGE_UNAVAILABLE_PENALTY + weight: 0.25 + options: + node_hostname: client_2 -blue_agent: - # actions, observations, and agent settings go here - reward_function: - reward_components: + # When the database is reachable, the reward goes up by 0.05, when it is unreachable it goes down to -0.05 + - type: GREEN_ADMIN_DATABASE_UNREACHABLE_PENALTY + weight: 0.05 + options: + node_hostname: client_2 - # When the database file is in a good state, blue's reward is 0.4, when it's in a corrupted state the reward is -0.4 - - type: DATABASE_FILE_INTEGRITY - weight: 0.40 - options: - node_hostname: database_server - folder_name: database - file_name: database.db + blue_agent: + # actions, observations, and agent settings go here + reward_function: + reward_components: + + # When the database file is in a good state, blue's reward is 0.4, when it's in a corrupted state the reward is -0.4 + - type: DATABASE_FILE_INTEGRITY + weight: 0.40 + options: + node_hostname: database_server + folder_name: database + file_name: database.db + + # The green's reward is added onto the blue's reward. + - type: SHARED_REWARD + weight: 1.0 + options: + agent_name: client_2_green_user - # The green's reward is added onto the blue's reward. - - type: SHARED_REWARD - weight: 1.0 - options: - agent_name: client_2_green_user -``` When defining agent reward sharing, users must be careful to avoid circular references, as that would lead to an infinite calculation loop. PrimAITE will prevent circular dependencies and provide a helpful error message if they are detected in the yaml. diff --git a/docs/source/primaite-dependencies.rst b/docs/source/primaite-dependencies.rst index e7333b53..04987054 100644 --- a/docs/source/primaite-dependencies.rst +++ b/docs/source/primaite-dependencies.rst @@ -2,40 +2,44 @@ © Crown-owned copyright 2024, Defence Science and Technology Laboratory UK -+-------------------+---------+------------------------------------+-------------------------------------------------------------------------------------------------------+----------------------------------------------+ -| Name | Version | License | Description | URL | -+===================+=========+====================================+=======================================================================================================+==============================================+ -| gymnasium | 0.28.1 | MIT License | A standard API for reinforcement learning and a diverse set of reference environments (formerly Gym). | https://farama.org | -+-------------------+---------+------------------------------------+-------------------------------------------------------------------------------------------------------+----------------------------------------------+ -| ipywidgets | 8.1.3 | BSD License | Jupyter interactive widgets | http://jupyter.org | -+-------------------+---------+------------------------------------+-------------------------------------------------------------------------------------------------------+----------------------------------------------+ -| jupyterlab | 3.6.1 | BSD License | JupyterLab computational environment | https://jupyter.org | -+-------------------+---------+------------------------------------+-------------------------------------------------------------------------------------------------------+----------------------------------------------+ -| kaleido | 0.2.1 | MIT | Static image export for web-based visualization libraries with zero dependencies | https://github.com/plotly/Kaleido | -+-------------------+---------+------------------------------------+-------------------------------------------------------------------------------------------------------+----------------------------------------------+ -| matplotlib | 3.7.1 | Python Software Foundation License | Python plotting package | https://matplotlib.org | -+-------------------+---------+------------------------------------+-------------------------------------------------------------------------------------------------------+----------------------------------------------+ -| networkx | 3.1 | BSD License | Python package for creating and manipulating graphs and networks | https://networkx.org/ | -+-------------------+---------+------------------------------------+-------------------------------------------------------------------------------------------------------+----------------------------------------------+ -| numpy | 1.23.5 | BSD License | NumPy is the fundamental package for array computing with Python. | https://www.numpy.org | -+-------------------+---------+------------------------------------+-------------------------------------------------------------------------------------------------------+----------------------------------------------+ -| platformdirs | 3.5.1 | MIT License | A small Python package for determining appropriate platform-specific dirs, e.g. a "user data dir". | https://github.com/platformdirs/platformdirs | -+-------------------+---------+------------------------------------+-------------------------------------------------------------------------------------------------------+----------------------------------------------+ -| plotly | 5.15.0 | MIT License | An open-source, interactive data visualization library for Python | https://plotly.com/python/ | -+-------------------+---------+------------------------------------+-------------------------------------------------------------------------------------------------------+----------------------------------------------+ -| polars | 0.18.4 | MIT License | Blazingly fast DataFrame library | https://www.pola.rs/ | -+-------------------+---------+------------------------------------+-------------------------------------------------------------------------------------------------------+----------------------------------------------+ -| prettytable | 3.8.0 | BSD License (BSD (3 clause)) | A simple Python library for easily displaying tabular data in a visually appealing ASCII table format | https://github.com/jazzband/prettytable | -+-------------------+---------+------------------------------------+-------------------------------------------------------------------------------------------------------+----------------------------------------------+ -| pydantic | 2.7.0 | MIT License | Data validation using Python type hints | https://github.com/pydantic/pydantic | -+-------------------+---------+------------------------------------+-------------------------------------------------------------------------------------------------------+----------------------------------------------+ -| PyYAML | 6.0 | MIT License | YAML parser and emitter for Python | https://pyyaml.org/ | -+-------------------+---------+------------------------------------+-------------------------------------------------------------------------------------------------------+----------------------------------------------+ -| ray | 2.23.0 | Apache 2.0 | Ray provides a simple, universal API for building distributed applications. | https://github.com/ray-project/ray | -+-------------------+---------+------------------------------------+-------------------------------------------------------------------------------------------------------+----------------------------------------------+ -| stable-baselines3 | 2.1.0 | MIT | Pytorch version of Stable Baselines, implementations of reinforcement learning algorithms. | https://github.com/DLR-RM/stable-baselines3 | -+-------------------+---------+------------------------------------+-------------------------------------------------------------------------------------------------------+----------------------------------------------+ -| tensorflow | 2.12.0 | Apache Software License | TensorFlow is an open source machine learning framework for everyone. | https://www.tensorflow.org/ | -+-------------------+---------+------------------------------------+-------------------------------------------------------------------------------------------------------+----------------------------------------------+ -| typer | 0.9.0 | MIT License | Typer, build great CLIs. Easy to code. Based on Python type hints. | https://github.com/tiangolo/typer | -+-------------------+---------+------------------------------------+-------------------------------------------------------------------------------------------------------+----------------------------------------------+ ++-------------------+---------+------------------------------------+-------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+ +| Name | Version | License | Description | URL | ++===================+=========+====================================+=======================================================================================================+====================================================================+ +| gymnasium | 0.28.1 | MIT License | A standard API for reinforcement learning and a diverse set of reference environments (formerly Gym). | https://farama.org | ++-------------------+---------+------------------------------------+-------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+ +| ipywidgets | 8.1.3 | BSD License | Jupyter interactive widgets | http://jupyter.org | ++-------------------+---------+------------------------------------+-------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+ +| jupyterlab | 3.6.1 | BSD License | JupyterLab computational environment | https://jupyter.org | ++-------------------+---------+------------------------------------+-------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+ +| kaleido | 0.2.1 | MIT | Static image export for web-based visualization libraries with zero dependencies | https://github.com/plotly/Kaleido | ++-------------------+---------+------------------------------------+-------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+ +| matplotlib | 3.7.1 | Python Software Foundation License | Python plotting package | https://matplotlib.org | ++-------------------+---------+------------------------------------+-------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+ +| networkx | 3.1 | BSD License | Python package for creating and manipulating graphs and networks | https://networkx.org/ | ++-------------------+---------+------------------------------------+-------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+ +| numpy | 1.23.5 | BSD License | NumPy is the fundamental package for array computing with Python. | https://www.numpy.org | ++-------------------+---------+------------------------------------+-------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+ +| platformdirs | 3.5.1 | MIT License | A small Python package for determining appropriate platform-specific dirs, e.g. a "user data dir". | https://github.com/platformdirs/platformdirs | ++-------------------+---------+------------------------------------+-------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+ +| plotly | 5.15.0 | MIT License | An open-source, interactive data visualization library for Python | https://plotly.com/python/ | ++-------------------+---------+------------------------------------+-------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+ +| polars | 0.18.4 | MIT License | Blazingly fast DataFrame library | https://www.pola.rs/ | ++-------------------+---------+------------------------------------+-------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+ +| prettytable | 3.8.0 | BSD License (BSD (3 clause)) | A simple Python library for easily displaying tabular data in a visually appealing ASCII table format | https://github.com/jazzband/prettytable | ++-------------------+---------+------------------------------------+-------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+ +| pydantic | 2.7.0 | MIT License | Data validation using Python type hints | https://github.com/pydantic/pydantic | ++-------------------+---------+------------------------------------+-------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+ +| PyYAML | 6.0 | MIT License | YAML parser and emitter for Python | https://pyyaml.org/ | ++-------------------+---------+------------------------------------+-------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+ +| ray | 2.23.0 | Apache 2.0 | Ray provides a simple, universal API for building distributed applications. | https://github.com/ray-project/ray | ++-------------------+---------+------------------------------------+-------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+ +| stable-baselines3 | 2.1.0 | MIT | Pytorch version of Stable Baselines, implementations of reinforcement learning algorithms. | https://github.com/DLR-RM/stable-baselines3 | ++-------------------+---------+------------------------------------+-------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+ +| tensorflow | 2.12.0 | Apache Software License | TensorFlow is an open source machine learning framework for everyone. | https://www.tensorflow.org/ | ++-------------------+---------+------------------------------------+-------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+ +| typer | 0.9.0 | MIT License | Typer, build great CLIs. Easy to code. Based on Python type hints. | https://github.com/tiangolo/typer | ++-------------------+---------+------------------------------------+-------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+ +| Deepdiff | 7.0.1 | MIT License | Deep difference of dictionaries, iterables, strings, and any other object objects. | https://github.com/seperman/deepdiff | ++-------------------+---------+------------------------------------+-------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+ +| sb3_contrib | 2.3.0 | MIT License | Contrib package for Stable-Baselines3 - Experimental reinforcement learning (RL) code (Action Masking)| https://github.com/Stable-Baselines-Team/stable-baselines3-contrib | ++-------------------+---------+------------------------------------+-------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------+ diff --git a/docs/source/request_system.rst b/docs/source/request_system.rst index cc784cd4..f2d2e68d 100644 --- a/docs/source/request_system.rst +++ b/docs/source/request_system.rst @@ -9,49 +9,55 @@ Request System Just like other aspects of SimComponent, the request types are not managed centrally for the whole simulation, but instead they are dynamically created and updated based on the nodes, links, and other components that currently exist in the simulation. This is achieved in the following way: -- API - When requesting an action within the simulation, these two arguments must be provided: +When requesting an action within the simulation, these two arguments must be provided: - 1. ``request`` - selects which action you want to take on this ``SimComponent``. This is formatted as a list of strings such as ``['network', 'node', '', 'service', '', 'restart']``. - 2. ``context`` - optional extra information that can be used to decide how to process the request. This is formatted as a dictionary. For example, if the request requires authentication, the context can include information about the user that initiated the request to decide if their permissions are sufficient. +1. ``request`` - selects which action you want to take on this ``SimComponent``. This is formatted as a list of strings such as ``['network', 'node', '', 'service', '', 'restart']``. +2. ``context`` - optional extra information that can be used to decide how to process the request. This is formatted as a dictionary. For example, if the request requires authentication, the context can include information about the user that initiated the request to decide if their permissions are sufficient. - When a request is resolved, it returns a success status, and optional additional data about the request. +When a request is resolved, it returns a success status, and optional additional data about the request. - ``status`` can be one of: +``status`` can be one of: - * ``success``: the request was executed - * ``failure``: the request could not be executed - * ``unreachable``: the target for the request was not found - * ``pending``: the request was initiated, but has not finished during this step +* ``success``: the request was executed +* ``failure``: the request could not be executed +* ``unreachable``: the target for the request was not found +* ``pending``: the request was initiated, but has not finished during this step - ``data`` can be a dictionary with any arbitrary JSON-like data to describe the outcome of the request. +``data`` can be a dictionary with any arbitrary JSON-like data to describe the outcome of the request. -- ``request`` detail - The request is a list of strings which help specify who should handle the request. The strings in the request list help RequestManagers traverse the 'ownership tree' of SimComponent. The example given above would be handled in the following way: +Requests: +""""""""" - 1. ``Simulation`` receives ``['network', 'node', 'computer_1', 'service', 'DNSService', 'restart']``. - The first element of the request is ``network``, therefore it passes the request down to its network. - 2. ``Network`` receives ``['node', 'computer_1', 'service', 'DNSService', 'restart']``. - The first element of the request is ``node``, therefore the network looks at the node name and passes the request down to the node with that name. - 3. ``computer_1`` receives ``['service', 'DNSService', 'restart']``. - The first element of the request is ``service``, therefore the node looks at the service name and passes the rest of the request to the service with that name. - 4. ``DNSService`` receives ``['restart']``. - Since ``restart`` is a defined request type in the service's own RequestManager, the service performs a restart. +Request Syntax +--------------- -- ``context`` detail +The request is a list of strings which help specify who should handle the request. The strings in the request list help RequestManagers traverse the 'ownership tree' of SimComponent. The example given above would be handled in the following way: + +1. ``Simulation`` receives ``['network', 'node', 'computer_1', 'service', 'DNSService', 'restart']``. + The first element of the request is ``network``, therefore it passes the request down to its network. +2. ``Network`` receives ``['node', 'computer_1', 'service', 'DNSService', 'restart']``. + The first element of the request is ``node``, therefore the network looks at the node name and passes the request down to the node with that name. +3. ``computer_1`` receives ``['service', 'DNSService', 'restart']``. + The first element of the request is ``service``, therefore the node looks at the service name and passes the rest of the request to the service with that name. +4. ``DNSService`` receives ``['restart']``. + Since ``restart`` is a defined request type in the service's own RequestManager, the service performs a restart. + +- ``context`` The context is not used by any of the currently implemented components or requests. -- Request response - When the simulator receives a request, it returns a response with a success status. The possible statuses are: +Request responses +----------------- - * **success**: The request was received and successfully executed. - * For example, the agent tries to add an ACL rule and specifies correct parameters, and the ACL rule is added successfully. +When the simulator receives a request, it returns a response with a success status. The possible statuses are: - * **failure**: The request was received, but it could not be executed, or it failed while executing. - * For example, the agent tries to execute the ``WebBrowser`` application, but the webpage wasn't retrieved because the DNS server is not setup on the node. +* **success**: The request was received and successfully executed. + * For example, the agent tries to add an ACL rule and specifies correct parameters, and the ACL rule is added successfully. - * **unreachable**: The request was sent to a simulation component that does not exist. - * For example, the agent tries to scan a file that has not been created yet. +* **failure**: The request was received, but it could not be executed, or it failed while executing. + * For example, the agent tries to execute the ``WebBrowser`` application, but the webpage wasn't retrieved because the DNS server is not setup on the node. + +* **unreachable**: The request was sent to a simulation component that does not exist. + * For example, the agent tries to scan a file that has not been created yet. For more information, please refer to the ``Requests-and-Responses.ipynb`` jupyter notebook diff --git a/docs/source/simulation_components/system/applications/dos_bot.rst b/docs/source/simulation_components/system/applications/dos_bot.rst index 2a26a971..9925dc93 100644 --- a/docs/source/simulation_components/system/applications/dos_bot.rst +++ b/docs/source/simulation_components/system/applications/dos_bot.rst @@ -7,7 +7,10 @@ DoSBot ###### -The ``DoSBot`` is an implementation of a Denial of Service attack within the PrimAITE simulation. This specifically simulates a `Slow Loris attack `. +The ``DoSBot`` is an implementation of a Denial of Service attack within the PrimAITE simulation. +This specifically simulates a `Slow Loris attack`_. + +.. _Slow Loris Attack: https://en.wikipedia.org/wiki/Slowloris_(computer_security) Key features ============ diff --git a/docs/source/simulation_components/system/applications/nmap.rst b/docs/source/simulation_components/system/applications/nmap.rst index 9ea0c60e..1e7f5ea4 100644 --- a/docs/source/simulation_components/system/applications/nmap.rst +++ b/docs/source/simulation_components/system/applications/nmap.rst @@ -5,10 +5,10 @@ .. _NMAP: NMAP -==== +#### Overview --------- +======== The NMAP application is used to simulate network scanning activities. NMAP is a powerful tool that helps in discovering hosts and services on a network. It provides functionalities such as ping scans to discover active hosts and port scans @@ -19,8 +19,8 @@ structure, identify active devices, and find potential vulnerabilities by discov However, it is also a tool frequently used by attackers during the reconnaissance stage of a cyber attack to gather information about the target network. -Scan Types ----------- +Scan Type +========= Ping Scan ^^^^^^^^^ @@ -46,7 +46,7 @@ identifying potential entry points for attacks. There are three types of port sc It gives a comprehensive view of the network's service landscape. Example Usage -------------- +^^^^^^^^^^^^^ The network we use for these examples is defined below: @@ -345,3 +345,11 @@ Perform a full box scan on all ports, over both TCP and UDP, on a whole subnet: | 192.168.1.13 | 123 | NTP | UDP | | 192.168.1.13 | 219 | ARP | UDP | +--------------+------+-----------------+----------+ + +Configuration +============= + +.. include:: ../common/common_configuration.rst + +.. |SOFTWARE_NAME| replace:: NMAP +.. |SOFTWARE_NAME_BACKTICK| replace:: ``NMAP`` diff --git a/docs/source/simulation_components/system/applications/ransomware_script.rst b/docs/source/simulation_components/system/applications/ransomware_script.rst new file mode 100644 index 00000000..a2a853e9 --- /dev/null +++ b/docs/source/simulation_components/system/applications/ransomware_script.rst @@ -0,0 +1,85 @@ +.. only:: comment + + © Crown-owned copyright 2024, Defence Science and Technology Laboratory UK + +.. _RansomwareScript: + +RansomwareScript +################### + +The RansomwareScript class provides functionality to connect to a :ref:`DatabaseService` and set a database's database.db into a ``CORRUPTED`` state. + +Overview +======== + +The ransomware script intends to simulate a generic implementation of ransomware. + +Currently, due to simulation restraints, the ransomware script is unable to attack a host without an active database service. + +The ransomware script is similar to that of the data_manipulation_bot but does not have any separate stages or configurable probabilities. + +Additionally, similar to the data_manipulation_bot, the ransomware script must be installed on a host with a pre-existing :ref:`DatabaseClient` application installed. + +Usage +===== + +- Create an instance and call ``configure`` to set: + - Target Database IP + - Database password (if needed) +- Call ``Execute`` to connect and execute the ransomware script. + +This application handles connections to the database server and the connection made to encrypt the database but it does not handle disconnections. + +Implementation +============== + +Currently, the ransomware script connects to a :ref:`DatabaseClient` and leverages its connectivity. The host running ``RansomwareScript`` must also have a :ref:`DatabaseClient` installed on it. + +- Uses the Application base class for lifecycle management. +- Target IP and other options set via ``configure``. +- ``execute`` handles connecting and encrypting. + + +Examples +======== + +Python +"""""" +.. code-block:: python + + from primaite.simulator.network.hardware.nodes.host.computer import Computer + from primaite.simulator.network.hardware.node_operating_state import NodeOperatingState + from primaite.simulator.system.applications.red_applications.RansomwareScript import RansomwareScript + from primaite.simulator.system.applications.database_client import DatabaseClient + + client_1 = Computer( + hostname="client_1", + ip_address="192.168.10.21", + subnet_mask="255.255.255.0", + default_gateway="192.168.10.1", + operating_state=NodeOperatingState.ON # initialise the computer in an ON state + ) + network.connect(endpoint_b=client_1.network_interface[1], endpoint_a=switch_2.network_interface[1]) + client_1.software_manager.install(DatabaseClient) + client_1.software_manager.install(RansomwareScript) + RansomwareScript: RansomwareScript = client_1.software_manager.software.get("RansomwareScript") + RansomwareScript.configure(server_ip_address=IPv4Address("192.168.1.14")) + RansomwareScript.execute() + + +Configuration +============= + +The RansomwareScript inherits configuration options such as ``fix_duration`` from its parent class. However, for the ``RansomwareScript`` the most relevant option is ``server_ip``. + +.. include:: ../common/common_configuration.rst + +.. |SOFTWARE_NAME| replace:: RansomwareScript +.. |SOFTWARE_NAME_BACKTICK| replace:: ``RansomwareScript`` + +``server_ip`` +""""""""""""" + +IP address of the :ref:`DatabaseService` which the ``RansomwareScript`` will encrypt. + +This must be a valid octet i.e. in the range of ``0.0.0.0`` and ``255.255.255.255``. diff --git a/docs/source/simulation_components/system/applications/web_browser.rst b/docs/source/simulation_components/system/applications/web_browser.rst index 162463a0..dbe2da28 100644 --- a/docs/source/simulation_components/system/applications/web_browser.rst +++ b/docs/source/simulation_components/system/applications/web_browser.rst @@ -23,7 +23,7 @@ Usage ===== - Install on a Node via the ``SoftwareManager`` to start the ``WebBrowser``. -- Service runs on HTTP port 80 by default. (TODO: HTTPS) +- Service runs on HTTP port 80 by default. - Execute sending an HTTP GET request with ``get_webpage`` Implementation diff --git a/docs/source/simulation_components/system/services/ftp_client.rst b/docs/source/simulation_components/system/services/ftp_client.rst index 889a2c36..fdf9cfcf 100644 --- a/docs/source/simulation_components/system/services/ftp_client.rst +++ b/docs/source/simulation_components/system/services/ftp_client.rst @@ -87,5 +87,3 @@ Configuration .. |SOFTWARE_NAME| replace:: FTPClient .. |SOFTWARE_NAME_BACKTICK| replace:: ``FTPClient`` - -**FTPClient has no configuration options** diff --git a/docs/source/simulation_components/system/services/ntp_server.rst b/docs/source/simulation_components/system/services/ntp_server.rst index 0369cd15..3ddb51ea 100644 --- a/docs/source/simulation_components/system/services/ntp_server.rst +++ b/docs/source/simulation_components/system/services/ntp_server.rst @@ -82,5 +82,3 @@ Configuration .. |SOFTWARE_NAME| replace:: NTPServer .. |SOFTWARE_NAME_BACKTICK| replace:: ``NTPServer`` - -**NTPServer has no configuration options** diff --git a/docs/source/simulation_components/system/services/web_server.rst b/docs/source/simulation_components/system/services/web_server.rst index 5b205f5e..f0294223 100644 --- a/docs/source/simulation_components/system/services/web_server.rst +++ b/docs/source/simulation_components/system/services/web_server.rst @@ -82,5 +82,3 @@ Configuration .. |SOFTWARE_NAME| replace:: WebServer .. |SOFTWARE_NAME_BACKTICK| replace:: ``WebServer`` - -**WebServer has no configuration options** diff --git a/docs/source/simulation_structure.rst b/docs/source/simulation_structure.rst index 2804593a..cd9ac409 100644 --- a/docs/source/simulation_structure.rst +++ b/docs/source/simulation_structure.rst @@ -15,7 +15,7 @@ when a component's ``describe_state()`` method is called, it will include the st ``apply_request()`` method can be used to act on a component or one of its descendants. The diagram below shows the relationship between components. -.. image:: ../../_static/component_relationship.png +.. image:: ../_static/component_relationship.png :width: 500 :align: center :alt: :: The top level simulation object owns a NetworkContainer and a DomainController. The DomainController has a diff --git a/docs/source/varying_config_files.rst b/docs/source/varying_config_files.rst index d8f77f64..fa66f0d9 100644 --- a/docs/source/varying_config_files.rst +++ b/docs/source/varying_config_files.rst @@ -3,7 +3,7 @@ © Crown-owned copyright 2024, Defence Science and Technology Laboratory UK Defining variations in the config files -================ +======================================= PrimAITE supports the ability to use different variations on a scenario at different episodes. This can be used to increase domain randomisation to prevent overfitting, or to set up curriculum learning to train agents to perform more complicated tasks. @@ -15,7 +15,7 @@ Base scenario The base scenario is essentially the same as a fixed YAML configuration, but it can contain placeholders that are populated with episode-specific data at runtime. The base scenario contains any network, agent, or settings that remain fixed for the entire training/evaluation session. -The placeholders are defined as YAML Aliases and they are denoted by an asterisk (*placeholder). +The placeholders are defined as YAML Aliases and they are denoted by an asterisk (* *placeholder*) Variations ********** @@ -46,4 +46,4 @@ It takes the following format: For more information please refer to the ``Using Episode Schedules`` notebook in either :ref:`Executed Notebooks` or run the notebook interactively in ``notebooks/example_notebooks/``. -For further information around notebooks in general refer to the :ref:`Example Jupyter Notebooks`. +For further information around notebooks in general refer to the :ref:`example_notebooks` page. diff --git a/src/primaite/VERSION b/src/primaite/VERSION index 6d0e8e51..944880fa 100644 --- a/src/primaite/VERSION +++ b/src/primaite/VERSION @@ -1 +1 @@ -3.3.0-dev0 +3.2.0 diff --git a/src/primaite/game/agent/rewards.py b/src/primaite/game/agent/rewards.py index 4a17e9a5..c959ee5b 100644 --- a/src/primaite/game/agent/rewards.py +++ b/src/primaite/game/agent/rewards.py @@ -8,6 +8,7 @@ weighed sum of the components. The reward function is typically specified using a config yaml file or a config dictionary. The following example shows the structure: + ```yaml reward_function: reward_components: diff --git a/src/primaite/notebooks/Action-masking.ipynb b/src/primaite/notebooks/Action-masking.ipynb index 0e067b26..8811bb15 100644 --- a/src/primaite/notebooks/Action-masking.ipynb +++ b/src/primaite/notebooks/Action-masking.ipynb @@ -6,6 +6,8 @@ "source": [ "# Action Masking\n", "\n", + "© Crown-owned copyright 2024, Defence Science and Technology Laboratory UK\n", + "\n", "PrimAITE environments support action masking. The action mask shows which of the agent's actions are applicable with the current environment state. For example, a node can only be turned on if it is currently turned off." ] }, @@ -210,7 +212,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.12" + "version": "3.10.8" } }, "nbformat": 4, diff --git a/src/primaite/utils/cli/dev_cli.py b/src/primaite/utils/cli/dev_cli.py index 0dd9f9cc..8946a4ca 100644 --- a/src/primaite/utils/cli/dev_cli.py +++ b/src/primaite/utils/cli/dev_cli.py @@ -76,7 +76,7 @@ def config_callback( LogLevel, typer.Option( "--sys-log-level", - "-level", + "-slevel", click_type=click.Choice(LogLevel._member_names_, case_sensitive=False), help="The level of system logs to output.", show_default=False, @@ -86,7 +86,7 @@ def config_callback( LogLevel, typer.Option( "--agent-log-level", - "-level", + "-alevel", click_type=click.Choice(LogLevel._member_names_, case_sensitive=False), help="The level of agent behaviour logs to output.", show_default=False, diff --git a/tests/integration_tests/cli/test_dev_cli.py b/tests/integration_tests/cli/test_dev_cli.py index 19559e7c..cd390555 100644 --- a/tests/integration_tests/cli/test_dev_cli.py +++ b/tests/integration_tests/cli/test_dev_cli.py @@ -67,7 +67,7 @@ def test_dev_mode_config_sys_log_level(): # check defaults assert PRIMAITE_CONFIG["developer_mode"]["sys_log_level"] == "DEBUG" # DEBUG by default - result = cli(["dev-mode", "config", "--sys-log-level", "WARNING"]) + result = cli(["dev-mode", "config", "-slevel", "WARNING"]) assert "sys_log_level=WARNING" in result.output # should print correct value @@ -87,7 +87,7 @@ def test_dev_mode_config_agent_log_level(): # check defaults assert PRIMAITE_CONFIG["developer_mode"]["agent_log_level"] == "DEBUG" # DEBUG by default - result = cli(["dev-mode", "config", "-level", "WARNING"]) + result = cli(["dev-mode", "config", "-alevel", "WARNING"]) assert "agent_log_level=WARNING" in result.output # should print correct value