C4YC                 !"#$%&'()*+,-./012 3456789:; < = >?@AB None8Check that the dictionary has the specified "Type" filed'Get dictionary type, name at key "Type"NoneFont dictionaryInformation dictionary Pdf document page -Page tree node, contains pages or other nodes  Page treeDocument catalog PDF documentIt is a trailer under the hood        NoneDecrypt input stream!Decrypt object with the decryptorThe default user passwordStandard decryptor. RC4CDdocument trailerencryption dictionaryFuser password (32 bytes exactly, see 7.6.3.3 Encryption Key Algorithm)CD None$Interface to the underlying PDF filefind object by it's referencedecoded stream content Note: the E' returned is valid only until the next , or any other operation, that requares seekCurrent decryptor@Get random access input stream for direct access to the PDF fileGet all stream filters Recursively load indirect objectNoneB Convenient type alias !Basic implementation of pdf monad!xPerform action without adding objects to cache. Note: the existent cache is not flushed, and is used within the action"Remove all objects from cache#Execute PDF action with F$Execute PDF action with G%Get PDF document&%Whether the PDF document it encrypted'*Set the password to be user for decryption(Returns False when the password is wrong(-Decrypt PDF object using user password is set HIJKLMNOPQRSTUVWXY!"#$Z%&'([ !"#$%&'( #$%"!&'( HIJKLMNOPQRSTUVWXY!"#$Z%&'([None)Get the document catalog*Document encryption dictionary+'Infornation dictionary for the document)*+)*+)*+)*+None,Get root node of page tree,,,,None-9Total number of child leaf nodes, including deep children.Parent page node/Referencies to all kids0 Load page tree node by reference1Find page by it's numberNote: it is not efficient for PDF files with a lot of pages, because it performs traversal through the page tree each time. Use -, / and 0 for efficient traversal.-./01 -./01 -./01-./01 None2Document title2222None3 Font subtypes9Get font subtype:Load font info for the font 3456789:\]^_ 3456789: 3876549:3876549:\]^_ None; Rectangle=+Create rectangle form an array of 4 numbers;<=;<=;<=;<=None>Page's parent node?,List of references to page's content streams@Media box, inheritableAFont dictionaries for the pageBExtract text from the pagecIt tries to add spaces between chars if they don't present as actual characters in content stream.`9Convert glyphs to text, trying to add spaces and newlinesIt takes list of spans. Each span is a list of glyphs that are outputed in one shot. So we don't need to add space inside span, only between them.>?@aAB` >?@AB >?@AB>?@aAB` Nonebcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,  !"#$%&'()*+,-./0123456789:;<=>?@AB-  ! " # $ % & ' ( ) *+,-./0123456789:;<= >?@ABCDEF G G HIJKLM N OPQPRSTU,VVWXYZ[\]^_`abcdefghijklmSnoSnpSnqSnrSstSsuSsvSswSsxSsySszSs{|}~|}|}|}|}|}|}|}|}                       !"#$%&'&(&)&*&*&+&+&,&,&-&-&.&.&/&/&0&0&1&2&3&4&5&6&7&8&9&:;pdf-toolbox-document-0.0.4.0Pdf.Toolbox.Document.Pdf"Pdf.Toolbox.Document.Internal.UtilPdf.Toolbox.Document.FontDict#Pdf.Toolbox.Document.Internal.TypesPdf.Toolbox.Document.PagePdf.Toolbox.Document.PageNodePdf.Toolbox.Document.CatalogPdf.Toolbox.Document.DocumentPdf.Toolbox.Document.EncryptionPdf.Toolbox.Document.MonadPdf.Toolbox.Document.InfoPdf.Toolbox.Document.TypesPdf.Toolbox.Documenttransformers-0.4.1.0Control.Monad.IO.ClassliftIOMonadIOpdf-toolbox-core-0.0.3.0Pdf.Toolbox.Core.Stream knownFilters ensureTypedictionaryTypeFontDictInfoPagePageNodePageTree PageTreeLeaf PageTreeNodeCatalogDocument Decryptor decryptObjectdefaultUserPasswordmkStandardDecryptorMonadPdf lookupObject streamContent getDecryptorgetRISgetStreamFiltersderefPdfPdf'withoutObjectCacheflushObjectCacherunPdfrunPdfWithHandledocument isEncryptedsetUserPassworddecryptdocumentCatalogdocumentEncryption documentInfocatalogPageNode pageNodeNKidspageNodeParent pageNodeKids loadPageNodepageNodePageByNum infoTitle FontSubtype FontTrueType FontType3 FontMMType1 FontType1 FontType0fontDictSubtypefontDictLoadInfo RectanglerectangleFromArraypageParentNode pageContents pageMediaBox pageFontDictspageExtractText decryptStr decryptDictPdf.Toolbox.Core.IO.RISISRISbaseGHC.IO.Handle.TypesHandlePdfStatestRIS stFilters stLastXRefstAddToObjectCache stObjectCachestXRefStreamCache stDecryptorreadObjectForEntry getXRefStreamlookupEntryReclookupXRefEntrytakeStreamContent getLastXRef getFromCacheaddObjectToCacherunPdf'$fMonadPdfPdf'loadFontInfoCompositeloadFontInfoSimpleloadEncodingDifferencesloadUnicodeCMap glyphsToTextmediaBox Data.EitherpartitionEithersrightsleftseither Data.MaybemapMaybe catMaybes listToMaybe maybeToList fromMaybe isNothingisJustmaybe either-4.3.1Control.Monad.Trans.Either hoistEither mapEitherT bimapEitherTrightlefteitherT runEitherTEitherTControl.Monad.Trans.MaybeMaybeT runMaybeT mapMaybeT liftCallCC liftCatch liftListenliftPass safe-0.3.8SafetailMaytailDeftailSafeinitMayinitDefinitSafeheadMaylastMayheadDeflastDef minimumMay maximumMay minimumDef maximumDef foldr1May foldl1May' foldr1Def foldl1Def' fromJustDefatMayatDefreadMayreadDef lookupJustDef findJustDef errors-1.4.7Control.Error.SaferightZjustZassertZreadZatZfoldl1Z'foldl1Zfoldr1ZmaximumZminimumZlastZheadZinitZtailZtryRighttryJust tryAsserttryReadtryAt tryFoldl1' tryFoldl1 tryFoldr1 tryMaximum tryMinimumtryLasttryHeadtryInittryTailjustErr assertErrreadErratErr foldl1Err' foldl1Err foldr1Err maximumErr minimumErrlastErrheadErrinitErrtailErrrightMay assertMayControl.Error.ScriptscriptIO runScriptScriptControl.Error.UtilsyncIOtryIOerrLnerrfmapRTisRightTisLeftTfmapRisRightisLeft isNothingTisJustTnothingjustmaybeTbool failWithMfailWith?:!??? hoistMaybenoteTnotehushThushrunAllEAllErunAnyEAnyE Data.EitherRflipETfmapLThandleTcatchTthrowTsucceedTflipEfmapLhandleEcatchEthrowEsucceed runEitherREitherR runEitherRTEitherRTPdf.Toolbox.Core.Object.Util mapObjecttoStreamtoArraytoReftoStrtoDicttoName toBooleantoNumber realValueintValuesetValueForKeydeleteValueForKey lookupDict' lookupDict fromObject FromObjectPdf.Toolbox.Core.ErrortryPdfIOannotatingError annotateError ParseErrorIOErrorAnnotatedErrorUnexpectedErrorPdfErrorPdfEPdf.Toolbox.Core.Object.TypesNumIntNumRealNumberBooleanNameDictArrayStrStreamRefONumberOBooleanONameODictOArrayOStrOStreamORefONullObject