! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < =>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ Safe-Inferredstart the IO thread.eissue a request to the IO thread and get back the result if the thread function throws an exception  will rethrow the exception.&the IO function that does all the workqa ThreadId which can be used to kill the IOThread, and a handle that can be used to issue requests to the thread.handle to the IOThread(argument to the function in the IOThread.value returned by the function in the IOThread Safe-Inferred5(c) Koen Claessen, John Hughes 2001, Jeremy Shaw 20081BSD-style (see the file libraries\/base\/LICENSE)jeremy@n-heptane.com experimentalportable Safe-Inferred24,turns the quickcheck test into an hunit test)Use this if you want to provide a custom Config instead of  defaultConfig.?an instance of Test.HUnit.Testable for Test.QuickCheck.Property Note: I did not add an instance:+instance (QC.Testable a) => (HU.Testable a)RBecause it results in undeciable instances. For example, there is an instance of ) for QC.Testable and HU.Testable already.quickcheck configquickcheck propertyNone+Create a relative URI with the given query.CSet the port number in the URI authority, creating it if necessary. !Return the pairs in a URI's query 8Modify a URI's query by applying a function to the pairs5Turn a list of attribute value pairs into a uriQuery.Escape a value so it can safely appear on the RHS of an element of the URI query. The isUnreserved predicate is the set of characters that can appear in a URI which don't have any special meaning. Everything else gets escaped.  8   None*Modify an individual URI query attributes.'Replace a query attribute with Nothing.)Replace a query attribute with something.+Copy an attribute from one query to another Safe-Inferred Safe-Inferred)Set up access to destination (user@host).5Make sure there is a public key for the local account=See if we already have access to the destination (user@host).Try to set up the keys so we have access to the account. I don't think we use this any more, and I don't think you should either.NCopy the ssh configuration from $HOME to the /root directory of a changeroot.NoneParse the text returned when a directory is listed by a web server. This is currently only known to work with Apache. NOTE: there is a second copy of this function in debian:Debian.URI. Please update both locations if you make changes.  Safe-InferredMLike withLock, but instead of giving up immediately, try n times with a wait between each. awaitLock :: (MonadIO m) => Int -> Int -> FilePath -> m a -> m (Either Exception a)  Safe-Inferred   Safe-Inferred fThe mighty consperse function - e.g. consperse "," ["a", "b"] -> "a,b" consperse = MissingH.List.joinPsurround each element of a list - e.g. surround "(" ")" ["a", "b"] -> ["(a)(b)"]<Replace the prefix of s, return Nothing if it doesn't match. 9Remove a prefix of s, return nothing if it doesn't match.!ZcartesianProduct [[1,2,3], [4,5],[6]] -> [[1,4,6],[1,5,6],[2,4,6],[2,5,6],[3,4,6],[3,5,6]]"FIXME: implement for a string#-Like maybe, but with empty vs. non-empty list$Sort a list using the compare function on the list elements mapped over f. This is like "sortBy ( a b -> compare (f a) (f b))" except that f is applied O(n) times instead of O(n log n)%Monadic version of sortByMapped  !"#$%&'(  !"#$%&'(  !"#$%&'(  !"#$%&'( None *Pad strings so the columns line up. The argument and return value elements are the rows of a table. Do not pad the rightmost column.++Group words into lines of length n or less.,dirname-mTurn a list of (k, a) pairs into a map from k -> [a]. The order of the elements in the a list is preserved./+Weak attempt at canonicalizing a file path.0?Run md5sum on a file and return the resulting checksum as text.15Predicate to decide if two files have the same inode.2<Predicate to decide if two files have the same md5 checksum.34A version of read with a more helpful error message.56Given a tarball, return the name of the top directory.)*+,-./0123456)*+,-./0123456*+),/-.4012563)*+,-./0123456 None789:;<6789:;<:798;<6798:;<NoneM =RReturn the list of subdirectories, omitting . and .. and ignoring symbolic links.>Atomically install a list of files. Returns a list of what went wrong on failure. Will throw an error if it fails and is unable to restore the original files to their original states.?8Change a file's name only if the new name doesn't exist.@CChange a file's name, removing any existing file with the new name."Change a file's name if it exists.ADelete a file if it exists9Create or update gzipped and bzip2-ed versions of a file.B8like removeLink, but does not fail if link did not existCBWrite out three versions of a file, regular, gzipped, and bzip2ed.DWrite out three versions of a file, regular, gzipped, and bzip2ed. This new version assumes the files are written to temporary locations, so any existing file there can be removed.FzLike writeFile, but if the file already exists don't touch it. Example: writeFileIfMissing True "/var/lib/dpkg/status" ""G=Write a file if its content is different from the given text.HAdd-on for System.Posix.Files=>?@ABCDEFGHIJ=>?@ABCDEFGHIJ=@?A>CDEFGHIBJ=>?@ABCDEFGHIJ Safe-InferredK-render a Doc using the current terminal widthKKKK Safe-InferredL5exitFailure with nicely formatted help text on stderrL=generate help text, the argument is the result of getProgName<no value is returned, this function always calls exitFailureLLL Safe-InferredO.Turn a list of eithers into an either of listsMNOPQMNOPQMNOPQMNOPQ Safe-Inferred-RA record used to hold the output style information for a task. This The prefixes that will appear at the beginning of each line, and the desired verbosity level. Suggested verbosity level policy:B-1: No output of any kind, as if you were directing all output to devnullJ0: Error output only, suitable for a run whose log you might examine laterl1: casual progress reporting - if you were running on a console but didn't expect anything to go wrong2: detailed progress reporting - show more progress, particularly things that might fail during the normal operation of the autobuilder: patches that fail to apply, dpkg-buildpackage runs that return errors, etc.3: Debugging output - use this level or higher if you suspect the autobuilder itself is failing, or you are doing development work on the autobuilder.T-Add this string at the beginning of each lineU3Ignore v functions whose argument is more than thisVPer-handle prefixW<Class representing ways of doing console (terminal?) output.XWrite output to a handle.YdIf we are not already at the beginning of a line, move the cursor to the beginning of the next one.Z6Return the "effective verbosity" for a task. If the argument is 2 it means the caller is computing ev for a task that normally does output when the verbosity level is 2 or higher. If the verbosity of the current style is 1, then the ev or effective verbosity is 2-1 = -1, so the output should be quieter.[ Modify the current output style.\$Implementation of try for this monad^"Use a new style for the TIO actiona.Set the output style for a handle to prefixed.b Prepend some text to the prefix.cAppend some text to the prefix.d.Get the current prefix for a particular handleeSet the output style for the stdout and stderr handle to prefixed, using whatever prefixes were most recently set (default is [1] and [2].)fGSwitch to prefixed mode and modify both the stdout and stderr prefixes.bPerform an action if the effective verbosity level is >= 0, otherwise return the default value d.hWrite a string to stdout.iWrite a string to stderr.j'Verbosity controlled version of ePutStrk:Write a string to stdout depending on the verbosity level.lWrite a character.mWrite a character to stdout.nWrite a character to stderr.'Verbosity controlled version of hPutStro)Verbosity controlled version of hPutChar.p'Verbosity controlled version of putCharq(Verbosity controlled version of ePutCharrBMove to beginning of next line (if necessary) and output a string.shPutStrBl to stdout.thPutStrBl to stderr.u)Verbosity controlled version of hPutStrBlv(Verbosity controlled version of putStrBlw)Verbosity controlled version of ePutStrBlx'Write a newline character and a string.yhPutStrLn to stdout.zhPutStrLn to stderr.{*Verbosity controlled version of hPutStrLn.|(Verbosity controlled version of putStrLn})Verbosity controlled version of ePutStrLn~hBOL to stdout.hBOL to stderr.#Verbosity controlled version of BOL$Verbosity controlled version of eBOL;RSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~6RSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~6WXYZ[\RSTUV]^_`abcefgdhikjlmnopqrstuvwxyz{|}~2RSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ Safe-InferredHUse this module to call functions in the CIO module from the regular IO monad. This instance ignores all style and state information. The verbosity controlled output functions will ignore any calls when v is greater than zero. This allows you to call the functions in the haskell-debian package from the regular IO monad.This is in a separate module from CIO so you don't accidentally do a liftIO of some other CIO operation and get this instance. Safe-Inferred !"#$%&'()*+ , - . / 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 PQRSTUVWXYZ[\]^_`abcdeffghijklmnopqrstuvwxyz{|}~   Extra-1.46.3Extra.IOThreadTest.QuickCheck.Properties Test.QUnit Extra.URIExtra.URIQuery Extra.Time Extra.SSH Extra.Net Extra.LockExtra.Terminal Extra.List Extra.Misc Extra.GPGSign Extra.FilesExtra.HughesPJ Extra.Exit Extra.Either Extra.CIOExtra.IO Extra.BoolIOThread startIOThread ioRequestisIdempotentBy isIdempotenttestQuickCheckrelURI setURIPort parseURIQuerymodifyURIQuery setURIQuerysetURIQueryAttrdeleteURIQueryAttrmodifydelputcopyformatDebianDatemyTimeDiffToStringsshExportDeprecated sshVerifysshCopywebServerDirectoryContentswithLock awaitLockc_get_window_size getWinSizegetWidth conspersesurround changePrefix dropPrefixcartesianProductwordsByempty sortByMapped sortByMappedM partitionMlistIntersection isSublistOfmapSndcolumnsjustify parentPathlistMaplistDiffcanonmd5sum sameInode sameMd5sumread'checkSuperUsertarDircdPGPKeyDefaultKeysign pgpSignFiles pgpSignFilegetSubDirectories installFiles renameMissing renameAlways deleteMaybeforceRemoveLinkwriteAndZipFileWithBackupwriteAndZipFile backupFilewriteFileIfMissingmaybeWriteFilecreateSymbolicLinkIfMissingprepareSymbolicLink replaceFile renderWidth exitWithHelpisRightisLeft concatEithers rightOnlyeitherFromListTStyleprefix verbosityhPrefixCIOhPutStrhBOLevsetStyletryCIOdefStyle withStyle setVerbosity addVerbosity setPrefix addPrefix appPrefix hGetPrefix setPrefixes addPrefixes appPrefixesputStrePutStrvEPutStrvPutStrhPutCharputCharePutChar vHPutCharvPutChar vEPutChar hPutStrBlputStrBl ePutStrBl vHPutStrBl vPutStrBl vEPutStrBl hPutStrLnputStrLn ePutStrLn vHPutStrLn vPutStrLn vEPutStrLnboleBOLvHBOLvBOLvEBOLhColorbluegreenredmagenta$fCIOIOcond$fTestablePropertyghc-prim GHC.TypesBoolformatURIQueryescapeURIForQueryValue $fReadURInetwork-uri-2.6.0.1 Network.URIfragmentquerypath authorityscheme unreservedreserved escapeStringparseabsoluteURInormalizePathSegmentsnormalizeEscape normalizeCase relativeFrom relativeTononStrictRelativeTounEscapeStringescapeURIString escapeURICharisUnescapedInURIComponentisUnescapedInURIisAllowedInURI uriToString isUnreserved isReserved uriIsRelative uriIsAbsolute isIPv4address isIPv6address isAbsoluteURIisRelativeReferenceisURIReferenceisURIparseAbsoluteURIparseRelativeReferenceparseURIReferenceparseURInullURI uriFragmenturiQueryuriPath uriAuthority uriSchemeURIuriPort uriRegName uriUserInfoURIAuth_testgeneratePublicKey openAccess testAccess processIDlockedByPGPKey'' renameMaybezipFilelefts restoreBackupvIOvHPutStr hSetPrefix hAddPrefix hAppPrefix