From 56dce9a205f18db0b4597a469cd9d4c775a9c8f6 Mon Sep 17 00:00:00 2001 From: Wojciech Jarmosz Date: Wed, 30 Jun 2021 10:22:24 +0200 Subject: [PATCH] UM project --- .gitignore | 1 + heart_problem.csv | 1191 +++++++++++++++++++++++++++++++++++++++++++++ requirements.txt | 45 ++ script.py | 116 +++++ 4 files changed, 1353 insertions(+) create mode 100644 .gitignore create mode 100644 heart_problem.csv create mode 100644 requirements.txt create mode 100644 script.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8fa5b33 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +env \ No newline at end of file diff --git a/heart_problem.csv b/heart_problem.csv new file mode 100644 index 0000000..0e9b220 --- /dev/null +++ b/heart_problem.csv @@ -0,0 +1,1191 @@ +age,sex,chest pain type,resting bp s,cholesterol,fasting blood sugar,resting ecg,max heart rate,exercise angina,oldpeak,ST slope,target +40,1,2,140,289,0,0,172,0,0.0,1,0 +49,0,3,160,180,0,0,156,0,1.0,2,1 +37,1,2,130,283,0,1,98,0,0.0,1,0 +48,0,4,138,214,0,0,108,1,1.5,2,1 +54,1,3,150,195,0,0,122,0,0.0,1,0 +39,1,3,120,339,0,0,170,0,0.0,1,0 +45,0,2,130,237,0,0,170,0,0.0,1,0 +54,1,2,110,208,0,0,142,0,0.0,1,0 +37,1,4,140,207,0,0,130,1,1.5,2,1 +48,0,2,120,284,0,0,120,0,0.0,1,0 +37,0,3,130,211,0,0,142,0,0.0,1,0 +58,1,2,136,164,0,1,99,1,2.0,2,1 +39,1,2,120,204,0,0,145,0,0.0,1,0 +49,1,4,140,234,0,0,140,1,1.0,2,1 +42,0,3,115,211,0,1,137,0,0.0,1,0 +54,0,2,120,273,0,0,150,0,1.5,2,0 +38,1,4,110,196,0,0,166,0,0.0,2,1 +43,0,2,120,201,0,0,165,0,0.0,1,0 +60,1,4,100,248,0,0,125,0,1.0,2,1 +36,1,2,120,267,0,0,160,0,3.0,2,1 +43,0,1,100,223,0,0,142,0,0.0,1,0 +44,1,2,120,184,0,0,142,0,1.0,2,0 +49,0,2,124,201,0,0,164,0,0.0,1,0 +44,1,2,150,288,0,0,150,1,3.0,2,1 +40,1,3,130,215,0,0,138,0,0.0,1,0 +36,1,3,130,209,0,0,178,0,0.0,1,0 +53,1,4,124,260,0,1,112,1,3.0,2,0 +52,1,2,120,284,0,0,118,0,0.0,1,0 +53,0,2,113,468,0,0,127,0,0.0,1,0 +51,1,2,125,188,0,0,145,0,0.0,1,0 +53,1,3,145,518,0,0,130,0,0.0,2,1 +56,1,3,130,167,0,0,114,0,0.0,1,0 +54,1,4,125,224,0,0,122,0,2.0,2,1 +41,1,4,130,172,0,1,130,0,2.0,2,1 +43,0,2,150,186,0,0,154,0,0.0,1,0 +32,1,2,125,254,0,0,155,0,0.0,1,0 +65,1,4,140,306,1,0,87,1,1.5,2,1 +41,0,2,110,250,0,1,142,0,0.0,1,0 +48,0,2,120,177,1,1,148,0,0.0,1,0 +48,0,4,150,227,0,0,130,1,1.0,2,0 +54,0,2,150,230,0,0,130,0,0.0,1,0 +54,0,3,130,294,0,1,100,1,0.0,2,1 +35,1,2,150,264,0,0,168,0,0.0,1,0 +52,1,3,140,259,0,1,170,0,0.0,1,0 +43,1,4,120,175,0,0,120,1,1.0,2,1 +59,1,3,130,318,0,0,120,1,1.0,2,0 +37,1,4,120,223,0,0,168,0,0.0,1,0 +50,1,2,140,216,0,0,170,0,0.0,1,0 +36,1,3,112,340,0,0,184,0,1.0,2,0 +41,1,4,110,289,0,0,170,0,0.0,2,1 +50,1,4,130,233,0,0,121,1,2.0,2,1 +47,0,4,120,205,0,0,98,1,2.0,2,1 +45,1,2,140,224,1,0,122,0,0.0,1,0 +41,0,2,130,245,0,0,150,0,0.0,1,0 +52,0,4,130,180,0,0,140,1,1.5,2,0 +51,0,2,160,194,0,0,170,0,0.0,1,0 +31,1,4,120,270,0,0,153,1,1.5,2,1 +58,1,3,130,213,0,1,140,0,0.0,2,1 +54,1,4,150,365,0,1,134,0,1.0,1,0 +52,1,4,112,342,0,1,96,1,1.0,2,1 +49,1,2,100,253,0,0,174,0,0.0,1,0 +43,0,3,150,254,0,0,175,0,0.0,1,0 +45,1,4,140,224,0,0,144,0,0.0,1,0 +46,1,4,120,277,0,0,125,1,1.0,2,1 +50,0,2,110,202,0,0,145,0,0.0,1,0 +37,0,2,120,260,0,0,130,0,0.0,1,0 +45,0,4,132,297,0,0,144,0,0.0,1,0 +32,1,2,110,225,0,0,184,0,0.0,1,0 +52,1,4,160,246,0,1,82,1,4.0,2,1 +44,1,4,150,412,0,0,170,0,0.0,1,0 +57,1,2,140,265,0,1,145,1,1.0,2,1 +44,1,2,130,215,0,0,135,0,0.0,1,0 +52,1,4,120,182,0,0,150,0,0.0,2,1 +44,0,4,120,218,0,1,115,0,0.0,1,0 +55,1,4,140,268,0,0,128,1,1.5,2,1 +46,1,3,150,163,0,0,116,0,0.0,1,0 +32,1,4,118,529,0,0,130,0,0.0,2,1 +35,0,4,140,167,0,0,150,0,0.0,1,0 +52,1,2,140,100,0,0,138,1,0.0,1,0 +49,1,4,130,206,0,0,170,0,0.0,2,1 +55,1,3,110,277,0,0,160,0,0.0,1,0 +54,1,2,120,238,0,0,154,0,0.0,1,0 +63,1,4,150,223,0,0,115,0,0.0,2,1 +52,1,2,160,196,0,0,165,0,0.0,1,0 +56,1,4,150,213,1,0,125,1,1.0,2,1 +66,1,4,140,139,0,0,94,1,1.0,2,1 +65,1,4,170,263,1,0,112,1,2.0,2,1 +53,0,2,140,216,0,0,142,1,2.0,2,0 +43,1,1,120,291,0,1,155,0,0.0,2,1 +55,1,4,140,229,0,0,110,1,0.5,2,0 +49,0,2,110,208,0,0,160,0,0.0,1,0 +39,1,4,130,307,0,0,140,0,0.0,1,0 +52,0,2,120,210,0,0,148,0,0.0,1,0 +48,1,4,160,329,0,0,92,1,1.5,2,1 +39,0,3,110,182,0,1,180,0,0.0,1,0 +58,1,4,130,263,0,0,140,1,2.0,2,1 +43,1,2,142,207,0,0,138,0,0.0,1,0 +39,1,3,160,147,1,0,160,0,0.0,1,0 +56,1,4,120,85,0,0,140,0,0.0,1,0 +41,1,2,125,269,0,0,144,0,0.0,1,0 +65,1,4,130,275,0,1,115,1,1.0,2,1 +51,1,4,130,179,0,0,100,0,0.0,1,0 +40,0,4,150,392,0,0,130,0,2.0,2,1 +40,1,4,120,466,1,0,152,1,1.0,2,1 +46,1,4,118,186,0,0,124,0,0.0,2,1 +57,1,2,140,260,1,0,140,0,0.0,1,0 +48,0,4,120,254,0,1,110,0,0.0,1,0 +34,1,2,150,214,0,1,168,0,0.0,1,0 +50,1,4,140,129,0,0,135,0,0.0,1,0 +39,1,2,190,241,0,0,106,0,0.0,1,0 +59,0,2,130,188,0,0,124,0,1.0,2,0 +57,1,4,150,255,0,0,92,1,3.0,2,1 +47,1,4,140,276,1,0,125,1,0.0,1,0 +38,1,2,140,297,0,0,150,0,0.0,1,0 +49,0,3,130,207,0,1,135,0,0.0,1,0 +33,0,4,100,246,0,0,150,1,1.0,2,1 +38,1,4,120,282,0,0,170,0,0.0,2,1 +59,0,4,130,338,1,1,130,1,1.5,2,1 +35,0,1,120,160,0,1,185,0,0.0,1,0 +34,1,1,140,156,0,0,180,0,0.0,2,1 +47,0,3,135,248,1,0,170,0,0.0,2,1 +52,0,3,125,272,0,0,139,0,0.0,1,0 +46,1,4,110,240,0,1,140,0,0.0,1,0 +58,0,2,180,393,0,0,110,1,1.0,2,1 +58,1,2,130,230,0,0,150,0,0.0,1,0 +54,1,2,120,246,0,0,110,0,0.0,1,0 +34,0,2,130,161,0,0,190,0,0.0,1,0 +48,0,4,108,163,0,0,175,0,2.0,1,0 +54,0,2,120,230,1,0,140,0,0.0,1,0 +42,1,3,120,228,0,0,152,1,1.5,2,0 +38,1,3,145,292,0,0,130,0,0.0,1,0 +46,1,4,110,202,0,0,150,1,0.0,2,1 +56,1,4,170,388,0,1,122,1,2.0,2,1 +56,1,4,150,230,0,1,124,1,1.5,2,1 +61,0,4,130,294,0,1,120,1,1.0,2,0 +49,1,3,115,265,0,0,175,0,0.0,2,1 +43,0,2,120,215,0,1,175,0,0.0,1,0 +39,1,2,120,241,0,1,146,0,2.0,1,0 +54,1,4,140,166,0,0,118,1,0.0,2,1 +43,1,4,150,247,0,0,130,1,2.0,2,1 +52,1,4,160,331,0,0,94,1,2.5,2,1 +50,1,4,140,341,0,1,125,1,2.5,2,1 +47,1,4,160,291,0,1,158,1,3.0,2,1 +53,1,4,140,243,0,0,155,0,0.0,1,0 +56,0,2,120,279,0,0,150,0,1.0,2,1 +39,1,4,110,273,0,0,132,0,0.0,1,0 +42,1,2,120,198,0,0,155,0,0.0,1,0 +43,0,2,120,249,0,1,176,0,0.0,1,0 +50,1,2,120,168,0,0,160,0,0.0,1,0 +54,1,4,130,603,1,0,125,1,1.0,2,1 +39,1,2,130,215,0,0,120,0,0.0,1,0 +48,1,2,100,159,0,0,100,0,0.0,1,0 +40,1,2,130,275,0,0,150,0,0.0,1,0 +55,1,4,120,270,0,0,140,0,0.0,1,0 +41,1,2,120,291,0,1,160,0,0.0,1,0 +56,1,4,155,342,1,0,150,1,3.0,2,1 +38,1,4,110,190,0,0,150,1,1.0,2,1 +49,1,4,140,185,0,0,130,0,0.0,1,0 +44,1,4,130,290,0,0,100,1,2.0,2,1 +54,1,2,160,195,0,1,130,0,1.0,1,0 +59,1,4,140,264,1,2,119,1,0.0,2,1 +49,1,4,128,212,0,0,96,1,0.0,2,1 +47,1,2,160,263,0,0,174,0,0.0,1,0 +49,0,2,110,208,0,0,160,0,0.0,1,0 +42,1,2,120,196,0,0,150,0,0.0,1,0 +52,0,2,140,225,0,0,140,0,0.0,1,0 +46,1,1,140,272,1,0,175,0,2.0,2,1 +50,1,4,140,231,0,1,140,1,5.0,2,1 +48,1,2,140,238,0,0,118,0,0.0,1,0 +58,1,4,135,222,0,0,100,0,0.0,1,0 +58,1,3,140,179,0,0,160,0,0.0,1,0 +29,1,2,120,243,0,0,160,0,0.0,1,0 +40,1,3,140,235,0,0,188,0,0.0,1,0 +53,1,2,140,320,0,0,162,0,0.0,1,0 +49,1,3,140,187,0,0,172,0,0.0,1,0 +52,1,4,140,266,0,0,134,1,2.0,2,1 +43,1,4,140,288,0,0,135,1,2.0,2,1 +54,1,4,140,216,0,0,105,0,1.5,2,1 +59,1,2,140,287,0,0,150,0,0.0,1,0 +37,1,3,130,194,0,0,150,0,0.0,1,0 +46,0,4,130,238,0,0,90,0,0.0,1,0 +52,1,4,130,225,0,0,120,1,2.0,2,1 +51,1,2,130,224,0,0,150,0,0.0,1,0 +52,1,4,140,404,0,0,124,1,2.0,2,1 +46,1,4,110,238,0,1,140,1,1.0,2,0 +54,0,2,160,312,0,0,130,0,0.0,1,0 +58,1,3,160,211,1,1,92,0,0.0,2,1 +58,1,2,130,251,0,0,110,0,0.0,1,0 +41,1,4,120,237,1,0,138,1,1.0,2,1 +50,0,4,120,328,0,0,110,1,1.0,2,0 +53,1,4,180,285,0,1,120,1,1.5,2,1 +46,1,4,180,280,0,1,120,0,0.0,1,0 +50,1,2,170,209,0,1,116,0,0.0,1,0 +48,1,2,130,245,0,0,160,0,0.0,1,0 +45,1,3,135,192,0,0,110,0,0.0,1,0 +41,0,2,125,184,0,0,180,0,0.0,1,0 +62,0,1,160,193,0,0,116,0,0.0,1,0 +49,1,4,120,297,0,0,132,0,1.0,2,0 +42,1,2,150,268,0,0,136,0,0.0,1,0 +53,1,4,120,246,0,0,116,1,0.0,2,1 +57,0,1,130,308,0,0,98,0,1.0,2,0 +47,1,1,110,249,0,0,150,0,0.0,1,0 +46,1,3,120,230,0,0,150,0,0.0,1,0 +42,1,3,160,147,0,0,146,0,0.0,1,0 +31,0,2,100,219,0,1,150,0,0.0,1,0 +56,1,2,130,184,0,0,100,0,0.0,1,0 +50,1,4,150,215,0,0,140,1,0.0,1,0 +35,1,2,120,308,0,2,180,0,0.0,1,0 +35,1,2,110,257,0,0,140,0,0.0,2,1 +28,1,2,130,132,0,2,185,0,0.0,1,0 +54,1,4,125,216,0,0,140,0,0.0,2,1 +48,1,4,106,263,1,0,110,0,0.0,2,1 +50,0,3,140,288,0,0,140,1,0.0,2,1 +56,1,3,130,276,0,0,128,1,1.0,1,0 +56,0,3,130,219,0,1,164,0,0.0,1,0 +47,1,4,150,226,0,0,98,1,1.5,2,1 +30,0,1,170,237,0,1,170,0,0.0,1,0 +39,1,4,110,280,0,0,150,0,0.0,2,1 +54,1,3,120,217,0,0,137,0,0.0,1,0 +55,1,2,140,196,0,0,150,0,0.0,1,0 +29,1,2,140,263,0,0,170,0,0.0,1,0 +46,1,4,130,222,0,0,112,0,0.0,2,1 +51,0,4,160,303,0,0,150,1,1.0,2,1 +48,0,3,120,195,0,0,125,0,0.0,1,0 +33,1,3,120,298,0,0,185,0,0.0,1,0 +55,1,2,120,256,1,0,137,0,0.0,1,0 +50,1,4,145,264,0,0,150,0,0.0,2,1 +53,1,3,120,195,0,0,140,0,0.0,1,0 +38,1,4,92,117,0,0,134,1,2.5,2,1 +41,1,2,120,295,0,0,170,0,0.0,1,0 +37,0,4,130,173,0,1,184,0,0.0,1,0 +37,1,4,130,315,0,0,158,0,0.0,1,0 +40,1,3,130,281,0,0,167,0,0.0,1,0 +38,0,2,120,275,0,0,129,0,0.0,1,0 +41,1,4,112,250,0,0,142,0,0.0,1,0 +54,0,2,140,309,0,1,140,0,0.0,1,0 +39,1,2,120,200,0,0,160,1,1.0,2,0 +41,1,4,120,336,0,0,118,1,3.0,2,1 +55,1,1,140,295,0,0,136,0,0.0,2,1 +48,1,4,160,355,0,0,99,1,2.0,2,1 +48,1,4,160,193,0,0,102,1,3.0,2,1 +55,1,2,145,326,0,0,155,0,0.0,1,0 +54,1,4,200,198,0,0,142,1,2.0,2,1 +55,1,2,160,292,1,0,143,1,2.0,2,1 +43,0,2,120,266,0,0,118,0,0.0,1,0 +48,1,4,160,268,0,0,103,1,1.0,2,1 +54,1,1,120,171,0,0,137,0,2.0,1,0 +54,1,3,120,237,0,0,150,1,1.5,2,1 +48,1,4,122,275,1,1,150,1,2.0,3,1 +45,1,4,130,219,0,1,130,1,1.0,2,1 +49,1,4,130,341,0,0,120,1,1.0,2,1 +44,1,4,135,491,0,0,135,0,0.0,2,1 +48,1,4,120,260,0,0,115,0,2.0,2,1 +61,1,4,125,292,0,1,115,1,0.0,1,0 +62,1,2,140,271,0,0,152,0,1.0,1,0 +55,1,4,145,248,0,0,96,1,2.0,2,1 +53,0,3,120,274,0,0,130,0,0.0,1,0 +55,0,2,130,394,0,2,150,0,0.0,1,0 +36,1,3,150,160,0,0,172,0,0.0,1,0 +51,0,3,150,200,0,0,120,0,0.5,1,0 +55,0,2,122,320,0,0,155,0,0.0,1,0 +46,1,2,140,275,0,0,165,1,0.0,1,0 +54,0,2,120,221,0,0,138,0,1.0,1,0 +46,1,4,120,231,0,0,115,1,0.0,2,1 +59,1,4,130,126,0,0,125,0,0.0,2,1 +47,1,3,140,193,0,0,145,1,1.0,2,1 +54,1,2,160,305,0,0,175,0,0.0,1,0 +52,1,4,130,298,0,0,110,1,1.0,2,1 +34,1,2,98,220,0,0,150,0,0.0,1,0 +54,1,4,130,242,0,0,91,1,1.0,2,1 +47,0,3,130,235,0,0,145,0,2.0,2,0 +45,1,4,120,225,0,0,140,0,0.0,1,0 +32,0,2,105,198,0,0,165,0,0.0,1,0 +55,1,4,140,201,0,0,130,1,3.0,2,1 +55,1,3,120,220,0,2,134,0,0.0,1,0 +45,0,2,180,295,0,0,180,0,0.0,1,0 +59,1,3,180,213,0,0,100,0,0.0,1,0 +51,1,3,135,160,0,0,150,0,2.0,2,1 +52,1,4,170,223,0,0,126,1,1.5,2,1 +57,0,4,180,347,0,1,126,1,0.8,2,0 +54,0,2,130,253,0,1,155,0,0.0,1,0 +60,1,3,120,246,0,2,135,0,0.0,1,0 +49,1,4,150,222,0,0,122,0,2.0,2,1 +51,0,3,130,220,0,0,160,1,2.0,1,0 +55,0,2,110,344,0,1,160,0,0.0,1,0 +42,1,4,140,358,0,0,170,0,0.0,1,0 +51,0,3,110,190,0,0,120,0,0.0,1,0 +59,1,4,140,169,0,0,140,0,0.0,1,0 +53,1,2,120,181,0,0,132,0,0.0,1,0 +48,0,2,133,308,0,1,156,0,2.0,1,0 +36,1,2,120,166,0,0,180,0,0.0,1,0 +48,1,3,110,211,0,0,138,0,0.0,1,0 +47,0,2,140,257,0,0,135,0,1.0,1,0 +53,1,4,130,182,0,0,148,0,0.0,1,0 +65,1,4,115,0,0,0,93,1,0.0,2,1 +32,1,1,95,0,1,0,127,0,0.7,1,1 +61,1,4,105,0,1,0,110,1,1.5,1,1 +50,1,4,145,0,1,0,139,1,0.7,2,1 +57,1,4,110,0,1,1,131,1,1.4,1,1 +51,1,4,110,0,1,0,92,0,0.0,2,1 +47,1,4,110,0,1,1,149,0,2.1,1,1 +60,1,4,160,0,1,0,149,0,0.4,2,1 +55,1,2,140,0,0,1,150,0,0.2,1,0 +53,1,4,125,0,1,0,120,0,1.5,1,1 +62,0,4,120,0,1,1,123,1,1.7,3,1 +51,1,4,95,0,1,0,126,0,2.2,2,1 +51,0,4,120,0,1,0,127,1,1.5,1,1 +55,1,4,115,0,1,0,155,0,0.1,2,1 +53,1,2,130,0,0,1,120,0,0.7,3,0 +58,1,4,115,0,1,0,138,0,0.5,1,1 +57,1,4,95,0,1,0,182,0,0.7,3,1 +65,1,4,155,0,0,0,154,0,1.0,1,0 +60,1,4,125,0,1,0,110,0,0.1,1,1 +41,1,4,125,0,1,0,176,0,1.6,1,1 +34,1,4,115,0,1,0,154,0,0.2,1,1 +53,1,4,80,0,0,0,141,1,2.0,3,0 +74,1,2,145,0,1,1,123,0,1.3,1,1 +57,1,3,105,0,1,0,148,0,0.3,2,1 +56,1,4,140,0,1,0,121,1,1.8,1,1 +61,1,4,130,0,1,0,77,0,2.5,2,1 +68,1,4,145,0,1,0,136,0,1.8,1,1 +59,1,3,125,0,1,0,175,0,2.6,2,1 +63,1,4,100,0,1,0,109,0,-0.9,2,1 +38,0,4,105,0,1,0,166,0,2.8,1,1 +62,1,4,115,0,1,0,128,1,2.5,3,1 +46,1,4,100,0,1,1,133,0,-2.6,2,1 +42,1,4,105,0,1,0,128,1,-1.5,3,1 +45,1,3,110,0,0,0,138,0,-0.1,1,0 +59,1,4,125,0,1,0,119,1,0.9,1,1 +52,1,4,95,0,1,0,82,1,0.8,2,1 +60,1,4,130,0,1,1,130,1,1.1,3,1 +60,1,3,115,0,1,0,143,0,2.4,1,1 +56,1,4,115,0,1,1,82,0,-1.0,1,1 +38,1,3,100,0,0,0,179,0,-1.1,1,0 +40,1,4,95,0,1,1,144,0,0.0,1,1 +51,1,4,130,0,1,0,170,0,-0.7,1,1 +62,1,1,120,0,1,2,134,0,-0.8,2,1 +72,1,3,160,0,0,2,114,0,1.6,2,0 +63,1,4,150,0,1,1,154,0,3.7,1,1 +63,1,4,140,0,1,2,149,0,2.0,1,1 +64,0,4,95,0,1,0,145,0,1.1,3,1 +43,1,4,100,0,1,0,122,0,1.5,3,1 +64,1,4,110,0,1,0,114,1,1.3,3,1 +61,1,4,110,0,1,0,113,0,1.4,2,1 +52,1,4,130,0,1,0,120,0,0.0,2,1 +51,1,4,120,0,1,0,104,0,0.0,2,1 +69,1,4,135,0,0,0,130,0,0.0,2,1 +59,1,4,120,0,0,0,115,0,0.0,2,1 +48,1,4,115,0,1,0,128,0,0.0,2,1 +69,1,4,137,0,0,1,104,1,1.6,2,1 +36,1,4,110,0,1,0,125,1,1.0,2,1 +53,1,4,120,0,1,0,120,0,0.0,2,1 +43,1,4,140,0,0,1,140,1,0.5,1,1 +56,1,4,120,0,0,1,100,1,-1.0,3,1 +58,1,4,130,0,0,1,100,1,1.0,2,1 +55,1,4,120,0,0,1,92,0,0.3,1,1 +67,1,1,145,0,0,2,125,0,0.0,2,1 +46,1,4,115,0,0,0,113,1,1.5,2,1 +53,1,2,120,0,0,0,95,0,0.0,2,1 +38,1,3,115,0,0,0,128,1,0.0,2,1 +53,1,3,105,0,0,0,115,0,0.0,2,1 +62,1,3,160,0,0,0,72,1,0.0,2,1 +47,1,4,160,0,0,0,124,1,0.0,2,1 +56,1,3,155,0,0,1,99,0,0.0,2,1 +56,1,4,120,0,0,1,148,0,0.0,2,1 +56,1,3,120,0,0,0,97,0,0.0,2,0 +64,0,4,200,0,0,0,140,1,1.0,2,1 +61,1,4,150,0,0,0,117,1,2.0,2,1 +68,1,4,135,0,0,1,120,1,0.0,1,1 +57,1,4,140,0,0,0,120,1,2.0,2,1 +63,1,4,150,0,0,0,86,1,2.0,2,1 +60,1,4,135,0,0,0,63,1,0.5,1,1 +66,1,4,150,0,0,0,108,1,2.0,2,1 +63,1,4,185,0,0,0,98,1,0.0,1,1 +59,1,4,135,0,0,0,115,1,1.0,2,1 +61,1,4,125,0,0,0,105,1,0.0,3,1 +73,0,3,160,0,0,1,121,0,0.0,1,1 +47,1,3,155,0,0,0,118,1,1.0,2,1 +65,1,4,160,0,1,1,122,0,1.2,2,1 +70,1,4,140,0,1,0,157,1,2.0,2,1 +50,1,4,120,0,0,1,156,1,0.0,1,1 +60,1,4,160,0,0,1,99,1,0.5,2,1 +50,1,4,115,0,0,0,120,1,0.5,2,1 +43,1,4,115,0,0,0,145,1,2.0,2,1 +38,0,4,110,0,0,0,156,0,0.0,2,1 +54,1,4,120,0,0,0,155,0,0.0,2,1 +61,1,4,150,0,0,0,105,1,0.0,2,1 +42,1,4,145,0,0,0,99,1,0.0,2,1 +53,1,4,130,0,0,2,135,1,1.0,2,1 +55,1,4,140,0,0,0,83,0,0.0,2,1 +61,1,4,160,0,1,1,145,0,1.0,2,1 +51,1,4,140,0,0,0,60,0,0.0,2,1 +70,1,4,115,0,0,1,92,1,0.0,2,1 +61,1,4,130,0,0,2,115,0,0.0,2,1 +38,1,4,150,0,1,0,120,1,0.7,2,1 +57,1,4,160,0,1,0,98,1,2.0,2,1 +38,1,4,135,0,1,0,150,0,0.0,2,1 +62,0,1,140,0,1,0,143,0,0.0,2,1 +58,1,4,170,0,1,1,105,1,0.0,2,1 +52,1,4,165,0,1,0,122,1,1.0,1,1 +61,1,3,200,0,1,1,70,0,0.0,2,1 +50,0,4,160,0,1,0,110,0,0.0,2,1 +51,1,4,130,0,1,1,163,0,0.0,2,1 +65,1,4,145,0,1,1,67,0,0.7,2,1 +52,1,4,135,0,1,0,128,1,2.0,2,1 +47,1,3,110,0,1,0,120,1,0.0,2,1 +35,1,4,120,0,1,0,130,1,1.2,2,1 +57,1,4,140,0,1,0,100,1,0.0,2,1 +62,1,4,115,0,1,0,72,1,-0.5,2,1 +59,1,4,110,0,1,0,94,0,0.0,2,1 +53,1,3,160,0,1,2,122,1,0.0,2,1 +62,1,4,150,0,1,1,78,0,2.0,2,1 +54,1,4,180,0,1,0,150,0,1.5,2,1 +56,1,4,125,0,1,0,103,1,1.0,2,1 +56,1,3,125,0,1,0,98,0,-2.0,2,1 +54,1,4,130,0,1,0,110,1,3.0,2,1 +66,0,4,155,0,1,0,90,0,0.0,2,1 +63,1,4,140,260,0,1,112,1,3.0,2,1 +44,1,4,130,209,0,1,127,0,0.0,1,0 +60,1,4,132,218,0,1,140,1,1.5,3,1 +55,1,4,142,228,0,1,149,1,2.5,1,1 +66,1,3,110,213,1,2,99,1,1.3,2,0 +66,1,3,120,0,0,1,120,0,-0.5,1,0 +65,1,4,150,236,1,1,105,1,0.0,2,1 +60,1,3,180,0,0,1,140,1,1.5,2,0 +60,1,3,120,0,1,0,141,1,2.0,1,1 +60,1,2,160,267,1,1,157,0,0.5,2,1 +56,1,2,126,166,0,1,140,0,0.0,1,0 +59,1,4,140,0,0,1,117,1,1.0,2,1 +62,1,4,110,0,0,0,120,1,0.5,2,1 +63,1,3,133,0,0,2,120,1,1.0,2,1 +57,1,4,128,0,1,1,148,1,1.0,2,1 +62,1,4,120,220,0,1,86,0,0.0,1,0 +63,1,4,170,177,0,0,84,1,2.5,3,1 +46,1,4,110,236,0,0,125,1,2.0,2,1 +63,1,4,126,0,0,1,120,0,1.5,3,0 +60,1,4,152,0,0,1,118,1,0.0,1,0 +58,1,4,116,0,0,0,124,0,1.0,1,1 +64,1,4,120,0,1,1,106,0,2.0,2,1 +63,1,3,130,0,0,1,111,1,0.0,2,1 +74,1,3,138,0,0,0,116,0,0.2,1,0 +52,1,3,128,0,0,1,180,0,3.0,1,1 +69,1,4,130,0,1,1,129,0,1.0,2,1 +51,1,4,128,0,1,1,125,1,1.2,2,1 +60,1,4,130,186,1,1,140,1,0.5,2,1 +56,1,4,120,100,0,0,120,1,1.5,2,1 +55,1,3,136,228,0,1,124,1,1.6,2,1 +54,1,4,130,0,0,1,117,1,1.4,2,1 +77,1,4,124,171,0,1,110,1,2.0,1,1 +63,1,4,160,230,1,0,105,1,1.0,2,1 +55,1,3,0,0,0,0,155,0,1.5,2,1 +52,1,3,122,0,0,0,110,1,2.0,3,1 +64,1,4,144,0,0,1,122,1,1.0,2,1 +60,1,4,140,281,0,1,118,1,1.5,2,1 +60,1,4,120,0,0,0,133,1,2.0,1,0 +58,1,4,136,203,1,0,123,1,1.2,2,1 +59,1,4,154,0,0,1,131,1,1.5,1,0 +61,1,3,120,0,0,0,80,1,0.0,2,1 +40,1,4,125,0,1,0,165,0,0.0,2,1 +61,1,4,134,0,1,1,86,0,1.5,2,1 +41,1,4,104,0,0,1,111,0,0.0,1,0 +57,1,4,139,277,1,1,118,1,1.9,2,1 +63,1,4,136,0,0,0,84,1,0.0,2,1 +59,1,4,122,233,0,0,117,1,1.3,3,1 +51,1,4,128,0,0,0,107,0,0.0,1,0 +59,1,3,131,0,0,0,128,1,2.0,3,1 +42,1,3,134,240,0,0,160,0,0.0,1,0 +55,1,3,120,0,0,1,125,1,2.5,2,1 +63,0,2,132,0,0,0,130,0,0.1,1,0 +62,1,4,152,153,0,1,97,1,1.6,1,1 +56,1,2,124,224,1,0,161,0,2.0,2,0 +53,1,4,126,0,0,0,106,0,0.0,2,1 +68,1,4,138,0,0,0,130,1,3.0,2,1 +53,1,4,154,0,1,1,140,1,1.5,2,1 +60,1,3,141,316,1,1,122,1,1.7,2,1 +62,1,2,131,0,0,0,130,0,0.1,1,0 +59,1,4,178,0,1,2,120,1,0.0,2,1 +51,1,4,132,218,1,2,139,0,0.1,1,0 +61,1,4,110,0,1,0,108,1,2.0,3,1 +57,1,4,130,311,1,1,148,1,2.0,2,1 +56,1,3,170,0,0,2,123,1,2.5,2,1 +58,1,2,126,0,1,0,110,1,2.0,2,1 +69,1,3,140,0,1,1,118,0,2.5,3,1 +67,1,1,142,270,1,0,125,0,2.5,1,1 +58,1,4,120,0,0,2,106,1,1.5,3,1 +65,1,4,134,0,0,0,112,1,1.1,2,1 +63,1,2,139,217,1,1,128,1,1.2,2,1 +55,1,2,110,214,1,1,180,0,0.4,1,0 +57,1,4,140,214,0,1,144,1,2.0,2,1 +65,1,1,140,252,0,0,135,0,0.3,1,0 +54,1,4,136,220,0,0,140,1,3.0,2,1 +72,1,3,120,214,0,0,102,1,1.0,2,1 +75,1,4,170,203,1,1,108,0,0.0,2,1 +49,1,1,130,0,0,1,145,0,3.0,2,1 +51,1,3,137,339,0,0,127,1,1.7,2,1 +60,1,4,142,216,0,0,110,1,2.5,2,1 +64,0,4,142,276,0,0,140,1,1.0,2,1 +58,1,4,132,458,1,0,69,0,1.0,3,0 +61,1,4,146,241,0,0,148,1,3.0,3,1 +67,1,4,160,384,1,1,130,1,0.0,2,1 +62,1,4,135,297,0,0,130,1,1.0,2,1 +65,1,4,136,248,0,0,140,1,4.0,3,1 +63,1,4,130,308,0,0,138,1,2.0,2,1 +69,1,4,140,208,0,1,140,1,2.0,2,1 +51,1,4,132,227,1,1,138,0,0.2,1,0 +62,1,4,158,210,1,0,112,1,3.0,3,1 +55,1,3,136,245,1,1,131,1,1.2,2,1 +75,1,4,136,225,0,0,112,1,3.0,2,1 +40,1,3,106,240,0,0,80,1,0.0,1,0 +67,1,4,120,0,1,0,150,0,1.5,3,1 +58,1,4,110,198,0,0,110,0,0.0,2,1 +60,1,4,136,195,0,0,126,0,0.3,1,0 +63,1,4,160,267,1,1,88,1,2.0,2,1 +35,1,3,123,161,0,1,153,0,-0.1,1,0 +62,1,1,112,258,0,1,150,1,1.3,2,1 +43,1,4,122,0,0,0,120,0,0.5,1,1 +63,1,3,130,0,1,1,160,0,3.0,2,0 +68,1,3,150,195,1,0,132,0,0.0,0,1 +65,1,4,150,235,0,0,120,1,1.5,2,1 +48,1,3,102,0,1,1,110,1,1.0,3,1 +63,1,4,96,305,0,1,121,1,1.0,1,1 +64,1,4,130,223,0,1,128,0,0.5,2,0 +61,1,4,120,282,0,1,135,1,4.0,3,1 +50,1,4,144,349,0,2,120,1,1.0,1,1 +59,1,4,124,160,0,0,117,1,1.0,2,1 +55,1,4,150,160,0,1,150,0,0.0,1,0 +45,1,3,130,236,0,0,144,0,0.1,1,0 +65,1,4,144,312,0,2,113,1,1.7,2,1 +61,1,2,139,283,0,0,135,0,0.3,1,0 +49,1,3,131,142,0,0,127,1,1.5,2,1 +72,1,4,143,211,0,0,109,1,1.4,2,1 +50,1,4,133,218,0,0,128,1,1.1,2,1 +64,1,4,143,306,1,1,115,1,1.8,2,1 +55,1,4,116,186,1,1,102,0,0.0,2,1 +63,1,4,110,252,0,1,140,1,2.0,2,1 +59,1,4,125,222,0,0,135,1,2.5,3,1 +56,1,4,130,0,0,2,122,1,1.0,2,1 +62,1,3,133,0,1,1,119,1,1.2,2,1 +74,1,4,150,258,1,1,130,1,4.0,3,1 +54,1,4,130,202,1,0,112,1,2.0,2,1 +57,1,4,110,197,0,2,100,0,0.0,1,0 +62,1,3,138,204,0,1,122,1,1.2,2,1 +76,1,3,104,113,0,2,120,0,3.5,3,1 +54,0,4,138,274,0,0,105,1,1.5,2,1 +70,1,4,170,192,0,1,129,1,3.0,3,1 +61,0,2,140,298,1,0,120,1,0.0,1,0 +48,1,4,132,272,0,1,139,0,0.2,1,0 +48,1,3,132,220,1,1,162,0,0.0,2,1 +61,1,1,142,200,1,1,100,0,1.5,3,1 +66,1,4,112,261,0,0,140,0,1.5,1,1 +68,1,1,139,181,1,1,135,0,0.2,1,0 +55,1,4,172,260,0,0,73,0,2.0,2,1 +62,1,3,120,220,0,2,86,0,0.0,1,0 +71,1,3,144,221,0,0,108,1,1.8,2,1 +74,1,1,145,216,1,0,116,1,1.8,2,1 +53,1,3,155,175,1,1,160,0,0.3,1,0 +58,1,3,150,219,0,1,118,1,0.0,2,1 +75,1,4,160,310,1,0,112,1,2.0,3,0 +56,1,3,137,208,1,1,122,1,1.8,2,1 +58,1,3,137,232,0,1,124,1,1.4,2,1 +64,1,4,134,273,0,0,102,1,4.0,3,1 +54,1,3,133,203,0,1,137,0,0.2,1,0 +54,1,2,132,182,0,1,141,0,0.1,1,0 +59,1,4,140,274,0,0,154,1,2.0,2,0 +55,1,4,135,204,1,1,126,1,1.1,2,1 +57,1,4,144,270,1,1,160,1,2.0,2,1 +61,1,4,141,292,0,1,115,1,1.7,2,1 +41,1,4,150,171,0,0,128,1,1.5,2,0 +71,1,4,130,221,0,1,115,1,0.0,2,1 +38,1,4,110,289,0,0,105,1,1.5,3,1 +55,1,4,158,217,0,0,110,1,2.5,2,1 +56,1,4,128,223,0,1,119,1,2.0,3,1 +69,1,4,140,110,1,0,109,1,1.5,2,1 +64,1,4,150,193,0,1,135,1,0.5,2,1 +72,1,4,160,123,1,2,130,0,1.5,2,1 +69,1,4,142,210,1,1,112,1,1.5,2,1 +56,1,4,137,282,1,0,126,1,1.2,2,1 +62,1,4,139,170,0,1,120,1,3.0,2,1 +67,1,4,146,369,0,0,110,1,1.9,2,1 +57,1,4,156,173,0,2,119,1,3.0,3,1 +69,1,4,145,289,1,1,110,1,1.8,2,1 +51,1,4,131,152,1,2,130,1,1.0,2,1 +48,1,4,140,208,0,0,159,1,1.5,1,1 +69,1,4,122,216,1,2,84,1,0.0,2,1 +69,1,3,142,271,0,2,126,0,0.3,1,0 +64,1,4,141,244,1,1,116,1,1.5,2,1 +57,1,2,180,285,1,1,120,0,0.8,2,1 +53,1,4,124,243,0,0,122,1,2.0,2,1 +37,1,3,118,240,0,2,165,0,1.0,2,0 +67,1,4,140,219,0,1,122,1,2.0,2,1 +74,1,3,140,237,1,0,94,0,0.0,2,1 +63,1,2,136,165,0,1,133,0,0.2,1,0 +58,1,4,100,213,0,1,110,0,0.0,1,0 +61,1,4,190,287,1,2,150,1,2.0,3,1 +64,1,4,130,258,1,2,130,0,0.0,2,1 +58,1,4,160,256,1,2,113,1,1.0,1,1 +60,1,4,130,186,1,2,140,1,0.5,2,1 +57,1,4,122,264,0,2,100,0,0.0,2,1 +55,1,3,133,185,0,1,136,0,0.2,1,0 +55,1,4,120,226,0,2,127,1,1.7,3,1 +56,1,4,130,203,1,0,98,0,1.5,2,1 +57,1,4,130,207,0,1,96,1,1.0,2,0 +61,1,3,140,284,0,0,123,1,1.3,2,1 +61,1,3,120,337,0,0,98,1,0.0,2,1 +58,1,3,150,219,0,1,118,1,0.0,2,1 +74,1,4,155,310,0,0,112,1,1.5,3,1 +68,1,3,134,254,1,0,151,1,0.0,1,0 +51,0,4,114,258,1,2,96,0,1.0,1,0 +62,1,4,160,254,1,1,108,1,3.0,2,1 +53,1,4,144,300,1,1,128,1,1.5,2,1 +62,1,4,158,170,0,1,138,1,0.0,2,1 +46,1,4,134,310,0,0,126,0,0.0,2,1 +54,0,4,127,333,1,1,154,0,0.0,2,1 +62,1,1,135,139,0,1,137,0,0.2,1,0 +55,1,4,122,223,1,1,100,0,0.0,2,1 +58,1,4,140,385,1,2,135,0,0.3,1,0 +62,1,2,120,254,0,2,93,1,0.0,2,1 +70,1,4,130,322,0,2,109,0,2.4,2,1 +67,0,3,115,564,0,2,160,0,1.6,2,0 +57,1,2,124,261,0,0,141,0,0.3,1,1 +64,1,4,128,263,0,0,105,1,0.2,2,0 +74,0,2,120,269,0,2,121,1,0.2,1,0 +65,1,4,120,177,0,0,140,0,0.4,1,0 +56,1,3,130,256,1,2,142,1,0.6,2,1 +59,1,4,110,239,0,2,142,1,1.2,2,1 +60,1,4,140,293,0,2,170,0,1.2,2,1 +63,0,4,150,407,0,2,154,0,4,2,1 +59,1,4,135,234,0,0,161,0,0.5,2,0 +53,1,4,142,226,0,2,111,1,0,1,0 +44,1,3,140,235,0,2,180,0,0,1,0 +61,1,1,134,234,0,0,145,0,2.6,2,1 +57,0,4,128,303,0,2,159,0,0,1,0 +71,0,4,112,149,0,0,125,0,1.6,2,0 +46,1,4,140,311,0,0,120,1,1.8,2,1 +53,1,4,140,203,1,2,155,1,3.1,3,1 +64,1,1,110,211,0,2,144,1,1.8,2,0 +40,1,1,140,199,0,0,178,1,1.4,1,0 +67,1,4,120,229,0,2,129,1,2.6,2,1 +48,1,2,130,245,0,2,180,0,0.2,2,0 +43,1,4,115,303,0,0,181,0,1.2,2,0 +47,1,4,112,204,0,0,143,0,0.1,1,0 +54,0,2,132,288,1,2,159,1,0,1,0 +48,0,3,130,275,0,0,139,0,0.2,1,0 +46,0,4,138,243,0,2,152,1,0,2,0 +51,0,3,120,295,0,2,157,0,0.6,1,0 +58,1,3,112,230,0,2,165,0,2.5,2,1 +71,0,3,110,265,1,2,130,0,0,1,0 +57,1,3,128,229,0,2,150,0,0.4,2,1 +66,1,4,160,228,0,2,138,0,2.3,1,0 +37,0,3,120,215,0,0,170,0,0,1,0 +59,1,4,170,326,0,2,140,1,3.4,3,1 +50,1,4,144,200,0,2,126,1,0.9,2,1 +48,1,4,130,256,1,2,150,1,0,1,1 +61,1,4,140,207,0,2,138,1,1.9,1,1 +59,1,1,160,273,0,2,125,0,0,1,1 +42,1,3,130,180,0,0,150,0,0,1,0 +48,1,4,122,222,0,2,186,0,0,1,0 +40,1,4,152,223,0,0,181,0,0,1,1 +62,0,4,124,209,0,0,163,0,0,1,0 +44,1,3,130,233,0,0,179,1,0.4,1,0 +46,1,2,101,197,1,0,156,0,0,1,0 +59,1,3,126,218,1,0,134,0,2.2,2,1 +58,1,3,140,211,1,2,165,0,0,1,0 +49,1,3,118,149,0,2,126,0,0.8,1,1 +44,1,4,110,197,0,2,177,0,0,1,1 +66,1,2,160,246,0,0,120,1,0,2,1 +65,0,4,150,225,0,2,114,0,1,2,1 +42,1,4,136,315,0,0,125,1,1.8,2,1 +52,1,2,128,205,1,0,184,0,0,1,0 +65,0,3,140,417,1,2,157,0,0.8,1,0 +63,0,2,140,195,0,0,179,0,0,1,0 +45,0,2,130,234,0,2,175,0,0.6,2,0 +41,0,2,105,198,0,0,168,0,0,1,0 +61,1,4,138,166,0,2,125,1,3.6,2,1 +60,0,3,120,178,1,0,96,0,0,1,0 +59,0,4,174,249,0,0,143,1,0,2,1 +62,1,2,120,281,0,2,103,0,1.4,2,1 +57,1,3,150,126,1,0,173,0,0.2,1,0 +51,0,4,130,305,0,0,142,1,1.2,2,1 +44,1,3,120,226,0,0,169,0,0,1,0 +60,0,1,150,240,0,0,171,0,0.9,1,0 +63,1,1,145,233,1,2,150,0,2.3,3,0 +57,1,4,150,276,0,2,112,1,0.6,2,1 +51,1,4,140,261,0,2,186,1,0,1,0 +58,0,2,136,319,1,2,152,0,0,1,1 +44,0,3,118,242,0,0,149,0,0.3,2,0 +47,1,3,108,243,0,0,152,0,0,1,1 +61,1,4,120,260,0,0,140,1,3.6,2,1 +57,0,4,120,354,0,0,163,1,0.6,1,0 +70,1,2,156,245,0,2,143,0,0,1,0 +76,0,3,140,197,0,1,116,0,1.1,2,0 +67,0,4,106,223,0,0,142,0,0.3,1,0 +45,1,4,142,309,0,2,147,1,0,2,1 +45,1,4,104,208,0,2,148,1,3,2,0 +39,0,3,94,199,0,0,179,0,0,1,0 +42,0,3,120,209,0,0,173,0,0,2,0 +56,1,2,120,236,0,0,178,0,0.8,1,0 +58,1,4,146,218,0,0,105,0,2,2,1 +35,1,4,120,198,0,0,130,1,1.6,2,1 +58,1,4,150,270,0,2,111,1,0.8,1,1 +41,1,3,130,214,0,2,168,0,2,2,0 +57,1,4,110,201,0,0,126,1,1.5,2,0 +42,1,1,148,244,0,2,178,0,0.8,1,0 +62,1,2,128,208,1,2,140,0,0,1,0 +59,1,1,178,270,0,2,145,0,4.2,3,0 +41,0,2,126,306,0,0,163,0,0,1,0 +50,1,4,150,243,0,2,128,0,2.6,2,1 +59,1,2,140,221,0,0,164,1,0,1,0 +61,0,4,130,330,0,2,169,0,0,1,1 +54,1,4,124,266,0,2,109,1,2.2,2,1 +54,1,4,110,206,0,2,108,1,0,2,1 +52,1,4,125,212,0,0,168,0,1,1,1 +47,1,4,110,275,0,2,118,1,1,2,1 +66,1,4,120,302,0,2,151,0,0.4,2,0 +58,1,4,100,234,0,0,156,0,0.1,1,1 +64,0,3,140,313,0,0,133,0,0.2,1,0 +50,0,2,120,244,0,0,162,0,1.1,1,0 +44,0,3,108,141,0,0,175,0,0.6,2,0 +67,1,4,120,237,0,0,71,0,1,2,1 +49,0,4,130,269,0,0,163,0,0,1,0 +57,1,4,165,289,1,2,124,0,1,2,1 +63,1,4,130,254,0,2,147,0,1.4,2,1 +48,1,4,124,274,0,2,166,0,0.5,2,1 +51,1,3,100,222,0,0,143,1,1.2,2,0 +60,0,4,150,258,0,2,157,0,2.6,2,1 +59,1,4,140,177,0,0,162,1,0,1,1 +45,0,2,112,160,0,0,138,0,0,2,0 +55,0,4,180,327,0,1,117,1,3.4,2,1 +41,1,2,110,235,0,0,153,0,0,1,0 +60,0,4,158,305,0,2,161,0,0,1,1 +54,0,3,135,304,1,0,170,0,0,1,0 +42,1,2,120,295,0,0,162,0,0,1,0 +49,0,2,134,271,0,0,162,0,0,2,0 +46,1,4,120,249,0,2,144,0,0.8,1,1 +56,0,4,200,288,1,2,133,1,4,3,1 +66,0,1,150,226,0,0,114,0,2.6,3,0 +56,1,4,130,283,1,2,103,1,1.6,3,1 +49,1,3,120,188,0,0,139,0,2,2,1 +54,1,4,122,286,0,2,116,1,3.2,2,1 +57,1,4,152,274,0,0,88,1,1.2,2,1 +65,0,3,160,360,0,2,151,0,0.8,1,0 +54,1,3,125,273,0,2,152,0,0.5,3,0 +54,0,3,160,201,0,0,163,0,0,1,0 +62,1,4,120,267,0,0,99,1,1.8,2,1 +52,0,3,136,196,0,2,169,0,0.1,2,0 +52,1,2,134,201,0,0,158,0,0.8,1,0 +60,1,4,117,230,1,0,160,1,1.4,1,1 +63,0,4,108,269,0,0,169,1,1.8,2,1 +66,1,4,112,212,0,2,132,1,0.1,1,1 +42,1,4,140,226,0,0,178,0,0,1,0 +64,1,4,120,246,0,2,96,1,2.2,3,1 +54,1,3,150,232,0,2,165,0,1.6,1,0 +46,0,3,142,177,0,2,160,1,1.4,3,0 +67,0,3,152,277,0,0,172,0,0,1,0 +56,1,4,125,249,1,2,144,1,1.2,2,1 +34,0,2,118,210,0,0,192,0,0.7,1,0 +57,1,4,132,207,0,0,168,1,0,1,0 +64,1,4,145,212,0,2,132,0,2,2,1 +59,1,4,138,271,0,2,182,0,0,1,0 +50,1,3,140,233,0,0,163,0,0.6,2,1 +51,1,1,125,213,0,2,125,1,1.4,1,0 +54,1,2,192,283,0,2,195,0,0,1,1 +53,1,4,123,282,0,0,95,1,2,2,1 +52,1,4,112,230,0,0,160,0,0,1,1 +40,1,4,110,167,0,2,114,1,2,2,1 +58,1,3,132,224,0,2,173,0,3.2,1,1 +41,0,3,112,268,0,2,172,1,0,1,0 +41,1,3,112,250,0,0,179,0,0,1,0 +50,0,3,120,219,0,0,158,0,1.6,2,0 +54,0,3,108,267,0,2,167,0,0,1,0 +64,0,4,130,303,0,0,122,0,2,2,0 +51,0,3,130,256,0,2,149,0,0.5,1,0 +46,0,2,105,204,0,0,172,0,0,1,0 +55,1,4,140,217,0,0,111,1,5.6,3,1 +45,1,2,128,308,0,2,170,0,0,1,0 +56,1,1,120,193,0,2,162,0,1.9,2,0 +66,0,4,178,228,1,0,165,1,1,2,1 +38,1,1,120,231,0,0,182,1,3.8,2,1 +62,0,4,150,244,0,0,154,1,1.4,2,1 +55,1,2,130,262,0,0,155,0,0,1,0 +58,1,4,128,259,0,2,130,1,3,2,1 +43,1,4,110,211,0,0,161,0,0,1,0 +64,0,4,180,325,0,0,154,1,0,1,0 +50,0,4,110,254,0,2,159,0,0,1,0 +53,1,3,130,197,1,2,152,0,1.2,3,0 +45,0,4,138,236,0,2,152,1,0.2,2,0 +65,1,1,138,282,1,2,174,0,1.4,2,1 +69,1,1,160,234,1,2,131,0,0.1,2,0 +69,1,3,140,254,0,2,146,0,2,2,1 +67,1,4,100,299,0,2,125,1,0.9,2,1 +68,0,3,120,211,0,2,115,0,1.5,2,0 +34,1,1,118,182,0,2,174,0,0,1,0 +62,0,4,138,294,1,0,106,0,1.9,2,1 +51,1,4,140,298,0,0,122,1,4.2,2,1 +46,1,3,150,231,0,0,147,0,3.6,2,1 +67,1,4,125,254,1,0,163,0,0.2,2,1 +50,1,3,129,196,0,0,163,0,0,1,0 +42,1,3,120,240,1,0,194,0,0.8,3,0 +56,0,4,134,409,0,2,150,1,1.9,2,1 +41,1,4,110,172,0,2,158,0,0,1,1 +42,0,4,102,265,0,2,122,0,0.6,2,0 +53,1,3,130,246,1,2,173,0,0,1,0 +43,1,3,130,315,0,0,162,0,1.9,1,0 +56,1,4,132,184,0,2,105,1,2.1,2,1 +52,1,4,108,233,1,0,147,0,0.1,1,0 +62,0,4,140,394,0,2,157,0,1.2,2,0 +70,1,3,160,269,0,0,112,1,2.9,2,1 +54,1,4,140,239,0,0,160,0,1.2,1,0 +70,1,4,145,174,0,0,125,1,2.6,3,1 +54,1,2,108,309,0,0,156,0,0,1,0 +35,1,4,126,282,0,2,156,1,0,1,1 +48,1,3,124,255,1,0,175,0,0,1,0 +55,0,2,135,250,0,2,161,0,1.4,2,0 +58,0,4,100,248,0,2,122,0,1,2,0 +54,0,3,110,214,0,0,158,0,1.6,2,0 +69,0,1,140,239,0,0,151,0,1.8,1,0 +77,1,4,125,304,0,2,162,1,0,1,1 +68,1,3,118,277,0,0,151,0,1,1,0 +58,1,4,125,300,0,2,171,0,0,1,1 +60,1,4,125,258,0,2,141,1,2.8,2,1 +51,1,4,140,299,0,0,173,1,1.6,1,1 +55,1,4,160,289,0,2,145,1,0.8,2,1 +52,1,1,152,298,1,0,178,0,1.2,2,0 +60,0,3,102,318,0,0,160,0,0,1,0 +58,1,3,105,240,0,2,154,1,0.6,2,0 +64,1,3,125,309,0,0,131,1,1.8,2,1 +37,1,3,130,250,0,0,187,0,3.5,3,0 +59,1,1,170,288,0,2,159,0,0.2,2,1 +51,1,3,125,245,1,2,166,0,2.4,2,0 +43,0,3,122,213,0,0,165,0,0.2,2,0 +58,1,4,128,216,0,2,131,1,2.2,2,1 +29,1,2,130,204,0,2,202,0,0,1,0 +41,0,2,130,204,0,2,172,0,1.4,1,0 +63,0,3,135,252,0,2,172,0,0,1,0 +51,1,3,94,227,0,0,154,1,0,1,0 +54,1,3,120,258,0,2,147,0,0.4,2,0 +44,1,2,120,220,0,0,170,0,0,1,0 +54,1,4,110,239,0,0,126,1,2.8,2,1 +65,1,4,135,254,0,2,127,0,2.8,2,1 +57,1,3,150,168,0,0,174,0,1.6,1,0 +63,1,4,130,330,1,2,132,1,1.8,1,1 +35,0,4,138,183,0,0,182,0,1.4,1,0 +41,1,2,135,203,0,0,132,0,0,2,0 +62,0,3,130,263,0,0,97,0,1.2,2,1 +43,0,4,132,341,1,2,136,1,3,2,1 +58,0,1,150,283,1,2,162,0,1,1,0 +52,1,1,118,186,0,2,190,0,0,2,0 +61,0,4,145,307,0,2,146,1,1,2,1 +39,1,4,118,219,0,0,140,0,1.2,2,1 +45,1,4,115,260,0,2,185,0,0,1,0 +52,1,4,128,255,0,0,161,1,0,1,1 +62,1,3,130,231,0,0,146,0,1.8,2,0 +62,0,4,160,164,0,2,145,0,6.2,3,1 +53,0,4,138,234,0,2,160,0,0,1,0 +43,1,4,120,177,0,2,120,1,2.5,2,1 +47,1,3,138,257,0,2,156,0,0,1,0 +52,1,2,120,325,0,0,172,0,0.2,1,0 +68,1,3,180,274,1,2,150,1,1.6,2,1 +39,1,3,140,321,0,2,182,0,0,1,0 +53,0,4,130,264,0,2,143,0,0.4,2,0 +62,0,4,140,268,0,2,160,0,3.6,3,1 +51,0,3,140,308,0,2,142,0,1.5,1,0 +60,1,4,130,253,0,0,144,1,1.4,1,1 +65,1,4,110,248,0,2,158,0,0.6,1,1 +65,0,3,155,269,0,0,148,0,0.8,1,0 +60,1,3,140,185,0,2,155,0,3,2,1 +60,1,4,145,282,0,2,142,1,2.8,2,1 +54,1,4,120,188,0,0,113,0,1.4,2,1 +44,1,2,130,219,0,2,188,0,0,1,0 +44,1,4,112,290,0,2,153,0,0,1,1 +51,1,3,110,175,0,0,123,0,0.6,1,0 +59,1,3,150,212,1,0,157,0,1.6,1,0 +71,0,2,160,302,0,0,162,0,0.4,1,0 +61,1,3,150,243,1,0,137,1,1,2,0 +55,1,4,132,353,0,0,132,1,1.2,2,1 +64,1,3,140,335,0,0,158,0,0,1,1 +43,1,4,150,247,0,0,171,0,1.5,1,0 +58,0,3,120,340,0,0,172,0,0,1,0 +60,1,4,130,206,0,2,132,1,2.4,2,1 +58,1,2,120,284,0,2,160,0,1.8,2,1 +49,1,2,130,266,0,0,171,0,0.6,1,0 +48,1,2,110,229,0,0,168,0,1,3,1 +52,1,3,172,199,1,0,162,0,0.5,1,0 +44,1,2,120,263,0,0,173,0,0,1,0 +56,0,2,140,294,0,2,153,0,1.3,2,0 +57,1,4,140,192,0,0,148,0,0.4,2,0 +67,1,4,160,286,0,2,108,1,1.5,2,1 +63,1,1,145,233,1,2,150,0,2.3,3,0 +67,1,4,160,286,0,2,108,1,1.5,2,1 +67,1,4,120,229,0,2,129,1,2.6,2,1 +37,1,3,130,250,0,0,187,0,3.5,3,0 +41,0,2,130,204,0,2,172,0,1.4,1,0 +56,1,2,120,236,0,0,178,0,0.8,1,0 +62,0,4,140,268,0,2,160,0,3.6,3,1 +57,0,4,120,354,0,0,163,1,0.6,1,0 +63,1,4,130,254,0,2,147,0,1.4,2,1 +53,1,4,140,203,1,2,155,1,3.1,3,1 +57,1,4,140,192,0,0,148,0,0.4,2,0 +56,0,2,140,294,0,2,153,0,1.3,2,0 +56,1,3,130,256,1,2,142,1,0.6,2,1 +44,1,2,120,263,0,0,173,0,0,1,0 +52,1,3,172,199,1,0,162,0,0.5,1,0 +57,1,3,150,168,0,0,174,0,1.6,1,0 +48,1,2,110,229,0,0,168,0,1,3,1 +54,1,4,140,239,0,0,160,0,1.2,1,0 +48,0,3,130,275,0,0,139,0,0.2,1,0 +49,1,2,130,266,0,0,171,0,0.6,1,0 +64,1,1,110,211,0,2,144,1,1.8,2,0 +58,0,1,150,283,1,2,162,0,1,1,0 +58,1,2,120,284,0,2,160,0,1.8,2,1 +58,1,3,132,224,0,2,173,0,3.2,1,1 +60,1,4,130,206,0,2,132,1,2.4,2,1 +50,0,3,120,219,0,0,158,0,1.6,2,0 +58,0,3,120,340,0,0,172,0,0,1,0 +66,0,1,150,226,0,0,114,0,2.6,3,0 +43,1,4,150,247,0,0,171,0,1.5,1,0 +40,1,4,110,167,0,2,114,1,2,2,1 +69,0,1,140,239,0,0,151,0,1.8,1,0 +60,1,4,117,230,1,0,160,1,1.4,1,1 +64,1,3,140,335,0,0,158,0,0,1,1 +59,1,4,135,234,0,0,161,0,0.5,2,0 +44,1,3,130,233,0,0,179,1,0.4,1,0 +42,1,4,140,226,0,0,178,0,0,1,0 +43,1,4,120,177,0,2,120,1,2.5,2,1 +57,1,4,150,276,0,2,112,1,0.6,2,1 +55,1,4,132,353,0,0,132,1,1.2,2,1 +61,1,3,150,243,1,0,137,1,1,2,0 +65,0,4,150,225,0,2,114,0,1,2,1 +40,1,1,140,199,0,0,178,1,1.4,1,0 +71,0,2,160,302,0,0,162,0,0.4,1,0 +59,1,3,150,212,1,0,157,0,1.6,1,0 +61,0,4,130,330,0,2,169,0,0,1,1 +58,1,3,112,230,0,2,165,0,2.5,2,1 +51,1,3,110,175,0,0,123,0,0.6,1,0 +50,1,4,150,243,0,2,128,0,2.6,2,1 +65,0,3,140,417,1,2,157,0,0.8,1,0 +53,1,3,130,197,1,2,152,0,1.2,3,0 +41,0,2,105,198,0,0,168,0,0,1,0 +65,1,4,120,177,0,0,140,0,0.4,1,0 +44,1,4,112,290,0,2,153,0,0,1,1 +44,1,2,130,219,0,2,188,0,0,1,0 +60,1,4,130,253,0,0,144,1,1.4,1,1 +54,1,4,124,266,0,2,109,1,2.2,2,1 +50,1,3,140,233,0,0,163,0,0.6,2,1 +41,1,4,110,172,0,2,158,0,0,1,1 +54,1,3,125,273,0,2,152,0,0.5,3,0 +51,1,1,125,213,0,2,125,1,1.4,1,0 +51,0,4,130,305,0,0,142,1,1.2,2,1 +46,0,3,142,177,0,2,160,1,1.4,3,0 +58,1,4,128,216,0,2,131,1,2.2,2,1 +54,0,3,135,304,1,0,170,0,0,1,0 +54,1,4,120,188,0,0,113,0,1.4,2,1 +60,1,4,145,282,0,2,142,1,2.8,2,1 +60,1,3,140,185,0,2,155,0,3,2,1 +54,1,3,150,232,0,2,165,0,1.6,1,0 +59,1,4,170,326,0,2,140,1,3.4,3,1 +46,1,3,150,231,0,0,147,0,3.6,2,1 +65,0,3,155,269,0,0,148,0,0.8,1,0 +67,1,4,125,254,1,0,163,0,0.2,2,1 +62,1,4,120,267,0,0,99,1,1.8,2,1 +65,1,4,110,248,0,2,158,0,0.6,1,1 +44,1,4,110,197,0,2,177,0,0,1,1 +65,0,3,160,360,0,2,151,0,0.8,1,0 +60,1,4,125,258,0,2,141,1,2.8,2,1 +51,0,3,140,308,0,2,142,0,1.5,1,0 +48,1,2,130,245,0,2,180,0,0.2,2,0 +58,1,4,150,270,0,2,111,1,0.8,1,1 +45,1,4,104,208,0,2,148,1,3,2,0 +53,0,4,130,264,0,2,143,0,0.4,2,0 +39,1,3,140,321,0,2,182,0,0,1,0 +68,1,3,180,274,1,2,150,1,1.6,2,1 +52,1,2,120,325,0,0,172,0,0.2,1,0 +44,1,3,140,235,0,2,180,0,0,1,0 +47,1,3,138,257,0,2,156,0,0,1,0 +53,0,3,128,216,0,2,115,0,0,1,0 +53,0,4,138,234,0,2,160,0,0,1,0 +51,0,3,130,256,0,2,149,0,0.5,1,0 +66,1,4,120,302,0,2,151,0,0.4,2,0 +62,0,4,160,164,0,2,145,0,6.2,3,1 +62,1,3,130,231,0,0,146,0,1.8,2,0 +44,0,3,108,141,0,0,175,0,0.6,2,0 +63,0,3,135,252,0,2,172,0,0,1,0 +52,1,4,128,255,0,0,161,1,0,1,1 +59,1,4,110,239,0,2,142,1,1.2,2,1 +60,0,4,150,258,0,2,157,0,2.6,2,1 +52,1,2,134,201,0,0,158,0,0.8,1,0 +48,1,4,122,222,0,2,186,0,0,1,0 +45,1,4,115,260,0,2,185,0,0,1,0 +34,1,1,118,182,0,2,174,0,0,1,0 +57,0,4,128,303,0,2,159,0,0,1,0 +71,0,3,110,265,1,2,130,0,0,1,0 +49,1,3,120,188,0,0,139,0,2,2,1 +54,1,2,108,309,0,0,156,0,0,1,0 +59,1,4,140,177,0,0,162,1,0,1,1 +57,1,3,128,229,0,2,150,0,0.4,2,1 +61,1,4,120,260,0,0,140,1,3.6,2,1 +39,1,4,118,219,0,0,140,0,1.2,2,1 +61,0,4,145,307,0,2,146,1,1,2,1 +56,1,4,125,249,1,2,144,1,1.2,2,1 +52,1,1,118,186,0,2,190,0,0,2,0 +43,0,4,132,341,1,2,136,1,3,2,1 +62,0,3,130,263,0,0,97,0,1.2,2,1 +41,1,2,135,203,0,0,132,0,0,2,0 +58,1,3,140,211,1,2,165,0,0,1,0 +35,0,4,138,183,0,0,182,0,1.4,1,0 +63,1,4,130,330,1,2,132,1,1.8,1,1 +65,1,4,135,254,0,2,127,0,2.8,2,1 +48,1,4,130,256,1,2,150,1,0,1,1 +63,0,4,150,407,0,2,154,0,4,2,1 +51,1,3,100,222,0,0,143,1,1.2,2,0 +55,1,4,140,217,0,0,111,1,5.6,3,1 +65,1,1,138,282,1,2,174,0,1.4,2,1 +45,0,2,130,234,0,2,175,0,0.6,2,0 +56,0,4,200,288,1,2,133,1,4,3,1 +54,1,4,110,239,0,0,126,1,2.8,2,1 +44,1,2,120,220,0,0,170,0,0,1,0 +62,0,4,124,209,0,0,163,0,0,1,0 +54,1,3,120,258,0,2,147,0,0.4,2,0 +51,1,3,94,227,0,0,154,1,0,1,0 +29,1,2,130,204,0,2,202,0,0,1,0 +51,1,4,140,261,0,2,186,1,0,1,0 +43,0,3,122,213,0,0,165,0,0.2,2,0 +55,0,2,135,250,0,2,161,0,1.4,2,0 +70,1,4,145,174,0,0,125,1,2.6,3,1 +62,1,2,120,281,0,2,103,0,1.4,2,1 +35,1,4,120,198,0,0,130,1,1.6,2,1 +51,1,3,125,245,1,2,166,0,2.4,2,0 +59,1,2,140,221,0,0,164,1,0,1,0 +59,1,1,170,288,0,2,159,0,0.2,2,1 +52,1,2,128,205,1,0,184,0,0,1,0 +64,1,3,125,309,0,0,131,1,1.8,2,1 +58,1,3,105,240,0,2,154,1,0.6,2,0 +47,1,3,108,243,0,0,152,0,0,1,1 +57,1,4,165,289,1,2,124,0,1,2,1 +41,1,3,112,250,0,0,179,0,0,1,0 +45,1,2,128,308,0,2,170,0,0,1,0 +60,0,3,102,318,0,0,160,0,0,1,0 +52,1,1,152,298,1,0,178,0,1.2,2,0 +42,0,4,102,265,0,2,122,0,0.6,2,0 +67,0,3,115,564,0,2,160,0,1.6,2,0 +55,1,4,160,289,0,2,145,1,0.8,2,1 +64,1,4,120,246,0,2,96,1,2.2,3,1 +70,1,4,130,322,0,2,109,0,2.4,2,1 +51,1,4,140,299,0,0,173,1,1.6,1,1 +58,1,4,125,300,0,2,171,0,0,1,1 +60,1,4,140,293,0,2,170,0,1.2,2,1 +68,1,3,118,277,0,0,151,0,1,1,0 +46,1,2,101,197,1,0,156,0,0,1,0 +77,1,4,125,304,0,2,162,1,0,1,1 +54,0,3,110,214,0,0,158,0,1.6,2,0 +58,0,4,100,248,0,2,122,0,1,2,0 +48,1,3,124,255,1,0,175,0,0,1,0 +57,1,4,132,207,0,0,168,1,0,1,0 +52,1,3,138,223,0,0,169,0,0,1,0 +54,0,2,132,288,1,2,159,1,0,1,0 +35,1,4,126,282,0,2,156,1,0,1,1 +45,0,2,112,160,0,0,138,0,0,2,0 +70,1,3,160,269,0,0,112,1,2.9,2,1 +53,1,4,142,226,0,2,111,1,0,1,0 +59,0,4,174,249,0,0,143,1,0,2,1 +62,0,4,140,394,0,2,157,0,1.2,2,0 +64,1,4,145,212,0,2,132,0,2,2,1 +57,1,4,152,274,0,0,88,1,1.2,2,1 +52,1,4,108,233,1,0,147,0,0.1,1,0 +56,1,4,132,184,0,2,105,1,2.1,2,1 +43,1,3,130,315,0,0,162,0,1.9,1,0 +53,1,3,130,246,1,2,173,0,0,1,0 +48,1,4,124,274,0,2,166,0,0.5,2,1 +56,0,4,134,409,0,2,150,1,1.9,2,1 +42,1,1,148,244,0,2,178,0,0.8,1,0 +59,1,1,178,270,0,2,145,0,4.2,3,0 +60,0,4,158,305,0,2,161,0,0,1,1 +63,0,2,140,195,0,0,179,0,0,1,0 +42,1,3,120,240,1,0,194,0,0.8,3,0 +66,1,2,160,246,0,0,120,1,0,2,1 +54,1,2,192,283,0,2,195,0,0,1,1 +69,1,3,140,254,0,2,146,0,2,2,1 +50,1,3,129,196,0,0,163,0,0,1,0 +51,1,4,140,298,0,0,122,1,4.2,2,1 +43,1,4,132,247,1,2,143,1,0.1,2,1 +62,0,4,138,294,1,0,106,0,1.9,2,1 +68,0,3,120,211,0,2,115,0,1.5,2,0 +67,1,4,100,299,0,2,125,1,0.9,2,1 +69,1,1,160,234,1,2,131,0,0.1,2,0 +45,0,4,138,236,0,2,152,1,0.2,2,0 +50,0,2,120,244,0,0,162,0,1.1,1,0 +59,1,1,160,273,0,2,125,0,0,1,1 +50,0,4,110,254,0,2,159,0,0,1,0 +64,0,4,180,325,0,0,154,1,0,1,0 +57,1,3,150,126,1,0,173,0,0.2,1,0 +64,0,3,140,313,0,0,133,0,0.2,1,0 +43,1,4,110,211,0,0,161,0,0,1,0 +45,1,4,142,309,0,2,147,1,0,2,1 +58,1,4,128,259,0,2,130,1,3,2,1 +50,1,4,144,200,0,2,126,1,0.9,2,1 +55,1,2,130,262,0,0,155,0,0,1,0 +62,0,4,150,244,0,0,154,1,1.4,2,1 +37,0,3,120,215,0,0,170,0,0,1,0 +38,1,1,120,231,0,0,182,1,3.8,2,1 +41,1,3,130,214,0,2,168,0,2,2,0 +66,0,4,178,228,1,0,165,1,1,2,1 +52,1,4,112,230,0,0,160,0,0,1,1 +56,1,1,120,193,0,2,162,0,1.9,2,0 +46,0,2,105,204,0,0,172,0,0,1,0 +46,0,4,138,243,0,2,152,1,0,2,0 +64,0,4,130,303,0,0,122,0,2,2,0 +59,1,4,138,271,0,2,182,0,0,1,0 +41,0,3,112,268,0,2,172,1,0,1,0 +54,0,3,108,267,0,2,167,0,0,1,0 +39,0,3,94,199,0,0,179,0,0,1,0 +53,1,4,123,282,0,0,95,1,2,2,1 +63,0,4,108,269,0,0,169,1,1.8,2,1 +34,0,2,118,210,0,0,192,0,0.7,1,0 +47,1,4,112,204,0,0,143,0,0.1,1,0 +67,0,3,152,277,0,0,172,0,0,1,0 +54,1,4,110,206,0,2,108,1,0,2,1 +66,1,4,112,212,0,2,132,1,0.1,1,1 +52,0,3,136,196,0,2,169,0,0.1,2,0 +55,0,4,180,327,0,1,117,1,3.4,2,1 +49,1,3,118,149,0,2,126,0,0.8,1,1 +74,0,2,120,269,0,2,121,1,0.2,1,0 +54,0,3,160,201,0,0,163,0,0,1,0 +54,1,4,122,286,0,2,116,1,3.2,2,1 +56,1,4,130,283,1,2,103,1,1.6,3,1 +46,1,4,120,249,0,2,144,0,0.8,1,1 +49,0,2,134,271,0,0,162,0,0,2,0 +42,1,2,120,295,0,0,162,0,0,1,0 +41,1,2,110,235,0,0,153,0,0,1,0 +41,0,2,126,306,0,0,163,0,0,1,0 +49,0,4,130,269,0,0,163,0,0,1,0 +61,1,1,134,234,0,0,145,0,2.6,2,1 +60,0,3,120,178,1,0,96,0,0,1,0 +67,1,4,120,237,0,0,71,0,1,2,1 +58,1,4,100,234,0,0,156,0,0.1,1,1 +47,1,4,110,275,0,2,118,1,1,2,1 +52,1,4,125,212,0,0,168,0,1,1,1 +62,1,2,128,208,1,2,140,0,0,1,0 +57,1,4,110,201,0,0,126,1,1.5,2,0 +58,1,4,146,218,0,0,105,0,2,2,1 +64,1,4,128,263,0,0,105,1,0.2,2,0 +51,0,3,120,295,0,2,157,0,0.6,1,0 +43,1,4,115,303,0,0,181,0,1.2,2,0 +42,0,3,120,209,0,0,173,0,0,2,0 +67,0,4,106,223,0,0,142,0,0.3,1,0 +76,0,3,140,197,0,1,116,0,1.1,2,0 +70,1,2,156,245,0,2,143,0,0,1,0 +57,1,2,124,261,0,0,141,0,0.3,1,1 +44,0,3,118,242,0,0,149,0,0.3,2,0 +58,0,2,136,319,1,2,152,0,0,1,1 +60,0,1,150,240,0,0,171,0,0.9,1,0 +44,1,3,120,226,0,0,169,0,0,1,0 +61,1,4,138,166,0,2,125,1,3.6,2,1 +42,1,4,136,315,0,0,125,1,1.8,2,1 +52,1,4,128,204,1,0,156,1,1,2,1 +59,1,3,126,218,1,0,134,0,2.2,2,1 +40,1,4,152,223,0,0,181,0,0,1,1 +42,1,3,130,180,0,0,150,0,0,1,0 +61,1,4,140,207,0,2,138,1,1.9,1,1 +66,1,4,160,228,0,2,138,0,2.3,1,0 +46,1,4,140,311,0,0,120,1,1.8,2,1 +71,0,4,112,149,0,0,125,0,1.6,2,0 +59,1,1,134,204,0,0,162,0,0.8,1,1 +64,1,1,170,227,0,2,155,0,0.6,2,0 +66,0,3,146,278,0,2,152,0,0,2,0 +39,0,3,138,220,0,0,152,0,0,2,0 +57,1,2,154,232,0,2,164,0,0,1,1 +58,0,4,130,197,0,0,131,0,0.6,2,0 +57,1,4,110,335,0,0,143,1,3,2,1 +47,1,3,130,253,0,0,179,0,0,1,0 +55,0,4,128,205,0,1,130,1,2,2,1 +35,1,2,122,192,0,0,174,0,0,1,0 +61,1,4,148,203,0,0,161,0,0,1,1 +58,1,4,114,318,0,1,140,0,4.4,3,1 +58,0,4,170,225,1,2,146,1,2.8,2,1 +58,1,2,125,220,0,0,144,0,0.4,2,0 +56,1,2,130,221,0,2,163,0,0,1,0 +56,1,2,120,240,0,0,169,0,0,3,0 +67,1,3,152,212,0,2,150,0,0.8,2,1 +55,0,2,132,342,0,0,166,0,1.2,1,0 +44,1,4,120,169,0,0,144,1,2.8,3,1 +63,1,4,140,187,0,2,144,1,4,1,1 +63,0,4,124,197,0,0,136,1,0,2,1 +41,1,2,120,157,0,0,182,0,0,1,0 +59,1,4,164,176,1,2,90,0,1,2,1 +57,0,4,140,241,0,0,123,1,0.2,2,1 +45,1,1,110,264,0,0,132,0,1.2,2,1 +68,1,4,144,193,1,0,141,0,3.4,2,1 +57,1,4,130,131,0,0,115,1,1.2,2,1 +57,0,2,130,236,0,2,174,0,0,2,1 +38,1,3,138,175,0,0,173,0,0,1,0 diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..8d8e762 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,45 @@ +absl-py==0.13.0 +astunparse==1.6.3 +cachetools==4.2.2 +certifi==2021.5.30 +chardet==4.0.0 +flatbuffers==1.12 +gast==0.4.0 +google-auth==1.32.0 +google-auth-oauthlib==0.4.4 +google-pasta==0.2.0 +grpcio==1.34.1 +h5py==3.1.0 +idna==2.10 +joblib==1.0.1 +Keras==2.4.3 +keras-nightly==2.5.0.dev2021032900 +Keras-Preprocessing==1.1.2 +Markdown==3.3.4 +numpy==1.19.5 +oauthlib==3.1.1 +opt-einsum==3.3.0 +pandas==1.2.5 +protobuf==3.17.3 +pyasn1==0.4.8 +pyasn1-modules==0.2.8 +python-dateutil==2.8.1 +pytz==2021.1 +PyYAML==5.4.1 +requests==2.25.1 +requests-oauthlib==1.3.0 +rsa==4.7.2 +scikit-learn==0.24.2 +scipy==1.7.0 +six==1.15.0 +tensorboard==2.5.0 +tensorboard-data-server==0.6.1 +tensorboard-plugin-wit==1.8.0 +tensorflow==2.5.0 +tensorflow-estimator==2.5.0 +termcolor==1.1.0 +threadpoolctl==2.1.0 +typing-extensions==3.7.4.3 +urllib3==1.26.6 +Werkzeug==2.0.1 +wrapt==1.12.1 diff --git a/script.py b/script.py new file mode 100644 index 0000000..4e464c6 --- /dev/null +++ b/script.py @@ -0,0 +1,116 @@ +import pandas as pd +from keras.models import Sequential +from keras.layers import Dense +from keras.wrappers.scikit_learn import KerasClassifier +from sklearn import tree +from sklearn.preprocessing import MinMaxScaler +from sklearn.linear_model import SGDClassifier +from sklearn.pipeline import make_pipeline +from sklearn.model_selection import train_test_split +from sklearn.metrics import accuracy_score, f1_score, precision_score, recall_score + +# Przewidywanie choroby serca na podstawie danych i wyników pacjenta. + +data = pd.read_csv("./heart_problem.csv") + +# Usunięcie wierszy z pustymi wartościami + +data.dropna(inplace=True) + +# Usuń wartości odstające. +indexes = data[(data['cholesterol'] == 0) | (data['resting bp s'] == 0)].index +data.drop(indexes , inplace=True) + +# Skalowanie danych +scaler = MinMaxScaler() +X = data[['age','sex','resting bp s','cholesterol','fasting blood sugar', 'max heart rate']].to_numpy() +Y = data['target'].to_numpy() +X = scaler.fit_transform(X) + +# Podział na zbiór trenujący/testowy +X_train, X_test, y_train, y_test = train_test_split(X, Y, test_size=0.2) + +print(X_train.shape) +print(X_test.shape) + +neural_accuracy = None +neural_fscore = None +neural_precision = None +neural_recall = None + +sgd_accuracy = None +sgd_fscore = None +sgd_precision = None +sgd_recall = None + +tree_accuracy = None +tree_fscore = None +tree_precision = None +tree_recall = None + +# -------------------------------------------------------------------------- +# Klasyfikacja ma/nie ma chorobę serca na podstawie modelu sieci neuronowej. +def classificator_model(): + model = Sequential() + model.add(Dense(8, input_dim=6, activation='relu')) + model.add(Dense(2, activation='softmax')) + model.compile(loss='categorical_crossentropy', optimizer='adam') + return model + +# Trenowanie modelu +estimator = KerasClassifier(build_fn=classificator_model, epochs=5, batch_size=10, verbose=0) +estimator.fit(X_train, y_train) +predicts = estimator.predict(X_test) +neural_accuracy = accuracy_score(y_test, predicts) +neural_fscore = f1_score(y_test, predicts) +neural_precision = precision_score(y_test, predicts) +neural_recall = recall_score(y_test, predicts) + + +# -------------------------------------------------------------------------- +# Klasyfikacja ma/nie ma chorobę serca na podstawie klasyfikatora SGD. + +model = SGDClassifier(max_iter=1000) +model.fit(X_train, y_train) +predicts = model.predict(X_test) +sgd_accuracy = accuracy_score(y_test, predicts) +sgd_fscore = f1_score(y_test, predicts) +sgd_precision = precision_score(y_test, predicts) +sgd_recall = recall_score(y_test, predicts) + +# -------------------------------------------------------------------------- +# Klasyfikacja ma/nie ma chorobę serca na podstawie drzew decyzyjnych. + +model = tree.DecisionTreeClassifier() +model.fit(X_train, y_train) +predicts = model.predict(X_test) +tree_accuracy = accuracy_score(y_test, predicts) +tree_fscore = f1_score(y_test, predicts) +tree_precision = precision_score(y_test, predicts) +tree_recall = recall_score(y_test, predicts) + +# --------------------------------------------------------------------------- + +print(f''' +Sieć neuronowa: +_____________________________ +Accuracy: {neural_accuracy} +Precision: {neural_precision} +Recall: {neural_recall} +F-score: {neural_fscore} + +Klasyfikator SGD: +_____________________________ +Accuracy: {sgd_accuracy} +Precision: {sgd_precision} +Recall: {sgd_recall} +F-score: {sgd_fscore} + +Drzewa decyzyjne: +_____________________________ +Accuracy: {tree_accuracy} +Precision: {tree_precision} +Recall: {tree_recall} +F-score: {tree_fscore} +''') +