Subversion Repositories ALCASAR

Rev

Rev 2346 | Rev 2377 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log

Rev 2346 Rev 2370
1
<?php
1
<?php
2
# $Id: status.php 2346 2017-07-21 23:09:06Z tom.houdayer $
2
# $Id: status.php 2370 2017-08-09 23:20:58Z tom.houdayer $
3
#
3
#
4
# status.php for ALCASAR captive portal
4
# status.php for ALCASAR captive portal
5
# by steweb57 & Rexy
5
# by steweb57 & Rexy
6
# 
6
# 
7
/****************************************************************
7
/****************************************************************
8
*			GLOBAL FILE PATHS			*
8
*			GLOBAL FILE PATHS			*
9
*****************************************************************/
9
*****************************************************************/
10
define('CONF_FILE', '/usr/local/etc/alcasar.conf');
10
define('CONF_FILE', '/usr/local/etc/alcasar.conf');
11
 
11
 
12
/****************************************************************
12
/****************************************************************
13
*			FILE reading test			*
13
*			FILE reading test			*
14
*****************************************************************/
14
*****************************************************************/
15
$conf_files = array(CONF_FILE);
15
$conf_files = array(CONF_FILE);
16
foreach ($conf_files as $file) {
16
foreach ($conf_files as $file) {
17
	if (!file_exists($file)) {
17
	if (!file_exists($file)) {
18
		exit("Fichier $file non présent");
18
		exit("Fichier $file non présent");
19
	}
19
	}
20
	if (!is_readable($file)) {
20
	if (!is_readable($file)) {
21
		exit("Vous n'avez pas les droits de lecture sur le fichier $file");
21
		exit("Vous n'avez pas les droits de lecture sur le fichier $file");
22
	}
22
	}
23
}
23
}
24
 
24
 
25
/****************************************************************
25
/****************************************************************
26
*			Read CONF_FILE				*
26
*			Read CONF_FILE				*
27
*****************************************************************/
27
*****************************************************************/
28
$file_conf = fopen(CONF_FILE, 'r');
28
$file_conf = fopen(CONF_FILE, 'r');
29
if (!$file_conf) {
29
if (!$file_conf) {
30
	exit('Error opening the file '.CONF_FILE);
30
	exit('Error opening the file '.CONF_FILE);
31
}
31
}
32
while (!feof($file_conf)) {
32
while (!feof($file_conf)) {
33
	$buffer = fgets($file_conf, 4096);
33
	$buffer = fgets($file_conf, 4096);
34
	if ((strpos($buffer, '=') !== false) && (substr($buffer, 0, 1) !== '#')) {
34
	if ((strpos($buffer, '=') !== false) && (substr($buffer, 0, 1) !== '#')) {
35
		$tmp = explode('=', $buffer);
35
		$tmp = explode('=', $buffer);
36
		$conf[trim($tmp[0])] = trim($tmp[1]);
36
		$conf[trim($tmp[0])] = trim($tmp[1]);
37
	}
37
	}
38
}
38
}
39
fclose($file_conf);
39
fclose($file_conf);
40
 
40
 
