From d0efe3f2cc7dd5471733f7c1e1504a2e9ad76d8d Mon Sep 17 00:00:00 2001 From: shenlei Date: Mon, 6 Jul 2026 15:04:22 +0900 Subject: [PATCH] =?UTF-8?q?=E5=AE=89=E5=85=A8=E5=8C=BA=E5=9F=9F=E6=94=B9?= =?UTF-8?q?=E4=B8=BA=E4=BB=8E=20key=20window=20=E5=8A=A8=E6=80=81=E8=8E=B7?= =?UTF-8?q?=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 RDEPUBSafeArea:参考 GKNavigationBarSwift 的 keyWindow 三级查找与临时 window 兜底 - 移除 reflowableContentInsets 中 top/bottom 40 的固定默认值,改按设备真实安全区生成 - 各取安全区处的 ?? .zero 兜底改为回退到 key window 值 - DEBUG 构建下为文本可读区域绘制红色边框,方便查看排版范围 Co-Authored-By: Claude Fable 5 --- .../Pods/Pods.xcodeproj/project.pbxproj | 3006 +++++++++-------- .../RDEPUBNavigatorLayoutContext.swift | 2 +- .../EPUBCore/RDEPUBSafeArea.swift | 67 + .../EPUBUI/RDURLReaderController.swift | 2 +- .../RDEPUBReaderContext.swift | 2 +- .../RDEPUBReaderEnvironment.swift | 4 +- .../Settings/RDEPUBReaderConfiguration.swift | 12 +- .../TextPage/RDEPUBTextContentView.swift | 23 +- 8 files changed, 1605 insertions(+), 1513 deletions(-) create mode 100644 Sources/RDReaderView/EPUBCore/RDEPUBSafeArea.swift diff --git a/ReadViewDemo/Pods/Pods.xcodeproj/project.pbxproj b/ReadViewDemo/Pods/Pods.xcodeproj/project.pbxproj index 6f38716..1e15a82 100644 --- a/ReadViewDemo/Pods/Pods.xcodeproj/project.pbxproj +++ b/ReadViewDemo/Pods/Pods.xcodeproj/project.pbxproj @@ -7,576 +7,573 @@ objects = { /* Begin PBXBuildFile section */ - 00113125175BA26D70BE12F27CCEAB65 /* NSFileWrapper+DTCopying.m in Sources */ = {isa = PBXBuildFile; fileRef = D9A812C3E577A3ADC36BAE3FF7AA4D9C /* NSFileWrapper+DTCopying.m */; }; 002685407B9C4D548571DA24AFD6E8F1 /* NSString+Paragraphs.m in Sources */ = {isa = PBXBuildFile; fileRef = B4A7F7402FAEE3A277A8716DDA115C95 /* NSString+Paragraphs.m */; }; + 010EFB280F4FDFBBC75CEFB1FEF1C3C9 /* RDEPUBAnnotationModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = 517D111957FC986C0BE0281CA89159AF /* RDEPUBAnnotationModels.swift */; }; 014449AE560FFF3C628FAE639D043004 /* DTAnchorHTMLElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 148B993AB228816D19FCB7CD13874C83 /* DTAnchorHTMLElement.m */; }; - 02A298783B59EBF1DA7E6734E86384BC /* RDEPUBReaderSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = A16F8F582626936AC8B388F57B74A6F5 /* RDEPUBReaderSettings.swift */; }; - 02E00A11A960FFC1CF719FF107A97A56 /* RDEPUBReaderController+PublicAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = EB578C52D04A71D85CCA25340333F2C2 /* RDEPUBReaderController+PublicAPI.swift */; }; + 022C814021FFCE8343CF94BEB39F5EB3 /* DTAnimatedGIF.h in Headers */ = {isa = PBXBuildFile; fileRef = F9D9BEF72311AF9E3239F9B92A9D2842 /* DTAnimatedGIF.h */; settings = {ATTRIBUTES = (Public, ); }; }; 03D90C831397E8636A33CE557024A136 /* NSMutableAttributedString+HTML.h in Headers */ = {isa = PBXBuildFile; fileRef = 044BEA679671E16EA9BA9AD627750742 /* NSMutableAttributedString+HTML.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 045ECA6DF954F21A52A3A318CB0A959A /* Archive+ReadingDeprecated.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5193541848D2D1BF115A45D8A730611C /* Archive+ReadingDeprecated.swift */; }; - 04A447AC67CE557F0D6535CCAA7E672A /* UIColor+RDEPUB.swift in Sources */ = {isa = PBXBuildFile; fileRef = A416E2F4584E41C30A3352FFD3824BE2 /* UIColor+RDEPUB.swift */; }; + 041DF6ADC6BC49651B1D25241076C947 /* RDEPUBTextPerformanceSampler.swift in Sources */ = {isa = PBXBuildFile; fileRef = C5B003AC0B46623423334F97FEE379B8 /* RDEPUBTextPerformanceSampler.swift */; }; 0561DF6793C8516F469D9813F5CE3211 /* DTCoreTextLayouter.m in Sources */ = {isa = PBXBuildFile; fileRef = D80A72D8B7941D30246858D840EE1EF5 /* DTCoreTextLayouter.m */; }; - 06B91127429E64FE098A50E0549E9B62 /* RDEPUBReaderChapterListController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C706B8C5A519EE55EC9D545AB3302AD9 /* RDEPUBReaderChapterListController.swift */; }; - 08711CEABB218DF984EA628D9B08BA47 /* RDEPUBReadingLocationModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1D220183932DB13D0AF20EF12C44A29D /* RDEPUBReadingLocationModels.swift */; }; - 088E349DD58B48DC5A3F210B3AA2B08E /* RDEPUBStyleCompatibilityModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = EBAABB0F2B6957E455D803F386B55761 /* RDEPUBStyleCompatibilityModels.swift */; }; - 08C9C48A7BD681F075086F7E53660F69 /* FileManager+ZIP.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6C3F8DF48C6EB28BFD05F5BB49793DDA /* FileManager+ZIP.swift */; }; - 08EC0B2843F92A4C922EB790C33B077F /* RDEPUBTextAnchor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 00D963091969DCF978D7A36BF2747D33 /* RDEPUBTextAnchor.swift */; }; - 0A5BECD47E7FF9EA5C92717197F50DD0 /* RDEPUBReaderTableOfContentsItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECE876A9792A03EF4CBCFD3DF6188D46 /* RDEPUBReaderTableOfContentsItem.swift */; }; + 06F29198808875D4FE864F420CF6DDBE /* RDEPUBChapterWarmupOrchestrator.swift in Sources */ = {isa = PBXBuildFile; fileRef = C66C203D247690A4DDE08BF5A5D56B3B /* RDEPUBChapterWarmupOrchestrator.swift */; }; + 07102A5412AC8C8BA0812CF5F0F77C23 /* RDEPUBReaderSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 277A48279BD4FD22C6C552AAC4F282B2 /* RDEPUBReaderSettings.swift */; }; + 0758EE7A9DEC9BD31DCDAC2CFB03D837 /* URL+ZIP.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6430501430329643C8280B3985C48711 /* URL+ZIP.swift */; }; + 08C0E1DFA612AF20B227EB4583BD4EF1 /* RDEPUBCFIParser.swift in Sources */ = {isa = PBXBuildFile; fileRef = F5E771C978D8EFB4DD05E81447873572 /* RDEPUBCFIParser.swift */; }; + 08E9FC7DEE3A8A6347C38CDDE34F0102 /* RDEPUBWebView+Search.swift in Sources */ = {isa = PBXBuildFile; fileRef = 130135CFECAE1E38379F213C3C298BD1 /* RDEPUBWebView+Search.swift */; }; + 09256EEFCDBDEBF3090658C24D7C4B88 /* wxread-replace-latin.css in Resources */ = {isa = PBXBuildFile; fileRef = 6E7E8438D5E5533B7BE96AC6FA8FD8BD /* wxread-replace-latin.css */; }; + 095FB08EBCD23A3E4A12955EBD443C79 /* RDEPUBReaderDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 61A1D30B96ADD9D1660073E9207329CF /* RDEPUBReaderDelegate.swift */; }; + 097C7CC4E0B27F7D78515547494AA566 /* RDEPUBJumpSession.swift in Sources */ = {isa = PBXBuildFile; fileRef = 943DB891CA340D3E0A65D0267100C3E7 /* RDEPUBJumpSession.swift */; }; + 09B30CACFD89784529196FCA970E706F /* RDEPUBReaderController+DataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = C012576F77900AEF84ACA075FF174D12 /* RDEPUBReaderController+DataSource.swift */; }; 0AAA5BB1DBF584102B15CF8738F1815E /* NSScanner+HTML.m in Sources */ = {isa = PBXBuildFile; fileRef = 057DBFBFC99448A0B77A3C0DBB13B4A9 /* NSScanner+HTML.m */; }; 0ABC4D62588EABAA636441FD9A82C940 /* CTLineUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 9C6CE93FAA68605C6B90FF844A98E440 /* CTLineUtils.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0B287B2D40A4B263DA9529292BEF9F33 /* RDEPUBFontFallbackResolver.swift in Sources */ = {isa = PBXBuildFile; fileRef = BE294326627812338FB0A4C644CD32A6 /* RDEPUBFontFallbackResolver.swift */; }; 0B6FA1F22150D7F8B1865F41FF70C922 /* DTImage+HTML.h in Headers */ = {isa = PBXBuildFile; fileRef = E3CAAC46883B74B071843E5D38B5BF85 /* DTImage+HTML.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0C1FE3FEF711D728FDFF14CF277B2E4E /* Archive+Deprecated.swift in Sources */ = {isa = PBXBuildFile; fileRef = F3C9CA544EBF55130625F6C3AD2ABFB4 /* Archive+Deprecated.swift */; }; - 0C73693788D2965F6E5D255519E050B9 /* UIColor+RDEPUBHex.swift in Sources */ = {isa = PBXBuildFile; fileRef = B0F1230C085573028B4BC891EA8040C3 /* UIColor+RDEPUBHex.swift */; }; - 0C7FEDFB0E8C8C55F63378C60C4208FA /* Entry.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0D93C2002AAECD29B3ED5A14026D3DFE /* Entry.swift */; }; - 0D077883D7EAB6E86CCB45D8B3FA637A /* NSDictionary+DTError.h in Headers */ = {isa = PBXBuildFile; fileRef = 05838D65DEC339C51AADB17346B7E287 /* NSDictionary+DTError.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0FA9D733C9545D185352CAD655930C82 /* UIView+DTFoundation.h in Headers */ = {isa = PBXBuildFile; fileRef = 29DEA4D201BB179BB6E228E9F688CD4C /* UIView+DTFoundation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0BEA894C5656FF4CCAEDA1F447A31F9C /* RDEPUBAttachmentTooltipOverlayView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0886011FDDE07A5C7BBC2168C401EAD2 /* RDEPUBAttachmentTooltipOverlayView.swift */; }; + 0BF855C140122F5D1D410BA83E44DD50 /* DTTiledLayerWithoutFade.m in Sources */ = {isa = PBXBuildFile; fileRef = 23006DBAC610AEB0A4B3EAFEA4FB0567 /* DTTiledLayerWithoutFade.m */; }; + 0C0FD53B17B17CC557667AE50CE8A86B /* Archive+WritingDeprecated.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2373DCA0FC45287BFC063BEA661B8367 /* Archive+WritingDeprecated.swift */; }; + 0C798C4A69D1C2F7DD26AD589C05F260 /* DTVersion.m in Sources */ = {isa = PBXBuildFile; fileRef = CCC633BF76C79E0B4A6750337D5DCDB8 /* DTVersion.m */; }; + 0CF68C435484E592181D2666B7661988 /* RDReaderFlowLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = E4C4605A9B7326DBE0CED7EB66A7416F /* RDReaderFlowLayout.swift */; }; + 0EBABF6BEEA7615626818E066C16AF18 /* DTAnimatedGIF.m in Sources */ = {isa = PBXBuildFile; fileRef = A3DE08AC23FE36A6C3F33A04700FDE57 /* DTAnimatedGIF.m */; }; + 0F5153F35326C04F32AC77F5FEB668A5 /* UIView+DTFoundation.m in Sources */ = {isa = PBXBuildFile; fileRef = 67DA49B61A249C2B8241D8FE166608C9 /* UIView+DTFoundation.m */; }; 0FCBC8C64D8862F2A0E8794EDADDECBD /* UIFont+DTCoreText.h in Headers */ = {isa = PBXBuildFile; fileRef = 398DC798680E2CA64D46B9E19B380356 /* UIFont+DTCoreText.h */; settings = {ATTRIBUTES = (Public, ); }; }; 100BFFBD24F234C095EDB001B8088DB1 /* DTCoreTextLayoutFrameAccessibilityElementGenerator.m in Sources */ = {isa = PBXBuildFile; fileRef = 4476B58B93EE7476A4762FE0E26E8178 /* DTCoreTextLayoutFrameAccessibilityElementGenerator.m */; }; 109458F9D48FD4F381F0E40E2DB3D91C /* DTLazyImageView.h in Headers */ = {isa = PBXBuildFile; fileRef = D5DD4142DF33E1BE0B5A057101E851C5 /* DTLazyImageView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 10B31BECFD9AE02D5B3D4FC2CCAB3B3F /* DTSmartPagingScrollView.h in Headers */ = {isa = PBXBuildFile; fileRef = 21CCCCAAF832BE9C859BEDDC79B4E9E2 /* DTSmartPagingScrollView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 10EDE543DD6FB84E7F83398813B62AD9 /* wxread-dark.css in Resources */ = {isa = PBXBuildFile; fileRef = D97740E10289031B888FFAE803AE441E /* wxread-dark.css */; }; - 10FA9DC27DAC6DA7724D6C6EB28FE0A0 /* NSString+DTFormatNumbers.m in Sources */ = {isa = PBXBuildFile; fileRef = C5005A9E8F746647585CCAB26853E922 /* NSString+DTFormatNumbers.m */; }; + 112DBB191F130CA6D495E71077A80009 /* RDEPUBPaginationModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2FCEDA49EDECD7CEEEF8A65685B9870A /* RDEPUBPaginationModels.swift */; }; + 118AB54026EBE9D225066649DE548A7D /* RDEPUBViewportTypes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B4EAD9C5D3D276887E0AC6A35F10659 /* RDEPUBViewportTypes.swift */; }; 11AB1902A68385851FB81E870991F9A0 /* DTImageTextAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = 57642B518C047A428FE1266A09E0513F /* DTImageTextAttachment.m */; }; 12B4A35B8E40C112E18A7C5511F023E9 /* CoreText.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4472755F83C121DE5E1E505D145F6DBE /* CoreText.framework */; }; 130C3A85D9F9F445222C2E31EC245B0A /* NSScanner+HTML.h in Headers */ = {isa = PBXBuildFile; fileRef = DD0A5FF70CDBE87597264762EC20EF43 /* NSScanner+HTML.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 13D28951E31D694F91F1D7AAC21D42BF /* RDEPUBStyleSheetComposer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 36D5F0FE11BFC4DA5A60FF82CD8D83E4 /* RDEPUBStyleSheetComposer.swift */; }; - 13E0E60D1E91FE73DA3C19EFA23EF59D /* RDEPUBReaderAnnotationCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9CA110E3D360292AAFB29F380653D9CE /* RDEPUBReaderAnnotationCoordinator.swift */; }; + 14A68E9E3880E51FBA491021429E40B7 /* Archive+MemoryFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFF51E56E09E095C92CB5B9F21384027 /* Archive+MemoryFile.swift */; }; 14BDD9FB7A7AC5C8ABFF8D24C381F3DA /* NSAttributedString+DTCoreText.m in Sources */ = {isa = PBXBuildFile; fileRef = 978449466D53EA6F5D40FCF0F353DDCA /* NSAttributedString+DTCoreText.m */; }; 15A7ED15DA03DD3B9F26A017D270D1C2 /* DTCSSListStyle.h in Headers */ = {isa = PBXBuildFile; fileRef = 0C24F592C4F38F15DC8C46BE0442B59C /* DTCSSListStyle.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 15F821001C70BC0400B5E85BC445A048 /* RDEPUBRuntimePageCount.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C574CD3AE9D1DCCA02A5270BB1130B6 /* RDEPUBRuntimePageCount.swift */; }; - 164D6A138BDB59AC18E7B37ED730966B /* RDEPUBStyleSheetBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = C7437E451EF2A6AAE750F4983FF9BA5F /* RDEPUBStyleSheetBuilder.swift */; }; - 16C913C28603A60216C6206E13FDD696 /* ZIPFoundation-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = B41F7D27C2336F89BB0185ACB0B19EA9 /* ZIPFoundation-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 18F313579FBADD73801F5169F87A6A30 /* RDEPUBCFIMarkerInjector.swift in Sources */ = {isa = PBXBuildFile; fileRef = 462A73405A3D510CF9A7F4B5D63BF2B1 /* RDEPUBCFIMarkerInjector.swift */; }; + 166B717008CCE1407B5319095FB04439 /* RDEPUBReaderToolView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DF346DB5BE7AF7245DCDDACEFDC59732 /* RDEPUBReaderToolView.swift */; }; + 16B7824735E1261E1F14697461BAEF56 /* Archive.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3E162E0261A5B0850158D3403191E62 /* Archive.swift */; }; + 188C43C05E6BB8EB5DD88514568913DF /* RDReaderView+ContentAccess.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0D170B1455CB3C94EFC34D7B67EDC001 /* RDReaderView+ContentAccess.swift */; }; + 18D8C814B264B9DA4BC897F587005B3E /* RDReaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FE1D4A863768FC78F6B76B6A181267C /* RDReaderView.swift */; }; 191824B2B1E1B0A7DD3B6298100B4B8A /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DE4821B98DDE6C71411EC139EC6D2762 /* CoreGraphics.framework */; }; + 191C07ED00D17BBF103144D016F5D907 /* RDEPUBPageLayoutSnapshot.swift in Sources */ = {isa = PBXBuildFile; fileRef = D6901981E3F4F05F9FAC5ECE00D8983E /* RDEPUBPageLayoutSnapshot.swift */; }; + 191F106462110C3B72DC586D721BEB57 /* NSDictionary+DTError.m in Sources */ = {isa = PBXBuildFile; fileRef = 45A67761829BBB3974CE24FE50E459EA /* NSDictionary+DTError.m */; }; + 194722F12D32D0016CD564ACD01C0710 /* RDEPUBJavaScriptBridge.swift in Sources */ = {isa = PBXBuildFile; fileRef = A191A2F7DD62299E8945911DC282FFA0 /* RDEPUBJavaScriptBridge.swift */; }; 19649ED312D92A6F5D2D6AF4E540CE75 /* DTHorizontalRuleHTMLElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 89268DC8F1FBDE4F3167647B6A4F9216 /* DTHorizontalRuleHTMLElement.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1AB9937A5882EC596522387625E02C72 /* RDEPUBChapterCacheKey.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05B6FB8AE3D884ED289049A7E125D668 /* RDEPUBChapterCacheKey.swift */; }; - 1B2F48EC9DE304484E8DD123EC028E9D /* RDReaderView+PageCurl.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB30DFD1013A322C32A3848B1D6602DA /* RDReaderView+PageCurl.swift */; }; - 1B7C6AEE9BE9547FDA5301683625CC1D /* RDReaderView+CollectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A957A416473B3393454FF640ACD97E8 /* RDReaderView+CollectionView.swift */; }; - 1B9DD076A7AD549EAE75540AE2741CA1 /* DTVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C9575F05D72C239E7E6F079BACDF4C7 /* DTVersion.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1BE1C10942015A97018CA403574B5F97 /* RDEPUBWebView+FixedLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89AB081C4A259D931A865EA5A797CAFF /* RDEPUBWebView+FixedLayout.swift */; }; - 1C0567C88DCAE3D057F1F75D7AEDFC5F /* RDReaderView-RDReaderViewAssets in Resources */ = {isa = PBXBuildFile; fileRef = 83410CC9CF2ABE63B90A92F2F988BF65 /* RDReaderView-RDReaderViewAssets */; }; - 1C2E78B721E91C8CA0427004A6B5CADF /* RDURLReaderController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D70402AAC82BB390480E18E45DCF11A /* RDURLReaderController.swift */; }; + 1BC970E8467ECAEB1D53445CC11855A2 /* RDEPUBReaderController+PublicAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29075A60F0C3B46C5143EC971A0D16D4 /* RDEPUBReaderController+PublicAPI.swift */; }; + 1D25B72B2C7F472F87A66B5754B9F756 /* Data+CompressionDeprecated.swift in Sources */ = {isa = PBXBuildFile; fileRef = E6B46EF6F055A721AF370D705D026E9E /* Data+CompressionDeprecated.swift */; }; 1D460603DCA4A4E5ECFE8FF1F1CACC10 /* DTColorFunctions.m in Sources */ = {isa = PBXBuildFile; fileRef = 4544C4444DCA90E700611D1281969883 /* DTColorFunctions.m */; }; - 1E9D03D8CDA354903C048CBCBF73FB31 /* epub-bridge.js in Resources */ = {isa = PBXBuildFile; fileRef = DBFE242CACE9410D681C091D4BB7237D /* epub-bridge.js */; }; - 1F2EA31B0B1121ED145A815C6116F9B7 /* RDEPUBViewportTypes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 047D134F34D6BDEFF3403095EA60155C /* RDEPUBViewportTypes.swift */; }; - 2136CAFEBA602E1F1D9AE43D901686B6 /* RDEPUBTextPageRenderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 61228D2169407CE48F19589A5145557B /* RDEPUBTextPageRenderView.swift */; }; + 1EA2F5468DD943AC4B44C77EAD623852 /* RDEPUBNotePopupViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45441D548F125483949D77F61F85AFE3 /* RDEPUBNotePopupViewController.swift */; }; + 1F66D9C63831F3D2D103D49FCAF87DB3 /* Entry+ZIP64.swift in Sources */ = {isa = PBXBuildFile; fileRef = 288589D0B52F73505B43C743D9837578 /* Entry+ZIP64.swift */; }; + 20BE095312DB8DB101C02F8983C5A6E1 /* DTWeakSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = E4C5EB3F8F005C65005C101A9DBE488A /* DTWeakSupport.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 211C3A8308C726611C02F30211A23812 /* RDEPUBChapterSummaryDiskCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4E711A4F76E5BF2095569B5A9B3F5BB /* RDEPUBChapterSummaryDiskCache.swift */; }; 2203356EEA94A9172BC7902923E43CBE /* DTCoreTextFontCollection.h in Headers */ = {isa = PBXBuildFile; fileRef = 25DDD76CA572F0C7AB5A8178CF80169D /* DTCoreTextFontCollection.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 221B98812070AB1112E255528B64EDBA /* Archive+ZIP64.swift in Sources */ = {isa = PBXBuildFile; fileRef = D18519BCA8FAA9B01A704A0F0B9FFC78 /* Archive+ZIP64.swift */; }; - 23E20AD6C625950FDEE2B4C5966C0405 /* DTVersion.m in Sources */ = {isa = PBXBuildFile; fileRef = CCC633BF76C79E0B4A6750337D5DCDB8 /* DTVersion.m */; }; + 224A7654E294D21374C015DB3050A57B /* DTTiledLayerWithoutFade.h in Headers */ = {isa = PBXBuildFile; fileRef = 0764D155F69503AACFA7AD976825E986 /* DTTiledLayerWithoutFade.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 22D04776C5F0F8CB8DDAC334EAA4FCF3 /* RDEPUBReaderPersistence.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE90A6C0DA3B5094237AACF4D06C944A /* RDEPUBReaderPersistence.swift */; }; + 240BD2C5D299C399725B5F227F313D46 /* RDEPUBReaderDependencies.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8811A5F210087839AA7746D9D4CFEB23 /* RDEPUBReaderDependencies.swift */; }; 24395BEB3C360D9DA5180BFB955B04A0 /* DTAttributedLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = 3EFAE8DFDDEA1E6047289C86D66381C0 /* DTAttributedLabel.m */; }; + 244078AD98E31B83FD032D370F549ED8 /* Archive+Writing.swift in Sources */ = {isa = PBXBuildFile; fileRef = B0218A7B243387C79E099CA947CF243D /* Archive+Writing.swift */; }; 2445709667CB3820E51CD4AA915E6943 /* DTHTMLParserTextNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 558FCD3F7E481B782EBFA127486ED15D /* DTHTMLParserTextNode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 24B8A2876EFBF98BE592BA30F243E027 /* RDEPUBCFIPath.swift in Sources */ = {isa = PBXBuildFile; fileRef = 66BF9E68AC68E641A2F40FB7DE03BA5B /* RDEPUBCFIPath.swift */; }; - 24C5169AB172176FCBF41CD84724782C /* RDEPUBPageResolver.swift in Sources */ = {isa = PBXBuildFile; fileRef = D7F60831A79D296EEABAD2AEB8A8C774 /* RDEPUBPageResolver.swift */; }; + 247EA0EE361F6CB4BA1EE9CB7FD17E4E /* epub-bridge.js in Resources */ = {isa = PBXBuildFile; fileRef = 091E53DC8215AED45D88A2ABA24A2140 /* epub-bridge.js */; }; 24C5B52FD2AA9C49731DC6859ABA7CDE /* NSDictionary+DTCoreText.m in Sources */ = {isa = PBXBuildFile; fileRef = 78887827FF15DE20865DF3A00660993B /* NSDictionary+DTCoreText.m */; }; - 26073F7564244C7DDBD20B7A99849F21 /* RDEPUBRuntimeChapter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2A3E72DC0C036C0F8808A44B73C4A5EA /* RDEPUBRuntimeChapter.swift */; }; - 262232E65FD8CA26C37C33D8B1FB9B3F /* NSString+DTPaths.m in Sources */ = {isa = PBXBuildFile; fileRef = D30DBDF1EDB20CF83690AC6619AA0C48 /* NSString+DTPaths.m */; }; + 24E9A646A1B686FD9C6F696E203C19C8 /* FileManager+ZIPDeprecated.swift in Sources */ = {isa = PBXBuildFile; fileRef = F49FC82A04EE9B3B49CBA6CB88ACBC67 /* FileManager+ZIPDeprecated.swift */; }; + 26EEB00355253DED239D675F0DA12E46 /* RDEPUBTextRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B4081F4EC77470F1257F11DB2A4B55D /* RDEPUBTextRenderer.swift */; }; 270C5C10028F0BC5A62548326CCB379B /* DTColor+Compatibility.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FAAF640165FC1B4B47C546F80D98B1E /* DTColor+Compatibility.m */; }; - 27CAE671400980165BF5E3FD824F08A2 /* DTFoundation-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = FF1C41D226C0957F715EFF3F23893386 /* DTFoundation-dummy.m */; }; - 28030B304C060583055AD4BB94B57E73 /* DTExtendedFileAttributes.h in Headers */ = {isa = PBXBuildFile; fileRef = 2F75437CE9F9324D315E417014797C1D /* DTExtendedFileAttributes.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2925F96E721F741F60C0D2B5AECDBED3 /* RDEPUBReaderSettingsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C16D8899DF97FEA1975D2D134DA77804 /* RDEPUBReaderSettingsViewController.swift */; }; + 275DD4A76FB5411D0063B35878480D1F /* RDEPUBWebViewDebug.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9117DB8611498A875CF9CF11D092BFA5 /* RDEPUBWebViewDebug.swift */; }; + 279D463D1EAD8ABD6654EF919B9D8F06 /* RDEPUBWebView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74CB908492A655C93144CB03E59A2CAB /* RDEPUBWebView.swift */; }; + 28E2212F4B36A12943E74DD92D67A7A8 /* RDEPUBParser+Package.swift in Sources */ = {isa = PBXBuildFile; fileRef = E38BEF27B99CFAA178DE8917D69F11F8 /* RDEPUBParser+Package.swift */; }; + 28F019DEE9E4CE70EEF128BCFDF3AD81 /* RDEPUBWebContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A98D6A8053F65B3872BF49A978E18042 /* RDEPUBWebContentView.swift */; }; 29D9B32DFFC59A157EDEF005DB92A5AC /* DTCoreTextLayoutLine.m in Sources */ = {isa = PBXBuildFile; fileRef = EB850927957E35DB8CE0F109188C99A9 /* DTCoreTextLayoutLine.m */; }; + 2A926090C1E12A6A8CD28E8D06305AF1 /* DTVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C9575F05D72C239E7E6F079BACDF4C7 /* DTVersion.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2AAB6A070A5D84CF783783F2084187EB /* RDEPUBRenderDiagnosticsCollector.swift in Sources */ = {isa = PBXBuildFile; fileRef = B898A07D2E7D8E62F64BD28BAFA3DEFA /* RDEPUBRenderDiagnosticsCollector.swift */; }; 2AAF9361720FC2D8FFCA93B5FAE42019 /* NSMutableString+HTML.m in Sources */ = {isa = PBXBuildFile; fileRef = 126E6ACAC7C0427806B58DA8E10BDD78 /* NSMutableString+HTML.m */; }; - 2B5D0753E9B3BFF6F7C695CAF9916DA3 /* RDEPUBSelectionLoupeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE23D3D8B6CDEC776313C06D5CB44FE2 /* RDEPUBSelectionLoupeView.swift */; }; - 2BDEC97E2DDF4218FDD5DFF1F1DC16F2 /* RDEPUBNotePopupViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = AC145C21118E90789E7954C445DE047E /* RDEPUBNotePopupViewController.swift */; }; - 2CE58BC822323243DA3DB3FD583F7E31 /* FileManager+ZIPDeprecated.swift in Sources */ = {isa = PBXBuildFile; fileRef = F49FC82A04EE9B3B49CBA6CB88ACBC67 /* FileManager+ZIPDeprecated.swift */; }; - 2D1270A235659EAB7D0CDF39B8327963 /* RDEPUBChapterOffsetMap.swift in Sources */ = {isa = PBXBuildFile; fileRef = 15DDB8FAB80CF0B8039A3DCF2D1CE6F5 /* RDEPUBChapterOffsetMap.swift */; }; - 2DF9FD4220363B628D1C492D280B21F7 /* RDEPUBTextIndexTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68CF28E1B8594F100BEAC89F7B9CA20F /* RDEPUBTextIndexTable.swift */; }; - 2FD40BB5079CB1F7FDED414B9F0CD770 /* RDEPUBReaderHighlightsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3545BDB1B440A560114071D125EA94C7 /* RDEPUBReaderHighlightsViewController.swift */; }; + 2AD11C72A693A0F3F851ED95D52588FC /* RDEPUBCFIError.swift in Sources */ = {isa = PBXBuildFile; fileRef = CED923CC25493B9CA28F24D209A33540 /* RDEPUBCFIError.swift */; }; + 2AF7BC9CAE7E399AF1AD18F6C24CF447 /* RDEPUBChapterOffsetMap.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFBE38B3A4D9E60E2B1683A475513E46 /* RDEPUBChapterOffsetMap.swift */; }; + 2B008846F9C2624D2A913AE6ED869A2B /* RDEPUBReaderHighlightsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5E5956AA678A9521257D99891E823DE2 /* RDEPUBReaderHighlightsViewController.swift */; }; + 2B2EEB3514D2D3BF37F8BCA6CC781B4D /* RDEPUBParser+ReadingProfile.swift in Sources */ = {isa = PBXBuildFile; fileRef = 58C72D7DF4220C0907CE8795E8900E79 /* RDEPUBParser+ReadingProfile.swift */; }; + 2C5CD798B8403E020FEDADEBC8D5AAE9 /* RDEPUBReaderSearchCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2C690372BDD5CA6E2A01A295EDE7C24 /* RDEPUBReaderSearchCoordinator.swift */; }; + 2E65C9632095C9EA0FA98EF1F5B21C27 /* RDEPUBReaderChromeCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = E3FEF8716C99974FB6997BFBF339FD91 /* RDEPUBReaderChromeCoordinator.swift */; }; + 2F4CAA81001F11E515585DA5F50DC1CD /* wxread-replace.css in Resources */ = {isa = PBXBuildFile; fileRef = F81B70DF51F9CD64A7DC5AAF3941F72C /* wxread-replace.css */; }; 2FD7360250C2255A80583D4CF518FBFA /* DTTextAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = 4944FE0BE3205F2EC91A6A0550D30B75 /* DTTextAttachment.m */; }; - 3034A9A7C9993A9ACEAE079DB7C159E4 /* RDEPUBChapterData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7C60AB9DEFB015F6E3A40DECE78AC69B /* RDEPUBChapterData.swift */; }; - 303DAA818CDDA98AF92E4FBF2A732B8A /* RDEPUBTextBookBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5EC2AEE3E653B0E8731C706FF3768F46 /* RDEPUBTextBookBuilder.swift */; }; 30C01FE491C26314F776AD8B2AF136FA /* NSAttributedStringRunDelegates.m in Sources */ = {isa = PBXBuildFile; fileRef = C69C7A531B5E021499D8FBF1DBE0E3BB /* NSAttributedStringRunDelegates.m */; }; - 30D40C2BD0CA2DB6C95A66EB01535DA7 /* RDEPUBSemanticMarkerInjector.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0CF3A3E5A1F6B321F72FD2FF3C0AC1E1 /* RDEPUBSemanticMarkerInjector.swift */; }; + 312374CF0C9CBCDBEFFB71B6AAD7386B /* RDEPUBCFIPath.swift in Sources */ = {isa = PBXBuildFile; fileRef = 129154729E86D56457FE6DC7DEEA55B6 /* RDEPUBCFIPath.swift */; }; + 3134ACF38EC778DF668C6DDA8E4473C2 /* RDEPUBChapterLoader.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF8CFF30D6E79EDA9ADA4C8B8B5F52B2 /* RDEPUBChapterLoader.swift */; }; 31B805C50E0E187E6242B0C878C4D30D /* DTCoreTextMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = C495C74844982FAA1B846A2A89023D12 /* DTCoreTextMacros.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 32003AEED9194998E4CE19D8655A1CA9 /* RDEPUBTextPageDecorationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51282F5AE6E4F8FCD61A8B05638937D2 /* RDEPUBTextPageDecorationView.swift */; }; - 334A13941CD393644146CF756B266584 /* RDEPUBTextSelectionController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94AC74FD0844C7054C87B2A9D27D847D /* RDEPUBTextSelectionController.swift */; }; + 32844568EDF13978B21D3A12652DD1E9 /* NSString+DTFormatNumbers.m in Sources */ = {isa = PBXBuildFile; fileRef = C5005A9E8F746647585CCAB26853E922 /* NSString+DTFormatNumbers.m */; }; 343E794F88AA503F5139C2244DC1A2B1 /* DTTextAttachmentHTMLElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8FDAF9E8370366F7FA8524CB0D80B3 /* DTTextAttachmentHTMLElement.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 34539BC8F7E91B2997308C21E0B12120 /* RDEPUBParser+Resources.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD161DA5F1982A4BA70B86D3D27455A3 /* RDEPUBParser+Resources.swift */; }; 35C5BE59CA712CCDF93D6E7010D93883 /* DTAttributedTextContentView.h in Headers */ = {isa = PBXBuildFile; fileRef = E96C0EEB2032D3CC18F4B37A7C34C84C /* DTAttributedTextContentView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 360DDB3135C7FD47D373DB988C539CCB /* RDEPUBImageViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = CAF799848B6E5545BD3003001D3F6518 /* RDEPUBImageViewController.swift */; }; - 36FD94BC47225F46F04D40DD4D97514B /* RDEPUBChapterLoader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8097E74036B5D6E168E9714A580060A8 /* RDEPUBChapterLoader.swift */; }; + 36C22841B8927E609AA29CD05D5132B5 /* DTBase64Coding.h in Headers */ = {isa = PBXBuildFile; fileRef = 519087D9CD0F5E440E6D2C3B1AA1DFA2 /* DTBase64Coding.h */; settings = {ATTRIBUTES = (Public, ); }; }; 372E907DF08263D0E1AF904F1FCD66EB /* DTTextAttachment.h in Headers */ = {isa = PBXBuildFile; fileRef = E853AAB3B09E0662567752431CEF1D33 /* DTTextAttachment.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 373C0713BB83948F70327BA339F4E64B /* NSURL+DTAppLinks.h in Headers */ = {isa = PBXBuildFile; fileRef = A3F7613E99CAA29881A015D0ED969B86 /* NSURL+DTAppLinks.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3799DDD203E5B4ACD6DC478CC0153CF0 /* RDEPUBJumpSession.swift in Sources */ = {isa = PBXBuildFile; fileRef = E744A9171DA8D779C942360378D2EE4F /* RDEPUBJumpSession.swift */; }; - 37DD0E5A1E4470E7DC30934C28EFBC65 /* RDEPUBRenderDiagnosticsCollector.swift in Sources */ = {isa = PBXBuildFile; fileRef = BAE090F5D5825DF3A26C12BB14E21739 /* RDEPUBRenderDiagnosticsCollector.swift */; }; - 37FF1ADF896F2D0BB383972330F86992 /* RDEPUBBackgroundCoverageStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8FE55941A5CBC989B1F8C3E2D5A49AA /* RDEPUBBackgroundCoverageStore.swift */; }; + 382705D8475B9DBFAAD8B20BC386F2CF /* RDEPUBParser+Archive.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F653BA6E911AE149EB7FF7471D9D9BD /* RDEPUBParser+Archive.swift */; }; 389F7C8400F9223C019F2D7825CD2369 /* NSCharacterSet+HTML.m in Sources */ = {isa = PBXBuildFile; fileRef = 2F242FC1357DD90FA4FD67E1DB90A837 /* NSCharacterSet+HTML.m */; }; - 38D45D8BED0B49F0E0FD6667D86805DE /* RDEPUBCFIUtilities.swift in Sources */ = {isa = PBXBuildFile; fileRef = AEB527B9C4921752C6B00B0D032F379D /* RDEPUBCFIUtilities.swift */; }; - 39FDF70808F3A3476068FFE7DB45341C /* NSMutableArray+DTMoving.h in Headers */ = {isa = PBXBuildFile; fileRef = 3046397381A83C2F6BAF344B86AD176E /* NSMutableArray+DTMoving.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3B49170468F853F1664D619454E612F4 /* RDEPUBWebDecorationOverlayView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CEC237752DE21AB8ADA263DE4977AC0F /* RDEPUBWebDecorationOverlayView.swift */; }; - 3BDB9F7C8367124B362836E4A8BF5341 /* default.css in Resources */ = {isa = PBXBuildFile; fileRef = 47DC174612C98B2CFB4E7D158169139E /* default.css */; }; - 3C298E214C6A6859593A68461E673E33 /* NSArray+DTError.h in Headers */ = {isa = PBXBuildFile; fileRef = C7E09A6C247D465CA0EF71B939B2A040 /* NSArray+DTError.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3D54BF064199B24E96A4E00D7A654106 /* RDEPUBChapterWarmupOrchestrator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 270645F585F13D520FFA031C447E19F1 /* RDEPUBChapterWarmupOrchestrator.swift */; }; - 3DA2135F0842C596563E610AC1B162B3 /* RDEPUBReaderController+RuntimeBridge.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F3BEE5F799C47EEACB7E29C611B8201 /* RDEPUBReaderController+RuntimeBridge.swift */; }; + 39EA92DA1B85B808BA7C6B96E9550BFE /* UIImage+DTFoundation.h in Headers */ = {isa = PBXBuildFile; fileRef = 1300CC5794E609DB8FBA6FFF90A09408 /* UIImage+DTFoundation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3A14E77E5539416CB3616992AE1908EE /* UIScreen+DTFoundation.m in Sources */ = {isa = PBXBuildFile; fileRef = AF436E76C893E223A4F0BE86C1276054 /* UIScreen+DTFoundation.m */; }; + 3A23E0FBA148987E6982F243C17FCDB3 /* RDEPUBCFIMarkerInjector.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05ECE185AAFC5A857734DF5495F8E7C2 /* RDEPUBCFIMarkerInjector.swift */; }; + 3A4AE693C64AC6FC51F627954661289C /* RDReaderPagingController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7F40EAB66363D681DA68981B17FB492 /* RDReaderPagingController.swift */; }; + 3A5317D34FDA7B91C27C6CA5BEFFB7B3 /* UIApplication+DTNetworkActivity.m in Sources */ = {isa = PBXBuildFile; fileRef = 730B56BC97DFF2B1E04DD2608055D9E0 /* UIApplication+DTNetworkActivity.m */; }; + 3B192524D86C6ABC91B555608D15C668 /* RDEPUBStyleSheetBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82BD20A4273D9C421228620048787AD0 /* RDEPUBStyleSheetBuilder.swift */; }; + 3BEE80559815F3BCC244579816B11BAE /* RDEPUBCFIUtilities.swift in Sources */ = {isa = PBXBuildFile; fileRef = BE8A25FFCA0AD1D9C167CCEE28D2378A /* RDEPUBCFIUtilities.swift */; }; + 3CCCB46BEB98DC30A241DB039C09EF4A /* epub-fixed-layout.html in Resources */ = {isa = PBXBuildFile; fileRef = 5E958924060294CE9417399BB02AB344 /* epub-fixed-layout.html */; }; 3DC8F9474FC6A0BB7E81A703CE958966 /* NSAttributedString+DTDebug.h in Headers */ = {isa = PBXBuildFile; fileRef = A8A086525BF509F4581693115438B82B /* NSAttributedString+DTDebug.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3F4489815030D85B098664869FD06D00 /* RDEPUBPageMapReconciliationCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = C70E0378F7CBD5A6DA253CC326036A9B /* RDEPUBPageMapReconciliationCoordinator.swift */; }; - 416916BBDD8A2F9D3FB0E05F07B6B9EF /* RDEPUBPresentationRuntime.swift in Sources */ = {isa = PBXBuildFile; fileRef = 44A1AD3BAAAF051B1AB7CE90E0F92BE7 /* RDEPUBPresentationRuntime.swift */; }; - 418BA261DBB5B3CBCEA84B21192BE5EA /* RDEPUBNoteModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = 26E305762ECD5788B045AFC816767444 /* RDEPUBNoteModels.swift */; }; - 4243E07D3DE0A37254A56F24C60139A3 /* RDReaderView+ContentAccess.swift in Sources */ = {isa = PBXBuildFile; fileRef = B9E19C361904199E2E63EDFFBD64A90C /* RDReaderView+ContentAccess.swift */; }; - 43DE22E881166971EA01518084D03267 /* NSString+DTUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = F3E93C4AC73A09DE1EAE805B0ADE3306 /* NSString+DTUtilities.m */; }; - 4419BDA1F006E749CA40A99C1E6CEDFF /* RDEPUBReaderTheme.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34595E922A09667901C926A8EBBC5E1A /* RDEPUBReaderTheme.swift */; }; - 4475F0D70E29629D04CB64C82FA5CEBF /* DTExtendedFileAttributes.m in Sources */ = {isa = PBXBuildFile; fileRef = 56E8939081946D090FD77A04F879754C /* DTExtendedFileAttributes.m */; }; + 3EF196811F910116B9EBE129278C219E /* RDEPUBDTCoreTextRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E160FF00EF4B6DB318FEDCD72A026F3 /* RDEPUBDTCoreTextRenderer.swift */; }; + 400C60DBDB9C174EAEF5D5D6C5E3497E /* ZIPFoundation-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = E9D8AB18960B56A997408E3235751624 /* ZIPFoundation-dummy.m */; }; + 4037C1C90ECAA2029911262DA5ACF321 /* Archive+Deprecated.swift in Sources */ = {isa = PBXBuildFile; fileRef = F3C9CA544EBF55130625F6C3AD2ABFB4 /* Archive+Deprecated.swift */; }; + 40DD9B73CA10C5AE995E85263A325144 /* RDEPUBReaderEnvironment.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3F6776D2868DE1A8CAC80752CB023567 /* RDEPUBReaderEnvironment.swift */; }; + 40FD1F3E37657243BDB8B6F651B94C26 /* Entry+Serialization.swift in Sources */ = {isa = PBXBuildFile; fileRef = 76C1831768CE55090EADD902B29B6CD1 /* Entry+Serialization.swift */; }; + 415EF47917ED52680E29DAC90B4C110A /* RDReaderSpreadResolver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0786D6430A29C2F90E4832048559BE21 /* RDReaderSpreadResolver.swift */; }; + 416A7BBE1A28D974E1CEA60B22420031 /* RDEPUBTextRendererSupport.swift in Sources */ = {isa = PBXBuildFile; fileRef = B55E6E99C6F879CFD19D3674CE20075C /* RDEPUBTextRendererSupport.swift */; }; + 4373F2A4F3253DD14440D8B9FA7A0AD8 /* NSURL+DTComparing.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F1F7BFB63DE15D627EB8F64829B8AAD /* NSURL+DTComparing.h */; settings = {ATTRIBUTES = (Public, ); }; }; 44B1FBF893C06F314F8C9BD1405897D8 /* DTCoreTextGlyphRun.m in Sources */ = {isa = PBXBuildFile; fileRef = ED049C791713944233EE10C7A111C691 /* DTCoreTextGlyphRun.m */; }; - 44B6E32953282F781A5D5ECC8BF8EC1C /* RDEPUBCFIResolver.swift in Sources */ = {isa = PBXBuildFile; fileRef = E697E9F69226A6A803098BFD3D202842 /* RDEPUBCFIResolver.swift */; }; 45133E47CC5FBCF78BFCD38981BA027F /* DTDictationPlaceholderView.h in Headers */ = {isa = PBXBuildFile; fileRef = 9C12A4A5BB42D0F68DABBD3BDF103BC5 /* DTDictationPlaceholderView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 451E2C056209E939AB8C7F2F6F83B908 /* UIImage+DTFoundation.h in Headers */ = {isa = PBXBuildFile; fileRef = 1300CC5794E609DB8FBA6FFF90A09408 /* UIImage+DTFoundation.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 45AEBF466DD0EA1130E3D64A8FC80612 /* RDEPUBCFIRange.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29701CE248CAAA87698BD90F74F6295B /* RDEPUBCFIRange.swift */; }; - 45B59D63934EC6A1131DC2270A71DA24 /* RDEPUBImageViewerCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA0A09CCD48B28C7C98016F5B7DCB94A /* RDEPUBImageViewerCoordinator.swift */; }; + 4523590069A7CFC158A4A7DE4571B4B9 /* RDEPUBSearchModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA6B5FFFF22D8A36CC593817C0494CD1 /* RDEPUBSearchModels.swift */; }; + 456A968F9CE6080256CE5B65DBF79AAF /* RDEPUBFragmentMarkerInjector.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5E8C914D69561C6C9736FCB3C6698CCC /* RDEPUBFragmentMarkerInjector.swift */; }; + 458D53C484D2470508819D1D41376EE7 /* DTFoundationConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = 0F80AC45FB1DBF50E0E3AA4F26BFA676 /* DTFoundationConstants.m */; }; 45F90B98546FDBA03AB112DFE859A185 /* DTCSSStylesheet.m in Sources */ = {isa = PBXBuildFile; fileRef = B37118B8D16847B0F82E06A5B33898AB /* DTCSSStylesheet.m */; }; - 46AD9CE8A6300737D0DE3750BE12E55D /* RDEPUBReaderDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1DB230C0E9A18C8B1C5581CD2D3D0F2F /* RDEPUBReaderDelegate.swift */; }; - 46D92965B81BEDB4DBD7FA6050448D0A /* Data+CompressionDeprecated.swift in Sources */ = {isa = PBXBuildFile; fileRef = E6B46EF6F055A721AF370D705D026E9E /* Data+CompressionDeprecated.swift */; }; + 4651629ECB6C6EA549A9E880D86B7648 /* UIView+DTFoundation.h in Headers */ = {isa = PBXBuildFile; fileRef = 29DEA4D201BB179BB6E228E9F688CD4C /* UIView+DTFoundation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 465616864A71819A08EE6637652A11D5 /* RDReaderView+ToolView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 648D6AC5A8FA53918EDB418D8A36710E /* RDReaderView+ToolView.swift */; }; + 46AEC0EB14BA522889FD7812A1139CB7 /* NSDictionary+DTError.h in Headers */ = {isa = PBXBuildFile; fileRef = 05838D65DEC339C51AADB17346B7E287 /* NSDictionary+DTError.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 46E5721034DC56B07DAF847D01818D1B /* RDEPUBChapterPageCounter.swift in Sources */ = {isa = PBXBuildFile; fileRef = B62755E9A395FF22E7405C3FE192D5F3 /* RDEPUBChapterPageCounter.swift */; }; 46EF32D586FF590CE2C60C66364B9357 /* ImageIO.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FEB14A8F8170777DB7CCC3F27C8EA57A /* ImageIO.framework */; }; - 49DBA3BF291BE1AA349C439DE6E74ED7 /* RDEPUBReaderChromeCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01B6F1C44AED0554A533AF8573303A47 /* RDEPUBReaderChromeCoordinator.swift */; }; + 4701EA34789A6B21772EC0B428C8CEF5 /* DTFolderMonitor.m in Sources */ = {isa = PBXBuildFile; fileRef = BEA46E51E3616ECEAF0ACCEA9B8C67EF /* DTFolderMonitor.m */; }; + 476C43CF774C35C590EB31D941DBFC0C /* RDEPUBTextBookModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F34FF3B7E71CCE4E9C73115AA710B1C /* RDEPUBTextBookModels.swift */; }; + 490CDA6344D7BD1DA6B7D38EA5CCD199 /* RDEPUBReaderBottomToolView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A88F1371931B82C966232F059409D412 /* RDEPUBReaderBottomToolView.swift */; }; + 49B5370942C4D7AC9B1E1EF77AA3B5DF /* RDEPUBImageViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 254C03130C9163149B80FEBC8128119F /* RDEPUBImageViewController.swift */; }; + 4A0183DE2E5E4464957883E97CB91EC7 /* RDEPUBPreferences.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52E599D70519E92FCD9A508E1C821637 /* RDEPUBPreferences.swift */; }; 4A13B4E5EA8616A8F09D90BC6EAEEA64 /* CTLineUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 4FF4A2A7F2C7CFB5DD757BE1A6E59C7B /* CTLineUtils.m */; }; - 4B01D192E9BA7876FE04643D9B59BB7D /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B50104DE2E35D820ECA22CDB3E6F96EA /* Foundation.framework */; }; - 4B3799CED66DE4CF5358AAC35D27F212 /* RDEPUBSearchModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = 736492CB9D329AD8CB8401330973FBCD /* RDEPUBSearchModels.swift */; }; - 4BC10B95FF401CE4B81EB29E08A14C85 /* RDEPUBWebView+Search.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D53D1FE67166E6B0675584BCB425A05 /* RDEPUBWebView+Search.swift */; }; - 4BEF7F1D48D5407BA2CCADEDBD0933BA /* Archive+Reading.swift in Sources */ = {isa = PBXBuildFile; fileRef = E865600EE9117A9153716299FFA7912D /* Archive+Reading.swift */; }; - 4C2062F59D9CE0D280C035D83667CFAE /* NSString+DTURLEncoding.m in Sources */ = {isa = PBXBuildFile; fileRef = 131C1D8C96DF2D44A2D4F50C5AEFFF11 /* NSString+DTURLEncoding.m */; }; + 4B308D78F9D167B58BDD5695045F7756 /* RDEPUBReaderUIState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 56158B68400B5C946109EDFD7555A8A7 /* RDEPUBReaderUIState.swift */; }; + 4B58554A575684981F3BB1A6F90E4124 /* DTHTMLParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 71BBE6384315D7F00F5ECFFF67A85AF9 /* DTHTMLParser.m */; }; + 4C317DFF96CA0063EF6CF687527431CC /* RDEPUBPublication.swift in Sources */ = {isa = PBXBuildFile; fileRef = A30017EA232AF10EF5AEF1A20891306E /* RDEPUBPublication.swift */; }; + 4CB9152E2F9F37608FF3BED957CEAA10 /* RDEPUBCFITextAssertion.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3170B05B50679D6D7029E693A4A6024 /* RDEPUBCFITextAssertion.swift */; }; 4DA6EC46F8968265B96C6D7B2260C4E5 /* DTTextBlock.m in Sources */ = {isa = PBXBuildFile; fileRef = C508E49F6BF9F50B05918C230B033069 /* DTTextBlock.m */; }; 4E4939F6592B06D2CA764DCACFB47871 /* NSString+Paragraphs.h in Headers */ = {isa = PBXBuildFile; fileRef = 0B8321AB80CFE0B94537AEA63E9A79F5 /* NSString+Paragraphs.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4E8F3FE99F2F7CE831ACB4244ADF381C /* RDEPUBReaderController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 210601B1509A4301617C853C5022AA99 /* RDEPUBReaderController.swift */; }; - 4EF862E8A01AC4423C7A684BADFEECBB /* RDPlainTextBookBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = D30190E9913BB7FF775D8602E753BA47 /* RDPlainTextBookBuilder.swift */; }; - 4F0E298474D056888D4B8337193755AE /* DTActivityTitleView.h in Headers */ = {isa = PBXBuildFile; fileRef = AF1516035C269F7A41EE064AAB14D562 /* DTActivityTitleView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4F363B073676BB21128E5BAF85D05EE8 /* Date+ZIP.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18D23D8D10719754D93032F66EB98536 /* Date+ZIP.swift */; }; + 4E90223029F18880D771B8A854B1D710 /* NSString+DTUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C80941DE172AF972D2247659684D93A /* NSString+DTUtilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; 4F50C703427747B88405080B221349A1 /* DTLinkButton.h in Headers */ = {isa = PBXBuildFile; fileRef = B12CE4962CDC324FB47FB92D6706D149 /* DTLinkButton.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4FDA4ACF3A9676F39F239791127E4651 /* DTTiledLayerWithoutFade.m in Sources */ = {isa = PBXBuildFile; fileRef = 23006DBAC610AEB0A4B3EAFEA4FB0567 /* DTTiledLayerWithoutFade.m */; }; - 501F8AD8F97F43A5D7008BE031C7934A /* wxread-replace.css in Resources */ = {isa = PBXBuildFile; fileRef = 3CD5E5ED855BD807441CC55E7046DC18 /* wxread-replace.css */; }; 5065D99E1588E8CC60677E74916A5C03 /* DTAttributedTextCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 814315319ED50AF916C3C8A68C0A47A0 /* DTAttributedTextCell.m */; }; + 508227AD9DDEBDCC5811DF5DFE4B72B8 /* RDEPUBReaderController+LocationResolution.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5DE569B9F47EAF5135750BCF2E934C0F /* RDEPUBReaderController+LocationResolution.swift */; }; 51A1B5800D23C355B1712E8D1103780C /* DTTextBlock.h in Headers */ = {isa = PBXBuildFile; fileRef = EA2BF1D7535B036E1356E8DF42A04954 /* DTTextBlock.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 52465038F8651BB09BC9F445EFE64FD3 /* RDEPUBCFITextAssertion.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9998A80A1B633EB1C2C1EBB107866B40 /* RDEPUBCFITextAssertion.swift */; }; - 527BD4D564B72BED5FF27088B1078D9D /* RDEPUBWebView+Reflowable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 10FC9FC44C8A038A286BF6DCD1891DA0 /* RDEPUBWebView+Reflowable.swift */; }; 528DBAC7FCEFC7D6575C1F6CB4399AEA /* DTStylesheetHTMLElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A88AA04D7B29A217B432C19AC48AB6B /* DTStylesheetHTMLElement.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 53D8722E9B869009D27AC6E0ACBAB6BA /* Archive+BackingConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 765A94769106D14615FFB30EE1BD5E65 /* Archive+BackingConfiguration.swift */; }; - 54AE224FF7E59A32A75151324762B076 /* RDEPUBChapterTailNormalizer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 03574AB570F840F4A14B53F85023DBAA /* RDEPUBChapterTailNormalizer.swift */; }; + 52BEFEA715FD0B9BC31F2F7C44DD188A /* RDEPUBDarkImageAdjuster.swift in Sources */ = {isa = PBXBuildFile; fileRef = F0580E9407862B9D452289BBF1C4CA01 /* RDEPUBDarkImageAdjuster.swift */; }; + 53D4340F38B1EAF75FD1534AE908A11E /* RDEPUBRuntimePageCount.swift in Sources */ = {isa = PBXBuildFile; fileRef = F2FB12B4D5D80C72658331C61991766C /* RDEPUBRuntimePageCount.swift */; }; + 54FC0EC0F7CE25F7D1E846C8CFFEA363 /* DTCustomColoredAccessory.h in Headers */ = {isa = PBXBuildFile; fileRef = BAE45673EE2875DB23FA7BDD61FDE1EF /* DTCustomColoredAccessory.h */; settings = {ATTRIBUTES = (Public, ); }; }; 5582735073EBB9F5078E6E8AEEFB646A /* DTCoreTextLayoutLine.h in Headers */ = {isa = PBXBuildFile; fileRef = 37327141DC73DE2D5742BE6F989094CE /* DTCoreTextLayoutLine.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 568A0B72299CDAF86374403711F57669 /* RDEPUBReaderController+ContentDelegates.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA68A96FA91F03F747A3D85A2DB0B45E /* RDEPUBReaderController+ContentDelegates.swift */; }; + 56EE6779284C6A7868A1AF9F8462EB79 /* RDEPUBParser+TOC.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3A0D1E77F50E5274CCC99EEA427C15E /* RDEPUBParser+TOC.swift */; }; 57D5228C8A85628772D4D78E7FBEAF3C /* DTDictationPlaceholderTextAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = 8DA0F94C0870C1F0DFADE5E9045E5E6E /* DTDictationPlaceholderTextAttachment.m */; }; - 58A1F591244259E81CAEAD8AA6AEDD32 /* NSURL+DTComparing.m in Sources */ = {isa = PBXBuildFile; fileRef = 467CC59CEC3B3BC7ACDCA776FDCBDC1D /* NSURL+DTComparing.m */; }; - 5935C35EB75A5FD5C0B8D288B7ED2418 /* RDEPUBReaderServices.swift in Sources */ = {isa = PBXBuildFile; fileRef = F98CD641441793095A6228F264D13025 /* RDEPUBReaderServices.swift */; }; - 595F78047873532A4208F40405262684 /* DTAnimatedGIF.m in Sources */ = {isa = PBXBuildFile; fileRef = A3DE08AC23FE36A6C3F33A04700FDE57 /* DTAnimatedGIF.m */; }; + 5856C4A656C1EAD5559B96C283308910 /* RDEPUBSelectionOverlayView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DEE95CBD7B492C5453D2FFA983C5CC02 /* RDEPUBSelectionOverlayView.swift */; }; + 58571B37B421D30C46E60547A3F572C4 /* RDEPUBPageResolver.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC7BE59730389C1EC7BF65734D0D6776 /* RDEPUBPageResolver.swift */; }; + 58ACB3DC0AC4EA63B6DC65585DC75509 /* DTBase64Coding.m in Sources */ = {isa = PBXBuildFile; fileRef = E5D4D6E12779C54F17AE98A1E6C9B699 /* DTBase64Coding.m */; }; + 591C7326E09322733574F5D607BDDFF7 /* FileManager+ZIP.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6C3F8DF48C6EB28BFD05F5BB49793DDA /* FileManager+ZIP.swift */; }; + 5966F7524564265D493279F72B6BEF10 /* DTLog.m in Sources */ = {isa = PBXBuildFile; fileRef = 199E2ECC77BDAC03F644C20040F042D4 /* DTLog.m */; }; + 5967C134F418B959CE1967A3CC15A3AF /* RDEPUBBuildDiagnosticsReporter.swift in Sources */ = {isa = PBXBuildFile; fileRef = CD0C3C872488B6341E22BF47B6F9BBD6 /* RDEPUBBuildDiagnosticsReporter.swift */; }; 597DE4CDF5C674E269F03F6AA0AFFCC1 /* NSAttributedString+HTML.m in Sources */ = {isa = PBXBuildFile; fileRef = 71EE0B4D4D1B3D0A55E903E7E0CA44E7 /* NSAttributedString+HTML.m */; }; - 597FB44F34F00977BA886DDAF246D33F /* RDEPUBAnnotationModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E66D8D0604A6C89AA9DD222FE61F0E2 /* RDEPUBAnnotationModels.swift */; }; - 5A041AAE66088AD15755C6C5BA152E2F /* RDReaderFlowLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7941BAA5BADB40ACC8FBC080977F6B51 /* RDReaderFlowLayout.swift */; }; - 5ABBCC3416B1FCBFAB56261F283693CA /* WeReadApi.js in Resources */ = {isa = PBXBuildFile; fileRef = A511C95B0250D33F33026861C48BF655 /* WeReadApi.js */; }; - 5AE0C11BD819CF2A3C11CFC802DE0C06 /* URL+ZIP.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6430501430329643C8280B3985C48711 /* URL+ZIP.swift */; }; - 5C17AB24452486F4AB7BA2DE5EFFB961 /* RDEPUBAssetRepository.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98A9D1AD928E701623173D31FC8B35F7 /* RDEPUBAssetRepository.swift */; }; - 5CE8BD1A9C7FE28802CD9409E4282D5F /* RDEPUBReaderToolView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08EB5C6310B7F9040732D6E905650432 /* RDEPUBReaderToolView.swift */; }; + 59A7C28A73DE8E3754AF97C359EE2460 /* RDEPUBChapterData.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1AF2749008FE67A3281B83EE327E41D /* RDEPUBChapterData.swift */; }; + 5A0FD2132C522ED3FFB86E966FE288F9 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B50104DE2E35D820ECA22CDB3E6F96EA /* Foundation.framework */; }; + 5A3D08398FCDB7FAD5A8210F31AA533C /* cssInjector.js in Resources */ = {isa = PBXBuildFile; fileRef = ECBE8305E343FF00B5DDF4F8F9D18623 /* cssInjector.js */; }; + 5BE96578F3A236ED2544FB20A4996165 /* NSString+DTPaths.h in Headers */ = {isa = PBXBuildFile; fileRef = B76B1E836C34CB755AEE1FBF7DC26BDD /* NSString+DTPaths.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5BF5ECEFD1384679A310688AFC7160C9 /* RDEPUBReaderTopToolView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 982FBB7B62F54B7806EAD1C178B6A083 /* RDEPUBReaderTopToolView.swift */; }; + 5C70C7532D7C43C97806677F40FB2336 /* RDEPUBMetadataParseCancellationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 842DE3099F95A155AF00FCEC57A65821 /* RDEPUBMetadataParseCancellationController.swift */; }; 5D03A5B9DC067875CFEC9D4EA7B059E8 /* DTCoreTextLayoutFrameAccessibilityElementGenerator.h in Headers */ = {isa = PBXBuildFile; fileRef = 671C2429406FDB36B677F4B6EC85B52F /* DTCoreTextLayoutFrameAccessibilityElementGenerator.h */; settings = {ATTRIBUTES = (Public, ); }; }; 5D8D65121E87E419D8D2F23F8AF43673 /* DTColor+Compatibility.h in Headers */ = {isa = PBXBuildFile; fileRef = 68D81DF1BB2A14F9C186F75BBA5CF50D /* DTColor+Compatibility.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5E6091E20FD3C08AC4BB3DE2C3A299DF /* RDEPUBFragmentMarkerInjector.swift in Sources */ = {isa = PBXBuildFile; fileRef = 91C1D68B23A3D8DAF1C0934F17A09917 /* RDEPUBFragmentMarkerInjector.swift */; }; - 5E7ED02087D9553656C56D64CF23291D /* RDEPUBPageLayoutSnapshot.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32B07FB6279468CAC8C8496B97B2B543 /* RDEPUBPageLayoutSnapshot.swift */; }; - 5E7F1CB5132C8FB02EA6B1DD947F914D /* wxread-replace-latin.css in Resources */ = {isa = PBXBuildFile; fileRef = E7E49A0BE37FE8EEBBC94E752B95C59C /* wxread-replace-latin.css */; }; 5E90EBD876ED4E50AB890FB56C4BFA57 /* DTHTMLParserNode.h in Headers */ = {isa = PBXBuildFile; fileRef = D28A3E79D83EA4B807E2D3A5EE086B8B /* DTHTMLParserNode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5EDC7E764198A5BD8E4F93662E72B40C /* RDEPUBParser+ReadingProfile.swift in Sources */ = {isa = PBXBuildFile; fileRef = 15C005A2A5E6A8263DE1F99AC5D372C0 /* RDEPUBParser+ReadingProfile.swift */; }; - 5F9F2080B7F3468C9E9BC2EC43A036D3 /* RDEPUBPaginationCacheCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 817CF1C7E3DF9EA0272F660987E896AA /* RDEPUBPaginationCacheCoordinator.swift */; }; - 5FAE9F6E6EE4A8A8C8547059FC5EC13A /* RDEPUBReaderController+AttachmentTooltip.swift in Sources */ = {isa = PBXBuildFile; fileRef = B39E73DF030C0B322474D5986AD2D2FE /* RDEPUBReaderController+AttachmentTooltip.swift */; }; + 5EE6776180341CF72714528684FA7254 /* ZIPFoundation-ZIPFoundation_Privacy in Resources */ = {isa = PBXBuildFile; fileRef = CA4A114775B98CEA4A566C18123B145F /* ZIPFoundation-ZIPFoundation_Privacy */; }; 60532A2E06CCFF814933D2FAE6793AE9 /* DTCoreTextLayouter.h in Headers */ = {isa = PBXBuildFile; fileRef = 72225FB74594FCF18DA8064E7DB3947E /* DTCoreTextLayouter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6090E5E9EDF9213F6AAE38EFAD608B89 /* RDEPUBReaderSearchCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = C6205EFACA691F3EC37951F5A30B9590 /* RDEPUBReaderSearchCoordinator.swift */; }; - 60AE4530CADCF5D851EFB088FD1CC32B /* Archive+Helpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 55B9309F0BDDDE2C3EE13C97BF2C0F1E /* Archive+Helpers.swift */; }; - 6115A9FA0A489CE1476B2F524028E0E5 /* RDEPUBCFIParser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 184CDDD009D8F4384A9E02F953B6D8B6 /* RDEPUBCFIParser.swift */; }; - 61563CE4742FACF31146E47D46A558D0 /* RDEPUBPreferences.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E0D068226C4B5E614B90482A3B4AFC0 /* RDEPUBPreferences.swift */; }; + 606B416E975EF1F02EFC8945656B7C28 /* Archive+BackingConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 765A94769106D14615FFB30EE1BD5E65 /* Archive+BackingConfiguration.swift */; }; 61BE3607EABD2657BC71AF8ACB1C25D4 /* DTHTMLAttributedStringBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 4E1066A8FE63AD2C818E26DDCE62DF58 /* DTHTMLAttributedStringBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6300355A098AC58B01C10D28C5BBFB41 /* RDEPUBCFI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 24B4BDE6AF43475513D28D232AB7D0B9 /* RDEPUBCFI.swift */; }; - 635EA3B1D45012F199D6ED4AB783D5E8 /* UIView+DTFoundation.m in Sources */ = {isa = PBXBuildFile; fileRef = 67DA49B61A249C2B8241D8FE166608C9 /* UIView+DTFoundation.m */; }; - 6387DFB2BFA51419C2B108337303C3BF /* RDEPUBWebView+Configuration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37AD2B1FCE8C4B62FBC8B751F17EC474 /* RDEPUBWebView+Configuration.swift */; }; - 63BF2C30A8B633ED2DFB5C9AA4DF5DD0 /* DTPieProgressIndicator.m in Sources */ = {isa = PBXBuildFile; fileRef = 8BA617294E6371DD7FAC32B61E0873F2 /* DTPieProgressIndicator.m */; }; - 63C748495E15AFA55CFECE60EA39DE3A /* RDReaderTapRegionHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = F850938C9F348E6ED5216809EE43689D /* RDReaderTapRegionHandler.swift */; }; - 640909B07D40D27700CCAE2ACD0ACF4E /* RDEPUBCFISerializer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EADA99F8B48CDCB82A6D2D3507EC32C /* RDEPUBCFISerializer.swift */; }; - 6423A9D67FD431A53878A2DE0AF72DF9 /* DTBlockFunctions.h in Headers */ = {isa = PBXBuildFile; fileRef = 35417EC94F2D58CB80C991F875CE15C2 /* DTBlockFunctions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 64B9E0A8AD351336BCFAEEE49A596BC5 /* Data+Compression.swift in Sources */ = {isa = PBXBuildFile; fileRef = 22B69C9433F2FBE5CE8409BD4266DFE8 /* Data+Compression.swift */; }; + 631A75A5E333844E48AB0655E65E8619 /* RDEPUBReaderAssemblyCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7031B493810918D5B50450340CA6652B /* RDEPUBReaderAssemblyCoordinator.swift */; }; + 631E5B681577106CA3DA1EE532B50D75 /* RDEPUBCFICompatibility.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA33898232E2ED58D3A5B60A8F56BAC6 /* RDEPUBCFICompatibility.swift */; }; + 63DE1ECD08743BC4A556ACA90FDB4BAD /* RDEPUBTypesettingPipeline.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3424A6DFBC2AC519C7C599F18DCDC89D /* RDEPUBTypesettingPipeline.swift */; }; + 640349287B1EC3A07C397EEE5A4510C7 /* RDEPUBFontFallbackResolver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5F9FE9924520900BBDF724D9903C5309 /* RDEPUBFontFallbackResolver.swift */; }; + 65957BA854E8610EA216E8323B136C5B /* NSURL+DTUnshorten.m in Sources */ = {isa = PBXBuildFile; fileRef = 3A6A858B976D032A3C61540AFF19DEE4 /* NSURL+DTUnshorten.m */; }; 6634D568E49F5610242E1454680E5885 /* NSAttributedString+SmallCaps.h in Headers */ = {isa = PBXBuildFile; fileRef = CACF20969583778CAC1BC92BB96F27FD /* NSAttributedString+SmallCaps.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 66ABF5306138D4C39A4B521ECD2B1386 /* RDEPUBPageCountCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEC235E4971E5D0ED37AF923AD247D3C /* RDEPUBPageCountCache.swift */; }; - 66BECA8D265426E7C9B47833EBA79D55 /* RDEPUBSearchEngine.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE83527CFFC7FC1E222F5634198C03CD /* RDEPUBSearchEngine.swift */; }; + 66E707F0227EB649C9693BBA35384DE9 /* RDEPUBBackgroundCoverageStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6F4858380CB626A893FA6803F5574F89 /* RDEPUBBackgroundCoverageStore.swift */; }; 67AE2AC8D9B961D45871077774E11FD3 /* DTObjectTextAttachment.h in Headers */ = {isa = PBXBuildFile; fileRef = 13597E7190F2C08C5906D7D128E43E99 /* DTObjectTextAttachment.h */; settings = {ATTRIBUTES = (Public, ); }; }; 69674FEA70899F07BE6098AAEC849978 /* DTAccessibilityViewProxy.m in Sources */ = {isa = PBXBuildFile; fileRef = 6AC1E707308CDBC9FFC09CECE3117A9A /* DTAccessibilityViewProxy.m */; }; - 69AA93849D36C090BD310B6F0CADD0C5 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 006D002D86B43AA52E0AFD2E18459107 /* PrivacyInfo.xcprivacy */; }; - 69BF25DA82C771108676AB97973A545E /* RDEPUBParser+Package.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CFCD5EFD6EDDC69776A50362DB16409 /* RDEPUBParser+Package.swift */; }; - 6A9D50C84AE349AF8E4D6E27DF651FE2 /* RDEPUBReadingSession.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5FBE83F7B3B8689CC23FD1657E2A270E /* RDEPUBReadingSession.swift */; }; - 6B577F035D0593AA9E0BF092E752E7D9 /* RDEPUBTextContentInteractionCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4FD083436655F07AFCFB5B5492EF0F1 /* RDEPUBTextContentInteractionCoordinator.swift */; }; - 6BA40E6FA6DC4701D8156456EB5CF0ED /* RDEPUBTextAnnotationOverlay.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9EB24D09C2239F4C77E17F54D248B80 /* RDEPUBTextAnnotationOverlay.swift */; }; - 6CD9816C0995369B167186FF189B7575 /* RDEPUBTextBookCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = FCD11C7BF5FACCD5B5A3D2C4991EF047 /* RDEPUBTextBookCache.swift */; }; - 6D0848863B29EC8AF0BCD7D30013C8AA /* RDReaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5E62277B737F95B1DFDBC287DC795CB6 /* RDReaderView.swift */; }; - 6E3160EE1463E3D3C42F6D352278D0C6 /* DTBase64Coding.m in Sources */ = {isa = PBXBuildFile; fileRef = E5D4D6E12779C54F17AE98A1E6C9B699 /* DTBase64Coding.m */; }; + 6B4E7177F034E79B8C3F932183E84011 /* NSData+DTCrypto.h in Headers */ = {isa = PBXBuildFile; fileRef = 94705DADD1F09F4162F7D733318238F4 /* NSData+DTCrypto.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6CAA09C46E273F8880234AA28B07542B /* RDEPUBReaderLoadCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0FF7BBD4C881AD7327290471E9484E1F /* RDEPUBReaderLoadCoordinator.swift */; }; + 6CDF59BFF3F212BD65C009C7080542BE /* DTPieProgressIndicator.h in Headers */ = {isa = PBXBuildFile; fileRef = 173194D38C897D8E38AD8A194E47DB5C /* DTPieProgressIndicator.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6D4144C4D4DF772F31A8362BB63252A8 /* RDEPUBStyleCompatibilityModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5077339D9632D68EDAB64BBEF622E154 /* RDEPUBStyleCompatibilityModels.swift */; }; + 6D7CDF15EC821BD18B9E6FFBDCF8C033 /* RDEPUBReaderConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 66D0B6D4C75424B340D7C9861D7DF6F6 /* RDEPUBReaderConfiguration.swift */; }; + 6DA8B5EB829C2AFB0891E6EF583C6C0E /* NSMutableArray+DTMoving.h in Headers */ = {isa = PBXBuildFile; fileRef = 3046397381A83C2F6BAF344B86AD176E /* NSMutableArray+DTMoving.h */; settings = {ATTRIBUTES = (Public, ); }; }; 6E3D0FDD78ECC20F4B3697ED21D64224 /* MediaPlayer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C2B218B5EAA5831A036BBF7E1EFC1B9 /* MediaPlayer.framework */; }; - 6ED0817E085ECE6F0F3A0C33D3E64125 /* RDEPUBBuildDiagnosticsReporter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67B4EE257C537D6F72ADDBBE7747BBE2 /* RDEPUBBuildDiagnosticsReporter.swift */; }; - 6F50693BC10B3C72DDD1130DDCDB234F /* epub-fixed-layout.html in Resources */ = {isa = PBXBuildFile; fileRef = E510EFB4CE45829A8CAB4E2BE47C0041 /* epub-fixed-layout.html */; }; + 6F9A6FA6D8D87257F9426AF3E118F7E0 /* RDReaderView+CollectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C4682C38E0A66C0E9760FC62C00A327 /* RDReaderView+CollectionView.swift */; }; 6FA0125F16DDEDAD341DB75DEB084F4B /* DTHTMLWriter.m in Sources */ = {isa = PBXBuildFile; fileRef = B23C5F038DAC52B75213C0760C431F2B /* DTHTMLWriter.m */; }; 7027EF8D77D4082C1BB9B80FF61FCADC /* DTCoreTextLayoutFrame+Cursor.h in Headers */ = {isa = PBXBuildFile; fileRef = 214F0FC87DE99D3FCE69D98B357F3FFC /* DTCoreTextLayoutFrame+Cursor.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 709C4BA2B6C35035434CD7A41C050A9A /* RDEPUBReaderRuntime.swift in Sources */ = {isa = PBXBuildFile; fileRef = 692FB048CB12876AA971EF21B3F71A27 /* RDEPUBReaderRuntime.swift */; }; - 70AF1621102FFF12F7DA88DDD8254054 /* RDReaderPagingController.swift in Sources */ = {isa = PBXBuildFile; fileRef = E246B080707A0DA836FC0890AE96D529 /* RDReaderPagingController.swift */; }; - 72E1E0B3B3A46A92E75CA522B9FCB7B6 /* RDEPUBBackgroundTrace.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCB06D5D93327CF4E70EB026DFEFE8BE /* RDEPUBBackgroundTrace.swift */; }; + 71AA63D206360F5BEC6B89C738C192F3 /* RDEPUBReaderLocationCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = A1570DC08749A3866877CAF0A6BD877C /* RDEPUBReaderLocationCoordinator.swift */; }; + 7301973ED8F52DCDC8E16A64066C9158 /* RDEPUBBackgroundPriorityPolicy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1776D2B8346E3DE2D2CFF9AA994D50DF /* RDEPUBBackgroundPriorityPolicy.swift */; }; 730ACB99580C5982DC08D50FC5084D41 /* DTAttributedTextView.h in Headers */ = {isa = PBXBuildFile; fileRef = B4D20A2B33F9F4DD8499FB462DE2731F /* DTAttributedTextView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7398A6AEB47EA308F2E93FE03B1A3D06 /* DTFoundation-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 23588B63FC4026A371F5C683744A664C /* DTFoundation-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 73BB353CA378834928C3946524DF2D12 /* DTLog.h in Headers */ = {isa = PBXBuildFile; fileRef = 207CC0EEB74CECEB43A870FF80560E0F /* DTLog.h */; settings = {ATTRIBUTES = (Public, ); }; }; 7408D293C24C3BD9CBBCBB530B50938B /* Pods-ReadViewDemo-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = AA0811310099A4BCB3D52683B70DB3D1 /* Pods-ReadViewDemo-dummy.m */; }; 7459A1656EDC29D685073B83561B783E /* NSNumber+RomanNumerals.h in Headers */ = {isa = PBXBuildFile; fileRef = 7CFFB65C5D340A4B5C627B3EF02CD127 /* NSNumber+RomanNumerals.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 75F99FA499756ED1A681052EC2445DC6 /* RDEPUBPublication.swift in Sources */ = {isa = PBXBuildFile; fileRef = C81E5EB72407C54EF8CC882A23759916 /* RDEPUBPublication.swift */; }; + 74794205BE245B73D21939B91C6191C6 /* NSString+DTUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = F3E93C4AC73A09DE1EAE805B0ADE3306 /* NSString+DTUtilities.m */; }; + 75D6249689F5C1F38EBF86A5D5C1490D /* RDEPUBTextLayouter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7F8C64CB3F3D0B7D4AA66798C740CB20 /* RDEPUBTextLayouter.swift */; }; + 7721B54B344CC91C75F3508F8A38B094 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B50104DE2E35D820ECA22CDB3E6F96EA /* Foundation.framework */; }; 7821105EF320619993B3BF7FB90C7ADA /* DTCSSStylesheet.h in Headers */ = {isa = PBXBuildFile; fileRef = 796EF27FF6AA4B62367B6BD9CEBD85A8 /* DTCSSStylesheet.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 78AF9AA3502FD29F501DDF8986B67578 /* Archive+MemoryFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFF51E56E09E095C92CB5B9F21384027 /* Archive+MemoryFile.swift */; }; + 78BB61196C1CCF2870544CCCC3D6FCCD /* RDEPUBChapterRuntimeStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0D9C9D60B2B26F9890D35189DEBC7580 /* RDEPUBChapterRuntimeStore.swift */; }; 78D24D82D98D77E744FF73C9040618A8 /* DTHTMLParserNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 5001C74FB9506AEC71E458047698A4AB /* DTHTMLParserNode.m */; }; - 7A2DDB5D730FCA75152369EFCEE390B1 /* RDEPUBTextPositionConverter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77121A149AA3464C8E6A171329293BD2 /* RDEPUBTextPositionConverter.swift */; }; + 790C14D6DF0311FD4053970359D34649 /* RDEPUBReaderController+RenderSupport.swift in Sources */ = {isa = PBXBuildFile; fileRef = CF49CE19D9F09A60F438FF3612F43069 /* RDEPUBReaderController+RenderSupport.swift */; }; + 792ACF8BA7BA68E9534E4B8D095690D6 /* NSData+DTCrypto.m in Sources */ = {isa = PBXBuildFile; fileRef = F63EBF2BF3000B3391F6E693581EA129 /* NSData+DTCrypto.m */; }; + 79CDB0BF339D6E5BF3D168BBED6553FD /* RDEPUBTextPaginationSupport.swift in Sources */ = {isa = PBXBuildFile; fileRef = 78C97EDF23543CE63904C4D8A066A7A1 /* RDEPUBTextPaginationSupport.swift */; }; + 7A23AEADBD4DD223D472D162A54A6789 /* RDEPUBReaderContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2EDB136931B7075E5A4F6BD8E5E2DBE6 /* RDEPUBReaderContext.swift */; }; + 7A34803D14D56A92E9FA400C7305B19B /* wxread-default.css in Resources */ = {isa = PBXBuildFile; fileRef = 0D253DF65322509913DE34899979C30B /* wxread-default.css */; }; + 7A3B9F9A741756370C23FCE449D10FBF /* DTBlockFunctions.h in Headers */ = {isa = PBXBuildFile; fileRef = 35417EC94F2D58CB80C991F875CE15C2 /* DTBlockFunctions.h */; settings = {ATTRIBUTES = (Public, ); }; }; 7A48CDFB40202EFD09A2A9AB0EE0770D /* DTCoreTextFontDescriptor.h in Headers */ = {isa = PBXBuildFile; fileRef = 1EF19AD0EF4889156D46061FB43E0F5D /* DTCoreTextFontDescriptor.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7BF9A741CB88300E294CB5974EC1471D /* NSURL+DTUnshorten.h in Headers */ = {isa = PBXBuildFile; fileRef = ACA6D26B26D2653D6E1C871A482BD6DF /* NSURL+DTUnshorten.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7A748D28C60A0065C777DE834CA1B5A7 /* RDReaderView+PageCurl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2E281F0688B1D356CF1654C6063AE77D /* RDReaderView+PageCurl.swift */; }; 7C05F56B62B15EFF344C5CDE4A52B8FB /* DTHTMLElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 7A4E9E54E556A72BC885CCC08B3791C1 /* DTHTMLElement.m */; }; - 7C34DD458035EC0B9413A83E4C363624 /* RDEPUBMetadataParseCancellationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 720B9BA37AAD0EA225492B8341E5B7A3 /* RDEPUBMetadataParseCancellationController.swift */; }; - 7C4E7BA25D1BCA720B26518D940B86C4 /* DTAnimatedGIF.h in Headers */ = {isa = PBXBuildFile; fileRef = F9D9BEF72311AF9E3239F9B92A9D2842 /* DTAnimatedGIF.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7CA5624AA51A18C916104986509C592C /* RDEPUBTextPerformanceSampler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A19BDED17612309ACF1752937514F77 /* RDEPUBTextPerformanceSampler.swift */; }; - 7D5436BE12850ACBF45A53BB2A6BA466 /* RDEPUBCFIGenerator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02DDA7AD723C7FEB0B80B0C573EAE679 /* RDEPUBCFIGenerator.swift */; }; - 7E5503757330B3AAEDD0BF3A966B9A0E /* RDEPUBParser+Resources.swift in Sources */ = {isa = PBXBuildFile; fileRef = 11246502ABEC1999B60B3FA41B764E7D /* RDEPUBParser+Resources.swift */; }; + 7C2173CC58496721A7DCDCBC31840068 /* Archive+Reading.swift in Sources */ = {isa = PBXBuildFile; fileRef = E865600EE9117A9153716299FFA7912D /* Archive+Reading.swift */; }; + 7C68A32E44AAE4EDBEAE68473BB9EDE7 /* RDEPUBNotePopupCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6C906FDE0E26C697C4D2FB2502F7D798 /* RDEPUBNotePopupCoordinator.swift */; }; + 7C68BB97D96CCA378A99B1AEDF75F2AA /* RDEPUBCFISerializer.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADA1EB57E3C97548261B7AE9E5975272 /* RDEPUBCFISerializer.swift */; }; + 7D411155326150312CD1649A73AE55A8 /* RDEPUBNavigatorLayoutContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2092D0DAEE6507B0B448DAA0A4888191 /* RDEPUBNavigatorLayoutContext.swift */; }; + 7D6EFD0580A8BCD609B2076F8A6EB4C8 /* ImageIO.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FEB14A8F8170777DB7CCC3F27C8EA57A /* ImageIO.framework */; }; + 7DD3E3DDBF44D68361F090E0EB4B0737 /* RDEPUBWebView+FixedLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5F41DCAB71A589008105D8C3AB0F8878 /* RDEPUBWebView+FixedLayout.swift */; }; + 7F9B8AAB4623E3CC58C37D8EBFF514B4 /* DTExtendedFileAttributes.m in Sources */ = {isa = PBXBuildFile; fileRef = 56E8939081946D090FD77A04F879754C /* DTExtendedFileAttributes.m */; }; 7F9CC306B17D409DB903DF850FEDA64C /* DTListItemHTMLElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 61B18088896D291E0CE7718DFE82FAC1 /* DTListItemHTMLElement.m */; }; - 807780DB924306E4C1B28784712E45D9 /* RDEPUBChapterSummaryDiskCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14826541B96FDC7B652AA313B700DABA /* RDEPUBChapterSummaryDiskCache.swift */; }; + 7FC6815502492DF1D663D87A2D9AB207 /* DTFoundationConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = FF63F5E8902D6F3F5E845A924EBBC6D3 /* DTFoundationConstants.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7FDB342E7990D04F20D66B54DD3288F3 /* DTActivityTitleView.h in Headers */ = {isa = PBXBuildFile; fileRef = AF1516035C269F7A41EE064AAB14D562 /* DTActivityTitleView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 80293565A6D64BAAD1917E1688E7FD5B /* RDEPUBPageInteractionController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 252AFCFB40C36621E9C98C6644A56EE6 /* RDEPUBPageInteractionController.swift */; }; + 803C702E95B286938CC3916511A242F4 /* RDEPUBImageViewerCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = F17DB32BEDD4A7738B4AC8201E5BD91B /* RDEPUBImageViewerCoordinator.swift */; }; + 8041514FE1856F94EBD1E317A1E9ABBE /* RDEPUBAttachmentNormalizer.swift in Sources */ = {isa = PBXBuildFile; fileRef = F5847BF261408B9B82FB3BF7A9390AB3 /* RDEPUBAttachmentNormalizer.swift */; }; 8099F1E613A15275EF5FC59ED3C73579 /* NSAttributedString+HTML.h in Headers */ = {isa = PBXBuildFile; fileRef = 7805DFC2CB71F5B6BBF7891876360EFB /* NSAttributedString+HTML.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 80A5F47A61B2CE58811FBA9EA4EEAE6E /* RDEPUBNavigatorLayoutContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7E40C17B95F3BFCE6E70D0591DA6F7F /* RDEPUBNavigatorLayoutContext.swift */; }; + 80A9DF9B66A59153F911FB540BB88DAD /* RDEPUBReaderController+AttachmentTooltip.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CDD971696985E60155A09E16CD844C5 /* RDEPUBReaderController+AttachmentTooltip.swift */; }; + 811584EBB417D8EAC8674773013DA313 /* wxread-dark.css in Resources */ = {isa = PBXBuildFile; fileRef = 8AE69217E6A738AC11FEB58F2603B17F /* wxread-dark.css */; }; 811D7CBCD710AE45FF80A4B05BFE444C /* UIFont+DTCoreText.m in Sources */ = {isa = PBXBuildFile; fileRef = CEBA01360577AAD3FD089B6B17C24260 /* UIFont+DTCoreText.m */; }; 814D0D63E5FD4AB7231E63064FE9EB5C /* NSAttributedString+DTDebug.m in Sources */ = {isa = PBXBuildFile; fileRef = 5096458D9BD2818F786BC3B61B91EAC7 /* NSAttributedString+DTDebug.m */; }; - 816A870DED6E7EBCA32D4E8C7863D2CE /* NSData+DTCrypto.h in Headers */ = {isa = PBXBuildFile; fileRef = 94705DADD1F09F4162F7D733318238F4 /* NSData+DTCrypto.h */; settings = {ATTRIBUTES = (Public, ); }; }; 81905A7717925A17E6B98E934A75B8BA /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0834E84632886CDD9911CAB76183F1CE /* QuartzCore.framework */; }; + 81F2EDDCDE14E41755685147F75D02D5 /* RDEPUBHTMLNormalizer.swift in Sources */ = {isa = PBXBuildFile; fileRef = E0F6036722A2FEED169B57120EB274D1 /* RDEPUBHTMLNormalizer.swift */; }; 82119A0DC4981CC2AF389C7C4CC08186 /* DTListItemHTMLElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 5DB480D0B78911DBF96986E64A714907 /* DTListItemHTMLElement.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8329F87853CB379C84A455A9C72F0E97 /* NSFileWrapper+DTCopying.m in Sources */ = {isa = PBXBuildFile; fileRef = D9A812C3E577A3ADC36BAE3FF7AA4D9C /* NSFileWrapper+DTCopying.m */; }; 83A4BC9FE4765C9B848DD4925D99F362 /* DTAccessibilityElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D146C3F4B7878B5CE8EFF38765580C2 /* DTAccessibilityElement.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 83DF18691BCACC408ABEEC12F0B1AB3E /* RDEPUBSelectionState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3BE6C7E2CF696021A9922C1BB675AB1C /* RDEPUBSelectionState.swift */; }; - 8413070AC439CC5F8EEB0E56D762B968 /* Archive+WritingDeprecated.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2373DCA0FC45287BFC063BEA661B8367 /* Archive+WritingDeprecated.swift */; }; - 84A49180E4E633858662A7B72A501BB6 /* RDEPUBTextRendererSupport.swift in Sources */ = {isa = PBXBuildFile; fileRef = 425D9BA744DFC5E49D875D81AA8761F8 /* RDEPUBTextRendererSupport.swift */; }; - 855D697E9DC5C605D6178EA976B05E97 /* RDEPUBTypesettingPipeline.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD5C20289C05F4C1BAD1B1DEEF2485C1 /* RDEPUBTypesettingPipeline.swift */; }; - 85CAB9A77555702AFF3AD8D0842585F7 /* RDEPUBReaderAssemblyCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = D423B0BF37041F8E07C6EFD476F511A4 /* RDEPUBReaderAssemblyCoordinator.swift */; }; - 86130B323946B0228B860A4302D18B41 /* RDEPUBReaderViewportMonitor.swift in Sources */ = {isa = PBXBuildFile; fileRef = E8D1DCAA8AAE79FCBD5248D641D583DE /* RDEPUBReaderViewportMonitor.swift */; }; - 8777BFC6890E10C885F3D5CB9779B6C3 /* RDReaderView-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 506A3F4E93699E821176158B4E1A74ED /* RDReaderView-dummy.m */; }; - 89AAC0AAA4ED7247C740BA2B8E14A430 /* RDEPUBCFIMap.swift in Sources */ = {isa = PBXBuildFile; fileRef = BE8601B1192179DC899A1156CB46369E /* RDEPUBCFIMap.swift */; }; + 83A5346560A82E6CA50BCC12E8D76FBB /* RDEPUBSelectionState.swift in Sources */ = {isa = PBXBuildFile; fileRef = F6E041555AFAC5F8BD987FCA9DAC0949 /* RDEPUBSelectionState.swift */; }; + 851D7CADE59C83C2E79791EFBD2F1B9E /* DTFolderMonitor.h in Headers */ = {isa = PBXBuildFile; fileRef = A8CC38EFEF171FFEE008C32A6319BE6A /* DTFolderMonitor.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 852C505B9BC6E6CE207559DB6F65F526 /* NSString+DTFormatNumbers.h in Headers */ = {isa = PBXBuildFile; fileRef = A3BD3ED7913130D32E14D5572CBCC921 /* NSString+DTFormatNumbers.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 859B45A8A4A1B9FBEB3002EE8BEE46E1 /* NSArray+DTError.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E5297E7F5769C61C1838962BA76D4F5 /* NSArray+DTError.m */; }; + 892B8712F2112DDFA6619A0913DE30B3 /* UIImage+DTFoundation.m in Sources */ = {isa = PBXBuildFile; fileRef = 499E135F1FEB31C26EB0EF793A90086C /* UIImage+DTFoundation.m */; }; 8A0A0FB23DB0021ADC9AD0D90631883A /* NSMutableString+HTML.h in Headers */ = {isa = PBXBuildFile; fileRef = 52053ABC9CD3D4A72CD8A22173428AEB /* NSMutableString+HTML.h */; settings = {ATTRIBUTES = (Public, ); }; }; 8A35CC67F0AA6B26397C10D756EA34E8 /* DTTextHTMLElement.h in Headers */ = {isa = PBXBuildFile; fileRef = ED9A1EBDA0FD72671C7F6FE15F37B906 /* DTTextHTMLElement.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8A9311DAF16BE5D746333DF2543918FF /* wxread-default.css in Resources */ = {isa = PBXBuildFile; fileRef = 8C51FE03884113569904AAA4CAA3AEB6 /* wxread-default.css */; }; + 8A5A271780D55E365E441781D2143538 /* UIScreen+DTFoundation.h in Headers */ = {isa = PBXBuildFile; fileRef = 9C5E29D728B8CD4EABC0B3DD9CD9DE99 /* UIScreen+DTFoundation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8ABB70BC85808639BE2820ED576705EF /* NSString+DTPaths.m in Sources */ = {isa = PBXBuildFile; fileRef = D30DBDF1EDB20CF83690AC6619AA0C48 /* NSString+DTPaths.m */; }; 8AC90941E71199090BCED76DE89EFB60 /* DTAttributedTextView.m in Sources */ = {isa = PBXBuildFile; fileRef = F46010C3A0C82AE5ABEC814D7EC6351B /* DTAttributedTextView.m */; }; + 8AFC5D133F47D2D83D972F007FB5E975 /* RDEPUBTextContentInteractionCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 890B65045CA1A5D01EDF09F7FD14C6C3 /* RDEPUBTextContentInteractionCoordinator.swift */; }; 8B405CE13E7D718A9340A82B52766AB2 /* NSCharacterSet+HTML.h in Headers */ = {isa = PBXBuildFile; fileRef = A7E167717A18E0C858C6FD95804249E4 /* NSCharacterSet+HTML.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8C254EFFDAFA3432B57B4317B306F448 /* DTSmartPagingScrollView.m in Sources */ = {isa = PBXBuildFile; fileRef = A20F6F0463A998DC3BD53DE9E63B63DE /* DTSmartPagingScrollView.m */; }; - 8C9C493D4B8725B3BC2DF6F7E2AE2960 /* DTHTMLParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 71BBE6384315D7F00F5ECFFF67A85AF9 /* DTHTMLParser.m */; }; - 8D4499E5E0E1C3E85EB14B5A6603900A /* Entry+Serialization.swift in Sources */ = {isa = PBXBuildFile; fileRef = 76C1831768CE55090EADD902B29B6CD1 /* Entry+Serialization.swift */; }; - 8D9119050495487B8722EEFE0296700B /* NSURL+DTComparing.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F1F7BFB63DE15D627EB8F64829B8AAD /* NSURL+DTComparing.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8E2679367E3A543EDEC5A518D23EB92E /* RDEPUBTextContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 57CB038980ADA439CEC82E0EBBD3FC9E /* RDEPUBTextContentView.swift */; }; + 8B452A6989E55D4D4256B16F379F7831 /* RDEPUBFixedLayoutTemplate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 38459BA6DDC11AC3B9574C4E48F48ADC /* RDEPUBFixedLayoutTemplate.swift */; }; + 8BF07B59FD97F89AD9AE7ABE953C5229 /* RDEPUBBackgroundTrace.swift in Sources */ = {isa = PBXBuildFile; fileRef = A4B2389196B50CE10DE62C6DF588B1D9 /* RDEPUBBackgroundTrace.swift */; }; + 8C154F19B995AAAF0BCB771F5CC3A906 /* RDEPUBResourceURLSchemeHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9ED2C72C44EE3717E5F3B45933FC5F5C /* RDEPUBResourceURLSchemeHandler.swift */; }; + 8CF6E628158B190D0FFEF62AF059FD12 /* RDEPUBTextBookBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 72BE58BB9BF4DCDFDC6D5430AA2E82E9 /* RDEPUBTextBookBuilder.swift */; }; + 8E1DC7355706F3565B8A0B38A59AAED9 /* DTBlockFunctions.m in Sources */ = {isa = PBXBuildFile; fileRef = 6D2316F422A6C97F95F9CF43E6F8E94F /* DTBlockFunctions.m */; }; + 8E85166218F63FF359E769813A2444C6 /* RDReaderPreloadController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E5D2C72E80EF71ECCFDFE5C476ADADE /* RDReaderPreloadController.swift */; }; 8E8726381CBCFB1EDB350183456D4EF7 /* DTHTMLParserTextNode.m in Sources */ = {isa = PBXBuildFile; fileRef = E5377786E80195587BF3E8A7589E5925 /* DTHTMLParserTextNode.m */; }; - 8EBDD8FF39B5DF1B9ECCEEBD333F374C /* RDEPUBDarkImageAdjuster.swift in Sources */ = {isa = PBXBuildFile; fileRef = F4BE66AE0A6BCE91929B24BAA34DA151 /* RDEPUBDarkImageAdjuster.swift */; }; - 90C8F1B2156343A41987386589DA591C /* RDEPUBNoteResolver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 761AE6FC1A75A238945BD6F186EAA5E3 /* RDEPUBNoteResolver.swift */; }; - 90ED936CB8FF110B74E170B127FCA816 /* RDEPUBBackgroundPriorityPolicy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FE811B58EF82E20354C3DABE712313F /* RDEPUBBackgroundPriorityPolicy.swift */; }; - 918384360781B784B0A347C5213C7166 /* RDEPUBReaderTopToolView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A0A47D7B73C87872B9B05E80A4254D4C /* RDEPUBReaderTopToolView.swift */; }; + 8E88C2B80FBFC142610DDB8A57EB8D84 /* RDEPUBChapterCacheKey.swift in Sources */ = {isa = PBXBuildFile; fileRef = BC5131ADC7B6C3869C5CA5A5CB52C06F /* RDEPUBChapterCacheKey.swift */; }; + 8FCBD7D14FE4C1CF881E0DC8EB0EDD75 /* RDEPUBSemanticMarkerInjector.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0AE0BE26FBA95F74B6173965BEC302EB /* RDEPUBSemanticMarkerInjector.swift */; }; + 8FFDDFA77ACE0DCC142C857189E867C7 /* Archive+Helpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 55B9309F0BDDDE2C3EE13C97BF2C0F1E /* Archive+Helpers.swift */; }; + 91CF281A86EC3D57E8E4D5B5988D7D45 /* RDEPUBReaderRuntime.swift in Sources */ = {isa = PBXBuildFile; fileRef = A12918D1D6A305DDE8B4249CCE38BB1F /* RDEPUBReaderRuntime.swift */; }; + 91EA145D5B76F9BDCD03FB801F3ACB3D /* DTSmartPagingScrollView.h in Headers */ = {isa = PBXBuildFile; fileRef = 21CCCCAAF832BE9C859BEDDC79B4E9E2 /* DTSmartPagingScrollView.h */; settings = {ATTRIBUTES = (Public, ); }; }; 91FDA47810CE5CE2C48AED9205AE89B5 /* DTStylesheetHTMLElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 354C1C3A74DB75C8B8608D538212A963 /* DTStylesheetHTMLElement.m */; }; + 923002983AC3675E5D249839481F6DDC /* RDEPUBTextBuildPipelineInterfaces.swift in Sources */ = {isa = PBXBuildFile; fileRef = 59036F71583DAE2641D9DAA567DBD208 /* RDEPUBTextBuildPipelineInterfaces.swift */; }; 92C59F96D443525E8833676479FA60C5 /* DTVideoTextAttachment.h in Headers */ = {isa = PBXBuildFile; fileRef = 50C2868064310B16D2B5FD9901C846DC /* DTVideoTextAttachment.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9364C9C3F930C82880F73AB4377A2C48 /* DTPieProgressIndicator.h in Headers */ = {isa = PBXBuildFile; fileRef = 173194D38C897D8E38AD8A194E47DB5C /* DTPieProgressIndicator.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9492443553B7CD522F54CAC8167D8058 /* RDEPUBModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = E67E858259A9264CC8FD433B51487676 /* RDEPUBModels.swift */; }; + 9304920D7E3F5289F47FB0F78FD33CB5 /* default.css in Resources */ = {isa = PBXBuildFile; fileRef = 47DC174612C98B2CFB4E7D158169139E /* default.css */; }; + 932899B4CB64E52B2764F095C3923F1D /* RDEPUBTextAnnotationOverlay.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9B8EBA6DFDDDD074E804C1689727074E /* RDEPUBTextAnnotationOverlay.swift */; }; + 93760CA1B3EB5AD5D859FBFB7B7F5757 /* RDEPUBTextPageRenderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B879D43D53D77B2C9BA10AE5CDC71CED /* RDEPUBTextPageRenderView.swift */; }; 94F5846979DBC90E2B646E975F5ECBA8 /* DTHTMLWriter.h in Headers */ = {isa = PBXBuildFile; fileRef = 14E63A0D35D4A07BD0123021EA161C99 /* DTHTMLWriter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 951272D64B0B7B5A0CF5B04D0C70020F /* DTFoundation-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 23588B63FC4026A371F5C683744A664C /* DTFoundation-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 96F613CFCEA008628E950E6844EAFCE6 /* RDReaderView+ToolView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 36E5D959B869D6FFCAE67ACA572FF1C2 /* RDReaderView+ToolView.swift */; }; - 9714230EA35DBAC275C9C8B030D4004E /* ZIPFoundation-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = E9D8AB18960B56A997408E3235751624 /* ZIPFoundation-dummy.m */; }; - 97551B39A196031743612486D44CC480 /* NSURL+DTUnshorten.m in Sources */ = {isa = PBXBuildFile; fileRef = 3A6A858B976D032A3C61540AFF19DEE4 /* NSURL+DTUnshorten.m */; }; - 983285394453A8129F8E3E2E231B12E5 /* RDEPUBCoreTextPageFrameFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64798D230A6F5C1C52C7353EF9773BB7 /* RDEPUBCoreTextPageFrameFactory.swift */; }; + 952DAB01617035A1AD4F1A794BB5A850 /* RDEPUBAttachmentTooltipView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 90FB64A00D5B29274A1EDAFD38A2A8B9 /* RDEPUBAttachmentTooltipView.swift */; }; + 96004CF12BD7134A79FA77102546C620 /* Archive+ZIP64.swift in Sources */ = {isa = PBXBuildFile; fileRef = D18519BCA8FAA9B01A704A0F0B9FFC78 /* Archive+ZIP64.swift */; }; 9854DC3F1763B6272C2EA3FC6EC40B95 /* NSAttributedStringRunDelegates.h in Headers */ = {isa = PBXBuildFile; fileRef = 30EB4CF4AD4114DE53786C318621EB19 /* NSAttributedStringRunDelegates.h */; settings = {ATTRIBUTES = (Public, ); }; }; 987538B07E11741899878EA8BC947F51 /* NSCoder+DTCompatibility.h in Headers */ = {isa = PBXBuildFile; fileRef = A592A34CA2EA792DDFAFAEB516FE8A10 /* NSCoder+DTCompatibility.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9914ED7075FAF9F04BB3C4154952C9B9 /* DTFoundation-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = FF1C41D226C0957F715EFF3F23893386 /* DTFoundation-dummy.m */; }; 9917E9B804CD33AF3BE2A992A3510C97 /* NSNumber+RomanNumerals.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E21B10EE150F00F245D297EAB7F2BA2 /* NSNumber+RomanNumerals.m */; }; 992B7C8C824B5EA190EF1DB096064DB7 /* DTDictationPlaceholderTextAttachment.h in Headers */ = {isa = PBXBuildFile; fileRef = D0856C3894240A673B5AB7C2704E9144 /* DTDictationPlaceholderTextAttachment.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9948C2140652AD1AEBB485FAF262531A /* RDEPUBCFICompatibility.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6DCD270CD8C5A0C917FB01A8B3116DF8 /* RDEPUBCFICompatibility.swift */; }; - 994C4AF7960B95E37A468C364C1C83C1 /* DTWeakSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = E4C5EB3F8F005C65005C101A9DBE488A /* DTWeakSupport.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 99AD3357E90AD801A7BA603B32B5DF90 /* NSData+DTCrypto.m in Sources */ = {isa = PBXBuildFile; fileRef = F63EBF2BF3000B3391F6E693581EA129 /* NSData+DTCrypto.m */; }; - 9A1B43DFB3162F43E83DD398EE07D031 /* RDEPUBReaderLoadCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = C33E143A90F5075BA576F52111FFCCB0 /* RDEPUBReaderLoadCoordinator.swift */; }; + 999817CC2779F3811583CDAA23A26213 /* RDEPUBTextPositionConverter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7A971ECCC1DDFDE6D5417E949E3B1FD2 /* RDEPUBTextPositionConverter.swift */; }; + 9A4C1165863623D562E7DB43A6CBC62A /* RDEPUBMetadataParseWorker.swift in Sources */ = {isa = PBXBuildFile; fileRef = EDA3C47F4EB23BAB5E96FD4DF3DFA59D /* RDEPUBMetadataParseWorker.swift */; }; + 9ABA0CB256F84F56B971D4EAA8019C9A /* RDEPUBTextAnchor.swift in Sources */ = {isa = PBXBuildFile; fileRef = BAAB1142496F4E594573D85EF76670A8 /* RDEPUBTextAnchor.swift */; }; 9B199D71D2F48B2055A7FDF9BD7051CC /* NSString+CSS.m in Sources */ = {isa = PBXBuildFile; fileRef = 8718F2DB8F0DC085CB012D9996596F3F /* NSString+CSS.m */; }; 9BD146F72B29C703798001F138B069C2 /* NSCoder+DTCompatibility.m in Sources */ = {isa = PBXBuildFile; fileRef = 753994141ACB981C898B36B761321C23 /* NSCoder+DTCompatibility.m */; }; - 9D381AA072A4C03E3B554FA7925940FF /* RDEPUBReaderSearchBarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FBA95BB1C6D5F042AFE2454D582DFC55 /* RDEPUBReaderSearchBarView.swift */; }; - 9DCB6AFEED62901AFF45F911F9AAA89C /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0834E84632886CDD9911CAB76183F1CE /* QuartzCore.framework */; }; + 9C31FA2081B8126C6634902705D6434A /* RDEPUBCFIMap.swift in Sources */ = {isa = PBXBuildFile; fileRef = 427D3D938726077995A928BFEDDC6632 /* RDEPUBCFIMap.swift */; }; + 9D41E4DA56705B0149988B175623233D /* WeReadApi.js in Resources */ = {isa = PBXBuildFile; fileRef = F46977FAF9F0EAEDF840BDA49288CC99 /* WeReadApi.js */; }; 9DE04C83A68C7512C0A860FFF5CEC113 /* DTCoreText.h in Headers */ = {isa = PBXBuildFile; fileRef = 8CF7CEB31BED0554F3EF3D3442A89B47 /* DTCoreText.h */; settings = {ATTRIBUTES = (Public, ); }; }; 9E4AB71DE8B3E7218B53B2C8EF6B843A /* DTAttributedTextContentView.m in Sources */ = {isa = PBXBuildFile; fileRef = 7203B4D9D997037E0F9D154A3B049738 /* DTAttributedTextContentView.m */; }; - A0198E2E7AF64E564200EA40E2AAD22B /* DTCustomColoredAccessory.h in Headers */ = {isa = PBXBuildFile; fileRef = BAE45673EE2875DB23FA7BDD61FDE1EF /* DTCustomColoredAccessory.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A08A4B4424A089A268AAF2313E0EC40F /* NSMutableArray+DTMoving.m in Sources */ = {isa = PBXBuildFile; fileRef = ADD5B2F66FCCFB58393314E7B9FE4384 /* NSMutableArray+DTMoving.m */; }; + 9E85C29B5E66B3CBDA79C8C04770B169 /* UIColor+RDEPUB.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE51FACCCAC4F6FE003BD3914F7B9071 /* UIColor+RDEPUB.swift */; }; + 9EA64874ED208ECC988584D8D6346033 /* NSFileWrapper+DTCopying.h in Headers */ = {isa = PBXBuildFile; fileRef = B43D7603C0D66635268842EC0A2655AC /* NSFileWrapper+DTCopying.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9F03124BA4BCE5C24E3E2B879205DF47 /* RDPlainTextBookBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2739EAD69AB2F5F6FA80E254D294440D /* RDPlainTextBookBuilder.swift */; }; + A12DBBB039A09A7F1BB62E384E41E190 /* RDEPUBSafeArea.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1DD088C35A5559FEE1027DAE37417E3D /* RDEPUBSafeArea.swift */; }; A132A0C9EB13B65FB886B11AA2E6304C /* NSDictionary+DTCoreText.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C891B983F0CC956CAE3978A15875819 /* NSDictionary+DTCoreText.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A1BD7803BE40F71EF65DC8FE3C1487CB /* RDEPUBReaderLocationCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4ADEC782AE1E07C94B6F01A8AE1CE2C8 /* RDEPUBReaderLocationCoordinator.swift */; }; + A26C8915823F92017865B00FC0F16B22 /* RDEPUBWebDecorationOverlayView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCC938C9AB37D0B094B0CF78C098CBE6 /* RDEPUBWebDecorationOverlayView.swift */; }; A2CA9C27EB2B77637A12723F8CFE7AAB /* NSString+HTML.m in Sources */ = {isa = PBXBuildFile; fileRef = FA107BE47514D01B94B7A2670A9F83E5 /* NSString+HTML.m */; }; + A305D671B126FEC47981A8F62D0DAE9E /* RDEPUBReaderViewportMonitor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 455F46F5F9EA1B2EAF47E54361B9E5F1 /* RDEPUBReaderViewportMonitor.swift */; }; A30D5C1E413A3D319A83D3410A8A549F /* DTCoreTextParagraphStyle.m in Sources */ = {isa = PBXBuildFile; fileRef = B7C4233DF4FA80BF4A9E6FA5082D49E5 /* DTCoreTextParagraphStyle.m */; }; - A3A9D6374488C6608ADF437FFECDB17B /* RDEPUBNoteDetector.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8F2DF1EE547C972C1BF12018AFFC5142 /* RDEPUBNoteDetector.swift */; }; - A4696A40DFBA4A943DBC243A7C907888 /* RDEPUBAttachmentNormalizer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EBB71B95928ABA41A3B33A9DB8E75DD /* RDEPUBAttachmentNormalizer.swift */; }; - A5DE70F19A97D8C9445781764D944031 /* RDEPUBReaderUIState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94F5CBFE8EF3307F3C9B0E25A5F70E70 /* RDEPUBReaderUIState.swift */; }; - A68D4A2382460F426465EDDAF8EBB1F8 /* RDEPUBParser+TOC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8485FAD7356F83F96C2CF8F2171C1DFB /* RDEPUBParser+TOC.swift */; }; + A43DAC6C9656DF7A74DCC11AB44433B5 /* NSMutableArray+DTMoving.m in Sources */ = {isa = PBXBuildFile; fileRef = ADD5B2F66FCCFB58393314E7B9FE4384 /* NSMutableArray+DTMoving.m */; }; + A633C89374604FFFE5119DA09B8C5088 /* NSURL+DTComparing.m in Sources */ = {isa = PBXBuildFile; fileRef = 467CC59CEC3B3BC7ACDCA776FDCBDC1D /* NSURL+DTComparing.m */; }; A72E9F983E5BBFA7485EFB482B80E89E /* DTWeakSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = E687628EF2FE92D093E3005D21B578E5 /* DTWeakSupport.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A7CAF507A75914C9CB2904256449478E /* RDEPUBChapterTailNormalizer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68A8597AE94ED09E9828E2EEA0D8FFFA /* RDEPUBChapterTailNormalizer.swift */; }; + A7CE2EB98E19E07AB9B917415ACDF380 /* RDEPUBTextSelectionController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A6550AF614406015AE2CCD348C28A3BE /* RDEPUBTextSelectionController.swift */; }; A7D665BBDADBE3D64023FF52E218FCFA /* DTCoreTextConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = E89F199ECDE796B15CAF8E0C1775FAA6 /* DTCoreTextConstants.m */; }; - A949841C2F45DE9F8FB59DDADA087852 /* DTFolderMonitor.m in Sources */ = {isa = PBXBuildFile; fileRef = BEA46E51E3616ECEAF0ACCEA9B8C67EF /* DTFolderMonitor.m */; }; AA3722CC8B4992EDA8A9F5E9116835B7 /* DTCoreText-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = B6CA8CC4525EF64AA5CEE4A722737F1C /* DTCoreText-dummy.m */; }; - AB700CDBB85072A2E9F40018E1ECDB00 /* RDReaderContentCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8A7E0C51CE893B8040C6A49E9E973226 /* RDReaderContentCell.swift */; }; - AB96076F48CD56721F47B5D8CD68B870 /* RDEPUBReaderController+DataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE0841869BD329D156D73D0CFB24542C /* RDEPUBReaderController+DataSource.swift */; }; - AC4426FAED5C421324BB8940BD528EE8 /* RDEPUBReaderController+TableOfContents.swift in Sources */ = {isa = PBXBuildFile; fileRef = D88A921856D9EF12C78D05D927BF334B /* RDEPUBReaderController+TableOfContents.swift */; }; - AC51EB535FBB37484F8A3BA23CBD41DD /* RDEPUBReaderController+LocationResolution.swift in Sources */ = {isa = PBXBuildFile; fileRef = A29809A2BF0AD11378C7FDE3406150B1 /* RDEPUBReaderController+LocationResolution.swift */; }; + ABB194A853B15FBB547244E93F3AFA87 /* RDEPUBFontNormalizer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 545DD46BEAB1D1F7E0530E787095FCB2 /* RDEPUBFontNormalizer.swift */; }; + ABB6259EA3066E7A829C17510410F5A1 /* RDEPUBWebView+Reflowable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32AD569BCA384A60FC2E1E08CE3529AD /* RDEPUBWebView+Reflowable.swift */; }; AC7000465258822B466855B12F1F97A3 /* DTCoreTextGlyphRun.h in Headers */ = {isa = PBXBuildFile; fileRef = 771E0D5CBCBC013BF5780FEE5BBA81FF /* DTCoreTextGlyphRun.h */; settings = {ATTRIBUTES = (Public, ); }; }; - ACC9E4A469E961237E551759D7DBBE10 /* NSArray+DTError.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E5297E7F5769C61C1838962BA76D4F5 /* NSArray+DTError.m */; }; - AD328CC506B6184BE8C4E9FA7914E039 /* RDEPUBPaginator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 893DFE6F010A222A98E905EA778740A0 /* RDEPUBPaginator.swift */; }; - AE7E76D8301E55488BFA1CF40D0B1990 /* RDEPUBCFIRecoveryEngine.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5E8993D56BA3E8692108E3C53CD52806 /* RDEPUBCFIRecoveryEngine.swift */; }; - AF2C993F79DBF1586E55F70A9F105C6A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B50104DE2E35D820ECA22CDB3E6F96EA /* Foundation.framework */; }; - AF6AC3DDB170B49DC3F06E9914DCCED8 /* RDEPUBTextPaginationInterfaces.swift in Sources */ = {isa = PBXBuildFile; fileRef = B08FB1ED81E67058DC00376CA1DFC963 /* RDEPUBTextPaginationInterfaces.swift */; }; + ACA98E6A9A6E8D58A22021AB40351E66 /* RDEPUBCSSCompatibilityLayer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30EE98BBC2688DFF0B50F9C417007886 /* RDEPUBCSSCompatibilityLayer.swift */; }; + AEA089F602E66B4E0CB655D1BF625880 /* DTActivityTitleView.m in Sources */ = {isa = PBXBuildFile; fileRef = 662D30C1E74D1D5122921475F4024F73 /* DTActivityTitleView.m */; }; + AF5E584EB1F14EC57A5DC51D5CD93FF2 /* NSString+DTURLEncoding.m in Sources */ = {isa = PBXBuildFile; fileRef = 131C1D8C96DF2D44A2D4F50C5AEFFF11 /* NSString+DTURLEncoding.m */; }; + AF6CFED7C7CF1B8D9384BCE97D1DF7D9 /* RDEPUBTextSearchEngine.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06733E30802CA08ACF312C763BD37795 /* RDEPUBTextSearchEngine.swift */; }; AF7A1DC953992A149CB0815C90769529 /* DTIframeTextAttachment.h in Headers */ = {isa = PBXBuildFile; fileRef = D4C731AA2088D7E873D8E3D21B95D215 /* DTIframeTextAttachment.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B03155EC46B90C179E546A3356E5E364 /* DTLog.h in Headers */ = {isa = PBXBuildFile; fileRef = 207CC0EEB74CECEB43A870FF80560E0F /* DTLog.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B1E427DA5C06EFB8D33AAE782C8439C4 /* DTBase64Coding.h in Headers */ = {isa = PBXBuildFile; fileRef = 519087D9CD0F5E440E6D2C3B1AA1DFA2 /* DTBase64Coding.h */; settings = {ATTRIBUTES = (Public, ); }; }; + AFE5927149FB4AFE9FB27235C2FCB8A2 /* RDEPUBNoteResolver.swift in Sources */ = {isa = PBXBuildFile; fileRef = A184BC6F2CCE83350332C9F00071A2B9 /* RDEPUBNoteResolver.swift */; }; + B0984EA45A82B8CF021C4BA7CE6B2473 /* DTCoreGraphicsUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 0372FD1824BC43F7BD6B337430201420 /* DTCoreGraphicsUtils.m */; }; + B0AA422A606376E1DE651B23D3849CAD /* Data+Compression.swift in Sources */ = {isa = PBXBuildFile; fileRef = 22B69C9433F2FBE5CE8409BD4266DFE8 /* Data+Compression.swift */; }; + B178C87ED370EA79E30224072DDD026B /* RDEPUBReaderTableOfContentsItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C4658670F6EBD43067CF1D859518D23 /* RDEPUBReaderTableOfContentsItem.swift */; }; + B20B3B8D2C3958BE32BABBBA48E0ECF4 /* RDEPUBNoteDetector.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC0E8A0B81E73D17CDACE523F47D124B /* RDEPUBNoteDetector.swift */; }; + B21AC2FBB25F091A5AE9A0602A9F4937 /* NSURL+DTAppLinks.m in Sources */ = {isa = PBXBuildFile; fileRef = 3453CFB9BDBF6F9D0937EDF5FB2BD07B /* NSURL+DTAppLinks.m */; }; B24FAD34A7915FC4B90FE9038E814FF2 /* DTLazyImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = CA5630DC0E663F38A9EC713323697EE1 /* DTLazyImageView.m */; }; - B3B9497580D0189374A08C3A349F5230 /* RDEPUBTextPaginationSupport.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1967314246DE47771D6C6F0D8B5BB22A /* RDEPUBTextPaginationSupport.swift */; }; - B3EA920CB255EE8B43C5A51D68F00869 /* RDEPUBPaginationModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DB30ED1E8B12F6CEC548FBF1290668 /* RDEPUBPaginationModels.swift */; }; - B494EB2836A86D7127501F43DC0CAAEA /* RDEPUBFontNormalizer.swift in Sources */ = {isa = PBXBuildFile; fileRef = CF108973184A89F47F1A44F491BC7453 /* RDEPUBFontNormalizer.swift */; }; - B5CE97B23B3C54DD7BF5B08002A60B71 /* RDEPUBNotePopupCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = BC2FC937F877AAF34D20099B548F79F4 /* RDEPUBNotePopupCoordinator.swift */; }; - B62C7195C031CD59BF3BFCAB531791C2 /* Archive.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3E162E0261A5B0850158D3403191E62 /* Archive.swift */; }; - B64B2F42273B15382F3E5A97B55148EA /* RDEPUBParser+Archive.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C2BD942CCE411EF3AB9DCDC8215B180 /* RDEPUBParser+Archive.swift */; }; - B76DE23D085C8DFE63FA9FC05387E02D /* ImageIO.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FEB14A8F8170777DB7CCC3F27C8EA57A /* ImageIO.framework */; }; + B35EC704CCE46CFDFE734E94643B89CA /* RDReaderView-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = A61F5753AE7B5122FE65CF07CF1AD5FD /* RDReaderView-dummy.m */; }; + B3AC4D5487C5FEFFBEF018ABF5F4800A /* RDEPUBTextPaginationInterfaces.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4721E12B4121C46B8368D085D91EC2B /* RDEPUBTextPaginationInterfaces.swift */; }; + B3D89EAA9B5A3729A4BD440B66A36F4B /* RDReaderGestureController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 10617286346E2E6D7BB30203A65302CA /* RDReaderGestureController.swift */; }; + B509E539D0E9DD3A7E1CBF4E87518C2A /* RDEPUBRenderRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 25C6A0883824F05CF90F21478E019975 /* RDEPUBRenderRequest.swift */; }; + B553EE0E95DCEDE9EE2738F649F197DB /* RDEPUBTextLayoutFrame.swift in Sources */ = {isa = PBXBuildFile; fileRef = 07C08997AE3D75194E400010A0AE4820 /* RDEPUBTextLayoutFrame.swift */; }; + B59EFFCF83F578900B1B193189689FD0 /* RDReaderView-RDReaderViewAssets in Resources */ = {isa = PBXBuildFile; fileRef = 83410CC9CF2ABE63B90A92F2F988BF65 /* RDReaderView-RDReaderViewAssets */; }; + B5C61DFC1CFBA8ECA4AF7779F5089816 /* rangy-core.js in Resources */ = {isa = PBXBuildFile; fileRef = 8F9C05A5DE7C804D6531F4BBF31A3045 /* rangy-core.js */; }; + B5D0238A617645F81C5604A014065B3F /* RDEPUBReaderSearchBarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7DFE7162E90DAF71A557E4822C252E4F /* RDEPUBReaderSearchBarView.swift */; }; + B61F165888A356AF744580232D727A20 /* RDEPUBPaginator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8514F67C3335EEA160B6A502DC380C6B /* RDEPUBPaginator.swift */; }; + B662098EC7A098D0BF449F33D06B22F1 /* RDEPUBTextIndexTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89755690B804A64EE69FE2D7321CA9B6 /* RDEPUBTextIndexTable.swift */; }; B7BDD79FC06A1E4E0E17592860844108 /* NSAttributedString+DTCoreText.h in Headers */ = {isa = PBXBuildFile; fileRef = 3985FED7BD8EC49191663BEF73FB2C79 /* NSAttributedString+DTCoreText.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B82276ED843A24848B1F0AE805583492 /* String+RDEPUB.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74B33EB0B69C4A347B3F466B751289C5 /* String+RDEPUB.swift */; }; B8332F36582F7A001FE85A8D54B27C9E /* DTCoreTextParagraphStyle.h in Headers */ = {isa = PBXBuildFile; fileRef = BD65B936E2A6FEB74718EA86D9AC1899 /* DTCoreTextParagraphStyle.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B85D036F0AAB424992C26B037799148A /* RDEPUBPageBreakPolicy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02B465B0AB9FB857FB2C95097E1C4D46 /* RDEPUBPageBreakPolicy.swift */; }; B86493B996A888D1DA7814ECB6028E22 /* DTHorizontalRuleHTMLElement.m in Sources */ = {isa = PBXBuildFile; fileRef = DD7A2DE5BDF72ABC066484CE554BDEF0 /* DTHorizontalRuleHTMLElement.m */; }; - B86A7C6918313E26127F7A7DFEF71D6F /* DTCoreGraphicsUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 2C1A7359A45BB880877A672C57F522FE /* DTCoreGraphicsUtils.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B88D8C43A79A645555A6683A10D01258 /* RDEPUBReaderAnnotationCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E0EF27F41F1DF49C126E34B404497CF /* RDEPUBReaderAnnotationCoordinator.swift */; }; B94CD41727DFCA8791EED8FB2CA397DD /* DTCompatibility.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C3D91FFA65414A2787FEB95576E0097 /* DTCompatibility.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BA7A1E4027881F2B50F8301696865452 /* RDEPUBChapterDataCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 88EFF88D4E3001A8D2D0E50EF9B94BBA /* RDEPUBChapterDataCache.swift */; }; - BAA8AEE4DC5F22A9BB2D5DFC13F5D489 /* RDReaderView-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = C2E354232C09ED53034E389E0A70A0C2 /* RDReaderView-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BB2A7A05D4D4017BD37A1EB4528182EF /* RDEPUBResourceResolver.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE7F6623805E2DA3B053A0066ADA7E68 /* RDEPUBResourceResolver.swift */; }; - BB81FE0BBBCEFAF8A7631E7E34874035 /* RDEPUBCSSCompatibilityLayer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8563248DA3F6A02F5A355DBD1D57E80D /* RDEPUBCSSCompatibilityLayer.swift */; }; - BBBCEF6E869779226014E3FB48CD21AB /* RDEPUBAttachmentTooltipOverlayView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E0F52BED56AC7A04854F459B246AB18 /* RDEPUBAttachmentTooltipOverlayView.swift */; }; + B97D761BA5C5055277DC351A493C5568 /* RDEPUBCFI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C0AFCECD74F73D7D40C6F3053AF6FEE /* RDEPUBCFI.swift */; }; + B9E5CDDBF46CDA23D5D282EFDB6456BA /* RDEPUBResourceResolver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29D1AFEDD39DE3A55D023DCF1DD8E100 /* RDEPUBResourceResolver.swift */; }; + BA83048DCDDD496C26B492BD891FC411 /* String+RDEPUB.swift in Sources */ = {isa = PBXBuildFile; fileRef = C60EBAD7361BD011961D6A1FB94B914C /* String+RDEPUB.swift */; }; + BB8A21A84B763070E340A3E4687D3110 /* RDEPUBCoreTextPageFrameFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 81211446372A6A55789AA7E7152E7084 /* RDEPUBCoreTextPageFrameFactory.swift */; }; + BB8ACA21944B2A96E8DF8B0C7E6D30F9 /* ZIPFoundation-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = B41F7D27C2336F89BB0185ACB0B19EA9 /* ZIPFoundation-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BBB18335BC72FBF4584F8B5F4132CCBE /* NSString+DTURLEncoding.h in Headers */ = {isa = PBXBuildFile; fileRef = CEEC8715398E89B42F9B04E290E8E4FE /* NSString+DTURLEncoding.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BC519A74D986F53A3800079B6ACAB7A3 /* RDEPUBCFIGenerator.swift in Sources */ = {isa = PBXBuildFile; fileRef = E9F5010D098DC3538CB8BAF64A54BF7B /* RDEPUBCFIGenerator.swift */; }; BE12CD112F82AD9050D7FB29395F27F9 /* DTVideoTextAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = B83D7A73677A2C3141EDEF56B9CE6584 /* DTVideoTextAttachment.m */; }; - BE7298B71BD3A291423F7E5B9B1BF52A /* RDEPUBHTMLNormalizer.swift in Sources */ = {isa = PBXBuildFile; fileRef = C384342E6BCF839582F9467109AC924A /* RDEPUBHTMLNormalizer.swift */; }; - BEDDC71E25290A889B7780DFC3825B21 /* NSString+DTPaths.h in Headers */ = {isa = PBXBuildFile; fileRef = B76B1E836C34CB755AEE1FBF7DC26BDD /* NSString+DTPaths.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BF2C1AC7B6C32ED307AD651A46AA6C9C /* rangy-core.js in Resources */ = {isa = PBXBuildFile; fileRef = 445D06D06F2D5CB42E95A6292AFA6D42 /* rangy-core.js */; }; - C01D5DBB466B51C42C269491BFA65838 /* RDEPUBJavaScriptBridge.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1DD5649E99D72A74F8F2C3B3E5D3A729 /* RDEPUBJavaScriptBridge.swift */; }; - C0DFE2AA259BE82AA47339B21CDFC958 /* Archive+Writing.swift in Sources */ = {isa = PBXBuildFile; fileRef = B0218A7B243387C79E099CA947CF243D /* Archive+Writing.swift */; }; - C14064F24F09598DE124FF06E9C928E0 /* NSString+DTUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C80941DE172AF972D2247659684D93A /* NSString+DTUtilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C1EC1F4D33F9FA969CB9513D933443E2 /* RDReaderPageChildViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5DFD3ED6CD42E6EA971DDDD51EDB8CA5 /* RDReaderPageChildViewController.swift */; }; - C263E5368A76EC4E43AF7EE9E067D725 /* RDEPUBWebViewDebug.swift in Sources */ = {isa = PBXBuildFile; fileRef = 42A82DADD6CBBE3627BE13B2E0FC8B34 /* RDEPUBWebViewDebug.swift */; }; - C2C4D280D6D73F7CFC734CED2A00282D /* RDEPUBCFIDOMPathBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = A26FAE3FB6F9DBBC672161B173177A5C /* RDEPUBCFIDOMPathBuilder.swift */; }; - C37966071017032F0C1FC81FF8244972 /* RDEPUBChapterPageCounter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68705BE557E6C1C112D38D056CD4E8FA /* RDEPUBChapterPageCounter.swift */; }; - C3FE7E6D008BF43BC6111D39C2C4C861 /* RDEPUBChapterRuntimeStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = D3BFAD599CFD612530D8B30DDB9F5D4A /* RDEPUBChapterRuntimeStore.swift */; }; - C4766E69557D560A763EC5BB6A4C2A41 /* RDEPUBTextBuildPipelineInterfaces.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5EB446503EBB22EE22C51939A562C457 /* RDEPUBTextBuildPipelineInterfaces.swift */; }; - C49D28C5B0E48128D9068C38B5EC8605 /* DTFoundationConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = 0F80AC45FB1DBF50E0E3AA4F26BFA676 /* DTFoundationConstants.m */; }; - C4E1E40043DA623751AF64C5CD396CCC /* DTBlockFunctions.m in Sources */ = {isa = PBXBuildFile; fileRef = 6D2316F422A6C97F95F9CF43E6F8E94F /* DTBlockFunctions.m */; }; - C52E92F3360BF420615A59DE950DEE16 /* RDEPUBSelectionOverlayView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A13D725843764880816F43281F2363FC /* RDEPUBSelectionOverlayView.swift */; }; - C5563F583B537E0B2BFDE7779B27AE74 /* RDEPUBCFIError.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA1200B7F3541159D13204D0C860076B /* RDEPUBCFIError.swift */; }; + BE6A7554B48972B5D4EF22028274696E /* RDEPUBReadingLocationModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FA1C7B2B5D3FE43AB0598F027C50377 /* RDEPUBReadingLocationModels.swift */; }; + BF9D1A78B1C4C7613937CC99EB1702D4 /* RDEPUBNoteModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8D474A46702BFAA8E3AAFAC5EE0E3C20 /* RDEPUBNoteModels.swift */; }; + C018E6B3B58F3C3537511ED0EE553A94 /* RDEPUBReaderState.swift in Sources */ = {isa = PBXBuildFile; fileRef = CF369892013F3178789ADFC74384ADC2 /* RDEPUBReaderState.swift */; }; + C065855BFB7C44A88BC0E41EDB67F138 /* DTCoreGraphicsUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 2C1A7359A45BB880877A672C57F522FE /* DTCoreGraphicsUtils.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C1C04AC61695CB3E392C98A66F8C78F0 /* Archive+ReadingDeprecated.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5193541848D2D1BF115A45D8A730611C /* Archive+ReadingDeprecated.swift */; }; + C31BEDEE98899BAF229DE4FE3F3FE1A5 /* RDEPUBReaderController.swift in Sources */ = {isa = PBXBuildFile; fileRef = CEB68ED963D81A187618710413C3B523 /* RDEPUBReaderController.swift */; }; + C5BE7B683B2F31C0DFD21809C17FEAD2 /* UIColor+RDEPUBHex.swift in Sources */ = {isa = PBXBuildFile; fileRef = 933E1AC7CA1ADECA318762103FAC0AF3 /* UIColor+RDEPUBHex.swift */; }; C5EE8E7373FBD24E66C678356393D871 /* DTCoreTextFontCollection.m in Sources */ = {isa = PBXBuildFile; fileRef = 722AF38F5106ADDE6F98D282F886A769 /* DTCoreTextFontCollection.m */; }; - C652D268D07948ED1E150C632CC60AF9 /* DTCoreGraphicsUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 0372FD1824BC43F7BD6B337430201420 /* DTCoreGraphicsUtils.m */; }; + C60D3562E8D9105111D9441E55F500BB /* RDEPUBPageMapReconciliationCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2A2130B4AB4BB4B5E30E4442A0FD644 /* RDEPUBPageMapReconciliationCoordinator.swift */; }; C6B65C0EA759DF426FBBBB113BA3C3E8 /* DTBreakHTMLElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D8AE4BEBD1998839BA83AD05CA6CAC5 /* DTBreakHTMLElement.m */; }; C72CE4B974DFAE2C3037D425EB559314 /* DTCoreTextLayoutFrame.h in Headers */ = {isa = PBXBuildFile; fileRef = C46FCF109DBCB37595D2A3366CF1D765 /* DTCoreTextLayoutFrame.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C7F3140CE021BAD613B8F941F859A64E /* RDReaderPreloadController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC9EFF22EDE800175B01DE546C97862D /* RDReaderPreloadController.swift */; }; - C883511DEB54DA7D80409A7C3B60896D /* RDEPUBMetadataParseWorker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C88B7F1F7145821C2F65514186AE335 /* RDEPUBMetadataParseWorker.swift */; }; + C760D0A16A9A1F449A81EC7B91766E3A /* RDEPUBReaderSettingsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6777CA743F90F1D44EE010F6ED6A1F7F /* RDEPUBReaderSettingsViewController.swift */; }; + C8E9353276833F3362D26F17A2FF2939 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B50104DE2E35D820ECA22CDB3E6F96EA /* Foundation.framework */; }; C8F753B56A6C4D2A938B6EA68CF522F8 /* DTColorFunctions.h in Headers */ = {isa = PBXBuildFile; fileRef = 720396ED306E768BAD28007D5E96B757 /* DTColorFunctions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C9366A21A153894FCC5898ABAA1BC673 /* RDReaderViewProtocols.swift in Sources */ = {isa = PBXBuildFile; fileRef = C248323DF03FE7E607F69BF5576B3F41 /* RDReaderViewProtocols.swift */; }; - C93C8998F0A29B91C91C7E5C43C564BF /* RDEPUBTextRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = D61BD3F3828530F0B2500FA1C4367C50 /* RDEPUBTextRenderer.swift */; }; - C9D94F33F92551C36226E924C6FF8E18 /* NSDictionary+DTError.m in Sources */ = {isa = PBXBuildFile; fileRef = 45A67761829BBB3974CE24FE50E459EA /* NSDictionary+DTError.m */; }; C9DD05EF2D27FFEBFA7BF6F437168501 /* DTCoreTextConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = A61C8F1BDD76EA59082F65269083BD08 /* DTCoreTextConstants.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CC24C5C5E758475B1A32E952B508824B /* Data+Serialization.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9C3615C94C147AEA92F022E119810E9F /* Data+Serialization.swift */; }; + CABB55F416696E222EDD9355BE162423 /* DTCompatibility.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F653EFBBEDAAC96A34BC93B4211E792 /* DTCompatibility.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CAC5255B7B613B25FA9731E5C6EDD5CB /* RDEPUBPageBreakPolicy.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE10A5C6934704218EB16F8966AA0814 /* RDEPUBPageBreakPolicy.swift */; }; + CAEFA4FFA33FD3C1DF8F288814B55054 /* RDEPUBReaderController+ContentDelegates.swift in Sources */ = {isa = PBXBuildFile; fileRef = 44369E6800A89D0C5818CA884729D20F /* RDEPUBReaderController+ContentDelegates.swift */; }; + CB1E78A4E24418D8E1486735D8C13A48 /* RDEPUBAssetRepository.swift in Sources */ = {isa = PBXBuildFile; fileRef = A472A71A962C2E34AB358EC26AEA60B4 /* RDEPUBAssetRepository.swift */; }; + CC11A163D3F74290FE540D1BBAA9C518 /* RDEPUBTextBookCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF164505A477C6ED40FE8EF0CB2E6693 /* RDEPUBTextBookCache.swift */; }; CC8B8F3D758E98B51F69EDFAA69663A4 /* NSString+HTML.h in Headers */ = {isa = PBXBuildFile; fileRef = DC7D3AB85C954DA41E1500936C166C0E /* NSString+HTML.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CCC0BA8885804092995A8C2F0A719E36 /* Entry+ZIP64.swift in Sources */ = {isa = PBXBuildFile; fileRef = 288589D0B52F73505B43C743D9837578 /* Entry+ZIP64.swift */; }; - CCDC8842EA30D3F77DD6F88CE1A1849D /* RDEPUBFixedLayoutTemplate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8184024038D8B93BD22ECAAB863B41D9 /* RDEPUBFixedLayoutTemplate.swift */; }; - CD98679C55356A6F98EFE3ABD712C514 /* RDEPUBReaderEnvironment.swift in Sources */ = {isa = PBXBuildFile; fileRef = E9204AAD895ABE21EE8841D0A495C916 /* RDEPUBReaderEnvironment.swift */; }; - CDD7242E39535B3C2E99C29FBC132189 /* DTHTMLParser.h in Headers */ = {isa = PBXBuildFile; fileRef = CB2BD1F8CFECB82D427DF046439E68D6 /* DTHTMLParser.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CDE3205D4F1E8D99CE2BE54F2505133F /* RDEPUBTextContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9435D40191E13E2949BA08196EFE296F /* RDEPUBTextContentView.swift */; }; + CE5D85573015B5EF9AA8A9F512239835 /* NSURL+DTUnshorten.h in Headers */ = {isa = PBXBuildFile; fileRef = ACA6D26B26D2653D6E1C871A482BD6DF /* NSURL+DTUnshorten.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CE60D90670F8D3049025C34F2CA4A172 /* RDEPUBReaderTheme.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0DC061242C98566FE767A2179BE8D9A9 /* RDEPUBReaderTheme.swift */; }; + CE737F28C68393FDC49DD943ADB95015 /* RDEPUBSelectionLoupeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD431E9FF16247D6AFF1148D33F06DEA /* RDEPUBSelectionLoupeView.swift */; }; CFC49467FE75BFABC22A1CE2FFA26570 /* DTImage+HTML.m in Sources */ = {isa = PBXBuildFile; fileRef = CF1CED3ED65443999913BC0D96ACA151 /* DTImage+HTML.m */; }; - D0500D64054753A876D60373E284FD28 /* RDEPUBTextLayoutFrame.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5F50EBEDFE92D5373F3FD62727F74BDE /* RDEPUBTextLayoutFrame.swift */; }; + D040A70EB575CF6ECE381FD408BD42B2 /* RDEPUBPageCountCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4912F524E40CC6107099AB780A0E0BF /* RDEPUBPageCountCache.swift */; }; D063317214AFF5143D9C958E5FAFBB38 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B50104DE2E35D820ECA22CDB3E6F96EA /* Foundation.framework */; }; + D118781E14C557A8428DB61DFECB6CC2 /* RDEPUBCFIRange.swift in Sources */ = {isa = PBXBuildFile; fileRef = EF4AF0ABB6117B18C8AE08E883BEA7C6 /* RDEPUBCFIRange.swift */; }; + D1744173283F238280FBFDFA6FAC791A /* Archive+Progress.swift in Sources */ = {isa = PBXBuildFile; fileRef = DE83356F8FBC1801D29CA93C1A190D81 /* Archive+Progress.swift */; }; D1A93B2D7F1B312755C48790338D7712 /* DTIframeTextAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = BA8A527A4CCB2AF1C1E26744B301F6B8 /* DTIframeTextAttachment.m */; }; + D1E238CAEA8D1BE33C0D7EC543A66665 /* DTHTMLParser.h in Headers */ = {isa = PBXBuildFile; fileRef = CB2BD1F8CFECB82D427DF046439E68D6 /* DTHTMLParser.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D20113877C525B2FA078EEDB723906D9 /* RDEPUBChapterLocation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C5CA885255B08C8AD10778C62071BCD /* RDEPUBChapterLocation.swift */; }; + D2232DDB9C06A5F370FBE1CF4F022992 /* NSArray+DTError.h in Headers */ = {isa = PBXBuildFile; fileRef = C7E09A6C247D465CA0EF71B939B2A040 /* NSArray+DTError.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D299C2B1A237A61C7DDE0C52371D0AAB /* RDReaderContentCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 76919E99E9F16C30FA06F643643AA997 /* RDReaderContentCell.swift */; }; + D2F1AEC45494E9E795B6D06C06FC0E61 /* Date+ZIP.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18D23D8D10719754D93032F66EB98536 /* Date+ZIP.swift */; }; + D402B6E51343FEA249C715ED3FC6689A /* RDEPUBReaderChapterListController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 570429F8DD1951A554862120993C46B1 /* RDEPUBReaderChapterListController.swift */; }; + D43F2636F9AEA19B2933A6C4B71E7D44 /* RDEPUBReaderController+ExternalLinks.swift in Sources */ = {isa = PBXBuildFile; fileRef = A16FEBBEDD32F8EAE312AADBE815BF49 /* RDEPUBReaderController+ExternalLinks.swift */; }; + D512CC6A4C2AF2DE2B950125BD900706 /* Entry.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0D93C2002AAECD29B3ED5A14026D3DFE /* Entry.swift */; }; D526E03C098DA6CF8F01C1BC126C9BBA /* DTCoreText-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 13F8FC8B51AD434F5D4B0CF5150D7563 /* DTCoreText-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D60B799B41BE4B575A3C4CCEB4FAB0FF /* RDEPUBParser.swift in Sources */ = {isa = PBXBuildFile; fileRef = B38D5053661772BF3BDE06F5357B5A96 /* RDEPUBParser.swift */; }; - D62F0FFD57165636F2C5E74D2550604E /* RDEPUBReaderPaginationCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = F60ACBD9B441413B14468B1BFA1F7C6F /* RDEPUBReaderPaginationCoordinator.swift */; }; - D650EC467B29EB175C9588C57079205A /* RDEPUBWebView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 56EA8C75C7045AF8F04F2D56ACA2A18B /* RDEPUBWebView.swift */; }; - D7CB1C23334ED2DD8CFC33FBE80D2C92 /* ZIPFoundation-ZIPFoundation_Privacy in Resources */ = {isa = PBXBuildFile; fileRef = CA4A114775B98CEA4A566C18123B145F /* ZIPFoundation-ZIPFoundation_Privacy */; }; + D5C798C8EC872BADE62917619D1DF400 /* RDEPUBRuntimeChapter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 579B1DD9DCEE9A1C8B88EB7D4FC7328B /* RDEPUBRuntimeChapter.swift */; }; + D6139C08D650C40629D29CE3B04263F2 /* RDEPUBBookPageMap.swift in Sources */ = {isa = PBXBuildFile; fileRef = 83E9A6D890549C856C0277BE3A9B01A4 /* RDEPUBBookPageMap.swift */; }; + D7E9F39F5A7AF9C7170ACBC890EE55DB /* RDEPUBCFIResolver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 418CF402E2B3A6359A720876AF83E1F3 /* RDEPUBCFIResolver.swift */; }; D82DDA4C1E5C4D5378A9E5EA3F8E9DFE /* DTBreakHTMLElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 14283024FA4A0231B32CA22AA907FEFA /* DTBreakHTMLElement.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D87E35AEA840419649DB90B3A656E758 /* RDReaderGestureController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2B8072609EF1BA68F2BF57A0E3A915FB /* RDReaderGestureController.swift */; }; - DA24A683019CA05950C1966B20AD3B15 /* UIScreen+DTFoundation.h in Headers */ = {isa = PBXBuildFile; fileRef = 9C5E29D728B8CD4EABC0B3DD9CD9DE99 /* UIScreen+DTFoundation.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DA2B1C25CEFDE2A9962BBC9F853D7E34 /* RDEPUBPageInteractionController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FC3BE6BBB4EBD99FF9124BA8E599520 /* RDEPUBPageInteractionController.swift */; }; - DA4D0BF0FDEBBCF68DC7D6C554951F46 /* RDEPUBChapterLocation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 78739A559E3A2EA9FA4A1C17B16746DC /* RDEPUBChapterLocation.swift */; }; + DA090B9ED29C67FCC620AAE26A6DFC2A /* RDEPUBWebView+JavaScriptBridge.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1D24B9DBA8D8A1B00CEF2E2238C16681 /* RDEPUBWebView+JavaScriptBridge.swift */; }; DA5B51E5D80C161D2902B6FC60DA5EC8 /* DTImageTextAttachment.h in Headers */ = {isa = PBXBuildFile; fileRef = 27372A23AA4B051867E7D2C749D1DE81 /* DTImageTextAttachment.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DABA6DF4CDB6C3098DDB1972D9B8D47F /* DTExtendedFileAttributes.h in Headers */ = {isa = PBXBuildFile; fileRef = 2F75437CE9F9324D315E417014797C1D /* DTExtendedFileAttributes.h */; settings = {ATTRIBUTES = (Public, ); }; }; DAD16D3E6EBB32FF96C63BFE6037065F /* DTLinkButton.m in Sources */ = {isa = PBXBuildFile; fileRef = CE761A55BD57C0BFD6336CD073F85C31 /* DTLinkButton.m */; }; - DB121A63241654223079E203F3539ACE /* UIScreen+DTFoundation.m in Sources */ = {isa = PBXBuildFile; fileRef = AF436E76C893E223A4F0BE86C1276054 /* UIScreen+DTFoundation.m */; }; + DB584734160C920EAC6C819D8F05CA23 /* RDEPUBTextPageDecorationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 53B7AB6E967C804E556A13DA6CC254A0 /* RDEPUBTextPageDecorationView.swift */; }; + DB860EFC2F1DB67CE1160CEEAA78FB57 /* RDEPUBWebView+Configuration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 843CB00ED0D033E72DD79F0B27BE82E0 /* RDEPUBWebView+Configuration.swift */; }; + DBBA4E0A5CC421EEDAB45FDBF7A90906 /* RDReaderPageChildViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB3DF251DDD78EDAEE82FBEBDF9CE79B /* RDReaderPageChildViewController.swift */; }; DBCA42F7E1697F4EC82E0E7C9657851D /* DTAttributedTextCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 068885F1B54CFD5DBBE6E2DC253F7819 /* DTAttributedTextCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; DC3E2932A82AD5D88D8B1EFBF004BEC8 /* DTCSSListStyle.m in Sources */ = {isa = PBXBuildFile; fileRef = 40FD7C9E2E05FB4A73F4C4C70A3AFAF0 /* DTCSSListStyle.m */; }; - DC43DD003EAA9A027363E201898A4C54 /* Archive+Progress.swift in Sources */ = {isa = PBXBuildFile; fileRef = DE83356F8FBC1801D29CA93C1A190D81 /* Archive+Progress.swift */; }; - DC5237C283BD4408F2E478D6C4FEA6B2 /* RDEPUBRenderRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8F25D7766B9F7B666C309052CA726A7B /* RDEPUBRenderRequest.swift */; }; + DC9CA5F234D2AA505F70686BAC03C27B /* rangy-serializer.js in Resources */ = {isa = PBXBuildFile; fileRef = 25E8E62C9DC0A4AE49F168F04CF8B9D3 /* rangy-serializer.js */; }; DD73CD0E5148961D1ABD80E050122314 /* DTCoreTextFunctions.h in Headers */ = {isa = PBXBuildFile; fileRef = DA2ED17D0DDF5F1C5606BFFD9A512DE4 /* DTCoreTextFunctions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DE3267C28E5F163C748DF648D172EE2C /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B50104DE2E35D820ECA22CDB3E6F96EA /* Foundation.framework */; }; - DE3BF24CA186AAA2CC673A2BADE2AFA1 /* RDEPUBTextLayouter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6C6DCF8FFFAD317C3CA1AEFF60080707 /* RDEPUBTextLayouter.swift */; }; + DDBA184A2654FDBC731798EF79052111 /* RDEPUBReadingSession.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0DE6AC16B3AE09561A7557F826881E3D /* RDEPUBReadingSession.swift */; }; + DDE3BF42B0D4938C6E1B125885F69A35 /* RDReaderViewProtocols.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1058DD74F97F43193DBA11E135ACFF22 /* RDReaderViewProtocols.swift */; }; DE68AD2F426FD462BC70F968E5AF5553 /* DTTextAttachmentHTMLElement.m in Sources */ = {isa = PBXBuildFile; fileRef = AC0A4ED7E936923A29A5EEB1D95D6B55 /* DTTextAttachmentHTMLElement.m */; }; DFB5A1C64C7908FD05BEFF7C7B571353 /* DTAttributedLabel.h in Headers */ = {isa = PBXBuildFile; fileRef = 09FF858DC29B73E9B67B32B03CFF4084 /* DTAttributedLabel.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DFDD4F5DEA73A0F97F9B8CEE84973A14 /* DTFolderMonitor.h in Headers */ = {isa = PBXBuildFile; fileRef = A8CC38EFEF171FFEE008C32A6319BE6A /* DTFolderMonitor.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E075024A8D760FB1935ACBD81E84F329 /* RDEPUBBookPageMap.swift in Sources */ = {isa = PBXBuildFile; fileRef = E6801C4BFA1DBBC56523D5D3F427E8DB /* RDEPUBBookPageMap.swift */; }; - E187AB7F2733DF034CE8668C1AE062F6 /* DTActivityTitleView.m in Sources */ = {isa = PBXBuildFile; fileRef = 662D30C1E74D1D5122921475F4024F73 /* DTActivityTitleView.m */; }; + DFC8567EED9764161A51DB808255D041 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0834E84632886CDD9911CAB76183F1CE /* QuartzCore.framework */; }; E1DA58105A72D6C0B77A8A9F7822BD68 /* DTCoreTextLayoutFrame.m in Sources */ = {isa = PBXBuildFile; fileRef = 4641C3C93CE32054665ACF80457A7A94 /* DTCoreTextLayoutFrame.m */; }; - E211604C7EBF2A9552938DE714DCEB4F /* UIApplication+DTNetworkActivity.m in Sources */ = {isa = PBXBuildFile; fileRef = 730B56BC97DFF2B1E04DD2608055D9E0 /* UIApplication+DTNetworkActivity.m */; }; - E2A039DEE00E19644C9723F195BF80EC /* RDReaderSpreadResolver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1BDECCF30428456DD69F6D870693248C /* RDReaderSpreadResolver.swift */; }; E38FC7829B5BDD1588FA487E0FBAC208 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B50104DE2E35D820ECA22CDB3E6F96EA /* Foundation.framework */; }; - E3DFC2B50D4914F6FE69A6A770A8A837 /* UIApplication+DTNetworkActivity.h in Headers */ = {isa = PBXBuildFile; fileRef = 55423549E54A01F039B5F379B264C73F /* UIApplication+DTNetworkActivity.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E42412F34F904022FAD5ED27F09BC3D2 /* RDEPUBTextSearchEngine.swift in Sources */ = {isa = PBXBuildFile; fileRef = 477676C456F623C8A33D40A533FA960D /* RDEPUBTextSearchEngine.swift */; }; - E450259DBA3997365A02AE5501CCC6FF /* RDEPUBAttachmentTooltipView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 59B2B1356107877296E9D282AE94CB05 /* RDEPUBAttachmentTooltipView.swift */; }; - E575E69F9286412E8ED2D26A367C5993 /* RDEPUBReaderBottomToolView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5629838A35BA6A3F2895CFDE6A5FE0B /* RDEPUBReaderBottomToolView.swift */; }; - E7160A3E14A6F4EF789C499852B0EC6A /* RDEPUBResourceURLSchemeHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A317B397274A6DAD784080981649FAC /* RDEPUBResourceURLSchemeHandler.swift */; }; - E73B999DB940594604D5FF8ADEC0EBBC /* rangy-serializer.js in Resources */ = {isa = PBXBuildFile; fileRef = 9DF9B7EF7992895E4AA2E398522498BC /* rangy-serializer.js */; }; - E74119D71F7BA53C6ED117180A9B7C76 /* RDEPUBReaderContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4931FAB1E86E9A03A8ACEB033B58F5E3 /* RDEPUBReaderContext.swift */; }; - E7BF39112456E5806CBFA1D998740944 /* RDEPUBReaderPersistence.swift in Sources */ = {isa = PBXBuildFile; fileRef = BC1BAC41A213B19789028A9648DD5BD6 /* RDEPUBReaderPersistence.swift */; }; - E7ECCDF9AA9BF1B385231D19C7167CA3 /* DTCustomColoredAccessory.m in Sources */ = {isa = PBXBuildFile; fileRef = 9542AFE3A82C8AE56576254CE196E71A /* DTCustomColoredAccessory.m */; }; + E56D82B0707AAD37277F90302EA4A4C4 /* RDEPUBModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4646F47318195C5CDADF0D93A4A2FC91 /* RDEPUBModels.swift */; }; + E5B7FC56FA951AD4542B3EC0EBB7C6A6 /* DTSmartPagingScrollView.m in Sources */ = {isa = PBXBuildFile; fileRef = A20F6F0463A998DC3BD53DE9E63B63DE /* DTSmartPagingScrollView.m */; }; + E63936A1FBECCD5431B219748E9652B7 /* RDReaderView-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 9D28F67E16027AF4FA4F9D501C4D0712 /* RDReaderView-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E6E0FEA82C76D2AD4209048886206854 /* RDEPUBSearchEngine.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6B24B2EBB40F90487F5EF3A6451834A8 /* RDEPUBSearchEngine.swift */; }; + E85C78871193D79CF936573FC5F1136B /* RDEPUBReaderPaginationCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = E7F6AAF70ED1162640040B9969BBE6D5 /* RDEPUBReaderPaginationCoordinator.swift */; }; E8AB5CE26A5224EF09E9E363D70C7775 /* DTDictationPlaceholderView.m in Sources */ = {isa = PBXBuildFile; fileRef = 1FA88D00B7B2B2F0BA98BB92DF035906 /* DTDictationPlaceholderView.m */; }; - E9ACCCDF0303E912403C573C32CCC86B /* RDEPUBWebContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5457E010B7ABAB0EA8F28377908D1F23 /* RDEPUBWebContentView.swift */; }; + E8E67096ED90348922DD8A3D1E4B92B6 /* RDURLReaderController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3ECA70C45BE80D444EBFE0DA40424702 /* RDURLReaderController.swift */; }; + E90131918E21F84D6E5CBFA20E27E5ED /* RDEPUBPresentationRuntime.swift in Sources */ = {isa = PBXBuildFile; fileRef = 72C909891BE902A0BB13D4A142EE982F /* RDEPUBPresentationRuntime.swift */; }; EA0040823CCF8E97363DB5891F5DA6D0 /* DTCoreTextFunctions.m in Sources */ = {isa = PBXBuildFile; fileRef = 4917E08E6E59460594AC443EDDAB7E77 /* DTCoreTextFunctions.m */; }; - EAD57CBB41E96A1BF02C7BAF39845FD0 /* RDEPUBDTCoreTextRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = A601AB41E9B4878B34FC3380355F8DD9 /* RDEPUBDTCoreTextRenderer.swift */; }; + EACD47B345480FC9DE37F1BBEBC3E6E8 /* DTCustomColoredAccessory.m in Sources */ = {isa = PBXBuildFile; fileRef = 9542AFE3A82C8AE56576254CE196E71A /* DTCustomColoredAccessory.m */; }; + EAF560B47F3FBA36DB7C1690D2155C24 /* RDEPUBReaderServices.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC8B39E69CFC5D4DD1D47A29F6D9E852 /* RDEPUBReaderServices.swift */; }; EBB7E4D4DB253B5F1267CF9B4DDB4E93 /* DTCoreTextFontDescriptor.m in Sources */ = {isa = PBXBuildFile; fileRef = 88464D2E3579F1A5B25DCCA128528938 /* DTCoreTextFontDescriptor.m */; }; - EC3AAE6DEC73415B7A749A9D7ED1D1A2 /* DTLog.m in Sources */ = {isa = PBXBuildFile; fileRef = 199E2ECC77BDAC03F644C20040F042D4 /* DTLog.m */; }; - EC832377DBB2E3443B37165DDDD9F9D6 /* RDEPUBReaderState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5D74C449E9554743E9908B79188DB9BC /* RDEPUBReaderState.swift */; }; - EC88499170030571BD9326F9EB05204C /* RDEPUBTextBookModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B33491F27938C7846CEB7246FC4B96C /* RDEPUBTextBookModels.swift */; }; + EC2221DF39BF4ABE42B4D74B98EE26BD /* DTPieProgressIndicator.m in Sources */ = {isa = PBXBuildFile; fileRef = 8BA617294E6371DD7FAC32B61E0873F2 /* DTPieProgressIndicator.m */; }; EDA269B595D70EC2B9D81DC890157D63 /* DTAccessibilityViewProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = 399AED6BF151EC39BE4450784795A832 /* DTAccessibilityViewProxy.h */; settings = {ATTRIBUTES = (Public, ); }; }; EE4F0992A0F597320FF7BDE4691D0FD4 /* NSString+CSS.h in Headers */ = {isa = PBXBuildFile; fileRef = 3578B97A85BCDC60888FDF87B8F2600C /* NSString+CSS.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EFE445E56D466D8A8B40FD6BDE4CE778 /* RDEPUBReaderController+TableOfContents.swift in Sources */ = {isa = PBXBuildFile; fileRef = DE93E7F2D03E5848ADB6C91620D5A245 /* RDEPUBReaderController+TableOfContents.swift */; }; F006F73F17F2E3CC0E7852E9357BA946 /* DTAnchorHTMLElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 599172147A32B6978EB5AAE1BE55FF7A /* DTAnchorHTMLElement.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F0A3BF24E4999B7D909E632B19150FB2 /* NSString+DTURLEncoding.h in Headers */ = {isa = PBXBuildFile; fileRef = CEEC8715398E89B42F9B04E290E8E4FE /* NSString+DTURLEncoding.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F0CC9ADA3DC9C7D3780646C7B31BBBDC /* RDEPUBParser.swift in Sources */ = {isa = PBXBuildFile; fileRef = EFFC77747115ACAF9EE13A1CEAEEA539 /* RDEPUBParser.swift */; }; F0F631056BADA32253528247DF493272 /* DTHTMLElement.h in Headers */ = {isa = PBXBuildFile; fileRef = F7C508BE899A1397560A767CAEADB7B9 /* DTHTMLElement.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F19DCC1F1A6D50AAAE2CDB35DC9328BF /* RDEPUBReaderController+ExternalLinks.swift in Sources */ = {isa = PBXBuildFile; fileRef = F788C862D0C386B17128DB735921333C /* RDEPUBReaderController+ExternalLinks.swift */; }; - F1C2AEADA00E8EB7EBFE3AE1B3D75CC1 /* RDEPUBReaderConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = A1E58E922721839C1D9E53D2DFA357A8 /* RDEPUBReaderConfiguration.swift */; }; - F35B12C3787F02C121BEF6ED16B69605 /* cssInjector.js in Resources */ = {isa = PBXBuildFile; fileRef = 5BE399D4DCDB9643D809264D6D5319B2 /* cssInjector.js */; }; - F388DEF5AC1D6F6267025046B37645A7 /* RDEPUBReaderController+RenderSupport.swift in Sources */ = {isa = PBXBuildFile; fileRef = 338AA349594E53D0CF40F957CAC5D6BC /* RDEPUBReaderController+RenderSupport.swift */; }; + F12A5C7183CC8152D0A36E1C7963E139 /* RDEPUBChapterDataCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3667CE400B3A606C7BE2D736B10AB546 /* RDEPUBChapterDataCache.swift */; }; + F33B238CDBEAE3BA81136D519B27483A /* RDEPUBPaginationCacheCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3008F6944BA740CD6E6F5CA33733C911 /* RDEPUBPaginationCacheCoordinator.swift */; }; F4A2E3C4237B8931F61B72FF0BDD6D69 /* DTObjectTextAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EDA1618562CC224690CF6FC03AFED38 /* DTObjectTextAttachment.m */; }; - F54455C0ECA25680B1A0D16909BA0907 /* RDEPUBReaderDependencies.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51852C93D034EBE5B7907AA4E69848A1 /* RDEPUBReaderDependencies.swift */; }; + F50A5A2A8E51049641FDFEC90E76F1B9 /* RDEPUBReaderController+RuntimeBridge.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6B2DF9409FC76691EAC579DDF7247899 /* RDEPUBReaderController+RuntimeBridge.swift */; }; + F580E10ABA4F035DD6C016EF8E917F2C /* RDReaderTapRegionHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9C1B2F1D8E3F93A60375AA8853FF1842 /* RDReaderTapRegionHandler.swift */; }; + F582DBD2110DC7E2BD25731A220D85FA /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 006D002D86B43AA52E0AFD2E18459107 /* PrivacyInfo.xcprivacy */; }; F58ABA106C6200175DF574DF05A75BA8 /* DTAccessibilityElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 18F842408AB76A580B80255453F2FDF6 /* DTAccessibilityElement.m */; }; F5A424E67F41C4F7B830CE2F7E71570D /* DTCoreText-Resources in Resources */ = {isa = PBXBuildFile; fileRef = F4E2B1AC73977F10254628C0B7EBE38F /* DTCoreText-Resources */; }; F6036BBDFE7484F5A453F6876C97C098 /* NSAttributedString+SmallCaps.m in Sources */ = {isa = PBXBuildFile; fileRef = 98CF9C5D504838741E399811F4D5A0B7 /* NSAttributedString+SmallCaps.m */; }; F61102C9BF3D6296CB6C6B754ABF98C5 /* DTTextHTMLElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 69076FC9D4201719C319547346DA3E21 /* DTTextHTMLElement.m */; }; - F6259670F9185E3EEF80D68DB4B19D64 /* DTTiledLayerWithoutFade.h in Headers */ = {isa = PBXBuildFile; fileRef = 0764D155F69503AACFA7AD976825E986 /* DTTiledLayerWithoutFade.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F642FBE5D97AA4DFBBAC2AF5CBD0780A /* NSFileWrapper+DTCopying.h in Headers */ = {isa = PBXBuildFile; fileRef = B43D7603C0D66635268842EC0A2655AC /* NSFileWrapper+DTCopying.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F702422D9C4B27174535764C70C04D70 /* DTCompatibility.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F653EFBBEDAAC96A34BC93B4211E792 /* DTCompatibility.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FA5621BECD8E9EF46C9C812FAEE37D60 /* DTFoundationConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = FF63F5E8902D6F3F5E845A924EBBC6D3 /* DTFoundationConstants.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FA898C80CF990AAD44D03448E7664729 /* UIImage+DTFoundation.m in Sources */ = {isa = PBXBuildFile; fileRef = 499E135F1FEB31C26EB0EF793A90086C /* UIImage+DTFoundation.m */; }; - FBACC93C50F20F2E8F2EC12D2D107DFA /* NSURL+DTAppLinks.m in Sources */ = {isa = PBXBuildFile; fileRef = 3453CFB9BDBF6F9D0937EDF5FB2BD07B /* NSURL+DTAppLinks.m */; }; + F97B3F528A2B7417D2843479548CDF40 /* UIApplication+DTNetworkActivity.h in Headers */ = {isa = PBXBuildFile; fileRef = 55423549E54A01F039B5F379B264C73F /* UIApplication+DTNetworkActivity.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F9959EB035DFB0335495915F6A4DF232 /* RDEPUBCFIDOMPathBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 54F135677B8806216984881B2333BF4E /* RDEPUBCFIDOMPathBuilder.swift */; }; + F9ADC220D598CC27EF1B9F8277966E01 /* NSURL+DTAppLinks.h in Headers */ = {isa = PBXBuildFile; fileRef = A3F7613E99CAA29881A015D0ED969B86 /* NSURL+DTAppLinks.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F9AE08B54720440E62FC671424610C66 /* RDEPUBCFIRecoveryEngine.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2FBB458EDD978CBC54464EA28336F977 /* RDEPUBCFIRecoveryEngine.swift */; }; FC5F52919451A15639442B46B38E4C67 /* DTCoreTextLayoutFrame+Cursor.m in Sources */ = {isa = PBXBuildFile; fileRef = EF625CF6A790938F5CE0F0C7DC36E340 /* DTCoreTextLayoutFrame+Cursor.m */; }; FD5D68887297CFA94F543C49DC68A156 /* DTHTMLAttributedStringBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = E0192469A486DA7CECFECEA37518B6B9 /* DTHTMLAttributedStringBuilder.m */; }; - FE4A1F4E3837E84BC4CB37947AB56283 /* NSString+DTFormatNumbers.h in Headers */ = {isa = PBXBuildFile; fileRef = A3BD3ED7913130D32E14D5572CBCC921 /* NSString+DTFormatNumbers.h */; settings = {ATTRIBUTES = (Public, ); }; }; FEB00C614DCB6A8A7BDF8DEE11260984 /* NSMutableAttributedString+HTML.m in Sources */ = {isa = PBXBuildFile; fileRef = 7CA72FA9A4F2F42A75C58325738A44AC /* NSMutableAttributedString+HTML.m */; }; - FF2AF67ED01DD3C78822AF567FC64051 /* RDEPUBWebView+JavaScriptBridge.swift in Sources */ = {isa = PBXBuildFile; fileRef = EEB9B65684CB76F24E68191D6A5844D0 /* RDEPUBWebView+JavaScriptBridge.swift */; }; + FF183068DF62B1D2A61F46EA03A88FCB /* RDEPUBStyleSheetComposer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 361565CCC385512EA14A6A2C9CFAF08B /* RDEPUBStyleSheetComposer.swift */; }; + FFB1EA7B10054C49F85A561AF4A8D94B /* Data+Serialization.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9C3615C94C147AEA92F022E119810E9F /* Data+Serialization.swift */; }; FFEB74D61E54DC46EFE0DBE2E76EFAA1 /* Pods-ReadViewDemo-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = EBA0272559B0F7FAD8AC670AC7431188 /* Pods-ReadViewDemo-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - 077B82F75DD704BB3F3D60FB9454BDD5 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 8F6E5A5BF72D62CDFD25F91A7CFA3309; - remoteInfo = DTFoundation; - }; - 0D040B1696E237AC90129FBF5F045668 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 0C24CB0E87A728A11AA1124CB360D6A1; - remoteInfo = "DTCoreText-Resources"; - }; - 4C44EA9D067E5F15FC4C82C5DCEFF85E /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = AE7F393FB7805DE2664AB4111873F907; - remoteInfo = "RDReaderView-RDReaderViewAssets"; - }; - 618E065085B263D2E1799C600289EB6E /* PBXContainerItemProxy */ = { + 1756F289E5867FF7989F61502D8E61E6 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; remoteGlobalIDString = AA2E57587AA8EECA63C4BE08EA3CB6D2; remoteInfo = RDReaderView; }; - 782CA4FFE40915340FFE27E8241A14BF /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = B88F4EA0695B6B3165C64594850D72C7; - remoteInfo = DTCoreText; - }; - 7E334ACAA496278856830A5E289D889E /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = B88F4EA0695B6B3165C64594850D72C7; - remoteInfo = DTCoreText; - }; - 95D435994BF2E09ED48E93B3EA046E5D /* PBXContainerItemProxy */ = { + 1D36C48BC78E85DBB1B5B5C63364A539 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; remoteGlobalIDString = AA15C8469D67684160CC2A7098EB841C; remoteInfo = ZIPFoundation; }; - 9FCD52B645EFFA5837720169D29D5E80 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = C7A8D82E407CD3FDC3BA55CEE519B252; - remoteInfo = "ZIPFoundation-ZIPFoundation_Privacy"; - }; - A392AC630ADF96D856B6EEBAAD3FFB9D /* PBXContainerItemProxy */ = { + 291EF29F5CECA009529D76F9FE26B4B9 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; remoteGlobalIDString = 8F6E5A5BF72D62CDFD25F91A7CFA3309; remoteInfo = DTFoundation; }; - A5D83DA5C53D3731426918AC75105BE3 /* PBXContainerItemProxy */ = { + 3AEFBA1AE6539AC7A3DA5FA7CF3F7885 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = C7A8D82E407CD3FDC3BA55CEE519B252; + remoteInfo = "ZIPFoundation-ZIPFoundation_Privacy"; + }; + 74636C5DF9567077F30C787E0823DE39 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; remoteGlobalIDString = AA15C8469D67684160CC2A7098EB841C; remoteInfo = ZIPFoundation; }; + 7AD1BAAD6E745A14A9201807DB7B6F66 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 0C24CB0E87A728A11AA1124CB360D6A1; + remoteInfo = "DTCoreText-Resources"; + }; + 99F356F4CC2B773149744B1DE33A5ED9 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = AE7F393FB7805DE2664AB4111873F907; + remoteInfo = "RDReaderView-RDReaderViewAssets"; + }; + B1FC0CCED6BCAC632379DDDD199C72EA /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = B88F4EA0695B6B3165C64594850D72C7; + remoteInfo = DTCoreText; + }; + C8DB32812641B809F4A0DAC443C5EAA0 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = B88F4EA0695B6B3165C64594850D72C7; + remoteInfo = DTCoreText; + }; + CEF5C9FADEA582571424EA2F8593ACD3 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 8F6E5A5BF72D62CDFD25F91A7CFA3309; + remoteInfo = DTFoundation; + }; /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ 006D002D86B43AA52E0AFD2E18459107 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = Sources/ZIPFoundation/Resources/PrivacyInfo.xcprivacy; sourceTree = ""; }; - 00D963091969DCF978D7A36BF2747D33 /* RDEPUBTextAnchor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextAnchor.swift; sourceTree = ""; }; - 01B6F1C44AED0554A533AF8573303A47 /* RDEPUBReaderChromeCoordinator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderChromeCoordinator.swift; sourceTree = ""; }; - 02B465B0AB9FB857FB2C95097E1C4D46 /* RDEPUBPageBreakPolicy.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBPageBreakPolicy.swift; sourceTree = ""; }; - 02DDA7AD723C7FEB0B80B0C573EAE679 /* RDEPUBCFIGenerator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBCFIGenerator.swift; sourceTree = ""; }; - 03574AB570F840F4A14B53F85023DBAA /* RDEPUBChapterTailNormalizer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBChapterTailNormalizer.swift; sourceTree = ""; }; + 02946CDDA8033AFAA82187D50800FEA8 /* ResourceBundle-RDReaderViewAssets-RDReaderView-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-RDReaderViewAssets-RDReaderView-Info.plist"; sourceTree = ""; }; 0372FD1824BC43F7BD6B337430201420 /* DTCoreGraphicsUtils.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTCoreGraphicsUtils.m; path = Core/Source/DTCoreGraphicsUtils.m; sourceTree = ""; }; 044BEA679671E16EA9BA9AD627750742 /* NSMutableAttributedString+HTML.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSMutableAttributedString+HTML.h"; path = "Core/Source/NSMutableAttributedString+HTML.h"; sourceTree = ""; }; 045ADBF2087ADD914A9CA0B62EBF2A9F /* Pods-ReadViewDemo.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-ReadViewDemo.modulemap"; sourceTree = ""; }; - 047D134F34D6BDEFF3403095EA60155C /* RDEPUBViewportTypes.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBViewportTypes.swift; sourceTree = ""; }; 057DBFBFC99448A0B77A3C0DBB13B4A9 /* NSScanner+HTML.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSScanner+HTML.m"; path = "Core/Source/NSScanner+HTML.m"; sourceTree = ""; }; 05838D65DEC339C51AADB17346B7E287 /* NSDictionary+DTError.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSDictionary+DTError.h"; path = "Core/Source/NSDictionary+DTError.h"; sourceTree = ""; }; - 05B6FB8AE3D884ED289049A7E125D668 /* RDEPUBChapterCacheKey.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBChapterCacheKey.swift; sourceTree = ""; }; + 05ECE185AAFC5A857734DF5495F8E7C2 /* RDEPUBCFIMarkerInjector.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBCFIMarkerInjector.swift; sourceTree = ""; }; + 06733E30802CA08ACF312C763BD37795 /* RDEPUBTextSearchEngine.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextSearchEngine.swift; sourceTree = ""; }; 068885F1B54CFD5DBBE6E2DC253F7819 /* DTAttributedTextCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTAttributedTextCell.h; path = Core/Source/DTAttributedTextCell.h; sourceTree = ""; }; - 06D709090C07C72DEEF74D75E06AD845 /* RDReaderView-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "RDReaderView-Info.plist"; sourceTree = ""; }; 0764D155F69503AACFA7AD976825E986 /* DTTiledLayerWithoutFade.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTTiledLayerWithoutFade.h; path = Core/Source/iOS/DTTiledLayerWithoutFade.h; sourceTree = ""; }; + 0786D6430A29C2F90E4832048559BE21 /* RDReaderSpreadResolver.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDReaderSpreadResolver.swift; sourceTree = ""; }; + 07C08997AE3D75194E400010A0AE4820 /* RDEPUBTextLayoutFrame.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextLayoutFrame.swift; sourceTree = ""; }; 0834E84632886CDD9911CAB76183F1CE /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/QuartzCore.framework; sourceTree = DEVELOPER_DIR; }; - 08EB5C6310B7F9040732D6E905650432 /* RDEPUBReaderToolView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderToolView.swift; sourceTree = ""; }; + 0886011FDDE07A5C7BBC2168C401EAD2 /* RDEPUBAttachmentTooltipOverlayView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBAttachmentTooltipOverlayView.swift; sourceTree = ""; }; 08F54C3D9B4AECA08A47309615DC2715 /* DTFoundation-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "DTFoundation-prefix.pch"; sourceTree = ""; }; + 091E53DC8215AED45D88A2ABA24A2140 /* epub-bridge.js */ = {isa = PBXFileReference; includeInIndex = 1; name = "epub-bridge.js"; path = "Sources/RDReaderView/EPUBCore/Resources/epub-bridge.js"; sourceTree = ""; }; 09FF858DC29B73E9B67B32B03CFF4084 /* DTAttributedLabel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTAttributedLabel.h; path = Core/Source/DTAttributedLabel.h; sourceTree = ""; }; - 0A317B397274A6DAD784080981649FAC /* RDEPUBResourceURLSchemeHandler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBResourceURLSchemeHandler.swift; sourceTree = ""; }; - 0B33491F27938C7846CEB7246FC4B96C /* RDEPUBTextBookModels.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextBookModels.swift; sourceTree = ""; }; + 0AE0BE26FBA95F74B6173965BEC302EB /* RDEPUBSemanticMarkerInjector.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBSemanticMarkerInjector.swift; sourceTree = ""; }; 0B8321AB80CFE0B94537AEA63E9A79F5 /* NSString+Paragraphs.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSString+Paragraphs.h"; path = "Core/Source/NSString+Paragraphs.h"; sourceTree = ""; }; 0C24F592C4F38F15DC8C46BE0442B59C /* DTCSSListStyle.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTCSSListStyle.h; path = Core/Source/DTCSSListStyle.h; sourceTree = ""; }; - 0C88B7F1F7145821C2F65514186AE335 /* RDEPUBMetadataParseWorker.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBMetadataParseWorker.swift; sourceTree = ""; }; - 0CF3A3E5A1F6B321F72FD2FF3C0AC1E1 /* RDEPUBSemanticMarkerInjector.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBSemanticMarkerInjector.swift; sourceTree = ""; }; + 0D170B1455CB3C94EFC34D7B67EDC001 /* RDReaderView+ContentAccess.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDReaderView+ContentAccess.swift"; sourceTree = ""; }; + 0D253DF65322509913DE34899979C30B /* wxread-default.css */ = {isa = PBXFileReference; includeInIndex = 1; name = "wxread-default.css"; path = "Sources/RDReaderView/EPUBCore/Resources/wxread-default.css"; sourceTree = ""; }; 0D93C2002AAECD29B3ED5A14026D3DFE /* Entry.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Entry.swift; path = Sources/ZIPFoundation/Entry.swift; sourceTree = ""; }; - 0E0D068226C4B5E614B90482A3B4AFC0 /* RDEPUBPreferences.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBPreferences.swift; sourceTree = ""; }; + 0D9C9D60B2B26F9890D35189DEBC7580 /* RDEPUBChapterRuntimeStore.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBChapterRuntimeStore.swift; sourceTree = ""; }; + 0DC061242C98566FE767A2179BE8D9A9 /* RDEPUBReaderTheme.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderTheme.swift; sourceTree = ""; }; + 0DE6AC16B3AE09561A7557F826881E3D /* RDEPUBReadingSession.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReadingSession.swift; sourceTree = ""; }; + 0E160FF00EF4B6DB318FEDCD72A026F3 /* RDEPUBDTCoreTextRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBDTCoreTextRenderer.swift; sourceTree = ""; }; + 0E5D2C72E80EF71ECCFDFE5C476ADADE /* RDReaderPreloadController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDReaderPreloadController.swift; sourceTree = ""; }; 0F80AC45FB1DBF50E0E3AA4F26BFA676 /* DTFoundationConstants.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTFoundationConstants.m; path = Core/Source/DTFoundationConstants.m; sourceTree = ""; }; - 10FC9FC44C8A038A286BF6DCD1891DA0 /* RDEPUBWebView+Reflowable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBWebView+Reflowable.swift"; sourceTree = ""; }; - 11246502ABEC1999B60B3FA41B764E7D /* RDEPUBParser+Resources.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBParser+Resources.swift"; sourceTree = ""; }; + 0FF7BBD4C881AD7327290471E9484E1F /* RDEPUBReaderLoadCoordinator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderLoadCoordinator.swift; sourceTree = ""; }; + 1058DD74F97F43193DBA11E135ACFF22 /* RDReaderViewProtocols.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDReaderViewProtocols.swift; sourceTree = ""; }; + 10617286346E2E6D7BB30203A65302CA /* RDReaderGestureController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDReaderGestureController.swift; sourceTree = ""; }; 126E6ACAC7C0427806B58DA8E10BDD78 /* NSMutableString+HTML.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSMutableString+HTML.m"; path = "Core/Source/NSMutableString+HTML.m"; sourceTree = ""; }; + 129154729E86D56457FE6DC7DEEA55B6 /* RDEPUBCFIPath.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBCFIPath.swift; sourceTree = ""; }; 1300CC5794E609DB8FBA6FFF90A09408 /* UIImage+DTFoundation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+DTFoundation.h"; path = "Core/Source/iOS/UIImage+DTFoundation.h"; sourceTree = ""; }; + 130135CFECAE1E38379F213C3C298BD1 /* RDEPUBWebView+Search.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBWebView+Search.swift"; sourceTree = ""; }; 131C1D8C96DF2D44A2D4F50C5AEFFF11 /* NSString+DTURLEncoding.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSString+DTURLEncoding.m"; path = "Core/Source/NSString+DTURLEncoding.m"; sourceTree = ""; }; 13597E7190F2C08C5906D7D128E43E99 /* DTObjectTextAttachment.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTObjectTextAttachment.h; path = Core/Source/DTObjectTextAttachment.h; sourceTree = ""; }; 13F8FC8B51AD434F5D4B0CF5150D7563 /* DTCoreText-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "DTCoreText-umbrella.h"; sourceTree = ""; }; 14283024FA4A0231B32CA22AA907FEFA /* DTBreakHTMLElement.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTBreakHTMLElement.h; path = Core/Source/DTBreakHTMLElement.h; sourceTree = ""; }; - 14826541B96FDC7B652AA313B700DABA /* RDEPUBChapterSummaryDiskCache.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBChapterSummaryDiskCache.swift; sourceTree = ""; }; 148B993AB228816D19FCB7CD13874C83 /* DTAnchorHTMLElement.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTAnchorHTMLElement.m; path = Core/Source/DTAnchorHTMLElement.m; sourceTree = ""; }; 14E63A0D35D4A07BD0123021EA161C99 /* DTHTMLWriter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTHTMLWriter.h; path = Core/Source/DTHTMLWriter.h; sourceTree = ""; }; - 15C005A2A5E6A8263DE1F99AC5D372C0 /* RDEPUBParser+ReadingProfile.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBParser+ReadingProfile.swift"; sourceTree = ""; }; - 15DDB8FAB80CF0B8039A3DCF2D1CE6F5 /* RDEPUBChapterOffsetMap.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBChapterOffsetMap.swift; sourceTree = ""; }; 173194D38C897D8E38AD8A194E47DB5C /* DTPieProgressIndicator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTPieProgressIndicator.h; path = Core/Source/iOS/DTPieProgressIndicator.h; sourceTree = ""; }; - 184CDDD009D8F4384A9E02F953B6D8B6 /* RDEPUBCFIParser.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBCFIParser.swift; sourceTree = ""; }; + 1776D2B8346E3DE2D2CFF9AA994D50DF /* RDEPUBBackgroundPriorityPolicy.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBBackgroundPriorityPolicy.swift; sourceTree = ""; }; 18D23D8D10719754D93032F66EB98536 /* Date+ZIP.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Date+ZIP.swift"; path = "Sources/ZIPFoundation/Date+ZIP.swift"; sourceTree = ""; }; 18F842408AB76A580B80255453F2FDF6 /* DTAccessibilityElement.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTAccessibilityElement.m; path = Core/Source/DTAccessibilityElement.m; sourceTree = ""; }; - 1967314246DE47771D6C6F0D8B5BB22A /* RDEPUBTextPaginationSupport.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextPaginationSupport.swift; sourceTree = ""; }; 199E2ECC77BDAC03F644C20040F042D4 /* DTLog.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTLog.m; path = Core/Source/DTLog.m; sourceTree = ""; }; 1A88AA04D7B29A217B432C19AC48AB6B /* DTStylesheetHTMLElement.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTStylesheetHTMLElement.h; path = Core/Source/DTStylesheetHTMLElement.h; sourceTree = ""; }; 1AD502A1FA6EB1E38200B5283F979504 /* Pods-ReadViewDemo.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ReadViewDemo.release.xcconfig"; sourceTree = ""; }; - 1BDECCF30428456DD69F6D870693248C /* RDReaderSpreadResolver.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDReaderSpreadResolver.swift; sourceTree = ""; }; - 1C2BD942CCE411EF3AB9DCDC8215B180 /* RDEPUBParser+Archive.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBParser+Archive.swift"; sourceTree = ""; }; - 1D220183932DB13D0AF20EF12C44A29D /* RDEPUBReadingLocationModels.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReadingLocationModels.swift; sourceTree = ""; }; - 1DB230C0E9A18C8B1C5581CD2D3D0F2F /* RDEPUBReaderDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderDelegate.swift; sourceTree = ""; }; - 1DD5649E99D72A74F8F2C3B3E5D3A729 /* RDEPUBJavaScriptBridge.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBJavaScriptBridge.swift; sourceTree = ""; }; - 1E0F52BED56AC7A04854F459B246AB18 /* RDEPUBAttachmentTooltipOverlayView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBAttachmentTooltipOverlayView.swift; sourceTree = ""; }; + 1C5CA885255B08C8AD10778C62071BCD /* RDEPUBChapterLocation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBChapterLocation.swift; sourceTree = ""; }; + 1D24B9DBA8D8A1B00CEF2E2238C16681 /* RDEPUBWebView+JavaScriptBridge.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBWebView+JavaScriptBridge.swift"; sourceTree = ""; }; + 1DD088C35A5559FEE1027DAE37417E3D /* RDEPUBSafeArea.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBSafeArea.swift; sourceTree = ""; }; 1EF19AD0EF4889156D46061FB43E0F5D /* DTCoreTextFontDescriptor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTCoreTextFontDescriptor.h; path = Core/Source/DTCoreTextFontDescriptor.h; sourceTree = ""; }; 1F1F7BFB63DE15D627EB8F64829B8AAD /* NSURL+DTComparing.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSURL+DTComparing.h"; path = "Core/Source/NSURL+DTComparing.h"; sourceTree = ""; }; - 1F3BEE5F799C47EEACB7E29C611B8201 /* RDEPUBReaderController+RuntimeBridge.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBReaderController+RuntimeBridge.swift"; sourceTree = ""; }; 1FA88D00B7B2B2F0BA98BB92DF035906 /* DTDictationPlaceholderView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTDictationPlaceholderView.m; path = Core/Source/DTDictationPlaceholderView.m; sourceTree = ""; }; - 1FC3BE6BBB4EBD99FF9124BA8E599520 /* RDEPUBPageInteractionController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBPageInteractionController.swift; sourceTree = ""; }; + 1FE1D4A863768FC78F6B76B6A181267C /* RDReaderView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDReaderView.swift; sourceTree = ""; }; 2047430DF5C84E0A8FC8874A2B915FC3 /* Pods-ReadViewDemo-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-ReadViewDemo-acknowledgements.markdown"; sourceTree = ""; }; 207CC0EEB74CECEB43A870FF80560E0F /* DTLog.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTLog.h; path = Core/Source/DTLog.h; sourceTree = ""; }; - 210601B1509A4301617C853C5022AA99 /* RDEPUBReaderController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderController.swift; sourceTree = ""; }; + 2092D0DAEE6507B0B448DAA0A4888191 /* RDEPUBNavigatorLayoutContext.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBNavigatorLayoutContext.swift; sourceTree = ""; }; 214F0FC87DE99D3FCE69D98B357F3FFC /* DTCoreTextLayoutFrame+Cursor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "DTCoreTextLayoutFrame+Cursor.h"; path = "Core/Source/DTCoreTextLayoutFrame+Cursor.h"; sourceTree = ""; }; 21CCCCAAF832BE9C859BEDDC79B4E9E2 /* DTSmartPagingScrollView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTSmartPagingScrollView.h; path = Core/Source/iOS/DTSmartPagingScrollView.h; sourceTree = ""; }; 22B69C9433F2FBE5CE8409BD4266DFE8 /* Data+Compression.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Data+Compression.swift"; path = "Sources/ZIPFoundation/Data+Compression.swift"; sourceTree = ""; }; @@ -585,398 +582,418 @@ 2361BC151481D2717ED43C5659725945 /* ZIPFoundation.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = ZIPFoundation.modulemap; sourceTree = ""; }; 2373DCA0FC45287BFC063BEA661B8367 /* Archive+WritingDeprecated.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Archive+WritingDeprecated.swift"; path = "Sources/ZIPFoundation/Archive+WritingDeprecated.swift"; sourceTree = ""; }; 238893C9CBD95CB9BDF069EB5A303E17 /* RDReaderView */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = RDReaderView; path = RDReaderView.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 24B4BDE6AF43475513D28D232AB7D0B9 /* RDEPUBCFI.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBCFI.swift; sourceTree = ""; }; + 252AFCFB40C36621E9C98C6644A56EE6 /* RDEPUBPageInteractionController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBPageInteractionController.swift; sourceTree = ""; }; + 254C03130C9163149B80FEBC8128119F /* RDEPUBImageViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBImageViewController.swift; sourceTree = ""; }; + 25C6A0883824F05CF90F21478E019975 /* RDEPUBRenderRequest.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBRenderRequest.swift; sourceTree = ""; }; 25DDD76CA572F0C7AB5A8178CF80169D /* DTCoreTextFontCollection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTCoreTextFontCollection.h; path = Core/Source/DTCoreTextFontCollection.h; sourceTree = ""; }; - 26E305762ECD5788B045AFC816767444 /* RDEPUBNoteModels.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBNoteModels.swift; sourceTree = ""; }; - 270645F585F13D520FFA031C447E19F1 /* RDEPUBChapterWarmupOrchestrator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBChapterWarmupOrchestrator.swift; sourceTree = ""; }; + 25E8E62C9DC0A4AE49F168F04CF8B9D3 /* rangy-serializer.js */ = {isa = PBXFileReference; includeInIndex = 1; name = "rangy-serializer.js"; path = "Sources/RDReaderView/EPUBCore/Resources/rangy-serializer.js"; sourceTree = ""; }; 27372A23AA4B051867E7D2C749D1DE81 /* DTImageTextAttachment.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTImageTextAttachment.h; path = Core/Source/DTImageTextAttachment.h; sourceTree = ""; }; + 2739EAD69AB2F5F6FA80E254D294440D /* RDPlainTextBookBuilder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDPlainTextBookBuilder.swift; sourceTree = ""; }; + 277A48279BD4FD22C6C552AAC4F282B2 /* RDEPUBReaderSettings.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderSettings.swift; sourceTree = ""; }; 288589D0B52F73505B43C743D9837578 /* Entry+ZIP64.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Entry+ZIP64.swift"; path = "Sources/ZIPFoundation/Entry+ZIP64.swift"; sourceTree = ""; }; - 29701CE248CAAA87698BD90F74F6295B /* RDEPUBCFIRange.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBCFIRange.swift; sourceTree = ""; }; + 29075A60F0C3B46C5143EC971A0D16D4 /* RDEPUBReaderController+PublicAPI.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBReaderController+PublicAPI.swift"; sourceTree = ""; }; + 29D1AFEDD39DE3A55D023DCF1DD8E100 /* RDEPUBResourceResolver.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBResourceResolver.swift; sourceTree = ""; }; 29DEA4D201BB179BB6E228E9F688CD4C /* UIView+DTFoundation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+DTFoundation.h"; path = "Core/Source/iOS/UIView+DTFoundation.h"; sourceTree = ""; }; - 2A3E72DC0C036C0F8808A44B73C4A5EA /* RDEPUBRuntimeChapter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBRuntimeChapter.swift; sourceTree = ""; }; - 2B8072609EF1BA68F2BF57A0E3A915FB /* RDReaderGestureController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDReaderGestureController.swift; sourceTree = ""; }; 2C1A7359A45BB880877A672C57F522FE /* DTCoreGraphicsUtils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTCoreGraphicsUtils.h; path = Core/Source/DTCoreGraphicsUtils.h; sourceTree = ""; }; + 2E281F0688B1D356CF1654C6063AE77D /* RDReaderView+PageCurl.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDReaderView+PageCurl.swift"; sourceTree = ""; }; + 2EDB136931B7075E5A4F6BD8E5E2DBE6 /* RDEPUBReaderContext.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderContext.swift; sourceTree = ""; }; 2F242FC1357DD90FA4FD67E1DB90A837 /* NSCharacterSet+HTML.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSCharacterSet+HTML.m"; path = "Core/Source/NSCharacterSet+HTML.m"; sourceTree = ""; }; + 2F34FF3B7E71CCE4E9C73115AA710B1C /* RDEPUBTextBookModels.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextBookModels.swift; sourceTree = ""; }; + 2F653BA6E911AE149EB7FF7471D9D9BD /* RDEPUBParser+Archive.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBParser+Archive.swift"; sourceTree = ""; }; 2F75437CE9F9324D315E417014797C1D /* DTExtendedFileAttributes.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTExtendedFileAttributes.h; path = Core/Source/DTExtendedFileAttributes.h; sourceTree = ""; }; + 2FBB458EDD978CBC54464EA28336F977 /* RDEPUBCFIRecoveryEngine.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBCFIRecoveryEngine.swift; sourceTree = ""; }; + 2FCEDA49EDECD7CEEEF8A65685B9870A /* RDEPUBPaginationModels.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBPaginationModels.swift; sourceTree = ""; }; + 3008F6944BA740CD6E6F5CA33733C911 /* RDEPUBPaginationCacheCoordinator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBPaginationCacheCoordinator.swift; sourceTree = ""; }; 3046397381A83C2F6BAF344B86AD176E /* NSMutableArray+DTMoving.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSMutableArray+DTMoving.h"; path = "Core/Source/NSMutableArray+DTMoving.h"; sourceTree = ""; }; 306477706BBB1E784F55BCF8EB1AD737 /* Pods-ReadViewDemo.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ReadViewDemo.debug.xcconfig"; sourceTree = ""; }; 30EB4CF4AD4114DE53786C318621EB19 /* NSAttributedStringRunDelegates.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NSAttributedStringRunDelegates.h; path = Core/Source/NSAttributedStringRunDelegates.h; sourceTree = ""; }; - 32B07FB6279468CAC8C8496B97B2B543 /* RDEPUBPageLayoutSnapshot.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBPageLayoutSnapshot.swift; sourceTree = ""; }; - 338AA349594E53D0CF40F957CAC5D6BC /* RDEPUBReaderController+RenderSupport.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBReaderController+RenderSupport.swift"; sourceTree = ""; }; + 30EE98BBC2688DFF0B50F9C417007886 /* RDEPUBCSSCompatibilityLayer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBCSSCompatibilityLayer.swift; sourceTree = ""; }; + 32AD569BCA384A60FC2E1E08CE3529AD /* RDEPUBWebView+Reflowable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBWebView+Reflowable.swift"; sourceTree = ""; }; + 3424A6DFBC2AC519C7C599F18DCDC89D /* RDEPUBTypesettingPipeline.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTypesettingPipeline.swift; sourceTree = ""; }; 3453CFB9BDBF6F9D0937EDF5FB2BD07B /* NSURL+DTAppLinks.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSURL+DTAppLinks.m"; path = "Core/Source/iOS/NSURL+DTAppLinks.m"; sourceTree = ""; }; - 34595E922A09667901C926A8EBBC5E1A /* RDEPUBReaderTheme.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderTheme.swift; sourceTree = ""; }; 35417EC94F2D58CB80C991F875CE15C2 /* DTBlockFunctions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTBlockFunctions.h; path = Core/Source/DTBlockFunctions.h; sourceTree = ""; }; - 3545BDB1B440A560114071D125EA94C7 /* RDEPUBReaderHighlightsViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderHighlightsViewController.swift; sourceTree = ""; }; 354C1C3A74DB75C8B8608D538212A963 /* DTStylesheetHTMLElement.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTStylesheetHTMLElement.m; path = Core/Source/DTStylesheetHTMLElement.m; sourceTree = ""; }; 3578B97A85BCDC60888FDF87B8F2600C /* NSString+CSS.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSString+CSS.h"; path = "Core/Source/NSString+CSS.h"; sourceTree = ""; }; - 36D5F0FE11BFC4DA5A60FF82CD8D83E4 /* RDEPUBStyleSheetComposer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBStyleSheetComposer.swift; sourceTree = ""; }; - 36E5D959B869D6FFCAE67ACA572FF1C2 /* RDReaderView+ToolView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDReaderView+ToolView.swift"; sourceTree = ""; }; + 361565CCC385512EA14A6A2C9CFAF08B /* RDEPUBStyleSheetComposer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBStyleSheetComposer.swift; sourceTree = ""; }; + 3667CE400B3A606C7BE2D736B10AB546 /* RDEPUBChapterDataCache.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBChapterDataCache.swift; sourceTree = ""; }; 37327141DC73DE2D5742BE6F989094CE /* DTCoreTextLayoutLine.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTCoreTextLayoutLine.h; path = Core/Source/DTCoreTextLayoutLine.h; sourceTree = ""; }; - 37AD2B1FCE8C4B62FBC8B751F17EC474 /* RDEPUBWebView+Configuration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBWebView+Configuration.swift"; sourceTree = ""; }; - 38EFC4374585F70CA0057C2B93243BDB /* RDReaderView.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = RDReaderView.debug.xcconfig; sourceTree = ""; }; + 38459BA6DDC11AC3B9574C4E48F48ADC /* RDEPUBFixedLayoutTemplate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBFixedLayoutTemplate.swift; sourceTree = ""; }; 3985FED7BD8EC49191663BEF73FB2C79 /* NSAttributedString+DTCoreText.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSAttributedString+DTCoreText.h"; path = "Core/Source/NSAttributedString+DTCoreText.h"; sourceTree = ""; }; 398DC798680E2CA64D46B9E19B380356 /* UIFont+DTCoreText.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIFont+DTCoreText.h"; path = "Core/Source/UIFont+DTCoreText.h"; sourceTree = ""; }; 399AED6BF151EC39BE4450784795A832 /* DTAccessibilityViewProxy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTAccessibilityViewProxy.h; path = Core/Source/DTAccessibilityViewProxy.h; sourceTree = ""; }; 3A6A858B976D032A3C61540AFF19DEE4 /* NSURL+DTUnshorten.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSURL+DTUnshorten.m"; path = "Core/Source/NSURL+DTUnshorten.m"; sourceTree = ""; }; - 3BE6C7E2CF696021A9922C1BB675AB1C /* RDEPUBSelectionState.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBSelectionState.swift; sourceTree = ""; }; - 3C574CD3AE9D1DCCA02A5270BB1130B6 /* RDEPUBRuntimePageCount.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBRuntimePageCount.swift; sourceTree = ""; }; - 3CD5E5ED855BD807441CC55E7046DC18 /* wxread-replace.css */ = {isa = PBXFileReference; includeInIndex = 1; name = "wxread-replace.css"; path = "Sources/RDReaderView/EPUBCore/Resources/wxread-replace.css"; sourceTree = ""; }; + 3C4658670F6EBD43067CF1D859518D23 /* RDEPUBReaderTableOfContentsItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderTableOfContentsItem.swift; sourceTree = ""; }; 3DAC9D3802A9F165B2F6B09C2DCF0EB7 /* ResourceBundle-ZIPFoundation_Privacy-ZIPFoundation-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-ZIPFoundation_Privacy-ZIPFoundation-Info.plist"; sourceTree = ""; }; - 3E66D8D0604A6C89AA9DD222FE61F0E2 /* RDEPUBAnnotationModels.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBAnnotationModels.swift; sourceTree = ""; }; + 3ECA70C45BE80D444EBFE0DA40424702 /* RDURLReaderController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDURLReaderController.swift; sourceTree = ""; }; 3EFAE8DFDDEA1E6047289C86D66381C0 /* DTAttributedLabel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTAttributedLabel.m; path = Core/Source/DTAttributedLabel.m; sourceTree = ""; }; + 3F6776D2868DE1A8CAC80752CB023567 /* RDEPUBReaderEnvironment.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderEnvironment.swift; sourceTree = ""; }; 40FD7C9E2E05FB4A73F4C4C70A3AFAF0 /* DTCSSListStyle.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTCSSListStyle.m; path = Core/Source/DTCSSListStyle.m; sourceTree = ""; }; - 425D9BA744DFC5E49D875D81AA8761F8 /* RDEPUBTextRendererSupport.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextRendererSupport.swift; sourceTree = ""; }; - 42A82DADD6CBBE3627BE13B2E0FC8B34 /* RDEPUBWebViewDebug.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBWebViewDebug.swift; sourceTree = ""; }; - 43DB30ED1E8B12F6CEC548FBF1290668 /* RDEPUBPaginationModels.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBPaginationModels.swift; sourceTree = ""; }; + 418CF402E2B3A6359A720876AF83E1F3 /* RDEPUBCFIResolver.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBCFIResolver.swift; sourceTree = ""; }; + 427D3D938726077995A928BFEDDC6632 /* RDEPUBCFIMap.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBCFIMap.swift; sourceTree = ""; }; 44133205D7FD87B481BF89EA607CA7A4 /* ZIPFoundation-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ZIPFoundation-Info.plist"; sourceTree = ""; }; - 445D06D06F2D5CB42E95A6292AFA6D42 /* rangy-core.js */ = {isa = PBXFileReference; includeInIndex = 1; name = "rangy-core.js"; path = "Sources/RDReaderView/EPUBCore/Resources/rangy-core.js"; sourceTree = ""; }; + 44369E6800A89D0C5818CA884729D20F /* RDEPUBReaderController+ContentDelegates.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBReaderController+ContentDelegates.swift"; sourceTree = ""; }; 4472755F83C121DE5E1E505D145F6DBE /* CoreText.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreText.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/CoreText.framework; sourceTree = DEVELOPER_DIR; }; 4476B58B93EE7476A4762FE0E26E8178 /* DTCoreTextLayoutFrameAccessibilityElementGenerator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTCoreTextLayoutFrameAccessibilityElementGenerator.m; path = Core/Source/DTCoreTextLayoutFrameAccessibilityElementGenerator.m; sourceTree = ""; }; - 44A1AD3BAAAF051B1AB7CE90E0F92BE7 /* RDEPUBPresentationRuntime.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBPresentationRuntime.swift; sourceTree = ""; }; + 45441D548F125483949D77F61F85AFE3 /* RDEPUBNotePopupViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBNotePopupViewController.swift; sourceTree = ""; }; 4544C4444DCA90E700611D1281969883 /* DTColorFunctions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTColorFunctions.m; path = Core/Source/DTColorFunctions.m; sourceTree = ""; }; + 455F46F5F9EA1B2EAF47E54361B9E5F1 /* RDEPUBReaderViewportMonitor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderViewportMonitor.swift; sourceTree = ""; }; 45A67761829BBB3974CE24FE50E459EA /* NSDictionary+DTError.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSDictionary+DTError.m"; path = "Core/Source/NSDictionary+DTError.m"; sourceTree = ""; }; - 462A73405A3D510CF9A7F4B5D63BF2B1 /* RDEPUBCFIMarkerInjector.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBCFIMarkerInjector.swift; sourceTree = ""; }; 4641C3C93CE32054665ACF80457A7A94 /* DTCoreTextLayoutFrame.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTCoreTextLayoutFrame.m; path = Core/Source/DTCoreTextLayoutFrame.m; sourceTree = ""; }; + 4646F47318195C5CDADF0D93A4A2FC91 /* RDEPUBModels.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBModels.swift; sourceTree = ""; }; 467CC59CEC3B3BC7ACDCA776FDCBDC1D /* NSURL+DTComparing.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSURL+DTComparing.m"; path = "Core/Source/NSURL+DTComparing.m"; sourceTree = ""; }; - 477676C456F623C8A33D40A533FA960D /* RDEPUBTextSearchEngine.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextSearchEngine.swift; sourceTree = ""; }; 47DC174612C98B2CFB4E7D158169139E /* default.css */ = {isa = PBXFileReference; includeInIndex = 1; name = default.css; path = Core/Source/default.css; sourceTree = ""; }; 48A4A6EDC08C8AC933D0DCD507E9D173 /* ZIPFoundation */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = ZIPFoundation; path = ZIPFoundation.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 4917E08E6E59460594AC443EDDAB7E77 /* DTCoreTextFunctions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTCoreTextFunctions.m; path = Core/Source/DTCoreTextFunctions.m; sourceTree = ""; }; - 4931FAB1E86E9A03A8ACEB033B58F5E3 /* RDEPUBReaderContext.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderContext.swift; sourceTree = ""; }; 4944FE0BE3205F2EC91A6A0550D30B75 /* DTTextAttachment.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTTextAttachment.m; path = Core/Source/DTTextAttachment.m; sourceTree = ""; }; 499E135F1FEB31C26EB0EF793A90086C /* UIImage+DTFoundation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+DTFoundation.m"; path = "Core/Source/iOS/UIImage+DTFoundation.m"; sourceTree = ""; }; - 4ADEC782AE1E07C94B6F01A8AE1CE2C8 /* RDEPUBReaderLocationCoordinator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderLocationCoordinator.swift; sourceTree = ""; }; - 4B50A66BAEFD8F677924803465049443 /* ResourceBundle-RDReaderViewAssets-RDReaderView-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-RDReaderViewAssets-RDReaderView-Info.plist"; sourceTree = ""; }; + 4C0AFCECD74F73D7D40C6F3053AF6FEE /* RDEPUBCFI.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBCFI.swift; sourceTree = ""; }; 4C2B218B5EAA5831A036BBF7E1EFC1B9 /* MediaPlayer.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MediaPlayer.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/MediaPlayer.framework; sourceTree = DEVELOPER_DIR; }; - 4CFCD5EFD6EDDC69776A50362DB16409 /* RDEPUBParser+Package.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBParser+Package.swift"; sourceTree = ""; }; + 4C4682C38E0A66C0E9760FC62C00A327 /* RDReaderView+CollectionView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDReaderView+CollectionView.swift"; sourceTree = ""; }; + 4CDD971696985E60155A09E16CD844C5 /* RDEPUBReaderController+AttachmentTooltip.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBReaderController+AttachmentTooltip.swift"; sourceTree = ""; }; 4E1066A8FE63AD2C818E26DDCE62DF58 /* DTHTMLAttributedStringBuilder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTHTMLAttributedStringBuilder.h; path = Core/Source/DTHTMLAttributedStringBuilder.h; sourceTree = ""; }; 4FF4A2A7F2C7CFB5DD757BE1A6E59C7B /* CTLineUtils.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CTLineUtils.m; path = Core/Source/CTLineUtils.m; sourceTree = ""; }; 5001C74FB9506AEC71E458047698A4AB /* DTHTMLParserNode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTHTMLParserNode.m; path = Core/Source/DTHTMLParserNode.m; sourceTree = ""; }; - 506A3F4E93699E821176158B4E1A74ED /* RDReaderView-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "RDReaderView-dummy.m"; sourceTree = ""; }; + 5077339D9632D68EDAB64BBEF622E154 /* RDEPUBStyleCompatibilityModels.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBStyleCompatibilityModels.swift; sourceTree = ""; }; 5096458D9BD2818F786BC3B61B91EAC7 /* NSAttributedString+DTDebug.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSAttributedString+DTDebug.m"; path = "Core/Source/NSAttributedString+DTDebug.m"; sourceTree = ""; }; 50C2868064310B16D2B5FD9901C846DC /* DTVideoTextAttachment.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTVideoTextAttachment.h; path = Core/Source/DTVideoTextAttachment.h; sourceTree = ""; }; - 51282F5AE6E4F8FCD61A8B05638937D2 /* RDEPUBTextPageDecorationView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextPageDecorationView.swift; sourceTree = ""; }; - 51852C93D034EBE5B7907AA4E69848A1 /* RDEPUBReaderDependencies.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderDependencies.swift; sourceTree = ""; }; + 517D111957FC986C0BE0281CA89159AF /* RDEPUBAnnotationModels.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBAnnotationModels.swift; sourceTree = ""; }; 519087D9CD0F5E440E6D2C3B1AA1DFA2 /* DTBase64Coding.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTBase64Coding.h; path = Core/Source/DTBase64Coding.h; sourceTree = ""; }; 5193541848D2D1BF115A45D8A730611C /* Archive+ReadingDeprecated.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Archive+ReadingDeprecated.swift"; path = "Sources/ZIPFoundation/Archive+ReadingDeprecated.swift"; sourceTree = ""; }; 52053ABC9CD3D4A72CD8A22173428AEB /* NSMutableString+HTML.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSMutableString+HTML.h"; path = "Core/Source/NSMutableString+HTML.h"; sourceTree = ""; }; - 5457E010B7ABAB0EA8F28377908D1F23 /* RDEPUBWebContentView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBWebContentView.swift; sourceTree = ""; }; + 52E599D70519E92FCD9A508E1C821637 /* RDEPUBPreferences.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBPreferences.swift; sourceTree = ""; }; + 53B7AB6E967C804E556A13DA6CC254A0 /* RDEPUBTextPageDecorationView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextPageDecorationView.swift; sourceTree = ""; }; + 545DD46BEAB1D1F7E0530E787095FCB2 /* RDEPUBFontNormalizer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBFontNormalizer.swift; sourceTree = ""; }; + 54F135677B8806216984881B2333BF4E /* RDEPUBCFIDOMPathBuilder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBCFIDOMPathBuilder.swift; sourceTree = ""; }; 55423549E54A01F039B5F379B264C73F /* UIApplication+DTNetworkActivity.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIApplication+DTNetworkActivity.h"; path = "Core/Source/iOS/UIApplication+DTNetworkActivity.h"; sourceTree = ""; }; 558FCD3F7E481B782EBFA127486ED15D /* DTHTMLParserTextNode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTHTMLParserTextNode.h; path = Core/Source/DTHTMLParserTextNode.h; sourceTree = ""; }; 55B9309F0BDDDE2C3EE13C97BF2C0F1E /* Archive+Helpers.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Archive+Helpers.swift"; path = "Sources/ZIPFoundation/Archive+Helpers.swift"; sourceTree = ""; }; + 55CA6158EBEFCD459EB481660A12EB86 /* RDReaderView.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = RDReaderView.release.xcconfig; sourceTree = ""; }; + 56158B68400B5C946109EDFD7555A8A7 /* RDEPUBReaderUIState.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderUIState.swift; sourceTree = ""; }; 56E8939081946D090FD77A04F879754C /* DTExtendedFileAttributes.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTExtendedFileAttributes.m; path = Core/Source/DTExtendedFileAttributes.m; sourceTree = ""; }; - 56EA8C75C7045AF8F04F2D56ACA2A18B /* RDEPUBWebView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBWebView.swift; sourceTree = ""; }; + 570429F8DD1951A554862120993C46B1 /* RDEPUBReaderChapterListController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderChapterListController.swift; sourceTree = ""; }; 57642B518C047A428FE1266A09E0513F /* DTImageTextAttachment.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTImageTextAttachment.m; path = Core/Source/DTImageTextAttachment.m; sourceTree = ""; }; - 57CB038980ADA439CEC82E0EBBD3FC9E /* RDEPUBTextContentView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextContentView.swift; sourceTree = ""; }; + 579B1DD9DCEE9A1C8B88EB7D4FC7328B /* RDEPUBRuntimeChapter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBRuntimeChapter.swift; sourceTree = ""; }; + 58C72D7DF4220C0907CE8795E8900E79 /* RDEPUBParser+ReadingProfile.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBParser+ReadingProfile.swift"; sourceTree = ""; }; + 59036F71583DAE2641D9DAA567DBD208 /* RDEPUBTextBuildPipelineInterfaces.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextBuildPipelineInterfaces.swift; sourceTree = ""; }; 5977986EDFE76D5EF96A6D95483B12F7 /* Pods-ReadViewDemo-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-ReadViewDemo-frameworks.sh"; sourceTree = ""; }; 599172147A32B6978EB5AAE1BE55FF7A /* DTAnchorHTMLElement.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTAnchorHTMLElement.h; path = Core/Source/DTAnchorHTMLElement.h; sourceTree = ""; }; - 59B2B1356107877296E9D282AE94CB05 /* RDEPUBAttachmentTooltipView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBAttachmentTooltipView.swift; sourceTree = ""; }; - 5BE399D4DCDB9643D809264D6D5319B2 /* cssInjector.js */ = {isa = PBXFileReference; includeInIndex = 1; name = cssInjector.js; path = Sources/RDReaderView/EPUBCore/Resources/cssInjector.js; sourceTree = ""; }; + 5B4081F4EC77470F1257F11DB2A4B55D /* RDEPUBTextRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextRenderer.swift; sourceTree = ""; }; + 5B4EAD9C5D3D276887E0AC6A35F10659 /* RDEPUBViewportTypes.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBViewportTypes.swift; sourceTree = ""; }; 5C3D91FFA65414A2787FEB95576E0097 /* DTCompatibility.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTCompatibility.h; path = Core/Source/DTCompatibility.h; sourceTree = ""; }; 5C891B983F0CC956CAE3978A15875819 /* NSDictionary+DTCoreText.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSDictionary+DTCoreText.h"; path = "Core/Source/NSDictionary+DTCoreText.h"; sourceTree = ""; }; 5D146C3F4B7878B5CE8EFF38765580C2 /* DTAccessibilityElement.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTAccessibilityElement.h; path = Core/Source/DTAccessibilityElement.h; sourceTree = ""; }; - 5D74C449E9554743E9908B79188DB9BC /* RDEPUBReaderState.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderState.swift; sourceTree = ""; }; 5DB480D0B78911DBF96986E64A714907 /* DTListItemHTMLElement.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTListItemHTMLElement.h; path = Core/Source/DTListItemHTMLElement.h; sourceTree = ""; }; - 5DFD3ED6CD42E6EA971DDDD51EDB8CA5 /* RDReaderPageChildViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDReaderPageChildViewController.swift; sourceTree = ""; }; - 5E62277B737F95B1DFDBC287DC795CB6 /* RDReaderView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDReaderView.swift; sourceTree = ""; }; - 5E8993D56BA3E8692108E3C53CD52806 /* RDEPUBCFIRecoveryEngine.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBCFIRecoveryEngine.swift; sourceTree = ""; }; - 5EB446503EBB22EE22C51939A562C457 /* RDEPUBTextBuildPipelineInterfaces.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextBuildPipelineInterfaces.swift; sourceTree = ""; }; - 5EC2AEE3E653B0E8731C706FF3768F46 /* RDEPUBTextBookBuilder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextBookBuilder.swift; sourceTree = ""; }; - 5F50EBEDFE92D5373F3FD62727F74BDE /* RDEPUBTextLayoutFrame.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextLayoutFrame.swift; sourceTree = ""; }; - 5FBE83F7B3B8689CC23FD1657E2A270E /* RDEPUBReadingSession.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReadingSession.swift; sourceTree = ""; }; - 61228D2169407CE48F19589A5145557B /* RDEPUBTextPageRenderView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextPageRenderView.swift; sourceTree = ""; }; + 5DE569B9F47EAF5135750BCF2E934C0F /* RDEPUBReaderController+LocationResolution.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBReaderController+LocationResolution.swift"; sourceTree = ""; }; + 5E5956AA678A9521257D99891E823DE2 /* RDEPUBReaderHighlightsViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderHighlightsViewController.swift; sourceTree = ""; }; + 5E8C914D69561C6C9736FCB3C6698CCC /* RDEPUBFragmentMarkerInjector.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBFragmentMarkerInjector.swift; sourceTree = ""; }; + 5E958924060294CE9417399BB02AB344 /* epub-fixed-layout.html */ = {isa = PBXFileReference; includeInIndex = 1; name = "epub-fixed-layout.html"; path = "Sources/RDReaderView/EPUBCore/Resources/epub-fixed-layout.html"; sourceTree = ""; }; + 5F41DCAB71A589008105D8C3AB0F8878 /* RDEPUBWebView+FixedLayout.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBWebView+FixedLayout.swift"; sourceTree = ""; }; + 5F9FE9924520900BBDF724D9903C5309 /* RDEPUBFontFallbackResolver.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBFontFallbackResolver.swift; sourceTree = ""; }; + 61A1D30B96ADD9D1660073E9207329CF /* RDEPUBReaderDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderDelegate.swift; sourceTree = ""; }; 61B18088896D291E0CE7718DFE82FAC1 /* DTListItemHTMLElement.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTListItemHTMLElement.m; path = Core/Source/DTListItemHTMLElement.m; sourceTree = ""; }; 6430501430329643C8280B3985C48711 /* URL+ZIP.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "URL+ZIP.swift"; path = "Sources/ZIPFoundation/URL+ZIP.swift"; sourceTree = ""; }; - 64798D230A6F5C1C52C7353EF9773BB7 /* RDEPUBCoreTextPageFrameFactory.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBCoreTextPageFrameFactory.swift; sourceTree = ""; }; + 648D6AC5A8FA53918EDB418D8A36710E /* RDReaderView+ToolView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDReaderView+ToolView.swift"; sourceTree = ""; }; 662D30C1E74D1D5122921475F4024F73 /* DTActivityTitleView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTActivityTitleView.m; path = Core/Source/iOS/DTActivityTitleView.m; sourceTree = ""; }; - 66BF9E68AC68E641A2F40FB7DE03BA5B /* RDEPUBCFIPath.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBCFIPath.swift; sourceTree = ""; }; + 66D0B6D4C75424B340D7C9861D7DF6F6 /* RDEPUBReaderConfiguration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderConfiguration.swift; sourceTree = ""; }; 671C2429406FDB36B677F4B6EC85B52F /* DTCoreTextLayoutFrameAccessibilityElementGenerator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTCoreTextLayoutFrameAccessibilityElementGenerator.h; path = Core/Source/DTCoreTextLayoutFrameAccessibilityElementGenerator.h; sourceTree = ""; }; - 67B4EE257C537D6F72ADDBBE7747BBE2 /* RDEPUBBuildDiagnosticsReporter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBBuildDiagnosticsReporter.swift; sourceTree = ""; }; + 6777CA743F90F1D44EE010F6ED6A1F7F /* RDEPUBReaderSettingsViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderSettingsViewController.swift; sourceTree = ""; }; 67DA49B61A249C2B8241D8FE166608C9 /* UIView+DTFoundation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+DTFoundation.m"; path = "Core/Source/iOS/UIView+DTFoundation.m"; sourceTree = ""; }; - 68705BE557E6C1C112D38D056CD4E8FA /* RDEPUBChapterPageCounter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBChapterPageCounter.swift; sourceTree = ""; }; - 68CF28E1B8594F100BEAC89F7B9CA20F /* RDEPUBTextIndexTable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextIndexTable.swift; sourceTree = ""; }; + 68A8597AE94ED09E9828E2EEA0D8FFFA /* RDEPUBChapterTailNormalizer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBChapterTailNormalizer.swift; sourceTree = ""; }; 68D81DF1BB2A14F9C186F75BBA5CF50D /* DTColor+Compatibility.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "DTColor+Compatibility.h"; path = "Core/Source/DTColor+Compatibility.h"; sourceTree = ""; }; 69076FC9D4201719C319547346DA3E21 /* DTTextHTMLElement.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTTextHTMLElement.m; path = Core/Source/DTTextHTMLElement.m; sourceTree = ""; }; - 692FB048CB12876AA971EF21B3F71A27 /* RDEPUBReaderRuntime.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderRuntime.swift; sourceTree = ""; }; 6AC1E707308CDBC9FFC09CECE3117A9A /* DTAccessibilityViewProxy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTAccessibilityViewProxy.m; path = Core/Source/DTAccessibilityViewProxy.m; sourceTree = ""; }; + 6B24B2EBB40F90487F5EF3A6451834A8 /* RDEPUBSearchEngine.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBSearchEngine.swift; sourceTree = ""; }; + 6B2DF9409FC76691EAC579DDF7247899 /* RDEPUBReaderController+RuntimeBridge.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBReaderController+RuntimeBridge.swift"; sourceTree = ""; }; 6C3F8DF48C6EB28BFD05F5BB49793DDA /* FileManager+ZIP.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "FileManager+ZIP.swift"; path = "Sources/ZIPFoundation/FileManager+ZIP.swift"; sourceTree = ""; }; - 6C6DCF8FFFAD317C3CA1AEFF60080707 /* RDEPUBTextLayouter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextLayouter.swift; sourceTree = ""; }; + 6C906FDE0E26C697C4D2FB2502F7D798 /* RDEPUBNotePopupCoordinator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBNotePopupCoordinator.swift; sourceTree = ""; }; 6D2316F422A6C97F95F9CF43E6F8E94F /* DTBlockFunctions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTBlockFunctions.m; path = Core/Source/DTBlockFunctions.m; sourceTree = ""; }; - 6DCD270CD8C5A0C917FB01A8B3116DF8 /* RDEPUBCFICompatibility.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBCFICompatibility.swift; sourceTree = ""; }; 6E21B10EE150F00F245D297EAB7F2BA2 /* NSNumber+RomanNumerals.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSNumber+RomanNumerals.m"; path = "Core/Source/NSNumber+RomanNumerals.m"; sourceTree = ""; }; - 6EADA99F8B48CDCB82A6D2D3507EC32C /* RDEPUBCFISerializer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBCFISerializer.swift; sourceTree = ""; }; - 6EBB71B95928ABA41A3B33A9DB8E75DD /* RDEPUBAttachmentNormalizer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBAttachmentNormalizer.swift; sourceTree = ""; }; + 6E7E8438D5E5533B7BE96AC6FA8FD8BD /* wxread-replace-latin.css */ = {isa = PBXFileReference; includeInIndex = 1; name = "wxread-replace-latin.css"; path = "Sources/RDReaderView/EPUBCore/Resources/wxread-replace-latin.css"; sourceTree = ""; }; + 6F4858380CB626A893FA6803F5574F89 /* RDEPUBBackgroundCoverageStore.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBBackgroundCoverageStore.swift; sourceTree = ""; }; + 7031B493810918D5B50450340CA6652B /* RDEPUBReaderAssemblyCoordinator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderAssemblyCoordinator.swift; sourceTree = ""; }; 71BBE6384315D7F00F5ECFFF67A85AF9 /* DTHTMLParser.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTHTMLParser.m; path = Core/Source/DTHTMLParser/DTHTMLParser.m; sourceTree = ""; }; 71EE0B4D4D1B3D0A55E903E7E0CA44E7 /* NSAttributedString+HTML.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSAttributedString+HTML.m"; path = "Core/Source/NSAttributedString+HTML.m"; sourceTree = ""; }; 720396ED306E768BAD28007D5E96B757 /* DTColorFunctions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTColorFunctions.h; path = Core/Source/DTColorFunctions.h; sourceTree = ""; }; 7203B4D9D997037E0F9D154A3B049738 /* DTAttributedTextContentView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTAttributedTextContentView.m; path = Core/Source/DTAttributedTextContentView.m; sourceTree = ""; }; - 720B9BA37AAD0EA225492B8341E5B7A3 /* RDEPUBMetadataParseCancellationController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBMetadataParseCancellationController.swift; sourceTree = ""; }; 72225FB74594FCF18DA8064E7DB3947E /* DTCoreTextLayouter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTCoreTextLayouter.h; path = Core/Source/DTCoreTextLayouter.h; sourceTree = ""; }; 722AF38F5106ADDE6F98D282F886A769 /* DTCoreTextFontCollection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTCoreTextFontCollection.m; path = Core/Source/DTCoreTextFontCollection.m; sourceTree = ""; }; + 72BE58BB9BF4DCDFDC6D5430AA2E82E9 /* RDEPUBTextBookBuilder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextBookBuilder.swift; sourceTree = ""; }; + 72C909891BE902A0BB13D4A142EE982F /* RDEPUBPresentationRuntime.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBPresentationRuntime.swift; sourceTree = ""; }; 730B56BC97DFF2B1E04DD2608055D9E0 /* UIApplication+DTNetworkActivity.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIApplication+DTNetworkActivity.m"; path = "Core/Source/iOS/UIApplication+DTNetworkActivity.m"; sourceTree = ""; }; - 736492CB9D329AD8CB8401330973FBCD /* RDEPUBSearchModels.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBSearchModels.swift; sourceTree = ""; }; 741D74BC489AF6715191F2A88E50B016 /* DTCoreText.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = DTCoreText.modulemap; sourceTree = ""; }; - 74B33EB0B69C4A347B3F466B751289C5 /* String+RDEPUB.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "String+RDEPUB.swift"; sourceTree = ""; }; + 74CB908492A655C93144CB03E59A2CAB /* RDEPUBWebView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBWebView.swift; sourceTree = ""; }; 7503926237A4785CCB864B2BCD1F4C2B /* DTFoundation.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = DTFoundation.release.xcconfig; sourceTree = ""; }; 753994141ACB981C898B36B761321C23 /* NSCoder+DTCompatibility.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSCoder+DTCompatibility.m"; path = "Core/Source/NSCoder+DTCompatibility.m"; sourceTree = ""; }; - 761AE6FC1A75A238945BD6F186EAA5E3 /* RDEPUBNoteResolver.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBNoteResolver.swift; sourceTree = ""; }; 765A94769106D14615FFB30EE1BD5E65 /* Archive+BackingConfiguration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Archive+BackingConfiguration.swift"; path = "Sources/ZIPFoundation/Archive+BackingConfiguration.swift"; sourceTree = ""; }; 766227355308600EFC048F797274454A /* ZIPFoundation.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = ZIPFoundation.release.xcconfig; sourceTree = ""; }; + 76919E99E9F16C30FA06F643643AA997 /* RDReaderContentCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDReaderContentCell.swift; sourceTree = ""; }; 76C1831768CE55090EADD902B29B6CD1 /* Entry+Serialization.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Entry+Serialization.swift"; path = "Sources/ZIPFoundation/Entry+Serialization.swift"; sourceTree = ""; }; - 77121A149AA3464C8E6A171329293BD2 /* RDEPUBTextPositionConverter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextPositionConverter.swift; sourceTree = ""; }; 771E0D5CBCBC013BF5780FEE5BBA81FF /* DTCoreTextGlyphRun.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTCoreTextGlyphRun.h; path = Core/Source/DTCoreTextGlyphRun.h; sourceTree = ""; }; 7805DFC2CB71F5B6BBF7891876360EFB /* NSAttributedString+HTML.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSAttributedString+HTML.h"; path = "Core/Source/NSAttributedString+HTML.h"; sourceTree = ""; }; - 78739A559E3A2EA9FA4A1C17B16746DC /* RDEPUBChapterLocation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBChapterLocation.swift; sourceTree = ""; }; 78887827FF15DE20865DF3A00660993B /* NSDictionary+DTCoreText.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSDictionary+DTCoreText.m"; path = "Core/Source/NSDictionary+DTCoreText.m"; sourceTree = ""; }; + 78C97EDF23543CE63904C4D8A066A7A1 /* RDEPUBTextPaginationSupport.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextPaginationSupport.swift; sourceTree = ""; }; 78EA0DF405F8465A86BFD3DDFD2EC295 /* Pods-ReadViewDemo */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Pods-ReadViewDemo"; path = Pods_ReadViewDemo.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 78EB9889508A20E866AC37B22D441FC4 /* RDReaderView.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = RDReaderView.release.xcconfig; sourceTree = ""; }; - 7941BAA5BADB40ACC8FBC080977F6B51 /* RDReaderFlowLayout.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDReaderFlowLayout.swift; sourceTree = ""; }; 796EF27FF6AA4B62367B6BD9CEBD85A8 /* DTCSSStylesheet.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTCSSStylesheet.h; path = Core/Source/DTCSSStylesheet.h; sourceTree = ""; }; 79D13938A04579CD1E9E042A39CC4D86 /* ZIPFoundation.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = ZIPFoundation.debug.xcconfig; sourceTree = ""; }; 7A13F9221A300A89F9F8D0A2AB1794BF /* DTCoreText.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = DTCoreText.release.xcconfig; sourceTree = ""; }; 7A4E9E54E556A72BC885CCC08B3791C1 /* DTHTMLElement.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTHTMLElement.m; path = Core/Source/DTHTMLElement.m; sourceTree = ""; }; - 7C60AB9DEFB015F6E3A40DECE78AC69B /* RDEPUBChapterData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBChapterData.swift; sourceTree = ""; }; + 7A971ECCC1DDFDE6D5417E949E3B1FD2 /* RDEPUBTextPositionConverter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextPositionConverter.swift; sourceTree = ""; }; 7C80941DE172AF972D2247659684D93A /* NSString+DTUtilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSString+DTUtilities.h"; path = "Core/Source/NSString+DTUtilities.h"; sourceTree = ""; }; 7CA72FA9A4F2F42A75C58325738A44AC /* NSMutableAttributedString+HTML.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSMutableAttributedString+HTML.m"; path = "Core/Source/NSMutableAttributedString+HTML.m"; sourceTree = ""; }; 7CFFB65C5D340A4B5C627B3EF02CD127 /* NSNumber+RomanNumerals.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSNumber+RomanNumerals.h"; path = "Core/Source/NSNumber+RomanNumerals.h"; sourceTree = ""; }; 7D4062C36BA5FFBAE9122CAD0DCEC6B6 /* DTCoreText-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "DTCoreText-prefix.pch"; sourceTree = ""; }; 7D8AE4BEBD1998839BA83AD05CA6CAC5 /* DTBreakHTMLElement.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTBreakHTMLElement.m; path = Core/Source/DTBreakHTMLElement.m; sourceTree = ""; }; - 8097E74036B5D6E168E9714A580060A8 /* RDEPUBChapterLoader.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBChapterLoader.swift; sourceTree = ""; }; + 7DFE7162E90DAF71A557E4822C252E4F /* RDEPUBReaderSearchBarView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderSearchBarView.swift; sourceTree = ""; }; + 7F8C64CB3F3D0B7D4AA66798C740CB20 /* RDEPUBTextLayouter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextLayouter.swift; sourceTree = ""; }; + 80A3A50AC272F9C52395F4818E87EA19 /* RDReaderView.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = RDReaderView.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + 81211446372A6A55789AA7E7152E7084 /* RDEPUBCoreTextPageFrameFactory.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBCoreTextPageFrameFactory.swift; sourceTree = ""; }; 814315319ED50AF916C3C8A68C0A47A0 /* DTAttributedTextCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTAttributedTextCell.m; path = Core/Source/DTAttributedTextCell.m; sourceTree = ""; }; - 817CF1C7E3DF9EA0272F660987E896AA /* RDEPUBPaginationCacheCoordinator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBPaginationCacheCoordinator.swift; sourceTree = ""; }; - 8184024038D8B93BD22ECAAB863B41D9 /* RDEPUBFixedLayoutTemplate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBFixedLayoutTemplate.swift; sourceTree = ""; }; + 82BD20A4273D9C421228620048787AD0 /* RDEPUBStyleSheetBuilder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBStyleSheetBuilder.swift; sourceTree = ""; }; 83410CC9CF2ABE63B90A92F2F988BF65 /* RDReaderView-RDReaderViewAssets */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = "RDReaderView-RDReaderViewAssets"; path = RDReaderViewAssets.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; - 8485FAD7356F83F96C2CF8F2171C1DFB /* RDEPUBParser+TOC.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBParser+TOC.swift"; sourceTree = ""; }; - 8563248DA3F6A02F5A355DBD1D57E80D /* RDEPUBCSSCompatibilityLayer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBCSSCompatibilityLayer.swift; sourceTree = ""; }; + 83E9A6D890549C856C0277BE3A9B01A4 /* RDEPUBBookPageMap.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBBookPageMap.swift; sourceTree = ""; }; + 842DE3099F95A155AF00FCEC57A65821 /* RDEPUBMetadataParseCancellationController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBMetadataParseCancellationController.swift; sourceTree = ""; }; + 843CB00ED0D033E72DD79F0B27BE82E0 /* RDEPUBWebView+Configuration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBWebView+Configuration.swift"; sourceTree = ""; }; + 8514F67C3335EEA160B6A502DC380C6B /* RDEPUBPaginator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBPaginator.swift; sourceTree = ""; }; 85E8DA9DE1F796F12171763D20CBAF27 /* DTFoundation.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = DTFoundation.debug.xcconfig; sourceTree = ""; }; 8718F2DB8F0DC085CB012D9996596F3F /* NSString+CSS.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSString+CSS.m"; path = "Core/Source/NSString+CSS.m"; sourceTree = ""; }; + 8811A5F210087839AA7746D9D4CFEB23 /* RDEPUBReaderDependencies.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderDependencies.swift; sourceTree = ""; }; 88464D2E3579F1A5B25DCCA128528938 /* DTCoreTextFontDescriptor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTCoreTextFontDescriptor.m; path = Core/Source/DTCoreTextFontDescriptor.m; sourceTree = ""; }; - 88EFF88D4E3001A8D2D0E50EF9B94BBA /* RDEPUBChapterDataCache.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBChapterDataCache.swift; sourceTree = ""; }; + 890B65045CA1A5D01EDF09F7FD14C6C3 /* RDEPUBTextContentInteractionCoordinator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextContentInteractionCoordinator.swift; sourceTree = ""; }; 89268DC8F1FBDE4F3167647B6A4F9216 /* DTHorizontalRuleHTMLElement.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTHorizontalRuleHTMLElement.h; path = Core/Source/DTHorizontalRuleHTMLElement.h; sourceTree = ""; }; - 893DFE6F010A222A98E905EA778740A0 /* RDEPUBPaginator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBPaginator.swift; sourceTree = ""; }; - 89AB081C4A259D931A865EA5A797CAFF /* RDEPUBWebView+FixedLayout.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBWebView+FixedLayout.swift"; sourceTree = ""; }; - 8A7E0C51CE893B8040C6A49E9E973226 /* RDReaderContentCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDReaderContentCell.swift; sourceTree = ""; }; + 89755690B804A64EE69FE2D7321CA9B6 /* RDEPUBTextIndexTable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextIndexTable.swift; sourceTree = ""; }; + 8A1D29D22B94FD4B310B5A419E79057B /* RDReaderView-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "RDReaderView-Info.plist"; sourceTree = ""; }; + 8AE69217E6A738AC11FEB58F2603B17F /* wxread-dark.css */ = {isa = PBXFileReference; includeInIndex = 1; name = "wxread-dark.css"; path = "Sources/RDReaderView/EPUBCore/Resources/wxread-dark.css"; sourceTree = ""; }; 8B35D0622F339A5B8A864FAA0C9EAE47 /* Pods-ReadViewDemo-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-ReadViewDemo-acknowledgements.plist"; sourceTree = ""; }; 8B8FDAF9E8370366F7FA8524CB0D80B3 /* DTTextAttachmentHTMLElement.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTTextAttachmentHTMLElement.h; path = Core/Source/DTTextAttachmentHTMLElement.h; sourceTree = ""; }; 8BA617294E6371DD7FAC32B61E0873F2 /* DTPieProgressIndicator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTPieProgressIndicator.m; path = Core/Source/iOS/DTPieProgressIndicator.m; sourceTree = ""; }; - 8C51FE03884113569904AAA4CAA3AEB6 /* wxread-default.css */ = {isa = PBXFileReference; includeInIndex = 1; name = "wxread-default.css"; path = "Sources/RDReaderView/EPUBCore/Resources/wxread-default.css"; sourceTree = ""; }; 8C9575F05D72C239E7E6F079BACDF4C7 /* DTVersion.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTVersion.h; path = Core/Source/DTVersion.h; sourceTree = ""; }; 8CF7CEB31BED0554F3EF3D3442A89B47 /* DTCoreText.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTCoreText.h; path = Core/Source/DTCoreText.h; sourceTree = ""; }; + 8D474A46702BFAA8E3AAFAC5EE0E3C20 /* RDEPUBNoteModels.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBNoteModels.swift; sourceTree = ""; }; 8DA0F94C0870C1F0DFADE5E9045E5E6E /* DTDictationPlaceholderTextAttachment.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTDictationPlaceholderTextAttachment.m; path = Core/Source/DTDictationPlaceholderTextAttachment.m; sourceTree = ""; }; + 8E0EF27F41F1DF49C126E34B404497CF /* RDEPUBReaderAnnotationCoordinator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderAnnotationCoordinator.swift; sourceTree = ""; }; 8E5297E7F5769C61C1838962BA76D4F5 /* NSArray+DTError.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSArray+DTError.m"; path = "Core/Source/NSArray+DTError.m"; sourceTree = ""; }; 8EDA1618562CC224690CF6FC03AFED38 /* DTObjectTextAttachment.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTObjectTextAttachment.m; path = Core/Source/DTObjectTextAttachment.m; sourceTree = ""; }; - 8F25D7766B9F7B666C309052CA726A7B /* RDEPUBRenderRequest.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBRenderRequest.swift; sourceTree = ""; }; - 8F2DF1EE547C972C1BF12018AFFC5142 /* RDEPUBNoteDetector.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBNoteDetector.swift; sourceTree = ""; }; 8F653EFBBEDAAC96A34BC93B4211E792 /* DTCompatibility.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTCompatibility.h; path = Core/Source/DTCompatibility.h; sourceTree = ""; }; + 8F9C05A5DE7C804D6531F4BBF31A3045 /* rangy-core.js */ = {isa = PBXFileReference; includeInIndex = 1; name = "rangy-core.js"; path = "Sources/RDReaderView/EPUBCore/Resources/rangy-core.js"; sourceTree = ""; }; 8FAAF640165FC1B4B47C546F80D98B1E /* DTColor+Compatibility.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "DTColor+Compatibility.m"; path = "Core/Source/DTColor+Compatibility.m"; sourceTree = ""; }; - 91C1D68B23A3D8DAF1C0934F17A09917 /* RDEPUBFragmentMarkerInjector.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBFragmentMarkerInjector.swift; sourceTree = ""; }; + 90FB64A00D5B29274A1EDAFD38A2A8B9 /* RDEPUBAttachmentTooltipView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBAttachmentTooltipView.swift; sourceTree = ""; }; + 9117DB8611498A875CF9CF11D092BFA5 /* RDEPUBWebViewDebug.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBWebViewDebug.swift; sourceTree = ""; }; + 933E1AC7CA1ADECA318762103FAC0AF3 /* UIColor+RDEPUBHex.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "UIColor+RDEPUBHex.swift"; sourceTree = ""; }; + 9435D40191E13E2949BA08196EFE296F /* RDEPUBTextContentView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextContentView.swift; sourceTree = ""; }; + 943DB891CA340D3E0A65D0267100C3E7 /* RDEPUBJumpSession.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBJumpSession.swift; sourceTree = ""; }; 94705DADD1F09F4162F7D733318238F4 /* NSData+DTCrypto.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSData+DTCrypto.h"; path = "Core/Source/NSData+DTCrypto.h"; sourceTree = ""; }; - 94AC74FD0844C7054C87B2A9D27D847D /* RDEPUBTextSelectionController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextSelectionController.swift; sourceTree = ""; }; - 94F5CBFE8EF3307F3C9B0E25A5F70E70 /* RDEPUBReaderUIState.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderUIState.swift; sourceTree = ""; }; 9542AFE3A82C8AE56576254CE196E71A /* DTCustomColoredAccessory.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTCustomColoredAccessory.m; path = Core/Source/iOS/DTCustomColoredAccessory.m; sourceTree = ""; }; 978449466D53EA6F5D40FCF0F353DDCA /* NSAttributedString+DTCoreText.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSAttributedString+DTCoreText.m"; path = "Core/Source/NSAttributedString+DTCoreText.m"; sourceTree = ""; }; - 98A9D1AD928E701623173D31FC8B35F7 /* RDEPUBAssetRepository.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBAssetRepository.swift; sourceTree = ""; }; + 982FBB7B62F54B7806EAD1C178B6A083 /* RDEPUBReaderTopToolView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderTopToolView.swift; sourceTree = ""; }; 98CF9C5D504838741E399811F4D5A0B7 /* NSAttributedString+SmallCaps.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSAttributedString+SmallCaps.m"; path = "Core/Source/NSAttributedString+SmallCaps.m"; sourceTree = ""; }; - 9998A80A1B633EB1C2C1EBB107866B40 /* RDEPUBCFITextAssertion.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBCFITextAssertion.swift; sourceTree = ""; }; - 9A19BDED17612309ACF1752937514F77 /* RDEPUBTextPerformanceSampler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextPerformanceSampler.swift; sourceTree = ""; }; - 9A957A416473B3393454FF640ACD97E8 /* RDReaderView+CollectionView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDReaderView+CollectionView.swift"; sourceTree = ""; }; + 9B8EBA6DFDDDD074E804C1689727074E /* RDEPUBTextAnnotationOverlay.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextAnnotationOverlay.swift; sourceTree = ""; }; 9C12A4A5BB42D0F68DABBD3BDF103BC5 /* DTDictationPlaceholderView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTDictationPlaceholderView.h; path = Core/Source/DTDictationPlaceholderView.h; sourceTree = ""; }; + 9C1B2F1D8E3F93A60375AA8853FF1842 /* RDReaderTapRegionHandler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDReaderTapRegionHandler.swift; sourceTree = ""; }; 9C3615C94C147AEA92F022E119810E9F /* Data+Serialization.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Data+Serialization.swift"; path = "Sources/ZIPFoundation/Data+Serialization.swift"; sourceTree = ""; }; 9C5E29D728B8CD4EABC0B3DD9CD9DE99 /* UIScreen+DTFoundation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIScreen+DTFoundation.h"; path = "Core/Source/iOS/UIScreen+DTFoundation.h"; sourceTree = ""; }; 9C6CE93FAA68605C6B90FF844A98E440 /* CTLineUtils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CTLineUtils.h; path = Core/Source/CTLineUtils.h; sourceTree = ""; }; - 9CA110E3D360292AAFB29F380653D9CE /* RDEPUBReaderAnnotationCoordinator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderAnnotationCoordinator.swift; sourceTree = ""; }; - 9D53D1FE67166E6B0675584BCB425A05 /* RDEPUBWebView+Search.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBWebView+Search.swift"; sourceTree = ""; }; - 9D70402AAC82BB390480E18E45DCF11A /* RDURLReaderController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDURLReaderController.swift; sourceTree = ""; }; + 9D28F67E16027AF4FA4F9D501C4D0712 /* RDReaderView-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "RDReaderView-umbrella.h"; sourceTree = ""; }; 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - 9DF9B7EF7992895E4AA2E398522498BC /* rangy-serializer.js */ = {isa = PBXFileReference; includeInIndex = 1; name = "rangy-serializer.js"; path = "Sources/RDReaderView/EPUBCore/Resources/rangy-serializer.js"; sourceTree = ""; }; - 9FE811B58EF82E20354C3DABE712313F /* RDEPUBBackgroundPriorityPolicy.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBBackgroundPriorityPolicy.swift; sourceTree = ""; }; - A0A47D7B73C87872B9B05E80A4254D4C /* RDEPUBReaderTopToolView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderTopToolView.swift; sourceTree = ""; }; - A13D725843764880816F43281F2363FC /* RDEPUBSelectionOverlayView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBSelectionOverlayView.swift; sourceTree = ""; }; - A16F8F582626936AC8B388F57B74A6F5 /* RDEPUBReaderSettings.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderSettings.swift; sourceTree = ""; }; - A1E58E922721839C1D9E53D2DFA357A8 /* RDEPUBReaderConfiguration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderConfiguration.swift; sourceTree = ""; }; + 9ED2C72C44EE3717E5F3B45933FC5F5C /* RDEPUBResourceURLSchemeHandler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBResourceURLSchemeHandler.swift; sourceTree = ""; }; + 9F8BA45FA0D8E3CBAAE6E18272EB0644 /* RDReaderView.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = RDReaderView.debug.xcconfig; sourceTree = ""; }; + 9FA1C7B2B5D3FE43AB0598F027C50377 /* RDEPUBReadingLocationModels.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReadingLocationModels.swift; sourceTree = ""; }; + A12918D1D6A305DDE8B4249CCE38BB1F /* RDEPUBReaderRuntime.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderRuntime.swift; sourceTree = ""; }; + A1570DC08749A3866877CAF0A6BD877C /* RDEPUBReaderLocationCoordinator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderLocationCoordinator.swift; sourceTree = ""; }; + A16FEBBEDD32F8EAE312AADBE815BF49 /* RDEPUBReaderController+ExternalLinks.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBReaderController+ExternalLinks.swift"; sourceTree = ""; }; + A184BC6F2CCE83350332C9F00071A2B9 /* RDEPUBNoteResolver.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBNoteResolver.swift; sourceTree = ""; }; + A191A2F7DD62299E8945911DC282FFA0 /* RDEPUBJavaScriptBridge.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBJavaScriptBridge.swift; sourceTree = ""; }; A20F6F0463A998DC3BD53DE9E63B63DE /* DTSmartPagingScrollView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTSmartPagingScrollView.m; path = Core/Source/iOS/DTSmartPagingScrollView.m; sourceTree = ""; }; - A26FAE3FB6F9DBBC672161B173177A5C /* RDEPUBCFIDOMPathBuilder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBCFIDOMPathBuilder.swift; sourceTree = ""; }; - A29809A2BF0AD11378C7FDE3406150B1 /* RDEPUBReaderController+LocationResolution.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBReaderController+LocationResolution.swift"; sourceTree = ""; }; + A30017EA232AF10EF5AEF1A20891306E /* RDEPUBPublication.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBPublication.swift; sourceTree = ""; }; A3BD3ED7913130D32E14D5572CBCC921 /* NSString+DTFormatNumbers.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSString+DTFormatNumbers.h"; path = "Core/Source/NSString+DTFormatNumbers.h"; sourceTree = ""; }; A3DE08AC23FE36A6C3F33A04700FDE57 /* DTAnimatedGIF.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTAnimatedGIF.m; path = Core/Source/iOS/DTAnimatedGIF/DTAnimatedGIF.m; sourceTree = ""; }; A3F7613E99CAA29881A015D0ED969B86 /* NSURL+DTAppLinks.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSURL+DTAppLinks.h"; path = "Core/Source/iOS/NSURL+DTAppLinks.h"; sourceTree = ""; }; - A416E2F4584E41C30A3352FFD3824BE2 /* UIColor+RDEPUB.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "UIColor+RDEPUB.swift"; sourceTree = ""; }; - A511C95B0250D33F33026861C48BF655 /* WeReadApi.js */ = {isa = PBXFileReference; includeInIndex = 1; name = WeReadApi.js; path = Sources/RDReaderView/EPUBCore/Resources/WeReadApi.js; sourceTree = ""; }; + A472A71A962C2E34AB358EC26AEA60B4 /* RDEPUBAssetRepository.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBAssetRepository.swift; sourceTree = ""; }; + A4B2389196B50CE10DE62C6DF588B1D9 /* RDEPUBBackgroundTrace.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBBackgroundTrace.swift; sourceTree = ""; }; A592A34CA2EA792DDFAFAEB516FE8A10 /* NSCoder+DTCompatibility.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSCoder+DTCompatibility.h"; path = "Core/Source/NSCoder+DTCompatibility.h"; sourceTree = ""; }; A5D1FFCB042340FB917DAAE076DD1CCF /* DTFoundation.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = DTFoundation.modulemap; sourceTree = ""; }; - A601AB41E9B4878B34FC3380355F8DD9 /* RDEPUBDTCoreTextRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBDTCoreTextRenderer.swift; sourceTree = ""; }; A61C8F1BDD76EA59082F65269083BD08 /* DTCoreTextConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTCoreTextConstants.h; path = Core/Source/DTCoreTextConstants.h; sourceTree = ""; }; - A6F6D9E3E51175232197195809304FB2 /* RDReaderView.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = RDReaderView.modulemap; sourceTree = ""; }; + A61F5753AE7B5122FE65CF07CF1AD5FD /* RDReaderView-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "RDReaderView-dummy.m"; sourceTree = ""; }; + A6550AF614406015AE2CCD348C28A3BE /* RDEPUBTextSelectionController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextSelectionController.swift; sourceTree = ""; }; A7E167717A18E0C858C6FD95804249E4 /* NSCharacterSet+HTML.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSCharacterSet+HTML.h"; path = "Core/Source/NSCharacterSet+HTML.h"; sourceTree = ""; }; - A7E40C17B95F3BFCE6E70D0591DA6F7F /* RDEPUBNavigatorLayoutContext.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBNavigatorLayoutContext.swift; sourceTree = ""; }; + A7F40EAB66363D681DA68981B17FB492 /* RDReaderPagingController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDReaderPagingController.swift; sourceTree = ""; }; + A88F1371931B82C966232F059409D412 /* RDEPUBReaderBottomToolView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderBottomToolView.swift; sourceTree = ""; }; A8A086525BF509F4581693115438B82B /* NSAttributedString+DTDebug.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSAttributedString+DTDebug.h"; path = "Core/Source/NSAttributedString+DTDebug.h"; sourceTree = ""; }; A8CC38EFEF171FFEE008C32A6319BE6A /* DTFolderMonitor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTFolderMonitor.h; path = Core/Source/DTFolderMonitor.h; sourceTree = ""; }; + A98D6A8053F65B3872BF49A978E18042 /* RDEPUBWebContentView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBWebContentView.swift; sourceTree = ""; }; AA0811310099A4BCB3D52683B70DB3D1 /* Pods-ReadViewDemo-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-ReadViewDemo-dummy.m"; sourceTree = ""; }; + AB3DF251DDD78EDAEE82FBEBDF9CE79B /* RDReaderPageChildViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDReaderPageChildViewController.swift; sourceTree = ""; }; AC0A4ED7E936923A29A5EEB1D95D6B55 /* DTTextAttachmentHTMLElement.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTTextAttachmentHTMLElement.m; path = Core/Source/DTTextAttachmentHTMLElement.m; sourceTree = ""; }; - AC145C21118E90789E7954C445DE047E /* RDEPUBNotePopupViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBNotePopupViewController.swift; sourceTree = ""; }; ACA6D26B26D2653D6E1C871A482BD6DF /* NSURL+DTUnshorten.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSURL+DTUnshorten.h"; path = "Core/Source/NSURL+DTUnshorten.h"; sourceTree = ""; }; ACD2A4FF41C5A223C2D4B74E0EDA9B2C /* DTCoreText-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "DTCoreText-Info.plist"; sourceTree = ""; }; - AD5C20289C05F4C1BAD1B1DEEF2485C1 /* RDEPUBTypesettingPipeline.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTypesettingPipeline.swift; sourceTree = ""; }; + ADA1EB57E3C97548261B7AE9E5975272 /* RDEPUBCFISerializer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBCFISerializer.swift; sourceTree = ""; }; ADD5B2F66FCCFB58393314E7B9FE4384 /* NSMutableArray+DTMoving.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSMutableArray+DTMoving.m"; path = "Core/Source/NSMutableArray+DTMoving.m"; sourceTree = ""; }; - AEB527B9C4921752C6B00B0D032F379D /* RDEPUBCFIUtilities.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBCFIUtilities.swift; sourceTree = ""; }; + AE90A6C0DA3B5094237AACF4D06C944A /* RDEPUBReaderPersistence.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderPersistence.swift; sourceTree = ""; }; AF1516035C269F7A41EE064AAB14D562 /* DTActivityTitleView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTActivityTitleView.h; path = Core/Source/iOS/DTActivityTitleView.h; sourceTree = ""; }; AF436E76C893E223A4F0BE86C1276054 /* UIScreen+DTFoundation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIScreen+DTFoundation.m"; path = "Core/Source/iOS/UIScreen+DTFoundation.m"; sourceTree = ""; }; + AF8CFF30D6E79EDA9ADA4C8B8B5F52B2 /* RDEPUBChapterLoader.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBChapterLoader.swift; sourceTree = ""; }; B0218A7B243387C79E099CA947CF243D /* Archive+Writing.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Archive+Writing.swift"; path = "Sources/ZIPFoundation/Archive+Writing.swift"; sourceTree = ""; }; - B08FB1ED81E67058DC00376CA1DFC963 /* RDEPUBTextPaginationInterfaces.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextPaginationInterfaces.swift; sourceTree = ""; }; - B0F1230C085573028B4BC891EA8040C3 /* UIColor+RDEPUBHex.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "UIColor+RDEPUBHex.swift"; sourceTree = ""; }; B12CE4962CDC324FB47FB92D6706D149 /* DTLinkButton.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTLinkButton.h; path = Core/Source/DTLinkButton.h; sourceTree = ""; }; + B1AF2749008FE67A3281B83EE327E41D /* RDEPUBChapterData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBChapterData.swift; sourceTree = ""; }; B23C5F038DAC52B75213C0760C431F2B /* DTHTMLWriter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTHTMLWriter.m; path = Core/Source/DTHTMLWriter.m; sourceTree = ""; }; B37118B8D16847B0F82E06A5B33898AB /* DTCSSStylesheet.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTCSSStylesheet.m; path = Core/Source/DTCSSStylesheet.m; sourceTree = ""; }; - B38D5053661772BF3BDE06F5357B5A96 /* RDEPUBParser.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBParser.swift; sourceTree = ""; }; - B39E73DF030C0B322474D5986AD2D2FE /* RDEPUBReaderController+AttachmentTooltip.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBReaderController+AttachmentTooltip.swift"; sourceTree = ""; }; B41F7D27C2336F89BB0185ACB0B19EA9 /* ZIPFoundation-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "ZIPFoundation-umbrella.h"; sourceTree = ""; }; B43D7603C0D66635268842EC0A2655AC /* NSFileWrapper+DTCopying.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSFileWrapper+DTCopying.h"; path = "Core/Source/NSFileWrapper+DTCopying.h"; sourceTree = ""; }; B4A7F7402FAEE3A277A8716DDA115C95 /* NSString+Paragraphs.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSString+Paragraphs.m"; path = "Core/Source/NSString+Paragraphs.m"; sourceTree = ""; }; B4D20A2B33F9F4DD8499FB462DE2731F /* DTAttributedTextView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTAttributedTextView.h; path = Core/Source/DTAttributedTextView.h; sourceTree = ""; }; B50104DE2E35D820ECA22CDB3E6F96EA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; - B5629838A35BA6A3F2895CFDE6A5FE0B /* RDEPUBReaderBottomToolView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderBottomToolView.swift; sourceTree = ""; }; + B55E6E99C6F879CFD19D3674CE20075C /* RDEPUBTextRendererSupport.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextRendererSupport.swift; sourceTree = ""; }; + B62755E9A395FF22E7405C3FE192D5F3 /* RDEPUBChapterPageCounter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBChapterPageCounter.swift; sourceTree = ""; }; B6CA8CC4525EF64AA5CEE4A722737F1C /* DTCoreText-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "DTCoreText-dummy.m"; sourceTree = ""; }; B76B1E836C34CB755AEE1FBF7DC26BDD /* NSString+DTPaths.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSString+DTPaths.h"; path = "Core/Source/NSString+DTPaths.h"; sourceTree = ""; }; B7C4233DF4FA80BF4A9E6FA5082D49E5 /* DTCoreTextParagraphStyle.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTCoreTextParagraphStyle.m; path = Core/Source/DTCoreTextParagraphStyle.m; sourceTree = ""; }; B83D7A73677A2C3141EDEF56B9CE6584 /* DTVideoTextAttachment.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTVideoTextAttachment.m; path = Core/Source/DTVideoTextAttachment.m; sourceTree = ""; }; B8717A7A7BC5A1529A0F80FB3B22675D /* DTFoundation-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "DTFoundation-Info.plist"; sourceTree = ""; }; - B9E19C361904199E2E63EDFFBD64A90C /* RDReaderView+ContentAccess.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDReaderView+ContentAccess.swift"; sourceTree = ""; }; - BA0A09CCD48B28C7C98016F5B7DCB94A /* RDEPUBImageViewerCoordinator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBImageViewerCoordinator.swift; sourceTree = ""; }; + B879D43D53D77B2C9BA10AE5CDC71CED /* RDEPUBTextPageRenderView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextPageRenderView.swift; sourceTree = ""; }; + B898A07D2E7D8E62F64BD28BAFA3DEFA /* RDEPUBRenderDiagnosticsCollector.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBRenderDiagnosticsCollector.swift; sourceTree = ""; }; + BA33898232E2ED58D3A5B60A8F56BAC6 /* RDEPUBCFICompatibility.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBCFICompatibility.swift; sourceTree = ""; }; + BA6B5FFFF22D8A36CC593817C0494CD1 /* RDEPUBSearchModels.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBSearchModels.swift; sourceTree = ""; }; BA8A527A4CCB2AF1C1E26744B301F6B8 /* DTIframeTextAttachment.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTIframeTextAttachment.m; path = Core/Source/DTIframeTextAttachment.m; sourceTree = ""; }; - BAE090F5D5825DF3A26C12BB14E21739 /* RDEPUBRenderDiagnosticsCollector.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBRenderDiagnosticsCollector.swift; sourceTree = ""; }; + BAAB1142496F4E594573D85EF76670A8 /* RDEPUBTextAnchor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextAnchor.swift; sourceTree = ""; }; BAE45673EE2875DB23FA7BDD61FDE1EF /* DTCustomColoredAccessory.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTCustomColoredAccessory.h; path = Core/Source/iOS/DTCustomColoredAccessory.h; sourceTree = ""; }; - BB30DFD1013A322C32A3848B1D6602DA /* RDReaderView+PageCurl.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDReaderView+PageCurl.swift"; sourceTree = ""; }; - BC1BAC41A213B19789028A9648DD5BD6 /* RDEPUBReaderPersistence.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderPersistence.swift; sourceTree = ""; }; - BC2FC937F877AAF34D20099B548F79F4 /* RDEPUBNotePopupCoordinator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBNotePopupCoordinator.swift; sourceTree = ""; }; + BC5131ADC7B6C3869C5CA5A5CB52C06F /* RDEPUBChapterCacheKey.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBChapterCacheKey.swift; sourceTree = ""; }; BC59BBF6628D93AAC30CBFE0FF0151F2 /* ZIPFoundation-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "ZIPFoundation-prefix.pch"; sourceTree = ""; }; + BD161DA5F1982A4BA70B86D3D27455A3 /* RDEPUBParser+Resources.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBParser+Resources.swift"; sourceTree = ""; }; BD65B936E2A6FEB74718EA86D9AC1899 /* DTCoreTextParagraphStyle.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTCoreTextParagraphStyle.h; path = Core/Source/DTCoreTextParagraphStyle.h; sourceTree = ""; }; - BE294326627812338FB0A4C644CD32A6 /* RDEPUBFontFallbackResolver.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBFontFallbackResolver.swift; sourceTree = ""; }; - BE8601B1192179DC899A1156CB46369E /* RDEPUBCFIMap.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBCFIMap.swift; sourceTree = ""; }; + BE8A25FFCA0AD1D9C167CCEE28D2378A /* RDEPUBCFIUtilities.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBCFIUtilities.swift; sourceTree = ""; }; BEA46E51E3616ECEAF0ACCEA9B8C67EF /* DTFolderMonitor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTFolderMonitor.m; path = Core/Source/DTFolderMonitor.m; sourceTree = ""; }; + BFBE38B3A4D9E60E2B1683A475513E46 /* RDEPUBChapterOffsetMap.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBChapterOffsetMap.swift; sourceTree = ""; }; BFF51E56E09E095C92CB5B9F21384027 /* Archive+MemoryFile.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Archive+MemoryFile.swift"; path = "Sources/ZIPFoundation/Archive+MemoryFile.swift"; sourceTree = ""; }; + C012576F77900AEF84ACA075FF174D12 /* RDEPUBReaderController+DataSource.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBReaderController+DataSource.swift"; sourceTree = ""; }; C0DCB00F0B62D7DBE628D2B5FF006E93 /* DTCoreText.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = DTCoreText.debug.xcconfig; sourceTree = ""; }; - C16D8899DF97FEA1975D2D134DA77804 /* RDEPUBReaderSettingsViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderSettingsViewController.swift; sourceTree = ""; }; - C248323DF03FE7E607F69BF5576B3F41 /* RDReaderViewProtocols.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDReaderViewProtocols.swift; sourceTree = ""; }; - C2E354232C09ED53034E389E0A70A0C2 /* RDReaderView-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "RDReaderView-umbrella.h"; sourceTree = ""; }; - C33E143A90F5075BA576F52111FFCCB0 /* RDEPUBReaderLoadCoordinator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderLoadCoordinator.swift; sourceTree = ""; }; - C37DF2A4019097BD40A1E29897024314 /* RDReaderView-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "RDReaderView-prefix.pch"; sourceTree = ""; }; - C384342E6BCF839582F9467109AC924A /* RDEPUBHTMLNormalizer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBHTMLNormalizer.swift; sourceTree = ""; }; + C3170B05B50679D6D7029E693A4A6024 /* RDEPUBCFITextAssertion.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBCFITextAssertion.swift; sourceTree = ""; }; + C3A0D1E77F50E5274CCC99EEA427C15E /* RDEPUBParser+TOC.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBParser+TOC.swift"; sourceTree = ""; }; C3E162E0261A5B0850158D3403191E62 /* Archive.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Archive.swift; path = Sources/ZIPFoundation/Archive.swift; sourceTree = ""; }; C46FCF109DBCB37595D2A3366CF1D765 /* DTCoreTextLayoutFrame.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTCoreTextLayoutFrame.h; path = Core/Source/DTCoreTextLayoutFrame.h; sourceTree = ""; }; - C477D7EE62BF9A8ACC465998EE02CB76 /* RDReaderView.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = RDReaderView.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + C4912F524E40CC6107099AB780A0E0BF /* RDEPUBPageCountCache.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBPageCountCache.swift; sourceTree = ""; }; C495C74844982FAA1B846A2A89023D12 /* DTCoreTextMacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTCoreTextMacros.h; path = Core/Source/DTCoreTextMacros.h; sourceTree = ""; }; + C4E711A4F76E5BF2095569B5A9B3F5BB /* RDEPUBChapterSummaryDiskCache.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBChapterSummaryDiskCache.swift; sourceTree = ""; }; C5005A9E8F746647585CCAB26853E922 /* NSString+DTFormatNumbers.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSString+DTFormatNumbers.m"; path = "Core/Source/NSString+DTFormatNumbers.m"; sourceTree = ""; }; C508E49F6BF9F50B05918C230B033069 /* DTTextBlock.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTTextBlock.m; path = Core/Source/DTTextBlock.m; sourceTree = ""; }; - C6205EFACA691F3EC37951F5A30B9590 /* RDEPUBReaderSearchCoordinator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderSearchCoordinator.swift; sourceTree = ""; }; + C5B003AC0B46623423334F97FEE379B8 /* RDEPUBTextPerformanceSampler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextPerformanceSampler.swift; sourceTree = ""; }; + C60EBAD7361BD011961D6A1FB94B914C /* String+RDEPUB.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "String+RDEPUB.swift"; sourceTree = ""; }; + C66C203D247690A4DDE08BF5A5D56B3B /* RDEPUBChapterWarmupOrchestrator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBChapterWarmupOrchestrator.swift; sourceTree = ""; }; C69C7A531B5E021499D8FBF1DBE0E3BB /* NSAttributedStringRunDelegates.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = NSAttributedStringRunDelegates.m; path = Core/Source/NSAttributedStringRunDelegates.m; sourceTree = ""; }; - C706B8C5A519EE55EC9D545AB3302AD9 /* RDEPUBReaderChapterListController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderChapterListController.swift; sourceTree = ""; }; - C70E0378F7CBD5A6DA253CC326036A9B /* RDEPUBPageMapReconciliationCoordinator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBPageMapReconciliationCoordinator.swift; sourceTree = ""; }; - C7437E451EF2A6AAE750F4983FF9BA5F /* RDEPUBStyleSheetBuilder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBStyleSheetBuilder.swift; sourceTree = ""; }; C7E09A6C247D465CA0EF71B939B2A040 /* NSArray+DTError.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSArray+DTError.h"; path = "Core/Source/NSArray+DTError.h"; sourceTree = ""; }; - C81E5EB72407C54EF8CC882A23759916 /* RDEPUBPublication.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBPublication.swift; sourceTree = ""; }; - C8FE55941A5CBC989B1F8C3E2D5A49AA /* RDEPUBBackgroundCoverageStore.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBBackgroundCoverageStore.swift; sourceTree = ""; }; CA4A114775B98CEA4A566C18123B145F /* ZIPFoundation-ZIPFoundation_Privacy */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = "ZIPFoundation-ZIPFoundation_Privacy"; path = ZIPFoundation_Privacy.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; CA5630DC0E663F38A9EC713323697EE1 /* DTLazyImageView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTLazyImageView.m; path = Core/Source/DTLazyImageView.m; sourceTree = ""; }; CACF20969583778CAC1BC92BB96F27FD /* NSAttributedString+SmallCaps.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSAttributedString+SmallCaps.h"; path = "Core/Source/NSAttributedString+SmallCaps.h"; sourceTree = ""; }; - CAF799848B6E5545BD3003001D3F6518 /* RDEPUBImageViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBImageViewController.swift; sourceTree = ""; }; CB2BD1F8CFECB82D427DF046439E68D6 /* DTHTMLParser.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTHTMLParser.h; path = Core/Source/DTHTMLParser/DTHTMLParser.h; sourceTree = ""; }; - CCB06D5D93327CF4E70EB026DFEFE8BE /* RDEPUBBackgroundTrace.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBBackgroundTrace.swift; sourceTree = ""; }; + CC0E8A0B81E73D17CDACE523F47D124B /* RDEPUBNoteDetector.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBNoteDetector.swift; sourceTree = ""; }; + CC8B39E69CFC5D4DD1D47A29F6D9E852 /* RDEPUBReaderServices.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderServices.swift; sourceTree = ""; }; CCC633BF76C79E0B4A6750337D5DCDB8 /* DTVersion.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTVersion.m; path = Core/Source/DTVersion.m; sourceTree = ""; }; - CE23D3D8B6CDEC776313C06D5CB44FE2 /* RDEPUBSelectionLoupeView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBSelectionLoupeView.swift; sourceTree = ""; }; + CCC938C9AB37D0B094B0CF78C098CBE6 /* RDEPUBWebDecorationOverlayView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBWebDecorationOverlayView.swift; sourceTree = ""; }; + CD0C3C872488B6341E22BF47B6F9BBD6 /* RDEPUBBuildDiagnosticsReporter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBBuildDiagnosticsReporter.swift; sourceTree = ""; }; CE761A55BD57C0BFD6336CD073F85C31 /* DTLinkButton.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTLinkButton.m; path = Core/Source/DTLinkButton.m; sourceTree = ""; }; - CE83527CFFC7FC1E222F5634198C03CD /* RDEPUBSearchEngine.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBSearchEngine.swift; sourceTree = ""; }; + CEB68ED963D81A187618710413C3B523 /* RDEPUBReaderController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderController.swift; sourceTree = ""; }; CEBA01360577AAD3FD089B6B17C24260 /* UIFont+DTCoreText.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIFont+DTCoreText.m"; path = "Core/Source/UIFont+DTCoreText.m"; sourceTree = ""; }; - CEC237752DE21AB8ADA263DE4977AC0F /* RDEPUBWebDecorationOverlayView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBWebDecorationOverlayView.swift; sourceTree = ""; }; + CED923CC25493B9CA28F24D209A33540 /* RDEPUBCFIError.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBCFIError.swift; sourceTree = ""; }; CEEC8715398E89B42F9B04E290E8E4FE /* NSString+DTURLEncoding.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSString+DTURLEncoding.h"; path = "Core/Source/NSString+DTURLEncoding.h"; sourceTree = ""; }; - CF108973184A89F47F1A44F491BC7453 /* RDEPUBFontNormalizer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBFontNormalizer.swift; sourceTree = ""; }; CF1CED3ED65443999913BC0D96ACA151 /* DTImage+HTML.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "DTImage+HTML.m"; path = "Core/Source/DTImage+HTML.m"; sourceTree = ""; }; + CF369892013F3178789ADFC74384ADC2 /* RDEPUBReaderState.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderState.swift; sourceTree = ""; }; + CF49CE19D9F09A60F438FF3612F43069 /* RDEPUBReaderController+RenderSupport.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBReaderController+RenderSupport.swift"; sourceTree = ""; }; D0856C3894240A673B5AB7C2704E9144 /* DTDictationPlaceholderTextAttachment.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTDictationPlaceholderTextAttachment.h; path = Core/Source/DTDictationPlaceholderTextAttachment.h; sourceTree = ""; }; D18519BCA8FAA9B01A704A0F0B9FFC78 /* Archive+ZIP64.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Archive+ZIP64.swift"; path = "Sources/ZIPFoundation/Archive+ZIP64.swift"; sourceTree = ""; }; D1E89A31867FF1FB44B4B999988F1B82 /* DTFoundation */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = DTFoundation; path = DTFoundation.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D28A3E79D83EA4B807E2D3A5EE086B8B /* DTHTMLParserNode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTHTMLParserNode.h; path = Core/Source/DTHTMLParserNode.h; sourceTree = ""; }; - D30190E9913BB7FF775D8602E753BA47 /* RDPlainTextBookBuilder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDPlainTextBookBuilder.swift; sourceTree = ""; }; D30DBDF1EDB20CF83690AC6619AA0C48 /* NSString+DTPaths.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSString+DTPaths.m"; path = "Core/Source/NSString+DTPaths.m"; sourceTree = ""; }; - D3BFAD599CFD612530D8B30DDB9F5D4A /* RDEPUBChapterRuntimeStore.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBChapterRuntimeStore.swift; sourceTree = ""; }; - D423B0BF37041F8E07C6EFD476F511A4 /* RDEPUBReaderAssemblyCoordinator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderAssemblyCoordinator.swift; sourceTree = ""; }; + D4721E12B4121C46B8368D085D91EC2B /* RDEPUBTextPaginationInterfaces.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextPaginationInterfaces.swift; sourceTree = ""; }; D4C731AA2088D7E873D8E3D21B95D215 /* DTIframeTextAttachment.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTIframeTextAttachment.h; path = Core/Source/DTIframeTextAttachment.h; sourceTree = ""; }; - D4FD083436655F07AFCFB5B5492EF0F1 /* RDEPUBTextContentInteractionCoordinator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextContentInteractionCoordinator.swift; sourceTree = ""; }; D5DD4142DF33E1BE0B5A057101E851C5 /* DTLazyImageView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTLazyImageView.h; path = Core/Source/DTLazyImageView.h; sourceTree = ""; }; - D61BD3F3828530F0B2500FA1C4367C50 /* RDEPUBTextRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextRenderer.swift; sourceTree = ""; }; - D7F60831A79D296EEABAD2AEB8A8C774 /* RDEPUBPageResolver.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBPageResolver.swift; sourceTree = ""; }; + D6901981E3F4F05F9FAC5ECE00D8983E /* RDEPUBPageLayoutSnapshot.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBPageLayoutSnapshot.swift; sourceTree = ""; }; D80A72D8B7941D30246858D840EE1EF5 /* DTCoreTextLayouter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTCoreTextLayouter.m; path = Core/Source/DTCoreTextLayouter.m; sourceTree = ""; }; - D88A921856D9EF12C78D05D927BF334B /* RDEPUBReaderController+TableOfContents.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBReaderController+TableOfContents.swift"; sourceTree = ""; }; - D97740E10289031B888FFAE803AE441E /* wxread-dark.css */ = {isa = PBXFileReference; includeInIndex = 1; name = "wxread-dark.css"; path = "Sources/RDReaderView/EPUBCore/Resources/wxread-dark.css"; sourceTree = ""; }; D9A812C3E577A3ADC36BAE3FF7AA4D9C /* NSFileWrapper+DTCopying.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSFileWrapper+DTCopying.m"; path = "Core/Source/NSFileWrapper+DTCopying.m"; sourceTree = ""; }; - D9EB24D09C2239F4C77E17F54D248B80 /* RDEPUBTextAnnotationOverlay.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextAnnotationOverlay.swift; sourceTree = ""; }; DA2ED17D0DDF5F1C5606BFFD9A512DE4 /* DTCoreTextFunctions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTCoreTextFunctions.h; path = Core/Source/DTCoreTextFunctions.h; sourceTree = ""; }; - DA68A96FA91F03F747A3D85A2DB0B45E /* RDEPUBReaderController+ContentDelegates.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBReaderController+ContentDelegates.swift"; sourceTree = ""; }; - DBFE242CACE9410D681C091D4BB7237D /* epub-bridge.js */ = {isa = PBXFileReference; includeInIndex = 1; name = "epub-bridge.js"; path = "Sources/RDReaderView/EPUBCore/Resources/epub-bridge.js"; sourceTree = ""; }; + DC7BE59730389C1EC7BF65734D0D6776 /* RDEPUBPageResolver.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBPageResolver.swift; sourceTree = ""; }; DC7D3AB85C954DA41E1500936C166C0E /* NSString+HTML.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSString+HTML.h"; path = "Core/Source/NSString+HTML.h"; sourceTree = ""; }; - DC9EFF22EDE800175B01DE546C97862D /* RDReaderPreloadController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDReaderPreloadController.swift; sourceTree = ""; }; DD0A5FF70CDBE87597264762EC20EF43 /* NSScanner+HTML.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSScanner+HTML.h"; path = "Core/Source/NSScanner+HTML.h"; sourceTree = ""; }; DD7A2DE5BDF72ABC066484CE554BDEF0 /* DTHorizontalRuleHTMLElement.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTHorizontalRuleHTMLElement.m; path = Core/Source/DTHorizontalRuleHTMLElement.m; sourceTree = ""; }; DE4821B98DDE6C71411EC139EC6D2762 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/CoreGraphics.framework; sourceTree = DEVELOPER_DIR; }; DE83356F8FBC1801D29CA93C1A190D81 /* Archive+Progress.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Archive+Progress.swift"; path = "Sources/ZIPFoundation/Archive+Progress.swift"; sourceTree = ""; }; + DE93E7F2D03E5848ADB6C91620D5A245 /* RDEPUBReaderController+TableOfContents.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBReaderController+TableOfContents.swift"; sourceTree = ""; }; + DEE95CBD7B492C5453D2FFA983C5CC02 /* RDEPUBSelectionOverlayView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBSelectionOverlayView.swift; sourceTree = ""; }; + DF346DB5BE7AF7245DCDDACEFDC59732 /* RDEPUBReaderToolView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderToolView.swift; sourceTree = ""; }; E0192469A486DA7CECFECEA37518B6B9 /* DTHTMLAttributedStringBuilder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTHTMLAttributedStringBuilder.m; path = Core/Source/DTHTMLAttributedStringBuilder.m; sourceTree = ""; }; - E246B080707A0DA836FC0890AE96D529 /* RDReaderPagingController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDReaderPagingController.swift; sourceTree = ""; }; + E0F6036722A2FEED169B57120EB274D1 /* RDEPUBHTMLNormalizer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBHTMLNormalizer.swift; sourceTree = ""; }; + E2A2130B4AB4BB4B5E30E4442A0FD644 /* RDEPUBPageMapReconciliationCoordinator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBPageMapReconciliationCoordinator.swift; sourceTree = ""; }; + E2C690372BDD5CA6E2A01A295EDE7C24 /* RDEPUBReaderSearchCoordinator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderSearchCoordinator.swift; sourceTree = ""; }; + E38BEF27B99CFAA178DE8917D69F11F8 /* RDEPUBParser+Package.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBParser+Package.swift"; sourceTree = ""; }; E3CAAC46883B74B071843E5D38B5BF85 /* DTImage+HTML.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "DTImage+HTML.h"; path = "Core/Source/DTImage+HTML.h"; sourceTree = ""; }; + E3FEF8716C99974FB6997BFBF339FD91 /* RDEPUBReaderChromeCoordinator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderChromeCoordinator.swift; sourceTree = ""; }; + E4C4605A9B7326DBE0CED7EB66A7416F /* RDReaderFlowLayout.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDReaderFlowLayout.swift; sourceTree = ""; }; E4C5EB3F8F005C65005C101A9DBE488A /* DTWeakSupport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTWeakSupport.h; path = Core/Source/DTWeakSupport.h; sourceTree = ""; }; - E510EFB4CE45829A8CAB4E2BE47C0041 /* epub-fixed-layout.html */ = {isa = PBXFileReference; includeInIndex = 1; name = "epub-fixed-layout.html"; path = "Sources/RDReaderView/EPUBCore/Resources/epub-fixed-layout.html"; sourceTree = ""; }; E5377786E80195587BF3E8A7589E5925 /* DTHTMLParserTextNode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTHTMLParserTextNode.m; path = Core/Source/DTHTMLParserTextNode.m; sourceTree = ""; }; E5D4D6E12779C54F17AE98A1E6C9B699 /* DTBase64Coding.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTBase64Coding.m; path = Core/Source/DTBase64Coding.m; sourceTree = ""; }; - E67E858259A9264CC8FD433B51487676 /* RDEPUBModels.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBModels.swift; sourceTree = ""; }; - E6801C4BFA1DBBC56523D5D3F427E8DB /* RDEPUBBookPageMap.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBBookPageMap.swift; sourceTree = ""; }; E687628EF2FE92D093E3005D21B578E5 /* DTWeakSupport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTWeakSupport.h; path = Core/Source/DTWeakSupport.h; sourceTree = ""; }; - E697E9F69226A6A803098BFD3D202842 /* RDEPUBCFIResolver.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBCFIResolver.swift; sourceTree = ""; }; E6B46EF6F055A721AF370D705D026E9E /* Data+CompressionDeprecated.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Data+CompressionDeprecated.swift"; path = "Sources/ZIPFoundation/Data+CompressionDeprecated.swift"; sourceTree = ""; }; E74132875CC4A311B230B68C085D8CE6 /* ResourceBundle-Resources-DTCoreText-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-Resources-DTCoreText-Info.plist"; sourceTree = ""; }; - E744A9171DA8D779C942360378D2EE4F /* RDEPUBJumpSession.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBJumpSession.swift; sourceTree = ""; }; - E7E49A0BE37FE8EEBBC94E752B95C59C /* wxread-replace-latin.css */ = {isa = PBXFileReference; includeInIndex = 1; name = "wxread-replace-latin.css"; path = "Sources/RDReaderView/EPUBCore/Resources/wxread-replace-latin.css"; sourceTree = ""; }; + E7F6AAF70ED1162640040B9969BBE6D5 /* RDEPUBReaderPaginationCoordinator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderPaginationCoordinator.swift; sourceTree = ""; }; E853AAB3B09E0662567752431CEF1D33 /* DTTextAttachment.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTTextAttachment.h; path = Core/Source/DTTextAttachment.h; sourceTree = ""; }; E865600EE9117A9153716299FFA7912D /* Archive+Reading.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Archive+Reading.swift"; path = "Sources/ZIPFoundation/Archive+Reading.swift"; sourceTree = ""; }; E89F199ECDE796B15CAF8E0C1775FAA6 /* DTCoreTextConstants.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTCoreTextConstants.m; path = Core/Source/DTCoreTextConstants.m; sourceTree = ""; }; - E8D1DCAA8AAE79FCBD5248D641D583DE /* RDEPUBReaderViewportMonitor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderViewportMonitor.swift; sourceTree = ""; }; - E9204AAD895ABE21EE8841D0A495C916 /* RDEPUBReaderEnvironment.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderEnvironment.swift; sourceTree = ""; }; E96C0EEB2032D3CC18F4B37A7C34C84C /* DTAttributedTextContentView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTAttributedTextContentView.h; path = Core/Source/DTAttributedTextContentView.h; sourceTree = ""; }; E9D8AB18960B56A997408E3235751624 /* ZIPFoundation-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "ZIPFoundation-dummy.m"; sourceTree = ""; }; - EA1200B7F3541159D13204D0C860076B /* RDEPUBCFIError.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBCFIError.swift; sourceTree = ""; }; + E9F5010D098DC3538CB8BAF64A54BF7B /* RDEPUBCFIGenerator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBCFIGenerator.swift; sourceTree = ""; }; EA2BF1D7535B036E1356E8DF42A04954 /* DTTextBlock.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTTextBlock.h; path = Core/Source/DTTextBlock.h; sourceTree = ""; }; - EB578C52D04A71D85CCA25340333F2C2 /* RDEPUBReaderController+PublicAPI.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBReaderController+PublicAPI.swift"; sourceTree = ""; }; EB850927957E35DB8CE0F109188C99A9 /* DTCoreTextLayoutLine.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTCoreTextLayoutLine.m; path = Core/Source/DTCoreTextLayoutLine.m; sourceTree = ""; }; EBA0272559B0F7FAD8AC670AC7431188 /* Pods-ReadViewDemo-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-ReadViewDemo-umbrella.h"; sourceTree = ""; }; - EBAABB0F2B6957E455D803F386B55761 /* RDEPUBStyleCompatibilityModels.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBStyleCompatibilityModels.swift; sourceTree = ""; }; - ECE876A9792A03EF4CBCFD3DF6188D46 /* RDEPUBReaderTableOfContentsItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderTableOfContentsItem.swift; sourceTree = ""; }; + ECBE8305E343FF00B5DDF4F8F9D18623 /* cssInjector.js */ = {isa = PBXFileReference; includeInIndex = 1; name = cssInjector.js; path = Sources/RDReaderView/EPUBCore/Resources/cssInjector.js; sourceTree = ""; }; ED049C791713944233EE10C7A111C691 /* DTCoreTextGlyphRun.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTCoreTextGlyphRun.m; path = Core/Source/DTCoreTextGlyphRun.m; sourceTree = ""; }; ED9A1EBDA0FD72671C7F6FE15F37B906 /* DTTextHTMLElement.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTTextHTMLElement.h; path = Core/Source/DTTextHTMLElement.h; sourceTree = ""; }; + EDA3C47F4EB23BAB5E96FD4DF3DFA59D /* RDEPUBMetadataParseWorker.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBMetadataParseWorker.swift; sourceTree = ""; }; EDA6D5D7D0A04878EE78FAAE94F65068 /* DTCoreText */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = DTCoreText; path = DTCoreText.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - EE0841869BD329D156D73D0CFB24542C /* RDEPUBReaderController+DataSource.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBReaderController+DataSource.swift"; sourceTree = ""; }; - EEB9B65684CB76F24E68191D6A5844D0 /* RDEPUBWebView+JavaScriptBridge.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBWebView+JavaScriptBridge.swift"; sourceTree = ""; }; + EE51FACCCAC4F6FE003BD3914F7B9071 /* UIColor+RDEPUB.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "UIColor+RDEPUB.swift"; sourceTree = ""; }; + EF4AF0ABB6117B18C8AE08E883BEA7C6 /* RDEPUBCFIRange.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBCFIRange.swift; sourceTree = ""; }; EF625CF6A790938F5CE0F0C7DC36E340 /* DTCoreTextLayoutFrame+Cursor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "DTCoreTextLayoutFrame+Cursor.m"; path = "Core/Source/DTCoreTextLayoutFrame+Cursor.m"; sourceTree = ""; }; + EFFC77747115ACAF9EE13A1CEAEEA539 /* RDEPUBParser.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBParser.swift; sourceTree = ""; }; + F0580E9407862B9D452289BBF1C4CA01 /* RDEPUBDarkImageAdjuster.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBDarkImageAdjuster.swift; sourceTree = ""; }; + F17DB32BEDD4A7738B4AC8201E5BD91B /* RDEPUBImageViewerCoordinator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBImageViewerCoordinator.swift; sourceTree = ""; }; + F2FB12B4D5D80C72658331C61991766C /* RDEPUBRuntimePageCount.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBRuntimePageCount.swift; sourceTree = ""; }; F3C9CA544EBF55130625F6C3AD2ABFB4 /* Archive+Deprecated.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Archive+Deprecated.swift"; path = "Sources/ZIPFoundation/Archive+Deprecated.swift"; sourceTree = ""; }; F3E93C4AC73A09DE1EAE805B0ADE3306 /* NSString+DTUtilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSString+DTUtilities.m"; path = "Core/Source/NSString+DTUtilities.m"; sourceTree = ""; }; F46010C3A0C82AE5ABEC814D7EC6351B /* DTAttributedTextView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTAttributedTextView.m; path = Core/Source/DTAttributedTextView.m; sourceTree = ""; }; + F46977FAF9F0EAEDF840BDA49288CC99 /* WeReadApi.js */ = {isa = PBXFileReference; includeInIndex = 1; name = WeReadApi.js; path = Sources/RDReaderView/EPUBCore/Resources/WeReadApi.js; sourceTree = ""; }; F49FC82A04EE9B3B49CBA6CB88ACBC67 /* FileManager+ZIPDeprecated.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "FileManager+ZIPDeprecated.swift"; path = "Sources/ZIPFoundation/FileManager+ZIPDeprecated.swift"; sourceTree = ""; }; - F4BE66AE0A6BCE91929B24BAA34DA151 /* RDEPUBDarkImageAdjuster.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBDarkImageAdjuster.swift; sourceTree = ""; }; F4E2B1AC73977F10254628C0B7EBE38F /* DTCoreText-Resources */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = "DTCoreText-Resources"; path = Resources.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; - F60ACBD9B441413B14468B1BFA1F7C6F /* RDEPUBReaderPaginationCoordinator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderPaginationCoordinator.swift; sourceTree = ""; }; + F5847BF261408B9B82FB3BF7A9390AB3 /* RDEPUBAttachmentNormalizer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBAttachmentNormalizer.swift; sourceTree = ""; }; + F5E771C978D8EFB4DD05E81447873572 /* RDEPUBCFIParser.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBCFIParser.swift; sourceTree = ""; }; F63EBF2BF3000B3391F6E693581EA129 /* NSData+DTCrypto.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSData+DTCrypto.m"; path = "Core/Source/NSData+DTCrypto.m"; sourceTree = ""; }; - F788C862D0C386B17128DB735921333C /* RDEPUBReaderController+ExternalLinks.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBReaderController+ExternalLinks.swift"; sourceTree = ""; }; + F6E041555AFAC5F8BD987FCA9DAC0949 /* RDEPUBSelectionState.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBSelectionState.swift; sourceTree = ""; }; F7C508BE899A1397560A767CAEADB7B9 /* DTHTMLElement.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTHTMLElement.h; path = Core/Source/DTHTMLElement.h; sourceTree = ""; }; - F850938C9F348E6ED5216809EE43689D /* RDReaderTapRegionHandler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDReaderTapRegionHandler.swift; sourceTree = ""; }; - F98CD641441793095A6228F264D13025 /* RDEPUBReaderServices.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderServices.swift; sourceTree = ""; }; + F81B70DF51F9CD64A7DC5AAF3941F72C /* wxread-replace.css */ = {isa = PBXFileReference; includeInIndex = 1; name = "wxread-replace.css"; path = "Sources/RDReaderView/EPUBCore/Resources/wxread-replace.css"; sourceTree = ""; }; F9D9BEF72311AF9E3239F9B92A9D2842 /* DTAnimatedGIF.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTAnimatedGIF.h; path = Core/Source/iOS/DTAnimatedGIF/DTAnimatedGIF.h; sourceTree = ""; }; FA107BE47514D01B94B7A2670A9F83E5 /* NSString+HTML.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSString+HTML.m"; path = "Core/Source/NSString+HTML.m"; sourceTree = ""; }; - FBA95BB1C6D5F042AFE2454D582DFC55 /* RDEPUBReaderSearchBarView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderSearchBarView.swift; sourceTree = ""; }; - FCD11C7BF5FACCD5B5A3D2C4991EF047 /* RDEPUBTextBookCache.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextBookCache.swift; sourceTree = ""; }; - FE7F6623805E2DA3B053A0066ADA7E68 /* RDEPUBResourceResolver.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBResourceResolver.swift; sourceTree = ""; }; + FABA3ECEE6A89B4087086F0D2377CB5A /* RDReaderView.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = RDReaderView.modulemap; sourceTree = ""; }; + FB36F27A8101BA01699CFD777FC1CAFA /* RDReaderView-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "RDReaderView-prefix.pch"; sourceTree = ""; }; + FD431E9FF16247D6AFF1148D33F06DEA /* RDEPUBSelectionLoupeView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBSelectionLoupeView.swift; sourceTree = ""; }; + FE10A5C6934704218EB16F8966AA0814 /* RDEPUBPageBreakPolicy.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBPageBreakPolicy.swift; sourceTree = ""; }; FEA9F91758013B23B0EEA71DA22E7475 /* Pods-ReadViewDemo-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-ReadViewDemo-Info.plist"; sourceTree = ""; }; FEB14A8F8170777DB7CCC3F27C8EA57A /* ImageIO.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ImageIO.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS18.0.sdk/System/Library/Frameworks/ImageIO.framework; sourceTree = DEVELOPER_DIR; }; - FEC235E4971E5D0ED37AF923AD247D3C /* RDEPUBPageCountCache.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBPageCountCache.swift; sourceTree = ""; }; + FF164505A477C6ED40FE8EF0CB2E6693 /* RDEPUBTextBookCache.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextBookCache.swift; sourceTree = ""; }; FF1C41D226C0957F715EFF3F23893386 /* DTFoundation-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "DTFoundation-dummy.m"; sourceTree = ""; }; FF63F5E8902D6F3F5E845A924EBBC6D3 /* DTFoundationConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTFoundationConstants.h; path = Core/Source/DTFoundationConstants.h; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ + 0DE1ECAB91165C80E940E26216D40F84 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 5A0FD2132C522ED3FFB86E966FE288F9 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 22F00C8E9739C5623FED72E777C69A0C /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; 241C62665F0673AB5044556DB7A47F1F /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -985,18 +1002,11 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 41D2F746EE0F32BE39A378BBE1D33306 /* Frameworks */ = { + 5254383549A94DDFEA97C5C20A808F78 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 6BA994E419B71A34DAC7DC2F80C1E55A /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 4B01D192E9BA7876FE04643D9B59BB7D /* Foundation.framework in Frameworks */, + 7721B54B344CC91C75F3508F8A38B094 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1013,92 +1023,33 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 7BB687433C7B1AC0D2C83CC4255CF94B /* Frameworks */ = { + AAFF6297ECB0F5238719655741D4CC47 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - 923127D49FC5F6755FEC287CF9B07812 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - AF2C993F79DBF1586E55F70A9F105C6A /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - A54A020DFD109D748321C3911B8451A8 /* Frameworks */ = { + BF1455AB73F756E1DF11AC8ECD2CA7A7 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - CA092150563BDAB9BF6BB4E333429810 /* Frameworks */ = { + D094297E3FF019E0C05C5244B095CA0A /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - DE3267C28E5F163C748DF648D172EE2C /* Foundation.framework in Frameworks */, - B76DE23D085C8DFE63FA9FC05387E02D /* ImageIO.framework in Frameworks */, - 9DCB6AFEED62901AFF45F911F9AAA89C /* QuartzCore.framework in Frameworks */, + C8E9353276833F3362D26F17A2FF2939 /* Foundation.framework in Frameworks */, + 7D6EFD0580A8BCD609B2076F8A6EB4C8 /* ImageIO.framework in Frameworks */, + DFC8567EED9764161A51DB808255D041 /* QuartzCore.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 017EB082AD13216251C54E6EFC22C072 /* EPUBCore */ = { - isa = PBXGroup; - children = ( - 98A9D1AD928E701623173D31FC8B35F7 /* RDEPUBAssetRepository.swift */, - 8184024038D8B93BD22ECAAB863B41D9 /* RDEPUBFixedLayoutTemplate.swift */, - 1DD5649E99D72A74F8F2C3B3E5D3A729 /* RDEPUBJavaScriptBridge.swift */, - E67E858259A9264CC8FD433B51487676 /* RDEPUBModels.swift */, - A7E40C17B95F3BFCE6E70D0591DA6F7F /* RDEPUBNavigatorLayoutContext.swift */, - 893DFE6F010A222A98E905EA778740A0 /* RDEPUBPaginator.swift */, - B38D5053661772BF3BDE06F5357B5A96 /* RDEPUBParser.swift */, - 1C2BD942CCE411EF3AB9DCDC8215B180 /* RDEPUBParser+Archive.swift */, - 4CFCD5EFD6EDDC69776A50362DB16409 /* RDEPUBParser+Package.swift */, - 15C005A2A5E6A8263DE1F99AC5D372C0 /* RDEPUBParser+ReadingProfile.swift */, - 11246502ABEC1999B60B3FA41B764E7D /* RDEPUBParser+Resources.swift */, - 8485FAD7356F83F96C2CF8F2171C1DFB /* RDEPUBParser+TOC.swift */, - 0E0D068226C4B5E614B90482A3B4AFC0 /* RDEPUBPreferences.swift */, - C81E5EB72407C54EF8CC882A23759916 /* RDEPUBPublication.swift */, - 5FBE83F7B3B8689CC23FD1657E2A270E /* RDEPUBReadingSession.swift */, - 8F25D7766B9F7B666C309052CA726A7B /* RDEPUBRenderRequest.swift */, - FE7F6623805E2DA3B053A0066ADA7E68 /* RDEPUBResourceResolver.swift */, - 0A317B397274A6DAD784080981649FAC /* RDEPUBResourceURLSchemeHandler.swift */, - CE83527CFFC7FC1E222F5634198C03CD /* RDEPUBSearchEngine.swift */, - 736492CB9D329AD8CB8401330973FBCD /* RDEPUBSearchModels.swift */, - C7437E451EF2A6AAE750F4983FF9BA5F /* RDEPUBStyleSheetBuilder.swift */, - 00D963091969DCF978D7A36BF2747D33 /* RDEPUBTextAnchor.swift */, - 56EA8C75C7045AF8F04F2D56ACA2A18B /* RDEPUBWebView.swift */, - 37AD2B1FCE8C4B62FBC8B751F17EC474 /* RDEPUBWebView+Configuration.swift */, - 89AB081C4A259D931A865EA5A797CAFF /* RDEPUBWebView+FixedLayout.swift */, - EEB9B65684CB76F24E68191D6A5844D0 /* RDEPUBWebView+JavaScriptBridge.swift */, - 10FC9FC44C8A038A286BF6DCD1891DA0 /* RDEPUBWebView+Reflowable.swift */, - 9D53D1FE67166E6B0675584BCB425A05 /* RDEPUBWebView+Search.swift */, - 42A82DADD6CBBE3627BE13B2E0FC8B34 /* RDEPUBWebViewDebug.swift */, - 9562DD652C3F1E63D393B69D04C3D0EB /* CFI */, - 3DE030DD1E49D0CD372ACE04F39588FC /* Models */, - 49397EB7C057319B2CA1AA4239F92807 /* Notes */, - ); - name = EPUBCore; - path = Sources/RDReaderView/EPUBCore; - sourceTree = ""; - }; - 04A8FFC6216D98269272DFC3FD51B260 /* Compatibility */ = { - isa = PBXGroup; - children = ( - 8563248DA3F6A02F5A355DBD1D57E80D /* RDEPUBCSSCompatibilityLayer.swift */, - BE294326627812338FB0A4C644CD32A6 /* RDEPUBFontFallbackResolver.swift */, - EBAABB0F2B6957E455D803F386B55761 /* RDEPUBStyleCompatibilityModels.swift */, - ); - name = Compatibility; - path = Compatibility; - sourceTree = ""; - }; 06C22A27383EA079F8FF2367C9567BC0 /* DTCoreText */ = { isa = PBXGroup; children = ( @@ -1236,26 +1187,16 @@ path = DTCoreText; sourceTree = ""; }; - 0C5B69B2CD80274C6E29E5EA8098B935 /* ChapterRuntime */ = { + 0BCB541A25608F56871618A1D03E9C54 /* Paging */ = { isa = PBXGroup; children = ( - CCB06D5D93327CF4E70EB026DFEFE8BE /* RDEPUBBackgroundTrace.swift */, - E6801C4BFA1DBBC56523D5D3F427E8DB /* RDEPUBBookPageMap.swift */, - 05B6FB8AE3D884ED289049A7E125D668 /* RDEPUBChapterCacheKey.swift */, - 88EFF88D4E3001A8D2D0E50EF9B94BBA /* RDEPUBChapterDataCache.swift */, - 8097E74036B5D6E168E9714A580060A8 /* RDEPUBChapterLoader.swift */, - 78739A559E3A2EA9FA4A1C17B16746DC /* RDEPUBChapterLocation.swift */, - 15DDB8FAB80CF0B8039A3DCF2D1CE6F5 /* RDEPUBChapterOffsetMap.swift */, - D3BFAD599CFD612530D8B30DDB9F5D4A /* RDEPUBChapterRuntimeStore.swift */, - 14826541B96FDC7B652AA313B700DABA /* RDEPUBChapterSummaryDiskCache.swift */, - 270645F585F13D520FFA031C447E19F1 /* RDEPUBChapterWarmupOrchestrator.swift */, - FEC235E4971E5D0ED37AF923AD247D3C /* RDEPUBPageCountCache.swift */, - D7F60831A79D296EEABAD2AEB8A8C774 /* RDEPUBPageResolver.swift */, - 2A3E72DC0C036C0F8808A44B73C4A5EA /* RDEPUBRuntimeChapter.swift */, - 3C574CD3AE9D1DCCA02A5270BB1130B6 /* RDEPUBRuntimePageCount.swift */, + A7F40EAB66363D681DA68981B17FB492 /* RDReaderPagingController.swift */, + 0E5D2C72E80EF71ECCFDFE5C476ADADE /* RDReaderPreloadController.swift */, + 0786D6430A29C2F90E4832048559BE21 /* RDReaderSpreadResolver.swift */, + 9C1B2F1D8E3F93A60375AA8853FF1842 /* RDReaderTapRegionHandler.swift */, ); - name = ChapterRuntime; - path = ChapterRuntime; + name = Paging; + path = Paging; sourceTree = ""; }; 0D4A349829D1C0DC0E69C0A64B9A4139 /* Pods-ReadViewDemo */ = { @@ -1275,20 +1216,20 @@ path = "Target Support Files/Pods-ReadViewDemo"; sourceTree = ""; }; - 15F3755B0C326BEBA738A6481B5F643E /* Typesetter */ = { + 13D36789CF3D460E6FFE303B68A66962 /* Typesetter */ = { isa = PBXGroup; children = ( - 6EBB71B95928ABA41A3B33A9DB8E75DD /* RDEPUBAttachmentNormalizer.swift */, - 462A73405A3D510CF9A7F4B5D63BF2B1 /* RDEPUBCFIMarkerInjector.swift */, - CF108973184A89F47F1A44F491BC7453 /* RDEPUBFontNormalizer.swift */, - 91C1D68B23A3D8DAF1C0934F17A09917 /* RDEPUBFragmentMarkerInjector.swift */, - C384342E6BCF839582F9467109AC924A /* RDEPUBHTMLNormalizer.swift */, - BAE090F5D5825DF3A26C12BB14E21739 /* RDEPUBRenderDiagnosticsCollector.swift */, - 0CF3A3E5A1F6B321F72FD2FF3C0AC1E1 /* RDEPUBSemanticMarkerInjector.swift */, - 36D5F0FE11BFC4DA5A60FF82CD8D83E4 /* RDEPUBStyleSheetComposer.swift */, - 425D9BA744DFC5E49D875D81AA8761F8 /* RDEPUBTextRendererSupport.swift */, - AD5C20289C05F4C1BAD1B1DEEF2485C1 /* RDEPUBTypesettingPipeline.swift */, - 04A8FFC6216D98269272DFC3FD51B260 /* Compatibility */, + F5847BF261408B9B82FB3BF7A9390AB3 /* RDEPUBAttachmentNormalizer.swift */, + 05ECE185AAFC5A857734DF5495F8E7C2 /* RDEPUBCFIMarkerInjector.swift */, + 545DD46BEAB1D1F7E0530E787095FCB2 /* RDEPUBFontNormalizer.swift */, + 5E8C914D69561C6C9736FCB3C6698CCC /* RDEPUBFragmentMarkerInjector.swift */, + E0F6036722A2FEED169B57120EB274D1 /* RDEPUBHTMLNormalizer.swift */, + B898A07D2E7D8E62F64BD28BAFA3DEFA /* RDEPUBRenderDiagnosticsCollector.swift */, + 0AE0BE26FBA95F74B6173965BEC302EB /* RDEPUBSemanticMarkerInjector.swift */, + 361565CCC385512EA14A6A2C9CFAF08B /* RDEPUBStyleSheetComposer.swift */, + B55E6E99C6F879CFD19D3674CE20075C /* RDEPUBTextRendererSupport.swift */, + 3424A6DFBC2AC519C7C599F18DCDC89D /* RDEPUBTypesettingPipeline.swift */, + 946AB5EF65FFA0C796D6B4E19D4B646D /* Compatibility */, ); name = Typesetter; path = Typesetter; @@ -1303,6 +1244,22 @@ name = DTAnimatedGIF; sourceTree = ""; }; + 27F2A646BFA6F6504139570B69BEDF9B /* BuildPipeline */ = { + isa = PBXGroup; + children = ( + CD0C3C872488B6341E22BF47B6F9BBD6 /* RDEPUBBuildDiagnosticsReporter.swift */, + 68A8597AE94ED09E9828E2EEA0D8FFFA /* RDEPUBChapterTailNormalizer.swift */, + 3008F6944BA740CD6E6F5CA33733C911 /* RDEPUBPaginationCacheCoordinator.swift */, + 72BE58BB9BF4DCDFDC6D5430AA2E82E9 /* RDEPUBTextBookBuilder.swift */, + FF164505A477C6ED40FE8EF0CB2E6693 /* RDEPUBTextBookCache.swift */, + 2F34FF3B7E71CCE4E9C73115AA710B1C /* RDEPUBTextBookModels.swift */, + 59036F71583DAE2641D9DAA567DBD208 /* RDEPUBTextBuildPipelineInterfaces.swift */, + C5B003AC0B46623423334F97FEE379B8 /* RDEPUBTextPerformanceSampler.swift */, + ); + name = BuildPipeline; + path = BuildPipeline; + sourceTree = ""; + }; 30694C306AB98E50937E9ECB722C31A4 /* Core */ = { isa = PBXGroup; children = ( @@ -1310,18 +1267,6 @@ name = Core; sourceTree = ""; }; - 34BA0E6288A1D9025DB06B70D292ED49 /* Settings */ = { - isa = PBXGroup; - children = ( - A1E58E922721839C1D9E53D2DFA357A8 /* RDEPUBReaderConfiguration.swift */, - A16F8F582626936AC8B388F57B74A6F5 /* RDEPUBReaderSettings.swift */, - C16D8899DF97FEA1975D2D134DA77804 /* RDEPUBReaderSettingsViewController.swift */, - 34595E922A09667901C926A8EBBC5E1A /* RDEPUBReaderTheme.swift */, - ); - name = Settings; - path = Settings; - sourceTree = ""; - }; 387832C7C64B3B352215F0FD83B927AC /* Support Files */ = { isa = PBXGroup; children = ( @@ -1338,15 +1283,34 @@ path = "../Target Support Files/DTCoreText"; sourceTree = ""; }; - 3DE030DD1E49D0CD372ACE04F39588FC /* Models */ = { + 399DBAA31AC98F6F98B27CE5ED36F63D /* Pod */ = { isa = PBXGroup; children = ( - 3E66D8D0604A6C89AA9DD222FE61F0E2 /* RDEPUBAnnotationModels.swift */, - 43DB30ED1E8B12F6CEC548FBF1290668 /* RDEPUBPaginationModels.swift */, - 1D220183932DB13D0AF20EF12C44A29D /* RDEPUBReadingLocationModels.swift */, + 80A3A50AC272F9C52395F4818E87EA19 /* RDReaderView.podspec */, ); - name = Models; - path = Models; + name = Pod; + sourceTree = ""; + }; + 39E5D96098508EBE207EB9A67F378ECB /* CFI */ = { + isa = PBXGroup; + children = ( + 4C0AFCECD74F73D7D40C6F3053AF6FEE /* RDEPUBCFI.swift */, + BA33898232E2ED58D3A5B60A8F56BAC6 /* RDEPUBCFICompatibility.swift */, + 54F135677B8806216984881B2333BF4E /* RDEPUBCFIDOMPathBuilder.swift */, + CED923CC25493B9CA28F24D209A33540 /* RDEPUBCFIError.swift */, + E9F5010D098DC3538CB8BAF64A54BF7B /* RDEPUBCFIGenerator.swift */, + 427D3D938726077995A928BFEDDC6632 /* RDEPUBCFIMap.swift */, + F5E771C978D8EFB4DD05E81447873572 /* RDEPUBCFIParser.swift */, + 129154729E86D56457FE6DC7DEEA55B6 /* RDEPUBCFIPath.swift */, + EF4AF0ABB6117B18C8AE08E883BEA7C6 /* RDEPUBCFIRange.swift */, + 2FBB458EDD978CBC54464EA28336F977 /* RDEPUBCFIRecoveryEngine.swift */, + 418CF402E2B3A6359A720876AF83E1F3 /* RDEPUBCFIResolver.swift */, + ADA1EB57E3C97548261B7AE9E5975272 /* RDEPUBCFISerializer.swift */, + C3170B05B50679D6D7029E693A4A6024 /* RDEPUBCFITextAssertion.swift */, + BE8A25FFCA0AD1D9C167CCEE28D2378A /* RDEPUBCFIUtilities.swift */, + ); + name = CFI; + path = CFI; sourceTree = ""; }; 426395460B992FC2D2EF86AF65197AD4 /* Pods */ = { @@ -1359,17 +1323,70 @@ name = Pods; sourceTree = ""; }; - 49397EB7C057319B2CA1AA4239F92807 /* Notes */ = { + 44496C06B38271B5703CC7890EEAED55 /* Notes */ = { isa = PBXGroup; children = ( - 8F2DF1EE547C972C1BF12018AFFC5142 /* RDEPUBNoteDetector.swift */, - 26E305762ECD5788B045AFC816767444 /* RDEPUBNoteModels.swift */, - 761AE6FC1A75A238945BD6F186EAA5E3 /* RDEPUBNoteResolver.swift */, + 6C906FDE0E26C697C4D2FB2502F7D798 /* RDEPUBNotePopupCoordinator.swift */, + 45441D548F125483949D77F61F85AFE3 /* RDEPUBNotePopupViewController.swift */, ); name = Notes; path = Notes; sourceTree = ""; }; + 46FCA5E1C91A068B8E7B222F017255EF /* EPUBUI */ = { + isa = PBXGroup; + children = ( + 0886011FDDE07A5C7BBC2168C401EAD2 /* RDEPUBAttachmentTooltipOverlayView.swift */, + 90FB64A00D5B29274A1EDAFD38A2A8B9 /* RDEPUBAttachmentTooltipView.swift */, + 254C03130C9163149B80FEBC8128119F /* RDEPUBImageViewController.swift */, + F17DB32BEDD4A7738B4AC8201E5BD91B /* RDEPUBImageViewerCoordinator.swift */, + A88F1371931B82C966232F059409D412 /* RDEPUBReaderBottomToolView.swift */, + 570429F8DD1951A554862120993C46B1 /* RDEPUBReaderChapterListController.swift */, + CEB68ED963D81A187618710413C3B523 /* RDEPUBReaderController.swift */, + 4CDD971696985E60155A09E16CD844C5 /* RDEPUBReaderController+AttachmentTooltip.swift */, + 44369E6800A89D0C5818CA884729D20F /* RDEPUBReaderController+ContentDelegates.swift */, + C012576F77900AEF84ACA075FF174D12 /* RDEPUBReaderController+DataSource.swift */, + A16FEBBEDD32F8EAE312AADBE815BF49 /* RDEPUBReaderController+ExternalLinks.swift */, + 5DE569B9F47EAF5135750BCF2E934C0F /* RDEPUBReaderController+LocationResolution.swift */, + 29075A60F0C3B46C5143EC971A0D16D4 /* RDEPUBReaderController+PublicAPI.swift */, + CF49CE19D9F09A60F438FF3612F43069 /* RDEPUBReaderController+RenderSupport.swift */, + 6B2DF9409FC76691EAC579DDF7247899 /* RDEPUBReaderController+RuntimeBridge.swift */, + DE93E7F2D03E5848ADB6C91620D5A245 /* RDEPUBReaderController+TableOfContents.swift */, + 61A1D30B96ADD9D1660073E9207329CF /* RDEPUBReaderDelegate.swift */, + 5E5956AA678A9521257D99891E823DE2 /* RDEPUBReaderHighlightsViewController.swift */, + AE90A6C0DA3B5094237AACF4D06C944A /* RDEPUBReaderPersistence.swift */, + 7DFE7162E90DAF71A557E4822C252E4F /* RDEPUBReaderSearchBarView.swift */, + 3C4658670F6EBD43067CF1D859518D23 /* RDEPUBReaderTableOfContentsItem.swift */, + DF346DB5BE7AF7245DCDDACEFDC59732 /* RDEPUBReaderToolView.swift */, + 982FBB7B62F54B7806EAD1C178B6A083 /* RDEPUBReaderTopToolView.swift */, + 5B4EAD9C5D3D276887E0AC6A35F10659 /* RDEPUBViewportTypes.swift */, + A98D6A8053F65B3872BF49A978E18042 /* RDEPUBWebContentView.swift */, + CCC938C9AB37D0B094B0CF78C098CBE6 /* RDEPUBWebDecorationOverlayView.swift */, + 3ECA70C45BE80D444EBFE0DA40424702 /* RDURLReaderController.swift */, + C60EBAD7361BD011961D6A1FB94B914C /* String+RDEPUB.swift */, + EE51FACCCAC4F6FE003BD3914F7B9071 /* UIColor+RDEPUB.swift */, + 933E1AC7CA1ADECA318762103FAC0AF3 /* UIColor+RDEPUBHex.swift */, + 44496C06B38271B5703CC7890EEAED55 /* Notes */, + 80733DE5ED1CC43B1F7E7162CD322D50 /* ReaderController */, + 47FBFDAEEC65FE0E797B25A8C15268B2 /* Settings */, + 8E6092699E4DFA4CEC58CF0EEACA7AD2 /* TextPage */, + ); + name = EPUBUI; + path = Sources/RDReaderView/EPUBUI; + sourceTree = ""; + }; + 47FBFDAEEC65FE0E797B25A8C15268B2 /* Settings */ = { + isa = PBXGroup; + children = ( + 66D0B6D4C75424B340D7C9861D7DF6F6 /* RDEPUBReaderConfiguration.swift */, + 277A48279BD4FD22C6C552AAC4F282B2 /* RDEPUBReaderSettings.swift */, + 6777CA743F90F1D44EE010F6ED6A1F7F /* RDEPUBReaderSettingsViewController.swift */, + 0DC061242C98566FE767A2179BE8D9A9 /* RDEPUBReaderTheme.swift */, + ); + name = Settings; + path = Settings; + sourceTree = ""; + }; 4B9763CFE13CC8B0D8AA60EE28156E6D /* Support Files */ = { isa = PBXGroup; children = ( @@ -1408,69 +1425,63 @@ name = DTHTMLParser; sourceTree = ""; }; - 58B9D4234EDD00FD37667D574CBA9DC6 /* Support Files */ = { + 56EC7D8A1865CFA6A73E7472B78EA86A /* Models */ = { isa = PBXGroup; children = ( - A6F6D9E3E51175232197195809304FB2 /* RDReaderView.modulemap */, - 506A3F4E93699E821176158B4E1A74ED /* RDReaderView-dummy.m */, - 06D709090C07C72DEEF74D75E06AD845 /* RDReaderView-Info.plist */, - C37DF2A4019097BD40A1E29897024314 /* RDReaderView-prefix.pch */, - C2E354232C09ED53034E389E0A70A0C2 /* RDReaderView-umbrella.h */, - 38EFC4374585F70CA0057C2B93243BDB /* RDReaderView.debug.xcconfig */, - 78EB9889508A20E866AC37B22D441FC4 /* RDReaderView.release.xcconfig */, - 4B50A66BAEFD8F677924803465049443 /* ResourceBundle-RDReaderViewAssets-RDReaderView-Info.plist */, + 517D111957FC986C0BE0281CA89159AF /* RDEPUBAnnotationModels.swift */, + 2FCEDA49EDECD7CEEEF8A65685B9870A /* RDEPUBPaginationModels.swift */, + 9FA1C7B2B5D3FE43AB0598F027C50377 /* RDEPUBReadingLocationModels.swift */, + ); + name = Models; + path = Models; + sourceTree = ""; + }; + 62F2A978E55ACE107C18809C9C197080 /* Support Files */ = { + isa = PBXGroup; + children = ( + FABA3ECEE6A89B4087086F0D2377CB5A /* RDReaderView.modulemap */, + A61F5753AE7B5122FE65CF07CF1AD5FD /* RDReaderView-dummy.m */, + 8A1D29D22B94FD4B310B5A419E79057B /* RDReaderView-Info.plist */, + FB36F27A8101BA01699CFD777FC1CAFA /* RDReaderView-prefix.pch */, + 9D28F67E16027AF4FA4F9D501C4D0712 /* RDReaderView-umbrella.h */, + 9F8BA45FA0D8E3CBAAE6E18272EB0644 /* RDReaderView.debug.xcconfig */, + 55CA6158EBEFCD459EB481660A12EB86 /* RDReaderView.release.xcconfig */, + 02946CDDA8033AFAA82187D50800FEA8 /* ResourceBundle-RDReaderViewAssets-RDReaderView-Info.plist */, ); name = "Support Files"; path = "ReadViewDemo/Pods/Target Support Files/RDReaderView"; sourceTree = ""; }; - 70825513362D8A6FA4F2AE52C1A34691 /* TextPage */ = { + 80733DE5ED1CC43B1F7E7162CD322D50 /* ReaderController */ = { isa = PBXGroup; children = ( - F4BE66AE0A6BCE91929B24BAA34DA151 /* RDEPUBDarkImageAdjuster.swift */, - 1FC3BE6BBB4EBD99FF9124BA8E599520 /* RDEPUBPageInteractionController.swift */, - 32B07FB6279468CAC8C8496B97B2B543 /* RDEPUBPageLayoutSnapshot.swift */, - CE23D3D8B6CDEC776313C06D5CB44FE2 /* RDEPUBSelectionLoupeView.swift */, - A13D725843764880816F43281F2363FC /* RDEPUBSelectionOverlayView.swift */, - D9EB24D09C2239F4C77E17F54D248B80 /* RDEPUBTextAnnotationOverlay.swift */, - D4FD083436655F07AFCFB5B5492EF0F1 /* RDEPUBTextContentInteractionCoordinator.swift */, - 57CB038980ADA439CEC82E0EBBD3FC9E /* RDEPUBTextContentView.swift */, - 51282F5AE6E4F8FCD61A8B05638937D2 /* RDEPUBTextPageDecorationView.swift */, - 61228D2169407CE48F19589A5145557B /* RDEPUBTextPageRenderView.swift */, - 94AC74FD0844C7054C87B2A9D27D847D /* RDEPUBTextSelectionController.swift */, + 6F4858380CB626A893FA6803F5574F89 /* RDEPUBBackgroundCoverageStore.swift */, + 1776D2B8346E3DE2D2CFF9AA994D50DF /* RDEPUBBackgroundPriorityPolicy.swift */, + 943DB891CA340D3E0A65D0267100C3E7 /* RDEPUBJumpSession.swift */, + 842DE3099F95A155AF00FCEC57A65821 /* RDEPUBMetadataParseCancellationController.swift */, + EDA3C47F4EB23BAB5E96FD4DF3DFA59D /* RDEPUBMetadataParseWorker.swift */, + E2A2130B4AB4BB4B5E30E4442A0FD644 /* RDEPUBPageMapReconciliationCoordinator.swift */, + 72C909891BE902A0BB13D4A142EE982F /* RDEPUBPresentationRuntime.swift */, + 8E0EF27F41F1DF49C126E34B404497CF /* RDEPUBReaderAnnotationCoordinator.swift */, + 7031B493810918D5B50450340CA6652B /* RDEPUBReaderAssemblyCoordinator.swift */, + E3FEF8716C99974FB6997BFBF339FD91 /* RDEPUBReaderChromeCoordinator.swift */, + 2EDB136931B7075E5A4F6BD8E5E2DBE6 /* RDEPUBReaderContext.swift */, + 8811A5F210087839AA7746D9D4CFEB23 /* RDEPUBReaderDependencies.swift */, + 3F6776D2868DE1A8CAC80752CB023567 /* RDEPUBReaderEnvironment.swift */, + 0FF7BBD4C881AD7327290471E9484E1F /* RDEPUBReaderLoadCoordinator.swift */, + A1570DC08749A3866877CAF0A6BD877C /* RDEPUBReaderLocationCoordinator.swift */, + E7F6AAF70ED1162640040B9969BBE6D5 /* RDEPUBReaderPaginationCoordinator.swift */, + A12918D1D6A305DDE8B4249CCE38BB1F /* RDEPUBReaderRuntime.swift */, + E2C690372BDD5CA6E2A01A295EDE7C24 /* RDEPUBReaderSearchCoordinator.swift */, + CC8B39E69CFC5D4DD1D47A29F6D9E852 /* RDEPUBReaderServices.swift */, + CF369892013F3178789ADFC74384ADC2 /* RDEPUBReaderState.swift */, + 56158B68400B5C946109EDFD7555A8A7 /* RDEPUBReaderUIState.swift */, + 455F46F5F9EA1B2EAF47E54361B9E5F1 /* RDEPUBReaderViewportMonitor.swift */, + F6E041555AFAC5F8BD987FCA9DAC0949 /* RDEPUBSelectionState.swift */, + 9A31F6AB2F37012A80FE77D7309BEEF9 /* ChapterRuntime */, ); - name = TextPage; - path = TextPage; - sourceTree = ""; - }; - 7460E24FCB37B79E810429AAC51A95FD /* EPUBTextRendering */ = { - isa = PBXGroup; - children = ( - 7C60AB9DEFB015F6E3A40DECE78AC69B /* RDEPUBChapterData.swift */, - A601AB41E9B4878B34FC3380355F8DD9 /* RDEPUBDTCoreTextRenderer.swift */, - 68CF28E1B8594F100BEAC89F7B9CA20F /* RDEPUBTextIndexTable.swift */, - 77121A149AA3464C8E6A171329293BD2 /* RDEPUBTextPositionConverter.swift */, - D61BD3F3828530F0B2500FA1C4367C50 /* RDEPUBTextRenderer.swift */, - 477676C456F623C8A33D40A533FA960D /* RDEPUBTextSearchEngine.swift */, - D30190E9913BB7FF775D8602E753BA47 /* RDPlainTextBookBuilder.swift */, - AB29EEE80824EBEB1B0E91D6F4ACF0F8 /* BuildPipeline */, - B8402F3806C08042421D9F08E2357FC2 /* Pagination */, - 15F3755B0C326BEBA738A6481B5F643E /* Typesetter */, - ); - name = EPUBTextRendering; - path = Sources/RDReaderView/EPUBTextRendering; - sourceTree = ""; - }; - 828D005E8E94DC05C1C5CCDDE8DA4335 /* Paging */ = { - isa = PBXGroup; - children = ( - E246B080707A0DA836FC0890AE96D529 /* RDReaderPagingController.swift */, - DC9EFF22EDE800175B01DE546C97862D /* RDReaderPreloadController.swift */, - 1BDECCF30428456DD69F6D870693248C /* RDReaderSpreadResolver.swift */, - F850938C9F348E6ED5216809EE43689D /* RDReaderTapRegionHandler.swift */, - ); - name = Paging; - path = Paging; + name = ReaderController; + path = ReaderController; sourceTree = ""; }; 8AE80DCE6937729AEA82EC094AC470AE /* Resources */ = { @@ -1481,34 +1492,49 @@ name = Resources; sourceTree = ""; }; - 8DC9877037F8A406989B79289F6EFAD8 /* Pod */ = { + 8E6092699E4DFA4CEC58CF0EEACA7AD2 /* TextPage */ = { isa = PBXGroup; children = ( - C477D7EE62BF9A8ACC465998EE02CB76 /* RDReaderView.podspec */, + F0580E9407862B9D452289BBF1C4CA01 /* RDEPUBDarkImageAdjuster.swift */, + 252AFCFB40C36621E9C98C6644A56EE6 /* RDEPUBPageInteractionController.swift */, + D6901981E3F4F05F9FAC5ECE00D8983E /* RDEPUBPageLayoutSnapshot.swift */, + FD431E9FF16247D6AFF1148D33F06DEA /* RDEPUBSelectionLoupeView.swift */, + DEE95CBD7B492C5453D2FFA983C5CC02 /* RDEPUBSelectionOverlayView.swift */, + 9B8EBA6DFDDDD074E804C1689727074E /* RDEPUBTextAnnotationOverlay.swift */, + 890B65045CA1A5D01EDF09F7FD14C6C3 /* RDEPUBTextContentInteractionCoordinator.swift */, + 9435D40191E13E2949BA08196EFE296F /* RDEPUBTextContentView.swift */, + 53B7AB6E967C804E556A13DA6CC254A0 /* RDEPUBTextPageDecorationView.swift */, + B879D43D53D77B2C9BA10AE5CDC71CED /* RDEPUBTextPageRenderView.swift */, + A6550AF614406015AE2CCD348C28A3BE /* RDEPUBTextSelectionController.swift */, ); - name = Pod; + name = TextPage; + path = TextPage; sourceTree = ""; }; - 9562DD652C3F1E63D393B69D04C3D0EB /* CFI */ = { + 8FC974FE4013F8502C8F4C9902F99124 /* Pagination */ = { isa = PBXGroup; children = ( - 24B4BDE6AF43475513D28D232AB7D0B9 /* RDEPUBCFI.swift */, - 6DCD270CD8C5A0C917FB01A8B3116DF8 /* RDEPUBCFICompatibility.swift */, - A26FAE3FB6F9DBBC672161B173177A5C /* RDEPUBCFIDOMPathBuilder.swift */, - EA1200B7F3541159D13204D0C860076B /* RDEPUBCFIError.swift */, - 02DDA7AD723C7FEB0B80B0C573EAE679 /* RDEPUBCFIGenerator.swift */, - BE8601B1192179DC899A1156CB46369E /* RDEPUBCFIMap.swift */, - 184CDDD009D8F4384A9E02F953B6D8B6 /* RDEPUBCFIParser.swift */, - 66BF9E68AC68E641A2F40FB7DE03BA5B /* RDEPUBCFIPath.swift */, - 29701CE248CAAA87698BD90F74F6295B /* RDEPUBCFIRange.swift */, - 5E8993D56BA3E8692108E3C53CD52806 /* RDEPUBCFIRecoveryEngine.swift */, - E697E9F69226A6A803098BFD3D202842 /* RDEPUBCFIResolver.swift */, - 6EADA99F8B48CDCB82A6D2D3507EC32C /* RDEPUBCFISerializer.swift */, - 9998A80A1B633EB1C2C1EBB107866B40 /* RDEPUBCFITextAssertion.swift */, - AEB527B9C4921752C6B00B0D032F379D /* RDEPUBCFIUtilities.swift */, + B62755E9A395FF22E7405C3FE192D5F3 /* RDEPUBChapterPageCounter.swift */, + 81211446372A6A55789AA7E7152E7084 /* RDEPUBCoreTextPageFrameFactory.swift */, + FE10A5C6934704218EB16F8966AA0814 /* RDEPUBPageBreakPolicy.swift */, + 7F8C64CB3F3D0B7D4AA66798C740CB20 /* RDEPUBTextLayouter.swift */, + 07C08997AE3D75194E400010A0AE4820 /* RDEPUBTextLayoutFrame.swift */, + D4721E12B4121C46B8368D085D91EC2B /* RDEPUBTextPaginationInterfaces.swift */, + 78C97EDF23543CE63904C4D8A066A7A1 /* RDEPUBTextPaginationSupport.swift */, ); - name = CFI; - path = CFI; + name = Pagination; + path = Pagination; + sourceTree = ""; + }; + 946AB5EF65FFA0C796D6B4E19D4B646D /* Compatibility */ = { + isa = PBXGroup; + children = ( + 30EE98BBC2688DFF0B50F9C417007886 /* RDEPUBCSSCompatibilityLayer.swift */, + 5F9FE9924520900BBDF724D9903C5309 /* RDEPUBFontFallbackResolver.swift */, + 5077339D9632D68EDAB64BBEF622E154 /* RDEPUBStyleCompatibilityModels.swift */, + ); + name = Compatibility; + path = Compatibility; sourceTree = ""; }; 994C39A644C0722C7A9E97AB46DB8965 /* Targets Support Files */ = { @@ -1519,6 +1545,28 @@ name = "Targets Support Files"; sourceTree = ""; }; + 9A31F6AB2F37012A80FE77D7309BEEF9 /* ChapterRuntime */ = { + isa = PBXGroup; + children = ( + A4B2389196B50CE10DE62C6DF588B1D9 /* RDEPUBBackgroundTrace.swift */, + 83E9A6D890549C856C0277BE3A9B01A4 /* RDEPUBBookPageMap.swift */, + BC5131ADC7B6C3869C5CA5A5CB52C06F /* RDEPUBChapterCacheKey.swift */, + 3667CE400B3A606C7BE2D736B10AB546 /* RDEPUBChapterDataCache.swift */, + AF8CFF30D6E79EDA9ADA4C8B8B5F52B2 /* RDEPUBChapterLoader.swift */, + 1C5CA885255B08C8AD10778C62071BCD /* RDEPUBChapterLocation.swift */, + BFBE38B3A4D9E60E2B1683A475513E46 /* RDEPUBChapterOffsetMap.swift */, + 0D9C9D60B2B26F9890D35189DEBC7580 /* RDEPUBChapterRuntimeStore.swift */, + C4E711A4F76E5BF2095569B5A9B3F5BB /* RDEPUBChapterSummaryDiskCache.swift */, + C66C203D247690A4DDE08BF5A5D56B3B /* RDEPUBChapterWarmupOrchestrator.swift */, + C4912F524E40CC6107099AB780A0E0BF /* RDEPUBPageCountCache.swift */, + DC7BE59730389C1EC7BF65734D0D6776 /* RDEPUBPageResolver.swift */, + 579B1DD9DCEE9A1C8B88EB7D4FC7328B /* RDEPUBRuntimeChapter.swift */, + F2FB12B4D5D80C72658331C61991766C /* RDEPUBRuntimePageCount.swift */, + ); + name = ChapterRuntime; + path = ChapterRuntime; + sourceTree = ""; + }; 9C7F7E7109B9004B64578ADED4DB8E0D /* Core */ = { isa = PBXGroup; children = ( @@ -1566,44 +1614,23 @@ name = Core; sourceTree = ""; }; - 9CCCE679A167C8125B04E0A05685A334 /* RDReaderView */ = { + 9E100780A98E22AF423BFB0DC63B601C /* ReaderView */ = { isa = PBXGroup; children = ( - 5BE399D4DCDB9643D809264D6D5319B2 /* cssInjector.js */, - DBFE242CACE9410D681C091D4BB7237D /* epub-bridge.js */, - E510EFB4CE45829A8CAB4E2BE47C0041 /* epub-fixed-layout.html */, - 445D06D06F2D5CB42E95A6292AFA6D42 /* rangy-core.js */, - 9DF9B7EF7992895E4AA2E398522498BC /* rangy-serializer.js */, - A511C95B0250D33F33026861C48BF655 /* WeReadApi.js */, - D97740E10289031B888FFAE803AE441E /* wxread-dark.css */, - 8C51FE03884113569904AAA4CAA3AEB6 /* wxread-default.css */, - 3CD5E5ED855BD807441CC55E7046DC18 /* wxread-replace.css */, - E7E49A0BE37FE8EEBBC94E752B95C59C /* wxread-replace-latin.css */, - 017EB082AD13216251C54E6EFC22C072 /* EPUBCore */, - 7460E24FCB37B79E810429AAC51A95FD /* EPUBTextRendering */, - F7CEE041C23A1C121CCDAE748A40E722 /* EPUBUI */, - 8DC9877037F8A406989B79289F6EFAD8 /* Pod */, - E11F19B9E444F617C83F35A40D4C9CE0 /* ReaderView */, - 58B9D4234EDD00FD37667D574CBA9DC6 /* Support Files */, + 76919E99E9F16C30FA06F643643AA997 /* RDReaderContentCell.swift */, + E4C4605A9B7326DBE0CED7EB66A7416F /* RDReaderFlowLayout.swift */, + 10617286346E2E6D7BB30203A65302CA /* RDReaderGestureController.swift */, + AB3DF251DDD78EDAEE82FBEBDF9CE79B /* RDReaderPageChildViewController.swift */, + 1FE1D4A863768FC78F6B76B6A181267C /* RDReaderView.swift */, + 4C4682C38E0A66C0E9760FC62C00A327 /* RDReaderView+CollectionView.swift */, + 0D170B1455CB3C94EFC34D7B67EDC001 /* RDReaderView+ContentAccess.swift */, + 2E281F0688B1D356CF1654C6063AE77D /* RDReaderView+PageCurl.swift */, + 648D6AC5A8FA53918EDB418D8A36710E /* RDReaderView+ToolView.swift */, + 1058DD74F97F43193DBA11E135ACFF22 /* RDReaderViewProtocols.swift */, + 0BCB541A25608F56871618A1D03E9C54 /* Paging */, ); - name = RDReaderView; - path = ../..; - sourceTree = ""; - }; - AB29EEE80824EBEB1B0E91D6F4ACF0F8 /* BuildPipeline */ = { - isa = PBXGroup; - children = ( - 67B4EE257C537D6F72ADDBBE7747BBE2 /* RDEPUBBuildDiagnosticsReporter.swift */, - 03574AB570F840F4A14B53F85023DBAA /* RDEPUBChapterTailNormalizer.swift */, - 817CF1C7E3DF9EA0272F660987E896AA /* RDEPUBPaginationCacheCoordinator.swift */, - 5EC2AEE3E653B0E8731C706FF3768F46 /* RDEPUBTextBookBuilder.swift */, - FCD11C7BF5FACCD5B5A3D2C4991EF047 /* RDEPUBTextBookCache.swift */, - 0B33491F27938C7846CEB7246FC4B96C /* RDEPUBTextBookModels.swift */, - 5EB446503EBB22EE22C51939A562C457 /* RDEPUBTextBuildPipelineInterfaces.swift */, - 9A19BDED17612309ACF1752937514F77 /* RDEPUBTextPerformanceSampler.swift */, - ); - name = BuildPipeline; - path = BuildPipeline; + name = ReaderView; + path = Sources/RDReaderView/ReaderView; sourceTree = ""; }; B45E17EA805660F2389832287623284D /* ZIPFoundation */ = { @@ -1637,39 +1664,67 @@ path = ZIPFoundation; sourceTree = ""; }; - B8402F3806C08042421D9F08E2357FC2 /* Pagination */ = { - isa = PBXGroup; - children = ( - 68705BE557E6C1C112D38D056CD4E8FA /* RDEPUBChapterPageCounter.swift */, - 64798D230A6F5C1C52C7353EF9773BB7 /* RDEPUBCoreTextPageFrameFactory.swift */, - 02B465B0AB9FB857FB2C95097E1C4D46 /* RDEPUBPageBreakPolicy.swift */, - 6C6DCF8FFFAD317C3CA1AEFF60080707 /* RDEPUBTextLayouter.swift */, - 5F50EBEDFE92D5373F3FD62727F74BDE /* RDEPUBTextLayoutFrame.swift */, - B08FB1ED81E67058DC00376CA1DFC963 /* RDEPUBTextPaginationInterfaces.swift */, - 1967314246DE47771D6C6F0D8B5BB22A /* RDEPUBTextPaginationSupport.swift */, - ); - name = Pagination; - path = Pagination; - sourceTree = ""; - }; B9CF9F63ECCD4435AA8F5FEDC37E6258 /* Development Pods */ = { isa = PBXGroup; children = ( - 9CCCE679A167C8125B04E0A05685A334 /* RDReaderView */, + C0BBFCB6AFC32A8E77FD4ABAB76E1332 /* RDReaderView */, ); name = "Development Pods"; sourceTree = ""; }; - C19A6980E5FBD41228C838B0B657602D /* Notes */ = { + C09C89FD8C916F7A2BB28DBC54EDDF84 /* Notes */ = { isa = PBXGroup; children = ( - BC2FC937F877AAF34D20099B548F79F4 /* RDEPUBNotePopupCoordinator.swift */, - AC145C21118E90789E7954C445DE047E /* RDEPUBNotePopupViewController.swift */, + CC0E8A0B81E73D17CDACE523F47D124B /* RDEPUBNoteDetector.swift */, + 8D474A46702BFAA8E3AAFAC5EE0E3C20 /* RDEPUBNoteModels.swift */, + A184BC6F2CCE83350332C9F00071A2B9 /* RDEPUBNoteResolver.swift */, ); name = Notes; path = Notes; sourceTree = ""; }; + C0BBFCB6AFC32A8E77FD4ABAB76E1332 /* RDReaderView */ = { + isa = PBXGroup; + children = ( + ECBE8305E343FF00B5DDF4F8F9D18623 /* cssInjector.js */, + 091E53DC8215AED45D88A2ABA24A2140 /* epub-bridge.js */, + 5E958924060294CE9417399BB02AB344 /* epub-fixed-layout.html */, + 8F9C05A5DE7C804D6531F4BBF31A3045 /* rangy-core.js */, + 25E8E62C9DC0A4AE49F168F04CF8B9D3 /* rangy-serializer.js */, + F46977FAF9F0EAEDF840BDA49288CC99 /* WeReadApi.js */, + 8AE69217E6A738AC11FEB58F2603B17F /* wxread-dark.css */, + 0D253DF65322509913DE34899979C30B /* wxread-default.css */, + F81B70DF51F9CD64A7DC5AAF3941F72C /* wxread-replace.css */, + 6E7E8438D5E5533B7BE96AC6FA8FD8BD /* wxread-replace-latin.css */, + CD687E98AAFF2E945CF39FACBBF63D90 /* EPUBCore */, + C51190ED4FDD85541ECC59886B5B7142 /* EPUBTextRendering */, + 46FCA5E1C91A068B8E7B222F017255EF /* EPUBUI */, + 399DBAA31AC98F6F98B27CE5ED36F63D /* Pod */, + 9E100780A98E22AF423BFB0DC63B601C /* ReaderView */, + 62F2A978E55ACE107C18809C9C197080 /* Support Files */, + ); + name = RDReaderView; + path = ../..; + sourceTree = ""; + }; + C51190ED4FDD85541ECC59886B5B7142 /* EPUBTextRendering */ = { + isa = PBXGroup; + children = ( + B1AF2749008FE67A3281B83EE327E41D /* RDEPUBChapterData.swift */, + 0E160FF00EF4B6DB318FEDCD72A026F3 /* RDEPUBDTCoreTextRenderer.swift */, + 89755690B804A64EE69FE2D7321CA9B6 /* RDEPUBTextIndexTable.swift */, + 7A971ECCC1DDFDE6D5417E949E3B1FD2 /* RDEPUBTextPositionConverter.swift */, + 5B4081F4EC77470F1257F11DB2A4B55D /* RDEPUBTextRenderer.swift */, + 06733E30802CA08ACF312C763BD37795 /* RDEPUBTextSearchEngine.swift */, + 2739EAD69AB2F5F6FA80E254D294440D /* RDPlainTextBookBuilder.swift */, + 27F2A646BFA6F6504139570B69BEDF9B /* BuildPipeline */, + 8FC974FE4013F8502C8F4C9902F99124 /* Pagination */, + 13D36789CF3D460E6FFE303B68A66962 /* Typesetter */, + ); + name = EPUBTextRendering; + path = Sources/RDReaderView/EPUBTextRendering; + sourceTree = ""; + }; CB07546106F457AC4196E207FEBAB4ED /* UIKit */ = { isa = PBXGroup; children = ( @@ -1697,6 +1752,47 @@ name = UIKit; sourceTree = ""; }; + CD687E98AAFF2E945CF39FACBBF63D90 /* EPUBCore */ = { + isa = PBXGroup; + children = ( + A472A71A962C2E34AB358EC26AEA60B4 /* RDEPUBAssetRepository.swift */, + 38459BA6DDC11AC3B9574C4E48F48ADC /* RDEPUBFixedLayoutTemplate.swift */, + A191A2F7DD62299E8945911DC282FFA0 /* RDEPUBJavaScriptBridge.swift */, + 4646F47318195C5CDADF0D93A4A2FC91 /* RDEPUBModels.swift */, + 2092D0DAEE6507B0B448DAA0A4888191 /* RDEPUBNavigatorLayoutContext.swift */, + 8514F67C3335EEA160B6A502DC380C6B /* RDEPUBPaginator.swift */, + EFFC77747115ACAF9EE13A1CEAEEA539 /* RDEPUBParser.swift */, + 2F653BA6E911AE149EB7FF7471D9D9BD /* RDEPUBParser+Archive.swift */, + E38BEF27B99CFAA178DE8917D69F11F8 /* RDEPUBParser+Package.swift */, + 58C72D7DF4220C0907CE8795E8900E79 /* RDEPUBParser+ReadingProfile.swift */, + BD161DA5F1982A4BA70B86D3D27455A3 /* RDEPUBParser+Resources.swift */, + C3A0D1E77F50E5274CCC99EEA427C15E /* RDEPUBParser+TOC.swift */, + 52E599D70519E92FCD9A508E1C821637 /* RDEPUBPreferences.swift */, + A30017EA232AF10EF5AEF1A20891306E /* RDEPUBPublication.swift */, + 0DE6AC16B3AE09561A7557F826881E3D /* RDEPUBReadingSession.swift */, + 25C6A0883824F05CF90F21478E019975 /* RDEPUBRenderRequest.swift */, + 29D1AFEDD39DE3A55D023DCF1DD8E100 /* RDEPUBResourceResolver.swift */, + 9ED2C72C44EE3717E5F3B45933FC5F5C /* RDEPUBResourceURLSchemeHandler.swift */, + 1DD088C35A5559FEE1027DAE37417E3D /* RDEPUBSafeArea.swift */, + 6B24B2EBB40F90487F5EF3A6451834A8 /* RDEPUBSearchEngine.swift */, + BA6B5FFFF22D8A36CC593817C0494CD1 /* RDEPUBSearchModels.swift */, + 82BD20A4273D9C421228620048787AD0 /* RDEPUBStyleSheetBuilder.swift */, + BAAB1142496F4E594573D85EF76670A8 /* RDEPUBTextAnchor.swift */, + 74CB908492A655C93144CB03E59A2CAB /* RDEPUBWebView.swift */, + 843CB00ED0D033E72DD79F0B27BE82E0 /* RDEPUBWebView+Configuration.swift */, + 5F41DCAB71A589008105D8C3AB0F8878 /* RDEPUBWebView+FixedLayout.swift */, + 1D24B9DBA8D8A1B00CEF2E2238C16681 /* RDEPUBWebView+JavaScriptBridge.swift */, + 32AD569BCA384A60FC2E1E08CE3529AD /* RDEPUBWebView+Reflowable.swift */, + 130135CFECAE1E38379F213C3C298BD1 /* RDEPUBWebView+Search.swift */, + 9117DB8611498A875CF9CF11D092BFA5 /* RDEPUBWebViewDebug.swift */, + 39E5D96098508EBE207EB9A67F378ECB /* CFI */, + 56EC7D8A1865CFA6A73E7472B78EA86A /* Models */, + C09C89FD8C916F7A2BB28DBC54EDDF84 /* Notes */, + ); + name = EPUBCore; + path = Sources/RDReaderView/EPUBCore; + sourceTree = ""; + }; CF1408CF629C7361332E53B88F7BD30C = { isa = PBXGroup; children = ( @@ -1738,25 +1834,6 @@ path = DTFoundation; sourceTree = ""; }; - E11F19B9E444F617C83F35A40D4C9CE0 /* ReaderView */ = { - isa = PBXGroup; - children = ( - 8A7E0C51CE893B8040C6A49E9E973226 /* RDReaderContentCell.swift */, - 7941BAA5BADB40ACC8FBC080977F6B51 /* RDReaderFlowLayout.swift */, - 2B8072609EF1BA68F2BF57A0E3A915FB /* RDReaderGestureController.swift */, - 5DFD3ED6CD42E6EA971DDDD51EDB8CA5 /* RDReaderPageChildViewController.swift */, - 5E62277B737F95B1DFDBC287DC795CB6 /* RDReaderView.swift */, - 9A957A416473B3393454FF640ACD97E8 /* RDReaderView+CollectionView.swift */, - B9E19C361904199E2E63EDFFBD64A90C /* RDReaderView+ContentAccess.swift */, - BB30DFD1013A322C32A3848B1D6602DA /* RDReaderView+PageCurl.swift */, - 36E5D959B869D6FFCAE67ACA572FF1C2 /* RDReaderView+ToolView.swift */, - C248323DF03FE7E607F69BF5576B3F41 /* RDReaderViewProtocols.swift */, - 828D005E8E94DC05C1C5CCDDE8DA4335 /* Paging */, - ); - name = ReaderView; - path = Sources/RDReaderView/ReaderView; - sourceTree = ""; - }; E21916B80D2B8A09E76AB2CFCB1E1232 /* Support Files */ = { isa = PBXGroup; children = ( @@ -1772,80 +1849,6 @@ path = "../Target Support Files/DTFoundation"; sourceTree = ""; }; - E969828EF0D883E18B1FF151243ECE45 /* ReaderController */ = { - isa = PBXGroup; - children = ( - C8FE55941A5CBC989B1F8C3E2D5A49AA /* RDEPUBBackgroundCoverageStore.swift */, - 9FE811B58EF82E20354C3DABE712313F /* RDEPUBBackgroundPriorityPolicy.swift */, - E744A9171DA8D779C942360378D2EE4F /* RDEPUBJumpSession.swift */, - 720B9BA37AAD0EA225492B8341E5B7A3 /* RDEPUBMetadataParseCancellationController.swift */, - 0C88B7F1F7145821C2F65514186AE335 /* RDEPUBMetadataParseWorker.swift */, - C70E0378F7CBD5A6DA253CC326036A9B /* RDEPUBPageMapReconciliationCoordinator.swift */, - 44A1AD3BAAAF051B1AB7CE90E0F92BE7 /* RDEPUBPresentationRuntime.swift */, - 9CA110E3D360292AAFB29F380653D9CE /* RDEPUBReaderAnnotationCoordinator.swift */, - D423B0BF37041F8E07C6EFD476F511A4 /* RDEPUBReaderAssemblyCoordinator.swift */, - 01B6F1C44AED0554A533AF8573303A47 /* RDEPUBReaderChromeCoordinator.swift */, - 4931FAB1E86E9A03A8ACEB033B58F5E3 /* RDEPUBReaderContext.swift */, - 51852C93D034EBE5B7907AA4E69848A1 /* RDEPUBReaderDependencies.swift */, - E9204AAD895ABE21EE8841D0A495C916 /* RDEPUBReaderEnvironment.swift */, - C33E143A90F5075BA576F52111FFCCB0 /* RDEPUBReaderLoadCoordinator.swift */, - 4ADEC782AE1E07C94B6F01A8AE1CE2C8 /* RDEPUBReaderLocationCoordinator.swift */, - F60ACBD9B441413B14468B1BFA1F7C6F /* RDEPUBReaderPaginationCoordinator.swift */, - 692FB048CB12876AA971EF21B3F71A27 /* RDEPUBReaderRuntime.swift */, - C6205EFACA691F3EC37951F5A30B9590 /* RDEPUBReaderSearchCoordinator.swift */, - F98CD641441793095A6228F264D13025 /* RDEPUBReaderServices.swift */, - 5D74C449E9554743E9908B79188DB9BC /* RDEPUBReaderState.swift */, - 94F5CBFE8EF3307F3C9B0E25A5F70E70 /* RDEPUBReaderUIState.swift */, - E8D1DCAA8AAE79FCBD5248D641D583DE /* RDEPUBReaderViewportMonitor.swift */, - 3BE6C7E2CF696021A9922C1BB675AB1C /* RDEPUBSelectionState.swift */, - 0C5B69B2CD80274C6E29E5EA8098B935 /* ChapterRuntime */, - ); - name = ReaderController; - path = ReaderController; - sourceTree = ""; - }; - F7CEE041C23A1C121CCDAE748A40E722 /* EPUBUI */ = { - isa = PBXGroup; - children = ( - 1E0F52BED56AC7A04854F459B246AB18 /* RDEPUBAttachmentTooltipOverlayView.swift */, - 59B2B1356107877296E9D282AE94CB05 /* RDEPUBAttachmentTooltipView.swift */, - CAF799848B6E5545BD3003001D3F6518 /* RDEPUBImageViewController.swift */, - BA0A09CCD48B28C7C98016F5B7DCB94A /* RDEPUBImageViewerCoordinator.swift */, - B5629838A35BA6A3F2895CFDE6A5FE0B /* RDEPUBReaderBottomToolView.swift */, - C706B8C5A519EE55EC9D545AB3302AD9 /* RDEPUBReaderChapterListController.swift */, - 210601B1509A4301617C853C5022AA99 /* RDEPUBReaderController.swift */, - B39E73DF030C0B322474D5986AD2D2FE /* RDEPUBReaderController+AttachmentTooltip.swift */, - DA68A96FA91F03F747A3D85A2DB0B45E /* RDEPUBReaderController+ContentDelegates.swift */, - EE0841869BD329D156D73D0CFB24542C /* RDEPUBReaderController+DataSource.swift */, - F788C862D0C386B17128DB735921333C /* RDEPUBReaderController+ExternalLinks.swift */, - A29809A2BF0AD11378C7FDE3406150B1 /* RDEPUBReaderController+LocationResolution.swift */, - EB578C52D04A71D85CCA25340333F2C2 /* RDEPUBReaderController+PublicAPI.swift */, - 338AA349594E53D0CF40F957CAC5D6BC /* RDEPUBReaderController+RenderSupport.swift */, - 1F3BEE5F799C47EEACB7E29C611B8201 /* RDEPUBReaderController+RuntimeBridge.swift */, - D88A921856D9EF12C78D05D927BF334B /* RDEPUBReaderController+TableOfContents.swift */, - 1DB230C0E9A18C8B1C5581CD2D3D0F2F /* RDEPUBReaderDelegate.swift */, - 3545BDB1B440A560114071D125EA94C7 /* RDEPUBReaderHighlightsViewController.swift */, - BC1BAC41A213B19789028A9648DD5BD6 /* RDEPUBReaderPersistence.swift */, - FBA95BB1C6D5F042AFE2454D582DFC55 /* RDEPUBReaderSearchBarView.swift */, - ECE876A9792A03EF4CBCFD3DF6188D46 /* RDEPUBReaderTableOfContentsItem.swift */, - 08EB5C6310B7F9040732D6E905650432 /* RDEPUBReaderToolView.swift */, - A0A47D7B73C87872B9B05E80A4254D4C /* RDEPUBReaderTopToolView.swift */, - 047D134F34D6BDEFF3403095EA60155C /* RDEPUBViewportTypes.swift */, - 5457E010B7ABAB0EA8F28377908D1F23 /* RDEPUBWebContentView.swift */, - CEC237752DE21AB8ADA263DE4977AC0F /* RDEPUBWebDecorationOverlayView.swift */, - 9D70402AAC82BB390480E18E45DCF11A /* RDURLReaderController.swift */, - 74B33EB0B69C4A347B3F466B751289C5 /* String+RDEPUB.swift */, - A416E2F4584E41C30A3352FFD3824BE2 /* UIColor+RDEPUB.swift */, - B0F1230C085573028B4BC891EA8040C3 /* UIColor+RDEPUBHex.swift */, - C19A6980E5FBD41228C838B0B657602D /* Notes */, - E969828EF0D883E18B1FF151243ECE45 /* ReaderController */, - 34BA0E6288A1D9025DB06B70D292ED49 /* Settings */, - 70825513362D8A6FA4F2AE52C1A34691 /* TextPage */, - ); - name = EPUBUI; - path = Sources/RDReaderView/EPUBUI; - sourceTree = ""; - }; F8A2B0DD84CEFC61D2C703C767D33C43 /* Products */ = { isa = PBXGroup; children = ( @@ -1864,14 +1867,6 @@ /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ - 1B5B7378827A92C91FEBA6E7088993EC /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - BAA8AEE4DC5F22A9BB2D5DFC13F5D489 /* RDReaderView-umbrella.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; 29CB77F5EC62298B8E19FEFFD791AEAD /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; @@ -1953,52 +1948,60 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - C0A172710A396D707BB6434EBB995FCF /* Headers */ = { + 56396C6B581888EDCDC7B42B7CCF1A4C /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 4F0E298474D056888D4B8337193755AE /* DTActivityTitleView.h in Headers */, - 7C4E7BA25D1BCA720B26518D940B86C4 /* DTAnimatedGIF.h in Headers */, - B1E427DA5C06EFB8D33AAE782C8439C4 /* DTBase64Coding.h in Headers */, - 6423A9D67FD431A53878A2DE0AF72DF9 /* DTBlockFunctions.h in Headers */, - F702422D9C4B27174535764C70C04D70 /* DTCompatibility.h in Headers */, - B86A7C6918313E26127F7A7DFEF71D6F /* DTCoreGraphicsUtils.h in Headers */, - A0198E2E7AF64E564200EA40E2AAD22B /* DTCustomColoredAccessory.h in Headers */, - 28030B304C060583055AD4BB94B57E73 /* DTExtendedFileAttributes.h in Headers */, - DFDD4F5DEA73A0F97F9B8CEE84973A14 /* DTFolderMonitor.h in Headers */, - 951272D64B0B7B5A0CF5B04D0C70020F /* DTFoundation-umbrella.h in Headers */, - FA5621BECD8E9EF46C9C812FAEE37D60 /* DTFoundationConstants.h in Headers */, - CDD7242E39535B3C2E99C29FBC132189 /* DTHTMLParser.h in Headers */, - B03155EC46B90C179E546A3356E5E364 /* DTLog.h in Headers */, - 9364C9C3F930C82880F73AB4377A2C48 /* DTPieProgressIndicator.h in Headers */, - 10B31BECFD9AE02D5B3D4FC2CCAB3B3F /* DTSmartPagingScrollView.h in Headers */, - F6259670F9185E3EEF80D68DB4B19D64 /* DTTiledLayerWithoutFade.h in Headers */, - 1B9DD076A7AD549EAE75540AE2741CA1 /* DTVersion.h in Headers */, - 994C4AF7960B95E37A468C364C1C83C1 /* DTWeakSupport.h in Headers */, - 3C298E214C6A6859593A68461E673E33 /* NSArray+DTError.h in Headers */, - 816A870DED6E7EBCA32D4E8C7863D2CE /* NSData+DTCrypto.h in Headers */, - 0D077883D7EAB6E86CCB45D8B3FA637A /* NSDictionary+DTError.h in Headers */, - F642FBE5D97AA4DFBBAC2AF5CBD0780A /* NSFileWrapper+DTCopying.h in Headers */, - 39FDF70808F3A3476068FFE7DB45341C /* NSMutableArray+DTMoving.h in Headers */, - FE4A1F4E3837E84BC4CB37947AB56283 /* NSString+DTFormatNumbers.h in Headers */, - BEDDC71E25290A889B7780DFC3825B21 /* NSString+DTPaths.h in Headers */, - F0A3BF24E4999B7D909E632B19150FB2 /* NSString+DTURLEncoding.h in Headers */, - C14064F24F09598DE124FF06E9C928E0 /* NSString+DTUtilities.h in Headers */, - 373C0713BB83948F70327BA339F4E64B /* NSURL+DTAppLinks.h in Headers */, - 8D9119050495487B8722EEFE0296700B /* NSURL+DTComparing.h in Headers */, - 7BF9A741CB88300E294CB5974EC1471D /* NSURL+DTUnshorten.h in Headers */, - E3DFC2B50D4914F6FE69A6A770A8A837 /* UIApplication+DTNetworkActivity.h in Headers */, - 451E2C056209E939AB8C7F2F6F83B908 /* UIImage+DTFoundation.h in Headers */, - DA24A683019CA05950C1966B20AD3B15 /* UIScreen+DTFoundation.h in Headers */, - 0FA9D733C9545D185352CAD655930C82 /* UIView+DTFoundation.h in Headers */, + 7FDB342E7990D04F20D66B54DD3288F3 /* DTActivityTitleView.h in Headers */, + 022C814021FFCE8343CF94BEB39F5EB3 /* DTAnimatedGIF.h in Headers */, + 36C22841B8927E609AA29CD05D5132B5 /* DTBase64Coding.h in Headers */, + 7A3B9F9A741756370C23FCE449D10FBF /* DTBlockFunctions.h in Headers */, + CABB55F416696E222EDD9355BE162423 /* DTCompatibility.h in Headers */, + C065855BFB7C44A88BC0E41EDB67F138 /* DTCoreGraphicsUtils.h in Headers */, + 54FC0EC0F7CE25F7D1E846C8CFFEA363 /* DTCustomColoredAccessory.h in Headers */, + DABA6DF4CDB6C3098DDB1972D9B8D47F /* DTExtendedFileAttributes.h in Headers */, + 851D7CADE59C83C2E79791EFBD2F1B9E /* DTFolderMonitor.h in Headers */, + 7398A6AEB47EA308F2E93FE03B1A3D06 /* DTFoundation-umbrella.h in Headers */, + 7FC6815502492DF1D663D87A2D9AB207 /* DTFoundationConstants.h in Headers */, + D1E238CAEA8D1BE33C0D7EC543A66665 /* DTHTMLParser.h in Headers */, + 73BB353CA378834928C3946524DF2D12 /* DTLog.h in Headers */, + 6CDF59BFF3F212BD65C009C7080542BE /* DTPieProgressIndicator.h in Headers */, + 91EA145D5B76F9BDCD03FB801F3ACB3D /* DTSmartPagingScrollView.h in Headers */, + 224A7654E294D21374C015DB3050A57B /* DTTiledLayerWithoutFade.h in Headers */, + 2A926090C1E12A6A8CD28E8D06305AF1 /* DTVersion.h in Headers */, + 20BE095312DB8DB101C02F8983C5A6E1 /* DTWeakSupport.h in Headers */, + D2232DDB9C06A5F370FBE1CF4F022992 /* NSArray+DTError.h in Headers */, + 6B4E7177F034E79B8C3F932183E84011 /* NSData+DTCrypto.h in Headers */, + 46AEC0EB14BA522889FD7812A1139CB7 /* NSDictionary+DTError.h in Headers */, + 9EA64874ED208ECC988584D8D6346033 /* NSFileWrapper+DTCopying.h in Headers */, + 6DA8B5EB829C2AFB0891E6EF583C6C0E /* NSMutableArray+DTMoving.h in Headers */, + 852C505B9BC6E6CE207559DB6F65F526 /* NSString+DTFormatNumbers.h in Headers */, + 5BE96578F3A236ED2544FB20A4996165 /* NSString+DTPaths.h in Headers */, + BBB18335BC72FBF4584F8B5F4132CCBE /* NSString+DTURLEncoding.h in Headers */, + 4E90223029F18880D771B8A854B1D710 /* NSString+DTUtilities.h in Headers */, + F9ADC220D598CC27EF1B9F8277966E01 /* NSURL+DTAppLinks.h in Headers */, + 4373F2A4F3253DD14440D8B9FA7A0AD8 /* NSURL+DTComparing.h in Headers */, + CE5D85573015B5EF9AA8A9F512239835 /* NSURL+DTUnshorten.h in Headers */, + F97B3F528A2B7417D2843479548CDF40 /* UIApplication+DTNetworkActivity.h in Headers */, + 39EA92DA1B85B808BA7C6B96E9550BFE /* UIImage+DTFoundation.h in Headers */, + 8A5A271780D55E365E441781D2143538 /* UIScreen+DTFoundation.h in Headers */, + 4651629ECB6C6EA549A9E880D86B7648 /* UIView+DTFoundation.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - F5EFDF3E9DDCD70973188EA186E85A88 /* Headers */ = { + 61811610E8E96D8E4DBE96A4003CE077 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 16C913C28603A60216C6206E13FDD696 /* ZIPFoundation-umbrella.h in Headers */, + BB8ACA21944B2A96E8DF8B0C7E6D30F9 /* ZIPFoundation-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + F7E1A89F073DA82B1B23FC66440C9F1A /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + E63936A1FBECCD5431B219748E9652B7 /* RDReaderView-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2007,11 +2010,11 @@ /* Begin PBXNativeTarget section */ 0C24CB0E87A728A11AA1124CB360D6A1 /* DTCoreText-Resources */ = { isa = PBXNativeTarget; - buildConfigurationList = E81710E3CF86077AD189173E6889CC82 /* Build configuration list for PBXNativeTarget "DTCoreText-Resources" */; + buildConfigurationList = 93A78DDD7C59F62735C4CF878C3F3EF3 /* Build configuration list for PBXNativeTarget "DTCoreText-Resources" */; buildPhases = ( - 403D1403E9065290A1409882D420D49C /* Sources */, - A54A020DFD109D748321C3911B8451A8 /* Frameworks */, - 886C7F517A88C6FFFA4CC0EE701C4D61 /* Resources */, + 39526274254D11590C40944EF5209546 /* Sources */, + AAFF6297ECB0F5238719655741D4CC47 /* Frameworks */, + 180D0BDA876E115ADD5594B01FA45AA6 /* Resources */, ); buildRules = ( ); @@ -2034,10 +2037,10 @@ buildRules = ( ); dependencies = ( - C5C00D86AEC14371CD6BAB279ABDA2DA /* PBXTargetDependency */, - B3C1D0229D855B8FC4690EBB7A414FB4 /* PBXTargetDependency */, - 299D0A928127A948539B11F0E0B15456 /* PBXTargetDependency */, - 44A8C88A6520712D971ECCF7DB5E0E91 /* PBXTargetDependency */, + 9FC3DD151917F4600168200308C8CFB2 /* PBXTargetDependency */, + D8157DC8FC37E09A97E69270B47BD42C /* PBXTargetDependency */, + 448B8ED7B8C073D9859C5970102E1961 /* PBXTargetDependency */, + 8F7656822B7E5947D8BBA072A5C324B6 /* PBXTargetDependency */, ); name = "Pods-ReadViewDemo"; productName = Pods_ReadViewDemo; @@ -2046,12 +2049,12 @@ }; 8F6E5A5BF72D62CDFD25F91A7CFA3309 /* DTFoundation */ = { isa = PBXNativeTarget; - buildConfigurationList = 106179E41DCBAFB020B0B998D50116F5 /* Build configuration list for PBXNativeTarget "DTFoundation" */; + buildConfigurationList = 797A74DE557B2312CDE4DDE7BA924EF3 /* Build configuration list for PBXNativeTarget "DTFoundation" */; buildPhases = ( - C0A172710A396D707BB6434EBB995FCF /* Headers */, - 8AB15F396BD31D6E2A6DB1FC86EF957A /* Sources */, - CA092150563BDAB9BF6BB4E333429810 /* Frameworks */, - F7B703EED811B0935096F85FB8E15B85 /* Resources */, + 56396C6B581888EDCDC7B42B7CCF1A4C /* Headers */, + CBE49EE63AF0F9347CE685FF36B1D2E6 /* Sources */, + D094297E3FF019E0C05C5244B095CA0A /* Frameworks */, + E3C666A10576A7A8B8F85FB58DDF00AC /* Resources */, ); buildRules = ( ); @@ -2064,17 +2067,17 @@ }; AA15C8469D67684160CC2A7098EB841C /* ZIPFoundation */ = { isa = PBXNativeTarget; - buildConfigurationList = 3B41B7BCC37E0C0C09134B3AF4F26DF5 /* Build configuration list for PBXNativeTarget "ZIPFoundation" */; + buildConfigurationList = 9BC8D77A9E3B7D44D11B858D8DD3F3BC /* Build configuration list for PBXNativeTarget "ZIPFoundation" */; buildPhases = ( - F5EFDF3E9DDCD70973188EA186E85A88 /* Headers */, - BB54F05FF8C1D6F2A6158AE351D7E19C /* Sources */, - 6BA994E419B71A34DAC7DC2F80C1E55A /* Frameworks */, - AD0C0A0D304818E3A48A3F07DD265975 /* Resources */, + 61811610E8E96D8E4DBE96A4003CE077 /* Headers */, + E2564DACE65641E8E29BD319EBBDA772 /* Sources */, + 0DE1ECAB91165C80E940E26216D40F84 /* Frameworks */, + 5C304E728BC039C46678F5D5C2568B99 /* Resources */, ); buildRules = ( ); dependencies = ( - D95FDC45550F21721EF8EB81A91A8851 /* PBXTargetDependency */, + D93D69DEA20A22DCC34A44F20BCB6886 /* PBXTargetDependency */, ); name = ZIPFoundation; productName = ZIPFoundation; @@ -2083,19 +2086,19 @@ }; AA2E57587AA8EECA63C4BE08EA3CB6D2 /* RDReaderView */ = { isa = PBXNativeTarget; - buildConfigurationList = F839E10A0714CAFC9FF463B6099E2A0A /* Build configuration list for PBXNativeTarget "RDReaderView" */; + buildConfigurationList = C25C391A750C0AE0170E901D1C4CBBEC /* Build configuration list for PBXNativeTarget "RDReaderView" */; buildPhases = ( - 1B5B7378827A92C91FEBA6E7088993EC /* Headers */, - A1BE4E37825BDAB5C89924055C5A34DF /* Sources */, - 923127D49FC5F6755FEC287CF9B07812 /* Frameworks */, - 370BA5857517EED2312D7A86B811B14C /* Resources */, + F7E1A89F073DA82B1B23FC66440C9F1A /* Headers */, + B910633796F259854C9F7238822D1099 /* Sources */, + 5254383549A94DDFEA97C5C20A808F78 /* Frameworks */, + 30B0EB0900F44640F54AABD0D3798300 /* Resources */, ); buildRules = ( ); dependencies = ( - BA8CD293AA300B9562123D41D99696A6 /* PBXTargetDependency */, - 2C9655F6B4C89F32E587FAF115EE03CC /* PBXTargetDependency */, - BC0C832BFCF4B79EDEB1C3C754A7C7D0 /* PBXTargetDependency */, + 7214D8724950769514A63401878B7871 /* PBXTargetDependency */, + 0CC9636CCC44B21535D59D6DAD5F924F /* PBXTargetDependency */, + 3FB21ADA3E76890812FD8995D638D0B3 /* PBXTargetDependency */, ); name = RDReaderView; productName = RDReaderView; @@ -2104,11 +2107,11 @@ }; AE7F393FB7805DE2664AB4111873F907 /* RDReaderView-RDReaderViewAssets */ = { isa = PBXNativeTarget; - buildConfigurationList = E678DBCAC7A96683BD91570AD2C81DB3 /* Build configuration list for PBXNativeTarget "RDReaderView-RDReaderViewAssets" */; + buildConfigurationList = 867CF60047164719C3D4ED41F2FD855D /* Build configuration list for PBXNativeTarget "RDReaderView-RDReaderViewAssets" */; buildPhases = ( - 2D24213949E1762E0D9D96CA6FE1D136 /* Sources */, - 41D2F746EE0F32BE39A378BBE1D33306 /* Frameworks */, - 3AC0B4FA9C39C69F7AC29F1FF5970256 /* Resources */, + 39C2DCC10B7AC98A474C8CE693889FFA /* Sources */, + 22F00C8E9739C5623FED72E777C69A0C /* Frameworks */, + A1E3DFA34CE53F87C6853ABEB4ABD228 /* Resources */, ); buildRules = ( ); @@ -2131,8 +2134,8 @@ buildRules = ( ); dependencies = ( - E3A26D30EFCE6A679CA0B908152DAC48 /* PBXTargetDependency */, - 19D46876B89FB1A6965AA89784447800 /* PBXTargetDependency */, + DEA55EBE6C71C231E96349A3450C0332 /* PBXTargetDependency */, + 4D6AACC2BB50A205D880B6E1DE55515F /* PBXTargetDependency */, ); name = DTCoreText; productName = DTCoreText; @@ -2141,11 +2144,11 @@ }; C7A8D82E407CD3FDC3BA55CEE519B252 /* ZIPFoundation-ZIPFoundation_Privacy */ = { isa = PBXNativeTarget; - buildConfigurationList = 7AB227059EC1F8C7E624C1F5E7CAF900 /* Build configuration list for PBXNativeTarget "ZIPFoundation-ZIPFoundation_Privacy" */; + buildConfigurationList = FB481FBBB624EE3598165EC63CFEC06E /* Build configuration list for PBXNativeTarget "ZIPFoundation-ZIPFoundation_Privacy" */; buildPhases = ( - 15A26185A7C7B4D247ECFF50FA82F210 /* Sources */, - 7BB687433C7B1AC0D2C83CC4255CF94B /* Frameworks */, - 724A2CE3801C080D61DFE00543AE786F /* Resources */, + 90EA37F8A2EC206373516654B6C1264D /* Sources */, + BF1455AB73F756E1DF11AC8ECD2CA7A7 /* Frameworks */, + 281714113AFF127AF5872B8A8EC07CC0 /* Resources */, ); buildRules = ( ); @@ -2193,11 +2196,27 @@ /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ - 370BA5857517EED2312D7A86B811B14C /* Resources */ = { + 180D0BDA876E115ADD5594B01FA45AA6 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 1C0567C88DCAE3D057F1F75D7AEDFC5F /* RDReaderView-RDReaderViewAssets in Resources */, + 9304920D7E3F5289F47FB0F78FD33CB5 /* default.css in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 281714113AFF127AF5872B8A8EC07CC0 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F582DBD2110DC7E2BD25731A220D85FA /* PrivacyInfo.xcprivacy in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 30B0EB0900F44640F54AABD0D3798300 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + B59EFFCF83F578900B1B193189689FD0 /* RDReaderView-RDReaderViewAssets in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2209,36 +2228,28 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 3AC0B4FA9C39C69F7AC29F1FF5970256 /* Resources */ = { + 5C304E728BC039C46678F5D5C2568B99 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - F35B12C3787F02C121BEF6ED16B69605 /* cssInjector.js in Resources */, - 1E9D03D8CDA354903C048CBCBF73FB31 /* epub-bridge.js in Resources */, - 6F50693BC10B3C72DDD1130DDCDB234F /* epub-fixed-layout.html in Resources */, - BF2C1AC7B6C32ED307AD651A46AA6C9C /* rangy-core.js in Resources */, - E73B999DB940594604D5FF8ADEC0EBBC /* rangy-serializer.js in Resources */, - 5ABBCC3416B1FCBFAB56261F283693CA /* WeReadApi.js in Resources */, - 10EDE543DD6FB84E7F83398813B62AD9 /* wxread-dark.css in Resources */, - 8A9311DAF16BE5D746333DF2543918FF /* wxread-default.css in Resources */, - 501F8AD8F97F43A5D7008BE031C7934A /* wxread-replace.css in Resources */, - 5E7F1CB5132C8FB02EA6B1DD947F914D /* wxread-replace-latin.css in Resources */, + 5EE6776180341CF72714528684FA7254 /* ZIPFoundation-ZIPFoundation_Privacy in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 724A2CE3801C080D61DFE00543AE786F /* Resources */ = { + A1E3DFA34CE53F87C6853ABEB4ABD228 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 69AA93849D36C090BD310B6F0CADD0C5 /* PrivacyInfo.xcprivacy in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 886C7F517A88C6FFFA4CC0EE701C4D61 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 3BDB9F7C8367124B362836E4A8BF5341 /* default.css in Resources */, + 5A3D08398FCDB7FAD5A8210F31AA533C /* cssInjector.js in Resources */, + 247EA0EE361F6CB4BA1EE9CB7FD17E4E /* epub-bridge.js in Resources */, + 3CCCB46BEB98DC30A241DB039C09EF4A /* epub-fixed-layout.html in Resources */, + B5C61DFC1CFBA8ECA4AF7779F5089816 /* rangy-core.js in Resources */, + DC9CA5F234D2AA505F70686BAC03C27B /* rangy-serializer.js in Resources */, + 9D41E4DA56705B0149988B175623233D /* WeReadApi.js in Resources */, + 811584EBB417D8EAC8674773013DA313 /* wxread-dark.css in Resources */, + 7A34803D14D56A92E9FA400C7305B19B /* wxread-default.css in Resources */, + 2F4CAA81001F11E515585DA5F50DC1CD /* wxread-replace.css in Resources */, + 09256EEFCDBDEBF3090658C24D7C4B88 /* wxread-replace-latin.css in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2249,15 +2260,7 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - AD0C0A0D304818E3A48A3F07DD265975 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - D7CB1C23334ED2DD8CFC33FBE80D2C92 /* ZIPFoundation-ZIPFoundation_Privacy in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - F7B703EED811B0935096F85FB8E15B85 /* Resources */ = { + E3C666A10576A7A8B8F85FB58DDF00AC /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( @@ -2267,256 +2270,27 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - 15A26185A7C7B4D247ECFF50FA82F210 /* Sources */ = { + 39526274254D11590C40944EF5209546 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - 2D24213949E1762E0D9D96CA6FE1D136 /* Sources */ = { + 39C2DCC10B7AC98A474C8CE693889FFA /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - 403D1403E9065290A1409882D420D49C /* Sources */ = { + 90EA37F8A2EC206373516654B6C1264D /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - 8AB15F396BD31D6E2A6DB1FC86EF957A /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - E187AB7F2733DF034CE8668C1AE062F6 /* DTActivityTitleView.m in Sources */, - 595F78047873532A4208F40405262684 /* DTAnimatedGIF.m in Sources */, - 6E3160EE1463E3D3C42F6D352278D0C6 /* DTBase64Coding.m in Sources */, - C4E1E40043DA623751AF64C5CD396CCC /* DTBlockFunctions.m in Sources */, - C652D268D07948ED1E150C632CC60AF9 /* DTCoreGraphicsUtils.m in Sources */, - E7ECCDF9AA9BF1B385231D19C7167CA3 /* DTCustomColoredAccessory.m in Sources */, - 4475F0D70E29629D04CB64C82FA5CEBF /* DTExtendedFileAttributes.m in Sources */, - A949841C2F45DE9F8FB59DDADA087852 /* DTFolderMonitor.m in Sources */, - 27CAE671400980165BF5E3FD824F08A2 /* DTFoundation-dummy.m in Sources */, - C49D28C5B0E48128D9068C38B5EC8605 /* DTFoundationConstants.m in Sources */, - 8C9C493D4B8725B3BC2DF6F7E2AE2960 /* DTHTMLParser.m in Sources */, - EC3AAE6DEC73415B7A749A9D7ED1D1A2 /* DTLog.m in Sources */, - 63BF2C30A8B633ED2DFB5C9AA4DF5DD0 /* DTPieProgressIndicator.m in Sources */, - 8C254EFFDAFA3432B57B4317B306F448 /* DTSmartPagingScrollView.m in Sources */, - 4FDA4ACF3A9676F39F239791127E4651 /* DTTiledLayerWithoutFade.m in Sources */, - 23E20AD6C625950FDEE2B4C5966C0405 /* DTVersion.m in Sources */, - ACC9E4A469E961237E551759D7DBBE10 /* NSArray+DTError.m in Sources */, - 99AD3357E90AD801A7BA603B32B5DF90 /* NSData+DTCrypto.m in Sources */, - C9D94F33F92551C36226E924C6FF8E18 /* NSDictionary+DTError.m in Sources */, - 00113125175BA26D70BE12F27CCEAB65 /* NSFileWrapper+DTCopying.m in Sources */, - A08A4B4424A089A268AAF2313E0EC40F /* NSMutableArray+DTMoving.m in Sources */, - 10FA9DC27DAC6DA7724D6C6EB28FE0A0 /* NSString+DTFormatNumbers.m in Sources */, - 262232E65FD8CA26C37C33D8B1FB9B3F /* NSString+DTPaths.m in Sources */, - 4C2062F59D9CE0D280C035D83667CFAE /* NSString+DTURLEncoding.m in Sources */, - 43DE22E881166971EA01518084D03267 /* NSString+DTUtilities.m in Sources */, - FBACC93C50F20F2E8F2EC12D2D107DFA /* NSURL+DTAppLinks.m in Sources */, - 58A1F591244259E81CAEAD8AA6AEDD32 /* NSURL+DTComparing.m in Sources */, - 97551B39A196031743612486D44CC480 /* NSURL+DTUnshorten.m in Sources */, - E211604C7EBF2A9552938DE714DCEB4F /* UIApplication+DTNetworkActivity.m in Sources */, - FA898C80CF990AAD44D03448E7664729 /* UIImage+DTFoundation.m in Sources */, - DB121A63241654223079E203F3539ACE /* UIScreen+DTFoundation.m in Sources */, - 635EA3B1D45012F199D6ED4AB783D5E8 /* UIView+DTFoundation.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - A1BE4E37825BDAB5C89924055C5A34DF /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 597FB44F34F00977BA886DDAF246D33F /* RDEPUBAnnotationModels.swift in Sources */, - 5C17AB24452486F4AB7BA2DE5EFFB961 /* RDEPUBAssetRepository.swift in Sources */, - A4696A40DFBA4A943DBC243A7C907888 /* RDEPUBAttachmentNormalizer.swift in Sources */, - BBBCEF6E869779226014E3FB48CD21AB /* RDEPUBAttachmentTooltipOverlayView.swift in Sources */, - E450259DBA3997365A02AE5501CCC6FF /* RDEPUBAttachmentTooltipView.swift in Sources */, - 37FF1ADF896F2D0BB383972330F86992 /* RDEPUBBackgroundCoverageStore.swift in Sources */, - 90ED936CB8FF110B74E170B127FCA816 /* RDEPUBBackgroundPriorityPolicy.swift in Sources */, - 72E1E0B3B3A46A92E75CA522B9FCB7B6 /* RDEPUBBackgroundTrace.swift in Sources */, - E075024A8D760FB1935ACBD81E84F329 /* RDEPUBBookPageMap.swift in Sources */, - 6ED0817E085ECE6F0F3A0C33D3E64125 /* RDEPUBBuildDiagnosticsReporter.swift in Sources */, - 6300355A098AC58B01C10D28C5BBFB41 /* RDEPUBCFI.swift in Sources */, - 9948C2140652AD1AEBB485FAF262531A /* RDEPUBCFICompatibility.swift in Sources */, - C2C4D280D6D73F7CFC734CED2A00282D /* RDEPUBCFIDOMPathBuilder.swift in Sources */, - C5563F583B537E0B2BFDE7779B27AE74 /* RDEPUBCFIError.swift in Sources */, - 7D5436BE12850ACBF45A53BB2A6BA466 /* RDEPUBCFIGenerator.swift in Sources */, - 89AAC0AAA4ED7247C740BA2B8E14A430 /* RDEPUBCFIMap.swift in Sources */, - 18F313579FBADD73801F5169F87A6A30 /* RDEPUBCFIMarkerInjector.swift in Sources */, - 6115A9FA0A489CE1476B2F524028E0E5 /* RDEPUBCFIParser.swift in Sources */, - 24B8A2876EFBF98BE592BA30F243E027 /* RDEPUBCFIPath.swift in Sources */, - 45AEBF466DD0EA1130E3D64A8FC80612 /* RDEPUBCFIRange.swift in Sources */, - AE7E76D8301E55488BFA1CF40D0B1990 /* RDEPUBCFIRecoveryEngine.swift in Sources */, - 44B6E32953282F781A5D5ECC8BF8EC1C /* RDEPUBCFIResolver.swift in Sources */, - 640909B07D40D27700CCAE2ACD0ACF4E /* RDEPUBCFISerializer.swift in Sources */, - 52465038F8651BB09BC9F445EFE64FD3 /* RDEPUBCFITextAssertion.swift in Sources */, - 38D45D8BED0B49F0E0FD6667D86805DE /* RDEPUBCFIUtilities.swift in Sources */, - 1AB9937A5882EC596522387625E02C72 /* RDEPUBChapterCacheKey.swift in Sources */, - 3034A9A7C9993A9ACEAE079DB7C159E4 /* RDEPUBChapterData.swift in Sources */, - BA7A1E4027881F2B50F8301696865452 /* RDEPUBChapterDataCache.swift in Sources */, - 36FD94BC47225F46F04D40DD4D97514B /* RDEPUBChapterLoader.swift in Sources */, - DA4D0BF0FDEBBCF68DC7D6C554951F46 /* RDEPUBChapterLocation.swift in Sources */, - 2D1270A235659EAB7D0CDF39B8327963 /* RDEPUBChapterOffsetMap.swift in Sources */, - C37966071017032F0C1FC81FF8244972 /* RDEPUBChapterPageCounter.swift in Sources */, - C3FE7E6D008BF43BC6111D39C2C4C861 /* RDEPUBChapterRuntimeStore.swift in Sources */, - 807780DB924306E4C1B28784712E45D9 /* RDEPUBChapterSummaryDiskCache.swift in Sources */, - 54AE224FF7E59A32A75151324762B076 /* RDEPUBChapterTailNormalizer.swift in Sources */, - 3D54BF064199B24E96A4E00D7A654106 /* RDEPUBChapterWarmupOrchestrator.swift in Sources */, - 983285394453A8129F8E3E2E231B12E5 /* RDEPUBCoreTextPageFrameFactory.swift in Sources */, - BB81FE0BBBCEFAF8A7631E7E34874035 /* RDEPUBCSSCompatibilityLayer.swift in Sources */, - 8EBDD8FF39B5DF1B9ECCEEBD333F374C /* RDEPUBDarkImageAdjuster.swift in Sources */, - EAD57CBB41E96A1BF02C7BAF39845FD0 /* RDEPUBDTCoreTextRenderer.swift in Sources */, - CCDC8842EA30D3F77DD6F88CE1A1849D /* RDEPUBFixedLayoutTemplate.swift in Sources */, - 0B287B2D40A4B263DA9529292BEF9F33 /* RDEPUBFontFallbackResolver.swift in Sources */, - B494EB2836A86D7127501F43DC0CAAEA /* RDEPUBFontNormalizer.swift in Sources */, - 5E6091E20FD3C08AC4BB3DE2C3A299DF /* RDEPUBFragmentMarkerInjector.swift in Sources */, - BE7298B71BD3A291423F7E5B9B1BF52A /* RDEPUBHTMLNormalizer.swift in Sources */, - 360DDB3135C7FD47D373DB988C539CCB /* RDEPUBImageViewController.swift in Sources */, - 45B59D63934EC6A1131DC2270A71DA24 /* RDEPUBImageViewerCoordinator.swift in Sources */, - C01D5DBB466B51C42C269491BFA65838 /* RDEPUBJavaScriptBridge.swift in Sources */, - 3799DDD203E5B4ACD6DC478CC0153CF0 /* RDEPUBJumpSession.swift in Sources */, - 7C34DD458035EC0B9413A83E4C363624 /* RDEPUBMetadataParseCancellationController.swift in Sources */, - C883511DEB54DA7D80409A7C3B60896D /* RDEPUBMetadataParseWorker.swift in Sources */, - 9492443553B7CD522F54CAC8167D8058 /* RDEPUBModels.swift in Sources */, - 80A5F47A61B2CE58811FBA9EA4EEAE6E /* RDEPUBNavigatorLayoutContext.swift in Sources */, - A3A9D6374488C6608ADF437FFECDB17B /* RDEPUBNoteDetector.swift in Sources */, - 418BA261DBB5B3CBCEA84B21192BE5EA /* RDEPUBNoteModels.swift in Sources */, - B5CE97B23B3C54DD7BF5B08002A60B71 /* RDEPUBNotePopupCoordinator.swift in Sources */, - 2BDEC97E2DDF4218FDD5DFF1F1DC16F2 /* RDEPUBNotePopupViewController.swift in Sources */, - 90C8F1B2156343A41987386589DA591C /* RDEPUBNoteResolver.swift in Sources */, - B85D036F0AAB424992C26B037799148A /* RDEPUBPageBreakPolicy.swift in Sources */, - 66ABF5306138D4C39A4B521ECD2B1386 /* RDEPUBPageCountCache.swift in Sources */, - DA2B1C25CEFDE2A9962BBC9F853D7E34 /* RDEPUBPageInteractionController.swift in Sources */, - 5E7ED02087D9553656C56D64CF23291D /* RDEPUBPageLayoutSnapshot.swift in Sources */, - 3F4489815030D85B098664869FD06D00 /* RDEPUBPageMapReconciliationCoordinator.swift in Sources */, - 24C5169AB172176FCBF41CD84724782C /* RDEPUBPageResolver.swift in Sources */, - 5F9F2080B7F3468C9E9BC2EC43A036D3 /* RDEPUBPaginationCacheCoordinator.swift in Sources */, - B3EA920CB255EE8B43C5A51D68F00869 /* RDEPUBPaginationModels.swift in Sources */, - AD328CC506B6184BE8C4E9FA7914E039 /* RDEPUBPaginator.swift in Sources */, - D60B799B41BE4B575A3C4CCEB4FAB0FF /* RDEPUBParser.swift in Sources */, - B64B2F42273B15382F3E5A97B55148EA /* RDEPUBParser+Archive.swift in Sources */, - 69BF25DA82C771108676AB97973A545E /* RDEPUBParser+Package.swift in Sources */, - 5EDC7E764198A5BD8E4F93662E72B40C /* RDEPUBParser+ReadingProfile.swift in Sources */, - 7E5503757330B3AAEDD0BF3A966B9A0E /* RDEPUBParser+Resources.swift in Sources */, - A68D4A2382460F426465EDDAF8EBB1F8 /* RDEPUBParser+TOC.swift in Sources */, - 61563CE4742FACF31146E47D46A558D0 /* RDEPUBPreferences.swift in Sources */, - 416916BBDD8A2F9D3FB0E05F07B6B9EF /* RDEPUBPresentationRuntime.swift in Sources */, - 75F99FA499756ED1A681052EC2445DC6 /* RDEPUBPublication.swift in Sources */, - 13E0E60D1E91FE73DA3C19EFA23EF59D /* RDEPUBReaderAnnotationCoordinator.swift in Sources */, - 85CAB9A77555702AFF3AD8D0842585F7 /* RDEPUBReaderAssemblyCoordinator.swift in Sources */, - E575E69F9286412E8ED2D26A367C5993 /* RDEPUBReaderBottomToolView.swift in Sources */, - 06B91127429E64FE098A50E0549E9B62 /* RDEPUBReaderChapterListController.swift in Sources */, - 49DBA3BF291BE1AA349C439DE6E74ED7 /* RDEPUBReaderChromeCoordinator.swift in Sources */, - F1C2AEADA00E8EB7EBFE3AE1B3D75CC1 /* RDEPUBReaderConfiguration.swift in Sources */, - E74119D71F7BA53C6ED117180A9B7C76 /* RDEPUBReaderContext.swift in Sources */, - 4E8F3FE99F2F7CE831ACB4244ADF381C /* RDEPUBReaderController.swift in Sources */, - 5FAE9F6E6EE4A8A8C8547059FC5EC13A /* RDEPUBReaderController+AttachmentTooltip.swift in Sources */, - 568A0B72299CDAF86374403711F57669 /* RDEPUBReaderController+ContentDelegates.swift in Sources */, - AB96076F48CD56721F47B5D8CD68B870 /* RDEPUBReaderController+DataSource.swift in Sources */, - F19DCC1F1A6D50AAAE2CDB35DC9328BF /* RDEPUBReaderController+ExternalLinks.swift in Sources */, - AC51EB535FBB37484F8A3BA23CBD41DD /* RDEPUBReaderController+LocationResolution.swift in Sources */, - 02E00A11A960FFC1CF719FF107A97A56 /* RDEPUBReaderController+PublicAPI.swift in Sources */, - F388DEF5AC1D6F6267025046B37645A7 /* RDEPUBReaderController+RenderSupport.swift in Sources */, - 3DA2135F0842C596563E610AC1B162B3 /* RDEPUBReaderController+RuntimeBridge.swift in Sources */, - AC4426FAED5C421324BB8940BD528EE8 /* RDEPUBReaderController+TableOfContents.swift in Sources */, - 46AD9CE8A6300737D0DE3750BE12E55D /* RDEPUBReaderDelegate.swift in Sources */, - F54455C0ECA25680B1A0D16909BA0907 /* RDEPUBReaderDependencies.swift in Sources */, - CD98679C55356A6F98EFE3ABD712C514 /* RDEPUBReaderEnvironment.swift in Sources */, - 2FD40BB5079CB1F7FDED414B9F0CD770 /* RDEPUBReaderHighlightsViewController.swift in Sources */, - 9A1B43DFB3162F43E83DD398EE07D031 /* RDEPUBReaderLoadCoordinator.swift in Sources */, - A1BD7803BE40F71EF65DC8FE3C1487CB /* RDEPUBReaderLocationCoordinator.swift in Sources */, - D62F0FFD57165636F2C5E74D2550604E /* RDEPUBReaderPaginationCoordinator.swift in Sources */, - E7BF39112456E5806CBFA1D998740944 /* RDEPUBReaderPersistence.swift in Sources */, - 709C4BA2B6C35035434CD7A41C050A9A /* RDEPUBReaderRuntime.swift in Sources */, - 9D381AA072A4C03E3B554FA7925940FF /* RDEPUBReaderSearchBarView.swift in Sources */, - 6090E5E9EDF9213F6AAE38EFAD608B89 /* RDEPUBReaderSearchCoordinator.swift in Sources */, - 5935C35EB75A5FD5C0B8D288B7ED2418 /* RDEPUBReaderServices.swift in Sources */, - 02A298783B59EBF1DA7E6734E86384BC /* RDEPUBReaderSettings.swift in Sources */, - 2925F96E721F741F60C0D2B5AECDBED3 /* RDEPUBReaderSettingsViewController.swift in Sources */, - EC832377DBB2E3443B37165DDDD9F9D6 /* RDEPUBReaderState.swift in Sources */, - 0A5BECD47E7FF9EA5C92717197F50DD0 /* RDEPUBReaderTableOfContentsItem.swift in Sources */, - 4419BDA1F006E749CA40A99C1E6CEDFF /* RDEPUBReaderTheme.swift in Sources */, - 5CE8BD1A9C7FE28802CD9409E4282D5F /* RDEPUBReaderToolView.swift in Sources */, - 918384360781B784B0A347C5213C7166 /* RDEPUBReaderTopToolView.swift in Sources */, - A5DE70F19A97D8C9445781764D944031 /* RDEPUBReaderUIState.swift in Sources */, - 86130B323946B0228B860A4302D18B41 /* RDEPUBReaderViewportMonitor.swift in Sources */, - 08711CEABB218DF984EA628D9B08BA47 /* RDEPUBReadingLocationModels.swift in Sources */, - 6A9D50C84AE349AF8E4D6E27DF651FE2 /* RDEPUBReadingSession.swift in Sources */, - 37DD0E5A1E4470E7DC30934C28EFBC65 /* RDEPUBRenderDiagnosticsCollector.swift in Sources */, - DC5237C283BD4408F2E478D6C4FEA6B2 /* RDEPUBRenderRequest.swift in Sources */, - BB2A7A05D4D4017BD37A1EB4528182EF /* RDEPUBResourceResolver.swift in Sources */, - E7160A3E14A6F4EF789C499852B0EC6A /* RDEPUBResourceURLSchemeHandler.swift in Sources */, - 26073F7564244C7DDBD20B7A99849F21 /* RDEPUBRuntimeChapter.swift in Sources */, - 15F821001C70BC0400B5E85BC445A048 /* RDEPUBRuntimePageCount.swift in Sources */, - 66BECA8D265426E7C9B47833EBA79D55 /* RDEPUBSearchEngine.swift in Sources */, - 4B3799CED66DE4CF5358AAC35D27F212 /* RDEPUBSearchModels.swift in Sources */, - 2B5D0753E9B3BFF6F7C695CAF9916DA3 /* RDEPUBSelectionLoupeView.swift in Sources */, - C52E92F3360BF420615A59DE950DEE16 /* RDEPUBSelectionOverlayView.swift in Sources */, - 83DF18691BCACC408ABEEC12F0B1AB3E /* RDEPUBSelectionState.swift in Sources */, - 30D40C2BD0CA2DB6C95A66EB01535DA7 /* RDEPUBSemanticMarkerInjector.swift in Sources */, - 088E349DD58B48DC5A3F210B3AA2B08E /* RDEPUBStyleCompatibilityModels.swift in Sources */, - 164D6A138BDB59AC18E7B37ED730966B /* RDEPUBStyleSheetBuilder.swift in Sources */, - 13D28951E31D694F91F1D7AAC21D42BF /* RDEPUBStyleSheetComposer.swift in Sources */, - 08EC0B2843F92A4C922EB790C33B077F /* RDEPUBTextAnchor.swift in Sources */, - 6BA40E6FA6DC4701D8156456EB5CF0ED /* RDEPUBTextAnnotationOverlay.swift in Sources */, - 303DAA818CDDA98AF92E4FBF2A732B8A /* RDEPUBTextBookBuilder.swift in Sources */, - 6CD9816C0995369B167186FF189B7575 /* RDEPUBTextBookCache.swift in Sources */, - EC88499170030571BD9326F9EB05204C /* RDEPUBTextBookModels.swift in Sources */, - C4766E69557D560A763EC5BB6A4C2A41 /* RDEPUBTextBuildPipelineInterfaces.swift in Sources */, - 6B577F035D0593AA9E0BF092E752E7D9 /* RDEPUBTextContentInteractionCoordinator.swift in Sources */, - 8E2679367E3A543EDEC5A518D23EB92E /* RDEPUBTextContentView.swift in Sources */, - 2DF9FD4220363B628D1C492D280B21F7 /* RDEPUBTextIndexTable.swift in Sources */, - DE3BF24CA186AAA2CC673A2BADE2AFA1 /* RDEPUBTextLayouter.swift in Sources */, - D0500D64054753A876D60373E284FD28 /* RDEPUBTextLayoutFrame.swift in Sources */, - 32003AEED9194998E4CE19D8655A1CA9 /* RDEPUBTextPageDecorationView.swift in Sources */, - 2136CAFEBA602E1F1D9AE43D901686B6 /* RDEPUBTextPageRenderView.swift in Sources */, - AF6AC3DDB170B49DC3F06E9914DCCED8 /* RDEPUBTextPaginationInterfaces.swift in Sources */, - B3B9497580D0189374A08C3A349F5230 /* RDEPUBTextPaginationSupport.swift in Sources */, - 7CA5624AA51A18C916104986509C592C /* RDEPUBTextPerformanceSampler.swift in Sources */, - 7A2DDB5D730FCA75152369EFCEE390B1 /* RDEPUBTextPositionConverter.swift in Sources */, - C93C8998F0A29B91C91C7E5C43C564BF /* RDEPUBTextRenderer.swift in Sources */, - 84A49180E4E633858662A7B72A501BB6 /* RDEPUBTextRendererSupport.swift in Sources */, - E42412F34F904022FAD5ED27F09BC3D2 /* RDEPUBTextSearchEngine.swift in Sources */, - 334A13941CD393644146CF756B266584 /* RDEPUBTextSelectionController.swift in Sources */, - 855D697E9DC5C605D6178EA976B05E97 /* RDEPUBTypesettingPipeline.swift in Sources */, - 1F2EA31B0B1121ED145A815C6116F9B7 /* RDEPUBViewportTypes.swift in Sources */, - E9ACCCDF0303E912403C573C32CCC86B /* RDEPUBWebContentView.swift in Sources */, - 3B49170468F853F1664D619454E612F4 /* RDEPUBWebDecorationOverlayView.swift in Sources */, - D650EC467B29EB175C9588C57079205A /* RDEPUBWebView.swift in Sources */, - 6387DFB2BFA51419C2B108337303C3BF /* RDEPUBWebView+Configuration.swift in Sources */, - 1BE1C10942015A97018CA403574B5F97 /* RDEPUBWebView+FixedLayout.swift in Sources */, - FF2AF67ED01DD3C78822AF567FC64051 /* RDEPUBWebView+JavaScriptBridge.swift in Sources */, - 527BD4D564B72BED5FF27088B1078D9D /* RDEPUBWebView+Reflowable.swift in Sources */, - 4BC10B95FF401CE4B81EB29E08A14C85 /* RDEPUBWebView+Search.swift in Sources */, - C263E5368A76EC4E43AF7EE9E067D725 /* RDEPUBWebViewDebug.swift in Sources */, - 4EF862E8A01AC4423C7A684BADFEECBB /* RDPlainTextBookBuilder.swift in Sources */, - AB700CDBB85072A2E9F40018E1ECDB00 /* RDReaderContentCell.swift in Sources */, - 5A041AAE66088AD15755C6C5BA152E2F /* RDReaderFlowLayout.swift in Sources */, - D87E35AEA840419649DB90B3A656E758 /* RDReaderGestureController.swift in Sources */, - C1EC1F4D33F9FA969CB9513D933443E2 /* RDReaderPageChildViewController.swift in Sources */, - 70AF1621102FFF12F7DA88DDD8254054 /* RDReaderPagingController.swift in Sources */, - C7F3140CE021BAD613B8F941F859A64E /* RDReaderPreloadController.swift in Sources */, - E2A039DEE00E19644C9723F195BF80EC /* RDReaderSpreadResolver.swift in Sources */, - 63C748495E15AFA55CFECE60EA39DE3A /* RDReaderTapRegionHandler.swift in Sources */, - 6D0848863B29EC8AF0BCD7D30013C8AA /* RDReaderView.swift in Sources */, - 1B7C6AEE9BE9547FDA5301683625CC1D /* RDReaderView+CollectionView.swift in Sources */, - 4243E07D3DE0A37254A56F24C60139A3 /* RDReaderView+ContentAccess.swift in Sources */, - 1B2F48EC9DE304484E8DD123EC028E9D /* RDReaderView+PageCurl.swift in Sources */, - 96F613CFCEA008628E950E6844EAFCE6 /* RDReaderView+ToolView.swift in Sources */, - 8777BFC6890E10C885F3D5CB9779B6C3 /* RDReaderView-dummy.m in Sources */, - C9366A21A153894FCC5898ABAA1BC673 /* RDReaderViewProtocols.swift in Sources */, - 1C2E78B721E91C8CA0427004A6B5CADF /* RDURLReaderController.swift in Sources */, - B82276ED843A24848B1F0AE805583492 /* String+RDEPUB.swift in Sources */, - 04A447AC67CE557F0D6535CCAA7E672A /* UIColor+RDEPUB.swift in Sources */, - 0C73693788D2965F6E5D255519E050B9 /* UIColor+RDEPUBHex.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; AF09D5A5B57E781D29EB3CD22A1DE186 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -2525,32 +2299,262 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - BB54F05FF8C1D6F2A6158AE351D7E19C /* Sources */ = { + B910633796F259854C9F7238822D1099 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - B62C7195C031CD59BF3BFCAB531791C2 /* Archive.swift in Sources */, - 53D8722E9B869009D27AC6E0ACBAB6BA /* Archive+BackingConfiguration.swift in Sources */, - 0C1FE3FEF711D728FDFF14CF277B2E4E /* Archive+Deprecated.swift in Sources */, - 60AE4530CADCF5D851EFB088FD1CC32B /* Archive+Helpers.swift in Sources */, - 78AF9AA3502FD29F501DDF8986B67578 /* Archive+MemoryFile.swift in Sources */, - DC43DD003EAA9A027363E201898A4C54 /* Archive+Progress.swift in Sources */, - 4BEF7F1D48D5407BA2CCADEDBD0933BA /* Archive+Reading.swift in Sources */, - 045ECA6DF954F21A52A3A318CB0A959A /* Archive+ReadingDeprecated.swift in Sources */, - C0DFE2AA259BE82AA47339B21CDFC958 /* Archive+Writing.swift in Sources */, - 8413070AC439CC5F8EEB0E56D762B968 /* Archive+WritingDeprecated.swift in Sources */, - 221B98812070AB1112E255528B64EDBA /* Archive+ZIP64.swift in Sources */, - 64B9E0A8AD351336BCFAEEE49A596BC5 /* Data+Compression.swift in Sources */, - 46D92965B81BEDB4DBD7FA6050448D0A /* Data+CompressionDeprecated.swift in Sources */, - CC24C5C5E758475B1A32E952B508824B /* Data+Serialization.swift in Sources */, - 4F363B073676BB21128E5BAF85D05EE8 /* Date+ZIP.swift in Sources */, - 0C7FEDFB0E8C8C55F63378C60C4208FA /* Entry.swift in Sources */, - 8D4499E5E0E1C3E85EB14B5A6603900A /* Entry+Serialization.swift in Sources */, - CCC0BA8885804092995A8C2F0A719E36 /* Entry+ZIP64.swift in Sources */, - 08C9C48A7BD681F075086F7E53660F69 /* FileManager+ZIP.swift in Sources */, - 2CE58BC822323243DA3DB3FD583F7E31 /* FileManager+ZIPDeprecated.swift in Sources */, - 5AE0C11BD819CF2A3C11CFC802DE0C06 /* URL+ZIP.swift in Sources */, - 9714230EA35DBAC275C9C8B030D4004E /* ZIPFoundation-dummy.m in Sources */, + 010EFB280F4FDFBBC75CEFB1FEF1C3C9 /* RDEPUBAnnotationModels.swift in Sources */, + CB1E78A4E24418D8E1486735D8C13A48 /* RDEPUBAssetRepository.swift in Sources */, + 8041514FE1856F94EBD1E317A1E9ABBE /* RDEPUBAttachmentNormalizer.swift in Sources */, + 0BEA894C5656FF4CCAEDA1F447A31F9C /* RDEPUBAttachmentTooltipOverlayView.swift in Sources */, + 952DAB01617035A1AD4F1A794BB5A850 /* RDEPUBAttachmentTooltipView.swift in Sources */, + 66E707F0227EB649C9693BBA35384DE9 /* RDEPUBBackgroundCoverageStore.swift in Sources */, + 7301973ED8F52DCDC8E16A64066C9158 /* RDEPUBBackgroundPriorityPolicy.swift in Sources */, + 8BF07B59FD97F89AD9AE7ABE953C5229 /* RDEPUBBackgroundTrace.swift in Sources */, + D6139C08D650C40629D29CE3B04263F2 /* RDEPUBBookPageMap.swift in Sources */, + 5967C134F418B959CE1967A3CC15A3AF /* RDEPUBBuildDiagnosticsReporter.swift in Sources */, + B97D761BA5C5055277DC351A493C5568 /* RDEPUBCFI.swift in Sources */, + 631E5B681577106CA3DA1EE532B50D75 /* RDEPUBCFICompatibility.swift in Sources */, + F9959EB035DFB0335495915F6A4DF232 /* RDEPUBCFIDOMPathBuilder.swift in Sources */, + 2AD11C72A693A0F3F851ED95D52588FC /* RDEPUBCFIError.swift in Sources */, + BC519A74D986F53A3800079B6ACAB7A3 /* RDEPUBCFIGenerator.swift in Sources */, + 9C31FA2081B8126C6634902705D6434A /* RDEPUBCFIMap.swift in Sources */, + 3A23E0FBA148987E6982F243C17FCDB3 /* RDEPUBCFIMarkerInjector.swift in Sources */, + 08C0E1DFA612AF20B227EB4583BD4EF1 /* RDEPUBCFIParser.swift in Sources */, + 312374CF0C9CBCDBEFFB71B6AAD7386B /* RDEPUBCFIPath.swift in Sources */, + D118781E14C557A8428DB61DFECB6CC2 /* RDEPUBCFIRange.swift in Sources */, + F9AE08B54720440E62FC671424610C66 /* RDEPUBCFIRecoveryEngine.swift in Sources */, + D7E9F39F5A7AF9C7170ACBC890EE55DB /* RDEPUBCFIResolver.swift in Sources */, + 7C68BB97D96CCA378A99B1AEDF75F2AA /* RDEPUBCFISerializer.swift in Sources */, + 4CB9152E2F9F37608FF3BED957CEAA10 /* RDEPUBCFITextAssertion.swift in Sources */, + 3BEE80559815F3BCC244579816B11BAE /* RDEPUBCFIUtilities.swift in Sources */, + 8E88C2B80FBFC142610DDB8A57EB8D84 /* RDEPUBChapterCacheKey.swift in Sources */, + 59A7C28A73DE8E3754AF97C359EE2460 /* RDEPUBChapterData.swift in Sources */, + F12A5C7183CC8152D0A36E1C7963E139 /* RDEPUBChapterDataCache.swift in Sources */, + 3134ACF38EC778DF668C6DDA8E4473C2 /* RDEPUBChapterLoader.swift in Sources */, + D20113877C525B2FA078EEDB723906D9 /* RDEPUBChapterLocation.swift in Sources */, + 2AF7BC9CAE7E399AF1AD18F6C24CF447 /* RDEPUBChapterOffsetMap.swift in Sources */, + 46E5721034DC56B07DAF847D01818D1B /* RDEPUBChapterPageCounter.swift in Sources */, + 78BB61196C1CCF2870544CCCC3D6FCCD /* RDEPUBChapterRuntimeStore.swift in Sources */, + 211C3A8308C726611C02F30211A23812 /* RDEPUBChapterSummaryDiskCache.swift in Sources */, + A7CAF507A75914C9CB2904256449478E /* RDEPUBChapterTailNormalizer.swift in Sources */, + 06F29198808875D4FE864F420CF6DDBE /* RDEPUBChapterWarmupOrchestrator.swift in Sources */, + BB8A21A84B763070E340A3E4687D3110 /* RDEPUBCoreTextPageFrameFactory.swift in Sources */, + ACA98E6A9A6E8D58A22021AB40351E66 /* RDEPUBCSSCompatibilityLayer.swift in Sources */, + 52BEFEA715FD0B9BC31F2F7C44DD188A /* RDEPUBDarkImageAdjuster.swift in Sources */, + 3EF196811F910116B9EBE129278C219E /* RDEPUBDTCoreTextRenderer.swift in Sources */, + 8B452A6989E55D4D4256B16F379F7831 /* RDEPUBFixedLayoutTemplate.swift in Sources */, + 640349287B1EC3A07C397EEE5A4510C7 /* RDEPUBFontFallbackResolver.swift in Sources */, + ABB194A853B15FBB547244E93F3AFA87 /* RDEPUBFontNormalizer.swift in Sources */, + 456A968F9CE6080256CE5B65DBF79AAF /* RDEPUBFragmentMarkerInjector.swift in Sources */, + 81F2EDDCDE14E41755685147F75D02D5 /* RDEPUBHTMLNormalizer.swift in Sources */, + 49B5370942C4D7AC9B1E1EF77AA3B5DF /* RDEPUBImageViewController.swift in Sources */, + 803C702E95B286938CC3916511A242F4 /* RDEPUBImageViewerCoordinator.swift in Sources */, + 194722F12D32D0016CD564ACD01C0710 /* RDEPUBJavaScriptBridge.swift in Sources */, + 097C7CC4E0B27F7D78515547494AA566 /* RDEPUBJumpSession.swift in Sources */, + 5C70C7532D7C43C97806677F40FB2336 /* RDEPUBMetadataParseCancellationController.swift in Sources */, + 9A4C1165863623D562E7DB43A6CBC62A /* RDEPUBMetadataParseWorker.swift in Sources */, + E56D82B0707AAD37277F90302EA4A4C4 /* RDEPUBModels.swift in Sources */, + 7D411155326150312CD1649A73AE55A8 /* RDEPUBNavigatorLayoutContext.swift in Sources */, + B20B3B8D2C3958BE32BABBBA48E0ECF4 /* RDEPUBNoteDetector.swift in Sources */, + BF9D1A78B1C4C7613937CC99EB1702D4 /* RDEPUBNoteModels.swift in Sources */, + 7C68A32E44AAE4EDBEAE68473BB9EDE7 /* RDEPUBNotePopupCoordinator.swift in Sources */, + 1EA2F5468DD943AC4B44C77EAD623852 /* RDEPUBNotePopupViewController.swift in Sources */, + AFE5927149FB4AFE9FB27235C2FCB8A2 /* RDEPUBNoteResolver.swift in Sources */, + CAC5255B7B613B25FA9731E5C6EDD5CB /* RDEPUBPageBreakPolicy.swift in Sources */, + D040A70EB575CF6ECE381FD408BD42B2 /* RDEPUBPageCountCache.swift in Sources */, + 80293565A6D64BAAD1917E1688E7FD5B /* RDEPUBPageInteractionController.swift in Sources */, + 191C07ED00D17BBF103144D016F5D907 /* RDEPUBPageLayoutSnapshot.swift in Sources */, + C60D3562E8D9105111D9441E55F500BB /* RDEPUBPageMapReconciliationCoordinator.swift in Sources */, + 58571B37B421D30C46E60547A3F572C4 /* RDEPUBPageResolver.swift in Sources */, + F33B238CDBEAE3BA81136D519B27483A /* RDEPUBPaginationCacheCoordinator.swift in Sources */, + 112DBB191F130CA6D495E71077A80009 /* RDEPUBPaginationModels.swift in Sources */, + B61F165888A356AF744580232D727A20 /* RDEPUBPaginator.swift in Sources */, + F0CC9ADA3DC9C7D3780646C7B31BBBDC /* RDEPUBParser.swift in Sources */, + 382705D8475B9DBFAAD8B20BC386F2CF /* RDEPUBParser+Archive.swift in Sources */, + 28E2212F4B36A12943E74DD92D67A7A8 /* RDEPUBParser+Package.swift in Sources */, + 2B2EEB3514D2D3BF37F8BCA6CC781B4D /* RDEPUBParser+ReadingProfile.swift in Sources */, + 34539BC8F7E91B2997308C21E0B12120 /* RDEPUBParser+Resources.swift in Sources */, + 56EE6779284C6A7868A1AF9F8462EB79 /* RDEPUBParser+TOC.swift in Sources */, + 4A0183DE2E5E4464957883E97CB91EC7 /* RDEPUBPreferences.swift in Sources */, + E90131918E21F84D6E5CBFA20E27E5ED /* RDEPUBPresentationRuntime.swift in Sources */, + 4C317DFF96CA0063EF6CF687527431CC /* RDEPUBPublication.swift in Sources */, + B88D8C43A79A645555A6683A10D01258 /* RDEPUBReaderAnnotationCoordinator.swift in Sources */, + 631A75A5E333844E48AB0655E65E8619 /* RDEPUBReaderAssemblyCoordinator.swift in Sources */, + 490CDA6344D7BD1DA6B7D38EA5CCD199 /* RDEPUBReaderBottomToolView.swift in Sources */, + D402B6E51343FEA249C715ED3FC6689A /* RDEPUBReaderChapterListController.swift in Sources */, + 2E65C9632095C9EA0FA98EF1F5B21C27 /* RDEPUBReaderChromeCoordinator.swift in Sources */, + 6D7CDF15EC821BD18B9E6FFBDCF8C033 /* RDEPUBReaderConfiguration.swift in Sources */, + 7A23AEADBD4DD223D472D162A54A6789 /* RDEPUBReaderContext.swift in Sources */, + C31BEDEE98899BAF229DE4FE3F3FE1A5 /* RDEPUBReaderController.swift in Sources */, + 80A9DF9B66A59153F911FB540BB88DAD /* RDEPUBReaderController+AttachmentTooltip.swift in Sources */, + CAEFA4FFA33FD3C1DF8F288814B55054 /* RDEPUBReaderController+ContentDelegates.swift in Sources */, + 09B30CACFD89784529196FCA970E706F /* RDEPUBReaderController+DataSource.swift in Sources */, + D43F2636F9AEA19B2933A6C4B71E7D44 /* RDEPUBReaderController+ExternalLinks.swift in Sources */, + 508227AD9DDEBDCC5811DF5DFE4B72B8 /* RDEPUBReaderController+LocationResolution.swift in Sources */, + 1BC970E8467ECAEB1D53445CC11855A2 /* RDEPUBReaderController+PublicAPI.swift in Sources */, + 790C14D6DF0311FD4053970359D34649 /* RDEPUBReaderController+RenderSupport.swift in Sources */, + F50A5A2A8E51049641FDFEC90E76F1B9 /* RDEPUBReaderController+RuntimeBridge.swift in Sources */, + EFE445E56D466D8A8B40FD6BDE4CE778 /* RDEPUBReaderController+TableOfContents.swift in Sources */, + 095FB08EBCD23A3E4A12955EBD443C79 /* RDEPUBReaderDelegate.swift in Sources */, + 240BD2C5D299C399725B5F227F313D46 /* RDEPUBReaderDependencies.swift in Sources */, + 40DD9B73CA10C5AE995E85263A325144 /* RDEPUBReaderEnvironment.swift in Sources */, + 2B008846F9C2624D2A913AE6ED869A2B /* RDEPUBReaderHighlightsViewController.swift in Sources */, + 6CAA09C46E273F8880234AA28B07542B /* RDEPUBReaderLoadCoordinator.swift in Sources */, + 71AA63D206360F5BEC6B89C738C192F3 /* RDEPUBReaderLocationCoordinator.swift in Sources */, + E85C78871193D79CF936573FC5F1136B /* RDEPUBReaderPaginationCoordinator.swift in Sources */, + 22D04776C5F0F8CB8DDAC334EAA4FCF3 /* RDEPUBReaderPersistence.swift in Sources */, + 91CF281A86EC3D57E8E4D5B5988D7D45 /* RDEPUBReaderRuntime.swift in Sources */, + B5D0238A617645F81C5604A014065B3F /* RDEPUBReaderSearchBarView.swift in Sources */, + 2C5CD798B8403E020FEDADEBC8D5AAE9 /* RDEPUBReaderSearchCoordinator.swift in Sources */, + EAF560B47F3FBA36DB7C1690D2155C24 /* RDEPUBReaderServices.swift in Sources */, + 07102A5412AC8C8BA0812CF5F0F77C23 /* RDEPUBReaderSettings.swift in Sources */, + C760D0A16A9A1F449A81EC7B91766E3A /* RDEPUBReaderSettingsViewController.swift in Sources */, + C018E6B3B58F3C3537511ED0EE553A94 /* RDEPUBReaderState.swift in Sources */, + B178C87ED370EA79E30224072DDD026B /* RDEPUBReaderTableOfContentsItem.swift in Sources */, + CE60D90670F8D3049025C34F2CA4A172 /* RDEPUBReaderTheme.swift in Sources */, + 166B717008CCE1407B5319095FB04439 /* RDEPUBReaderToolView.swift in Sources */, + 5BF5ECEFD1384679A310688AFC7160C9 /* RDEPUBReaderTopToolView.swift in Sources */, + 4B308D78F9D167B58BDD5695045F7756 /* RDEPUBReaderUIState.swift in Sources */, + A305D671B126FEC47981A8F62D0DAE9E /* RDEPUBReaderViewportMonitor.swift in Sources */, + BE6A7554B48972B5D4EF22028274696E /* RDEPUBReadingLocationModels.swift in Sources */, + DDBA184A2654FDBC731798EF79052111 /* RDEPUBReadingSession.swift in Sources */, + 2AAB6A070A5D84CF783783F2084187EB /* RDEPUBRenderDiagnosticsCollector.swift in Sources */, + B509E539D0E9DD3A7E1CBF4E87518C2A /* RDEPUBRenderRequest.swift in Sources */, + B9E5CDDBF46CDA23D5D282EFDB6456BA /* RDEPUBResourceResolver.swift in Sources */, + 8C154F19B995AAAF0BCB771F5CC3A906 /* RDEPUBResourceURLSchemeHandler.swift in Sources */, + D5C798C8EC872BADE62917619D1DF400 /* RDEPUBRuntimeChapter.swift in Sources */, + 53D4340F38B1EAF75FD1534AE908A11E /* RDEPUBRuntimePageCount.swift in Sources */, + A12DBBB039A09A7F1BB62E384E41E190 /* RDEPUBSafeArea.swift in Sources */, + E6E0FEA82C76D2AD4209048886206854 /* RDEPUBSearchEngine.swift in Sources */, + 4523590069A7CFC158A4A7DE4571B4B9 /* RDEPUBSearchModels.swift in Sources */, + CE737F28C68393FDC49DD943ADB95015 /* RDEPUBSelectionLoupeView.swift in Sources */, + 5856C4A656C1EAD5559B96C283308910 /* RDEPUBSelectionOverlayView.swift in Sources */, + 83A5346560A82E6CA50BCC12E8D76FBB /* RDEPUBSelectionState.swift in Sources */, + 8FCBD7D14FE4C1CF881E0DC8EB0EDD75 /* RDEPUBSemanticMarkerInjector.swift in Sources */, + 6D4144C4D4DF772F31A8362BB63252A8 /* RDEPUBStyleCompatibilityModels.swift in Sources */, + 3B192524D86C6ABC91B555608D15C668 /* RDEPUBStyleSheetBuilder.swift in Sources */, + FF183068DF62B1D2A61F46EA03A88FCB /* RDEPUBStyleSheetComposer.swift in Sources */, + 9ABA0CB256F84F56B971D4EAA8019C9A /* RDEPUBTextAnchor.swift in Sources */, + 932899B4CB64E52B2764F095C3923F1D /* RDEPUBTextAnnotationOverlay.swift in Sources */, + 8CF6E628158B190D0FFEF62AF059FD12 /* RDEPUBTextBookBuilder.swift in Sources */, + CC11A163D3F74290FE540D1BBAA9C518 /* RDEPUBTextBookCache.swift in Sources */, + 476C43CF774C35C590EB31D941DBFC0C /* RDEPUBTextBookModels.swift in Sources */, + 923002983AC3675E5D249839481F6DDC /* RDEPUBTextBuildPipelineInterfaces.swift in Sources */, + 8AFC5D133F47D2D83D972F007FB5E975 /* RDEPUBTextContentInteractionCoordinator.swift in Sources */, + CDE3205D4F1E8D99CE2BE54F2505133F /* RDEPUBTextContentView.swift in Sources */, + B662098EC7A098D0BF449F33D06B22F1 /* RDEPUBTextIndexTable.swift in Sources */, + 75D6249689F5C1F38EBF86A5D5C1490D /* RDEPUBTextLayouter.swift in Sources */, + B553EE0E95DCEDE9EE2738F649F197DB /* RDEPUBTextLayoutFrame.swift in Sources */, + DB584734160C920EAC6C819D8F05CA23 /* RDEPUBTextPageDecorationView.swift in Sources */, + 93760CA1B3EB5AD5D859FBFB7B7F5757 /* RDEPUBTextPageRenderView.swift in Sources */, + B3AC4D5487C5FEFFBEF018ABF5F4800A /* RDEPUBTextPaginationInterfaces.swift in Sources */, + 79CDB0BF339D6E5BF3D168BBED6553FD /* RDEPUBTextPaginationSupport.swift in Sources */, + 041DF6ADC6BC49651B1D25241076C947 /* RDEPUBTextPerformanceSampler.swift in Sources */, + 999817CC2779F3811583CDAA23A26213 /* RDEPUBTextPositionConverter.swift in Sources */, + 26EEB00355253DED239D675F0DA12E46 /* RDEPUBTextRenderer.swift in Sources */, + 416A7BBE1A28D974E1CEA60B22420031 /* RDEPUBTextRendererSupport.swift in Sources */, + AF6CFED7C7CF1B8D9384BCE97D1DF7D9 /* RDEPUBTextSearchEngine.swift in Sources */, + A7CE2EB98E19E07AB9B917415ACDF380 /* RDEPUBTextSelectionController.swift in Sources */, + 63DE1ECD08743BC4A556ACA90FDB4BAD /* RDEPUBTypesettingPipeline.swift in Sources */, + 118AB54026EBE9D225066649DE548A7D /* RDEPUBViewportTypes.swift in Sources */, + 28F019DEE9E4CE70EEF128BCFDF3AD81 /* RDEPUBWebContentView.swift in Sources */, + A26C8915823F92017865B00FC0F16B22 /* RDEPUBWebDecorationOverlayView.swift in Sources */, + 279D463D1EAD8ABD6654EF919B9D8F06 /* RDEPUBWebView.swift in Sources */, + DB860EFC2F1DB67CE1160CEEAA78FB57 /* RDEPUBWebView+Configuration.swift in Sources */, + 7DD3E3DDBF44D68361F090E0EB4B0737 /* RDEPUBWebView+FixedLayout.swift in Sources */, + DA090B9ED29C67FCC620AAE26A6DFC2A /* RDEPUBWebView+JavaScriptBridge.swift in Sources */, + ABB6259EA3066E7A829C17510410F5A1 /* RDEPUBWebView+Reflowable.swift in Sources */, + 08E9FC7DEE3A8A6347C38CDDE34F0102 /* RDEPUBWebView+Search.swift in Sources */, + 275DD4A76FB5411D0063B35878480D1F /* RDEPUBWebViewDebug.swift in Sources */, + 9F03124BA4BCE5C24E3E2B879205DF47 /* RDPlainTextBookBuilder.swift in Sources */, + D299C2B1A237A61C7DDE0C52371D0AAB /* RDReaderContentCell.swift in Sources */, + 0CF68C435484E592181D2666B7661988 /* RDReaderFlowLayout.swift in Sources */, + B3D89EAA9B5A3729A4BD440B66A36F4B /* RDReaderGestureController.swift in Sources */, + DBBA4E0A5CC421EEDAB45FDBF7A90906 /* RDReaderPageChildViewController.swift in Sources */, + 3A4AE693C64AC6FC51F627954661289C /* RDReaderPagingController.swift in Sources */, + 8E85166218F63FF359E769813A2444C6 /* RDReaderPreloadController.swift in Sources */, + 415EF47917ED52680E29DAC90B4C110A /* RDReaderSpreadResolver.swift in Sources */, + F580E10ABA4F035DD6C016EF8E917F2C /* RDReaderTapRegionHandler.swift in Sources */, + 18D8C814B264B9DA4BC897F587005B3E /* RDReaderView.swift in Sources */, + 6F9A6FA6D8D87257F9426AF3E118F7E0 /* RDReaderView+CollectionView.swift in Sources */, + 188C43C05E6BB8EB5DD88514568913DF /* RDReaderView+ContentAccess.swift in Sources */, + 7A748D28C60A0065C777DE834CA1B5A7 /* RDReaderView+PageCurl.swift in Sources */, + 465616864A71819A08EE6637652A11D5 /* RDReaderView+ToolView.swift in Sources */, + B35EC704CCE46CFDFE734E94643B89CA /* RDReaderView-dummy.m in Sources */, + DDE3BF42B0D4938C6E1B125885F69A35 /* RDReaderViewProtocols.swift in Sources */, + E8E67096ED90348922DD8A3D1E4B92B6 /* RDURLReaderController.swift in Sources */, + BA83048DCDDD496C26B492BD891FC411 /* String+RDEPUB.swift in Sources */, + 9E85C29B5E66B3CBDA79C8C04770B169 /* UIColor+RDEPUB.swift in Sources */, + C5BE7B683B2F31C0DFD21809C17FEAD2 /* UIColor+RDEPUBHex.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + CBE49EE63AF0F9347CE685FF36B1D2E6 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + AEA089F602E66B4E0CB655D1BF625880 /* DTActivityTitleView.m in Sources */, + 0EBABF6BEEA7615626818E066C16AF18 /* DTAnimatedGIF.m in Sources */, + 58ACB3DC0AC4EA63B6DC65585DC75509 /* DTBase64Coding.m in Sources */, + 8E1DC7355706F3565B8A0B38A59AAED9 /* DTBlockFunctions.m in Sources */, + B0984EA45A82B8CF021C4BA7CE6B2473 /* DTCoreGraphicsUtils.m in Sources */, + EACD47B345480FC9DE37F1BBEBC3E6E8 /* DTCustomColoredAccessory.m in Sources */, + 7F9B8AAB4623E3CC58C37D8EBFF514B4 /* DTExtendedFileAttributes.m in Sources */, + 4701EA34789A6B21772EC0B428C8CEF5 /* DTFolderMonitor.m in Sources */, + 9914ED7075FAF9F04BB3C4154952C9B9 /* DTFoundation-dummy.m in Sources */, + 458D53C484D2470508819D1D41376EE7 /* DTFoundationConstants.m in Sources */, + 4B58554A575684981F3BB1A6F90E4124 /* DTHTMLParser.m in Sources */, + 5966F7524564265D493279F72B6BEF10 /* DTLog.m in Sources */, + EC2221DF39BF4ABE42B4D74B98EE26BD /* DTPieProgressIndicator.m in Sources */, + E5B7FC56FA951AD4542B3EC0EBB7C6A6 /* DTSmartPagingScrollView.m in Sources */, + 0BF855C140122F5D1D410BA83E44DD50 /* DTTiledLayerWithoutFade.m in Sources */, + 0C798C4A69D1C2F7DD26AD589C05F260 /* DTVersion.m in Sources */, + 859B45A8A4A1B9FBEB3002EE8BEE46E1 /* NSArray+DTError.m in Sources */, + 792ACF8BA7BA68E9534E4B8D095690D6 /* NSData+DTCrypto.m in Sources */, + 191F106462110C3B72DC586D721BEB57 /* NSDictionary+DTError.m in Sources */, + 8329F87853CB379C84A455A9C72F0E97 /* NSFileWrapper+DTCopying.m in Sources */, + A43DAC6C9656DF7A74DCC11AB44433B5 /* NSMutableArray+DTMoving.m in Sources */, + 32844568EDF13978B21D3A12652DD1E9 /* NSString+DTFormatNumbers.m in Sources */, + 8ABB70BC85808639BE2820ED576705EF /* NSString+DTPaths.m in Sources */, + AF5E584EB1F14EC57A5DC51D5CD93FF2 /* NSString+DTURLEncoding.m in Sources */, + 74794205BE245B73D21939B91C6191C6 /* NSString+DTUtilities.m in Sources */, + B21AC2FBB25F091A5AE9A0602A9F4937 /* NSURL+DTAppLinks.m in Sources */, + A633C89374604FFFE5119DA09B8C5088 /* NSURL+DTComparing.m in Sources */, + 65957BA854E8610EA216E8323B136C5B /* NSURL+DTUnshorten.m in Sources */, + 3A5317D34FDA7B91C27C6CA5BEFFB7B3 /* UIApplication+DTNetworkActivity.m in Sources */, + 892B8712F2112DDFA6619A0913DE30B3 /* UIImage+DTFoundation.m in Sources */, + 3A14E77E5539416CB3616992AE1908EE /* UIScreen+DTFoundation.m in Sources */, + 0F5153F35326C04F32AC77F5FEB668A5 /* UIView+DTFoundation.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + E2564DACE65641E8E29BD319EBBDA772 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 16B7824735E1261E1F14697461BAEF56 /* Archive.swift in Sources */, + 606B416E975EF1F02EFC8945656B7C28 /* Archive+BackingConfiguration.swift in Sources */, + 4037C1C90ECAA2029911262DA5ACF321 /* Archive+Deprecated.swift in Sources */, + 8FFDDFA77ACE0DCC142C857189E867C7 /* Archive+Helpers.swift in Sources */, + 14A68E9E3880E51FBA491021429E40B7 /* Archive+MemoryFile.swift in Sources */, + D1744173283F238280FBFDFA6FAC791A /* Archive+Progress.swift in Sources */, + 7C2173CC58496721A7DCDCBC31840068 /* Archive+Reading.swift in Sources */, + C1C04AC61695CB3E392C98A66F8C78F0 /* Archive+ReadingDeprecated.swift in Sources */, + 244078AD98E31B83FD032D370F549ED8 /* Archive+Writing.swift in Sources */, + 0C0FD53B17B17CC557667AE50CE8A86B /* Archive+WritingDeprecated.swift in Sources */, + 96004CF12BD7134A79FA77102546C620 /* Archive+ZIP64.swift in Sources */, + B0AA422A606376E1DE651B23D3849CAD /* Data+Compression.swift in Sources */, + 1D25B72B2C7F472F87A66B5754B9F756 /* Data+CompressionDeprecated.swift in Sources */, + FFB1EA7B10054C49F85A561AF4A8D94B /* Data+Serialization.swift in Sources */, + D2F1AEC45494E9E795B6D06C06FC0E61 /* Date+ZIP.swift in Sources */, + D512CC6A4C2AF2DE2B950125BD900706 /* Entry.swift in Sources */, + 40FD1F3E37657243BDB8B6F651B94C26 /* Entry+Serialization.swift in Sources */, + 1F66D9C63831F3D2D103D49FCAF87DB3 /* Entry+ZIP64.swift in Sources */, + 591C7326E09322733574F5D607BDDFF7 /* FileManager+ZIP.swift in Sources */, + 24E9A646A1B686FD9C6F696E203C19C8 /* FileManager+ZIPDeprecated.swift in Sources */, + 0758EE7A9DEC9BD31DCDAC2CFB03D837 /* URL+ZIP.swift in Sources */, + 400C60DBDB9C174EAEF5D5D6C5E3497E /* ZIPFoundation-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2626,86 +2630,107 @@ /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - 19D46876B89FB1A6965AA89784447800 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = DTFoundation; - target = 8F6E5A5BF72D62CDFD25F91A7CFA3309 /* DTFoundation */; - targetProxy = A392AC630ADF96D856B6EEBAAD3FFB9D /* PBXContainerItemProxy */; - }; - 299D0A928127A948539B11F0E0B15456 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = RDReaderView; - target = AA2E57587AA8EECA63C4BE08EA3CB6D2 /* RDReaderView */; - targetProxy = 618E065085B263D2E1799C600289EB6E /* PBXContainerItemProxy */; - }; - 2C9655F6B4C89F32E587FAF115EE03CC /* PBXTargetDependency */ = { + 0CC9636CCC44B21535D59D6DAD5F924F /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = "RDReaderView-RDReaderViewAssets"; target = AE7F393FB7805DE2664AB4111873F907 /* RDReaderView-RDReaderViewAssets */; - targetProxy = 4C44EA9D067E5F15FC4C82C5DCEFF85E /* PBXContainerItemProxy */; + targetProxy = 99F356F4CC2B773149744B1DE33A5ED9 /* PBXContainerItemProxy */; }; - 44A8C88A6520712D971ECCF7DB5E0E91 /* PBXTargetDependency */ = { + 3FB21ADA3E76890812FD8995D638D0B3 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = ZIPFoundation; target = AA15C8469D67684160CC2A7098EB841C /* ZIPFoundation */; - targetProxy = 95D435994BF2E09ED48E93B3EA046E5D /* PBXContainerItemProxy */; + targetProxy = 74636C5DF9567077F30C787E0823DE39 /* PBXContainerItemProxy */; }; - B3C1D0229D855B8FC4690EBB7A414FB4 /* PBXTargetDependency */ = { + 448B8ED7B8C073D9859C5970102E1961 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = RDReaderView; + target = AA2E57587AA8EECA63C4BE08EA3CB6D2 /* RDReaderView */; + targetProxy = 1756F289E5867FF7989F61502D8E61E6 /* PBXContainerItemProxy */; + }; + 4D6AACC2BB50A205D880B6E1DE55515F /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = DTFoundation; target = 8F6E5A5BF72D62CDFD25F91A7CFA3309 /* DTFoundation */; - targetProxy = 077B82F75DD704BB3F3D60FB9454BDD5 /* PBXContainerItemProxy */; + targetProxy = 291EF29F5CECA009529D76F9FE26B4B9 /* PBXContainerItemProxy */; }; - BA8CD293AA300B9562123D41D99696A6 /* PBXTargetDependency */ = { + 7214D8724950769514A63401878B7871 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = DTCoreText; target = B88F4EA0695B6B3165C64594850D72C7 /* DTCoreText */; - targetProxy = 782CA4FFE40915340FFE27E8241A14BF /* PBXContainerItemProxy */; + targetProxy = B1FC0CCED6BCAC632379DDDD199C72EA /* PBXContainerItemProxy */; }; - BC0C832BFCF4B79EDEB1C3C754A7C7D0 /* PBXTargetDependency */ = { + 8F7656822B7E5947D8BBA072A5C324B6 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = ZIPFoundation; target = AA15C8469D67684160CC2A7098EB841C /* ZIPFoundation */; - targetProxy = A5D83DA5C53D3731426918AC75105BE3 /* PBXContainerItemProxy */; + targetProxy = 1D36C48BC78E85DBB1B5B5C63364A539 /* PBXContainerItemProxy */; }; - C5C00D86AEC14371CD6BAB279ABDA2DA /* PBXTargetDependency */ = { + 9FC3DD151917F4600168200308C8CFB2 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = DTCoreText; target = B88F4EA0695B6B3165C64594850D72C7 /* DTCoreText */; - targetProxy = 7E334ACAA496278856830A5E289D889E /* PBXContainerItemProxy */; + targetProxy = C8DB32812641B809F4A0DAC443C5EAA0 /* PBXContainerItemProxy */; }; - D95FDC45550F21721EF8EB81A91A8851 /* PBXTargetDependency */ = { + D8157DC8FC37E09A97E69270B47BD42C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = DTFoundation; + target = 8F6E5A5BF72D62CDFD25F91A7CFA3309 /* DTFoundation */; + targetProxy = CEF5C9FADEA582571424EA2F8593ACD3 /* PBXContainerItemProxy */; + }; + D93D69DEA20A22DCC34A44F20BCB6886 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = "ZIPFoundation-ZIPFoundation_Privacy"; target = C7A8D82E407CD3FDC3BA55CEE519B252 /* ZIPFoundation-ZIPFoundation_Privacy */; - targetProxy = 9FCD52B645EFFA5837720169D29D5E80 /* PBXContainerItemProxy */; + targetProxy = 3AEFBA1AE6539AC7A3DA5FA7CF3F7885 /* PBXContainerItemProxy */; }; - E3A26D30EFCE6A679CA0B908152DAC48 /* PBXTargetDependency */ = { + DEA55EBE6C71C231E96349A3450C0332 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = "DTCoreText-Resources"; target = 0C24CB0E87A728A11AA1124CB360D6A1 /* DTCoreText-Resources */; - targetProxy = 0D040B1696E237AC90129FBF5F045668 /* PBXContainerItemProxy */; + targetProxy = 7AD1BAAD6E745A14A9201807DB7B6F66 /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ - 15FF297429104A191E653936DE4614E2 /* Release */ = { + 02B34FA52040002D4460D86AA5DF0EC8 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 7A13F9221A300A89F9F8D0A2AB1794BF /* DTCoreText.release.xcconfig */; + baseConfigurationReference = 85E8DA9DE1F796F12171763D20CBAF27 /* DTFoundation.debug.xcconfig */; buildSettings = { - CODE_SIGNING_ALLOWED = NO; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/DTCoreText"; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_MODULE_VERIFIER = NO; ENABLE_USER_SCRIPT_SANDBOXING = NO; - IBSC_MODULE = DTCoreText; - INFOPLIST_FILE = "Target Support Files/DTCoreText/ResourceBundle-Resources-DTCoreText-Info.plist"; + GCC_PREFIX_HEADER = "Target Support Files/DTFoundation/DTFoundation-prefix.pch"; + GENERATE_INFOPLIST_FILE = NO; + INFOPLIST_FILE = "Target Support Files/DTFoundation/DTFoundation-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 15.6; - PRODUCT_NAME = Resources; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MODULEMAP_FILE = "Target Support Files/DTFoundation/DTFoundation.modulemap"; + PRODUCT_MODULE_NAME = DTFoundation; + PRODUCT_NAME = DTFoundation; SDKROOT = iphoneos; SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_INSTALL_OBJC_HEADER = YES; + SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; - WRAPPER_EXTENSION = bundle; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; }; - name = Release; + name = Debug; }; 1DBA69CFBAB5965CF41704A7A4699A8A /* Debug */ = { isa = XCBuildConfiguration; @@ -2746,9 +2771,9 @@ }; name = Debug; }; - 2524D81FD8B66F8F5BB1E875FAF2C3FF /* Release */ = { + 29267446C8B2769BCE4FD31F3B85F9E2 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 7503926237A4785CCB864B2BCD1F4C2B /* DTFoundation.release.xcconfig */; + baseConfigurationReference = 55CA6158EBEFCD459EB481660A12EB86 /* RDReaderView.release.xcconfig */; buildSettings = { CLANG_ENABLE_OBJC_WEAK = NO; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -2761,9 +2786,9 @@ DYLIB_INSTALL_NAME_BASE = "@rpath"; ENABLE_MODULE_VERIFIER = NO; ENABLE_USER_SCRIPT_SANDBOXING = NO; - GCC_PREFIX_HEADER = "Target Support Files/DTFoundation/DTFoundation-prefix.pch"; + GCC_PREFIX_HEADER = "Target Support Files/RDReaderView/RDReaderView-prefix.pch"; GENERATE_INFOPLIST_FILE = NO; - INFOPLIST_FILE = "Target Support Files/DTFoundation/DTFoundation-Info.plist"; + INFOPLIST_FILE = "Target Support Files/RDReaderView/RDReaderView-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 15.6; LD_RUNPATH_SEARCH_PATHS = ( @@ -2771,14 +2796,14 @@ "@executable_path/Frameworks", "@loader_path/Frameworks", ); - MODULEMAP_FILE = "Target Support Files/DTFoundation/DTFoundation.modulemap"; - PRODUCT_MODULE_NAME = DTFoundation; - PRODUCT_NAME = DTFoundation; + MODULEMAP_FILE = "Target Support Files/RDReaderView/RDReaderView.modulemap"; + PRODUCT_MODULE_NAME = RDReaderView; + PRODUCT_NAME = RDReaderView; SDKROOT = iphoneos; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; SWIFT_INSTALL_OBJC_HEADER = YES; - SWIFT_VERSION = 5.0; + SWIFT_VERSION = 5.10; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; @@ -2786,17 +2811,17 @@ }; name = Release; }; - 388ABD240C101381EFBFFDFFB8E71CFB /* Release */ = { + 2C71F2C660C40EA12978829B61992376 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 766227355308600EFC048F797274454A /* ZIPFoundation.release.xcconfig */; + baseConfigurationReference = 7A13F9221A300A89F9F8D0A2AB1794BF /* DTCoreText.release.xcconfig */; buildSettings = { CODE_SIGNING_ALLOWED = NO; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/ZIPFoundation"; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/DTCoreText"; ENABLE_USER_SCRIPT_SANDBOXING = NO; - IBSC_MODULE = ZIPFoundation; - INFOPLIST_FILE = "Target Support Files/ZIPFoundation/ResourceBundle-ZIPFoundation_Privacy-ZIPFoundation-Info.plist"; + IBSC_MODULE = DTCoreText; + INFOPLIST_FILE = "Target Support Files/DTCoreText/ResourceBundle-Resources-DTCoreText-Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 15.6; - PRODUCT_NAME = ZIPFoundation_Privacy; + PRODUCT_NAME = Resources; SDKROOT = iphoneos; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; @@ -2804,24 +2829,6 @@ }; name = Release; }; - 38F26975406F3306CA386A6895730D0A /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 79D13938A04579CD1E9E042A39CC4D86 /* ZIPFoundation.debug.xcconfig */; - buildSettings = { - CODE_SIGNING_ALLOWED = NO; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/ZIPFoundation"; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - IBSC_MODULE = ZIPFoundation; - INFOPLIST_FILE = "Target Support Files/ZIPFoundation/ResourceBundle-ZIPFoundation_Privacy-ZIPFoundation-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 15.6; - PRODUCT_NAME = ZIPFoundation_Privacy; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - WRAPPER_EXTENSION = bundle; - }; - name = Debug; - }; 44A4B2FB6211B90C1949A44A381F6D1F /* Release */ = { isa = XCBuildConfiguration; buildSettings = { @@ -2885,121 +2892,7 @@ }; name = Release; }; - 5143437B47FD89476FCD808982490792 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 78EB9889508A20E866AC37B22D441FC4 /* RDReaderView.release.xcconfig */; - buildSettings = { - CODE_SIGNING_ALLOWED = NO; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/RDReaderView"; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - IBSC_MODULE = RDReaderView; - INFOPLIST_FILE = "Target Support Files/RDReaderView/ResourceBundle-RDReaderViewAssets-RDReaderView-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 15.6; - PRODUCT_NAME = RDReaderViewAssets; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - WRAPPER_EXTENSION = bundle; - }; - name = Release; - }; - 62FCE98EDB06FB15524D313F85827664 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 79D13938A04579CD1E9E042A39CC4D86 /* ZIPFoundation.debug.xcconfig */; - buildSettings = { - CLANG_ENABLE_OBJC_WEAK = NO; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_MODULE_VERIFIER = NO; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - GCC_PREFIX_HEADER = "Target Support Files/ZIPFoundation/ZIPFoundation-prefix.pch"; - GENERATE_INFOPLIST_FILE = NO; - INFOPLIST_FILE = "Target Support Files/ZIPFoundation/ZIPFoundation-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 15.6; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MODULEMAP_FILE = "Target Support Files/ZIPFoundation/ZIPFoundation.modulemap"; - PRODUCT_MODULE_NAME = ZIPFoundation; - PRODUCT_NAME = ZIPFoundation; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_INSTALL_OBJC_HEADER = YES; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - 67C81F4D0EE1C713345A96B80FF6AF41 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 38EFC4374585F70CA0057C2B93243BDB /* RDReaderView.debug.xcconfig */; - buildSettings = { - CODE_SIGNING_ALLOWED = NO; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/RDReaderView"; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - IBSC_MODULE = RDReaderView; - INFOPLIST_FILE = "Target Support Files/RDReaderView/ResourceBundle-RDReaderViewAssets-RDReaderView-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 15.6; - PRODUCT_NAME = RDReaderViewAssets; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - WRAPPER_EXTENSION = bundle; - }; - name = Debug; - }; - 818CFB0EE79845F4608AF6AE4E2F2CA7 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 38EFC4374585F70CA0057C2B93243BDB /* RDReaderView.debug.xcconfig */; - buildSettings = { - CLANG_ENABLE_OBJC_WEAK = NO; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_MODULE_VERIFIER = NO; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - GCC_PREFIX_HEADER = "Target Support Files/RDReaderView/RDReaderView-prefix.pch"; - GENERATE_INFOPLIST_FILE = NO; - INFOPLIST_FILE = "Target Support Files/RDReaderView/RDReaderView-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 15.6; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MODULEMAP_FILE = "Target Support Files/RDReaderView/RDReaderView.modulemap"; - PRODUCT_MODULE_NAME = RDReaderView; - PRODUCT_NAME = RDReaderView; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_INSTALL_OBJC_HEADER = YES; - SWIFT_VERSION = 5.10; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - 86DD9513441B4DC038FABDEA3F15E324 /* Release */ = { + 6D053F2407C81C5592CBEF0836CA84BD /* Release */ = { isa = XCBuildConfiguration; baseConfigurationReference = 766227355308600EFC048F797274454A /* ZIPFoundation.release.xcconfig */; buildSettings = { @@ -3039,24 +2932,6 @@ }; name = Release; }; - 950B7FB12FFF341A15D16DF57974FDEF /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = C0DCB00F0B62D7DBE628D2B5FF006E93 /* DTCoreText.debug.xcconfig */; - buildSettings = { - CODE_SIGNING_ALLOWED = NO; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/DTCoreText"; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - IBSC_MODULE = DTCoreText; - INFOPLIST_FILE = "Target Support Files/DTCoreText/ResourceBundle-Resources-DTCoreText-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 15.6; - PRODUCT_NAME = Resources; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - WRAPPER_EXTENSION = bundle; - }; - name = Debug; - }; A0DC1C2C814704734F83EAB35BB20B21 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -3203,9 +3078,63 @@ }; name = Debug; }; - B67B5F10B54A8C30229274A6F866A131 /* Debug */ = { + B515FF966B785B439AC3152287D2119A /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 85E8DA9DE1F796F12171763D20CBAF27 /* DTFoundation.debug.xcconfig */; + baseConfigurationReference = 9F8BA45FA0D8E3CBAAE6E18272EB0644 /* RDReaderView.debug.xcconfig */; + buildSettings = { + CODE_SIGNING_ALLOWED = NO; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/RDReaderView"; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + IBSC_MODULE = RDReaderView; + INFOPLIST_FILE = "Target Support Files/RDReaderView/ResourceBundle-RDReaderViewAssets-RDReaderView-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 15.6; + PRODUCT_NAME = RDReaderViewAssets; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + WRAPPER_EXTENSION = bundle; + }; + name = Debug; + }; + BA59167D644A3C4695666149AEAA5B74 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = C0DCB00F0B62D7DBE628D2B5FF006E93 /* DTCoreText.debug.xcconfig */; + buildSettings = { + CODE_SIGNING_ALLOWED = NO; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/DTCoreText"; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + IBSC_MODULE = DTCoreText; + INFOPLIST_FILE = "Target Support Files/DTCoreText/ResourceBundle-Resources-DTCoreText-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 15.6; + PRODUCT_NAME = Resources; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + WRAPPER_EXTENSION = bundle; + }; + name = Debug; + }; + C1F3FEC1FFE2528279D40A4E5DBC5574 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 766227355308600EFC048F797274454A /* ZIPFoundation.release.xcconfig */; + buildSettings = { + CODE_SIGNING_ALLOWED = NO; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/ZIPFoundation"; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + IBSC_MODULE = ZIPFoundation; + INFOPLIST_FILE = "Target Support Files/ZIPFoundation/ResourceBundle-ZIPFoundation_Privacy-ZIPFoundation-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 15.6; + PRODUCT_NAME = ZIPFoundation_Privacy; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + WRAPPER_EXTENSION = bundle; + }; + name = Release; + }; + C8081429AB52E4C6717E2332837D2512 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9F8BA45FA0D8E3CBAAE6E18272EB0644 /* RDReaderView.debug.xcconfig */; buildSettings = { CLANG_ENABLE_OBJC_WEAK = NO; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -3218,9 +3147,9 @@ DYLIB_INSTALL_NAME_BASE = "@rpath"; ENABLE_MODULE_VERIFIER = NO; ENABLE_USER_SCRIPT_SANDBOXING = NO; - GCC_PREFIX_HEADER = "Target Support Files/DTFoundation/DTFoundation-prefix.pch"; + GCC_PREFIX_HEADER = "Target Support Files/RDReaderView/RDReaderView-prefix.pch"; GENERATE_INFOPLIST_FILE = NO; - INFOPLIST_FILE = "Target Support Files/DTFoundation/DTFoundation-Info.plist"; + INFOPLIST_FILE = "Target Support Files/RDReaderView/RDReaderView-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 15.6; LD_RUNPATH_SEARCH_PATHS = ( @@ -3228,14 +3157,14 @@ "@executable_path/Frameworks", "@loader_path/Frameworks", ); - MODULEMAP_FILE = "Target Support Files/DTFoundation/DTFoundation.modulemap"; - PRODUCT_MODULE_NAME = DTFoundation; - PRODUCT_NAME = DTFoundation; + MODULEMAP_FILE = "Target Support Files/RDReaderView/RDReaderView.modulemap"; + PRODUCT_MODULE_NAME = RDReaderView; + PRODUCT_NAME = RDReaderView; SDKROOT = iphoneos; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; SWIFT_INSTALL_OBJC_HEADER = YES; - SWIFT_VERSION = 5.0; + SWIFT_VERSION = 5.10; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; @@ -3282,9 +3211,45 @@ }; name = Release; }; - E35F568DB5034B527C776EA84F168BAC /* Release */ = { + C9DE0560DFBF408865D51DB28D6EA1F8 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 78EB9889508A20E866AC37B22D441FC4 /* RDReaderView.release.xcconfig */; + baseConfigurationReference = 79D13938A04579CD1E9E042A39CC4D86 /* ZIPFoundation.debug.xcconfig */; + buildSettings = { + CODE_SIGNING_ALLOWED = NO; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/ZIPFoundation"; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + IBSC_MODULE = ZIPFoundation; + INFOPLIST_FILE = "Target Support Files/ZIPFoundation/ResourceBundle-ZIPFoundation_Privacy-ZIPFoundation-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 15.6; + PRODUCT_NAME = ZIPFoundation_Privacy; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + WRAPPER_EXTENSION = bundle; + }; + name = Debug; + }; + E7D1F89A6B9AACB2A9D0746C55CBBEFD /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 55CA6158EBEFCD459EB481660A12EB86 /* RDReaderView.release.xcconfig */; + buildSettings = { + CODE_SIGNING_ALLOWED = NO; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/RDReaderView"; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + IBSC_MODULE = RDReaderView; + INFOPLIST_FILE = "Target Support Files/RDReaderView/ResourceBundle-RDReaderViewAssets-RDReaderView-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 15.6; + PRODUCT_NAME = RDReaderViewAssets; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + WRAPPER_EXTENSION = bundle; + }; + name = Release; + }; + F7EBEE3D64F72FA0AF5C0EEC99CAACFA /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 79D13938A04579CD1E9E042A39CC4D86 /* ZIPFoundation.debug.xcconfig */; buildSettings = { CLANG_ENABLE_OBJC_WEAK = NO; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -3297,9 +3262,9 @@ DYLIB_INSTALL_NAME_BASE = "@rpath"; ENABLE_MODULE_VERIFIER = NO; ENABLE_USER_SCRIPT_SANDBOXING = NO; - GCC_PREFIX_HEADER = "Target Support Files/RDReaderView/RDReaderView-prefix.pch"; + GCC_PREFIX_HEADER = "Target Support Files/ZIPFoundation/ZIPFoundation-prefix.pch"; GENERATE_INFOPLIST_FILE = NO; - INFOPLIST_FILE = "Target Support Files/RDReaderView/RDReaderView-Info.plist"; + INFOPLIST_FILE = "Target Support Files/ZIPFoundation/ZIPFoundation-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 15.6; LD_RUNPATH_SEARCH_PATHS = ( @@ -3307,14 +3272,53 @@ "@executable_path/Frameworks", "@loader_path/Frameworks", ); - MODULEMAP_FILE = "Target Support Files/RDReaderView/RDReaderView.modulemap"; - PRODUCT_MODULE_NAME = RDReaderView; - PRODUCT_NAME = RDReaderView; + MODULEMAP_FILE = "Target Support Files/ZIPFoundation/ZIPFoundation.modulemap"; + PRODUCT_MODULE_NAME = ZIPFoundation; + PRODUCT_NAME = ZIPFoundation; SDKROOT = iphoneos; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; SWIFT_INSTALL_OBJC_HEADER = YES; - SWIFT_VERSION = 5.10; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + FC464F0C10CBA7214FA572E1F2B7B712 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7503926237A4785CCB864B2BCD1F4C2B /* DTFoundation.release.xcconfig */; + buildSettings = { + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_MODULE_VERIFIER = NO; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_PREFIX_HEADER = "Target Support Files/DTFoundation/DTFoundation-prefix.pch"; + GENERATE_INFOPLIST_FILE = NO; + INFOPLIST_FILE = "Target Support Files/DTFoundation/DTFoundation-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 15.6; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MODULEMAP_FILE = "Target Support Files/DTFoundation/DTFoundation.modulemap"; + PRODUCT_MODULE_NAME = DTFoundation; + PRODUCT_NAME = DTFoundation; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_INSTALL_OBJC_HEADER = YES; + SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; @@ -3334,24 +3338,6 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 106179E41DCBAFB020B0B998D50116F5 /* Build configuration list for PBXNativeTarget "DTFoundation" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - B67B5F10B54A8C30229274A6F866A131 /* Debug */, - 2524D81FD8B66F8F5BB1E875FAF2C3FF /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 3B41B7BCC37E0C0C09134B3AF4F26DF5 /* Build configuration list for PBXNativeTarget "ZIPFoundation" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 62FCE98EDB06FB15524D313F85827664 /* Debug */, - 86DD9513441B4DC038FABDEA3F15E324 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -3361,11 +3347,29 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 7AB227059EC1F8C7E624C1F5E7CAF900 /* Build configuration list for PBXNativeTarget "ZIPFoundation-ZIPFoundation_Privacy" */ = { + 797A74DE557B2312CDE4DDE7BA924EF3 /* Build configuration list for PBXNativeTarget "DTFoundation" */ = { isa = XCConfigurationList; buildConfigurations = ( - 38F26975406F3306CA386A6895730D0A /* Debug */, - 388ABD240C101381EFBFFDFFB8E71CFB /* Release */, + 02B34FA52040002D4460D86AA5DF0EC8 /* Debug */, + FC464F0C10CBA7214FA572E1F2B7B712 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 867CF60047164719C3D4ED41F2FD855D /* Build configuration list for PBXNativeTarget "RDReaderView-RDReaderViewAssets" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + B515FF966B785B439AC3152287D2119A /* Debug */, + E7D1F89A6B9AACB2A9D0746C55CBBEFD /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 93A78DDD7C59F62735C4CF878C3F3EF3 /* Build configuration list for PBXNativeTarget "DTCoreText-Resources" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BA59167D644A3C4695666149AEAA5B74 /* Debug */, + 2C71F2C660C40EA12978829B61992376 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -3379,29 +3383,29 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - E678DBCAC7A96683BD91570AD2C81DB3 /* Build configuration list for PBXNativeTarget "RDReaderView-RDReaderViewAssets" */ = { + 9BC8D77A9E3B7D44D11B858D8DD3F3BC /* Build configuration list for PBXNativeTarget "ZIPFoundation" */ = { isa = XCConfigurationList; buildConfigurations = ( - 67C81F4D0EE1C713345A96B80FF6AF41 /* Debug */, - 5143437B47FD89476FCD808982490792 /* Release */, + F7EBEE3D64F72FA0AF5C0EEC99CAACFA /* Debug */, + 6D053F2407C81C5592CBEF0836CA84BD /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - E81710E3CF86077AD189173E6889CC82 /* Build configuration list for PBXNativeTarget "DTCoreText-Resources" */ = { + C25C391A750C0AE0170E901D1C4CBBEC /* Build configuration list for PBXNativeTarget "RDReaderView" */ = { isa = XCConfigurationList; buildConfigurations = ( - 950B7FB12FFF341A15D16DF57974FDEF /* Debug */, - 15FF297429104A191E653936DE4614E2 /* Release */, + C8081429AB52E4C6717E2332837D2512 /* Debug */, + 29267446C8B2769BCE4FD31F3B85F9E2 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - F839E10A0714CAFC9FF463B6099E2A0A /* Build configuration list for PBXNativeTarget "RDReaderView" */ = { + FB481FBBB624EE3598165EC63CFEC06E /* Build configuration list for PBXNativeTarget "ZIPFoundation-ZIPFoundation_Privacy" */ = { isa = XCConfigurationList; buildConfigurations = ( - 818CFB0EE79845F4608AF6AE4E2F2CA7 /* Debug */, - E35F568DB5034B527C776EA84F168BAC /* Release */, + C9DE0560DFBF408865D51DB28D6EA1F8 /* Debug */, + C1F3FEC1FFE2528279D40A4E5DBC5574 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; diff --git a/Sources/RDReaderView/EPUBCore/RDEPUBNavigatorLayoutContext.swift b/Sources/RDReaderView/EPUBCore/RDEPUBNavigatorLayoutContext.swift index 087b28b..085a37f 100644 --- a/Sources/RDReaderView/EPUBCore/RDEPUBNavigatorLayoutContext.swift +++ b/Sources/RDReaderView/EPUBCore/RDEPUBNavigatorLayoutContext.swift @@ -18,7 +18,7 @@ public struct RDEPUBNavigatorLayoutContext: Equatable { pagesPerScreen: Int = 1, safeAreaInsets: UIEdgeInsets = .zero, userInterfaceIdiom: UIUserInterfaceIdiom = .phone, - reflowableContentInsets: UIEdgeInsets = UIEdgeInsets(top: 40, left: 16, bottom: 40, right: 16) + reflowableContentInsets: UIEdgeInsets = RDEPUBSafeArea.defaultReflowableContentInsets() ) { self.containerSize = containerSize self.pagesPerScreen = max(1, pagesPerScreen) diff --git a/Sources/RDReaderView/EPUBCore/RDEPUBSafeArea.swift b/Sources/RDReaderView/EPUBCore/RDEPUBSafeArea.swift new file mode 100644 index 0000000..1a20c05 --- /dev/null +++ b/Sources/RDReaderView/EPUBCore/RDEPUBSafeArea.swift @@ -0,0 +1,67 @@ +import UIKit + +/// Device-level safe area lookup modeled after GKNavigationBarSwift. +/// Reads the real safe area from the key window so correct values are +/// available even before a view has been laid out in the hierarchy. +/// Must be called on the main thread. +public enum RDEPUBSafeArea { + + /// Minimum text margins applied when the device safe area on an edge is + /// smaller (e.g. no notch / no home indicator). These are aesthetic + /// paddings, not approximations of the safe area itself. + public static let minimumVerticalTextMargin: CGFloat = 20 + + public static let minimumHorizontalTextMargin: CGFloat = 16 + + public static func keyWindow() -> UIWindow? { + let scenes = UIApplication.shared.connectedScenes + .compactMap { $0 as? UIWindowScene } + if let window = scenes + .filter({ $0.activationState == .foregroundActive }) + .flatMap({ $0.windows }) + .first(where: { $0.isKeyWindow }) { + return window + } + if let window = scenes + .flatMap({ $0.windows }) + .first(where: { $0.isKeyWindow }) { + return window + } + return UIApplication.shared.delegate?.window ?? nil + } + + public static func insets() -> UIEdgeInsets { + if let window = keyWindow() { + return window.safeAreaInsets + } + // No key window yet (early launch): create a detached window to read + // the device safe area, same fallback as GKNavigationBarSwift. + let window = UIWindow(frame: UIScreen.main.bounds) + if window.safeAreaInsets.bottom <= 0 { + window.rootViewController = UIViewController() + } + return window.safeAreaInsets + } + + /// Prefers insets measured from a view already installed in the hierarchy; + /// falls back to the key-window insets when the view is not laid out yet + /// and reports .zero. + public static func resolve(_ measuredInsets: UIEdgeInsets?) -> UIEdgeInsets { + if let measuredInsets, measuredInsets != .zero { + return measuredInsets + } + return insets() + } + + /// Default reflowable content insets derived from the live device safe + /// area instead of hard-coded heights. + public static func defaultReflowableContentInsets() -> UIEdgeInsets { + let safe = insets() + return UIEdgeInsets( + top: max(safe.top, minimumVerticalTextMargin), + left: max(safe.left, minimumHorizontalTextMargin), + bottom: max(safe.bottom, minimumVerticalTextMargin), + right: max(safe.right, minimumHorizontalTextMargin) + ) + } +} diff --git a/Sources/RDReaderView/EPUBUI/RDURLReaderController.swift b/Sources/RDReaderView/EPUBUI/RDURLReaderController.swift index 6bb35a8..44de4d0 100644 --- a/Sources/RDReaderView/EPUBUI/RDURLReaderController.swift +++ b/Sources/RDReaderView/EPUBUI/RDURLReaderController.swift @@ -154,7 +154,7 @@ public final class RDURLReaderController: UIViewController { let bookTitle = bookURL.deletingPathExtension().lastPathComponent let pageSize = currentTextPageSize() let renderStyle = currentTextRenderStyle() - let safeInsets = view.safeAreaInsets + let safeInsets = RDEPUBSafeArea.resolve(view.safeAreaInsets) let edgeInsets = UIEdgeInsets( top: max(epubConfiguration.reflowableContentInsets.top, safeInsets.top), left: max(epubConfiguration.reflowableContentInsets.left, safeInsets.left), diff --git a/Sources/RDReaderView/EPUBUI/ReaderController/RDEPUBReaderContext.swift b/Sources/RDReaderView/EPUBUI/ReaderController/RDEPUBReaderContext.swift index 11ba88a..dea459a 100644 --- a/Sources/RDReaderView/EPUBUI/ReaderController/RDEPUBReaderContext.swift +++ b/Sources/RDReaderView/EPUBUI/ReaderController/RDEPUBReaderContext.swift @@ -163,7 +163,7 @@ final class RDEPUBReaderContext { } func currentPreferences() -> RDEPUBPreferences { - let safeInsets = controller?.view.safeAreaInsets ?? .zero + let safeInsets = RDEPUBSafeArea.resolve(controller?.view.safeAreaInsets) return configuration.makePreferences(safeAreaInsets: safeInsets) } diff --git a/Sources/RDReaderView/EPUBUI/ReaderController/RDEPUBReaderEnvironment.swift b/Sources/RDReaderView/EPUBUI/ReaderController/RDEPUBReaderEnvironment.swift index ea02800..11090df 100644 --- a/Sources/RDReaderView/EPUBUI/ReaderController/RDEPUBReaderEnvironment.swift +++ b/Sources/RDReaderView/EPUBUI/ReaderController/RDEPUBReaderEnvironment.swift @@ -47,7 +47,7 @@ final class RDEPUBReaderEnvironment { return RDEPUBNavigatorLayoutContext( containerSize: resolvedSize, pagesPerScreen: readerView?.pagesPerScreen ?? 1, - safeAreaInsets: controller?.view.safeAreaInsets ?? .zero, + safeAreaInsets: RDEPUBSafeArea.resolve(controller?.view.safeAreaInsets), userInterfaceIdiom: controller?.traitCollection.userInterfaceIdiom ?? .phone, reflowableContentInsets: configuration.reflowableContentInsets ) @@ -68,7 +68,7 @@ final class RDEPUBReaderEnvironment { configuration: RDEPUBReaderConfiguration, pageSize: CGSize ) -> RDEPUBTextLayoutConfig { - let safeAreaInsets = controller?.view.safeAreaInsets ?? .zero + let safeAreaInsets = RDEPUBSafeArea.resolve(controller?.view.safeAreaInsets) return RDEPUBTextLayoutConfig( frameWidth: max(pageSize.width, 1), frameHeight: max(pageSize.height, 1), diff --git a/Sources/RDReaderView/EPUBUI/Settings/RDEPUBReaderConfiguration.swift b/Sources/RDReaderView/EPUBUI/Settings/RDEPUBReaderConfiguration.swift index e111175..3c17ce9 100644 --- a/Sources/RDReaderView/EPUBUI/Settings/RDEPUBReaderConfiguration.swift +++ b/Sources/RDReaderView/EPUBUI/Settings/RDEPUBReaderConfiguration.swift @@ -109,7 +109,7 @@ public struct RDEPUBReaderConfiguration: Equatable { showsTableOfContents: Bool = true, allowsHighlights: Bool = true, showsSettingsPanel: Bool = true, - reflowableContentInsets: UIEdgeInsets = UIEdgeInsets(top: 40, left: 16, bottom: 40, right: 16), + reflowableContentInsets: UIEdgeInsets = RDEPUBSafeArea.defaultReflowableContentInsets(), fixedContentInset: UIEdgeInsets = .zero, theme: RDEPUBReaderTheme = .light, darkImageAdjustmentEnabled: Bool = true, @@ -172,11 +172,13 @@ extension RDEPUBReaderConfiguration { func makePreferences(safeAreaInsets: UIEdgeInsets = .zero) -> RDEPUBPreferences { // Use the larger of reflowableContentInsets and safeAreaInsets for each edge // to prevent content from being hidden under Dynamic Island / home indicator. + // Falls back to the key-window safe area when the caller has no laid-out view. + let resolvedSafeAreaInsets = RDEPUBSafeArea.resolve(safeAreaInsets) let safeInsets = UIEdgeInsets( - top: max(reflowableContentInsets.top, safeAreaInsets.top), - left: max(reflowableContentInsets.left, safeAreaInsets.left), - bottom: max(reflowableContentInsets.bottom, safeAreaInsets.bottom), - right: max(reflowableContentInsets.right, safeAreaInsets.right) + top: max(reflowableContentInsets.top, resolvedSafeAreaInsets.top), + left: max(reflowableContentInsets.left, resolvedSafeAreaInsets.left), + bottom: max(reflowableContentInsets.bottom, resolvedSafeAreaInsets.bottom), + right: max(reflowableContentInsets.right, resolvedSafeAreaInsets.right) ) return RDEPUBPreferences( fontSize: fontSize, diff --git a/Sources/RDReaderView/EPUBUI/TextPage/RDEPUBTextContentView.swift b/Sources/RDReaderView/EPUBUI/TextPage/RDEPUBTextContentView.swift index fb85a4b..fbd0e4c 100644 --- a/Sources/RDReaderView/EPUBUI/TextPage/RDEPUBTextContentView.swift +++ b/Sources/RDReaderView/EPUBUI/TextPage/RDEPUBTextContentView.swift @@ -126,6 +126,19 @@ final class RDEPUBTextContentView: UIView, UIGestureRecognizerDelegate, RDReader return spinner }() +#if DEBUG + /// Debug-only outline of the readable content area (bounds inset by contentInsets). + private let debugContentAreaBorderView: UIView = { + let view = UIView() + view.isUserInteractionEnabled = false + view.backgroundColor = .clear + view.layer.borderColor = UIColor.systemRed.withAlphaComponent(0.6).cgColor + view.layer.borderWidth = 1 + view.accessibilityIdentifier = "epub.reader.debug.contentAreaBorder" + return view + }() +#endif + private lazy var longPressGestureRecognizer: UILongPressGestureRecognizer = { let gesture = UILongPressGestureRecognizer(target: self, action: #selector(handleLongPress(_:))) gesture.minimumPressDuration = 0.5 @@ -243,6 +256,9 @@ final class RDEPUBTextContentView: UIView, UIGestureRecognizerDelegate, RDReader addSubview(pageNumberLabel) addSubview(loadingSpinner) addSubview(selectionLoupeView) +#if DEBUG + addSubview(debugContentAreaBorderView) +#endif addGestureRecognizer(longPressGestureRecognizer) addGestureRecognizer(panGestureRecognizer) addGestureRecognizer(tapGestureRecognizer) @@ -338,6 +354,9 @@ final class RDEPUBTextContentView: UIView, UIGestureRecognizerDelegate, RDReader coverImageView.frame = bounds.inset(by: contentInsets) let contentRect = bounds.inset(by: contentInsets) +#if DEBUG + debugContentAreaBorderView.frame = contentRect +#endif let labelSize = pageNumberLabel.sizeThatFits( CGSize(width: contentRect.width, height: Self.pageNumberReservedHeight) ) @@ -374,7 +393,7 @@ final class RDEPUBTextContentView: UIView, UIGestureRecognizerDelegate, RDReader selectionController.clearSelection(renderView: coreTextRenderView) contentInsets = Self.safeContentInsets( configuration: configuration, - safeAreaInsets: safeAreaInsets + safeAreaInsets: RDEPUBSafeArea.resolve(safeAreaInsets) ) backgroundColor = configuration.theme.contentBackgroundColor pageNumberLabel.textColor = configuration.theme.contentTextColor @@ -459,7 +478,7 @@ final class RDEPUBTextContentView: UIView, UIGestureRecognizerDelegate, RDReader selectionController.clearSelection(renderView: coreTextRenderView) contentInsets = Self.safeContentInsets( configuration: configuration, - safeAreaInsets: safeAreaInsets + safeAreaInsets: RDEPUBSafeArea.resolve(safeAreaInsets) ) backgroundColor = configuration.theme.contentBackgroundColor pageNumberLabel.textColor = configuration.theme.contentTextColor