Error connecting to database.
Error executing database query:
SQLSTATE[HY000] [1226] User 'o4585610' has exceeded the 'max_user_connections' resource (current value: 20)
Warning: Cannot modify header information - headers already sent by (output started at /homepages/5/d451478433/htdocs/online/db.php:51) in /homepages/5/d451478433/htdocs/online/download.php on line 26
Warning: Cannot modify header information - headers already sent by (output started at /homepages/5/d451478433/htdocs/online/db.php:51) in /homepages/5/d451478433/htdocs/online/download.php on line 27
Warning: Cannot modify header information - headers already sent by (output started at /homepages/5/d451478433/htdocs/online/db.php:51) in /homepages/5/d451478433/htdocs/online/download.php on line 28
"0"
28475.0
-1.5
-1.4
-1.1
-0.9
-0.8
-0.6
-0.6
-0.5
-0.4
-0.4
-0.3
-0.2
-0.2
-0.1
-0.1
0.0
-1.0
0.0
1.0
2.0
3.0
4.0
5.0
6.0
7.0
8.0
1.0
2.0
3.0
4.0
5.0
6.0
"PROTEUS_VW_B6"
2500.0
3000.0
7000.0
2500.0
1500.0
5000.0
75.0
100.0
650.0
800.0
1100.0
1400.0
1700.0
2000.0
2300.0
2600.0
2900.0
3200.0
3500.0
3800.0
4100.0
4400.0
4700.0
7000.0
30.0
2.0
1300.0
6.0
8.0
10.0
11.0
12.0
13.0
14.0
15.0
0.2
0.2
0.2
0.2
0.2
0.2
0.2
0.2
"false"
"false"
"false"
"false"
"false"
"false"
"false"
"false"
"false"
"false"
"true"
"false"
"false"
"false"
"false"
"false"
"false"
"true"
"false"
"false"
"false"
"with filter"
"false"
"Fixed"
"false"
"false"
"false"
"false"
"Do not print"
"No thank you"
"false"
890.0
70.0
-10.0
110.0
35.0
400.0
6.0
0.0
0.0
800.0
1686.0
2571.0
3457.0
4343.0
5229.0
6114.0
7000.0
100.0
104.0
109.0
113.0
117.0
121.0
126.0
130.0
800.0
1686.0
2571.0
3457.0
4343.0
5229.0
6114.0
7000.0
50.0
50.0
50.0
50.0
50.0
50.0
50.0
50.0
0.0
0.0
"Bosch 2.5"
"Analog Volt 1"
0.0
50.0
100.0
5896.0
834.0
187.0
2700.0
"Analog Temp 3"
32.0
75.0
120.0
9500.0
2100.0
1000.0
2700.0
"Analog Temp 2"
0.0
0.0
0.0
2.0
4.0
"1-3-4-2"
87.5
"Alpha-N"
5.0
"NONE"
"Sequential"
"Sequential"
0.0
0.0
0.0
0.0
"Individual Coils"
0.0
0.0
0.0
"dynamic"
50.0
90.0
1.56
9.2
95.0
91.0
500.0
"None"
50.0
"none"
2.0230305E7
20.0
4.0
"Analog Volt 2"
"Battery Sense"
"NONE"
"NONE"
0.0
10.0
"60/2"
0.0
0.0
0.0
"Off"
60.0
0.0
"NONE"
1.0
3.3
0.0
"Digital 2"
"NONE"
"NONE"
"NONE"
"Analog Volt 10"
"NONE"
0.0
9.996
5.0
19.992
"Analog Volt 9"
"NONE"
"default"
"NONE"
0.0
500.0
"Custom"
"NONE"
200.0
"NONE"
"NONE"
"NONE"
"default"
83.0
0.0
0.0
"Intake First Bank"
0.0
3.73
21.0
"NONE"
1200.0
"Lowside 1"
"Lowside 2"
"Lowside 3"
"Lowside 4"
"NONE"
"NONE"
"NONE"
"NONE"
"NONE"
"NONE"
"NONE"
"NONE"
"Ign 1"
"Ign 2"
"Ign 3"
"Ign 4"
"NONE"
"NONE"
"NONE"
"NONE"
"NONE"
"NONE"
"NONE"
"NONE"
"default"
"default"
"NONE"
"NONE"
"NONE"
"NONE"
"NONE"
"NONE"
"NONE"
"NONE"
"Lowside 16"
"default"
"NONE"
"default"
"default"
"NONE"
"NONE"
"NONE"
"default"
"PULLUP"
"NONE"
"NONE"
"NONE"
"NONE"
"default"
"NONE"
"NONE"
"Off"
"NONE"
"Off"
"NONE"
"default"
"NONE"
"Analog Volt 3"
"NONE"
"Analog Volt 7"
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
"14Point7"
0.0
"VR 1"
"NONE"
100.0
"default"
"NONE"
"default"
"Lowside 6"
"PD2"
"PD1"
"PD0"
"DEFAULT"
0.0
0.0
"NONE"
1.0
0.0
5000.0
0.0
5000.0
38400.0
9.0
"NONE"
"NONE"
0.0
"default"
"default"
"NONE"
"NONE"
"default"
"false"
"false"
"true"
"true"
"11 bit"
"true"
"false"
"false"
"false"
"false"
"false"
"false"
"true"
"false"
"false"
"true"
"false"
"false"
"false"
"false"
"true"
"false"
"false"
"false"
"true"
"true"
"false"
"false"
"false"
"false"
"false"
"true"
"NONE"
"NONE"
"NONE"
"NONE"
"default"
"NONE"
"NONE"
"default"
512.0
65.0
0.0
"NONE"
"default"
"Off"
8.0
9.0
10.0
11.0
12.0
13.0
14.0
15.0
"None"
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
0.0
300.0
0.0
"PB10"
"PB11"
"NONE"
"NONE"
"None"
"PULLUP"
"NONE"
"NONE"
"NONE"
"NONE"
"NONE"
"NONE"
"NONE"
"NONE"
"NONE"
"NONE"
"default"
"Off"
9.0
100.0
50.0
"NONE"
"NONE"
"NONE"
"default"
"NONE"
"NONE"
1.0
5.0
0.0
102.0
891.0
0.0
3.0
"NONE"
"default"
"NONE"
"default"
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
"NONE"
"NONE"
"NONE"
"NONE"
"NONE"
"NONE"
"PC12"
"PC11"
"PC10"
"NONE"
"NONE"
"NONE"
"NONE"
"NONE"
"NONE"
"Off"
"none"
"v1"
"false"
"false"
"false"
"false"
"false"
"false"
"false"
"false"
"false"
"false"
"false"
"false"
"true"
"false"
"true"
"false"
"Channel 1"
"Channel 1"
"Channel 1"
"Channel 1"
"Channel 1"
"Channel 1"
"Channel 1"
"Channel 1"
"Channel 1"
"Channel 1"
"Channel 1"
"Channel 1"
"false"
"first"
"false"
"Do not print"
"PD10"
"NONE"
"PD12"
"PD11"
"PD9"
"NONE"
"PD13"
"PD8"
"NONE"
"default"
"NONE"
"NONE"
0.5
0.3
0.0
0.0
0.0
-20.0
20.0
"Open Loop"
33.0
"Launch Button"
"Switch Input"
30.0
500.0
0.0
0.0
500.0
0.01
0.0
0.0
1000.0
35.0
85.0
0.5
60.0
12.0
17.0
60.0
5.0
-5.0
30.0
5.0
-5.0
30.0
5.0
-5.0
30.0
5.0
-5.0
30.0
"NONE"
"NONE"
"NONE"
"NONE"
"NONE"
"NONE"
"NONE"
"NONE"
VAG
BPY
test
"NONE"
"NONE"
"NONE"
"NONE"
"NONE"
"NONE"
"Throttle 1"
"Throttle 2"
"Off"
"NONE"
"default"
"NONE"
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
"NONE"
"NONE"
"NONE"
"NONE"
"NONE"
"NONE"
"NONE"
"NONE"
180.0
0.0
0.0
0.0
600.0
1900.0
3200.0
4400.0
5700.0
7000.0
0.6
0.7
0.8
1.0
1.1
1.2
"NONE"
600.0
1900.0
3200.0
4400.0
5700.0
7000.0
0.6
0.7
0.8
1.0
1.1
1.2
"NONE"
Rad Fan
LPFP
GPPWM2
GPPWM3
1000.0
0.0
"1"
"false"
"false"
"5v"
"Piggyback Mode"
"no"
"true"
"false"
"true"
"true"
"false"
"With Pull Up"
"Duty cycle"
"false"
"false"
"false"
"yes"
"yes"
"false"
"false"
"VR"
"With Pull Up"
"VR"
"With Pull Up"
"With Pull Up"
"With Pull Up"
"With Pull Up"
"false"
"false"
"false"
"Four Stroke"
"On crankshaft"
"NONE"
"NONE"
"NONE"
0.0
"Open Loop"
"true"
"true"
"true"
"Basic (constants)"
"false"
"true"
"true"
"false"
"true"
"false"
"false"
"false"
"false"
"false"
"false"
"false"
"Fixed (auto taper)"
"false"
"false"
"false"
"false"
"false"
"true"
"no"
"no"
"advance"
"advance"
"false"
"normal"
"false"
"false"
"false"
300.0
1.0
"NONE"
"NONE"
"NONE"
"NONE"
200.0
10.0
20.0
60.0
0.0
0.0
3.0
0.0
0.5
0.0
30.0
0.0
0.0
0.0
100.0
0.0
90.0
5.12
47.0
0.088
0.0
0.0
-100.0
100.0
"NONE"
"NONE"
0.0
"NONE"
0.0
1000.0
"NONE"
"DEFAULT"
"NONE"
1.0
5.0
410.0
1.0
2.0
0.05
0.002
0.0
0.0
0.0
0.0
99.0
0.0
"PE4"
"PE5"
"NONE"
"NONE"
"NONE"
"NONE"
"NONE"
"NONE"
0.36
2.13
4.0
500.0
14.0
120.0
200.0
0.0
"NONE"
"PE6"
"NONE"
"NONE"
0.0
0.0
0.0
0.0
200.0
"Digital 5"
"NONE"
0.0
"End of injection"
115200.0
5.0
0.0
0.33333
"INSTANT_RPM"
0.0
0.73
4.3
"500kbps"
"None"
"500kbps"
"None"
5.0
3.0
10.0
10.0
"false"
"false"
"false"
"volumetric flow"
"false"
"false"
"false"
"false"
500.0
3.0
5.0
"DEFAULT"
"PB13"
"PB12"
"default"
"NONE"
"None"
"High"
"Lowside 15"
"default"
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
5.0
0.0
"Lowside 9"
"NONE"
"NONE"
"NONE"
"Off"
"default"
"default"
100.0
0.25
0.25
0.25
0.9
300.0
0.0
0.0
300.0
"Bosch Quick Start"
"Inactive"
0.0
0.0
"NONE"
"NONE"
"NONE"
"NONE"
"NONE"
"NONE"
"NONE"
"NONE"
"NONE"
"NONE"
"NONE"
"NONE"
"NONE"
"NONE"
"NONE"
"NONE"
"NONE"
"NONE"
"NONE"
"NONE"
"Auto"
"default"
"Sensed Rail Pressure"
"default"
10000.0
1.2
10.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
"NONE"
0.0
0.0
0.0
0.0
0.0
0.0
0.0
"NONE"
45.0
800.0
1.0
0.0
0.0
0.0
0.0
-60.0
60.0
"Full-Step (Default)"
0.0
0.0
"SPI3"
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
"default"
"default"
"default"
"default"
"default"
"default"
"default"
"default"
"default"
"default"
"NONE"
"NONE"
"NONE"
"NONE"
"NONE"
"PULLUP"
2.0
0.005
0.0
33.0
0.0
10.0
90.0
0.0
0.0
0.0
0.0
0.0
10.0
90.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
"NONE"
0.5
0.0
4.5
689.476
"Off"
"NONE"
95.0
91.0
"NONE"
"NONE"
"default"
"NONE"
0.0
550.0
"NONE"
0.0
0.0
50.0
0.0
1500.0
1300.0
2.0
60.0
0.0
30.0
"Analog Volt 4"
0.5
0.0
4.5
14000.0
"Analog Volt 5"
0.5
0.0
4.5
1378.9514
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
MAFcurve
0.098
0.902
153.6
1.0
12.5
"RPM+TPS (Default)"
1.0
-30.0
30.0
0.1
0.0
5.0E-4
0.0
0.0
-5.0
10.0
50.0
0.0
0.0
"Off"
"Off"
-20.0
"Off"
14.7
20.0
10.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
"BMW_e46"
"Lowside 5"
90.0
25.0
60.0
50.0
"CLT"
"RPM"
40.0
50.0
60.0
70.0
80.0
90.0
100.0
110.0
400.0
600.0
1000.0
3000.0
4000.0
5000.0
6000.0
7000.0
90.0 90.0 90.0 90.0 90.0 90.0 90.0 90.0
90.0 90.0 90.0 90.0 90.0 90.0 90.0 90.0
90.0 90.0 90.0 90.0 90.0 90.0 90.0 90.0
90.0 90.0 90.0 90.0 90.0 90.0 90.0 90.0
90.0 70.0 70.0 70.0 70.0 70.0 70.0 70.0
90.0 53.5 53.5 53.5 53.5 53.5 53.5 53.5
90.0 36.5 36.5 36.5 36.5 36.5 36.5 36.5
90.0 20.0 20.0 20.0 20.0 20.0 20.0 20.0
"Lowside 7"
50.0
20.0
60.0
50.0
"Fuel Load"
"RPM"
0.0
14.0
28.0
42.0
57.0
71.0
85.0
100.0
0.0
1000.0
2000.0
3000.0
4000.0
5000.0
6000.0
7000.0
50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0
50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0
50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0
50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0
50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0
50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0
50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0
50.0 50.0 50.0 50.0 50.0 50.0 50.0 50.0
"NONE"
0.0
250.0
60.0
50.0
"Zero"
"RPM"
0.0
14.0
28.0
42.0
57.0
71.0
85.0
100.0
0.0
1000.0
2000.0
3000.0
4000.0
5000.0
6000.0
7000.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
14.0 14.0 14.0 14.0 14.0 14.0 14.0 14.0
28.0 28.0 28.0 28.0 28.0 28.0 28.0 28.0
42.0 42.0 42.0 42.0 42.0 42.0 42.0 42.0
57.0 57.0 57.0 57.0 57.0 57.0 57.0 57.0
71.0 71.0 71.0 71.0 71.0 71.0 71.0 71.0
85.0 85.0 85.0 85.0 85.0 85.0 85.0 85.0
100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0
"NONE"
0.0
250.0
60.0
50.0
"Zero"
"RPM"
0.0
14.0
28.0
42.0
57.0
71.0
85.0
100.0
0.0
1000.0
2000.0
3000.0
4000.0
5000.0
6000.0
7000.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
14.0 14.0 14.0 14.0 14.0 14.0 14.0 14.0
28.0 28.0 28.0 28.0 28.0 28.0 28.0 28.0
42.0 42.0 42.0 42.0 42.0 42.0 42.0 42.0
57.0 57.0 57.0 57.0 57.0 57.0 57.0 57.0
71.0 71.0 71.0 71.0 71.0 71.0 71.0 71.0
85.0 85.0 85.0 85.0 85.0 85.0 85.0 85.0
100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0
13000.0
9400.0
3700.0
400.0
10.0
700.0
10.0
60.0
10000.0
"DEFAULT"
"DEFAULT"
"DEFAULT"
"default"
"default"
"default"
"default"
"default"
"default"
-20.0
-20.0
-20.0
-20.0
-20.0
-20.0
-20.0
-20.0
-20.0
-20.0
-20.0
-20.0
-20.0
-20.0
-20.0
-20.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
1.0
1.0
1.0
1.0
0.0
3.0
"NONE"
10.0
10.0
0.29
30.0
2.0
0.01
3.0E-4
2000.0
0.0
1.0
4.5
9.5
16.5
25.0
34.5
45.0
55.0
65.5
75.0
83.5
90.5
95.5
99.0
100.0
0.0
7.5
16.5
24.0
32.0
40.0
48.0
56.0
64.0
72.0
80.0
88.0
96.0
103.5
112.5
120.0
8.0
9.0
10.0
11.0
12.0
13.0
15.0
16.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0
5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0
5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0
5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0
5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0
5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0
5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0
5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0
5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0
5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0 5000.0
0.0
20.0
40.0
60.0
80.0
100.0
120.0
140.0
160.0
180.0
0.0
900.0
1800.0
2650.0
3550.0
4450.0
5350.0
6200.0
7100.0
8000.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.005
0.018
0.031
0.043
0.056
0.069
0.082
0.094
0.107
0.12
0.0
900.0
1800.0
2650.0
3550.0
4450.0
5350.0
6200.0
7100.0
8000.0
"NONE"
"NONE"
"NONE"
"NONE"
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
6000.0
-40.0
-20.0
0.0
20.0
40.0
60.0
80.0
100.0
1.45
1.3
1.17
1.05
0.9
0.82
0.75
0.7
0.73
0.66
0.57
0.46
0.38
0.31
0.24
0.19
10.0
20.0
30.0
40.0
50.0
60.0
70.0
80.0
0.38
0.55
0.69
0.86
0.9
0.95
0.97
1.0
0.21
0.4
0.6
0.79
0.85
0.9
0.95
1.0
0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
"None"
"None"
"NONE"
0.0
0.0
0.0
0.0
"NONE"
0.0
0.0
0.0
0.0
"NONE"
"default"
"NONE"
"default"
0.0
"NONE"
"default"
0.0
"NONE"
"default"
0.0
1.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
"NONE"
"NONE"
"NONE"
"NONE"
"NONE"
"NONE"
"NONE"
"NONE"
650.0
800.0
3750.0
7000.0
400.0
3200.0
3.0
0.0
105.0
5.0
30.0
0.0
"None"
0.0
0.0
0.0
0.0
0.0
"DEFAULT"
0.0
0.0
"DEFAULT"
"DEFAULT"
"DEFAULT"
"DEFAULT"
"DEFAULT"
"DEFAULT"
"DEFAULT"
"DEFAULT"
0.0
10400.0
"None"
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
1.0
2.0
4.0
7.0
98.0
99.0
100.0
-20.0
-18.0
-17.0
0.0
20.0
21.0
22.0
25.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
1000.0
2000.0
3000.0
4000.0
5000.0
6000.0
7000.0
4.0
4.0
4.0
4.0
4.0
4.0
4.0
4.0
-30.0
-20.0
-10.0
0.0
10.0
20.0
30.0
40.0
50.0
60.0
70.0
80.0
90.0
100.0
110.0
120.0
1360.0
1360.0
1300.0
1200.0
1160.0
1100.0
1060.0
1000.0
1000.0
980.0
980.0
960.0
960.0
960.0
960.0
1100.0
-40.0
-17.0
6.0
29.0
51.0
74.0
97.0
120.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
139.0
152.0
180.0
217.0
280.0
300.0
365.0
3657.0
3658.0
3659.0
3660.0
3661.0
3662.0
3663.0
3664.0
3665.0
3.58
4.5
6.7
11.0
22.0
25.0
40.0
4000.0
4000.0
4000.0
4000.0
4000.0
4000.0
4000.0
4000.0
4000.0
0.0
7.0
13.0
20.0
27.0
33.0
40.0
47.0
53.0
60.0
67.0
73.0
80.0
87.0
93.0
100.0
30.0
39.0
49.0
58.0
67.0
77.0
86.0
95.0
105.0
114.0
123.0
133.0
142.0
151.0
161.0
170.0
0.0
14.0
29.0
43.0
57.0
71.0
86.0
100.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
14.0
29.0
43.0
57.0
71.0
86.0
100.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
14.0
29.0
43.0
57.0
71.0
86.0
100.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
14.0
29.0
43.0
57.0
71.0
86.0
100.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
75.0
85.0
95.0
105.0
650.0
800.0
3750.0
7000.0
1.0 1.0 1.0 1.0
1.0 1.0 1.0 1.0
1.0 1.0 1.0 1.0
1.0 1.0 1.0 1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
0.0
14.0
29.0
43.0
57.0
71.0
86.0
100.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
200.0
400.0
1000.0
0.0
0.0
0.0
0.0
0.0
500.0
1100.0
1600.0
2100.0
2700.0
3200.0
3700.0
4300.0
4800.0
5300.0
5900.0
6400.0
6900.0
7500.0
8000.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
14.0 14.0 14.0 14.0 14.0 14.0 14.0 14.0
29.0 29.0 29.0 29.0 29.0 29.0 29.0 29.0
43.0 43.0 43.0 43.0 43.0 43.0 43.0 43.0
57.0 57.0 57.0 57.0 57.0 57.0 57.0 57.0
71.0 71.0 71.0 71.0 71.0 71.0 71.0 71.0
86.0 86.0 86.0 86.0 86.0 86.0 86.0 86.0
100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0
0.0
1100.0
2300.0
3400.0
4600.0
5700.0
6900.0
8000.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
14.0 14.0 14.0 14.0 14.0 14.0 14.0 14.0
30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0
44.0 44.0 44.0 44.0 44.0 44.0 44.0 44.0
58.0 58.0 58.0 58.0 58.0 58.0 58.0 58.0
72.0 72.0 72.0 72.0 72.0 72.0 72.0 72.0
86.0 86.0 86.0 86.0 86.0 86.0 86.0 86.0
100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0
0.0
14.0
29.0
43.0
57.0
71.0
86.0
100.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
14.0 14.0 14.0 14.0 14.0 14.0 14.0 14.0
29.0 29.0 29.0 29.0 29.0 29.0 29.0 29.0
43.0 43.0 43.0 43.0 43.0 43.0 43.0 43.0
57.0 57.0 57.0 57.0 57.0 57.0 57.0 57.0
71.0 71.0 71.0 71.0 71.0 71.0 71.0 71.0
86.0 86.0 86.0 86.0 86.0 86.0 86.0 86.0
100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0
0.0
14.0
29.0
43.0
57.0
71.0
86.0
100.0
0.0
1100.0
2300.0
3400.0
4600.0
5700.0
6900.0
8000.0
-40.0
-20.0
0.0
20.0
40.0
60.0
80.0
100.0
1.0
1.0
1.0
1.0
1.0
0.7
0.7
0.6
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
AIRBAG = 0x050
-- 1088
TCU_1 = 0x440
-- 1344
TCU_2 = 0x540
-- 1440
BRAKE_2 = 0x5A0
VWTP_OUT = 0x200
VWTP_IN = 0x202
VWTP_TESTER = 0x300
-- 640
MOTOR_1 = 0x280
-- 644
MOTOR_BRE = 0x284
-- 648
MOTOR_2 = 0x288
-- 896
MOTOR_3 = 0x380
-- 1152
MOTOR_5 = 0x480
-- 1160
MOTOR_6 = 0x488
-- 1386
ACC_GRA = 0x56A
-- 1408 the one with variable payload
MOTOR_INFO = 0x580
-- 1416
MOTOR_7 = 0x588
TCU_BUS = 1
fakeTorque = 0
hexstr = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, "A", "B", "C", "D", "E", "F" }
function toHexString(num)
if num == 0 then
return '0'
end
local result = ""
while num > 0 do
local n = num % 16
result = hexstr[n + 1] ..result
num = math.floor(num / 16)
end
return result
end
function arrayToString(arr)
local str = ""
local index = 1
while arr[index] ~= nil do
str = str.." "..toHexString(arr[index])
index = index + 1
end
return str
end
function onTcu1(bus, id, dlc, data)
-- print("onTcu1")
end
function onTcu2(bus, id, dlc, data)
-- print("onTcu2")
end
function setBitRange(data, totalBitIndex, bitWidth, value)
local byteIndex = totalBitIndex >> 3
local bitInByteIndex = totalBitIndex - byteIndex * 8
if (bitInByteIndex + bitWidth > 8) then
bitsToHandleNow = 8 - bitInByteIndex
setBitRange(data, totalBitIndex + bitsToHandleNow, bitWidth - bitsToHandleNow, value >> bitsToHandleNow)
bitWidth = bitsToHandleNow
end
mask = (1 << bitWidth) - 1
data[1 + byteIndex] = data[1 + byteIndex] & (~(mask << bitInByteIndex))
maskedValue = value & mask
shiftedValue = maskedValue << bitInByteIndex
data[1 + byteIndex] = data[1 + byteIndex] | shiftedValue
end
function setTwoBytes(data, offset, value)
data[offset + 1] = value % 255
data[offset + 2] = (value >> 8) % 255
end
shallSleep = Timer.new()
-- we want to turn on with hardware switch while ignition key is off
hadIgnitionEvent = false
function onAirBag(bus, id, dlc, data)
-- looks like we have ignition key do not sleep!
shallSleep : reset()
hadIgnitionEvent = true
end
function xorChecksum(data, targetIndex)
local index = 1
local result = 0
while data[index] ~= nil do
if index ~= targetIndex then
result = result ~ data[index]
end
index = index + 1
end
data[targetIndex] = result
return result
end
function getBitRange(data, bitIndex, bitWidth)
byteIndex = bitIndex >> 3
shift = bitIndex - byteIndex * 8
value = data[1 + byteIndex]
if (shift + bitWidth > 8) then
value = value + data[2 + byteIndex] * 256
end
mask = (1 << bitWidth) - 1
return (value >> shift) & mask
end
motor1Data = { 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
motorBreData = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
motor2Data = { 0x8A, 0x8D, 0x10, 0x04, 0x00, 0x4C, 0xDC, 0x87 }
motor2mux = {0x8A, 0xE8, 0x2C, 0x64}
canMotorInfo = { 0x00, 0x00, 0x00, 0x14, 0x1C, 0x93, 0x48, 0x14 }
canMotorInfo1= { 0x99, 0x14, 0x00, 0x7F, 0x00, 0xF0, 0x47, 0x01 }
canMotorInfo3= { 0x9B, 0x14, 0x00, 0x11, 0x1F, 0xE0, 0x0C, 0x46 }
canMotor3 = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
motor5Data = { 0x1C, 0x08, 0xF3, 0x55, 0x19, 0x00, 0x00, 0xAD }
motor6Data = { 0x00, 0x00, 0x00, 0x7E, 0xFE, 0xFF, 0xFF, 0x00 }
motor7Data = { 0x1A, 0x66, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00 }
accGraData = { 0x00, 0x00, 0x08, 0x00, 0x1A, 0x00, 0x02, 0x01 }
setTickRate(100)
everySecondTimer = Timer.new()
mafSensor = Sensor.new("maf")
mafCalibrationIndex = findCurveIndex("mafcurve")
canMotorInfoTotalCounter = 0
canRxAdd(AIRBAG, onAirBag)
canRxAdd(TCU_1, onTcu1)
canRxAdd(TCU_2, onTcu2)
--canRxAdd(BRAKE_2)
rpm = 0
function sendMotor1()
engineTorque = fakeTorque * 0.9
innerTorqWithoutExt = fakeTorque
torqueLoss = 20
requestedTorque = fakeTorque
print("motor1 rpm " .. rpm)
motor1Data[2] = engineTorque / 0.39
setTwoBytes(motor1Data, 2, rpm / 0.25)
motor1Data[5] = innerTorqWithoutExt / 0.4
motor1Data[6] = tps / 0.4
motor1Data[7] = torqueLoss / 0.39
motor1Data[8] = requestedTorque / 0.39
-- print ('MOTOR_1 fakeTorque ' ..fakeTorque)
-- print ('MOTOR_1 engineTorque ' ..engineTorque ..' RPM ' ..rpm)
-- print ('MOTOR_1 innerTorqWithoutExt ' ..innerTorqWithoutExt ..' tps ' ..tps)
-- print ('MOTOR_1 torqueLoss ' ..torqueLoss ..' requestedTorque ' ..requestedTorque)
txCan(TCU_BUS, MOTOR_1, 0, motor1Data)
end
function onMotor1(bus, id, dlc, data)
rpm = math.floor(getSensor("RPM") + 0.5)
tps = getSensor("TPS1") or 0
fakeTorque = interpolate(0, 6, 100, 60, tps)
engineTorque = fakeTorque * 0.9
innerTorqWithoutExt = fakeTorque
torqueLoss = 20
requestedTorque = fakeTorque
sendMotor1()
end
function sendMotor3()
iat = getSensor("IAT") or 0
tps = getSensor("TPS1") or 0
desired_wheel_torque = fakeTorque
canMotor3[2] = (iat + 48) / 0.75
canMotor3[3] = tps / 0.4
canMotor3[5] = 0x20
setBitRange(canMotor3, 24, 12, math.floor(desired_wheel_torque / 0.39))
canMotor3[8] = tps / 0.4
txCan(TCU_BUS, MOTOR_3, 0, canMotor3)
end
motorBreCounter = 0
function sendMotorBre()
motorBreCounter = (motorBreCounter + 1) % 16
setBitRange(motorBreData, 8, 4, motorBreCounter)
xorChecksum(motorBreData, 1)
txCan(TCU_BUS, MOTOR_BRE, 0, motorBreData)
end
motor2counter = 0
function sendMotor2()
motor2counter = (motor2counter + 1) % 16
minTorque = fakeTorque / 2
-- todo: add CLT
motor2Data[7] = math.floor(minTorque / 0.39)
--print ( "brake " .. getBitRange(data, 16, 2) .. " " .. rpm)
brakeBit = rpm < 2000 and 1 or 0
setBitRange(motor2Data, 16, 1, brakeBit)
index = math.floor(motor2counter / 4)
motor2Data[1] = motor2mux[1 + index]
txCan(TCU_BUS, MOTOR_2, 0, motor2Data)
end
motor5FuelCounter = 0
function sendMotor5()
setBitRange(motor5Data, 5, 9, motor5FuelCounter)
xorChecksum(motor5Data, 8)
txCan(TCU_BUS, MOTOR_5, 0, motor5Data)
end
motor6counter = 0
function sendMotor6()
motor6counter = (motor6counter + 1) % 16
engineTorque = fakeTorque * 0.9
actualTorque = fakeTorque
feedbackGearbox = 255
motor6Data[2] = math.floor(engineTorque / 0.39)
motor6Data[3] = math.floor(actualTorque / 0.39)
motor6Data[6] = math.floor(feedbackGearbox / 0.39)
setBitRange(motor6Data, 60, 4, motor6counter)
xorChecksum(motor6Data, 1)
txCan(TCU_BUS, MOTOR_6, 0, motor6Data)
end
accGraCounter = 0
function sendAccGra()
accGraCounter = (accGraCounter + 1) % 16
setBitRange(accGraData, 60, 4, accGraCounter)
xorChecksum(accGraData, 1)
txCan(TCU_BUS, ACC_GRA, 0, accGraData)
end
canMotorInfoCounter = 0
function onMotorInfo(bus, id, dlc, data)
canMotorInfoTotalCounter = canMotorInfoTotalCounter + 1
canMotorInfoCounter = (canMotorInfoCounter + 1) % 16
baseByte = canMotorInfoTotalCounter < 6 and 0x80 or 0x90
canMotorInfo[1] = baseByte + (canMotorInfoCounter)
canMotorInfo1[1] = baseByte + (canMotorInfoCounter)
canMotorInfo3[1] = baseByte + (canMotorInfoCounter)
mod4 = canMotorInfoCounter % 4
if (mod4 == 0 or mod4 == 2) then
txCan(TCU_BUS, MOTOR_INFO, 0, canMotorInfo)
elseif (mod4 == 1) then
txCan(TCU_BUS, MOTOR_INFO, 0, canMotorInfo1)
else
txCan(TCU_BUS, MOTOR_INFO, 0, canMotorInfo3)
end
end
function sendMotor7()
txCan(TCU_BUS, MOTOR_7, 0, motor7Data)
end
local tcuId = 0
function onCanHello(bus, id, dlc, data)
-- here we handle 201 packets
print('Got Hello Response ' ..arrayToString(data))
tcuId = data[6] * 256 + data[5]
print('From TCU ' ..tcuId)
txCan(1, tcuId, 0, { 0xA0, 0x0F, 0x8A, 0xFF, 0x32, 0xFF })
end
local sendCounter = 2
local packetCounter = 1
local payLoadIndex = 0
local groups = { 10 }
-- todo: smarter array size calculation?
local groupsSize = 1
local groupIndex = 1
function onCanTester(bus, id, dlc, data)
-- here we handle 300 packets
-- print('Got from tester ' ..arrayToString(data))
if data[1] == 0xA3 then
-- print ("Keep-alive")
txCan(1, tcuId, 0, { 0xA1, 0x0F, 0x8A, 0xFF, 0x4A, 0xFF })
groupIndex = groupIndex + 1
if groupIndex > groupsSize then
groupIndex = 1
end
groupId = groups[groupIndex]
print (groupIndex .." " ..groupId)
reqFirst = 0x10 + sendCounter
print("Requesting next group " ..groupId .." with counter " ..sendCounter)
txCan(1, tcuId, 0, { reqFirst, 0x00, 0x02, 0x21, groupId })
sendCounter = sendCounter + 1
if sendCounter == 16 then
sendCounter = 0
end
return
end
if data[1] == 0xA1 then
print ("Happy 300 packet")
txCan(1, tcuId, 0, { 0x10, 0x00, 0x02, 0x10, 0x89 })
return
end
if data[1] == 0xA8 then
print ("They said Bye-Bye")
return
end
if data[1] == 0x10 and dlc == 5 then
ackPacket = 0xB0 + packetCounter
print ("Sending ACK B1 " ..ackPacket)
txCan(1, tcuId, 0, { ackPacket })
-- request first group from array
txCan(1, tcuId, 0, { 0x11, 0x00, 0x02, 0x21, groups[1] })
return
end
top4 = math.floor(data[1] / 16)
if top4 == 0xB then
-- print("Got ACK")
return
end
if top4 == 2 or top4 == 1 then
print ("Looks like payload index " ..payLoadIndex ..": " ..arrayToString(data))
if groupId == 2 and payLoadIndex == 0 then
L7 = data[7]
H9 = data[8]
V = 256 * H9 + L7
print("V 0 " ..V)
end
if groupId == 2 and payLoadIndex == 1 then
L3 = data[3]
H4 = data[4]
V = 256 * H4 + L3
print("V 1 " ..V)
end
if groupId == 2 and payLoadIndex == 2 then
L2 = data[2]
H3 = data[3]
V = 256 * H3 + L2
print("V 2 " ..V)
end
payLoadIndex = payLoadIndex + 1
packetCounter = packetCounter + 1
if packetCounter > 15 then
packetCounter = 0
end
if top4 == 1 then
ackPacket = 0xB0 + packetCounter
print ("Sending payload ACK " ..ackPacket)
txCan(1, tcuId, 0, { ackPacket })
payLoadIndex = 0
end
return
end
print('Got unexpected ' ..arrayToString(data))
end
canRxAdd(VWTP_IN, onCanHello)
txCan(1, VWTP_OUT, 0, { 0x02, 0xC0, 0x00, 0x10, 0x00, 0x03, 0x01 })
function onTick()
freqValue = getSensor("AuxSpeed1") or 0
mafValue = curve(mafCalibrationIndex, 5)
-- print(freqValue .. " mafValue=" .. mafValue)
mafSensor : set(mafValue)
rpm = getSensor("RPM") or 0
vbat = getSensor("BatteryVoltage") or 0
if rpm == 0 then
canMotorInfoTotalCounter = 0
end
onMotor1(0, 0, 0, nil)
sendMotor3()
sendMotor2()
sendMotor5()
sendMotor6()
sendMotor7()
sendMotorBre()
sendAccGra()
local timeToTurnOff = shallSleep : getElapsedSeconds() > 2
local connectedToUsb = vbat < 4
if hadIgnitionEvent and timeToTurnOff then
-- looks like ignition key was removed
-- mcu_standby()
end
if everySecondTimer : getElapsedSeconds() > 1 then
everySecondTimer : reset()
motor5FuelCounter = motor5FuelCounter + 20
onMotorInfo(0, 0, 0, nil)
end
end
-40.0
-30.0
-20.0
-10.0
0.0
10.0
20.0
30.0
40.0
50.0
60.0
70.0
80.0
90.0
100.0
110.0
1.5
1.5
1.42
1.36
1.28
1.19
1.12
1.1
1.06
1.06
1.03
1.01
1.0
1.0
1.0
1.0
-40.0
-30.0
-20.0
-10.0
0.0
10.0
20.0
30.0
40.0
50.0
60.0
70.0
80.0
90.0
100.0
110.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
2.8
2.2
1.8
1.55
1.3
1.1
1.0
1.0
-20.0
-10.0
5.0
20.0
35.0
50.0
65.0
90.0
2.0
1.3
1.0
1.0
1.0
1.0
1.0
1.0
1.0
2.0
3.0
4.0
5.0
6.0
7.0
8.0
-40.0
-30.0
-20.0
-10.0
0.0
10.0
20.0
30.0
40.0
50.0
60.0
70.0
80.0
90.0
100.0
110.0
1.5
1.5
1.3333334
1.0833
1.0833
1.0833
1.0833
1.0833
1.0833
0.8333
0.7667
0.7
0.55
0.55
0.55
0.8
-34.5
-6.0
10.5
105.3
387.5
738.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
3000.0
0.0
0.78125
1.3867188
2.9101562
4.2578125
4.9804688
2016.0
2017.0
2018.0
2019.0
2020.0
2021.0
2022.0
2023.0
2024.0
2025.0
2026.0
2027.0
2028.0
2029.0
2030.0
2031.0
2032.0
2033.0
2034.0
2035.0
2036.0
2037.0
2038.0
2039.0
2040.0
2041.0
2042.0
2043.0
2044.0
2045.0
2046.0
2047.0
2048.0
2049.0
2050.0
2051.0
2052.0
2053.0
2054.0
2055.0
2056.0
2057.0
2058.0
2059.0
2060.0
2061.0
2062.0
2063.0
2064.0
2065.0
2066.0
2067.0
2068.0
2069.0
2070.0
2071.0
2072.0
2073.0
2074.0
2075.0
2076.0
2077.0
2078.0
2079.0
2080.0
2081.0
2082.0
2083.0
2084.0
2085.0
2086.0
2087.0
2088.0
2089.0
2090.0
2091.0
2092.0
2093.0
2094.0
2095.0
2096.0
2097.0
2098.0
2099.0
2100.0
2101.0
2102.0
2103.0
2104.0
2105.0
2106.0
2107.0
2108.0
2109.0
2110.0
2111.0
2112.0
2113.0
2114.0
2115.0
2116.0
2117.0
2118.0
2119.0
2120.0
2121.0
2122.0
2123.0
2124.0
2125.0
2126.0
2127.0
2128.0
2129.0
2130.0
2131.0
2132.0
2133.0
2134.0
2135.0
2136.0
2137.0
2138.0
2139.0
2140.0
2141.0
2142.0
2143.0
2144.0
2145.0
2146.0
2147.0
2148.0
2149.0
2150.0
2151.0
2152.0
2153.0
2154.0
2155.0
2156.0
2157.0
2158.0
2159.0
2160.0
2161.0
2162.0
2163.0
2164.0
2165.0
2166.0
2167.0
2168.0
2169.0
2170.0
2171.0
2172.0
2173.0
2174.0
2175.0
2176.0
2177.0
2178.0
2179.0
2180.0
2181.0
2182.0
2183.0
2184.0
2185.0
2186.0
2187.0
2188.0
2189.0
2190.0
2191.0
2192.0
2193.0
2194.0
2195.0
2196.0
2197.0
2198.0
2199.0
2200.0
2201.0
2202.0
2203.0
2204.0
2205.0
2206.0
2207.0
2208.0
2209.0
2210.0
2211.0
2212.0
2213.0
2214.0
2215.0
2216.0
2217.0
2218.0
2219.0
2220.0
2221.0
2222.0
2223.0
2224.0
2225.0
2226.0
2227.0
2228.0
2229.0
2230.0
2231.0
2232.0
2233.0
2234.0
2235.0
2236.0
2237.0
2238.0
2239.0
2240.0
2241.0
2242.0
2243.0
2244.0
2245.0
2246.0
2247.0
2248.0
2249.0
2250.0
2251.0
2252.0
2253.0
2254.0
2255.0
2256.0
2257.0
2258.0
2259.0
2260.0
2261.0
2262.0
2263.0
2264.0
2265.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 -1.0 -2.0
0.0 0.0 0.0 0.0 0.0 -1.0 -2.0 -3.0
0.0 0.0 0.0 0.0 0.0 -1.0 -2.0 -3.0
0.0 0.0 0.0 0.0 0.0 -1.0 -2.0 -3.0
0.0 0.0 0.0 0.0 0.0 -1.0 -2.0 -3.0
0.0 0.0 0.0 0.0 0.0 -1.0 -2.0 -3.0
-40.0
0.0
10.0
20.0
30.0
40.0
50.0
60.0
0.0
20.0
40.0
60.0
80.0
100.0
120.0
140.0
-180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0
-180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0
-180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0
-180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0
-180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0
-180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0
-180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0
-180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0
-180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0
-180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0
-180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0
-180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0
-180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0
-180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0
-180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0
-180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0 -180.0
10.0
20.0
30.0
40.0
50.0
60.0
70.0
80.0
90.0
100.0
110.0
120.0
130.0
140.0
150.0
160.0
650.0
800.0
1100.0
1400.0
1700.0
2000.0
2300.0
2600.0
2900.0
3200.0
3500.0
3800.0
4100.0
4400.0
4700.0
7000.0
0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
20.0
30.0
50.0
60.0
80.0
90.0
110.0
120.0
650.0
800.0
1700.0
2600.0
3500.0
4400.0
5300.0
7000.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
20.0
30.0
50.0
60.0
80.0
90.0
110.0
120.0
650.0
800.0
1700.0
2600.0
3500.0
4400.0
5300.0
7000.0
12.2 14.2 18.1 17.0 19.9 26.4 32.0 42.9 42.9 42.9 42.9 42.9 42.9 42.9 42.9 42.9
12.2 14.2 18.1 17.0 19.9 26.4 32.0 42.9 42.9 42.9 42.9 42.9 42.9 42.9 42.9 42.9
12.2 14.2 18.1 17.0 19.9 26.4 32.0 42.9 42.9 42.9 42.9 42.9 42.9 42.9 42.9 42.9
12.2 14.2 18.1 17.0 19.9 26.4 32.0 42.9 42.9 42.9 42.9 42.9 42.9 42.9 42.9 42.9
12.2 14.2 18.1 17.0 19.9 26.4 32.0 42.9 42.9 42.9 42.9 42.9 42.9 42.9 42.9 42.9
12.2 14.2 18.1 17.0 19.9 26.4 32.0 42.9 42.9 42.9 42.9 42.9 42.9 42.9 42.9 42.9
12.2 14.2 18.1 17.0 19.9 26.4 32.0 42.9 42.9 42.9 42.9 42.9 42.9 42.9 42.9 42.9
12.2 14.2 18.1 17.0 19.9 26.4 32.0 42.9 42.9 42.9 42.9 42.9 42.9 42.9 42.9 42.9
12.2 14.2 18.1 17.0 19.9 26.4 32.0 42.9 42.9 42.9 42.9 42.9 42.9 42.9 42.9 42.9
12.1 14.1 18.0 16.8 19.6 26.1 31.6 42.5 42.5 42.5 42.5 42.5 42.5 42.5 42.5 42.5
12.1 14.0 17.8 16.6 19.3 25.6 31.1 42.0 42.0 42.0 42.0 42.0 42.0 42.0 42.0 42.0
11.8 13.7 17.4 16.2 18.6 24.8 30.2 41.0 41.0 41.0 41.0 41.0 41.0 41.0 41.0 41.0
11.4 13.2 16.7 15.2 17.3 23.1 28.2 39.0 39.0 39.0 39.0 39.0 39.0 39.0 39.0 39.0
10.9 12.6 15.9 14.2 16.0 21.5 26.3 37.0 37.0 37.0 37.0 37.0 37.0 37.0 37.0 37.0
10.8 12.4 15.6 13.8 15.3 20.6 25.3 36.0 36.0 36.0 36.0 36.0 36.0 36.0 36.0 36.0
10.5 12.1 15.2 13.4 14.7 19.9 20.3 20.7 21.1 21.5 22.0 22.4 22.8 23.2 23.6 24.0
0.0
2.0
4.0
6.0
8.0
10.0
13.0
16.0
20.0
25.0
30.0
40.0
60.0
80.0
90.0
100.0
650.0
800.0
1100.0
1400.0
2000.0
2500.0
3000.0
3500.0
4000.0
4500.0
5000.0
5500.0
6000.0
6500.0
7000.0
7500.0
44.0 44.0 44.0 43.0 42.0 41.0 40.0 40.0 40.0 40.0 40.0 40.0 40.0 40.0 40.0 40.0
44.0 44.0 44.0 43.0 42.0 41.0 40.0 40.0 40.0 40.0 40.0 40.0 40.0 40.0 40.0 40.0
45.0 53.0 53.0 53.0 45.0 42.5 40.0 40.0 40.0 40.0 40.0 40.0 40.0 40.0 40.0 40.0
45.0 60.0 55.0 55.0 45.0 43.6 42.1 42.3 42.5 42.7 55.0 55.0 55.0 55.0 55.0 55.0
45.0 55.0 55.0 55.0 55.0 54.6 54.2 54.6 55.0 55.4 85.0 85.0 85.0 85.0 85.0 85.0
46.8 56.9 57.0 57.1 57.2 56.8 56.3 56.9 57.5 58.1 85.0 85.0 85.0 85.0 85.0 85.0
49.4 59.7 60.0 60.2 60.5 67.1 59.5 60.4 61.3 62.1 85.0 85.0 85.0 85.0 85.0 85.0
52.1 82.5 83.0 83.4 83.8 88.3 82.7 83.8 85.0 86.2 85.0 85.0 85.0 85.0 85.0 85.0
55.6 86.3 86.9 87.6 88.2 90.0 86.9 88.5 90.0 91.5 85.0 85.0 85.0 85.0 85.0 85.0
60.0 91.0 91.9 92.8 93.7 92.1 92.2 94.2 96.3 98.3 85.0 85.0 85.0 85.0 85.0 85.0
60.0 91.3 92.5 93.6 94.8 95.0 97.5 100.0 102.5 105.0 105.5 106.0 106.5 107.0 104.5 85.0
60.0 91.9 93.6 95.2 96.9 97.9 100.4 102.9 105.4 107.9 108.4 108.9 109.4 109.9 107.4 85.0
60.0 93.1 95.9 98.5 101.3 103.6 106.1 108.6 111.1 113.6 114.1 114.6 115.1 115.6 113.1 85.0
50.0 94.3 98.1 101.8 105.6 109.3 111.8 114.3 116.8 119.3 119.8 120.3 120.8 121.3 118.8 85.0
55.0 97.1 100.9 104.6 108.4 112.1 114.6 117.1 119.6 122.1 122.6 123.1 123.6 124.1 121.6 85.0
55.0 100.0 103.8 107.5 111.3 115.0 117.5 120.0 122.5 125.0 125.5 126.0 126.5 127.0 124.5 109.0
0.0
2.0
4.0
6.0
8.0
10.0
13.0
16.0
20.0
25.0
30.0
40.0
60.0
80.0
90.0
100.0
650.0
800.0
1100.0
1400.0
1700.0
2000.0
2300.0
2600.0
2900.0
3200.0
3500.0
3800.0
4100.0
4400.0
4700.0
7000.0
14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7
14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7
14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7
14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7
14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7 14.7
14.0 14.0 14.0 14.0 14.0 14.0 14.0 14.0 14.0 14.0 14.0 14.0 14.0 14.0 14.0 14.0
13.5 13.5 13.5 13.5 13.5 13.5 13.5 13.5 13.5 13.5 13.5 13.5 13.5 13.5 13.5 13.5
13.2 13.2 13.2 13.2 13.2 13.2 13.2 13.2 13.2 13.2 13.2 13.2 13.2 13.2 13.2 13.2
13.1 13.1 13.1 13.1 13.1 13.1 13.1 13.1 13.1 13.1 13.1 13.1 13.1 13.1 13.1 13.1
12.9 12.9 12.9 12.9 12.9 12.9 12.9 12.9 12.9 12.9 12.9 12.9 12.9 12.9 12.9 12.9
12.6 12.6 12.6 12.6 12.6 12.6 12.6 12.6 12.6 12.6 12.6 12.6 12.6 12.6 12.6 12.6
12.3 12.3 12.3 12.3 12.3 12.3 12.3 12.3 12.3 12.3 12.3 12.3 12.3 12.3 12.3 12.3
11.8 11.8 11.8 11.8 11.8 11.8 11.8 11.8 11.8 11.8 11.8 11.8 11.8 11.8 11.8 11.8
11.3 11.3 11.3 11.3 11.3 11.3 11.3 11.3 11.3 11.3 11.3 11.3 11.3 11.3 11.3 11.3
11.0 11.0 11.0 11.0 11.0 11.0 11.0 11.0 11.0 11.0 11.0 11.0 11.0 11.0 11.0 11.0
10.7 10.7 10.7 10.7 10.7 10.7 10.7 10.7 10.7 10.7 10.7 10.7 10.7 10.7 10.7 10.7
30.0
40.0
50.0
60.0
70.0
80.0
90.0
100.0
110.0
120.0
130.0
150.0
175.0
200.0
225.0
250.0
650.0
800.0
1100.0
1400.0
1700.0
2000.0
2300.0
2600.0
2900.0
3200.0
3500.0
3800.0
4100.0
4400.0
4700.0
7000.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
10.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
17.0 10.0 0.0 0.0 0.0 0.0 0.0 0.0
23.0 17.0 10.0 0.0 0.0 0.0 0.0 0.0
28.0 23.0 17.0 10.0 0.0 0.0 0.0 0.0
32.0 28.0 23.0 17.0 10.0 0.0 0.0 0.0
35.0 32.0 28.0 23.0 17.0 10.0 0.0 0.0
37.0 35.0 32.0 28.0 23.0 17.0 10.0 0.0
0.0
10.0
30.0
40.0
60.0
70.0
90.0
100.0
0.0
10.0
30.0
40.0
60.0
70.0
90.0
100.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
20.0
30.0
50.0
60.0
80.0
90.0
110.0
120.0
650.0
800.0
1700.0
2600.0
3500.0
4400.0
5300.0
7000.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
20.0
30.0
50.0
60.0
80.0
90.0
110.0
120.0
650.0
800.0
1700.0
2600.0
3500.0
4400.0
5300.0
7000.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
20.0
30.0
50.0
60.0
80.0
90.0
110.0
120.0
650.0
800.0
1700.0
2600.0
3500.0
4400.0
5300.0
7000.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
20.0
30.0
50.0
60.0
80.0
90.0
110.0
120.0
650.0
800.0
1700.0
2600.0
3500.0
4400.0
5300.0
7000.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
2.8
2.2
1.8
1.55
1.3
1.1
1.0
1.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
2.0
5.0
7.0
10.0
650.0
800.0
3750.0
7000.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
2.0
5.0
7.0
10.0
650.0
800.0
3750.0
7000.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
"Zero"
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
"Zero"
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
"Zero"
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
"Zero"
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
"Zero"
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
"Zero"
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
"Zero"
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
"Zero"
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0
0.0