41
$organisme = $conf['ORGANISM'];
41
$organisme = $conf['ORGANISM'];
42
$remote_ip = preg_match('#^([0-9]{1,3}\.){3}[0-9]{1,3}$#', $_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : '';
42
$remote_ip = preg_match('#^([0-9]{1,3}\.){3}[0-9]{1,3}$#', $_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : '';
43
$cn = '';
43
$cn = '';
44
$connection_history = '';
44
$connection_history = '';
45
$nb_connection_history = 3;
45
$nb_connection_history = 3;
46
$homepage_url = (($conf['HTTPS_LOGIN'] === 'on') ? 'https' : 'http' ).'://'.$conf['HOSTNAME'].'.'.$conf['DOMAIN'].'/';
46
$homepage_url = (($conf['HTTPS_LOGIN'] === 'on') ? 'https' : 'http' ).'://'.$conf['HOSTNAME'].'.'.$conf['DOMAIN'].'/';
-
 
47
$useHTTPS = ((isset($_SERVER['HTTPS'])) && (!empty($_SERVER['HTTPS'])) && ($_SERVER['HTTPS'] !== 'off'));
47
 
48
 
48
// Wait for chilli (update its tables)
49
// Wait for chilli (update its tables)
49
sleep(1); // TODO: wait after login only?
50
sleep(1); // TODO: wait after login only?
50
// Retrieve user info in tab $user[]
51
// Retrieve user info in tab $user[]
51
exec("sudo /usr/sbin/chilli_query list | grep 'pass' | grep -Ew '($remote_ip)'" , $tab);
52
exec("sudo /usr/sbin/chilli_query list | grep 'pass' | grep -Ew '($remote_ip)'" , $tab);
52
if (isset($tab[0])) {
53
if (isset($tab[0])) {
53
	$user = explode(' ', $tab[0]);
54
	$user = explode(' ', $tab[0]);
54
}
55
}
55
 
56
 
56
// Time conversion 
57
// Time conversion 
57
function secondsToDuration($seconds = null) {
58
function secondsToDuration($seconds = null) {
58
	if ($seconds === null) return '';
59
	if ($seconds === null) return '';
59
	$temp = $seconds % 3600;
60
	$temp = $seconds % 3600;
60
	$time[2] = $temp % 60 ;			// seconds
61
	$time[2] = $temp % 60 ;			// seconds
61
	$time[1] = ($temp - $time[2]) / 60;	// minutes
62
	$time[1] = ($temp - $time[2]) / 60;	// minutes
62
	$time[0] = ($seconds - $temp) / 3600 ;	// hours
63
	$time[0] = ($seconds - $temp) / 3600 ;	// hours
63
	return $time[0].' h '.$time[1].' m '.$time[2].' s';
64
	return $time[0].' h '.$time[1].' m '.$time[2].' s';
64
}
65
}
65
 
66
 
66
# Choice of language
67
# Choice of language
67
// TODO: reste quelques traductions à faire
68
// TODO: reste quelques traductions à faire
68
$Language = 'en';
69
$Language = 'en';
69
if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
70
if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
70
	$Langue = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']);
71
	$Langue = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']);
71
	$Language = strtolower(substr(chop($Langue[0]), 0, 2));
72
	$Language = strtolower(substr(chop($Langue[0]), 0, 2));
72
}
73
}
73
if ($Language === 'es') {		// Spanish
74
if ($Language === 'es') {		// Spanish
74
	$l_login1			= "El éxito de la autenticación";
75
	$l_login1			= "El éxito de la autenticación";
75
	$l_logout			= "Conexión de cierre";
76
	$l_logout			= "Conexión de cierre";
76
	$l_logout_question		= "¿Seguro que desea desconectar?";
77
	$l_logout_question		= "¿Seguro que desea desconectar?";
77
	$l_loggedout			= "Su sesión se cierra";
78
	$l_loggedout			= "Su sesión se cierra";
78
	$l_wait				= "Por favor, espere un momento ...";
79
	$l_wait				= "Por favor, espere un momento ...";
79
	$l_state_label			= "Estado";
80
	$l_state_label			= "Estado";
80
	$l_session_id_label		= "Sesión ID";
81
	$l_session_id_label		= "Sesión ID";
81
	$l_max_session_time_label	= "Tiempo máximo de sesión";
82
	$l_max_session_time_label	= "Tiempo máximo de sesión";
82
	$l_max_idle_time_label		= "Tiempo de inactividad autorizado";
83
	$l_max_idle_time_label		= "Tiempo de inactividad autorizado";
83
	$l_start_time_label		= "Start Time";	// to translate
84
	$l_start_time_label		= "Start Time";	// to translate
84
	$l_session_time_label		= "Tiempo de conexión";
85
	$l_session_time_label		= "Tiempo de conexión";
85
	$l_idle_time_label		= "Idle Time";	// to translate
86
	$l_idle_time_label		= "Idle Time";	// to translate
86
	$l_downloaded_label		= "Downloaded";	// to translate
87
	$l_downloaded_label		= "Downloaded";	// to translate
87
	$l_uploaded_label		= "Uploaded";	// to translate
88
	$l_uploaded_label		= "Uploaded";	// to translate
88
	$l_original_url_label		= "Original URL";	// to translate
89
	$l_original_url_label		= "Original URL";	// to translate
89
	$l_not_available		= "Not available";	// to translate
90
	$l_not_available		= "Not available";	// to translate
90
	$l_error			= "error";		// to translate
91
	$l_error			= "error";		// to translate
91
	$l_welcome			= "Welcome";	// to translate
92
	$l_welcome			= "Welcome";	// to translate
92
	$l_conn_history			= "Your last $nb_connection_history connections";	// to translate
93
	$l_conn_history			= "Your last $nb_connection_history connections";	// to translate
93
	$l_connected 			= "logged"; // to translate
94
	$l_connected 			= "logged"; // to translate
94
	$l_a_connection			= "You have"; // to translate
95
	$l_a_connection			= "You have"; // to translate
95
	$l_a_connection_time		= "active connections on the network"; // to translate
96
	$l_a_connection_time		= "active connections on the network"; // to translate
96
	$l_close_warning		= "Advertencia: se desconectará si cierra esta ventana";
97
	$l_close_warning		= "Advertencia: se desconectará si cierra esta ventana";
97
	$l_back_homepage		= "Volver a la página de inicio";
98
	$l_back_homepage		= "Volver a la página de inicio";
98
} else if ($Language === 'zh') {	// Chinese
99
} else if ($Language === 'zh') {	// Chinese
99
	$l_login1			= "验证通过";
100
	$l_login1			= "验证通过";
100
	$l_logout			= "关闭连接";
101
	$l_logout			= "关闭连接";
101
	$l_logout_question		= "您确定需要断开连接吗?";
102
	$l_logout_question		= "您确定需要断开连接吗?";
102
	$l_loggedout			= "您已登出";
103
	$l_loggedout			= "您已登出";
103
	$l_wait				= "请等待 ...";
104
	$l_wait				= "请等待 ...";
104
	$l_state_label			= "连接状态";
105
	$l_state_label			= "连接状态";
105
	$l_session_id_label		= "连接ID";
106
	$l_session_id_label		= "连接ID";
106
	$l_max_session_time_label	= "最大连接时间";
107
	$l_max_session_time_label	= "最大连接时间";
107
	$l_max_idle_time_label		= "最大闲置时间";
108
	$l_max_idle_time_label		= "最大闲置时间";
108
	$l_start_time_label		= "起始连接时间";
109
	$l_start_time_label		= "起始连接时间";
109
	$l_session_time_label		= "连接时间";
110
	$l_session_time_label		= "连接时间";
110
	$l_idle_time_label		= "闲置时间";
111
	$l_idle_time_label		= "闲置时间";
111
	$l_downloaded_label		= "数据下载";
112
	$l_downloaded_label		= "数据下载";
112
	$l_uploaded_label		= "数据上传";
113
	$l_uploaded_label		= "数据上传";
113
	$l_original_url_label		= "初始网址";
114
	$l_original_url_label		= "初始网址";
114
	$l_not_available		= "不可用";
115
	$l_not_available		= "不可用";
115
	$l_error			= "出错";
116
	$l_error			= "出错";
116
	$l_welcome			= "欢迎";
117
	$l_welcome			= "欢迎";
117
	$l_conn_history			= "您最近的{$nb_connection_history}次连接";
118
	$l_conn_history			= "您最近的{$nb_connection_history}次连接";
118
	$l_connected 			= "已登录";  
119
	$l_connected 			= "已登录";  
119
	$l_a_connection			= "您已经有";
120
	$l_a_connection			= "您已经有";
120
	$l_a_connection_time		= "在线时间";
121
	$l_a_connection_time		= "在线时间";
121
	$l_close_warning		= "警告: 您将会断开连接如果您在关闭此窗口";
122
	$l_close_warning		= "警告: 您将会断开连接如果您在关闭此窗口";
122
	$l_back_homepage		= "回到主页";
123
	$l_back_homepage		= "回到主页";
123
} else if ($Language === 'ar') {	// Arabic
124
} else if ($Language === 'ar') {	// Arabic
124
	$l_login1			= "نجاح المصادقة";
125
	$l_login1			= "نجاح المصادقة";
125
	$l_logout			= "إغلاق الدورة";
126
	$l_logout			= "إغلاق الدورة";
126
	$l_logout_question		= "هل تريد فعلاً قطع الاتصال؟";
127
	$l_logout_question		= "هل تريد فعلاً قطع الاتصال؟";
127
	$l_loggedout			= "دورتكَ مُغلَقة";
128
	$l_loggedout			= "دورتكَ مُغلَقة";
128
	$l_wait				= "...إنتظر بعض اللحظات";
129
	$l_wait				= "...إنتظر بعض اللحظات";
129
	$l_state_label			= "وَضْع";
130
	$l_state_label			= "وَضْع";
130
	$l_session_id_label		= "معرف الدورة";
131
	$l_session_id_label		= "معرف الدورة";
131
	$l_max_session_time_label	= "الوقت المسموح للإتصال";
132
	$l_max_session_time_label	= "الوقت المسموح للإتصال";
132
	$l_max_idle_time_label		= "الحد الأقصى لعدم التنشيط";
133
	$l_max_idle_time_label		= "الحد الأقصى لعدم التنشيط";
133
	$l_start_time_label		= "بداية الإتصال";
134
	$l_start_time_label		= "بداية الإتصال";
134
	$l_session_time_label		= "مدة الإتصال";
135
	$l_session_time_label		= "مدة الإتصال";
135
	$l_idle_time_label		= "انعدام التنشيط";
136
	$l_idle_time_label		= "انعدام التنشيط";
136
	$l_downloaded_label		= "تم تحميل المعطيات";
137
	$l_downloaded_label		= "تم تحميل المعطيات";
137
	$l_uploaded_label		= "تم إرسال المعطيات";
138
	$l_uploaded_label		= "تم إرسال المعطيات";
138
	$l_original_url_label		= "تم طلب URL";
139
	$l_original_url_label		= "تم طلب URL";
139
	$l_not_available		= "غير متوفّر";
140
	$l_not_available		= "غير متوفّر";
140
	$l_na				= "N/D";
141
	$l_na				= "N/D";
141
	$l_error			= "خطأ";
142
	$l_error			= "خطأ";
142
	$l_welcome			= "مرحباً بك";
143
	$l_welcome			= "مرحباً بك";
143
	$l_conn_history			= "($nb_connection_history) سِجِل اتصالاتك الاخيرة";
144
	$l_conn_history			= "($nb_connection_history) سِجِل اتصالاتك الاخيرة";
144
	$l_connected 			= "دورة ناشطة";  
145
	$l_connected 			= "دورة ناشطة";  
145
	$l_a_connection			= "لديك";
146
	$l_a_connection			= "لديك";
146
	$l_a_connection_time		= "اتصالات ناشطة على الشبكة";
147
	$l_a_connection_time		= "اتصالات ناشطة على الشبكة";
147
	$l_close_warning		= "تحذير: سيتم قطع الاتصال إذا قمت بإغلاق هذه النافذة";
148
	$l_close_warning		= "تحذير: سيتم قطع الاتصال إذا قمت بإغلاق هذه النافذة";
148
	$l_back_homepage		= "الرجوع إلى الصفحة الرئيسية";
149
	$l_back_homepage		= "الرجوع إلى الصفحة الرئيسية";
149
} else if ($Language === 'pt') {	// Portuguese
150
} else if ($Language === 'pt') {	// Portuguese
150
	$l_login1			= "Autenticação bem sucedida.";
151
	$l_login1			= "Autenticação bem sucedida.";
151
	$l_logout			= "Fechando a conexão";
152
	$l_logout			= "Fechando a conexão";
152
	$l_logout_question		= "Tem certeza de que deseja desconectar agora?";
153
	$l_logout_question		= "Tem certeza de que deseja desconectar agora?";
153
	$l_loggedout			= "Sua conexão será fechada";
154
	$l_loggedout			= "Sua conexão será fechada";
154
	$l_wait				= "Por favor, aguarde um momento ...";
155
	$l_wait				= "Por favor, aguarde um momento ...";
155
	$l_state_label			= "Estado da conexão";
156
	$l_state_label			= "Estado da conexão";
156
	$l_session_id_label		= "Sessão ID";
157
	$l_session_id_label		= "Sessão ID";
157
	$l_max_session_time_label	= "Restante em horas da conexão";
158
	$l_max_session_time_label	= "Restante em horas da conexão";
158
	$l_max_idle_time_label		= "Restante máximo liberado por dia";
159
	$l_max_idle_time_label		= "Restante máximo liberado por dia";
159
	$l_start_time_label		= "Dia, mês, ano e hora da conexão";
160
	$l_start_time_label		= "Dia, mês, ano e hora da conexão";
160
	$l_session_time_label		= "Duração da conexão";
161
	$l_session_time_label		= "Duração da conexão";
161
	$l_idle_time_label		= "Tempo de Espera";
162
	$l_idle_time_label		= "Tempo de Espera";
162
	$l_downloaded_label		= "Recebidos";
163
	$l_downloaded_label		= "Recebidos";
163
	$l_uploaded_label		= "Enviados";
164
	$l_uploaded_label		= "Enviados";
164
	$l_original_url_label		= "URL Original";
165
	$l_original_url_label		= "URL Original";
165
	$l_not_available		= "Não disponível";
166
	$l_not_available		= "Não disponível";
166
	$l_error			= "Erro";
167
	$l_error			= "Erro";
167
	$l_welcome			= "Bem-vindo(a)";
168
	$l_welcome			= "Bem-vindo(a)";
168
	$l_conn_history			= "Suas últimos conexões : $nb_connection_history";
169
	$l_conn_history			= "Suas últimos conexões : $nb_connection_history";
169
	$l_connected 			= "Conectado"; 
170
	$l_connected 			= "Conectado"; 
170
	$l_a_connection			= "Conexão ativa já detectada para essa LAN";
171
	$l_a_connection			= "Conexão ativa já detectada para essa LAN";
171
	$l_a_connection_time		= "Tempo (s)";
172
	$l_a_connection_time		= "Tempo (s)";
172
	$l_close_warning		= "Aviso: você será desconectado se fechar esta janela";
173
	$l_close_warning		= "Aviso: você será desconectado se fechar esta janela";
173
	$l_back_homepage		= "Voltar à página inicial";
174
	$l_back_homepage		= "Voltar à página inicial";
174
} else if ($Language === 'de') {	// German
175
} else if ($Language === 'de') {	// German
175
	$l_login1			= "Erfolgreiche Authentifizierung";
176
	$l_login1			= "Erfolgreiche Authentifizierung";
176
	$l_logout			= "Beenden der Verbindung";
177
	$l_logout			= "Beenden der Verbindung";
177
	$l_logout_question		= "Möchten Sie die Verbindung jetzt wirklich trennen?";
178
	$l_logout_question		= "Möchten Sie die Verbindung jetzt wirklich trennen?";
178
	$l_loggedout			= "Ihre Sitzung ist geschlossen";
179
	$l_loggedout			= "Ihre Sitzung ist geschlossen";
179
	$l_wait				= "Bitte warten Sie einen Moment ...";
180
	$l_wait				= "Bitte warten Sie einen Moment ...";
180
	$l_state_label			= "State";		// to translate
181
	$l_state_label			= "State";		// to translate
181
	$l_session_id_label		= "Session ID";	// to translate
182
	$l_session_id_label		= "Session ID";	// to translate
182
	$l_max_session_time_label	= "Max Session Time";	// to translate
183
	$l_max_session_time_label	= "Max Session Time";	// to translate
183
	$l_max_idle_time_label		= "Max Idle Time";		// to translate
184
	$l_max_idle_time_label		= "Max Idle Time";		// to translate
184
	$l_start_time_label		= "Start Time";	// to translate
185
	$l_start_time_label		= "Start Time";	// to translate
185
	$l_session_time_label		= "Online-zeit";
186
	$l_session_time_label		= "Online-zeit";
186
	$l_idle_time_label		= "Idle Time";	// to translate
187
	$l_idle_time_label		= "Idle Time";	// to translate
187
	$l_downloaded_label		= "Downloaded";	// to translate
188
	$l_downloaded_label		= "Downloaded";	// to translate
188
	$l_uploaded_label		= "Uploaded";	// to translate
189
	$l_uploaded_label		= "Uploaded";	// to translate
189
	$l_original_url_label		= "Original URL";	// to translate
190
	$l_original_url_label		= "Original URL";	// to translate
190
	$l_not_available		= "Not available";	// to translate
191
	$l_not_available		= "Not available";	// to translate
191
	$l_error			= "error";		// to translate
192
	$l_error			= "error";		// to translate
192
	$l_welcome			= "Welcome"; 	// to translate
193
	$l_welcome			= "Welcome"; 	// to translate
193
	$l_conn_history			= "Your last $nb_connection_history connections";	// to translate
194
	$l_conn_history			= "Your last $nb_connection_history connections";	// to translate
194
	$l_connected 			= "logged"; // to translate 
195
	$l_connected 			= "logged"; // to translate 
195
	$l_a_connection			= "You have"; // to translate
196
	$l_a_connection			= "You have"; // to translate
196
	$l_a_connection_time		= "active connections on the network"; // to translate
197
	$l_a_connection_time		= "active connections on the network"; // to translate
197
	$l_close_warning		= "Warnung: Sie werden getrennt, wenn Sie dieses Fenster schließen";
198
	$l_close_warning		= "Warnung: Sie werden getrennt, wenn Sie dieses Fenster schließen";
198
	$l_back_homepage		= "Zurück zur Startseite";
199
	$l_back_homepage		= "Zurück zur Startseite";
199
} else if ($Language === 'nl') {	// Dutch
200
} else if ($Language === 'nl') {	// Dutch
200
	$l_login1			= "Succesvolle authenticatie";
201
	$l_login1			= "Succesvolle authenticatie";
201
	$l_logout			= "Slotkoers verbinding";
202
	$l_logout			= "Slotkoers verbinding";
202
	$l_logout_question		= "Bent u zeker dat u wilt nu los te koppelen?";
203
	$l_logout_question		= "Bent u zeker dat u wilt nu los te koppelen?";
203
	$l_loggedout			= "Uw sessie is gesloten";
204
	$l_loggedout			= "Uw sessie is gesloten";
204
	$l_wait				= "Wacht een moment ...";
205
	$l_wait				= "Wacht een moment ...";
205
	$l_state_label			= "State";		// to translate
206
	$l_state_label			= "State";		// to translate
206
	$l_session_id_label		= "Session ID";	// to translate
207
	$l_session_id_label		= "Session ID";	// to translate
207
	$l_max_session_time_label	= "Max Session Time";	// to translate
208
	$l_max_session_time_label	= "Max Session Time";	// to translate
208
	$l_max_idle_time_label		= "Max Idle Time";		// to translate
209
	$l_max_idle_time_label		= "Max Idle Time";		// to translate
209
	$l_start_time_label		= "Start Time";	// to translate
210
	$l_start_time_label		= "Start Time";	// to translate
210
	$l_session_time_label		= "Online tijd";
211
	$l_session_time_label		= "Online tijd";
211
	$l_idle_time_label		= "Idle Time";	// to translate
212
	$l_idle_time_label		= "Idle Time";	// to translate
212
	$l_downloaded_label		= "Downloaded";	// to translate
213
	$l_downloaded_label		= "Downloaded";	// to translate
213
	$l_uploaded_label		= "Uploaded";	// to translate
214
	$l_uploaded_label		= "Uploaded";	// to translate
214
	$l_original_url_label		= "Original URL";	// to translate
215
	$l_original_url_label		= "Original URL";	// to translate
215
	$l_not_available		= "Not available";	// to translate
216
	$l_not_available		= "Not available";	// to translate
216
	$l_error			= "error";		// to translate
217
	$l_error			= "error";		// to translate
217
	$l_welcome			= "Welcome";	// to translate
218
	$l_welcome			= "Welcome";	// to translate
218
	$l_conn_history			= "Your last $nb_connection_history connections";	// to translate
219
	$l_conn_history			= "Your last $nb_connection_history connections";	// to translate
219
	$l_connected 			= "logged"; // to translate 
220
	$l_connected 			= "logged"; // to translate 
220
	$l_a_connection			= "You have"; // to translate
221
	$l_a_connection			= "You have"; // to translate
221
	$l_a_connection_time		= "active connections on the network"; // to translate
222
	$l_a_connection_time		= "active connections on the network"; // to translate
222
	$l_close_warning		= "Waarschuwing: u zal worden afgebroken als u dit venster sluiten";
223
	$l_close_warning		= "Waarschuwing: u zal worden afgebroken als u dit venster sluiten";
223
	$l_back_homepage		= "Terug naar de homepage";
224
	$l_back_homepage		= "Terug naar de homepage";
224
} else if ($Language === 'fr') {	// French
225
} else if ($Language === 'fr') {	// French
225
	$l_login1			= "Authentification réussie";
226
	$l_login1			= "Authentification réussie";
226
	$l_logout			= "Fermeture de la session";
227
	$l_logout			= "Fermeture de la session";
227
	$l_logout_question		= "Êtes vous sûr de vouloir vous déconnecter?";
228
	$l_logout_question		= "Êtes vous sûr de vouloir vous déconnecter?";
228
	$l_loggedout			= "Votre session est fermée";
229
	$l_loggedout			= "Votre session est fermée";
229
	$l_wait				= "Patientez un instant ....";
230
	$l_wait				= "Patientez un instant ....";
230
	$l_state_label			= "État";
231
	$l_state_label			= "État";
231
	$l_session_id_label		= "Session ID";
232
	$l_session_id_label		= "Session ID";
232
	$l_max_session_time_label	= "Temps de connexion autorisé";
233
	$l_max_session_time_label	= "Temps de connexion autorisé";
233
	$l_max_idle_time_label		= "Temps d'inactivité autorisé";
234
	$l_max_idle_time_label		= "Temps d'inactivité autorisé";
234
	$l_start_time_label		= "Début de connexion";
235
	$l_start_time_label		= "Début de connexion";
235
	$l_session_time_label		= "Durée de connexion";
236
	$l_session_time_label		= "Durée de connexion";
236
	$l_idle_time_label		= "Inactivité";
237
	$l_idle_time_label		= "Inactivité";
237
	$l_downloaded_label		= "Données téléchargées";
238
	$l_downloaded_label		= "Données téléchargées";
238
	$l_uploaded_label		= "Données envoyées";
239
	$l_uploaded_label		= "Données envoyées";
239
	$l_original_url_label		= "URL demandée";
240
	$l_original_url_label		= "URL demandée";
240
	$l_not_available		= "Non disponible";
241
	$l_not_available		= "Non disponible";
241
	$l_error			= "erreur";
242
	$l_error			= "erreur";
242
	$l_welcome			= "Bienvenue";
243
	$l_welcome			= "Bienvenue";
243
	$l_conn_history			= "Vos $nb_connection_history dernières connexions";
244
	$l_conn_history			= "Vos $nb_connection_history dernières connexions";
244
	$l_connected 			= "session active";  
245
	$l_connected 			= "session active";  
245
	$l_a_connection			= "Vous avez";
246
	$l_a_connection			= "Vous avez";
246
	$l_a_connection_time		= "connexions actives sur le réseau";
247
	$l_a_connection_time		= "connexions actives sur le réseau";
247
	$l_close_warning		= "Attention : vous serez déconnecté si vous fermez cette fenêtre";
248
	$l_close_warning		= "Attention : vous serez déconnecté si vous fermez cette fenêtre";
248
	$l_back_homepage		= "Revenir à la page d'accueil";
249
	$l_back_homepage		= "Revenir à la page d'accueil";
249
} else {				// English
250
} else {				// English
250
	$l_login1			= "Successful authentication.";
251
	$l_login1			= "Successful authentication.";
251
	$l_logout			= "Closing connection";
252
	$l_logout			= "Closing connection";
252
	$l_logout_question		= "Are you sure you want to disconnect now?";
253
	$l_logout_question		= "Are you sure you want to disconnect now?";
253
	$l_loggedout			= "Your session is closed";
254
	$l_loggedout			= "Your session is closed";
254
	$l_wait				= "Please wait a moment ...";
255
	$l_wait				= "Please wait a moment ...";
255
	$l_state_label			= "State";
256
	$l_state_label			= "State";
256
	$l_session_id_label		= "Session ID";
257
	$l_session_id_label		= "Session ID";
257
	$l_max_session_time_label	= "Max Session Time";
258
	$l_max_session_time_label	= "Max Session Time";
258
	$l_max_idle_time_label		= "Max Idle Time";
259
	$l_max_idle_time_label		= "Max Idle Time";
259
	$l_start_time_label		= "Start Time";
260
	$l_start_time_label		= "Start Time";
260
	$l_session_time_label		= "Session Time";
261
	$l_session_time_label		= "Session Time";
261
	$l_idle_time_label		= "Idle Time";
262
	$l_idle_time_label		= "Idle Time";
262
	$l_downloaded_label		= "Downloaded";
263
	$l_downloaded_label		= "Downloaded";
263
	$l_uploaded_label		= "Uploaded";
264
	$l_uploaded_label		= "Uploaded";
264
	$l_original_url_label		= "Original URL";
265
	$l_original_url_label		= "Original URL";
265
	$l_not_available		= "Not available";
266
	$l_not_available		= "Not available";
266
	$l_error			= "error";
267
	$l_error			= "error";
267
	$l_welcome			= "Welcome";
268
	$l_welcome			= "Welcome";
268
	$l_conn_history			= "Your last $nb_connection_history connections";
269
	$l_conn_history			= "Your last $nb_connection_history connections";
269
	$l_connected 			= "logged"; 
270
	$l_connected 			= "logged"; 
270
	$l_a_connection			= "You have";
271
	$l_a_connection			= "You have";
271
	$l_a_connection_time		= "active connections on the network";
272
	$l_a_connection_time		= "active connections on the network";
272
	$l_close_warning		= "Warning: you will be disconnected if you close this window";
273
	$l_close_warning		= "Warning: you will be disconnected if you close this window";
273
	$l_back_homepage		= "Back to homepage";
274
	$l_back_homepage		= "Back to homepage";
274
}
275
}
275
 
