diff --git a/w32/Library/FreeSwitchCore.2017.vcxproj b/w32/Library/FreeSwitchCore.2017.vcxproj index 5e1205f5bc..6bd0c5d7af 100644 --- a/w32/Library/FreeSwitchCore.2017.vcxproj +++ b/w32/Library/FreeSwitchCore.2017.vcxproj @@ -113,13 +113,19 @@ ..\..\libs\apr\include\arch\win32;%(AdditionalIncludeDirectories) + + if not exist "$(OutDir)conf" xcopy "$(SolutionDir)conf\vanilla\*.*" "$(OutDir)conf\" /C /D /Y /S +if not exist "$(OutDir)db" md "$(OutDir)db" +if not exist "$(OutDir)log" md "$(OutDir)log" +if not exist "$(OutDir)htdocs" xcopy "$(SolutionDir)htdocs\*.*" "$(OutDir)htdocs\" /C /D /Y /S +if not exist "$(OutDir)images" xcopy "$(SolutionDir)images\*.*" "$(OutDir)images\" /C /D /Y /S +if not exist "$(OutDir)fonts" xcopy "$(SolutionDir)fonts\*.*" "$(OutDir)fonts\" /C /D /Y /S + + + - - - - Disabled ..\..\src\include;..\..\libs\include;..\..\libs\srtp\include;..\..\libs\srtp\crypto\include;..\..\libs\libteletone\src;..\..\libs\sqlite-amalgamation-3080401;..\..\libs\speex-1.2rc1\include;..\..\libs\spandsp\src\msvc;..\..\libs\spandsp\src;..\..\libs\libzrtp\include;..\..\libs\libzrtp\third_party\bgaes;..\..\libs\libzrtp\third_party\bnlib;..\..\libs\libtpl-1.5\src;..\..\libs\libtpl-1.5\src\win;..\..\libs\sofia-sip\libsofia-sip-ua\sdp;..\..\libs\sofia-sip\libsofia-sip-ua\su;..\..\libs\sofia-sip\win32;..\..\libs\libyuv\include;..\..\libs\freetype\include;..\..\libs\libpng;..\..\libs\libvpx;%(AdditionalIncludeDirectories) @@ -161,25 +167,12 @@ - - if not exist "$(OutDir)conf" xcopy "$(SolutionDir)conf\vanilla\*.*" "$(OutDir)conf\" /C /D /Y /S -if not exist "$(OutDir)db" md "$(OutDir)db" -if not exist "$(OutDir)log" md "$(OutDir)log" -if not exist "$(OutDir)htdocs" md "$(OutDir)htdocs" -if not exist "$(OutDir)htdocs" xcopy "$(SolutionDir)htdocs\*.*" "$(OutDir)htdocs\" /C /D /Y /S - - - $(SolutionDir)src\include - - - - X64 @@ -221,22 +214,9 @@ if not exist "$(OutDir)htdocs" xcopy "$(SolutionDir)htdocs\*.*" "$(OutDir)htdocs $(OutDir)FreeSwitchCore.lib MachineX64 - - if not exist "$(OutDir)conf" xcopy "$(SolutionDir)conf\vanilla\*.*" "$(OutDir)conf\" /C /D /Y /S -if not exist "$(OutDir)db" md "$(OutDir)db" -if not exist "$(OutDir)log" md "$(OutDir)log" -if not exist "$(OutDir)htdocs" md "$(OutDir)htdocs" -if not exist "$(OutDir)htdocs" xcopy "$(SolutionDir)htdocs\*.*" "$(OutDir)htdocs\" /C /D /Y /S - - - - - - - MaxSpeed ..\..\src\include;..\..\libs\include;..\..\libs\srtp\include;..\..\libs\srtp\crypto\include;..\..\libs\libteletone\src;..\..\libs\sqlite-amalgamation-3080401;..\..\libs\speex-1.2rc1\include;..\..\libs\spandsp\src\msvc;..\..\libs\spandsp\src;..\..\libs\libzrtp\include;..\..\libs\libzrtp\third_party\bgaes;..\..\libs\libzrtp\third_party\bnlib;..\..\libs\libtpl-1.5\src;..\..\libs\libtpl-1.5\src\win;..\..\libs\sofia-sip\libsofia-sip-ua\sdp;..\..\libs\sofia-sip\libsofia-sip-ua\su;..\..\libs\sofia-sip\win32;..\..\libs\libyuv\include;..\..\libs\freetype\include;..\..\libs\libpng;..\..\libs\libvpx;%(AdditionalIncludeDirectories) @@ -269,22 +249,9 @@ if not exist "$(OutDir)htdocs" xcopy "$(SolutionDir)htdocs\*.*" "$(OutDir)htdocs $(OutDir)FreeSwitchCore.lib MachineX86 - - if not exist "$(OutDir)conf" xcopy "$(SolutionDir)conf\vanilla\*.*" "$(OutDir)conf\" /C /D /Y /S -if not exist "$(OutDir)db" md "$(OutDir)db" -if not exist "$(OutDir)log" md "$(OutDir)log" -if not exist "$(OutDir)htdocs" md "$(OutDir)htdocs" -if not exist "$(OutDir)htdocs" xcopy "$(SolutionDir)htdocs\*.*" "$(OutDir)htdocs\" /C /D /Y /S - - - - - - - X64 @@ -320,15 +287,6 @@ if not exist "$(OutDir)htdocs" xcopy "$(SolutionDir)htdocs\*.*" "$(OutDir)htdocs $(OutDir)FreeSwitchCore.lib MachineX64 - - if not exist "$(OutDir)conf" xcopy "$(SolutionDir)conf\vanilla\*.*" "$(OutDir)conf\" /C /D /Y /S -if not exist "$(OutDir)db" md "$(OutDir)db" -if not exist "$(OutDir)log" md "$(OutDir)log" -if not exist "$(OutDir)htdocs" md "$(OutDir)htdocs" -if not exist "$(OutDir)htdocs" xcopy "$(SolutionDir)htdocs\*.*" "$(OutDir)htdocs\" /C /D /Y /S - - - diff --git a/w32/Setup/FreeSWITCHConsole.wxs b/w32/Setup/FreeSWITCHConsole.wxs index 5c3b3ab744..7b9aa4218d 100644 --- a/w32/Setup/FreeSWITCHConsole.wxs +++ b/w32/Setup/FreeSWITCHConsole.wxs @@ -33,7 +33,7 @@ - + diff --git a/w32/Setup/Product.2017.wxs b/w32/Setup/Product.2017.wxs index 9290112d5a..6b223612f6 100644 --- a/w32/Setup/Product.2017.wxs +++ b/w32/Setup/Product.2017.wxs @@ -99,7 +99,9 @@ - + @@ -108,6 +110,10 @@ + + + + @@ -115,16 +121,24 @@ - + - + - + - + diff --git a/w32/Setup/Setup.2017.wixproj b/w32/Setup/Setup.2017.wixproj index 6e608b82fc..0017c5acef 100644 --- a/w32/Setup/Setup.2017.wixproj +++ b/w32/Setup/Setup.2017.wixproj @@ -44,6 +44,10 @@ + + + + @@ -922,7 +926,15 @@ - + @@ -970,24 +982,62 @@ SuppressFragments="true" PreprocessorVariable="var.FreeSWITCHSoundFilesDir"> - + PreprocessorVariable="var.FreeSWITCHhtdocsFilesDir"> - + + + + + + - - - 3.5 - {47213370-b933-487d-9f45-bca26d7e2b6f} - 2.0 - FreeSWITCH - Package - $(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets - $(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\Wix.targets - - - bin\x86\Debug\ - obj\X86\$(Configuration)\ - Debug;FreeSWITCHConfFilesDir=$(ProjectDir)..\..\conf\vanilla;FreeSWITCHSoundFilesDir=$(ProjectDir)..\..\Win32\debug\sounds; - - - - - bin\x86\release\ - obj\X86\$(Configuration)\ - FreeSWITCHConfFilesDir=$(ProjectDir)..\..\conf\vanilla;FreeSWITCHSoundFilesDir=$(ProjectDir)..\..\Win32\release\sounds; - - - bin\x64\Debug\ - obj\X64\$(Configuration)\ - Debug;FreeSWITCHConfFilesDir=$(ProjectDir)..\..\conf\vanilla;FreeSWITCHSoundFilesDir=$(ProjectDir)..\..\x64\debug\sounds; - - - - - bin\x64\Release\ - obj\X64\$(Configuration)\ - FreeSWITCHConfFilesDir=$(ProjectDir)..\..\conf\vanilla;FreeSWITCHSoundFilesDir=$(ProjectDir)..\..\x64\release\sounds; - - - - - - - - - - libbroadvoice - {cf70f278-3364-4395-a2e1-23501c9b8ad2} - True - - - Binaries;Content;Satellites - INSTALLLOCATION - - - fs_cli - {d2fb8043-d208-4aee-8f18-3b5857c871b9} - True - - - Binaries;Content;Satellites - INSTALLLOCATION - - - libteletone - {89385c74-5860-4174-9caf-a39e7c48909c} - True - - - Binaries;Content;Satellites - INSTALLLOCATION - - - libspandsp - {1cbb0077-18c5-455f-801c-0a0ce7b0bbf5} - True - - - Binaries;Content;Satellites - INSTALLLOCATION - - - libaprutil - {f057da7f-79e5-4b00-845c-ef446ef055e3} - True - - - Binaries;Content;Satellites - INSTALLLOCATION - - - libapr - {f6c55d93-b927-4483-bb69-15aef3dd2dff} - True - - - Binaries;Content;Satellites - INSTALLLOCATION - - - js - {204fa0de-305d-4414-ae2e-f195a23f390d} - True - - - Binaries;Content;Satellites - INSTALLLOCATION - - - libeay32 - {d331904d-a00a-4694-a5a3-fcff64ab5dbe} - True - - - Binaries;Content;Satellites - INSTALLLOCATION - - - openssl __Libraries\openssl\openssl_ - {25bd39b1-c8bf-4676-a738-9cabd9c6bc79} - True - - - Binaries;Content;Satellites - INSTALLLOCATION - - - ssleay32 - {b4b62169-5ad4-4559-8707-3d933ac5db39} - True - - - Binaries;Content;Satellites - INSTALLLOCATION - - - pocketsphinx - {94001a0e-a837-445c-8004-f918f10d0226} - True - - - Binaries;Content;Satellites - INSTALLLOCATION - - - pthread - {df018947-0fff-4eb3-bdee-441dc81da7a4} - True - - - Binaries;Content;Satellites - INSTALLLOCATION - - - sphinxbase - {2f025ead-99bd-40f5-b2cc-f0a28cad7f2d} - True - - - Binaries;Content;Satellites - INSTALLLOCATION - - - mod_abstraction - {60c542ee-6882-4ea2-8c21-5ab6db1ba73f} - True - - - Binaries;Content;Satellites - MODLOCATION - - - mod_avmd - {990baa76-89d3-4e38-8479-c7b28784efc8} - True - - - Binaries;Content;Satellites - MODLOCATION - - - mod_callcenter - {47886a6c-cca6-4f9f-a7d4-f97d06fb2b1a} - True - - - Binaries;Content;Satellites - MODLOCATION - - - mod_commands - {30a5b29c-983e-4580-9fd0-d647ccdcc7eb} - True - - - Binaries;Content;Satellites - MODLOCATION - - - mod_conference - {c24fb505-05d7-4319-8485-7540b44c8603} - True - - - Binaries;Content;Satellites - MODLOCATION - - - mod_curl - {ef300386-a8df-4372-b6d8-fb9bffca9aed} - True - - - Binaries;Content;Satellites - MODLOCATION - - - mod_db - {f6a33240-8f29-48bd-98f0-826995911799} - True - - - Binaries;Content;Satellites - MODLOCATION - - - mod_directory - {b889a18e-70a7-44b5-b2c9-47798d4f43b3} - True - - - Binaries;Content;Satellites - MODLOCATION - - - mod_dptools - {b5881a85-fe70-4f64-8607-2caae52669c6} - True - - - Binaries;Content;Satellites - MODLOCATION - - - mod_enum - {71a967d5-0e99-4cef-a587-98836ee6f2ef} - True - - - Binaries;Content;Satellites - MODLOCATION - - - mod_esf - {3850d93a-5f24-4922-bc1c-74d08c37c256} - True - - - Binaries;Content;Satellites - MODLOCATION - - - mod_expr - {65a6273d-fcab-4c55-b09e-65100141a5d4} - True - - - Binaries;Content;Satellites - MODLOCATION - - - mod_fifo - {75df7f29-2fbf-47f7-b5af-5b4952dc1abd} - True - - - Binaries;Content;Satellites - MODLOCATION - - - mod_fsv - {e3246d17-e29b-4ab5-962a-c69b0c5837bb} - True - - - Binaries;Content;Satellites - MODLOCATION - - - mod_hash - {2e250296-0c08-4342-9c8a-bcbdd0e7df65} - True - - - Binaries;Content;Satellites - MODLOCATION - - - mod_httapi - {4748ff56-ca85-4809-97d6-a94c0fac1d77} - True - - - Binaries;Content;Satellites - MODLOCATION - - - mod_lcr - {1a3793d1-05d1-4b57-9b0f-5af3e79dc439} - True - - - Binaries;Content;Satellites - MODLOCATION - - - mod_nibblebill - {3c977801-fe88-48f2-83d3-fa2ebff6688e} - True - - - Binaries;Content;Satellites - MODLOCATION - - - mod_rss - {b69247fa-ecd6-40ed-8e44-5ca6c3baf9a4} - True - - - Binaries;Content;Satellites - MODLOCATION - - - mod_snom - {2a3d00c6-588d-4e86-81ac-9ef5ede86e03} - True - - - Binaries;Content;Satellites - MODLOCATION - - - mod_spandsp - {1e21afe0-6fdb-41d2-942d-863607c24b91} - True - - - Binaries;Content;Satellites - MODLOCATION - - - mod_valet_parking - {432db165-1eb2-4781-a9c0-71e62610b20a} - True - - - Binaries;Content;Satellites - MODLOCATION - - - mod_vmd - {14e4a972-9cfb-436d-b0a5-4943f3f80d47} - True - - - Binaries;Content;Satellites - MODLOCATION - - - mod_voicemail - {d7f1e3f2-a3f4-474c-8555-15122571af52} - True - - - Binaries;Content;Satellites - MODLOCATION - - - mod_cepstral - {692f6330-4d87-4c82-81df-40db5892636e} - True - - - Binaries;Content;Satellites - MODLOCATION - - - mod_pocketsphinx - {2286da73-9fc5-45bc-a508-85994c3317ab} - True - - - Binaries;Content;Satellites - MODLOCATION - - - mod_unimrcp - {d07c378a-f5f7-438f-adf3-4ac4fb1883cd} - True - - - Binaries;Content;Satellites - MODLOCATION - - - mod_amr - {8deb383c-4091-4f42-a56f-c9e46d552d79} - True - - - Binaries;Content;Satellites - MODLOCATION - - - mod_g723_1 - {fea1eef7-876f-48de-88bf-c0e3e606d758} - True - - - Binaries;Content;Satellites - MODLOCATION - - - mod_g729 - {1d95cd95-0de2-48c3-ac23-d5c7d1c9c0f0} - True - - - Binaries;Content;Satellites - MODLOCATION - - - mod_h26x - {2c3c2423-234b-4772-8899-d3b137e5ca35} - True - - - Binaries;Content;Satellites - MODLOCATION - - - mod_ilbc - {d3ec0aff-76fc-4210-a825-9a17410660a3} - True - - - Binaries;Content;Satellites - MODLOCATION - - - mod_silk - {afa983d6-4569-4f88-ba94-555ed00fd9a8} - True - - - Binaries;Content;Satellites - MODLOCATION - - - mod_siren - {0b6c905b-142e-4999-b39d-92ff7951e921} - True - - - Binaries;Content;Satellites - MODLOCATION - - - mod_speex - {5580d60e-0f77-4716-9cd4-b8e5986fa375} - True - - - Binaries;Content;Satellites - MODLOCATION - - - mod_dialplan_asterisk - {e7bc026c-7cc5-45a3-bc7c-3b88eef01f24} - True - - - Binaries;Content;Satellites - MODLOCATION - - - mod_dialplan_directory - {a27cca23-1541-4337-81a4-f0a6413078a0} - True - - - Binaries;Content;Satellites - MODLOCATION - - - mod_dialplan_xml - {07113b25-d3af-4e04-ba77-4cd1171f022c} - True - - - Binaries;Content;Satellites - MODLOCATION - - - mod_loopback - {b3f424ec-3d8f-417c-b244-3919d5e1a577} - True - - - Binaries;Content;Satellites - MODLOCATION - - - mod_PortAudio - {5fd31a25-5d83-4794-8bee-904dad84ce71} - True - - - Binaries;Content;Satellites - MODLOCATION - - - mod_rtmp - {48414740-c693-4968-9846-ee058020c64f} - True - - - Binaries;Content;Satellites - MODLOCATION - - - mod_skypopen - {c6e78a4c-db1e-47f4-9b63-4dc27d86343f} - True - - - Binaries;Content;Satellites - MODLOCATION - - - mod_sofia - {0df3abd0-ddc0-4265-b778-07c66780979b} - True - - - Binaries;Content;Satellites - MODLOCATION - - - mod_cdr_csv - {44d7deaf-fda5-495e-8b9d-1439e4f4c21e} - True - - - Binaries;Content;Satellites - MODLOCATION - - - mod_event_multicast - {784113ef-44d9-4949-835d-7065d3c7ad08} - True - - - Binaries;Content;Satellites - MODLOCATION - - - mod_event_socket - {05515420-16de-4e63-be73-85be85ba5142} - True - - - Binaries;Content;Satellites - MODLOCATION - - - mod_local_stream - {2ca40887-1622-46a1-a7f9-17fd7e7e545b} - True - - - Binaries;Content;Satellites - MODLOCATION - - - mod_native_file - {9254c4b0-6f60-42b6-bb3a-36d63fc001c7} - True - - - Binaries;Content;Satellites - MODLOCATION - - - mod_sndfile - {afac0568-7548-42d5-9f6a-8d3400a1e4f6} - True - - - Binaries;Content;Satellites - MODLOCATION - - - mod_tone_stream - {6ff941ac-82c5-429f-aa4c-ad2fb9e5da52} - True - - - Binaries;Content;Satellites - MODLOCATION - - - lua51 - {d0b36172-cd76-454a-9b89-990025266c2a} - True - - - Binaries;Content;Satellites - INSTALLLOCATION - - - mod_lua - {7b077e7f-1be7-4291-ab86-55e527b25cac} - True - - - Binaries;Content;Satellites - MODLOCATION - - - FreeSWITCH.Managed.2010 - {834e2b2f-5483-4b80-8fe3-fe48ff76e5c0} - True - - - Binaries;Content;Satellites - MODLOCATION - - - mod_managed - {7b42bda1-72c0-4378-a9b6-5c530f8cd61e} - True - - - Binaries;Content;Satellites - MODLOCATION - - - mod_spidermonkey - {1ad3f51e-bbb6-4090-ba39-9dfab1ef1f5f} - True - - - Binaries;Content;Satellites - MODLOCATION - - - mod_spidermonkey_core_db - {acfff684-4d19-4d48-af12-88ea1d778bdf} - True - - - Binaries;Content;Satellites - MODLOCATION - - - mod_spidermonkey_odbc - {0a6b5ea5-6e9b-4a51-931f-ed25aa87b4df} - True - - - Binaries;Content;Satellites - MODLOCATION - - - mod_spidermonkey_socket - {028c7278-05d7-4e18-82fe-be231b844f41} - True - - - Binaries;Content;Satellites - MODLOCATION - - - mod_spidermonkey_teletone - {8f992c49-6c51-412f-b2a3-34eab708eb65} - True - - - Binaries;Content;Satellites - MODLOCATION - - - mod_console - {1c453396-d912-4213-89fd-9b489162b7b5} - True - - - Binaries;Content;Satellites - MODLOCATION - - - mod_logfile - {d0bcac02-d94b-46b8-9b49-cddcc2bd7909} - True - - - Binaries;Content;Satellites - MODLOCATION - - - mod_say_de - {5bc072db-3826-48ea-af34-fe32aa01e83b} - True - - - Binaries;Content;Satellites - MODLOCATION - - - mod_say_en - {988cacf7-3fcb-4992-be69-77872ae67dc8} - True - - - Binaries;Content;Satellites - MODLOCATION - - - mod_say_es - {fa429e98-8b03-45e6-a096-a4bc5e821de4} - True - - - Binaries;Content;Satellites - MODLOCATION - - - mod_say_fr - {06e3a538-ab32-44f2-b477-755ff9cb5d37} - True - - - Binaries;Content;Satellites - MODLOCATION - - - mod_say_it - {6d1bec70-4dcd-4fe9-adbd-4a43a67e4d05} - True - - - Binaries;Content;Satellites - MODLOCATION - - - mod_say_nl - {a4b122cf-5196-476b-8c0e-d8bd59ac3c14} - True - - - Binaries;Content;Satellites - MODLOCATION - - - mod_say_pt - {7c22bdff-cc09-400c-8a09-660733980028} - True - - - Binaries;Content;Satellites - MODLOCATION - - - mod_say_ru - {0382e8fd-cfdc-41c0-8b03-792c7c84fc31} - True - - - Binaries;Content;Satellites - MODLOCATION - - - mod_say_zh - {b6a9fb7a-1cc4-442b-812d-ec33e4e4a36e} - True - - - Binaries;Content;Satellites - MODLOCATION - - - mod_xml_cdr - {08dad348-9e0a-4a2e-97f1-f1e7e24a7836} - True - - - Binaries;Content;Satellites - MODLOCATION - - - mod_xml_curl - {ab91a099-7690-4ecf-8994-e458f4ea1ed4} - True - - - Binaries;Content;Satellites - MODLOCATION - - - mod_xml_rpc - {cbec7225-0c21-4da8-978e-1f158f8ad950} - True - - - Binaries;Content;Satellites - MODLOCATION - - - FreeSwitchConsole - {1af3a893-f7be-43dd-b697-8ab2397c0d67} - True - - True - - Binaries;Content;Satellites - INSTALLLOCATION - - - FreeSwitchCoreLib - {202d7a4e-760d-4d0e-afa1-d7459ced30ff} - True - - - Binaries;Content;Satellites - INSTALLLOCATION - - - - - $(WixExtDir)\WixUIExtension.dll - WixUIExtension - - - - - - - - "$(WixToolPath)\heat.exe" dir "$(ProjectDir)..\..\conf\vanilla" -cg FreeSWITCHConfFiles -gg -scom -sreg -sfrag -srd -dr CONFLOCATION -var var.FreeSWITCHConfFilesDir -out "$(ProjectDir)Fragments\FreeSWITCHConfFiles.wxs" -"$(WixToolPath)\heat.exe" dir "$(ProjectDir)..\..\Win32\Release\sounds" -cg FreeSWITCHSoundFiles8 -gg -scom -sreg -sfrag -srd -dr SOUNDLOCATION -var var.FreeSWITCHSoundFilesDir -out "$(ProjectDir)Fragments\FreeSWITCHSoundFiles8.wxs" - - - diff --git a/w32/Setup/filter.xslt b/w32/Setup/filter.xslt index e96851d189..11a102885d 100644 --- a/w32/Setup/filter.xslt +++ b/w32/Setup/filter.xslt @@ -19,11 +19,13 @@ - + + + + diff --git a/w32/Setup/freeswitch.aip b/w32/Setup/freeswitch.aip deleted file mode 100644 index d46f7ba64d..0000000000 --- a/w32/Setup/freeswitch.aip +++ /dev/null @@ -1,954 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -