úÎ!(Þ%r3      !"#$%&'()*+,-./012 experimentalPOSIXSafeœ spacecookie3 a 4 spacecookie5 a 4 spacecookie Encode a 6 to a UTF-8 7 spacecookieDecode a UTF-8 7 to a 6 spacecookieStrip \r and \n from 7s spacecookieNormalise a path and prevent  8https://en.wikipedia.org/wiki/Directory_traversal_attackdirectory traversal attacks.SafeÞ spacecookie5rfc-defined gopher file types plus info line and HTML spacecookietext file, default type  spacecookie a gopher menu  spacecookieerror entry in menu spacecookie binary file spacecookiegif spacecookieimage of any format spacecookie"menu entry without associated file spacecookie.Special type for HTML, most commonly used for =https://en.wikipedia.org/wiki/Gopher_%28protocol%29#URL_linkslinks to other protocols spacecookie&gopher menu, wrapper around a list of s spacecookiereturn the given 7 as a file spacecookie5gopher menu containing a single error with the given 6 as text spacecookieentry in a gopher menu spacecookieifile type, menu text, filepath (does not need to be a real file), server name (optional), port (optional)  89: experimentalPOSIXSafeú spacecookie}A gophermap entry makes all values of a gopher menu item optional except for file type and description. When converting to a &, appropriate default values are used.  spacecookie6file type, description, path, server name, port number! spacecookie.Convert a gophermap to a gopher menu response." spacecookie Attoparsec ; for the `https://raw.githubusercontent.com/sternenseemann/spacecookie/master/docs/gophermap-pygopherd.txtgophermap file format !"" ! experimentalPOSIXNoneM$^< spacecookie#TimedFastLogger and clean up action% spacecookie/necessary information to handle gopher requests' spacecookie4 name  of the server (either ip address or dns name)( spacecookieport to listen on) spacecookieuser to run the process as* spacecookie3Run a gopher application that may cause effects in =m. The application function is given the gopher request (path) and required to produce a GopherResponse.+ spacecookie7Run a gopher application that may not cause effects in =."   !%&'()*+"*+%&'()!   >      !"#$$%&'())*+,-./01234567869:6;<6;=>?@ABCDEFGHIJK*spacecookie-0.2.0.1-DOwy0wcWsPH8r2A4pxVJhsNetwork.Gopher.UtilNetwork.GopherNetwork.Gopher.Util.GophermapNetwork.Gopher.TypesasciiChrasciiOrduEncodeuDecode stripNewline santinizePathsantinizeIfNotUrlGopherFileTypeFile DirectoryPhoneBookServerErrorBinHexMacintoshFile DOSArchiveUnixUuencodedFileIndexSearchServer TelnetSession BinaryFileRedundantServer Tn3270SessionGifFile ImageFileInfoLineHtmlGopherResponse MenuResponse FileResponse ErrorResponseGopherMenuItemItem GophermapGophermapEntrygophermapToDirectoryResponseparseGophermap$fShowGophermapEntry$fEqGophermapEntry GopherConfig cServerName cServerPort cRunUserName runGopher runGopherPure$fToLogStrLogMessage$fFunctorGopherM$fApplicativeGopherM$fMonadGopherM$fMonadIOGopherM$fMonadReaderGopherM$fMonadErrorGopherMbaseGHC.CharchrGHC.WordWord8GHC.BaseordStringbytestring-0.10.8.2Data.ByteString.Internal ByteStringfileTypeToCharcharToFileTypeisFile*attoparsec-0.13.2.2-JtWk3gWffmo8exA54HD0hS#Data.Attoparsec.ByteString.InternalParserloggerghc-prim GHC.TypesIO