276
 
276
if (isset($user[5])) {
277
if (isset($user[5])) {
277
	if ((is_file('acc/manager/lib/sql/drivers/mysql/functions.php')) && (is_file('/etc/freeradius-web/config.php'))) {
278
	if ((is_file('acc/manager/lib/sql/drivers/mysql/functions.php')) && (is_file('/etc/freeradius-web/config.php'))) {
278
		require_once('/etc/freeradius-web/config.php');
279
		require_once('/etc/freeradius-web/config.php');
279
		require_once('acc/manager/lib/sql/drivers/mysql/functions.php');
280
		require_once('acc/manager/lib/sql/drivers/mysql/functions.php');
280
		$link = @da_sql_pconnect($config);
281
		$link = @da_sql_pconnect($config);
281
		if ($link) {
282
		if ($link) {
282
			// Retrieve the last connections
283
			// Retrieve the last connections
283
			$sql = "SELECT UserName, AcctStartTime, AcctStopTime, acctsessiontime FROM radacct WHERE UserName='$user[5]' ORDER BY AcctStartTime DESC LIMIT 0, $nb_connection_history";
284
			$sql = "SELECT UserName, AcctStartTime, AcctStopTime, acctsessiontime FROM radacct WHERE UserName='$user[5]' ORDER BY AcctStartTime DESC LIMIT 0, $nb_connection_history";
284
			$res = @da_sql_query($link, $config, $sql);
285
			$res = @da_sql_query($link, $config, $sql);
285
			if ($res) {
286
			if ($res) {
286
				$a_connection = '';
287
				$a_connection = '';
287
				$a_connected = 0;
288
				$a_connected = 0;
288
				$connection_history = '<ul>';
289
				$connection_history = '<ul>';
289
				while (($row = @da_sql_fetch_array($res,$config))) {
290
				while (($row = @da_sql_fetch_array($res,$config))) {
290
					$start_conn = date_create($row['acctstarttime']);
291
					$start_conn = date_create($row['acctstarttime']);
291
					if (empty($row['acctstoptime'])) {
292
					if (empty($row['acctstoptime'])) {
292
						$connected = $l_connected;
293
						$connected = $l_connected;
293
						$a_connected++;
294
						$a_connected++;
294
					} else {
295
					} else {
295
						$connected = secondsToDuration($row['acctsessiontime']);
296
						$connected = secondsToDuration($row['acctsessiontime']);
296
					}
297
					}
297
					$connection_history .= '<li>'.date_format($start_conn, 'd M Y - H:i:s')." - ($connected)</li>";
298
					$connection_history .= '<li>'.date_format($start_conn, 'd M Y - H:i:s')." - ($connected)</li>";
298
				}
299
				}
299
				$connection_history .= '</ul>';
300
				$connection_history .= '</ul>';
300
				if ($a_connected > 1) {
301
				if ($a_connected > 1) {
301
					$a_connection = $l_a_connection.' '.$a_connected.' '.$l_a_connection_time;
302
					$a_connection = $l_a_connection.' '.$a_connected.' '.$l_a_connection_time;
302
				}
303
				}
303
			}
304
			}
304
 
305
 
305
			// Retrieve first name & last name
306
			// Retrieve first name & last name
306
			$sql = "SELECT Name FROM userinfo WHERE UserName='$user[5]'";
307
			$sql = "SELECT Name FROM userinfo WHERE UserName='$user[5]'";
307
			$res = @da_sql_query($link, $config, $sql);
308
			$res = @da_sql_query($link, $config, $sql);
308
			if ($res) {
309
			if ($res) {
309
				$row = @da_sql_fetch_array($res,$config);
310
				$row = @da_sql_fetch_array($res,$config);
310
				$cn = (!empty($row['name'])) ? $row['name'] : $user[5];
311
				$cn = (!empty($row['name'])) ? $row['name'] : $user[5];
311
			}
312
			}
312
		}
313
		}
313
 
314
 
314
		// Store the user @IP in a file (to test if he is still active).
315
		// Store the user @IP in a file (to test if he is still active).
315
		$filename = '/var/tmp/havp/current_users.txt';
316
		$filename = '/var/tmp/havp/current_users.txt';
316
		if (file_exists($filename)) {
317
		if (file_exists($filename)) {
317
			$current_users_file = fopen($filename, 'r');
318
			$current_users_file = fopen($filename, 'r');
318
			$content = file($filename);
319
			$content = file($filename);
319
			fclose($current_users_file);
320
			fclose($current_users_file);
320
			if (empty($content)) {
321
			if (empty($content)) {
321
				file_put_contents($filename, $_SERVER['REMOTE_ADDR']);
322
				file_put_contents($filename, $_SERVER['REMOTE_ADDR']);
322
			} else {
323
			} else {
323
				$change_me = 1; // avoid duplicate user @IP
324
				$change_me = 1; // avoid duplicate user @IP
324
				// if we found duplicate IP, we will not write user @IP (just set change_me = 0)
325
				// if we found duplicate IP, we will not write user @IP (just set change_me = 0)
325
				foreach ($content as $line) {
326
				foreach ($content as $line) {
326
				        $line = preg_replace('/\s+/', '', $line);
327
				        $line = preg_replace('/\s+/', '', $line);
327
				        if ($line === $_SERVER['REMOTE_ADDR']) {
328
				        if ($line === $_SERVER['REMOTE_ADDR']) {
328
				                $change_me = 0;
329
				                $change_me = 0;
329
				        }
330
				        }
330
				}
331
				}
331
				// if user @IP does not exist, we write it
332
				// if user @IP does not exist, we write it
332
				if ($change_me) {
333
				if ($change_me) {
333
				        file_put_contents($filename, $_SERVER['REMOTE_ADDR'].PHP_EOL, FILE_APPEND);
334
				        file_put_contents($filename, $_SERVER['REMOTE_ADDR'].PHP_EOL, FILE_APPEND);
334
				}
335
				}
335
			}
336
			}
336
		} else {
337
		} else {
337
			// we create filename and we write user @IP.
338
			// we create filename and we write user @IP.
338
			file_put_contents($filename, $_SERVER['REMOTE_ADDR'].PHP_EOL);
339
			file_put_contents($filename, $_SERVER['REMOTE_ADDR'].PHP_EOL);
339
		}
340
		}
340
	}
341
	}
341
}
342
}
342
 
