NMMAITA commited on
Commit
906d507
·
verified ·
1 Parent(s): 9e1951a

Upload 17 files

Browse files
Dockerfile ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FROM python:3.9-slim
2
+
3
+ WORKDIR /app
4
+
5
+ COPY requirements.txt .
6
+ RUN pip install --no-cache-dir -r requirements.txt
7
+
8
+ COPY . .
9
+
10
+ EXPOSE 7860
11
+
12
+ CMD ["gunicorn", "--bind", "0.0.0.0:7860", "app:app"]
Procfile ADDED
@@ -0,0 +1 @@
 
 
1
+ web: gunicorn app:app
app.py ADDED
@@ -0,0 +1,143 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import json
2
+ import os
3
+ import subprocess
4
+ import threading
5
+ import time
6
+ import numpy as np
7
+ import tensorflow as tf
8
+ from flask import Flask, render_template, jsonify, request
9
+ from werkzeug.utils import secure_filename
10
+
11
+ app = Flask(__name__)
12
+ app.config['UPLOAD_FOLDER'] = 'uploads'
13
+ os.makedirs('uploads', exist_ok=True)
14
+
15
+ training_status = {
16
+ "running": False,
17
+ "finished": False
18
+ }
19
+
20
+
21
+ def run_training(file_path):
22
+ training_status["running"] = True
23
+ training_status["finished"] = False
24
+
25
+ with open("training_results.json", "w") as f:
26
+ json.dump([], f)
27
+
28
+ server = subprocess.Popen(["python3", "server.py", file_path])
29
+ time.sleep(3)
30
+ client0 = subprocess.Popen(["python3", "client.py", "0", file_path])
31
+ client1 = subprocess.Popen(["python3", "client.py", "1", file_path])
32
+
33
+ server.wait()
34
+ client0.wait()
35
+ client1.wait()
36
+
37
+ training_status["running"] = False
38
+ training_status["finished"] = True
39
+
40
+
41
+ @app.route("/")
42
+ def index():
43
+ return render_template("landing.html")
44
+
45
+
46
+ @app.route("/dashboard")
47
+ def dashboard():
48
+ return render_template("index.html")
49
+
50
+
51
+ @app.route("/predict")
52
+ def predict():
53
+ return render_template("predict.html")
54
+
55
+
56
+ @app.route("/predict_result", methods=["POST"])
57
+ def predict_result():
58
+ diagnosis_type = request.form.get("diagnosis_type", "diabetes")
59
+
60
+ if diagnosis_type == "diabetes":
61
+ features = [
62
+ float(request.form.get("pregnancies", 0)),
63
+ float(request.form.get("glucose", 0)),
64
+ float(request.form.get("blood_pressure", 0)),
65
+ float(request.form.get("skin_thickness", 0)),
66
+ float(request.form.get("insulin", 0)),
67
+ float(request.form.get("bmi", 0)),
68
+ float(request.form.get("diabetes_pedigree", 0)),
69
+ float(request.form.get("age", 0)),
70
+ ]
71
+ model_path = "diabetes_model.keras"
72
+ disease_name = "Diabetes"
73
+
74
+ elif diagnosis_type == "heart":
75
+ features = [
76
+ float(request.form.get("age", 0)),
77
+ float(request.form.get("sex", 0)),
78
+ float(request.form.get("cp", 0)),
79
+ float(request.form.get("trestbps", 0)),
80
+ float(request.form.get("chol", 0)),
81
+ float(request.form.get("fbs", 0)),
82
+ float(request.form.get("restecg", 0)),
83
+ float(request.form.get("thalach", 0)),
84
+ float(request.form.get("exang", 0)),
85
+ float(request.form.get("oldpeak", 0)),
86
+ float(request.form.get("slope", 0)),
87
+ float(request.form.get("ca", 0)),
88
+ float(request.form.get("thal", 0)),
89
+ ]
90
+ model_path = "heart_model.keras"
91
+ disease_name = "Heart Disease"
92
+
93
+ else:
94
+ return jsonify({"error": "Invalid diagnosis type"})
95
+
96
+ X = np.array([features])
97
+ model = tf.keras.models.load_model(model_path)
98
+ prediction = model.predict(X)[0][0]
99
+
100
+ risk = "High Risk" if prediction > 0.5 else "Low Risk"
101
+ confidence = round(float(prediction) * 100, 1) if prediction > 0.5 else round((1 - float(prediction)) * 100, 1)
102
+
103
+ return jsonify({
104
+ "risk": risk,
105
+ "confidence": confidence,
106
+ "probability": round(float(prediction) * 100, 1),
107
+ "disease": disease_name
108
+ })
109
+
110
+
111
+ @app.route("/start_training", methods=["POST"])
112
+ def start_training():
113
+ if training_status["running"]:
114
+ return jsonify({"status": "already running"})
115
+
116
+ file_path = "diabetes.csv"
117
+
118
+ if "file" in request.files and request.files["file"].filename != "":
119
+ file = request.files["file"]
120
+ filename = secure_filename(file.filename)
121
+ file_path = os.path.join(app.config['UPLOAD_FOLDER'], filename)
122
+ file.save(file_path)
123
+
124
+ thread = threading.Thread(target=run_training, args=(file_path,))
125
+ thread.start()
126
+ return jsonify({"status": "started"})
127
+
128
+
129
+ @app.route("/status")
130
+ def status():
131
+ results = []
132
+ if os.path.exists("training_results.json"):
133
+ with open("training_results.json", "r") as f:
134
+ results = json.load(f)
135
+ return jsonify({
136
+ "running": training_status["running"],
137
+ "finished": training_status["finished"],
138
+ "rounds": results
139
+ })
140
+
141
+
142
+ if __name__ == "__main__":
143
+ app.run(debug=False, port=8000)
client.py ADDED
@@ -0,0 +1,50 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import flwr as fl
2
+ import tensorflow as tf
3
+ import numpy as np
4
+ import pandas as pd
5
+ from model import create_model
6
+
7
+ def load_data(file_path, client_id):
8
+ data = pd.read_csv(file_path)
9
+ # last column is the target
10
+ X = data.iloc[:, :-1].values
11
+ y = data.iloc[:, -1].values
12
+ X = (X - X.mean(axis=0)) / (X.std(axis=0) + 1e-8)
13
+ split = int(len(X) * 0.8)
14
+ X_train, X_test = X[:split], X[split:]
15
+ y_train, y_test = y[:split], y[split:]
16
+ size = len(X_train) // 2
17
+ return (
18
+ X_train[client_id * size:(client_id + 1) * size],
19
+ y_train[client_id * size:(client_id + 1) * size],
20
+ X_test,
21
+ y_test
22
+ )
23
+
24
+ class HospitalClient(fl.client.NumPyClient):
25
+
26
+ def __init__(self, client_id, file_path):
27
+ self.x_train, self.y_train, self.x_test, self.y_test = load_data(file_path, client_id)
28
+ self.model = create_model(input_shape=self.x_train.shape[1])
29
+
30
+ def get_parameters(self, config):
31
+ return self.model.get_weights()
32
+
33
+ def fit(self, parameters, config):
34
+ self.model.set_weights(parameters)
35
+ self.model.fit(self.x_train, self.y_train, epochs=5, verbose=0)
36
+ return self.model.get_weights(), len(self.x_train), {}
37
+
38
+ def evaluate(self, parameters, config):
39
+ self.model.set_weights(parameters)
40
+ loss, accuracy = self.model.evaluate(self.x_test, self.y_test, verbose=0)
41
+ return loss, len(self.x_test), {"accuracy": accuracy}
42
+
43
+ if __name__ == "__main__":
44
+ import sys
45
+ client_id = int(sys.argv[1]) if len(sys.argv) > 1 else 0
46
+ file_path = sys.argv[2] if len(sys.argv) > 2 else "diabetes.csv"
47
+ fl.client.start_numpy_client(
48
+ server_address="localhost:8080",
49
+ client=HospitalClient(client_id, file_path)
50
+ )
diabetes.csv ADDED
@@ -0,0 +1,769 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Pregnancies,Glucose,BloodPressure,SkinThickness,Insulin,BMI,DiabetesPedigreeFunction,Age,Outcome
2
+ 6,148,72,35,0,33.6,0.627,50,1
3
+ 1,85,66,29,0,26.6,0.351,31,0
4
+ 8,183,64,0,0,23.3,0.672,32,1
5
+ 1,89,66,23,94,28.1,0.167,21,0
6
+ 0,137,40,35,168,43.1,2.288,33,1
7
+ 5,116,74,0,0,25.6,0.201,30,0
8
+ 3,78,50,32,88,31,0.248,26,1
9
+ 10,115,0,0,0,35.3,0.134,29,0
10
+ 2,197,70,45,543,30.5,0.158,53,1
11
+ 8,125,96,0,0,0,0.232,54,1
12
+ 4,110,92,0,0,37.6,0.191,30,0
13
+ 10,168,74,0,0,38,0.537,34,1
14
+ 10,139,80,0,0,27.1,1.441,57,0
15
+ 1,189,60,23,846,30.1,0.398,59,1
16
+ 5,166,72,19,175,25.8,0.587,51,1
17
+ 7,100,0,0,0,30,0.484,32,1
18
+ 0,118,84,47,230,45.8,0.551,31,1
19
+ 7,107,74,0,0,29.6,0.254,31,1
20
+ 1,103,30,38,83,43.3,0.183,33,0
21
+ 1,115,70,30,96,34.6,0.529,32,1
22
+ 3,126,88,41,235,39.3,0.704,27,0
23
+ 8,99,84,0,0,35.4,0.388,50,0
24
+ 7,196,90,0,0,39.8,0.451,41,1
25
+ 9,119,80,35,0,29,0.263,29,1
26
+ 11,143,94,33,146,36.6,0.254,51,1
27
+ 10,125,70,26,115,31.1,0.205,41,1
28
+ 7,147,76,0,0,39.4,0.257,43,1
29
+ 1,97,66,15,140,23.2,0.487,22,0
30
+ 13,145,82,19,110,22.2,0.245,57,0
31
+ 5,117,92,0,0,34.1,0.337,38,0
32
+ 5,109,75,26,0,36,0.546,60,0
33
+ 3,158,76,36,245,31.6,0.851,28,1
34
+ 3,88,58,11,54,24.8,0.267,22,0
35
+ 6,92,92,0,0,19.9,0.188,28,0
36
+ 10,122,78,31,0,27.6,0.512,45,0
37
+ 4,103,60,33,192,24,0.966,33,0
38
+ 11,138,76,0,0,33.2,0.42,35,0
39
+ 9,102,76,37,0,32.9,0.665,46,1
40
+ 2,90,68,42,0,38.2,0.503,27,1
41
+ 4,111,72,47,207,37.1,1.39,56,1
42
+ 3,180,64,25,70,34,0.271,26,0
43
+ 7,133,84,0,0,40.2,0.696,37,0
44
+ 7,106,92,18,0,22.7,0.235,48,0
45
+ 9,171,110,24,240,45.4,0.721,54,1
46
+ 7,159,64,0,0,27.4,0.294,40,0
47
+ 0,180,66,39,0,42,1.893,25,1
48
+ 1,146,56,0,0,29.7,0.564,29,0
49
+ 2,71,70,27,0,28,0.586,22,0
50
+ 7,103,66,32,0,39.1,0.344,31,1
51
+ 7,105,0,0,0,0,0.305,24,0
52
+ 1,103,80,11,82,19.4,0.491,22,0
53
+ 1,101,50,15,36,24.2,0.526,26,0
54
+ 5,88,66,21,23,24.4,0.342,30,0
55
+ 8,176,90,34,300,33.7,0.467,58,1
56
+ 7,150,66,42,342,34.7,0.718,42,0
57
+ 1,73,50,10,0,23,0.248,21,0
58
+ 7,187,68,39,304,37.7,0.254,41,1
59
+ 0,100,88,60,110,46.8,0.962,31,0
60
+ 0,146,82,0,0,40.5,1.781,44,0
61
+ 0,105,64,41,142,41.5,0.173,22,0
62
+ 2,84,0,0,0,0,0.304,21,0
63
+ 8,133,72,0,0,32.9,0.27,39,1
64
+ 5,44,62,0,0,25,0.587,36,0
65
+ 2,141,58,34,128,25.4,0.699,24,0
66
+ 7,114,66,0,0,32.8,0.258,42,1
67
+ 5,99,74,27,0,29,0.203,32,0
68
+ 0,109,88,30,0,32.5,0.855,38,1
69
+ 2,109,92,0,0,42.7,0.845,54,0
70
+ 1,95,66,13,38,19.6,0.334,25,0
71
+ 4,146,85,27,100,28.9,0.189,27,0
72
+ 2,100,66,20,90,32.9,0.867,28,1
73
+ 5,139,64,35,140,28.6,0.411,26,0
74
+ 13,126,90,0,0,43.4,0.583,42,1
75
+ 4,129,86,20,270,35.1,0.231,23,0
76
+ 1,79,75,30,0,32,0.396,22,0
77
+ 1,0,48,20,0,24.7,0.14,22,0
78
+ 7,62,78,0,0,32.6,0.391,41,0
79
+ 5,95,72,33,0,37.7,0.37,27,0
80
+ 0,131,0,0,0,43.2,0.27,26,1
81
+ 2,112,66,22,0,25,0.307,24,0
82
+ 3,113,44,13,0,22.4,0.14,22,0
83
+ 2,74,0,0,0,0,0.102,22,0
84
+ 7,83,78,26,71,29.3,0.767,36,0
85
+ 0,101,65,28,0,24.6,0.237,22,0
86
+ 5,137,108,0,0,48.8,0.227,37,1
87
+ 2,110,74,29,125,32.4,0.698,27,0
88
+ 13,106,72,54,0,36.6,0.178,45,0
89
+ 2,100,68,25,71,38.5,0.324,26,0
90
+ 15,136,70,32,110,37.1,0.153,43,1
91
+ 1,107,68,19,0,26.5,0.165,24,0
92
+ 1,80,55,0,0,19.1,0.258,21,0
93
+ 4,123,80,15,176,32,0.443,34,0
94
+ 7,81,78,40,48,46.7,0.261,42,0
95
+ 4,134,72,0,0,23.8,0.277,60,1
96
+ 2,142,82,18,64,24.7,0.761,21,0
97
+ 6,144,72,27,228,33.9,0.255,40,0
98
+ 2,92,62,28,0,31.6,0.13,24,0
99
+ 1,71,48,18,76,20.4,0.323,22,0
100
+ 6,93,50,30,64,28.7,0.356,23,0
101
+ 1,122,90,51,220,49.7,0.325,31,1
102
+ 1,163,72,0,0,39,1.222,33,1
103
+ 1,151,60,0,0,26.1,0.179,22,0
104
+ 0,125,96,0,0,22.5,0.262,21,0
105
+ 1,81,72,18,40,26.6,0.283,24,0
106
+ 2,85,65,0,0,39.6,0.93,27,0
107
+ 1,126,56,29,152,28.7,0.801,21,0
108
+ 1,96,122,0,0,22.4,0.207,27,0
109
+ 4,144,58,28,140,29.5,0.287,37,0
110
+ 3,83,58,31,18,34.3,0.336,25,0
111
+ 0,95,85,25,36,37.4,0.247,24,1
112
+ 3,171,72,33,135,33.3,0.199,24,1
113
+ 8,155,62,26,495,34,0.543,46,1
114
+ 1,89,76,34,37,31.2,0.192,23,0
115
+ 4,76,62,0,0,34,0.391,25,0
116
+ 7,160,54,32,175,30.5,0.588,39,1
117
+ 4,146,92,0,0,31.2,0.539,61,1
118
+ 5,124,74,0,0,34,0.22,38,1
119
+ 5,78,48,0,0,33.7,0.654,25,0
120
+ 4,97,60,23,0,28.2,0.443,22,0
121
+ 4,99,76,15,51,23.2,0.223,21,0
122
+ 0,162,76,56,100,53.2,0.759,25,1
123
+ 6,111,64,39,0,34.2,0.26,24,0
124
+ 2,107,74,30,100,33.6,0.404,23,0
125
+ 5,132,80,0,0,26.8,0.186,69,0
126
+ 0,113,76,0,0,33.3,0.278,23,1
127
+ 1,88,30,42,99,55,0.496,26,1
128
+ 3,120,70,30,135,42.9,0.452,30,0
129
+ 1,118,58,36,94,33.3,0.261,23,0
130
+ 1,117,88,24,145,34.5,0.403,40,1
131
+ 0,105,84,0,0,27.9,0.741,62,1
132
+ 4,173,70,14,168,29.7,0.361,33,1
133
+ 9,122,56,0,0,33.3,1.114,33,1
134
+ 3,170,64,37,225,34.5,0.356,30,1
135
+ 8,84,74,31,0,38.3,0.457,39,0
136
+ 2,96,68,13,49,21.1,0.647,26,0
137
+ 2,125,60,20,140,33.8,0.088,31,0
138
+ 0,100,70,26,50,30.8,0.597,21,0
139
+ 0,93,60,25,92,28.7,0.532,22,0
140
+ 0,129,80,0,0,31.2,0.703,29,0
141
+ 5,105,72,29,325,36.9,0.159,28,0
142
+ 3,128,78,0,0,21.1,0.268,55,0
143
+ 5,106,82,30,0,39.5,0.286,38,0
144
+ 2,108,52,26,63,32.5,0.318,22,0
145
+ 10,108,66,0,0,32.4,0.272,42,1
146
+ 4,154,62,31,284,32.8,0.237,23,0
147
+ 0,102,75,23,0,0,0.572,21,0
148
+ 9,57,80,37,0,32.8,0.096,41,0
149
+ 2,106,64,35,119,30.5,1.4,34,0
150
+ 5,147,78,0,0,33.7,0.218,65,0
151
+ 2,90,70,17,0,27.3,0.085,22,0
152
+ 1,136,74,50,204,37.4,0.399,24,0
153
+ 4,114,65,0,0,21.9,0.432,37,0
154
+ 9,156,86,28,155,34.3,1.189,42,1
155
+ 1,153,82,42,485,40.6,0.687,23,0
156
+ 8,188,78,0,0,47.9,0.137,43,1
157
+ 7,152,88,44,0,50,0.337,36,1
158
+ 2,99,52,15,94,24.6,0.637,21,0
159
+ 1,109,56,21,135,25.2,0.833,23,0
160
+ 2,88,74,19,53,29,0.229,22,0
161
+ 17,163,72,41,114,40.9,0.817,47,1
162
+ 4,151,90,38,0,29.7,0.294,36,0
163
+ 7,102,74,40,105,37.2,0.204,45,0
164
+ 0,114,80,34,285,44.2,0.167,27,0
165
+ 2,100,64,23,0,29.7,0.368,21,0
166
+ 0,131,88,0,0,31.6,0.743,32,1
167
+ 6,104,74,18,156,29.9,0.722,41,1
168
+ 3,148,66,25,0,32.5,0.256,22,0
169
+ 4,120,68,0,0,29.6,0.709,34,0
170
+ 4,110,66,0,0,31.9,0.471,29,0
171
+ 3,111,90,12,78,28.4,0.495,29,0
172
+ 6,102,82,0,0,30.8,0.18,36,1
173
+ 6,134,70,23,130,35.4,0.542,29,1
174
+ 2,87,0,23,0,28.9,0.773,25,0
175
+ 1,79,60,42,48,43.5,0.678,23,0
176
+ 2,75,64,24,55,29.7,0.37,33,0
177
+ 8,179,72,42,130,32.7,0.719,36,1
178
+ 6,85,78,0,0,31.2,0.382,42,0
179
+ 0,129,110,46,130,67.1,0.319,26,1
180
+ 5,143,78,0,0,45,0.19,47,0
181
+ 5,130,82,0,0,39.1,0.956,37,1
182
+ 6,87,80,0,0,23.2,0.084,32,0
183
+ 0,119,64,18,92,34.9,0.725,23,0
184
+ 1,0,74,20,23,27.7,0.299,21,0
185
+ 5,73,60,0,0,26.8,0.268,27,0
186
+ 4,141,74,0,0,27.6,0.244,40,0
187
+ 7,194,68,28,0,35.9,0.745,41,1
188
+ 8,181,68,36,495,30.1,0.615,60,1
189
+ 1,128,98,41,58,32,1.321,33,1
190
+ 8,109,76,39,114,27.9,0.64,31,1
191
+ 5,139,80,35,160,31.6,0.361,25,1
192
+ 3,111,62,0,0,22.6,0.142,21,0
193
+ 9,123,70,44,94,33.1,0.374,40,0
194
+ 7,159,66,0,0,30.4,0.383,36,1
195
+ 11,135,0,0,0,52.3,0.578,40,1
196
+ 8,85,55,20,0,24.4,0.136,42,0
197
+ 5,158,84,41,210,39.4,0.395,29,1
198
+ 1,105,58,0,0,24.3,0.187,21,0
199
+ 3,107,62,13,48,22.9,0.678,23,1
200
+ 4,109,64,44,99,34.8,0.905,26,1
201
+ 4,148,60,27,318,30.9,0.15,29,1
202
+ 0,113,80,16,0,31,0.874,21,0
203
+ 1,138,82,0,0,40.1,0.236,28,0
204
+ 0,108,68,20,0,27.3,0.787,32,0
205
+ 2,99,70,16,44,20.4,0.235,27,0
206
+ 6,103,72,32,190,37.7,0.324,55,0
207
+ 5,111,72,28,0,23.9,0.407,27,0
208
+ 8,196,76,29,280,37.5,0.605,57,1
209
+ 5,162,104,0,0,37.7,0.151,52,1
210
+ 1,96,64,27,87,33.2,0.289,21,0
211
+ 7,184,84,33,0,35.5,0.355,41,1
212
+ 2,81,60,22,0,27.7,0.29,25,0
213
+ 0,147,85,54,0,42.8,0.375,24,0
214
+ 7,179,95,31,0,34.2,0.164,60,0
215
+ 0,140,65,26,130,42.6,0.431,24,1
216
+ 9,112,82,32,175,34.2,0.26,36,1
217
+ 12,151,70,40,271,41.8,0.742,38,1
218
+ 5,109,62,41,129,35.8,0.514,25,1
219
+ 6,125,68,30,120,30,0.464,32,0
220
+ 5,85,74,22,0,29,1.224,32,1
221
+ 5,112,66,0,0,37.8,0.261,41,1
222
+ 0,177,60,29,478,34.6,1.072,21,1
223
+ 2,158,90,0,0,31.6,0.805,66,1
224
+ 7,119,0,0,0,25.2,0.209,37,0
225
+ 7,142,60,33,190,28.8,0.687,61,0
226
+ 1,100,66,15,56,23.6,0.666,26,0
227
+ 1,87,78,27,32,34.6,0.101,22,0
228
+ 0,101,76,0,0,35.7,0.198,26,0
229
+ 3,162,52,38,0,37.2,0.652,24,1
230
+ 4,197,70,39,744,36.7,2.329,31,0
231
+ 0,117,80,31,53,45.2,0.089,24,0
232
+ 4,142,86,0,0,44,0.645,22,1
233
+ 6,134,80,37,370,46.2,0.238,46,1
234
+ 1,79,80,25,37,25.4,0.583,22,0
235
+ 4,122,68,0,0,35,0.394,29,0
236
+ 3,74,68,28,45,29.7,0.293,23,0
237
+ 4,171,72,0,0,43.6,0.479,26,1
238
+ 7,181,84,21,192,35.9,0.586,51,1
239
+ 0,179,90,27,0,44.1,0.686,23,1
240
+ 9,164,84,21,0,30.8,0.831,32,1
241
+ 0,104,76,0,0,18.4,0.582,27,0
242
+ 1,91,64,24,0,29.2,0.192,21,0
243
+ 4,91,70,32,88,33.1,0.446,22,0
244
+ 3,139,54,0,0,25.6,0.402,22,1
245
+ 6,119,50,22,176,27.1,1.318,33,1
246
+ 2,146,76,35,194,38.2,0.329,29,0
247
+ 9,184,85,15,0,30,1.213,49,1
248
+ 10,122,68,0,0,31.2,0.258,41,0
249
+ 0,165,90,33,680,52.3,0.427,23,0
250
+ 9,124,70,33,402,35.4,0.282,34,0
251
+ 1,111,86,19,0,30.1,0.143,23,0
252
+ 9,106,52,0,0,31.2,0.38,42,0
253
+ 2,129,84,0,0,28,0.284,27,0
254
+ 2,90,80,14,55,24.4,0.249,24,0
255
+ 0,86,68,32,0,35.8,0.238,25,0
256
+ 12,92,62,7,258,27.6,0.926,44,1
257
+ 1,113,64,35,0,33.6,0.543,21,1
258
+ 3,111,56,39,0,30.1,0.557,30,0
259
+ 2,114,68,22,0,28.7,0.092,25,0
260
+ 1,193,50,16,375,25.9,0.655,24,0
261
+ 11,155,76,28,150,33.3,1.353,51,1
262
+ 3,191,68,15,130,30.9,0.299,34,0
263
+ 3,141,0,0,0,30,0.761,27,1
264
+ 4,95,70,32,0,32.1,0.612,24,0
265
+ 3,142,80,15,0,32.4,0.2,63,0
266
+ 4,123,62,0,0,32,0.226,35,1
267
+ 5,96,74,18,67,33.6,0.997,43,0
268
+ 0,138,0,0,0,36.3,0.933,25,1
269
+ 2,128,64,42,0,40,1.101,24,0
270
+ 0,102,52,0,0,25.1,0.078,21,0
271
+ 2,146,0,0,0,27.5,0.24,28,1
272
+ 10,101,86,37,0,45.6,1.136,38,1
273
+ 2,108,62,32,56,25.2,0.128,21,0
274
+ 3,122,78,0,0,23,0.254,40,0
275
+ 1,71,78,50,45,33.2,0.422,21,0
276
+ 13,106,70,0,0,34.2,0.251,52,0
277
+ 2,100,70,52,57,40.5,0.677,25,0
278
+ 7,106,60,24,0,26.5,0.296,29,1
279
+ 0,104,64,23,116,27.8,0.454,23,0
280
+ 5,114,74,0,0,24.9,0.744,57,0
281
+ 2,108,62,10,278,25.3,0.881,22,0
282
+ 0,146,70,0,0,37.9,0.334,28,1
283
+ 10,129,76,28,122,35.9,0.28,39,0
284
+ 7,133,88,15,155,32.4,0.262,37,0
285
+ 7,161,86,0,0,30.4,0.165,47,1
286
+ 2,108,80,0,0,27,0.259,52,1
287
+ 7,136,74,26,135,26,0.647,51,0
288
+ 5,155,84,44,545,38.7,0.619,34,0
289
+ 1,119,86,39,220,45.6,0.808,29,1
290
+ 4,96,56,17,49,20.8,0.34,26,0
291
+ 5,108,72,43,75,36.1,0.263,33,0
292
+ 0,78,88,29,40,36.9,0.434,21,0
293
+ 0,107,62,30,74,36.6,0.757,25,1
294
+ 2,128,78,37,182,43.3,1.224,31,1
295
+ 1,128,48,45,194,40.5,0.613,24,1
296
+ 0,161,50,0,0,21.9,0.254,65,0
297
+ 6,151,62,31,120,35.5,0.692,28,0
298
+ 2,146,70,38,360,28,0.337,29,1
299
+ 0,126,84,29,215,30.7,0.52,24,0
300
+ 14,100,78,25,184,36.6,0.412,46,1
301
+ 8,112,72,0,0,23.6,0.84,58,0
302
+ 0,167,0,0,0,32.3,0.839,30,1
303
+ 2,144,58,33,135,31.6,0.422,25,1
304
+ 5,77,82,41,42,35.8,0.156,35,0
305
+ 5,115,98,0,0,52.9,0.209,28,1
306
+ 3,150,76,0,0,21,0.207,37,0
307
+ 2,120,76,37,105,39.7,0.215,29,0
308
+ 10,161,68,23,132,25.5,0.326,47,1
309
+ 0,137,68,14,148,24.8,0.143,21,0
310
+ 0,128,68,19,180,30.5,1.391,25,1
311
+ 2,124,68,28,205,32.9,0.875,30,1
312
+ 6,80,66,30,0,26.2,0.313,41,0
313
+ 0,106,70,37,148,39.4,0.605,22,0
314
+ 2,155,74,17,96,26.6,0.433,27,1
315
+ 3,113,50,10,85,29.5,0.626,25,0
316
+ 7,109,80,31,0,35.9,1.127,43,1
317
+ 2,112,68,22,94,34.1,0.315,26,0
318
+ 3,99,80,11,64,19.3,0.284,30,0
319
+ 3,182,74,0,0,30.5,0.345,29,1
320
+ 3,115,66,39,140,38.1,0.15,28,0
321
+ 6,194,78,0,0,23.5,0.129,59,1
322
+ 4,129,60,12,231,27.5,0.527,31,0
323
+ 3,112,74,30,0,31.6,0.197,25,1
324
+ 0,124,70,20,0,27.4,0.254,36,1
325
+ 13,152,90,33,29,26.8,0.731,43,1
326
+ 2,112,75,32,0,35.7,0.148,21,0
327
+ 1,157,72,21,168,25.6,0.123,24,0
328
+ 1,122,64,32,156,35.1,0.692,30,1
329
+ 10,179,70,0,0,35.1,0.2,37,0
330
+ 2,102,86,36,120,45.5,0.127,23,1
331
+ 6,105,70,32,68,30.8,0.122,37,0
332
+ 8,118,72,19,0,23.1,1.476,46,0
333
+ 2,87,58,16,52,32.7,0.166,25,0
334
+ 1,180,0,0,0,43.3,0.282,41,1
335
+ 12,106,80,0,0,23.6,0.137,44,0
336
+ 1,95,60,18,58,23.9,0.26,22,0
337
+ 0,165,76,43,255,47.9,0.259,26,0
338
+ 0,117,0,0,0,33.8,0.932,44,0
339
+ 5,115,76,0,0,31.2,0.343,44,1
340
+ 9,152,78,34,171,34.2,0.893,33,1
341
+ 7,178,84,0,0,39.9,0.331,41,1
342
+ 1,130,70,13,105,25.9,0.472,22,0
343
+ 1,95,74,21,73,25.9,0.673,36,0
344
+ 1,0,68,35,0,32,0.389,22,0
345
+ 5,122,86,0,0,34.7,0.29,33,0
346
+ 8,95,72,0,0,36.8,0.485,57,0
347
+ 8,126,88,36,108,38.5,0.349,49,0
348
+ 1,139,46,19,83,28.7,0.654,22,0
349
+ 3,116,0,0,0,23.5,0.187,23,0
350
+ 3,99,62,19,74,21.8,0.279,26,0
351
+ 5,0,80,32,0,41,0.346,37,1
352
+ 4,92,80,0,0,42.2,0.237,29,0
353
+ 4,137,84,0,0,31.2,0.252,30,0
354
+ 3,61,82,28,0,34.4,0.243,46,0
355
+ 1,90,62,12,43,27.2,0.58,24,0
356
+ 3,90,78,0,0,42.7,0.559,21,0
357
+ 9,165,88,0,0,30.4,0.302,49,1
358
+ 1,125,50,40,167,33.3,0.962,28,1
359
+ 13,129,0,30,0,39.9,0.569,44,1
360
+ 12,88,74,40,54,35.3,0.378,48,0
361
+ 1,196,76,36,249,36.5,0.875,29,1
362
+ 5,189,64,33,325,31.2,0.583,29,1
363
+ 5,158,70,0,0,29.8,0.207,63,0
364
+ 5,103,108,37,0,39.2,0.305,65,0
365
+ 4,146,78,0,0,38.5,0.52,67,1
366
+ 4,147,74,25,293,34.9,0.385,30,0
367
+ 5,99,54,28,83,34,0.499,30,0
368
+ 6,124,72,0,0,27.6,0.368,29,1
369
+ 0,101,64,17,0,21,0.252,21,0
370
+ 3,81,86,16,66,27.5,0.306,22,0
371
+ 1,133,102,28,140,32.8,0.234,45,1
372
+ 3,173,82,48,465,38.4,2.137,25,1
373
+ 0,118,64,23,89,0,1.731,21,0
374
+ 0,84,64,22,66,35.8,0.545,21,0
375
+ 2,105,58,40,94,34.9,0.225,25,0
376
+ 2,122,52,43,158,36.2,0.816,28,0
377
+ 12,140,82,43,325,39.2,0.528,58,1
378
+ 0,98,82,15,84,25.2,0.299,22,0
379
+ 1,87,60,37,75,37.2,0.509,22,0
380
+ 4,156,75,0,0,48.3,0.238,32,1
381
+ 0,93,100,39,72,43.4,1.021,35,0
382
+ 1,107,72,30,82,30.8,0.821,24,0
383
+ 0,105,68,22,0,20,0.236,22,0
384
+ 1,109,60,8,182,25.4,0.947,21,0
385
+ 1,90,62,18,59,25.1,1.268,25,0
386
+ 1,125,70,24,110,24.3,0.221,25,0
387
+ 1,119,54,13,50,22.3,0.205,24,0
388
+ 5,116,74,29,0,32.3,0.66,35,1
389
+ 8,105,100,36,0,43.3,0.239,45,1
390
+ 5,144,82,26,285,32,0.452,58,1
391
+ 3,100,68,23,81,31.6,0.949,28,0
392
+ 1,100,66,29,196,32,0.444,42,0
393
+ 5,166,76,0,0,45.7,0.34,27,1
394
+ 1,131,64,14,415,23.7,0.389,21,0
395
+ 4,116,72,12,87,22.1,0.463,37,0
396
+ 4,158,78,0,0,32.9,0.803,31,1
397
+ 2,127,58,24,275,27.7,1.6,25,0
398
+ 3,96,56,34,115,24.7,0.944,39,0
399
+ 0,131,66,40,0,34.3,0.196,22,1
400
+ 3,82,70,0,0,21.1,0.389,25,0
401
+ 3,193,70,31,0,34.9,0.241,25,1
402
+ 4,95,64,0,0,32,0.161,31,1
403
+ 6,137,61,0,0,24.2,0.151,55,0
404
+ 5,136,84,41,88,35,0.286,35,1
405
+ 9,72,78,25,0,31.6,0.28,38,0
406
+ 5,168,64,0,0,32.9,0.135,41,1
407
+ 2,123,48,32,165,42.1,0.52,26,0
408
+ 4,115,72,0,0,28.9,0.376,46,1
409
+ 0,101,62,0,0,21.9,0.336,25,0
410
+ 8,197,74,0,0,25.9,1.191,39,1
411
+ 1,172,68,49,579,42.4,0.702,28,1
412
+ 6,102,90,39,0,35.7,0.674,28,0
413
+ 1,112,72,30,176,34.4,0.528,25,0
414
+ 1,143,84,23,310,42.4,1.076,22,0
415
+ 1,143,74,22,61,26.2,0.256,21,0
416
+ 0,138,60,35,167,34.6,0.534,21,1
417
+ 3,173,84,33,474,35.7,0.258,22,1
418
+ 1,97,68,21,0,27.2,1.095,22,0
419
+ 4,144,82,32,0,38.5,0.554,37,1
420
+ 1,83,68,0,0,18.2,0.624,27,0
421
+ 3,129,64,29,115,26.4,0.219,28,1
422
+ 1,119,88,41,170,45.3,0.507,26,0
423
+ 2,94,68,18,76,26,0.561,21,0
424
+ 0,102,64,46,78,40.6,0.496,21,0
425
+ 2,115,64,22,0,30.8,0.421,21,0
426
+ 8,151,78,32,210,42.9,0.516,36,1
427
+ 4,184,78,39,277,37,0.264,31,1
428
+ 0,94,0,0,0,0,0.256,25,0
429
+ 1,181,64,30,180,34.1,0.328,38,1
430
+ 0,135,94,46,145,40.6,0.284,26,0
431
+ 1,95,82,25,180,35,0.233,43,1
432
+ 2,99,0,0,0,22.2,0.108,23,0
433
+ 3,89,74,16,85,30.4,0.551,38,0
434
+ 1,80,74,11,60,30,0.527,22,0
435
+ 2,139,75,0,0,25.6,0.167,29,0
436
+ 1,90,68,8,0,24.5,1.138,36,0
437
+ 0,141,0,0,0,42.4,0.205,29,1
438
+ 12,140,85,33,0,37.4,0.244,41,0
439
+ 5,147,75,0,0,29.9,0.434,28,0
440
+ 1,97,70,15,0,18.2,0.147,21,0
441
+ 6,107,88,0,0,36.8,0.727,31,0
442
+ 0,189,104,25,0,34.3,0.435,41,1
443
+ 2,83,66,23,50,32.2,0.497,22,0
444
+ 4,117,64,27,120,33.2,0.23,24,0
445
+ 8,108,70,0,0,30.5,0.955,33,1
446
+ 4,117,62,12,0,29.7,0.38,30,1
447
+ 0,180,78,63,14,59.4,2.42,25,1
448
+ 1,100,72,12,70,25.3,0.658,28,0
449
+ 0,95,80,45,92,36.5,0.33,26,0
450
+ 0,104,64,37,64,33.6,0.51,22,1
451
+ 0,120,74,18,63,30.5,0.285,26,0
452
+ 1,82,64,13,95,21.2,0.415,23,0
453
+ 2,134,70,0,0,28.9,0.542,23,1
454
+ 0,91,68,32,210,39.9,0.381,25,0
455
+ 2,119,0,0,0,19.6,0.832,72,0
456
+ 2,100,54,28,105,37.8,0.498,24,0
457
+ 14,175,62,30,0,33.6,0.212,38,1
458
+ 1,135,54,0,0,26.7,0.687,62,0
459
+ 5,86,68,28,71,30.2,0.364,24,0
460
+ 10,148,84,48,237,37.6,1.001,51,1
461
+ 9,134,74,33,60,25.9,0.46,81,0
462
+ 9,120,72,22,56,20.8,0.733,48,0
463
+ 1,71,62,0,0,21.8,0.416,26,0
464
+ 8,74,70,40,49,35.3,0.705,39,0
465
+ 5,88,78,30,0,27.6,0.258,37,0
466
+ 10,115,98,0,0,24,1.022,34,0
467
+ 0,124,56,13,105,21.8,0.452,21,0
468
+ 0,74,52,10,36,27.8,0.269,22,0
469
+ 0,97,64,36,100,36.8,0.6,25,0
470
+ 8,120,0,0,0,30,0.183,38,1
471
+ 6,154,78,41,140,46.1,0.571,27,0
472
+ 1,144,82,40,0,41.3,0.607,28,0
473
+ 0,137,70,38,0,33.2,0.17,22,0
474
+ 0,119,66,27,0,38.8,0.259,22,0
475
+ 7,136,90,0,0,29.9,0.21,50,0
476
+ 4,114,64,0,0,28.9,0.126,24,0
477
+ 0,137,84,27,0,27.3,0.231,59,0
478
+ 2,105,80,45,191,33.7,0.711,29,1
479
+ 7,114,76,17,110,23.8,0.466,31,0
480
+ 8,126,74,38,75,25.9,0.162,39,0
481
+ 4,132,86,31,0,28,0.419,63,0
482
+ 3,158,70,30,328,35.5,0.344,35,1
483
+ 0,123,88,37,0,35.2,0.197,29,0
484
+ 4,85,58,22,49,27.8,0.306,28,0
485
+ 0,84,82,31,125,38.2,0.233,23,0
486
+ 0,145,0,0,0,44.2,0.63,31,1
487
+ 0,135,68,42,250,42.3,0.365,24,1
488
+ 1,139,62,41,480,40.7,0.536,21,0
489
+ 0,173,78,32,265,46.5,1.159,58,0
490
+ 4,99,72,17,0,25.6,0.294,28,0
491
+ 8,194,80,0,0,26.1,0.551,67,0
492
+ 2,83,65,28,66,36.8,0.629,24,0
493
+ 2,89,90,30,0,33.5,0.292,42,0
494
+ 4,99,68,38,0,32.8,0.145,33,0
495
+ 4,125,70,18,122,28.9,1.144,45,1
496
+ 3,80,0,0,0,0,0.174,22,0
497
+ 6,166,74,0,0,26.6,0.304,66,0
498
+ 5,110,68,0,0,26,0.292,30,0
499
+ 2,81,72,15,76,30.1,0.547,25,0
500
+ 7,195,70,33,145,25.1,0.163,55,1
501
+ 6,154,74,32,193,29.3,0.839,39,0
502
+ 2,117,90,19,71,25.2,0.313,21,0
503
+ 3,84,72,32,0,37.2,0.267,28,0
504
+ 6,0,68,41,0,39,0.727,41,1
505
+ 7,94,64,25,79,33.3,0.738,41,0
506
+ 3,96,78,39,0,37.3,0.238,40,0
507
+ 10,75,82,0,0,33.3,0.263,38,0
508
+ 0,180,90,26,90,36.5,0.314,35,1
509
+ 1,130,60,23,170,28.6,0.692,21,0
510
+ 2,84,50,23,76,30.4,0.968,21,0
511
+ 8,120,78,0,0,25,0.409,64,0
512
+ 12,84,72,31,0,29.7,0.297,46,1
513
+ 0,139,62,17,210,22.1,0.207,21,0
514
+ 9,91,68,0,0,24.2,0.2,58,0
515
+ 2,91,62,0,0,27.3,0.525,22,0
516
+ 3,99,54,19,86,25.6,0.154,24,0
517
+ 3,163,70,18,105,31.6,0.268,28,1
518
+ 9,145,88,34,165,30.3,0.771,53,1
519
+ 7,125,86,0,0,37.6,0.304,51,0
520
+ 13,76,60,0,0,32.8,0.18,41,0
521
+ 6,129,90,7,326,19.6,0.582,60,0
522
+ 2,68,70,32,66,25,0.187,25,0
523
+ 3,124,80,33,130,33.2,0.305,26,0
524
+ 6,114,0,0,0,0,0.189,26,0
525
+ 9,130,70,0,0,34.2,0.652,45,1
526
+ 3,125,58,0,0,31.6,0.151,24,0
527
+ 3,87,60,18,0,21.8,0.444,21,0
528
+ 1,97,64,19,82,18.2,0.299,21,0
529
+ 3,116,74,15,105,26.3,0.107,24,0
530
+ 0,117,66,31,188,30.8,0.493,22,0
531
+ 0,111,65,0,0,24.6,0.66,31,0
532
+ 2,122,60,18,106,29.8,0.717,22,0
533
+ 0,107,76,0,0,45.3,0.686,24,0
534
+ 1,86,66,52,65,41.3,0.917,29,0
535
+ 6,91,0,0,0,29.8,0.501,31,0
536
+ 1,77,56,30,56,33.3,1.251,24,0
537
+ 4,132,0,0,0,32.9,0.302,23,1
538
+ 0,105,90,0,0,29.6,0.197,46,0
539
+ 0,57,60,0,0,21.7,0.735,67,0
540
+ 0,127,80,37,210,36.3,0.804,23,0
541
+ 3,129,92,49,155,36.4,0.968,32,1
542
+ 8,100,74,40,215,39.4,0.661,43,1
543
+ 3,128,72,25,190,32.4,0.549,27,1
544
+ 10,90,85,32,0,34.9,0.825,56,1
545
+ 4,84,90,23,56,39.5,0.159,25,0
546
+ 1,88,78,29,76,32,0.365,29,0
547
+ 8,186,90,35,225,34.5,0.423,37,1
548
+ 5,187,76,27,207,43.6,1.034,53,1
549
+ 4,131,68,21,166,33.1,0.16,28,0
550
+ 1,164,82,43,67,32.8,0.341,50,0
551
+ 4,189,110,31,0,28.5,0.68,37,0
552
+ 1,116,70,28,0,27.4,0.204,21,0
553
+ 3,84,68,30,106,31.9,0.591,25,0
554
+ 6,114,88,0,0,27.8,0.247,66,0
555
+ 1,88,62,24,44,29.9,0.422,23,0
556
+ 1,84,64,23,115,36.9,0.471,28,0
557
+ 7,124,70,33,215,25.5,0.161,37,0
558
+ 1,97,70,40,0,38.1,0.218,30,0
559
+ 8,110,76,0,0,27.8,0.237,58,0
560
+ 11,103,68,40,0,46.2,0.126,42,0
561
+ 11,85,74,0,0,30.1,0.3,35,0
562
+ 6,125,76,0,0,33.8,0.121,54,1
563
+ 0,198,66,32,274,41.3,0.502,28,1
564
+ 1,87,68,34,77,37.6,0.401,24,0
565
+ 6,99,60,19,54,26.9,0.497,32,0
566
+ 0,91,80,0,0,32.4,0.601,27,0
567
+ 2,95,54,14,88,26.1,0.748,22,0
568
+ 1,99,72,30,18,38.6,0.412,21,0
569
+ 6,92,62,32,126,32,0.085,46,0
570
+ 4,154,72,29,126,31.3,0.338,37,0
571
+ 0,121,66,30,165,34.3,0.203,33,1
572
+ 3,78,70,0,0,32.5,0.27,39,0
573
+ 2,130,96,0,0,22.6,0.268,21,0
574
+ 3,111,58,31,44,29.5,0.43,22,0
575
+ 2,98,60,17,120,34.7,0.198,22,0
576
+ 1,143,86,30,330,30.1,0.892,23,0
577
+ 1,119,44,47,63,35.5,0.28,25,0
578
+ 6,108,44,20,130,24,0.813,35,0
579
+ 2,118,80,0,0,42.9,0.693,21,1
580
+ 10,133,68,0,0,27,0.245,36,0
581
+ 2,197,70,99,0,34.7,0.575,62,1
582
+ 0,151,90,46,0,42.1,0.371,21,1
583
+ 6,109,60,27,0,25,0.206,27,0
584
+ 12,121,78,17,0,26.5,0.259,62,0
585
+ 8,100,76,0,0,38.7,0.19,42,0
586
+ 8,124,76,24,600,28.7,0.687,52,1
587
+ 1,93,56,11,0,22.5,0.417,22,0
588
+ 8,143,66,0,0,34.9,0.129,41,1
589
+ 6,103,66,0,0,24.3,0.249,29,0
590
+ 3,176,86,27,156,33.3,1.154,52,1
591
+ 0,73,0,0,0,21.1,0.342,25,0
592
+ 11,111,84,40,0,46.8,0.925,45,1
593
+ 2,112,78,50,140,39.4,0.175,24,0
594
+ 3,132,80,0,0,34.4,0.402,44,1
595
+ 2,82,52,22,115,28.5,1.699,25,0
596
+ 6,123,72,45,230,33.6,0.733,34,0
597
+ 0,188,82,14,185,32,0.682,22,1
598
+ 0,67,76,0,0,45.3,0.194,46,0
599
+ 1,89,24,19,25,27.8,0.559,21,0
600
+ 1,173,74,0,0,36.8,0.088,38,1
601
+ 1,109,38,18,120,23.1,0.407,26,0
602
+ 1,108,88,19,0,27.1,0.4,24,0
603
+ 6,96,0,0,0,23.7,0.19,28,0
604
+ 1,124,74,36,0,27.8,0.1,30,0
605
+ 7,150,78,29,126,35.2,0.692,54,1
606
+ 4,183,0,0,0,28.4,0.212,36,1
607
+ 1,124,60,32,0,35.8,0.514,21,0
608
+ 1,181,78,42,293,40,1.258,22,1
609
+ 1,92,62,25,41,19.5,0.482,25,0
610
+ 0,152,82,39,272,41.5,0.27,27,0
611
+ 1,111,62,13,182,24,0.138,23,0
612
+ 3,106,54,21,158,30.9,0.292,24,0
613
+ 3,174,58,22,194,32.9,0.593,36,1
614
+ 7,168,88,42,321,38.2,0.787,40,1
615
+ 6,105,80,28,0,32.5,0.878,26,0
616
+ 11,138,74,26,144,36.1,0.557,50,1
617
+ 3,106,72,0,0,25.8,0.207,27,0
618
+ 6,117,96,0,0,28.7,0.157,30,0
619
+ 2,68,62,13,15,20.1,0.257,23,0
620
+ 9,112,82,24,0,28.2,1.282,50,1
621
+ 0,119,0,0,0,32.4,0.141,24,1
622
+ 2,112,86,42,160,38.4,0.246,28,0
623
+ 2,92,76,20,0,24.2,1.698,28,0
624
+ 6,183,94,0,0,40.8,1.461,45,0
625
+ 0,94,70,27,115,43.5,0.347,21,0
626
+ 2,108,64,0,0,30.8,0.158,21,0
627
+ 4,90,88,47,54,37.7,0.362,29,0
628
+ 0,125,68,0,0,24.7,0.206,21,0
629
+ 0,132,78,0,0,32.4,0.393,21,0
630
+ 5,128,80,0,0,34.6,0.144,45,0
631
+ 4,94,65,22,0,24.7,0.148,21,0
632
+ 7,114,64,0,0,27.4,0.732,34,1
633
+ 0,102,78,40,90,34.5,0.238,24,0
634
+ 2,111,60,0,0,26.2,0.343,23,0
635
+ 1,128,82,17,183,27.5,0.115,22,0
636
+ 10,92,62,0,0,25.9,0.167,31,0
637
+ 13,104,72,0,0,31.2,0.465,38,1
638
+ 5,104,74,0,0,28.8,0.153,48,0
639
+ 2,94,76,18,66,31.6,0.649,23,0
640
+ 7,97,76,32,91,40.9,0.871,32,1
641
+ 1,100,74,12,46,19.5,0.149,28,0
642
+ 0,102,86,17,105,29.3,0.695,27,0
643
+ 4,128,70,0,0,34.3,0.303,24,0
644
+ 6,147,80,0,0,29.5,0.178,50,1
645
+ 4,90,0,0,0,28,0.61,31,0
646
+ 3,103,72,30,152,27.6,0.73,27,0
647
+ 2,157,74,35,440,39.4,0.134,30,0
648
+ 1,167,74,17,144,23.4,0.447,33,1
649
+ 0,179,50,36,159,37.8,0.455,22,1
650
+ 11,136,84,35,130,28.3,0.26,42,1
651
+ 0,107,60,25,0,26.4,0.133,23,0
652
+ 1,91,54,25,100,25.2,0.234,23,0
653
+ 1,117,60,23,106,33.8,0.466,27,0
654
+ 5,123,74,40,77,34.1,0.269,28,0
655
+ 2,120,54,0,0,26.8,0.455,27,0
656
+ 1,106,70,28,135,34.2,0.142,22,0
657
+ 2,155,52,27,540,38.7,0.24,25,1
658
+ 2,101,58,35,90,21.8,0.155,22,0
659
+ 1,120,80,48,200,38.9,1.162,41,0
660
+ 11,127,106,0,0,39,0.19,51,0
661
+ 3,80,82,31,70,34.2,1.292,27,1
662
+ 10,162,84,0,0,27.7,0.182,54,0
663
+ 1,199,76,43,0,42.9,1.394,22,1
664
+ 8,167,106,46,231,37.6,0.165,43,1
665
+ 9,145,80,46,130,37.9,0.637,40,1
666
+ 6,115,60,39,0,33.7,0.245,40,1
667
+ 1,112,80,45,132,34.8,0.217,24,0
668
+ 4,145,82,18,0,32.5,0.235,70,1
669
+ 10,111,70,27,0,27.5,0.141,40,1
670
+ 6,98,58,33,190,34,0.43,43,0
671
+ 9,154,78,30,100,30.9,0.164,45,0
672
+ 6,165,68,26,168,33.6,0.631,49,0
673
+ 1,99,58,10,0,25.4,0.551,21,0
674
+ 10,68,106,23,49,35.5,0.285,47,0
675
+ 3,123,100,35,240,57.3,0.88,22,0
676
+ 8,91,82,0,0,35.6,0.587,68,0
677
+ 6,195,70,0,0,30.9,0.328,31,1
678
+ 9,156,86,0,0,24.8,0.23,53,1
679
+ 0,93,60,0,0,35.3,0.263,25,0
680
+ 3,121,52,0,0,36,0.127,25,1
681
+ 2,101,58,17,265,24.2,0.614,23,0
682
+ 2,56,56,28,45,24.2,0.332,22,0
683
+ 0,162,76,36,0,49.6,0.364,26,1
684
+ 0,95,64,39,105,44.6,0.366,22,0
685
+ 4,125,80,0,0,32.3,0.536,27,1
686
+ 5,136,82,0,0,0,0.64,69,0
687
+ 2,129,74,26,205,33.2,0.591,25,0
688
+ 3,130,64,0,0,23.1,0.314,22,0
689
+ 1,107,50,19,0,28.3,0.181,29,0
690
+ 1,140,74,26,180,24.1,0.828,23,0
691
+ 1,144,82,46,180,46.1,0.335,46,1
692
+ 8,107,80,0,0,24.6,0.856,34,0
693
+ 13,158,114,0,0,42.3,0.257,44,1
694
+ 2,121,70,32,95,39.1,0.886,23,0
695
+ 7,129,68,49,125,38.5,0.439,43,1
696
+ 2,90,60,0,0,23.5,0.191,25,0
697
+ 7,142,90,24,480,30.4,0.128,43,1
698
+ 3,169,74,19,125,29.9,0.268,31,1
699
+ 0,99,0,0,0,25,0.253,22,0
700
+ 4,127,88,11,155,34.5,0.598,28,0
701
+ 4,118,70,0,0,44.5,0.904,26,0
702
+ 2,122,76,27,200,35.9,0.483,26,0
703
+ 6,125,78,31,0,27.6,0.565,49,1
704
+ 1,168,88,29,0,35,0.905,52,1
705
+ 2,129,0,0,0,38.5,0.304,41,0
706
+ 4,110,76,20,100,28.4,0.118,27,0
707
+ 6,80,80,36,0,39.8,0.177,28,0
708
+ 10,115,0,0,0,0,0.261,30,1
709
+ 2,127,46,21,335,34.4,0.176,22,0
710
+ 9,164,78,0,0,32.8,0.148,45,1
711
+ 2,93,64,32,160,38,0.674,23,1
712
+ 3,158,64,13,387,31.2,0.295,24,0
713
+ 5,126,78,27,22,29.6,0.439,40,0
714
+ 10,129,62,36,0,41.2,0.441,38,1
715
+ 0,134,58,20,291,26.4,0.352,21,0
716
+ 3,102,74,0,0,29.5,0.121,32,0
717
+ 7,187,50,33,392,33.9,0.826,34,1
718
+ 3,173,78,39,185,33.8,0.97,31,1
719
+ 10,94,72,18,0,23.1,0.595,56,0
720
+ 1,108,60,46,178,35.5,0.415,24,0
721
+ 5,97,76,27,0,35.6,0.378,52,1
722
+ 4,83,86,19,0,29.3,0.317,34,0
723
+ 1,114,66,36,200,38.1,0.289,21,0
724
+ 1,149,68,29,127,29.3,0.349,42,1
725
+ 5,117,86,30,105,39.1,0.251,42,0
726
+ 1,111,94,0,0,32.8,0.265,45,0
727
+ 4,112,78,40,0,39.4,0.236,38,0
728
+ 1,116,78,29,180,36.1,0.496,25,0
729
+ 0,141,84,26,0,32.4,0.433,22,0
730
+ 2,175,88,0,0,22.9,0.326,22,0
731
+ 2,92,52,0,0,30.1,0.141,22,0
732
+ 3,130,78,23,79,28.4,0.323,34,1
733
+ 8,120,86,0,0,28.4,0.259,22,1
734
+ 2,174,88,37,120,44.5,0.646,24,1
735
+ 2,106,56,27,165,29,0.426,22,0
736
+ 2,105,75,0,0,23.3,0.56,53,0
737
+ 4,95,60,32,0,35.4,0.284,28,0
738
+ 0,126,86,27,120,27.4,0.515,21,0
739
+ 8,65,72,23,0,32,0.6,42,0
740
+ 2,99,60,17,160,36.6,0.453,21,0
741
+ 1,102,74,0,0,39.5,0.293,42,1
742
+ 11,120,80,37,150,42.3,0.785,48,1
743
+ 3,102,44,20,94,30.8,0.4,26,0
744
+ 1,109,58,18,116,28.5,0.219,22,0
745
+ 9,140,94,0,0,32.7,0.734,45,1
746
+ 13,153,88,37,140,40.6,1.174,39,0
747
+ 12,100,84,33,105,30,0.488,46,0
748
+ 1,147,94,41,0,49.3,0.358,27,1
749
+ 1,81,74,41,57,46.3,1.096,32,0
750
+ 3,187,70,22,200,36.4,0.408,36,1
751
+ 6,162,62,0,0,24.3,0.178,50,1
752
+ 4,136,70,0,0,31.2,1.182,22,1
753
+ 1,121,78,39,74,39,0.261,28,0
754
+ 3,108,62,24,0,26,0.223,25,0
755
+ 0,181,88,44,510,43.3,0.222,26,1
756
+ 8,154,78,32,0,32.4,0.443,45,1
757
+ 1,128,88,39,110,36.5,1.057,37,1
758
+ 7,137,90,41,0,32,0.391,39,0
759
+ 0,123,72,0,0,36.3,0.258,52,1
760
+ 1,106,76,0,0,37.5,0.197,26,0
761
+ 6,190,92,0,0,35.5,0.278,66,1
762
+ 2,88,58,26,16,28.4,0.766,22,0
763
+ 9,170,74,31,0,44,0.403,43,1
764
+ 9,89,62,0,0,22.5,0.142,33,0
765
+ 10,101,76,48,180,32.9,0.171,63,0
766
+ 2,122,70,27,0,36.8,0.34,27,0
767
+ 5,121,72,23,112,26.2,0.245,30,0
768
+ 1,126,60,0,0,30.1,0.349,47,1
769
+ 1,93,70,31,0,30.4,0.315,23,0
diabetes_model.keras ADDED
Binary file (32.4 kB). View file
 
