>\      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./01234567 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                       None        NoneNone    None%& !" !" !" !"None !"%&5:I*#2The operations that can be applied to JSON values.$Set is applied to iNs. It is used for adding, updating and deleting properties from the object.%Splice is used to manipulate ArrayGs. It can remove and insert multiple elements in a single operation.+ObjectId,;The base object whose snapshots contain the actual content.->An object describing a particualar release of the base object..*Object which contains authorization rules./RevId2ObjId5Path8<Pk - Types which can be converted to a database primary key.:>This path refers to the root of an object. It is only used in $ operations.;aThe root object id is used for object created internally or when there is no applicable creator.<The /( which is used for the initial snapshot.|PatchSnapshotSecretA > is a password (encrypted with scrypt) that is attached to a  (for example the 2 of an account).It is up to you to ensure that s are unique. If you use 2s then they by definition are.SecretIdReleaseDThe initial snapshot on top of which all future patches are applied.BlobBlobId2The session record that is stored in the database.A session is a unique identifier attached to a particular object. It contains the creation date and when it was last accessed. If you need to store additional data for a session, we recommend to use cookies. SessionId_The table name is derived from the view name. Therefore it should be unique amongst all views.2Function which parses objects stored in this view.JFunction which transforms an Avers Object into a type stored in the view.&Secondary indices defined on the view.3A reference to the config, just in case we need it.8A pool of handles which are used to access the database. Map from + to a recent /2. It may be the latest or a few revisions behind.Changes in the system (new patches, objects, releases etc), even those created through other handles, are streamed into this channel. If you want to be informed of those changes, duplicate the channel and read from the copy.KA change in the system, for example a new object, patch, release, blob etc.A new patch was created.Configuration of the  monad.H which describes the connection details to the RethinkDB database. The ' *MUST* include at least the hostname () and database name (( without the leading slash). The port () and credentials (C) *MAY* be left empty. in that case the default port will be used.Function which saves the given blob in the blob store. This can be the local filesystem or an external service such as Amazon S3.-All the object types which Avers knows about.MThis is called when the internal instrumentation code creates a measurement.An A describes a particular type of object that is managed by Avers.The value of the type field of the i.qAction which generates a new id. This is so that object types can have different strategies how to generate ids.#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUijklmnopqrst|}~     #$%&'()*+,-./0123456789:;<=>?ijklmnopqr|}~     89U567TSRQP:234ONMLK;/01JIHGFE<+,-.DCBA@=>?#$%&'&()*ttttqrpijklmnos|}~     c#$%&'&()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUijklmnopqrst|}~      None ! ! ! !None!""WApply the given op on the value. Can throw an exception if the operation is invalid.#Resolve the path in the object.% Given an #( which was created against a particular g (content), rebase it on top of patches which were created against the very same content in parallel.pThis function assumes that the patches apply cleanly to the content. Failure to do so results in a fatal error. "#$%"#$%"$%# "#$%None !":DR,9The primary key in all our documents is the default "id".-2Expression which represents the primary key field..EExpression which represents the value of a field inside of an Object./1True if the object field matches the given value.0:True if the object's primary key matches the given string.1dTake the first item out of a sequence. Beware that this throws an error when the sequence is empty.2Limit a sequence to the first n items.&'()*+,-./0123456&'()*+,-./0123456'*+()&,-./0123456&'()*+,-./0123456 None !":DR789:;<=>?@AC 789:;<=>?@A 78;:9<=>?A@789:;<=>?@AC None !"%&:IJhConstruct the table name for the given view. The table names look something like this: "view_openGames" EFGHIJKLMNOEFGHIJKL IJEFGHONMKLEFGHIJKLMNO None !":T^True if the object exists._ Lookup an i by its 2 . Throws  if the object doesn't exist.`<Create a new object of the given type. An initial snapshot (/* 0) is created from the supplied content.aA more low-level version of `Y, for use when you want to generate your own ObjId or create objects at a specific time.bMark the object as deleted.cPrune the object from the database. This is only allowed if the object is marked as deleted. Note that this is a very dangerous operation, it can not be undone.5TODO: Prune related Release and Authoriation objects.dCreate a checkpoint for for the given object. All patches (and of course snapshots) before the checkpoint can be dropped. Use g to do that.gDrop all patches and snapshots before the most recent checkpoint. This effectively drops the object's history, and frees space in the database.h4Fetch the content of the object and try to parse it.This function will fail with a : if the content can not be decoded into the desired type.i<Get the snapshot of the newest revision of the given object.nMLookup the latest snapshot within the given range. The bounds are inclusive.oGet the newest snapshot which is stored in the database. The object may be at a higher revision if the later snapshots are missing from the database.OThis is an internal function. If you want the latest snapshot, you should use i.p-Lookup the snapshot at a particular revision.tXVerify the value against the secret. If that fails, then this function throws an error.bThis function automatically updates the secret in the database if the scrypt params have changed.u@Internal function which actually saves a secret in the database.y=Lookup an object type which is registered in the Avers monad.\Create a new release of the given revision. If the object doesn't exist, it will fail with .gBootstrap the Avers handle: Create necessary tables, indexes, views etc. This operation is idempotent.6Stream new patches from the database into the channel. Return a b to which all changes in the system are streamed. Make sure to continuously drain items from the L, otherwise they will accumulate in memory and you will run OOM eventually.Do not write into the channel!CPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz#The object which you want to updateThe /* against which the operations were created CommitterThe operations to apply$True if validation should be skipped{|}~CPQRX\STUVWYZ[]^_`abcdefghijklmnopqrstuvwxyz{|}~C]^_`abcdefghijklmnopqrstuvwxyzQRSTUVWXYZ[\P{|}~8PQ RSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ None!" None !"#$%&'()*+,-./0123456789;<ijklmnoqr|}~  #&'78;<JL^_`abcdghistxyz}56789234;/01<+,-.#$%&'&()*ijklmno^`a_bcdg|}~qrxih#y  }stz;<78'&JL !" !"#$%&'()*+,-.//00123456789:;<=>??@AABCCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvvwxyz{|}~  }      !"#$%&'()*+,-./ 0 1 2 3 4 5 6 7 8 9 : ; < = > > ? @ A B C D E F G H I I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            #avers-0.0.16-EnbkNVrLix5GK2HvVETeV3Avers.THAvers.Metrics.THAvers.Metrics.Measurements Avers.Index Avers.Types Avers.MetricsAvers.PatchingAvers.Storage.ExpressionsAvers.Storage.Backend Avers.Views Avers.Storage Avers.HandleAvers$aeson-1.0.1.0-3tMWhptxUFZKFOuFribGIx Data.Aeson.TH deriveJSONData.Aeson.Types.FromJSON parseJSONList parseJSONFromJSONData.Aeson.Types.ToJSONtoEncodingList toJSONList toEncodingtoJSONToJSONderiveJSONOptionsvariantOptionsdefaultVariantOptionsderiveEncodingderiveRecordEncodingtoLabels toMetricsmkMeasurements Measurement%M_avers_storage_lookupObject_duration'M_avers_storage_lookupSnapshot_duration-M_avers_storage_lookupLatestSnapshot_duration'M_avers_storage_newestSnapshot_duration-M_avers_storage_patchesAfterRevision_duration$M_avers_storage_lookupPatch_duration+M_avers_storage_applyObjectUpdates_duration0M_avers_storage_applyObjectUpdates_numOperations5M_avers_storage_applyObjectUpdates_numPreviousPatchesM_avers_storage_exists_durationmeasurementLabels SomeIndexIndex indexNameindexExpression OperationSetSpliceopPathopValueopIndexopRemoveopInsertObjectId BaseObjectIdReleaseObjectIdAuthorizationObjectIdRevIdunRevIdObjIdunObjIdPathunPathPktoPkrootPath rootObjId zeroRevIdobjectIdParser parseObjectId objectIdBase$fToDatumObjectId$fFromDatumObjectId$fFromJSONObjectId$fToJSONObjectId $fPkObjectId$fToDatumRevId$fFromDatumRevId$fFromJSONRevId $fToJSONRevId $fPkRevId $fEnumRevId$fToDatumObjId$fFromDatumObjId$fFromJSONObjId $fToJSONObjId $fPkObjId $fToDatumPath$fFromDatumPath$fFromJSONPath $fToJSONPath$fIsStringPath$fPkText$fEqPath $fOrdPath $fShowPath $fGenericPath $fEqObjId $fOrdObjId $fShowObjId$fGenericObjId $fEqRevId $fOrdRevId $fShowRevId$fGenericRevId $fEqObjectId $fOrdObjectId$fShowObjectId$fGenericObjectId $fEqOperation$fShowOperation$fGenericOperationObjectobjectId objectTypeobjectCreatedAtobjectCreatedBy objectDeletedPatchM PatchErrorUnknownPatchError $fPkObject$fFromDatumOperation$fToDatumOperation$fFromJSONOperation$fToJSONOperation$fShowPatchError$fGenericPatchError $fShowObject$fGenericObjectPatch patchObjectIdpatchRevisionId patchAuthorIdpatchCreatedAtpatchOperation $fPkPatch$fFromDatumObject$fToDatumObject$fFromJSONObject$fToJSONObject $fShowPatch$fGenericPatchSnapshotsnapshotObjectIdsnapshotRevisionIdsnapshotContent $fPkSnapshot$fFromDatumPatch$fToDatumPatch$fFromJSONPatch $fToJSONPatch$fShowSnapshot$fGenericSnapshotSecretsecretId secretValueSecretId unSecretIdReleaseinitialSnapshot $fPkSecret$fToDatumSecretId$fFromDatumSecretId$fFromJSONSecretId$fToJSONSecretId $fPkSecretId$fFromJSONRelease$fToJSONRelease$fFromDatumSnapshot$fToDatumSnapshot$fFromJSONSnapshot$fToJSONSnapshot$fShowSecretId$fGenericSecretId$fGenericSecretBlobblobIdblobSizeblobContentTypeBlobIdunBlobId$fPkBlob$fToDatumBlobId$fFromDatumBlobId$fFromJSONBlobId$fToJSONBlobId $fPkBlobId$fFromDatumSecret$fToDatumSecret$fFromJSONSecret$fToJSONSecret $fShowBlobId$fGenericBlobId $fShowBlob $fGenericBlobSession sessionId sessionObjIdsessionCreatedAtsessionLastAccessedAt SessionId unSessionId $fPkSession$fToDatumSessionId$fFromDatumSessionId$fFromJSONSessionId$fToJSONSessionId $fPkSessionId$fFromDatumBlob $fToDatumBlob$fFromJSONBlob $fToJSONBlob$fGenericSessionId$fGenericSessionSomeViewViewviewName viewParserviewObjectTransformer viewIndices MonadAvers liftAversrunAversHandlehConfighDatabaseHandlePoolhRecentRevisionCachehChangesChangeCPatchConfig databaseURIputBlob objectTypesemitMeasurementSomeObjectType ObjectTypeotTypeotIdotViews AversError InternalError DatabaseError ParseErrorUnknownObjectTypeObjectNotFoundDocumentNotFound NotAuthorized internalErrorinternal databaseError patchError parseErrordocumentNotFoundstrErr parseValueAs evalAvers$fMonadAversStateT$fMonadAversAvers$fToJSONChange$fFromDatumSession$fToDatumSession$fFromJSONSession$fToJSONSession$fShowAversError$fGenericAversError $fShowChange$fGenericChange$fFunctorAvers$fApplicativeAvers $fMonadAvers$fMonadIOAvers$fMonadErrorAvers$fMonadStateAversmeasureDurationreportMeasurementapplyOperation resolvePathInopOTrebaseOperation blobsTable objectsTable patchesTable secretsTable sessionsTablesnapshotsTableprimaryKeyFieldprimaryKeyFieldE objectFieldEobjectFieldEqE primaryKeyEqEheadElimitEmkBoundsmkBoundobjectSnapshotSequenceEobjectPatchSequenceE parseValue parseDatumrunQuerySingleSelection runQueryDatumrunQueryrunQueryCollectexistsDocumentlookupDocumentinsertDocumentdeleteDocumentupsertDocument$fShowWriteResponse$fFromDatumWriteResponse$fToDatumWriteResponseRecordrecId recContent viewTableName viewTableupdateObjectViews updateView$fToDatumRecord$fToJSONRecord $fPkRecord AversPatch PatchState psObjectType psObjectId psRevisionId psCommitterId psOperationspsNumConsumedOperationspsBaseSnapshotpsLatestSnapshotpsPreviousPatches psPatches requireResultexists lookupObject createObject createObject' deleteObject pruneObjectcreateCheckpointisCheckpointPatchlatestCheckpointPatch vacuumObject objectContentlookupLatestSnapshotapplyPatchToSnapshot applyPatcheslookupRecentRevisionupdateRecentRevisionlatestSnapshotBetweennewestSnapshotlookupSnapshot savePatch saveSnapshot updateSecret verifySecretsaveSecretValue objectPatchespatchesAfterRevision lookupPatchlookupObjectTypeapplyObjectUpdates patchHandler existsBlob lookupBlob insertBlobsaveBlobContent saveSession lookupSession dropSessionnewIdvalidateObjectvalidateWithType lookupRelease createReleaselookupLatestRelease createBlob objectsOfTypeallObjectsOfType isNotDeletedmapIdindexF bootstrap createTable streamPatches changeChannel newHandlenewState dropPrefix dasherizeTagderiveEncodingWithDefaultsderiveJSONWithDefaultsderiveFromJSONWithDefaults modifyObjectmkInsertDefaultsderiveDatumWithDefaultsderiveFromDatumWithDefaultsmodifyDatumObjectmkInsertDatumDefaultsmkAppsmkAppTys getTyInfotyVarBndrNames getFieldNames*network-uri-2.6.1.0-6PuDgH21OiwGLI4QZ1g9kt Network.URIURI uriRegNameuriPathuriPort uriUserInfoData.Aeson.Types.InternalValueisString hasObjectId pathElements changeObject changeArraychangeObjectAt matchObjectId WriteResponsewriteResponseInsertedwriteResponseDeletedwriteResponseReplacedwriteResponseUnchangedwriteResponseSkippedwriteResponseErrorscheckWriteResponsemergePk"stm-2.4.4.1-4z2NRWnB0NIIUvSJsHW0kFControl.Concurrent.STM.TChanTChannewDatabaseHandlePool databaseHost databasePort databaseAuthextractDatabaseName