343
 
343
// Cleaning the cache
344
// Cleaning the cache
344
header('Expires: Tue, 01 Jan 2000 00:00:00 GMT');
345
header('Expires: Tue, 01 Jan 2000 00:00:00 GMT');
345
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
346
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
346
header('Cache-Control: no-store, no-cache, must-revalidate, max-age=0');
347
header('Cache-Control: no-store, no-cache, must-revalidate, max-age=0');
347
header('Cache-Control: post-check=0, pre-check=0', false);
348
header('Cache-Control: post-check=0, pre-check=0', false);
348
header('Pragma: no-cache');
349
header('Pragma: no-cache');
349
?>
350
?>
350
<!DOCTYPE html>
351
<!DOCTYPE html>
351
<html>
352
<html>
352
	<head>
353
	<head>
353
		<meta charset="UTF-8">
354
		<meta charset="UTF-8">
354
		<title>ALCASAR - <?= $organisme ?></title>
355
		<title>ALCASAR - <?= $organisme ?></title>
355
		<link type="text/css" href="css/status.css" rel="stylesheet">
356
		<link type="text/css" href="css/status.css" rel="stylesheet">
356
		<script src="js/ChilliLibrary.js"></script>
357
		<script src="js/ChilliLibrary.js"></script>
-
 
