diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,3 +1,12 @@
+2009.4.30
+----------
+
+### Feature
+
+* seperate handler from core module
+* seperate contrib from Hack.hs
+* now Hack.hs is only an interface file, where everything links to. This allows me to soft link handler in Hack.Contrib and Hack.Handler in development mode :)
+
 2009.4.29
 -----------
 
diff --git a/hack.cabal b/hack.cabal
--- a/hack.cabal
+++ b/hack.cabal
@@ -1,5 +1,5 @@
 Name:                 hack
-Version:              2009.4.29
+Version:              2009.4.30
 Build-type:           Simple
 Synopsis:             a sexy Haskell Webserver Interface
 Description:
@@ -20,32 +20,7 @@
 
 library
   ghc-options: -Wall
-  build-depends: base, cgi, network, haskell98, old-locale, old-time, directory, filepath, containers, bytestring, template, base64-string, zlib, hyena, ansi-wl-pprint, mps >= 2009.4.21, kibro >= 0.4.3, data-default >= 0.2, ansi-wl-pprint, bytestring, template, unix, time
+  build-depends: base, data-default >= 0.2
   hs-source-dirs: src/
   exposed-modules:  
                     Hack
-                    Hack.Utils
-                    Hack.Request
-                    Hack.Response
-                    Hack.Constants
-                    
-                    Hack.Handler.Kibro
-                    Hack.Handler.Hyena
-                    
-                    Hack.Contrib.ContentSize
-                    Hack.Contrib.ContentType
-                    Hack.Contrib.File
-                    Hack.Contrib.Head
-                    Hack.Contrib.Hub
-                    Hack.Contrib.Lambda
-                    Hack.Contrib.Lucky
-                    Hack.Contrib.Mime
-                    Hack.Contrib.RawRouter
-                    Hack.Contrib.ShowExceptions
-                    Hack.Contrib.ShowStatus
-                    Hack.Contrib.SimpleAccessLogger
-                    Hack.Contrib.SimpleRouter
-                    Hack.Contrib.Static
-
-                    
-                    
diff --git a/readme.md b/readme.md
--- a/readme.md
+++ b/readme.md
@@ -37,7 +37,10 @@
 
 ### install hack
 
-    cabal install happy; cabal install hack
+    cabal install happy;
+    cabal install hack;
+    cabal install hack-contrib
+    cabal install hack-handler-hyena
 
 ### Create a Hack app
 
@@ -73,10 +76,11 @@
     module Main where
 
     import Hack
-    import Hack.Utils
-    import Hack.SimpleRoute
     import Hack.Handler.Hyena
+    import Hack.Contrib.Utils
+    import Hack.Contrib.Middleware.SimpleRoute
 
+
     import Data.Default
     import MPS
     import Prelude hiding ((.))
@@ -93,7 +97,7 @@
 
 inside Hack.hs:
 
-    type MiddleWare = Application -> Application
+    type Middleware = Application -> Application
 
 since Haskell has curry, middleware api can be of type
 
