*%%      !"#$ %&'()*+,-./&+,-./&+,-./0123456A timeout manager 789 59 59=:;<=IVarious Warp server settings. This is purposely kept as an abstract data C type so that new settings can be added without breaking backwards % compatibility. In order to create a  value, use # > and record syntax to modify individual records. For example: * defaultSettings { settingsTimeout = 20 } >'Port to listen on. Default value: 3000 0Host to bind to, or * for all. Default value: * xWhat to do with exceptions thrown by either the application or server. Default: ignore server-generated exceptions (see :) and print application-generated applications to stderr. ,Timeout value in seconds. Default value: 30 HUse an existing timeout manager instead of spawning a new one. If used,   is ignored. Default is ? MIn order to provide slowloris protection, Warp provides timeout handlers. We  follow these rules: 3 A timeout is created when a connection is opened. < When all request headers are read, the timeout is tickled. J Every time at least 2048 bytes of the request body are read, the timeout  is tickled. J The timeout is paused while executing user code. This will apply to both I the application itself, and a ResponseSource response. The timeout is 0 resumed as soon as we return from user code. M Every time data is successfully sent to the client, the timeout is tickled. offset, length @ARun an B on the given port. This calls  with  #. +Run a Warp server with the given settings. Same as 5, but uses a user-supplied socket instead of opening M one. This allows the user to provide, for example, Unix named socket, which ? can be used when reverse HTTP proxying into your application. Note that the  will still be passed to B s via the  C record. D!EFG,Parse a set of header lines and body into a HI. JKLMNOPQRSTU"VWXUse 3 to send this data while respecting timeout rules. #JThe default settings for the Warp server. See the individual settings for  the default value. YZ[\$0Call the inner function with a timeout manager. timeout in microseconds ]%  !"#$+ #  $!"   !"#$^      !"#$%&'()*+,-./01234567889:;;<= >?@ABCDECDFGHIJCDKCDKLMNOPQRSTUVWXYZ[\]^_` warp-1.0.0Network.Wai.Handler.Warp Paths_warpTimeoutManager initializeregisterregisterKillThreadpauseresumecancelSettings settingsPort settingsHostsettingsOnExceptionsettingsTimeoutsettingsInterceptsettingsManagerInvalidRequestOverLargeHeaderIncompleteHeadersNonHttp BadFirstLineNotEnoughLinesPort Connection connSendMany connSendAll connSendFile connCloseconnRecvbindPortrun runSettingsrunSettingsSocketrunSettingsConnection parseRequest sendResponsedefaultSettings withManagercatchIOversionbindirlibdirdatadir libexecdir getBinDir getLibDir getDataDir getLibexecDirgetDataFileNameStateCanceledPausedInactiveActiveHandle ignoreAlltickleTHStatus BSEndoListBSEndobase Data.MaybeNothing warpVersionsocketConnection wai-1.0.0 Network.Wai Application serverPortserveConnection bytesPerReadmaxTotalHeaderLength parseRequest'Request takeUntil parseFirst httpBuilder spaceBuildernewlineBuildertransferEncodingBuildercolonSpaceBuilderheadersresponseHeaderToBuilder checkPersist isChunkedhasBodyparseHeaderNoAttr connSourceconnSink takeHeaderstakeHeadersPushcheckCRreadInt serverHeader