358
		<script>
-
 
359
			chilliController.host = '<?= $conf['HOSTNAME'].'.'.$conf['DOMAIN'] ?>';
-
 
360
			chilliController.port = <?= (($useHTTPS) ? 3991 : 3990) ?>;
-
 
361
			chilliController.ssl  = <?= (($useHTTPS) ? 'true' : 'false') ?>;
-
 
362
		</script>
357
		<script src="js/statusControler.js"></script>
363
		<script src="js/statusControler.js"></script>
358
	</head>
364
	</head>
359
	<body>
365
	<body>
360
		<div id="Chilli">
366
		<div id="Chilli">
361
			<div id="locationName"></div>
367
			<div id="locationName"></div>
362
			<div id="chilliPage">
368
			<div id="chilliPage">
363
				<div id="loggedOutPage" class="c1">
369
				<div id="loggedOutPage" class="c1">
364
					<table id="disconnectTable">
370
					<table id="disconnectTable">
365
						<tr>
371
						<tr>
366
							<td><img height="150" src="images/logo-alcasar.png" alt="logo"></td>
372
							<td><img height="150" src="images/logo-alcasar.png" alt="logo"></td>
367
							<td>
373
							<td>
368
								<p class="text_auth"><?= $l_loggedout ?></p>
374
								<p class="text_auth"><?= $l_loggedout ?></p>
