y      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstu v w x unknownunstable$Conrad Parker <conrad@metadecks.org>Global header:  B 0 1 2 3 J 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1| Byte E +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ I | Identifier | 0-3 E +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ I | ... | 4-7 E +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ J | Version major (int16) | Version minor (int16) | 8-11 E +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ K | No. tracks (int32) | 12-15 E +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ K | Presentationtime numerator (int64) | 16-19 E +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ K | ... | 20-23 E +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ K | Presentationtime denominator (int64) | 24-27 E +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ K | ... | 28-31 E +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ K | Basetime numerator (int64) | 32-35 E +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ K | ... | 36-39 E +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ K | Basetime denominator (int64) | 40-43 E +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ K | ... | 44-47 E +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ K | UTC | 48-51 E +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ K | ... | 52-55 E +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ K | ... | 56-59 E +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ K | ... | 60-63 E +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ K | ... | 64-67 E +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ *The major version encoded by this library *The minor version encoded by this library Track header:   B 0 1 2 3 J 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1| Byte E +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ I | Identifier | 0-3 E +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ I | ... | 4-7 E +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ J | Track no. (int32) | 8-11 E +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ K | Codec identifier | 12-15 E +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ K | ... | 16-19 E +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ K | Flag: 0=CBR, 1=VBR | 20-23 E +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ K | Datarate numerator (int64) | 24-27 E +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ K | ... | 28-31 E +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ K | Datarate denominator (int64) | 32-35 E +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ K | ... | 36-39 E +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ K | Length of name in bytes (int32) | 40-43 E +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ I | Name (UTF-8) ... | 44- E +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ SDatarate: numerator 0 indicates variable bitrate (all data values are timestamped) Raw Data Packet header:   B 0 1 2 3 J 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1| Byte E +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ I | Identifier | 0-3 E +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ I | ... | 4-7 E +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ J | Track no. (int32) | 8-11 E +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ K | Entry Timestamp (int64) | 12-15 E +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ K | ... | 16-19 E +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ K | Exit TImestamp (int64) | 20-23 E +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ K | ... | 24-27 E +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ K | Count of data points COUNT (int32) | 28-31 E +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ K | Payload length in bytes (remainder of packet) (int32) | 32-35 E +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ K | Data ... | 36-39 E +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ I | ... | 40- E +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ I | Timestamps ... | TS- E +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ E | ... | E +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ BTimestamps block is only present if VBR (datarate numerator is 0) !TS = 28 + (COUNT * sizeof(Type)) Summary Data Packet header:   B 0 1 2 3 J 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1| Byte E +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ I | Identifier | 0-3 E +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ I | ... | 4-7 E +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ J | Track no. (int32) | 8-11 E +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ K | Level (int32) | 12-15 E +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ K | Entry Timestamp (int64) | 16-19 E +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ K | ... | 20-23 E +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ K | Exit Timestamp (int64) | 24-27 E +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ K | ... | 28-31 E +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ K | Summary length in bytes (int32) | 32-35 E +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ I | Summary Data ... | 36- ?Some default encodings of Summary Data are provided in modules Data.ZoomCache.Double and Data.ZoomCache.Int.  y*The minimum positive, denormalized float. z The maximum denormalized float. {(The minimum positive, normalized float. |The maximum finite float. yz{|yz{|unknownunstable$Conrad Parker <conrad@metadecks.org>"Read 2 bytes as a big-endian Int. "Read 4 bytes as a big-endian Int. %Read 8 bytes as a big-endian Integer $Read 8 bytes as a big-endian Double =Read 16 bytes as a big-endian Rational, encoded as an 8 byte D big endian numerator followed by an 8 byte big endian denominator.    unknownunstable$Conrad Parker <conrad@metadecks.org> /Global and track headers for a zoom-cache file Constant or Variable datarate. C For constant datarate, timestamps are implied as incrementing by 1/ datarate P For variable datarate, explicit timestamps are attached to each datum, encoded ; as a separate block of timestamps in the Raw Data packet. 3A specification of the type and name of each track $A map of all track numbers to their   !"#$%&'()*+Create an empty   using the given  ,"Determine whether all tracks of a   are specified  !"#$%&'()*+, '()* !"#$ +,%&  !"#$ !"#$%&&'()()*+,unknownunstable$Conrad Parker <conrad@metadecks.org>&-./01-A codec instance must additionally specify a 2 type 2Intermediate calculations 3Serialize a value of type a 4 Serialize a ' SummaryData a' 5Generate a new ' SummaryWork a', given an initial timestamp. 6 Update a > with the value of a occuring at the  given '. 7 Finalize a ' SummaryWork a', generating a ' SummaryData a'. 8 Append two > 9:;<= A codec instance must specify a > type, * and implement all methods of this class. >-Summaries of a subsequence of values of type a. In the default  instances for } and ~%, this is a record containing values ; such as the maximum, minimum and mean of the subsequence. ?&An iteratee to read one value of type a from a stream of '[Word8]'. @&An iteratee to read one value of type ' SummaryData a' from a stream  of '[Word8]'. A1Pretty printing, used for dumping values of type a. B#Pretty printing for values of type ' SummaryData a'. C!A recorded block of summary data DEFGHIJKLMNOPQR1The duration covered by a summary, in units of 1 / the track' s datarate &-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQR&=>?@AB12345678;<9:-./0JKLMNOPQCDEFGHIR&-./0./01234567823456789::;<<=>?@AB>?@ABCDEFGHIDEFGHIJKLMNOPQKLMNOPQRunknownunstable$Conrad Parker <conrad@metadecks.org>SPretty-print a  TPretty-print a  UPretty-print a ', given a datarate VPretty-print a DC, given a datarate STUVSTUVSTUVunknownunstable$Conrad Parker <conrad@metadecks.org>W Serialize a ' in 64bit big endian format. X Serialize a ~- in big-endian IEEE 754-2008 binary64 format  (IEEE 754-1985 double format). Y Serialize an  in 32bit big endian format. Z Serialize a . as a sequence of two 64bit big endian format  integers. WXYZWXYZWXYZ unknownunstable$Conrad Parker <conrad@metadecks.org>unknownunstable$Conrad Parker <conrad@metadecks.org>-[/A StateT IO monad for writing a ZoomCache file \]The ZoomWrite class provides ^, a method to write a * Haskell value to an open ZoomCache file. ^)Write a value to an open ZoomCache file. _Run a ZoomW ()4 action on a given file handle, using the specified   specification *Whether or not to write raw data packets. , If False, only summary blocks are written. `EForce a flush of ZoomCache summary blocks to disk. It is not usually M necessary to call this function as summary blocks are transparently written  at regular intervals. a9Open a new ZoomCache file for writing, using a specified . *Whether or not to write raw data packets. , If False, only summary blocks are written. b@Create a track map for a stream of a given type, as track no. 1 cKQuery the maximum number of data points to buffer for a given track before 5 forcing a flush of all buffered data and summaries. dISet the maximum number of data points to buffer for a given track before 5 forcing a flush of all buffered data and summaries. ef8Append two Summaries, merging statistical summary data. C XXX: summaries are only compatible if tracks and levels are equal [\]^_`abcdef ]^ef[_`\acdb [\]^^_`abcdef unknownunstable$Conrad Parker <conrad@metadecks.org> '()12345678=>?@ABXYZ]^ef=>?@AB12345678]^ efZYX'() unknownunstable$Conrad Parker <conrad@metadecks.org>2>unknownunstable$Conrad Parker <conrad@metadecks.org>2>unknownunstable$Conrad Parker <conrad@metadecks.org>ghijklmnoDAn enumeratee of a zoom-cache file, from the global header onwards. C The global and track headers will be transparently read, and the    visible in the g elements. pAAn enumeratee of zoom-cache data, after global and track headers  have been read, or if the   has been acquired elsewhere. qHParse only the global and track headers of a zoom-cache file, returning  a   rMap a monadic g5 processing function over an entire zoom-cache file. sMap a monadic KJ5 processing function over an entire zoom-cache file. tMap a monadic DC5 processing function over an entire zoom-cache file. ghijklmnopqrstgkihlmnlmjqoprstg kihlmnlmjhijklmnopqrstunknownunstable$Conrad Parker <conrad@metadecks.org>G '()*9:;<=?@ABCDEFGHIJKLMNOPQSTUV[]^_`bcdghijklmnopqrst5'()* =?@AB;<9:JKLMNOPQCDEFGHI]^[_`cdb unknownunstable$Conrad Parker <conrad@metadecks.org> uvwxuvwxvwxuuvwx !"#$%&&'()*+,,-./012234567899:;<=>?@ABCDDEEFGHIJKLLMNOPQRRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{ | } ~   c    zoom-cache-0.4.0.0Data.ZoomCache.FormatData.Iteratee.ZoomCache.UtilsData.ZoomCache.CommonData.ZoomCache.TypesData.ZoomCache.Pretty"Blaze.ByteString.Builder.ZoomCacheData.ZoomCache.WriteData.Iteratee.ZoomCacheData.ZoomCache.DumpNumeric.FloatMinMax+Blaze.ByteString.Builder.ZoomCache.InternalData.ZoomCache.CodecData.ZoomCache.DoubleData.ZoomCache.IntData.ZoomCache globalHeader versionMajor versionMinor trackHeadertrackTypeDouble trackTypeInt packetHeader summaryHeader readInt16be readInt32be readInt64bereadDouble64bereadRational64be CacheFilecfGlobalcfSpecs DataRateType VariableDR ConstantDR TrackTypeZIntZDouble TrackSpecspecType specDRTypespecRatespecNameTrackMapGlobalversionnoTrackspresentationTimebaseTimebaseUTCVersion TimeStampTSunTSTrackNo mkCacheFilefiFullZoomWorklevelscurrWork ZoomWritable SummaryWorkfromRawfromSummaryDatainitSummaryWorkupdateSummaryData toSummaryDataappendSummaryData ZoomSummaryZoomRaw ZoomReadable SummaryDatareadRaw readSummary prettyRawprettySummaryDataSummary summaryTrack summaryLevelsummaryEntryTimesummaryExitTime summaryDataPacket packetTrackpacketEntryTimepacketExitTime packetCount packetDatapacketTimeStampssummaryDuration prettyGlobalprettyTrackSpecprettyTimeStamp prettySummary fromTimeStamp fromDoublefromIntegral32befromRational64ZoomW ZoomWHandle ZoomWritewrite withFileWriteflush openWriteoneTrack watermark setWatermark writeData writeDataVBRStream StreamNull StreamSummary strmSummary StreamPacketstrmFile strmTrack strmPacket enumCacheFile enumStream iterHeaders mapStream mapPackets mapSummaries zoomInfoFile zoomDumpFilezoomDumpSummaryzoomDumpSummaryLevelfloatMinfloatMaxDenorm floatMinNormfloatMaxghc-prim GHC.TypesIntDoubleprettySummaryTimesprettySummaryLevelratShowbaseGHC.RealIntegralRationalfromDataRateType fromGlobal fromSummaryfromSummaryHeader fromTrackNo fromTrackType fromVersion TrackWorktwSpec twBuilder twTSBuildertwWritertwCount twWatermark twEntryTime twExitTimewhHandle whTrackWork whDeferred whWriteDatawriteGlobalHeaderwriteTrackHeader incTimeStampincTimesetTime flushIfNeededmkGlobal modifyTracks modifyTrack bsFromTrack mkTrackWork clearWork updateWork flushSummary flushWork pushSummary appendSummary<>prettyPacketDoublereadSummaryDoubleprettySummaryDoubleinitSummaryDoublemkSummaryDoublefromSummaryDoubleupdateSummaryDoubleappendSummaryDoubleSummaryWorkDoubleztsdTime ztsdEntryztsdExitztsdMinztsdMaxztsdSum ztsdSumSq SummaryDoublesummaryDoubleEntrysummaryDoubleExitsummaryDoubleMinsummaryDoubleMaxsummaryDoubleAvgsummaryDoubleRMSprettyPacketIntreadSummaryIntprettySummaryIntinitSummaryInt mkSummaryIntfromSummaryIntupdateSummaryIntappendSummaryIntSummaryWorkIntztsiTime ztsiEntryztsiExitztsiMinztsiMaxztsiSum ztsiSumSq SummaryIntsummaryIntEntrysummaryIntExit summaryIntMin summaryIntMax summaryIntAvg summaryIntRMS HeaderType SummaryHeader PacketHeader TrackHeader GlobalHeader parseHeaderreadGlobalHeaderreadTrackHeader readPacketreadSummaryBlock readVersion readTrackTypeparseTrackTypereadDataRateTypeinfo streamRatedumpData dumpSummarydumpSummaryLevel