,V-(c) Bjorn Bringert 2004-2005, (c) Lemmih 20062BSD-style (see the file libraries/network/LICENSE)lemmih@gmail.com experimentalnon-portable (uses FFI)None CTHandle a single CGI request, or FastCGI requests in an infinite loop. This function only returns normally if it was a CGI request. This lets you use the same program as either a FastCGI or CGI program, depending on what the server treats it as.Handle a single FastCGI or CGI request. This lets you use the same program as either a FastCGI or CGI program, depending on what the server treats it as.,Handle FastCGI requests in an infinite loop. Handle a single FastCGI request.Like F, but uses the FastCGI interface and forks off a new thread (using ) for every request.QData.ByteString.Lazy.hGetContentsN generalized to arbitrary reading functions. Split a list at the first occurence of a marker. Do not include the marker in any of the resulting lists. If the marker does not occur in the list, the entire input with be in the first list.' 2True if it was a FastCGI request, False if CGI.!Max number of concurrent threads.How to fork a request.!Max number of concurrent threads. !"#$%& '(d)*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~'  !"#$%& '(  !"#$%&'()*+,-. / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a bcdcecfcgcgchchcicijkjljljmjnjojpjqjrjstutvtwtxtytzt{|}~|}|}|}|}|}|}  (fastcgi-3001.0.2.5-DxCracl4cRIPemVL0eTJyNetwork.FastCGIrunFastCGIorCGIrunOneFastCGIorCGI runFastCGI runOneFastCGIrunFastCGIConcurrentrunFastCGIConcurrent'%cgi-3001.5.0.0-1VrAxukAQO8LaxE9uKoKwm Network.CGIrunCGIbaseControl.ConcurrentforkOSbuildByteStringsplitBy FCGX_RequestEnviron StreamPtr FCGX_Stream fcgx_finish_r fcgx_accept_rfcgx_initrequest fcgx_init fcgx_finish fcgx_accept fcgx_fflush fcgx_putStr fcgx_getStr fcgx_isCGI oneRequest handleRequest oneRequestMT acceptRequest finishRequestpeekInpeekOut_peekErrpeekEnvpsPutStrfcgxPutCStringLensRead fcgxGetBuf testReturnenvironToTablelogMutexlog setStatus setHeader deleteCookie setCookie readCookie getCookie getBodyFPSgetBody getInputNames getInputsFPS getInputs readInputgetInputContentTypegetInputFilenamegetMultiInputFPS getMultiInput getInputFPSgetInput requestURIqueryURIprogURIrequestAcceptLanguagerequestAcceptEncodingrequestAcceptCharset requestAccept requestHeaderrequestContentLengthrequestContentType remoteUserauthType remoteAddr remoteHost queryString scriptNamepathTranslatedpathInfo requestMethod serverPort serverNamegetVarsgetVarWithDefaultgetVaroutputInternalServerErroroutputMethodNotAllowedoutputNotFound outputErroroutputException handleErrorsredirect outputNothing outputFPSoutputNetwork.CGI.Accept negotiateAccept AcceptableCharsetContentEncodingLanguageNetwork.CGI.Cookie newCookieCookie cookieName cookieValue cookieExpires cookieDomain cookiePath cookieSecurecookieHttpOnlyNetwork.CGI.MonadhandleExceptionCGItryCGIcatchCGIthrowCGICGICGITMonadCGI&multipart-0.1.3-ICBwex3FCNU3ruDYtABNJYNetwork.Multipart.HeadershowContentTypeNetwork.CGI.Protocol urlDecode formDecode urlEncode formEncodelogCGI CGIResultparseContentType ContentTypectType ctSubtype ctParametersControl.Monad.IO.ClassMonadIOliftIO