369
								<p class="text_homelink"><a href="<?= $homepage_url ?>"><?= $l_back_homepage ?></a></p>
375
								<p class="text_homelink"><a href="<?= $homepage_url ?>"><?= $l_back_homepage ?></a></p>
370
							</td>
376
							</td>
371
						</tr>
377
						</tr>
372
					</table>
378
					</table>
373
				</div>
379
				</div>
374
				<div id="statusPage" class="c1">
380
				<div id="statusPage" class="c1">
375
					<table border="0" id="statusTable">
381
					<table border="0" id="statusTable">
376
						<tr>
382
						<tr>
377
							<td colspan="2">
383
							<td colspan="2">
378
								<table border="0" cellpadding="0" cellspacing="0" width="100%">
384
								<table border="0" cellpadding="0" cellspacing="0" width="100%">
379
									<tr>
385
									<tr>
380
										<td valign="top" rowspan="4">
386
										<td valign="top" rowspan="4">
381
											<img height="150" src="images/logo-alcasar.png" alt="logo">
387
											<img height="150" src="images/logo-alcasar.png" alt="logo">
382
										</td>
388
										</td>
383
										<td class="text_auth_welcom">
389
										<td class="text_auth_welcom">
384
											<?= $l_login1 ?>
390
											<?= $l_login1 ?>
