From fbf15572d905799257c07d1ddfb9dea0007e89fe Mon Sep 17 00:00:00 2001
From: Jennifer Leech <jenn@lindenlab.com>
Date: Thu, 12 Jun 2008 20:51:41 +0000
Subject: [PATCH] svn merge -r89258:89534
 svn+ssh://svn/svn/linden/branches/install-dev-binaries/idb2-merge-buildme

---
 indra/cmake/APR.cmake                      |    2 +
 indra/cmake/Audio.cmake                    |    2 +
 indra/cmake/Boost.cmake                    |    2 +
 indra/cmake/CARes.cmake                    |    2 +
 indra/cmake/CURL.cmake                     |    2 +
 indra/cmake/ELFIO.cmake                    |    2 +
 indra/cmake/EXPAT.cmake                    |    2 +
 indra/cmake/FMOD.cmake                     |    3 +
 indra/cmake/FreeType.cmake                 |    2 +
 indra/cmake/GooglePerfTools.cmake          |    2 +
 indra/cmake/JPEG.cmake                     |    2 +
 indra/cmake/LLKDU.cmake                    |    2 +
 indra/cmake/LLWindow.cmake                 |    3 +
 indra/cmake/MySQL.cmake                    |    3 +
 indra/cmake/NDOF.cmake                     |    3 +
 indra/cmake/OpenGL.cmake                   |    6 +-
 indra/cmake/OpenJPEG.cmake                 |    2 +
 indra/cmake/OpenSSL.cmake                  |    2 +
 indra/cmake/PNG.cmake                      |    2 +
 indra/cmake/Prebuilt.cmake                 |   23 +-
 indra/cmake/UI.cmake                       |    2 +
 indra/cmake/ViewerMiscLibs.cmake           |    9 +
 indra/cmake/XmlRpcEpi.cmake                |    2 +
 indra/cmake/ZLIB.cmake                     |    7 +-
 indra/newview/CMakeLists.txt               |    1 +
 indra/newview/res-sdl/arrow.BMP            |  Bin 2102 -> 0 bytes
 indra/newview/res-sdl/arrowcop.BMP         |  Bin 3126 -> 0 bytes
 indra/newview/res-sdl/arrowcopmulti.BMP    |  Bin 3126 -> 0 bytes
 indra/newview/res-sdl/arrowdrag.BMP        |  Bin 2102 -> 0 bytes
 indra/newview/res-sdl/circleandline.BMP    |  Bin 2102 -> 0 bytes
 indra/newview/res-sdl/cross.BMP            |  Bin 2102 -> 0 bytes
 indra/newview/res-sdl/hand.BMP             |  Bin 2102 -> 0 bytes
 indra/newview/res-sdl/ibeam.BMP            |  Bin 2102 -> 0 bytes
 indra/newview/res-sdl/ll_icon.BMP          |  Bin 5174 -> 0 bytes
 indra/newview/res-sdl/llarrow.BMP          |  Bin 2102 -> 0 bytes
 indra/newview/res-sdl/llarrowdrag.BMP      |  Bin 2102 -> 0 bytes
 indra/newview/res-sdl/llarrowdragmulti.BMP |  Bin 3126 -> 0 bytes
 indra/newview/res-sdl/llarrowlocked.BMP    |  Bin 2102 -> 0 bytes
 indra/newview/res-sdl/llgrablocked.BMP     |  Bin 2102 -> 0 bytes
 indra/newview/res-sdl/llno.BMP             |  Bin 2102 -> 0 bytes
 indra/newview/res-sdl/llnolocked.BMP       |  Bin 2102 -> 0 bytes
 indra/newview/res-sdl/lltoolcamera.BMP     |  Bin 2102 -> 0 bytes
 indra/newview/res-sdl/lltoolcreate.BMP     |  Bin 2102 -> 0 bytes
 indra/newview/res-sdl/lltoolfocus.BMP      |  Bin 2102 -> 0 bytes
 indra/newview/res-sdl/lltoolgrab.BMP       |  Bin 2102 -> 0 bytes
 indra/newview/res-sdl/lltoolland.BMP       |  Bin 2102 -> 0 bytes
 indra/newview/res-sdl/lltoolpan.BMP        |  Bin 2102 -> 0 bytes
 indra/newview/res-sdl/lltoolpipette.BMP    |  Bin 3126 -> 0 bytes
 indra/newview/res-sdl/lltoolrotate.BMP     |  Bin 2102 -> 0 bytes
 indra/newview/res-sdl/lltoolscale.BMP      |  Bin 2102 -> 0 bytes
 indra/newview/res-sdl/lltooltranslate.BMP  |  Bin 2102 -> 0 bytes
 indra/newview/res-sdl/lltoolzoomin.BMP     |  Bin 2102 -> 0 bytes
 indra/newview/res-sdl/lltoolzoomout.BMP    |  Bin 2102 -> 0 bytes
 indra/newview/res-sdl/sizenesw.BMP         |  Bin 2102 -> 0 bytes
 indra/newview/res-sdl/sizens.BMP           |  Bin 2102 -> 0 bytes
 indra/newview/res-sdl/sizenwse.BMP         |  Bin 2102 -> 0 bytes
 indra/newview/res-sdl/sizewe.BMP           |  Bin 2102 -> 0 bytes
 indra/newview/res-sdl/toolbuy.BMP          |  Bin 3126 -> 0 bytes
 indra/newview/res-sdl/toolmediaopen.BMP    |  Bin 3128 -> 0 bytes
 indra/newview/res-sdl/toolopen.BMP         |  Bin 3126 -> 0 bytes
 indra/newview/res-sdl/toolpause.BMP        |  Bin 3128 -> 0 bytes
 indra/newview/res-sdl/toolpickobject.BMP   |  Bin 2102 -> 0 bytes
 indra/newview/res-sdl/toolpickobject2.BMP  |  Bin 2102 -> 0 bytes
 indra/newview/res-sdl/toolpickobject3.BMP  |  Bin 2102 -> 0 bytes
 indra/newview/res-sdl/toolplay.BMP         |  Bin 3128 -> 0 bytes
 indra/newview/res-sdl/toolsit.BMP          |  Bin 3126 -> 0 bytes
 indra/newview/res-sdl/wait.BMP             |  Bin 2102 -> 0 bytes
 indra/newview/res-sdl/working.BMP          |  Bin 2102 -> 0 bytes
 install.xml                                | 1242 ++++++++++++++++++++
 scripts/install.py                         |  675 ++++++++---
 70 files changed, 1801 insertions(+), 206 deletions(-)
 create mode 100644 indra/cmake/ViewerMiscLibs.cmake
 delete mode 100644 indra/newview/res-sdl/arrow.BMP
 delete mode 100644 indra/newview/res-sdl/arrowcop.BMP
 delete mode 100644 indra/newview/res-sdl/arrowcopmulti.BMP
 delete mode 100644 indra/newview/res-sdl/arrowdrag.BMP
 delete mode 100644 indra/newview/res-sdl/circleandline.BMP
 delete mode 100644 indra/newview/res-sdl/cross.BMP
 delete mode 100644 indra/newview/res-sdl/hand.BMP
 delete mode 100644 indra/newview/res-sdl/ibeam.BMP
 delete mode 100644 indra/newview/res-sdl/ll_icon.BMP
 delete mode 100644 indra/newview/res-sdl/llarrow.BMP
 delete mode 100644 indra/newview/res-sdl/llarrowdrag.BMP
 delete mode 100644 indra/newview/res-sdl/llarrowdragmulti.BMP
 delete mode 100644 indra/newview/res-sdl/llarrowlocked.BMP
 delete mode 100644 indra/newview/res-sdl/llgrablocked.BMP
 delete mode 100644 indra/newview/res-sdl/llno.BMP
 delete mode 100644 indra/newview/res-sdl/llnolocked.BMP
 delete mode 100644 indra/newview/res-sdl/lltoolcamera.BMP
 delete mode 100644 indra/newview/res-sdl/lltoolcreate.BMP
 delete mode 100644 indra/newview/res-sdl/lltoolfocus.BMP
 delete mode 100644 indra/newview/res-sdl/lltoolgrab.BMP
 delete mode 100644 indra/newview/res-sdl/lltoolland.BMP
 delete mode 100644 indra/newview/res-sdl/lltoolpan.BMP
 delete mode 100644 indra/newview/res-sdl/lltoolpipette.BMP
 delete mode 100644 indra/newview/res-sdl/lltoolrotate.BMP
 delete mode 100644 indra/newview/res-sdl/lltoolscale.BMP
 delete mode 100644 indra/newview/res-sdl/lltooltranslate.BMP
 delete mode 100644 indra/newview/res-sdl/lltoolzoomin.BMP
 delete mode 100644 indra/newview/res-sdl/lltoolzoomout.BMP
 delete mode 100644 indra/newview/res-sdl/sizenesw.BMP
 delete mode 100644 indra/newview/res-sdl/sizens.BMP
 delete mode 100644 indra/newview/res-sdl/sizenwse.BMP
 delete mode 100644 indra/newview/res-sdl/sizewe.BMP
 delete mode 100644 indra/newview/res-sdl/toolbuy.BMP
 delete mode 100644 indra/newview/res-sdl/toolmediaopen.BMP
 delete mode 100644 indra/newview/res-sdl/toolopen.BMP
 delete mode 100644 indra/newview/res-sdl/toolpause.BMP
 delete mode 100644 indra/newview/res-sdl/toolpickobject.BMP
 delete mode 100644 indra/newview/res-sdl/toolpickobject2.BMP
 delete mode 100644 indra/newview/res-sdl/toolpickobject3.BMP
 delete mode 100644 indra/newview/res-sdl/toolplay.BMP
 delete mode 100644 indra/newview/res-sdl/toolsit.BMP
 delete mode 100644 indra/newview/res-sdl/wait.BMP
 delete mode 100644 indra/newview/res-sdl/working.BMP
 create mode 100644 install.xml

diff --git a/indra/cmake/APR.cmake b/indra/cmake/APR.cmake
index eb1fb689915..b1aec807ee0 100644
--- a/indra/cmake/APR.cmake
+++ b/indra/cmake/APR.cmake
@@ -2,6 +2,7 @@
 
 include(BerkeleyDB)
 include(Linking)
+include(Prebuilt)
 
 set(APR_FIND_QUIETLY ON)
 set(APR_FIND_REQUIRED ON)
@@ -12,6 +13,7 @@ set(APRUTIL_FIND_REQUIRED ON)
 if (STANDALONE)
   include(FindAPR)
 else (STANDALONE)
