1 | #!/bin/bash |
---|
2 | # Program: |
---|
3 | # Chinese Language file for NutchEZ |
---|
4 | # Author: |
---|
5 | # Waue, Shunfa, Rock {waue, shunfa, rock}@nchc.org.tw |
---|
6 | # Version: |
---|
7 | # 1.0 |
---|
8 | # History: |
---|
9 | # |
---|
10 | |
---|
11 | ############ Lang for master_install -Start ############ |
---|
12 | MI_main_echo_1="Welcome to use NutchEZ, this install program will create a new accunt and to assist you to setup the password of nutchuser." |
---|
13 | MI_main_echo_2="Please confirm the install infomation of above :1.Yes 2.No " |
---|
14 | MI_main_echo_3="Installed successfully!" |
---|
15 | MI_main_echo_4="You can visit the manage website :http://$MasterIP_Address:8080" |
---|
16 | |
---|
17 | ## Lang for master_install_func.sh ## |
---|
18 | ### [for choose_lang()] ### |
---|
19 | MI_choose_lang_1="Please select a language: (1)English (2)中文" |
---|
20 | MI_choose_lang_2="Use (1/2):" |
---|
21 | |
---|
22 | ### [for check_root()]### |
---|
23 | MI_check_root_1="Please change root to execute it!!!" |
---|
24 | MI_check_root_2="Identify is root" |
---|
25 | |
---|
26 | ### [for check_systemInfo()]### |
---|
27 | MI_check_sys_1="check_systemInfo" |
---|
28 | MI_check_sys_2="Your system information is:" |
---|
29 | |
---|
30 | ### [for install_packages()]### |
---|
31 | MI_install_pack_1="install_packages" |
---|
32 | MI_install_pack_2="Check dependent packages" |
---|
33 | MI_install_pack_if_1="It will install some packages (expect, ssh, and dialog)." |
---|
34 | MI_install_pack_if_2="Please manually install expect, ssh, and dialog.Please manually install expect, ssh, and dialog." |
---|
35 | |
---|
36 | ### [for check_nez_installed()] ### |
---|
37 | MI_check_nez_1="chcheck_nez_installed" |
---|
38 | MI_check_nez_2="System already had NutchEz." |
---|
39 | MI_check_nez_3="System does not has NutchEz." |
---|
40 | |
---|
41 | ### [for check_sunJava()] ### |
---|
42 | MI_check_sunJava_1="check_sunJava" |
---|
43 | MI_check_sunJava_2="NutchEz need Sun Java JDK 1.6.x or above version" |
---|
44 | MI_check_sunJava_if_1="Java is not Sun version, plz install sun Java 1.6.X" |
---|
45 | MI_check_sunJava_if_2="Please input your choice:" |
---|
46 | MI_check_sunJava_if_3="(1)System don't have Sun Java (2)Sun Java is in other path (3)Exit" |
---|
47 | MI_check_sunJava_if_4="Use (1/2/3): " |
---|
48 | MI_check_sunJava_if_5="Please install Sun Java manually!" |
---|
49 | MI_check_sunJava_if_6="Input Sun Java home path(ex. '/usr/lib/jvm/java-6-sun-1.6.0.12' or using default '/usr' ): " |
---|
50 | MI_check_sunJava_if_7="It is not Sun Java! Please install Sun Java manually !" |
---|
51 | MI_check_sunJava_if_8="Java version is too old (it need 1.6.X above)" |
---|
52 | MI_check_sunJava_if_9="System has Sun Java 1.6 above version." |
---|
53 | MI_check_sunJava_if_10="Please install Sun JAVA 1.6.X or above version" |
---|
54 | |
---|
55 | ### [for check_ssh()] ### |
---|
56 | MI_check_ssh_1="check_ssh" |
---|
57 | MI_check_ssh_2="System has ssh." |
---|
58 | MI_check_ssh_3="Please install ssh." |
---|
59 | MI_check_ssh_4="System has ssh Server (sshd)." |
---|
60 | MI_check_ssh_5="Please install ssh Server (sshd)." |
---|
61 | |
---|
62 | ### [for check_dialog()] ### |
---|
63 | MI_check_dialog_1="check_dialog" |
---|
64 | MI_check_dialog_2="System has dialog." |
---|
65 | MI_check_dialog_3="Please install dialog." |
---|
66 | |
---|
67 | # |
---|
68 | MI_set_nutchuser_passwd_echo_1="Set password for nutchuser:" |
---|
69 | MI_set_nutchuser_passwd_echo_2="keyin the password again:" |
---|
70 | |
---|
71 | # |
---|
72 | MI_select_eth_echo_1="System has detectable network cards as follows:" |
---|
73 | MI_select_eth_echo_2="Please choose a netword card for NutchEZ. Use (1/2/3):" |
---|
74 | MI_select_eth_echo_3="Your choose is:$net_choice" |
---|
75 | MI_select_eth_echo_4="Master IP address is:$net_address" |
---|
76 | MI_select_eth_echo_5="Master MAC address is:$net_MacAddr" |
---|
77 | |
---|
78 | # |
---|
79 | MI_show_master_info_echo_1="Master IP address is:" |
---|
80 | MI_show_master_info_echo_2="Master MAC address is: " |
---|
81 | |
---|
82 | |
---|
83 | # |
---|
84 | MI_make_ssh_key_echo_1="Producing SSH Key... " |
---|
85 | MI_make_ssh_key_echo_2="SSH Key has been produced." |
---|
86 | |
---|
87 | # |
---|
88 | MI_set_haoop_site_echo_1="Setting hadoop-site.xml... " |
---|
89 | MI_set_haoop_site_echo_2="Setting hadoop-site.xml finished." |
---|
90 | |
---|
91 | # |
---|
92 | MI_set_nutch_site_echo_1="Setting nutch-site.xml..." |
---|
93 | MI_set_nutch_site_echo_2="Setting http.agent.url at line: $Line_NO..." |
---|
94 | MI_set_nutch_site_echo_3="Editing http.agent.url, delete line $Line_NO." |
---|
95 | MI_set_nutch_site_echo_4="Editing http.agent.url finished." |
---|
96 | MI_set_nutch_site_echo_5="Setting http.agent.email at line:$Line_NO." |
---|
97 | MI_set_nutch_site_echo_6="Editing http.agent.email, delete line $Line_NO." |
---|
98 | MI_set_nutch_site_echo_7="Editing http.agent.email finished." |
---|
99 | MI_set_nutch_site_echo_8="Editing hadoop-site.xmlfinished." |
---|
100 | |
---|
101 | # |
---|
102 | MI_format_HDFS_echo_1="Formatting HDFS..." |
---|
103 | MI_format_HDFS_echo_2="HDFS has been formatted." |
---|
104 | |
---|
105 | # |
---|
106 | MI_start_up_NutchEZ_echo_1="Start up NutchEZ..." |
---|
107 | |
---|
108 | # |
---|
109 | MI_set_hosts_echo_1="Set hosts on master" |
---|
110 | |
---|
111 | # |
---|
112 | MI_install_Nutch_echo_1="Master's IP address is:" |
---|
113 | MI_install_Nutch_echo_2="Master's Hostname is:" |
---|
114 | |
---|
115 | # |
---|
116 | MI_client_PassMasterIPAddr_echo_1="Edit MasterIP in client install file at line $Line_NO" |
---|
117 | MI_client_PassMasterIPAddr_echo_2="Editing MasterIP..." |
---|
118 | MI_client_PassMasterIPAddr_echo_3="MasterIP has been set." |
---|
119 | |
---|
120 | # |
---|
121 | MI_client_PassMaster_Hostname_echo_1="Edit master hostname in client install file at line $Line_NO" |
---|
122 | MI_client_PassMaster_Hostname_echo_2="Editing Hostname..." |
---|
123 | MI_client_PassMaster_Hostname_echo_3="Hostname has been set." |
---|
124 | |
---|
125 | # |
---|
126 | MI_make_client_install_echo_1="In function of make_client_install ..." |
---|
127 | |
---|
128 | # |
---|
129 | MI_start_up_tomcat_echo_1="Start up tomcat..." |
---|
130 | MI_start_up_tomcat_echo_2="Please wait about 10 sec..." |
---|
131 | MI_start_up_tomcat_echo_3="Tomcat has been started!" |
---|
132 | |
---|
133 | # |
---|
134 | MI_client_install_commands_echo_1="For client install, please refer commands as follows:" |
---|
135 | MI_client_install_commands_echo_2="cd ~" |
---|
136 | MI_client_install_commands_echo_3="mkdir nutchez_client_install" |
---|
137 | MI_client_install_commands_echo_4="cd nutchez_client_install" |
---|
138 | MI_client_install_commands_echo_5="scp -r nutchuser@$MasterIP_Address:/home/nutchuser/nutchez/source/* ." |
---|
139 | MI_client_install_commands_echo_6="sudo su" |
---|
140 | MI_client_install_commands_echo_7="./client_install" |
---|
141 | |
---|
142 | ########## Lang for Master Install - End########## |
---|
143 | |
---|
144 | ########## Lang for Client Install - Start########## |
---|
145 | |
---|
146 | # [Variables Declaration] # |
---|
147 | ## Lang for client_install ## |
---|
148 | par_echo_1="Your master IP is:" |
---|
149 | par_echo_2="Is this information cooect? (yes/no): " |
---|
150 | par_echo_3="These parameters are correct." |
---|
151 | par_echo_4="Please edit these parameters in this file." |
---|
152 | |
---|
153 | ## [Lang for client_install_fun.sh] ## |
---|
154 | ### [for choose_lang()] ### |
---|
155 | choose_lang_1="Please choose your language: (1)English (2)中文" |
---|
156 | choose_lang_2="(1/2):" |
---|
157 | |
---|
158 | ### [for check_root()]### |
---|
159 | check_root_1="Please Change root to execute it!!!" |
---|
160 | check_root_2="Identify is root." |
---|
161 | |
---|
162 | ### [for check_systemInfo()]### |
---|
163 | check_sys_1="check_systemInfo" |
---|
164 | check_sys_2="Your system information are: " |
---|
165 | |
---|
166 | ### [for install_packages()]### |
---|
167 | install_pack_1="install_packages" |
---|
168 | install_pack_2="Check dependent packages" |
---|
169 | install_pack_if_1="It will install some packages (expect, ssh, and dialog)." |
---|
170 | install_pack_if_2="Please manually install expect, ssh, and dialog." |
---|
171 | |
---|
172 | ### [for check_nez_installed()] ### |
---|
173 | check_nez_1="chcheck_nez_installed" |
---|
174 | check_nez_2="System already had NutchEz." |
---|
175 | check_nez_3="System does not has NutchEz." |
---|
176 | |
---|
177 | ### [for check_sunJava()] ### |
---|
178 | check_sunJava_1="check_sunJava" |
---|
179 | check_sunJava_2="NutchEz need Sun Java JDK 1.6.x or above version" |
---|
180 | check_sunJava_if_1="Java is not Sun version, plz install sun Java 1.6.X" |
---|
181 | check_sunJava_if_2="Please input your choice: " |
---|
182 | check_sunJava_if_3="(1)System don't have Sun Java (2)Sun Java is in other path (3)Exit" |
---|
183 | check_sunJava_if_4="plz input (1/2/3): " |
---|
184 | check_sunJava_if_5="Please install Sun Java manually!" |
---|
185 | check_sunJava_if_6="Input Sun Java home path(ex. '/usr/lib/jvm/java-6-sun-1.6.0.12' or using default '/usr' ): " |
---|
186 | check_sunJava_if_7="It is not Sun Java! Plz install Sun Java manually !" |
---|
187 | check_sunJava_if_8="Java version is too old (it need 1.6.X above)" |
---|
188 | check_sunJava_if_9="System has Sun Java 1.6 above version." |
---|
189 | check_sunJava_if_10="Please install Sun JAVA 1.6.X or above version" |
---|
190 | |
---|
191 | ### [for check_ssh()] ### |
---|
192 | check_ssh_1="check_ssh" |
---|
193 | check_ssh_2="System has ssh." |
---|
194 | check_ssh_3="Please install ssh." |
---|
195 | check_ssh_4="System has ssh Server (sshd)." |
---|
196 | check_ssh_5="Please install ssh Server (sshd)." |
---|
197 | |
---|
198 | ### [for check_dialog()] ### |
---|
199 | check_dialog_1="check_dialog" |
---|
200 | check_dialog_2="System has dialog." |
---|
201 | check_dialog_3="Please install dialog." |
---|
202 | |
---|
203 | ### scp_master_nutchuser_sshkey() ### |
---|
204 | scp_sshkey_d1="scp_master_nutchuser_sshkey" |
---|
205 | scp_sshkey_d2="mkdir -p /home/nutchuser/" |
---|
206 | scp_sshkey_d3="scp nutchuser@master:~/.ssh /home/nutchuser/" |
---|
207 | scp_sshkey_expect_1="Password is error" |
---|
208 | scp_sshkey_s1="scp correct." |
---|
209 | scp_sshkey_s2="scp error,\n(1)plese check nutchuser password in server\n(2)nutchuser's authorized_keys in server\n(3)server's network status" |
---|
210 | scp_sshkey_d4="chown -R nutchuser:nutchuser /home/nutchuser/.ssh" |
---|
211 | |
---|
212 | ### [for creat_nutchuser_account()] ### |
---|
213 | create_nutchuser_d1="creat_nutchuser_account" |
---|
214 | create_nutchuser_1="Plz input nutchuser password of master node: " |
---|
215 | create_nutchuser_2="plz input nutchuser password, again: " |
---|
216 | create_nutchuser_3="Two Passwords match." |
---|
217 | create_nutchuser_4="Two passwords don't match, please re-input nutchuser's password." |
---|
218 | create_nutchuser_s1="System already has nutchuser, change nutchuser password." |
---|
219 | create_nutchuser_s2="Create nutchuser and change password." |
---|
220 | |
---|
221 | ### [for scp_packages()] ### |
---|
222 | scp_packages_d1="scp_packages" |
---|
223 | scp_packages_d2="chown -R nutchuser:nutchuser /opt/nutchez" |
---|
224 | scp_packages_d3="scp -r nutchuser@\$1:/opt/nutchez/NutchezForClientOf_\$Master_IP_Address.tar.gz /home/nutchuser/nutchez/source" |
---|
225 | |
---|
226 | ### [for install_nutch_package()] ### |
---|
227 | install_nutch_package_d1="install_nutch_package" |
---|
228 | |
---|
229 | ### [for recall_hostname_ip()] ### |
---|
230 | recall_hostname_ip_d1="recall_hostname_ip" |
---|
231 | recall_hostname_ip_1="net_address is" |
---|
232 | recall_hostname_ip_2="net_MacAddr is" |
---|
233 | recall_hostname_ip_3="System have multiple network device, which network use for this machine: " |
---|
234 | recall_hostname_ip_4="Please choice(1/2/3...): " |
---|
235 | recall_hostname_ip_d2="ssh nutchuser@\$1 echo \$net_address \$(hostname) \$net_MacAddr \>\> ~/nutchez/system/nutch_nodes" |
---|
236 | |
---|
237 | ########## Lang for Client Install - End########## |
---|
238 | |
---|
239 | ########## Lang for Master Remove - Start########## |
---|
240 | |
---|
241 | # check root |
---|
242 | MR_check_root_1="Please change root to execute it!!!" |
---|
243 | MR_check_root_2="Identify is root, let's continue!" |
---|
244 | |
---|
245 | # shutdown service |
---|
246 | MR_shutdown_service_echo_1="Stop the service of slaves..." |
---|
247 | MR_shutdown_service_echo_2="Stop the service of master..." |
---|
248 | MR_shutdown_service_echo_3="The service of Master" |
---|
249 | |
---|
250 | # remove_folders |
---|
251 | MR_remove_folders_echo_1="Deleting floders and files of NutchEZ..." |
---|
252 | MR_remove_folders_echo_2="Floders and files has deleted." |
---|
253 | |
---|
254 | # edit_hosts |
---|
255 | MR_edit_hosts_echo_1="Restoring /etc/hosts..." |
---|
256 | MR_edit_hosts_echo_2="/etc/hosts restoring finished." |
---|
257 | |
---|
258 | # user_delete |
---|
259 | MR_user_delete_echo_1="Deleting user: nutchuser..." |
---|
260 | MR_user_delete_echo_2="nutchuser has deleted" |
---|
261 | |
---|
262 | # main |
---|
263 | MR_main_echo_1="Warning - this program will remove nutchEZ, if you don't understard what this program to do, please press Ctrl+c to leave!" |
---|
264 | MR_main_echo_2="This program will delete all of nutchEZ's files and folders and delete user nutchuser." |
---|
265 | MR_main_echo_3="Are you sure to remove this node? 1.Yes 2.No " |
---|
266 | MR_main_echo_4="NutchEZ had removed!" |
---|
267 | MR_main_echo_5="You are cancelling this remove procedure!" |
---|
268 | MR_main_echo_6="If you want to remove NutchEZ of this node, please execute this program again." |
---|
269 | |
---|
270 | ########## Lang for Master Remove - End ########## |
---|
271 | |
---|
272 | ########## Lang for Client Remove - Start ########## |
---|
273 | # check root |
---|
274 | CR_check_root_1="Please change root to execute it!!!" |
---|
275 | CR_check_root_2="Identify is root!" |
---|
276 | |
---|
277 | # shutdown service |
---|
278 | CR_shutdown_service_echo_1="Shutdown all service of this node..." |
---|
279 | CR_shutdown_service_echo_2="The service of this node had shutdown." |
---|
280 | |
---|
281 | # remove_folders |
---|
282 | CR_remove_folders_echo_1="Deleting floders and files of NutchEZ..." |
---|
283 | CR_remove_folders_echo_2="Floders and files has deleted." |
---|
284 | |
---|
285 | # edit_hosts |
---|
286 | CR_edit_hosts_echo_1="Restoring /etc/hosts..." |
---|
287 | CR_edit_hosts_echo_2="/etc/hosts restoring finished." |
---|
288 | |
---|
289 | # user_delete |
---|
290 | CR_user_delete_echo_1="Deleting user: nutchuser..." |
---|
291 | CR_user_delete_echo_2="nutchuser has deleted" |
---|
292 | |
---|
293 | # main |
---|
294 | CR_main_echo_1="Warning - this program will remove nutchEZ, if you don't understard what this program to do, please press Ctrl+c to leave!" |
---|
295 | CR_main_echo_2="This program will delete all of nutchEZ's files and folders and delete user nutchuser." |
---|
296 | CR_main_echo_3="Are you sure to remove this node? 1.Yes 2.No " |
---|
297 | CR_main_echo_4="NutchEZ had removed!" |
---|
298 | CR_main_echo_5="You are cancelling this remove procedure!" |
---|
299 | CR_main_echo_6="If you want to remove NutchEZ of this node, please execute this program again." |
---|
300 | ########## Lang for Client Remove - End ########## |
---|
301 | |
---|
302 | ########## Lang for nutchez - Start ########## |
---|
303 | # [Variables Declaration] # |
---|
304 | ## Lang for common ## |
---|
305 | user_error="You aren't nutchuser,please change to \"nutchuser\" !!!" |
---|
306 | |
---|
307 | ## [Lang for dialog] ## |
---|
308 | dia_back='= [NutchEz Management Interface] ~by NCHC =' |
---|
309 | dia_choose="Please choose what you want to do: " |
---|
310 | dia_backto_main="Back to Main Menu" |
---|
311 | dia_exit="Exit" |
---|
312 | |
---|
313 | ## [Lang for prepare_check] ## |
---|
314 | dia_pre_check_title_1="[file nutch_nodes]" |
---|
315 | dia_pre_check_msg_1="Failure:System can't find it!" |
---|
316 | dia_pre_check_title_2="[Update /etc/host]" |
---|
317 | dia_pre_check_yesno_1="You are frist execute NutchEz Management Interface" |
---|
318 | dia_pre_check_yesno_2="Please update /etc/hosts !!!" |
---|
319 | pre_check_echo_1="Please enter root's password to update /etc/hosts !!!" |
---|
320 | pre_check_echo_2="root password error,please make sure root's password is correct!!!" |
---|
321 | dia_pre_check_yesno_3="nutch_nodes has modified" |
---|
322 | |
---|
323 | ## [Lang for main_menu()] ## |
---|
324 | dia_main_title_1="[Management Options]" |
---|
325 | dia_main_menu_1_1="Check cluster state" |
---|
326 | dia_main_menu_1_2="Set datanode & tasktracker" |
---|
327 | dia_main_menu_1_3="Set namenode & jobtracker" |
---|
328 | dia_main_menu_1_4="Startup/Shutdown/Restart Tomcat" |
---|
329 | dia_main_menu_1_5="Change Tomcat port" |
---|
330 | dia_main_menu_1_6="Change language" |
---|
331 | |
---|
332 | ## [Lang for cluster_status()] ## |
---|
333 | cluster_status_echo_1="[IP] \t\t [Hostname] \t [Network] \t [Dtatnode & Tasktracker]" |
---|
334 | cluster_status_echo_2="Start check cluster..." |
---|
335 | cluster_status_read_1="press any key to continue..." |
---|
336 | dia_cluster_status_title_1="[Cluster state]" |
---|
337 | |
---|
338 | ## [Lang for srver_setup()] ## |
---|
339 | dia_server_title_1="[Server State]" |
---|
340 | dia_server_msg_1="Namenode & Jobtracker shutdown" |
---|
341 | dia_server_msg_2="Jobtracker running, Namenode shutdown" |
---|
342 | dia_server_msg_3="Namenode running, Jobtracker shutdown" |
---|
343 | dia_server_msg_4="Namenode & Jobtracker running" |
---|
344 | dia_server_title_2="[Set Namenode & Jobtracker]" |
---|
345 | dia_server_menu_1_1="Startup Namenode & Jobtracker" |
---|
346 | dia_server_menu_1_2="Shutdown Namenode & Jobtracker" |
---|
347 | dia_server_menu_1_3="Restart Namenode & Jobtracker" |
---|
348 | |
---|
349 | ## [Labg for cluster_setup()] ## |
---|
350 | dia_cluster_setup_title_1="[All or part of nodes]" |
---|
351 | dia_cluster_setup_menu_1_1="All nodes" |
---|
352 | dia_cluster_setup_menu_1_2="A part of nodes" |
---|
353 | dia_cluster_setup_title_2="[Select Datanode & Tasktracker Nodes]" |
---|
354 | dia_cluster_setup_check_1="Select Datanode & Tasktracker: " |
---|
355 | dia_cluster_setup_title_3="[Set Datanode & Tasktracker]" |
---|
356 | dia_cluster_setup_menu_2_1="Startup Datanodes & Tasktrackers" |
---|
357 | dia_cluster_setup_menu_2_2="Shutdown Datanodes & Tasktrackers" |
---|
358 | dia_cluster_setup_menu_2_3="Restart Datanodes & Tasktrackers" |
---|
359 | cluster_setup_echo_1="[Startup datanode & tasktracker]" |
---|
360 | cluster_setup_echo_error="Failure:can't connect to ssh " |
---|
361 | cluster_setup_echo_3="[Shutdown datanode & tasktracker]" |
---|
362 | cluster_setup_echo_5="[Restart datanode & tasktracker]" |
---|
363 | |
---|
364 | ## [Lang for tomcat_swith()] # |
---|
365 | dia_tomcat_switch_title_1="[Tomcat state]" |
---|
366 | dia_tomcat_switch_msg_1="Tomcat is running !!!" |
---|
367 | dia_tomcat_switch_msg_2="Tomcat doesn't run !!!" |
---|
368 | dia_tomcat_switch_title_2="[The service of Tomcat]" |
---|
369 | dia_tomcat_switch_menu_1_1="Startup Tomcat" |
---|
370 | dia_tomcat_switch_menu_1_2="Stop Tomcat" |
---|
371 | dia_tomcat_switch_menu_1_3="Restart Tomcat" |
---|
372 | tomcat_switch_echo_1="Failure:System can't find it!" |
---|
373 | tomcat_switch_echo_3="[Start up Tomcat]" |
---|
374 | tomcat_switch_echo_4="[Shutdown Tomcat]" |
---|
375 | tomcat_switch_echo_5="[Restart Tomcat]" |
---|
376 | |
---|
377 | ## [Lang for tomcat_port()] ## |
---|
378 | dia_tomcat_port_title_1="[Edit Tomcat servel.xml]" |
---|
379 | dia_tomcat_port_msg_1="Edit failure: Can't find the file." |
---|
380 | dia_tomcat_port_title_2="[Change Tomcat Port ]" |
---|
381 | dia_tomcat_port_input_1="Please enter tomcat port NO.(default 8080): " |
---|
382 | |
---|
383 | ## [Lang for lang_switch()] ## |
---|
384 | dia_lang_title_1="[Change language]" |
---|
385 | dia_lang_menu_1_1="English" |
---|
386 | dia_lang_menu_1_2="中文" |
---|
387 | ########## Lang for nutchez - End ########## |
---|