385
										</td>
391
										</td>
386
									</tr>
392
									</tr>
387
									<tr>
393
									<tr>
388
										<td class="text_auth">
394
										<td class="text_auth">
389
											<?= $l_welcome ?><br><?= $cn ?>
395
											<?= $l_welcome ?><br><?= $cn ?>
390
										</td>
396
										</td>
391
									</tr>
397
									</tr>
392
									<tr>
398
									<tr>
393
										<td class="alert">
399
										<td class="alert">
394
											<?= ((isset($a_connection)) ? $a_connection : '') ?>
400
											<?= ((isset($a_connection)) ? $a_connection : '') ?>
395
										</td>
401
										</td>
396
									</tr>
402
									</tr>
397
									<tr>
403
									<tr>
398
										<td colspan="2" align="center" class="link_logout">
404
										<td colspan="2" align="center" class="link_logout">
399
											<a href="#" onclick="return logoutWithConfirmation('<?= $l_logout_question ?>');" class="lien_deco"><?= $l_logout ?></a>
405
											<a href="#" onclick="return logoutWithConfirmation('<?= $l_logout_question ?>');" class="lien_deco"><?= $l_logout ?></a>
400
										</td>
406
										</td>
401
									</tr>
407
									</tr>
402
								</table>
408
								</table>
403
							</td>
409
							</td>
404
						</tr>
410
						</tr>
405
<!-- 
411
<!-- 
406
						<tr id="connectRow">
412
						<tr id="connectRow">
407
							<td id="statusMessageLabel" class="chilliLabel"><strong><?= $l_state_label ?></strong></td>
413
							<td id="statusMessageLabel" class="chilliLabel"><strong><?= $l_state_label ?></strong></td>
408
							<td id="statusMessage" class="chilliValue">Connected</td>
414
							<td id="statusMessage" class="chilliValue">Connected</td>
409
						</tr>
415
						</tr>
410
						<tr id="sessionIdRow">
416
						<tr id="sessionIdRow">
411
							<td id="sessionIdLabel" class="chilliLabel"><strong><?= $l_session_id_label ?></strong></td>
417
							<td id="sessionIdLabel" class="chilliLabel"><strong><?= $l_session_id_label ?></strong></td>
412
							<td id="sessionId" class="chilliValue"><?= $l_not_available ?></td>
418
							<td id="sessionId" class="chilliValue"><?= $l_not_available ?></td>
413
						</tr>
419
						</tr>
414
-->
420
-->
415
						<tr id="sessionTimeoutRow">
421
						<tr id="sessionTimeoutRow">
416
							<td id="sessionTimeoutLabel" class="chilliLabel"><?= $l_max_session_time_label ?></td>
422
							<td id="sessionTimeoutLabel" class="chilliLabel"><?= $l_max_session_time_label ?></td>
417
							<td id="sessionTimeout" class="chilliValue"><?= $l_not_available ?></td>
423
							<td id="sessionTimeout" class="chilliValue"><?= $l_not_available ?></td>