@@ -105,10 +109,10 @@
 
     {-# LANGUAGE QuasiQuotes #-}
 
-    module Hack.Contrib.SimpleRouter where
+    module Hack.Contrib.Middleware.SimpleRouter where
 
     import Hack
-    import Hack.Utils
+    import Hack.Contrib.Utils
 
     import MPSUTF8
     import Prelude hiding ((.), (^), (>))
@@ -116,7 +120,7 @@
 
     type RoutePath = (String, Application)
 
-    route :: [RoutePath] -> MiddleWare
+    route :: [RoutePath] -> Middleware
     route h app = \env ->
       let path             = env.path_info
           script           = env.script_name
@@ -134,7 +138,7 @@
 Rack provides a builder DSL, Hack just use a function. From `Utils.hs`:
 
     -- usage: app.use [content_type, cache]
-    use :: [MiddleWare] -> MiddleWare
+    use :: [Middleware] -> Middleware
     use = reduce (<<<)
 
 Handlers
diff --git a/src/Hack.hs b/src/Hack.hs
--- a/src/Hack.hs
+++ b/src/Hack.hs
@@ -62,12 +62,13 @@
 instance Default Response where
   def = Response def def def
 
-
-
 instance Default Env where
   def = Env def def def def def def def def def def const_io False False False def
     where const_io = const (return ())
 
 type Application = Env -> IO Response
 
-type MiddleWare = Application -> Application
+type Middleware = Application -> Application
+
+-- compatibility
+type MiddleWare = Middleware
diff --git a/src/Hack/Constants.hs b/src/Hack/Constants.hs
deleted file mode 100644
--- a/src/Hack/Constants.hs
+++ /dev/null
@@ -1,171 +0,0 @@
-module Hack.Constants where
-
-import MPS
-import Prelude hiding ((.))
-import Data.Map
-
-status_with_no_entity_body :: [Int]
-status_with_no_entity_body = [100 .. 199] ++ [204, 304]
-
-
--- header constants
-_CacheControl                   :: String
-_Connection                     :: String
-_Date                           :: String
-_Pragma                         :: String
-_TransferEncoding               :: String
-_Upgrade                        :: String
-_Via                            :: String
-_Accept                         :: String
-_AcceptCharset                  :: String
-_AcceptEncoding                 :: String
-_AcceptLanguage                 :: String
-_Authorization                  :: String
-_Cookie                         :: String
-_Expect                         :: String
-_From                           :: String
-_Host                           :: String
-_IfModifiedSince                :: String
-_IfMatch                        :: String
-_IfNoneMatch                    :: String
-_IfRange                        :: String
-_IfUnmodifiedSince              :: String
-_MaxForwards                    :: String
-_ProxyAuthorization             :: String
-_Range                          :: String
-_Referer                        :: String
-_UserAgent                      :: String
-_Age                            :: String
-_Location                       :: String
-_ProxyAuthenticate              :: String
-_Public                         :: String
-_RetryAfter                     :: String
-_Server                         :: String
-_SetCookie                      :: String
-_TE                             :: String
-_Trailer                        :: String
-_Vary                           :: String
-_Warning                        :: String
-_WWWAuthenticate                :: String
-_Allow                          :: String
-_ContentBase                    :: String
-_ContentEncoding                :: String
-_ContentLanguage                :: String
-_ContentLength                  :: String
-_ContentLocation                :: String
-_ContentMD5                     :: String
-_ContentRange                   :: String
-_ContentType                    :: String
-_ETag                           :: String
-_Expires                        :: String
-_LastModified                   :: String
-_ContentTransferEncoding        :: String
-
-
-
-_CacheControl                   =  "Cache-Control"        
-_Connection                     =  "Connection"           
-_Date                           =  "Date"                 
-_Pragma                         =  "Pragma"               
-_TransferEncoding               =  "Transfer-Encoding"    
-_Upgrade                        =  "Upgrade"              
-_Via                            =  "Via"                  
-_Accept                         =  "Accept"               
-_AcceptCharset                  =  "Accept-Charset"       
-_AcceptEncoding                 =  "Accept-Encoding"      
-_AcceptLanguage                 =  "Accept-Language"      
-_Authorization                  =  "Authorization"        
-_Cookie                         =  "Cookie"               
-_Expect                         =  "Expect"               
-_From                           =  "From"                 
-_Host                           =  "Host"                 
-_IfModifiedSince                =  "If-Modified-Since"    
-_IfMatch                        =  "If-Match"             
-_IfNoneMatch                    =  "If-None-Match"        
-_IfRange                        =  "If-Range"             
-_IfUnmodifiedSince              =  "If-Unmodified-Since"  
-_MaxForwards                    =  "Max-Forwards"         
-_ProxyAuthorization             =  "Proxy-Authorization"  
-_Range                          =  "Range"                
-_Referer                        =  "Referer"              
-_UserAgent                      =  "User-Agent"           
-_Age                            =  "Age"                  
-_Location                       =  "Location"             
-_ProxyAuthenticate              =  "Proxy-Authenticate"   
-_Public                         =  "Public"               
-_RetryAfter                     =  "Retry-After"          
-_Server                         =  "Server"               
-_SetCookie                      =  "Set-Cookie"           
-_TE                             =  "TE"                   
-_Trailer                        =  "Trailer"              
-_Vary                           =  "Vary"                 
-_Warning                        =  "Warning"              
-_WWWAuthenticate                =  "WWW-Authenticate"     
-_Allow                          =  "Allow"                
-_ContentBase                    =  "Content-Base"         
-_ContentEncoding                =  "Content-Encoding"     
-_ContentLanguage                =  "Content-Language"     
-_ContentLength                  =  "Content-Length"       
-_ContentLocation                =  "Content-Location"     
-_ContentMD5                     =  "Content-MD5"          
-_ContentRange                   =  "Content-Range"        
-_ContentType                    =  "Content-Type"         
-_ETag                           =  "ETag"                 
-_Expires                        =  "Expires"              
-_LastModified                   =  "Last-Modified"        
-_ContentTransferEncoding        =  "Content-Transfer-Encodeing"
-
-
--- mime type
-_TextPlain :: String
-_TextHtml  :: String
-
-_TextPlain  = "text/plain"
-_TextHtml   = "text/html"
-
-
--- status code
-status_code :: Map Int String
-status_code =
-  [  x       100          "Continue"
-  ,  x       101          "Switching Protocols"
-  ,  x       200          "OK"
-  ,  x       201          "Created"
-  ,  x       202          "Accepted"
-  ,  x       203          "Non-Authoritative Information"
-  ,  x       204          "No Content"
-  ,  x       205          "Reset Content"
-  ,  x       206          "Partial Content"
-  ,  x       300          "Multiple Choices"
-  ,  x       301          "Moved Permanently"
-  ,  x       302          "Found"
-  ,  x       303          "See Other"
-  ,  x       304          "Not Modified"
-  ,  x       305          "Use Proxy"
-  ,  x       307          "Temporary Redirect"
-  ,  x       400          "Bad Request"
-  ,  x       401          "Unauthorized"
-  ,  x       402          "Payment Required"
-  ,  x       403          "Forbidden"
-  ,  x       404          "Not Found"
-  ,  x       405          "Method Not Allowed"
-  ,  x       406          "Not Acceptable"
-  ,  x       407          "Proxy Authentication Required"
-  ,  x       408          "Request Timeout"
-  ,  x       409          "Conflict"
-  ,  x       410          "Gone"
-  ,  x       411          "Length Required"
-  ,  x       412          "Precondition Failed"
-  ,  x       413          "Request Entity Too Large"
-  ,  x       414          "Request-URI Too Large"
-  ,  x       415          "Unsupported Media Type"
-  ,  x       416          "Requested Range Not Satisfiable"
-  ,  x       417          "Expectation Failed"
-  ,  x       500          "Internal Server Error"
-  ,  x       501          "Not Implemented"
-  ,  x       502          "Bad Gateway"
-  ,  x       503          "Service Unavailable"
-  ,  x       504          "Gateway Timeout"
-  ,  x       505          "HTTP Version Not Supported"
-  ] .to_h
-  where x a b = (a, b)
diff --git a/src/Hack/Contrib/ContentSize.hs b/src/Hack/Contrib/ContentSize.hs
deleted file mode 100644
--- a/src/Hack/Contrib/ContentSize.hs
+++ /dev/null
@@ -1,25 +0,0 @@
-module Hack.Contrib.ContentSize (content_size) where
-
-import Hack
-import Hack.Utils
-import Hack.Response
-import Hack.Constants
-
-import MPSUTF8
-import Prelude hiding ((.), (^), (>))
-
-content_size :: MiddleWare
-content_size app = \env -> do
-  response <- app env
-  
-  if should_size response
-    then response
-      .set_header _ContentLength (response.body.bytesize.show) .return
-    else response .return
-  
-  where 
-    should_size response =
-      [  not $ response.has_header _ContentLength
-      ,  not $ response.has_header _TransferEncoding
-      ,  not $ status_with_no_entity_body.has(response.status)
-      ] .and
diff --git a/src/Hack/Contrib/ContentType.hs b/src/Hack/Contrib/ContentType.hs
deleted file mode 100644
--- a/src/Hack/Contrib/ContentType.hs
+++ /dev/null
@@ -1,17 +0,0 @@
-module Hack.Contrib.ContentType (content_type) where
-
-import Hack
-import Hack.Response
-import Hack.Constants
-
-import MPSUTF8
-import Prelude hiding ((.), (^), (>))
-
-
-content_type :: String -> MiddleWare
-content_type s app = \env -> do
-  response <- app env
-  
-  case response.header _ContentType of
-    Nothing -> response.set_header _ContentType s .return
-    Just _ -> response .return
diff --git a/src/Hack/Contrib/File.hs b/src/Hack/Contrib/File.hs
deleted file mode 100644
--- a/src/Hack/Contrib/File.hs
+++ /dev/null
@@ -1,92 +0,0 @@
-module Hack.Contrib.File (file) where
-
-import Hack
-import Hack.Utils
-import Hack.Response
-import Hack.Constants
-import Hack.Contrib.Mime
-
-import MPSUTF8
-import Prelude hiding ((.), (^), (>), (+), (/), readFile)
-
-import Data.Default
-import Data.Maybe
-import Data.List (isInfixOf)
-import System.Directory
-import System.FilePath
-
-
-file :: Maybe String -> MiddleWare
-file root _ = \env -> do
-  let path = env.path_info .url2unicode
-  
-  if ".." `isInfixOf` path 
-    then forbidden
-    else serve root path env
-
-
-serve :: Maybe String -> FilePath -> Env -> IO Response
-serve root fname _ = do
-  cwd <- get_current_directory
-  let my_root = root.fromMaybe cwd
-  let path = my_root / makeRelative "/" fname
-  
-  exist <- file_exist path
-
-  if not exist
-      then path.not_found
-      else
-        do 
-          can_read <- path.get_permissions ^ readable
-          if not can_read
-            then path.no_permission
-            else path.serving
-    
-    where 
-      serving path = do
-        content <- path.read_binary_file
-        size <- file_size path ^ from_i
-        mtime_str <- file_mtime path ^ httpdate
-        
-        let default_content_type = "application/octet-stream"
-        let safe_lookup = lookup_mime_type > fromMaybe default_content_type
-        let content_type = path.takeExtension.safe_lookup
-        
-        return $ 
-          def 
-            .set_body content
-            .set_content_length size
-            .set_content_type content_type
-            .set_last_modified mtime_str
-            .set_status 200
-
-no_permission :: String -> IO Response
-no_permission path = return $
-  def
-    .set_status 404
-    .set_content_type _TextPlain
-    .set_content_length (msg.length)
-    .set_body msg
-
-  where msg = "No permission: " ++ path ++ "\n"
-
-not_found :: String -> IO Response
-not_found path = return $
-  def
-    .set_status 404
-    .set_content_type _TextPlain
-    .set_content_length (msg.length)
-    .set_body msg
-  
-  where msg = "File not found: " ++ path ++ "\n"
-
-forbidden :: IO Response
-forbidden = return $ 
-  def
-    .set_status 403
-    .set_content_type _TextPlain
-    .set_content_length (msg.length)
-    .set_body msg
-
-  where msg = "Forbidden\n"
-  
diff --git a/src/Hack/Contrib/Head.hs b/src/Hack/Contrib/Head.hs
deleted file mode 100644
--- a/src/Hack/Contrib/Head.hs
+++ /dev/null
@@ -1,14 +0,0 @@
-module Hack.Contrib.Head (head) where
-
-import Hack
-import Hack.Response
-
-import MPSUTF8
-import Prelude hiding ((.), (^), (>), head)
-
-head :: MiddleWare
-head app = \env -> do
-  response <- app env
-  if env.request_method.is HEAD 
-    then return $ response .set_body "" .set_content_length 0
-    else return $ response
diff --git a/src/Hack/Contrib/Hub.hs b/src/Hack/Contrib/Hub.hs
deleted file mode 100644
--- a/src/Hack/Contrib/Hub.hs
+++ /dev/null
@@ -1,74 +0,0 @@
-{-# LANGUAGE QuasiQuotes #-}
-
--- the entire logging framework is stole from [innate](http://github.com/manveru/innate/tree/master)
-
-
-module Hack.Contrib.Hub where
-
-import Hack
-import Hack.Utils
-
-import MPSUTF8
-import Prelude hiding ((.), (^), (>), (+))
-
-import Text.Printf
-import System.Posix.Process (getProcessID)
-import Data.Maybe
-import Text.PrettyPrint.ANSI.Leijen
-import Data.Time
-
-data Severity = 
-     Debug
-  |  Info
-  |  Warn
-  |  Error
-  |  Fatal
-  |  Unknown
-  deriving (Show, Eq)
-
-hint :: Severity -> String
-hint = show > slice 0 1
-
-type Formatter = Severity -> UTCTime -> Int -> String -> String -> String
-
-type Logger = String -> Severity -> IO ()
-
-hub :: Stream -> Formatter -> String -> Logger
-hub stream formatter program = \message severity -> 
-  do
-    time <- now
-    pid <- getProcessID ^ from_i
-    stream $ formatter severity time pid program message
-
-simple_logger :: Stream -> String -> Logger
-simple_logger = flip hub simple_formatter
-
-simple_formatter :: Formatter
-simple_formatter severity time pid program message =
-  printf line_format h t pid l program s
-  
-  where
-    line_format = "%s [%s $%d] %5s | %-25s: %s\n"
-    
-    h = severity.hint
-    
-    time_format = "%Y-%m-%d %H:%M:%S"
-    t = time.format_time time_format
-    
-    l = severity.show.upper
-    s = colorize severity message
-
-colorize :: Severity -> String -> String
-colorize severity message = color severity (message.text) .show
-  where
-    level_color = 
-      [ (   Debug           , blue    )
-      , (   Info            , white   )
-      , (   Warn            , yellow  )
-      , (   Error           , red     )
-      , (   Fatal           , red     )
-      , (   Unknown         , green   )
-      ]
-    
-    color severity' = level_color.lookup severity' .fromMaybe green
-
diff --git a/src/Hack/Contrib/Lambda.hs b/src/Hack/Contrib/Lambda.hs
deleted file mode 100644
--- a/src/Hack/Contrib/Lambda.hs
+++ /dev/null
@@ -1,47 +0,0 @@
-{-# LANGUAGE QuasiQuotes #-}
-
-module Hack.Contrib.Lambda (lambda) where
-
-import Hack
-import Hack.Response
-import Hack.Utils
-import Hack.Constants
-
-import MPSUTF8
-import Prelude hiding ((.), (^), (>), (+))
-import Data.Default
-
-data64 :: String
-data64 = [$here|
-
-H4sIAAAAAAAAA+3dMVMbMRQE4J5foaGhpMhMCkP4LcpknCrBN0BB/n1yIbHkRNKd
-pPe0j7vdjsa6/cYbjAm+++np6J5ffnw7frr+enp8ObiP0+vth+nVfT89np6nz1+O
-d9cPXiQOHJESVyKPgqaQwRCxQEPMEaghYYFmeEt/DwELNMLfGLBAE4TALdAAccAW
-6PqXgVqgy/8TpAW6+3+hRRSYBbp4KiALdO1kMBbo1pnQIgrAAl05n+EW6MKF0CLK
-YAt03XJoETLUAl12KQMt0FUXQ4sowyzQRVeEFlEGWaBrrgotogyxQJdcGVpEGWCB
-rrg6tIiiboEuWBFaRKFFiLIFul5VaBGFFiGqFuhylaFFFFqEKFqgq1WHFlFoEaJm
-gS7WEFpEoUUILUKULNqv5+acX1/dnSNWuHS2MQsXLOYHOVschPqWYs7CXTwxDkaf
-GIMsgCsxZwFciYpF3yXBVmLQArYSgxawlVi0gK3EogVqJRYtLp8Y41Zi0gK0EpsW
-hZXcJNN/pLNqUVrJu7IQua78SvzuLCpXInOmUYvKlYgcadaibiUiJ9q1GP+Ky67F
-+Fdc78JifsgBTwy7FrmN6GHYtcj825n+XiJyolmL3ELS30tEjrRqkV9I8hWXzJlG
-LfILSa5E5EwFCy9wWaWFpFYicKRVi/JCEivpP9JZtcgsRPkVl0mLzEIOyu9xWbQo
-/SSi+YrLokV2IXMUV2LQIr+QOYorsWex9LO62krWF7Tzu2WtlahY+J4rKi9kjtZK
-zFmseTdLaSXmLBYXMkdnJdYslhcyR2clxizWvt+rsZKKfvy/rrSgxb4taurxb2lo
-QYtdW1S149+n0mJ/FnXl+DkHtJCw8Oh6NamsRot9WNRW42eN7cKiuhk/m5AWQhYe
-XXJd6nvRos/Co2uuSUMtWnRaeHTR5bS02qhFUyveW2HrFm2leP+RfguPrltKY6Ut
-WrRW4j29JCw8unIuzYW2Z9FeaHP3hgRZeHTtVDrqbM2ip87G7qvb1WZb956GWnh0
-+cv0deG96gUtPBogpLfJhiy6m/RbeLTBn/QXEbDwaIXfEeghYeHRDk6EQsbCoyWc
-SIur+9vp6fjwE8s/QZd0jAAA
-
-|].strip
-
-lambda :: MiddleWare
-lambda app = \env -> do
-  if env.path_info.is "/lambda"
-    then 
-      return $ def
-        .set_body (data64.unzip64)
-        .set_content_type _TextHtml
-        .set_status 200
-    
-    else app env
diff --git a/src/Hack/Contrib/Lucky.hs b/src/Hack/Contrib/Lucky.hs
deleted file mode 100644
--- a/src/Hack/Contrib/Lucky.hs
+++ /dev/null
@@ -1,1173 +0,0 @@
-{-# LANGUAGE QuasiQuotes #-}
-
-module Hack.Contrib.Lucky (lucky) where
-
-import Hack
-import Hack.Response
-import Hack.Utils
-import Hack.Constants
-
-import MPSUTF8
-import Prelude hiding ((.), (^), (>), (+))
-import Data.Default
-
-lucky :: MiddleWare
-lucky app = \env -> do
-  if env.path_info.is "/lucky"
-    then 
-      return $ def
-      .set_body (data64.unzip64)
-      .set_content_type _TextHtml
-      .set_status 200
-    
-    else app env
-
-data64 :: String
-data64 = [$here|
-H4sIAAAAAAAAA+y9yZYsS5ZcN+dX1AI+AGbaKwjyX7SzEYjCAjAA/55q/jJv8/Kl
-y1YP9YhbxXtjkmulPnNrtDlHjhyR//Lf/8f4l//5v/7f/zr+r/9w/et/+1//+V/C
-f//f/8n+9//9L//Pv/63f/2f/7208X/+h//7v8z/8d/+Pqz963/91//xn//lP16P
-f/f/+5/u/1sM+o+/R/0e9XvU71G/R/0e9XvULz+q9yPWX3BUa1fMv+D7YqPG/Qfe
-xBnZF2rgfbV4gvsyXV/rQnf/q77736NWR5GvPa4wApqFBowaUV+LraFf9a2yVfur
-7qv3u++/4Fv9Per3qN+jfo/6Per3qN+jfo/69zuKxeR+2F8wxqSjSPb7bzsLYNH2
-/b50tN3ntQqaOb8j99+j1neTPkzRo1ju3nvJLMv8Fdf2uM7OVu2vuK+Oyw2Nwdz/
-fsV3/3vUW0f9H7/qjf0e9XvU71G/R/0e9XvU71E/BHNpgNTwFw1FW+vRoTTgV0xZ
-2X3dCVEE1+oXCd1/zTfxe9S/n1EEVvz3Pwvp2u7x3y7A+qu++9+jfo/6Per3qN+j
-fo/6Per3qH+vozgJnIz6NWPMMUb7Fd/9zlF9HGVXKwLNrX7NwujvUb/+KEYcovQi
-ht79252rvy5Nn7ZI/HtHan6P+odRW4v4f/636WBa2BKe/tsSYfmkiXPf1qX60Tsc
-YDy8pXewaVtn28GHv86Oux256Y5F/Fnu1saFvfDdk275+79+Q6wC9cOL3HAi/nzj
-n/AmNkz8G83XxDg84f76jt+4N2/ZIcjvj3LkBK7VV4KPdy84Vmte2E7atZD0vWMD
-WZ8Ei9Hsln1lMQZ9dRLA+V171Ut8njyQIfvhvfkrvsinT8oNH64PCz4ca4Ggb/OO
-GEgV9dUX82sfBVfOWde2r3yRo2AQwjxcUHvX0xfNZ7Yr3uwu8jSjbMdhljaG7UyJ
-177LG74SDYdAwjdXCkkL2arflTxs2Zp91VsA/rRvQbZ2T+feeyZgfhr7SH3vWb77
-AxCSGbz68d53ZG4JLnMBP58HODHv3QKcmGzn+dw9ZQO4NOb88Du3FJLYvzwrdzzw
-RqCedmCiYgQKqGEX84iVhDwvTsMNV+09gZB3ASJ4Q6PlO0/ygUP+x9fWFyOCc7tA
-ok1B6kaIiOWsr++7WxIMMkXvHQVsx2vJt/hFohM3rnLp+fqefZ2lBvDNUegdKjz8
-xWJ5W+C0KcsCo3CWlQm2M3cnsjY37U5bDqczHRs3p+4SA29f2Jx+sYiI66gutNLt
-Waw0dLJVf/u3Fh7FL9dr58GJKI8fKpPs3cBqAsooi4nfjouNfjbwkyC62jKLV2pr
-r9z2lrOI4rIknCRBzI9vRb5mFhXFwTCY/dsAO8hs2pplEZDt5Szrlw6cFvO1PXtK
-y5U98tuzWl743wgmMfGnl57/lwubaEC0VnGTj7ozk7yVxhZK4pte7t5PvwB0XgB+
-/5SQiL2E1ZxuR4rIMvfPgcP3Vl9eoebt23bIKDd0GsOcKv68oYASAKiRj972JR7r
-E2jLl/Bj42nHgrWXU7F3RVdbkrpa9TRcTerkvf2CFb29qMkbdrAtGV299LLhoeR6
-RITeNIuKdglC7RUlWp2MG350M+voVVxiYTnt5uZ923XU0PSJxbrnX2P4ulC+Jgf/
-e2pEm9AmwoYoje1Naxgs/CAU3CMkxC/Osz4xFn+div2mmGhTUgd+ezmpk/su2+4+
-oR7AKOFL+foiL/rzdp3r7PqwW++ZWjkKsLMhQcUtaP97T2q34WJ9uLq1wpazPlJ2
-VNi2ZGKN8GjWM7EdF4Q3t2Vv2hIRE4LuwjwyicSNe3udPx8I74WwpFCctNqitLBd
-4kuTMIeU4JmZzHJwLa+261DYC0v8aijYFyWam7bVUBj08F6pAlrSDmlj1xmNaMhC
-4LPnk/fUcRQSXpKC1j8PL/UHpgfiVXS8tDe73SebtDuzfReisvLdvqaBD+9ytBQ5
-59WvEDwuS4QoxIq0eqyc+GzBEOCbqimCBfOhUE5/FJ7+khCcABeL6a+6/ZY3Hoo3
-wPi+ROs9IdiOW20GdNe+kvzu2sLaJ21hm7KCjZJSd78Yi9P2EU9JRa7h8/6dm5wM
-Il6rVmy6WwKVkGvd838Xv2w52t3wlG9H7y7WafPnrUkNLwC/vG/wA0qH9Iz+MvrD
-lgCZjSLRA99d38SOIAcA6o1+157HlncFYRNNNQmr5WtxiW//3hKCfVoO+VLVU4c1
-uaI6zYsI4ebVtZAfXh1ACGN0vZ/wCuQ7dh3Y5MckbfLYFycyOtt6gxLc6QhExAKs
-hUlVmn7LH85EduwoLdb9/YLsBhn6XgaCO9+e1B07ZWB2Rlc3uMFSiFfha7nAduLR
-2wUY3xDdseL2G6K792RZnx/uMPrmQFTQvwhk9mw8CemqfXjjkS9qYzszVwJ4EU3e
-Od3lJsDoHitLQg7bFxURw5J10vjixr3d8XjtFraaB61nPftjHvEqI9AI+sheQQkC
-a9oim2GnlflJirvl2rcPbCRT0q9xlYU44cWNQNwoYdeyze8fJu87Qosdm3Q/G2A7
-b+6oo2UsCxQ9dm93A6l8jiugLezrE1uYJLy0YvayG0n29lKYuSVMiUPPilfbpLe9
-6ten0rvSEDG0ZNCgVI8Cynm7u35zWxGp+Kt/ct69ozq+cAs08LVAIeCX7tZjWm0Q
-GfoIw+j572NG8wt5yBvijy2fD6FhX5PRVA/ozrRdJhQAc37tFvaOsJfvhQxKXCNE
-7j1cqbhRL+CQ3Li7rSGOe8EbQrThvKLXqoFycpG626szt9cOIpgvUyRhuT5xSFhu
-OtnwRkYJ78oJFjaHl1IjCtrY/kZsfcNVx6ht5xJfxr5ea9n/7HCH1nHqbo0Q2oW/
-8LgyUyR1cuLasLZdAFBmbhekmPyx7WJDQLssQU+3KlzVAnnOMOWrmvPp8+6MZdj0
-Z83V76Fxy49a/vby+KwSIytCaT+wnHamHHKr+YoUMoA1BHt3viZXpnC4B8Wnt+68
-EA1/V5ZBW74IjPyhUvOOmA+D3W8keW646i8QFo5E7KYWAr7Nmd+2/XXjtV5p/RU/
-e5JC4j9PEOVcfK3uvyGlGqO1N5/Re/aUdlWkW4km20xKSbZpdHjVTG5eXisMn6ws
-IHjjjZN3b60ppwwdhqs1sOOMBXNv9ltEs4QkyCMDvvj2CuPq+ng+rgXSab8d7O+/
-Ctgv8kpfX0PxN0QEtOJJNGXfpoiJn3mvfU4H5eidvbxcO/mniSAm17mScC19k0+v
-oLIFTZ0/yW7T0E+ylPAqgdTB2jzo3vDBng6syC7n2yvjO/TODXo1CIvAcWnRoGGv
-1ie5wfeBSd+urMLUBrZBdJs999Dli/HBJy+3QZPtCBJQ9za2poPZGXlo7mIYuQ75
-JmzyMcmlVEaKlnBRM/C1KG1AjHtxPbwFcNh3iJ/6a6wExl+qJCPGvYmLKMPxX6PC
-tGGDvBW1XoAkNoV+BO5jDjYILfqMMPxTQ3EWSt7VGaL/QV1Al0NxmWi9S5BweyC+
-48uWXkCD2gwBQc5ffJFg04ipJR1deJutnCWmu6KbdL1JR5PXCiVnDbbGM1/anfgR
-qRh9ZISWi5Zp8D3NiExGNNFbbcLtDhucPH7qFY8ApEJKAip6dWc6yDt/3+z5vGHp
-rWsafuZR17Bvdgef7QOv+vnkgug8+Pl2J4RybtnTJieXhkth6OaleKDNJORT9zEE
-nw/NyJvXMkMu/1Bz0nVUE20LOpKNVwAs1orTV0bu3akGzdboYhginoD4i3wkNBSb
-bF0tZuzYtKsB3VLrm/bOjUmEP5vLv5Sc8mI6xizv1tmxO5bdOMqCl9H7jvk35FGE
-ukycY19yS1p7B7sTlg3vpl2EIdKK0TmmafZwGk+M2Q+5L81R5GBdPKTVxUhcgM5y
-f8Tc5O3P2Kc6eRpmkw+tTzHsOOEZt2uJz6zsksdam2FNkBtUOFxw8u6P44xGg8wm
-+ADqEMUSBI+xHiE3Muro9H2h/fuOqC1xIWuW+xWAwA1Lh6dZ8nHTlZrGKUxzLurN
-beSmI6R7owS7LttOWTIGd3B0MVPmq9AQ3cyywGrdmC//MNc2RUY7EWZS/l3VUxQD
-32puv+Ud11TeIhW6I5v80yM/f5AeGyGqXb+SsMYmnGFn2ZcyIM6+j6q7KRnbFT/c
-YBFpGaDVqDeYYIj7J+ppX1qJMsZ6L3eAmaiA5g18Sv/9/H1+awyBNcUaXTS5q/9/
-w8I/FcIafejqEOTRzXMT7NV33Ue+jmx99fIXY3fd6dUA7wsaebyAly1b3W7anUln
-1tH3wabvaXdlHLbaatbtETM/H0E+cDzLocsOwaVLgxB4N4GbE/pRf8bc5LX62QZo
-o3lP1L8tLKVEMmQh/wbbGAlAvLbpbHl1X1KYuK6EkKGFkJ6R5651HYoNuc6oJ9Hx
-ex8QRuqZ+OxZ4wioWyMWch9VoF4M/L8CcBiFaIGvyYCJYYXM3Ffm5N7k4PkrIWX/
-ZCKYspCZtfssz0eXL/jsZoAgF841xjLefpZzoaClvvHn04Nsz6E767RI5lUyIKuN
-WoApwdu2etiAtpXRfMaFEsXbMoOPbxNs/dhhL1D0NTNGJyUDsPp/2nLE+3jgEaBd
-Zv7pubz41pa+2a5eRYaas7aAF2JsFnM20on9b0hBcOfeJl/KVk0f2PvDIpQvrMR0
-5GmPFbSQU1W/UBJD3t3OHWAl7N8Y+pNRfhDbQ8LCeqNTz9Zo/eMokjEmGH0m3hiY
-PJs2g/1h7uSXvFz2Pmpqz1VHBbPjRTPVz0OG8NbrWVV4Btm7+uPg6fzqJiPuMA4C
-NhLorw9XF4gB/+YjbOPs6XYB9HupOz/E4RuuZ8keZpoLn+yu+c9O1C2XZnsPUVf/
-x9vc8tNeb/FrOkxo31sNE8c4iGXXQq8AayuHy/w9eyqJbqg5K+vSJRHcVxBX+Lp8
-C5j9938qdkSpDIoKm7msBmdtGiAqxPt4NAQSvo4cM9kzkMLb+odg32DXBcewHegW
-0bhwHOlKhHBeCTMDveJRGxBRvG3H96nKsbX/rnhVLv1Nwj+PX30Prg3fDfgaZzdF
-k7FuZrjurH8lcFR7DkJwY4sZAAJv5G286SCii2DjspuBz16l4pHHosnvJ2/hsBL3
-FbD1Nc9SEIYWD/QZbjlSkhMdQGBqcY1seP8vbPQ7ptFbmok+8dW+Lcpe2+REZFyd
-dsUrYWYfOuZdryFuONGueTrKrzEGC4zLAfSc9kZaPNo9Oukj371U3+Op9DzEIvvz
-mB80LVXk5KcnV2MnBwIwyiBVrN4RJ5ptgsyD6q1gNdi6EKhuT+ut3LmwLg0Pi2Hf
-JKJG2+yZeZg6JbYckWvBnZi2F9mtiiP7LQuL/76A96zgjRJerJH9KhawJGC4CfvF
-0Adn9RSW31HGHxrVbGUo1qeL7PCK5SqXXY8FfBw4H9mBSBpJ724msMtBpy6j4z18
-1LGvuQQE6NNtWxVzRuWX1zIFI1TN1nbeWbfeCbEtW6FBBwtgQGWo1T90ukV+VGqR
-u8yMMv4mkrkZovt4upWTL35BpFlsua29BU/aEXGg3XTUQnQDfuFDY7UBSmzMiMDJ
-DoyfDypxya3pFsrta0Z0+J0Q3D4G34vp1mcdRKWUqNlSIeUA9MfeRpTZgjel7Ic8
-JmdqGizoUf+0osiWybUPF5inpS5pzU0iaxFuai/2QuPojs1zXNlrd47sSCAXDg/k
-k6rLSVMP+lmNXtfV5KDJPdnHrv3EwvBALctdznkd+AZ/ah2ONHzSsU8vvRMC00bU
-f8anhD/0jva459fqtTMcd5XwhbYhuETJcmcmhqMBqcitLQIsl2T09PMsp7xWmkm1
-Jm2mHppOEVMjo3KKPsltO/kU9W6w0wvqhdT1U09NAqo2UAu4Pc4IQQnZYMDI/28H
-4dNU2hymui9IksHlzstkq99/Q9I9840hSH9zefAdTIoNKRxTfNj+NrprRGF2WR7w
-aw6zeS0Asvakre4WDrOvrBQ+P/es12pcDzkDrYf0Gmvu+Wjk7dcPJHe0yDb84kOM
-xZgZTNN7YSxQ4d4AX+lXBwV3mnZPeXzmT2V+lVq6tiVw1Z16qTVbvPYVbfMXNUbe
-fEkagGuuACfTFkrWKEO31evJ/UiX5XLNZwSaG/OtWq+D7ZQKDJAJZQmlHdlrtXuI
-Gb92arKlWnPQkIrxZzt1bayFqjvO0wj9D83E5/cP06hCUjIz794sFFs+PUFi54oe
-Bmbc3EMJLLFEE9kMcTxNfSCkvTep8VeqiIOTgeAXt1n4gtRnrk6wBBajADFsXQh8
-R4S1eYqz9/G2FImxVeDTMGfGTIiZzQFFk1uteqWb9uNhfvXV6uL1d8POtZRG7jh6
-jTkTHBAm+1ClamNPTmuN4GSMy/tKdQmukmWp/i0ZJdmj/bw3He5ma6x8gjJftD6t
-WikNJBEo8G+xlKHXJrwYy0h6ubRSBMs1QvZZmw+H7hzRey8nmb+oPeIj+YEI+wH8
-asyZTvko62H/lsg/dH/6XQ0mu2P6PfE8ykbLpTl1DwgI7M8v7bzPo3XmLPvDCboh
-WDex6FJk8LZY8k4qcPQa3QIAcjsVbl+33g3ALeF6O+C8kvM7liZcfGrcoc+guUR9
-BYXq+dpIQP0+7g3dmmBqOkfpPWenLty9PxCv691t+1jyCQiUnN5Yq6fUV5kyULYN
-iXjfxzTYsr9urLS13Ehp5Q1Qw0rWwzT6aI8KCzdA+bSdlRS9T0BvXJglYwbV+8ph
-7KAjr9bkkOSD2m5PnYN0V72evTDP+p7a6dxOHufNz9/Ud8YqV1c9tKBcdbnq4rWL
-1lo9zY7sE9jYUDAFOR+vFVw/fs0ZHw+rkz9Uf9me/K3mnM9GxeRzWGrWEmff37xP
-uLCLPCWZ+MguOc8PJ8O7sl+ConRQcIEVhr84WT8xt/UpmSZ3Y+fDABwImPR9TQA2
-ikGg1mJGuiWzuRxqiP156u94J2u8aHUxr4Hd66qVzCTWbsxKRq9HuDsCXMbXJCvH
-On9qPglzAYK57c9Z64ac9e541WV01mV293HJUcfjn9zgurt0N0p0EVRLqm+H3qC7
-G6f+5H2MCka1uc/oUWVEUMlkFxvH6HpUG71oWKGcpTVtyWtnzCf3Um+908ys0ubf
-ggfWF8Q3IoftjQQgOwufbyoJUQmNTLCM1shr2dmy/j6lJXnyLX2ODXgC0vSaYVbU
-BILoY9HpVsnpavLtruIJn4UmdFe7plIN241GEx78XP0mwnxGjXLkUrVJe4256YPa
-Gx882UfPAXyBSyE1L7ap7fZ6gmCmyfIgyBk1130DJARwgSCJx2/KVZnC/KcpQs1m
-rdpmk5lTW57p3Y8k77707HVTa7vqecn4oKea9V7MGOWPX9Tc+kYYI49R8uyC17qq
-0ffF0Fr2vh6dAfK+ypmS5msF462Gz7yfe4/82qxH4kvjvGUAS/w4Ek4qVyG8uVfx
-q+0Q1vP5QsqgLoSZishRyWX3y5YQITd7SW1umZm4cbJu7Uljo3ruJCOySNPybcSJ
-HcE6/F3Epibv9mFApQ/8NwBKpC+j5KxzBJdC0mo1xt04HAK6NAo3UxwdGacZGGsD
-uDa/OTipeyfn+T2K22HBi7aeQFBVetBHWI/DgV+M3epyjnc+B/l6U0sdFGGv+a30
-rtAQcP0BGu4GLAe2rI+y0dXqtU7pHUfrvUEgEGyxKr7lQwSdVTL1iDrzGt3dmlM6
-NEVmZwcvxF1iqWCULU5jJSP3qreGUW+j4j140OMZdZfynXlq8azqms7UZ7CTO/Bi
-houTVMZHc5UwVZg0wL7qHtpwfXbByTfBqCIMcQnGFf2LNpquKZxz1Vq9ah9ZPziE
-UZPOzh3gB74XPcjYipp3CVhd/SAdO48nls/ig8tBnhMpppR2ebG+E5rYkrkSxe/B
-WpjeGO/skvu5LXke19oBg1BRU6dFTV0Mo+pi+IgR7OL/EIjJF0cwpxXwgn3WShRI
-XyefsRX3fNh72PdimCcE57kkdcR750864gqp/nEiPr+YQxImqPM8VW+dbgaxtgU5
-NUeYf3KBRVPOS1MZdpt/M7ABQSXWuKRDy9By09bWzEFnuYFmw8VcPvSoWlvXFaUH
-rPEKoiLDG3bh3L3eO3ob4Fop56TTw9CdAVKLDAlBHcEvISHigkuqmOJBiQXSzY5k
-UOsXC85vq0OBbHGGXMtdBhu+67gScOLeGHnPdCDpsLElxFG5u1R01rPSP6M3mVEt
-mL31coCGmNoJKt1hPiXDVLSBiotN+0zVmQECYxGWaTEokyIvYFQKwel6uD1I3ytE
-EkKN4HiyaxjBSyABO07RnXRPnirZMHRWEXsccZdWxFuk5Ldt990Dsd7xohLVlrQd
-KTojlbrF0/fzMADnQtVOwAwDMIctQaOvLHH9cb7Bl7Zhdx0tAZWE14jNG6bkPY32
-ORUv0ZAXdocNK2EnuJFn5KbZjjYfulRrg53hCkiHh2Zrehd70w0rOUdd7Yfqb40w
-GuaxGoaGIzLBDkNkCTgCIkPPRQexoaKHRA1PZzXe6vZjhlhsNkA/Uu7ylfmWnO7U
-fNzaC9qBT6OdUiqI4T6Cg+xAQmLMfWgHs4sgVyY5H+Wo5qMPYGsrJyngf76tMVPU
-uYs3jJaxE5N4FxpPnoRYO0F1lSWFBFgjgSHBPsoNOputsYdWNmuDqGdg9CJC3gjF
-VfQbiwO8i15aADx9xmdB9eucCWenuup197U7bdIs6Ecfke7KQN1G892TSr5K/9FZ
-gkgLPdYEGrK7nQEDh4y25+4brjeqLUwWYTlLklcESG0NOqN9kL9XMnL6gjdk7r4m
-33TfAetOCKFpe/XYY9N90nuLydC6ik3I0XVX/4ypCjIWJbDPq+4yW3ApxiglsQZj
-OoxxEkuBz//u5U7u9XLyzctftNH7pFOlmkG7LEyh31PpJjMtnKlqlueqf4V8WI2v
-2HnSLmai7OWtvr2n40trBoRq/yRt/XjW2n0HSlshZruvYw7RRebJlbp8MX7YDPSM
-B7Qo2edlP3rTmMpHGF2b8lzStMaKK8QuF9ZBXms82XHSwVOTdKYO1Nw2atHVkHnM
-AV3mEUfT+G47ixuaVcS4zet106fjEklIWZl/lfYtU3NwuvoQddk61gjunqaa8hBg
-DnY3+xxoG80MQO+16f7jSenmnHRHvDg3FkIV3swJgzvUVvTth9NnQ7L5SCPlz0IS
-eIu+7nsdG/PDbhqRSEaCUesyMXzpXw3KKnV9mNlsitVgQ0leO7M+MhpdrGRKfX8R
-baOERf/+Vr7vfMmgpnqXG9+XxIE3Ywkt+aVcpJJcxI/UoHTkxuon06u8yBe0aS4T
-AAuVAvRPIDv1CkT1dK1XhgquMuvNSCBUhpS9KKW6IeursBv0JNIdiJqO7qvF+U9u
-zCn4Q1dUgnfOyY8wB1mn9zLrswbK4hlOzfKao4rWGAvOjyAnR4yh667H7BPwSawm
-J418zeQhgESEKuyBaH6E7kHfCEzKHh272gW5x6SVriB3nOkIbkuR7pKw/IzusMHt
-UwtaDM83BPs096HyhrzQ9vmkgu+H3dOsZsYbAGL8nq88H2ZD1TW0mYkUHSLTz/Am
-J+qFHINawdgs514evnl5/NgenC4zzVA6asmiD0D68P34M1pNeHiVNEdC+kgS9372
-BkCpb4G/HPUSD+/p+NJBXwR72pcyqA0XZCUwmmgkwwJNQrBje+/PKYQI+pNmCsCj
-4aUuvU0xP5EnHCSaHyYRr93DDq1tG0N0UWO6oyfg5Tiuiix0TjDKjAiY9uccpU8t
-OzLAh90ofwQ14JuvXlFcDGjJ9doiqO1+idc04PTVIwege/wFt78Q+j/9Pohl56JL
-Tm8DtDFzb0yPsg1YdF2J6Qm6zdy5lmP6pyH9agni6TBjZ7QJhOPRc45c1wVoeBxe
-nHYVDtleWsgrmBnNMBLOqt4qjloREM1UNFbiONbJE8yhayGrhKeFt7OgtCpvoORq
-ND+0u3GAyP+lDpwNV6woN3A0SH+luvJrpQfhtAmwovorgb8Yi1RGvkiUmsneXiWA
-3vrTOY2Cp5IaOXov4GV1+VEBgLcY5cpfHP+wOYngHsiHQsFSxs1ZbMEhuw4LQk0J
-gEe1KVTFcX3UcX2JqTetPXs3GhENkTXR5E+MehctquTetrWncVFq+nnQyxg1bBRq
-BTHBWqdBmcXJIbf4V7okwJdFRJnkXHO6sdxuDJ4/xvRQUQmidNfUiu6XXImxA3oo
-ZEwQbBqdtaSvcoQYbG47MaFksDlj66NAPJZ0armvngbh0S4H9XIcc2oApNUOgpi5
-IA3on7lFL3Tv/p2W6vbVRMyqbfAuyRluqjNBHujG2aht8B6jtBppsiNoPuDpzyTX
-x61rqi31/DljFrLFeFDRu9Mjvf2ynqp7d9HuHZEYmLfQbP1CGe3nI3snrSrcc3xn
-LlY1Uy5UAmuVUVol9RCAJVxmJFDp+Ov8Sb7ANEA8BJv3/yL9eL7zzuG6YnHb7WkJ
-xRWCjkK86qmjEJvnH4Fr3yF2rXOH1eB1RzJSsuZdPLKulWTkF8tFbHGHY3pn21ri
-GHD2Ilt1i8ZsJ/vrqNnqRmUX4gFILJZ05X48p1GRe59nuyaxXqmvo/NPr3hEo2f0
-hx7/4w/EaPg4mGdheh2kyNr84UGz8jDg/ksHIGQfAzAfUsse1BPLvH8Zdt4RCNE6
-2bpRkWs1pDjFzs3vYjPKcyKHpB+gQH12pKBBaqSwOaORrql6hBxAp5tNWs/eOm+T
-jLlmjldBi+bPJZ0ds7Hlusk0Y4GbpSeGIzxaf7iotathlYaxmz5SfwEfDV3+L+Pz
-p/tXyadWAnhw/PWojckBL43I7Ste82JbBYWRMtQLgeKG7IDJTS8eR79YcuC8yx6o
-Eu21NqqgAf7l7OB52E+Y9saZU7OHIUr2PFRX0TqKh3skqPeyRo28OVSlMdFG/+Jr
-+vjjPLhADMRfKFRsCfwftBx9Co35AFp3K3hger0Q7r7LrBDupWrRR9SEtYopbQm7
-EGzLzp8LKE+txKrw89ekG5J7TSHq/lUzNzDNkL5BVQaX6kU17x1I5ITRwJt4Fl9u
-uP7LZO6PXzSWkMCHWQtC1a09vFs0lzJ00HS4OyJBCO+MSEDsuxKGos7D5uoCKvKL
-BZjvQZ/l92y6wful77kFe47I7Tomq7PJD9Ko4coto1m9Q8dWTiRcswzxbrjeyB0Q
-GJgODaPoLMqEoseItRz6Fb+BaI6A8eIr8W6I9gpkQ/tT5KgXPVNlecEYYEcwN2NW
-4nO8ZBS04+zbmBOMOv+0xIgNh3YQXg+ONlwNmRqO0huCMPMbIcyR5uLVWpaLsSOS
-H6kulw6Ed7bGjvADIh5EiCGDIsBqw6JcZUBd5JWI5PkVW/yD1POLhYXG2RNYM6yy
-58ERAT7pC6qDz2cSqcVE76xm58w4pgJRdBDvbamXI3RthjbmC/QkzjwnGdI4eSmA
-fvr2OhHqY315fwrTPn5BZpu+zAB5OrfPcuj8Idl0Rr0823v4aSTS28g8oErf28PQ
-hMJQLHC46X085MMAP6eALG6tmQ0Jy425ZMCk+2jZ+uMX76V55Gz1p+DsOSL3d9xu
-d8S3I+SzJeicwzRTDFFOf8PWIq6V9ed6Tddza8T3/O16d2qRzfluFxVA9JZXdBvP
-j69FAAPbCjxnObvRsRzyadnCCAXLjdVTWUtXmjmy5rjs1xlruWr8CYJ8r732z4qp
-f922s1oaAN8fUtZrYfeGr4Uo2HPpDveSveknBo8Mw1xuqtgQYTJpTqQJ5K9wAtJz
-qqR/dJXN9yDEAfY2cRJlLUvL4eO7YtENYWhrUWsGLwXqdX5lIL7P/Ey3y6ixKYVi
-VXuarEUOvyRWTTqJfylW/bxQ1aV4VkDQWSPVEN3osaRutiFSvRjV0RltkQ49IFAM
-uuMgT3fSLo+2fvSK0MmvULs1xh5Ov3hkBbj95pjRyIxUwftdjlQ/frGHXLMclXtN
-IFs403gFHxaplht6NzDXqe/va3mYTAx/2QhM7GupSAwwneEqMkSeBzJoevhQtCD/
-E4JwOYRQghRuvjpTiLSV09EbFFx7U4T5KIATebF1FYBnQ6OdSaSuu6NmmlbroRf4
-S1GoujvQgeRmEKrlUN5DFhejOoER10vpOgrVDn9zFGi6YRFtJm3ll/l7hX/TB9ho
-J7k5nA1aK8e2YHTQuxNSlWc9ih9YXJNiIapf2wNaBpj23IC00GZe54xUCaY69uGb
-ECtFhEnmKxJNLkMr6/m3eXvobzVyA00HI1btU/bW9iMW9W744ZELRGgXQuMNuyii
-IqWTSDm+6NS8IdJm0VUi8rjdVQfgTEtGVZOr7odMZzRaQMFf3uq14rq9vL6Wt5cu
-aJz9TEbmVd1UC5oWPXJHv1EcoGlSgfTgI2nQy5L1fUGPk7/IbJ6Ot4QR/PN6+fhi
-cckOrzsGzMwxtSgBykRfS1jUfALEZOdt1o/6AM4/O2NB7WXL5bqnCYvxZ9freasl
-OWP+DhO1PcQ1SsiELLK1C5BkP+MyQPabNYJtzHzmy790fspzGrUi71gZnJuELQJd
-6bbzg4dp2s53PWDecLWeo9Zo+872FRFOB6X23Gcwt6ku8NL3RGkGNCxHshTeFLAN
-3YfFG7pX9yUjyLS2HEgkjGxGnTh4W2eaJfEfKId/SSMYQkgZG5nlDsnNV6E3+WyB
-1VqaAZ/W9Bk9mwSOKKIwPEdFXW3Z6iqZCPczJ1+1ZW7LBeBbULdrvVa0ZboCC3VI
-VfIoRQqDeLq92AP5/MMPEKXBTGWrNSOaHz7ObyXXQA/tAH0O6LOzdIy9ptd+6OOZ
-nc3mAhaT5f5bOYbFblXBqflDPvY0HZtRvNfqmu4MuWjBYcqIIgJwOVoiL1IrqEVt
-FWWBQOv85ICUBhMtUDyyNQCC20cVNyDjaj9JPVw5odwDlDfmvuHWfdufjk3ZA809
-5o7DehdZX0SO1QG0GRGTSm2nJlqGAxGT3uf4zqcyycfOOrNxXcdmDeFvycdYaRz1
-q7fSNMexx6a3XIi0M6tAeM6jI5ulPaH4pH1yQgxJe+5caZ7FwI5+o+R3n0kISI6W
-CXDilAIC3OH0MWluEaukvcZ/23nJT8uRXG068J4TyIISQhxkpr1QbNpwPVZVg/Q5
-JhuT5kalcZAQjXaXvY7hgI0qkvOh6d2ulpGP/0h1Oek3+cEb/vi2YZqJVhduWR8L
-L7TtcqdhfWyLDA6RIpKi0ejEGML16Ku8FtQID6EVfZS7YMMuCWJcsSMoFJPaQIYJ
-5rQtvKFm9FKKmEgXwSN90Xe8W24R5lYzywU9fawj+h61vzbF3sWul6FT/rkY3RL8
-8DRrDdXqM+LBsSRvdl1efud0+xpFTnu4rgNt3GG5PW9FmOiD1bWiJrghqbil+vQB
-le80Ut9YzBF0SpGGyLve+4aK746AZLGxdkNOis7EOFzVPIqeK7FY+Kfx84Y0ZbFc
-8jQIO1qHHVJ6ltA8kdTSFrv+t1wLtOMkE3om4v1Av6X6XLsuXOfrXJpvn5L87fiZ
-3JNruvPtjemfIbwNF1x0gHWymWe5C6MdJRJr2I2JHeMM5pnXee2xnsOlwWOY/vUY
-iHndWyKcp8Nuk0F5iJ3X2Y3WBN6ncPD0rDzKAQSKrwxcphdyNhSa19SA0xDMLNrR
-DxBRIsHSrVKkviXb3tBD9zRHCHMNbZ+C8v5fpGBueC+3voEsYM60MvbtrWjuDA5Q
-0d6Xjz0NglPPXZ6JvVSiq8HKcMhzxyfXA5DHjymQPAUQXZj/NqXR16sCps5Wi5nR
-h/6SWHsSWe/aap0jTTpvYdW+IZKl0TeS6G33tTTr1XRwALPUJx2xJw0s3463pJPF
-gzU/Krn7chmU+ixJY3x8LyohjaZb0UAWtWHq5QK61XNNBtzxh9bShiujtLkU6K4O
-9z/Gzmu5nbvyo4190Nn7rP0y3ZiZjxZKQWzM8ziH1QfG3mpo0hhVcjNU07kG4nBt
-ECFGUhOPyHFnw9jMfJqGrIMl1SoYoCfkXosUKbKph959V1Oap6NKjoBgmecouWBx
-6xxTIZnLH/i8fahAu+nKGp654qnhmeUEyYYAGNPvSpCeH3ctNq07YasHffR3c5bO
-Qbtvnuyk5GXUago7n5bavMUHYCcBO9Rh0+EaNKoyH9BfVq4c+5vjMLzEi0+9aYsN
-FBKz1KbHCggQTI+FSVFvTQ6YI3EI/h2ugK/mEODBckkHmAhfnB0wefT37PdysyFS
-93/r89yaQexAnewFoi5rvQdsPReyPjqCCYffplzSfNVWnceMud7fPUJjq0Huxjo7
-vG4RegEgfxpIoBoF1sMgTCr01pkG9tb7YhkEKnZ4MxNwnZzupiTqGzuPIxz6JxOp
-g3x5MoIcEOeiKlr49uVnefrT0Ye0z8RgXwF6LhuncYjWCti28pENeMhvt7/lBCb0
-Ll7DQLoNNBfcyu1G0UGPKUa9VVYSi7+jGQoh1n8VRz4dj7DjBYFsGJT6GnZlNDt7
-ybqroAzTTTW7eH3LCuVPN5GcQDM/JOh+WDeitHmwyP0l13Q2bRX0PjpbbDOw2SVL
-S1MfwLTZSy7Duzh6ANSGnUpKSYY/xjsTtZLP3WilFSALob39ZSj1PPFKwHrqo2nQ
-0//qIqlP9qF7zeB6oZbz8bSAJSKw1QSlGLW3ARwiGAWNCd9xbpb2B2r20u10y+7l
-H7+xRzeg/knv0jbz9U9IkEQC4q6o4ZkXb3PDXLE2gSrGpwvf5vufbllhmh68hrF0
-tqrLMeM2ZgKHcx/GBO/+0nLHsLXrDRIPrQAS8yP/eCWrURcFMTW7wYXUB7lJ+eJ6
-0Cw+qGf5kFkBnhWl66OQifphpc2bq6Zzkbu1dwsnbEtrjYtVK/MUm3IDbNm31X0Q
-wzOe0QK2LmTFlgRUOd6UsIitEsk0LB4x8hzVGn0zzAb+ji+3nXw8Wk15Tr33Ibrb
-sprrvKVj5B0gC5rdOgfM6D6XGvR5BINRyAk7ywU5YZsqOr4l1/SEx47uLWc9O3st
-Pum1aMxldB0GucP/05m+YRHd4obyLHR15l+6mWhR64BVvapx+xV9dDQMWUmN9P3g
-YsZFvO5nXEWodFsbT+bblXcWnQtWBx8FlRT25walZtM02YfFhi/GWU93zzrPbr35
-HPV8U2r19My55lidQNwg/7Y049HyTdxWk6bobk4zLpRmvJLrvS3NmOsOUJlzipdm
-w5YrO62G8D4LY3bh+yOBkP8dVevPzEXaqTXXVo+DzwLrHgH0K2xzOZx4rF+APOU6
-IAy+V8oYJSz9KsD80cVw1UVhNpX1gdpJKz0CXd6NlQxIQTPECnVVvk1kGMB93fkZ
-Gy9lBeKNEY23ZKMFsni5J3mmzfyumU2eSd+zhB2J7HoZli3tuVkD8Qz08Vd3O5uG
-ziC99ae243xFe0CcYUSrmjesEzGyvd0p6I2EK0RdC9uqLP2nqOnpWNQVEsbcy2Xk
-985nEBmImcGCJhDVeUn9FLvTI/azdRSjqblbZQxymUml/PbDlqbXKdOyYzpvuNSE
-uHExBq95rBv7eJ7fdD2y73KjYqlWO4tDSfB6RQcx8oINjigsr6U0n5kfXW3Jn+np
-MIQymuSO8JJZz9Pxd/O2DPC77cBDos53ol/KC0pNO5s1DMnPIEdqZxs6SseGmTuq
-NkI21ltNHVzlW20JaXseQMty5xdvpp96dbXeQWshmz3wiwfy/oebm7CMw+NZDpAo
-7Gwumts84Gf3M48kce9xlJLljR3pDEb7tVbvtZLRQ3pcb7neBu25+VCQeBulDkAl
-oekpeduI6VP5DR5s7JI5B+2F1kpLOrRZySMXZajVOGSyuDNDTC0NbXwLG2O+KEO0
-3TqnS0+IkPaWAlpKp27cZHJm+9+x85bYAq+2yTwbVlI+NGdsjOq1C3Sb+1LSznCm
-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
-GwoA
-|]
diff --git a/src/Hack/Contrib/Mime.hs b/src/Hack/Contrib/Mime.hs
deleted file mode 100644
--- a/src/Hack/Contrib/Mime.hs
+++ /dev/null
@@ -1,178 +0,0 @@
-module Hack.Contrib.Mime where
-
-import qualified Data.Map as M
-import MPSUTF8
-import Prelude hiding ((.))
-
-mime_types :: M.Map String String
-mime_types = 
-   [  x     ".3gp"          "video/3gpp"
-   ,  x     ".a"            "application/octet-stream"
-   ,  x     ".ai"           "application/postscript"
-   ,  x     ".aif"          "audio/x-aiff"
-   ,  x     ".aiff"         "audio/x-aiff"
-   ,  x     ".asc"          "application/pgp-signature"
-   ,  x     ".asf"          "video/x-ms-asf"
-   ,  x     ".asm"          "text/x-asm"
-   ,  x     ".asx"          "video/x-ms-asf"
-   ,  x     ".atom"         "application/atom+xml"
-   ,  x     ".au"           "audio/basic"
-   ,  x     ".avi"          "video/x-msvideo"
-   ,  x     ".bat"          "application/x-msdownload"
-   ,  x     ".bin"          "application/octet-stream"
-   ,  x     ".bmp"          "image/bmp"
-   ,  x     ".bz2"          "application/x-bzip2"
-   ,  x     ".c"            "text/x-c"
-   ,  x     ".cab"          "application/vnd.ms-cab-compressed"
-   ,  x     ".cc"           "text/x-c"
-   ,  x     ".chm"          "application/vnd.ms-htmlhelp"
-   ,  x     ".class"        "application/octet-stream"
-   ,  x     ".com"          "application/x-msdownload"
-   ,  x     ".conf"         "text/plain"
-   ,  x     ".cpp"          "text/x-c"
-   ,  x     ".crt"          "application/x-x509-ca-cert"
-   ,  x     ".css"          "text/css"
-   ,  x     ".csv"          "text/csv"
-   ,  x     ".cxx"          "text/x-c"
-   ,  x     ".deb"          "application/x-debian-package"
-   ,  x     ".der"          "application/x-x509-ca-cert"
-   ,  x     ".diff"         "text/x-diff"
-   ,  x     ".djv"          "image/vnd.djvu"
-   ,  x     ".djvu"         "image/vnd.djvu"
-   ,  x     ".dll"          "application/x-msdownload"
-   ,  x     ".dmg"          "application/octet-stream"
-   ,  x     ".doc"          "application/msword"
-   ,  x     ".dot"          "application/msword"
-   ,  x     ".dtd"          "application/xml-dtd"
-   ,  x     ".dvi"          "application/x-dvi"
-   ,  x     ".ear"          "application/java-archive"
-   ,  x     ".eml"          "message/rfc822"
-   ,  x     ".eps"          "application/postscript"
-   ,  x     ".exe"          "application/x-msdownload"
-   ,  x     ".f"            "text/x-fortran"
-   ,  x     ".f77"          "text/x-fortran"
-   ,  x     ".f90"          "text/x-fortran"
-   ,  x     ".flv"          "video/x-flv"
-   ,  x     ".for"          "text/x-fortran"
-   ,  x     ".gem"          "application/octet-stream"
-   ,  x     ".gemspec"      "text/x-script.ruby"
-   ,  x     ".gif"          "image/gif"
-   ,  x     ".gz"           "application/x-gzip"
-   ,  x     ".h"            "text/x-c"
-   ,  x     ".hh"           "text/x-c"
-   ,  x     ".htm"          "text/html"
-   ,  x     ".html"         "text/html"
-   ,  x     ".ico"          "image/vnd.microsoft.icon"
-   ,  x     ".ics"          "text/calendar"
-   ,  x     ".ifb"          "text/calendar"
-   ,  x     ".iso"          "application/octet-stream"
-   ,  x     ".jar"          "application/java-archive"
-   ,  x     ".java"         "text/x-java-source"
-   ,  x     ".jnlp"         "application/x-java-jnlp-file"
-   ,  x     ".jpeg"         "image/jpeg"
-   ,  x     ".jpg"          "image/jpeg"
-   ,  x     ".js"           "application/javascript"
-   ,  x     ".json"         "application/json"
-   ,  x     ".log"          "text/plain"
-   ,  x     ".m3u"          "audio/x-mpegurl"
-   ,  x     ".m4v"          "video/mp4"
-   ,  x     ".man"          "text/troff"
-   ,  x     ".mathml"       "application/mathml+xml"
-   ,  x     ".mbox"         "application/mbox"
-   ,  x     ".mdoc"         "text/troff"
-   ,  x     ".me"           "text/troff"
-   ,  x     ".mid"          "audio/midi"
-   ,  x     ".midi"         "audio/midi"
-   ,  x     ".mime"         "message/rfc822"
-   ,  x     ".mml"          "application/mathml+xml"
-   ,  x     ".mng"          "video/x-mng"
-   ,  x     ".mov"          "video/quicktime"
-   ,  x     ".mp3"          "audio/mpeg"
-   ,  x     ".mp4"          "video/mp4"
-   ,  x     ".mp4v"         "video/mp4"
-   ,  x     ".mpeg"         "video/mpeg"
-   ,  x     ".mpg"          "video/mpeg"
-   ,  x     ".ms"           "text/troff"
-   ,  x     ".msi"          "application/x-msdownload"
-   ,  x     ".odp"          "application/vnd.oasis.opendocument.presentation"
-   ,  x     ".ods"          "application/vnd.oasis.opendocument.spreadsheet"
-   ,  x     ".odt"          "application/vnd.oasis.opendocument.text"
-   ,  x     ".ogg"          "application/ogg"
-   ,  x     ".p"            "text/x-pascal"
-   ,  x     ".pas"          "text/x-pascal"
-   ,  x     ".pbm"          "image/x-portable-bitmap"
-   ,  x     ".pdf"          "application/pdf"
-   ,  x     ".pem"          "application/x-x509-ca-cert"
-   ,  x     ".pgm"          "image/x-portable-graymap"
-   ,  x     ".pgp"          "application/pgp-encrypted"
-   ,  x     ".pkg"          "application/octet-stream"
-   ,  x     ".pl"           "text/x-script.perl"
-   ,  x     ".pm"           "text/x-script.perl-module"
-   ,  x     ".png"          "image/png"
-   ,  x     ".pnm"          "image/x-portable-anymap"
-   ,  x     ".ppm"          "image/x-portable-pixmap"
-   ,  x     ".pps"          "application/vnd.ms-powerpoint"
-   ,  x     ".ppt"          "application/vnd.ms-powerpoint"
-   ,  x     ".ps"           "application/postscript"
-   ,  x     ".psd"          "image/vnd.adobe.photoshop"
-   ,  x     ".py"           "text/x-script.python"
-   ,  x     ".qt"           "video/quicktime"
-   ,  x     ".ra"           "audio/x-pn-realaudio"
-   ,  x     ".rake"         "text/x-script.ruby"
-   ,  x     ".ram"          "audio/x-pn-realaudio"
-   ,  x     ".rar"          "application/x-rar-compressed"
-   ,  x     ".rb"           "text/x-script.ruby"
-   ,  x     ".rdf"          "application/rdf+xml"
-   ,  x     ".roff"         "text/troff"
-   ,  x     ".rpm"          "application/x-redhat-package-manager"
-   ,  x     ".rss"          "application/rss+xml"
-   ,  x     ".rtf"          "application/rtf"
-   ,  x     ".ru"           "text/x-script.ruby"
-   ,  x     ".s"            "text/x-asm"
-   ,  x     ".sgm"          "text/sgml"
-   ,  x     ".sgml"         "text/sgml"
-   ,  x     ".sh"           "application/x-sh"
-   ,  x     ".sig"          "application/pgp-signature"
-   ,  x     ".snd"          "audio/basic"
-   ,  x     ".so"           "application/octet-stream"
-   ,  x     ".svg"          "image/svg+xml"
-   ,  x     ".svgz"         "image/svg+xml"
-   ,  x     ".swf"          "application/x-shockwave-flash"
-   ,  x     ".t"            "text/troff"
-   ,  x     ".tar"          "application/x-tar"
-   ,  x     ".tbz"          "application/x-bzip-compressed-tar"
-   ,  x     ".tcl"          "application/x-tcl"
-   ,  x     ".tex"          "application/x-tex"
-   ,  x     ".texi"         "application/x-texinfo"
-   ,  x     ".texinfo"      "application/x-texinfo"
-   ,  x     ".text"         "text/plain"
-   ,  x     ".tif"          "image/tiff"
-   ,  x     ".tiff"         "image/tiff"
-   ,  x     ".torrent"      "application/x-bittorrent"
-   ,  x     ".tr"           "text/troff"
-   ,  x     ".txt"          "text/plain"
-   ,  x     ".vcf"          "text/x-vcard"
-   ,  x     ".vcs"          "text/x-vcalendar"
-   ,  x     ".vrml"         "model/vrml"
-   ,  x     ".war"          "application/java-archive"
-   ,  x     ".wav"          "audio/x-wav"
-   ,  x     ".wma"          "audio/x-ms-wma"
-   ,  x     ".wmv"          "video/x-ms-wmv"
-   ,  x     ".wmx"          "video/x-ms-wmx"
-   ,  x     ".wrl"          "model/vrml"
-   ,  x     ".wsdl"         "application/wsdl+xml"
-   ,  x     ".xbm"          "image/x-xbitmap"
-   ,  x     ".xhtml"        "application/xhtml+xml"
-   ,  x     ".xls"          "application/vnd.ms-excel"
-   ,  x     ".xml"          "application/xml"
-   ,  x     ".xpm"          "image/x-xpixmap"
-   ,  x     ".xsl"          "application/xml"
-   ,  x     ".xslt"         "application/xslt+xml"
-   ,  x     ".yaml"         "text/yaml"
-   ,  x     ".yml"          "text/yaml"
-   ,  x     ".zip"          "application/zip"
-   ] .to_h
-   where x a b = (a, b)
-
-lookup_mime_type :: String -> Maybe String
-lookup_mime_type = flip M.lookup mime_types
diff --git a/src/Hack/Contrib/RawRouter.hs b/src/Hack/Contrib/RawRouter.hs
deleted file mode 100644
--- a/src/Hack/Contrib/RawRouter.hs
+++ /dev/null
@@ -1,20 +0,0 @@
-module Hack.Contrib.RawRouter (route) where
-
-import Hack
-import Hack.Utils
-import Hack.Request hiding (path)
-
-import MPSUTF8
-import Prelude hiding ((.), (^), (>))
-import List (find)
-import Data.Maybe
-
-type RoutePath = (String, Application)
-
-route :: [RoutePath] -> MiddleWare
-route h app = \env ->
-  let path = env.fullpath
-  in
-  case h.find (fst > flip match path > isJust) of
-    Nothing -> app env
-    Just (_, found_app) -> found_app env
diff --git a/src/Hack/Contrib/ShowExceptions.hs b/src/Hack/Contrib/ShowExceptions.hs
deleted file mode 100644
--- a/src/Hack/Contrib/ShowExceptions.hs
+++ /dev/null
@@ -1,31 +0,0 @@
-module Hack.Contrib.ShowExceptions (show_exceptions) where
-
-import Hack
-import Hack.Contrib.Hub
-
-import MPSUTF8
-import Prelude hiding ((.), (^), (>), log)
-
-import Data.Maybe
-import Data.Default
-
-import System.IO  
-import System.IO.Error
-
-
-program :: String
-program = "ShowExceptions"
-
-show_exceptions :: Maybe Stream -> MiddleWare
-show_exceptions stream app = \env -> do
-  let my_stream = stream.fromMaybe (env.hack_errors)
-  let log = simple_logger my_stream program
-  
-  app env `catch` (handler log)
-
-  where
-    handler :: Logger -> IOError -> IO Response
-    handler log e = do
-      let message = e.show
-      Error. log message
-      return $ def { status = 500, body = message }
diff --git a/src/Hack/Contrib/ShowStatus.hs b/src/Hack/Contrib/ShowStatus.hs
deleted file mode 100644
--- a/src/Hack/Contrib/ShowStatus.hs
+++ /dev/null
@@ -1,97 +0,0 @@
-{-# LANGUAGE QuasiQuotes #-}
-
-module Hack.Contrib.ShowStatus (show_status) where
-
-import Hack
-import Hack.Utils
-import Hack.Constants
-import Hack.Request hiding (body)
-import Hack.Response
-
-import MPSUTF8
-import Prelude hiding ((.), (^), (>), head)
-
-import Data.Maybe
-
-show_status :: MiddleWare
-show_status app = \env -> do
-  response <- app env
-  
-  let content_length = response.header _ContentLength .fromMaybe "0"
-  let content_empty = content_length .read .(<= (0 :: Int))
-  
-  if response.status >= 400 && content_empty
-    then 
-      let 
-          i       = response.status
-          message = i.show_status_code .fromMaybe (i.show)
-          detail  = env.custom_"hack.showstatus.detail" .fromMaybe message
-          result  = template message detail env response
-          size    = result.bytesize
-      in
-      return $ 
-        response
-          .set_body result
-          .set_content_type _TextHtml
-          .set_content_length size
-    
-    else return response
-
-
-template :: String -> String -> Env -> Response -> String
-template message detail env response = 
-  let h = escape_html in [$here|
-
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html lang="en">
-<head>
-  <meta http-equiv="content-type" content="text/html; charset=utf-8" />
-  <title>#{h message } at #{h (env.path.url2unicode) }</title>
-  <meta name="robots" content="NONE,NOARCHIVE" />
-  <style type="text/css">
-    html * { padding:0; margin:0; }
-    body * { padding:10px 20px; }
-    body * * { padding:0; }
-    body { font:small sans-serif; background:#eee; }
-    body>div { border-bottom:1px solid #ddd; }
-    h1 { font-weight:normal; margin-bottom:.4em; }
-    h1 span { font-size:60%; color:#666; font-weight:normal; }
-    table { border:none; border-collapse: collapse; width:100%; }
-    td, th { vertical-align:top; padding:2px 3px; }
-    th { width:12em; text-align:right; color:#666; padding-right:.5em; }
-    #info { background:#f6f6f6; }
-    #info ol { margin: 0.5em 4em; }
-    #info ol li { font-family: monospace; }
-    #summary { background: #ffc; }
-    #explanation { background:#eee; border-bottom: 0px none; }
-  </style>
-</head>
-<body>
-  <div id="summary">
-    <h1>#{h message } <span>(#{ response.status })</span></h1>
-    <table class="meta">
-      <tr>
-        <th>Request Method:</th>
-        <td>#{ env.request_method }</td>
-      </tr>
-      <tr>
-        <th>Request URL:</th>
-      <td>#{h (env.url.url2unicode) }</td>
-      </tr>
-    </table>
-  </div>
-  <div id="info">
-    <p>#{h detail }</p>
-  </div>
-
-  <div id="explanation">
-    <p>
-    You're seeing this error because you use <code>Hack.Contrib.ShowStatus</code>.
-    </p>
-  </div>
-</body>
-</html>
-
-
-|]
diff --git a/src/Hack/Contrib/SimpleAccessLogger.hs b/src/Hack/Contrib/SimpleAccessLogger.hs
deleted file mode 100644
--- a/src/Hack/Contrib/SimpleAccessLogger.hs
+++ /dev/null
@@ -1,22 +0,0 @@
-module Hack.Contrib.SimpleAccessLogger (simple_access_logger) where
-
-import Hack
-import Hack.Utils
-import Hack.Request
-import Hack.Contrib.Hub
-
-import MPSUTF8
-import Prelude hiding ((.), (^), (>), log)
-import Data.Maybe
-
-program :: String
-program = "SimpleAccessLogger"
-
-simple_access_logger :: Maybe Stream -> MiddleWare
-simple_access_logger stream app = \env -> do
-  let my_stream = stream.fromMaybe (env.hack_errors)
-  let log = simple_logger my_stream program
-  
-  Info .log (env.url.url2unicode)
-  
-  app env
diff --git a/src/Hack/Contrib/SimpleRouter.hs b/src/Hack/Contrib/SimpleRouter.hs
deleted file mode 100644
--- a/src/Hack/Contrib/SimpleRouter.hs
+++ /dev/null
@@ -1,25 +0,0 @@
-{-# LANGUAGE QuasiQuotes #-}
-
-module Hack.Contrib.SimpleRouter (route) where
-
-import Hack
-import Hack.Utils
-
-import MPSUTF8
-import Prelude hiding ((.), (^), (>))
-import List (find, isPrefixOf)
-
-type RoutePath = (String, Application)
-
-route :: [RoutePath] -> MiddleWare
-route h app = \env ->
-  let path             = env.path_info
-      script           = env.script_name
-      mod_env location = env 
-        { script_name  = script ++ location
-        , path_info    = path.drop (location.length)
-        }
-  in
-  case h.find (fst > (`isPrefixOf` path) ) of
-    Nothing -> app env
-    Just (location, app') -> app' (mod_env location)
diff --git a/src/Hack/Contrib/Static.hs b/src/Hack/Contrib/Static.hs
deleted file mode 100644
--- a/src/Hack/Contrib/Static.hs
+++ /dev/null
@@ -1,22 +0,0 @@
-module Hack.Contrib.Static (static) where
-
-import Hack
-import Hack.Utils
-import Hack.Contrib.File (file)
-
-import MPSUTF8
-import Prelude hiding ((.), (^), (>), (+))
-import Data.Maybe
-import List (find, isPrefixOf)
-
-static :: Maybe String -> [String] -> MiddleWare
-static root urls app = \env -> do
-  let my_urls = if urls.null then ["/favicon.ico"] else urls
-
-  let path = env.path_info .url2unicode
-
-  let can_serve = my_urls.find ( `isPrefixOf` path ) .isJust
-  
-  if can_serve
-    then file root app env
-    else app env
diff --git a/src/Hack/Handler/Hyena.hs b/src/Hack/Handler/Hyena.hs
deleted file mode 100644
--- a/src/Hack/Handler/Hyena.hs
+++ /dev/null
@@ -1,82 +0,0 @@
-{-# LANGUAGE Rank2Types #-}
-{-# LANGUAGE ImpredicativeTypes #-}
-
-module Hack.Handler.Hyena (run) where
-
-import Hack as Hack
-import Hack.Utils
-
-import Hyena.Server
-import Network.Wai as Wai
-
-import Data.Default
-import Prelude hiding ((.), (^))
-import MPSUTF8 hiding (to_s)
-import System.IO
-import qualified Data.ByteString.Char8 as C
-import qualified Data.ByteString as S
-
-import Control.Monad
-import Data.Maybe
-
-to_s :: S.ByteString -> String
-to_s = C.unpack
-
-to_b :: String -> S.ByteString
-to_b = C.pack
-
-both_to_s :: (S.ByteString, S.ByteString) -> (String, String)
-both_to_s (a,b) = (a.to_s, b.to_s)
-
-both_to_b :: (String, String) -> (S.ByteString, S.ByteString)
-both_to_b (a,b) = (a.to_b, b.to_b)
-
-hyena_env_to_hack_env :: Environment -> IO Hack.Env
-hyena_env_to_hack_env e = return $
-  def
-    {   
-       request_method = e.requestMethod.show.upper.read
-    ,  script_name    = e.scriptName.to_s
-    ,  path_info      = e.pathInfo.to_s
-    ,  query_string   = e.queryString .fromMaybe (to_b "") .to_s
-    ,  http           = e.Wai.headers .map both_to_s
-    ,  hack_errors    = e.errors
-    }
-
--- hack_response_to_hyena_response :: Hack.Response -> (Int, S.ByteString, Headers, Enumerator)
-
-enum_string :: String -> IO Enumerator
-enum_string msg = do
-  let s = msg.to_b
-  let yieldBlock f z = do
-         z' <- f z s
-         case z' of
-           Left z''  -> return z''
-           Right z'' -> return z''
-
-  return yieldBlock
-
-type WaiResponse = (Int, S.ByteString, Wai.Headers, Enumerator)
-
-hack_response_to_hyena_response :: Enumerator -> Hack.Response -> WaiResponse
-hack_response_to_hyena_response e r =
-    (   r.status
-    ,   r.status.show_status_code.fromMaybe "OK" .to_b
-    ,   r.Hack.headers.map both_to_b
-    ,   e
-    )
-
-
-hack_to_wai :: Hack.Application -> Wai.Application
-hack_to_wai app env = do
-  hack_env <- env.hyena_env_to_hack_env
-  
-  r <- app hack_env
-  
-  enum <- r.body.enum_string
-  let hyena_response = r.hack_response_to_hyena_response enum
-  
-  return hyena_response
-
-run :: Hack.Application -> IO ()
-run app = app.hack_to_wai.serve
diff --git a/src/Hack/Handler/Kibro.hs b/src/Hack/Handler/Kibro.hs
deleted file mode 100644
--- a/src/Hack/Handler/Kibro.hs
+++ /dev/null
@@ -1,47 +0,0 @@
-module Hack.Handler.Kibro (run) where
-
-import Hack
-import Kibro
-import Network.CGI hiding (Html)
-import Network.URI
-import Data.Default
-import Prelude hiding ((.), (^))
-import MPSUTF8
-import System.IO
-
-run :: Application -> IO ()
-run app' = startKibro [("", handle app')]
-  where
-    
-    get_env = do
-      uri <- requestURI
-      request_method' <- requestMethod
-      let script_name' = ""
-      let path_info' = uri.uriPath
-      let query_string' = uri.uriQuery
-      server_name' <- serverName
-      server_port' <- serverPort
-      hack_input' <- getBody
-
-      def 
-        {  request_method = request_method'.read
-        ,  script_name    = script_name'
-        ,  path_info      = path_info'
-        ,  query_string   = query_string'.remove_question_mark
-        ,  server_name    = server_name'
-        ,  server_port    = server_port'
-        ,  hack_input     = hack_input'
-        ,  hack_errors    = \x -> hPutStr stderr (x.u2b)
-        }
-        .return
-      where 
-        remove_question_mark = dropWhile (is '?')
-
-    handle app = do
-      env <- get_env
-      response <- app env .liftIO
-
-      -- set response
-      response.headers.mapM_ (splash setHeader)
-      response.status.show.setHeader "Status"
-      response.body.output
diff --git a/src/Hack/Request.hs b/src/Hack/Request.hs
deleted file mode 100644
--- a/src/Hack/Request.hs
+++ /dev/null
@@ -1,53 +0,0 @@
-{-# LANGUAGE QuasiQuotes #-}
-
-module Hack.Request where
-
-import Hack
-import Prelude hiding ((.), (^), (>), lookup, (+))
-import MPSUTF8
-import Hack.Utils
-import List (lookup)
-import Data.Maybe
-
-body :: Env -> String
-body = hack_input
-
-scheme :: Env -> String
-scheme = hack_url_scheme > show > lower
-
-port :: Env -> Int
-port = server_port
-
-path :: Env -> String
-path env = env.script_name ++ env.path_info
-
-fullpath :: Env -> String
-fullpath env = 
-  if env.query_string.empty 
-    then env.path 
-    else env.path ++ "?" ++ env.query_string
-
-http_ :: String -> Env -> Maybe String
-http_ s env = env.http.reverse.lookup ("HTTP_" ++s)
-
-custom_ :: String -> Env -> Maybe String
-custom_ s env = env.custom.reverse.lookup s
-
-host :: Env -> String
-host env = env.http_"HOST" .fromMaybe (env.server_name) .gsub ":\\d+\\z" ""
-
-url :: Env -> String
-url env =
-  [  env.scheme
-  ,  "://"
-  ,  env.host
-  ,  port_string
-  ,  env.fullpath
-  ]
-  .join'
-  where
-    port_string = 
-      if (env.scheme.is "https" && env.port.is_not 443 || 
-          env.scheme.is "http" && env.port.is_not 80 )
-        then ":" ++ env.server_port.show
-        else ""
diff --git a/src/Hack/Response.hs b/src/Hack/Response.hs
deleted file mode 100644
--- a/src/Hack/Response.hs
+++ /dev/null
@@ -1,38 +0,0 @@
-{-# LANGUAGE QuasiQuotes #-}
-
-module Hack.Response where
-
-import Hack
-import Hack.Constants
-
-import MPSUTF8
-import Prelude hiding ((.), (^), (>), (+))
-
-import Data.Map (toList)
-import Data.Maybe
-
-
-header :: String -> Response -> Maybe String
-header s r = r.headers.reverse.lookup s
-
-has_header :: String -> Response -> Bool
-has_header s r = r.header s .isJust
-
-set_header :: String -> String -> Response -> Response
-set_header k v r = r 
-  { headers = (r.headers ++ [(k,v)] ) .to_h .toList }
-
-set_content_type :: String -> Response -> Response
-set_content_type s r = r.set_header _ContentType s
-
-set_content_length :: Int -> Response -> Response
-set_content_length i r = r.set_header _ContentLength (i.show)
-
-set_body :: String -> Response -> Response
-set_body s r = r { body = s }
-
-set_status :: Int -> Response -> Response
-set_status i r = r { status = i }
-
-set_last_modified :: String -> Response -> Response
-set_last_modified s r = r.set_header _LastModified s
diff --git a/src/Hack/Utils.hs b/src/Hack/Utils.hs
deleted file mode 100644
--- a/src/Hack/Utils.hs
+++ /dev/null
@@ -1,122 +0,0 @@
-{-# LANGUAGE QuasiQuotes #-}
-{-# LANGUAGE NoMonomorphismRestriction #-}
-
-module Hack.Utils where
-
-import Hack
-import Hack.Constants
-
-import MPSUTF8
-import Prelude hiding ((.), (^), (>), lookup, (+), (/))
-
-import Network.URI hiding (path)
-import Data.Default
-
-import Control.Arrow ((>>>), (<<<))
-import Data.Map (lookup, Map)
-import Data.Time
-import Text.Template
-import qualified Data.ByteString.Lazy.Char8 as B
-import Control.Monad (mplus, MonadPlus)
-import Data.Maybe
-import System.IO
-import System.Posix.Files
-import System.Locale
-import System.Directory
-import Data.Time.Clock.POSIX
-import System.FilePath ((</>))
-import Data.Char (ord)
-import Control.Category (Category)
-
-import qualified Data.ByteString.Lazy.Char8 as B
-import qualified Codec.Compression.GZip as GZip
-import Codec.Binary.Base64.String as C
-
--- import Date.Time
-
-(>) :: (Control.Category.Category cat) => cat a b -> cat b c -> cat a c
-(>) = (>>>)
-infixl 8 >
-
-(+) :: (MonadPlus m) => m a -> m a -> m a
-(+) = mplus
-infixl 8 +
-
-(/) :: FilePath -> FilePath -> FilePath
-(/) = (</>)
-infixl 5 /
-
-empty_app :: Application
-empty_app = return def
-
--- usage: app.use [content_type, cache]
-use :: [MiddleWare] -> MiddleWare
-use = reduce (<<<)
-
-bytesize :: String -> Int
-bytesize = B.pack > B.length > from_i
-
-dummy_middleware :: MiddleWare
-dummy_middleware = id
-
-dummy_app :: Application
-dummy_app _ = return $ def { status = 500 }
-
-escape_html :: String -> String
-escape_html = concatMap fixChar
-    where
-      fixChar '<' = "<"
-      fixChar '>' = ">"
-      fixChar '&' = "&"
-      fixChar '"' = "\""
-      fixChar c | ord c < 0x80 = [c]
-      fixChar c = "&#" ++ show (ord c) ++ ";"
-
-
-
-show_status_code :: Int -> Maybe String
-show_status_code x = status_code.lookup x
-
--- MPS candidate
-
-now :: IO UTCTime
-now = getCurrentTime
-
-format_time :: String -> UTCTime -> String
-format_time = formatTime defaultTimeLocale
-
-interpolate :: String -> [(String, String)] -> String
-interpolate s params = B.unpack $ substitute (B.pack s) (context params)
-  where 
-    context = map packPair > to_h
-    packPair (x, y) = (B.pack x, B.pack y)
-
-just_lookup :: (Ord k) => k -> Data.Map.Map k a -> a
-just_lookup s xs = xs.lookup s .fromJust
-
-httpdate :: UTCTime -> String
-httpdate x = x.format_time rfc822DateFormat where
-
-file_size :: String -> IO Integer
-file_size path = withFile (path.u2b) ReadMode hFileSize
-
-file_mtime :: String -> IO UTCTime
-file_mtime path = getFileStatus (path.u2b) 
-                  ^ modificationTime ^ realToFrac ^ posixSecondsToUTCTime
-
-read_binary_file :: String -> IO String
-read_binary_file path = path.u2b.B.readFile ^ B.unpack
-
-get_permissions :: String -> IO Permissions
-get_permissions path = getPermissions (path.u2b) 
-
-url2unicode :: String -> String
-url2unicode s = s.unEscapeString.b2u
-
-get_current_directory :: IO String
-get_current_directory = getCurrentDirectory ^ b2u
-
-zip64, unzip64 :: String -> String
-zip64 = B.pack > GZip.compress > B.unpack > C.encode
-unzip64 = C.decode > B.pack > GZip.decompress > B.unpack
-
