m]\_      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ Safe-Inferred Safe-Inferred Safe-InferredNone-Represent number of seconds since VHD epoch. +return the current time in vhd epoch time.  Safe-Inferred#align an handle to the next modulo  Safe-Inferred  Nonesmart constructor for uniqueId  None        None 85An absolute address in byte in the vhd content space :!The absolute number of the block <4The offset from the beginning of a block in sectors >2The offset from the beginning of a block in bytes @ block size F9increment the virtual address to align to the next block Ismart constructor for Cookie J)smart constructor for CreatorApplication K+smart constructor for ParentLocatorEntries < !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKL< !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKL%"! #$%('&)*+,-./0123456789:;<=>?@ABCDEFGHIJKL Noneblock size in bytes block address block data pointer BFinds the padded size (in bytes) of the bitmap for a given block. GFinds the padded size (in bytes) of the bitmap for a given block size. *Retrieves the bitmap for the given block. (Retrieves the data for the given block. ,Obtains a direct pointer to the given data. WMaps into memory a block of the given size, at the given file path and sector address. FReads into memory the contents of the bitmap for the specified block. 3Reads all available data from the specified block. 7Reads a range of data from within the specified block. <Unsafely reads all available data from the specified block. @Unsafely reads a range of data from within the specified block. >Writes data to the given byte address of the specified block. 7Return the whole sector of a specific block if present +Write the whole sector of a specific block <the content passed need to be the size of the sector length !an optional data mapper function  the block offset in bytes on this block number of bytes output buffer !an optional data mapper function the mapped block the sector address !an optional data mapper function the mapped block the sector address content (of sector length)  None:Calculates disk geometry using the algorithm presented in = | the virtual hard disk image format specification (v 1.0). None,*,NoneMNOPQRSTUVWXYZMNOPQRSTUVWXYZM NOPQRSTUVWXYZNone[\]^_`abcdefghijk[\]^_`abcdefghijk[\]^_`abcdefghijkNonel&read footer directly from a vhd file. m%read header directly from a vhd file n#re-write both footer in a VHD file o!re-write an header in a VHD file lmnolmnomlonlmnoNone                None5Returns the padded size (in bytes) of the given BAT. FReturns true if (and only if) the given BAT contains an entry for the ' block at the given virtual address. GReturns the physical sector address for the block at the given virtual  address. DSets the physical sector address for the block at the given virtual " address, in the specified BAT.  !"#  !"#  !"#None$<Find implicit cryptographic key associated with a vhd node. given a vhd node called a.vhd or a, this function will looks for  a,aes-xts-plain,512.key and a,aes-xts-plain,256.key %Encrypt using VhdCryptContext &Decrypt using VhdCryptContext '=Create an IV in big endian mode of the virtual block address ()*+$,-./%&' (*+$,-./%& ()*+$,-./%&'None05Represent one VHD file, possibly part of a VHD chain 1@return the (reading, writing) blockDataMapper for a giving node 2RReturn the physical sector of a specific block, or create a new one if this block  has not been allocated yet 34Create a new empty block at the end of the vhd file 4%Iterate Present blocks in a vhd file 5$Iterate sectors in a specific block 06789:;<=1>2?@3A4 the vhd file  callback 5 the vhd file block address  callback -06789:;<=1>2?@A45 06789:;<=1>2?@3A45None}1Retrieves the header and footer from a VHD file. ~9Creates an empty VHD file with the specified parameters. BReads data from the whole virtual address space of the given VHD. BReads data from the given virtual address range of the given VHD. ATODO: modify this function to read sub-blocks where appropriate. ;Writes data to the given virtual address of the given VHD. BHReads all available data from the given virtual block of the given VHD. CTReads data from the given sector range of the given virtual block of the given VHD. D]Unsafely reads data from the given sector range of the given virtual block of the given VHD. pqrstuvwxyzEFGHIJK{L|}~MVhd chain to read from offset address in the VHD number of byte to read Vhd chain to write to offset address in the VHD the data to write in the VHD BCDz  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijkpqrstuvwxyz{|}~z~pqrstuvwxyz|}{BC@A>?<=:;8976543210/.-DEFG+,*)%('&#$"! HIJKLMNOPQRSTUVWXYZ  [\]^_`abcdefghijkp qrstuvwxyzEFGHIJK{L|}~MBCDN          ! " # $ $ % % & & ' ( ) * + + , , - . / 0 1 1 2 3 4 5 6 7 8 8 9 : ; < = > ? @ A B C D D E E F F G G H H I J K L M N O P Q R STTUVWXYZ[\]^_`aabcdefghijklmnopqrstuuvwxyz{|}~              !!"#$%&'()*+&,-./01234567899:;<=>?@A vhd-0.2.2 Data.Vhd.TimeData.VhdData.Vhd.LowlevelData.Vhd.Bitmap Data.RangeData.Vhd.ConstData.Vhd.Utils Data.BitSetData.Vhd.UniqueIdData.Vhd.ChecksumData.Vhd.TypesData.Vhd.BlockData.Vhd.GeometryData.Vhd.SerializeData.Vhd.HeaderData.Vhd.FooterData.Vhd.Batmap Data.Vhd.BatData.Vhd.Crypt Data.Vhd.Node VhdDiffTime getVHDTimetoPosixSeconds toUTCTimeUniqueIduniqueIdrandomUniqueId CheckSumablecalculateChecksum getChecksum setChecksumChecksumadjustChecksumverifyChecksumchecksumCalculateParentLocatorEntriesParentUnicodeNameParentLocatorEntry locatorCodelocatorDataSpacelocatorDataLengthlocatorDataOffsetCreatorApplicationCookieDiskTypeDiskTypeDifferencingDiskTypeDynamic DiskTypeFixed DiskGeometry CreatorHostOsCreatorHostOsMacintoshCreatorHostOsWindowsCreatorHostOsUnknown VersionMinor VersionMajorVersionVirtualSectorCountVirtualSectorAddressVirtualByteCountVirtualBlockCountPhysicalSectorCountPhysicalSectorAddressPhysicalByteCountPhysicalByteAddressDiskGeometrySectorsPerTrackDiskGeometryHeadsDiskGeometryCylindersVirtualByteAddressVirtualBlockAddressBlockSectorAddressBlockByteAddress BlockSizeSizedsized vaddrPlus vaddrToBlockvaddrNextBlock addrToSectornullParentLocatorEntrycookiecreatorApplicationparentLocatorEntriesparentUnicodeNameHeader headerCookieheaderDataOffsetheaderTableOffset headerVersionheaderMaxTableEntriesheaderBlockSizeheaderChecksumheaderParentUniqueIdheaderParentTimeStampheaderReserved1headerParentUnicodeNameheaderParentLocatorEntriesFooter footerCookiefooterIsTemporaryDiskfooterFormatVersionfooterDataOffsetfooterTimeStampfooterCreatorApplicationfooterCreatorVersionfooterCreatorHostOsfooterOriginalSizefooterCurrentSizefooterDiskGeometryfooterDiskTypefooterChecksumfooterUniqueIdfooterIsSavedState readFooter readHeader writeFooter writeHeaderCreateParameterscreateBlockSizecreateDiskTypecreateParentTimeStampcreateParentUnicodeNamecreateParentUniqueIdcreateTimeStamp createUuidcreateUseBatmapcreateVirtualSizewithVhddefaultCreateParametersgetInfocreatesnapshotreadData readDataRangewriteDataRangeBitmap bitmapGet bitmapModify bitmapSetbitmapSetRange bitmapClear RangeLengthRangerangelengthminimummaximum sectorLengthy2khAlign divRoundUpresolveColocatedFilePathroundUpToModulounlessMBitSetemptyfromByteString fromRangetoListisEmpty intersectunionsubtractbinaryOpbyteStringBitsbyteStringPackZipWithbyteStringsPadsetBits word8Bits $fShowBitSet $fEqBitSetofString$fReadUniqueId$fShowUniqueId$fByteableUniqueId checksumPluschecksumComplement$fMonoidChecksum$fSerializeChecksum blockSize blockAddrblockPtrbitmapSizeOfBlockbitmapSizeOfBlockSize bitmapOfBlock dataOfBlock pointerOfData withBlock readBitmapunsafeReadDataunsafeReadDataRange readSector writeSectorDataBlockBlockDataMapperblockSectorToBytesectorPerBlockiterateSectors diskGeometry getCookie putCookie getBlockSize putBlockSizegetCurrentSizeputCurrentSize getDataOffset putDataOffsetgetMaxTableEntriesputMaxTableEntriesgetOriginalSizeputOriginalSizegetTableOffsetputTableOffsetgetParentTimeStampputParentTimeStamp getTimeStamp putTimeStampgetCreatorApplicationputCreatorApplicationgetCreatorHostOsputCreatorHostOs getDiskType putDiskTypegetDiskGeometryputDiskGeometrygetIsTemporaryDiskputIsTemporaryDiskgetIsSavedStateputIsSavedState getUniqueId putUniqueIdgetParentUniqueIdputParentUniqueId getVersion putVersiongetCreatorVersionputCreatorVersiongetFormatVersionputFormatVersiongetParentUnicodeNameputParentUnicodeName$fSerializeParentLocatorEntries$fSerializeParentLocatorEntryheaderPaddingLengthgetHeaderPaddingputHeaderPadding$fSerializeHeader$fCheckSumableHeader $fSizedHeaderfooterPaddingLengthgetFooterPaddingputFooterPadding$fSerializeFooter$fCheckSumableFooter $fSizedFooterKeyHash BatmapHeaderbatmapHeaderCookiebatmapHeaderOffsetbatmapHeaderSizebatmapHeaderVersionbatmapHeaderChecksumbatmapHeaderMarkerbatmapHeaderKeyHashbatmapHeaderReservedbatmapClearKeyHashbatmapSetKeyHash$fSizedBatmapHeader$fSerializeKeyHash$fSerializeBatmapHeader batGetSize containsBlock lookupBlockbatWriteBatbatStartbatEnd batBatmap emptyEntry hasBatmapbatMmapbatmapHeaderModify batIteratefindImplicitCryptFile vhdEncrypt vhdDecryptblockAddressToIVVhdCryptContext VhdCryptKeyfindImplicitCryptKey openCryptKey calculateHash vhdCryptInitVhdNodegetVhdBlockMapperlookupOrCreateBlockappendEmptyBlock iterateBlocksiterateBlockSectorsnodeBat nodeHeader nodeFooter nodeHandle nodeCryptCtx nodeFilePath nodeModified withVhdNodebatmapHeaderChangewithMappedBlock readDataBlockreadDataBlockRangeunsafeReadDataBlockRangeVhd vhdBlockCount vhdBlockSizevhdNodesvhdSectorPerBlock virtualSizevalidateBlockSizecreate'