418
						</tr>
424
						</tr>
419
						<tr id="idleTimeoutRow">
425
						<tr id="idleTimeoutRow">
420
							<td id="idleTimeoutLabel" class="chilliLabel"><?= $l_max_idle_time_label ?></td>
426
							<td id="idleTimeoutLabel" class="chilliLabel"><?= $l_max_idle_time_label ?></td>
421
							<td id="idleTimeout" class="chilliValue"><?= $l_not_available ?></td>
427
							<td id="idleTimeout" class="chilliValue"><?= $l_not_available ?></td>
422
						</tr>
428
						</tr>
423
						<tr id="startTimeRow">
429
						<tr id="startTimeRow">
424
							<td id="startTimeLabel" class="chilliLabel"><?= $l_start_time_label ?></td>
430
							<td id="startTimeLabel" class="chilliLabel"><?= $l_start_time_label ?></td>
425
							<td id="startTime" class="chilliValue"><?= $l_not_available ?></td>
431
							<td id="startTime" class="chilliValue"><?= $l_not_available ?></td>
426
						</tr>
432
						</tr>
427
						<tr id="sessionTimeRow">
433
						<tr id="sessionTimeRow">
428
							<td id="sessionTimeLabel" class="chilliLabel"><?= $l_session_time_label ?></td>
434
							<td id="sessionTimeLabel" class="chilliLabel"><?= $l_session_time_label ?></td>
429
							<td id="sessionTime" class="chilliValue"><?= $l_not_available ?></td>
435
							<td id="sessionTime" class="chilliValue"><?= $l_not_available ?></td>
430
						</tr>
436
						</tr>
431
						<tr id="idleTimeRow">
437
						<tr id="idleTimeRow">
432
							<td id="idleTimeLabel" class="chilliLabel"><?= $l_idle_time_label ?></td>
438
							<td id="idleTimeLabel" class="chilliLabel"><?= $l_idle_time_label ?></td>
433
							<td id="idleTime" class="chilliValue"><?= $l_not_available ?></td>
439
							<td id="idleTime" class="chilliValue"><?= $l_not_available ?></td>
434
						</tr>
440
						</tr>
435
						<tr id="inputOctetsRow">
441
						<tr id="inputOctetsRow">
436
							<td id="inputOctetsLabel" class="chilliLabel"><?= $l_downloaded_label ?></td>
442
							<td id="inputOctetsLabel" class="chilliLabel"><?= $l_downloaded_label ?></td>
437
							<td id="inputOctets" class="chilliValue"><?= $l_not_available ?></td>
443
							<td id="inputOctets" class="chilliValue"><?= $l_not_available ?></td>
438
						</tr>
444
						</tr>
439
						<tr id="outputOctetsRow">
445
						<tr id="outputOctetsRow">
440
							<td id="outputOctetsLabel" class="chilliLabel"><?= $l_uploaded_label ?></td>
446
							<td id="outputOctetsLabel" class="chilliLabel"><?= $l_uploaded_label ?></td>
441
							<td id="outputOctets" class="chilliValue"><?= $l_not_available ?></td>
447
							<td id="outputOctets" class="chilliValue"><?= $l_not_available ?></td>
442
						</tr>
448
						</tr>
443
<!-- 
449
<!-- 
444
						<tr id="originalURLRow">
450
						<tr id="originalURLRow">
445
							<td id="originalURLLabel" class="chilliLabel"><?= $l_original_url_label ?></td>
451
							<td id="originalURLLabel" class="chilliLabel"><?= $l_original_url_label ?></td>
446
							<td id="originalURL" class="chilliValue"><?= $l_not_available ?></td>
452
							<td id="originalURL" class="chilliValue"><?= $l_not_available ?></td>
447
						</tr>
453
						</tr>
448
 -->
454
 -->
449
						<tr>
455
						<tr>
450
							<td colspan="2" id="conHistoryLabel" class="chilliLabel"><?= $l_conn_history ?></td>
456
							<td colspan="2" id="conHistoryLabel" class="chilliLabel"><?= $l_conn_history ?></td>
451
						</tr>
457
						</tr>
452
						<tr id="conHistoryRow">
458
						<tr id="conHistoryRow">
453
							<td colspan="2" id="conHistory" class="chilliValue"><?= $connection_history ?></td>
459
							<td colspan="2" id="conHistory" class="chilliValue"><?= $connection_history ?></td>
454
						</tr>
460
						</tr>
455
						<tr>
461
						<tr>
456
							<td colspan="2" id="close-warning">(<?= $l_close_warning ?>)</td>
462
							<td colspan="2" id="close-warning">(<?= $l_close_warning ?>)</td>
457
						</tr>
463
						</tr>
458
					</table>
464
					</table>
459
				</div>
465
				</div>
460
				<div id="waitPage">
466
				<div id="waitPage">
461
					<table id="waitTable">
467
					<table id="waitTable">
462
						<tr>
468
						<tr>
463
							<td><img height="150" src="images/logo-alcasar.png" alt="logo"></td>
469
							<td><img height="150" src="images/logo-alcasar.png" alt="logo"></td>
464
							<td><p class="text_auth"><img src="images/wait.gif" width="16" height="16" class="wait" alt="<?= $l_wait ?>"><?= $l_wait ?></p></td>
470
							<td><p class="text_auth"><img src="images/wait.gif" width="16" height="16" class="wait" alt="<?= $l_wait ?>"><?= $l_wait ?></p></td>
465
						</tr>
471
						</tr>
466
					</table>
472
					</table>
467
				</div>
473
				</div>
468
				<div id="errorPage">
474
				<div id="errorPage">
469
					<table id="errorTable">
475
					<table id="errorTable">
470
						<tr>
476
						<tr>
471
							<td><img height="150" src="images/logo-alcasar.png" alt="logo"></td>
477
							<td><img height="150" src="images/logo-alcasar.png" alt="logo"></td>
472
							<td><span id="errorMessage"><?= $l_error ?></span></td>
478
							<td><span id="errorMessage"><?= $l_error ?></span></td>
473
						</tr>
479
						</tr>
474
					</table>
480
					</table>
475
				</div>
481
				</div>
476
			</div>
482
			</div>
477
		</div>
483
		</div>
478
	</body>
484
	</body>
479
</html>
485
</html>
480
 
486