+  use_prebuilt_binary(apr_suite)
   if (WINDOWS)
     set(WINLIBS_PREBUILT_DEBUG_DIR 
       ${CMAKE_SOURCE_DIR}/../libraries/i686-win32/lib/debug
diff --git a/indra/cmake/Audio.cmake b/indra/cmake/Audio.cmake
index 895881141a2..c6ccab26133 100644
--- a/indra/cmake/Audio.cmake
+++ b/indra/cmake/Audio.cmake
@@ -1,4 +1,5 @@
 # -*- cmake -*-
+include(Prebuilt)
 
 if (STANDALONE)
   include(FindPkgConfig)
@@ -7,6 +8,7 @@ if (STANDALONE)
   pkg_check_modules(VORBISENC REQUIRED vorbisenc)
   pkg_check_modules(VORBISFILE REQUIRED vorbisfile)
 else (STANDALONE)
+  use_prebuilt_binary(ogg-vorbis)
   set(VORBIS_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include)
   set(VORBISENC_INCLUDE_DIRS ${VORBIS_INCLUDE_DIRS})
   set(VORBISFILE_INCLUDE_DIRS ${VORBIS_INCLUDE_DIRS})
diff --git a/indra/cmake/Boost.cmake b/indra/cmake/Boost.cmake
index 40f23eb8cac..c7df87177e8 100644
--- a/indra/cmake/Boost.cmake
+++ b/indra/cmake/Boost.cmake
@@ -1,4 +1,5 @@
 # -*- cmake -*-
+include(Prebuilt)
 
 set(Boost_FIND_QUIETLY ON)
 set(Boost_FIND_REQUIRED ON)
@@ -10,6 +11,7 @@ if (STANDALONE)
   set(BOOST_REGEX_LIBRARY boost_regex-mt)
   set(BOOST_SIGNALS_LIBRARY boost_signals-mt)
 else (STANDALONE)
+  use_prebuilt_binary(boost)
   set(Boost_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include)
 
   if (WINDOWS)
diff --git a/indra/cmake/CARes.cmake b/indra/cmake/CARes.cmake
index 4dfcf588c60..68fabc34933 100644
--- a/indra/cmake/CARes.cmake
+++ b/indra/cmake/CARes.cmake
@@ -1,5 +1,6 @@
 # -*- cmake -*-
 include(Linking)
+include(Prebuilt)
 
 set(CARES_FIND_QUIETLY ON)
 set(CARES_FIND_REQUIRED ON)
@@ -7,6 +8,7 @@ set(CARES_FIND_REQUIRED ON)
 if (STANDALONE)
   include(FindCARes)
 else (STANDALONE)
+    use_prebuilt_binary(ares)
     if (WINDOWS)
         set(CARES_LIBRARIES areslib)
     elseif (DARWIN)
diff --git a/indra/cmake/CURL.cmake b/indra/cmake/CURL.cmake
index bce4a85d167..6e5fed4d528 100644
--- a/indra/cmake/CURL.cmake
+++ b/indra/cmake/CURL.cmake
@@ -1,4 +1,5 @@
 # -*- cmake -*-
+include(Prebuilt)
 
 set(CURL_FIND_QUIETLY ON)
 set(CURL_FIND_REQUIRED ON)
@@ -6,6 +7,7 @@ set(CURL_FIND_REQUIRED ON)
 if (STANDALONE)
   include(FindCURL)
 else (STANDALONE)
+  use_prebuilt_binary(curl)
   if (WINDOWS)
     set(CURL_LIBRARIES 
     debug libcurld
diff --git a/indra/cmake/ELFIO.cmake b/indra/cmake/ELFIO.cmake
index 2805842cbc2..e420ce27bb3 100644
--- a/indra/cmake/ELFIO.cmake
+++ b/indra/cmake/ELFIO.cmake
@@ -1,10 +1,12 @@
 # -*- cmake -*-
+include(Prebuilt)
 
 set(ELFIO_FIND_QUIETLY ON)
 
 if (STANDALONE)
   include(FindELFIO)
 elseif (LINUX)
+  use_prebuilt_binary(elfio)
   set(ELFIO_LIBRARIES ELFIO)
   set(ELFIO_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/include)
 endif (STANDALONE)
diff --git a/indra/cmake/EXPAT.cmake b/indra/cmake/EXPAT.cmake
index 3010d635323..acb15dc623d 100644
--- a/indra/cmake/EXPAT.cmake
+++ b/indra/cmake/EXPAT.cmake
@@ -1,4 +1,5 @@
 # -*- cmake -*-
+include(Prebuilt)
 
 set(EXPAT_FIND_QUIETLY ON)
 set(EXPAT_FIND_REQUIRED ON)
@@ -6,6 +7,7 @@ set(EXPAT_FIND_REQUIRED ON)
 if (STANDALONE)
   include(FindEXPAT)
 else (STANDALONE)
+    use_prebuilt_binary(expat)
     if (WINDOWS)
         set(EXPAT_LIBRARIES libexpatMT)
     else (WINDOWS)
diff --git a/indra/cmake/FMOD.cmake b/indra/cmake/FMOD.cmake
index 781c8babbef..258fd6bf664 100644
--- a/indra/cmake/FMOD.cmake
+++ b/indra/cmake/FMOD.cmake
@@ -1,4 +1,7 @@
 # -*- cmake -*-
+include(Prebuilt)
+
+use_prebuilt_binary(fmod)
 
 find_library(FMOD_LIBRARY
              NAMES fmod fmodvc fmod-3.75
diff --git a/indra/cmake/FreeType.cmake b/indra/cmake/FreeType.cmake
index 064135bcd1b..5f1aa26e891 100644
--- a/indra/cmake/FreeType.cmake
+++ b/indra/cmake/FreeType.cmake
@@ -1,10 +1,12 @@
 # -*- cmake -*-
+include(Prebuilt)
 
 if (STANDALONE)
   include(FindPkgConfig)
 
   pkg_check_modules(FREETYPE REQUIRED freetype2)
 else (STANDALONE)
+  use_prebuilt_binary(freetype)
   if (LINUX)
     set(FREETYPE_INCLUDE_DIRS
         ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/include)
diff --git a/indra/cmake/GooglePerfTools.cmake b/indra/cmake/GooglePerfTools.cmake
index 61a2631a081..9b3eca060fc 100644
--- a/indra/cmake/GooglePerfTools.cmake
+++ b/indra/cmake/GooglePerfTools.cmake
@@ -1,8 +1,10 @@
 # -*- cmake -*-
+include(Prebuilt)
 
 if (STANDALONE)
   include(FindGooglePerfTools)
 else (STANDALONE)
+  use_prebuilt_binary(google)
   if (LINUX)
     set(TCMALLOC_LIBRARIES tcmalloc)
     set(STACKTRACE_LIBRARIES stacktrace)
diff --git a/indra/cmake/JPEG.cmake b/indra/cmake/JPEG.cmake
index 18bdd8bc465..8047718f399 100644
--- a/indra/cmake/JPEG.cmake
+++ b/indra/cmake/JPEG.cmake
@@ -1,4 +1,5 @@
 # -*- cmake -*-
+include(Prebuilt)
 
 include(Linking)
 set(JPEG_FIND_QUIETLY ON)
@@ -7,6 +8,7 @@ set(JPEG_FIND_REQUIRED ON)
 if (STANDALONE)
   include(FindJPEG)
 else (STANDALONE)
+  use_prebuilt_binary(jpeglib)
   if (LINUX)
     set(JPEG_LIBRARIES jpeg)
   elseif (DARWIN)
diff --git a/indra/cmake/LLKDU.cmake b/indra/cmake/LLKDU.cmake
index 6ec14d25880..a02b5d958e3 100644
--- a/indra/cmake/LLKDU.cmake
+++ b/indra/cmake/LLKDU.cmake
@@ -1,6 +1,8 @@
 # -*- cmake -*-
+include(Prebuilt)
 
 if (NOT STANDALONE AND EXISTS ${LIBS_CLOSED_DIR}/llkdu)
+  use_prebuilt_binary(kdu)
   if (WINDOWS)
     set(KDU_LIBRARY debug kdu_cored optimized kdu_core)
   elseif (LINUX)
diff --git a/indra/cmake/LLWindow.cmake b/indra/cmake/LLWindow.cmake
index 7a1ecaf0b12..c0efa27f6e0 100644
--- a/indra/cmake/LLWindow.cmake
+++ b/indra/cmake/LLWindow.cmake
@@ -1,6 +1,7 @@
 # -*- cmake -*-
 
 include(OpenGL)
+include(Prebuilt)
 
 if (STANDALONE)
   include(FindSDL)
@@ -12,6 +13,8 @@ if (STANDALONE)
       SDL_LIBRARY
       )
 else (STANDALONE)
+  use_prebuilt_binary(SDL)
+  use_prebuilt_binary(mesa)
   if (LINUX AND VIEWER)
     set (SDL_FOUND TRUE)
     set (SDL_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/i686-linux)
diff --git a/indra/cmake/MySQL.cmake b/indra/cmake/MySQL.cmake
index 7dc638ec571..e7400a3de40 100644
--- a/indra/cmake/MySQL.cmake
+++ b/indra/cmake/MySQL.cmake
@@ -1,7 +1,10 @@
 # -*- cmake -*-
 include(Linking)
+include(Prebuilt)
 # We don't prebuild our own MySQL client library.
 
+use_prebuilt_binary(mysql)
+
 set(MYSQL_FIND_QUIETLY ON)
 set(MYSQL_FIND_REQUIRED ON)
 
diff --git a/indra/cmake/NDOF.cmake b/indra/cmake/NDOF.cmake
index 22e9787653e..3f715a2312f 100644
--- a/indra/cmake/NDOF.cmake
+++ b/indra/cmake/NDOF.cmake
@@ -1,4 +1,7 @@
 # -*- cmake -*-
+include(Prebuilt)
+
+use_prebuilt_binary(ndofdev)
 
 if (WINDOWS OR DARWIN)
   add_definitions(-DLIB_NDOF=1)
diff --git a/indra/cmake/OpenGL.cmake b/indra/cmake/OpenGL.cmake
index 7395d478fe5..6a2b6811af6 100644
--- a/indra/cmake/OpenGL.cmake
+++ b/indra/cmake/OpenGL.cmake
@@ -1,5 +1,9 @@
 # -*- cmake -*-
+include(Prebuilt)
 
 if (NOT STANDALONE)
+  use_prebuilt_binary(GL)
+  # possible glh_linear should have its own .cmake file instead
+  use_prebuilt_binary(glh_linear)
   set(GLEXT_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/include)
-endif (NOT STANDALONE)
\ No newline at end of file
+endif (NOT STANDALONE)
diff --git a/indra/cmake/OpenJPEG.cmake b/indra/cmake/OpenJPEG.cmake
index 32dcb505aae..fcc82c2f497 100644
--- a/indra/cmake/OpenJPEG.cmake
+++ b/indra/cmake/OpenJPEG.cmake
@@ -1,4 +1,5 @@
 # -*- cmake -*-
+include(Prebuilt)
 
 set(OPENJPEG_FIND_QUIETLY ON)
 set(OPENJPEG_FIND_REQUIRED ON)
@@ -6,6 +7,7 @@ set(OPENJPEG_FIND_REQUIRED ON)
 if (STANDALONE)
   include(FindOpenJPEG)
 else (STANDALONE)
+  use_prebuilt_binary(openjpeg)
   
   if(WINDOWS)
     # Windows has differently named release and debug openjpeg(d) libs.
diff --git a/indra/cmake/OpenSSL.cmake b/indra/cmake/OpenSSL.cmake
index 715af3ba54d..81584c09ea6 100644
--- a/indra/cmake/OpenSSL.cmake
+++ b/indra/cmake/OpenSSL.cmake
@@ -1,4 +1,5 @@
 # -*- cmake -*-
+include(Prebuilt)
 
 set(OpenSSL_FIND_QUIETLY ON)
 set(OpenSSL_FIND_REQUIRED ON)
@@ -6,6 +7,7 @@ set(OpenSSL_FIND_REQUIRED ON)
 if (STANDALONE)
   include(FindOpenSSL)
 else (STANDALONE)
+  use_prebuilt_binary(openSSL)
   if (WINDOWS)
     set(OPENSSL_LIBRARIES ssleay32 libeay32)
   else (WINDOWS)
diff --git a/indra/cmake/PNG.cmake b/indra/cmake/PNG.cmake
index b4f7e5e66b0..4d0b7b2d8d3 100644
--- a/indra/cmake/PNG.cmake
+++ b/indra/cmake/PNG.cmake
@@ -1,4 +1,5 @@
 # -*- cmake -*-
+include(Prebuilt)
 
 set(PNG_FIND_QUIETLY ON)
 set(PNG_FIND_REQUIRED ON)
@@ -6,6 +7,7 @@ set(PNG_FIND_REQUIRED ON)
 if (STANDALONE)
   include(FindPNG)
 else (STANDALONE)
+  use_prebuilt_binary(libpng)
   set(PNG_LIBRARIES png12)
   set(PNG_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include)
 endif (STANDALONE)
diff --git a/indra/cmake/Prebuilt.cmake b/indra/cmake/Prebuilt.cmake
index 2f4fbd05c76..33cdeeeed52 100644
--- a/indra/cmake/Prebuilt.cmake
+++ b/indra/cmake/Prebuilt.cmake
@@ -2,16 +2,19 @@
 
 include(Python)
 
-macro (use_prebuilt_library _lib)
+macro (use_prebuilt_binary _binary)
   if (NOT STANDALONE)
-    exec_program(${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}
-                 ARGS
-                 --install-dir=${LIBS_PREBUILT_DIR} ${_lib}/${ARCH}
-                 RETURN_VALUE _installed
-                 )
-    if (NOT _installed)
+    execute_process(COMMAND ${PYTHON_EXECUTABLE}
+                    install.py 
+                    --install-dir=${CMAKE_SOURCE_DIR}/..
+                    ${_binary}
+                    WORKING_DIRECTORY ${SCRIPTS_DIR}
+                    RESULT_VARIABLE _installed
+                    )
+    if (NOT _installed EQUAL 0)
       message(FATAL_ERROR
-              "Failed to download or unpack prebuilt ${_lib} for ${ARCH}")
-    endif (NOT _installed)
+              "Failed to download or unpack prebuilt '${_binary}'."
+              " Process returned ${_installed}.")
+    endif (NOT _installed EQUAL 0)
   endif (NOT STANDALONE)
-endmacro (use_prebuilt_library _lib)
+endmacro (use_prebuilt_binary _binary)
diff --git a/indra/cmake/UI.cmake b/indra/cmake/UI.cmake
index 7d2955ce360..f529f5b6440 100644
--- a/indra/cmake/UI.cmake
+++ b/indra/cmake/UI.cmake
@@ -1,4 +1,5 @@
 # -*- cmake -*-
+include(Prebuilt)
 
 if (STANDALONE)
   include(FindPkgConfig)
@@ -30,6 +31,7 @@ if (STANDALONE)
     add_definitions(${${pkg}_CFLAGS_OTHERS})
   endforeach(pkg)
 else (STANDALONE)
+  use_prebuilt_binary(gtk-atk-pango-glib)
   if (LINUX)
     set(UI_LIBRARIES
         atk-1.0
diff --git a/indra/cmake/ViewerMiscLibs.cmake b/indra/cmake/ViewerMiscLibs.cmake
new file mode 100644
index 00000000000..7329972596b
--- /dev/null
+++ b/indra/cmake/ViewerMiscLibs.cmake
@@ -0,0 +1,9 @@
+# -*- cmake -*-
+include(Prebuilt)
+
+if (NOT STANDALONE)
+  use_prebuilt_binary(libstdc++)
+  use_prebuilt_binary(libuuid)
+  use_prebuilt_binary(vivox)
+endif(NOT STANDALONE)
+
diff --git a/indra/cmake/XmlRpcEpi.cmake b/indra/cmake/XmlRpcEpi.cmake
index 3fd6f80eb91..107d1926bae 100644
--- a/indra/cmake/XmlRpcEpi.cmake
+++ b/indra/cmake/XmlRpcEpi.cmake
@@ -1,4 +1,5 @@
 # -*- cmake -*-
+include(Prebuilt)
 
 set(XMLRPCEPI_FIND_QUIETLY ON)
 set(XMLRPCEPI_FIND_REQUIRED ON)
@@ -6,6 +7,7 @@ set(XMLRPCEPI_FIND_REQUIRED ON)
 if (STANDALONE)
   include(FindXmlRpcEpi)
 else (STANDALONE)
+    use_prebuilt_binary(xmlrpc-epi)
     if (WINDOWS)
         set(XMLRPCEPI_LIBRARIES xmlrpcepi)
     else (WINDOWS)
diff --git a/indra/cmake/ZLIB.cmake b/indra/cmake/ZLIB.cmake
index 3740103a725..80d41919718 100644
--- a/indra/cmake/ZLIB.cmake
+++ b/indra/cmake/ZLIB.cmake
@@ -3,13 +3,18 @@
 set(ZLIB_FIND_QUIETLY ON)
 set(ZLIB_FIND_REQUIRED ON)
 
+include(Prebuilt)
+
 if (STANDALONE)
   include(FindZLIB)
 else (STANDALONE)
+  use_prebuilt_binary(zlib)
   if (WINDOWS)
     set(ZLIB_LIBRARIES zlib)
   else (WINDOWS)
     set(ZLIB_LIBRARIES z)
   endif (WINDOWS)
-  set(ZLIB_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include)
+  if (WINDOWS OR LINUX)
+    set(ZLIB_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/${LL_ARCH_DIR}/include/zlib)
+  endif (WINDOWS OR LINUX)
 endif (STANDALONE)
diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt
index 6d1e58d40c9..20876d630fb 100644
--- a/indra/newview/CMakeLists.txt
+++ b/indra/newview/CMakeLists.txt
@@ -33,6 +33,7 @@ include(TemplateCheck)
 include(UI)
 include(UnixInstall)
 include(LLKDU)
+include(ViewerMiscLibs)
 
 include_directories(
     ${ELFIO_INCLUDE_DIR}
diff --git a/indra/newview/res-sdl/arrow.BMP b/indra/newview/res-sdl/arrow.BMP
deleted file mode 100644
index a8f6da64b573f4136d742e98fbce372b389fa966..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 2102
zcmeH`XE+vY6vuyxtcp<4qG2>iQnXP@k=Y(r3Z+7%U0O6KLMas*geL7}_0XVFv}h`{
zl=ga`=gIYc;_>DE_@3*!$94bi|GCb6&biI3jpY!Vu{7ujcUrYWidrD1wUd-^6%ElM
zB}Jn~jcDAsG1Ah~$jHdhq)8KGWo40*lS5u!9t8yj6crU|+O#Rnnl+<&^X4ciDWR;a
zOp6vRP*G7qRaF%=H8oncY)PwDt!Ul4HR|f>XlQ8ArcE2#wrxwhcI{~2zC9f}bU;&6
z6D=(*I(F<xr%s*d+_^Jdx^zKXTN@o69dvbd(bLnTYuB!H>(-6#-MiDHM-O`T>`AX)
zz0lX!$H2gV-o1NcXlO{EK7BAUGNNzaz8D)D)30AY`uFdTiHQlOrlt%SFo1yr2Qp~T
zAO;T}%#a~N7&>$)!-fsR%*+gPb8{>#EEqm~I3q@kz|zu^kt0VkYSbvKtgIM4dNgCk
zjKSL48XFrM#*Q6}t*tF~c6Qj?+vDKifTN=$PEJmY8#j*e<Hs{$!UQHxoXDg}lbAet
zGE=5ZVd~VWOq({1>C>m<?Cgw-iwmx<uDH3m;qLCvj2ScV@bF;f%$dxZH49HqPrSUm
z@b>m*_UzfrnKK6;A0Ot<oy)v=^O!$>KEA%b`1$$a@9)oo1q%oW2p}*pkcA5u5)>4~
zqD6~Xym&E7mMmfE(xoh0wv6S=m$PEU3RbRM$*NVW2o4Tr_3G8ES+j<<YuB=F-8$B<
zUr$I#2%({&Y}l}YjT<+zY11Y)Z{AE;SQz2q;cVHmg{@n+5)lzWWMm}UwrwLSDvIdn
zXkubw*uH%`J9g|KHa3=>J9n~c*Dm7X;@G`=H+%N%Vej6(#K*^zkdQ!PVj}zY?PLG`
z{Tw)OfP)7Ql9ZH0a&j_<4jm#TC56<~RMOJYIDGgpM~)of=+UDbJ9doY$B%R3#0k>V
z)5*xl;N;1ZoH})i)2B~!=FAz+o;}OCbLTjJ{yY~hT;Srxi(I;NiOZKSlbM-GR#q0-
z+1cde<dB=2%atov5C{b1<>ir|pU>5+SGjiW8rQF1=f;g26ciLtSXju-n>V?2>lU|f
z-=?Ujh&y-gaQE(Aii?XWDJkLJy?flhf1d{r9`NwtLmoYPL}_U$Wo2bNe*BmxPoD7f
z=~JFPd&cwU&w26U1?A=CynOkRSFc`CQBgr<WhGTrRlI)vnm2FW@b>Ln-o1Or`}gmu
zuCC_8hYx)G_>r2L8a{pc#OKeS`SRrpU%!6k+qZ9g|NfmHKYsA@=TCn9`o-_xzxng$
zkLZ2>+kcP&Bxh2XYl$}+s6_)<P(K%kRX-MpqmsmhEg}Jn7!7b?o7LZEBCUvvtgbTD
za?zE#usF8A9_qyZ^19W+&n*_$<6P+SFRxEs%j?Hty#y@clCY3V#DD8o_tV9vlGOsi
EKkxL16aWAK

diff --git a/indra/newview/res-sdl/arrowcop.BMP b/indra/newview/res-sdl/arrowcop.BMP
deleted file mode 100644
index 1a26a0df34166f5bb159625bd2b424c7e5296a7a..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 3126
zcmeIuF%H5o3<c0I!^XnM$O(D?cJ9rs;Dh1IZbBm~KO2_PI%)Fk=6YKW<sA#27mV{~
z?8*rl0^g5&8@5o&{U4bd_+DG*ogu?sxQ||7PdJmA)P8d%Lx#OgZS_N{{^9sw6)c9H
zG83GoV@Y!*Lx#Ogt*#i(WG3{HFxUECw!D63S`K?jv1hLMB%Dc3;CMWFy1!lPL-QrI
zIAnkbmO!q(90RR{9Jl_hVc=7JUJDWw;*AX^zGs$r{fUc_5@5*I3BHctIJ@DG;~TyN
f|K+RjrZ2>6UyHANIqv-#IQ>bu`SWn|@thY=;PuCf

diff --git a/indra/newview/res-sdl/arrowcopmulti.BMP b/indra/newview/res-sdl/arrowcopmulti.BMP
deleted file mode 100644
index 48f153cef662b9cfab38df3ab11264837c3fdbc7..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 3126
zcmeH@F%H5o3`N5X8w(>NC+Gp#xi`0hFMjz-<0P$BM`FNIT-&jqe{+9Kr}VK2{)Tg%
z&mmn9!Ek>*^01K7^KYIP_&(dp*MnU2g8N!C^ekpPiRD)-D8fA8xffG~{8nW@AB5br
z7e&Ona{UEog(4?URneB;<n#9n<xHiV|Kio3lNno|ztSE)Ie~nL0gdk<kxKJ`ZSXGr
zmT$$YLIHh#ApogFlB2X56ytUmA*x$G8#-RI)qp^F+%l$4R;nYeqL>I2V+CRtr`4P@
z^}<nbEN$^om$kHQsRJU}Ho)x`NT;X6-w(&$7C!{u;zz-&{6M(n$HEJKI6UW%fQvr}
MPX0JJ`S9cH4R|eix&QzG

diff --git a/indra/newview/res-sdl/arrowdrag.BMP b/indra/newview/res-sdl/arrowdrag.BMP
deleted file mode 100644
index cd868eec2008229506cca29e6a706325996b5916..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 2102
zcmdUvcUVq+7{@;;NoiQ2L1kr>5m6#qX2_<L&{8r=HW@{O?6Oz(9wn<X;-P7TvS(SP
zLCWZL>UrKjT+j3T_x|zT*Y*3|=bX>EzxVh4o$ER_j^-*<g}D+K|G6>{F9pP)ii$Ud
zKUr8pQc$2qjT$H_Dx##MM9rEtQC3!_R;^m7sHjl8c5PHuRZ&w@qfVVVsH>}^p`n4M
zrY2fiTGXvumwNT;QNMnD8Z>A?!-fsf*4Cy`qee7t+?Xa!nxLbjgRZVFdU|^3>+93B
zX;YdtYleY=0fvT#7#SJSym@n4v}i%gmMv-3suitUx5n7mm^N+N(6((`+O=y(`}XZI
zF)_i^)RYb#I?%CWM>=)tMCZ<(F*7rxOP4Nm?b;P{b91_N>qhtP-LbH+z|zu^9zA+s
zWo1Rro;~T+s~6VR*7WY(n?8N|U}Iy0t*tF~c6Qj?+vDKiK;OQ7>DR9x{rmT4z<>b^
z95|3cg9hQ~=*Zx~gBdbp2t$Vs#mUKuVZ(+oeE4uij2OYlks}#3Y80bKk7mr6F^nBM
zmT}|8;q2^;i;D~6$B)O=)fG24HzrJ&fV;ap6DLk&(xgdDo;(>34-Y&&J@NAL!rR*$
zA0Hp4OqqhOuP=UneoUP@6@Pz!rcIm1^y$-?F=GZZXU-%bAb`NYKxWOFMNm)>vuDp{
z&YU^SojaF#^X4&s{(KfJSir)C3t6;i5sMcuCO9~lB}<mDbm>x-EnCL&<;w{P2_ZBz
zlocyhuyW-}!otD`4-Y3IB7(@sNLH;{#p>0oiHeG1&6+i=UAvZb>(;S;{dzWR*uch(
z8`-pJ6VcJp#Kgp~dGltrY}vxrty|f)Z5!LSZ)eAj9qin>lU=)Zv3vJ!_Uzfi-o1N?
zjg4jBzJ2W9zn=pK4sh_`K@J@{#Noq-IdbF(M~@!m*s)_AKYpAOCr)tk<VjAQI>qVJ
zr#W-x3}?@tB`z+G`1p9vojXTDLIUT{pXb7b3tYT-kxQ2@aryFP5)%_iN=hO*IhiY0
zu5k70RjysT#`WvhNl8iJ#*G`?ym=FmNW`sMx43=#HmRwpq@|^io}NxdMh2OgnPg>U
zap%q*?%uu2y?gh#fB!z&+1WgJ@PLO8AM)tYBXV+b$j!~=@#DuldGds(PoMJa*)yI$
zf6j{+FL?R#C9ht+;`Qs-ym|A6w{PF_?%g}`^76>f&*%O7_k8&9fsY?Q^6AqjK7am9
zK|uk9g@t_i@`a+JB8rQPDJdzTw6v73U%&G0+c(O}%J}~MJLTo&R8&;(<Hrwv{`|?W
zU%&YM`!|)9mBM`geN_Ku#JiMsf)hzdbM!ypNIXjQFHp%LNSnW^TK4&f1aWD?5-r)h
zs!BE%A-o`u|LH3S3#{6_#L8b;sFi14!iC}gDy_N|bD0wVa;eqTqscQM=`XFf@T{84
d5SMV-Snk=0_2pCx{pI57?<WY!2>I0_(LXq?b(sJF

diff --git a/indra/newview/res-sdl/circleandline.BMP b/indra/newview/res-sdl/circleandline.BMP
deleted file mode 100644
index 284ae8b7d51ab1321fbdeea11d93c43321c5728a..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 2102
zcmeH^cUaC{7{@<RWF(OtMQBMzij0&I5|yHo5uzfBWG8zRl~A^#C_+1BH-xNYw4}($
zD0|oYJWoBB-nV-Hf3NF3*L8m9ocr@V_xE@1+t5Tu8qv^^1XaOKscK441w^#!BOzFY
zQ@BV-P_JG+>esK2q@*NLQc^T%(13;w8zL<&O`}GQXxz9lO`0^JY15|2$jH#FSu<p1
zWoh2LIdXDxv}n<SmMvQ%FE3B4R;_5=x;1Uuw4rU=wzO;4j`r=_)1gBL6ciNb*s&v>
zI(0%(Q4u92B|3NROqVWQP*zr^YuB!H>(-6#-MgcrqJpZbDr#zKsH>}^p`k&K9zD?1
z)TC$6o@i-l(W_T4diU;4pFVx)+qW;;+S>H%*AE>X9dvbd>EFLU0|pF0Pfw450|zo_
z&>#j69?Xy-L(tdPXXwzO7#J8}XlTf=VZ#_cd^jUUj9}!*kr){nF>2H(MvorNm@#88
zHa2GL*s++Hm@sbKIL413kEy9CW@cuXo0~IX!UQZVEU>h+Wa7k$Oqw(aD=RCkt*x=K
zv0?J$$=KT3GG)pXrcRy8v}x0rK7BfNc6Q8|F@u>iXEJNnEbQ&=nLT?pbLPy!!NCDX
zM@O8ToR~XzF7xKi!`a!H`Sa(qV8H@hTwHK<b!Fkgg)CaM2sbx37B60mySqC}mMmfE
z(xoh0wv6S=m$PEU3RbRM$*NVW@bK_p_3G7ldU~>E%^KFOUCX+4>sY^jJsUP`VB^M(
zY}&Mm&6_u~Wy=<}ZrzHPmlxjN-fY{pjqTgF<KyFludgqDetzuOu>*g9e|GNN$*x_y
z*u8r<0RaI71_rWc&mQ*f-OIjx``EvKKL-vR;NZc796EG}!-o$O6cj{oa4<)X9O3BE
zqlAQn5E>fFv17+Le*8FLVPS-ahjZe@2~M6oNkl{hr%s*X^y$-_Idg`{$Vj51qKJ-;
zCMG6^*w|R&;^K&pk0&7^fwO1Nl9-rCQc@D<&Yk1@`SV=3aDj^#FLLS9B`#mS%#|xw
zNKQ^BB_)N_)Kt>a(ztr{D(UIzT)TFS>({Sy<Hij#GBUV%^Cq`$-QxD`+uXTxhr4(0
zl9`#wy?gh_%F5#Y{rfz4@PLO8AM)tYBeJuz$;rtfH#e8Oygc&r^LhOEF$Dz$JbChj
z!oos|ii&vp^eNAtJ)^j|nCH)*^Wwz|UcP+Et5>fmDJkLg>({(_^M<!?-}3I=J4#DS
zDJv`E{rmTP`0#;`A3yTx(<eTE{>+yzU-<g<E8o6-<NNpT{P^*MpFe-{>(?)S|Nc#R
zc{vpo6~g!ZKmPj_5VW$Q&Q}QgEEsi3L{KOYNNUL;#KQEIIcf+*SQM>YAc$6G72%o=
zVlKqueKiwtNQBeHr$2(KNF}b5SK+$27}vr@A#r7@%>K9wcEY>Wo>-%TBL1fWHF#wL
cae-@Mu|qYRzxfM);oti!lne9!^P1@V7thjLp8x;=

diff --git a/indra/newview/res-sdl/cross.BMP b/indra/newview/res-sdl/cross.BMP
deleted file mode 100644
index 0b4672d4d61f54cbc0a4cb603e9081525bd3e0d5..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 2102
zcmeH|cQ6oa9LGOOMnoBr22CS`N=rngDJi3b>~>0ngd|Nug9Z)Jpv($cm8>$Fv`b5S
z(4-{N-TOy(ulJAlu6ys^@7?#F-~E2~{C@ZSKF>Xmk%_JdKcOoKDvgoSFADIh(3qDN
zYbFAX#U?f_0s^#Z)r!`wTO%kaNSiio5E2qXSXdYl5fMa1MQPi%En;F~h>MHUu3bAM
zBqWfOl%#$8_H^jb0Vyddq@|^ik&!`GR+f$(J0d41hrGNzojP?wK|z7eojcQ|OBcF!
z?Mk<9-B46iL`g}B?%li7qel;V_UuWoUcKnuyElFM^g&r!85I>3R8>_`Q&XdF-@d4;
ztD~Wzfu^P={rdGoOG^uFZEbXPbm-r|KLZ8~VBo-k=<4b+XwV=A4<5{rAww8CbST4y
z4MR^)kKx0Iqpz=zfq?-dMvTDF&=4adBSwxK$*57I7(IG4#>U2s88e2lW5+UX+&IRM
zAJ2pd6PP%0A|@s#Oqw(aQ&UqWPo9jKnHf{2OkwKOshFFaV_{)|rKKfSR#r@#HjU}i
zr(<nx&5Ri{u(7eh*47p~J3D61oQb`?Jq`{II66Aw<m802vokI(F1Wh7GHcc>X3w6@
zoH=utJ9jSg=FMaN{P`?cuz-aN7vkpT#-c@wSiE>K?(Xg^S+azsOP8{2*)o<dUyg@|
z2cDjutXQ!EFE1}vu3U+?w>LgMKKT0jvTD^T{QUe_y?QnN{{F04vxb0x0M@Qu%er;z
zSigQf8#ZiU<Hn6_+O&zlz(9h6g4n!yGr_^ZgoK0;8XC%$EnC>Sbt~JpZDafP?SzGe
z5gs1SjvYJLxpODGcI{&K?%hO0L=YJn$(}uX*t>Tx`}XZ)|Ni|%MMZJozyYG8qlt-$
z;o!l896EG}!-o%Z<j4_XV`GVni{t3gqZ~VSjQIF?5)u+fOiUyxDT(CdWKvR6IDY&%
zCr+H;<jIqyrlyjXmPUGdI;T#ZA|oS%%*;%(va-m|&L$@(htsD|bLPw$&YnF>Zf-8;
z&YdGKFOU5Ed<qH*C@d_bsHlkZ=g)KD!Uc+pizz87p|rG=va&KRUcAVqOP9EO`7&3o
zT;b}~t6aNwjq>txDk>_te*HQ(ZrtGJ&70i1b&K1#Z*%9)9q!(}%e{N|xPSjXm6eq|
zc<_LS4<GXA(IXx|e$106PpGP@;_1_;JbU(x=g*(>;>8PIzI@56SFd>e`ZaIfyy5NJ
zx4e7zj_T@aYHDhD|NcE6K78Qg$B%sa^oh@(KlA0w7iw#3sjI8w>({S*`}U3c`g*>9
z|4u_gLzBM$@$Wg%_?rH0Gg@%`&((ka1T@ZX#&0T`Zp&ZzU1dxAn;ZT)egANN3+MNn
IE&uhz4{@k^761SM

diff --git a/indra/newview/res-sdl/hand.BMP b/indra/newview/res-sdl/hand.BMP
deleted file mode 100644
index 2a092fbb7feb8f112168a0b95d50401a4db897b1..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 2102
zcmeH@_gl_?6vkgoQ4}c+l$|6RvNg<**-#NtsZ{nzXvwau>|K;(M9YdIqasZtd!%7Y
z1Lb+DAN<hcANYRH^*Pt)T<1RbectCbvoMmOK8z$mOHgSxrWlQYpsy&~kcbIDVG4g@
zVu*{2BOxJyq@*NLQc_4uOVg}bGh}3BXx_XzEn2idR#p}{IXPOkY)PwDt&o?OM?pb>
z)~#F9rcE0Z6%}dQwk=9ZN+>HU)2>}RR8&+@RaHezO$~K*b=tRYPlpa2=-9C%8X6jC
zYHHG{Qztri?o5|1UFh1iE8V(vqkH%6^ytw8EiEm2_Uwtawl=+b^+HEShu*z=qpPb+
zpFVx)+qW-zdV1*V>tkSGfT5uw{rdI8$jFHP{rfXuzyJmg9LS(SgBUz`Fhhn6Vd&7I
z3>!8KV`F1XOiVB}HO0)#jN!wFGh)ODMvffGs8ORBJ$f`_#*D$-+?=sv$1-l*IL413
zkA;N=6DCYx;>3wenly>YlP5D}$`qzfor<NUC015eSX*0TV`Ia#Y16Q^wZ+cP4tslh
zrca;Fj2Sa<aByJe%$dxZH48^aM`q8S&73)NaB_0O+1VKv7Z>Kvor|lhD{gLXxVyVE
zZ{9pSJUsC9^u)`{i}~~CvtYpj7A{=KqD6~Xym&E7mMmfE(xoh0wv6S=m$PEU3cS6&
zS-Em0K0ZFITD6MRt5>sT%^G}teev`2!{6VZfPer30|QyRb}d0cL9AQ1j`i!;vth#q
zHg4R=rcImJym>QQwrn9dIGB)-5JE#k*}8Qr+qP|E`}XbZ*s+71J9iQm7RIh!yV$*Z
zH+%N%Vej6(?Ay1G{rmTG;J^V69z4jQLx(tg_%KI~9O3BEqZ~VSjPUSqA|fI<e*8Em
zPMjbzGLopMC{CU{Npy5Hr%s(BCMJf{r%!X{%o)y}J<GXs=ZKAs<^1{cT)1$7xVSjt
z<Ksz4NFXsWk))&~E?&IIrAwE%eEBk0u3X{j)vF{YCv)xEHLhR3PD)A&si~>lxN(D<
zH*b=bmd34Hx43=#Hh1pa;qKkLq^GBok&!`WW+wOU-Q)iK`($Nh@!-J&va_?v$;lx%
zH<!G;Jo5ANDJUr5;lqbKdi03Lj~`Q5SjdwnPbexX;_1_;JbU(x=g*(>;>8PIzI@56
zSFd>e`ZaIfyy5NJx4e7zj^g5C-oJlONl6K%rKOaWl~G<^&W8^l`1tW7pFVx!^XJce
z`SOLYU%&G0+c&;{|4v0k1wVfLpt7=(s;VlgtE;K0sp03(pZxmui{HP0Q(Ie0U0t2<
zzW?Jd2kQQ+n<(q}=YRnI*MI;NST0gQ2-km2EEco`ppY+0p&k`IP`|rgU&IRpd?8!Z
s1&w@B+Xc^S;EPiKH(y9@;5Thg!(Ae8uV3Dv(6n~~^BO_~{GV<A0W-{yJOBUy

diff --git a/indra/newview/res-sdl/ibeam.BMP b/indra/newview/res-sdl/ibeam.BMP
deleted file mode 100644
index 820904a228d2d162e914b8dd99c8c2ed32b663d8..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 2102
zcmd^<cT^8*7{@<RL_{Sr+NqEgWm9QNp=?6ZKtm;~tc+5jsiHE{pzKk|DAJ&5YZ^sF
znPql=b^UpD@88#R&hx(Sc|Py=J?Hs8=e&Am+M=|CwlJs*P71$Lh+jZZmlFFs5fZ@W
zY~F-~Xw#+*ZQHg*SXdYl5fR$8Ye)O`?GY6fr9+1fbnMs>F)=YZb?QXt&Yck#7pF^?
zE_ChM6$uFmBqb%0l9HlZw{A#FOVho3cY5^bfsBj{J$v?~SFc|5?%kU{efl6PD~p_*
z9P;w=C@3hPsHljNk`l_w%BZNQ(6?`2R8>_`Q&U4-U7ddY`q96Ce+CQ~fQE(!0|yRd
z(4avK9z2*KLxwPP=uk8@H5oQ+7{iATM@vf!ZEbBvj2OYlks}#3Y80bKk7mr6F^nBM
zmT}|8F@F4bCQO)sj*bqxy1MA;=`nHQMD+FbF)%Q|(9jSgBO{EBjWIDXVbY{Yn3|e0
zdGch;%*-%1H)qO}DNLO@m1)zaVPRo`rKKg)r%z|bj2X<FIg?qlW-)vAZ05|F!`!)Z
znKy49^XJdU%F2ob3l^|&;X)QIT7<Q=HH#N7#>U2mB}<lIYio<0ogMb}_Bc2=uypBC
zmMvSx^5x5MbaceY$q8p?XIxxdSg~RSuCA`Qxw+x)?#{}UEAjB~VAZNstX{pEHEY(e
zcI{f$ty_nurzc)sUaVigo(&r|uyNx?Hf`F(=FOY&_V#AWmMv`Ex|MC)wy}Ntc6@w%
z@b&d&$BrHN`T61R?@vHL06TZ?WY?};?B2bbz`#I)f`SMR4kjcdgwW7X!otGXvu6+C
z;o(F?L=YJn$=<zt*|%>WQBhGuM@JJA6T|-f`#Esn00$2q<j|o*#Ky*Q`0!!k;^K&p
zk0&7^fyBf_jvP6{(W6I6N=hO*IhkX}j&c0>aZa2#!O4>+Id$q3r%#{e%$YNsJ$sgO
z=gx8d{CQGRQb<ir<-&yvT)cRZOP4N@mX^ll%a^%w<qB7?Ugg@gYow>AlaZ0Z_3PKU
zapMM=nVH<Yd6TTHEV8q+$;rtfH#e7Cw{CI!_HFX=^2pE6r=XyK!oos|ii#*MF6Pdi
zJKVi{mwWf_asU2(9z1x!!-o%f^ym?fA3vs~q=eGaQp(E8C@(LkqN0Mz%1WL*dBW4D
zPkHw28PA_Tr>d%o>gsA<ym-OOmoKTQso~YDSG<1xn%df0-n@Ck+qZA2tE;2FzMgmQ
z-tqqZdp>;lz{igt`Sj@%pFe-5p`n4s#zww;`NG$)U-|a!8{fZw=f{s9{QUWorlzLm
z{{EC`{_3(@mVfTJ#gA4z5lEY<;E~^j;6f`@pc3%kX<O?5bKbf?|K{(1m`|(oZPocd
G75)WR+IcGg

diff --git a/indra/newview/res-sdl/ll_icon.BMP b/indra/newview/res-sdl/ll_icon.BMP
deleted file mode 100644
index 4a44aafbfaeefcc50b9a461693f9de9bc29b8930..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 5174
zcmcJTcR*9;8pdA%fg~isESjK6WXXtvD2iYasHixqSG<lo+KK~E87dY_6~V1wRfbX!
z!ze<-C<1~(hQzRfL54B|f&-x<TBx9a-0uY2%WaSL-aqaW&dJ9~e$V&5-v-AOa~Po1
z95n!ARI-16O#n^hbI=B$lg2KXfF5BNrU{y$IT3(3Q4`cO)nTFr1+>W;Kp>NVq(y^C
zWGZOWCxP}PCa@S(VA2@CW_<!o76(|LuwatT6kxN_rOSaS99@{o<--&{7p8FafWy}Z
zLp=kSYM=*G^^AaPXaqb1Q!t!n1SUqtU~Far1}5fUU?za+rUEcAodM?4O~7o10E}nM
z1`~^!Fw1-<n9sC;>9eiC(rOmWwVDm{ZLDCfjWx`gHy>u$d<wR9^TFQE7Od^<VV>is
zu)xtC<~TZm(_$xZSh^4#oSorQ=Vf5OYz^42SO-q4R)dqvN?5-3b6E1v_3)2P>tW@_
zEwFU+W>~j<E4b`%hfTY7z$PzG*yOnnTz$M?r{4kC_1#|B;ddB(f)0XbP#|~)o`hY;
zPr$)50kH4X3HavBdDwsMdk73Y3Ey2f4<|04g`<}*!SU!YI43*@N3UFk3-O_FHa-$g
z#79GLtPp~e;^A^iB!r3LAv`4&e#l6M@arOo%Mn6O#Xg9>kq8+Tevo;0FQil)f+F;u
zCijE#YHtwcr9e&HZm76-5Tv!fkXjQ2@p)NrtLivpO5&iU(F00qjzHA|^qC|Hq*bRt
z*0dkW>-{0Q_&O*Wd?B|n5b7HbK$0{aI$J%UUEu}N#vr)fcp8ctkAtlKIHcA^z|DrU
zP^S0}@+z-EUDHvBy>lCq8ZSZRqi-Nv_A?aKheK(@1;}fNfOJ_F<j7OtX~%v@D;L9y
z$6g?Q7y@Na0-*fSNf5V%Lwbb-B#(n3t2P^Q9)&|zwHPEFVbI=w7H+ghK}AC%q__SE
zmCdnmuOl2v8bu)LNPwcwP>?(nLSda4G9L>;(S8YPJI}+t_A5}-kPRvAA`oNWdlC)h
zt=FKmF%zn~zXwUH2xJ|xP~UL{%DY2B{wx9{E!QFUehE}`MMHk$ZK!Qefuf!mC~3_D
zaZel+J`{tvxddvvg;3O52=`xxLDl0lDC>;^Nmnw+UtR`zj}R(Rxwz*Vl)XrR``yX#
z;AIRH{(22^dw+)8&+_1I=S`^W7ee{-OepRD5ei?W!~NGWC=M|ccS@k-*A%GhPXyVk
z45;WV1zC47$Oe<4`pu6Z9ZZFS*EgW>O$OAUvUDH|O1kB6@7H{g^_D~4n|!!6aue<i
zXM=p;HryP!1J%O?P&t|h^3gj`_D&8DM$4gUv=XY{)j|DeHB^r@L&Lj9<@Eo5+|-C1
z4vQ}s6N}BEqc!QjmKxvO+=$JfkV#}svL=Z_XL3y}E&2bY1yNwaBx};m7A#-CQK|K-
z9rQ>9hQ2lD?;{`zEO}(A)#{z1{EQ!u_#HoX><6TbjF9!Si8PZrtiN$!@fjq}@{r7L
zeS-Xgj$cN?a7;%scG{3w0&C*O99V1;eYxngmzR%EP*9NHaisSimwz~RB!4|in``}%
zR^YHmR{p2=cp;4$`1$!ALqb^`Lsm!5ePc%D&-q{gbQa0!+8(4a1D|u}GV<@-xua|d
z<m7k6&nLu~X3GD7ff}2<I2pq+gT48pi{4+XUgqfN==Av)kvB7rAcG)3pKm^4V%rm*
zIHY;GWB8uaqMgg^Ia)LHnG6br!C)HNZz;(*;)8T<HC5jTj|Mdc$NxQ^yxE?i0%Sg&
ztVyJ?NCYjquA#kmKEl1clFgWwxI9to^DsBe;9!W8kqX)kd0Ir9jUm@WAv+hdC>#Ux
z&G`uT+Pju&iJO2n_oka0GT7&DWr!+J<7(+`&BQta1syV*!kf-_KZp1|Av%V5qex9_
zY1l5zAY`60KW(zH|3R;B$K)lNP0=^8D)B<$CC}w?aS~7?`FePGxa|sCtgjqmEV}!_
z!|(BLzukLrGRu;<;q;z8Zr?3on&R*plO>4vaP#LXt5+jCCGR_Y`0%0k9tYP^r|Uc9
z?s0QF;6gXY;nn9B?e^I1alnPC%ua*kd-xEhvHPJtS-L#aDJ5=h9&TST@H#-%IdnHt
zuC2bMk$?;8#w90$gM$wRD^1WX(}B&Wr7L+lAE$oRRT%G?HI>Prb4=%GIpiXIoDQsD
zGNzX7^1veG;qWSJ4(#{z^t?zT>*!JGe8!5*=qp#EFI>0~92}M#794zF6-#ST=q?Y>
zFlQb*NBu>FHKF_W@Ar%#eU@J2I)%b;z7-vPMfp16JAYePbfz<z8gMEw(6eantiQnM
z0pY9glP6DlModW$6ov*&Bg||P7KjT9#Nz1CPgNJ)I+bOh=@J?k7`Qt?7q9z(u<dNz
z$+*CabDL6AQ%}V%niL?E7bq3FZlZ<clEWuo<O!pqPKK@=8y|m;0psK10t2Q>qU3UU
zR9bAg5WQn6NON7ZaM_l!G-MogHqscc^#Ig;V=&&G;PNz8Dpe@tsS1Un8T~Xj%M;RC
zs&dd%X<Ur#Gkx6I0|eiwQmHi1onpG_Ne)64on6@d-$J-Frfi7;nwmILA^66XN=u{M
zDbpwZqr63`=<4k1RO$~0skAEIfrs08Xu4`5zO+7SJ4FB#+kck#)+suFcj&|{q&Y3I
zOXviqB^{@B#8V^VTI=g$Tp0ol9)-Yi@-Bb)xDI8nXqL<C>K;Fo9bKm9v~?+si#K@?
zuOlg~?dV9@z%XZ$COg<r$#a%};p%-fLMD?$xVt#bGZ(0?tw^}##K2#D)O97LtsOn#
ztC*Gq+pLQF{#^Dfvg$-tO_sovz*+ja9>tV?NmzW!pQex70%-czx3+erIkWksfP!bu
z6;5nE(SGNpje1OqRZ(H#B@UP3pOBD{Igg3Efv8WD)%Wyt<=Gl)&unUb)b`U-Hp4<B
z7GK{;qpUBySCDDXq--rrNI0>PD!^O*)aN&K_4G*N`6lWv#n0N>ep<{XFRy5OBo1L|
zZ7r;>KCza@SYDBka7x4(TcG~b3+m1-zw~saxo{1M0nN`JwPo7y2wTN%4=P1m^47wF
z;w%0P_Po0&fiNcqUJt0Qsr^Nox6OdZFl*|3{=E6F8IR~+S^1zcm#?+?dO@LB#L?y7
z6rupOQq6Hju*!xfPj0U<*HR-m*K|IA)+XYzIij`)h&LjyzFu8ekZHrF`zOT2oE35O
z@z!rW2RmZ|fCgc^qOb3HfxiyZ>~34-gL{Zy{!>A5!B0z>jJ3CNVq$LDF!2(2-yTHW
z^sc_XzT(X+hW-7v%14N&EUT!lu0FM%!M1Bkypb5{LdEUDF#|2TmI1^UE<>9+YW_CF
zGZx>MSJw%5YMZbmi8qqYcvA#;3!su$(^yl7@ihzd32PsqerQJgg1d^ky3~s_Q<86D
zQqq~CsUMnzD1DM|$LrSveMQCs^)1!UQAdajm=;Znjt*%Smrq%9<L9KLa5M-0)cb$@
zN}M7a7<~P@<EV~c;`U|~NN15APp<?G?bad-9?zjHB|H1f77AVuDm^H+4+jSa-`2S@
zW)LGg`}zjDvUH88@rZ9ob6^VeBp4q-Lx0@jN=<#$<DsFqZ);XEXOJTMUJnc?{AmKx
z)%u?9?(h{1YwFeW+1W{XwoCyoj`e>3TcjF0Lza$Y0EMFPrdq3StL^UYj@h7Pt+wq(
zHVR;!_6K^9s3RF1dOPyAXxc0l<0l9o?C_>os(yv>iQB1`s!JYXd;kr13j)xZ`Sk6`
z$jIvm9f69)Q;e_O&M;M7RrRX7yYwi{T-`#38sI$o7&m@2_<IpP(&9=pQlH;DG&DGr
zvw<OiMJ=zoUp2^d_34_vD1kHXT)ZU!?I8qLj32F8!{n$eLj2HB&N>E1#qQ}Vq_Ual
z;Nw`{*jWA<4`&9Vh%{*NSokAN4m_gzir!(wSGh1bVD{u!#J4O&2cHR!UvILd;YN?r
zw|F`-ie6>YW&m;B81KyFs_4luK5->V<)b1j=^sYb_s8lAK;5+;tG~s8%>{Zq#{c{!
z<%8pP%$EFR|M2keXs<hykM<)}M!X%51=Pr25Z`c=X8qCXLG|nYckkYfwyfmQ)wJWs
z>bEr{!o(fj7$3{}JO0c5(b3V7_Sw@xg;hR;>VMN{F`Wpi>jr<rcpcoWV_Zy&UW|+m
z_kPJ`!URtH5DNcIqp?5(R2IJc?bUCsJ9PQuzKd5ReqH|J#g5rb^e-v1m#8U*-n8ps
zZ8kZwzoE74Lq~^kP7}-)F3`bF2osFk5kEXs##Q#2?f18@I<xUd%{Y8qaWa<w@MG`a
zW1ax`2aj>ce-t%$^bQXXK6EntUn(8%U~~1w3)u!!t?|$Pm$I6%!)JD!zpMRU2q6g2

diff --git a/indra/newview/res-sdl/llarrow.BMP b/indra/newview/res-sdl/llarrow.BMP
deleted file mode 100644
index a8f6da64b573f4136d742e98fbce372b389fa966..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 2102
zcmeH`XE+vY6vuyxtcp<4qG2>iQnXP@k=Y(r3Z+7%U0O6KLMas*geL7}_0XVFv}h`{
zl=ga`=gIYc;_>DE_@3*!$94bi|GCb6&biI3jpY!Vu{7ujcUrYWidrD1wUd-^6%ElM
zB}Jn~jcDAsG1Ah~$jHdhq)8KGWo40*lS5u!9t8yj6crU|+O#Rnnl+<&^X4ciDWR;a
zOp6vRP*G7qRaF%=H8oncY)PwDt!Ul4HR|f>XlQ8ArcE2#wrxwhcI{~2zC9f}bU;&6
z6D=(*I(F<xr%s*d+_^Jdx^zKXTN@o69dvbd(bLnTYuB!H>(-6#-MiDHM-O`T>`AX)
zz0lX!$H2gV-o1NcXlO{EK7BAUGNNzaz8D)D)30AY`uFdTiHQlOrlt%SFo1yr2Qp~T
zAO;T}%#a~N7&>$)!-fsR%*+gPb8{>#EEqm~I3q@kz|zu^kt0VkYSbvKtgIM4dNgCk
zjKSL48XFrM#*Q6}t*tF~c6Qj?+vDKifTN=$PEJmY8#j*e<Hs{$!UQHxoXDg}lbAet
zGE=5ZVd~VWOq({1>C>m<?Cgw-iwmx<uDH3m;qLCvj2ScV@bF;f%$dxZH49HqPrSUm
z@b>m*_UzfrnKK6;A0Ot<oy)v=^O!$>KEA%b`1$$a@9)oo1q%oW2p}*pkcA5u5)>4~
zqD6~Xym&E7mMmfE(xoh0wv6S=m$PEU3RbRM$*NVW2o4Tr_3G8ES+j<<YuB=F-8$B<
zUr$I#2%({&Y}l}YjT<+zY11Y)Z{AE;SQz2q;cVHmg{@n+5)lzWWMm}UwrwLSDvIdn
zXkubw*uH%`J9g|KHa3=>J9n~c*Dm7X;@G`=H+%N%Vej6(#K*^zkdQ!PVj}zY?PLG`
z{Tw)OfP)7Ql9ZH0a&j_<4jm#TC56<~RMOJYIDGgpM~)of=+UDbJ9doY$B%R3#0k>V
z)5*xl;N;1ZoH})i)2B~!=FAz+o;}OCbLTjJ{yY~hT;Srxi(I;NiOZKSlbM-GR#q0-
z+1cde<dB=2%atov5C{b1<>ir|pU>5+SGjiW8rQF1=f;g26ciLtSXju-n>V?2>lU|f
z-=?Ujh&y-gaQE(Aii?XWDJkLJy?flhf1d{r9`NwtLmoYPL}_U$Wo2bNe*BmxPoD7f
z=~JFPd&cwU&w26U1?A=CynOkRSFc`CQBgr<WhGTrRlI)vnm2FW@b>Ln-o1Or`}gmu
zuCC_8hYx)G_>r2L8a{pc#OKeS`SRrpU%!6k+qZ9g|NfmHKYsA@=TCn9`o-_xzxng$
zkLZ2>+kcP&Bxh2XYl$}+s6_)<P(K%kRX-MpqmsmhEg}Jn7!7b?o7LZEBCUvvtgbTD
za?zE#usF8A9_qyZ^19W+&n*_$<6P+SFRxEs%j?Hty#y@clCY3V#DD8o_tV9vlGOsi
EKkxL16aWAK

diff --git a/indra/newview/res-sdl/llarrowdrag.BMP b/indra/newview/res-sdl/llarrowdrag.BMP
deleted file mode 100644
index cd868eec2008229506cca29e6a706325996b5916..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 2102
zcmdUvcUVq+7{@;;NoiQ2L1kr>5m6#qX2_<L&{8r=HW@{O?6Oz(9wn<X;-P7TvS(SP
zLCWZL>UrKjT+j3T_x|zT*Y*3|=bX>EzxVh4o$ER_j^-*<g}D+K|G6>{F9pP)ii$Ud
zKUr8pQc$2qjT$H_Dx##MM9rEtQC3!_R;^m7sHjl8c5PHuRZ&w@qfVVVsH>}^p`n4M
zrY2fiTGXvumwNT;QNMnD8Z>A?!-fsf*4Cy`qee7t+?Xa!nxLbjgRZVFdU|^3>+93B
zX;YdtYleY=0fvT#7#SJSym@n4v}i%gmMv-3suitUx5n7mm^N+N(6((`+O=y(`}XZI
zF)_i^)RYb#I?%CWM>=)tMCZ<(F*7rxOP4Nm?b;P{b91_N>qhtP-LbH+z|zu^9zA+s
zWo1Rro;~T+s~6VR*7WY(n?8N|U}Iy0t*tF~c6Qj?+vDKiK;OQ7>DR9x{rmT4z<>b^
z95|3cg9hQ~=*Zx~gBdbp2t$Vs#mUKuVZ(+oeE4uij2OYlks}#3Y80bKk7mr6F^nBM
zmT}|8;q2^;i;D~6$B)O=)fG24HzrJ&fV;ap6DLk&(xgdDo;(>34-Y&&J@NAL!rR*$
zA0Hp4OqqhOuP=UneoUP@6@Pz!rcIm1^y$-?F=GZZXU-%bAb`NYKxWOFMNm)>vuDp{
z&YU^SojaF#^X4&s{(KfJSir)C3t6;i5sMcuCO9~lB}<mDbm>x-EnCL&<;w{P2_ZBz
zlocyhuyW-}!otD`4-Y3IB7(@sNLH;{#p>0oiHeG1&6+i=UAvZb>(;S;{dzWR*uch(
z8`-pJ6VcJp#Kgp~dGltrY}vxrty|f)Z5!LSZ)eAj9qin>lU=)Zv3vJ!_Uzfi-o1N?
zjg4jBzJ2W9zn=pK4sh_`K@J@{#Noq-IdbF(M~@!m*s)_AKYpAOCr)tk<VjAQI>qVJ
zr#W-x3}?@tB`z+G`1p9vojXTDLIUT{pXb7b3tYT-kxQ2@aryFP5)%_iN=hO*IhiY0
zu5k70RjysT#`WvhNl8iJ#*G`?ym=FmNW`sMx43=#HmRwpq@|^io}NxdMh2OgnPg>U
zap%q*?%uu2y?gh#fB!z&+1WgJ@PLO8AM)tYBXV+b$j!~=@#DuldGds(PoMJa*)yI$
zf6j{+FL?R#C9ht+;`Qs-ym|A6w{PF_?%g}`^76>f&*%O7_k8&9fsY?Q^6AqjK7am9
zK|uk9g@t_i@`a+JB8rQPDJdzTw6v73U%&G0+c(O}%J}~MJLTo&R8&;(<Hrwv{`|?W
zU%&YM`!|)9mBM`geN_Ku#JiMsf)hzdbM!ypNIXjQFHp%LNSnW^TK4&f1aWD?5-r)h
zs!BE%A-o`u|LH3S3#{6_#L8b;sFi14!iC}gDy_N|bD0wVa;eqTqscQM=`XFf@T{84
d5SMV-Snk=0_2pCx{pI57?<WY!2>I0_(LXq?b(sJF

diff --git a/indra/newview/res-sdl/llarrowdragmulti.BMP b/indra/newview/res-sdl/llarrowdragmulti.BMP
deleted file mode 100644
index fb528bc92d20e8ad39c1f6a74709d4986c4ba6cb..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 3126
zcmeH_F%kkH3`Mcl&c@Qx6YK%(y|=g0KYsng5?~2}m6;)aLh?vhueaq8Ubetru+Hzb
z3nwTT&X0R8212<1&GQ1EXWRJoAXmBIKDG=ws~XRyk<alw;CF5#A0zfn;o^5p;o^5p
z@iRVW&;FIzgS_i26U$nTuShI-)b~E*sPh;r-Ob0afW&a=L@*8B^*)xbo~_^%b$-$S
zw(65WZL=aNw|5buxaBjU;#Hd!1j6H#ntd{oEpY|KgpkG+&@N6XIcDmGN5OGviI2Ff
z)LTm&5VdUuPFo<AoC^PYIPNX+hrmnxQSdB(Al&lD!V~^*c+8&x7k?6*{CRNl;pf>C
D7dn)m

diff --git a/indra/newview/res-sdl/llarrowlocked.BMP b/indra/newview/res-sdl/llarrowlocked.BMP
deleted file mode 100644
index 0aaa441ab1f77ecaba93139c4434a97561777806..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 2102
zcmdUvcT`V(9LHa&6hfpVAv+<2rdcw}2-!t8sWd2LmZYWZjIy^fQ%F{RWp6TCM$-;0
zJ@-}~htn^AKIi$I^Sz&Y@9X=%pY=W0)KXuOQqz|MZQ)L<e92G_N@@8;M)2Yios0}s
zs#HN%Ru(xqIppQ#samxv3JMA+Dk@T~S~aRyuTG5`HBeGgqGrvS)T&jB+O=z=tgK9(
zI(4X9w=OCwD%7i24^>rF)YR0dU%x);>gqIT&;Sh$4H`CVh^D3{jT$wgapT4`Y0?BO
zEiIZhZA!Cd&1l}dIW1bWpk>RJv})Cg)~#Ekt*uR)Hf_++(V=bIwzO;4j`r=_qpPb+
zhYlU+*s&v>I(0%%Pmj)>JJY307rJ)sioU)+1_lNg8X96`WQ4J?F(xJ^bnDiQ?%li7
zqel;V_UuWoUcKnuyEmq$rkI(T(Wg%z%+1Z|+qW<M`t_rK|NaaZFo1yr2Qp~TAS^5_
zu(Y&f@ZiA=88U>SLx(bK*f6ZDtQbCgI3q@kVC2Y=SX)~&YSbu3j~>mKF=H4zb}Zw@
zjbr@y@l2R70UH||Y;A3sIB_DACQZW5&W_2GCo^Tr6sAs{%Cu?Im_B_vGiJ<S=FFMQ
znl+2rvu9&(Z_k`Lb8v8Qz|qkWCnqQ7&Yg?1vokI(F1Wh7;^yYYym|AOKYu>%?(TSa
zc(7o>0v0Y@$f8Ay@bvU#@#4iSS+azsOP8{2*)o<dU(SjZEAaC2!rR-Ml`B``<Kx4s
zRjcsz^=0+y)%f}O;qUKHKtKS2fq?`C1+iw$8iIp^2?+^d?b@}hTept&>({ek!v;2P
z+{mU)o7lX0GohiOY}vAfty{OUZQC}sZ{JQ>SQz2q;q2J4gPl8fvTN5acJJQJo;`cm
zyLT`9_U&W;{{0*{aDamc4|3?xAr2ot%#kBUIC}Ib5fKqYMn-b%*fEYDKhB90CpdZX
zB&SZD;`Hg$L`6k$=FAzQqoaw5iQ(+ovz$A3j`Qcw6B`@Lg$oymi;Lsp#fx0JbcxHC
zFLUL}6|P>rN_>1g*REYdB9V}gkU(N$BG<29=f;g2+`M^{Teog;`}S?_+_}TuyLY*F
z?;iK>-{--D2RwZEkVlUm@%Zs$o;-QN)2B~KN=o9{vu8Yi{+t&tUhwkeOOlh5Nl8f|
zH8qvAv^3Jw(|Psk6|Y~v=FOWoynXwYjEoF2Gc(D`$|5^Eo1B~+a&vQe_wF6<-@oU>
zhYx)G_>oVaKJoeUXTE&-LS9}TU%!6k+qZ9g|Nfo){Co-u3Mecrq^PKf;^Ja{{P;mh
zNr_nB|HXuK%S=kbC1rmzO8yHDlFH%>z2+}m+#u9fVftmG`a2gp@O$~C1O7Q_F@xW+
zM95n>;bL5|Yl8oyc|uaZ@E=Tk6r{p8%jFewfl5DTqE_UhRUj{oUB0Cv{EJtpE-S4x
nK!xgmxfJzJE)|!>mySz$C0OK@VS!hQ%jPGgHt}`kYKi0@sG()n

diff --git a/indra/newview/res-sdl/llgrablocked.BMP b/indra/newview/res-sdl/llgrablocked.BMP
deleted file mode 100644
index 847439670f94de1aedda70d2cbcd3ad27d31c8dc..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 2102
zcmd^<cQn>*7{@<~lBj4SR7g7&qEOP5_TGv_Qc9Bw?L^U(iuR<vhpa*=yP{2rhG=O%
zJwMN5mELpS_uuzA=l<RIxj*;!dtKLke&@EZHk79*3}r!2ywZ{m8Kj_yN<T8<Ss213
zBSWQ1m8e{~GP1I=$jQl3rAig5R;`M>ygb#aRYO5Rf$G((qo}Bel9CcNYSf@+&6?Dz
zRSRWhWmHsDs9n1@b?VfiZr!@nt5=Wu_3P81K?52#Y>29=Dr#zKsH>~fs8J&{G&IoE
z)I>{5i^h!`)1*lgnl^2Uwzf7pIy&g;>e8%PGxYTIXx_XzEn2joWy_YdYSoI?ty|Nk
zO&i*_ZA-g$?a<fPr+xeObm-85jvYH<U|@iup&>>_Ms(`b31eepOiWDZ+_^Jdx^%(R
z)D$x_GtAA+>Dsj`-MV$d!oq^?-MeFHX-SVBJ?Po9C%t<0qId7!^y$-wzJ2>*Wo1Rb
ze*Lhvwx)mo{tOr}fPn)CGHB2s1`i(0kRd}DI&>(*h7Du*@ZpRYF@ljJM>1;EC`OMS
z&6qJ`7&~?><Hn6+{P^)qm@t8f6DMM0W5c9LlbAetGPbt1*xA`JWy%!n?d_R5bt(=H
z4mdhGGHu#4oSdAPK7BgQ&d$u3F@u>iXX4`G!mL@dm_2(ouCA`knKOsEbLTQ|-aO{d
zpU;8?3s|^tA#QGNxVyWvXwf1TFJ8=&B}?$|@W9j46E80>mM&e&vSrIyzI-_=R;*y<
z%9X5IwTjiNSF>i#8oa%|S-W;EK0ZG9`uehN-8$B<Uyq-kAO8OSY}l}YjT<+zY11Y)
zZ{Ez7EnC>Sbt?e@0c_j0jljS_wr}6gjvYJLxpOB$K|uru2eWI}E_UzU&7M7b*t>Tx
z`}XZ)|Ni|PIB<Z22M==S&>;>VKFpCLM>u-)C?O#sgocK4?AS4mA3x5C6DK%%@+7BD
zo#OQA)0{bThO=kSa_-zY&YwTeg$ozBc<~~aE?wgC<;z^Ta)ql`uM!p(#<gqL2oDb@
zA|isw$Vj51qKJ-;=KA&P+_-Urn3x!1V`GVni{s|ao7}o}i}?6>Zr{GmojZ3(NJt<t
zF_EOCB$AVpNl8f|H8qvAv^4JCz019O_qc!mKI!S{WMpLU;K2hPK77cdM~`^?_%TnO
zJmKlnr#yT1jLghTva+&x{`@&FUc4YXJDZm;Uy_rPLvC&^uU@_4_3PKXdGm(1Z{L!a
zm&dzz@5s;3r=XyK_wV2H;ll?$e*DO%PoMbw`7?!ug?#z)g|A<~^6lF<zJLGDj~_qy
z`ST|tkx1z8Ux!#HiN7dCl4k|cf8k>7Kj;N2u38d*`WMl^aw)Bl3y#HYi4O=#M537D
z>nR5%OyDKBR4G{%)mMUJB+in}k^`k!{EG=8p33<YyO-W#IsQ8qJCv1|!-9QTC|;NF
z3RpQ@R#)m$Dlg&1IfP6lSlU~eB)?&yyE3&EWhkSTG%v^{A!PdlOAkpZ5iYXgkT_J#
I{;#{g0RNF)y8r+H

diff --git a/indra/newview/res-sdl/llno.BMP b/indra/newview/res-sdl/llno.BMP
deleted file mode 100644
index 284ae8b7d51ab1321fbdeea11d93c43321c5728a..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 2102
zcmeH^cUaC{7{@<RWF(OtMQBMzij0&I5|yHo5uzfBWG8zRl~A^#C_+1BH-xNYw4}($
zD0|oYJWoBB-nV-Hf3NF3*L8m9ocr@V_xE@1+t5Tu8qv^^1XaOKscK441w^#!BOzFY
zQ@BV-P_JG+>esK2q@*NLQc^T%(13;w8zL<&O`}GQXxz9lO`0^JY15|2$jH#FSu<p1
zWoh2LIdXDxv}n<SmMvQ%FE3B4R;_5=x;1Uuw4rU=wzO;4j`r=_)1gBL6ciNb*s&v>
zI(0%(Q4u92B|3NROqVWQP*zr^YuB!H>(-6#-MgcrqJpZbDr#zKsH>}^p`k&K9zD?1
z)TC$6o@i-l(W_T4diU;4pFVx)+qW;;+S>H%*AE>X9dvbd>EFLU0|pF0Pfw450|zo_
z&>#j69?Xy-L(tdPXXwzO7#J8}XlTf=VZ#_cd^jUUj9}!*kr){nF>2H(MvorNm@#88
zHa2GL*s++Hm@sbKIL413kEy9CW@cuXo0~IX!UQZVEU>h+Wa7k$Oqw(aD=RCkt*x=K
zv0?J$$=KT3GG)pXrcRy8v}x0rK7BfNc6Q8|F@u>iXEJNnEbQ&=nLT?pbLPy!!NCDX
zM@O8ToR~XzF7xKi!`a!H`Sa(qV8H@hTwHK<b!Fkgg)CaM2sbx37B60mySqC}mMmfE
z(xoh0wv6S=m$PEU3RbRM$*NVW@bK_p_3G7ldU~>E%^KFOUCX+4>sY^jJsUP`VB^M(
zY}&Mm&6_u~Wy=<}ZrzHPmlxjN-fY{pjqTgF<KyFludgqDetzuOu>*g9e|GNN$*x_y
z*u8r<0RaI71_rWc&mQ*f-OIjx``EvKKL-vR;NZc796EG}!-o$O6cj{oa4<)X9O3BE
zqlAQn5E>fFv17+Le*8FLVPS-ahjZe@2~M6oNkl{hr%s*X^y$-_Idg`{$Vj51qKJ-;
zCMG6^*w|R&;^K&pk0&7^fwO1Nl9-rCQc@D<&Yk1@`SV=3aDj^#FLLS9B`#mS%#|xw
zNKQ^BB_)N_)Kt>a(ztr{D(UIzT)TFS>({Sy<Hij#GBUV%^Cq`$-QxD`+uXTxhr4(0
zl9`#wy?gh_%F5#Y{rfz4@PLO8AM)tYBeJuz$;rtfH#e8Oygc&r^LhOEF$Dz$JbChj
z!oos|ii&vp^eNAtJ)^j|nCH)*^Wwz|UcP+Et5>fmDJkLg>({(_^M<!?-}3I=J4#DS
zDJv`E{rmTP`0#;`A3yTx(<eTE{>+yzU-<g<E8o6-<NNpT{P^*MpFe-{>(?)S|Nc#R
zc{vpo6~g!ZKmPj_5VW$Q&Q}QgEEsi3L{KOYNNUL;#KQEIIcf+*SQM>YAc$6G72%o=
zVlKqueKiwtNQBeHr$2(KNF}b5SK+$27}vr@A#r7@%>K9wcEY>Wo>-%TBL1fWHF#wL
cae-@Mu|qYRzxfM);oti!lne9!^P1@V7thjLp8x;=

diff --git a/indra/newview/res-sdl/llnolocked.BMP b/indra/newview/res-sdl/llnolocked.BMP
deleted file mode 100644
index 61f0170cb34615a7b0c46c41a1bee31f8e6be555..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 2102
zcmd^<hg*(c7{@;)iAY3cB_mQ)NC}BD)1Z{Cl#!4!i;S|ONTJdqJEF)cD=V^P7BVU;
zGcuym^Y*@_@CW>^-?^^yobma7&wcLuT-Rf2X&{HF8OVTU=}cYRr4R!V6@R2kN1+RY
zloZm^(p0Nf4H+33s#mX$tgI|GYSchZPL7&2Yf`ILE#&3psa?A^b?VeXK|z7Kb?c(2
zs7Sqf^{8LJK1xbTG-%L(h7B8{tgMWRiVCW#sx)fUh{lZ@)1*lgnl^1pvu4duQ&XdP
z^X90ltJ9)I3tF~pNvl?^Xx+Ls8X6k3Y14+bZQG)$sY$zb?a<QFLR(v#_U+r#p+g6B
zbac?w)kRNFkB%KX(y3D?I(P1jzP>(Px^%(7zyL!-L%MeDijk2K-MV$7d-v}2=+OgX
zV`F;u?1_nq3B7vtqId7!n3|emW@bj8K7Huhw=ezr^`n3P{tOr}fPn)CVs38Eph1JM
zu&}_=(h@5xE3B=p89aC}Lxv2&#>NI)TU&+>9g3Zu9rpJ23>!9#;lqbBV#EkWjvUFT
zQKJ|=dNgCkjA889u{bz5;OOYcxN+lfa&p4i*_rX<$1`EV1SU?L$fQY=aB*>A^5n_5
zy1FuD$`qzfoyxRn({OWhWBT;zxVyXK;o-rI88etUb0)K9&0_ZK+02<Uhq-g-;_2y$
zmzNjw=FMaN{P}o$d$VA{0v0Y@$f8AySiE>KK0ZG9`uehD$r6?>UCOd$%UHgAIV)DI
zz|YT*l`B`WYSk+I{rw3D2w?T<)vQ^whQPo;)~;PkP*4!T!NIIsw~qDe*Rx^620}tY
z2n`J-EG&$T8#fXj9!^9=1d)-EL`6jr9UaZ4O`F)fc{4FFF>Kkgg{@n+vTfTowr}6g
zjvYJLxpODGcI_fIHkRGHce7{D9^&HS*t>Tx`}XZ4K0cm=gar2Q-_L;q2S`jz<lw=B
z96EG}!-o%Z<j4_@9z9A@QWD9@$s9X&jN`|TbK=AaPM$o;sZ*y&NlD@K>C>D!bB42L
z&vNeEInJLyPikr^7cN}j;>C-krKNG{(j_imzRZ;?SGaohD%Y-E<NEdM+_-Urn>TNg
zo}SLFTerA<`!;v(+~MxsyWG2XkNfxUlaY}@W@aW29z5XT!-qV2^oXpiEFM38%#$Zi
zc>44y&z?OaJ3E`4oE&m<b9w&!IWJzk;N{Dgyn6MD*RNlbmzT$zH*a|R_AT$;z2p7+
z_k8&9fsY?QlAoW?r%#{w{P{Bl1qFQh@`bNozw+(dH@<)WPGMmoKYsk+=g*%M6%|oj
zTuezxiICs_sFh}1*8Y)mN!bsPlK&bPvJ&oGB6`#+*Dqy4UV`LrT#~d%A}T;7zkr3~
z#b*es->W0Sq7AX2>>}lo(%mw>2v_zBA_*6;WL|Erg3HAf0<lHpu25IyV*D?^1pkGL
zwj?==gH@bfIupFVrC6ypf>6XOD)0vv3&aKf6H6le7N$~sA%x^@{^l+d3&&TriPpaW
DY!W${

diff --git a/indra/newview/res-sdl/lltoolcamera.BMP b/indra/newview/res-sdl/lltoolcamera.BMP
deleted file mode 100644
index c961d7a49c749cf414b3399d1a07824ff9ae369b..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 2102
zcmeH{cT~@P6vtmF36YUiM#E^3&=PGUBN>$<No2Gnl_E)0_9%O1Yf@xHLzIxMWRx9J
zA(c_$*RPHqkJIz_bI$YJbMF1zb6%f&zwgiee9y<&OiKcxX^DZ7Ad{<e5$b@D)&&v4
zTH`f~hzN}uH9}NW6frR|8aHl?xVSh?nlwQ|LV~7Eo6@XVGnzMVj-;d{En2joWy_XG
zNlDSFRV!MzZcUpuZD`xJEz;7`v}@On_U+r#p+g5ccI-%}PMwgEkwI2gmd>3!)1^xn
zx_0eKw{G2#laoVUULFMn1r!w(>E69NJ$m$@XV0GW>eUM+B_))Vl~GYqK~+_i-o1O%
zr%xZ$)YRzPw=e4I>h$Z^kN*ApGhn~~G&D5O)YL>vOABpnZFF>W7&vesy1Kdy8Z?N(
zg9oFhr-#12J_ZH`7#bR4WMqV~u`wnlCJY%egrP%+GHlo|h7TW(si`R=MvP$O$dQa1
zHHy)rM`LDY#+Wf<FgG`6?AWo48#j*e<Hs{$!UQZVEU>h+#LCKwi4!McZEcN>jSZ6~
zO=9xo$=KT3GG)pX?Ck8AI&~`c_V!GhHVp>{2c}P-&Wsr|aCCHJ=FFMQnl+2rvu87B
z&K#VaoN#t_#>K@2S65fu+}xNucP{Sk?#!Dv4-XFy=Fgvxr>7@gUS4>6d$VA{0(^XY
z@b&d&;lhP1TC@m1KR*^PUW~uLKTDP@As`@trAwC*7#PU1Wy@H;d^tfuK?DZ}6A}`_
ziWMtZxpF0|R;^<7>eZ}Svxc>6*RpQiI@YgW&xQ>f*tl^cp`oFKg@v(c(<U}=-prOQ
zTiCjFE8DhhWBc~)?AWn`ojZ53Yu7Gz@7~RxJ$u-@cQ4`L;q2SDkNx}ibKt-M4jw$n
zp+ko_eE2X&jvV3W(W68}L=YJnNmNu6(b3Vw#KaIA8_Tg{$2flcIB{`t#K*^T;=~C~
zo;*oHLIS5wo#OQA)0{bThO=kSl9-stxpU_@fBrm4Nl7FpCzFzrLTYL%7cN{NEiH|U
z7cX+@(k0T<)5*xl;PU0mWM*b^<;oSVUcJh-YuCui%HsO<>)g0;gPS*Ra_iPDZr{Gm
zojZ59d-pE)?%g9hJDZ%G9PZ!0Pi}554<0<=;lqbKdi03Lj~|nlmq&hnK2M%J;px+-
zJbU(x=g*(>;>8PIzI@56SFb22DB$($*SvZ2hPQ9uQdn5XyLay>Dk`G5xR{cX65hXm
z&xa2m`1tW7rKP2O`t*sivNFoc%c-cS;PdCteEIT)uV26N?b|mhD=Vq0s^a_i?^IV;
z^W(>ln)Cf{|E38DU*v`bA-uH)uT6jj4Fujm2LTe0+W6;|+EN<i0wDZl8mbp|{>SfU
w)-?Z3p76ZCLX9|q)l2(D>XLd=n+fM3P*rPxt^BX>-zW6<`3T2ZzvU176Ubak<^TWy

diff --git a/indra/newview/res-sdl/lltoolcreate.BMP b/indra/newview/res-sdl/lltoolcreate.BMP
deleted file mode 100644
index 08a4a9322d9873617fe4a73e60174df884b042cd..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 2102
zcmd^;cQ_YZ6vscJkTRkzWJFU_rDP-_3N39^w535sLRJcyl@Xz6P$`P`AXI4Yp|nfd
zsK`(HD=*LU{`tP=dCooexu5$z_ntcp%(cX*Gc6I&sO>4$yAbuDj@CCqwNc=LAS6Vy
zX3Y>57Dhxwgyzkg)1pNSL`6jr6B9#RT%49ITOuJLL914+Xx+Lsl9G~0Nl76sEsczf
z3~k!9K~`24IXOAnwrxwhcI{~2zC9f}bf9C$j&$nOiO!unBQGycmo8mUP*6ZoQ4u92
zCAxO)in6jYDk>_ds;Z)<rbf4J-B4FoM?*t{?%li7qel;V_UuWoUcKnuyElFM^g&Zo
zlfHfX(yw1X`uFe8fB^#-IB+0?1`R?>ON+sS2Qy^I5QYvNing{k!-frG`0(NA=;$zF
z#0YeCb<xw)LtkGX0|Ns_jvR@hp&_G2jl#&th|!}*V{B}UiHQlOrlyP;GX^s=GtAA+
z89R0?<Hn7{!omVeOG~V*tQbFjJQF5NVB*AyOqw)_$&)8zZEekzDN~p_bt==QO=J4>
z>CBihgPAjDGHcc>Y;0_>wYA00&W_o$XESHc9OllQi@m))4h{~?n>Ua7^XIc*!2%X8
zT*#tDi&(sPF-w*#!O_u?rAwFM<mAM%Wy@H;d^syttYGEJl{h;)<Kp7Ns#U94y?Qlk
z)~vzR)fG24H`cCQi@Uo!>(;Hq!@~nlPfxtOyjZ_}J>K5l`1ttX>+6f3pCA7I{%qK=
zfq;MjHg4R=rcIj&3=AYFD2U+TU^Z{wOh`xwp`oFKg@q9w9!^9=1d)-EY}vAfty{OU
zZQC}YqN0e7jwU81hS=Cxwr}4~TwEOS@$u}~v4ez!1QHVyNlHp$=gyt%+O>=1<YZD(
zQrNwFH+%N%Vej6(?Ay1G)YMec($d(!e?JEf9N^%=gQTaYbLh|^4j(>DMn(pinVB3p
za)hHtkCK&@MRs;J$BrH2`0?YMIB|lLCr@(f)G1D%KFygkXE=NIEa%Rh<NW#a<mBX#
zo14pp3m3@C%OgKOpMrt{E?&IIrAwE%eEBkkg@qIq6;WJV%#|xwxO(*}*REaT`t|GF
zxN(D<H*a$5)-7(|zRjIGces1^F8A);<Np2oJb3VchYug}=+Pq{KYmO}NeNG$JmKln
zr<9hK^6c3&o<D!iix)3=`SK;NUcKV=>({(_^M<!?-}3I=JIcz+c>n%A<>lpk`0#;`
zA3yTx(<eTE{>+yzU-<g<E8o6-qoSgM%F0Trs;c<@{X0K?{NU%$pHx>@Q&UqTsPDgM
zP1Hr>g*S0B|3h3OcqEO~E#Qsdyn20u*CJrQy+K?DYk6G?!8ZQ3KN<ceO^($5ftugR
f>w8Tq8ko?;`t|u65Y`R-Q48WfSz}C~`Pcjx&<2?E

diff --git a/indra/newview/res-sdl/lltoolfocus.BMP b/indra/newview/res-sdl/lltoolfocus.BMP
deleted file mode 100644
index afb90a95e31fdda2bce51e3acabcbb8b85343c6e..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 2102
zcmeH|XEYFM7{`A~(Nu(xXh|v*p->?jQlUu8YN&)%l4wh1v_sKEX`z&gO2cf@)<noi
z8EJEIbt?B9_uD=9+;g9Eo^j6a`SASzAKq8rL_?VR&=3U0+DX141!w^Ew4n&p_PVTV
z0s=H^){N%On<FSFNQ)LNXxXwQLPA0a3k%b#RV!MzZcUpuZD`xJE$!O1qka4Kh=_>L
zp+g5ccI=3#s3>A$Vsz@%32||8BqSt|l$4}%=gvq;Ng*vQjf{*8UAlBZR#uj-UArPD
zCx^VeJl(o=qkH%6^ytxpo;`cgt5+`+6cp&)yElr8iuCEz2PGvX`u6QhzkdDb-@iY~
z%F3vysGzE<%76g_7&vesYHDhztE)3;&>%E4G|<%4L`zGH!Gi}gWXKS-wYAaF(Lq;N
zm!U(4GHlo|h7TW(o}M21`uZ3c7%*bQ2n-DkF)}h@<j9eX8a0a1qenAl%ovP~jTt+3
zEG8x<j2kzO@#DucVZsDVO-(T~GsE26oQV@BGHKEzEG#Urw6tXM<jGiBSuthG6sAs{
z%Cu?Im_B_vGiJ=d+S(c$8yjqGZLzbn!`|MWnKNfHYt}4g&z{YkIdgDuaA5A-xy+k4
zkNNZG<LKzff&~k3a&p4i*%=oX7ZxsDh^wnBixw?n@#4iSS+WE-H#e3pU5dNAJIj_W
z!^6Xa<;$1j>FJ4=mlrEmtYGEJm8@E|iq)%Evu4d2)~;R4x^?UD_V#A|`t|tu_^@Ha
z1~zWo$fix3@b&e@&(9Bke}4i30@%EHGh4Q7Ve8hdY}>Yt?c2ArW5*75?%c_)UAqVj
z3?wKhh~VI0cJJQJo;`aA2?-%IG?cx2_p)!_KKAe5&w&F6IC$_NhYlSgEG&%h@Ngm`
zA~<~bFh`CYAu=+OqeqW&?AS4mA3x5C6DK%%@+47FQA9^a6B84|sZ*yoefl)9v9X*v
zbB42L&k`3G$GLOoIDh^;7cN{NK0cm=gaj^LyvU_Xm$-cSGKq<aT)A?Et5>gb?b<c2
zU%yULQWD9@$)u#DkeZrGT3Q<E>FM0Kaf6#TZ*uF_EpFew&7C`UxO?|585tR5W@d8l
z-aYQ$zt4jQ4|w?SA&(wC;_>6hJbChjtgI}aK7GowXU};4{5daPyx`@_m%MuQitOxc
za&mIW&CTWY>(}Jv<&mGCPeDNeZ{ED2u&|J#q9Tfmizz87;qBYEl$MtA?%g}yzkg3z
zSsCT!<y2HuP+3{YhYug9s;c7S$B%sa^oh@(KlA0w7ruV|%C~Rd`2PJn)z#J1)YR1J
z`#=6^2mZ$O+9$cGi=d{dg*x2C!oLmI|3E)W<I8`NAJgyF)XMoKYIlCesf~Ff{2$;y
QeEG9C)>kX=*Z2$m1C-@WnE(I)

diff --git a/indra/newview/res-sdl/lltoolgrab.BMP b/indra/newview/res-sdl/lltoolgrab.BMP
deleted file mode 100644
index f2ac68bf3cce2c148bbb6de92e75657a5ca513a1..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 2102
zcmd^<cUX>X7>CaWQYb6gm6a_GyCo4qG7~~p!)PEQ+5=e?4O?Vu2-#UFWn^T8LX>RT
z<bCR`-q)w^&+nh_I*$9fuH!!M>-W2_=Xj3C#6n+zlF*k2Em5T|UNVS52^BwNL|Iru
zl954HRu(xqIppQ#sZym1RjXE|TD58@C@4_9dUX^P6;V=BqDGAx)T~*PTD5AStgMWR
ziVC%B*QQRLI@GOOmwNT;QNMnDR8>`J(4YZoYHBoW*pNnz8qv6MW12K+Ler*AY1XV6
z&6_tzU0odw4GlCkHEGeJ1ua{)q*bd{v~Jy+Hf`FVrKLsNwry$Gt{v^$x2Hpg4s`6;
zkxrdD(YbSHx^(G+wzf81yLLrKM+aS9UG((y(AU?eTeog>@7|prJ$lfyXHR<d>P7F~
zz3J1Z4+aJX7#bR4WMqV~u`wnlCiLyw7gJMH`t|FFnVA{=`}b$SfB~4Bn=^3WKn4vO
z#Nfe$v9PdU$dDln9Xga@!-ipLY02>6!?CimV#J6Mj2t<VQKLpNdh}?<j2Xk&v175e
zwr1S8aoE_{Fn;`aCQO*X#EBEJwY6o^q)AMkJees|reJ4h$JD7)nKo@2)2B~o#*7)v
zoH-MFdwU!l9B_1W#L3BtS+iy_d-iPR%$dX7xpQ%LcE-iU1y@&B+}zxlH*X&E=g()s
zf(5v{yR&fNLKZDr#Nx$^S+Zma9v&VnUAmNI%a-Bk>4}$@7vA39`1ttX>+6f3pCA7I
z{saUB5EvLpP*4!dmoI0<iWRI}xsu@EU{<YK#p>0oS+iyhYuB!2-MV#zgoF?p8cJAL
z80*)sXTydKgolR{5fMRTWF%2hQEc3}kxiR6v3c`mwrttL)~#FFwrv~Rw{K_1jvYit
zN3(P1PIm3uMNCW#yLazq&z?Q(-Mg24`}VPa|9%b}IKaV!2RU@;5V5hb#KpxCA0JOb
zLIQ^mA0{y|kt0WraP;U=jvYHjQc@Dfk00m6i4&YWd6HA7PI3D5Y0jKE!`ZWENls4Y
z+_`g{KYyMJ7cOw|;zcf9x<pD!3YRZmCN(vcw6rv?T)9GedO8^y8C<=3m220oasB#r
zZrr#*W@aWgZ{FnAty|o_eVaRX?vRz0#ofDixp(g#_wV25!Gi~6XJ_;9;X@uhdc@<$
zkIBi&AvZUdCr_U6^yyQcJ$pu8ULMb%Kj+1Z7v$&XQ&3RA%a<=HEG*>Jt5>{!{hBv#
z-thMATi(5U$NTs1`S9TbA3uJisHlifpFZ*V^Jl(%`NG$)U-|a!8{fZw=f{s9{QUWo
zU%!4)TwE;7_uq%`)2Yl=V4{l^|DB6rWd}-I1uBYvC`i#i4wTuJbe26*%5EuPTgHT3
zjwLrM>N1>CGElK#QCgKADaWEuObAh`=oM8GTs(>t{}W4#OLq(MQrZ&ge_@j5QhgOF
z<?a={%tP2I$Ku%}O#Z;aXcZcwmn7X?I=RqZ8p0G3;^G%mlEf<i{%KWCC8hp9^>0{p
BhjRb`

diff --git a/indra/newview/res-sdl/lltoolland.BMP b/indra/newview/res-sdl/lltoolland.BMP
deleted file mode 100644
index 64e63656250c5a7056f20f0725971206fd8d077f..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 2102
zcmeH|hgZ*U6vtl?B|@T%C@Hd%P?TsWBV}hqsFbZpMTwTsFp5fK3ndy<R+$YmdsC!j
zw5&q;Hhz8U_v4)3AK;$z+~+>;_xri`bDwk1`RJQyh*M=6qM#y(6l#_THAEF#<3t2|
z<*M97L}<{U0Sy~AL{wCiMvWTLxN&2|#KaI67pF;+CP+v~(6nh&nl)>Nq@*Oxn>VLL
zix#wO*%B!!DO$B^g|xIZty{OIO`A5z$jBfoD@)t9ZE4r89qrq<r$dJh$jQmkv13O%
zb?St?ygUjD3Uuz=8AU}!x^(G+l9Ce2%F1-@+LdnIx}l<?Lig_7>CvMHJ$v?~SFc|5
z?%f+zRaN@*>4Tb@8h!irMO|H;e*OB<zkh!Q3>bihh6b9NnhYE`kU@h6p{1pTwzf8d
z2M<O^M~5LphA?#KP;_;5(bLmIUtb>s0|SN)8-}5wAx1_<3?Dw65hF%0a^y%xjT(iq
zu`#1ZkH*Br1XEK}#*7)m*s)_7H*Or`$B$>igb7TXIFU({CShh~#^lM9nKESxQ>RX4
z+O%nyo0~Iz`gCT@n1O|b1v6*PWY(-%%$_|POG`_vtgNuMwr0+pIoR0PU~6m3+_`g^
zH*X&E=g()sf(0yGxR6DQ7O{BoVwNmff}Ncm_V)HHUAmNI%a-Bb;K1_b%W-sc#L3AC
zXJ=<ttXRRyl`C;^alzHql~t=&;pXPX>eZ`Rvt|wM?(TSac;M;jiI<lb-rnA<UAq<^
zA0O7OTgUqK>)Ehj1HQh#`1$$a@9$4QKmZ#zZe-J@O>Ex0nJrtk5EvLpP*4zCw{B(I
zwrvCl2NMz!LTG3x+qZ8gEG&#2J9e;h=T5@I!`ZcK7rS@wX3w5I?A^PUef##YfB$|C
z95}$ig9nL-h~UtnLmWPQm?KAy5E&UsR8$m4j~*pDI+|n0j&c0>abjX(h>eXUE-sGv
z_;^m7IKj!2CrL<1ATcqKq@*NHojS$o)2BIe<_u@gp5@%Rb0jAxlai9c`Sa(waNz<M
zFJ9!*rAu7Ce3>g(u8^9VN?KYP>FMcYWMpvl>Q$~?yT<kF*ST@y1~+fs<kqcQWM*b^
z`}S?_+_}TuyLY*F?;iK>-{--D2RwZEkVlUm@%Zs$o;-QN)2B~)_UswYpFiitix<3n
z`I4-xEV8q+dG+cQuV23=CntwDZ{Cobn@e6^9&g{iB|kr(ckkZu{{4GCeE7h}j~^*0
zD4?*gkfNd@ii?XWDJkL8r%!zT{FyIbzVP+ySH6AwMrmm&Wo2c2|NfmHKYsA@=TFMZ
z%c-cSsO;~r{e6KyzCiUKqQ?JDRbNnhs+CeXX4O_n)`q_qR8%PhPB@sgcLdWaz^kVA
zkNofQ|5ILYS7>$03qfI2OQ#7jK_pBi6jVjk%>U+v-PPpzSC#+pb&J$(zTRgDlhlLj
J9V#_-fnOJ?KV|>`

diff --git a/indra/newview/res-sdl/lltoolpan.BMP b/indra/newview/res-sdl/lltoolpan.BMP
deleted file mode 100644
index ffbef21ec74db5e9ea6e262640df17f9594a8435..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 2102
zcmeH{c{G+=6vltb6jD-}C`!>lq-2alNhz8%QJEr@A(f&?r2&x!&9g)knlm(#1~jQO
z8PZ7eKvC}ZeYe(P-O4}rpS#xGYwdUMb)K`&e)jXe@3FAemqujz;-D$WRDZY_KL8Q>
z;~^%9LKg-xF&Z>zK*NR&5f>LnLP7#bNlB!nq>z@Drct9t$jHbbD=UkfoE(iCH%4Aw
zo+eG2(6nh&6ciL_)~p$dii$LE-kcUKTA-w)M9Y>fY1OI~ty{OIO`A5fZQB-QWo1-U
zRA|?(9qrq<M^#l7H8nLlbm&0GjvY}~SEo~_PIT_v84V2$G&MEp(xnSsyLP2pw{CRr
z-W@G1Ewr_@>CvMHIyyS&>gv+7XHWF>^yt;A7rlG;Mqgi_K7IONU|@iup&>>_Mi?6#
zV`5^0si`S_`}W1m%nWmLbNcn`hlPa&{rmUF($W$uD=P*J7{I`R1F^QYX3(HP*x1-G
zc<^9`3>kv0tt~@`4rSP|Vc6N(VQ+8G@ZrN5F=7NGM~-CFs8Ng_JsJlG2gZyU!`QK7
z88>bm<HwI@!h{JpIy&Oy<ix~@6PYw=5|bxS#@X2!7Z(>?U0rc=bHm-;ohehM;Njtc
zr>7@Vr%uJo%Zq8#rZIi`bY{$$fw#9eK0ZG9`ugJM=f}*MGx7KLXV$D)%$_})IdkR^
z5D>uJxpSE}ZytexfdmBwF@OGi7A#mmaBwgoAt5YWxRB7$P!=s(#Nx$^S+ZmaVPRn`
zUAmNI%a*Zx`EpjQSV4GrI1v#ML`Fuka^*^*qN0e7j%L-WRm8-^uzK}s)~s2>+O=z0
zw{9J=v9YXQzn%>nHn4HyMmBBQ#OBSL*|KE|Teogy+qP|N-@ct4J9e;h=T3I*+QshO
zyNQd7W6z#F#K*_8ckf;j5)w#EOl04_eeB=Ap92RDaPZ(k4jno~Qc@Dh$;qUoq;UA~
zVU8R*!qKBgId<$A$B!T9#EBD}Jb98+r%sWYno3$)8tLijWMpJ;`t)heoH@hUvu8PX
z?i}aOpXb7b3uI<yl9iRk#fulo&d%o2rAu7Ce3>g(u5k70RdRB2$j!|qFE5X4*RFB>
z`gLyHxWUbvH@S7|7Ww)4+`fIAJ9qAI_wHQ^3JSP)?;iK>-{--D2RwZEkVlUmQCL_=
zQBe`a#l@7Al<@fRV@gX)dGh25PoF;J*|TRnfBu{oFJAES<x9%S$|x@{=hdrMyng+f
zH*enX_U&8Vy?e*|_wV`e;R7E(e&o}qPkjFTnTm=EDl04b^5qL(zka2vs*39BYQBB@
z#`o{vsi~<E&iB9ls|wU3DSy_yo|huHt!o7SJHi4)c>eD;h-!uPzvdw9{nLKgqMmxe
zukz>q!VRJ`YVjAW)G`76x*ugNOq7b|t5g1yu`mh;ughG}ua^B&nEyUrSD{+c{GHYV
F{{?v~N|FEo

diff --git a/indra/newview/res-sdl/lltoolpipette.BMP b/indra/newview/res-sdl/lltoolpipette.BMP
deleted file mode 100644
index 2d27118289e22acaf863e508f18aa66d40f210c6..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 3126
zcmeH^F%H5o3`N5X8w(>NC+Gp#xi_~8E{4cT9P4F>1X3cUa)17RZk_vMJEiy9<av{Q
z{p>@!NF__o&qv)Vr1V@1OyE1MiQ|$MIcIGIzG&E@WND#YhVvjWyM^-QIqxr43vkc7
zWew^t2Bp^oKQ*w~>n_Y9N)cq?k)^pc<ODVsYsDZ7k1VaKAtAO^O#2!K$*HBeHG%Xz
zF0d7QaiX_0S0SjL#|5@xFHZDA6LYECf}n_}C96WR(Brm%S!k<Tz|@e<wipWjviSul
CHozJH

diff --git a/indra/newview/res-sdl/lltoolrotate.BMP b/indra/newview/res-sdl/lltoolrotate.BMP
deleted file mode 100644
index dd84673018ed70c3013e6fb47fd858f16705e971..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 2102
zcmd6nc~nhZ7>A#dBt#-($q<?6(m={gnUf-k3>i`+8Is6650#>5AX8*$KvaZerZPv7
zp-@VtiSOKdYkhyzz3cn)J8SK|&pOY3fA8;o_c_PZTvrM4rK<os!kt#-kfRcaY2_p*
ztfC=W<m8Z-m#0>(S|}(eP`h?*6crVzQ>P9}N=nqNTNh<zW$M+dNB#QsY0#hnDk>^8
zY}k-SjT)h<s!HR=jZsrmqe+t{G;P`xb#--`HETxm=FMr*q6IBmwxm_7R<v&28VwB%
zG&MD8)20ntT3WPi+m?3i+R?s!dpdOJfVQ?a9XocUQ>RYo=;+Y7b7#7A=|b18UFp`X
z8{NBir$>(-^z7M_UcGwJyLWH;^yx$2zJ2M}uOI#U_eWP(7d<^a1`HU0zP>&N1_l@!
z8e(K*#K3_A88m1R#>U1B9y}Nm6BA5LO&Ky|2t$VsW!SJ`3?Dw65hF%0a^y%xjT*)1
z(W4nNW(;O#W|*6sGj{A)#*G`t`0?YJFku1{Cr)J2q)AMkJQ)iM3#Lq&f~BP;Q>RYF
z%E}6BYip)Wo5u9%)3LF!VaALZ*xK4MbLLF!?Ch8|YZkL-&&J-~o;h>oFn8`;=FOYO
z{Q2{7aByJ3f(0yGxR6DQ7O{BoVjLYES+ZmaPEJlZJ3F&<=~9+0TZW5^3(J=;$JN!9
z6)RTY=H|xAl`C1bY89(juV&4fHMqOGvv%!TJUl#Dw{9Jto}R2<zn%>nHsIyu#m0>r
z*|cdBn>TM}%a$!{-MW=++qSWN`*wEh*ul=7JK42s7rS@wX3w5I?A^PUef##YfB$|C
z95{ftw>LgMKKT0ja`50m{QUgz_xI<}p+g)#e3*cM00IL8IdbF(M~@yQC@6^F;9x>R
zLI@2F<=C-f96x@Xu&^*roH)VBlP5WK>J+C>pXSV&GlYkSbN1|6&Ye3)L_`GV&!6YQ
zg$rD~c#%t&E)f|SNmNu6(b3Vw#Kds<@@1}Exx&?}SBZ^{<=VAtT)%#uxVSjt<Ksz4
zNZ`he8{E8klf=YCZr!@Y?c2AxbLS38NlDzjdza+oWbWO&$Nl^FdGO!?4<A0{(W6H^
ze*BmxPoD7f=~JFPdqzr13aP27q@|_t{P}ZUym-OOmoIts>J_hFzvj)GH@toOmh|*=
z-o1Or`}gn3$jBfwGm{S=KJfA5N3ycA`1I)$pFe-*%a<>F{rZ*c>}+y!a`^V`8{fZw
z=f{s9<mTp*mzT%SpFhdZ&!?cEfM36UQCL_=QBe`a#l`&o{hN}K5=u);DJv_Zyu6%>
ziVFVx`NQA8e?|5Ek1p}=NV*@ymZf?Yupl4|DGCA-h-9w5MG}fsE&y@AYK|8r6{VJv
zUx*cUh{S8QSE-#O5~yyiDs>G+@~A4j`UbI@bSxwkVq|flXELy)AQ>-`C{_j*Ym2y)
z!mGGciAsI($yBdiQkpCS|IJ@bXYz07Wqn1mdM8p4xO8zbmx(3kC$UoFEIT?W=^ti4
BW&;2K

diff --git a/indra/newview/res-sdl/lltoolscale.BMP b/indra/newview/res-sdl/lltoolscale.BMP
deleted file mode 100644
index 882515e5e3c1a7450f967775f0080c7b64e7a0b2..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 2102
zcmb`HcQ{sk7{@=NGD=HBC8LzmCM_}&rL?sqMOp136=jqWkroQkUYZ&jqGeSmqe+vd
z(xmBq2Jh9?>v{fq?{odeIiGWn@BKU1F|#(1M`Q+apd;96R1X=dfrwU5GJ;h&go}&}
zb?VeXR#p}{IXUXqtxLUn^{8LJKJxPNC@3hPsHljNk`fIXG@xO_hA1m5)2LA+8aHlC
zlO|1Q+O#Rnnl(d3MTO?go71923tF~pNvl?^P*qi>b?er&Y14+bZQG)zrbfGV?NC=&
zM?*scO-)U-w6tj7zC9f}bU<5Mn~ohj(y3D?baZs++_^Jdx^zKTSC_6`yV9*&H@bK4
zPLCcv=-IO;y?XVcckkZl>FJ@buTP&oeK0UEpl{#4^y}A;{{8ziV88$d4jhP~p&>>_
zMhqG>2xDVoOiWBLH8sV|%#6W<2V-t-&X6HPu&}Ve($bQlLx(bK*f6ZDtQbCgI3q@k
zz}niHkt0VkYSbu3j~>mKF=H4zb}Zw@jbr@y@z~hdFk!+3CQh8lq)C&QJb5xxrcA-s
z)|RPLr($Pk$FynFu(!8o`t<3{m@xwf2L~J-9ho_ECbMSE!pX@AXJ=<zTwHK<b;Zri
zjoGtjGiS~m=FXkVym|AOKYu<87A#=l!i6kaw1~xv7qeu^65QS0S-Ny79v&VnTeghl
z%a^la#R@z<J@NALV&%$}tXj1SZ*OmWe0=cr^~KN6kJYPJvu4d2{Qdn22nZlBFp!|2
zAl9y3OK@;7At52GTeptT&``p{!dSn4J>lWuY}l}YjT<+zY11Y)Z{Ez7EnA3)h#)dD
zlBlRCwr<_Zwr$&pj*ccKCWhG9ShjE9PF!3Z@$vEO*s+71J9n~c*DiMN-p!spd)T{o
zFZ=fGWB>mB95`@*g9i_C=+Ge&5)wFk_%KI~9O3BEqZ~VSjN`|TbK=Aa5)%_SdGaKu
zPMzZP>C>D!bB3g(B+i~a%eiysIDh^;7cN{NIXRh&7cY{Ml0s@~Dwi%@;_~IoT)A?E
zt5>gb?b<cc($YvzPbVWIgUrlKva+(ce*HQ(ZrtGJ&6{LrXOokYLvC&^w{G3y_U+r`
z<>ir|pHD$S0fmKy+_`gyyLaz$@7_J`-@ng;2M>7o@F7J-MHCko^XSnd9zTA}lP6Dj
z`t&K!o;~CF^XHV5lu%k)%8M5-c=_@ruU@_4_3PKXdGm(1Z{Jc@R>r$`?|A?IJ>}))
zeE9Hzj~_qs>C-1ZfBwvuFJJij^(z$>6;xJM^6lF<zJLGDj~_qy`ST~ge*NP2@848a
zRSEU|Zzlemh~`>j3KNR0_Ot>n4k4i|ssxwNBy;gAQn)CG6fUSwYJ5rg5lE`8t~P(M
zv>N&U%`a??D0KDoSN}x#uV;VWO6H<YOU4<(x&?(x{1Sw{mV$*$pjV>1$X5#fmkV|O
zsi<Zzj4ifWagD#k0&4tg_ZCYR#FvDt<4eS1E*Xos6fES@uz*X&;`6I%RxPV^?~IIp
E05OD7V*mgE

diff --git a/indra/newview/res-sdl/lltooltranslate.BMP b/indra/newview/res-sdl/lltooltranslate.BMP
deleted file mode 100644
index d084f6a0269e9b88c548a8f44e92f8a772311141..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 2102
zcmb`HcQ{sk7{@<~(oS1Lq@kshh(c*-sk9U&nxaI*i1yM%LVIfuMMgy>q(r5R78P1D
zQ%1x4oCjU+)$4is=e@7%cYf!b&-s4uan5xNjkV+vhn6g;iO!TOmkgCaOe+sEqFq?R
zCL=?Q8a1d{vnH~#vdGEFQL9!hYS*rfyu3Vh>eQib-MZAPSC9Jj>(ih?0~$7LNTWuL
zXxz9l3JMA|Y0`wIO`FoJSu>h9Z%&IAEoj-YC9PVuLQzqX)~#F9rcE2#wrxwhcI{A7
zQlfqP_9!bWqoSfhhYlT3RaK>9$BuOB)QQfWJJY307u3|$=-Ra_-MV$7d-v}2=+T3o
zJ$s_Au1>FBz3AP$HyRom^y$-wzJ2?msi{f7e*MtW(n4EXoBsX#qobpPuC6Wv1`J@}
zz=7!L>7lQ$kAZ;!g9Z&^@ZiB18X7WW$Pk7O9m=p_!x%n%I7UWBj2JP3kt0VkYSbu3
zj~>mKF=H?`HfHSDv5Xrxj`8EiV`5^$gb5RvIB_DACQV}U<jG8#G6hppQ>IRx%Cu?I
zFf%j5+}xb$)2B0I#tbYhESNcSCYF|#SXo&yYt}4g&z{YkIdhmhcP{hh&13%j`B+<9
zvtYpjY;0_>wY6p8!i6kav<N#pI~FfqjJ>@*4h{}1S+azsOP8{2*)o<dUyh@rBTi0E
zI6FJz;^M-J6)SLcb;Zrijg>1`vTD^TR<B;onl)=!yLK(>)~#dx`t@wsuz`&mH?nEd
zCN^*0jJvx#TefUr>(;Go+qRAE+qbi0#}0Px+=+*W2cDjuczJoTYu7Hky}jAJdpABl
zKKT0j;^*hbo;`cmyLT`9_U&W;{{0*{aDamc4|3?xAr2ot%#kBUIC}Ib$BrH2`0?YM
zIB^1he}7J%Jjtn3r#OB3G-uA7;q2M7oI7`p^XJcV;lc$jUcAVqOP2@;2;lPN%Uro~
zg}}f-f`Wp$di5&7!NG)tgb*4UN?2GJ*REaT`t|GFxN(E<@Ngm`BDi_;Cbw?g;`Z&^
zL`Ft(=gu9XqN0e7jwU81hP!v~5*r)Ky?gh#fB!yladA9&@PPREcoGs4c=+%kj~+eZ
z@#DuNCMNRa$rGMFeM(YN63NNQq@<*fnwrY9XU};4{5daPyx`@_m%MuQinO#e($mv<
z{rWX;-n`-M+qYz7WRRJeNmf=C@7}%R{rmTP`0#;`A3yTx(<idCv-$k_GdVdq<mTp*
zmzPI=em(^S1r!z*^5x4Hii(Q(`t>W{zI~&(xR{cX5=u);DJv`E`}gns`0<0EKY#M;
z*DuP;%Z2{_*Z7Me(lh?0B+<XBT(l$=EFyxxqzA-WL0^3hLhh=lHicBZkW@;3k-0!6
z)?eAUr2c>3mr{F0&3{%dzWy!$@8rb8lE#IBipKJ%Z<UjXiJFqig`rB4i@gOdM3v{i
zcfq?Ns>M}$i5aT&)vHDCOq#i<kP0qIUCAY5v0e%mxHK%{QnAF3y=sQi)v>Yv0O46=
AuK)l5

diff --git a/indra/newview/res-sdl/lltoolzoomin.BMP b/indra/newview/res-sdl/lltoolzoomin.BMP
deleted file mode 100644
index e4e46cc70281c40f2b09e0536e80ee282712c4de..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 2102
zcmeH|cQhAz6u>`<l2T-)RH$syQZ$qzDk38)l1O_XS}IBdEh+7VD5HTEMaoDhEp1JO
zmiChTq*r<G<^A=}`{Uhn?)TnvKKFjV_ug~9->;Fmo+#C#Ck$#;o??v(Q3I-J%_3A~
z1u8H?Le#5QkNWlNBP=Y8h=>Rc8Z@9`!-j~8iqfc2BgDkSXxz9lO`0@8TwI){O`FoJ
zSu-RgB#@Mpq<Qn^NJ&W{EiH|Vj101}vdGEF(V|5Q<mKgQ*|H_ATD3w!L4nq-ThpdZ
z8``#Qi=v_;N=iy7D=X8kT|3&hZ%>B~9Z*qGK~+^1H8nNV)z#6^&_GjD6D=(*w6(R-
z(b1t}$ByXg>e8uGCpvfTOqVWQ=-Ra_-MV!{Pfw5T-MiDHM-TM%^)WCopl8pX^y<}%
z-o1O%r%xXY4Grnrw=ezr^~1=>i2nWiGhn~~jE#*kF)?A_z=4>Wnqp>V#-Kri7(93|
zLxv2&+}s=s3k!x09g3x;C015e3>!8KYinz4Y;3T#wZ+cPj^V?HV{dPdgM$MjMvP$O
z$dQa1H3~;ZN1U9T7(IG4&d$z^88ZeK7Z=8k9gC~0D{gLXj2kx&cXxNjj~~y32@{w&
zaUzo@O=9xo$xN9tg{f1gGHu#4rca;Fj2ScV@bJLX(-SW*FJ{i1iMO{mK0ZFonl+2r
zvu87B&K%~>oy)v=^YHccW&Zs6ELgCBg$ozr=jVsNzdwr>En@NF#RLQduw=;+mM&e&
zvSrIyzI-`>fq?`C1rZz^%!(B&Sh;c~t5&UI_3G8ES+j<akPz0cT}x<aDC^d(WBvN|
zgoTB%VZ#PCZrsSGO`F)fc{5wKY+>uxt!&%2jqTgFvt!2&cJAECu3ftb4-Y3IB7(@s
zNOteuO;l7A(b3WD*|Ueed-oC(6GLolEOBvh#K*_8Z{I%l@88dX0|z*G@E{2Z2_z;a
zl9ZIhp+ko_eE2X&jvV3W(W4wYc8uiYWKvR6IDY&%Cr+FoH8qvAv@}khJV|<bI;T#Z
z;`Hg$WMpKJnVCseRu<XW*_=6ZhMb%n&YnF>Zf-7ld3ogL=X37dInJLyPeDNe7cN}j
z;>C+xx^#)lmoIbW$`uL=3%PprD%Y-E<NEdM+_-Urn>TNA>((u9-@Z*zQ4x3U+~Mxs
zyWG2XkNfxU^Web)9zJ|Xad9z^9zEjm<HwYglu%k)N?BPMPo6yC>C>k?d-jay&!6++
z#S6;I%X#_oC9ht+;`Qs-ym|A6w{PF_?%g}yzkkn%4<GpW@gtu;ed6=y&s0=Y@a4-F
zDl01m{rxZh_5|vfdexKsyNaOlcL4(Yn}GisuKt03EVV2DLB4yxj;5-epQI}0SDanL
w|1h=iKjYty7F?Iw+keZiiwhE~tNfe%x_M2Hf0h4zF5hhJ{;CT6S^k8-0{NdgtpET3

diff --git a/indra/newview/res-sdl/lltoolzoomout.BMP b/indra/newview/res-sdl/lltoolzoomout.BMP
deleted file mode 100644
index 7f958383ab820ad0860cbf3482cba82216492bba..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 2102
zcmeH{cT|sU7{@;i$tYQcLdnQzXelAeC<-B~G>oE2WsgvZkRm0U>};h%GP0?pRFn!)
zDI=9a-d~-(^4977<MrozopayUeV)(vxvuAXo#)&JrrP3Ehqfpv2~P4gONbg!O=~tG
zL9SX=Nk|A`VPQl>L=Y7frBS0sh>3~OxN&2|#l>mTqzO%%Hl<m!W;Ac!90>^tBqb$j
z(V_)XQc|>R*^*YRTG6_7YudDFL)*4(k(QQ5Mn;Bq?b^}4eS11|=zy%OEOK&kbnMuX
zPMtc@xpQaa<>gUOP@qefE+{H0(zR<>x^?SD_wL>4(W3`SN=o$X*^^$qdeOUgZ~FA<
zgR-(RDk>_ds;Z)<rbgeseNk6eM?*scO-)U-w6xIH)}~*-e(31vpsTA(|Ni~a)6-+X
zfB_5~IFLbu2BEL7&)~s>88T!D1_lNg8X7Wm=un0Y8^-YA!x=GR1V%<i7#kZia^y%x
zjT(iCi3z5rri>mvnlWR>Fm~)%%*@OfH*Or`$B$>igbA3Nn=^6ZL?%s|#N^47nKESx
zQ>RYF!omVeOG~Crn}(H@71q|)*x1-$YirB&>C>4pV+J#4&SciCS=iaxVQ+8G?Af!K
zGiMGC4h}dvI^yKygtN0VE-o&(y1FuV?p)^0n}?g58}9DzczAd)fBt+HELgz8g$r4<
zXc3DSFJ{S-B`jUKlx547v3&V*R;*Zor>7??SFU8$s#UCBy&5ksFTB0IS+iyhYuB!2
z-MV%7`1r7X{dzWR*nqFEFB>;*WYeZiY~H*XKR-XVY}tapzdr#10c_p6m2KO$5f~WA
z_U+pV3JM}PIG7zfb`TO0!p@yL*|lpIyLazq&z?Q(-Mg24`}VPa|9%b}IKaV!2MG-g
z<<Ox+96o%QBS(&K^ypEJ9XrPH<HtF1;sjw~VVpd9l2fNnar*RW&YU^J*|TRkckUeL
z&!6YQg$sm-hZ7MI!NrRgiHwXSDk_TT=x8ooy2Rznm$`D~3NbM;T)ldg*w|REUAxBh
z>({w);|4cx-XtzAj$5~Gar^dd?%cV<-Me?Wckdqe@89Rag9ki(_>f1B9uXfOPeMWh
ziHV6ke*BoEq$Hj^c|vk>GASu3Jbn6<)YMec($YvzPv_aQXFPxYoQ#YNGBY!I@!|zp
zSy^OfXOokY!^@X1dG+cQuV23=H#e6zZ{G0s?OXEl^2pE6r=XyKckkX&SXf9=Q4#Oo
zzvsh;4}ARikx!pKQCwWi=g*%hDJh|}w3M>4GQNEILV0;P6%`eH{rZ(}-@ftv`*$iU
zEBW!`N0q<-;}1>XUxq2TX&Y)(eHAw(_z$eQ_Rp<uou8y8*AY<ltNe_5Tr|i9rt9!p
zgQzN3m;Wsgd{Vu<mY`n#%R{~I|H4(LI{kmg0{&b4gH{))C8&%4$dl?04OJ2d8o~mb
H_29n%Z^BYP

diff --git a/indra/newview/res-sdl/sizenesw.BMP b/indra/newview/res-sdl/sizenesw.BMP
deleted file mode 100644
index 559579f40e4b563d75af4507d21f53967706a048..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 2102
zcmeH{XIKwv7{-4oM5JVts8p1Z6p}(p8X8o{UL_JjR1^(6nxuh@qG3f*q>PNL3eiNi
ztd>!sPJcSzPM!1VeDYk^bG`5N-1l=|*ZceM8dzwF@~gB&K(+Cv(9}XS35|0pvEPkQ
zqbO*>AtXerR;>^g7Dhxwgx0NF)22-u+O}<rsHiCI+O?y7`}T;5iP51$2Re4_h`6{o
zojP?wLP7#bNl7|)?u?X_6kWP>p=;N!bnDiQ?%lg1EiH|Vj0`<`^gvctmYzL((yLc5
z<mBX#mzPIDL4n@Ad!wkRh?0^L%F4?0>C=b4efy%KqJpZbD*gKPqksSY3>YwgfddDk
zrl!WAL4#0NS7-3x!Dwh`psA_JkRd}DI&>(*h7ChYON-&dhoh~n&4>{r(9zLBS67#j
zBS$i7)F?)e9*v%!9%IIgL0?}V0|Nubjvb4kp&{eOjl;;u2xDVoOiWBLH8o}Y`0<#T
znPF~jj)jE<mX?-Gm@t8f6DMM2Wrel1H8wUjOqw)_$&)8DWy%z6ZEcx4bt==QO=J4>
z>CBihgPAjDGHcc>X3w6@oH=utJ9jSg=FMaN{Q20~*<o*Q&w>RDaBy&7;lhP1TC@m9
zM@JSfUW}8I6HAsXVd>JPEL*k=XJ==YFJI1z6)RY|awRS<F05L$iq)%E<Lc^)o0}W%
z?(VEvvxc>6*W%&ffv2Y@>(;Gf{rdHId3oXO?TwF*55B&>Y}l}YjT<+zY11Y)Z{Ez7
zEnC>Sbt~JpZNtyckL}yHvt!2&{Qdn22nZlBFp!|2AcBK~2?+^d=gyt%+O><&&`@^o
z-c49o7~$dJL_|ao85zl*J$u-@cQ5<)?IS8Giv9cdbKt-M4jw$np+kp=j*ccKCWga@
z4|C+m5n^LwiHnOPK0cm=ganQrJ<73T$2flcI44e=;N;1ZBqk<u>eMMtpFT}eQWD9@
z$(%WJhO=kSl9G}_YHBLy&Yk1@`SYZurE%fH1=7>g$;imy;>C+xx^#)lmoIbW$`vv*
zGr4;8D%Y-E<NEdM+_-UrtgI|<-n_}JTerA<`!;v(+~MxsyJTl)larG}Zf-93?%m`5
z{rfz4@PNF$JRUxL$fHM($j{HGprC-l!a|CQiYP8Frlh2V$B!TL<jE7BK7C4QX(`X1
zJ>&WF=e&6Ff|oB}^6J$qUcY|Ln>TNG`}QqmWo5j3_m21P-}B+a2R?rM$fr-AC@(Lk
zqN0Mz%1WxLs;I86=JV&zeEIT)uV26N?b|nMYHFyht);H6j_=>U^W(=4e*XMPeSJL*
z4Gn_#{i!AbzkkDKaR_*|MC_N|0?_}m-{@&Jfd+vpFz}C_#%YtGr3^tr^ZMTj%|Z|u
T{$;;q{TJls<NqlCFM+=Rf~1J}

diff --git a/indra/newview/res-sdl/sizens.BMP b/indra/newview/res-sdl/sizens.BMP
deleted file mode 100644
index 8373077dffc48ab321f24b72b79b23e54f1f870d..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 2102
zcmeH{XH*Yf7{@=Qr9~y9LWHt2iXshUB$6#eStW&1RH9Nw$w<RYp|ZEKg;I7=C@nN7
z6{Vrn{}*03&QUM_Z#?&W&wcLw-WSjFx#wOZQ*8-;gtiE12r|`Q65^L3*jJGHDTD-O
zqZ%h6A%um6Y0;tuA|fJ)ii#p8CWg4UI1&;Pv~1ZDNl8hhq@<9RmPSTK23c8ITD59L
z>(;H2laoVUULFMn1=_S}gQB7$ZQHh`UAuO)Z{MB{9Xg<-q=d4vGAb%6bnMuXPMtc@
zxpQY!RaNQIr3+oVc12B1jc(n#(Y<?jdi3aly1F_V8XENM*^^$qdeOUgZ~FA<L*KrA
z>DR9x{rmSvQ&W=x0|qc~;6Mfq8pPnigVEB`LR(v#Awz~Rbm&lYbac?w)n(YQVGJKW
z96dcfMvNGNzP>&N1_l@!8e(K*#K@5&88vDYqeqX%*w~mcW5zIc>{!N)8^`$Z<1sNY
zVZww7n3|e0apFWKO`3$6nHiHOPsZHboGDYLFm>uwrcIm1^y$-?F=GZZXU=5StXa&S
zJsS%P3+Bw3!`!)ZnKy49mX?;xpFf`k3l?ByWrel1H47ImWYMBUEMB~rB}<mDbm>xT
zY;3T#wPo3|W!Tx-v3&V*?CtGwaByJ7iWRI}xsp|@R^jOAh?A2Ot5>ha+1VKv7Z=v7
zS;N}3YjJgT#m&tPcXxNzty_nOhX?D|uV=%C4S0Hb;^pOqx3@PNH*Uno#|K|uUp8&p
z#OBSL*|KE|Teoh-&(9Bke}A@Z+eSb@0Nb~3XUC2m?A*DNUAuM>7#PUz-Ma}23L-c-
zn2?YVLPJB@vu6)`_wHrizJ2W9zn=pK4sh_`LBhhqICSU`;o;##L_~1-@L`S|Il|GS
zM~RG#Bq}P3=;&yU9XrPH<HtF1;shs8p5)Z2Q=C41nloq4aQ5t3&Ye5Q`Sa(waNz<M
zFJ9!*rAu7Ce3_V-7-C~%xpL(SSFc{>+O=z3zkZz?H*RqA=1p$hy2b6=w~333<IbHs
z+`W63d-v`UA0JObLIU^i-zPCKk))&~9z1x!!-o%f^ym?fA3x^FlP5fV`jltSo{^lK
zOiD@$&!0c%#fulDrlyjXmd4AMFM0Lq6|Y~vCOti!jEoH4ym>=rW+qu#S!8EtlarG}
zZf-7b-@fJDyLY^Q|DL?OJo5ANDJUqQu&|I1A3pH$<41~$iYP8F=F_K7l$4ZET3Sk3
zSs9-{f9A`VFO-*;Q&CaD*RNlxtgNJ}s*39BYHDg~`1b7^wY9a>)z$I+`*-T=>uG3c
zXzcG_{6>JLku<}s(QX3jPy6o&1b=aZVDR@_`QiUo?w{%Z>o-?_bNwea!%y%Qo5I@&
OLjd4UCjZt=5cm)KU57CM

diff --git a/indra/newview/res-sdl/sizenwse.BMP b/indra/newview/res-sdl/sizenwse.BMP
deleted file mode 100644
index 6d069fa7658e571f4bd1f7cd71e0fa3b6708f8d4..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 2102
zcmeH{XIKwh7{-68RI-aQA`zizi6W&%$X;!dBxIIRMB1`tg;12eD$&rAtV$^gWfx7O
zLgDRSK9=|W@_zGN=ef?gp8I~D`<(m3F)-5-r!lldK&jy*|2u{F4K&oHB%2bU22hZK
zO-P7Vty&>0ER2YV2%@5*v~JxRF)=a3#l?}3kf2SQHb_cJ(zb0|+O=y(`}XbW(4hkz
zJ9eZ~r%rV4+!-k;DWs*P>C&YOUAuNgMn(o%Sy{Su>qhtP-RaSz2R(cCL{3hQUcGwJ
zyLWHo<>l$qrw<AW3iR#Umwx^Fp{S@x|Ni|MFkk>mN=ghIIFLbu1~GW>V3d`WQBhH0
z$dDln9Xb?MRaMl~)KFJfM?*scO-)UP4I74*mKMW@4`;-P5ol{`qobq4$dMx%HEI;P
zy1I-WJsLedJ@obU88c=K1_lNg8X96`WQ4J?F(xJ^j2%0capT5eYHG^(@#C2=VFD8;
zPQ=X2j7gIwF?sT2rc9Z_)TvXMHf<Wyr%z|bj2X<FIg?qlW-)vAZ05|FgSojm78Vv*
zT3TXdWrel1H8wUj*xK4MckW!~&6|gvogMS%&&S^0o&^gQ;NalE!i5WQbaZ6VqD444
zIk9;0VwNmf!qTNnadviQ*|KFUU%s3bD^{>_<w{nqTE*(st8sC0!PV83HEY(ecI{f$
zty{<X_3LqSbHm-;oedi{uyNx?JUl$uv}qHYH*dz%(~~V*w&3OEg}1jiK0ZG9`ugJM
z=ZC+)KLG&&Y~8w*z`#JZZQI87?c3S0V+T8T?qt`lUF_byn>~B>uy^lXf`WqBw{IW&
z_wVPxfdd>oc#uPf4iOw2%;Cd_IdbF(M~@yQBqW4m$BuFQ_;F60I6-J=C}Ck?oIH7w
zQ>RW59v)6aL<FZ#pXSV&Gn_qpmUHLMasK>yE?l_4#fulYbm<b8FJI=$l`CAmdX>n?
zNTQ;mh>nit+O=!M#Kds@`gLyHxIt`eEOBvh#K*^zkdVO5n>R^JOe85OiR9#DQc_Y#
zO-<$2ty`p}rE&ZAZPL@zxpU_ZckkZi-o1O=zki<x4<3+_kwIo=CRtfoJbd_&?CflE
za&ma|=n=WOx#Z>L@%Zs$o;-O%ettd$1qD2P`jltSp7H$oa|#O!DJm-B#fulbeEE`B
zuU_%`^=sa|dBfYcZ+Z9b9mU1Pl$4b4{{4GCeE2|VX(?r8Wt5kfQ&CYtWo0E*RaJca
z_>oVaKJoeUXTE&-LUnaDH8nNV*4Fa%>sP*g`^NY0->IvsqrSeLA3uKZ^XE@~{rV+%
z-{1JJ4m5q2EwcrV{?XG$Ld%{vz=GA1Koi_N4(Y$UTfiG93x+o^n~8?zf7AZs(**s^
WD>sQX;(sJGn%m6H{+9kv2mS$!#fbO-

diff --git a/indra/newview/res-sdl/sizewe.BMP b/indra/newview/res-sdl/sizewe.BMP
deleted file mode 100644
index 878df453a4a9ed6ff177d690f1aab46e51c71dfc..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 2102
zcmeH{cT^8-6vsa)lqjhbp^$`7p)%4i8dMUZ$S9d9*%TEO$|wzGRfN#8nzFT!UC5|Z
z%AQ4$e)M|J(R)sRzvsB;+;i`9zjr?OIgg>4mMA|-O9WKwHKhg?q5-J4ON;+vgz7;7
z3xtpm&6+hsSXdYl5fPd<Z%&IAEoj-YC8DCDh>3~Os#Pn*#l>mex;1Uuv_V2b0!c|p
z+O}<rl#~?h+O<PkS{fM{8DwQ;Y2Us*a&mIW%gfWDLkBu`?1+Mb0-ZW_qI2iYbm`Is
zMMXuFl$7Y&wJY7ab)$Rt?kFoO)1yZZR8&;x*|R6As;czr)r;P}d()>+AJo*;=-an1
z{rdHzfB*idtE;1-p@F8RCIbcxVBo-k3>q{DEiEmywYAaF(P8l5!3-HPgrP%+GHlo|
zbaizZK72TOdV1*V>tkSGfT5uwBSws1<j9eX8a0a1qeo+8WQ4J?F(xJ^n3|e0X3QAI
zjvb4cnHlEh=2%!*FmBv9EG;b=KYlz`R#r@yFoB5^Co*Z$B&@BinLK$iQ>IM8#>NI)
zTU(}1oyxRn)3CF%WBT;z%$PBQnKNfHYt}66?d@@JaA5ZA**H2nGH1>l=FXkVym|AO
zKYu<87A#=l!i6|FIk9NbBAlI_adB~B@#4j}y1KGt$r6?>UCOd$%UHgAIV)DIVCBk{
ztXj2-)vH&tX3ZMh+}v<?cW3R|wX9pW4i66xJUu<}^73N+`t@wsumNvxZ+v`w@b&d&
z<Hn6_+O&zyn>XX<=ZC+)KU=nJVe8hdY}>Yt?c28#5D-9MU?4ko>>wy8h~VI0LPA0a
z4Gm@I&YgsXg%KVe&aPd%*u8r<d-m*M@7}%a+qaL1hzKGhBZ-QNV*mdA95`@*=;&w;
z9z4jQLx(tg_%JasF&sH^gri4~a_rbKVq;^8i;E*ZKAwbx1QHVyIez>&Cr+H;<jIqq
zI(3TEr%#iVltglJGASu3q^72lmX=0(dOBy$oFOA4gR^JPa_-zY&YwTeg$ozBc<~~a
zE?wgC<;z^Ta)r#yOtP}F$j;6tCnty8++40+y~?#~*SLQDI(d0{+_-Urn>TNA>((u9
z-@eVAJ9oHy_b&JD-6KCgpMrt{?%%)9g9i_I`0ycxg@rtN^oYlgAM@nN6P`YON>Nb}
z#l^*xl$7x7*)vK@ODQWWqrAMF=g*&0QBgr<WhF0Oyx`@_m%MuQir24S^XAPP-oAay
zyLaz+|NcE6K78Qg$B%sa^oh@(KT}mzMRj#GU%q_d>({T;)YMR0Tg$g^-}wIhJ9Tw+
zg8BZ^|KtYvwXFuxsA(Fu`H%d=p?=-JzI%c42UdR+yoP_Nv4a5n9bZ@1C_z*4f&#ze
a8>j!-LBo9i)t;bU6Z1D}>93*b8~6b<0EaOE

diff --git a/indra/newview/res-sdl/toolbuy.BMP b/indra/newview/res-sdl/toolbuy.BMP
deleted file mode 100644
index a00bdb2c58d3a4650eb93999d6252cede3028185..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 3126
zcmdUtF;W9D3`NZhUFc{iDLFw7K+nA?xD))zOa5qN#dsOJK$BHu>FY_}<o)CP)Gl_G
zf7A1NeIDA2BAM#XCms^5ef}SNyxFFeg>PR?{t*ARRQ(OgHTWDSr%0@>@}rU<(2`(&
z#F$^gnKe1WeDuBd<|wUKUh%JQ$@)?ptHkmItM~x%Fc<QDee?ag#`~k^??H<)ro{lI
zd?W)Ow0vKT-T^-f%qMvd&d%`VB^&c2Rx$8+!4yjn;gfu@=5v%!@P7Hf@qOhqLdUo~
z<18+h@dC)~mAAQ3nL~UQP?xb@MoFsth>qb?b-RwvD4C3^yx@+}=xCs0PfVQgF_9CW
zDV{Y(%~#{j9^p+0=4rjM<i|mM%c0DGuhJn@DZa;F0@uWnzY1RR7s7k~T6p3whe!Sn
PxcQsl@b|&t%kQ%v3>!<8

diff --git a/indra/newview/res-sdl/toolmediaopen.BMP b/indra/newview/res-sdl/toolmediaopen.BMP
deleted file mode 100644
index ac4b231994c1f3ccd69b04c35759fac271b1dbc4..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 3128
zcmeH{y$-@K41^8o1``t_BTs;s*?Di?3Qj$+EH^SVI7mpfl+?}7ch2?aay@Tlj1&4J
z+Tqz&vPUMe#{6!>HV&Y>EwMQ8pANiU;mS4TK;YhMk@eO5l24C#n)Lb!SBVt!0Rd18
zwi4uX<QpyJL&fruQ=Lh(gyl~qsMrkG3N44Z?Hl;RFj%G|SU7Sw`}P)aK2s!au_FgH
z*o}@;N=fIdL{PjfX;w}qCHnE<Ne?(qs#w~t=3^W&%Zln^KrGqjUHK{Sz@O@28wRKT
mWL3^$96uNC{K3cD;6S`3_#wm_Kb)mM>9(jk$o=3@5qSVkjf<oJ

diff --git a/indra/newview/res-sdl/toolopen.BMP b/indra/newview/res-sdl/toolopen.BMP
deleted file mode 100644
index 93c7e44b28d960eb0c67de79a5c6e3846dbdf0b2..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 3126
zcmc(hF;2uV6hwox9dtC5l=PAI0Q9+rkHQ^tBZ?e`o+8Yj@&D^2_Qr?;D{DDU_RajU
z*YG}Fp9Z!o`Zs)D^XFlB!3Yh{pC9$n#4vpRQya$dH&?>T7q(8nct53iNHh8v@HVOE
zB(Qjj8RMt4^h=1pg@Xje+>>cHHZzhxFGIHk_%dJXvxJv$^N$i##c4`qK7~XMM-j0W
zpFuwJ3V3G;Wj^#-Sp`PK{5_vEn}3ynwYXD7!@pMCJ=@YV9IdbWk19_2E$75KTw6%_
zxPO&!#z&YIOQ^)a^LL5tf3YRtF0vBF@r+*~OM)wFdsRX<8UC44Cx7Q3w>O}}xysuA
zW?oB-UDW5l9+B(b7TWzof+~G{ahxXe3eCuzxBX+wjeHjQKj-ThL8|4o)8eCz{~69r
zLj1Lr58x{s2DWhad&$m2g635MyyI#3R|&QXoqYP-6tbIPKHNXcY9-{W&WGo(Z*z|U
z4D??~`A0r;&Ig?GSAg3Hhj1%=u;Zn5#ZxmggYOc!1sOmzNnj9g&1~U99sBTL5~jk4
zg0D2Bwd2=RT7{JJc2<{sNmSvIK)mvH?C(4(Jqs=&W_H297=oi0_Ji#>#?0;!X7t_2
zJop+M;llRxQBl=D_$A!UTfF=`o_pL*(-ixv9COn0tnzp8k{`5kP?9y)zZ3W(+Ag0e
zJlnQIfaY-|@aMo|joZd&OqXYc;5+^iju#ksx%Vn#$(cHvl95FCZ^HGJvp%2FTl3++
o4bP{2afCuCj?)<HpytcIGsAxs?#VQNR;`UHZ1gR7yzs}t52xg|KmY&$

diff --git a/indra/newview/res-sdl/toolpause.BMP b/indra/newview/res-sdl/toolpause.BMP
deleted file mode 100644
index dd2c6857d28b9eb531819e1774e609e994e4bb37..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 3128
zcmeH{Jrcqo5Jpkxw6e0a^aPHzy_e+_xs|@j5{i{DLY6K&1IhC9KJpQGy`N_{$AkJ#
zxutS&SKgdE(tkNgnH#94J$fBjEUZ0y*%Qzh<EI)7=-xplR@td@J0F6C5SJ{ellED}
z#5JIj+xf~6mG1s1LsYuapZY07tD8UQeh49m1OL>miw7=-@X|WBI9_qQ_vZX8VZM02
zNSGoqj*llJ;CcP(Cr3-7xMfX^a1=bJbTy%hgV*>ba1@JtD|nG_2><2V!WEyxON(uo
UUkGY>vcKlGWEIHc;HWtF1ys3!wEzGB

diff --git a/indra/newview/res-sdl/toolpickobject.BMP b/indra/newview/res-sdl/toolpickobject.BMP
deleted file mode 100644
index 25469fc3a86c94b64c87866a6c1fdc227d41e7d8..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 2102
zcmdUvcQn^)7{EVDqN2T#kTjH3N=qpc(NHQXWktIrG?CKKBGS&Nv}h{HY9d9_FxmrA
zMn*<;e?Q!=dk*ej_uO-zbKdX!eBaOWJnu8kd9@7G#i<f?QBW3Way3hY8c;=RJ|co$
zxP+UC2#p#wqH*KKh>D8Rq)8LR#KdUYv?=1^;z&qH(5zWAnm2Dwixw@Al$1nDN{W^(
zThgjkD_Xa1O`A4tXxp|e?b@}Yef#!w=+J?V9XrygQztri?o5|1UFh1iE7H=^$jHbb
zD=SO4ZrzZRlcRh0?#Ro_qoAOGqM{-_dh|d^Nr|34d!nqYOs`(O=-s<FefspFZ{NPC
zsHo7dUqAZy?~kggDgy=#Kut}JfddCJXwV=A4<3xVx;jIK3}NWdp=fAmFl^W`h7TXk
zh!G<gIdUYUMvX#KQ<Kr7M>A&37__vs7&~?><Hn6cTU#3)9UaDxACIoCE)yn9Ku=E(
zeSLi<PMnB=fdPhwhD@3?iOG{EGiAyYrcRxTk&zM8rcGn|^ywHI8#80Z3}()p$*ftk
zFflQ~)YO#Ovu87B&K%~>or{^78T01NWB&a4n46npVPS!#r6pEYR#;nGvtYpjY;0_>
zwY6p8!i6kaw1~xv7qeu^5|%Dq%Ccq4SiXEYD^{#v<;s=V+1asb)hg`m?ODBgH4Y9A
zI66Aw<mAMfHEUSAb}j4Htz-TA^=#O%fsGqC;_U2<i;D}cuC8p_v<WviH#TqH%$6-%
zaCdiS>(;Go+qRAE+qbi0#|}I^JlMH&C%bm-V)yRd?Af!2y?giK>FJ4=mlyl??ZeyK
z8y_DZ_V3@1udgo$4jka%!Gjz+bcn-;4|C+m5sn@`%CTd|IDY&%etv%V`}-3R5I|sH
zASX_o;N;1ZoH})ipr9a5pFYi*GiNw^_AKYlo#XuZ^8^P66A}`_g$ozBc<~~aE?wgC
z<;z^Ta)ql`uM!#>%C&3PxPJXQVPRq1xN(E<@NjP4yh%hv1d)-EL`6jr9UV<fOboYf
z-QxD`+uXTxhr4(0a_`<f?%%&pY-}uXadE`Q$MfL90}>Jvc=+%kj~+cDF)@*(q$D0c
zeoS(5GEbg7Atfb+r%#{q?AbG(KYz}P7cWRnO(iWYjr8<%GBPrF`SK;NUcKV=>({(_
z^M<!?-}3I=JKn#4&xa2m`1tW7pFVveGc%K{tSqv#v-$k_GdVdq<mTq`<;xeoe*H>b
zULN`R`4kisP*_;Vw{PDlDk`G5xR{cX5=u);`TqSoWo2cQmzPsfQ9)&8B|m=r;OEbu
z{QC7vSl|CoXgF;_VGSDm18)FVg>8rn3>v@!Mm@Z`B%yDe$qS!p!JGt8IJBC-T7&x=
zuWPQq<5x$h<yu><j$eQGYVNP?Qlr<3UuW<C;&tNK-@HCtWgzTdo$_b>^<Y8x>I>?0
P799T9yuQ5t_47XfnucV}

diff --git a/indra/newview/res-sdl/toolpickobject2.BMP b/indra/newview/res-sdl/toolpickobject2.BMP
deleted file mode 100644
index 09df69e675e89c8797bf03c3a96095248e45fd3f..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 2102
zcmeH{cUX>X7>Ca^iHf9*hP04Ph&D+}*`ts>%c!griX??78D&&bX2VK$l)X0<Wu;{l
z3VGkRKHuk{_xtDj^Sh4YzVGLG&gXai?(4dr<FRxwl0y_mQeYss(yAE})Bq8!nIr_O
za0nL(3F_3TgQTP+Qc_Y#OG_goBZI80EOK&k)U8{WdiCldFE3C1`t@nhpaBXB3MeWn
zqNJom!-frM)Tj~4%E~lu+!z%V6`C|@f~u-2YHDgUZQ7J(&6?4?d2?E{Xo0%AIvN@p
zXliPrrKLs7mMziN)}~dfR_N&HpsTBko}M21`uZ3c7|^<PYudDFL)*4(F*G!!UAuO)
zZ{MB{9XimlV@Eo5>O|+xo$1o03thW*rCYad7#SJSy?b|h^yop)o;@)(Hl|mvUi9wW
z8xs=~OifKOGc&{7+#CxF3oI=yv9hwFPoF;Y?b{b?Yis)T>xYev4gLG~$JW*sJ3Bk<
z?d@@JaKO>gkpTk+;N;|lv$Hb;2M%P=pg{~CJeVOvhA?#KP=*Z~#_-|888Ko6BS(&8
z)TmLoxVYfz>dNTRqZu=13}eTR#m&u)apT4@e*AbQOqjsLi4&PLX%dqsPiD%LDNLO@
zm1)zaF@5@UX3Utu%$YNBcX!9b!-H9~W-)vAZ05|F!`!)Z@$~e>%gYOIZ*S(!o5%e5
z^I5Q90Sgx{WYMBU`1ts+c=2L<eSPus^JB@9B`jUKlx547;qUKHKtKS?moI0<iWLL~
z2C{PHN`iudShZ>u!NI|-UcH)-kPt#cLs_$C4Qtn~W!<`UgoTB%e*JnjY}i0}csLOe
z5p3MJk;uqMHf`F(=FOYgvSkZfw{9gWDvIdnXtr(J#`f*o*|B2>J9q9RCMJg1*jVD?
z;@Guo7xD4&?B2bbgoFeV6BF69XAgV#?q%P;eeB=Ap92RDaPZ(kl9G~0PEIBzC56<~
zR1O_F#Noq-IdbF(M~@!m*s)`zrKNHF_;J$H(>ZbC1Se0P<kYECoIZV;GiT0l_Uu{C
zojXTHMh554pXb7b3uI<yl9iRk#fulYbm<b8FJI=$l`CAmdX;O}u5tbPb#C0a!OfdD
zxpnInw{PF(&Ye5ly?d8?_wI53{(T-ic)-Jl4|(+H5sx1~=E;*MJbn6<?CflEa&pMc
z&E?s%XFPxYoV>g|^7Hd~@!|z9U%uqkt5>{!{hBv#-cV3bz}vTPDJ(3csHlkI;$lil
zN+>NY<=wk?ynp|m4<A18@#9Cz%E~A&FXz*zPkjFTnJ-_yP*G7qWo0E_zkcQ0w{Lv^
z{++6-Dq(&9$A8uV#P?J9vlZv{Z#=73d99$@PH@!Xjca%<X@1Io=c2UYxZs6<;NKD;
z*qC@;^%D!q|ASue6;}y?&`31@(qVzPI)ob)!>jA4RWHJ|>#OlE#x*x0|Jt#zcCknE
UckzG9F6^zC<f4-Qto!Tf50|-Q%>V!Z

diff --git a/indra/newview/res-sdl/toolpickobject3.BMP b/indra/newview/res-sdl/toolpickobject3.BMP
deleted file mode 100644
index fc286980501efa6815696413f6c8e268b37ae1d5..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 2102
zcmeH{cT~@B6vtl?C8LtaNJU6x6lH}5Au1K2C>lmavV~HT3Q?%622oi>XrP6P$|@Nt
zB73iF`F>T0-%<JF_xtnrob!C1d+zJL?{n`x&-v&ZYm4)9X^Vo2z*4N*B2<B&wCW=w
zIE7nyh=@?HUOnp9uaBsxC=D7kpkc#?h>3|IE-p@^Mvah=kf3qn#x!Ztgr-fK(yUoC
zBqb%0l9EDNTAJp~n<FD5LyHzIkd>9CWy_YdYSjukIXPOlZcUpuZD`xJE$!O1Ltb8<
z_U+rFprC-Fq9RI4N_6PZfsP$JqO7b;r%s*d+_^Jdx^zKBMTM?iyP~S9ikg}l>gwur
z>(-6#-MiDHM-O`T?1_ek2AZ0h^y<}%-o1OHrKN?owl;nG^r3IxzVz$YkN*ApGhn~~
zbaZqWIB+0?1`T5H;KAtX>Y}HohrYf(1_lNU88U>SLx*B$XvnZ(!x%n%I3q@kz{tpm
zkt0VkYSbu<jg2ueF~QW-l+mL{V`gTCxw$zO78Z;dGlsEa$6{$|$+&Uj7(aeI6DCZ+
z%E}6BYilM>oXDg}ld!R|!PeH6$&)8DWy%!n?Ch|&x5vT30Y^tircRy8v}x0rK7Bef
zX3W6J$%&aWXEJNnEN0K1&73)NaCUZP?%cV!xVSKH-aO{dpU;8?3s|^tA&V9*V)5d|
zELpOIrAwFM>gvj}Wy@H;d^syttia994R?2UR<2x$hldBAo}R2)wF)mUFIKN!jkmWq
zYu2p6$Hxa>Utj$E{8+noE$h~;WBvN|`1|{_VZ#PCZrn&fKmdV(fo$5eiOrigvt`Q`
zf`Wnw4h|+HB!sP7x3X>9Hnwly&W;^B*tv5jp`oFKg@q9w9!^9=1iN<aV)yRdL`Fuk
zXU`t??%hjNR20$C(Zs~Wuy5Z!_V3@%fddCPc<>;H4jm#kHkP=!I1V2^%#kBUh>wrw
z=+UDbJ9doY$B&bckU(N$B1uU}Bqt|x;=~C~o;=B^Q>REtNg*{gm9(@p($mw)$jIRI
z>C>D!bB42L&yty$Nmf=C+1c5gJ9m!r=g*UqlS6K9E_r!*T)1$7ix)3)>Cz=GU%t$h
zD_6+R&!?cEfU8%pQdn5XwQJY7e*HQ(ZrtGJ&6^Yz6>;m<EsBeaDJd!8_U+r;xpRlo
z(o*i;z019O_b4kX<Np2oJb3VchYug}=+Pq{KYq-UCr^0#^eNAtJ>&WF=e&6Ff|oB}
z^6J$qUcY|Ln>TNG`}QsG-o4}f`}dTWm-FGn2R?rM$fr-A`26`ZU%q_d>({S*`}U3R
z-@j8)Q6cQ_|Mg!@K=3cEE7jiy{x5jt#kJlq$o#j;e)3v^s^$EdrBYUvz9udRsFn+i
zKQ0ius=46&BS6Tiy|r+mO1Ol1YSIh5m7p#zEUXS*-DWNME8D77U)6PGmH&JpHEDj2
X5b!GX@7`Z_4I}*p1y<cJGCTVR3ixs)

diff --git a/indra/newview/res-sdl/toolplay.BMP b/indra/newview/res-sdl/toolplay.BMP
deleted file mode 100644
index 9c40d7dbecab270979b9a06fe4a7a0fe5ac1a56c..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 3128
zcmds%F>As=6vxwoLuiK3DT6}=3H<<4x*4*GG?U;e_yK}zhKvpoH^Eh$0!ro#0SA{3
zet>+2Oo4m=`^Q%fNz<6vm!%KxIPSgs{V)H^o%!*uNSAm+|BCkV-5w+jBT0Hh{`ra8
zWdhyjzmCJ<(ChUUi$!x^2@fsHYPZ|7*$i^*Lg1gz=QxgS+g221JRS!@z^FoeNFdTQ
z^*pcB=@^EwUawhHuKA>b-uL}}zpv}M<2c9T@h?J!d=fgHPSfdBRn^I45{BV@DkXeU
zNs`2M-BznL7z{R>O<k4h{NZr8-EJBA!XLQA>(6etGfk8Ie6uWDE|=YI7ysvKwW@1H
zVLkaz_e+*#+^_w9Us!qHB>1DzNYgaD4^b4|2Ps*F_ia9(mlV`ZiA!2{VU>EoVF&_)
zD)l#Oa-1gkLV_KRuOlW&G{+~yFUGSuPe&v6OmGsyq==g*SY7~*Am;{1m9MRm{f*B8
j#|8@dT<}6ZBm5_y7oOv@!>{>Gzy-e{IPsf<gD**6!DY&`

diff --git a/indra/newview/res-sdl/toolsit.BMP b/indra/newview/res-sdl/toolsit.BMP
deleted file mode 100644
index ca911ece719e9101d9615e23a32b8a4d84611e2b..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 3126
zcmcJPF>b>!5Cjz<UDBmVnKHcqKOntIe}P|c>u>N!DfB02_m)1NL|LK*N1%xlP0lWl
zNBs<k_s*UJ`fvQc%I~H7M1%+bf4u3Zfv)>~-g7)2Q=gv4n~=Ibfj=2)cu9F2hGBCe
zZ0~>zyD5PQfWv=nqwD*6upU{Fz+cL_=0p|5jeID|<V?CAlnPP`aywjDt#ygntB)ht
z0e6X%GGdlu9wXCZgD;$gPgoDYw>GA<0NL%_MR96yj#i@{I#37B0#pkGn4gp*u$G%G
zY<V^Fgln>dL`L62SeZjOl0Usi97(A22TFZWLU4B;=Rg7lubPkJEAgv6K0$EHgRCa(
z!aURVwP|EKOM+i67X*?J!A+V~(maqHHe#Y162JoP{9^CiF-UC4H#dMjqxETI6B)g!
z+?ANY;a>|`^LDc+0j;x1kWYzx<(E0(xIGC<#U1|bs@lzB$(a9s>OXNWx$MP(E>Xj;
z{%?GZDAgjU$2M^s9wUE>#gxQ8zO*cjg&E_>jK?Z<U#r)fJu8(m$391Krj^9RzsTN0
zRF6JoaV?mzXCsp$v6=j|n)!Z~A1B8E5=#zwp~yiYsbbMvIdME^wy--uBGY4sO9H*`
z1<OyT6X7USy9lLdrAQTgy*KjX*gBvP?}BXG6-ebqP;rZ2JD*9Q%9#P?<a&Q`i%mkC
zTJgULFNrFAei?9ic^Z<i6XEWb^3wvJ@+<#H8qiDmZ-hI4mbCa<^V{K((-MRHe{dN1
E0}{?_`2YX_

diff --git a/indra/newview/res-sdl/wait.BMP b/indra/newview/res-sdl/wait.BMP
deleted file mode 100644
index 26dec59afe10818db0cff219f91d41dc647dd754..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 2102
zcmeH{cQ}`87{@<KA*s-ysYqH>q>0cll2lSDEkz`0Xi2opc9gb4S<ys`(vSu%qfiQE
zM6?I`{o<U?Rln=}an7IT+}Cwq&+|T?@BM!7`+ctKH89hb<VR?WgPLHcRG(th1Hrkx
zbX_7QfWj0mVq!FC(13;w8zL?)PNPPRXxz9l5)u+fN=hOnB}J1aO^}wBrfJir$jHdh
ztXVUfH*Zdh7A=sKl|@cY4taTbTDELSt5&UO-MTex+O$DIK><ZYMcTG)OS^XMXy3j)
z9XfQNW5<qk>eLA(B_%p{?o5|1T~Jn5Mny%1u3fvLs;Wx2ZrxB*Q=@zL?)2!<gPuKm
z(yLc5diU;)y1F_V8XENJ(}%u&`_ivpKQuKp(bCeQfB*hyYil!LzyJmg9LS(SgBUz`
zFhhn6Vd&7I=;-L6tE-Eio*u)74MSgF9|Hpe3=It#K72SMMvP$O$dQa1H3}mmBaDrW
zF)=a0)YO#Gqeo+AX2zH?V=y;2XYAOqSXfvvZrnJ=j~~y32@|liv}EGMiC9@#F=^5y
zCQqKslqplNwzg*K)TvCHHVqpa8>Ua6&Wsr|m^pJMvu4d=_Uzf%+S)Q_&K%~>or|5F
z9rpJ2%$qk42L}fn9UYlJe?Cr5PApik0B2`s7A{<fi;D}37A<1&;>9dkvV^5em*VQ`
z%Ccq4SiXEYD^{#v<;s<;TD1x{H#b(VUX8oEJ8Rag!NbD?Pft(Qu3gKzb?aEaemxsD
zY+&QYjd*!^;qC2>kB<+&zP|YR`Qh*H&!$bA*t~f&TefUr>(;Go+qRAE+qbi0#}0Px
z+(|${0D*yl?Ao=9-Me=a6cogsJ$u-@cQ5<)?PLG`{Tw)OfP)7Qa_G<@f`fxOeE2X&
zjvOH*B!tk=P{P8(IC}Ib$BrE%JUpC;hzKGhBZ-QNB04&n<HwH^6B9#hY%C{EoZ#fi
zlbkwriqof0bLPw$&YnF>TwEOS@$n=iByjHBInJLy&xH#YxOnj*mo8l*F)@*(q$Dn1
zzRZ;?S4d7y=IYg}T)TFS>({Sy<HikAQc}2i^CqdOsoc7Ci`%zvbLY+-?%usiT3Q<E
z>FM0NcaQt`@AKfn10Ftn$fHM($jHbbGc%K{tSqv#vw8gZF;AX6Atxt?+}vF9^7454
z^eNAtJtIFqpXbk?^Wwz|3JMA+EG(p`sEC&@U-IhJD~gMYDJdzTw6v76vNB%3eoc9K
zITaNZym|A6%F0Trs;YSV_AT$;z2p7+_k8&9fsY?Q^6AqjK7anqmoH!V`t>W{zI~&*
zx|*7r8ft56h4cL%DJivee?q7g{Wbn2|Fc}QfdC8c;zx)S2=N~Z;r`bif3Tl|-!8Qd
z2}TrJ2o{m`Lh!e|z6DYB^#*n2zxP)^pHL<6_|;wTEcC7qQTQ(c(fH>J{vj99(|_aW
EJFbFWmH+?%

diff --git a/indra/newview/res-sdl/working.BMP b/indra/newview/res-sdl/working.BMP
deleted file mode 100644
index 26dec59afe10818db0cff219f91d41dc647dd754..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 2102
zcmeH{cQ}`87{@<KA*s-ysYqH>q>0cll2lSDEkz`0Xi2opc9gb4S<ys`(vSu%qfiQE
zM6?I`{o<U?Rln=}an7IT+}Cwq&+|T?@BM!7`+ctKH89hb<VR?WgPLHcRG(th1Hrkx
zbX_7QfWj0mVq!FC(13;w8zL?)PNPPRXxz9l5)u+fN=hOnB}J1aO^}wBrfJir$jHdh
ztXVUfH*Zdh7A=sKl|@cY4taTbTDELSt5&UO-MTex+O$DIK><ZYMcTG)OS^XMXy3j)
z9XfQNW5<qk>eLA(B_%p{?o5|1T~Jn5Mny%1u3fvLs;Wx2ZrxB*Q=@zL?)2!<gPuKm
z(yLc5diU;)y1F_V8XENJ(}%u&`_ivpKQuKp(bCeQfB*hyYil!LzyJmg9LS(SgBUz`
zFhhn6Vd&7I=;-L6tE-Eio*u)74MSgF9|Hpe3=It#K72SMMvP$O$dQa1H3}mmBaDrW
zF)=a0)YO#Gqeo+AX2zH?V=y;2XYAOqSXfvvZrnJ=j~~y32@|liv}EGMiC9@#F=^5y
zCQqKslqplNwzg*K)TvCHHVqpa8>Ua6&Wsr|m^pJMvu4d=_Uzf%+S)Q_&K%~>or|5F
z9rpJ2%$qk42L}fn9UYlJe?Cr5PApik0B2`s7A{<fi;D}37A<1&;>9dkvV^5em*VQ`
z%Ccq4SiXEYD^{#v<;s<;TD1x{H#b(VUX8oEJ8Rag!NbD?Pft(Qu3gKzb?aEaemxsD
zY+&QYjd*!^;qC2>kB<+&zP|YR`Qh*H&!$bA*t~f&TefUr>(;Go+qRAE+qbi0#}0Px
z+(|${0D*yl?Ao=9-Me=a6cogsJ$u-@cQ5<)?PLG`{Tw)OfP)7Qa_G<@f`fxOeE2X&
zjvOH*B!tk=P{P8(IC}Ib$BrE%JUpC;hzKGhBZ-QNB04&n<HwH^6B9#hY%C{EoZ#fi
zlbkwriqof0bLPw$&YnF>TwEOS@$n=iByjHBInJLy&xH#YxOnj*mo8l*F)@*(q$Dn1
zzRZ;?S4d7y=IYg}T)TFS>({Sy<HikAQc}2i^CqdOsoc7Ci`%zvbLY+-?%usiT3Q<E
z>FM0NcaQt`@AKfn10Ftn$fHM($jHbbGc%K{tSqv#vw8gZF;AX6Atxt?+}vF9^7454
z^eNAtJtIFqpXbk?^Wwz|3JMA+EG(p`sEC&@U-IhJD~gMYDJdzTw6v76vNB%3eoc9K
zITaNZym|A6%F0Trs;YSV_AT$;z2p7+_k8&9fsY?Q^6AqjK7anqmoH!V`t>W{zI~&*
zx|*7r8ft56h4cL%DJivee?q7g{Wbn2|Fc}QfdC8c;zx)S2=N~Z;r`bif3Tl|-!8Qd
z2}TrJ2o{m`Lh!e|z6DYB^#*n2zxP)^pHL<6_|;wTEcC7qQTQ(c(fH>J{vj99(|_aW
EJFbFWmH+?%

diff --git a/install.xml b/install.xml
new file mode 100644
index 00000000000..497ed9cc026
--- /dev/null
+++ b/install.xml
@@ -0,0 +1,1242 @@
+<?xml version="1.0" ?>
+<llsd>
+<map>
+    <key>binaries</key>
+    <map>
+      <key>GL</key>
+      <map>
+        <key>copyright</key>
+        <string>Copyright (c) 1991-2000 Silicon Graphics, Inc.</string>
+        <key>description</key>
+        <string>A standard for 3D Graphics rendering engine.</string>
+        <key>license</key>
+        <string>GL</string>
+        <key>packages</key>
+        <map>
+          <key>darwin</key>
+          <map>
+            <key>md5sum</key>
+            <string>7b147162449c216a016dc2bfe2a4380c</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/GL-darwin-20080610.tar.bz2</uri>
+          </map>
+          <key>linux</key>
+          <map>
+            <key>md5sum</key>
+            <string>d78e3e4d8c33e5233d88ec8096307ee8</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/GL-linux-20080610.tar.bz2</uri>
+          </map>
+          <key>windows</key>
+          <map>
+            <key>md5sum</key>
+            <string>e0736f3f17fe980ef68b8a65ef90011d</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/GL-windows-20080611.tar.bz2</uri>
+          </map>
+        </map>
+      </map>
+      <key>SDL</key>
+      <map>
+        <key>copyright</key>
+        <string>Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002  Sam Lantinga</string>
+        <key>description</key>
+        <string>The Simple DirectMedia Layer libraries are used for handling input and basic window/GL setup on the Linux client.</string>
+        <key>license</key>
+        <string>lgpl</string>
+        <key>packages</key>
+        <map>
+          <key>darwin</key>
+          <map>
+            <key>md5sum</key>
+            <string>d7500212b654e9380c4dc24166285407</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/SDL-1.2.5-darwin-20080610.tar.bz2</uri>
+          </map>
+          <key>linux</key>
+          <map>
+            <key>md5sum</key>
+            <string>c7f3da1da96ccc1f26ec92634e7771b8</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/SDL-1.2.5-linux-20080610.tar.bz2</uri>
+          </map>
+          <key>windows</key>
+          <map>
+            <key>md5sum</key>
+            <string>1c081cc35730919781e23b916a56722e</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/SDL-1.2.5-windows-20080611.tar.bz2</uri>
+          </map>
+        </map>
+      </map>
+      <key>apr_suite</key>
+      <map>
+        <key>license</key>
+        <string>apache 2.0</string>
+        <key>packages</key>
+        <map>
+          <key>darwin</key>
+          <map>
+            <key>md5sum</key>
+            <string>ee3014eda3d5f912c1e3ec21bbdddcaf</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/apr_suite-1.2.8-darwin-20080610.tar.bz2</uri>
+          </map>
+          <key>linux</key>
+          <map>
+            <key>md5sum</key>
+            <string>4b0f2cc3ec66162be6cf0b13186bc838</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/apr_suite-1.2.8-linux-20080610.tar.bz2</uri>
+          </map>
+          <key>windows</key>
+          <map>
+            <key>md5sum</key>
+            <string>979257a1b24d9200be58872d9c658114</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/apr_suite-1.2.8-windows-20080611.tar.bz2</uri>
+          </map>
+        </map>
+      </map>
+      <key>ares</key>
+      <map>
+        <key>copyright</key>
+        <string>Copyright 1998 by the Massachusetts Institute of Technology.</string>
+        <key>description</key>
+        <string>Performs DNS requests and name resolves asynchronously. Used with libcurl to keep all HTTP operations async.</string>
+        <key>license</key>
+        <string>c-ares</string>
+        <key>packages</key>
+        <map>
+          <key>darwin</key>
+          <map>
+            <key>md5sum</key>
+            <string>19aae45edfd29a269cd10af7729489e7</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/ares-1.3.0-darwin-20080610.tar.bz2</uri>
+          </map>
+          <key>linux</key>
+          <map>
+            <key>md5sum</key>
+            <string>8b163aa08cf4a5b70f93519137fa6cf0</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/ares-1.3.0-linux-20080610.tar.bz2</uri>
+          </map>
+          <key>windows</key>
+          <map>
+            <key>md5sum</key>
+            <string>bbbe5e5f8504125e2ab813f666fd61ba</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/ares-1.3.0-windows-20080611.tar.bz2</uri>
+          </map>
+        </map>
+      </map>
+      <key>berkeley</key>
+      <map>
+        <key>copyright</key>
+        <string>Copyright (c) 1990-1999 Sleepycat Software. All rights reserved.</string>
+        <key>description</key>
+        <string>a high-performance, embedded database library</string>
+        <key>license</key>
+        <string>sleepycat</string>
+      </map>
+      <key>boost</key>
+      <map>
+        <key>copyright</key>
+        <string>various</string>
+        <key>description</key>
+        <string>A set of portable C++ libraries which provide a wide set of functionality. Used primarily for tokenization. </string>
+        <key>license</key>
+        <string>boost</string>
+        <key>packages</key>
+        <map>
+          <key>darwin</key>
+          <map>
+            <key>md5sum</key>
+            <string>4afb62f563bb2fd9d43fc071e2eeb167</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/boost-1.32.0-darwin-20080610.tar.bz2</uri>
+          </map>
+          <key>linux</key>
+          <map>
+            <key>md5sum</key>
+            <string>14aba81fa0993e420882314a3fea5127</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/boost-1.32.0-linux-20080610.tar.bz2</uri>
+          </map>
+          <key>windows</key>
+          <map>
+            <key>md5sum</key>
+            <string>2b627d2a598f883950c21bae52738176</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/boost-1.32.0-windows-20080611.tar.bz2</uri>
+          </map>
+        </map>
+      </map>
+      <key>curl</key>
+      <map>
+        <key>copyright</key>
+        <string>Copyright (c) 1996 - 2008, Daniel Stenberg, &lt;daniel@haxx.se&gt;.</string>
+        <key>description</key>
+        <string>Client-side URL transfer library. Handles moving data across the net in many different protocols. Used to GET/POST/PUT/DELETE web resources. </string>
+        <key>license</key>
+        <string>curl</string>
+        <key>packages</key>
+        <map>
+          <key>darwin</key>
+          <map>
+            <key>md5sum</key>
+            <string>722c0e0eccf28b00e0f759362ef81ddf</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/curl-7.16.0-darwin-20080610.tar.bz2</uri>
+          </map>
+          <key>linux</key>
+          <map>
+            <key>md5sum</key>
+            <string>cd89f34324acf1222078298974c1dfb3</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/curl-7.16.0-linux-20080610.tar.bz2</uri>
+          </map>
+          <key>windows</key>
+          <map>
+            <key>md5sum</key>
+            <string>08d17bc997494a852537b0c7b4425d47</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/curl-7.16.0-windows-20080611.tar.bz2</uri>
+          </map>
+        </map>
+      </map>
+      <key>elfio</key>
+      <map>
+        <key>license</key>
+        <string>lgpl</string>
+        <key>packages</key>
+        <map>
+          <key>linux</key>
+          <map>
+            <key>md5sum</key>
+            <string>e4f5109f8c119613d7b2c3706d786e43</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/elfio-1.0.3-linux-20080610.tar.bz2</uri>
+          </map>
+        </map>
+      </map>
+      <key>expat</key>
+      <map>
+        <key>copyright</key>
+        <string>Copyright (c) 1998, 1999, 2000 Thai Open Source Software Center Ltd</string>
+        <key>description</key>
+        <string>An XML parser library written in C. It is a stream-oriented parser in which an application registers handlers for things the parser might find in the XML document (like start tags).</string>
+        <key>license</key>
+        <string>mit</string>
+        <key>packages</key>
+        <map>
+          <key>darwin</key>
+          <map>
+            <key>md5sum</key>
+            <string>93760196ea3e851b1a334743816e189d</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/expat-1.95.8-darwin-20080610.tar.bz2</uri>
+          </map>
+          <key>linux</key>
+          <map>
+            <key>md5sum</key>
+            <string>8e990a9e3c30c7c37c147ac0df70a323</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/expat-1.95.8-linux-20080610.tar.bz2</uri>
+          </map>
+          <key>windows</key>
+          <map>
+            <key>md5sum</key>
+            <string>e58538aae9982209e095bbf6660c8d6b</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/expat-1.95.8-windows-20080611.tar.bz2</uri>
+          </map>
+        </map>
+      </map>
+      <key>fmod</key>
+      <map>
+        <key>copyright</key>
+        <string>FMOD Sound System, copyright (C) Firelight Technologies Pty, Ltd., 1994-2006.</string>
+        <key>description</key>
+        <string>Audio engine and mp3 stream decoder .</string>
+        <key>license</key>
+        <string>fmod</string>
+        <key>packages</key>
+        <map>
+          <key>darwin</key>
+          <map>
+            <key>md5sum</key>
+            <string>d13cc275db503492fc87c7b36c1c49d3</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/fmod-3.75-darwin-20080610.tar.bz2</uri>
+          </map>
+          <key>linux</key>
+          <map>
+            <key>md5sum</key>
+            <string>85caf188852f2cfede49ff12a3d928d5</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/fmod-3.75-linux-20080610.tar.bz2</uri>
+          </map>
+          <key>windows</key>
+          <map>
+            <key>md5sum</key>
+            <string>1a55dec2907821f5f785648a660126c3</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/fmod-3.75-windows-20080611.tar.bz2</uri>
+          </map>
+        </map>
+      </map>
+      <key>fontconfig</key>
+      <map>
+        <key>license</key>
+        <string>mit</string>
+        <key>packages</key>
+        <map>
+          <key>linux</key>
+          <map>
+            <key>md5sum</key>
+            <string>6630fea6b036f3e937608b3d4186adfa</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/fontconfig-2.2.3-linux-20080610.tar.bz2</uri>
+          </map>
+        </map>
+      </map>
+      <key>freetype</key>
+      <map>
+        <key>copyright</key>
+        <string>Copyright</string>
+        <key>description</key>
+        <string>Font</string>
+        <key>license</key>
+        <string>freetype</string>
+        <key>packages</key>
+        <map>
+          <key>darwin</key>
+          <map>
+            <key>md5sum</key>
+            <string>b34eb8af0a2b736a1d70d8b32b3e009d</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/freetype-2.1.5-darwin-20080610.tar.bz2</uri>
+          </map>
+          <key>linux</key>
+          <map>
+            <key>md5sum</key>
+            <string>a52b44f89b7422c565da5f4a5c7f582c</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/freetype-2.1.5-linux-20080610.tar.bz2</uri>
+          </map>
+          <key>windows</key>
+          <map>
+            <key>md5sum</key>
+            <string>5b1aae54ea3313a9f424719323eb5ad3</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/freetype-2.1.5-windows-20080611.tar.bz2</uri>
+          </map>
+        </map>
+      </map>
+      <key>glh_linear</key>
+      <map>
+        <key>copyright</key>
+        <string>Copyright (c) 2000 Cass Everitt; Copyright (c) 2000 NVIDIA Corporation; All rights reserved.</string>
+        <key>description</key>
+        <string>nVidia NVParse SDK: platform-indepenedent C++ Apple OpenGL helper library</string>
+        <key>license</key>
+        <string>glh_linear</string>
+        <key>packages</key>
+        <map>
+          <key>darwin</key>
+          <map>
+            <key>md5sum</key>
+            <string>64ea2fca2ca9457b9305ec416c574a61</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/glh_linear-darwin-20080610.tar.bz2</uri>
+          </map>
+          <key>linux</key>
+          <map>
+            <key>md5sum</key>
+            <string>6fd9c490b7460e2b433381050495e48e</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/glh_linear-linux-20080610.tar.bz2</uri>
+          </map>
+          <key>windows</key>
+          <map>
+            <key>md5sum</key>
+            <string>e286dc9f7ce90856a7ac291874b6fc34</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/glh_linear-windows-20080611.tar.bz2</uri>
+          </map>
+        </map>
+      </map>
+      <key>google</key>
+      <map>
+        <key>license</key>
+        <string>mit</string>
+        <key>packages</key>
+        <map>
+          <key>linux</key>
+          <map>
+            <key>md5sum</key>
+            <string>6df3889822deb8b80ac6f6d421a35137</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/google-linux-20080610.tar.bz2</uri>
+          </map>
+        </map>
+      </map>
+      <key>gstreamer</key>
+      <map>
+        <key>license</key>
+        <string>lgpl</string>
+        <key>packages</key>
+        <map>
+          <key>linux</key>
+          <map>
+            <key>md5sum</key>
+            <string>5e0e4ee938b56a118c90d51447009ba9</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/gstreamer-linux-20080610.tar.bz2</uri>
+          </map>
+        </map>
+      </map>
+      <key>gtk-atk-pango-glib</key>
+      <map>
+        <key>copyright</key>
+        <string>Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald</string>
+        <key>description</key>
+        <string>Libraries associated with GTK for gui features. atk: interfaces for accessibility; glib: low-level core functionality for using GTK+ and GNOME; pango: layout/rendering of text w/ emphasis on internationalization.</string>
+        <key>license</key>
+        <string>lgpl</string>
+        <key>packages</key>
+        <map>
+          <key>linux</key>
+          <map>
+            <key>md5sum</key>
+            <string>72801a23b43586b822c8a1dfc1a6e313</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/gtk-atk-pango-glib-linux-20080610.tar.bz2</uri>
+          </map>
+          <key>windows</key>
+          <map>
+            <key>md5sum</key>
+            <string>492b04de6ba02167cef7a04e8dc5e748</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/gtk-atk-pango-glib-windows-20080611.tar.bz2</uri>
+          </map>
+        </map>
+      </map>
+      <key>havok</key>
+      <map>
+        <key>copyright</key>
+        <string>on file</string>
+        <key>description</key>
+        <string>Physics engine for the simulator</string>
+        <key>license</key>
+        <string>havok</string>
+        <key>packages</key>
+        <map>
+          <key>darwin</key>
+          <map>
+            <key>md5sum</key>
+            <string>7d3d2d71c08729fe881a059af1d9b938</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/havok-4.6-darwin-20080610.tar.bz2</uri>
+          </map>
+          <key>linux</key>
+          <map>
+            <key>md5sum</key>
+            <string>36a892b451b5cbc8f72d6f1153f55cf8</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/havok-4.6-linux-20080610.tar.bz2</uri>
+          </map>
+          <key>windows</key>
+          <map>
+            <key>md5sum</key>
+            <string>b63a2f20df43c68062c6b8e77a2da455</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/havok-4.6-windows-20080611.tar.bz2</uri>
+          </map>
+        </map>
+      </map>
+      <key>jpeglib</key>
+      <map>
+        <key>copyright</key>
+        <string>Copyright (c) 2003, Yves Piguet.</string>
+        <key>description</key>
+        <string>An open-source JPEG-2000 library; a slower alternative to Kadaku. Used in the open source release </string>
+        <key>license</key>
+        <string>jpeglib</string>
+        <key>packages</key>
+        <map>
+          <key>darwin</key>
+          <map>
+            <key>md5sum</key>
+            <string>62cc07ef64f31f493f55e618c915125b</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/jpeglib-6b-darwin-20080610.tar.bz2</uri>
+          </map>
+          <key>linux</key>
+          <map>
+            <key>md5sum</key>
+            <string>6bb623a88116002124686248ebd35fd9</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/jpeglib-6b-linux-20080610.tar.bz2</uri>
+          </map>
+          <key>windows</key>
+          <map>
+            <key>md5sum</key>
+            <string>b28852df715401eae575ccd9d5c84cf1</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/jpeglib-6b-windows-20080611.tar.bz2</uri>
+          </map>
+        </map>
+      </map>
+      <key>kdu</key>
+      <map>
+        <key>copyright</key>
+        <string>on file</string>
+        <key>description</key>
+        <string>Kakadu (KDU) JPEG-2000 decoder library. </string>
+        <key>license</key>
+        <string>kdu</string>
+        <key>packages</key>
+        <map>
+          <key>darwin</key>
+          <map>
+            <key>md5sum</key>
+            <string>a351af91b5a102d1b6fe95b5d1ab4347</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/kdu-5.2.1-darwin-20080610.tar.bz2</uri>
+          </map>
+          <key>linux</key>
+          <map>
+            <key>md5sum</key>
+            <string>155ecb6f704c1082aa6565537ada024b</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/kdu-5.2.1-linux-20080610.tar.bz2</uri>
+          </map>
+          <key>windows</key>
+          <map>
+            <key>md5sum</key>
+            <string>5cd4c0db91e3687290de685203634ab8</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/kdu-5.2.1-windows-20080611.tar.bz2</uri>
+          </map>
+        </map>
+      </map>
+      <key>libpng</key>
+      <map>
+        <key>copyright</key>
+        <string>Copyright (c) 2004, 2006-2008 Glenn Randers-Pehrson</string>
+        <key>description</key>
+        <string>An open, extensible image format with lossless compression. PNG Reference Library </string>
+        <key>license</key>
+        <string>libpng</string>
+        <key>packages</key>
+        <map>
+          <key>darwin</key>
+          <map>
+            <key>md5sum</key>
+            <string>2e41f3710b5769e58d2e00944feb7bee</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/libpng-1.2.18-darwin-20080610.tar.bz2</uri>
+          </map>
+          <key>linux</key>
+          <map>
+            <key>md5sum</key>
+            <string>642dd0ba1fa7ac55fae555cd622b36f6</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/libpng-1.2.18-linux-20080610.tar.bz2</uri>
+          </map>
+          <key>windows</key>
+          <map>
+            <key>md5sum</key>
+            <string>0274c3d4a3b7cce8eede207348438f3b</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/libpng-1.2.18-windows-20080611.tar.bz2</uri>
+          </map>
+        </map>
+      </map>
+      <key>libstdc++</key>
+      <map>
+        <key>copyright</key>
+        <string>Copyright (C) 2007 Free Software Foundation, Inc. &lt;http://fsf.org/&gt;</string>
+        <key>description</key>
+        <string>Bundled library.</string>
+        <key>license</key>
+        <string>gpl</string>
+        <key>packages</key>
+        <map>
+          <key>linux</key>
+          <map>
+            <key>md5sum</key>
+            <string>8c39ea5d1feebbe9b8ee5d5933eeabe5</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/libstdc++-6.0-linux-20080610.tar.bz2</uri>
+          </map>
+        </map>
+      </map>
+      <key>libuuid</key>
+      <map>
+        <key>copyright</key>
+        <string>Copyright (C) 2007 Free Software Foundation, Inc. &lt;http://fsf.org/&gt;</string>
+        <key>description</key>
+        <string>Generates UUIDs under Linux. Originally a part of the ext2fs filesystem. Also see lluuid.cpp for all platforms. Part of the e2fsprogs package.</string>
+        <key>license</key>
+        <string>lgpl</string>
+        <key>packages</key>
+        <map>
+          <key>linux</key>
+          <map>
+            <key>md5sum</key>
+            <string>cf68933edc8d556d6901179a7993bbc0</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/libuuid-linux-20080610.tar.bz2</uri>
+          </map>
+        </map>
+      </map>
+      <key>libxml</key>
+      <map>
+        <key>license</key>
+        <string>mit</string>
+        <key>packages</key>
+        <map>
+          <key>linux</key>
+          <map>
+            <key>md5sum</key>
+            <string>3a71ea5ff924e70c6786ef2c202f553b</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/libxml-2.6.24-linux-20080610.tar.bz2</uri>
+          </map>
+        </map>
+      </map>
+      <key>llmozlib</key>
+      <map>
+        <key>license</key>
+        <string>mozillaPL</string>
+        <key>packages</key>
+        <map>
+          <key>darwin</key>
+          <map>
+            <key>md5sum</key>
+            <string>e2969baf0e39f6a586141a75c3360330</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/llmozlib-darwin-20080610.tar.bz2</uri>
+          </map>
+          <key>linux</key>
+          <map>
+            <key>md5sum</key>
+            <string>55ab8be3f18e27095f7ecae7d90804d5</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/llmozlib-linux-20080610.tar.bz2</uri>
+          </map>
+          <key>windows</key>
+          <map>
+            <key>md5sum</key>
+            <string>73a0bc8ea770a4035175161d2b1e903f</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/llmozlib-windows-20080611.tar.bz2</uri>
+          </map>
+        </map>
+      </map>
+      <key>mesa</key>
+      <map>
+        <key>copyright</key>
+        <string>Copyright (C) 1999-2007  Brian Paul All Rights Reserved.</string>
+        <key>description</key>
+        <string>Mesa 3-D graphics library. Provides the required Apple OpenGL headers under Linux.</string>
+        <key>license</key>
+        <string>mesa</string>
+        <key>packages</key>
+        <map>
+          <key>linux</key>
+          <map>
+            <key>md5sum</key>
+            <string>461891f44070780d9ca0b26988b6f44e</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/mesa-7.0-linux-20080610.tar.bz2</uri>
+          </map>
+          <key>windows</key>
+          <map>
+            <key>md5sum</key>
+            <string>e0a27aef7b2de0d5c78c753f72214e8d</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/mesa-7.0-windows-20080611.tar.bz2</uri>
+          </map>
+        </map>
+      </map>
+      <key>mysql</key>
+      <map>
+        <key>license</key>
+        <string>gpl</string>
+        <key>packages</key>
+        <map>
+          <key>darwin</key>
+          <map>
+            <key>md5sum</key>
+            <string>a60de9d31aa3dfab8851f8c2dfa3f8dc</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/mysql-darwin-20080610.tar.bz2</uri>
+          </map>
+          <key>windows</key>
+          <map>
+            <key>md5sum</key>
+            <string>813e8621ca3cd5a720f709620927070f</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/mysql-windows-20080611.tar.bz2</uri>
+          </map>
+        </map>
+      </map>
+      <key>ndofdev</key>
+      <map>
+        <key>copyright</key>
+        <string>(c) 2008 Linden Lab.</string>
+        <key>description</key>
+        <string>in use on windows and darwin for joystick support.</string>
+        <key>license</key>
+        <string>linden</string>
+        <key>packages</key>
+        <map>
+          <key>darwin</key>
+          <map>
+            <key>md5sum</key>
+            <string>dae6e00c7eed6bacdecd639c4f5cef1d</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/ndofdev-darwin-20080610.tar.bz2</uri>
+          </map>
+          <key>linux</key>
+          <map>
+            <key>md5sum</key>
+            <string>ccaf379968c886258d5390d06ff1a2c0</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/ndofdev-linux-20080610.tar.bz2</uri>
+          </map>
+          <key>windows</key>
+          <map>
+            <key>md5sum</key>
+            <string>af8249252bcd3782606bf17cdc145ea4</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/ndofdev-windows-20080611.tar.bz2</uri>
+          </map>
+        </map>
+      </map>
+      <key>ogg-vorbis</key>
+      <map>
+        <key>copyright</key>
+        <string>Copyright (C) 2008 Xiph.org Foundation</string>
+        <key>description</key>
+        <string>Ogg: container format Vorbis: audio compression scheme</string>
+        <key>license</key>
+        <string>ogg-vorbis</string>
+        <key>packages</key>
+        <map>
+          <key>darwin</key>
+          <map>
+            <key>md5sum</key>
+            <string>59d3f15d89d9433f931f480878f46d4c</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/ogg-vorbis-1.03-1.1.2-darwin-20080610.tar.bz2</uri>
+          </map>
+          <key>linux</key>
+          <map>
+            <key>md5sum</key>
+            <string>54a29d28fbce6dd6abb875975a42acf1</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/ogg-vorbis-1.03-1.1.2-linux-20080610.tar.bz2</uri>
+          </map>
+          <key>windows</key>
+          <map>
+            <key>md5sum</key>
+            <string>2800543038e88c233976a2301e67325f</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/ogg-vorbis-1.03-1.1.2-windows-20080611.tar.bz2</uri>
+          </map>
+        </map>
+      </map>
+      <key>openSSL</key>
+      <map>
+        <key>license</key>
+        <string>openSSL</string>
+        <key>packages</key>
+        <map>
+          <key>darwin</key>
+          <map>
+            <key>md5sum</key>
+            <string>5da0ef41618a024795508f5c93d61754</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/openSSL-0.9.7c-darwin-20080610.tar.bz2</uri>
+          </map>
+          <key>linux</key>
+          <map>
+            <key>md5sum</key>
+            <string>fb54b93f881e587363b134f42e2f1c0b</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/openSSL-0.9.7c-linux-20080610.tar.bz2</uri>
+          </map>
+          <key>windows</key>
+          <map>
+            <key>md5sum</key>
+            <string>0f0e8ea5014f2112f2d04a85a0b8720e</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/openSSL-0.9.7c-windows-20080611.tar.bz2</uri>
+          </map>
+        </map>
+      </map>
+      <key>openjpeg</key>
+      <map>
+        <key>copyright</key>
+        <string>Copyright (c) 2002-2007, Communications and Remote Sensing Laboratory, Universite catholique de Louvain (UCL), Belgium</string>
+        <key>description</key>
+        <string>An open-source JPEG-2000 library; a slower alternative to Kadaku. Used in the open source release </string>
+        <key>license</key>
+        <string>openjpeg</string>
+        <key>packages</key>
+        <map>
+          <key>darwin</key>
+          <map>
+            <key>md5sum</key>
+            <string>e169d2372539fc96b72dc59aa7a656e6</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/openjpeg-1.2-darwin-20080610.tar.bz2</uri>
+          </map>
+          <key>linux</key>
+          <map>
+            <key>md5sum</key>
+            <string>8b2733f8e4b7d58db7392d7a6837675f</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/openjpeg-1.2-linux-20080610.tar.bz2</uri>
+          </map>
+          <key>windows</key>
+          <map>
+            <key>md5sum</key>
+            <string>9f7ae7023fad3c823a303c57610973c5</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/openjpeg-1.2-windows-20080611.tar.bz2</uri>
+          </map>
+        </map>
+      </map>
+      <key>quicktime</key>
+      <map>
+        <key>copyright</key>
+        <string>Copyright (C) 1990-2006 by Apple Computer, Inc., all rights reserved.</string>
+        <key>description</key>
+        <string>Separate download. Used to play in-world video clips on a prim. </string>
+        <key>license</key>
+        <string>quicktime</string>
+        <key>packages</key>
+        <map>
+          <key>windows</key>
+          <map>
+            <key>md5sum</key>
+            <string>7a2e6fc89b1ef027f3a36ebb46fb0c8a</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/quicktime-windows-20080611.tar.bz2</uri>
+          </map>
+        </map>
+      </map>
+      <key>smartheap</key>
+      <map>
+        <key>copyright</key>
+        <string>Copyright (C) 1991-2000 Compuware Corporation. All Rights Reserved.</string>
+        <key>description</key>
+        <string>Memory Management Library</string>
+        <key>license</key>
+        <string>smartheap</string>
+        <key>packages</key>
+        <map>
+          <key>darwin</key>
+          <map>
+            <key>md5sum</key>
+            <string>f54131b5f228e805c64c2e4e6c96579a</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/smartheap-6.0.2-darwin-20080610.tar.bz2</uri>
+          </map>
+          <key>linux</key>
+          <map>
+            <key>md5sum</key>
+            <string>499208522bf7d7843e1d014d64214e06</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/smartheap-6.0.2-linux-20080610.tar.bz2</uri>
+          </map>
+          <key>windows</key>
+          <map>
+            <key>md5sum</key>
+            <string>78fd47017f21d11eae43bca3e38a3e1e</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/smartheap-6.0.2-windows-20080611.tar.bz2</uri>
+          </map>
+        </map>
+      </map>
+      <key>tut</key>
+      <map>
+        <key>copyright</key>
+        <string>Copyright 2002-2006 Vladimir Dyuzhev</string>
+        <key>description</key>
+        <string>C++ Template Unit Test</string>
+        <key>license</key>
+        <string>bsd</string>
+        <key>packages</key>
+        <map>
+          <key>darwin</key>
+          <map>
+            <key>md5sum</key>
+            <string>fe8045e47dc505786e1d45d480190f96</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/tut-darwin-20080610.tar.bz2</uri>
+          </map>
+          <key>linux</key>
+          <map>
+            <key>md5sum</key>
+            <string>2e28af0b6124a472b9aac6f2225dca8d</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/tut-linux-20080610.tar.bz2</uri>
+          </map>
+          <key>windows</key>
+          <map>
+            <key>md5sum</key>
+            <string>953cc124943a05e474687a127d2e88d9</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/tut-windows-20080611.tar.bz2</uri>
+          </map>
+        </map>
+      </map>
+      <key>unistd</key>
+      <map>
+        <key>copyright</key>
+        <string>(c) 2008 Linden Lab.</string>
+        <key>description</key>
+        <string>Placeholder file to make flex happy on windows.</string>
+        <key>license</key>
+        <string>linden</string>
+        <key>packages</key>
+        <map>
+          <key>windows</key>
+          <map>
+            <key>md5sum</key>
+            <string>6353aff33d7d03b22055aec76f53a866</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/unistd-windows-20080611.tar.bz2</uri>
+          </map>
+        </map>
+      </map>
+      <key>vivox</key>
+      <map>
+        <key>copyright</key>
+        <string> </string>
+        <key>license</key>
+        <string>vivox</string>
+        <key>packages</key>
+        <map>
+          <key>darwin</key>
+          <map>
+            <key>md5sum</key>
+            <string>121199818b827e147179c3d3494815e1</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/vivox-darwin-20080610.tar.bz2</uri>
+          </map>
+          <key>linux</key>
+          <map>
+            <key>md5sum</key>
+            <string>c58f03002a9c452d4c8cb1874d3ac44b</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/vivox-linux-20080610.tar.bz2</uri>
+          </map>
+          <key>windows</key>
+          <map>
+            <key>md5sum</key>
+            <string>fce352d6d99233b2dac1cd51add0f0d1</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/vivox-windows-20080611.tar.bz2</uri>
+          </map>
+        </map>
+      </map>
+      <key>xmlrpc-epi</key>
+      <map>
+        <key>copyright</key>
+        <string>Copyright 2000 Epinions, Inc.</string>
+        <key>description</key>
+        <string>Implementation of the xmlrpc protocol in C that provides an API for developers to serialize RPC requests to and from XML. </string>
+        <key>license</key>
+        <string>xmlrpc-epi</string>
+        <key>packages</key>
+        <map>
+          <key>darwin</key>
+          <map>
+            <key>md5sum</key>
+            <string>d116c41b95ec41adee7bbfdbf2c74ffb</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/xmlrpc-epi-0.51-darwin-20080610.tar.bz2</uri>
+          </map>
+          <key>linux</key>
+          <map>
+            <key>md5sum</key>
+            <string>dd08d9f03c9fb84406aa31494e4e5663</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/xmlrpc-epi-0.51-linux-20080610.tar.bz2</uri>
+          </map>
+          <key>windows</key>
+          <map>
+            <key>md5sum</key>
+            <string>e904dd2653fdb9dac15cc452a74f4bcb</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/xmlrpc-epi-0.51-windows-20080611.tar.bz2</uri>
+          </map>
+        </map>
+      </map>
+      <key>zlib</key>
+      <map>
+        <key>copyright</key>
+        <string>Copyright (C) 1995-2003 Jean-loup Gailly and Mark Adler</string>
+        <key>description</key>
+        <string>A Massively Spiffy Yet Delicately Unobtrusive Compression Library (Also Free, Not to Mention Unencumbered by Patents)</string>
+        <key>license</key>
+        <string>zlib</string>
+        <key>packages</key>
+        <map>
+          <key>darwin</key>
+          <map>
+            <key>md5sum</key>
+            <string>99be09df2ec92282293761cd9ae242ac</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/zlib-1.1.4-darwin-20080610.tar.bz2</uri>
+          </map>
+          <key>linux</key>
+          <map>
+            <key>i686</key>
+            <map>
+              <key>md5sum</key>
+              <string>7efbde55728369e76ab9d46bff60c87f</string>
+              <key>url</key>
+              <uri>http://codex.lindenlab.com/~aaronb/install_pkgs/zlib-1.2.1-linux-i686.tar.gz</uri>
+            </map>
+            <key>md5sum</key>
+            <string>a93da3d0a1fcf05c70d545991e0be227</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/zlib-1.1.4-linux-20080610.tar.bz2</uri>
+          </map>
+          <key>windows</key>
+          <map>
+            <key>md5sum</key>
+            <string>7058b7aeded6d8bb10bd0de8539f8392</string>
+            <key>url</key>
+            <uri>http://user.lindenlab.com/~jenn/install_pkgs/zlib-1.1.4-windows-20080611.tar.bz2</uri>
+          </map>
+        </map>
+      </map>
+    </map>
+    <key>licenses</key>
+    <map>
+      <key>GL</key>
+      <map>
+        <key>url</key>
+        <string>http://www.xfree86.org/4.4.0/LICENSE9.html#sgi</string>
+      </map>
+      <key>apache 2.0</key>
+      <map>
+        <key>url</key>
+        <string>http://www.apache.org/licenses/LICENSE-2.0</string>
+      </map>
+      <key>boost</key>
+      <map>
+        <key>url</key>
+        <string>http://www.boost.org/LICENSE_1_0.txt</string>
+      </map>
+      <key>bsd</key>
+      <map>
+        <key>url</key>
+        <string>http://www.opensource.org/licenses/bsd-license.php</string>
+      </map>
+      <key>c-ares</key>
+      <map>
+        <key>text</key>
+        <string>http://daniel.haxx.se/projects/c-ares/license.html</string>
+      </map>
+      <key>curl</key>
+      <map>
+        <key>url</key>
+        <string>http://curl.haxx.se/docs/copyright.html</string>
+      </map>
+      <key>fmod</key>
+      <map>
+        <key>url</key>
+        <string>http://www.fmod.org/ifmodlicense.html</string>
+      </map>
+      <key>freetype</key>
+      <map>
+        <key>url</key>
+        <string>http://freetype.sourceforge.net/FTL.TXT</string>
+      </map>
+      <key>glh_linear</key>
+      <map>
+        <key>text</key>
+        <string>glh - is a platform-indepenedent C++ OpenGL helper library 
+
+Copyright (c) 2000 Cass Everitt
+Copyright (c) 2000 NVIDIA Corporation
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or
+without modification, are permitted provided that the following
+conditions are met:
+
+Redistributions of source code must retain the above
+copyright notice, this list of conditions and the following
+disclaimer. 
+Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following
+disclaimer in the documentation and/or other materials
+provided with the distribution. 
+The names of contributors to this software may not be used
+to endorse or promote products derived from this software
+without specific prior written permission. 
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
+POSSIBILITY OF SUCH DAMAGE. 
+
+Cass Everitt - cass@r3.nu
+
+</string>
+      </map>
+      <key>gpl</key>
+      <map>
+        <key>url</key>
+        <string>http://www.gnu.org/licenses/gpl.html</string>
+      </map>
+      <key>havok</key>
+      <map>
+        <key>text</key>
+        <string>on file</string>
+      </map>
+      <key>intel</key>
+      <map>
+        <key>text</key>
+        <string>Haven't yet found.
+</string>
+      </map>
+      <key>jpeglib</key>
+      <map>
+        <key>text</key>
+        <string>http://nyctergatis.com/jpeglib/</string>
+      </map>
+      <key>kdu</key>
+      <map>
+        <key>text</key>
+        <string>jpeg2000 license #00024 (on file)</string>
+      </map>
+      <key>lgpl</key>
+      <map>
+        <key>url</key>
+        <string>http://www.gnu.org/copyleft/lgpl.html</string>
+      </map>
+      <key>libpng</key>
+      <map>
+        <key>text</key>
+        <string>http://www.libpng.org/pub/png/src/libpng-LICENSE.txt</string>
+      </map>
+      <key>linden</key>
+      <map>
+        <key>text</key>
+        <string>Using this license for Linden Lab owned library files</string>
+      </map>
+      <key>mesa</key>
+      <map>
+        <key>url</key>
+        <string>http://www.mesa3d.org/license.html</string>
+      </map>
+      <key>mit</key>
+      <map>
+        <key>text</key>
+        <string>http://www.jclark.com/xml/copying.txt</string>
+      </map>
+      <key>mozillaPL</key>
+      <map>
+        <key>url</key>
+        <string>http://www.mozilla.org/MPL/MPL-1.1.html</string>
+      </map>
+      <key>ogg-vorbis</key>
+      <map>
+        <key>url</key>
+        <string>http://www.xiph.org/licenses/bsd/</string>
+      </map>
+      <key>openSSL</key>
+      <map>
+        <key>url</key>
+        <string>http://www.openssl.org/source/license.html</string>
+      </map>
+      <key>openjpeg</key>
+      <map>
+        <key>url</key>
+        <string>http://www.openjpeg.org/BSDlicense.txt</string>
+      </map>
+      <key>quicktime</key>
+      <map>
+        <key>text</key>
+        <string>ENGLISH
+
+Apple Computer, Inc.
+QuickTime 7 Software Developer Kit (SDK) 
+Software License Agreement
+
+PLEASE READ THIS SOFTWARE LICENSE AGREEMENT ("LICENSE") BEFORE USING THE SOFTWARE.  BY USING THE SOFTWARE, YOU ARE AGREEING TO BE BOUND BY THE TERMS OF THIS LICENSE.  IF YOU ARE ACCESSING THE SOFTWARE ELECTRONICALLY, SIGNIFY YOUR AGREEMENT TO BE BOUND BY THE TERMS OF THIS LICENSE BY CLICKING THE "AGREE/ACCEPT" BUTTON. IF YOU DO NOT AGREE TO THE TERMS OF THIS LICENSE, RETURN THE APPLE SOFTWARE TO THE PLACE WHERE YOU OBTAINED IT FOR A REFUND OR, IF THE SOFTWARE WAS ACCESSED ELECTRONICALLY, CLICK "DISAGREE/DECLINE".
+
+IMPORTANT NOTE: To the extent this software may be used to reproduce materials, it is licensed to you only for reproduction of materials you are authorized or legally permitted to reproduce.  
+
+1. License.  Any software, tools, utilities, sample code, documentation, fonts, API?s, header files and other materials accompanying this License, whether on disk, print or electronic documentation, in read only memory, or any other media, (collectively, the "Apple Software") are licensed, not sold, to you by Apple Computer, Inc. ("Apple") for use only under the terms of this License, and Apple reserves all rights not expressly granted to you.  The rights granted herein are limited to Apple's and its licensors' intellectual property rights in the Apple Software and do not include any other patents or intellectual property rights.   You own the media on which the Apple Software is recorded but Apple and/or Apple's licensor(s) retain ownership of the Apple Software itself.  The Apple Software in this package and any copies, modifications and derivative works that this License authorizes you to make are subject to this License.  
+
+2. Permitted Uses and Restrictions.  You may use the Apple Software to develop application software that is compatible with, and runs only on Mac OS X and/or Windows platforms with QuickTime installed.  Except for compiling header files and linking libraries as necessary to build your application software, you have no right to modify, incorporate into or include in combination with your own programs, license or otherwise redistribute any portion of the Apple Software. Your software application may not interfere with the functionality of QuickTime Player or the QuickTime Plug-in, including but not limited to file type or MIME type associations that are registered to QuickTime. You may make only as many internal use copies of the Apple Software as reasonably necessary to use the Apple Software as permitted in this paragraph and distribute such copies only to your employees whose job duties require them to so use the Apple Software. You must reproduce on each copy of the Apple Software or portion thereof, the Apple copyright notice and any other proprietary legends that were on the original copy of the Apple Software.  Except as expressly permitted in this License, you may not decompile, reverse engineer, disassemble, modify, rent, lease, loan, sublicense, distribute or create derivative works based upon the Apple Software in whole or part.  Your rights under this License will terminate automatically without notice from Apple if you fail to comply with any term(s) of this License. In addition, Apple reserves the right to terminate this License if a new version of Apple's operating system software or the Apple Software is released which is incompatible with the Apple Software.  
+
+3. Disclaimer Of Warranty.  The Apple Software may be "alpha", "beta", "development", pre-release, untested, and/or not fully tested and may contain errors that could cause failures or loss of data, be incomplete or contain inaccuracies.  YOU EXPRESSLY ACKNOWLEDGE AND AGREE THAT USE OF THE APPLE SOFTWARE IS AT YOUR SOLE RISK AND THAT THE ENTIRE RISK AS TO SATISFACTORY QUALITY, PERFORMANCE, ACCURACY AND EFFORT IS WITH YOU. EXCEPT FOR THE LIMITED WARRANTY ON MEDIA SET FORTH ABOVE AND TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE APPLE SOFTWARE IS PROVIDED "AS IS", WITH ALL FAULTS AND WITHOUT WARRANTY OF ANY KIND, AND APPLE AND APPLE'S LICENSORS (COLLECTIVELY REFERRED TO AS "APPLE" FOR THE PURPOSES OF SECTIONS 4 AND 5) HEREBY DISCLAIM ALL WARRANTIES AND CONDITIONS WITH RESPECT TO THE APPLE SOFTWARE, EITHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES AND/OR CONDITIONS OF MERCHANTABILITY, OF SATISFACTORY QUALITY, OF FITNESS FOR A PARTICULAR PURPOSE, OF ACCURACY, OF QUIET ENJOYMENT, AND NON-INFRINGEMENT OF THIRD PARTY RIGHTS.  APPLE DOES NOT WARRANT AGAINST INTERFERENCE WITH YOUR ENJOYMENT OF THE APPLE SOFTWARE, THAT THE FUNCTIONS CONTAINED IN THE APPLE SOFTWARE WILL MEET YOUR REQUIREMENTS, THAT THE OPERATION OF THE APPLE SOFTWARE WILL BE UNINTERRUPTED OR ERROR-FREE, OR THAT DEFECTS IN THE APPLE SOFTWARE WILL BE CORRECTED. NO ORAL OR WRITTEN INFORMATION OR ADVICE GIVEN BY APPLE OR AN APPLE AUTHORIZED REPRESENTATIVE SHALL CREATE A WARRANTY.  SHOULD THE APPLE SOFTWARE PROVE DEFECTIVE, YOU ASSUME THE ENTIRE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.  SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES OR LIMITATIONS ON APPLICABLE STATUTORY RIGHTS OF A CONSUMER, SO THE ABOVE EXCLUSION AND LIMITATIONS MAY NOT APPLY TO YOU.  
+
+4. Limitation Of Liability. TO THE EXTENT NOT PROHIBITED BY LAW, IN NO EVENT SHALL APPLE BE LIABLE FOR PERSONAL INJURY, OR ANY INCIDENTAL, SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES WHATSOEVER, INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF PROFITS, LOSS OF DATA, BUSINESS INTERRUPTION OR ANY OTHER COMMERCIAL DAMAGES OR LOSSES, ARISING OUT OF OR RELATED TO YOUR USE OR INABILITY TO USE THE APPLE SOFTWARE, HOWEVER CAUSED, REGARDLESS OF THE THEORY OF LIABILITY (CONTRACT, TORT OR OTHERWISE) AND EVEN IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME JURISDICTIONS DO NOT ALLOW THE LIMITATION OF LIABILITY FOR PERSONAL INJURY, OR OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS LIMITATION MAY NOT APPLY TO YOU.  In no event shall Apple's total liability to you for all damages (other than as may be required by applicable law in cases involving personal injury) exceed the amount of fifty dollars ($50.00).  The foregoing limitations will apply even if the above stated remedy fails of its essential purpose.
+
+5. Export Control. You may not use or otherwise export or reexport the Apple Product except as authorized by United States law and the laws of the jurisdiction in which the Apple Product was obtained. In particular, but without limitation, the Apple Product may not be exported or re-exported (a) into any U.S. embargoed countries or (b) to anyone on the U.S. Treasury Department's list of Specially Designated Nationals or the U.S. Department of Commerce Denied Person?s List or Entity List.  By using the Apple Product, you represent and warrant that you are not located in any such country or on any such list. 
+
+6. Government End Users.  The Apple Software and related documentation are "Commercial Items", as that term is defined at 48 C.F.R. ?2.101, consisting of "Commercial Computer Software" and "Commercial Computer Software Documentation", as such terms are used in 48 C.F.R. ?12.212 or 48 C.F.R. ?227.7202, as applicable.  Consistent with 48 C.F.R. ?12.212 or 48 C.F.R. ?227.7202-1through 227.7202-4, as applicable, the Commercial Computer Software and Commercial Computer Software Documentation are being licensed to U.S. Government end users (a) only as Commercial Items and (b) with only those rights as are granted to all other end users pursuant to the terms and conditions herein.  Unpublished-rights reserved under the copyright laws of the United States.
+
+7. Controlling Law and Severability.  This License will be governed by and construed in accordance with the laws of the State of California, as applied to agreements entered into and to be performed entirely within California between California residents. This License shall not be governed by the United Nations Convention on Contracts for the International Sale of Goods, the application of which is expressly excluded. If for any reason a court of competent jurisdiction finds any provision, or portion thereof, to be unenforceable, the remainder of this License shall continue in full force and effect.  
+
+8. Complete Agreement.  This License constitutes the entire agreement between the parties with respect to the use of the Apple Software licensed hereunder and supersedes all prior or contemporaneous understandings regarding such subject matter.  No amendment to or modification of this License will be binding unless in writing and signed by Apple. Any translation of this License is done for local requirements and in the event of a dispute between the English and any non-English versions, the English version of this License shall govern.
+
+EA0300
+</string>
+      </map>
+      <key>sleepycat</key>
+      <map>
+        <key>url</key>
+        <string>http://opensource.org/licenses/sleepycat.php</string>
+      </map>
+      <key>smartheap</key>
+      <map>
+        <key>text</key>
+        <string>on file
+</string>
+      </map>
+      <key>things</key>
+      <map>
+      </map>
+      <key>vivox</key>
+      <map>
+        <key>text</key>
+        <string>on file</string>
+      </map>
+      <key>xmlrpc-epi</key>
+      <map>
+        <key>url</key>
+        <string>http://xmlrpc-epi.sourceforge.net/main.php?t=license</string>
+      </map>
+      <key>zlib</key>
+      <map>
+        <key>url</key>
+        <string>http://www.gzip.org/zlib/zlib_license.html</string>
+      </map>
+    </map>
+  </map>
+</llsd>
diff --git a/scripts/install.py b/scripts/install.py
index 7421d697f67..7a1d57aaa70 100755
--- a/scripts/install.py
+++ b/scripts/install.py
@@ -34,7 +34,6 @@
 """
 
 import copy
-import errno
 import md5
 import optparse
 import os
@@ -73,18 +72,18 @@ def __init__(self, pkgname, url, md5sum, cache_dir, platform_path):
     def __str__(self):
         return "ifile{%s:%s}" % (self.pkgname, self.url)
 
-    def _is_md5_match(self):
-        hasher = md5.new(file(self.filename).read())
+    def _is_md5sum_match(self):
+        hasher = md5.new(file(self.filename, 'rb').read())
         if hasher.hexdigest() == self.md5sum:
             return  True
         return False
 
     def is_match(self, platform):
         """@brief Test to see if this ifile is part of platform
-@param platform The target platform. Eg, win32 or linux/i686/gcc/3.3
-@return Returns True if the ifile is in the platform.
+        @param platform The target platform. Eg, windows or linux/i686/gcc/3.3
+        @return Returns True if the ifile is in the platform.
         """
-        if self.platform_path == 'common':
+        if self.platform_path[0] == 'common':
             return True
         req_platform_path = platform.split('/')
         #print "platform:",req_platform_path
@@ -96,21 +95,20 @@ def is_match(self, platform):
                 return False
         #print "match!"
         return True
-                               
 
     def fetch_local(self):
-        print "Looking for:",self.filename
+        #print "Looking for:",self.filename
         if not os.path.exists(self.filename):
-            print "not there -- fetching"
-        elif self.md5sum and not self._is_md5_match():
-            print "Found, but md5 does not match."
+            pass
+        elif self.md5sum and not self._is_md5sum_match():
+            print "md5 mismatch:", self.filename
             os.remove(self.filename)
         else:
-            print "Found matching package"
+            print "Found matching package:", self.filename
             return
         print "Downloading",self.url,"to local file",self.filename
         urllib.urlretrieve(self.url, self.filename)
-        if self.md5sum and not self._is_md5_match():
+        if self.md5sum and not self._is_md5sum_match():
             raise RuntimeError("Error matching md5 for %s" % self.url)
 
 class LicenseDefinition(object):
@@ -121,7 +119,7 @@ def __init__(self, definition):
         #   blessed : ...
         # }
         self._definition = definition
-    
+
 
 class BinaryDefinition(object):
     def __init__(self, definition):
@@ -138,7 +136,7 @@ def _ifiles_from(self, tree, pkgname, cache_dir):
 
     def _ifiles_from_path(self, tree, pkgname, cache_dir, path):
         ifiles = []
-        if tree.has_key('url'):
+        if 'url' in tree:
             ifiles.append(InstallFile(
                 pkgname,
                 tree['url'],
@@ -159,10 +157,10 @@ def _ifiles_from_path(self, tree, pkgname, cache_dir, path):
 
     def ifiles(self, pkgname, platform, cache_dir):
         """@brief return a list of appropriate InstallFile instances to install
-@param pkgname The name of the package to be installed, eg 'tut'
-@param platform The target platform. Eg, win32 or linux/i686/gcc/3.3
-@param cache_dir The directory to cache downloads.
-@return Returns a list of InstallFiles which are part of this install
+        @param pkgname The name of the package to be installed, eg 'tut'
+        @param platform The target platform. Eg, windows or linux/i686/gcc/3.3
+        @param cache_dir The directory to cache downloads.
+        @return Returns a list of InstallFiles which are part of this install
         """
         if 'packages' not in self._definition:
             return []
@@ -172,13 +170,16 @@ def ifiles(self, pkgname, platform, cache_dir):
             cache_dir)
         if platform == 'all':
             return all_ifiles
-        return [ifile for ifile in all_ifiles if ifile.is_match(platform)]
+        #print "Considering", len(all_ifiles), "packages for", pkgname
+        # split into 2 lines because pychecker thinks it might return none.
+        files = [ifile for ifile in all_ifiles if ifile.is_match(platform)]
+        return files
 
 class InstalledPackage(object):
     def __init__(self, definition):
         # looks like:
-        # { url1 : [file1,file2,...],
-        #   url2 : [file1,file2,...],...
+        # { url1 : { files: [file1,file2,...], md5sum:... },
+        #   url2 : { files: [file1,file2,...], md5sum:... },...
         # }
         self._installed = {}
         for url in definition:
@@ -188,13 +189,23 @@ def urls(self):
         return self._installed.keys()
 
     def files_in(self, url):
-        return self._installed[url]
+        return self._installed[url].get('files', [])
+
+    def get_md5sum(self, url):
+        return self._installed[url].get('md5sum', None)
 
     def remove(self, url):
         self._installed.pop(url)
 
     def add_files(self, url, files):
-        self._installed[url] = files
+        if url not in self._installed:
+            self._installed[url] = {}
+        self._installed[url]['files'] = files
+
+    def set_md5sum(self, url, md5sum):
+        if url not in self._installed:
+            self._installed[url] = {}
+        self._installed[url]['md5sum'] = md5sum
 
 class Installer(object):
     def __init__(self, install_filename, installed_filename, dryrun):
@@ -203,17 +214,17 @@ def __init__(self, install_filename, installed_filename, dryrun):
         self._installed_filename = installed_filename
         self._installed_changed = False
         self._dryrun = dryrun
-        self._binaries = {}
+        self._installables = {}
         self._licenses = {}
         self._installed = {}
         self.load()
 
     def load(self):
         if os.path.exists(self._install_filename):
-            install = llsd.parse(file(self._install_filename).read())
+            install = llsd.parse(file(self._install_filename, 'rb').read())
             try:
                 for name in install['binaries']:
-                    self._binaries[name] = BinaryDefinition(
+                    self._installables[name] = BinaryDefinition(
                         install['binaries'][name])
             except KeyError:
                 pass
@@ -223,7 +234,7 @@ def load(self):
             except KeyError:
                 pass
         if os.path.exists(self._installed_filename):
-            installed = llsd.parse(file(self._installed_filename).read())
+            installed = llsd.parse(file(self._installed_filename, 'rb').read())
             try:
                 bins = installed['binaries']
                 for name in bins:
@@ -234,7 +245,7 @@ def load(self):
     def _write(self, filename, state):
         print "Writing state to",filename
         if not self._dryrun:
-            file(filename, 'w').write(llsd.format_xml(state))
+            file(filename, 'wb').write(llsd.format_pretty_xml(state))
 
     def save(self):
         if self._install_changed:
@@ -242,10 +253,10 @@ def save(self):
             state['licenses'] = {}
             for name in self._licenses:
                 state['licenses'][name] = self._licenses[name]._definition
-            #print "self._binaries:",self._binaries
+            #print "self._installables:",self._installables
             state['binaries'] = {}
-            for name in self._binaries:
-                state['binaries'][name] = self._binaries[name]._definition
+            for name in self._installables:
+                state['binaries'][name] = self._installables[name]._definition
             self._write(self._install_filename, state)
         if self._installed_changed:
             state = {}
@@ -256,92 +267,146 @@ def save(self):
                 bin[name] = self._installed[name]._installed
             self._write(self._installed_filename, state)
 
-    def is_license_info_valid(self):
-        valid = True
-        for bin in self._binaries:
-            binary = self._binaries[bin]._definition
-            if not binary.has_key('license'):
-                valid = False
-                print >>sys.stderr, "No license info for binary", bin + '.'
-                continue
-            if binary['license'] not in self._licenses:
-                valid = False
-                lic = binary['license']
-                print >>sys.stderr, "Missing license info for '" + lic + "'",
-                print >>sys.stderr, 'in binary', bin + '.'
-        return valid
+    def is_valid_license(self, bin):
+        "@brief retrun true if we have valid license info for binary."
+        binary = self._installables[bin]._definition
+        if 'license' not in binary:
+            print >>sys.stderr, "No license info found for", bin
+            print >>sys.stderr, 'Please add the license with the',
+            print >>sys.stderr, '--add-installable option. See', sys.argv[0], '--help'
+            return False
+        if binary['license'] not in self._licenses:
+            lic = binary['license']
+            print >>sys.stderr, "Missing license info for '" + lic + "'.",
+            print >>sys.stderr, 'Please add the license with the',
+            print >>sys.stderr, '--add-license option. See', sys.argv[0],
+            print >>sys.stderr, '--help'
+            return False
+        return True
+
+    def list_installables(self):
+        "Return a list of all known binaries."
+        return self._installables.keys()
 
     def detail_binary(self, name):
         "Return a binary definition detail"
-        try:
-            detail = self._binaries[name]._definition
-            return detail
-        except KeyError:
-            return None
+        return self._installables[name]._definition
+
+    def list_licenses(self):
+        "Return a list of all known licenses."
+        return self._licenses.keys()
 
-    def _update_field(self, binary, field):
+    def detail_license(self, name):
+        "Return a license definition detail"
+        return self._licenses[name]._definition
+
+    def list_installed(self):
+        "Return a list of installed packages."
+        return self._installed.keys()
+
+    def _update_field(self, binary, field, value):
         """Given a block and a field name, add or update it.
         @param binary[in,out] a dict containing all the details about a binary.
         @param field the name of the field to update.
+        @param value the value of the field to update; if omitted, interview
+                     will ask for value.
         """
-        if binary.has_key(field):
-            print "Update value for '" + field + "'"
-            print "(Leave blank to keep current value)"
-            print "Current Value:  '" + binary[field] + "'"
-        else:
-            print "Specify value for '" + field + "'"
-        value = raw_input("Enter New Value: ")
-        if binary.has_key(field) and not value:
-            pass
-        elif value:
+        if value:
             binary[field] = value
+        else:
+            if field in binary:
+                print "Update value for '" + field + "'"
+                print "(Leave blank to keep current value)"
+                print "Current Value:  '" + binary[field] + "'"
+            else:
+                print "Specify value for '" + field + "'"
+            new_value = raw_input("Enter New Value: ")
+            if field in binary and not new_value:
+                pass
+            elif new_value:
+                binary[field] = new_value
 
-    def _add_package(self, binary):
-        """Add an url for a platform path to the binary.
-        @param binary[in,out] a dict containing all the details about a binary."""
-        print """\
-Please enter a new package location and url. Some examples:
-common -- specify a package for all platforms
-linux -- specify a package for all arch and compilers on linux
-darwin/universal -- specify a mac os x universal
-win32/i686/vs/2003 -- specify a windows visual studio 2003 package"""
-        target = raw_input("Package path: ")
-        url = raw_input("Package URL:  ")
-        md5sum = raw_input("Package md5:  ")
-        path = target.split('/')
-        if not binary.has_key('packages'):
+        self._install_changed = True
+        return True
+
+    def _update_installable(self, name, platform, url, md5sum):
+        """Update installable entry with specific package information.
+        @param binary[in,out] a dict containing all the details about a binary.
+        @param platform Platform info, i.e. linux/i686, windows/i686 etc.
+        @param url URL of tar file
+        @param md5sum md5sum of tar file
+        """
+        binary  = self._installables[name]._definition
+        path = platform.split('/')
+        if 'packages' not in  binary:
             binary['packages'] = {}
         update = binary['packages']
         for child in path:
-            if not update.has_key(child):
+            if child not in update:
                 update[child] = {}
             parent = update
             update = update[child]
         parent[child]['url'] = llsd.uri(url)
         parent[child]['md5sum'] = md5sum
 
-    def adopt_binary(self, name):
-        "Interactively pull a new binary into the install"
-        if not self._binaries.has_key(name):
-            print "Adding binary '" + name + "'."
-            self._binaries[name] = BinaryDefinition({})
+        self._install_changed = True
+        return True
+
+
+    def add_installable_package(self, name, **kwargs):
+        """Add an url for a platform path to the binary.
+        @param binary[in,out] a dict containing all the details about a binary.
+        """
+        platform_help_str = """\
+Please enter a new package location and url. Some examples:
+common -- specify a package for all platforms
+linux -- specify a package for all arch and compilers on linux
+darwin/universal -- specify a mac os x universal
+windows/i686/vs/2003 -- specify a windows visual studio 2003 package"""
+        if name not in self._installables:
+            print "Error: must add library with --add-installable or " \
+                  +"--add-installable-metadata before using " \
+                  +"--add-installable-package option"
+            return False
         else:
             print "Updating binary '" + name + "'."
-        binary  = self._binaries[name]._definition
+        for arg in ('platform', 'url', 'md5sum'):
+            if not kwargs[arg]:
+                if arg == 'platform': print platform_help_str
+                kwargs[arg] = raw_input("Package "+arg+":")
+        path = kwargs['platform'].split('/')
+
+        return self._update_installable(name, kwargs['platform'], 
+                        kwargs['url'], kwargs['md5sum'])
+
+    def add_installable_metadata(self, name, **kwargs):
+        """Interactively add (only) library metadata into install, 
+        w/o adding binary"""
+        if name not in self._installables:
+            print "Adding installable '" + name + "'."
+            self._installables[name] = BinaryDefinition({})
+        else:
+            print "Updating installable '" + name + "'."
+        binary  = self._installables[name]._definition
         for field in ('copyright', 'license', 'description'):
-            self._update_field(binary, field)
-        self._add_package(binary)
-        print "Adopted binary '" + name + "':"
-        pprint.pprint(self._binaries[name])
-        self._install_changed = True
+            self._update_field(binary, field, kwargs[field])
+        print "Added installable '" + name + "':"
+        pprint.pprint(self._installables[name])
+
         return True
 
-    def orphan_binary(self, name):
-        self._binaries.pop(name)
+    def add_installable(self, name, **kwargs):
+        "Interactively pull a new binary into the install"
+        ret_a = self.add_installable_metadata(name, **kwargs)
+        ret_b = self.add_installable_package(name, **kwargs)
+        return (ret_a and ret_b)
+
+    def remove_installable(self, name):
+        self._installables.pop(name)
         self._install_changed = True
 
     def add_license(self, name, text, url):
-        if self._licenses.has_key(name):
+        if name in self._licenses:
             print "License '" + name + "' being overwritten."
         definition = {}
         if url:
@@ -358,47 +423,77 @@ def remove_license(self, name):
         self._licenses.pop(name)
         self._install_changed = True
 
-    def _determine_install_set(self, ifiles):
-        """@brief determine what to install
-@param ifiles A list of InstallFile instances which are necessary for this install
-@return Returns the tuple (ifiles to install, ifiles to remove)"""
-        installed_list = []
-        for package in self._installed:
-            installed_list.extend(self._installed[package].urls())
-        installed_set = set(installed_list)
-        #print "installed_set:",installed_set
-        install_list = [ifile.url for ifile in ifiles]
-        install_set = set(install_list)
-        #print "install_set:",install_set
-        remove_set = installed_set.difference(install_set)
-        to_remove = [ifile for ifile in ifiles if ifile.url in remove_set]
-        #print "to_remove:",to_remove
-        install_set = install_set.difference(installed_set)
-        to_install = [ifile for ifile in ifiles if ifile.url in install_set]
-        #print "to_install:",to_install
-        return to_install, to_remove
-
-    def _build_ifiles(self, platform, cache_dir):
-        """@brief determine what files to install and remove
-@param platform The target platform. Eg, win32 or linux/i686/gcc/3.3
-@param cache_dir The directory to cache downloads.
-@return Returns the tuple (ifiles to install, ifiles to remove)"""
-        ifiles = []
-        for bin in self._binaries:
-            ifiles.extend(self._binaries[bin].ifiles(bin, platform, cache_dir))
-        return self._determine_install_set(ifiles)
-        
-    def _remove(self, to_remove):
+    def _uninstall(self, binaries):
+        """@brief Do the actual removal of files work.
+        *NOTE: This method is not transactionally safe -- ie, if it
+        raises an exception, internal state may be inconsistent. How
+        should we address this?
+        @param binaries The package names to remove
+        """
         remove_file_list = []
-        for ifile in to_remove:
-            remove_file_list.extend(
-                self._installed[ifile.pkgname].files_in(ifile.url))
-            self._installed[ifile.pkgname].remove(ifile.url)
-            self._installed_changed = True
+        for pkgname in binaries:
+            for url in self._installed[pkgname].urls():
+                remove_file_list.extend(
+                    self._installed[pkgname].files_in(url))
+                self._installed[pkgname].remove(url)
+                if not self._dryrun:
+                    self._installed_changed = True
+            if not self._dryrun:
+                self._installed.pop(pkgname)
+        remove_dir_set = set()
         for filename in remove_file_list:
             print "rm",filename
             if not self._dryrun:
-                os.remove(filename)
+                if os.path.exists(filename):
+                    remove_dir_set.add(os.path.dirname(filename))
+                    os.remove(filename)
+        for dirname in remove_dir_set:
+            try:
+                os.removedirs(dirname)
+            except OSError:
+                # This is just for cleanup, so we don't care about
+                # normal failures.
+                pass
+
+    def uninstall(self, binaries, install_dir):
+        """@brief Remove the packages specified.
+        @param binaries The package names to remove
+        @param install_dir The directory to work from
+        """
+        print "uninstall",binaries,"from",install_dir
+        cwd = os.getcwdu()
+        os.chdir(install_dir)
+        try:
+            self._uninstall(binaries)
+        finally:
+            os.chdir(cwd)
+
+    def _build_ifiles(self, platform, cache_dir):
+        """@brief determine what files to install
+        @param platform The target platform. Eg, windows or linux/i686/gcc/3.3
+        @param cache_dir The directory to cache downloads.
+        @return Returns the ifiles to install
+        """
+        ifiles = []
+        for bin in self._installables:
+            ifiles.extend(self._installables[bin].ifiles(bin, platform, cache_dir))
+        to_install = []
+        #print "self._installed",self._installed
+        for ifile in ifiles:
+            if ifile.pkgname not in self._installed:
+                to_install.append(ifile)
+            elif ifile.url not in self._installed[ifile.pkgname].urls():
+                to_install.append(ifile)
+            elif ifile.md5sum != self._installed[ifile.pkgname].get_md5sum(ifile.url):
+                # *TODO: We may want to uninstall the old version too
+                # when we detect it is installed, but the md5 sum is
+                # different.
+                to_install.append(ifile)
+            else:
+                #print "Installation up to date:",ifile.pkgname,ifile.platform_path
+                pass
+        #print "to_install",to_install
+        return to_install
 
     def _install(self, to_install, install_dir):
         for ifile in to_install:
@@ -411,30 +506,40 @@ def _install(self, to_install, install_dir):
                     tar.extractall(path=install_dir)
                 except AttributeError:
                     _extractall(tar, path=install_dir)
-            if self._installed.has_key(ifile.pkgname):
-                self._installed[ifile.pkgname].add_files(ifile.url, tar.getnames())
+            if ifile.pkgname in self._installed:
+                self._installed[ifile.pkgname].add_files(
+                    ifile.url,
+                    tar.getnames())
+                self._installed[ifile.pkgname].set_md5sum(
+                    ifile.url,
+                    ifile.md5sum)
             else:
                 # *HACK: this understands the installed package syntax.
-                definition = { ifile.url : tar.getnames() }
+                definition = { ifile.url :
+                               {'files': tar.getnames(),
+                                'md5sum' : ifile.md5sum } }
                 self._installed[ifile.pkgname] = InstalledPackage(definition)
             self._installed_changed = True
 
-    def do_install(self, platform, install_dir, cache_dir):
+    def install(self, binaries, platform, install_dir, cache_dir):
         """@brief Do the installation for for the platform.
-@param platform The target platform. Eg, win32 or linux/i686/gcc/3.3
-@param install_dir The root directory to install into. Created if missing.
-@param cache_dir The directory to cache downloads. Created if missing."""
-        if not self._binaries:
-            raise RuntimeError("No binaries to install. Please add them.")
+        @param binaries The requested binaries to install.
+        @param platform The target platform. Eg, windows or linux/i686/gcc/3.3
+        @param install_dir The root directory to install into. Created
+        if missing.
+        @param cache_dir The directory to cache downloads. Created if
+        missing.
+        """
+        # The ordering of steps in the method is to help reduce the
+        # likelihood that we break something.
         _mkdir(install_dir)
         _mkdir(cache_dir)
-        to_install, to_remove = self._build_ifiles(platform, cache_dir)
+        to_install = self._build_ifiles(platform, cache_dir)
 
-        # we do this in multiple steps reduce the likelyhood to have a
-        # bad install.
+        # Filter for files which we actually requested to install.
+        to_install = [ifl for ifl in to_install if ifl.pkgname in binaries]
         for ifile in to_install:
             ifile.fetch_local()
-        self._remove(to_remove)
         self._install(to_install, install_dir)
 
 
@@ -485,43 +590,69 @@ def _extractall(tar, path=".", members=None):
 
 def _mkdir(directory):
     "Safe, repeatable way to make a directory."
-    try:
+    if not os.path.exists(directory):
         os.makedirs(directory)
-    except OSError, e:
-        if e[0] != errno.EEXIST:
-            raise
 
 def _get_platform():
     "Return appropriate platform packages for the environment."
     platform_map = {
         'darwin': 'darwin',
         'linux2': 'linux',
-        'win32' : 'win32',
-        'cygwin' : 'win32',
+        'win32' : 'windows',
+        'cygwin' : 'windows',
         'solaris' : 'solaris'
         }
     return platform_map[sys.platform]
 
-def main():
+def _getuser():
+    "Get the user"
+    try:
+        # Unix-only.
+        import getpass
+        return getpass.getuser()
+    except ImportError:
+        import win32api
+        return win32api.GetUserName()
+
+def _default_binary_cache():
+    """In general, the binary files do not change much, so find a host/user
+    specific location to cache files."""
+    user = _getuser()
+    cache_dir = "/var/tmp/%s/install.cache" % user
+    if _get_platform() == 'windows':
+        import tempfile
+        cache_dir = os.path.join(tempfile.gettempdir(), \
+                                 'install.cache.%s' % user)
+    return cache_dir
+
+
+def parse_args():
     parser = optparse.OptionParser(
-        usage="usage: %prog [options]",
+        usage="usage: %prog [options] [binary1 [binary2 [binary3...]]]",
         formatter = helpformatter.Formatter(),
         description="""This script fetches and installs binary packages.
+It also handles uninstalling those packages and manages the mapping between
+packages and their license.
 
 The process is to open and read an install manifest file which specifies
-what files should be installed. For each file in the manifest:
+what files should be installed. For each binary to be installed.
  * make sure it has a license
  * check the installed version
  ** if not installed and needs to be, download and install
  ** if installed version differs, download & install
 
+If no binaries are specified on the command line, then the defaut
+behavior is to install all known binaries appropriate for the platform
+specified or uninstall all binaries if --uninstall is set. You can specify
+more than one binary on the command line.
+
 When specifying a platform, you can specify 'all' to install all
 packages, or any platform of the form:
 
 OS[/arch[/compiler[/compiler_version]]]
 
 Where the supported values for each are:
-OS: darwin, linux, win32, solaris
+OS: darwin, linux, windows, solaris
 arch: i686, x86_64, ppc, universal
 compiler: vs, gcc
 compiler_version: 2003, 2005, 2008, 3.3, 3.4, 4.0, etc.
@@ -529,8 +660,8 @@ def main():
 No checks are made to ensure a valid combination of platform
 parts. Some exmples of valid platforms:
 
-win32
-win32/i686/vs/2005
+windows
+windows/i686/vs/2005
 linux/x86_64/gcc/3.3
 linux/x86_64/gcc/4.0
 darwin/universal/gcc/4.0
@@ -553,31 +684,55 @@ def main():
         default=join(base_dir, 'installed.xml'),
         dest='installed_filename',
         help='The file used to record what is installed.')
+    parser.add_option(
+        '--export-manifest', 
+        action='store_true',
+        default=False,
+        dest='export_manifest',
+        help="Print the install manifest to stdout and exit.")
     parser.add_option(
         '-p', '--platform', 
         type='string',
         default=_get_platform(),
         dest='platform',
         help="""Override the automatically determined platform. \
-You can specify 'all' to do a complete installation of all binaries.""")
+You can specify 'all' to do a installation of binaries for all platforms.""")
     parser.add_option(
         '--cache-dir', 
         type='string',
-        default=join(base_dir, '.install.cache'),
+        default=_default_binary_cache(),
         dest='cache_dir',
-        help='Where to download files.')
+        help='Where to download files. Default: %s'%(_default_binary_cache()))
     parser.add_option(
         '--install-dir', 
         type='string',
         default=base_dir,
         dest='install_dir',
         help='Where to unpack the installed files.')
+    parser.add_option(
+        '--list-installed', 
+        action='store_true',
+        default=False,
+        dest='list_installed',
+        help="List the installed package names and exit.")
     parser.add_option(
         '--skip-license-check', 
         action='store_false',
         default=True,
         dest='check_license',
         help="Do not perform the license check.")
+    parser.add_option(
+        '--list-licenses', 
+        action='store_true',
+        default=False,
+        dest='list_licenses',
+        help="List known licenses and exit.")
+    parser.add_option(
+        '--detail-license', 
+        type='string',
+        default=None,
+        dest='detail_license',
+        help="Get detailed information on specified license and exit.")
     parser.add_option(
         '--add-license', 
         type='string',
@@ -587,12 +742,6 @@ def main():
 license. Specify --license-url if the license is remote or specify \
 --license-text, otherwse the license text will be read from standard \
 input.""")
-    parser.add_option(
-        '--remove-license', 
-        type='string',
-        default=None,
-        dest='remove_license',
-        help="Remove a named license.")
     parser.add_option(
         '--license-url', 
         type='string',
@@ -608,33 +757,104 @@ def main():
         help="""Put the text into an added license. \
 Ignored if --add-license is not specified.""")
     parser.add_option(
-        '--orphan', 
+        '--remove-license', 
         type='string',
         default=None,
-        dest='orphan',
+        dest='remove_license',
+        help="Remove a named license.")
+    parser.add_option(
+        '--remove-installable', 
+        type='string',
+        default=None,
+        dest='remove_installable',
         help="Remove a binary from the install file.")
     parser.add_option(
-        '--adopt', 
+        '--add-installable', 
         type='string',
         default=None,
-        dest='adopt',
+        dest='add_installable',
         help="""Add a binary into the install file. Argument is the name of \
 the binary to add.""")
+    parser.add_option(
+        '--add-installable-metadata', 
+        type='string',
+        default=None,
+        dest='add_installable_metadata',
+        help="""Add package for library into the install file. Argument is \
+the name of the library to add.""")
+    parser.add_option(
+        '--installable-copyright', 
+        type='string',
+        default=None,
+        dest='installable_copyright',
+        help="""Copyright for specified new package. Ignored if \
+--add-installable is not specified.""")
+    parser.add_option(
+        '--installable-license', 
+        type='string',
+        default=None,
+        dest='installable_license',
+        help="""Name of license for specified new package. Ignored if \
+--add-installable is not specified.""")
+    parser.add_option(
+        '--installable-description', 
+        type='string',
+        default=None,
+        dest='installable_description',
+        help="""Description for specified new package. Ignored if \
+--add-installable is not specified.""")
+    parser.add_option(
+        '--add-installable-package', 
+        type='string',
+        default=None,
+        dest='add_installable_package',
+        help="""Add package for library into the install file. Argument is \
+the name of the library to add.""")
+    parser.add_option(
+        '--package-platform', 
+        type='string',
+        default=None,
+        dest='package_platform',
+        help="""Platform for specified new package. \
+Ignored if --add-installable or --add-installable-package is not specified.""")
+    parser.add_option(
+        '--package-url', 
+        type='string',
+        default=None,
+        dest='package_url',
+        help="""URL for specified package. \
+Ignored if --add-installable or --add-installable-package is not specified.""")
+    parser.add_option(
+        '--package-md5', 
+        type='string',
+        default=None,
+        dest='package_md5',
+        help="""md5sum for new package. \
+Ignored if --add-installable or --add-installable-package is not specified.""")
     parser.add_option(
         '--list', 
         action='store_true',
         default=False,
-        dest='list_binaries',
-        help="List the binaries in the install manifest")
+        dest='list_installables',
+        help="List the binaries in the install manifest and exit.")
     parser.add_option(
-        '--details', 
+        '--detail', 
         type='string',
         default=None,
         dest='detail_binary',
-        help="Get detailed information on specified binary.")
-    options, args = parser.parse_args()
-
+        help="Get detailed information on specified binary and exit.")
+    parser.add_option(
+        '--uninstall', 
+        action='store_true',
+        default=False,
+        dest='uninstall',
+        help="""Remove the binaries specified in the arguments. Just like \
+during installation, if no binaries are listed then all installed binaries \
+are removed.""")
+    return parser.parse_args()
 
+def main():
+    options, args = parse_args()
     installer = Installer(
         options.install_filename,
         options.installed_filename,
@@ -643,18 +863,40 @@ def main():
     #
     # Handle the queries for information
     #
-    if options.list_binaries:
-        print "binary list:",installer._binaries.keys()
+    if options.list_installed:
+        print "installed list:", installer.list_installed()
+        return 0
+    if options.list_installables:
+        print "binary list:", installer.list_installables()
         return 0
     if options.detail_binary:
-        detail = installer.detail_binary(options.detail_binary)
-        if detail:
+        try:
+            detail = installer.detail_binary(options.detail_binary)
             print "Detail on binary",options.detail_binary+":"
             pprint.pprint(detail)
-        else:
+        except KeyError:
             print "Bianry '"+options.detail_binary+"' not found in",
             print "install file."
         return 0
+    if options.list_licenses:
+        print "license list:", installer.list_licenses()
+        return 0
+    if options.detail_license:
+        try:
+            detail = installer.detail_license(options.detail_license)
+            print "Detail on license",options.detail_license+":"
+            pprint.pprint(detail)
+        except KeyError:
+            print "License '"+options.detail_binary+"' not defined in",
+            print "install file."
+        return 0
+    if options.export_manifest:
+        # *HACK: just re-parse the install manifest and pretty print
+        # it. easier than looking at the datastructure designed for
+        # actually determining what to install
+        install = llsd.parse(file(options.install_filename, 'rb').read())
+        pprint.pprint(install)
+        return 0
 
     #
     # Handle updates -- can only do one of these
@@ -668,26 +910,70 @@ def main():
             return 1
     elif options.remove_license:
         installer.remove_license(options.remove_license)
-    elif options.orphan:
-        installer.orphan_binary(options.orphan)
-    elif options.adopt:
-        if not installer.adopt_binary(options.adopt):
+    elif options.remove_installable:
+        installer.remove_installable(options.remove_installable)
+    elif options.add_installable:
+        if not installer.add_installable(
+            options.add_installable,
+            copyright=options.installable_copyright,
+            license=options.installable_license,
+            description=options.installable_description,
+            platform=options.package_platform,
+            url=options.package_url,
+            md5sum=options.package_md5):
             return 1
+    elif options.add_installable_metadata:
+        if not installer.add_installable_metadata(
+            options.add_installable_metadata,
+            copyright=options.installable_copyright,
+            license=options.installable_license,
+            description=options.installable_description):
+            return 1
+    elif options.add_installable_package:
+        if not installer.add_installable_package(
+            options.add_installable_package,
+            platform=options.package_platform,
+            url=options.package_url,
+            md5sum=options.package_md5):
+            return 1
+    elif options.uninstall:
+        # Do not bother to check license if we're uninstalling.
+        all_installed = installer.list_installed()
+        if not len(args):
+            uninstall_installables = all_installed
+        else:
+            # passed in on the command line. We'll need to verify we
+            # know about them here.
+            uninstall_installables = args
+            for binary in uninstall_installables:
+                if binary not in all_installed:
+                    raise RuntimeError('Binary not installed: %s' % (binary,))
+        installer.uninstall(uninstall_installables, options.install_dir)
     else:
+        # Determine what binaries should be installed. If they were
+        # passed in on the command line, use them, otherwise install
+        # all known binaries.
+        all_installables = installer.list_installables()
+        if not len(args):
+            install_installables = all_installables
+        else:
+            # passed in on the command line. We'll need to verify we
+            # know about them here.
+            install_installables = args
+            for binary in install_installables:
+                if binary not in all_installables:
+                    raise RuntimeError('Unknown binary: %s' % (binary,))
         if options.check_license:
-            if not installer.is_license_info_valid():
-                print >>sys.stderr, 'Please add or correct the license',
-                print >>sys.stderr, 'information in',
-                print >>sys.stderr, options.install_filename + '.'
-                print >>sys.stderr, "You can also use the --add-license",
-                print >>sys.stderr, "option. See", sys.argv[0], "--help"
-                return 1
-
-        # *TODO: check against a list of 'known good' licenses.
-        # *TODO: check for urls which conflict -- will lead to
-        # problems.
-
-        installer.do_install(
+            # *TODO: check against a list of 'known good' licenses.
+            # *TODO: check for urls which conflict -- will lead to
+            # problems.
+            for binary in install_installables:
+                if not installer.is_valid_license(binary):
+                    return 1
+
+        # Do the work of installing the requested binaries.
+        installer.install(
+            install_installables,
             options.platform,
             options.install_dir,
             options.cache_dir)
@@ -697,4 +983,5 @@ def main():
     return 0
 
 if __name__ == '__main__':
+    #print sys.argv
     sys.exit(main())
-- 
GitLab