YuM~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ Safe-Inferred+gPassword for authentication.hUsername for authentication.i-SASL Authentication information for a server.r  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnop  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopikjlmhgdfeacb`_^]\[ZYn :;<=>EXWVUTSRQPONMLKJIHGFCDAB?@o$9876543210/.-,+*)('&%#"!    #"! $9876543210/.-,+*)('&%:;<=>?@ABCDEXWVUTSRQPONMLKJIHGFYZ[\]^_`acbdfeghikjlmno Safe-Inferred+pErrors that occur between the client and server in communicating. These are unexpected exceptions, such as network failures or garbage data.rjExceptions that may be thrown by Memcache. These are expected error codes returned by a memcached server.|cConvert a status to an error. Note, not all status's are errors and so this is a partial function!}lConvert a status to an exception. Note, not all status's are errors and so this is not a complete function!~CThrow an IncorrectResponse exception for a wrong received response.pqrstuvwxyz{|}~pqrstuvwxyz{|}~r{zyxwvuts|}~pqpqr {zyxwvuts|}~None'Send a request to the memcached server.gRetrieve a single response from the memcached server. TODO: read into buffer to minimize read syscalls$Serialize a request to a ByteString.,Serialize a request to a ByteString Builder.)Deserialize a Response from a ByteString.Deserialize a Response.'Deserialize a Header from a ByteString.Deserialize a Header..Deserialize a Response body from a ByteString.Deserialize a Response body.9Deserialize the body of a Response that contains nothing.@Deserialize the body of a Get Response (Extras [flags] & Value).GDeserialize the body of a GetK Response (Extras [flags] & Key & Value).>Deserialize the body of a Incr/Decr Response (Value [Word64]).UDeserialize the body of a general response that just has a value (no key or extras).VDeserialize the body of a general response that just has a key and value (no extras).#Deserialize a Response status code.dCheck the length of a header field is as expected, throwing a ProtocolError exception if it is not.  None,Perform SASL authentication with the server."Perform SASL PLAIN authentication.List available SASL authentication methods. We could call this but as we only support PLAIN as does the memcached server, we simply assume PLAIN authentication is supprted and try that.ghijklmikjlmhgNoneA memcached server connection."Create a new memcached connection.HSend and receive a single request/response pair to the memcached server.9Run a function with access to an server socket for using  and .qClose the server connection. If you perform another operation after this, the connection will be re-established. NoneM*StatResults are a list of key-value pairs.NoneM A memcached cluster client.>Options specifies how a memcache cluster should be configured.:ServerSpec specifies a server configuration to connect to.9Provides a default value for a server cconnection config.3Provides recommended default for a cluster Options.;Establish a new connection to a group of memcached servers.Figure out which server to talk to for this key. I.e., the distribution method. We use consistent hashing based on the CHORD approach.URun a memcache operation against a server that maps to the key given in the cluster.BRun a memcache operation against any single server in the cluster.<Run a memcache operation against all servers in the cluster.XRun a memcache operation against a particular server, handling any failures that occur. NoneVersion returns the version string of the memcached cluster. We just query one server and assume all servers in the cluster are the same version.2ghijklmpqrstuvwxyz{2ikjlmhgr{zyxwvutspq        !"#$%&'()*+,-./0123456789:;<=>?@ABCDEEFFGGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~memcache-0.1.0.0Database.Memcache.TypesDatabase.Memcache.ErrorsDatabase.Memcache.WireDatabase.Memcache.SASLDatabase.Memcache.ServerDatabase.Memcache.ProtocolDatabase.Memcache.ClusterDatabase.Memcache.ClientIncorrectResponseincrespMessage increspActual ProtocolErrorprotocolMessageprotocolHeaderprotocolParamsHeaderopkeyLenextraLenstatusbodyLenopaquecasResponseResresOp resStatus resOpaqueresCasStatusSaslAuthContinue SaslAuthFailErrOutOfMemoryErrUnknownCommandErrValueNonNumericErrItemNotStoredErrInvalidArgsErrValueTooLarge ErrKeyExistsErrKeyNotFoundNoError OpResponse ResSASLStep ResSASLStart ResSASLListResQuitResStat ResVersionResNoopResFlushResGATKResGATResTouch ResPrepend ResAppend ResDecrement ResIncrement ResDelete ResReplaceResAddResSetResGetKResGetRequestReqreqOp reqOpaquereqCasSETouchSEIncrSESet OpRequest ReqSASLStep ReqSASLStart ReqSASLListReqQuitReqStat ReqVersionReqNoopReqFlushReqGATReqTouch ReqPrepend ReqAppend ReqDecrement ReqIncrement ReqDelete ReqReplaceReqAddReqSetReqGetVersionFlags ExpirationDeltaInitialExtrasValueKeyK IncludeKeyNoKeyQQuietLoudPasswordUsernameAuthenticationNoAuthAuthusernamepasswordmEMCACHE_HEADER_SIZEemptyReq ClientErrorNotEnoughBytes MemcacheErrorMemErrAuthFailMemErrOutOfMemoryMemErrUnknownCmdMemErrValueNonNumericMemErrStoreFailedMemErrInvalidArgsMemErrValueTooLargeMemErrKeyExists MemErrNoKey statusToError throwStatusthrowIncorrectRessendrecv szRequest' szRequest dzResponse' dzResponse dzHeader'dzHeaderdzBody'dzBody authenticateServersid newServersendRecv withSocketclose StatResultsgetgattouchsetset'addreplacedelete increment decrementappendprependflushnoopversionstatsquitClusterOptionsoptsCmdFailureoptsServerFailureoptsServerRetries ServerSpecssHostssPortssAuthdefaultServerSpecdefaultOptions newClusterkeyedOpanyOpallOpClient newClient$fExceptionIncorrectResponse$fExceptionProtocolError$fExceptionClientError$fExceptionMemcacheErrordzGenericResponse dzGetResponsedzGetKResponsedzNumericResponsedzValueResponsedzKeyValueResponsedzStatus chkLengthgetCodeKeyValue saslAuthPlain saslListMechspool_addr_port_authfailedsSTRIPES sCONNECTIONS sKEEPALIVE $fOrdServer $fEqServergetServerForKeyserverOp FailureMode FailToError FailToBackup FailSilentserverscmdFailureMode_serverFailureMode serverRetrieskeyedOp'