heart.csv ADDED
@@ -0,0 +1,1026 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ age,sex,cp,trestbps,chol,fbs,restecg,thalach,exang,oldpeak,slope,ca,thal,target
2
+ 52,1,0,125,212,0,1,168,0,1,2,2,3,0
3
+ 53,1,0,140,203,1,0,155,1,3.1,0,0,3,0
4
+ 70,1,0,145,174,0,1,125,1,2.6,0,0,3,0
5
+ 61,1,0,148,203,0,1,161,0,0,2,1,3,0
6
+ 62,0,0,138,294,1,1,106,0,1.9,1,3,2,0
7
+ 58,0,0,100,248,0,0,122,0,1,1,0,2,1
8
+ 58,1,0,114,318,0,2,140,0,4.4,0,3,1,0
9
+ 55,1,0,160,289,0,0,145,1,0.8,1,1,3,0
10
+ 46,1,0,120,249,0,0,144,0,0.8,2,0,3,0
11
+ 54,1,0,122,286,0,0,116,1,3.2,1,2,2,0
12
+ 71,0,0,112,149,0,1,125,0,1.6,1,0,2,1
13
+ 43,0,0,132,341,1,0,136,1,3,1,0,3,0
14
+ 34,0,1,118,210,0,1,192,0,0.7,2,0,2,1
15
+ 51,1,0,140,298,0,1,122,1,4.2,1,3,3,0
16
+ 52,1,0,128,204,1,1,156,1,1,1,0,0,0
17
+ 34,0,1,118,210,0,1,192,0,0.7,2,0,2,1
18
+ 51,0,2,140,308,0,0,142,0,1.5,2,1,2,1
19
+ 54,1,0,124,266,0,0,109,1,2.2,1,1,3,0
20
+ 50,0,1,120,244,0,1,162,0,1.1,2,0,2,1
21
+ 58,1,2,140,211,1,0,165,0,0,2,0,2,1
22
+ 60,1,2,140,185,0,0,155,0,3,1,0,2,0
23
+ 67,0,0,106,223,0,1,142,0,0.3,2,2,2,1
24
+ 45,1,0,104,208,0,0,148,1,3,1,0,2,1
25
+ 63,0,2,135,252,0,0,172,0,0,2,0,2,1
26
+ 42,0,2,120,209,0,1,173,0,0,1,0,2,1
27
+ 61,0,0,145,307,0,0,146,1,1,1,0,3,0
28
+ 44,1,2,130,233,0,1,179,1,0.4,2,0,2,1
29
+ 58,0,1,136,319,1,0,152,0,0,2,2,2,0
30
+ 56,1,2,130,256,1,0,142,1,0.6,1,1,1,0
31
+ 55,0,0,180,327,0,2,117,1,3.4,1,0,2,0
32
+ 44,1,0,120,169,0,1,144,1,2.8,0,0,1,0
33
+ 50,0,1,120,244,0,1,162,0,1.1,2,0,2,1
34
+ 57,1,0,130,131,0,1,115,1,1.2,1,1,3,0
35
+ 70,1,2,160,269,0,1,112,1,2.9,1,1,3,0
36
+ 50,1,2,129,196,0,1,163,0,0,2,0,2,1
37
+ 46,1,2,150,231,0,1,147,0,3.6,1,0,2,0
38
+ 51,1,3,125,213,0,0,125,1,1.4,2,1,2,1
39
+ 59,1,0,138,271,0,0,182,0,0,2,0,2,1
40
+ 64,1,0,128,263,0,1,105,1,0.2,1,1,3,1
41
+ 57,1,2,128,229,0,0,150,0,0.4,1,1,3,0
42
+ 65,0,2,160,360,0,0,151,0,0.8,2,0,2,1
43
+ 54,1,2,120,258,0,0,147,0,0.4,1,0,3,1
44
+ 61,0,0,130,330,0,0,169,0,0,2,0,2,0
45
+ 46,1,0,120,249,0,0,144,0,0.8,2,0,3,0
46
+ 55,0,1,132,342,0,1,166,0,1.2,2,0,2,1
47
+ 42,1,0,140,226,0,1,178,0,0,2,0,2,1
48
+ 41,1,1,135,203,0,1,132,0,0,1,0,1,1
49
+ 66,0,0,178,228,1,1,165,1,1,1,2,3,0
50
+ 66,0,2,146,278,0,0,152,0,0,1,1,2,1
51
+ 60,1,0,117,230,1,1,160,1,1.4,2,2,3,0
52
+ 58,0,3,150,283,1,0,162,0,1,2,0,2,1
53
+ 57,0,0,140,241,0,1,123,1,0.2,1,0,3,0
54
+ 38,1,2,138,175,0,1,173,0,0,2,4,2,1
55
+ 49,1,2,120,188,0,1,139,0,2,1,3,3,0
56
+ 55,1,0,140,217,0,1,111,1,5.6,0,0,3,0
57
+ 55,1,0,140,217,0,1,111,1,5.6,0,0,3,0
58
+ 56,1,3,120,193,0,0,162,0,1.9,1,0,3,1
59
+ 48,1,1,130,245,0,0,180,0,0.2,1,0,2,1
60
+ 67,1,2,152,212,0,0,150,0,0.8,1,0,3,0
61
+ 57,1,1,154,232,0,0,164,0,0,2,1,2,0
62
+ 29,1,1,130,204,0,0,202,0,0,2,0,2,1
63
+ 66,0,2,146,278,0,0,152,0,0,1,1,2,1
64
+ 67,1,0,100,299,0,0,125,1,0.9,1,2,2,0
65
+ 59,1,2,150,212,1,1,157,0,1.6,2,0,2,1
66
+ 29,1,1,130,204,0,0,202,0,0,2,0,2,1
67
+ 59,1,3,170,288,0,0,159,0,0.2,1,0,3,0
68
+ 53,1,2,130,197,1,0,152,0,1.2,0,0,2,1
69
+ 42,1,0,136,315,0,1,125,1,1.8,1,0,1,0
70
+ 37,0,2,120,215,0,1,170,0,0,2,0,2,1
71
+ 62,0,0,160,164,0,0,145,0,6.2,0,3,3,0
72
+ 59,1,0,170,326,0,0,140,1,3.4,0,0,3,0
73
+ 61,1,0,140,207,0,0,138,1,1.9,2,1,3,0
74
+ 56,1,0,125,249,1,0,144,1,1.2,1,1,2,0
75
+ 59,1,0,140,177,0,1,162,1,0,2,1,3,0
76
+ 48,1,0,130,256,1,0,150,1,0,2,2,3,0
77
+ 47,1,2,138,257,0,0,156,0,0,2,0,2,1
78
+ 48,1,2,124,255,1,1,175,0,0,2,2,2,1
79
+ 63,1,0,140,187,0,0,144,1,4,2,2,3,0
80
+ 52,1,1,134,201,0,1,158,0,0.8,2,1,2,1
81
+ 52,1,1,134,201,0,1,158,0,0.8,2,1,2,1
82
+ 50,1,2,140,233,0,1,163,0,0.6,1,1,3,0
83
+ 49,1,2,118,149,0,0,126,0,0.8,2,3,2,0
84
+ 46,1,2,150,231,0,1,147,0,3.6,1,0,2,0
85
+ 38,1,2,138,175,0,1,173,0,0,2,4,2,1
86
+ 37,0,2,120,215,0,1,170,0,0,2,0,2,1
87
+ 44,1,1,120,220,0,1,170,0,0,2,0,2,1
88
+ 58,1,2,140,211,1,0,165,0,0,2,0,2,1
89
+ 59,0,0,174,249,0,1,143,1,0,1,0,2,0
90
+ 62,0,0,140,268,0,0,160,0,3.6,0,2,2,0
91
+ 68,1,0,144,193,1,1,141,0,3.4,1,2,3,0
92
+ 54,0,2,108,267,0,0,167,0,0,2,0,2,1
93
+ 62,0,0,124,209,0,1,163,0,0,2,0,2,1
94
+ 63,1,0,140,187,0,0,144,1,4,2,2,3,0
95
+ 44,1,0,120,169,0,1,144,1,2.8,0,0,1,0
96
+ 62,1,1,128,208,1,0,140,0,0,2,0,2,1
97
+ 45,0,0,138,236,0,0,152,1,0.2,1,0,2,1
98
+ 57,0,0,128,303,0,0,159,0,0,2,1,2,1
99
+ 53,1,0,123,282,0,1,95,1,2,1,2,3,0
100
+ 65,1,0,110,248,0,0,158,0,0.6,2,2,1,0
101
+ 76,0,2,140,197,0,2,116,0,1.1,1,0,2,1
102
+ 43,0,2,122,213,0,1,165,0,0.2,1,0,2,1
103
+ 57,1,2,150,126,1,1,173,0,0.2,2,1,3,1
104
+ 54,1,1,108,309,0,1,156,0,0,2,0,3,1
105
+ 47,1,2,138,257,0,0,156,0,0,2,0,2,1
106
+ 52,1,3,118,186,0,0,190,0,0,1,0,1,1
107
+ 47,1,0,110,275,0,0,118,1,1,1,1,2,0
108
+ 51,1,0,140,299,0,1,173,1,1.6,2,0,3,0
109
+ 62,1,1,120,281,0,0,103,0,1.4,1,1,3,0
110
+ 40,1,0,152,223,0,1,181,0,0,2,0,3,0
111
+ 54,1,0,110,206,0,0,108,1,0,1,1,2,0
112
+ 44,1,0,110,197,0,0,177,0,0,2,1,2,0
113
+ 53,1,0,142,226,0,0,111,1,0,2,0,3,1
114
+ 48,1,0,130,256,1,0,150,1,0,2,2,3,0
115
+ 57,1,0,110,335,0,1,143,1,3,1,1,3,0
116
+ 59,1,2,126,218,1,1,134,0,2.2,1,1,1,0
117
+ 61,0,0,145,307,0,0,146,1,1,1,0,3,0
118
+ 63,1,0,130,254,0,0,147,0,1.4,1,1,3,0
119
+ 43,1,0,120,177,0,0,120,1,2.5,1,0,3,0
120
+ 29,1,1,130,204,0,0,202,0,0,2,0,2,1
121
+ 42,1,1,120,295,0,1,162,0,0,2,0,2,1
122
+ 54,1,1,108,309,0,1,156,0,0,2,0,3,1
123
+ 44,1,0,120,169,0,1,144,1,2.8,0,0,1,0
124
+ 60,1,0,145,282,0,0,142,1,2.8,1,2,3,0
125
+ 65,0,2,140,417,1,0,157,0,0.8,2,1,2,1
126
+ 61,1,0,120,260,0,1,140,1,3.6,1,1,3,0
127
+ 60,0,3,150,240,0,1,171,0,0.9,2,0,2,1
128
+ 66,1,0,120,302,0,0,151,0,0.4,1,0,2,1
129
+ 53,1,2,130,197,1,0,152,0,1.2,0,0,2,1
130
+ 52,1,2,138,223,0,1,169,0,0,2,4,2,1
131
+ 57,1,0,140,192,0,1,148,0,0.4,1,0,1,1
132
+ 60,0,3,150,240,0,1,171,0,0.9,2,0,2,1
133
+ 51,0,2,130,256,0,0,149,0,0.5,2,0,2,1
134
+ 41,1,1,135,203,0,1,132,0,0,1,0,1,1
135
+ 50,1,2,129,196,0,1,163,0,0,2,0,2,1
136
+ 54,1,1,108,309,0,1,156,0,0,2,0,3,1
137
+ 58,0,0,170,225,1,0,146,1,2.8,1,2,1,0
138
+ 55,0,1,132,342,0,1,166,0,1.2,2,0,2,1
139
+ 64,0,0,180,325,0,1,154,1,0,2,0,2,1
140
+ 47,1,2,138,257,0,0,156,0,0,2,0,2,1
141
+ 41,1,1,110,235,0,1,153,0,0,2,0,2,1
142
+ 57,1,0,152,274,0,1,88,1,1.2,1,1,3,0
143
+ 63,0,0,124,197,0,1,136,1,0,1,0,2,0
144
+ 61,1,3,134,234,0,1,145,0,2.6,1,2,2,0
145
+ 34,1,3,118,182,0,0,174,0,0,2,0,2,1
146
+ 47,1,0,112,204,0,1,143,0,0.1,2,0,2,1
147
+ 40,1,0,110,167,0,0,114,1,2,1,0,3,0
148
+ 51,0,2,120,295,0,0,157,0,0.6,2,0,2,1
149
+ 41,1,0,110,172,0,0,158,0,0,2,0,3,0
150
+ 52,1,3,152,298,1,1,178,0,1.2,1,0,3,1
151
+ 39,1,2,140,321,0,0,182,0,0,2,0,2,1
152
+ 58,1,0,114,318,0,2,140,0,4.4,0,3,1,0
153
+ 54,1,1,192,283,0,0,195,0,0,2,1,3,0
154
+ 58,1,0,125,300,0,0,171,0,0,2,2,3,0
155
+ 54,1,2,120,258,0,0,147,0,0.4,1,0,3,1
156
+ 63,1,0,130,330,1,0,132,1,1.8,2,3,3,0
157
+ 54,1,1,108,309,0,1,156,0,0,2,0,3,1
158
+ 40,1,3,140,199,0,1,178,1,1.4,2,0,3,1
159
+ 54,1,2,120,258,0,0,147,0,0.4,1,0,3,1
160
+ 67,0,2,115,564,0,0,160,0,1.6,1,0,3,1
161
+ 41,1,1,120,157,0,1,182,0,0,2,0,2,1
162
+ 77,1,0,125,304,0,0,162,1,0,2,3,2,0
163
+ 51,1,2,100,222,0,1,143,1,1.2,1,0,2,1
164
+ 77,1,0,125,304,0,0,162,1,0,2,3,2,0
165
+ 48,1,0,124,274,0,0,166,0,0.5,1,0,3,0
166
+ 56,1,0,125,249,1,0,144,1,1.2,1,1,2,0
167
+ 59,1,0,170,326,0,0,140,1,3.4,0,0,3,0
168
+ 56,1,0,132,184,0,0,105,1,2.1,1,1,1,0
169
+ 57,0,0,120,354,0,1,163,1,0.6,2,0,2,1
170
+ 43,1,2,130,315,0,1,162,0,1.9,2,1,2,1
171
+ 45,0,1,112,160,0,1,138,0,0,1,0,2,1
172
+ 43,1,0,150,247,0,1,171,0,1.5,2,0,2,1
173
+ 56,1,0,130,283,1,0,103,1,1.6,0,0,3,0
174
+ 56,1,1,120,240,0,1,169,0,0,0,0,2,1
175
+ 39,0,2,94,199,0,1,179,0,0,2,0,2,1
176
+ 54,1,0,110,239,0,1,126,1,2.8,1,1,3,0
177
+ 56,0,0,200,288,1,0,133,1,4,0,2,3,0
178
+ 56,1,0,130,283,1,0,103,1,1.6,0,0,3,0
179
+ 64,1,0,120,246,0,0,96,1,2.2,0,1,2,0
180
+ 44,1,0,110,197,0,0,177,0,0,2,1,2,0
181
+ 56,0,0,134,409,0,0,150,1,1.9,1,2,3,0
182
+ 63,1,0,140,187,0,0,144,1,4,2,2,3,0
183
+ 64,1,3,110,211,0,0,144,1,1.8,1,0,2,1
184
+ 60,1,0,140,293,0,0,170,0,1.2,1,2,3,0
185
+ 42,1,2,130,180,0,1,150,0,0,2,0,2,1
186
+ 45,1,1,128,308,0,0,170,0,0,2,0,2,1
187
+ 57,1,0,165,289,1,0,124,0,1,1,3,3,0
188
+ 40,1,0,110,167,0,0,114,1,2,1,0,3,0
189
+ 56,1,0,125,249,1,0,144,1,1.2,1,1,2,0
190
+ 63,1,0,130,254,0,0,147,0,1.4,1,1,3,0
191
+ 64,1,2,125,309,0,1,131,1,1.8,1,0,3,0
192
+ 41,1,2,112,250,0,1,179,0,0,2,0,2,1
193
+ 56,1,1,130,221,0,0,163,0,0,2,0,3,1
194
+ 67,0,2,115,564,0,0,160,0,1.6,1,0,3,1
195
+ 69,1,3,160,234,1,0,131,0,0.1,1,1,2,1
196
+ 67,1,0,160,286,0,0,108,1,1.5,1,3,2,0
197
+ 59,1,2,150,212,1,1,157,0,1.6,2,0,2,1
198
+ 58,1,0,100,234,0,1,156,0,0.1,2,1,3,0
199
+ 45,1,0,115,260,0,0,185,0,0,2,0,2,1
200
+ 60,0,2,102,318,0,1,160,0,0,2,1,2,1
201
+ 50,1,0,144,200,0,0,126,1,0.9,1,0,3,0
202
+ 62,0,0,124,209,0,1,163,0,0,2,0,2,1
203
+ 34,1,3,118,182,0,0,174,0,0,2,0,2,1
204
+ 52,1,3,152,298,1,1,178,0,1.2,1,0,3,1
205
+ 64,1,3,170,227,0,0,155,0,0.6,1,0,3,1
206
+ 66,0,2,146,278,0,0,152,0,0,1,1,2,1
207
+ 42,1,3,148,244,0,0,178,0,0.8,2,2,2,1
208
+ 59,1,2,126,218,1,1,134,0,2.2,1,1,1,0
209
+ 41,1,2,112,250,0,1,179,0,0,2,0,2,1
210
+ 38,1,2,138,175,0,1,173,0,0,2,4,2,1
211
+ 62,1,1,120,281,0,0,103,0,1.4,1,1,3,0
212
+ 42,1,2,120,240,1,1,194,0,0.8,0,0,3,1
213
+ 67,1,0,100,299,0,0,125,1,0.9,1,2,2,0
214
+ 50,1,0,150,243,0,0,128,0,2.6,1,0,3,0
215
+ 43,1,2,130,315,0,1,162,0,1.9,2,1,2,1
216
+ 45,1,1,128,308,0,0,170,0,0,2,0,2,1
217
+ 49,1,1,130,266,0,1,171,0,0.6,2,0,2,1
218
+ 65,1,0,135,254,0,0,127,0,2.8,1,1,3,0
219
+ 41,1,1,120,157,0,1,182,0,0,2,0,2,1
220
+ 46,1,0,140,311,0,1,120,1,1.8,1,2,3,0
221
+ 54,1,0,122,286,0,0,116,1,3.2,1,2,2,0
222
+ 57,0,1,130,236,0,0,174,0,0,1,1,2,0
223
+ 63,1,0,130,254,0,0,147,0,1.4,1,1,3,0
224
+ 64,1,3,110,211,0,0,144,1,1.8,1,0,2,1
225
+ 39,0,2,94,199,0,1,179,0,0,2,0,2,1
226
+ 51,1,0,140,261,0,0,186,1,0,2,0,2,1
227
+ 54,1,2,150,232,0,0,165,0,1.6,2,0,3,1
228
+ 49,1,2,118,149,0,0,126,0,0.8,2,3,2,0
229
+ 44,0,2,118,242,0,1,149,0,0.3,1,1,2,1
230
+ 52,1,1,128,205,1,1,184,0,0,2,0,2,1
231
+ 66,0,0,178,228,1,1,165,1,1,1,2,3,0
232
+ 58,1,0,125,300,0,0,171,0,0,2,2,3,0
233
+ 56,1,1,120,236,0,1,178,0,0.8,2,0,2,1
234
+ 60,1,0,125,258,0,0,141,1,2.8,1,1,3,0
235
+ 41,0,1,126,306,0,1,163,0,0,2,0,2,1
236
+ 49,0,0,130,269,0,1,163,0,0,2,0,2,1
237
+ 64,1,3,170,227,0,0,155,0,0.6,1,0,3,1
238
+ 49,1,2,118,149,0,0,126,0,0.8,2,3,2,0
239
+ 57,1,1,124,261,0,1,141,0,0.3,2,0,3,0
240
+ 60,1,0,117,230,1,1,160,1,1.4,2,2,3,0
241
+ 62,0,0,150,244,0,1,154,1,1.4,1,0,2,0
242
+ 54,0,1,132,288,1,0,159,1,0,2,1,2,1
243
+ 67,1,2,152,212,0,0,150,0,0.8,1,0,3,0
244
+ 38,1,2,138,175,0,1,173,0,0,2,4,2,1
245
+ 60,1,2,140,185,0,0,155,0,3,1,0,2,0
246
+ 51,1,2,125,245,1,0,166,0,2.4,1,0,2,1
247
+ 44,1,1,130,219,0,0,188,0,0,2,0,2,1
248
+ 54,1,1,192,283,0,0,195,0,0,2,1,3,0
249
+ 46,1,0,140,311,0,1,120,1,1.8,1,2,3,0
250
+ 39,0,2,138,220,0,1,152,0,0,1,0,2,1
251
+ 42,1,2,130,180,0,1,150,0,0,2,0,2,1
252
+ 47,1,0,110,275,0,0,118,1,1,1,1,2,0
253
+ 45,0,1,112,160,0,1,138,0,0,1,0,2,1
254
+ 55,1,0,132,353,0,1,132,1,1.2,1,1,3,0
255
+ 57,1,0,165,289,1,0,124,0,1,1,3,3,0
256
+ 35,1,0,120,198,0,1,130,1,1.6,1,0,3,0
257
+ 62,0,0,140,394,0,0,157,0,1.2,1,0,2,1
258
+ 35,0,0,138,183,0,1,182,0,1.4,2,0,2,1
259
+ 64,0,0,180,325,0,1,154,1,0,2,0,2,1
260
+ 38,1,3,120,231,0,1,182,1,3.8,1,0,3,0
261
+ 66,1,0,120,302,0,0,151,0,0.4,1,0,2,1
262
+ 44,1,2,120,226,0,1,169,0,0,2,0,2,1
263
+ 54,1,2,150,232,0,0,165,0,1.6,2,0,3,1
264
+ 48,1,0,122,222,0,0,186,0,0,2,0,2,1
265
+ 55,0,1,132,342,0,1,166,0,1.2,2,0,2,1
266
+ 58,0,0,170,225,1,0,146,1,2.8,1,2,1,0
267
+ 45,1,0,104,208,0,0,148,1,3,1,0,2,1
268
+ 53,1,0,123,282,0,1,95,1,2,1,2,3,0
269
+ 67,1,0,120,237,0,1,71,0,1,1,0,2,0
270
+ 58,1,2,132,224,0,0,173,0,3.2,2,2,3,0
271
+ 71,0,2,110,265,1,0,130,0,0,2,1,2,1
272
+ 43,1,0,110,211,0,1,161,0,0,2,0,3,1
273
+ 44,1,1,120,263,0,1,173,0,0,2,0,3,1
274
+ 39,0,2,138,220,0,1,152,0,0,1,0,2,1
275
+ 54,1,0,110,206,0,0,108,1,0,1,1,2,0
276
+ 66,1,0,160,228,0,0,138,0,2.3,2,0,1,1
277
+ 56,1,0,130,283,1,0,103,1,1.6,0,0,3,0
278
+ 57,1,0,132,207,0,1,168,1,0,2,0,3,1
279
+ 44,1,1,130,219,0,0,188,0,0,2,0,2,1
280
+ 55,1,0,160,289,0,0,145,1,0.8,1,1,3,0
281
+ 41,0,1,105,198,0,1,168,0,0,2,1,2,1
282
+ 45,0,1,130,234,0,0,175,0,0.6,1,0,2,1
283
+ 35,1,1,122,192,0,1,174,0,0,2,0,2,1
284
+ 41,0,1,130,204,0,0,172,0,1.4,2,0,2,1
285
+ 64,1,3,110,211,0,0,144,1,1.8,1,0,2,1
286
+ 58,1,2,132,224,0,0,173,0,3.2,2,2,3,0
287
+ 71,0,2,110,265,1,0,130,0,0,2,1,2,1
288
+ 64,0,2,140,313,0,1,133,0,0.2,2,0,3,1
289
+ 71,0,1,160,302,0,1,162,0,0.4,2,2,2,1
290
+ 58,0,2,120,340,0,1,172,0,0,2,0,2,1
291
+ 40,1,0,152,223,0,1,181,0,0,2,0,3,0
292
+ 52,1,2,138,223,0,1,169,0,0,2,4,2,1
293
+ 58,1,0,128,259,0,0,130,1,3,1,2,3,0
294
+ 61,1,2,150,243,1,1,137,1,1,1,0,2,1
295
+ 59,1,2,150,212,1,1,157,0,1.6,2,0,2,1
296
+ 56,0,0,200,288,1,0,133,1,4,0,2,3,0
297
+ 67,1,0,100,299,0,0,125,1,0.9,1,2,2,0
298
+ 67,1,0,120,237,0,1,71,0,1,1,0,2,0
299
+ 58,1,0,150,270,0,0,111,1,0.8,2,0,3,0
300
+ 35,1,1,122,192,0,1,174,0,0,2,0,2,1
301
+ 52,1,1,120,325,0,1,172,0,0.2,2,0,2,1
302
+ 46,0,1,105,204,0,1,172,0,0,2,0,2,1
303
+ 51,1,2,94,227,0,1,154,1,0,2,1,3,1
304
+ 55,0,1,132,342,0,1,166,0,1.2,2,0,2,1
305
+ 60,1,0,145,282,0,0,142,1,2.8,1,2,3,0
306
+ 52,0,2,136,196,0,0,169,0,0.1,1,0,2,1
307
+ 62,1,0,120,267,0,1,99,1,1.8,1,2,3,0
308
+ 44,0,2,118,242,0,1,149,0,0.3,1,1,2,1
309
+ 44,1,1,120,220,0,1,170,0,0,2,0,2,1
310
+ 59,1,2,126,218,1,1,134,0,2.2,1,1,1,0
311
+ 56,0,1,140,294,0,0,153,0,1.3,1,0,2,1
312
+ 61,1,0,120,260,0,1,140,1,3.6,1,1,3,0
313
+ 48,1,0,130,256,1,0,150,1,0,2,2,3,0
314
+ 70,1,2,160,269,0,1,112,1,2.9,1,1,3,0
315
+ 74,0,1,120,269,0,0,121,1,0.2,2,1,2,1
316
+ 40,1,3,140,199,0,1,178,1,1.4,2,0,3,1
317
+ 42,1,3,148,244,0,0,178,0,0.8,2,2,2,1
318
+ 64,0,2,140,313,0,1,133,0,0.2,2,0,3,1
319
+ 63,0,2,135,252,0,0,172,0,0,2,0,2,1
320
+ 59,1,0,140,177,0,1,162,1,0,2,1,3,0
321
+ 53,0,2,128,216,0,0,115,0,0,2,0,0,1
322
+ 53,0,0,130,264,0,0,143,0,0.4,1,0,2,1
323
+ 48,0,2,130,275,0,1,139,0,0.2,2,0,2,1
324
+ 45,1,0,142,309,0,0,147,1,0,1,3,3,0
325
+ 66,1,1,160,246,0,1,120,1,0,1,3,1,0
326
+ 48,1,1,130,245,0,0,180,0,0.2,1,0,2,1
327
+ 56,0,1,140,294,0,0,153,0,1.3,1,0,2,1
328
+ 54,1,1,192,283,0,0,195,0,0,2,1,3,0
329
+ 57,1,0,150,276,0,0,112,1,0.6,1,1,1,0
330
+ 70,1,0,130,322,0,0,109,0,2.4,1,3,2,0
331
+ 53,0,2,128,216,0,0,115,0,0,2,0,0,1
332
+ 37,0,2,120,215,0,1,170,0,0,2,0,2,1
333
+ 63,0,0,108,269,0,1,169,1,1.8,1,2,2,0
334
+ 37,1,2,130,250,0,1,187,0,3.5,0,0,2,1
335
+ 54,0,2,110,214,0,1,158,0,1.6,1,0,2,1
336
+ 60,1,0,130,206,0,0,132,1,2.4,1,2,3,0
337
+ 58,1,0,150,270,0,0,111,1,0.8,2,0,3,0
338
+ 57,1,2,150,126,1,1,173,0,0.2,2,1,3,1
339
+ 54,1,2,125,273,0,0,152,0,0.5,0,1,2,1
340
+ 56,1,2,130,256,1,0,142,1,0.6,1,1,1,0
341
+ 60,1,0,130,253,0,1,144,1,1.4,2,1,3,0
342
+ 38,1,2,138,175,0,1,173,0,0,2,4,2,1
343
+ 44,1,2,120,226,0,1,169,0,0,2,0,2,1
344
+ 65,0,2,155,269,0,1,148,0,0.8,2,0,2,1
345
+ 52,1,2,172,199,1,1,162,0,0.5,2,0,3,1
346
+ 41,1,1,120,157,0,1,182,0,0,2,0,2,1
347
+ 66,1,1,160,246,0,1,120,1,0,1,3,1,0
348
+ 50,1,0,150,243,0,0,128,0,2.6,1,0,3,0
349
+ 54,0,2,108,267,0,0,167,0,0,2,0,2,1
350
+ 43,1,0,132,247,1,0,143,1,0.1,1,4,3,0
351
+ 62,0,2,130,263,0,1,97,0,1.2,1,1,3,0
352
+ 66,1,0,120,302,0,0,151,0,0.4,1,0,2,1
353
+ 50,1,0,144,200,0,0,126,1,0.9,1,0,3,0
354
+ 57,1,0,110,335,0,1,143,1,3,1,1,3,0
355
+ 57,1,0,110,201,0,1,126,1,1.5,1,0,1,1
356
+ 57,1,1,124,261,0,1,141,0,0.3,2,0,3,0
357
+ 46,0,0,138,243,0,0,152,1,0,1,0,2,1
358
+ 59,1,0,164,176,1,0,90,0,1,1,2,1,0
359
+ 67,1,0,160,286,0,0,108,1,1.5,1,3,2,0
360
+ 59,1,3,134,204,0,1,162,0,0.8,2,2,2,0
361
+ 53,0,2,128,216,0,0,115,0,0,2,0,0,1
362
+ 48,1,0,122,222,0,0,186,0,0,2,0,2,1
363
+ 62,1,2,130,231,0,1,146,0,1.8,1,3,3,1
364
+ 43,0,2,122,213,0,1,165,0,0.2,1,0,2,1
365
+ 53,1,2,130,246,1,0,173,0,0,2,3,2,1
366
+ 57,0,1,130,236,0,0,174,0,0,1,1,2,0
367
+ 53,1,2,130,246,1,0,173,0,0,2,3,2,1
368
+ 58,1,2,112,230,0,0,165,0,2.5,1,1,3,0
369
+ 48,1,1,110,229,0,1,168,0,1,0,0,3,0
370
+ 58,1,2,105,240,0,0,154,1,0.6,1,0,3,1
371
+ 51,1,2,110,175,0,1,123,0,0.6,2,0,2,1
372
+ 43,0,0,132,341,1,0,136,1,3,1,0,3,0
373
+ 55,1,0,132,353,0,1,132,1,1.2,1,1,3,0
374
+ 54,0,2,110,214,0,1,158,0,1.6,1,0,2,1
375
+ 58,1,1,120,284,0,0,160,0,1.8,1,0,2,0
376
+ 46,0,2,142,177,0,0,160,1,1.4,0,0,2,1
377
+ 66,1,0,160,228,0,0,138,0,2.3,2,0,1,1
378
+ 59,1,1,140,221,0,1,164,1,0,2,0,2,1
379
+ 64,0,0,130,303,0,1,122,0,2,1,2,2,1
380
+ 67,1,0,120,237,0,1,71,0,1,1,0,2,0
381
+ 52,1,3,118,186,0,0,190,0,0,1,0,1,1
382
+ 58,1,0,146,218,0,1,105,0,2,1,1,3,0
383
+ 58,1,2,132,224,0,0,173,0,3.2,2,2,3,0
384
+ 59,1,0,110,239,0,0,142,1,1.2,1,1,3,0
385
+ 58,1,0,150,270,0,0,111,1,0.8,2,0,3,0
386
+ 35,1,0,126,282,0,0,156,1,0,2,0,3,0
387
+ 51,1,2,110,175,0,1,123,0,0.6,2,0,2,1
388
+ 42,0,2,120,209,0,1,173,0,0,1,0,2,1
389
+ 77,1,0,125,304,0,0,162,1,0,2,3,2,0
390
+ 64,1,0,120,246,0,0,96,1,2.2,0,1,2,0
391
+ 63,1,3,145,233,1,0,150,0,2.3,0,0,1,1
392
+ 58,0,1,136,319,1,0,152,0,0,2,2,2,0
393
+ 45,1,3,110,264,0,1,132,0,1.2,1,0,3,0
394
+ 51,1,2,110,175,0,1,123,0,0.6,2,0,2,1
395
+ 62,0,0,160,164,0,0,145,0,6.2,0,3,3,0
396
+ 63,1,0,130,330,1,0,132,1,1.8,2,3,3,0
397
+ 66,0,2,146,278,0,0,152,0,0,1,1,2,1
398
+ 68,1,2,180,274,1,0,150,1,1.6,1,0,3,0
399
+ 40,1,0,110,167,0,0,114,1,2,1,0,3,0
400
+ 66,1,0,160,228,0,0,138,0,2.3,2,0,1,1
401
+ 63,1,3,145,233,1,0,150,0,2.3,0,0,1,1
402
+ 49,1,2,120,188,0,1,139,0,2,1,3,3,0
403
+ 71,0,0,112,149,0,1,125,0,1.6,1,0,2,1
404
+ 70,1,1,156,245,0,0,143,0,0,2,0,2,1
405
+ 46,0,1,105,204,0,1,172,0,0,2,0,2,1
406
+ 61,1,0,140,207,0,0,138,1,1.9,2,1,3,0
407
+ 56,1,2,130,256,1,0,142,1,0.6,1,1,1,0
408
+ 58,1,2,140,211,1,0,165,0,0,2,0,2,1
409
+ 58,1,0,100,234,0,1,156,0,0.1,2,1,3,0
410
+ 46,0,0,138,243,0,0,152,1,0,1,0,2,1
411
+ 46,1,2,150,231,0,1,147,0,3.6,1,0,2,0
412
+ 41,0,1,105,198,0,1,168,0,0,2,1,2,1
413
+ 56,1,0,125,249,1,0,144,1,1.2,1,1,2,0
414
+ 57,1,0,150,276,0,0,112,1,0.6,1,1,1,0
415
+ 70,1,0,130,322,0,0,109,0,2.4,1,3,2,0
416
+ 59,1,3,170,288,0,0,159,0,0.2,1,0,3,0
417
+ 41,0,1,130,204,0,0,172,0,1.4,2,0,2,1
418
+ 54,1,2,125,273,0,0,152,0,0.5,0,1,2,1
419
+ 52,1,2,138,223,0,1,169,0,0,2,4,2,1
420
+ 62,0,0,124,209,0,1,163,0,0,2,0,2,1
421
+ 65,0,2,160,360,0,0,151,0,0.8,2,0,2,1
422
+ 57,0,0,128,303,0,0,159,0,0,2,1,2,1
423
+ 42,0,0,102,265,0,0,122,0,0.6,1,0,2,1
424
+ 57,0,0,120,354,0,1,163,1,0.6,2,0,2,1
425
+ 58,0,1,136,319,1,0,152,0,0,2,2,2,0
426
+ 45,1,0,142,309,0,0,147,1,0,1,3,3,0
427
+ 51,0,0,130,305,0,1,142,1,1.2,1,0,3,0
428
+ 54,0,2,160,201,0,1,163,0,0,2,1,2,1
429
+ 57,1,2,150,168,0,1,174,0,1.6,2,0,2,1
430
+ 43,1,0,132,247,1,0,143,1,0.1,1,4,3,0
431
+ 47,1,2,108,243,0,1,152,0,0,2,0,2,0
432
+ 67,1,2,152,212,0,0,150,0,0.8,1,0,3,0
433
+ 65,0,0,150,225,0,0,114,0,1,1,3,3,0
434
+ 60,0,2,102,318,0,1,160,0,0,2,1,2,1
435
+ 37,1,2,130,250,0,1,187,0,3.5,0,0,2,1
436
+ 41,0,2,112,268,0,0,172,1,0,2,0,2,1
437
+ 57,0,0,120,354,0,1,163,1,0.6,2,0,2,1
438
+ 59,0,0,174,249,0,1,143,1,0,1,0,2,0
439
+ 67,1,0,120,229,0,0,129,1,2.6,1,2,3,0
440
+ 47,1,2,130,253,0,1,179,0,0,2,0,2,1
441
+ 58,1,1,120,284,0,0,160,0,1.8,1,0,2,0
442
+ 62,0,0,150,244,0,1,154,1,1.4,1,0,2,0
443
+ 60,1,0,140,293,0,0,170,0,1.2,1,2,3,0
444
+ 57,1,0,152,274,0,1,88,1,1.2,1,1,3,0
445
+ 57,1,2,150,168,0,1,174,0,1.6,2,0,2,1
446
+ 47,1,2,130,253,0,1,179,0,0,2,0,2,1
447
+ 52,1,1,128,205,1,1,184,0,0,2,0,2,1
448
+ 53,1,2,130,246,1,0,173,0,0,2,3,2,1
449
+ 55,1,0,160,289,0,0,145,1,0.8,1,1,3,0
450
+ 51,0,2,120,295,0,0,157,0,0.6,2,0,2,1
451
+ 52,1,0,112,230,0,1,160,0,0,2,1,2,0
452
+ 63,0,0,150,407,0,0,154,0,4,1,3,3,0
453
+ 49,0,1,134,271,0,1,162,0,0,1,0,2,1
454
+ 66,0,0,178,228,1,1,165,1,1,1,2,3,0
455
+ 49,0,1,134,271,0,1,162,0,0,1,0,2,1
456
+ 65,0,0,150,225,0,0,114,0,1,1,3,3,0
457
+ 69,1,3,160,234,1,0,131,0,0.1,1,1,2,1
458
+ 47,1,2,108,243,0,1,152,0,0,2,0,2,0
459
+ 39,0,2,138,220,0,1,152,0,0,1,0,2,1
460
+ 43,1,0,150,247,0,1,171,0,1.5,2,0,2,1
461
+ 51,1,0,140,261,0,0,186,1,0,2,0,2,1
462
+ 69,1,2,140,254,0,0,146,0,2,1,3,3,0
463
+ 48,1,2,124,255,1,1,175,0,0,2,2,2,1
464
+ 52,1,3,118,186,0,0,190,0,0,1,0,1,1
465
+ 43,1,0,110,211,0,1,161,0,0,2,0,3,1
466
+ 67,0,2,115,564,0,0,160,0,1.6,1,0,3,1
467
+ 38,1,2,138,175,0,1,173,0,0,2,4,2,1
468
+ 44,1,1,130,219,0,0,188,0,0,2,0,2,1
469
+ 47,1,0,110,275,0,0,118,1,1,1,1,2,0
470
+ 61,1,2,150,243,1,1,137,1,1,1,0,2,1
471
+ 67,1,0,160,286,0,0,108,1,1.5,1,3,2,0
472
+ 60,0,3,150,240,0,1,171,0,0.9,2,0,2,1
473
+ 64,0,2,140,313,0,1,133,0,0.2,2,0,3,1
474
+ 58,0,0,130,197,0,1,131,0,0.6,1,0,2,1
475
+ 41,1,2,130,214,0,0,168,0,2,1,0,2,1
476
+ 48,1,1,110,229,0,1,168,0,1,0,0,3,0
477
+ 57,1,2,150,126,1,1,173,0,0.2,2,1,3,1
478
+ 57,1,0,165,289,1,0,124,0,1,1,3,3,0
479
+ 57,1,2,128,229,0,0,150,0,0.4,1,1,3,0
480
+ 39,1,2,140,321,0,0,182,0,0,2,0,2,1
481
+ 58,1,0,128,216,0,0,131,1,2.2,1,3,3,0
482
+ 51,0,0,130,305,0,1,142,1,1.2,1,0,3,0
483
+ 63,0,0,150,407,0,0,154,0,4,1,3,3,0
484
+ 51,1,0,140,298,0,1,122,1,4.2,1,3,3,0
485
+ 35,1,1,122,192,0,1,174,0,0,2,0,2,1
486
+ 65,1,0,110,248,0,0,158,0,0.6,2,2,1,0
487
+ 62,1,1,120,281,0,0,103,0,1.4,1,1,3,0
488
+ 41,1,0,110,172,0,0,158,0,0,2,0,3,0
489
+ 65,1,0,135,254,0,0,127,0,2.8,1,1,3,0
490
+ 54,0,1,132,288,1,0,159,1,0,2,1,2,1
491
+ 61,1,2,150,243,1,1,137,1,1,1,0,2,1
492
+ 57,0,0,128,303,0,0,159,0,0,2,1,2,1
493
+ 57,1,2,150,168,0,1,174,0,1.6,2,0,2,1
494
+ 64,1,2,125,309,0,1,131,1,1.8,1,0,3,0
495
+ 55,1,0,132,353,0,1,132,1,1.2,1,1,3,0
496
+ 51,1,2,125,245,1,0,166,0,2.4,1,0,2,1
497
+ 59,1,0,135,234,0,1,161,0,0.5,1,0,3,1
498
+ 68,1,2,180,274,1,0,150,1,1.6,1,0,3,0
499
+ 57,1,1,154,232,0,0,164,0,0,2,1,2,0
500
+ 54,1,0,140,239,0,1,160,0,1.2,2,0,2,1
501
+ 46,0,2,142,177,0,0,160,1,1.4,0,0,2,1
502
+ 71,0,0,112,149,0,1,125,0,1.6,1,0,2,1
503
+ 35,0,0,138,183,0,1,182,0,1.4,2,0,2,1
504
+ 46,0,2,142,177,0,0,160,1,1.4,0,0,2,1
505
+ 45,0,1,130,234,0,0,175,0,0.6,1,0,2,1
506
+ 47,1,2,108,243,0,1,152,0,0,2,0,2,0
507
+ 44,0,2,118,242,0,1,149,0,0.3,1,1,2,1
508
+ 61,1,0,120,260,0,1,140,1,3.6,1,1,3,0
509
+ 41,0,1,130,204,0,0,172,0,1.4,2,0,2,1
510
+ 56,0,0,200,288,1,0,133,1,4,0,2,3,0
511
+ 55,0,0,180,327,0,2,117,1,3.4,1,0,2,0
512
+ 54,0,1,132,288,1,0,159,1,0,2,1,2,1
513
+ 43,1,0,120,177,0,0,120,1,2.5,1,0,3,0
514
+ 44,1,0,112,290,0,0,153,0,0,2,1,2,0
515
+ 54,1,0,110,206,0,0,108,1,0,1,1,2,0
516
+ 44,1,1,120,220,0,1,170,0,0,2,0,2,1
517
+ 49,1,2,120,188,0,1,139,0,2,1,3,3,0
518
+ 60,1,0,130,206,0,0,132,1,2.4,1,2,3,0
519
+ 41,0,1,105,198,0,1,168,0,0,2,1,2,1
520
+ 49,1,2,120,188,0,1,139,0,2,1,3,3,0
521
+ 61,1,0,148,203,0,1,161,0,0,2,1,3,0
522
+ 59,1,0,140,177,0,1,162,1,0,2,1,3,0
523
+ 58,1,1,125,220,0,1,144,0,0.4,1,4,3,1
524
+ 67,0,2,152,277,0,1,172,0,0,2,1,2,1
525
+ 61,1,0,148,203,0,1,161,0,0,2,1,3,0
526
+ 58,1,2,112,230,0,0,165,0,2.5,1,1,3,0
527
+ 51,0,2,130,256,0,0,149,0,0.5,2,0,2,1
528
+ 62,0,0,160,164,0,0,145,0,6.2,0,3,3,0
529
+ 62,0,0,124,209,0,1,163,0,0,2,0,2,1
530
+ 59,1,3,178,270,0,0,145,0,4.2,0,0,3,1
531
+ 69,1,3,160,234,1,0,131,0,0.1,1,1,2,1
532
+ 60,0,0,150,258,0,0,157,0,2.6,1,2,3,0
533
+ 65,0,2,155,269,0,1,148,0,0.8,2,0,2,1
534
+ 63,0,0,124,197,0,1,136,1,0,1,0,2,0
535
+ 53,0,0,138,234,0,0,160,0,0,2,0,2,1
536
+ 54,0,2,108,267,0,0,167,0,0,2,0,2,1
537
+ 76,0,2,140,197,0,2,116,0,1.1,1,0,2,1
538
+ 50,0,2,120,219,0,1,158,0,1.6,1,0,2,1
539
+ 52,1,1,120,325,0,1,172,0,0.2,2,0,2,1
540
+ 46,1,0,120,249,0,0,144,0,0.8,2,0,3,0
541
+ 64,1,3,170,227,0,0,155,0,0.6,1,0,3,1
542
+ 58,1,0,128,259,0,0,130,1,3,1,2,3,0
543
+ 44,1,2,140,235,0,0,180,0,0,2,0,2,1
544
+ 62,0,0,140,394,0,0,157,0,1.2,1,0,2,1
545
+ 59,1,3,134,204,0,1,162,0,0.8,2,2,2,0
546
+ 54,1,2,125,273,0,0,152,0,0.5,0,1,2,1
547
+ 48,1,1,110,229,0,1,168,0,1,0,0,3,0
548
+ 70,1,0,130,322,0,0,109,0,2.4,1,3,2,0
549
+ 67,0,0,106,223,0,1,142,0,0.3,2,2,2,1
550
+ 51,0,2,120,295,0,0,157,0,0.6,2,0,2,1
551
+ 68,1,2,118,277,0,1,151,0,1,2,1,3,1
552
+ 69,1,2,140,254,0,0,146,0,2,1,3,3,0
553
+ 54,1,0,122,286,0,0,116,1,3.2,1,2,2,0
554
+ 43,0,0,132,341,1,0,136,1,3,1,0,3,0
555
+ 53,1,2,130,197,1,0,152,0,1.2,0,0,2,1
556
+ 58,1,0,100,234,0,1,156,0,0.1,2,1,3,0
557
+ 67,1,0,125,254,1,1,163,0,0.2,1,2,3,0
558
+ 59,1,0,140,177,0,1,162,1,0,2,1,3,0
559
+ 48,1,0,122,222,0,0,186,0,0,2,0,2,1
560
+ 39,0,2,94,199,0,1,179,0,0,2,0,2,1
561
+ 67,1,0,120,237,0,1,71,0,1,1,0,2,0
562
+ 58,0,0,130,197,0,1,131,0,0.6,1,0,2,1
563
+ 65,0,2,155,269,0,1,148,0,0.8,2,0,2,1
564
+ 42,0,2,120,209,0,1,173,0,0,1,0,2,1
565
+ 44,1,0,112,290,0,0,153,0,0,2,1,2,0
566
+ 56,1,0,132,184,0,0,105,1,2.1,1,1,1,0
567
+ 53,0,0,138,234,0,0,160,0,0,2,0,2,1
568
+ 50,0,0,110,254,0,0,159,0,0,2,0,2,1
569
+ 41,1,2,130,214,0,0,168,0,2,1,0,2,1
570
+ 54,0,2,160,201,0,1,163,0,0,2,1,2,1
571
+ 42,1,2,120,240,1,1,194,0,0.8,0,0,3,1
572
+ 54,0,2,135,304,1,1,170,0,0,2,0,2,1
573
+ 60,1,0,145,282,0,0,142,1,2.8,1,2,3,0
574
+ 34,1,3,118,182,0,0,174,0,0,2,0,2,1
575
+ 44,1,0,112,290,0,0,153,0,0,2,1,2,0
576
+ 60,1,0,125,258,0,0,141,1,2.8,1,1,3,0
577
+ 43,1,0,150,247,0,1,171,0,1.5,2,0,2,1
578
+ 52,1,3,152,298,1,1,178,0,1.2,1,0,3,1
579
+ 70,1,0,130,322,0,0,109,0,2.4,1,3,2,0
580
+ 62,0,0,140,394,0,0,157,0,1.2,1,0,2,1
581
+ 58,1,0,146,218,0,1,105,0,2,1,1,3,0
582
+ 46,1,1,101,197,1,1,156,0,0,2,0,3,1
583
+ 44,1,2,140,235,0,0,180,0,0,2,0,2,1
584
+ 55,1,1,130,262,0,1,155,0,0,2,0,2,1
585
+ 43,1,0,120,177,0,0,120,1,2.5,1,0,3,0
586
+ 55,1,0,132,353,0,1,132,1,1.2,1,1,3,0
587
+ 40,1,3,140,199,0,1,178,1,1.4,2,0,3,1
588
+ 64,1,2,125,309,0,1,131,1,1.8,1,0,3,0
589
+ 59,1,0,164,176,1,0,90,0,1,1,2,1,0
590
+ 61,0,0,145,307,0,0,146,1,1,1,0,3,0
591
+ 54,1,0,122,286,0,0,116,1,3.2,1,2,2,0
592
+ 74,0,1,120,269,0,0,121,1,0.2,2,1,2,1
593
+ 63,0,0,108,269,0,1,169,1,1.8,1,2,2,0
594
+ 70,1,2,160,269,0,1,112,1,2.9,1,1,3,0
595
+ 63,0,0,108,269,0,1,169,1,1.8,1,2,2,0
596
+ 64,1,0,145,212,0,0,132,0,2,1,2,1,0
597
+ 61,1,0,148,203,0,1,161,0,0,2,1,3,0
598
+ 59,1,1,140,221,0,1,164,1,0,2,0,2,1
599
+ 38,1,2,138,175,0,1,173,0,0,2,4,2,1
600
+ 58,1,1,120,284,0,0,160,0,1.8,1,0,2,0
601
+ 63,0,1,140,195,0,1,179,0,0,2,2,2,1
602
+ 62,0,2,130,263,0,1,97,0,1.2,1,1,3,0
603
+ 46,1,0,140,311,0,1,120,1,1.8,1,2,3,0
604
+ 58,0,2,120,340,0,1,172,0,0,2,0,2,1
605
+ 63,0,1,140,195,0,1,179,0,0,2,2,2,1
606
+ 47,1,2,130,253,0,1,179,0,0,2,0,2,1
607
+ 71,0,2,110,265,1,0,130,0,0,2,1,2,1
608
+ 66,1,0,112,212,0,0,132,1,0.1,2,1,2,0
609
+ 42,1,0,136,315,0,1,125,1,1.8,1,0,1,0
610
+ 64,1,0,145,212,0,0,132,0,2,1,2,1,0
611
+ 55,0,0,180,327,0,2,117,1,3.4,1,0,2,0
612
+ 43,0,0,132,341,1,0,136,1,3,1,0,3,0
613
+ 55,0,0,128,205,0,2,130,1,2,1,1,3,0
614
+ 58,0,0,170,225,1,0,146,1,2.8,1,2,1,0
615
+ 55,1,0,140,217,0,1,111,1,5.6,0,0,3,0
616
+ 51,0,0,130,305,0,1,142,1,1.2,1,0,3,0
617
+ 50,0,2,120,219,0,1,158,0,1.6,1,0,2,1
618
+ 43,1,0,115,303,0,1,181,0,1.2,1,0,2,1
619
+ 41,0,1,126,306,0,1,163,0,0,2,0,2,1
620
+ 49,1,1,130,266,0,1,171,0,0.6,2,0,2,1
621
+ 65,1,0,110,248,0,0,158,0,0.6,2,2,1,0
622
+ 57,1,0,152,274,0,1,88,1,1.2,1,1,3,0
623
+ 48,1,0,130,256,1,0,150,1,0,2,2,3,0
624
+ 62,0,0,138,294,1,1,106,0,1.9,1,3,2,0
625
+ 61,1,3,134,234,0,1,145,0,2.6,1,2,2,0
626
+ 59,1,3,178,270,0,0,145,0,4.2,0,0,3,1
627
+ 69,1,2,140,254,0,0,146,0,2,1,3,3,0
628
+ 58,1,2,132,224,0,0,173,0,3.2,2,2,3,0
629
+ 38,1,3,120,231,0,1,182,1,3.8,1,0,3,0
630
+ 69,0,3,140,239,0,1,151,0,1.8,2,2,2,1
631
+ 65,1,3,138,282,1,0,174,0,1.4,1,1,2,0
632
+ 45,1,3,110,264,0,1,132,0,1.2,1,0,3,0
633
+ 49,1,1,130,266,0,1,171,0,0.6,2,0,2,1
634
+ 45,0,1,130,234,0,0,175,0,0.6,1,0,2,1
635
+ 61,1,0,138,166,0,0,125,1,3.6,1,1,2,0
636
+ 52,1,0,125,212,0,1,168,0,1,2,2,3,0
637
+ 53,0,0,130,264,0,0,143,0,0.4,1,0,2,1
638
+ 59,0,0,174,249,0,1,143,1,0,1,0,2,0
639
+ 58,0,2,120,340,0,1,172,0,0,2,0,2,1
640
+ 65,1,3,138,282,1,0,174,0,1.4,1,1,2,0
641
+ 58,0,0,130,197,0,1,131,0,0.6,1,0,2,1
642
+ 46,0,0,138,243,0,0,152,1,0,1,0,2,1
643
+ 56,0,0,134,409,0,0,150,1,1.9,1,2,3,0
644
+ 64,1,0,128,263,0,1,105,1,0.2,1,1,3,1
645
+ 65,1,0,120,177,0,1,140,0,0.4,2,0,3,1
646
+ 44,1,2,120,226,0,1,169,0,0,2,0,2,1
647
+ 50,1,0,150,243,0,0,128,0,2.6,1,0,3,0
648
+ 47,1,2,108,243,0,1,152,0,0,2,0,2,0
649
+ 64,0,0,130,303,0,1,122,0,2,1,2,2,1
650
+ 71,0,0,112,149,0,1,125,0,1.6,1,0,2,1
651
+ 45,0,1,130,234,0,0,175,0,0.6,1,0,2,1
652
+ 62,1,0,120,267,0,1,99,1,1.8,1,2,3,0
653
+ 41,1,1,120,157,0,1,182,0,0,2,0,2,1
654
+ 66,0,3,150,226,0,1,114,0,2.6,0,0,2,1
655
+ 56,1,0,130,283,1,0,103,1,1.6,0,0,3,0
656
+ 41,0,1,126,306,0,1,163,0,0,2,0,2,1
657
+ 41,1,1,110,235,0,1,153,0,0,2,0,2,1
658
+ 57,0,1,130,236,0,0,174,0,0,1,1,2,0
659
+ 39,0,2,138,220,0,1,152,0,0,1,0,2,1
660
+ 64,1,2,125,309,0,1,131,1,1.8,1,0,3,0
661
+ 59,1,0,138,271,0,0,182,0,0,2,0,2,1
662
+ 61,1,0,138,166,0,0,125,1,3.6,1,1,2,0
663
+ 58,1,0,114,318,0,2,140,0,4.4,0,3,1,0
664
+ 47,1,0,112,204,0,1,143,0,0.1,2,0,2,1
665
+ 58,0,0,100,248,0,0,122,0,1,1,0,2,1
666
+ 66,0,3,150,226,0,1,114,0,2.6,0,0,2,1
667
+ 65,0,2,140,417,1,0,157,0,0.8,2,1,2,1
668
+ 35,1,1,122,192,0,1,174,0,0,2,0,2,1
669
+ 57,1,1,124,261,0,1,141,0,0.3,2,0,3,0
670
+ 29,1,1,130,204,0,0,202,0,0,2,0,2,1
671
+ 66,1,1,160,246,0,1,120,1,0,1,3,1,0
672
+ 61,0,0,130,330,0,0,169,0,0,2,0,2,0
673
+ 52,1,0,125,212,0,1,168,0,1,2,2,3,0
674
+ 68,1,2,118,277,0,1,151,0,1,2,1,3,1
675
+ 54,1,2,120,258,0,0,147,0,0.4,1,0,3,1
676
+ 63,1,0,130,330,1,0,132,1,1.8,2,3,3,0
677
+ 58,1,0,100,234,0,1,156,0,0.1,2,1,3,0
678
+ 60,1,0,130,253,0,1,144,1,1.4,2,1,3,0
679
+ 63,1,0,130,254,0,0,147,0,1.4,1,1,3,0
680
+ 41,0,2,112,268,0,0,172,1,0,2,0,2,1
681
+ 68,1,2,180,274,1,0,150,1,1.6,1,0,3,0
682
+ 42,1,1,120,295,0,1,162,0,0,2,0,2,1
683
+ 59,1,0,170,326,0,0,140,1,3.4,0,0,3,0
684
+ 59,1,0,164,176,1,0,90,0,1,1,2,1,0
685
+ 43,1,0,120,177,0,0,120,1,2.5,1,0,3,0
686
+ 60,1,2,140,185,0,0,155,0,3,1,0,2,0
687
+ 63,0,0,150,407,0,0,154,0,4,1,3,3,0
688
+ 52,1,0,128,204,1,1,156,1,1,1,0,0,0
689
+ 58,1,0,125,300,0,0,171,0,0,2,2,3,0
690
+ 56,0,0,200,288,1,0,133,1,4,0,2,3,0
691
+ 54,0,2,135,304,1,1,170,0,0,2,0,2,1
692
+ 58,1,2,105,240,0,0,154,1,0.6,1,0,3,1
693
+ 55,0,1,135,250,0,0,161,0,1.4,1,0,2,1
694
+ 53,1,0,140,203,1,0,155,1,3.1,0,0,3,0
695
+ 63,0,1,140,195,0,1,179,0,0,2,2,2,1
696
+ 39,1,0,118,219,0,1,140,0,1.2,1,0,3,0
697
+ 35,1,0,126,282,0,0,156,1,0,2,0,3,0
698
+ 50,0,2,120,219,0,1,158,0,1.6,1,0,2,1
699
+ 67,1,2,152,212,0,0,150,0,0.8,1,0,3,0
700
+ 66,1,0,112,212,0,0,132,1,0.1,2,1,2,0
701
+ 35,1,0,126,282,0,0,156,1,0,2,0,3,0
702
+ 41,1,2,130,214,0,0,168,0,2,1,0,2,1
703
+ 35,1,0,120,198,0,1,130,1,1.6,1,0,3,0
704
+ 71,0,1,160,302,0,1,162,0,0.4,2,2,2,1
705
+ 57,1,0,110,201,0,1,126,1,1.5,1,0,1,1
706
+ 51,1,2,94,227,0,1,154,1,0,2,1,3,1
707
+ 58,1,0,128,216,0,0,131,1,2.2,1,3,3,0
708
+ 57,1,2,128,229,0,0,150,0,0.4,1,1,3,0
709
+ 56,0,1,140,294,0,0,153,0,1.3,1,0,2,1
710
+ 60,0,2,120,178,1,1,96,0,0,2,0,2,1
711
+ 45,1,3,110,264,0,1,132,0,1.2,1,0,3,0
712
+ 56,1,1,130,221,0,0,163,0,0,2,0,3,1
713
+ 35,1,0,120,198,0,1,130,1,1.6,1,0,3,0
714
+ 45,0,1,112,160,0,1,138,0,0,1,0,2,1
715
+ 66,0,3,150,226,0,1,114,0,2.6,0,0,2,1
716
+ 51,1,3,125,213,0,0,125,1,1.4,2,1,2,1
717
+ 70,1,1,156,245,0,0,143,0,0,2,0,2,1
718
+ 55,0,0,128,205,0,2,130,1,2,1,1,3,0
719
+ 56,1,2,130,256,1,0,142,1,0.6,1,1,1,0
720
+ 55,0,1,135,250,0,0,161,0,1.4,1,0,2,1
721
+ 52,1,0,108,233,1,1,147,0,0.1,2,3,3,1
722
+ 64,1,2,140,335,0,1,158,0,0,2,0,2,0
723
+ 45,1,0,115,260,0,0,185,0,0,2,0,2,1
724
+ 67,0,2,152,277,0,1,172,0,0,2,1,2,1
725
+ 68,0,2,120,211,0,0,115,0,1.5,1,0,2,1
726
+ 74,0,1,120,269,0,0,121,1,0.2,2,1,2,1
727
+ 60,0,0,150,258,0,0,157,0,2.6,1,2,3,0
728
+ 48,1,0,124,274,0,0,166,0,0.5,1,0,3,0
729
+ 56,1,1,130,221,0,0,163,0,0,2,0,3,1
730
+ 46,1,0,140,311,0,1,120,1,1.8,1,2,3,0
731
+ 55,0,1,135,250,0,0,161,0,1.4,1,0,2,1
732
+ 44,1,1,120,220,0,1,170,0,0,2,0,2,1
733
+ 52,1,0,112,230,0,1,160,0,0,2,1,2,0
734
+ 51,1,2,94,227,0,1,154,1,0,2,1,3,1
735
+ 44,0,2,108,141,0,1,175,0,0.6,1,0,2,1
736
+ 52,1,0,128,204,1,1,156,1,1,1,0,0,0
737
+ 50,1,2,129,196,0,1,163,0,0,2,0,2,1
738
+ 59,1,0,110,239,0,0,142,1,1.2,1,1,3,0
739
+ 67,1,0,120,229,0,0,129,1,2.6,1,2,3,0
740
+ 58,1,0,125,300,0,0,171,0,0,2,2,3,0
741
+ 52,1,0,128,255,0,1,161,1,0,2,1,3,0
742
+ 44,1,2,140,235,0,0,180,0,0,2,0,2,1
743
+ 41,0,2,112,268,0,0,172,1,0,2,0,2,1
744
+ 63,1,0,130,330,1,0,132,1,1.8,2,3,3,0
745
+ 58,1,1,125,220,0,1,144,0,0.4,1,4,3,1
746
+ 60,0,2,102,318,0,1,160,0,0,2,1,2,1
747
+ 51,1,2,100,222,0,1,143,1,1.2,1,0,2,1
748
+ 64,1,2,140,335,0,1,158,0,0,2,0,2,0
749
+ 60,1,0,117,230,1,1,160,1,1.4,2,2,3,0
750
+ 44,1,2,120,226,0,1,169,0,0,2,0,2,1
751
+ 58,1,1,125,220,0,1,144,0,0.4,1,4,3,1
752
+ 55,1,1,130,262,0,1,155,0,0,2,0,2,1
753
+ 65,0,2,160,360,0,0,151,0,0.8,2,0,2,1
754
+ 48,1,1,130,245,0,0,180,0,0.2,1,0,2,1
755
+ 65,1,0,120,177,0,1,140,0,0.4,2,0,3,1
756
+ 51,0,2,130,256,0,0,149,0,0.5,2,0,2,1
757
+ 48,1,2,124,255,1,1,175,0,0,2,2,2,1
758
+ 64,1,0,120,246,0,0,96,1,2.2,0,1,2,0
759
+ 66,1,0,160,228,0,0,138,0,2.3,2,0,1,1
760
+ 46,0,1,105,204,0,1,172,0,0,2,0,2,1
761
+ 61,0,0,130,330,0,0,169,0,0,2,0,2,0
762
+ 57,1,0,150,276,0,0,112,1,0.6,1,1,1,0
763
+ 49,0,0,130,269,0,1,163,0,0,2,0,2,1
764
+ 56,1,1,130,221,0,0,163,0,0,2,0,3,1
765
+ 58,0,3,150,283,1,0,162,0,1,2,0,2,1
766
+ 63,1,0,140,187,0,0,144,1,4,2,2,3,0
767
+ 57,1,0,110,335,0,1,143,1,3,1,1,3,0
768
+ 57,1,0,110,335,0,1,143,1,3,1,1,3,0
769
+ 68,1,0,144,193,1,1,141,0,3.4,1,2,3,0
770
+ 46,1,1,101,197,1,1,156,0,0,2,0,3,1
771
+ 71,0,2,110,265,1,0,130,0,0,2,1,2,1
772
+ 41,1,1,135,203,0,1,132,0,0,1,0,1,1
773
+ 45,0,0,138,236,0,0,152,1,0.2,1,0,2,1
774
+ 62,0,0,150,244,0,1,154,1,1.4,1,0,2,0
775
+ 65,0,0,150,225,0,0,114,0,1,1,3,3,0
776
+ 48,0,2,130,275,0,1,139,0,0.2,2,0,2,1
777
+ 51,1,2,100,222,0,1,143,1,1.2,1,0,2,1
778
+ 61,0,0,145,307,0,0,146,1,1,1,0,3,0
779
+ 53,1,0,123,282,0,1,95,1,2,1,2,3,0
780
+ 59,1,3,134,204,0,1,162,0,0.8,2,2,2,0
781
+ 34,0,1,118,210,0,1,192,0,0.7,2,0,2,1
782
+ 44,1,0,120,169,0,1,144,1,2.8,0,0,1,0
783
+ 58,1,0,146,218,0,1,105,0,2,1,1,3,0
784
+ 64,0,0,130,303,0,1,122,0,2,1,2,2,1
785
+ 56,1,1,120,240,0,1,169,0,0,0,0,2,1
786
+ 54,1,2,150,232,0,0,165,0,1.6,2,0,3,1
787
+ 55,1,0,160,289,0,0,145,1,0.8,1,1,3,0
788
+ 67,1,0,125,254,1,1,163,0,0.2,1,2,3,0
789
+ 51,1,0,140,298,0,1,122,1,4.2,1,3,3,0
790
+ 62,0,0,138,294,1,1,106,0,1.9,1,3,2,0
791
+ 62,1,1,120,281,0,0,103,0,1.4,1,1,3,0
792
+ 54,1,0,110,239,0,1,126,1,2.8,1,1,3,0
793
+ 54,1,0,110,239,0,1,126,1,2.8,1,1,3,0
794
+ 68,1,0,144,193,1,1,141,0,3.4,1,2,3,0
795
+ 60,0,2,120,178,1,1,96,0,0,2,0,2,1
796
+ 61,1,3,134,234,0,1,145,0,2.6,1,2,2,0
797
+ 62,1,1,128,208,1,0,140,0,0,2,0,2,1
798
+ 41,1,1,135,203,0,1,132,0,0,1,0,1,1
799
+ 65,0,0,150,225,0,0,114,0,1,1,3,3,0
800
+ 59,1,3,170,288,0,0,159,0,0.2,1,0,3,0
801
+ 43,1,0,115,303,0,1,181,0,1.2,1,0,2,1
802
+ 67,1,0,120,229,0,0,129,1,2.6,1,2,3,0
803
+ 63,1,3,145,233,1,0,150,0,2.3,0,0,1,1
804
+ 63,0,0,124,197,0,1,136,1,0,1,0,2,0
805
+ 52,1,0,112,230,0,1,160,0,0,2,1,2,0
806
+ 58,0,0,130,197,0,1,131,0,0.6,1,0,2,1
807
+ 53,1,0,142,226,0,0,111,1,0,2,0,3,1
808
+ 57,1,0,150,276,0,0,112,1,0.6,1,1,1,0
809
+ 44,1,2,130,233,0,1,179,1,0.4,2,0,2,1
810
+ 51,1,2,94,227,0,1,154,1,0,2,1,3,1
811
+ 54,0,2,110,214,0,1,158,0,1.6,1,0,2,1
812
+ 40,1,0,110,167,0,0,114,1,2,1,0,3,0
813
+ 57,1,1,124,261,0,1,141,0,0.3,2,0,3,0
814
+ 62,0,0,140,268,0,0,160,0,3.6,0,2,2,0
815
+ 53,1,0,140,203,1,0,155,1,3.1,0,0,3,0
816
+ 62,1,1,128,208,1,0,140,0,0,2,0,2,1
817
+ 58,1,2,105,240,0,0,154,1,0.6,1,0,3,1
818
+ 70,1,1,156,245,0,0,143,0,0,2,0,2,1
819
+ 45,1,0,115,260,0,0,185,0,0,2,0,2,1
820
+ 42,1,3,148,244,0,0,178,0,0.8,2,2,2,1
821
+ 58,0,0,170,225,1,0,146,1,2.8,1,2,1,0
822
+ 61,1,0,140,207,0,0,138,1,1.9,2,1,3,0
823
+ 62,0,0,140,268,0,0,160,0,3.6,0,2,2,0
824
+ 60,1,0,130,253,0,1,144,1,1.4,2,1,3,0
825
+ 54,1,0,140,239,0,1,160,0,1.2,2,0,2,1
826
+ 61,1,0,138,166,0,0,125,1,3.6,1,1,2,0
827
+ 63,0,2,135,252,0,0,172,0,0,2,0,2,1
828
+ 42,1,2,130,180,0,1,150,0,0,2,0,2,1
829
+ 57,1,2,128,229,0,0,150,0,0.4,1,1,3,0
830
+ 44,1,2,130,233,0,1,179,1,0.4,2,0,2,1
831
+ 54,1,0,124,266,0,0,109,1,2.2,1,1,3,0
832
+ 51,1,2,100,222,0,1,143,1,1.2,1,0,2,1
833
+ 58,1,1,125,220,0,1,144,0,0.4,1,4,3,1
834
+ 68,1,2,118,277,0,1,151,0,1,2,1,3,1
835
+ 55,1,0,140,217,0,1,111,1,5.6,0,0,3,0
836
+ 42,1,0,136,315,0,1,125,1,1.8,1,0,1,0
837
+ 49,1,2,118,149,0,0,126,0,0.8,2,3,2,0
838
+ 53,0,0,138,234,0,0,160,0,0,2,0,2,1
839
+ 52,1,2,172,199,1,1,162,0,0.5,2,0,3,1
840
+ 51,1,3,125,213,0,0,125,1,1.4,2,1,2,1
841
+ 51,1,0,140,261,0,0,186,1,0,2,0,2,1
842
+ 70,1,0,145,174,0,1,125,1,2.6,0,0,3,0
843
+ 35,0,0,138,183,0,1,182,0,1.4,2,0,2,1
844
+ 58,1,2,112,230,0,0,165,0,2.5,1,1,3,0
845
+ 59,1,3,160,273,0,0,125,0,0,2,0,2,0
846
+ 60,1,0,140,293,0,0,170,0,1.2,1,2,3,0
847
+ 56,1,0,132,184,0,0,105,1,2.1,1,1,1,0
848
+ 35,0,0,138,183,0,1,182,0,1.4,2,0,2,1
849
+ 61,1,0,138,166,0,0,125,1,3.6,1,1,2,0
850
+ 58,0,3,150,283,1,0,162,0,1,2,0,2,1
851
+ 52,1,0,128,255,0,1,161,1,0,2,1,3,0
852
+ 58,1,1,120,284,0,0,160,0,1.8,1,0,2,0
853
+ 37,1,2,130,250,0,1,187,0,3.5,0,0,2,1
854
+ 52,1,0,128,255,0,1,161,1,0,2,1,3,0
855
+ 67,1,0,120,229,0,0,129,1,2.6,1,2,3,0
856
+ 65,1,3,138,282,1,0,174,0,1.4,1,1,2,0
857
+ 46,1,1,101,197,1,1,156,0,0,2,0,3,1
858
+ 68,0,2,120,211,0,0,115,0,1.5,1,0,2,1
859
+ 43,1,0,115,303,0,1,181,0,1.2,1,0,2,1
860
+ 68,0,2,120,211,0,0,115,0,1.5,1,0,2,1
861
+ 51,1,0,140,299,0,1,173,1,1.6,2,0,3,0
862
+ 52,1,0,112,230,0,1,160,0,0,2,1,2,0
863
+ 64,1,2,140,335,0,1,158,0,0,2,0,2,0
864
+ 59,1,3,170,288,0,0,159,0,0.2,1,0,3,0
865
+ 52,1,0,125,212,0,1,168,0,1,2,2,3,0
866
+ 59,1,3,160,273,0,0,125,0,0,2,0,2,0
867
+ 60,0,3,150,240,0,1,171,0,0.9,2,0,2,1
868
+ 41,1,2,112,250,0,1,179,0,0,2,0,2,1
869
+ 41,1,1,110,235,0,1,153,0,0,2,0,2,1
870
+ 56,1,1,120,240,0,1,169,0,0,0,0,2,1
871
+ 56,1,1,120,236,0,1,178,0,0.8,2,0,2,1
872
+ 48,0,2,130,275,0,1,139,0,0.2,2,0,2,1
873
+ 39,1,2,140,321,0,0,182,0,0,2,0,2,1
874
+ 64,1,3,170,227,0,0,155,0,0.6,1,0,3,1
875
+ 57,1,0,140,192,0,1,148,0,0.4,1,0,1,1
876
+ 59,1,3,160,273,0,0,125,0,0,2,0,2,0
877
+ 60,1,0,130,206,0,0,132,1,2.4,1,2,3,0
878
+ 61,1,0,140,207,0,0,138,1,1.9,2,1,3,0
879
+ 43,0,2,122,213,0,1,165,0,0.2,1,0,2,1
880
+ 54,1,0,120,188,0,1,113,0,1.4,1,1,3,0
881
+ 59,1,0,138,271,0,0,182,0,0,2,0,2,1
882
+ 57,1,0,132,207,0,1,168,1,0,2,0,3,1
883
+ 57,1,1,154,232,0,0,164,0,0,2,1,2,0
884
+ 57,1,0,130,131,0,1,115,1,1.2,1,1,3,0
885
+ 48,1,0,124,274,0,0,166,0,0.5,1,0,3,0
886
+ 70,1,0,145,174,0,1,125,1,2.6,0,0,3,0
887
+ 57,1,0,165,289,1,0,124,0,1,1,3,3,0
888
+ 61,1,0,120,260,0,1,140,1,3.6,1,1,3,0
889
+ 57,1,0,110,201,0,1,126,1,1.5,1,0,1,1
890
+ 60,0,0,150,258,0,0,157,0,2.6,1,2,3,0
891
+ 63,0,0,150,407,0,0,154,0,4,1,3,3,0
892
+ 55,0,0,128,205,0,2,130,1,2,1,1,3,0
893
+ 64,0,0,180,325,0,1,154,1,0,2,0,2,1
894
+ 54,1,0,110,239,0,1,126,1,2.8,1,1,3,0
895
+ 52,1,0,128,204,1,1,156,1,1,1,0,0,0
896
+ 51,1,0,140,299,0,1,173,1,1.6,2,0,3,0
897
+ 62,0,2,130,263,0,1,97,0,1.2,1,1,3,0
898
+ 59,1,3,178,270,0,0,145,0,4.2,0,0,3,1
899
+ 52,1,1,134,201,0,1,158,0,0.8,2,1,2,1
900
+ 42,0,0,102,265,0,0,122,0,0.6,1,0,2,1
901
+ 59,1,0,135,234,0,1,161,0,0.5,1,0,3,1
902
+ 61,1,3,134,234,0,1,145,0,2.6,1,2,2,0
903
+ 42,0,0,102,265,0,0,122,0,0.6,1,0,2,1
904
+ 62,0,0,140,268,0,0,160,0,3.6,0,2,2,0
905
+ 59,1,2,126,218,1,1,134,0,2.2,1,1,1,0
906
+ 55,1,1,130,262,0,1,155,0,0,2,0,2,1
907
+ 64,1,0,120,246,0,0,96,1,2.2,0,1,2,0
908
+ 42,1,0,140,226,0,1,178,0,0,2,0,2,1
909
+ 50,0,1,120,244,0,1,162,0,1.1,2,0,2,1
910
+ 62,1,0,120,267,0,1,99,1,1.8,1,2,3,0
911
+ 50,1,0,144,200,0,0,126,1,0.9,1,0,3,0
912
+ 50,1,2,140,233,0,1,163,0,0.6,1,1,3,0
913
+ 58,0,1,136,319,1,0,152,0,0,2,2,2,0
914
+ 35,1,0,120,198,0,1,130,1,1.6,1,0,3,0
915
+ 45,1,0,104,208,0,0,148,1,3,1,0,2,1
916
+ 66,1,0,112,212,0,0,132,1,0.1,2,1,2,0
917
+ 46,1,0,120,249,0,0,144,0,0.8,2,0,3,0
918
+ 65,1,0,135,254,0,0,127,0,2.8,1,1,3,0
919
+ 47,1,2,130,253,0,1,179,0,0,2,0,2,1
920
+ 59,1,3,134,204,0,1,162,0,0.8,2,2,2,0
921
+ 38,1,3,120,231,0,1,182,1,3.8,1,0,3,0
922
+ 39,1,0,118,219,0,1,140,0,1.2,1,0,3,0
923
+ 58,1,0,146,218,0,1,105,0,2,1,1,3,0
924
+ 44,1,1,120,263,0,1,173,0,0,2,0,3,1
925
+ 54,1,0,140,239,0,1,160,0,1.2,2,0,2,1
926
+ 61,0,0,130,330,0,0,169,0,0,2,0,2,0
927
+ 57,1,0,130,131,0,1,115,1,1.2,1,1,3,0
928
+ 54,1,0,110,206,0,0,108,1,0,1,1,2,0
929
+ 42,1,2,120,240,1,1,194,0,0.8,0,0,3,1
930
+ 54,1,0,124,266,0,0,109,1,2.2,1,1,3,0
931
+ 60,1,0,130,206,0,0,132,1,2.4,1,2,3,0
932
+ 65,1,0,135,254,0,0,127,0,2.8,1,1,3,0
933
+ 40,1,0,152,223,0,1,181,0,0,2,0,3,0
934
+ 51,0,2,140,308,0,0,142,0,1.5,2,1,2,1
935
+ 38,1,3,120,231,0,1,182,1,3.8,1,0,3,0
936
+ 42,1,2,130,180,0,1,150,0,0,2,0,2,1
937
+ 56,1,1,120,240,0,1,169,0,0,0,0,2,1
938
+ 43,1,2,130,315,0,1,162,0,1.9,2,1,2,1
939
+ 64,1,2,140,335,0,1,158,0,0,2,0,2,0
940
+ 53,1,0,142,226,0,0,111,1,0,2,0,3,1
941
+ 49,0,1,134,271,0,1,162,0,0,1,0,2,1
942
+ 57,0,0,140,241,0,1,123,1,0.2,1,0,3,0
943
+ 52,0,2,136,196,0,0,169,0,0.1,1,0,2,1
944
+ 69,0,3,140,239,0,1,151,0,1.8,2,2,2,1
945
+ 65,1,0,120,177,0,1,140,0,0.4,2,0,3,1
946
+ 66,0,0,178,228,1,1,165,1,1,1,2,3,0
947
+ 56,1,3,120,193,0,0,162,0,1.9,1,0,3,1
948
+ 67,0,2,152,277,0,1,172,0,0,2,1,2,1
949
+ 54,0,2,160,201,0,1,163,0,0,2,1,2,1
950
+ 70,1,0,145,174,0,1,125,1,2.6,0,0,3,0
951
+ 57,1,0,132,207,0,1,168,1,0,2,0,3,1
952
+ 67,1,0,160,286,0,0,108,1,1.5,1,3,2,0
953
+ 62,0,2,130,263,0,1,97,0,1.2,1,1,3,0
954
+ 54,0,2,135,304,1,1,170,0,0,2,0,2,1
955
+ 45,0,0,138,236,0,0,152,1,0.2,1,0,2,1
956
+ 53,0,0,130,264,0,0,143,0,0.4,1,0,2,1
957
+ 62,1,2,130,231,0,1,146,0,1.8,1,3,3,1
958
+ 49,0,0,130,269,0,1,163,0,0,2,0,2,1
959
+ 50,1,2,140,233,0,1,163,0,0.6,1,1,3,0
960
+ 65,0,2,140,417,1,0,157,0,0.8,2,1,2,1
961
+ 69,0,3,140,239,0,1,151,0,1.8,2,2,2,1
962
+ 52,0,2,136,196,0,0,169,0,0.1,1,0,2,1
963
+ 58,0,0,100,248,0,0,122,0,1,1,0,2,1
964
+ 52,1,0,108,233,1,1,147,0,0.1,2,3,3,1
965
+ 57,0,0,140,241,0,1,123,1,0.2,1,0,3,0
966
+ 44,0,2,108,141,0,1,175,0,0.6,1,0,2,1
967
+ 76,0,2,140,197,0,2,116,0,1.1,1,0,2,1
968
+ 58,1,0,128,259,0,0,130,1,3,1,2,3,0
969
+ 60,0,2,120,178,1,1,96,0,0,2,0,2,1
970
+ 53,1,0,140,203,1,0,155,1,3.1,0,0,3,0
971
+ 52,1,1,120,325,0,1,172,0,0.2,2,0,2,1
972
+ 38,1,2,138,175,0,1,173,0,0,2,4,2,1
973
+ 52,1,2,172,199,1,1,162,0,0.5,2,0,3,1
974
+ 52,1,3,118,186,0,0,190,0,0,1,0,1,1
975
+ 51,1,2,125,245,1,0,166,0,2.4,1,0,2,1
976
+ 43,1,0,110,211,0,1,161,0,0,2,0,3,1
977
+ 39,1,0,118,219,0,1,140,0,1.2,1,0,3,0
978
+ 63,0,0,108,269,0,1,169,1,1.8,1,2,2,0
979
+ 52,1,1,128,205,1,1,184,0,0,2,0,2,1
980
+ 44,1,0,110,197,0,0,177,0,0,2,1,2,0
981
+ 45,1,0,142,309,0,0,147,1,0,1,3,3,0
982
+ 57,1,0,140,192,0,1,148,0,0.4,1,0,1,1
983
+ 39,1,0,118,219,0,1,140,0,1.2,1,0,3,0
984
+ 67,0,0,106,223,0,1,142,0,0.3,2,2,2,1
985
+ 64,1,0,128,263,0,1,105,1,0.2,1,1,3,1
986
+ 59,1,0,135,234,0,1,161,0,0.5,1,0,3,1
987
+ 62,1,2,130,231,0,1,146,0,1.8,1,3,3,1
988
+ 55,0,0,180,327,0,2,117,1,3.4,1,0,2,0
989
+ 57,1,1,154,232,0,0,164,0,0,2,1,2,0
990
+ 60,1,0,140,293,0,0,170,0,1.2,1,2,3,0
991
+ 71,0,1,160,302,0,1,162,0,0.4,2,2,2,1
992
+ 56,1,1,120,236,0,1,178,0,0.8,2,0,2,1
993
+ 60,1,0,117,230,1,1,160,1,1.4,2,2,3,0
994
+ 50,0,0,110,254,0,0,159,0,0,2,0,2,1
995
+ 43,1,0,132,247,1,0,143,1,0.1,1,4,3,0
996
+ 59,1,0,110,239,0,0,142,1,1.2,1,1,3,0
997
+ 44,1,1,120,263,0,1,173,0,0,2,0,3,1
998
+ 56,0,0,134,409,0,0,150,1,1.9,1,2,3,0
999
+ 54,1,0,120,188,0,1,113,0,1.4,1,1,3,0
1000
+ 42,1,0,136,315,0,1,125,1,1.8,1,0,1,0
1001
+ 67,1,0,125,254,1,1,163,0,0.2,1,2,3,0
1002
+ 64,1,0,145,212,0,0,132,0,2,1,2,1,0
1003
+ 42,1,0,140,226,0,1,178,0,0,2,0,2,1
1004
+ 66,1,0,112,212,0,0,132,1,0.1,2,1,2,0
1005
+ 52,1,0,108,233,1,1,147,0,0.1,2,3,3,1
1006
+ 51,0,2,140,308,0,0,142,0,1.5,2,1,2,1
1007
+ 55,0,0,128,205,0,2,130,1,2,1,1,3,0
1008
+ 58,1,2,140,211,1,0,165,0,0,2,0,2,1
1009
+ 56,1,3,120,193,0,0,162,0,1.9,1,0,3,1
1010
+ 42,1,1,120,295,0,1,162,0,0,2,0,2,1
1011
+ 40,1,0,152,223,0,1,181,0,0,2,0,3,0
1012
+ 51,1,0,140,299,0,1,173,1,1.6,2,0,3,0
1013
+ 45,1,1,128,308,0,0,170,0,0,2,0,2,1
1014
+ 48,1,1,110,229,0,1,168,0,1,0,0,3,0
1015
+ 58,1,0,114,318,0,2,140,0,4.4,0,3,1,0
1016
+ 44,0,2,108,141,0,1,175,0,0.6,1,0,2,1
1017
+ 58,1,0,128,216,0,0,131,1,2.2,1,3,3,0
1018
+ 65,1,3,138,282,1,0,174,0,1.4,1,1,2,0
1019
+ 53,1,0,123,282,0,1,95,1,2,1,2,3,0
1020
+ 41,1,0,110,172,0,0,158,0,0,2,0,3,0
1021
+ 47,1,0,112,204,0,1,143,0,0.1,2,0,2,1
1022
+ 59,1,1,140,221,0,1,164,1,0,2,0,2,1
1023
+ 60,1,0,125,258,0,0,141,1,2.8,1,1,3,0
1024
+ 47,1,0,110,275,0,0,118,1,1,1,1,2,0
1025
+ 50,0,0,110,254,0,0,159,0,0,2,0,2,1
1026
+ 54,1,0,120,188,0,1,113,0,1.4,1,1,3,0
heart_model.keras ADDED
Binary file (32.4 kB). View file
 
