úÎ$8      !"#$A timeout manager %&'()*+,- "$&()*+,- "$&()*+,-@./01JVarious proxy 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 { proxyPort = 3128 } 'Port to listen on. Default value: 3100 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 2:) and print application-generated applications to stderr. ,Timeout value in seconds. Default value: 30 QA function that allows the the request to be modified before being run. Default: ' return . id'. 23456789MIn 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 >?@ADRun a HTTP and HTTPS proxy server on the specified port. This calls   with . ?Run a HTTP and HTTPS proxy server with the specified settings. BCDEFGH,Parse a set of header lines and body into a  . IJKLMNOPQRSTUVWXUse <3 to send this data while respecting timeout rules. KThe default settings for the Proxy server. See the individual settings for  the default value. YZ[\]^_`abc   d      !"#$%%&&'()*+,-.//01234567899:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abchttp-proxy-0.0.6Network.HTTP.ProxyNetwork.HTTP.Proxy.ReadIntNetwork.HTTP.Proxy.Timeout wai-1.0.0 Network.Waivault requestBody queryStringpathInfo remoteHostisSecurerequestHeaders serverPort serverNamerawQueryString rawPathInfo httpVersion requestMethodRequestSettings proxyPort proxyHostproxyOnException proxyTimeoutproxyRequestModifierrunProxyrunProxySettingsdefaultSettingsTable readInt64 mhDigitToIntStateCanceledPausedInactiveActiveHandleManager initialize ignoreAllregisterregisterKillThreadticklepauseresumecancelTHStatus BSEndoListBSEndoInvalidRequestOverLargeHeaderIncompleteHeadersNonHttp BadFirstLineNotEnoughLinesPort Connection connSendMany connSendAll connSendFile connCloseconnRecvsocketConnectionbindPortrunSettingsSocketrunSettingsConnectionserveConnection parseRequest bytesPerReadmaxTotalHeaderLength parseRequest' takeUntil parseFirst httpBuilder spaceBuildernewlineBuildertransferEncodingBuildercolonSpaceBuilderheadersresponseHeaderToBuilder checkPersist isChunkedhasBody sendResponseparseHeaderNoAttr connSourceconnSink takeHeaderstakeHeadersPushcheckCRreadInt serverHeader proxyPlain failRequest proxyConnect connectToconnect'firstSuccessful