Annotation of Amaya/amaya-wx_release.nsi, revision 1.40
1.1 gully 1: ;--------------------------------
2: ;Include Modern UI
3:
4: !include "MUI.nsh"
5:
1.11 gully 6:
1.1 gully 7: ;--------------------------------
8: ;General
9:
10: ;Name and file
1.40 ! vatton 11: !define VERSION "10.0"
1.34 cvs 12: Name "Amaya"
1.9 cvs 13: OutFile "amaya-WinXP-${VERSION}.exe"
1.1 gully 14:
15: ;Use lzma to compress (better than zip)
16: SetCompressor lzma
17:
18: ;Default installation folder
1.34 cvs 19: InstallDir "$PROGRAMFILES\Amaya"
1.1 gully 20:
21: ;Get installation folder from registry if available
1.34 cvs 22: InstallDirRegKey HKCU "Software\Amaya" ""
1.1 gully 23:
24: ;--------------------------------
25: ;Variables
26:
1.3 gully 27:
1.1 gully 28: Var STARTMENU_FOLDER
29: ;--------------------------------
30: ;Interface Settings
31:
32: !define MUI_ABORTWARNING
33:
34: ;--------------------------------
35: ;Language Selection Dialog Settings
36:
37: ;Remember the installer language
38: !define MUI_LANGDLL_REGISTRY_ROOT "HKCU"
1.34 cvs 39: !define MUI_LANGDLL_REGISTRY_KEY "Software\Amaya"
1.1 gully 40: !define MUI_LANGDLL_REGISTRY_VALUENAME "Installer Language"
41:
42: ;--------------------------------
43: ;Pages
44:
45: !insertmacro MUI_PAGE_LICENSE "amaya\COPYRIGHT"
46: !insertmacro MUI_PAGE_COMPONENTS
47: !insertmacro MUI_PAGE_DIRECTORY
48:
49: ;Start Menu Folder Page Configuration
50: !define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKCU"
1.34 cvs 51: !define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\Amaya"
1.1 gully 52: !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder"
53: !insertmacro MUI_PAGE_STARTMENU Application $STARTMENU_FOLDER
54:
55: !insertmacro MUI_PAGE_INSTFILES
56:
1.10 gully 57: !define MUI_FINISHPAGE_LINK "Visit the Amaya site for the latest news, FAQs and support"
58: !define MUI_FINISHPAGE_LINK_LOCATION "http://www.w3.org/Amaya"
59:
60: !define MUI_FINISHPAGE_RUN "$INSTDIR\WindowsWX\bin\amaya.exe"
61: !define MUI_FINISHPAGE_NOREBOOTSUPPORT
62:
63: !insertmacro MUI_PAGE_FINISH
64:
1.1 gully 65: !insertmacro MUI_UNPAGE_CONFIRM
66: !insertmacro MUI_UNPAGE_INSTFILES
67:
68: ;--------------------------------
69: ;Languages
70:
71: !insertmacro MUI_LANGUAGE "English"
72: !insertmacro MUI_LANGUAGE "French"
73: !insertmacro MUI_LANGUAGE "German"
74: !insertmacro MUI_LANGUAGE "Spanish"
1.34 cvs 75: !insertmacro MUI_LANGUAGE "SimpChinese"
76: !insertmacro MUI_LANGUAGE "TradChinese"
1.1 gully 77: ; !insertmacro MUI_LANGUAGE "Japanese"
78: ; !insertmacro MUI_LANGUAGE "Korean"
1.30 cvs 79: !insertmacro MUI_LANGUAGE "Italian"
1.1 gully 80: ; !insertmacro MUI_LANGUAGE "Dutch"
81: ; !insertmacro MUI_LANGUAGE "Danish"
82: ; !insertmacro MUI_LANGUAGE "Swedish"
83: ; !insertmacro MUI_LANGUAGE "Norwegian"
1.30 cvs 84: !insertmacro MUI_LANGUAGE "Finnish"
85: !insertmacro MUI_LANGUAGE "Greek"
1.1 gully 86: !insertmacro MUI_LANGUAGE "Russian"
87: !insertmacro MUI_LANGUAGE "Portuguese"
88: ; !insertmacro MUI_LANGUAGE "PortugueseBR"
89: ; !insertmacro MUI_LANGUAGE "Polish"
90: ; !insertmacro MUI_LANGUAGE "Ukrainian"
91: ; !insertmacro MUI_LANGUAGE "Czech"
92: ; !insertmacro MUI_LANGUAGE "Slovak"
93: ; !insertmacro MUI_LANGUAGE "Croatian"
94: ; !insertmacro MUI_LANGUAGE "Bulgarian"
1.30 cvs 95: !insertmacro MUI_LANGUAGE "Hungarian"
1.1 gully 96: ; !insertmacro MUI_LANGUAGE "Thai"
97: ; !insertmacro MUI_LANGUAGE "Romanian"
98: ; !insertmacro MUI_LANGUAGE "Latvian"
99: ; !insertmacro MUI_LANGUAGE "Macedonian"
100: ; !insertmacro MUI_LANGUAGE "Estonian"
101: !insertmacro MUI_LANGUAGE "Turkish"
102: ; !insertmacro MUI_LANGUAGE "Lithuanian"
103: ; !insertmacro MUI_LANGUAGE "Catalan"
104: ; !insertmacro MUI_LANGUAGE "Slovenian"
105: ; !insertmacro MUI_LANGUAGE "Serbian"
106: ; !insertmacro MUI_LANGUAGE "SerbianLatin"
107: ; !insertmacro MUI_LANGUAGE "Arabic"
108: ; !insertmacro MUI_LANGUAGE "Farsi"
109: ; !insertmacro MUI_LANGUAGE "Hebrew"
110: ; !insertmacro MUI_LANGUAGE "Indonesian"
111: ; !insertmacro MUI_LANGUAGE "Mongolian"
112: ; !insertmacro MUI_LANGUAGE "Luxembourgish"
113: ; !insertmacro MUI_LANGUAGE "Albanian"
114:
115: ;--------------------------------
116: ;Reserve Files
117:
118: ;These files should be inserted before other files in the data block
119: ;Keep these lines before any File command
120: ;Only for solid compression (by default, solid compression is enabled for BZIP2 and LZMA)
121:
122: !insertmacro MUI_RESERVEFILE_LANGDLL
123:
124: ;--------------------------------
125: ;Installer Sections
126:
127: Section "Amaya" SecAmaya
128:
1.9 cvs 129:
1.10 gully 130: SetDetailsPrint textonly
131: DetailPrint "Testing supported OS..."
132: SetDetailsPrint listonly
133:
1.9 cvs 134: ;XXXXXXXXXXXXXXXXXXXXXXXXXX
135: ;Test the platform
136: ;XXXXXXXXXXXXXXXXXXXXXXXXXX
1.10 gully 137: ReadRegStr $R0 HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion
138: StrCmp $R0 "" lbl_notwinnt lbl_winnt
1.9 cvs 139:
140: ; we are not NT
1.10 gully 141: lbl_notwinnt:
142: ReadRegStr $R0 HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion" VersionNumber
1.9 cvs 143:
1.34 cvs 144:
1.9 cvs 145: StrCpy $R1 $R0 3
146:
147: StrCmp $R1 '4.0' lbl_win32_95
148: StrCmp $R1 '4.9' lbl_win32_ME lbl_win32_98
149:
150: lbl_win32_95:
1.10 gully 151: Abort "Win95 not supported"
1.9 cvs 152:
153: lbl_win32_98:
1.10 gully 154: Abort "Win98 not supported"
1.9 cvs 155:
156: lbl_win32_ME:
1.10 gully 157: Abort "WinME not supported"
1.9 cvs 158:
159: lbl_winnt:
1.38 vatton 160: StrCpy $R1 $R0 3
161: StrCpy $R0 'XP'
162: Goto lbl_done
1.9 cvs 163:
1.36 vatton 164:
1.9 cvs 165: lbl_done:
166: ;XXXXXXXXXXXXXXXXXXXXXXXXXX
167:
1.1 gully 168: ;This section is required : readonly mode
169: SectionIn RO
170:
1.10 gully 171: SetDetailsPrint textonly
172: DetailPrint "Installing Amaya binaries and wxWidgets DLL"
173: SetDetailsPrint listonly
174:
1.1 gully 175: SetOutPath "$INSTDIR\WindowsWX\bin"
176: File WindowsWX\bin\amaya.exe
177: File WindowsWX\bin\wxmsw*u_xrc_vc_custom.dll
178: File WindowsWX\bin\wxmsw*u_html_vc_custom.dll
179: File WindowsWX\bin\wxmsw*u_core_vc_custom.dll
180: File WindowsWX\bin\wxmsw*u_adv_vc_custom.dll
1.39 vatton 181: File WindowsWX\bin\wxmsw*u_aui_vc_custom.dll
1.1 gully 182: File WindowsWX\bin\wxmsw*u_gl_vc_custom.dll
183: File WindowsWX\bin\wxbase*u_vc_custom.dll
1.35 cvs 184: File WindowsWX\bin\wxbase*u_net_vc_custom.dll
1.1 gully 185: File WindowsWX\bin\wxbase*u_xml_vc_custom.dll
1.21 cvs 186: File WindowsWX\bin\thotprinter.dll
1.1 gully 187:
1.10 gully 188: SetDetailsPrint textonly
189: DetailPrint "Installing Amaya resources : icons, dialogues"
190: SetDetailsPrint listonly
1.1 gully 191:
1.14 gully 192: SetOutPath "$INSTDIR\resources\icons\misc"
193: File resources\icons\misc\*.png
194: File resources\icons\misc\*.gif
195: File resources\icons\misc\*.ico
196: SetOutPath "$INSTDIR\resources\icons\16x16"
197: File resources\icons\16x16\*.png
198: File resources\icons\16x16\*.ico
199: SetOutPath "$INSTDIR\resources\icons\22x22"
200: File resources\icons\22x22\*.png
1.1 gully 201: SetOutPath "$INSTDIR\resources\xrc"
202: File resources\xrc\*.xrc
1.29 cvs 203:
1.33 cvs 204:
1.11 gully 205: SetOutPath "$INSTDIR\amaya\wxdialog"
206: File amaya\wxdialog\appicon.ico
1.12 gully 207: File amaya\wxdialog\amaya.rc
1.1 gully 208:
1.10 gully 209: SetDetailsPrint textonly
210: DetailPrint "Installing Amaya schemas"
211: SetDetailsPrint listonly
1.1 gully 212:
213: SetOutPath "$INSTDIR\amaya"
214: File amaya\COPYRIGHT
215: File amaya\*.png
216: File amaya\*.gif
217: File amaya\*.css
218: File amaya\*.html*
219: File amaya\*.PRS
220: File amaya\*.STR
221: File amaya\*.TRA
222: File amaya\*.conf
223: File amaya\*.en
224: File amaya\*.trans*
225: File amaya\*.ico
226: File amaya\*.svg
227:
1.10 gully 228: SetDetailsPrint textonly
229: DetailPrint "Installing annotlib schemas"
230: SetDetailsPrint listonly
231:
1.1 gully 232: SetOutPath "$INSTDIR\annotlib"
233: File annotlib\*.png
234: File annotlib\*.gif
235: File annotlib\*.PRS
236: File annotlib\*.STR
237: File annotlib\*.TRA
238: File annotlib\*.en
239:
1.10 gully 240: SetDetailsPrint textonly
241: DetailPrint "Installing Amaya config files"
242: SetDetailsPrint listonly
243:
1.1 gully 244: SetOutPath "$INSTDIR\config\libconfig"
245: File config\libconfig\*.png
246: File config\libconfig\*.svg
247: File config\libconfig\*.css
248: File config\libconfig\*.lhtml
249:
250: SetOutPath "$INSTDIR\config"
251: File config\*-amayadialogue
252: File config\*-libdialogue
253: File config\*-amayamsg
254: File config\*-libdialogue
255: File config\lib_files.dat
256: File config\fonts.*
257: File config\amaya.kb
258: File config\amaya.profiles
259: File config\*.rdf
1.37 vatton 260: File config\*.css
1.1 gully 261: File config\annot.schemas
262: File config\win-thot.rc
263:
1.10 gully 264: SetDetailsPrint textonly
265: DetailPrint "Installing Amaya dictionnaries"
266: SetDetailsPrint listonly
267:
1.1 gully 268: SetOutPath "$INSTDIR\dicopar"
269: File dicopar\alphabet
270: File dicopar\*.ptn
271: File dicopar\clavier
272: File dicopar\*.dic
273:
1.10 gully 274: SetDetailsPrint textonly
275: DetailPrint "Installing Amaya documentation"
276: SetDetailsPrint listonly
277:
1.17 gully 278: SetOutPath "$INSTDIR\doc\WX"
279: File doc\WX\*
280: SetOutPath "$INSTDIR\doc\WX\HTML-elements"
281: File doc\WX\HTML-elements\*
1.1 gully 282: SetOutPath "$INSTDIR\doc\images"
283: File doc\images\*
284:
1.10 gully 285: SetDetailsPrint textonly
286: DetailPrint "Installing Amaya ttf fonts"
287: SetDetailsPrint listonly
288:
1.1 gully 289: SetOutPath "$INSTDIR\fonts"
290: File fonts\*
291:
1.10 gully 292: SetDetailsPrint textonly
293: DetailPrint "Writting registry keys"
294: SetDetailsPrint listonly
295:
1.1 gully 296: ;Store installation folder
1.34 cvs 297: WriteRegStr HKCU "Software\Amaya" "" $INSTDIR
298: WriteRegExpandStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Amaya" "UninstallString" '"$INSTDIR\Uninstall.exe"'
299: WriteRegExpandStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Amaya" "InstallLocation" "$INSTDIR"
300: WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Amaya" "DisplayName" "Amaya"
301: WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Amaya" "DisplayIcon" "$INSTDIR\WindowsWX\bin\amaya.exe"
302: WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Amaya" "DisplayVersion" "${VERSION}"
303: WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Amaya" "URLInfoAbout" "http://www.w3.org/Amaya"
1.11 gully 304:
305: ; Associate files to amaya
306: WriteRegStr HKCR "Amaya" "" "Amaya Files"
307: WriteRegStr HKCR "Amaya\DefaultIcon" "" "$INSTDIR\WindowsWX\bin\amaya.exe"
308: ReadRegStr $R0 HKCR "Amaya\shell\open\command" ""
309: StrCmp $R0 "" 0 no_amayaopen
310: WriteRegStr HKCR "Amaya\shell" "" "open"
311: WriteRegStr HKCR "Amaya\shell\open\command" "" '"$INSTDIR\WindowsWX\bin\amaya.exe" "%1"'
312: no_amayaopen:
1.1 gully 313:
314: ;Create uninstaller
315: WriteUninstaller "$INSTDIR\Uninstall.exe"
316:
1.26 gully 317: ;Install Amaya for all users
318: SetShellVarContext all
319:
1.1 gully 320: ;Start Menu
321: !insertmacro MUI_STARTMENU_WRITE_BEGIN Application
322: ;Create shortcuts
323: CreateDirectory "$SMPROGRAMS\$STARTMENU_FOLDER"
324: CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Uninstall.lnk" "$INSTDIR\Uninstall.exe"
325: CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Amaya.lnk" "$INSTDIR\WindowsWX\bin\amaya.exe"
326: !insertmacro MUI_STARTMENU_WRITE_END
327:
1.3 gully 328: ;Create desktop link
1.34 cvs 329: CreateShortCut "$DESKTOP\Amaya.lnk" "$INSTDIR\WindowsWX\bin\amaya.exe"
1.1 gully 330: SectionEnd
331:
1.11 gully 332:
333: SubSection "File association" SecFileAss
334:
1.22 gully 335: ; --> .html
1.20 cvs 336: Section /o ".html (HyperText Markup Language)" SecAssHTML
1.22 gully 337: ReadRegStr $R0 HKCR ".html" ""
338: StrCmp $R0 "Amaya" allready_amaya no_amaya
339: no_amaya:
340: WriteRegStr HKCR ".html" "AM_OLD_VALUE" $R0
1.11 gully 341: WriteRegStr HKCR ".html" "" "Amaya"
1.22 gully 342: allready_amaya:
1.11 gully 343: SectionEnd
344:
1.22 gully 345: ; --> .htm
346: Section /o ".htm (HyperText Markup Language)" SecAssHTM
347: ReadRegStr $R0 HKCR ".htm" ""
348: StrCmp $R0 "Amaya" allready_amaya no_amaya
349: no_amaya:
350: WriteRegStr HKCR ".htm" "AM_OLD_VALUE" $R0
351: WriteRegStr HKCR ".htm" "" "Amaya"
352: allready_amaya:
353: SectionEnd
354:
355: ; --> .xml
1.20 cvs 356: Section /o ".xml (eXtensible Markup Language)" SecAssXML
1.22 gully 357: ReadRegStr $R0 HKCR ".xml" ""
358: StrCmp $R0 "Amaya" allready_amaya no_amaya
359: no_amaya:
360: WriteRegStr HKCR ".xml" "AM_OLD_VALUE" $R0
1.11 gully 361: WriteRegStr HKCR ".xml" "" "Amaya"
1.22 gully 362: allready_amaya:
1.11 gully 363: SectionEnd
364:
1.22 gully 365: ; --> .svg
1.20 cvs 366: Section /o ".svg (Scalable Vector Graphics)" SecAssSVG
1.22 gully 367: ReadRegStr $R0 HKCR ".svg" ""
368: StrCmp $R0 "Amaya" allready_amaya no_amaya
369: no_amaya:
370: WriteRegStr HKCR ".svg" "AM_OLD_VALUE" $R0
1.11 gully 371: WriteRegStr HKCR ".svg" "" "Amaya"
1.22 gully 372: allready_amaya:
1.11 gully 373: SectionEnd
374:
1.22 gully 375: ; --> .mml
1.20 cvs 376: Section /o ".mml (MathML)" SecAssMML
1.22 gully 377: ReadRegStr $R0 HKCR ".mml" ""
378: StrCmp $R0 "Amaya" allready_amaya no_amaya
379: no_amaya:
380: WriteRegStr HKCR ".mml" "AM_OLD_VALUE" $R0
1.11 gully 381: WriteRegStr HKCR ".mml" "" "Amaya"
1.22 gully 382: allready_amaya:
1.11 gully 383: SectionEnd
384:
1.22 gully 385: ; --> .css
1.20 cvs 386: Section /o ".css (Cascading Style Sheets)" SecAssCSS
1.22 gully 387: ReadRegStr $R0 HKCR ".css" ""
388: StrCmp $R0 "Amaya" allready_amaya no_amaya
389: no_amaya:
390: WriteRegStr HKCR ".css" "AM_OLD_VALUE" $R0
1.11 gully 391: WriteRegStr HKCR ".css" "" "Amaya"
1.22 gully 392: allready_amaya:
1.11 gully 393: SectionEnd
394:
395: SubSectionEnd
396:
1.1 gully 397: ;--------------------------------
398: ;Installer Functions
399:
400: Function .onInit
401:
402: !insertmacro MUI_LANGDLL_DISPLAY
403:
404: FunctionEnd
405:
406: ;--------------------------------
407: ;Descriptions
408:
409: ;USE A LANGUAGE STRING IF YOU WANT YOUR DESCRIPTIONS TO BE LANGAUGE SPECIFIC
410:
411: ;Assign descriptions to sections
412: !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
1.22 gully 413: !insertmacro MUI_DESCRIPTION_TEXT ${SecAmaya} "Install main Amaya program (mandatory)."
1.19 gully 414: !insertmacro MUI_DESCRIPTION_TEXT ${SecFileAss} "Selects Amaya as the default application for files of these types."
1.1 gully 415: !insertmacro MUI_FUNCTION_DESCRIPTION_END
416:
417: ;--------------------------------
418: ;Uninstaller Section
419:
420: Section "Uninstall"
421:
1.10 gully 422: SetDetailsPrint textonly
423: DetailPrint "Uninstalling Amaya..."
424: SetDetailsPrint listonly
425:
426: IfFileExists $INSTDIR\WindowsWX\bin\amaya.exe amaya_installed
427: MessageBox MB_YESNO "It does not appear that Amaya is installed in the directory '$INSTDIR'.$\r$\nContinue anyway (not recommended)?" IDYES amaya_installed
428: Abort "Uninstall aborted by user"
429: amaya_installed:
430:
431:
432: SetDetailsPrint textonly
433: DetailPrint "Deleting Files..."
434: SetDetailsPrint listonly
1.26 gully 435: ;Uninstall Amaya for all users
436: SetShellVarContext all
437:
1.34 cvs 438: ReadRegStr $STARTMENU_FOLDER HKCU "Software\Amaya" "Start Menu Folder"
1.10 gully 439: IfFileExists "$SMPROGRAMS\$STARTMENU_FOLDER\Amaya.lnk" amaya_smp_installed
440: Goto amaya_smp_notinstalled
441: amaya_smp_installed:
1.5 gully 442: Delete "$SMPROGRAMS\$STARTMENU_FOLDER\Amaya.lnk"
443: Delete "$SMPROGRAMS\$STARTMENU_FOLDER\Uninstall.lnk"
444: RMDir "$SMPROGRAMS\$STARTMENU_FOLDER"
1.34 cvs 445: Delete "$DESKTOP\Amaya.lnk"
1.10 gully 446: amaya_smp_notinstalled:
447:
448: RMDir /r "$INSTDIR"
449:
450: SetDetailsPrint textonly
451: DetailPrint "Deleting Registry Keys..."
452: SetDetailsPrint listonly
1.1 gully 453:
1.34 cvs 454: DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Amaya"
455: DeleteRegKey HKLM "Software\Amaya"
1.11 gully 456: DeleteRegKey HKCR "Amaya"
1.34 cvs 457: DeleteRegKey HKCU "Software\Amaya"
1.22 gully 458: ; uninstall files associations
459: ; --> .html
460: ReadRegStr $R0 HKCR ".html" ""
461: StrCmp $R0 "Amaya" 0 +3
462: ReadRegStr $R0 HKCR ".html" "AM_OLD_VALUE"
463: WriteRegStr HKCR ".html" "" $R0
464: ; --> .htm
465: ReadRegStr $R0 HKCR ".htm" ""
466: StrCmp $R0 "Amaya" 0 +3
467: ReadRegStr $R0 HKCR ".htm" "AM_OLD_VALUE"
468: WriteRegStr HKCR ".htm" "" $R0
469: ; --> .css
470: ReadRegStr $R0 HKCR ".css" ""
471: StrCmp $R0 "Amaya" 0 +3
472: ReadRegStr $R0 HKCR ".css" "AM_OLD_VALUE"
473: WriteRegStr HKCR ".css" "" $R0
474: ; --> .svg
475: ReadRegStr $R0 HKCR ".svg" ""
476: StrCmp $R0 "Amaya" 0 +3
477: ReadRegStr $R0 HKCR ".svg" "AM_OLD_VALUE"
478: WriteRegStr HKCR ".svg" "" $R0
479: ; --> .mml
480: ReadRegStr $R0 HKCR ".mml" ""
481: StrCmp $R0 "Amaya" 0 +3
482: ReadRegStr $R0 HKCR ".mml" "AM_OLD_VALUE"
483: WriteRegStr HKCR ".mml" "" $R0
484: ; --> .xml
485: ReadRegStr $R0 HKCR ".xml" ""
486: StrCmp $R0 "Amaya" 0 +3
487: ReadRegStr $R0 HKCR ".xml" "AM_OLD_VALUE"
488: WriteRegStr HKCR ".xml" "" $R0
1.1 gully 489:
490: SectionEnd
491:
492: ;--------------------------------
493: ;Uninstaller Functions
494:
495: Function un.onInit
496:
497: !insertmacro MUI_UNGETLANGUAGE
498:
499: FunctionEnd
Webmaster