model.py ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import tensorflow as tf
2
+
3
+ def create_model(input_shape=8):
4
+ # neural network for binary classification
5
+ model = tf.keras.Sequential([
6
+ tf.keras.layers.Input(shape=(input_shape,)),
7
+ tf.keras.layers.Dense(64, activation='relu'),
8
+ tf.keras.layers.Dense(32, activation='relu'),
9
+ tf.keras.layers.Dense(1, activation='sigmoid')
10
+ ])
11
+ model.compile(
12
+ optimizer='adam',
13
+ loss='binary_crossentropy',
14
+ metrics=['accuracy']
15
+ )
16
+ return model
requirements.txt ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ flask==3.1.2
2
+ flwr==1.23.0
3
+ tensorflow==2.19.1
4
+ numpy==2.0.2
5
+ matplotlib==3.9.4
6
+ pandas==2.3.3
7
+ werkzeug==3.1.5
8
+ gunicorn
results.py ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import matplotlib.pyplot as plt
2
+
3
+ rounds = [0, 1, 2, 3]
4
+ loss = [2.29585599899292, 0.6346262693405151, 0.4165417551994324, 0.34342074394226074]
5
+ accuracy = [0.12729999423027039, 0.826200008392334, 0.8719000220298767, 0.8988999724388123]
6
+
7
+ fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(12, 5))
8
+
9
+ # loss chart
10
+ ax1.plot(rounds, loss, marker='o', color='steelblue', linewidth=2)
11
+ ax1.set_title('Loss per Round')
12
+ ax1.set_xlabel('Round')
13
+ ax1.set_ylabel('Loss')
14
+ ax1.set_xticks(rounds)
15
+ ax1.grid(True)
16
+
17
+ # accuracy chart
18
+ ax2.plot(rounds, accuracy, marker='o', color='green', linewidth=2)
19
+ ax2.set_title('Accuracy per Round')
20
+ ax2.set_xlabel('Round')
21
+ ax2.set_ylabel('Accuracy')
22
+ ax2.set_xticks(rounds)
23
+ ax2.grid(True)
24
+
25
+ plt.suptitle('PrivaMed - Federated Learning Results')
26
+ plt.tight_layout()
27
+ plt.savefig('results.png')
28
+ plt.show()
29
+ print("Chart saved as results.png")
server.py ADDED
@@ -0,0 +1,73 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import flwr as fl
2
+ import numpy as np
3
+ import json
4
+ import pandas as pd
5
+ from model import create_model
6
+ import sys
7
+
8
+ results_log = []
9
+
10
+
11
+ def get_evaluate_fn(file_path):
12
+ data = pd.read_csv(file_path)
13
+ X = data.iloc[:, :-1].values
14
+ y = data.iloc[:, -1].values
15
+ X = (X - X.mean(axis=0)) / (X.std(axis=0) + 1e-8)
16
+ split = int(len(X) * 0.8)
17
+ X_test, y_test = X[split:], y[split:]
18
+ input_shape = X.shape[1]
19
+
20
+ # determine model name from file
21
+ if "diabetes" in file_path:
22
+ model_name = "diabetes_model.keras"
23
+ elif "heart" in file_path:
24
+ model_name = "heart_model.keras"
25
+ else:
26
+ model_name = "global_model.keras"
27
+
28
+ def evaluate(server_round, parameters, config):
29
+ model = create_model(input_shape=input_shape)
30
+ model.set_weights(parameters)
31
+ loss, accuracy = model.evaluate(X_test, y_test, verbose=0)
32
+
33
+ results_log.append({
34
+ "round": server_round,
35
+ "loss": round(loss, 4),
36
+ "accuracy": round(accuracy, 4)
37
+ })
38
+ with open("training_results.json", "w") as f:
39
+ json.dump(results_log, f)
40
+
41
+ if server_round == 3:
42
+ model.save(model_name)
43
+ print(f"Model saved as {model_name}")
44
+
45
+ return loss, {"accuracy": accuracy}
46
+
47
+ return evaluate
48
+
49
+
50
+ def main(file_path="diabetes.csv"):
51
+ global results_log
52
+ results_log = []
53
+
54
+ with open("training_results.json", "w") as f:
55
+ json.dump([], f)
56
+
57
+ strategy = fl.server.strategy.FedAvg(
58
+ min_fit_clients=2,
59
+ min_evaluate_clients=2,
60
+ min_available_clients=2,
61
+ evaluate_fn=get_evaluate_fn(file_path),
62
+ )
63
+
64
+ fl.server.start_server(
65
+ server_address="localhost:8080",
66
+ config=fl.server.ServerConfig(num_rounds=3),
67
+ strategy=strategy,
68
+ )
69
+
70
+
71
+ if __name__ == "__main__":
72
+ file_path = sys.argv[1] if len(sys.argv) > 1 else "diabetes.csv"
73
+ main(file_path)
templates/index.html ADDED
@@ -0,0 +1,205 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>PrivaMed - Dashboard</title>
7
+ <script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
8
+ <style>
9
+ * { margin: 0; padding: 0; box-sizing: border-box; }
10
+ body { font-family: 'Segoe UI', sans-serif; background: #0f172a; color: #e2e8f0; }
11
+ header { background: #1e293b; padding: 20px 40px; border-bottom: 1px solid #334155; display: flex; justify-content: space-between; align-items: center; }
12
+ header h1 { color: #38bdf8; font-size: 24px; }
13
+ header div { display: flex; gap: 16px; }
14
+ header a { color: #94a3b8; font-size: 14px; text-decoration: none; }
15
+ header a:hover { color: #38bdf8; }
16
+ .container { max-width: 1100px; margin: 40px auto; padding: 0 20px; }
17
+ .cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-bottom: 30px; }
18
+ .card { background: #1e293b; border-radius: 12px; padding: 24px; border: 1px solid #334155; }
19
+ .card h3 { color: #94a3b8; font-size: 13px; margin-bottom: 8px; }
20
+ .card .value { font-size: 28px; font-weight: bold; color: #38bdf8; }
21
+ .hospitals { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; margin-bottom: 30px; }
22
+ .hospital { background: #1e293b; border-radius: 12px; padding: 20px; border: 1px solid #334155; }
23
+ .hospital h3 { font-size: 15px; margin-bottom: 8px; }
24
+ .badge { display: inline-block; padding: 4px 10px; border-radius: 20px; font-size: 12px; }
25
+ .badge.idle { background: #334155; color: #94a3b8; }
26
+ .badge.training { background: #0c4a6e; color: #38bdf8; }
27
+ .badge.done { background: #064e3b; color: #34d399; }
28
+ .btn { background: #38bdf8; color: #0f172a; border: none; padding: 14px 32px; border-radius: 8px; font-size: 15px; font-weight: bold; cursor: pointer; }
29
+ .btn:hover { background: #7dd3fc; }
30
+ .btn:disabled { background: #334155; color: #64748b; cursor: not-allowed; }
31
+ .upload-box { background: #1e293b; border-radius: 12px; padding: 24px; border: 2px dashed #334155; margin-bottom: 30px; text-align: center; }
32
+ .upload-box h3 { color: #94a3b8; font-size: 14px; margin-bottom: 12px; }
33
+ .upload-box input { display: none; }
34
+ .upload-label { display: inline-block; padding: 10px 24px; background: #334155; border-radius: 8px; cursor: pointer; font-size: 14px; color: #e2e8f0; }
35
+ .upload-label:hover { background: #475569; }
36
+ .file-name { margin-top: 10px; font-size: 13px; color: #38bdf8; }
37
+ .rounds { background: #1e293b; border-radius: 12px; padding: 24px; border: 1px solid #334155; margin-bottom: 30px; }
38
+ .rounds h2 { margin-bottom: 16px; font-size: 16px; color: #94a3b8; }
39
+ .round-row { display: flex; justify-content: space-between; padding: 12px 0; border-bottom: 1px solid #334155; font-size: 14px; }
40
+ .round-row:last-child { border-bottom: none; }
41
+ .status-bar { background: #1e293b; border-radius: 12px; padding: 20px 24px; border: 1px solid #334155; margin-bottom: 30px; display: flex; align-items: center; justify-content: space-between; }
42
+ .dot { width: 10px; height: 10px; border-radius: 50%; background: #334155; margin-right: 10px; display: inline-block; }
43
+ .dot.active { background: #38bdf8; animation: pulse 1s infinite; }
44
+ @keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.3; } }
45
+ .charts { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; margin-bottom: 30px; }
46
+ .chart-box { background: #1e293b; border-radius: 12px; padding: 24px; border: 1px solid #334155; }
47
+ .chart-box h3 { color: #94a3b8; font-size: 14px; margin-bottom: 16px; }
48
+ </style>
49
+ </head>
50
+ <body>
51
+ <header>
52
+ <h1>PrivaMed</h1>
53
+ <div>
54
+ <a href="/predict">Predict Risk</a>
55
+ <a href="/">Back to Home</a>
56
+ </div>
57
+ </header>
58
+ <div class="container">
59
+ <div class="cards">
60
+ <div class="card">
61
+ <h3>HOSPITALS CONNECTED</h3>
62
+ <div class="value">2</div>
63
+ </div>
64
+ <div class="card">
65
+ <h3>BEST ACCURACY</h3>
66
+ <div class="value" id="bestAccuracy">—</div>
67
+ </div>
68
+ <div class="card">
69
+ <h3>ROUNDS COMPLETED</h3>
70
+ <div class="value" id="roundsCount">0</div>
71
+ </div>
72
+ </div>
73
+ <div class="upload-box">
74
+ <h3>Upload your hospital dataset (CSV) or use default Diabetes dataset</h3>
75
+ <label class="upload-label" for="csvFile">Choose CSV File</label>
76
+ <input type="file" id="csvFile" accept=".csv" onchange="showFileName()">
77
+ <div class="file-name" id="fileName">Using default: diabetes.csv</div>
78
+ </div>
79
+ <div class="status-bar">
80
+ <div style="display:flex; align-items:center;">
81
+ <span class="dot" id="statusDot"></span>
82
+ <span id="statusText" style="margin-left:10px;">Ready to train</span>
83
+ </div>
84
+ <button class="btn" id="trainBtn" onclick="startTraining()">Start Federated Training</button>
85
+ </div>
86
+ <div class="hospitals">
87
+ <div class="hospital">
88
+ <h3>Hospital A</h3>
89
+ <p style="color:#64748b; font-size:13px; margin-bottom:10px;">Local data — never shared</p>
90
+ <span class="badge idle" id="h0badge">Idle</span>
91
+ </div>
92
+ <div class="hospital">
93
+ <h3>Hospital B</h3>
94
+ <p style="color:#64748b; font-size:13px; margin-bottom:10px;">Local data — never shared</p>
95
+ <span class="badge idle" id="h1badge">Idle</span>
96
+ </div>
97
+ </div>
98
+ <div class="charts">
99
+ <div class="chart-box">
100
+ <h3>Loss per Round</h3>
101
+ <canvas id="lossChart"></canvas>
102
+ </div>
103
+ <div class="chart-box">
104
+ <h3>Accuracy per Round</h3>
105
+ <canvas id="accuracyChart"></canvas>
106
+ </div>
107
+ </div>
108
+ <div class="rounds">
109
+ <h2>Training Rounds</h2>
110
+ <div id="roundsTable">
111
+ <p style="color:#475569; font-size:14px;">No training data yet.</p>
112
+ </div>
113
+ </div>
114
+ </div>
115
+ <script>
116
+ let polling = null;
117
+ let lossChart = null;
118
+ let accuracyChart = null;
119
+
120
+ function showFileName() {
121
+ const file = document.getElementById('csvFile').files[0];
122
+ if (file) document.getElementById('fileName').textContent = 'Selected: ' + file.name;
123
+ }
124
+
125
+ function initCharts() {
126
+ lossChart = new Chart(document.getElementById('lossChart'), {
127
+ type: 'line',
128
+ data: { labels: [], datasets: [{ label: 'Loss', data: [], borderColor: '#38bdf8', backgroundColor: 'rgba(56,189,248,0.1)', tension: 0.3, fill: true }] },
129
+ options: { plugins: { legend: { display: false } }, scales: { x: { ticks: { color: '#94a3b8' }, grid: { color: '#1e293b' } }, y: { ticks: { color: '#94a3b8' }, grid: { color: '#334155' } } } }
130
+ });
131
+ accuracyChart = new Chart(document.getElementById('accuracyChart'), {
132
+ type: 'line',
133
+ data: { labels: [], datasets: [{ label: 'Accuracy', data: [], borderColor: '#34d399', backgroundColor: 'rgba(52,211,153,0.1)', tension: 0.3, fill: true }] },
134
+ options: { plugins: { legend: { display: false } }, scales: { x: { ticks: { color: '#94a3b8' }, grid: { color: '#1e293b' } }, y: { ticks: { color: '#94a3b8' }, grid: { color: '#334155' } } } }
135
+ });
136
+ }
137
+
138
+ function startTraining() {
139
+ const formData = new FormData();
140
+ const fileInput = document.getElementById('csvFile');
141
+ if (fileInput.files.length > 0) formData.append('file', fileInput.files[0]);
142
+ fetch('/start_training', { method: 'POST', body: formData }).then(() => {
143
+ document.getElementById('trainBtn').disabled = true;
144
+ document.getElementById('trainBtn').textContent = 'Training...';
145
+ document.getElementById('statusDot').classList.add('active');
146
+ document.getElementById('statusText').textContent = 'Training in progress...';
147
+ document.getElementById('h0badge').className = 'badge training';
148
+ document.getElementById('h0badge').textContent = 'Training';
149
+ document.getElementById('h1badge').className = 'badge training';
150
+ document.getElementById('h1badge').textContent = 'Training';
151
+ document.getElementById('roundsTable').innerHTML = '';
152
+ lossChart.data.labels = []; lossChart.data.datasets[0].data = []; lossChart.update();
153
+ accuracyChart.data.labels = []; accuracyChart.data.datasets[0].data = []; accuracyChart.update();
154
+ polling = setInterval(pollStatus, 3000);
155
+ });
156
+ }
157
+
158
+ function pollStatus() {
159
+ fetch('/status').then(r => r.json()).then(data => {
160
+ if (data.rounds.length > 0) {
161
+ updateRoundsTable(data.rounds);
162
+ updateCharts(data.rounds);
163
+ const last = data.rounds[data.rounds.length - 1];
164
+ document.getElementById('roundsCount').textContent = last.round;
165
+ document.getElementById('bestAccuracy').textContent = (last.accuracy * 100).toFixed(1) + '%';
166
+ }
167
+ if (data.finished) {
168
+ clearInterval(polling);
169
+ document.getElementById('statusDot').classList.remove('active');
170
+ document.getElementById('statusText').textContent = 'Training complete';
171
+ document.getElementById('h0badge').className = 'badge done';
172
+ document.getElementById('h0badge').textContent = 'Done';
173
+ document.getElementById('h1badge').className = 'badge done';
174
+ document.getElementById('h1badge').textContent = 'Done';
175
+ document.getElementById('trainBtn').disabled = false;
176
+ document.getElementById('trainBtn').textContent = 'Train Again';
177
+ }
178
+ });
179
+ }
180
+
181
+ function updateCharts(rounds) {
182
+ const labels = rounds.map(r => 'Round ' + r.round);
183
+ lossChart.data.labels = labels;
184
+ lossChart.data.datasets[0].data = rounds.map(r => r.loss);
185
+ lossChart.update();
186
+ accuracyChart.data.labels = labels;
187
+ accuracyChart.data.datasets[0].data = rounds.map(r => (r.accuracy * 100).toFixed(1));
188
+ accuracyChart.update();
189
+ }
190
+
191
+ function updateRoundsTable(rounds) {
192
+ const table = document.getElementById('roundsTable');
193
+ table.innerHTML = '';
194
+ rounds.forEach(r => {
195
+ const row = document.createElement('div');
196
+ row.className = 'round-row';
197
+ row.innerHTML = `<span>Round ${r.round}</span><span>Loss: ${r.loss}</span><span style="color:#34d399">Accuracy: ${(r.accuracy * 100).toFixed(1)}%</span>`;
198
+ table.appendChild(row);
199
+ });
200
+ }
201
+
202
+ initCharts();
203
+ </script>
204
+ </body>
205
+ </html>
templates/landing.html ADDED
@@ -0,0 +1,115 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>PrivaMed - Federated Learning for Hospitals</title>
7
+ <style>
8
+ * { margin: 0; padding: 0; box-sizing: border-box; }
9
+ body { font-family: 'Segoe UI', sans-serif; background: #0f172a; color: #e2e8f0; }
10
+ nav { background: #1e293b; padding: 20px 60px; display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid #334155; }
11
+ nav h1 { color: #38bdf8; font-size: 22px; }
12
+ nav div { display: flex; gap: 10px; }
13
+ nav a { color: #0f172a; background: #38bdf8; padding: 10px 24px; border-radius: 8px; font-weight: bold; font-size: 14px; text-decoration: none; }
14
+ nav a.secondary { background: #334155; color: #e2e8f0; }
15
+ .hero { text-align: center; padding: 100px 20px 80px; }
16
+ .hero h2 { font-size: 48px; font-weight: bold; line-height: 1.2; margin-bottom: 20px; }
17
+ .hero h2 span { color: #38bdf8; }
18
+ .hero p { font-size: 18px; color: #94a3b8; max-width: 600px; margin: 0 auto 40px; line-height: 1.7; }
19
+ .hero a { background: #38bdf8; color: #0f172a; padding: 16px 40px; border-radius: 10px; font-size: 16px; font-weight: bold; text-decoration: none; }
20
+ .problem { background: #1e293b; padding: 80px 60px; text-align: center; }
21
+ .problem h2 { font-size: 32px; margin-bottom: 16px; }
22
+ .problem p { color: #94a3b8; font-size: 16px; max-width: 650px; margin: 0 auto; line-height: 1.7; }
23
+ .steps { padding: 80px 60px; max-width: 1000px; margin: 0 auto; }
24
+ .steps h2 { font-size: 32px; text-align: center; margin-bottom: 50px; }
25
+ .steps-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; }
26
+ .step { background: #1e293b; border-radius: 12px; padding: 30px; border: 1px solid #334155; text-align: center; }
27
+ .step .number { font-size: 36px; font-weight: bold; color: #38bdf8; margin-bottom: 16px; }
28
+ .step h3 { font-size: 18px; margin-bottom: 10px; }
29
+ .step p { color: #94a3b8; font-size: 14px; line-height: 1.6; }
30
+ .benefits { background: #1e293b; padding: 80px 60px; }
31
+ .benefits h2 { font-size: 32px; text-align: center; margin-bottom: 50px; }
32
+ .benefits-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; max-width: 900px; margin: 0 auto; }
33
+ .benefit { background: #0f172a; border-radius: 12px; padding: 24px; border: 1px solid #334155; }
34
+ .benefit h3 { color: #38bdf8; font-size: 16px; margin-bottom: 8px; }
35
+ .benefit p { color: #94a3b8; font-size: 14px; line-height: 1.6; }
36
+ .cta { text-align: center; padding: 80px 20px; }
37
+ .cta h2 { font-size: 36px; margin-bottom: 16px; }
38
+ .cta p { color: #94a3b8; font-size: 16px; margin-bottom: 40px; }
39
+ .cta a { background: #38bdf8; color: #0f172a; padding: 16px 40px; border-radius: 10px; font-size: 16px; font-weight: bold; text-decoration: none; }
40
+ footer { background: #1e293b; padding: 30px 60px; text-align: center; color: #475569; font-size: 13px; border-top: 1px solid #334155; line-height: 2; }
41
+ footer a { color: #38bdf8; text-decoration: none; }
42
+ footer a:hover { color: #7dd3fc; }
43
+ </style>
44
+ </head>
45
+ <body>
46
+ <nav>
47
+ <h1>PrivaMed</h1>
48
+ <div>
49
+ <a href="/predict" class="secondary">Predict Risk</a>
50
+ <a href="/dashboard">Try Demo</a>
51
+ </div>
52
+ </nav>
53
+ <div class="hero">
54
+ <h2>Train AI Together.<br><span>Share Nothing.</span></h2>
55
+ <p>PrivaMed lets hospitals collaborate to build powerful medical AI models without ever sharing patient data. Privacy guaranteed.</p>
56
+ <a href="/dashboard">See It In Action</a>
57
+ </div>
58
+ <div class="problem">
59
+ <h2>The Problem with Medical AI Today</h2>
60
+ <p>Building accurate AI models requires large datasets. But hospitals can't share patient data due to privacy laws like HIPAA and GDPR. This means each hospital trains on limited data — and gets limited results.</p>
61
+ </div>
62
+ <div class="steps">
63
+ <h2>How PrivaMed Works</h2>
64
+ <div class="steps-grid">
65
+ <div class="step">
66
+ <div class="number">1</div>
67
+ <h3>Each Hospital Trains Locally</h3>
68
+ <p>Your data never leaves your servers. The AI model trains directly on your local dataset.</p>
69
+ </div>
70
+ <div class="step">
71
+ <div class="number">2</div>
72
+ <h3>Only Weights Are Shared</h3>
73
+ <p>Instead of data, only the model's learned parameters are sent to the central server.</p>
74
+ </div>
75
+ <div class="step">
76
+ <div class="number">3</div>
77
+ <h3>Everyone Gets a Better Model</h3>
78
+ <p>The server combines all weights using FedAvg. Every hospital receives a stronger global model.</p>
79
+ </div>
80
+ </div>
81
+ </div>
82
+ <div class="benefits">
83
+ <h2>Why Hospitals Choose PrivaMed</h2>
84
+ <div class="benefits-grid">
85
+ <div class="benefit">
86
+ <h3>Patient Privacy Protected</h3>
87
+ <p>Raw patient data is never transmitted or stored outside your hospital's infrastructure.</p>
88
+ </div>
89
+ <div class="benefit">
90
+ <h3>Better AI with More Data</h3>
91
+ <p>Collaborate with other hospitals to train on larger, more diverse datasets without sharing them.</p>
92
+ </div>
93
+ <div class="benefit">
94
+ <h3>HIPAA & GDPR Compliant</h3>
95
+ <p>Designed from the ground up with privacy regulations in mind.</p>
96
+ </div>
97
+ <div class="benefit">
98
+ <h3>Works with Your Data</h3>
99
+ <p>Upload any CSV medical dataset and start training immediately. No complex setup required.</p>
100
+ </div>
101
+ </div>
102
+ </div>
103
+ <div class="cta">
104
+ <h2>Ready to See It Work?</h2>
105
+ <p>Upload your dataset and watch federated learning in action.</p>
106
+ <a href="/dashboard">Try the Demo</a>
107
+ </div>
108
+ <footer>
109
+ PrivaMed — Federated Learning System — Train Together, Share Nothing<br>
110
+ © 2026 Nour Maaita. All rights reserved.<br>
111
+ <a href="https://github.com/nmaaitallh">GitHub</a> &nbsp;|&nbsp;
112
+ <a href="https://www.linkedin.com/in/nour-maaita-197733243/">LinkedIn</a>
113
+ </footer>
114
+ </body>
115
+ </html>
templates/predict.html ADDED
@@ -0,0 +1,247 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>PrivaMed - Medical Risk Prediction</title>
7
+ <style>
8
+ * { margin: 0; padding: 0; box-sizing: border-box; }
9
+ body { font-family: 'Segoe UI', sans-serif; background: #0f172a; color: #e2e8f0; }
10
+ header { background: #1e293b; padding: 20px 40px; border-bottom: 1px solid #334155; display: flex; justify-content: space-between; align-items: center; }
11
+ header h1 { color: #38bdf8; font-size: 24px; }
12
+ header a { color: #94a3b8; font-size: 14px; text-decoration: none; }
13
+ header a:hover { color: #38bdf8; }
14
+ .container { max-width: 700px; margin: 40px auto; padding: 0 20px; }
15
+ h2 { font-size: 22px; margin-bottom: 8px; }
16
+ .subtitle { color: #94a3b8; font-size: 14px; margin-bottom: 30px; }
17
+ .diagnosis-select { background: #1e293b; border-radius: 12px; padding: 20px; border: 1px solid #334155; margin-bottom: 20px; }
18
+ .diagnosis-select label { display: block; font-size: 13px; color: #94a3b8; margin-bottom: 8px; }
19
+ .diagnosis-select select { width: 100%; background: #0f172a; border: 1px solid #334155; border-radius: 8px; padding: 12px 14px; color: #e2e8f0; font-size: 14px; }
20
+ .diagnosis-select select:focus { outline: none; border-color: #38bdf8; }
21
+ .form-box { background: #1e293b; border-radius: 12px; padding: 30px; border: 1px solid #334155; }
22
+ .form-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; }
23
+ .field label { display: block; font-size: 13px; color: #94a3b8; margin-bottom: 6px; }
24
+ .field input, .field select { width: 100%; background: #0f172a; border: 1px solid #334155; border-radius: 8px; padding: 10px 14px; color: #e2e8f0; font-size: 14px; }
25
+ .field input:focus, .field select:focus { outline: none; border-color: #38bdf8; }
26
+ .btn { width: 100%; margin-top: 24px; background: #38bdf8; color: #0f172a; border: none; padding: 14px; border-radius: 8px; font-size: 15px; font-weight: bold; cursor: pointer; }
27
+ .btn:hover { background: #7dd3fc; }
28
+ .result { margin-top: 30px; background: #1e293b; border-radius: 12px; padding: 30px; border: 1px solid #334155; text-align: center; display: none; }
29
+ .result .risk { font-size: 36px; font-weight: bold; margin-bottom: 8px; }
30
+ .result .risk.high { color: #f87171; }
31
+ .result .risk.low { color: #34d399; }
32
+ .result .prob { color: #94a3b8; font-size: 15px; }
33
+ .result .confidence { font-size: 18px; margin-top: 8px; }
34
+ .coming-soon { background: #1e293b; border-radius: 12px; padding: 60px 30px; border: 1px solid #334155; text-align: center; display: none; }
35
+ .coming-soon h3 { font-size: 24px; color: #94a3b8; margin-bottom: 12px; }
36
+ .coming-soon p { color: #64748b; font-size: 14px; }
37
+ </style>
38
+ </head>
39
+ <body>
40
+ <header>
41
+ <h1>PrivaMed</h1>
42
+ <a href="/dashboard">Back to Dashboard</a>
43
+ </header>
44
+
45
+ <div class="container">
46
+ <h2>Medical Risk Prediction</h2>
47
+ <p class="subtitle">Select diagnosis type and enter patient data to get an instant prediction.</p>
48
+
49
+ <div class="diagnosis-select">
50
+ <label>Select Diagnosis Type</label>
51
+ <select id="diagnosisType" onchange="switchDiagnosis()">
52
+ <option value="diabetes">Diabetes Risk Assessment</option>
53
+ <option value="heart">Heart Disease Risk Assessment</option>
54
+ <option value="cancer">Cancer Screening (Coming Soon)</option>
55
+ </select>
56
+ </div>
57
+
58
+ <div class="form-box" id="diabetesForm">
59
+ <div class="form-grid">
60
+ <div class="field">
61
+ <label>Pregnancies</label>
62
+ <input type="number" id="pregnancies" placeholder="e.g. 2" min="0">
63
+ </div>
64
+ <div class="field">
65
+ <label>Glucose (mg/dL)</label>
66
+ <input type="number" id="glucose" placeholder="e.g. 120" min="0">
67
+ </div>
68
+ <div class="field">
69
+ <label>Blood Pressure (mmHg)</label>
70
+ <input type="number" id="blood_pressure" placeholder="e.g. 70" min="0">
71
+ </div>
72
+ <div class="field">
73
+ <label>Skin Thickness (mm)</label>
74
+ <input type="number" id="skin_thickness" placeholder="e.g. 20" min="0">
75
+ </div>
76
+ <div class="field">
77
+ <label>Insulin (μU/mL)</label>
78
+ <input type="number" id="insulin" placeholder="e.g. 80" min="0">
79
+ </div>
80
+ <div class="field">
81
+ <label>BMI</label>
82
+ <input type="number" id="bmi" placeholder="e.g. 28.5" step="0.1" min="0">
83
+ </div>
84
+ <div class="field">
85
+ <label>Diabetes Pedigree</label>
86
+ <input type="number" id="diabetes_pedigree" placeholder="e.g. 0.5" step="0.01" min="0">
87
+ </div>
88
+ <div class="field">
89
+ <label>Age</label>
90
+ <input type="number" id="d_age" placeholder="e.g. 35" min="0">
91
+ </div>
92
+ </div>
93
+ <button class="btn" onclick="predict()">Predict Risk</button>
94
+ </div>
95
+
96
+ <div class="form-box" id="heartForm" style="display:none;">
97
+ <div class="form-grid">
98
+ <div class="field">
99
+ <label>Age</label>
100
+ <input type="number" id="h_age" placeholder="e.g. 55" min="0">
101
+ </div>
102
+ <div class="field">
103
+ <label>Sex</label>
104
+ <select id="sex">
105
+ <option value="1">Male</option>
106
+ <option value="0">Female</option>
107
+ </select>
108
+ </div>
109
+ <div class="field">
110
+ <label>Chest Pain Type (0-3)</label>
111
+ <input type="number" id="cp" placeholder="0-3" min="0" max="3">
112
+ </div>
113
+ <div class="field">
114
+ <label>Resting BP (mmHg)</label>
115
+ <input type="number" id="trestbps" placeholder="e.g. 130" min="0">
116
+ </div>
117
+ <div class="field">
118
+ <label>Cholesterol (mg/dL)</label>
119
+ <input type="number" id="chol" placeholder="e.g. 250" min="0">
120
+ </div>
121
+ <div class="field">
122
+ <label>Fasting Blood Sugar > 120</label>
123
+ <select id="fbs">
124
+ <option value="0">No</option>
125
+ <option value="1">Yes</option>
126
+ </select>
127
+ </div>
128
+ <div class="field">
129
+ <label>Resting ECG (0-2)</label>
130
+ <input type="number" id="restecg" placeholder="0-2" min="0" max="2">
131
+ </div>
132
+ <div class="field">
133
+ <label>Max Heart Rate</label>
134
+ <input type="number" id="thalach" placeholder="e.g. 150" min="0">
135
+ </div>
136
+ <div class="field">
137
+ <label>Exercise Induced Angina</label>
138
+ <select id="exang">
139
+ <option value="0">No</option>
140
+ <option value="1">Yes</option>
141
+ </select>
142
+ </div>
143
+ <div class="field">
144
+ <label>ST Depression</label>
145
+ <input type="number" id="oldpeak" placeholder="e.g. 2.3" step="0.1" min="0">
146
+ </div>
147
+ <div class="field">
148
+ <label>Slope (0-2)</label>
149
+ <input type="number" id="slope" placeholder="0-2" min="0" max="2">
150
+ </div>
151
+ <div class="field">
152
+ <label>Major Vessels (0-3)</label>
153
+ <input type="number" id="ca" placeholder="0-3" min="0" max="3">
154
+ </div>
155
+ <div class="field">
156
+ <label>Thalassemia (0-3)</label>
157
+ <input type="number" id="thal" placeholder="0-3" min="0" max="3">
158
+ </div>
159
+ </div>
160
+ <button class="btn" onclick="predict()">Predict Risk</button>
161
+ </div>
162
+
163
+ <div class="coming-soon" id="comingSoon">
164
+ <h3>Coming Soon</h3>
165
+ <p>This diagnosis type will be available in future updates as we train more federated models.</p>
166
+ </div>
167
+
168
+ <div class="result" id="result">
169
+ <div class="risk" id="riskLabel"></div>
170
+ <div class="confidence" id="confidenceLabel"></div>
171
+ <div class="prob" id="probLabel"></div>
172
+ </div>
173
+ </div>
174
+
175
+ <script>
176
+ function switchDiagnosis() {
177
+ const type = document.getElementById("diagnosisType").value;
178
+ const diabetesForm = document.getElementById("diabetesForm");
179
+ const heartForm = document.getElementById("heartForm");
180
+ const comingSoon = document.getElementById("comingSoon");
181
+ const result = document.getElementById("result");
182
+
183
+ result.style.display = "none";
184
+
185
+ if (type === "diabetes") {
186
+ diabetesForm.style.display = "block";
187
+ heartForm.style.display = "none";
188
+ comingSoon.style.display = "none";
189
+ } else if (type === "heart") {
190
+ diabetesForm.style.display = "none";
191
+ heartForm.style.display = "block";
192
+ comingSoon.style.display = "none";
193
+ } else {
194
+ diabetesForm.style.display = "none";
195
+ heartForm.style.display = "none";
196
+ comingSoon.style.display = "block";
197
+ }
198
+ }
199
+
200
+ function predict() {
201
+ const diagnosisType = document.getElementById("diagnosisType").value;
202
+ const data = new FormData();
203
+ data.append("diagnosis_type", diagnosisType);
204
+
205
+ if (diagnosisType === "diabetes") {
206
+ data.append("pregnancies", document.getElementById("pregnancies").value || 0);
207
+ data.append("glucose", document.getElementById("glucose").value || 0);
208
+ data.append("blood_pressure", document.getElementById("blood_pressure").value || 0);
209
+ data.append("skin_thickness", document.getElementById("skin_thickness").value || 0);
210
+ data.append("insulin", document.getElementById("insulin").value || 0);
211
+ data.append("bmi", document.getElementById("bmi").value || 0);
212
+ data.append("diabetes_pedigree", document.getElementById("diabetes_pedigree").value || 0);
213
+ data.append("age", document.getElementById("d_age").value || 0);
214
+ } else if (diagnosisType === "heart") {
215
+ data.append("age", document.getElementById("h_age").value || 0);
216
+ data.append("sex", document.getElementById("sex").value || 0);
217
+ data.append("cp", document.getElementById("cp").value || 0);
218
+ data.append("trestbps", document.getElementById("trestbps").value || 0);
219
+ data.append("chol", document.getElementById("chol").value || 0);
220
+ data.append("fbs", document.getElementById("fbs").value || 0);
221
+ data.append("restecg", document.getElementById("restecg").value || 0);
222
+ data.append("thalach", document.getElementById("thalach").value || 0);
223
+ data.append("exang", document.getElementById("exang").value || 0);
224
+ data.append("oldpeak", document.getElementById("oldpeak").value || 0);
225
+ data.append("slope", document.getElementById("slope").value || 0);
226
+ data.append("ca", document.getElementById("ca").value || 0);
227
+ data.append("thal", document.getElementById("thal").value || 0);
228
+ }
229
+
230
+ fetch("/predict_result", { method: "POST", body: data })
231
+ .then(r => r.json())
232
+ .then(res => {
233
+ const result = document.getElementById("result");
234
+ const riskLabel = document.getElementById("riskLabel");
235
+ const confidenceLabel = document.getElementById("confidenceLabel");
236
+ const probLabel = document.getElementById("probLabel");
237
+
238
+ riskLabel.textContent = res.risk;
239
+ riskLabel.className = "risk " + (res.risk === "High Risk" ? "high" : "low");
240
+ confidenceLabel.textContent = "Confidence: " + res.confidence + "%";
241
+ probLabel.textContent = res.disease + " Probability: " + res.probability + "%";
242
+ result.style.display = "block";
243
+ });
244
+ }
245
+ </script>
246
+ </body>
247
+ </html>
training_results.json ADDED
@@ -0,0 +1 @@
 
 
1
+ [{"round": 0, "loss": 0.6939, "accuracy": 0.5779}, {"round": 1, "loss": 0.5329, "accuracy": 0.7532}, {"round": 2, "loss": 0.4894, "accuracy": 0.7792}, {"round": 3, "loss": 0.4807, "accuracy": 0.7857}]
uploads/diabetes.csv ADDED
@@ -0,0 +1,769 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Pregnancies,Glucose,BloodPressure,SkinThickness,Insulin,BMI,DiabetesPedigreeFunction,Age,Outcome
2
+ 6,148,72,35,0,33.6,0.627,50,1
3
+ 1,85,66,29,0,26.6,0.351,31,0
4
+ 8,183,64,0,0,23.3,0.672,32,1
5
+ 1,89,66,23,94,28.1,0.167,21,0
6
+ 0,137,40,35,168,43.1,2.288,33,1
7
+ 5,116,74,0,0,25.6,0.201,30,0
8
+ 3,78,50,32,88,31,0.248,26,1
9
+ 10,115,0,0,0,35.3,0.134,29,0
10
+ 2,197,70,45,543,30.5,0.158,53,1
11
+ 8,125,96,0,0,0,0.232,54,1
12
+ 4,110,92,0,0,37.6,0.191,30,0
13
+ 10,168,74,0,0,38,0.537,34,1
14
+ 10,139,80,0,0,27.1,1.441,57,0
15
+ 1,189,60,23,846,30.1,0.398,59,1
16
+ 5,166,72,19,175,25.8,0.587,51,1
17
+ 7,100,0,0,0,30,0.484,32,1
18
+ 0,118,84,47,230,45.8,0.551,31,1
19
+ 7,107,74,0,0,29.6,0.254,31,1
20
+ 1,103,30,38,83,43.3,0.183,33,0
21
+ 1,115,70,30,96,34.6,0.529,32,1
22
+ 3,126,88,41,235,39.3,0.704,27,0
23
+ 8,99,84,0,0,35.4,0.388,50,0
24
+ 7,196,90,0,0,39.8,0.451,41,1
25
+ 9,119,80,35,0,29,0.263,29,1
26
+ 11,143,94,33,146,36.6,0.254,51,1
27
+ 10,125,70,26,115,31.1,0.205,41,1
28
+ 7,147,76,0,0,39.4,0.257,43,1
29
+ 1,97,66,15,140,23.2,0.487,22,0
30
+ 13,145,82,19,110,22.2,0.245,57,0
31
+ 5,117,92,0,0,34.1,0.337,38,0
32
+ 5,109,75,26,0,36,0.546,60,0
33
+ 3,158,76,36,245,31.6,0.851,28,1
34
+ 3,88,58,11,54,24.8,0.267,22,0
35
+ 6,92,92,0,0,19.9,0.188,28,0
36
+ 10,122,78,31,0,27.6,0.512,45,0
37
+ 4,103,60,33,192,24,0.966,33,0
38
+ 11,138,76,0,0,33.2,0.42,35,0
39
+ 9,102,76,37,0,32.9,0.665,46,1
40
+ 2,90,68,42,0,38.2,0.503,27,1
41
+ 4,111,72,47,207,37.1,1.39,56,1
42
+ 3,180,64,25,70,34,0.271,26,0
43
+ 7,133,84,0,0,40.2,0.696,37,0
44
+ 7,106,92,18,0,22.7,0.235,48,0
45
+ 9,171,110,24,240,45.4,0.721,54,1
46
+ 7,159,64,0,0,27.4,0.294,40,0
47
+ 0,180,66,39,0,42,1.893,25,1
48
+ 1,146,56,0,0,29.7,0.564,29,0
49
+ 2,71,70,27,0,28,0.586,22,0
50
+ 7,103,66,32,0,39.1,0.344,31,1
51
+ 7,105,0,0,0,0,0.305,24,0
52
+ 1,103,80,11,82,19.4,0.491,22,0
53
+ 1,101,50,15,36,24.2,0.526,26,0
54
+ 5,88,66,21,23,24.4,0.342,30,0
55
+ 8,176,90,34,300,33.7,0.467,58,1
56
+ 7,150,66,42,342,34.7,0.718,42,0
57
+ 1,73,50,10,0,23,0.248,21,0
58
+ 7,187,68,39,304,37.7,0.254,41,1
59
+ 0,100,88,60,110,46.8,0.962,31,0
60
+ 0,146,82,0,0,40.5,1.781,44,0
61
+ 0,105,64,41,142,41.5,0.173,22,0
62
+ 2,84,0,0,0,0,0.304,21,0
63
+ 8,133,72,0,0,32.9,0.27,39,1
64
+ 5,44,62,0,0,25,0.587,36,0
65
+ 2,141,58,34,128,25.4,0.699,24,0
66
+ 7,114,66,0,0,32.8,0.258,42,1
67
+ 5,99,74,27,0,29,0.203,32,0
68
+ 0,109,88,30,0,32.5,0.855,38,1
69
+ 2,109,92,0,0,42.7,0.845,54,0
70
+ 1,95,66,13,38,19.6,0.334,25,0
71
+ 4,146,85,27,100,28.9,0.189,27,0
72
+ 2,100,66,20,90,32.9,0.867,28,1
73
+ 5,139,64,35,140,28.6,0.411,26,0
74
+ 13,126,90,0,0,43.4,0.583,42,1
75
+ 4,129,86,20,270,35.1,0.231,23,0
76
+ 1,79,75,30,0,32,0.396,22,0
77
+ 1,0,48,20,0,24.7,0.14,22,0
78
+ 7,62,78,0,0,32.6,0.391,41,0
79
+ 5,95,72,33,0,37.7,0.37,27,0
80
+ 0,131,0,0,0,43.2,0.27,26,1
81
+ 2,112,66,22,0,25,0.307,24,0
82
+ 3,113,44,13,0,22.4,0.14,22,0
83
+ 2,74,0,0,0,0,0.102,22,0
84
+ 7,83,78,26,71,29.3,0.767,36,0
85
+ 0,101,65,28,0,24.6,0.237,22,0
86
+ 5,137,108,0,0,48.8,0.227,37,1
87
+ 2,110,74,29,125,32.4,0.698,27,0
88
+ 13,106,72,54,0,36.6,0.178,45,0
89
+ 2,100,68,25,71,38.5,0.324,26,0
90
+ 15,136,70,32,110,37.1,0.153,43,1
91
+ 1,107,68,19,0,26.5,0.165,24,0
92
+ 1,80,55,0,0,19.1,0.258,21,0
93
+ 4,123,80,15,176,32,0.443,34,0
94
+ 7,81,78,40,48,46.7,0.261,42,0
95
+ 4,134,72,0,0,23.8,0.277,60,1
96
+ 2,142,82,18,64,24.7,0.761,21,0
97
+ 6,144,72,27,228,33.9,0.255,40,0
98
+ 2,92,62,28,0,31.6,0.13,24,0
99
+ 1,71,48,18,76,20.4,0.323,22,0
100
+ 6,93,50,30,64,28.7,0.356,23,0
101
+ 1,122,90,51,220,49.7,0.325,31,1
102
+ 1,163,72,0,0,39,1.222,33,1
103
+ 1,151,60,0,0,26.1,0.179,22,0
104
+ 0,125,96,0,0,22.5,0.262,21,0
105
+ 1,81,72,18,40,26.6,0.283,24,0
106
+ 2,85,65,0,0,39.6,0.93,27,0
107
+ 1,126,56,29,152,28.7,0.801,21,0
108
+ 1,96,122,0,0,22.4,0.207,27,0
109
+ 4,144,58,28,140,29.5,0.287,37,0
110
+ 3,83,58,31,18,34.3,0.336,25,0
111
+ 0,95,85,25,36,37.4,0.247,24,1
112
+ 3,171,72,33,135,33.3,0.199,24,1
113
+ 8,155,62,26,495,34,0.543,46,1
114
+ 1,89,76,34,37,31.2,0.192,23,0
115
+ 4,76,62,0,0,34,0.391,25,0
116
+ 7,160,54,32,175,30.5,0.588,39,1
117
+ 4,146,92,0,0,31.2,0.539,61,1
118
+ 5,124,74,0,0,34,0.22,38,1
119
+ 5,78,48,0,0,33.7,0.654,25,0
120
+ 4,97,60,23,0,28.2,0.443,22,0
121
+ 4,99,76,15,51,23.2,0.223,21,0
122
+ 0,162,76,56,100,53.2,0.759,25,1
123
+ 6,111,64,39,0,34.2,0.26,24,0
124
+ 2,107,74,30,100,33.6,0.404,23,0
125
+ 5,132,80,0,0,26.8,0.186,69,0
126
+ 0,113,76,0,0,33.3,0.278,23,1
127
+ 1,88,30,42,99,55,0.496,26,1
128
+ 3,120,70,30,135,42.9,0.452,30,0
129
+ 1,118,58,36,94,33.3,0.261,23,0
130
+ 1,117,88,24,145,34.5,0.403,40,1
131
+ 0,105,84,0,0,27.9,0.741,62,1
132
+ 4,173,70,14,168,29.7,0.361,33,1
133
+ 9,122,56,0,0,33.3,1.114,33,1
134
+ 3,170,64,37,225,34.5,0.356,30,1
135
+ 8,84,74,31,0,38.3,0.457,39,0
136
+ 2,96,68,13,49,21.1,0.647,26,0
137
+ 2,125,60,20,140,33.8,0.088,31,0
138
+ 0,100,70,26,50,30.8,0.597,21,0
139
+ 0,93,60,25,92,28.7,0.532,22,0
140
+ 0,129,80,0,0,31.2,0.703,29,0
141
+ 5,105,72,29,325,36.9,0.159,28,0
142
+ 3,128,78,0,0,21.1,0.268,55,0
143
+ 5,106,82,30,0,39.5,0.286,38,0
144
+ 2,108,52,26,63,32.5,0.318,22,0
145
+ 10,108,66,0,0,32.4,0.272,42,1
146
+ 4,154,62,31,284,32.8,0.237,23,0
147
+ 0,102,75,23,0,0,0.572,21,0
148
+ 9,57,80,37,0,32.8,0.096,41,0
149
+ 2,106,64,35,119,30.5,1.4,34,0
150
+ 5,147,78,0,0,33.7,0.218,65,0
151
+ 2,90,70,17,0,27.3,0.085,22,0
152
+ 1,136,74,50,204,37.4,0.399,24,0
153
+ 4,114,65,0,0,21.9,0.432,37,0
154
+ 9,156,86,28,155,34.3,1.189,42,1
155
+ 1,153,82,42,485,40.6,0.687,23,0
156
+ 8,188,78,0,0,47.9,0.137,43,1
157
+ 7,152,88,44,0,50,0.337,36,1
158
+ 2,99,52,15,94,24.6,0.637,21,0
159
+ 1,109,56,21,135,25.2,0.833,23,0
160
+ 2,88,74,19,53,29,0.229,22,0
161
+ 17,163,72,41,114,40.9,0.817,47,1
162
+ 4,151,90,38,0,29.7,0.294,36,0
163
+ 7,102,74,40,105,37.2,0.204,45,0
164
+ 0,114,80,34,285,44.2,0.167,27,0
165
+ 2,100,64,23,0,29.7,0.368,21,0
166
+ 0,131,88,0,0,31.6,0.743,32,1
167
+ 6,104,74,18,156,29.9,0.722,41,1
168
+ 3,148,66,25,0,32.5,0.256,22,0
169
+ 4,120,68,0,0,29.6,0.709,34,0
170
+ 4,110,66,0,0,31.9,0.471,29,0
171
+ 3,111,90,12,78,28.4,0.495,29,0
172
+ 6,102,82,0,0,30.8,0.18,36,1
173
+ 6,134,70,23,130,35.4,0.542,29,1
174
+ 2,87,0,23,0,28.9,0.773,25,0
175
+ 1,79,60,42,48,43.5,0.678,23,0
176
+ 2,75,64,24,55,29.7,0.37,33,0
177
+ 8,179,72,42,130,32.7,0.719,36,1
178
+ 6,85,78,0,0,31.2,0.382,42,0
179
+ 0,129,110,46,130,67.1,0.319,26,1
180
+ 5,143,78,0,0,45,0.19,47,0
181
+ 5,130,82,0,0,39.1,0.956,37,1
182
+ 6,87,80,0,0,23.2,0.084,32,0
183
+ 0,119,64,18,92,34.9,0.725,23,0
184
+ 1,0,74,20,23,27.7,0.299,21,0
185
+ 5,73,60,0,0,26.8,0.268,27,0
186
+ 4,141,74,0,0,27.6,0.244,40,0
187
+ 7,194,68,28,0,35.9,0.745,41,1
188
+ 8,181,68,36,495,30.1,0.615,60,1
189
+ 1,128,98,41,58,32,1.321,33,1
190
+ 8,109,76,39,114,27.9,0.64,31,1
191
+ 5,139,80,35,160,31.6,0.361,25,1
192
+ 3,111,62,0,0,22.6,0.142,21,0
193
+ 9,123,70,44,94,33.1,0.374,40,0
194
+ 7,159,66,0,0,30.4,0.383,36,1
195
+ 11,135,0,0,0,52.3,0.578,40,1
196
+ 8,85,55,20,0,24.4,0.136,42,0
197
+ 5,158,84,41,210,39.4,0.395,29,1
198
+ 1,105,58,0,0,24.3,0.187,21,0
199
+ 3,107,62,13,48,22.9,0.678,23,1
200
+ 4,109,64,44,99,34.8,0.905,26,1
201
+ 4,148,60,27,318,30.9,0.15,29,1
202
+ 0,113,80,16,0,31,0.874,21,0
203
+ 1,138,82,0,0,40.1,0.236,28,0
204
+ 0,108,68,20,0,27.3,0.787,32,0
205
+ 2,99,70,16,44,20.4,0.235,27,0
206
+ 6,103,72,32,190,37.7,0.324,55,0
207
+ 5,111,72,28,0,23.9,0.407,27,0
208
+ 8,196,76,29,280,37.5,0.605,57,1
209
+ 5,162,104,0,0,37.7,0.151,52,1
210
+ 1,96,64,27,87,33.2,0.289,21,0
211
+ 7,184,84,33,0,35.5,0.355,41,1
212
+ 2,81,60,22,0,27.7,0.29,25,0
213
+ 0,147,85,54,0,42.8,0.375,24,0
214
+ 7,179,95,31,0,34.2,0.164,60,0
215
+ 0,140,65,26,130,42.6,0.431,24,1
216
+ 9,112,82,32,175,34.2,0.26,36,1
217
+ 12,151,70,40,271,41.8,0.742,38,1
218
+ 5,109,62,41,129,35.8,0.514,25,1
219
+ 6,125,68,30,120,30,0.464,32,0
220
+ 5,85,74,22,0,29,1.224,32,1
221
+ 5,112,66,0,0,37.8,0.261,41,1
222
+ 0,177,60,29,478,34.6,1.072,21,1
223
+ 2,158,90,0,0,31.6,0.805,66,1
224
+ 7,119,0,0,0,25.2,0.209,37,0
225
+ 7,142,60,33,190,28.8,0.687,61,0
226
+ 1,100,66,15,56,23.6,0.666,26,0
227
+ 1,87,78,27,32,34.6,0.101,22,0
228
+ 0,101,76,0,0,35.7,0.198,26,0
229
+ 3,162,52,38,0,37.2,0.652,24,1
230
+ 4,197,70,39,744,36.7,2.329,31,0
231
+ 0,117,80,31,53,45.2,0.089,24,0
232
+ 4,142,86,0,0,44,0.645,22,1
233
+ 6,134,80,37,370,46.2,0.238,46,1
234
+ 1,79,80,25,37,25.4,0.583,22,0
235
+ 4,122,68,0,0,35,0.394,29,0
236
+ 3,74,68,28,45,29.7,0.293,23,0
237
+ 4,171,72,0,0,43.6,0.479,26,1
238
+ 7,181,84,21,192,35.9,0.586,51,1
239
+ 0,179,90,27,0,44.1,0.686,23,1
240
+ 9,164,84,21,0,30.8,0.831,32,1
241
+ 0,104,76,0,0,18.4,0.582,27,0
242
+ 1,91,64,24,0,29.2,0.192,21,0
243
+ 4,91,70,32,88,33.1,0.446,22,0
244
+ 3,139,54,0,0,25.6,0.402,22,1
245
+ 6,119,50,22,176,27.1,1.318,33,1
246
+ 2,146,76,35,194,38.2,0.329,29,0
247
+ 9,184,85,15,0,30,1.213,49,1
248
+ 10,122,68,0,0,31.2,0.258,41,0
249
+ 0,165,90,33,680,52.3,0.427,23,0
250
+ 9,124,70,33,402,35.4,0.282,34,0
251
+ 1,111,86,19,0,30.1,0.143,23,0
252
+ 9,106,52,0,0,31.2,0.38,42,0
253
+ 2,129,84,0,0,28,0.284,27,0
254
+ 2,90,80,14,55,24.4,0.249,24,0
255
+ 0,86,68,32,0,35.8,0.238,25,0
256
+ 12,92,62,7,258,27.6,0.926,44,1
257
+ 1,113,64,35,0,33.6,0.543,21,1
258
+ 3,111,56,39,0,30.1,0.557,30,0
259
+ 2,114,68,22,0,28.7,0.092,25,0
260
+ 1,193,50,16,375,25.9,0.655,24,0
261
+ 11,155,76,28,150,33.3,1.353,51,1
262
+ 3,191,68,15,130,30.9,0.299,34,0
263
+ 3,141,0,0,0,30,0.761,27,1
264
+ 4,95,70,32,0,32.1,0.612,24,0
265
+ 3,142,80,15,0,32.4,0.2,63,0
266
+ 4,123,62,0,0,32,0.226,35,1
267
+ 5,96,74,18,67,33.6,0.997,43,0
268
+ 0,138,0,0,0,36.3,0.933,25,1
269
+ 2,128,64,42,0,40,1.101,24,0
270
+ 0,102,52,0,0,25.1,0.078,21,0
271
+ 2,146,0,0,0,27.5,0.24,28,1
272
+ 10,101,86,37,0,45.6,1.136,38,1
273
+ 2,108,62,32,56,25.2,0.128,21,0
274
+ 3,122,78,0,0,23,0.254,40,0
275
+ 1,71,78,50,45,33.2,0.422,21,0
276
+ 13,106,70,0,0,34.2,0.251,52,0
277
+ 2,100,70,52,57,40.5,0.677,25,0
278
+ 7,106,60,24,0,26.5,0.296,29,1
279
+ 0,104,64,23,116,27.8,0.454,23,0
280
+ 5,114,74,0,0,24.9,0.744,57,0
281
+ 2,108,62,10,278,25.3,0.881,22,0
282
+ 0,146,70,0,0,37.9,0.334,28,1
283
+ 10,129,76,28,122,35.9,0.28,39,0
284
+ 7,133,88,15,155,32.4,0.262,37,0
285
+ 7,161,86,0,0,30.4,0.165,47,1
286
+ 2,108,80,0,0,27,0.259,52,1
287
+ 7,136,74,26,135,26,0.647,51,0
288
+ 5,155,84,44,545,38.7,0.619,34,0
289
+ 1,119,86,39,220,45.6,0.808,29,1
290
+ 4,96,56,17,49,20.8,0.34,26,0
291
+ 5,108,72,43,75,36.1,0.263,33,0
292
+ 0,78,88,29,40,36.9,0.434,21,0
293
+ 0,107,62,30,74,36.6,0.757,25,1
294
+ 2,128,78,37,182,43.3,1.224,31,1
295
+ 1,128,48,45,194,40.5,0.613,24,1
296
+ 0,161,50,0,0,21.9,0.254,65,0
297
+ 6,151,62,31,120,35.5,0.692,28,0
298
+ 2,146,70,38,360,28,0.337,29,1
299
+ 0,126,84,29,215,30.7,0.52,24,0
300
+ 14,100,78,25,184,36.6,0.412,46,1
301
+ 8,112,72,0,0,23.6,0.84,58,0
302
+ 0,167,0,0,0,32.3,0.839,30,1
303
+ 2,144,58,33,135,31.6,0.422,25,1
304
+ 5,77,82,41,42,35.8,0.156,35,0
305
+ 5,115,98,0,0,52.9,0.209,28,1
306
+ 3,150,76,0,0,21,0.207,37,0
307
+ 2,120,76,37,105,39.7,0.215,29,0
308
+ 10,161,68,23,132,25.5,0.326,47,1
309
+ 0,137,68,14,148,24.8,0.143,21,0
310
+ 0,128,68,19,180,30.5,1.391,25,1
311
+ 2,124,68,28,205,32.9,0.875,30,1
312
+ 6,80,66,30,0,26.2,0.313,41,0
313
+ 0,106,70,37,148,39.4,0.605,22,0
314
+ 2,155,74,17,96,26.6,0.433,27,1
315
+ 3,113,50,10,85,29.5,0.626,25,0
316
+ 7,109,80,31,0,35.9,1.127,43,1
317
+ 2,112,68,22,94,34.1,0.315,26,0
318
+ 3,99,80,11,64,19.3,0.284,30,0
319
+ 3,182,74,0,0,30.5,0.345,29,1
320
+ 3,115,66,39,140,38.1,0.15,28,0
321
+ 6,194,78,0,0,23.5,0.129,59,1
322
+ 4,129,60,12,231,27.5,0.527,31,0
323
+ 3,112,74,30,0,31.6,0.197,25,1
324
+ 0,124,70,20,0,27.4,0.254,36,1
325
+ 13,152,90,33,29,26.8,0.731,43,1
326
+ 2,112,75,32,0,35.7,0.148,21,0
327
+ 1,157,72,21,168,25.6,0.123,24,0
328
+ 1,122,64,32,156,35.1,0.692,30,1
329
+ 10,179,70,0,0,35.1,0.2,37,0
330
+ 2,102,86,36,120,45.5,0.127,23,1
331
+ 6,105,70,32,68,30.8,0.122,37,0
332
+ 8,118,72,19,0,23.1,1.476,46,0
333
+ 2,87,58,16,52,32.7,0.166,25,0
334
+ 1,180,0,0,0,43.3,0.282,41,1
335
+ 12,106,80,0,0,23.6,0.137,44,0
336
+ 1,95,60,18,58,23.9,0.26,22,0
337
+ 0,165,76,43,255,47.9,0.259,26,0
338
+ 0,117,0,0,0,33.8,0.932,44,0
339
+ 5,115,76,0,0,31.2,0.343,44,1
340
+ 9,152,78,34,171,34.2,0.893,33,1
341
+ 7,178,84,0,0,39.9,0.331,41,1
342
+ 1,130,70,13,105,25.9,0.472,22,0
343
+ 1,95,74,21,73,25.9,0.673,36,0
344
+ 1,0,68,35,0,32,0.389,22,0
345
+ 5,122,86,0,0,34.7,0.29,33,0
346
+ 8,95,72,0,0,36.8,0.485,57,0
347
+ 8,126,88,36,108,38.5,0.349,49,0
348
+ 1,139,46,19,83,28.7,0.654,22,0
349
+ 3,116,0,0,0,23.5,0.187,23,0
350
+ 3,99,62,19,74,21.8,0.279,26,0
351
+ 5,0,80,32,0,41,0.346,37,1
352
+ 4,92,80,0,0,42.2,0.237,29,0
353
+ 4,137,84,0,0,31.2,0.252,30,0
354
+ 3,61,82,28,0,34.4,0.243,46,0
355
+ 1,90,62,12,43,27.2,0.58,24,0
356
+ 3,90,78,0,0,42.7,0.559,21,0
357
+ 9,165,88,0,0,30.4,0.302,49,1
358
+ 1,125,50,40,167,33.3,0.962,28,1
359
+ 13,129,0,30,0,39.9,0.569,44,1
360
+ 12,88,74,40,54,35.3,0.378,48,0
361
+ 1,196,76,36,249,36.5,0.875,29,1
362
+ 5,189,64,33,325,31.2,0.583,29,1
363
+ 5,158,70,0,0,29.8,0.207,63,0
364
+ 5,103,108,37,0,39.2,0.305,65,0
365
+ 4,146,78,0,0,38.5,0.52,67,1
366
+ 4,147,74,25,293,34.9,0.385,30,0
367
+ 5,99,54,28,83,34,0.499,30,0
368
+ 6,124,72,0,0,27.6,0.368,29,1
369
+ 0,101,64,17,0,21,0.252,21,0
370
+ 3,81,86,16,66,27.5,0.306,22,0
371
+ 1,133,102,28,140,32.8,0.234,45,1
372
+ 3,173,82,48,465,38.4,2.137,25,1
373
+ 0,118,64,23,89,0,1.731,21,0
374
+ 0,84,64,22,66,35.8,0.545,21,0
375
+ 2,105,58,40,94,34.9,0.225,25,0
376
+ 2,122,52,43,158,36.2,0.816,28,0
377
+ 12,140,82,43,325,39.2,0.528,58,1
378
+ 0,98,82,15,84,25.2,0.299,22,0
379
+ 1,87,60,37,75,37.2,0.509,22,0
380
+ 4,156,75,0,0,48.3,0.238,32,1
381
+ 0,93,100,39,72,43.4,1.021,35,0
382
+ 1,107,72,30,82,30.8,0.821,24,0
383
+ 0,105,68,22,0,20,0.236,22,0
384
+ 1,109,60,8,182,25.4,0.947,21,0
385
+ 1,90,62,18,59,25.1,1.268,25,0
386
+ 1,125,70,24,110,24.3,0.221,25,0
387
+ 1,119,54,13,50,22.3,0.205,24,0
388
+ 5,116,74,29,0,32.3,0.66,35,1
389
+ 8,105,100,36,0,43.3,0.239,45,1
390
+ 5,144,82,26,285,32,0.452,58,1
391
+ 3,100,68,23,81,31.6,0.949,28,0
392
+ 1,100,66,29,196,32,0.444,42,0
393
+ 5,166,76,0,0,45.7,0.34,27,1
394
+ 1,131,64,14,415,23.7,0.389,21,0
395
+ 4,116,72,12,87,22.1,0.463,37,0
396
+ 4,158,78,0,0,32.9,0.803,31,1
397
+ 2,127,58,24,275,27.7,1.6,25,0
398
+ 3,96,56,34,115,24.7,0.944,39,0
399
+ 0,131,66,40,0,34.3,0.196,22,1
400
+ 3,82,70,0,0,21.1,0.389,25,0
401
+ 3,193,70,31,0,34.9,0.241,25,1
402
+ 4,95,64,0,0,32,0.161,31,1
403
+ 6,137,61,0,0,24.2,0.151,55,0
404
+ 5,136,84,41,88,35,0.286,35,1
405
+ 9,72,78,25,0,31.6,0.28,38,0
406
+ 5,168,64,0,0,32.9,0.135,41,1
407
+ 2,123,48,32,165,42.1,0.52,26,0
408
+ 4,115,72,0,0,28.9,0.376,46,1
409
+ 0,101,62,0,0,21.9,0.336,25,0
410
+ 8,197,74,0,0,25.9,1.191,39,1
411
+ 1,172,68,49,579,42.4,0.702,28,1
412
+ 6,102,90,39,0,35.7,0.674,28,0
413
+ 1,112,72,30,176,34.4,0.528,25,0
414
+ 1,143,84,23,310,42.4,1.076,22,0
415
+ 1,143,74,22,61,26.2,0.256,21,0
416
+ 0,138,60,35,167,34.6,0.534,21,1
417
+ 3,173,84,33,474,35.7,0.258,22,1
418
+ 1,97,68,21,0,27.2,1.095,22,0
419
+ 4,144,82,32,0,38.5,0.554,37,1
420
+ 1,83,68,0,0,18.2,0.624,27,0
421
+ 3,129,64,29,115,26.4,0.219,28,1
422
+ 1,119,88,41,170,45.3,0.507,26,0
423
+ 2,94,68,18,76,26,0.561,21,0
424
+ 0,102,64,46,78,40.6,0.496,21,0
425
+ 2,115,64,22,0,30.8,0.421,21,0
426
+ 8,151,78,32,210,42.9,0.516,36,1
427
+ 4,184,78,39,277,37,0.264,31,1
428
+ 0,94,0,0,0,0,0.256,25,0
429
+ 1,181,64,30,180,34.1,0.328,38,1
430
+ 0,135,94,46,145,40.6,0.284,26,0
431
+ 1,95,82,25,180,35,0.233,43,1
432
+ 2,99,0,0,0,22.2,0.108,23,0
433
+ 3,89,74,16,85,30.4,0.551,38,0
434
+ 1,80,74,11,60,30,0.527,22,0
435
+ 2,139,75,0,0,25.6,0.167,29,0
436
+ 1,90,68,8,0,24.5,1.138,36,0
437
+ 0,141,0,0,0,42.4,0.205,29,1
438
+ 12,140,85,33,0,37.4,0.244,41,0
439
+ 5,147,75,0,0,29.9,0.434,28,0
440
+ 1,97,70,15,0,18.2,0.147,21,0
441
+ 6,107,88,0,0,36.8,0.727,31,0
442
+ 0,189,104,25,0,34.3,0.435,41,1
443
+ 2,83,66,23,50,32.2,0.497,22,0
444
+ 4,117,64,27,120,33.2,0.23,24,0
445
+ 8,108,70,0,0,30.5,0.955,33,1
446
+ 4,117,62,12,0,29.7,0.38,30,1
447
+ 0,180,78,63,14,59.4,2.42,25,1
448
+ 1,100,72,12,70,25.3,0.658,28,0
449
+ 0,95,80,45,92,36.5,0.33,26,0
450
+ 0,104,64,37,64,33.6,0.51,22,1
451
+ 0,120,74,18,63,30.5,0.285,26,0
452
+ 1,82,64,13,95,21.2,0.415,23,0
453
+ 2,134,70,0,0,28.9,0.542,23,1
454
+ 0,91,68,32,210,39.9,0.381,25,0
455
+ 2,119,0,0,0,19.6,0.832,72,0
456
+ 2,100,54,28,105,37.8,0.498,24,0
457
+ 14,175,62,30,0,33.6,0.212,38,1
458
+ 1,135,54,0,0,26.7,0.687,62,0
459
+ 5,86,68,28,71,30.2,0.364,24,0
460
+ 10,148,84,48,237,37.6,1.001,51,1
461
+ 9,134,74,33,60,25.9,0.46,81,0
462
+ 9,120,72,22,56,20.8,0.733,48,0
463
+ 1,71,62,0,0,21.8,0.416,26,0
464
+ 8,74,70,40,49,35.3,0.705,39,0
465
+ 5,88,78,30,0,27.6,0.258,37,0
466
+ 10,115,98,0,0,24,1.022,34,0
467
+ 0,124,56,13,105,21.8,0.452,21,0
468
+ 0,74,52,10,36,27.8,0.269,22,0
469
+ 0,97,64,36,100,36.8,0.6,25,0
470
+ 8,120,0,0,0,30,0.183,38,1
471
+ 6,154,78,41,140,46.1,0.571,27,0
472
+ 1,144,82,40,0,41.3,0.607,28,0
473
+ 0,137,70,38,0,33.2,0.17,22,0
474
+ 0,119,66,27,0,38.8,0.259,22,0
475
+ 7,136,90,0,0,29.9,0.21,50,0
476
+ 4,114,64,0,0,28.9,0.126,24,0
477
+ 0,137,84,27,0,27.3,0.231,59,0
478
+ 2,105,80,45,191,33.7,0.711,29,1
479
+ 7,114,76,17,110,23.8,0.466,31,0
480
+ 8,126,74,38,75,25.9,0.162,39,0
481
+ 4,132,86,31,0,28,0.419,63,0
482
+ 3,158,70,30,328,35.5,0.344,35,1
483
+ 0,123,88,37,0,35.2,0.197,29,0
484
+ 4,85,58,22,49,27.8,0.306,28,0
485
+ 0,84,82,31,125,38.2,0.233,23,0
486
+ 0,145,0,0,0,44.2,0.63,31,1
487
+ 0,135,68,42,250,42.3,0.365,24,1
488
+ 1,139,62,41,480,40.7,0.536,21,0
489
+ 0,173,78,32,265,46.5,1.159,58,0
490
+ 4,99,72,17,0,25.6,0.294,28,0
491
+ 8,194,80,0,0,26.1,0.551,67,0
492
+ 2,83,65,28,66,36.8,0.629,24,0
493
+ 2,89,90,30,0,33.5,0.292,42,0
494
+ 4,99,68,38,0,32.8,0.145,33,0
495
+ 4,125,70,18,122,28.9,1.144,45,1
496
+ 3,80,0,0,0,0,0.174,22,0
497
+ 6,166,74,0,0,26.6,0.304,66,0
498
+ 5,110,68,0,0,26,0.292,30,0
499
+ 2,81,72,15,76,30.1,0.547,25,0
500
+ 7,195,70,33,145,25.1,0.163,55,1
501
+ 6,154,74,32,193,29.3,0.839,39,0
502
+ 2,117,90,19,71,25.2,0.313,21,0
503
+ 3,84,72,32,0,37.2,0.267,28,0
504
+ 6,0,68,41,0,39,0.727,41,1
505
+ 7,94,64,25,79,33.3,0.738,41,0
506
+ 3,96,78,39,0,37.3,0.238,40,0
507
+ 10,75,82,0,0,33.3,0.263,38,0
508
+ 0,180,90,26,90,36.5,0.314,35,1
509
+ 1,130,60,23,170,28.6,0.692,21,0
510
+ 2,84,50,23,76,30.4,0.968,21,0
511
+ 8,120,78,0,0,25,0.409,64,0
512
+ 12,84,72,31,0,29.7,0.297,46,1
513
+ 0,139,62,17,210,22.1,0.207,21,0
514
+ 9,91,68,0,0,24.2,0.2,58,0
515
+ 2,91,62,0,0,27.3,0.525,22,0
516
+ 3,99,54,19,86,25.6,0.154,24,0
517
+ 3,163,70,18,105,31.6,0.268,28,1
518
+ 9,145,88,34,165,30.3,0.771,53,1
519
+ 7,125,86,0,0,37.6,0.304,51,0
520
+ 13,76,60,0,0,32.8,0.18,41,0
521
+ 6,129,90,7,326,19.6,0.582,60,0
522
+ 2,68,70,32,66,25,0.187,25,0
523
+ 3,124,80,33,130,33.2,0.305,26,0
524
+ 6,114,0,0,0,0,0.189,26,0
525
+ 9,130,70,0,0,34.2,0.652,45,1
526
+ 3,125,58,0,0,31.6,0.151,24,0
527
+ 3,87,60,18,0,21.8,0.444,21,0
528
+ 1,97,64,19,82,18.2,0.299,21,0
529
+ 3,116,74,15,105,26.3,0.107,24,0
530
+ 0,117,66,31,188,30.8,0.493,22,0
531
+ 0,111,65,0,0,24.6,0.66,31,0
532
+ 2,122,60,18,106,29.8,0.717,22,0
533
+ 0,107,76,0,0,45.3,0.686,24,0
534
+ 1,86,66,52,65,41.3,0.917,29,0
535
+ 6,91,0,0,0,29.8,0.501,31,0
536
+ 1,77,56,30,56,33.3,1.251,24,0
537
+ 4,132,0,0,0,32.9,0.302,23,1
538
+ 0,105,90,0,0,29.6,0.197,46,0
539
+ 0,57,60,0,0,21.7,0.735,67,0
540
+ 0,127,80,37,210,36.3,0.804,23,0
541
+ 3,129,92,49,155,36.4,0.968,32,1
542
+ 8,100,74,40,215,39.4,0.661,43,1
543
+ 3,128,72,25,190,32.4,0.549,27,1
544
+ 10,90,85,32,0,34.9,0.825,56,1
545
+ 4,84,90,23,56,39.5,0.159,25,0
546
+ 1,88,78,29,76,32,0.365,29,0
547
+ 8,186,90,35,225,34.5,0.423,37,1
548
+ 5,187,76,27,207,43.6,1.034,53,1
549
+ 4,131,68,21,166,33.1,0.16,28,0
550
+ 1,164,82,43,67,32.8,0.341,50,0
551
+ 4,189,110,31,0,28.5,0.68,37,0
552
+ 1,116,70,28,0,27.4,0.204,21,0
553
+ 3,84,68,30,106,31.9,0.591,25,0
554
+ 6,114,88,0,0,27.8,0.247,66,0
555
+ 1,88,62,24,44,29.9,0.422,23,0
556
+ 1,84,64,23,115,36.9,0.471,28,0
557
+ 7,124,70,33,215,25.5,0.161,37,0
558
+ 1,97,70,40,0,38.1,0.218,30,0
559
+ 8,110,76,0,0,27.8,0.237,58,0
560
+ 11,103,68,40,0,46.2,0.126,42,0
561
+ 11,85,74,0,0,30.1,0.3,35,0
562
+ 6,125,76,0,0,33.8,0.121,54,1
563
+ 0,198,66,32,274,41.3,0.502,28,1
564
+ 1,87,68,34,77,37.6,0.401,24,0
565
+ 6,99,60,19,54,26.9,0.497,32,0
566
+ 0,91,80,0,0,32.4,0.601,27,0
567
+ 2,95,54,14,88,26.1,0.748,22,0
568
+ 1,99,72,30,18,38.6,0.412,21,0
569
+ 6,92,62,32,126,32,0.085,46,0
570
+ 4,154,72,29,126,31.3,0.338,37,0
571
+ 0,121,66,30,165,34.3,0.203,33,1
572
+ 3,78,70,0,0,32.5,0.27,39,0
573
+ 2,130,96,0,0,22.6,0.268,21,0
574
+ 3,111,58,31,44,29.5,0.43,22,0
575
+ 2,98,60,17,120,34.7,0.198,22,0
576
+ 1,143,86,30,330,30.1,0.892,23,0
577
+ 1,119,44,47,63,35.5,0.28,25,0
578
+ 6,108,44,20,130,24,0.813,35,0
579
+ 2,118,80,0,0,42.9,0.693,21,1
580
+ 10,133,68,0,0,27,0.245,36,0
581
+ 2,197,70,99,0,34.7,0.575,62,1
582
+ 0,151,90,46,0,42.1,0.371,21,1
583
+ 6,109,60,27,0,25,0.206,27,0
584
+ 12,121,78,17,0,26.5,0.259,62,0
585
+ 8,100,76,0,0,38.7,0.19,42,0
586
+ 8,124,76,24,600,28.7,0.687,52,1
587
+ 1,93,56,11,0,22.5,0.417,22,0
588
+ 8,143,66,0,0,34.9,0.129,41,1
589
+ 6,103,66,0,0,24.3,0.249,29,0
590
+ 3,176,86,27,156,33.3,1.154,52,1
591
+ 0,73,0,0,0,21.1,0.342,25,0
592
+ 11,111,84,40,0,46.8,0.925,45,1
593
+ 2,112,78,50,140,39.4,0.175,24,0
594
+ 3,132,80,0,0,34.4,0.402,44,1
595
+ 2,82,52,22,115,28.5,1.699,25,0
596
+ 6,123,72,45,230,33.6,0.733,34,0
597
+ 0,188,82,14,185,32,0.682,22,1
598
+ 0,67,76,0,0,45.3,0.194,46,0
599
+ 1,89,24,19,25,27.8,0.559,21,0
600
+ 1,173,74,0,0,36.8,0.088,38,1
601
+ 1,109,38,18,120,23.1,0.407,26,0
602
+ 1,108,88,19,0,27.1,0.4,24,0
603
+ 6,96,0,0,0,23.7,0.19,28,0
604
+ 1,124,74,36,0,27.8,0.1,30,0
605
+ 7,150,78,29,126,35.2,0.692,54,1
606
+ 4,183,0,0,0,28.4,0.212,36,1
607
+ 1,124,60,32,0,35.8,0.514,21,0
608
+ 1,181,78,42,293,40,1.258,22,1
609
+ 1,92,62,25,41,19.5,0.482,25,0
610
+ 0,152,82,39,272,41.5,0.27,27,0
611
+ 1,111,62,13,182,24,0.138,23,0
612
+ 3,106,54,21,158,30.9,0.292,24,0
613
+ 3,174,58,22,194,32.9,0.593,36,1
614
+ 7,168,88,42,321,38.2,0.787,40,1
615
+ 6,105,80,28,0,32.5,0.878,26,0
616
+ 11,138,74,26,144,36.1,0.557,50,1
617
+ 3,106,72,0,0,25.8,0.207,27,0
618
+ 6,117,96,0,0,28.7,0.157,30,0
619
+ 2,68,62,13,15,20.1,0.257,23,0
620
+ 9,112,82,24,0,28.2,1.282,50,1
621
+ 0,119,0,0,0,32.4,0.141,24,1
622
+ 2,112,86,42,160,38.4,0.246,28,0
623
+ 2,92,76,20,0,24.2,1.698,28,0
624
+ 6,183,94,0,0,40.8,1.461,45,0
625
+ 0,94,70,27,115,43.5,0.347,21,0
626
+ 2,108,64,0,0,30.8,0.158,21,0
627
+ 4,90,88,47,54,37.7,0.362,29,0
628
+ 0,125,68,0,0,24.7,0.206,21,0
629
+ 0,132,78,0,0,32.4,0.393,21,0
630
+ 5,128,80,0,0,34.6,0.144,45,0
631
+ 4,94,65,22,0,24.7,0.148,21,0
632
+ 7,114,64,0,0,27.4,0.732,34,1
633
+ 0,102,78,40,90,34.5,0.238,24,0
634
+ 2,111,60,0,0,26.2,0.343,23,0
635
+ 1,128,82,17,183,27.5,0.115,22,0
636
+ 10,92,62,0,0,25.9,0.167,31,0
637
+ 13,104,72,0,0,31.2,0.465,38,1
638
+ 5,104,74,0,0,28.8,0.153,48,0
639
+ 2,94,76,18,66,31.6,0.649,23,0
640
+ 7,97,76,32,91,40.9,0.871,32,1
641
+ 1,100,74,12,46,19.5,0.149,28,0
642
+ 0,102,86,17,105,29.3,0.695,27,0
643
+ 4,128,70,0,0,34.3,0.303,24,0
644
+ 6,147,80,0,0,29.5,0.178,50,1
645
+ 4,90,0,0,0,28,0.61,31,0
646
+ 3,103,72,30,152,27.6,0.73,27,0
647
+ 2,157,74,35,440,39.4,0.134,30,0
648
+ 1,167,74,17,144,23.4,0.447,33,1
649
+ 0,179,50,36,159,37.8,0.455,22,1
650
+ 11,136,84,35,130,28.3,0.26,42,1
651
+ 0,107,60,25,0,26.4,0.133,23,0
652
+ 1,91,54,25,100,25.2,0.234,23,0
653
+ 1,117,60,23,106,33.8,0.466,27,0
654
+ 5,123,74,40,77,34.1,0.269,28,0
655
+ 2,120,54,0,0,26.8,0.455,27,0
656
+ 1,106,70,28,135,34.2,0.142,22,0
657
+ 2,155,52,27,540,38.7,0.24,25,1
658
+ 2,101,58,35,90,21.8,0.155,22,0
659
+ 1,120,80,48,200,38.9,1.162,41,0
660
+ 11,127,106,0,0,39,0.19,51,0
661
+ 3,80,82,31,70,34.2,1.292,27,1
662
+ 10,162,84,0,0,27.7,0.182,54,0
663
+ 1,199,76,43,0,42.9,1.394,22,1
664
+ 8,167,106,46,231,37.6,0.165,43,1
665
+ 9,145,80,46,130,37.9,0.637,40,1
666
+ 6,115,60,39,0,33.7,0.245,40,1
667
+ 1,112,80,45,132,34.8,0.217,24,0
668
+ 4,145,82,18,0,32.5,0.235,70,1
669
+ 10,111,70,27,0,27.5,0.141,40,1
670
+ 6,98,58,33,190,34,0.43,43,0
671
+ 9,154,78,30,100,30.9,0.164,45,0
672
+ 6,165,68,26,168,33.6,0.631,49,0
673
+ 1,99,58,10,0,25.4,0.551,21,0
674
+ 10,68,106,23,49,35.5,0.285,47,0
675
+ 3,123,100,35,240,57.3,0.88,22,0
676
+ 8,91,82,0,0,35.6,0.587,68,0
677
+ 6,195,70,0,0,30.9,0.328,31,1
678
+ 9,156,86,0,0,24.8,0.23,53,1
679
+ 0,93,60,0,0,35.3,0.263,25,0
680
+ 3,121,52,0,0,36,0.127,25,1
681
+ 2,101,58,17,265,24.2,0.614,23,0
682
+ 2,56,56,28,45,24.2,0.332,22,0
683
+ 0,162,76,36,0,49.6,0.364,26,1
684
+ 0,95,64,39,105,44.6,0.366,22,0
685
+ 4,125,80,0,0,32.3,0.536,27,1
686
+ 5,136,82,0,0,0,0.64,69,0
687
+ 2,129,74,26,205,33.2,0.591,25,0
688
+ 3,130,64,0,0,23.1,0.314,22,0
689
+ 1,107,50,19,0,28.3,0.181,29,0
690
+ 1,140,74,26,180,24.1,0.828,23,0
691
+ 1,144,82,46,180,46.1,0.335,46,1
692
+ 8,107,80,0,0,24.6,0.856,34,0
693
+ 13,158,114,0,0,42.3,0.257,44,1
694
+ 2,121,70,32,95,39.1,0.886,23,0
695
+ 7,129,68,49,125,38.5,0.439,43,1
696
+ 2,90,60,0,0,23.5,0.191,25,0
697
+ 7,142,90,24,480,30.4,0.128,43,1
698
+ 3,169,74,19,125,29.9,0.268,31,1
699
+ 0,99,0,0,0,25,0.253,22,0
700
+ 4,127,88,11,155,34.5,0.598,28,0
701
+ 4,118,70,0,0,44.5,0.904,26,0
702
+ 2,122,76,27,200,35.9,0.483,26,0
703
+ 6,125,78,31,0,27.6,0.565,49,1
704
+ 1,168,88,29,0,35,0.905,52,1
705
+ 2,129,0,0,0,38.5,0.304,41,0
706
+ 4,110,76,20,100,28.4,0.118,27,0
707
+ 6,80,80,36,0,39.8,0.177,28,0
708
+ 10,115,0,0,0,0,0.261,30,1
709
+ 2,127,46,21,335,34.4,0.176,22,0
710
+ 9,164,78,0,0,32.8,0.148,45,1
711
+ 2,93,64,32,160,38,0.674,23,1
712
+ 3,158,64,13,387,31.2,0.295,24,0
713
+ 5,126,78,27,22,29.6,0.439,40,0
714
+ 10,129,62,36,0,41.2,0.441,38,1
715
+ 0,134,58,20,291,26.4,0.352,21,0
716
+ 3,102,74,0,0,29.5,0.121,32,0
717
+ 7,187,50,33,392,33.9,0.826,34,1
718
+ 3,173,78,39,185,33.8,0.97,31,1
719
+ 10,94,72,18,0,23.1,0.595,56,0
720
+ 1,108,60,46,178,35.5,0.415,24,0
721
+ 5,97,76,27,0,35.6,0.378,52,1
722
+ 4,83,86,19,0,29.3,0.317,34,0
723
+ 1,114,66,36,200,38.1,0.289,21,0
724
+ 1,149,68,29,127,29.3,0.349,42,1
725
+ 5,117,86,30,105,39.1,0.251,42,0
726
+ 1,111,94,0,0,32.8,0.265,45,0
727
+ 4,112,78,40,0,39.4,0.236,38,0
728
+ 1,116,78,29,180,36.1,0.496,25,0
729
+ 0,141,84,26,0,32.4,0.433,22,0
730
+ 2,175,88,0,0,22.9,0.326,22,0
731
+ 2,92,52,0,0,30.1,0.141,22,0
732
+ 3,130,78,23,79,28.4,0.323,34,1
733
+ 8,120,86,0,0,28.4,0.259,22,1
734
+ 2,174,88,37,120,44.5,0.646,24,1
735
+ 2,106,56,27,165,29,0.426,22,0
736
+ 2,105,75,0,0,23.3,0.56,53,0
737
+ 4,95,60,32,0,35.4,0.284,28,0
738
+ 0,126,86,27,120,27.4,0.515,21,0
739
+ 8,65,72,23,0,32,0.6,42,0
740
+ 2,99,60,17,160,36.6,0.453,21,0
741
+ 1,102,74,0,0,39.5,0.293,42,1
742
+ 11,120,80,37,150,42.3,0.785,48,1
743
+ 3,102,44,20,94,30.8,0.4,26,0
744
+ 1,109,58,18,116,28.5,0.219,22,0
745
+ 9,140,94,0,0,32.7,0.734,45,1
746
+ 13,153,88,37,140,40.6,1.174,39,0
747
+ 12,100,84,33,105,30,0.488,46,0
748
+ 1,147,94,41,0,49.3,0.358,27,1
749
+ 1,81,74,41,57,46.3,1.096,32,0
750
+ 3,187,70,22,200,36.4,0.408,36,1
751
+ 6,162,62,0,0,24.3,0.178,50,1
752
+ 4,136,70,0,0,31.2,1.182,22,1
753
+ 1,121,78,39,74,39,0.261,28,0
754
+ 3,108,62,24,0,26,0.223,25,0
755
+ 0,181,88,44,510,43.3,0.222,26,1
756
+ 8,154,78,32,0,32.4,0.443,45,1
757
+ 1,128,88,39,110,36.5,1.057,37,1
758
+ 7,137,90,41,0,32,0.391,39,0
759
+ 0,123,72,0,0,36.3,0.258,52,1
760
+ 1,106,76,0,0,37.5,0.197,26,0
761
+ 6,190,92,0,0,35.5,0.278,66,1
762
+ 2,88,58,26,16,28.4,0.766,22,0
763
+ 9,170,74,31,0,44,0.403,43,1
764
+ 9,89,62,0,0,22.5,0.142,33,0
765
+ 10,101,76,48,180,32.9,0.171,63,0
766
+ 2,122,70,27,0,36.8,0.34,27,0
767
+ 5,121,72,23,112,26.2,0.245,30,0
768
+ 1,126,60,0,0,30.1,0.349,47,1
769
+ 1,93,70,31,0,30.4,0.315,23,0