@U:j      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghiNoneF-Sets a custom variable in the sandbox monad. G.Checks that a custom sandbox variable is set. H^Returns the value of a previously set sandbox variable (or a provided default value if unset) IUnsets a custom variable. O  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEF"Variable key for future reference Variable value G Variable key H Variable key Default value if not found I Variable key JKLMNOjklN  !"#$%&'(mn)*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOL&'( !"#$% )*+,-./0123456789:;<=>?@ABCDEFGHIJKL  MNO1    !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOjkl(Benjamin Surma <benjamin.surma@gree.net>NonePEOptional parameters when registering a process in the Sandbox monad. RBTime to wait (in s.) before checking that the process is still up S"Which outputs to capture (if any) TACreates a sandbox and execute the given actions in the IO monad. U*Registers a process in the Sandbox monad. V\Communicates with a sandboxed process via TCP and returns the answered message as a string. WCStarts the given process, runs the action, then stops the process. F The process is managed by the functions start and stop respectively. X\Helper function: starts a process, wait for it to terminate and return its captured output. Y1Starts a previously registered process (verbose) Z>Starts all registered processes (in their registration order) [8Gracefully stops a previously started process (verbose) \"Sends a POSIX signal to a process ]PGracefully stops all registered processes (in their reverse registration order) ^;Returns the effective binary path of a registered process. _RReturns the handles used to communicate with a registered process using standard I/O. `7Returns the last captured output of a started process. a1Interacts with a sandboxed process via standard I/O. bEReturns an unbound user TCP port and stores it for future reference. c3Explicitely sets a port to be returned by getPort. d>Creates a temporary file in the sandbox and returns its path. e:Returns the path of a file previously created by setFile. fNA variant of bracket from Control.Exception which works in the Sandbox monad. gCTemporarily sets a variable for the execution of the given action. hFReturns the temporary directory used to host the sandbox environment. i$Executes the given action silently. PQRST Name of the sandbox environment Action to perform U Process name Path to the application binary &Arguments to pass on the command-line Process settings VName of the registered port  Input string /Time to wait before timeout (in milli-seconds) W Process name Action to run XY Process name Zo[ Process name \ Process name Signal to send ]^ Process name _ Process name ` Process name a Process name  Input string /Time to wait before timeout (in milli-seconds) bPort name for future reference cPort name for future reference TCP port number dFile name for future reference File contents eFile name used during setFile fComputation to run first (acquire resource) Computation to run last (release resource) Computation to run in-between g Variable key Variable value Action to run hiAction to execute p'&FGHIPQRSTUVWXYZ[\]^_`abcdefghi'&PQRSTUXWYZ[]\iaV`_b^cedhfGHFIgPQRSTUVWXYZo[\]^_`abcdefghipq    !"##$%&'()*+,,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUUVWXYZ[\]^_`abcdefghijklmnopqrstutest-sandbox-0.0.1 Test.SandboxTest.Sandbox.Internalsdata-default-class-0.0.1Data.Default.Classdeftransformers-0.3.0.0Control.Monad.IO.ClassliftIO mtl-2.1.2Control.Monad.Error.Class catchError throwErrorSandboxTestOptionsstoSeedstoMaximumGeneratedTests"stoMaximumUnsuitableGeneratedTestsstoMaximumTestSize SandboxSeedSandboxRandomSeedSandboxFixedSeedSandboxedProcessInstanceStoppedInstanceRunningInstanceCapture CaptureBoth CaptureStderr CaptureStdoutSandboxedProcessspNamespBinaryspArgsspWait spCapture spInstance SandboxStatessName ssDataDir ssProcessesssProcessOrderssAllocatedPortsssAvailablePortsssFiles ssVariablesSandbox runSandboxprettyheaderfooternewSandboxStateregisterProcess getProcess updateProcess secondInµssetFile' bufferSizehReadWithTimeout sendToPort getNewPort isBindable startProcessformatCommandLine stopProcesshSignalProcess killProcess hGetProcessIDinteractWithProcessgetProcessInputHandlegetProcessCapturedOutputHandlegetProcessBinaryfindExecutables tryBinarygetProcessCandidateBinariesexpandwhenM setVariable checkVariable getVariable unsetVariable isVerbose verbosityKey displayBanner putOptions getOptionsoptionsVariableProcessSettingspsWait psCapturesandboxregistersendTo withProcessrunstartstartAllstopsignalstopAll getBinary getHandlesreadLastCapturedOutput interactWithgetPortsetPortsetFilegetFilebracket withVariable getDataDirsilently$fSerializeSandboxTestOptions$fSerializeSandboxSeed$fMonadBaseControlIOSandbox StMSandbox runStMSandboxwaitFor$fDefaultProcessSettings