diff --git a/ReadViewDemo/Pods/Pods.xcodeproj/project.pbxproj b/ReadViewDemo/Pods/Pods.xcodeproj/project.pbxproj index 2646709..0bd4b3d 100644 --- a/ReadViewDemo/Pods/Pods.xcodeproj/project.pbxproj +++ b/ReadViewDemo/Pods/Pods.xcodeproj/project.pbxproj @@ -8,724 +8,730 @@ /* Begin PBXBuildFile section */ 002685407B9C4D548571DA24AFD6E8F1 /* NSString+Paragraphs.m in Sources */ = {isa = PBXBuildFile; fileRef = B4A7F7402FAEE3A277A8716DDA115C95 /* NSString+Paragraphs.m */; }; - 00ED46EE485D06CEF016D5A721540F25 /* wxread-replace.css in Resources */ = {isa = PBXBuildFile; fileRef = 59CDD214151212AC68223A2BCC81D128 /* wxread-replace.css */; }; 014449AE560FFF3C628FAE639D043004 /* DTAnchorHTMLElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 148B993AB228816D19FCB7CD13874C83 /* DTAnchorHTMLElement.m */; }; - 0178B405FAF3D265372305943BDB91AB /* RDEPUBReaderSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 56A856C80CDD6B8D9CFEE9C551D5735F /* RDEPUBReaderSettings.swift */; }; + 016C4C5AAC16F9172DA1D972B2975E5F /* RDEPUBTextPageDecorationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9B8AAF5F0EA3BBF843DD82B4941C531 /* RDEPUBTextPageDecorationView.swift */; }; + 01B1B72435413976C736449E2DC3A6CF /* RDEpubReaderView+CollectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C43927E340CE968FE3745E042B7FB8C6 /* RDEpubReaderView+CollectionView.swift */; }; + 032ABB9E9A68AA67B6B110805A53A1EF /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B50104DE2E35D820ECA22CDB3E6F96EA /* Foundation.framework */; }; + 03BBAF69EC0D68534C6C7AD9DA4CEFEB /* URL+ZIP.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6430501430329643C8280B3985C48711 /* URL+ZIP.swift */; }; 03D90C831397E8636A33CE557024A136 /* NSMutableAttributedString+HTML.h in Headers */ = {isa = PBXBuildFile; fileRef = 044BEA679671E16EA9BA9AD627750742 /* NSMutableAttributedString+HTML.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 03D9B5FDBF0F61F0D2D9B28782BFB235 /* RDEPUBChapterDisplayContentCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = AAFF9E2F6436861E176B5E55A1180672 /* RDEPUBChapterDisplayContentCache.swift */; }; - 04703B1388DCD2CA10215F648B50F3CB /* RDEPUBRuntimePageCount.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBF2E942B6DF40838CD0EA5D5AFA0A49 /* RDEPUBRuntimePageCount.swift */; }; + 04C9A893E242B2EA2B9B761F26F6D45E /* RDEPUBMemoryProbe.swift in Sources */ = {isa = PBXBuildFile; fileRef = BAF5C3F61802BB558960C1264B9B95EC /* RDEPUBMemoryProbe.swift */; }; 0561DF6793C8516F469D9813F5CE3211 /* DTCoreTextLayouter.m in Sources */ = {isa = PBXBuildFile; fileRef = D80A72D8B7941D30246858D840EE1EF5 /* DTCoreTextLayouter.m */; }; - 058D3A9B6ACC980BAAFD1BA24CCA2AE7 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 006D002D86B43AA52E0AFD2E18459107 /* PrivacyInfo.xcprivacy */; }; - 06DF0E39B884DFADA5D3A32E03935DFF /* RDEPUBWebView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9868FA712FFD17D0195649510C1A68A6 /* RDEPUBWebView.swift */; }; - 06FB9E46B498A1601FFF195078E5A156 /* RDEPUBSelectionLoupeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F360D7798705EF33FED7578F42ABE588 /* RDEPUBSelectionLoupeView.swift */; }; - 07ADD08673F557736DFE92F970D7C6CB /* RDEPUBBackgroundCoverageStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = E79069E6008AAA4FD339D2819CDF4675 /* RDEPUBBackgroundCoverageStore.swift */; }; - 09819232AC1E42F72943F2B9EBC3EFDB /* DTSmartPagingScrollView.m in Sources */ = {isa = PBXBuildFile; fileRef = A20F6F0463A998DC3BD53DE9E63B63DE /* DTSmartPagingScrollView.m */; }; + 059371F34380CCE46625AFC49B5A08E9 /* RDEPUBStyleSheetBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9B0C15189A2464E1CF31D95EA4FD0B44 /* RDEPUBStyleSheetBuilder.swift */; }; + 07A060079E1A26C1FEC4F7C36258EDEB /* RDEPUBReaderController+DataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFEBB4FDA1CF193F22AE1FF2B6D7CC64 /* RDEPUBReaderController+DataSource.swift */; }; + 0884DFA1A564DEC4792661EC85BFAAAF /* RDEPUBReaderController+LocationResolution.swift in Sources */ = {isa = PBXBuildFile; fileRef = A78361529E8B1D3A665B0A2AF622A90E /* RDEPUBReaderController+LocationResolution.swift */; }; + 088EF435B136C86A148B66C117D72405 /* RDEPUBReaderEnvironment.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92A113769CE9950DC897120CC7A809F5 /* RDEPUBReaderEnvironment.swift */; }; + 0A2E935149519402D231A93B1B452C9E /* DTVersion.m in Sources */ = {isa = PBXBuildFile; fileRef = CCC633BF76C79E0B4A6750337D5DCDB8 /* DTVersion.m */; }; 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, ); }; }; - 0B13ED712E176459DC75767C81356049 /* RDEPUBReaderHighlightsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 339103E5D1A1C62BF7B414EE689069F8 /* RDEPUBReaderHighlightsViewController.swift */; }; 0B6FA1F22150D7F8B1865F41FF70C922 /* DTImage+HTML.h in Headers */ = {isa = PBXBuildFile; fileRef = E3CAAC46883B74B071843E5D38B5BF85 /* DTImage+HTML.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 0BE1CDB7574C32928159748427234D17 /* Archive+BackingConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 765A94769106D14615FFB30EE1BD5E65 /* Archive+BackingConfiguration.swift */; }; - 0E80911EBF3F620A1B8DBCE516E2CC05 /* Entry+Serialization.swift in Sources */ = {isa = PBXBuildFile; fileRef = 76C1831768CE55090EADD902B29B6CD1 /* Entry+Serialization.swift */; }; + 0CB2574A78A6F529B52A037780D88A86 /* DTLog.m in Sources */ = {isa = PBXBuildFile; fileRef = 199E2ECC77BDAC03F644C20040F042D4 /* DTLog.m */; }; + 0DA2350FAA73F48E41E7DE495DD4A49D /* NSString+DTUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = F3E93C4AC73A09DE1EAE805B0ADE3306 /* NSString+DTUtilities.m */; }; + 0E5B9D5C1A3E038DFA8CBC8B72A073CC /* RDEPUBWebView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6A395A89D72D33EFF65DDE4E0150E901 /* RDEPUBWebView.swift */; }; + 0E8ECD6D42EDB9F36643DF10770C91F8 /* RDEpubReaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37A3E41EAF109E2FA9DF571E5BA96472 /* RDEpubReaderView.swift */; }; + 0F68661A4CBE7C40C665DE09F092502A /* UIView+DTFoundation.h in Headers */ = {isa = PBXBuildFile; fileRef = 29DEA4D201BB179BB6E228E9F688CD4C /* UIView+DTFoundation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0F885B9FB253DC070417F188C93E8EC7 /* RDEPUBChapterDisplayContentCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B042E58E7431D5F5F85FC52ADE69567 /* RDEPUBChapterDisplayContentCache.swift */; }; 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 */; }; - 10849A91BA39B64B632457A2818B8C63 /* RDEPUBTextContentInteractionCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = B3875D495797D0A7441AE5FDC6606E31 /* RDEPUBTextContentInteractionCoordinator.swift */; }; + 1064ABED1C33887FD6D2170025D7D194 /* UIView+DTFoundation.m in Sources */ = {isa = PBXBuildFile; fileRef = 67DA49B61A249C2B8241D8FE166608C9 /* UIView+DTFoundation.m */; }; 109458F9D48FD4F381F0E40E2DB3D91C /* DTLazyImageView.h in Headers */ = {isa = PBXBuildFile; fileRef = D5DD4142DF33E1BE0B5A057101E851C5 /* DTLazyImageView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 10D59A237D78A0523310743DE96A47B0 /* Archive+Writing.swift in Sources */ = {isa = PBXBuildFile; fileRef = B0218A7B243387C79E099CA947CF243D /* Archive+Writing.swift */; }; + 11A4D9F0501FB308A70A11AA092167FC /* RDEPUBChapterPageCounter.swift in Sources */ = {isa = PBXBuildFile; fileRef = C6BCC51588FE3E176018809B2126DE07 /* RDEPUBChapterPageCounter.swift */; }; 11AB1902A68385851FB81E870991F9A0 /* DTImageTextAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = 57642B518C047A428FE1266A09E0513F /* DTImageTextAttachment.m */; }; - 11DEE40FA231D4F0E3E04F691930E413 /* RDEPUBWebViewDebug.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2F02728AA8EB960A35AE0DD7736C90A /* RDEPUBWebViewDebug.swift */; }; 12B4A35B8E40C112E18A7C5511F023E9 /* CoreText.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4472755F83C121DE5E1E505D145F6DBE /* CoreText.framework */; }; - 12C8BE5FE485F623F695BACC11DDF5B1 /* DTTiledLayerWithoutFade.m in Sources */ = {isa = PBXBuildFile; fileRef = 23006DBAC610AEB0A4B3EAFEA4FB0567 /* DTTiledLayerWithoutFade.m */; }; - 12E4DE7F5308A77C2548C7FC376065A0 /* NSString+DTFormatNumbers.h in Headers */ = {isa = PBXBuildFile; fileRef = A3BD3ED7913130D32E14D5572CBCC921 /* NSString+DTFormatNumbers.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 12FD06AD8AA51C9E615E9094621D68CC /* NSURL+DTUnshorten.m in Sources */ = {isa = PBXBuildFile; fileRef = 3A6A858B976D032A3C61540AFF19DEE4 /* NSURL+DTUnshorten.m */; }; 130C3A85D9F9F445222C2E31EC245B0A /* NSScanner+HTML.h in Headers */ = {isa = PBXBuildFile; fileRef = DD0A5FF70CDBE87597264762EC20EF43 /* NSScanner+HTML.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1384D17D1E1C6DE381FA63DAB5DB421B /* RDEPUBWebDecorationOverlayView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F630BB624DD56B3C0BD9131D8ACEC21D /* RDEPUBWebDecorationOverlayView.swift */; }; - 13A68713486786ECBD2F6D019D7F3A36 /* Archive+ReadingDeprecated.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5193541848D2D1BF115A45D8A730611C /* Archive+ReadingDeprecated.swift */; }; + 1339931AB136208196DB1E6D5DAE859C /* RDEpubReaderView-RDEpubReaderViewAssets in Resources */ = {isa = PBXBuildFile; fileRef = C8A6E90AB5E26049710E2C2404C28B9A /* RDEpubReaderView-RDEpubReaderViewAssets */; }; + 138EAE1EE15DC14A310235705266F35E /* RDEPUBTextBuildPipelineInterfaces.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85FB9E100DF07B36F1D09F489F0E9E3B /* RDEPUBTextBuildPipelineInterfaces.swift */; }; + 139FB07EEADBF314AA9349F9F226FD21 /* DTExtendedFileAttributes.m in Sources */ = {isa = PBXBuildFile; fileRef = 56E8939081946D090FD77A04F879754C /* DTExtendedFileAttributes.m */; }; + 14142D08800AEF8C48A255D9E208B6B5 /* RDEPUBTextRendererSupport.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7491DBD924AAAD4FDAB1B2498061A55D /* RDEPUBTextRendererSupport.swift */; }; 14BDD9FB7A7AC5C8ABFF8D24C381F3DA /* NSAttributedString+DTCoreText.m in Sources */ = {isa = PBXBuildFile; fileRef = 978449466D53EA6F5D40FCF0F353DDCA /* NSAttributedString+DTCoreText.m */; }; - 150212A6C0D866FB32891A7C787D2AD9 /* epub-fixed-layout.html in Resources */ = {isa = PBXBuildFile; fileRef = 8A99D1BD5B4CEEFCCBE92DF58132E614 /* epub-fixed-layout.html */; }; - 151713856AAB9F06659A8D5DDF2087C2 /* RDEPUBPageMapReconciliationCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46F84AE2351143E6F632A3FEE684A62C /* RDEPUBPageMapReconciliationCoordinator.swift */; }; - 153D368F1FB8A6C37F09FCA900308262 /* RDEPUBPublication.swift in Sources */ = {isa = PBXBuildFile; fileRef = 634A51FA1417DC27E687D3FF80AD42CB /* RDEPUBPublication.swift */; }; + 14E48DFCC17C206E3D1E68FBC2C285A2 /* DTWeakSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = E4C5EB3F8F005C65005C101A9DBE488A /* DTWeakSupport.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 14F87EA233F2BD37C850AF743FBF5AF7 /* RDEPUBRuntimePageCount.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8157DDB46604BA4ABC1E776FFF3BACF /* RDEPUBRuntimePageCount.swift */; }; 15A7ED15DA03DD3B9F26A017D270D1C2 /* DTCSSListStyle.h in Headers */ = {isa = PBXBuildFile; fileRef = 0C24F592C4F38F15DC8C46BE0442B59C /* DTCSSListStyle.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 15C867066FED697DF7379382C99E6B30 /* RDEPUBReaderController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 499D25E7902D605A5EC2940A714AABE0 /* RDEPUBReaderController.swift */; }; - 164B404F4970465BA732CB6C61F24099 /* RDEpubReaderViewProtocols.swift in Sources */ = {isa = PBXBuildFile; fileRef = 986039F986495905BA1EB9D9F426B782 /* RDEpubReaderViewProtocols.swift */; }; - 169C2AB341395A974734908A6E630E5E /* RDEpubReaderContentCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = F4E8A28FA2AC4F578A1098D8285D3FFE /* RDEpubReaderContentCell.swift */; }; - 16C3B174F120D3C049977A091BFA34A0 /* RDEPUBTextPositionConverter.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8EBCB744C294E197C28F3B81349FCF9 /* RDEPUBTextPositionConverter.swift */; }; - 18309C9443FFD52914CC7A183360DE88 /* RDEPUBCFIPath.swift in Sources */ = {isa = PBXBuildFile; fileRef = 643A984CBF55EC9D17CB2D82E7E68B9E /* RDEPUBCFIPath.swift */; }; - 18FD31EA041A589A98B214078C77DE11 /* NSURL+DTComparing.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F1F7BFB63DE15D627EB8F64829B8AAD /* NSURL+DTComparing.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 15C9875C155837A725CA94168B992C9C /* DTBase64Coding.h in Headers */ = {isa = PBXBuildFile; fileRef = 519087D9CD0F5E440E6D2C3B1AA1DFA2 /* DTBase64Coding.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1655CC5E3EBB7F0C0014C00CAAE5DF80 /* Data+CompressionDeprecated.swift in Sources */ = {isa = PBXBuildFile; fileRef = E6B46EF6F055A721AF370D705D026E9E /* Data+CompressionDeprecated.swift */; }; + 16FB83E006182616AEF677F7503FF7A2 /* Archive+ReadingDeprecated.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5193541848D2D1BF115A45D8A730611C /* Archive+ReadingDeprecated.swift */; }; + 17A87D442B01882515E53875C61FD80C /* RDEPUBSelectionOverlayView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 182E35C25ED6D0A21324217217085D5A /* RDEPUBSelectionOverlayView.swift */; }; + 18208187C0956F089D6BF097A38950D3 /* RDEPUBCoreTextPageFrameFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 55B279EB4E340447F26F6F1F0F09432A /* RDEPUBCoreTextPageFrameFactory.swift */; }; 191824B2B1E1B0A7DD3B6298100B4B8A /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DE4821B98DDE6C71411EC139EC6D2762 /* CoreGraphics.framework */; }; 19649ED312D92A6F5D2D6AF4E540CE75 /* DTHorizontalRuleHTMLElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 89268DC8F1FBDE4F3167647B6A4F9216 /* DTHorizontalRuleHTMLElement.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 199E93DDEF9B6092AF0C6CA8271FBF43 /* RDEPUBCFIDOMPathBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 86F6704259B87ED54EF047EF455B168E /* RDEPUBCFIDOMPathBuilder.swift */; }; - 1A423024852D474564AD29A9E234D19D /* RDEPUBReaderSearchBarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCD4B82D09BE72980015175674B04B22 /* RDEPUBReaderSearchBarView.swift */; }; - 1A5D4A937139068A751CE07AEC4FACDC /* RDEPUBChapterLoader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 03B34F9D700619AE17BE5522BBABC08E /* RDEPUBChapterLoader.swift */; }; - 1C76A33A29D56E6009775DD05B32BD2B /* DTWeakSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = E4C5EB3F8F005C65005C101A9DBE488A /* DTWeakSupport.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 198F9CC0DDE066257B1F0DA2B54C4329 /* RDEPUBCFIMarkerInjector.swift in Sources */ = {isa = PBXBuildFile; fileRef = E7A1643CA13D509DFD1122361AC40773 /* RDEPUBCFIMarkerInjector.swift */; }; + 19A854F08693D5E33D366266CC314CA5 /* RDEpubReaderPreloadController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 131769DEED97B4620743A928D7B3C624 /* RDEpubReaderPreloadController.swift */; }; + 1A5028597FB05165C06A765EB697A8CF /* RDEPUBCFIResolver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 654BB0622F8E7419F01F2F9C3D700D8A /* RDEPUBCFIResolver.swift */; }; + 1B69A9A0C1A05B9C2CF9C3D013978159 /* RDEPUBReaderPaginationCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD1A3421E6BB01E8F6D89253D7F3856D /* RDEPUBReaderPaginationCoordinator.swift */; }; + 1B7BD841519D2AA86F631E4374350CDE /* RDEPUBTextPageBoundaryValidator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 73B4CAD27125A693F658D8352C0A1CC7 /* RDEPUBTextPageBoundaryValidator.swift */; }; 1D460603DCA4A4E5ECFE8FF1F1CACC10 /* DTColorFunctions.m in Sources */ = {isa = PBXBuildFile; fileRef = 4544C4444DCA90E700611D1281969883 /* DTColorFunctions.m */; }; - 1D9D77BE1E9BF208AFEF407E669B2BDD /* wxread-replace-latin.css in Resources */ = {isa = PBXBuildFile; fileRef = 58BF341C0AB71F05D2FAED75A8A835A2 /* wxread-replace-latin.css */; }; - 1FD0505F5E605B1699CAF1616CC06662 /* RDEPUBNavigatorLayoutContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = B60AD68DA33BB20A0FE6D0D98EBE3D2B /* RDEPUBNavigatorLayoutContext.swift */; }; - 1FD2290EC3449416DEBA4BDD5D7D7E22 /* DTLog.h in Headers */ = {isa = PBXBuildFile; fileRef = 207CC0EEB74CECEB43A870FF80560E0F /* DTLog.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1FFD8E423E8DC4E04096041CFD00411A /* RDEPUBPageLayoutSnapshot.swift in Sources */ = {isa = PBXBuildFile; fileRef = F77D2A383DC7C1F05BD961646DB1D61E /* RDEPUBPageLayoutSnapshot.swift */; }; - 20BDDBE5CE1A90B6CA1AC55C037357E0 /* DTHTMLParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 71BBE6384315D7F00F5ECFFF67A85AF9 /* DTHTMLParser.m */; }; - 2169042D85F5BBD58CA42E4893ABCF5F /* RDEPUBRenderDiagnosticsCollector.swift in Sources */ = {isa = PBXBuildFile; fileRef = 327CD220C81409236F700C96851DB0E0 /* RDEPUBRenderDiagnosticsCollector.swift */; }; - 2201CC7B0A221ADAF05C3C4287FA3518 /* RDEPUBWebView+FixedLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E6420F3C34E33BDB146AE066B20ED88 /* RDEPUBWebView+FixedLayout.swift */; }; + 1D57CFC0C6AE9883880C182F5C2D7887 /* RDEPUBParser+TOC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 620E64D43B143049172FCA325B875ED0 /* RDEPUBParser+TOC.swift */; }; + 1E0A834BAEBC182650E4D55143EFDEBB /* ZIPFoundation-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = B41F7D27C2336F89BB0185ACB0B19EA9 /* ZIPFoundation-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1ED9054310447B18F0352D840B12A7BC /* RDEPUBChapterData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 79119FD962559C23FF1C7BACD4E3CF27 /* RDEPUBChapterData.swift */; }; + 1FAE80194370041BF4B0CCD32DB53BEC /* epub-fixed-layout.html in Resources */ = {isa = PBXBuildFile; fileRef = ED984A84F8E3D5CD16ED53FE377FA3A2 /* epub-fixed-layout.html */; }; + 1FD7F170DEEDDFECD3EC5610A820C8FE /* RDEPUBReaderController+AttachmentTooltip.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3391309FA6D682BB75C2614C0F9DE612 /* RDEPUBReaderController+AttachmentTooltip.swift */; }; + 200335FBF3E68306AF48D84810E84858 /* DTHTMLParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 71BBE6384315D7F00F5ECFFF67A85AF9 /* DTHTMLParser.m */; }; + 20379B541861287985D1AC7365A15E1A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B50104DE2E35D820ECA22CDB3E6F96EA /* Foundation.framework */; }; + 21A4CF33E4D4F3614A63D0DFBBF4ECEF /* RDEPUBNoteModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = D31105650106D4505E2C61254DFB1E92 /* RDEPUBNoteModels.swift */; }; + 21AD4322E4F01B96787DF41A1A35C31E /* NSData+DTCrypto.m in Sources */ = {isa = PBXBuildFile; fileRef = F63EBF2BF3000B3391F6E693581EA129 /* NSData+DTCrypto.m */; }; + 21D93DB3DC2E8E92D8F44F1429261E1E /* RDEPUBPageBreakPolicy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27551CB4C68AF584450C4B1CC073E894 /* RDEPUBPageBreakPolicy.swift */; }; 2203356EEA94A9172BC7902923E43CBE /* DTCoreTextFontCollection.h in Headers */ = {isa = PBXBuildFile; fileRef = 25DDD76CA572F0C7AB5A8178CF80169D /* DTCoreTextFontCollection.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 22EEC92067603F597E6A32D1C77D77A0 /* NSDictionary+DTError.h in Headers */ = {isa = PBXBuildFile; fileRef = 05838D65DEC339C51AADB17346B7E287 /* NSDictionary+DTError.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 22F7CE3E9E7DB5F51EF4562A2E8571BA /* RDEPUBSafeArea.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3415CCD5F8080BB63D594BDCFEA0EB86 /* RDEPUBSafeArea.swift */; }; - 2341854012EA656B8F32863213F7012A /* RDEPUBReaderEnvironment.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96D1D1F318551BFCF4B28021E708564D /* RDEPUBReaderEnvironment.swift */; }; + 227417644859CD9B14CEC8A63F2A76F1 /* RDEPUBReaderLocationCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = E4F082BF59D81240AB478640AC002399 /* RDEPUBReaderLocationCoordinator.swift */; }; + 23A7D0BA036B4A28D207588C405FF4A0 /* RDEPUBSearchModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = 15C5C3C64F13B0CFF74EBDC74F4944C3 /* RDEPUBSearchModels.swift */; }; + 23AC7844B0D69585EBF8E0B49B885604 /* RDEPUBCFICompatibility.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8AC1B803E56F25BAE652D5B6999E24C9 /* RDEPUBCFICompatibility.swift */; }; + 23EBF04C81B4ACE7E971B9175EE8BC25 /* RDEpubReaderContentCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5D1FC3429FE4AAB31BFAF311EB4EEB3 /* RDEpubReaderContentCell.swift */; }; 24395BEB3C360D9DA5180BFB955B04A0 /* DTAttributedLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = 3EFAE8DFDDEA1E6047289C86D66381C0 /* DTAttributedLabel.m */; }; 2445709667CB3820E51CD4AA915E6943 /* DTHTMLParserTextNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 558FCD3F7E481B782EBFA127486ED15D /* DTHTMLParserTextNode.h */; settings = {ATTRIBUTES = (Public, ); }; }; 24C5B52FD2AA9C49731DC6859ABA7CDE /* NSDictionary+DTCoreText.m in Sources */ = {isa = PBXBuildFile; fileRef = 78887827FF15DE20865DF3A00660993B /* NSDictionary+DTCoreText.m */; }; - 24D662573BF450D8125295A73043FC6D /* DTCustomColoredAccessory.h in Headers */ = {isa = PBXBuildFile; fileRef = BAE45673EE2875DB23FA7BDD61FDE1EF /* DTCustomColoredAccessory.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 262F8039CD300F06804EF72ADE21296F /* DTFoundation-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = FF1C41D226C0957F715EFF3F23893386 /* DTFoundation-dummy.m */; }; - 263816EA7A16F559987B895002D43484 /* RDEPUBParser+Package.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1A18237B2AA906DE9B54F3FBE756BD95 /* RDEPUBParser+Package.swift */; }; - 267ED64847468F47CE49E72E39AC04A3 /* RDEPUBReaderTopToolView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0FFD7DFEB52262536F9A2C19B111C229 /* RDEPUBReaderTopToolView.swift */; }; - 26CCE192A25CD7B025904E0AC1260A10 /* Archive+Deprecated.swift in Sources */ = {isa = PBXBuildFile; fileRef = F3C9CA544EBF55130625F6C3AD2ABFB4 /* Archive+Deprecated.swift */; }; - 26D029D2A69EB67AF0947292B6BB7FD8 /* ZIPFoundation-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = B41F7D27C2336F89BB0185ACB0B19EA9 /* ZIPFoundation-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 26A1B90BB653D7393D58CA8739655DE1 /* wxread-replace-latin.css in Resources */ = {isa = PBXBuildFile; fileRef = 3D2D15B55BBD91FDC3CA4AAA23B8064C /* wxread-replace-latin.css */; }; + 26CB5B4F18F7CB4F7F85024189763F69 /* RDEpubPlainTextBookBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89FA4A4AD5389087E418ECAFB7052A9A /* RDEpubPlainTextBookBuilder.swift */; }; 270C5C10028F0BC5A62548326CCB379B /* DTColor+Compatibility.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FAAF640165FC1B4B47C546F80D98B1E /* DTColor+Compatibility.m */; }; - 295918B689386A62654E2CE1AB071A69 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B50104DE2E35D820ECA22CDB3E6F96EA /* Foundation.framework */; }; - 299808D938C97BA948DB3935EFD82B74 /* RDEPUBTextPaginationInterfaces.swift in Sources */ = {isa = PBXBuildFile; fileRef = 576B635BD8D0994E47FD4CF7E23FEA79 /* RDEPUBTextPaginationInterfaces.swift */; }; - 29AA7851B584FD07672063C7213179FA /* URL+ZIP.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6430501430329643C8280B3985C48711 /* URL+ZIP.swift */; }; + 2817D30EAE1029E395CA12FD88506EAE /* DTVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C9575F05D72C239E7E6F079BACDF4C7 /* DTVersion.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 29C038D2B02718B277EDAD605314BD8E /* RDEPUBAssetRepository.swift in Sources */ = {isa = PBXBuildFile; fileRef = 013FBBDBB84A86FBE4214ED574A76CCA /* RDEPUBAssetRepository.swift */; }; 29D9B32DFFC59A157EDEF005DB92A5AC /* DTCoreTextLayoutLine.m in Sources */ = {isa = PBXBuildFile; fileRef = EB850927957E35DB8CE0F109188C99A9 /* DTCoreTextLayoutLine.m */; }; + 2A270FBE0C590B4C469BCC7FEFC45FF6 /* DTFolderMonitor.h in Headers */ = {isa = PBXBuildFile; fileRef = A8CC38EFEF171FFEE008C32A6319BE6A /* DTFolderMonitor.h */; settings = {ATTRIBUTES = (Public, ); }; }; 2AAF9361720FC2D8FFCA93B5FAE42019 /* NSMutableString+HTML.m in Sources */ = {isa = PBXBuildFile; fileRef = 126E6ACAC7C0427806B58DA8E10BDD78 /* NSMutableString+HTML.m */; }; - 2B65F3DCEBB005DA04C98F60A4D1AE77 /* RDEPUBReaderController+Trial.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2AF6AEEC13967258B9E5E8BF691ADDC8 /* RDEPUBReaderController+Trial.swift */; }; - 2E65B1871A829C3BD96472B1F86D34DF /* NSURL+DTAppLinks.m in Sources */ = {isa = PBXBuildFile; fileRef = 3453CFB9BDBF6F9D0937EDF5FB2BD07B /* NSURL+DTAppLinks.m */; }; - 2F9272A25DA4AD52EE88793A86DF9180 /* RDEPUBCSSCompatibilityLayer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97C6D812897020B77EF9C826643A0418 /* RDEPUBCSSCompatibilityLayer.swift */; }; + 2B1F17E77BA28FD287A2602085F2A7E8 /* RDEpubReaderFlowLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3AA5C3C464886AB7EEF2393527B5DB0F /* RDEpubReaderFlowLayout.swift */; }; + 2B1F62C13E8DC8CF86EB61F1C33C48F0 /* RDEPUBPageResolver.swift in Sources */ = {isa = PBXBuildFile; fileRef = C958AB41C0D909176E479CCC24B4CAEC /* RDEPUBPageResolver.swift */; }; + 2C1771B28885D0BD41E0F3CA327BECBC /* RDEPUBFontNormalizer.swift in Sources */ = {isa = PBXBuildFile; fileRef = FB9079877B14ED272026DEC70CA1B494 /* RDEPUBFontNormalizer.swift */; }; + 2CEEC1B9930EAF539CBFE8F169D391D3 /* DTAnimatedGIF.m in Sources */ = {isa = PBXBuildFile; fileRef = A3DE08AC23FE36A6C3F33A04700FDE57 /* DTAnimatedGIF.m */; }; + 2D420D39A6016CDAF1031863569A3DD7 /* RDEPUBWebView+FixedLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 496BFBBBE6F53ECAEDD0897BCC639ACF /* RDEPUBWebView+FixedLayout.swift */; }; + 2D9BD474B4DD23B302A98CD3E7BD469C /* Entry+ZIP64.swift in Sources */ = {isa = PBXBuildFile; fileRef = 288589D0B52F73505B43C743D9837578 /* Entry+ZIP64.swift */; }; + 2DCA673DFA30A97E14032A54E9470C6E /* RDEPUBReaderDependencies.swift in Sources */ = {isa = PBXBuildFile; fileRef = 653229313625F134A4A11EBEBC7152A3 /* RDEPUBReaderDependencies.swift */; }; + 2DF5F1AFD440B09462173EDE2C8B59B5 /* RDEPUBCFIRange.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9351AEC32A6B2EFB3F6D6A6330913C73 /* RDEPUBCFIRange.swift */; }; + 2E2C77B4CB687F944C5795992227A7B9 /* RDEPUBParser+Package.swift in Sources */ = {isa = PBXBuildFile; fileRef = 072A12E69FD0B832AD8BD710163EAF6E /* RDEPUBParser+Package.swift */; }; 2FD7360250C2255A80583D4CF518FBFA /* DTTextAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = 4944FE0BE3205F2EC91A6A0550D30B75 /* DTTextAttachment.m */; }; - 3026BC61FA36878E1CC1CBA07F69C648 /* RDEPUBChapterDataCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27176E77CA7151E15AC5ED7E22E7AD11 /* RDEPUBChapterDataCache.swift */; }; - 308462B8065C4552E6F2DCA653BA4A49 /* RDEPUBTextPaginationSupport.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0020851315497D536AE8CB195B6BCA5B /* RDEPUBTextPaginationSupport.swift */; }; + 301566012FCA08F95A114CB4C752B6EC /* NSString+DTFormatNumbers.h in Headers */ = {isa = PBXBuildFile; fileRef = A3BD3ED7913130D32E14D5572CBCC921 /* NSString+DTFormatNumbers.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3055EFBF0EAD18567DC1C22A2B6BDDC7 /* wxread-dark.css in Resources */ = {isa = PBXBuildFile; fileRef = 41454FB72CE9EE18949B529EC95B36F6 /* wxread-dark.css */; }; 30C01FE491C26314F776AD8B2AF136FA /* NSAttributedStringRunDelegates.m in Sources */ = {isa = PBXBuildFile; fileRef = C69C7A531B5E021499D8FBF1DBE0E3BB /* NSAttributedStringRunDelegates.m */; }; - 30CC1E6A5D43EC97866FA6D7087D696C /* RDEPUBReaderPaginationCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = AAAD24FFA4B4B8E33C45ED26C2FD4B37 /* RDEPUBReaderPaginationCoordinator.swift */; }; - 3144D716E7A554230FE1522F621FB024 /* RDEPUBChapterSummaryDiskCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF282AB822D775C2628A7A3D042A588D /* RDEPUBChapterSummaryDiskCache.swift */; }; + 313E9DF4B06E790FAABD63ABF9F628E5 /* RDEPUBCSSCompatibilityLayer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7E63652FD111DAA7B37FF58431EB0251 /* RDEPUBCSSCompatibilityLayer.swift */; }; 31B805C50E0E187E6242B0C878C4D30D /* DTCoreTextMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = C495C74844982FAA1B846A2A89023D12 /* DTCoreTextMacros.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 33A0F5C950CB119A009D62682928CC68 /* DTPieProgressIndicator.m in Sources */ = {isa = PBXBuildFile; fileRef = 8BA617294E6371DD7FAC32B61E0873F2 /* DTPieProgressIndicator.m */; }; - 33B28214F1A3949A14C93CECA00B8173 /* RDEPUBReaderChapterListController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6F265D797C3E4FD97ED35CB9BF70F121 /* RDEPUBReaderChapterListController.swift */; }; + 33998131AD3B6C65F0855CDC4CE58DCE /* RDEPUBReadingLocationModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6B151204014582972C0694D8E1D89191 /* RDEPUBReadingLocationModels.swift */; }; + 33E43221ACC615706922CD593D473682 /* RDEPUBNavigatorLayoutContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = A1C347BEDE76210B7602DC2192020FFB /* RDEPUBNavigatorLayoutContext.swift */; }; 343E794F88AA503F5139C2244DC1A2B1 /* DTTextAttachmentHTMLElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8FDAF9E8370366F7FA8524CB0D80B3 /* DTTextAttachmentHTMLElement.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3526C298B08D60279E5378EDA84C1A96 /* DTActivityTitleView.m in Sources */ = {isa = PBXBuildFile; fileRef = 662D30C1E74D1D5122921475F4024F73 /* DTActivityTitleView.m */; }; - 35B64675B8DC54F46D7D7AC046ACFD23 /* RDEPUBStyleSheetComposer.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB2DDE835F718828F22B7C06D9AF02FB /* RDEPUBStyleSheetComposer.swift */; }; - 35C487D1A21FC5ADE3DF56FDB6040C0C /* NSURL+DTComparing.m in Sources */ = {isa = PBXBuildFile; fileRef = 467CC59CEC3B3BC7ACDCA776FDCBDC1D /* NSURL+DTComparing.m */; }; + 34ADB3DAC5DEBF2002CF60AF084EAAA8 /* RDEPUBCFIUtilities.swift in Sources */ = {isa = PBXBuildFile; fileRef = 71AC379296558EB0F7CF754C2B17682D /* RDEPUBCFIUtilities.swift */; }; + 34B7CA2CFBA16F7967D9C4D2760FC27A /* RDEPUBReaderDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0260FAFAF47E57F48EA48DB48C073C96 /* RDEPUBReaderDelegate.swift */; }; + 35221429ED648505678A588D1B5EB726 /* RDEPUBImageViewerCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 934C53D0904A8D943D6D60401E06753B /* RDEPUBImageViewerCoordinator.swift */; }; + 354CE4147A633610D24C0D6E1498D08A /* RDEPUBParser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41E8B14921F172E254BC8C5FC2813C8F /* RDEPUBParser.swift */; }; 35C5BE59CA712CCDF93D6E7010D93883 /* DTAttributedTextContentView.h in Headers */ = {isa = PBXBuildFile; fileRef = E96C0EEB2032D3CC18F4B37A7C34C84C /* DTAttributedTextContentView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 35D82C01D957EA4B99A7BE2D88DBAB9C /* RDEPUBReadingSession.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1DFD71BAF612FE4B521B30E7E24C4E1A /* RDEPUBReadingSession.swift */; }; - 36F6BC3C4651DB0B0122DB1300A566A6 /* RDEPUBNoteResolver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B1FC7245885C5EE717A583C35D1EC08 /* RDEPUBNoteResolver.swift */; }; + 363811B59B4A6460F139AA1F4CDABDA8 /* NSURL+DTAppLinks.h in Headers */ = {isa = PBXBuildFile; fileRef = A3F7613E99CAA29881A015D0ED969B86 /* NSURL+DTAppLinks.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 369066C8D354C2DB8FBAEF32B934C634 /* RDEPUBPageCountCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9977C33D88319AD9219E1FA5FBC4845B /* RDEPUBPageCountCache.swift */; }; + 36943240921ED5C4D946D4FE0BD93B29 /* UIScreen+DTFoundation.h in Headers */ = {isa = PBXBuildFile; fileRef = 9C5E29D728B8CD4EABC0B3DD9CD9DE99 /* UIScreen+DTFoundation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 369CCD1D8A7ED21C9BF642050FAF3FC8 /* RDEPUBPageLayoutSnapshot.swift in Sources */ = {isa = PBXBuildFile; fileRef = 914B1FC71E36885F49DA94D4A738F229 /* RDEPUBPageLayoutSnapshot.swift */; }; 372E907DF08263D0E1AF904F1FCD66EB /* DTTextAttachment.h in Headers */ = {isa = PBXBuildFile; fileRef = E853AAB3B09E0662567752431CEF1D33 /* DTTextAttachment.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 37A6DEDE9455172CA9A261A3BC2ED02E /* Data+CompressionDeprecated.swift in Sources */ = {isa = PBXBuildFile; fileRef = E6B46EF6F055A721AF370D705D026E9E /* Data+CompressionDeprecated.swift */; }; - 37E8FA54000350B466C257801E6614CE /* RDEPUBDarkImageAdjuster.swift in Sources */ = {isa = PBXBuildFile; fileRef = A08CDC243F29B29A95253DCA44335BFE /* RDEPUBDarkImageAdjuster.swift */; }; + 37634B1CBA3CA0636617B12F2DCA6E2C /* RDEPUBBuildDiagnosticsReporter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 933D070CB77BE088EE39078BF90F5038 /* RDEPUBBuildDiagnosticsReporter.swift */; }; + 3888B345D74D3A8FB6545334B5F9B05D /* DTBase64Coding.m in Sources */ = {isa = PBXBuildFile; fileRef = E5D4D6E12779C54F17AE98A1E6C9B699 /* DTBase64Coding.m */; }; 389F7C8400F9223C019F2D7825CD2369 /* NSCharacterSet+HTML.m in Sources */ = {isa = PBXBuildFile; fileRef = 2F242FC1357DD90FA4FD67E1DB90A837 /* NSCharacterSet+HTML.m */; }; - 3970AAD7089A8009D72C2A70F1D73EE5 /* RDEPUBJavaScriptBridge.swift in Sources */ = {isa = PBXBuildFile; fileRef = D36009F925C400C4981D456059CC16BA /* RDEPUBJavaScriptBridge.swift */; }; - 39E30D6C1E40038B0C1083926237A2E6 /* RDEPUBTextLayoutFrame.swift in Sources */ = {isa = PBXBuildFile; fileRef = AEBCA7121897869990DF9876F2240A4A /* RDEPUBTextLayoutFrame.swift */; }; - 3AD036D9E12E1F5B13E649BD538CAE41 /* RDEPUBAnnotationModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8250EF1AA33B1FBC82A438CB75C77E7D /* RDEPUBAnnotationModels.swift */; }; - 3BE4D575119E0A75B45C32489B090137 /* RDEPUBResourceResolver.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC0D5B57FDFCE021F4354EA651E68507 /* RDEPUBResourceResolver.swift */; }; - 3BEB5C7059EB7C4E62C280146D66CAF7 /* RDEPUBReaderTheme.swift in Sources */ = {isa = PBXBuildFile; fileRef = 677A2034D4184FC4E2836F8A5063AD50 /* RDEPUBReaderTheme.swift */; }; - 3C1B919FDD4F85CF4E6D3E8EC4C7E025 /* RDEPUBReaderController+LocationResolution.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2DC9A66DE304F1176D36FD9294F0E536 /* RDEPUBReaderController+LocationResolution.swift */; }; - 3CCEC42C335B6DCC04C3058CF078DAC7 /* RDEPUBNotePopupViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE074C3401A1CAF095691391F2028E61 /* RDEPUBNotePopupViewController.swift */; }; - 3D8DF1B2E9B3BC529D727FBBE40D46AF /* DTFoundation-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 23588B63FC4026A371F5C683744A664C /* DTFoundation-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3A394A0DF61A8A06977B16B6A8256337 /* RDEPUBReaderController+Trial.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9C808F6521B0773999682C043AA9B204 /* RDEPUBReaderController+Trial.swift */; }; + 3B85D453F8CAFB9761D7A92F21BC86A1 /* DTFoundationConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = FF63F5E8902D6F3F5E845A924EBBC6D3 /* DTFoundationConstants.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3BB2E4DE822D6C1DF728BC2724F6F608 /* String+RDEPUB.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B8399E496B773A18740B02518D0C022 /* String+RDEPUB.swift */; }; + 3CB50E5D919F565639DE47EC345ABD93 /* RDEPUBDTCoreTextRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = E5FA59861B42210ACA4B63C9A2BF5CA2 /* RDEPUBDTCoreTextRenderer.swift */; }; 3DC8F9474FC6A0BB7E81A703CE958966 /* NSAttributedString+DTDebug.h in Headers */ = {isa = PBXBuildFile; fileRef = A8A086525BF509F4581693115438B82B /* NSAttributedString+DTDebug.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3DF9D7FC3E7B18DE4FBB4935D747E57A /* NSString+DTUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = F3E93C4AC73A09DE1EAE805B0ADE3306 /* NSString+DTUtilities.m */; }; - 3F77E380C25DEB0DE88525B9727D8EF4 /* RDEPUBCFIGenerator.swift in Sources */ = {isa = PBXBuildFile; fileRef = D915BB57012D656EE211B3BC41EBAA93 /* RDEPUBCFIGenerator.swift */; }; - 3FA774DD0C65367606773764044C2868 /* RDEpubReaderView-RDEpubReaderViewAssets in Resources */ = {isa = PBXBuildFile; fileRef = C8A6E90AB5E26049710E2C2404C28B9A /* RDEpubReaderView-RDEpubReaderViewAssets */; }; - 4046F20BC299071A92E803F8AEE93AA5 /* RDEPUBCFIMarkerInjector.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6596F63DB6DA0616A8EB8FBA7BEC20F6 /* RDEPUBCFIMarkerInjector.swift */; }; - 40DBDF8655647908ED29A31535D267FB /* RDEPUBDTCoreTextRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 157F831C6FDD7EC227517F29E2CB8590 /* RDEPUBDTCoreTextRenderer.swift */; }; - 40ED28D3EDCD7FD6FDD14E01F5A9B447 /* RDEPUBJumpSession.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B098FF2F53DED347EE39859D3CC11BE /* RDEPUBJumpSession.swift */; }; - 411620ED94CA27F80F5BA1C54A8C0C68 /* RDEPUBTextSearchEngine.swift in Sources */ = {isa = PBXBuildFile; fileRef = DABA2040236556B3E47062333B414AF5 /* RDEPUBTextSearchEngine.swift */; }; - 41DFB140311D7C9600D2E428FF15656D /* Archive+Reading.swift in Sources */ = {isa = PBXBuildFile; fileRef = E865600EE9117A9153716299FFA7912D /* Archive+Reading.swift */; }; - 43EF10B03978E0CDA6E9F049A0D1A2A3 /* RDEPUBChapterPageCounter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 00CDDB6857017E4C7EFF619210E70807 /* RDEPUBChapterPageCounter.swift */; }; - 44226BF89798AB351A5DD128C6BCBB34 /* DTBlockFunctions.h in Headers */ = {isa = PBXBuildFile; fileRef = 35417EC94F2D58CB80C991F875CE15C2 /* DTBlockFunctions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3E07428F10F572E3981832D5F4C95DB7 /* RDEPUBDarkImageAdjuster.swift in Sources */ = {isa = PBXBuildFile; fileRef = 937A80CBC2AD2D82F0EE423A4ADDC4C0 /* RDEPUBDarkImageAdjuster.swift */; }; + 40A55362A303DE42B2C4EBC0AD1B38D2 /* RDEPUBPaginationModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = 917CA78BC2FD1712DA30A9F462849846 /* RDEPUBPaginationModels.swift */; }; + 4137A571BFFDAE9674C23E81BB99CD2D /* RDEPUBTextPositionConverter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0ACE49A008B4CCD718B22517825FA0F9 /* RDEPUBTextPositionConverter.swift */; }; + 419BBD6330F869701CEFFF3229770FC2 /* epub-bridge.js in Resources */ = {isa = PBXBuildFile; fileRef = FA70B35339FD7AEAF6282F4A5C71D6C5 /* epub-bridge.js */; }; + 4232C91537E29083C7897068B6BF3118 /* RDEPUBTextSearchEngine.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7E8C42C6222185E0BE13B91DFA107C1C /* RDEPUBTextSearchEngine.swift */; }; + 437A2C621B4ED7929B5AD917D0139D7E /* 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 */; }; - 450D55646D08FE89E88D2F08698A6D32 /* RDEpubReaderFlowLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = A858EFE14B7184E73CC8B040C0FBAF9F /* RDEpubReaderFlowLayout.swift */; }; + 44C1763CD6EA5380468AF5A43FFA85A6 /* DTPieProgressIndicator.m in Sources */ = {isa = PBXBuildFile; fileRef = 8BA617294E6371DD7FAC32B61E0873F2 /* DTPieProgressIndicator.m */; }; 45133E47CC5FBCF78BFCD38981BA027F /* DTDictationPlaceholderView.h in Headers */ = {isa = PBXBuildFile; fileRef = 9C12A4A5BB42D0F68DABBD3BDF103BC5 /* DTDictationPlaceholderView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 45D3AC9978D8A395113A015A0AE53623 /* RDEPUBReaderDependencies.swift in Sources */ = {isa = PBXBuildFile; fileRef = 07EF7DFA2327CD5059A2A0B693813195 /* RDEPUBReaderDependencies.swift */; }; - 45E0CD0CF8B9FA30F5B906B1B1374154 /* RDEpubReaderView-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A204FA398A28E3D0424A74DD407BB03 /* RDEpubReaderView-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 454F7A6A755C7E62CCC8FF480B5C304A /* RDEPUBReaderConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2903888BFB6ADFADC198A26EABDB80C4 /* RDEPUBReaderConfiguration.swift */; }; + 459EFAB3E2F9360C7894EED15FE6D6CE /* RDEPUBTextPerformanceSampler.swift in Sources */ = {isa = PBXBuildFile; fileRef = A610179093345F409F73789E827C8F43 /* RDEPUBTextPerformanceSampler.swift */; }; 45F90B98546FDBA03AB112DFE859A185 /* DTCSSStylesheet.m in Sources */ = {isa = PBXBuildFile; fileRef = B37118B8D16847B0F82E06A5B33898AB /* DTCSSStylesheet.m */; }; 46EF32D586FF590CE2C60C66364B9357 /* ImageIO.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FEB14A8F8170777DB7CCC3F27C8EA57A /* ImageIO.framework */; }; - 4766DE4358C52541EA0EF277171EAD9A /* RDEPUBPaginationCacheCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6A28433723E70648483D360F3B74FA46 /* RDEPUBPaginationCacheCoordinator.swift */; }; - 48878AB11627CEF8C7DC40088DA7AED7 /* RDEPUBPreferences.swift in Sources */ = {isa = PBXBuildFile; fileRef = 229118D72FEDE65A83CE684333A3E6C0 /* RDEPUBPreferences.swift */; }; - 49047276A52DD55FA5A59AD240C6F3CF /* NSString+DTPaths.m in Sources */ = {isa = PBXBuildFile; fileRef = D30DBDF1EDB20CF83690AC6619AA0C48 /* NSString+DTPaths.m */; }; + 482ED32FC798FFC0988D231C422CC2D6 /* RDEPUBReaderSearchCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 11D146DF988352E84DBB8C0C9D6E4026 /* RDEPUBReaderSearchCoordinator.swift */; }; + 487AFB79159977B6487775D57F8B8ECB /* RDEPUBImageViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95CBA6D7FC934EAE4C80594B79D573FB /* RDEPUBImageViewController.swift */; }; 4A13B4E5EA8616A8F09D90BC6EAEEA64 /* CTLineUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 4FF4A2A7F2C7CFB5DD757BE1A6E59C7B /* CTLineUtils.m */; }; - 4A307E593B912B2F30D64559300599FE /* Archive.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3E162E0261A5B0850158D3403191E62 /* Archive.swift */; }; - 4A5B6DC44DD0C372C4D760844E7468AF /* rangy-core.js in Resources */ = {isa = PBXBuildFile; fileRef = 33CD1120A32A59966196C179B158D57C /* rangy-core.js */; }; - 4A782A595503D2EB93424CF55B45C583 /* RDEPUBFixedLayoutTemplate.swift in Sources */ = {isa = PBXBuildFile; fileRef = CD6168EB90D5F2AE16988D0B4BC4C56E /* RDEPUBFixedLayoutTemplate.swift */; }; - 4B79E51CBDA4A396EAEB033F203F2475 /* RDEPUBCFIRange.swift in Sources */ = {isa = PBXBuildFile; fileRef = 820C93ABAAF16D708F0A6322AC62801F /* RDEPUBCFIRange.swift */; }; - 4BB8DFFFE26E48DFA8B364CFF1EC8040 /* RDEPUBPageResolver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 752B1535C51D57BB88FB239513E0810A /* RDEPUBPageResolver.swift */; }; - 4BBADAEFFC3275B9ACFEA06354F413E1 /* RDEPUBWebView+Search.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19169CBEAD412B0E1C17F517F5B30269 /* RDEPUBWebView+Search.swift */; }; - 4C7BAC91C1E948D9592957C3A92C3147 /* RDEPUBPresentationRuntime.swift in Sources */ = {isa = PBXBuildFile; fileRef = 961206494549A9AE3C6EB03DDAD21C1C /* RDEPUBPresentationRuntime.swift */; }; - 4D23E316A728EAD4C30968F3D0C69E38 /* DTPieProgressIndicator.h in Headers */ = {isa = PBXBuildFile; fileRef = 173194D38C897D8E38AD8A194E47DB5C /* DTPieProgressIndicator.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4D2640B41A756FA16BCBAC667460FD10 /* RDEpubReaderSpreadResolver.swift in Sources */ = {isa = PBXBuildFile; fileRef = CABD447CD3A40D2D3C8E80590B8361B7 /* RDEpubReaderSpreadResolver.swift */; }; - 4D45731159EA1D951C642A46AB0A3B38 /* RDEPUBNotePopupCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5D6E84305CAE9A6583309CA93366E15 /* RDEPUBNotePopupCoordinator.swift */; }; - 4D58FC9031CA9144B783CCE85047089A /* epub-bridge.js in Resources */ = {isa = PBXBuildFile; fileRef = 4E3C6089F68358EFF3598A4990F5C545 /* epub-bridge.js */; }; + 4A1C478E94E4BB919BFB0F08796D1B42 /* RDEPUBChapterSummaryDiskCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E354F34DFA8299AB7C81BBDF7D09416 /* RDEPUBChapterSummaryDiskCache.swift */; }; + 4A4C6FD8BF03727CA722411AB78B27BD /* Archive+ZIP64.swift in Sources */ = {isa = PBXBuildFile; fileRef = D18519BCA8FAA9B01A704A0F0B9FFC78 /* Archive+ZIP64.swift */; }; + 4AF61CE812F0984882B4102DFDAEA13C /* RDEPUBCFISerializer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1AE1960723317596B2CDAD13DD4ECE9D /* RDEPUBCFISerializer.swift */; }; + 4B23A19A2E9B85701EA803E293A35FB5 /* NSString+DTPaths.m in Sources */ = {isa = PBXBuildFile; fileRef = D30DBDF1EDB20CF83690AC6619AA0C48 /* NSString+DTPaths.m */; }; + 4D7E2E9FCDAD56B16A2A413F3AAB2C25 /* RDEPUBWebDecorationOverlayView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5700AB7336CC9B028927801ED1496E5D /* RDEPUBWebDecorationOverlayView.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, ); }; }; - 4E6E2981D78BED42BFB236A570E76176 /* RDEpubReaderPagingController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B7180AF39B62FE6A6B43E7BE45E45C31 /* RDEpubReaderPagingController.swift */; }; + 4E64C7CE0CDDD901F057216D8BA82E63 /* RDEPUBTextBookBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94F05ED49F210D554CD806EF09DD1943 /* RDEPUBTextBookBuilder.swift */; }; 4F50C703427747B88405080B221349A1 /* DTLinkButton.h in Headers */ = {isa = PBXBuildFile; fileRef = B12CE4962CDC324FB47FB92D6706D149 /* DTLinkButton.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4F9B2DB33A8FE255DDAF17E97D68227B /* RDEPUBSettingsFlipAutomation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 774F11C36F2A16D57002B67C22552875 /* RDEPUBSettingsFlipAutomation.swift */; }; 5065D99E1588E8CC60677E74916A5C03 /* DTAttributedTextCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 814315319ED50AF916C3C8A68C0A47A0 /* DTAttributedTextCell.m */; }; - 50887D3ADF90BFE2720EBA9B6FABBAA2 /* NSString+DTURLEncoding.h in Headers */ = {isa = PBXBuildFile; fileRef = CEEC8715398E89B42F9B04E290E8E4FE /* NSString+DTURLEncoding.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 509C0C64CF80609A3A9ECBCE6D3C38AA /* RDEpubReaderTapRegionHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8EA2C6CFA053A4B06F2AAB2EA0D17A4B /* RDEpubReaderTapRegionHandler.swift */; }; - 51098D0F512DA347D755590FD7586D57 /* RDEPUBCoreTextPageFrameFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4A6313EEF4AEDADB4793D6CAEC32B0A /* RDEPUBCoreTextPageFrameFactory.swift */; }; + 5186D6E60C60C989A1ED6772123463D8 /* ImageIO.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FEB14A8F8170777DB7CCC3F27C8EA57A /* ImageIO.framework */; }; + 518A4391191B09389465F612A4FFAABD /* RDEPUBWebView+JavaScriptBridge.swift in Sources */ = {isa = PBXBuildFile; fileRef = 652B4DE8E7317B396EFC883822577223 /* RDEPUBWebView+JavaScriptBridge.swift */; }; 51A1B5800D23C355B1712E8D1103780C /* DTTextBlock.h in Headers */ = {isa = PBXBuildFile; fileRef = EA2BF1D7535B036E1356E8DF42A04954 /* DTTextBlock.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 51A36881977B9EE908F7E172FE272B65 /* RDEPUBBookPageMap.swift in Sources */ = {isa = PBXBuildFile; fileRef = 141F26097C53F79C40A22E78C96EE4FE /* RDEPUBBookPageMap.swift */; }; + 51C1FDAA3AB32952107C2C24921BAB91 /* RDEPUBAttachmentTooltipOverlayView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C22FB911A2A36812B470ADF6121EBF7 /* RDEPUBAttachmentTooltipOverlayView.swift */; }; + 51D130668DBF433DD66CF60CFB8DC23C /* RDEPUBDecryptingImageAttachment.swift in Sources */ = {isa = PBXBuildFile; fileRef = 91B7A1A2FC0993456CCF9C01C4420F07 /* RDEPUBDecryptingImageAttachment.swift */; }; 528DBAC7FCEFC7D6575C1F6CB4399AEA /* DTStylesheetHTMLElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A88AA04D7B29A217B432C19AC48AB6B /* DTStylesheetHTMLElement.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 542013DD6C510E7A820D2CB071B1219E /* cssInjector.js in Resources */ = {isa = PBXBuildFile; fileRef = B26A41A391468A542EFC7C0F2D1A94AC /* cssInjector.js */; }; - 5517E8BF85383E87597737B7C063403C /* RDEPUBRenderRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 00C39185B11404EA80AFE34E589E7496 /* RDEPUBRenderRequest.swift */; }; + 5313F46037D674A56C56AEA0627CFD9B /* RDEPUBReaderServices.swift in Sources */ = {isa = PBXBuildFile; fileRef = C44B5AB69C27DBBA102BE789F5FF0978 /* RDEPUBReaderServices.swift */; }; + 5493ADB6F5BA9531FED4508C34B5126C /* RDEPUBReaderController+ExternalLinks.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94CABDFEA31C33C50440C3B058BAF148 /* RDEPUBReaderController+ExternalLinks.swift */; }; 5582735073EBB9F5078E6E8AEEFB646A /* DTCoreTextLayoutLine.h in Headers */ = {isa = PBXBuildFile; fileRef = 37327141DC73DE2D5742BE6F989094CE /* DTCoreTextLayoutLine.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 56188173A91EF51B7010905C6FCB22D2 /* UIScreen+DTFoundation.h in Headers */ = {isa = PBXBuildFile; fileRef = 9C5E29D728B8CD4EABC0B3DD9CD9DE99 /* UIScreen+DTFoundation.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5719913D1BAA2CB6B405F41F827580DE /* RDEpubPlainTextBookBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CBCA6E5C76DE2C9362183A2B3763C08 /* RDEpubPlainTextBookBuilder.swift */; }; - 57AC6E68683D2ABB49A4B67E02411534 /* DTExtendedFileAttributes.m in Sources */ = {isa = PBXBuildFile; fileRef = 56E8939081946D090FD77A04F879754C /* DTExtendedFileAttributes.m */; }; + 5590771672ECACFBEF330210BA9895D6 /* NSFileWrapper+DTCopying.h in Headers */ = {isa = PBXBuildFile; fileRef = B43D7603C0D66635268842EC0A2655AC /* NSFileWrapper+DTCopying.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 559256BF38B8A2D1F607AE7C939AA48D /* DTBlockFunctions.h in Headers */ = {isa = PBXBuildFile; fileRef = 35417EC94F2D58CB80C991F875CE15C2 /* DTBlockFunctions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 565D69812720FD28A4FB7B2318AFEECC /* RDEPUBSelectionLoupeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E12E23F6DB8D39D8D6EEC2E2C4E28A99 /* RDEPUBSelectionLoupeView.swift */; }; + 56EEF06FAAE6884D91591ADCF5C0DE66 /* RDEPUBChapterTailNormalizer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 413CDD9E8BE3530106C59CBACC41D1E6 /* RDEPUBChapterTailNormalizer.swift */; }; + 57A8CA23A416D8A6EAAAA31119E2F9E0 /* Archive+Progress.swift in Sources */ = {isa = PBXBuildFile; fileRef = DE83356F8FBC1801D29CA93C1A190D81 /* Archive+Progress.swift */; }; 57D5228C8A85628772D4D78E7FBEAF3C /* DTDictationPlaceholderTextAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = 8DA0F94C0870C1F0DFADE5E9045E5E6E /* DTDictationPlaceholderTextAttachment.m */; }; - 584975F754B7B0F6773141E5788D9002 /* DTCoreGraphicsUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 2C1A7359A45BB880877A672C57F522FE /* DTCoreGraphicsUtils.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 58CB40846060096DCEBFF452787552E9 /* RDEPUBChapterCacheKey.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6DE016AAB61669B1F22DA37005C9CCC7 /* RDEPUBChapterCacheKey.swift */; }; + 5864824C49A92A737CBFB6C4CBE8C4A7 /* DTCoreGraphicsUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 0372FD1824BC43F7BD6B337430201420 /* DTCoreGraphicsUtils.m */; }; + 58C665673C3487FBB4FE3252B104CFCD /* RDEPUBReaderState.swift in Sources */ = {isa = PBXBuildFile; fileRef = F7621EBFDF9CB28F0C15A295D278586F /* RDEPUBReaderState.swift */; }; 597DE4CDF5C674E269F03F6AA0AFFCC1 /* NSAttributedString+HTML.m in Sources */ = {isa = PBXBuildFile; fileRef = 71EE0B4D4D1B3D0A55E903E7E0CA44E7 /* NSAttributedString+HTML.m */; }; - 5A1F91D233524561D955A9A8C469C597 /* RDEPUBFontFallbackResolver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 344F132625D1DB107D6F88F810131154 /* RDEPUBFontFallbackResolver.swift */; }; - 5AB3B36FCE78B63E84BE2044872A9AD5 /* RDEPUBRuntimeChapter.swift in Sources */ = {isa = PBXBuildFile; fileRef = A05983FAA61E2029A29085B98DEDC010 /* RDEPUBRuntimeChapter.swift */; }; - 5CAF56EF5E99F0788C26CB4C52182EDD /* NSString+DTPaths.h in Headers */ = {isa = PBXBuildFile; fileRef = B76B1E836C34CB755AEE1FBF7DC26BDD /* NSString+DTPaths.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5CEAFB1EE890C110409F5D157012C0E7 /* RDEPUBTextPageDecorationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1251AEBAF40F77167C2B57D0A466DAA4 /* RDEPUBTextPageDecorationView.swift */; }; + 5B25516F5A2B918BD9C3B9717C708ECF /* RDEpubReaderView+ContentAccess.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8641AD7E391CA203D99AF176DB9FFD3C /* RDEpubReaderView+ContentAccess.swift */; }; 5D03A5B9DC067875CFEC9D4EA7B059E8 /* DTCoreTextLayoutFrameAccessibilityElementGenerator.h in Headers */ = {isa = PBXBuildFile; fileRef = 671C2429406FDB36B677F4B6EC85B52F /* DTCoreTextLayoutFrameAccessibilityElementGenerator.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5D5A653F98557AEB4F10EA1FC3BB67B4 /* RDEPUBJumpSession.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1DAF4368F1F937FA1A0F92353D8286A4 /* RDEPUBJumpSession.swift */; }; 5D8D65121E87E419D8D2F23F8AF43673 /* DTColor+Compatibility.h in Headers */ = {isa = PBXBuildFile; fileRef = 68D81DF1BB2A14F9C186F75BBA5CF50D /* DTColor+Compatibility.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5DBD89A108305B3DAE1D415BE9CBFEC2 /* NSData+DTCrypto.h in Headers */ = {isa = PBXBuildFile; fileRef = 94705DADD1F09F4162F7D733318238F4 /* NSData+DTCrypto.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5E24441D23EA52049F2E955644FF13D7 /* RDEPUBCFI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 442D5E8B0118B18E067F09D23CB652DF /* RDEPUBCFI.swift */; }; + 5D9491B825DAC5C8083EB48D3602DF05 /* RDEPUBChapterRuntimeStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC13894C150346B04A92269EA6AD9204 /* RDEPUBChapterRuntimeStore.swift */; }; + 5DEC030EBE9BF49EB9DDDBFA02E4E6A2 /* RDEPUBReaderViewportMonitor.swift in Sources */ = {isa = PBXBuildFile; fileRef = F508C2B8F652F2A20A8F37B7E1AE0E49 /* RDEPUBReaderViewportMonitor.swift */; }; 5E90EBD876ED4E50AB890FB56C4BFA57 /* DTHTMLParserNode.h in Headers */ = {isa = PBXBuildFile; fileRef = D28A3E79D83EA4B807E2D3A5EE086B8B /* DTHTMLParserNode.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5FA1ED066966420F71E6B562C351B5DE /* DTBlockFunctions.m in Sources */ = {isa = PBXBuildFile; fileRef = 6D2316F422A6C97F95F9CF43E6F8E94F /* DTBlockFunctions.m */; }; + 5FE583EB6AEFD80AE9809EEE6BF6D25E /* RDEPUBPageInteractionController.swift in Sources */ = {isa = PBXBuildFile; fileRef = E62CA2D2BA86C387EA2A9EA66DA6EFB4 /* RDEPUBPageInteractionController.swift */; }; 60532A2E06CCFF814933D2FAE6793AE9 /* DTCoreTextLayouter.h in Headers */ = {isa = PBXBuildFile; fileRef = 72225FB74594FCF18DA8064E7DB3947E /* DTCoreTextLayouter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 60721E7D396AE3937C7133AB576FD883 /* String+RDEPUB.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0CF886110ECBE6539FAF53C10B1498A /* String+RDEPUB.swift */; }; 61BE3607EABD2657BC71AF8ACB1C25D4 /* DTHTMLAttributedStringBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 4E1066A8FE63AD2C818E26DDCE62DF58 /* DTHTMLAttributedStringBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6277845A6CCAAA5F160D86F6AA458341 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B50104DE2E35D820ECA22CDB3E6F96EA /* Foundation.framework */; }; - 63A5CC78A647FBD1141999BBB2BDF21B /* RDEPUBReaderController+RuntimeBridge.swift in Sources */ = {isa = PBXBuildFile; fileRef = A48F69748B05758B4CB62757E8CF6464 /* RDEPUBReaderController+RuntimeBridge.swift */; }; - 64AD1C8FACAD892C74600ECB3814FB7E /* RDEPUBBookPageMap.swift in Sources */ = {isa = PBXBuildFile; fileRef = E935E1C0DB2E3250D48D6F7B1F1785EB /* RDEPUBBookPageMap.swift */; }; - 64E474FDB28F0C3CDAC624A41775468A /* RDEpubReaderView+ToolView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE76CB44588C6BA77E5E95CFF23BD68C /* RDEpubReaderView+ToolView.swift */; }; - 65207A50AA57064D307EC65F01B1FED2 /* RDEpubReaderView+ContentAccess.swift in Sources */ = {isa = PBXBuildFile; fileRef = A8FEC8336CD4C54BF17C89ED0AEFC376 /* RDEpubReaderView+ContentAccess.swift */; }; - 65826528B7322AC659BE2731BF56C4D7 /* RDEPUBCFIError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3AF5C2B69E3DDD7DB21E7A3498D81D3B /* RDEPUBCFIError.swift */; }; - 65F348EA65F8B9228DDCB4CE85A41CE4 /* RDEPUBReaderPersistence.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1939CE18FB1D0E9342A3963CB1F5C84 /* RDEPUBReaderPersistence.swift */; }; + 62B5FA1C9EEC4F1BBF1E4CAEB38CAA9A /* RDEPUBReaderController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 468E57A9700445D270B23B2998C64B1F /* RDEPUBReaderController.swift */; }; + 6354614C88B16929EFFC76F89ECFBAF0 /* rangy-core.js in Resources */ = {isa = PBXBuildFile; fileRef = 83ACEDCD42A8E805DDD896F543F73413 /* rangy-core.js */; }; + 6359E9C5499EC1B8098AB803AADED3F1 /* rangy-serializer.js in Resources */ = {isa = PBXBuildFile; fileRef = 643923DA1BB22F7BEA8D5752A644241B /* rangy-serializer.js */; }; + 64A50700548B263C54D917C65C086D92 /* RDEPUBNotePopupCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = F6822404F9A7E9674FE4E88E510397DF /* RDEPUBNotePopupCoordinator.swift */; }; + 659F8DB067EF741C4493DCB380ABF744 /* DTCustomColoredAccessory.m in Sources */ = {isa = PBXBuildFile; fileRef = 9542AFE3A82C8AE56576254CE196E71A /* DTCustomColoredAccessory.m */; }; 6634D568E49F5610242E1454680E5885 /* NSAttributedString+SmallCaps.h in Headers */ = {isa = PBXBuildFile; fileRef = CACF20969583778CAC1BC92BB96F27FD /* NSAttributedString+SmallCaps.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6654C4AD722864C4EE65934D55682253 /* NSArray+DTError.h in Headers */ = {isa = PBXBuildFile; fileRef = C7E09A6C247D465CA0EF71B939B2A040 /* NSArray+DTError.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 66C18C65049A5782802895D43619297E /* RDEPUBBackgroundPriorityPolicy.swift in Sources */ = {isa = PBXBuildFile; fileRef = CF94E32627BA15D6DFDA2ECFD0EA75DE /* RDEPUBBackgroundPriorityPolicy.swift */; }; + 67463D3FE0C275A9FAE1DD06CA191D38 /* RDEPUBNoteDetector.swift in Sources */ = {isa = PBXBuildFile; fileRef = 57C580096A60934266E30A16BE65055B /* RDEPUBNoteDetector.swift */; }; + 677DD123A47EEE00A6EE4F4E5A12ADD9 /* Archive.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3E162E0261A5B0850158D3403191E62 /* Archive.swift */; }; + 67A3F62D7F3FAD5A20681CB4A8B4F213 /* UIImage+DTFoundation.h in Headers */ = {isa = PBXBuildFile; fileRef = 1300CC5794E609DB8FBA6FFF90A09408 /* UIImage+DTFoundation.h */; settings = {ATTRIBUTES = (Public, ); }; }; 67AE2AC8D9B961D45871077774E11FD3 /* DTObjectTextAttachment.h in Headers */ = {isa = PBXBuildFile; fileRef = 13597E7190F2C08C5906D7D128E43E99 /* DTObjectTextAttachment.h */; settings = {ATTRIBUTES = (Public, ); }; }; 683ED28788D2B1078B5D3E5EA8B247DC /* Pods-ReadViewDemo-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = AA0811310099A4BCB3D52683B70DB3D1 /* Pods-ReadViewDemo-dummy.m */; }; - 684BDD6CF6B83CB31C2C96E7172241FD /* DTFolderMonitor.h in Headers */ = {isa = PBXBuildFile; fileRef = A8CC38EFEF171FFEE008C32A6319BE6A /* DTFolderMonitor.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 685918559B0E72379697A83A0CAB97BB /* RDEPUBChapterTailNormalizer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6F5DA3828400FEDE014E6CEF4A66E4F8 /* RDEPUBChapterTailNormalizer.swift */; }; 69674FEA70899F07BE6098AAEC849978 /* DTAccessibilityViewProxy.m in Sources */ = {isa = PBXBuildFile; fileRef = 6AC1E707308CDBC9FFC09CECE3117A9A /* DTAccessibilityViewProxy.m */; }; - 6A9D9A375EC9BC31FA823F34FFFE4B46 /* RDEPUBReaderAnnotationCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 376805E5E5095E2902BB687236336C0F /* RDEPUBReaderAnnotationCoordinator.swift */; }; - 6C1327C994F11FDB4EDBDA5CE598CF11 /* Data+Serialization.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9C3615C94C147AEA92F022E119810E9F /* Data+Serialization.swift */; }; - 6C2BF3E69D66D8866F24DB24494E7A3C /* DTFoundationConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = 0F80AC45FB1DBF50E0E3AA4F26BFA676 /* DTFoundationConstants.m */; }; - 6C4C16CD6AFC19E5AE7CB35224BA5C92 /* RDEPUBTextLayouter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D7FE9BC0B7335F2AB850FC2EC727ACD /* RDEPUBTextLayouter.swift */; }; + 69C0EC0CB88F84ECE0EBFC34C4A5AD87 /* NSArray+DTError.h in Headers */ = {isa = PBXBuildFile; fileRef = C7E09A6C247D465CA0EF71B939B2A040 /* NSArray+DTError.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6A7344B93CA8DDF68250309808CA4DDA /* UIApplication+DTNetworkActivity.h in Headers */ = {isa = PBXBuildFile; fileRef = 55423549E54A01F039B5F379B264C73F /* UIApplication+DTNetworkActivity.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6D802F088A02F005913CACB96284853A /* RDEPUBTypesettingPipeline.swift in Sources */ = {isa = PBXBuildFile; fileRef = 455BF75F6B611E3432FDAA69FBF25B80 /* RDEPUBTypesettingPipeline.swift */; }; + 6DC437E80D450202E1FA617107964C50 /* RDEPUBRenderDiagnosticsCollector.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1A6D9B39041E6D939308F1EC09B1DDE4 /* RDEPUBRenderDiagnosticsCollector.swift */; }; + 6E20C280B30CC011FA5FE27225F4CA08 /* RDEpubReaderSpreadResolver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 930CD4C23B5C3D593C6B42CD7A32503E /* RDEpubReaderSpreadResolver.swift */; }; 6E3D0FDD78ECC20F4B3697ED21D64224 /* MediaPlayer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C2B218B5EAA5831A036BBF7E1EFC1B9 /* MediaPlayer.framework */; }; - 6F6E1D10B2D36F1BF24AA22D3EF2053D /* RDEPUBViewportTypes.swift in Sources */ = {isa = PBXBuildFile; fileRef = E3B3807F1E6648C733C6F915288C1E45 /* RDEPUBViewportTypes.swift */; }; + 6EB7D3CDBB2082B2540702EF3B4EE69B /* Archive+WritingDeprecated.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2373DCA0FC45287BFC063BEA661B8367 /* Archive+WritingDeprecated.swift */; }; + 6F745CE30BB3F59EB7ED04C60CB1F3B8 /* RDEPUBChapterLocation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3439002DA99BB7F6F3F9A6A4B7E7D08E /* RDEPUBChapterLocation.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, ); }; }; - 70F233D5255EDA1579EEC9530945F1B5 /* RDEPUBPageInteractionController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 00385D2EEBD20524770BBB6A89C4DB3D /* RDEPUBPageInteractionController.swift */; }; 730ACB99580C5982DC08D50FC5084D41 /* DTAttributedTextView.h in Headers */ = {isa = PBXBuildFile; fileRef = B4D20A2B33F9F4DD8499FB462DE2731F /* DTAttributedTextView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7331D2C6D83AC10A7069FEE42FDA9268 /* RDEpubReaderView-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = A9A949885CFCDF0BF49023658E894E0C /* RDEpubReaderView-dummy.m */; }; 7459A1656EDC29D685073B83561B783E /* NSNumber+RomanNumerals.h in Headers */ = {isa = PBXBuildFile; fileRef = 7CFFB65C5D340A4B5C627B3EF02CD127 /* NSNumber+RomanNumerals.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 745A241FBA65FD761B09197560A4888C /* RDEPUBReaderController+ContentDelegates.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5E81140A7F083D951F3E912FC03A1A3B /* RDEPUBReaderController+ContentDelegates.swift */; }; - 751C87AD55AC0B89BD55CB0A84659855 /* RDEPUBFragmentMarkerInjector.swift in Sources */ = {isa = PBXBuildFile; fileRef = D6C8585AECE0BC205EE95CC484EC6561 /* RDEPUBFragmentMarkerInjector.swift */; }; - 7561605CCF229D3B47E4F7A4214E2495 /* RDEPUBReaderBottomToolView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A49A27A2F307647B468A9652F7A49006 /* RDEPUBReaderBottomToolView.swift */; }; - 75752230AC2DC5B19D73E7F5719C4AE6 /* RDEPUBReaderToolView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA4EC97EE53FBDB24B5FB92C7FE4C7C4 /* RDEPUBReaderToolView.swift */; }; - 75918C499D6B1483FBEBE1B0BC06AD53 /* RDEPUBParser+TOC.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1E86313FAB2369F42BBAC7FE6CAF40B /* RDEPUBParser+TOC.swift */; }; - 75AD0B7A20FF5E8B71750D60477625D3 /* RDEpubReaderPreloadController.swift in Sources */ = {isa = PBXBuildFile; fileRef = E293D93795FE3F3AA09E249FBBAF2169 /* RDEpubReaderPreloadController.swift */; }; - 75C0B88152862378FC69366D5556A4F0 /* RDEPUBChapterRuntimeStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 63C303ED9417890ADDAC0BED62294CB3 /* RDEPUBChapterRuntimeStore.swift */; }; - 76811D5B18D00F172575D6717BF9DA63 /* NSData+DTCrypto.m in Sources */ = {isa = PBXBuildFile; fileRef = F63EBF2BF3000B3391F6E693581EA129 /* NSData+DTCrypto.m */; }; - 76EC3A1185B131D3A341FBB84A7AB936 /* rangy-serializer.js in Resources */ = {isa = PBXBuildFile; fileRef = 8D43BF19A7479296AA8324BFCE1BE87C /* rangy-serializer.js */; }; + 768DCA422F398CA15C36AA1DAAD52E50 /* DTLog.h in Headers */ = {isa = PBXBuildFile; fileRef = 207CC0EEB74CECEB43A870FF80560E0F /* DTLog.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 769EBA6E5FA43A1A221327FEB82DAFBB /* RDEPUBFixedLayoutTemplate.swift in Sources */ = {isa = PBXBuildFile; fileRef = E3896B16059A0D04942F07E7488CE212 /* RDEPUBFixedLayoutTemplate.swift */; }; 7787B4AA97C24C63E120606C94DA300E /* Pods-ReadViewDemo-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = EBA0272559B0F7FAD8AC670AC7431188 /* Pods-ReadViewDemo-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 77FB6F863387E54E46CC81BDA983A621 /* RDEPUBReaderContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9DB65624B7F08BB08886B1AF77CA5A35 /* RDEPUBReaderContext.swift */; }; 7821105EF320619993B3BF7FB90C7ADA /* DTCSSStylesheet.h in Headers */ = {isa = PBXBuildFile; fileRef = 796EF27FF6AA4B62367B6BD9CEBD85A8 /* DTCSSStylesheet.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7882FB8FD1A57CAEA4E4FDEF4952C621 /* UIView+DTFoundation.h in Headers */ = {isa = PBXBuildFile; fileRef = 29DEA4D201BB179BB6E228E9F688CD4C /* UIView+DTFoundation.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 78B9D9E62AA9B8AFE7CCE2073DA0768B /* RDEPUBPresentationRuntime.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C5EFFDA033C18F12383C1494156C527 /* RDEPUBPresentationRuntime.swift */; }; 78D24D82D98D77E744FF73C9040618A8 /* DTHTMLParserNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 5001C74FB9506AEC71E458047698A4AB /* DTHTMLParserNode.m */; }; - 7928AE9F98DF003568813C9DC077236D /* RDEPUBWebView+Configuration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CD0CE49F7A82C0DDA84464EA00115A3 /* RDEPUBWebView+Configuration.swift */; }; - 799E070BA323793383FA81BA733C4DA5 /* NSMutableArray+DTMoving.h in Headers */ = {isa = PBXBuildFile; fileRef = 3046397381A83C2F6BAF344B86AD176E /* NSMutableArray+DTMoving.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7A0AD5DDF58A23FABE861D91A5ADC52A /* RDEPUBReaderState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6A58A47E8A2EEF76C3ED73CB54A086C0 /* RDEPUBReaderState.swift */; }; + 78DB7FD218344F69EDFBBC20FACAF493 /* RDEPUBWebView+Search.swift in Sources */ = {isa = PBXBuildFile; fileRef = D53B5143DBF9F121931A049852F7B439 /* RDEPUBWebView+Search.swift */; }; + 79520BDBC9D41416CB785A7B9F73A782 /* NSMutableArray+DTMoving.m in Sources */ = {isa = PBXBuildFile; fileRef = ADD5B2F66FCCFB58393314E7B9FE4384 /* NSMutableArray+DTMoving.m */; }; + 79AE05934266E75295AB8B6C7479C7FD /* RDEPUBCFI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35D7BCD1656B9EBFCCCD9B0555301C08 /* RDEPUBCFI.swift */; }; + 79F7CBC0AA72EFFF633B4C1E79FB9581 /* DTFoundation-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = FF1C41D226C0957F715EFF3F23893386 /* DTFoundation-dummy.m */; }; + 7A20C1F2913D72E8F0F6FA0AAF118EFA /* RDEPUBStyleCompatibilityModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = E57CDAF0DDE9577615DAD77487138B50 /* RDEPUBStyleCompatibilityModels.swift */; }; 7A48CDFB40202EFD09A2A9AB0EE0770D /* DTCoreTextFontDescriptor.h in Headers */ = {isa = PBXBuildFile; fileRef = 1EF19AD0EF4889156D46061FB43E0F5D /* DTCoreTextFontDescriptor.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7BBB76FF5902D531FC2DEE7596B75DDA /* RDEPUBReaderController+TableOfContents.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED2AB892BC893DB186CD0AFA5CA63F61 /* RDEPUBReaderController+TableOfContents.swift */; }; 7C05F56B62B15EFF344C5CDE4A52B8FB /* DTHTMLElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 7A4E9E54E556A72BC885CCC08B3791C1 /* DTHTMLElement.m */; }; - 7D456A8374BD4A23821CFFB07DDCF583 /* RDEPUBReaderSettingsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 66CF2D711A2AC7E60FFD77AD510F8C2E /* RDEPUBReaderSettingsViewController.swift */; }; - 7E42B74D6ADBBF89D80AC2B85BEDC30D /* RDEPUBImageViewerCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = F57646CB4F9349BC9776772BFDC56B49 /* RDEPUBImageViewerCoordinator.swift */; }; - 7F30613BF7FFC301FA627D3A4FB1F0C5 /* RDEPUBMetadataParseCancellationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65144E0A92FF19D145E244C61896601B /* RDEPUBMetadataParseCancellationController.swift */; }; - 7F4FB7F34D880ECD442F847FA71AD492 /* RDEPUBCFIParser.swift in Sources */ = {isa = PBXBuildFile; fileRef = FB1327FE6CC30C4AC4A5124BEB747510 /* RDEPUBCFIParser.swift */; }; + 7D5F0717FD16276C651D92E48BD26513 /* RDEPUBParser+ReadingProfile.swift in Sources */ = {isa = PBXBuildFile; fileRef = 49105E189A5AD0FAE11851C6B699A745 /* RDEPUBParser+ReadingProfile.swift */; }; + 7D8A904D3344A8095F404106FA0ED5BC /* RDEPUBWebView+Reflowable.swift in Sources */ = {isa = PBXBuildFile; fileRef = CF39A21E0450FE6C70C3B4B7F15919F8 /* RDEPUBWebView+Reflowable.swift */; }; 7F9CC306B17D409DB903DF850FEDA64C /* DTListItemHTMLElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 61B18088896D291E0CE7718DFE82FAC1 /* DTListItemHTMLElement.m */; }; + 7FAA2A3A6DFC9B09CF329D8B29BFBD1E /* RDEpubReaderView+PageCurl.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6B520A0DEBF06CF993CCA4B521BD9689 /* RDEpubReaderView+PageCurl.swift */; }; + 7FDB23FD87E6B583A8A281766AF52F0E /* cssInjector.js in Resources */ = {isa = PBXBuildFile; fileRef = 9509C7DF773CFA2CC5948683BEDDF25F /* cssInjector.js */; }; 8099F1E613A15275EF5FC59ED3C73579 /* NSAttributedString+HTML.h in Headers */ = {isa = PBXBuildFile; fileRef = 7805DFC2CB71F5B6BBF7891876360EFB /* NSAttributedString+HTML.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 80FC00E351AC0D6D2F46E4394E929CF6 /* RDEPUBCFIUtilities.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E7113A77F93EA57B195F8A039935FF3 /* RDEPUBCFIUtilities.swift */; }; 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 */; }; - 81676AD4528CF268CB913CF3F27E00A2 /* DTExtendedFileAttributes.h in Headers */ = {isa = PBXBuildFile; fileRef = 2F75437CE9F9324D315E417014797C1D /* DTExtendedFileAttributes.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8179F8F50EDBD602A3A05A57D2738C4F /* RDEPUBPaginationModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = FC0B33BDB6F7F3F950944CB3E69CDA68 /* RDEPUBPaginationModels.swift */; }; 81905A7717925A17E6B98E934A75B8BA /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0834E84632886CDD9911CAB76183F1CE /* QuartzCore.framework */; }; - 81F6BC0B7D2391F2FE65A174AFCBCBCB /* RDEPUBCFIResolver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C12125CE2086E4553539302D7B12BB3 /* RDEPUBCFIResolver.swift */; }; 82119A0DC4981CC2AF389C7C4CC08186 /* DTListItemHTMLElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 5DB480D0B78911DBF96986E64A714907 /* DTListItemHTMLElement.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 828A7941546DB2AB7EB6C2ACB4C812D5 /* RDEPUBFragmentMarkerInjector.swift in Sources */ = {isa = PBXBuildFile; fileRef = E03059382049F6C22019EBF7CC482011 /* RDEPUBFragmentMarkerInjector.swift */; }; + 828A84419D693A32124C7ADEAC5B45EC /* RDEPUBWebContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 319D8B60168C932575003FA2717DA0A2 /* RDEPUBWebContentView.swift */; }; + 829FABEC19D9936223E2B7EA504E1837 /* RDEPUBReaderLoadCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFFBC2B5CED248344B9C711B6D54DABB /* RDEPUBReaderLoadCoordinator.swift */; }; 83A4BC9FE4765C9B848DD4925D99F362 /* DTAccessibilityElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D146C3F4B7878B5CE8EFF38765580C2 /* DTAccessibilityElement.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 876E49146880469D4CE3D5232EE6FC90 /* RDEPUBNoteModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = 272CA6E32EEAE8E81504F1CD3000E925 /* RDEPUBNoteModels.swift */; }; - 879859E12B2187F26613F5158A9AF2EC /* RDEPUBChapterWarmupOrchestrator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C746B6D8EF063C2B6C54882895756D6 /* RDEPUBChapterWarmupOrchestrator.swift */; }; - 87A23E9C163C19613C2643A27F192AA3 /* RDEPUBReaderController+DataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 38887F7296CA064DFC5B3ABBE16EE16C /* RDEPUBReaderController+DataSource.swift */; }; - 88F2D3A8852C62750F27E9DDBACC5E80 /* DTLog.m in Sources */ = {isa = PBXBuildFile; fileRef = 199E2ECC77BDAC03F644C20040F042D4 /* DTLog.m */; }; - 890E2633C30FA49F9947BF7956F24175 /* RDEPUBTextPageRenderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 698DD735E4FB33C89CEA4216C18CD31E /* RDEPUBTextPageRenderView.swift */; }; - 89B3A1D41C047AB90325994EEBFFC141 /* NSMutableArray+DTMoving.m in Sources */ = {isa = PBXBuildFile; fileRef = ADD5B2F66FCCFB58393314E7B9FE4384 /* NSMutableArray+DTMoving.m */; }; + 85F59057CC1C420248230817D9698428 /* RDEPUBReaderAssemblyCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A46A3005ACAB77D9CB0CAF634ED430A /* RDEPUBReaderAssemblyCoordinator.swift */; }; + 85F95E263FAFF56E8AB46175744B2F7A /* Data+Serialization.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9C3615C94C147AEA92F022E119810E9F /* Data+Serialization.swift */; }; + 86B19521EE751EC00AAC4DE7792BC976 /* RDEPUBReaderAnnotationCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 349A1F9009A12CD9B4E6F706EEACD8B8 /* RDEPUBReaderAnnotationCoordinator.swift */; }; + 8734AFB8552278280C48D058D7D90828 /* RDEPUBResourceDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5E26179D651FB113885BE60137917D31 /* RDEPUBResourceDataProvider.swift */; }; + 87526E3EC15B6CB9F23FEF90C5F38E81 /* RDEPUBRuntimeChapter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 137155DEDF1E628B8966A663B395A297 /* RDEPUBRuntimeChapter.swift */; }; + 875E45FFAD65DFAA26D7C194C79A485C /* default.css in Resources */ = {isa = PBXBuildFile; fileRef = 47DC174612C98B2CFB4E7D158169139E /* default.css */; }; + 887BFFFDA11366564EE455DE7551CCD1 /* DTFoundationConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = 0F80AC45FB1DBF50E0E3AA4F26BFA676 /* DTFoundationConstants.m */; }; + 88E470EE945721FB2E06AC69DDADDB9C /* DTPieProgressIndicator.h in Headers */ = {isa = PBXBuildFile; fileRef = 173194D38C897D8E38AD8A194E47DB5C /* DTPieProgressIndicator.h */; settings = {ATTRIBUTES = (Public, ); }; }; 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, ); }; }; + 8A3B455DFE937CF6AC713A6F4F4DAFC7 /* UIScreen+DTFoundation.m in Sources */ = {isa = PBXBuildFile; fileRef = AF436E76C893E223A4F0BE86C1276054 /* UIScreen+DTFoundation.m */; }; 8AC90941E71199090BCED76DE89EFB60 /* DTAttributedTextView.m in Sources */ = {isa = PBXBuildFile; fileRef = F46010C3A0C82AE5ABEC814D7EC6351B /* DTAttributedTextView.m */; }; 8B405CE13E7D718A9340A82B52766AB2 /* NSCharacterSet+HTML.h in Headers */ = {isa = PBXBuildFile; fileRef = A7E167717A18E0C858C6FD95804249E4 /* NSCharacterSet+HTML.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8BD146DDAFEE91B40B1946154580BE95 /* RDEPUBPaginator.swift in Sources */ = {isa = PBXBuildFile; fileRef = F88EF2BFEFAC452A2D6082C661041929 /* RDEPUBPaginator.swift */; }; - 8BF9CE9063E06BB318FE214E669391AD /* RDEPUBSelectionOverlayView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0D94BA24C3E1653B2ADF0961B2DFD09F /* RDEPUBSelectionOverlayView.swift */; }; - 8E71545C934B03B3131BD995D43D18BD /* DTCompatibility.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F653EFBBEDAAC96A34BC93B4211E792 /* DTCompatibility.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8C107DA9EF9A64C2FD55CFE912EE80E3 /* RDEPUBPaginator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F1380E4CD3BCF3EF32508ADEEF3DC1D /* RDEPUBPaginator.swift */; }; + 8CFBFB780C47E417A2EA25216A3521B7 /* RDEPUBHTMLNormalizer.swift in Sources */ = {isa = PBXBuildFile; fileRef = FFC43898C44FDC7EB2254731C16610E7 /* RDEPUBHTMLNormalizer.swift */; }; + 8D06477969D540765D52E318A225F1C8 /* NSString+DTPaths.h in Headers */ = {isa = PBXBuildFile; fileRef = B76B1E836C34CB755AEE1FBF7DC26BDD /* NSString+DTPaths.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8DF017191755AB903A3F3B847F2DF758 /* NSURL+DTUnshorten.h in Headers */ = {isa = PBXBuildFile; fileRef = ACA6D26B26D2653D6E1C871A482BD6DF /* NSURL+DTUnshorten.h */; settings = {ATTRIBUTES = (Public, ); }; }; 8E8726381CBCFB1EDB350183456D4EF7 /* DTHTMLParserTextNode.m in Sources */ = {isa = PBXBuildFile; fileRef = E5377786E80195587BF3E8A7589E5925 /* DTHTMLParserTextNode.m */; }; - 8E909D0FE7B6AB696AA03294AC9DEA23 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B50104DE2E35D820ECA22CDB3E6F96EA /* Foundation.framework */; }; - 8EB2C64782A5B3E28B464EC7DC62E941 /* RDEPUBWebView+Reflowable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B06436C03160A6968FEE44D6C916F2E /* RDEPUBWebView+Reflowable.swift */; }; - 8F082DD6458E2C5F76062E7D7FAF121F /* RDEPUBReadingLocationModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98D44DA052097D1223C075A582A6E1C7 /* RDEPUBReadingLocationModels.swift */; }; - 91052B4F93F977458CC1A5EA78DF1DEE /* FileManager+ZIP.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6C3F8DF48C6EB28BFD05F5BB49793DDA /* FileManager+ZIP.swift */; }; + 8EEBC02E90E4E1450769ECE63C086CBB /* RDEPUBParser+Archive.swift in Sources */ = {isa = PBXBuildFile; fileRef = D3E28E9CC424366C83C3FD1EEE3D55C9 /* RDEPUBParser+Archive.swift */; }; + 8F3F81C51635C6FEDA5B50F531214138 /* DTCustomColoredAccessory.h in Headers */ = {isa = PBXBuildFile; fileRef = BAE45673EE2875DB23FA7BDD61FDE1EF /* DTCustomColoredAccessory.h */; settings = {ATTRIBUTES = (Public, ); }; }; 91FDA47810CE5CE2C48AED9205AE89B5 /* DTStylesheetHTMLElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 354C1C3A74DB75C8B8608D538212A963 /* DTStylesheetHTMLElement.m */; }; - 920A2A7EF5F2915D271D229AA0E895DD /* Date+ZIP.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18D23D8D10719754D93032F66EB98536 /* Date+ZIP.swift */; }; - 929443ED1ADB72355635234DDF0923C0 /* RDEPUBReaderController+Orientation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8A1B3AAEE7814FA72D7C528E10D49C3C /* RDEPUBReaderController+Orientation.swift */; }; 92C59F96D443525E8833676479FA60C5 /* DTVideoTextAttachment.h in Headers */ = {isa = PBXBuildFile; fileRef = 50C2868064310B16D2B5FD9901C846DC /* DTVideoTextAttachment.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9317D936D1624DAFFC0665186084B9A7 /* DTBase64Coding.h in Headers */ = {isa = PBXBuildFile; fileRef = 519087D9CD0F5E440E6D2C3B1AA1DFA2 /* DTBase64Coding.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 934D9A4D7F0455ABD8C4CEC056AD1F53 /* RDEPUBTextRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8612BCF374E10CB4503D16E19A381417 /* RDEPUBTextRenderer.swift */; }; - 93FF39CA95B10B233EA1419CF95ED174 /* RDEPUBReaderSearchCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4EC9324EF18C7802D6401A32D6B5C2CC /* RDEPUBReaderSearchCoordinator.swift */; }; - 94A660CFA88E3A99BA840BC7C081FAF5 /* DTFoundationConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = FF63F5E8902D6F3F5E845A924EBBC6D3 /* DTFoundationConstants.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 92FB3C83BF8BA98021C2AD24BBD0D122 /* Archive+Writing.swift in Sources */ = {isa = PBXBuildFile; fileRef = B0218A7B243387C79E099CA947CF243D /* Archive+Writing.swift */; }; + 932BA9C53210C5347E63397ADA712B01 /* RDEPUBCFIParser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BB6241845CE67D939A6A48B126343D2 /* RDEPUBCFIParser.swift */; }; + 93CF72A0801EA18E1DB1D4780641D600 /* RDEPUBReaderTopToolView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FAED053B066D78C71607CBA6C86AD4E5 /* RDEPUBReaderTopToolView.swift */; }; 94F5846979DBC90E2B646E975F5ECBA8 /* DTHTMLWriter.h in Headers */ = {isa = PBXBuildFile; fileRef = 14E63A0D35D4A07BD0123021EA161C99 /* DTHTMLWriter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9502E9B316CAD4D98520953DA4915B21 /* RDEPUBReaderController+RenderSupport.swift in Sources */ = {isa = PBXBuildFile; fileRef = F344665C57510633A0980B1F2F023A2F /* RDEPUBReaderController+RenderSupport.swift */; }; - 96822D638C109FD3B0248756D3C49054 /* RDEPUBCFICompatibility.swift in Sources */ = {isa = PBXBuildFile; fileRef = 915069D65E023E6D8140D847BBCAEF3A /* RDEPUBCFICompatibility.swift */; }; - 968B20B8DFA56F0E43056D8B437D22F8 /* RDEPUBReaderContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA19A96B26E75A87DFA7F1E213474E48 /* RDEPUBReaderContext.swift */; }; - 9760E98CC0951B6B8C058FB45926203A /* Archive+MemoryFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFF51E56E09E095C92CB5B9F21384027 /* Archive+MemoryFile.swift */; }; - 97FF7E96537BE785FC7D2BE9D3A6F48D /* NSString+DTFormatNumbers.m in Sources */ = {isa = PBXBuildFile; fileRef = C5005A9E8F746647585CCAB26853E922 /* NSString+DTFormatNumbers.m */; }; + 955DF4DB44DCB3B2D8A4CA83753CCD11 /* NSURL+DTUnshorten.m in Sources */ = {isa = PBXBuildFile; fileRef = 3A6A858B976D032A3C61540AFF19DEE4 /* NSURL+DTUnshorten.m */; }; + 9628878221A69A856688B4522EC95F6A /* RDEpubReaderView-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 0FCE59911385C68956F5AA92C3A87B66 /* RDEpubReaderView-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 968C9DFEA4AA3A9DD98F4742E864E787 /* RDEPUBWebViewDebug.swift in Sources */ = {isa = PBXBuildFile; fileRef = DACBC55EFB0FBDBFA4EBAB5FEB8435BF /* RDEPUBWebViewDebug.swift */; }; + 97083F50E18975EBD12DFD93624E6B53 /* RDEPUBReaderController+PublicAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92B51B67F5F28B0F2704957985E2DD5E /* RDEPUBReaderController+PublicAPI.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, ); }; }; + 9875F1A4A570D498A1BD4EBB2CD5B35E /* Archive+Deprecated.swift in Sources */ = {isa = PBXBuildFile; fileRef = F3C9CA544EBF55130625F6C3AD2ABFB4 /* Archive+Deprecated.swift */; }; 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, ); }; }; - 99E46C19748D231F3D1D030942B6E1B1 /* RDEPUBNoteDetector.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2023C1B0BC6999F982585F30454EF30 /* RDEPUBNoteDetector.swift */; }; - 99E9D689A47495662954CEE4075C05AD /* UIColor+RDEPUBHex.swift in Sources */ = {isa = PBXBuildFile; fileRef = A33FA1A570B5BA2C5DCAB078F31DE5BF /* UIColor+RDEPUBHex.swift */; }; - 9A250709DAD9354AF5EC1E2DB111096B /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0834E84632886CDD9911CAB76183F1CE /* QuartzCore.framework */; }; - 9ADFD4C5CB7848BF8C877C8F0ECCF627 /* default.css in Resources */ = {isa = PBXBuildFile; fileRef = 47DC174612C98B2CFB4E7D158169139E /* default.css */; }; + 9A634227448D00A3FC71579D09AF785B /* NSString+DTURLEncoding.m in Sources */ = {isa = PBXBuildFile; fileRef = 131C1D8C96DF2D44A2D4F50C5AEFFF11 /* NSString+DTURLEncoding.m */; }; 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 */; }; - 9C4C10EBC3E762CE02A9616E6E64514C /* ImageIO.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FEB14A8F8170777DB7CCC3F27C8EA57A /* ImageIO.framework */; }; + 9BF0FB9D487EE780433B8A0F7AC02B49 /* RDEPUBNotePopupViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CD64015D7D9EC967120ED4B3DDC6072 /* RDEPUBNotePopupViewController.swift */; }; + 9C08204D56186A6F776F0D1F15A8ED84 /* NSArray+DTError.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E5297E7F5769C61C1838962BA76D4F5 /* NSArray+DTError.m */; }; + 9C522D3989BA3F0BB5B98ACFC0662943 /* UIColor+RDEPUBHex.swift in Sources */ = {isa = PBXBuildFile; fileRef = 455C6E7AC61E21B7610D8D95CC98B49F /* UIColor+RDEPUBHex.swift */; }; + 9D429B6E8D291166069D9D363D0860B5 /* RDEPUBSemanticMarkerInjector.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96F4AF8BDDCC631C87EA6F7ABF63D7E0 /* RDEPUBSemanticMarkerInjector.swift */; }; + 9D5D47323C593B482FA600AC88022A8E /* DTFolderMonitor.m in Sources */ = {isa = PBXBuildFile; fileRef = BEA46E51E3616ECEAF0ACCEA9B8C67EF /* DTFolderMonitor.m */; }; 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 */; }; - 9F77C5130284AF5B3A8E3CC488CCB537 /* DTCustomColoredAccessory.m in Sources */ = {isa = PBXBuildFile; fileRef = 9542AFE3A82C8AE56576254CE196E71A /* DTCustomColoredAccessory.m */; }; - A002B3B82F572D8F62C398093EFFC356 /* Entry.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0D93C2002AAECD29B3ED5A14026D3DFE /* Entry.swift */; }; + 9EE07C88D1727DEC35CF8192EE0261F0 /* UIColor+RDEPUB.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2219C1F1BE40DA40EC84119B4AC91ED6 /* UIColor+RDEPUB.swift */; }; + A08377C6E6F4613A2579AA7493F4CED6 /* NSString+DTURLEncoding.h in Headers */ = {isa = PBXBuildFile; fileRef = CEEC8715398E89B42F9B04E290E8E4FE /* NSString+DTURLEncoding.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A0A9EEF0EADC9BCB7288D37D2849B75C /* Archive+Helpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 55B9309F0BDDDE2C3EE13C97BF2C0F1E /* Archive+Helpers.swift */; }; A132A0C9EB13B65FB886B11AA2E6304C /* NSDictionary+DTCoreText.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C891B983F0CC956CAE3978A15875819 /* NSDictionary+DTCoreText.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A29CC045590581A0435ED48791DAB677 /* NSDictionary+DTError.m in Sources */ = {isa = PBXBuildFile; fileRef = 45A67761829BBB3974CE24FE50E459EA /* NSDictionary+DTError.m */; }; + A1D67B58E809ACF2BB5985BEFE2245F7 /* RDEPUBReaderController+TableOfContents.swift in Sources */ = {isa = PBXBuildFile; fileRef = 109C753639D44574829756B34D5651C7 /* RDEPUBReaderController+TableOfContents.swift */; }; A2CA9C27EB2B77637A12723F8CFE7AAB /* NSString+HTML.m in Sources */ = {isa = PBXBuildFile; fileRef = FA107BE47514D01B94B7A2670A9F83E5 /* NSString+HTML.m */; }; - A2FA3F0E9BDA38929CD43EF55BA1F30F /* RDEpubReaderView+CollectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 448445FD208B513040C97CF27CA48852 /* RDEpubReaderView+CollectionView.swift */; }; A30D5C1E413A3D319A83D3410A8A549F /* DTCoreTextParagraphStyle.m in Sources */ = {isa = PBXBuildFile; fileRef = B7C4233DF4FA80BF4A9E6FA5082D49E5 /* DTCoreTextParagraphStyle.m */; }; - A408F09A616AB7B4107965F03AFE340F /* RDEPUBTypesettingPipeline.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85EA0348053B11994DBA92C7B6D7E996 /* RDEPUBTypesettingPipeline.swift */; }; - A58BA01C2B741ED36C7B579D82DF9299 /* RDEPUBCFITextAssertion.swift in Sources */ = {isa = PBXBuildFile; fileRef = 423B499E8F7CDADBC49F611A0A4EE4CB /* RDEPUBCFITextAssertion.swift */; }; + A4786713FFA8CAEFC115B88B70483805 /* NSFileWrapper+DTCopying.m in Sources */ = {isa = PBXBuildFile; fileRef = D9A812C3E577A3ADC36BAE3FF7AA4D9C /* NSFileWrapper+DTCopying.m */; }; + A49BF150A30962F235642FA9A6F4301E /* RDEPUBChapterLoader.swift in Sources */ = {isa = PBXBuildFile; fileRef = A0CBD4A797F1B8D6FC7C2F105D534DE4 /* RDEPUBChapterLoader.swift */; }; + A4C8D40B64601BF79F3A2A6F6B0A2E72 /* RDEPUBViewportTypes.swift in Sources */ = {isa = PBXBuildFile; fileRef = E0F83801397BE9214B379107EA879E93 /* RDEPUBViewportTypes.swift */; }; + A5DD245B9007E96AD1C2B4F7B38178CD /* RDEPUBTextBookModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BB82223A487BB329053B234079997DD /* RDEPUBTextBookModels.swift */; }; + A62387C68DBB8D3DB5C9FE1F7CF17C4B /* DTTiledLayerWithoutFade.h in Headers */ = {isa = PBXBuildFile; fileRef = 0764D155F69503AACFA7AD976825E986 /* DTTiledLayerWithoutFade.h */; settings = {ATTRIBUTES = (Public, ); }; }; A72E9F983E5BBFA7485EFB482B80E89E /* DTWeakSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = E687628EF2FE92D093E3005D21B578E5 /* DTWeakSupport.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A77AAF0A3E7E3C34258AC6DD5BFC8617 /* DTExtendedFileAttributes.h in Headers */ = {isa = PBXBuildFile; fileRef = 2F75437CE9F9324D315E417014797C1D /* DTExtendedFileAttributes.h */; settings = {ATTRIBUTES = (Public, ); }; }; A7D665BBDADBE3D64023FF52E218FCFA /* DTCoreTextConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = E89F199ECDE796B15CAF8E0C1775FAA6 /* DTCoreTextConstants.m */; }; - A866F128FF261777F443C1CDD8223687 /* RDEPUBTextAnnotationOverlay.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC96DD4FDA029CD6D6E810916DEBD563 /* RDEPUBTextAnnotationOverlay.swift */; }; - A99834FF2DD87F43190B51C700D3CEA5 /* UIImage+DTFoundation.m in Sources */ = {isa = PBXBuildFile; fileRef = 499E135F1FEB31C26EB0EF793A90086C /* UIImage+DTFoundation.m */; }; - AA230AF52990B03AB21C893D18B73E09 /* RDEPUBFontNormalizer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97E58B2D3994B2247E96226094D6EA5F /* RDEPUBFontNormalizer.swift */; }; - AA33782864FDA1F1F75C7538038F006D /* RDEPUBWebView+JavaScriptBridge.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1633419ACBF4D75136CB54A9595F07AB /* RDEPUBWebView+JavaScriptBridge.swift */; }; + A857394966E2AA6FD190D5A8C480ED83 /* RDEPUBAttachmentTooltipView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0AB4D55384268E7357D68871603EFA3F /* RDEPUBAttachmentTooltipView.swift */; }; + A8935B69E5590079C9BF436E1C463D13 /* RDEPUBTextPaginationSupport.swift in Sources */ = {isa = PBXBuildFile; fileRef = DE1AE43B8451B52B1EE55485BDB094AC /* RDEPUBTextPaginationSupport.swift */; }; AA3722CC8B4992EDA8A9F5E9116835B7 /* DTCoreText-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = B6CA8CC4525EF64AA5CEE4A722737F1C /* DTCoreText-dummy.m */; }; - AB4E2FB516007251FB7794E5BE62552D /* RDEPUBBackgroundTrace.swift in Sources */ = {isa = PBXBuildFile; fileRef = E9F15AEACE475EF232CB992A4CDCC6E3 /* RDEPUBBackgroundTrace.swift */; }; + AB4F4834EEA8016E0F7267540C4B60A4 /* RDEpubReaderViewProtocols.swift in Sources */ = {isa = PBXBuildFile; fileRef = 292A67D45A60ACC88BAD49BB3CA0A743 /* RDEpubReaderViewProtocols.swift */; }; + ABA77A570534C7861463068DDA41F417 /* RDEPUBTextSelectionController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F01F99F72C9B49C62891C3887909C4B1 /* RDEPUBTextSelectionController.swift */; }; AC084BF5FB00B8C95649991E97BED6E5 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B50104DE2E35D820ECA22CDB3E6F96EA /* Foundation.framework */; }; - AC0E244868EE1BB06DA2FC31EE7FEFF0 /* DTHTMLParser.h in Headers */ = {isa = PBXBuildFile; fileRef = CB2BD1F8CFECB82D427DF046439E68D6 /* DTHTMLParser.h */; settings = {ATTRIBUTES = (Public, ); }; }; - AC24EE11636D8101C9678987A7D7E56B /* DTSmartPagingScrollView.h in Headers */ = {isa = PBXBuildFile; fileRef = 21CCCCAAF832BE9C859BEDDC79B4E9E2 /* DTSmartPagingScrollView.h */; settings = {ATTRIBUTES = (Public, ); }; }; AC7000465258822B466855B12F1F97A3 /* DTCoreTextGlyphRun.h in Headers */ = {isa = PBXBuildFile; fileRef = 771E0D5CBCBC013BF5780FEE5BBA81FF /* DTCoreTextGlyphRun.h */; settings = {ATTRIBUTES = (Public, ); }; }; - ADFBBB7F7EA8D54F062F6FE9A0EA1FA3 /* RDEPUBResourceURLSchemeHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 117C8D3804CD684A0BCFB28E527FE704 /* RDEPUBResourceURLSchemeHandler.swift */; }; - AEA69A182B7FD8571C50C8D6D0BA457E /* RDEPUBAttachmentTooltipView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08AA95F9E01837CBD5833F9D03F5FC8A /* RDEPUBAttachmentTooltipView.swift */; }; - AF71226D0D6B283BC04F8560E9B9C0A7 /* RDEPUBCFISerializer.swift in Sources */ = {isa = PBXBuildFile; fileRef = CB2D03387C98C80186C40EAA590D89BD /* RDEPUBCFISerializer.swift */; }; + ACC9E569106EF0AC77EEBE245DBDEA1E /* Date+ZIP.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18D23D8D10719754D93032F66EB98536 /* Date+ZIP.swift */; }; + ACCC10F1F59C3888937C5B70BB51C53B /* RDEPUBRenderRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3CED4412B3F7C515DE25A43E2078439C /* RDEPUBRenderRequest.swift */; }; + AE53B2A304BF64574D1A8390505ACDA5 /* RDEPUBReaderSettingsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = E0D637E33E3C04A550B5C25D32E4F242 /* RDEPUBReaderSettingsViewController.swift */; }; + AE5A04446DBF4FFCA77A14B0CDA8390F /* RDEPUBPreferences.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3F27BB96781CA1499A4FAD5250D90A95 /* RDEPUBPreferences.swift */; }; + AF672117556F2FE1889FE535E27E0C6E /* RDEPUBChapterCacheKey.swift in Sources */ = {isa = PBXBuildFile; fileRef = E160875ECD036F271801B2FBE8612A42 /* RDEPUBChapterCacheKey.swift */; }; AF7A1DC953992A149CB0815C90769529 /* DTIframeTextAttachment.h in Headers */ = {isa = PBXBuildFile; fileRef = D4C731AA2088D7E873D8E3D21B95D215 /* DTIframeTextAttachment.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B0C819B1181CB7AC0ED2AE0F785C05E2 /* DTBase64Coding.m in Sources */ = {isa = PBXBuildFile; fileRef = E5D4D6E12779C54F17AE98A1E6C9B699 /* DTBase64Coding.m */; }; - B102ABA5BAF500C91E7FEB842E860FD4 /* RDEpubReaderView+PageCurl.swift in Sources */ = {isa = PBXBuildFile; fileRef = B50734FC0871066B8BF8848B60EA53CF /* RDEpubReaderView+PageCurl.swift */; }; - B14BA93598C691CE6094E7B9D8AA2011 /* Data+Compression.swift in Sources */ = {isa = PBXBuildFile; fileRef = 22B69C9433F2FBE5CE8409BD4266DFE8 /* Data+Compression.swift */; }; - B24C4825CE0519A7FB2CF193659F7236 /* RDEPUBReaderConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = DFE26DA6A1180E7B617EE341C73F7A50 /* RDEPUBReaderConfiguration.swift */; }; + B07D8711C3F6F7FA0FA195669E3736E3 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 006D002D86B43AA52E0AFD2E18459107 /* PrivacyInfo.xcprivacy */; }; B24FAD34A7915FC4B90FE9038E814FF2 /* DTLazyImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = CA5630DC0E663F38A9EC713323697EE1 /* DTLazyImageView.m */; }; - B250A5E09EA67FE88C2CED128EFC70CE /* UIApplication+DTNetworkActivity.m in Sources */ = {isa = PBXBuildFile; fileRef = 730B56BC97DFF2B1E04DD2608055D9E0 /* UIApplication+DTNetworkActivity.m */; }; - B2B97CAF20B478A68B805D4BF213ECBD /* RDEPUBBackgroundPriorityPolicy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 44D49963D6EAE25EA025A41D91CEAD23 /* RDEPUBBackgroundPriorityPolicy.swift */; }; - B2BB216A76E7F3B995A0F3D5D099E1BC /* RDEPUBParser.swift in Sources */ = {isa = PBXBuildFile; fileRef = A875D59C9ADB7D356F34F31D11DCC720 /* RDEPUBParser.swift */; }; - B462364CFF89AEFBE3F6B0FDD710F5CD /* RDEPUBStyleCompatibilityModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6D2D23A34A39E1D251E493C14A46A852 /* RDEPUBStyleCompatibilityModels.swift */; }; - B4F523484916B5B5BF93998DC855D056 /* RDEPUBSearchEngine.swift in Sources */ = {isa = PBXBuildFile; fileRef = E6C77B875320EA1C7172B5E8F8A4460A /* RDEPUBSearchEngine.swift */; }; - B4F9C816E5248DBE5D0F5CD82D25A4B4 /* RDEPUBReaderToolViewProtocols.swift in Sources */ = {isa = PBXBuildFile; fileRef = 447C8160AAD2A2E1FE48C8420778A342 /* RDEPUBReaderToolViewProtocols.swift */; }; - B5386D5AFA1F546EFEE6E310BFF4D707 /* NSString+DTUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C80941DE172AF972D2247659684D93A /* NSString+DTUtilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B55D0715C6E8F6847DE6D817EEBF9F2C /* Entry+ZIP64.swift in Sources */ = {isa = PBXBuildFile; fileRef = 288589D0B52F73505B43C743D9837578 /* Entry+ZIP64.swift */; }; - B5A9BB79C1D4D5081CC626C1C75ACA58 /* RDEPUBReaderDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 63731E76CD377576124BFA6BC5764F08 /* RDEPUBReaderDelegate.swift */; }; - B61114677CF259E6270EFD80A28250D6 /* RDEPUBAssetRepository.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1BB49FBD6621286BA60757349FCC6883 /* RDEPUBAssetRepository.swift */; }; - B624BE4D149D61A910396D883766C7B1 /* RDEpubReaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AFC57105C58F0D30043B13D949A57D8E /* RDEpubReaderView.swift */; }; - B637F61E19FA6EBC9889C2BEDF31BE61 /* RDEPUBHTMLNormalizer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93D30E909C16D18D790A184AB3DDF67D /* RDEPUBHTMLNormalizer.swift */; }; + B32517D46C9AA4A6A5E9B483D62B61B2 /* UIImage+DTFoundation.m in Sources */ = {isa = PBXBuildFile; fileRef = 499E135F1FEB31C26EB0EF793A90086C /* UIImage+DTFoundation.m */; }; + B32A5AD74947EDEEC2D5C15E739A966E /* DTHTMLParser.h in Headers */ = {isa = PBXBuildFile; fileRef = CB2BD1F8CFECB82D427DF046439E68D6 /* DTHTMLParser.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B33A1DCF7152EB0A3E66435A57B2AD2F /* RDEpubReaderPagingController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DE82EC616E01A54A95A40DA36BE309D8 /* RDEpubReaderPagingController.swift */; }; + B33D90D23522973F4B957BE6BBDC12B7 /* RDEPUBReaderToolView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6BBE4AEAB48FB2E81DB288DF7B502FBA /* RDEPUBReaderToolView.swift */; }; + B45C528F0CDD7C9CE52346555A0CFAA4 /* RDEPUBSelectionState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0986632744266A78392A1FAA353775EB /* RDEPUBSelectionState.swift */; }; + B66B1AC0DA9EF2FA4C14E650EBA2E5AB /* RDEPUBTextAnchor.swift in Sources */ = {isa = PBXBuildFile; fileRef = F619B4CD11C599BCA22DC6405537C0ED /* RDEPUBTextAnchor.swift */; }; + B76A89C06D8A205986E46A482DEDE707 /* RDEPUBModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3268DB660BB7C8116E35DB5AB0CBA97B /* RDEPUBModels.swift */; }; B7BDD79FC06A1E4E0E17592860844108 /* NSAttributedString+DTCoreText.h in Headers */ = {isa = PBXBuildFile; fileRef = 3985FED7BD8EC49191663BEF73FB2C79 /* NSAttributedString+DTCoreText.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B803A1C571EE32A1E68BDC1ECA3358ED /* RDEPUBTextContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4D5A551AA691377650E64BF614B5315E /* RDEPUBTextContentView.swift */; }; B8332F36582F7A001FE85A8D54B27C9E /* DTCoreTextParagraphStyle.h in Headers */ = {isa = PBXBuildFile; fileRef = BD65B936E2A6FEB74718EA86D9AC1899 /* DTCoreTextParagraphStyle.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B84AAFFF255215E59F8C60CBD8222238 /* FileManager+ZIPDeprecated.swift in Sources */ = {isa = PBXBuildFile; fileRef = F49FC82A04EE9B3B49CBA6CB88ACBC67 /* FileManager+ZIPDeprecated.swift */; }; B86493B996A888D1DA7814ECB6028E22 /* DTHorizontalRuleHTMLElement.m in Sources */ = {isa = PBXBuildFile; fileRef = DD7A2DE5BDF72ABC066484CE554BDEF0 /* DTHorizontalRuleHTMLElement.m */; }; + B8A88F30F3EED0F9C7AEF10BCE791EC2 /* NSData+DTCrypto.h in Headers */ = {isa = PBXBuildFile; fileRef = 94705DADD1F09F4162F7D733318238F4 /* NSData+DTCrypto.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B8D236ACECD5ADC032CB47DF9A2B687A /* DTActivityTitleView.m in Sources */ = {isa = PBXBuildFile; fileRef = 662D30C1E74D1D5122921475F4024F73 /* DTActivityTitleView.m */; }; + B8F20878A7E7606D27F7221E23FE41C2 /* RDEPUBMetadataParseCancellationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B04AD6AE3FF5C760FD284CE7A8744A75 /* RDEPUBMetadataParseCancellationController.swift */; }; B94CD41727DFCA8791EED8FB2CA397DD /* DTCompatibility.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C3D91FFA65414A2787FEB95576E0097 /* DTCompatibility.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BB04C385085B062AD326250F566827A3 /* ZIPFoundation-ZIPFoundation_Privacy in Resources */ = {isa = PBXBuildFile; fileRef = CA4A114775B98CEA4A566C18123B145F /* ZIPFoundation-ZIPFoundation_Privacy */; }; - BB487A86B1365E8F883930A0BFB80668 /* RDEPUBReaderRuntime.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7C6D0CBF46040C1E92580C7CB26A47C /* RDEPUBReaderRuntime.swift */; }; - BB72EACBFD0C77D61A9AA9142C100B10 /* NSFileWrapper+DTCopying.m in Sources */ = {isa = PBXBuildFile; fileRef = D9A812C3E577A3ADC36BAE3FF7AA4D9C /* NSFileWrapper+DTCopying.m */; }; - BC017F711B983AD8E6EE8775B3AB3602 /* UIImage+DTFoundation.h in Headers */ = {isa = PBXBuildFile; fileRef = 1300CC5794E609DB8FBA6FFF90A09408 /* UIImage+DTFoundation.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BC8D2215508131850AC76A34FF268694 /* UIColor+RDEPUB.swift in Sources */ = {isa = PBXBuildFile; fileRef = 17B38E01CD7C86BDC366392058A1D719 /* UIColor+RDEPUB.swift */; }; - BCBDC16EE17A5C45D99597929DA76453 /* RDEPUBResourceDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CA70CE662A3BBAFDEFA4F1AD91006DE /* RDEPUBResourceDataProvider.swift */; }; + B97064FA5D09703EE64C3BE1FB7D7AA6 /* RDEPUBPageMapReconciliationCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = FCEC7E64DDEB788FE417CBD151347F93 /* RDEPUBPageMapReconciliationCoordinator.swift */; }; + B9E2A0E42FE4C8184A617840EA39C023 /* RDEpubReaderGestureController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43EFE6D080E8275932CC5417EEC06CDE /* RDEpubReaderGestureController.swift */; }; + BA342692C6B24E649021E976C68123C9 /* FileManager+ZIP.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6C3F8DF48C6EB28BFD05F5BB49793DDA /* FileManager+ZIP.swift */; }; + BA47113182FFD5568E8DF6167391E810 /* RDEPUBCFIRecoveryEngine.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE14FDB1A9F5658FC96A86D8827B6CAB /* RDEPUBCFIRecoveryEngine.swift */; }; + BB5717D569B9E8A64525285B1EA2EFEF /* RDEPUBReaderTableOfContentsItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = DBE25565E3B8E7A39A04AFC66AFD0350 /* RDEPUBReaderTableOfContentsItem.swift */; }; + BBC3F44EC02D4F634A1B7A6542C3C375 /* DTCoreGraphicsUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 2C1A7359A45BB880877A672C57F522FE /* DTCoreGraphicsUtils.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BC1EDDF14C37EE2589E1D9E25006C1FA /* RDEPUBReaderController+RenderSupport.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0FC20950D4ECD5C5C0AEF9D9F8457621 /* RDEPUBReaderController+RenderSupport.swift */; }; + BE00FE99FF516C6B4CC3EC2C13AABB5A /* RDEPUBResourceResolver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 933CE5D5843A33A69BA28D0B9FBFBF60 /* RDEPUBResourceResolver.swift */; }; BE12CD112F82AD9050D7FB29395F27F9 /* DTVideoTextAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = B83D7A73677A2C3141EDEF56B9CE6584 /* DTVideoTextAttachment.m */; }; - BED12B4CA012BB2D1EC92E136D6457F0 /* DTCoreGraphicsUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 0372FD1824BC43F7BD6B337430201420 /* DTCoreGraphicsUtils.m */; }; - BF411F0538517FC40CDC0FD0A8C7A420 /* RDEPUBModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = 847740E4EA7EBFB8F53710A0CF448BAE /* RDEPUBModels.swift */; }; - BFF82B26C8F0A924864101BE93DBEA1F /* RDEPUBReaderLoadCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29F6775325522C48C45B7023AF9B83EB /* RDEPUBReaderLoadCoordinator.swift */; }; - C20B3A5FE8D80ACCF7281E7CED0826B3 /* RDEPUBReaderLocationCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98C6026F789783895FC83556EF6F289C /* RDEPUBReaderLocationCoordinator.swift */; }; - C2E430A825AC41C57B06D2E35E3A853A /* RDEPUBParser+ReadingProfile.swift in Sources */ = {isa = PBXBuildFile; fileRef = F72A99A09ECD213552D649EF0E7BD081 /* RDEPUBParser+ReadingProfile.swift */; }; - C2E855E2813B0E3231243EBCADD7759E /* RDEPUBReaderAssemblyCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 66497586176C305ADC5F3B447F17FA90 /* RDEPUBReaderAssemblyCoordinator.swift */; }; - C557F129B5958D29FA4015DD182ED2CC /* UIApplication+DTNetworkActivity.h in Headers */ = {isa = PBXBuildFile; fileRef = 55423549E54A01F039B5F379B264C73F /* UIApplication+DTNetworkActivity.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C5DD9E01BE94C43A42088BF48FC4A0C7 /* RDEPUBTextBookCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 612542D38DEA4A8BBD84517629D3482B /* RDEPUBTextBookCache.swift */; }; + BE55DB547FA2EC7642691A23F1010530 /* RDEPUBReaderRuntime.swift in Sources */ = {isa = PBXBuildFile; fileRef = 70138D8FF7E1E61CFF184766A508BAE1 /* RDEPUBReaderRuntime.swift */; }; + BE8491E76C4715935D0C8E261BF7A675 /* NSURL+DTComparing.m in Sources */ = {isa = PBXBuildFile; fileRef = 467CC59CEC3B3BC7ACDCA776FDCBDC1D /* NSURL+DTComparing.m */; }; + C001EFF514F54404EF076F2F019B8C78 /* wxread-replace.css in Resources */ = {isa = PBXBuildFile; fileRef = 1B65375600FD9A1B746EFF833CF8E09D /* wxread-replace.css */; }; + C085C95842FEA5A3B4DC88505CA31B0E /* RDEPUBReaderUIState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D24112D9DBFEFA68D9454F68306EA2F /* RDEPUBReaderUIState.swift */; }; + C0A6D9B4DCA7820FEE7DFAB73146FAAF /* RDEPUBTextAnnotationOverlay.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1251C51C5397546CFB5A75D2B8809422 /* RDEPUBTextAnnotationOverlay.swift */; }; + C18A6D603AC6D68DB2D8DE6681BFF9AD /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B50104DE2E35D820ECA22CDB3E6F96EA /* Foundation.framework */; }; + C305DA79D81AC6A54EFA010E66D4E25B /* NSString+DTFormatNumbers.m in Sources */ = {isa = PBXBuildFile; fileRef = C5005A9E8F746647585CCAB26853E922 /* NSString+DTFormatNumbers.m */; }; + C3A998DC41047D99FA04887069074476 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0834E84632886CDD9911CAB76183F1CE /* QuartzCore.framework */; }; + C3B236C18D509DD6D8D1B88289620E1C /* DTAnimatedGIF.h in Headers */ = {isa = PBXBuildFile; fileRef = F9D9BEF72311AF9E3239F9B92A9D2842 /* DTAnimatedGIF.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C4DE4E07985141A457DE4F5FDE344CF0 /* RDEPUBNoteResolver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 24CF48155EC3DF43BC4CA032E89EEE6B /* RDEPUBNoteResolver.swift */; }; + C4E1CFBB33F46C060FF14306E4D1E534 /* DTActivityTitleView.h in Headers */ = {isa = PBXBuildFile; fileRef = AF1516035C269F7A41EE064AAB14D562 /* DTActivityTitleView.h */; settings = {ATTRIBUTES = (Public, ); }; }; C5EE8E7373FBD24E66C678356393D871 /* DTCoreTextFontCollection.m in Sources */ = {isa = PBXBuildFile; fileRef = 722AF38F5106ADDE6F98D282F886A769 /* DTCoreTextFontCollection.m */; }; - C629CF9C1701AB409A00EC5D460DB964 /* RDEPUBMetadataParseWorker.swift in Sources */ = {isa = PBXBuildFile; fileRef = F486744FB2C3E4E55A9FED93371C7272 /* RDEPUBMetadataParseWorker.swift */; }; - C68E01289F5AF6B9245379348D08820F /* RDEPUBSemanticMarkerInjector.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77F0FB3238D157802C13B7A0495C909B /* RDEPUBSemanticMarkerInjector.swift */; }; + C5F0379ED21BB2F35E5364D8C4A0EAF7 /* DTBlockFunctions.m in Sources */ = {isa = PBXBuildFile; fileRef = 6D2316F422A6C97F95F9CF43E6F8E94F /* DTBlockFunctions.m */; }; C6B65C0EA759DF426FBBBB113BA3C3E8 /* DTBreakHTMLElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D8AE4BEBD1998839BA83AD05CA6CAC5 /* DTBreakHTMLElement.m */; }; + C71592A693B55ECDE05413FED65D5083 /* RDEPUBAttachmentNormalizer.swift in Sources */ = {isa = PBXBuildFile; fileRef = F244E925AD8E03AF454F9847270A83B0 /* RDEPUBAttachmentNormalizer.swift */; }; C72CE4B974DFAE2C3037D425EB559314 /* DTCoreTextLayoutFrame.h in Headers */ = {isa = PBXBuildFile; fileRef = C46FCF109DBCB37595D2A3366CF1D765 /* DTCoreTextLayoutFrame.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C72F5280B5B83EA11ACDF74895E5758F /* RDEPUBReaderServices.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19A9DF3B54605BC418E5EC2AC9C285F9 /* RDEPUBReaderServices.swift */; }; - C7E253517877BD88DD8B0DF7E23D1E89 /* RDEPUBAttachmentTooltipOverlayView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5CC55716AF7BC27FD9268D256ABA314 /* RDEPUBAttachmentTooltipOverlayView.swift */; }; - C8C71942D3A141E7CD5032E8F1016F29 /* RDEPUBParser+Archive.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7FE0F0004B3436CA416F69193354B1AD /* RDEPUBParser+Archive.swift */; }; + C8F08C79FDEE5BB67CAB4C1D29E53693 /* RDEPUBTextLayouter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0CEE332DA13ECCE7122B46F3F48B43D5 /* RDEPUBTextLayouter.swift */; }; C8F753B56A6C4D2A938B6EA68CF522F8 /* DTColorFunctions.h in Headers */ = {isa = PBXBuildFile; fileRef = 720396ED306E768BAD28007D5E96B757 /* DTColorFunctions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C9C8410D0C0FF213B707830293E79235 /* RDEPUBStyleSheetBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = DB7F916B5DAC02317D14747841AF489C /* RDEPUBStyleSheetBuilder.swift */; }; + C96FE53021A249764E00F29B4131D4EC /* RDEPUBReaderController+Orientation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2351FFC9DE1E7557462EA9394EFF7E68 /* RDEPUBReaderController+Orientation.swift */; }; + C979E387C53A31D15351F533306F6A6D /* RDEPUBStyleSheetComposer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 696D9E2450DEE3CFCBE2BAC8B9937FC7 /* RDEPUBStyleSheetComposer.swift */; }; + C9A9C65BFE7EBA0D662212C5E9864D12 /* WeReadApi.js in Resources */ = {isa = PBXBuildFile; fileRef = 4F0996CF78904CED41F7185566E3CE83 /* WeReadApi.js */; }; C9DD05EF2D27FFEBFA7BF6F437168501 /* DTCoreTextConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = A61C8F1BDD76EA59082F65269083BD08 /* DTCoreTextConstants.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CA1F1B6F7C24CCC6F7F8A75E8CD73B5C /* NSFileWrapper+DTCopying.h in Headers */ = {isa = PBXBuildFile; fileRef = B43D7603C0D66635268842EC0A2655AC /* NSFileWrapper+DTCopying.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CA8985779F800BFDE009345B28F346C2 /* RDEPUBChapterData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92D5B64BD3D5489A837054C68FC54D65 /* RDEPUBChapterData.swift */; }; - CBE0B92DBDAB8DF59168B3BDAEF223E0 /* WeReadApi.js in Resources */ = {isa = PBXBuildFile; fileRef = 0437B4D43E3BC006FB3D6082F6DF0C43 /* WeReadApi.js */; }; - CC4DFC98C197D1FE60BF52809CC1B17E /* RDEpubReaderPageChildViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6106ADA2D16E2AB749BC690E59E199B5 /* RDEpubReaderPageChildViewController.swift */; }; + CB7988665226D552F5CA221B952642BC /* RDEPUBTextContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6869156BAAC95D1F5789D33AA634E2A1 /* RDEPUBTextContentView.swift */; }; + CC186DDFBC0B9113ED059BD9476EC03F /* RDEPUBReaderSearchBarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3B4B7A906F8C1CD31C1695AB811CED1 /* RDEPUBReaderSearchBarView.swift */; }; CC8B8F3D758E98B51F69EDFAA69663A4 /* NSString+HTML.h in Headers */ = {isa = PBXBuildFile; fileRef = DC7D3AB85C954DA41E1500936C166C0E /* NSString+HTML.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CEBD70C204E9891A9D5CF70CCF4C9D29 /* UIView+DTFoundation.m in Sources */ = {isa = PBXBuildFile; fileRef = 67DA49B61A249C2B8241D8FE166608C9 /* UIView+DTFoundation.m */; }; - CF5E634F602E6E8723852FE93912CCBA /* NSArray+DTError.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E5297E7F5769C61C1838962BA76D4F5 /* NSArray+DTError.m */; }; - CF7B02001C36BA5BE16362D5C4EBDB07 /* RDEPUBAttachmentNormalizer.swift in Sources */ = {isa = PBXBuildFile; fileRef = B545FD055DB6F5E62A4B3477F7514D97 /* RDEPUBAttachmentNormalizer.swift */; }; - CF851879EEFBFA3EEB9EEC6F74510052 /* RDEpubURLReaderController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C985C2E56D867C385610E439E61BFBFE /* RDEpubURLReaderController.swift */; }; + CC9A12B117DF3D9A7086A79CEE7004E9 /* RDEPUBTextPaginationInterfaces.swift in Sources */ = {isa = PBXBuildFile; fileRef = F971A4BB973BBDB69AF6F51C5EBBCE6F /* RDEPUBTextPaginationInterfaces.swift */; }; + CCB58C85DC72D4C0A260C1FC8CC2AC84 /* RDEPUBSettingsFlipAutomation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D051826AE81C18C9139E4D8AAFE10FA /* RDEPUBSettingsFlipAutomation.swift */; }; + CD1385ACDA793D761B32FFB9C619B1EF /* RDEPUBMetadataParseWorker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 351016CE268A025C24D43F52B5142E2B /* RDEPUBMetadataParseWorker.swift */; }; + CD1515CD09BFDEA7FD01E4BD5CED66F0 /* RDEPUBTextLayoutFrame.swift in Sources */ = {isa = PBXBuildFile; fileRef = 135184246F4FDECFDA5CF000C5FAF61F /* RDEPUBTextLayoutFrame.swift */; }; + CE268E0D66B3952DC1957E64BBBAFC15 /* RDEPUBCFIMap.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8FD921A3FCB23BFE2223C090581A6BDD /* RDEPUBCFIMap.swift */; }; + CE86EAF4FEBCA49AC0EA06CF8C6D7850 /* RDEPUBCFIError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D7408F42F359473D4FF2D39F9F55332 /* RDEPUBCFIError.swift */; }; + CEC0B9A0D4F11D60AD377138AB4814C8 /* UIApplication+DTNetworkActivity.m in Sources */ = {isa = PBXBuildFile; fileRef = 730B56BC97DFF2B1E04DD2608055D9E0 /* UIApplication+DTNetworkActivity.m */; }; CFC49467FE75BFABC22A1CE2FFA26570 /* DTImage+HTML.m in Sources */ = {isa = PBXBuildFile; fileRef = CF1CED3ED65443999913BC0D96ACA151 /* DTImage+HTML.m */; }; - D19AB62540BEEDAD415D616509B08445 /* DTAnimatedGIF.m in Sources */ = {isa = PBXBuildFile; fileRef = A3DE08AC23FE36A6C3F33A04700FDE57 /* DTAnimatedGIF.m */; }; D1A93B2D7F1B312755C48790338D7712 /* DTIframeTextAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = BA8A527A4CCB2AF1C1E26744B301F6B8 /* DTIframeTextAttachment.m */; }; - D20A9C2E855617ADAE9ACCDC4BA2147A /* wxread-dark.css in Resources */ = {isa = PBXBuildFile; fileRef = C8687094F5EB5A27E0D5A0070B19A4C2 /* wxread-dark.css */; }; - D2D0EFD20BB05F026318070DB36D04BD /* FileManager+ZIPDeprecated.swift in Sources */ = {isa = PBXBuildFile; fileRef = F49FC82A04EE9B3B49CBA6CB88ACBC67 /* FileManager+ZIPDeprecated.swift */; }; - D2F7A0CE2F73B4EDCAD52379F2233A6B /* RDEPUBMemoryProbe.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C46A096335AF772EB451C71B476A0C8 /* RDEPUBMemoryProbe.swift */; }; - D32DE4EA99BAA034D0C43502E93E7739 /* RDEPUBParser+Resources.swift in Sources */ = {isa = PBXBuildFile; fileRef = 648B55749AEAFAEC440B7259DA5F18AA /* RDEPUBParser+Resources.swift */; }; - D38DC76225F46051EB5D9476485B4007 /* RDEPUBCFIRecoveryEngine.swift in Sources */ = {isa = PBXBuildFile; fileRef = D46B1E71516E5EC8C9D039B9D836D290 /* RDEPUBCFIRecoveryEngine.swift */; }; + D26FAF023EDCA1930F01DDF01A09DE9C /* DTTiledLayerWithoutFade.m in Sources */ = {isa = PBXBuildFile; fileRef = 23006DBAC610AEB0A4B3EAFEA4FB0567 /* DTTiledLayerWithoutFade.m */; }; + D2ACE37289E86DED74CBEB0726C20838 /* Entry+Serialization.swift in Sources */ = {isa = PBXBuildFile; fileRef = 76C1831768CE55090EADD902B29B6CD1 /* Entry+Serialization.swift */; }; + D2EBD38E40FCE2A7EB8337B40E01EE63 /* RDEPUBCFITextAssertion.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2A012A1477CFB810ED37E6F03B452F46 /* RDEPUBCFITextAssertion.swift */; }; + D327143552E961F147A8FB2EA53D1C7E /* RDEPUBReaderChapterListController.swift in Sources */ = {isa = PBXBuildFile; fileRef = E032FF47C872A33941F25FF668CD0728 /* RDEPUBReaderChapterListController.swift */; }; + D39E343AB3D1141C1669E38559CD24ED /* DTSmartPagingScrollView.m in Sources */ = {isa = PBXBuildFile; fileRef = A20F6F0463A998DC3BD53DE9E63B63DE /* DTSmartPagingScrollView.m */; }; + D4639123C7864348F4EB667C68277807 /* RDEPUBReadingSession.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5F2D710F0EE0316934BAA67D90F0B572 /* RDEPUBReadingSession.swift */; }; + D478AF55E61E39EAF819E91DE2EFAE27 /* RDEPUBFontFallbackResolver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46DD70067784B4B4D90CB55259CBDDA9 /* RDEPUBFontFallbackResolver.swift */; }; + D493143912BAEE46FC32FB2CAB75183F /* RDEPUBCFIDOMPathBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = C927FAF87133B84914A945573DADE009 /* RDEPUBCFIDOMPathBuilder.swift */; }; + D4C32D821201B463A329966062B05A01 /* NSDictionary+DTError.m in Sources */ = {isa = PBXBuildFile; fileRef = 45A67761829BBB3974CE24FE50E459EA /* NSDictionary+DTError.m */; }; D526E03C098DA6CF8F01C1BC126C9BBA /* DTCoreText-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 13F8FC8B51AD434F5D4B0CF5150D7563 /* DTCoreText-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D5D9BDF382C943902AC2A3368DCD932C /* NSURL+DTAppLinks.h in Headers */ = {isa = PBXBuildFile; fileRef = A3F7613E99CAA29881A015D0ED969B86 /* NSURL+DTAppLinks.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D795202CC870F4CEE10864C01005F6D3 /* Archive+WritingDeprecated.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2373DCA0FC45287BFC063BEA661B8367 /* Archive+WritingDeprecated.swift */; }; - D79FE63B494282934EDE065131B29C98 /* RDEPUBTextBuildPipelineInterfaces.swift in Sources */ = {isa = PBXBuildFile; fileRef = A98B084E630DFB6A2A5DB15DFB214FD0 /* RDEPUBTextBuildPipelineInterfaces.swift */; }; - D82A46AA1A5B2F3BB3B6E200544810E6 /* RDEPUBTextRendererSupport.swift in Sources */ = {isa = PBXBuildFile; fileRef = D260C6E64F57CE89343A271FB4804745 /* RDEPUBTextRendererSupport.swift */; }; + D59321F54E0CABDFBF822DB34BC347D0 /* RDEPUBReaderChromeCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF5FF35650CFF55269A6ADEB9DB1F392 /* RDEPUBReaderChromeCoordinator.swift */; }; + D5B0133BAF2F18252AE624EC461AD111 /* RDEPUBCFIPath.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3BA078786E78684657E20DC47B435CB0 /* RDEPUBCFIPath.swift */; }; + D5CC3DFDF87FB32F43F30CFA773F24B7 /* RDEPUBReaderHighlightsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C114307C21E03CC4E2E8305C21E73FB1 /* RDEPUBReaderHighlightsViewController.swift */; }; + D60A1DF04B21F968A69965DDFCB1C346 /* DTCompatibility.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F653EFBBEDAAC96A34BC93B4211E792 /* DTCompatibility.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D66B34354E4FBEA8A542004A793680E7 /* RDEPUBResourceURLSchemeHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89CB9865BCC2678943329CAC4EA50389 /* RDEPUBResourceURLSchemeHandler.swift */; }; + D6D29A50E4BB3C6BF19163F4553FA0CA /* RDEPUBAnnotationEditorViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 61D6D122EB91AFBD7E62793B260F8999 /* RDEPUBAnnotationEditorViewController.swift */; }; + D6D9700A2018A6997A443C1514C051D2 /* RDEPUBTextContentInteractionCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 021B114647CE6D248AECDDE35C192D10 /* RDEPUBTextContentInteractionCoordinator.swift */; }; + D7B972C86F2A7C53268898866BA3B52F /* RDEPUBReaderSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 15302EEE1CDF0C413064A5EBB8294A2E /* RDEPUBReaderSettings.swift */; }; D82DDA4C1E5C4D5378A9E5EA3F8E9DFE /* DTBreakHTMLElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 14283024FA4A0231B32CA22AA907FEFA /* DTBreakHTMLElement.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D89AFCF84CC572910C3447D1C5B88EBE /* RDEPUBChapterOffsetMap.swift in Sources */ = {isa = PBXBuildFile; fileRef = F84F78EBE95C9D7F7DC66344EB40BE9F /* RDEPUBChapterOffsetMap.swift */; }; - D949F02438BC5DE45F525F899D6E1027 /* RDEPUBBuildDiagnosticsReporter.swift in Sources */ = {isa = PBXBuildFile; fileRef = D76AF74F7C0A5657241E97D1CAD4A833 /* RDEPUBBuildDiagnosticsReporter.swift */; }; + D9A05CFA0CD65A7FA2D9BC0A3D4965A9 /* NSURL+DTAppLinks.m in Sources */ = {isa = PBXBuildFile; fileRef = 3453CFB9BDBF6F9D0937EDF5FB2BD07B /* NSURL+DTAppLinks.m */; }; DA5B51E5D80C161D2902B6FC60DA5EC8 /* DTImageTextAttachment.h in Headers */ = {isa = PBXBuildFile; fileRef = 27372A23AA4B051867E7D2C749D1DE81 /* DTImageTextAttachment.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DA678828B54CE961E1C2929A1410A31D /* RDEpubReaderGestureController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A36571C8CAE6B5E67048AF9818B631C6 /* RDEpubReaderGestureController.swift */; }; DAD16D3E6EBB32FF96C63BFE6037065F /* DTLinkButton.m in Sources */ = {isa = PBXBuildFile; fileRef = CE761A55BD57C0BFD6336CD073F85C31 /* DTLinkButton.m */; }; - DADD404DA23EBFC7F0101727EBE88832 /* Archive+Helpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 55B9309F0BDDDE2C3EE13C97BF2C0F1E /* Archive+Helpers.swift */; }; + DAEE63FABE105BC0B542F03EE19122DA /* RDEpubURLReaderController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 233DA4A33C9BE1730F19ADC4DA272D19 /* RDEpubURLReaderController.swift */; }; + DB61F04FD1B31E92B9BDA38259702882 /* RDEPUBReaderBottomToolView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AC9FB2A444D806A54DD076A442901D5E /* RDEPUBReaderBottomToolView.swift */; }; + DB9EA836F57FA95CC3DAAAB3586E9FDB /* NSDictionary+DTError.h in Headers */ = {isa = PBXBuildFile; fileRef = 05838D65DEC339C51AADB17346B7E287 /* NSDictionary+DTError.h */; settings = {ATTRIBUTES = (Public, ); }; }; DBCA42F7E1697F4EC82E0E7C9657851D /* DTAttributedTextCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 068885F1B54CFD5DBBE6E2DC253F7819 /* DTAttributedTextCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DBF354555B4B0353E32231529CB43F0A /* RDEPUBTextBookModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = B99659A42728CF06CA00A18D502850AF /* RDEPUBTextBookModels.swift */; }; + DBD4C142F751F972BD247D621758A966 /* RDEPUBChapterDataCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = A809C97E5256954972B21BFE8DA41D73 /* RDEPUBChapterDataCache.swift */; }; DC3E2932A82AD5D88D8B1EFBF004BEC8 /* DTCSSListStyle.m in Sources */ = {isa = PBXBuildFile; fileRef = 40FD7C9E2E05FB4A73F4C4C70A3AFAF0 /* DTCSSListStyle.m */; }; - DC976BFEBC952457D8C728BA9C43DC55 /* NSURL+DTUnshorten.h in Headers */ = {isa = PBXBuildFile; fileRef = ACA6D26B26D2653D6E1C871A482BD6DF /* NSURL+DTUnshorten.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DCA2EB6A9C43728C911B1084BABADB13 /* NSString+DTURLEncoding.m in Sources */ = {isa = PBXBuildFile; fileRef = 131C1D8C96DF2D44A2D4F50C5AEFFF11 /* NSString+DTURLEncoding.m */; }; - DCD6C3ED3B13C549F589F57C95ED6BBF /* ZIPFoundation-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = E9D8AB18960B56A997408E3235751624 /* ZIPFoundation-dummy.m */; }; - DD5CB019978B6208D0E7ABD017DC7D94 /* RDEPUBTextPageBoundaryValidator.swift in Sources */ = {isa = PBXBuildFile; fileRef = A8C567DF41CC58FE2BA5C88C6B4A71F6 /* RDEPUBTextPageBoundaryValidator.swift */; }; + DD491E0FE55D78471E165DB444255232 /* wxread-default.css in Resources */ = {isa = PBXBuildFile; fileRef = 738C3ACE924986CD364DB0E54819DF5F /* wxread-default.css */; }; DD73CD0E5148961D1ABD80E050122314 /* DTCoreTextFunctions.h in Headers */ = {isa = PBXBuildFile; fileRef = DA2ED17D0DDF5F1C5606BFFD9A512DE4 /* DTCoreTextFunctions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DE1DF6C20E410592A6F6A1262EA189FD /* wxread-default.css in Resources */ = {isa = PBXBuildFile; fileRef = 635A4B503A7681407E2D344472AAEFF8 /* wxread-default.css */; }; + DE5916890AF2873F54017D140A2545DC /* RDEPUBSearchEngine.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B995A87BBDE0DDBE56688C4B540EB66 /* RDEPUBSearchEngine.swift */; }; DE68AD2F426FD462BC70F968E5AF5553 /* DTTextAttachmentHTMLElement.m in Sources */ = {isa = PBXBuildFile; fileRef = AC0A4ED7E936923A29A5EEB1D95D6B55 /* DTTextAttachmentHTMLElement.m */; }; + DED6543DBBD077010615966077B08A2C /* ZIPFoundation-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = E9D8AB18960B56A997408E3235751624 /* ZIPFoundation-dummy.m */; }; DFB5A1C64C7908FD05BEFF7C7B571353 /* DTAttributedLabel.h in Headers */ = {isa = PBXBuildFile; fileRef = 09FF858DC29B73E9B67B32B03CFF4084 /* DTAttributedLabel.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E0FC42C3CD2D1F7E374708F600536D26 /* RDEPUBReaderTableOfContentsItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 66637609CA61FBB1E9F137BD7C0D5A2E /* RDEPUBReaderTableOfContentsItem.swift */; }; - E12C988C3974467F470A512B0E5C54F7 /* RDEPUBPageCountCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = BC69A9D6FE337C36229B5CE0CA4206FF /* RDEPUBPageCountCache.swift */; }; + DFF5E1C84B5540EE49E6BDE57037A13E /* RDEPUBTextIndexTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 838D6B774410B7E4CAF94ADEE11AAAE7 /* RDEPUBTextIndexTable.swift */; }; + E13DC74A70E1F819134544915B2A2A40 /* RDEPUBReaderController+RuntimeBridge.swift in Sources */ = {isa = PBXBuildFile; fileRef = D17BDE91B51FEA96E14261A1618D6566 /* RDEPUBReaderController+RuntimeBridge.swift */; }; + E1AACD0505062235FFA7AB922014CEDF /* RDEPUBReaderPersistence.swift in Sources */ = {isa = PBXBuildFile; fileRef = C2C0197426EE469AC710BC6D91DA77FA /* RDEPUBReaderPersistence.swift */; }; E1DA58105A72D6C0B77A8A9F7822BD68 /* DTCoreTextLayoutFrame.m in Sources */ = {isa = PBXBuildFile; fileRef = 4641C3C93CE32054665ACF80457A7A94 /* DTCoreTextLayoutFrame.m */; }; - E277306E0085BDD4F3A8885EE5351CD2 /* RDEPUBTextBookBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 07FC18458844B9ADFDC71FB8C1A085DE /* RDEPUBTextBookBuilder.swift */; }; - E37E3251D86E8B673CB16F60CA1151C1 /* UIScreen+DTFoundation.m in Sources */ = {isa = PBXBuildFile; fileRef = AF436E76C893E223A4F0BE86C1276054 /* UIScreen+DTFoundation.m */; }; + E282D46F2484B59FD8A8B1F6D04DCE4F /* RDEPUBPublication.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CEFBB20AE6C96B02D38B4A59B36F039 /* RDEPUBPublication.swift */; }; + E3769274189FE5F6C92AA1200B9F162E /* RDEPUBBackgroundCoverageStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = F84EB6F838A120BFBCE3592928F5267B /* RDEPUBBackgroundCoverageStore.swift */; }; E38FC7829B5BDD1588FA487E0FBAC208 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B50104DE2E35D820ECA22CDB3E6F96EA /* Foundation.framework */; }; - E414D1C3659D3390E1429E8E450972D1 /* DTActivityTitleView.h in Headers */ = {isa = PBXBuildFile; fileRef = AF1516035C269F7A41EE064AAB14D562 /* DTActivityTitleView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E586800F63A73B4721C0B3F03E49E942 /* RDEPUBTextAnchor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9B2EA51F3AF54545A450E32FACC3B8C5 /* RDEPUBTextAnchor.swift */; }; - E5AB494FB43314E9ECF733806ED02B1E /* RDEPUBImageViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06A86745BE9CD1C490EC229FA2F09BBD /* RDEPUBImageViewController.swift */; }; - E6701B19F1F17E88D687A13FCBA87277 /* RDEPUBReaderController+AttachmentTooltip.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6D5EB1FE3AA42EEE041C5BAF4391E8B3 /* RDEPUBReaderController+AttachmentTooltip.swift */; }; + E3CEC29E97FD5F899AAD7D8369029224 /* DTSmartPagingScrollView.h in Headers */ = {isa = PBXBuildFile; fileRef = 21CCCCAAF832BE9C859BEDDC79B4E9E2 /* DTSmartPagingScrollView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E5D8AAEAB673A396BCDC5ED1976E992D /* RDEPUBJavaScriptBridge.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13F98DCF70DEEDFBEBAB3647BDDF2660 /* RDEPUBJavaScriptBridge.swift */; }; + E6C8D0B24373D5E00F5BED9A1A1EF9F7 /* RDEPUBTextBookCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82EDEF2944E44F1C18F625C6C26BF209 /* RDEPUBTextBookCache.swift */; }; + E86FC270FCD854E857CA88C556506690 /* RDEPUBPaginationCacheCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A390FEDD8B6AEA874A09FBEA03DA5FB /* RDEPUBPaginationCacheCoordinator.swift */; }; E8AB5CE26A5224EF09E9E363D70C7775 /* DTDictationPlaceholderView.m in Sources */ = {isa = PBXBuildFile; fileRef = 1FA88D00B7B2B2F0BA98BB92DF035906 /* DTDictationPlaceholderView.m */; }; - E9871753E44C96C4AA1F48A81CA35361 /* RDEPUBTextSelectionController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8170A64FBDE3CC44D5EFA56020DC7978 /* RDEPUBTextSelectionController.swift */; }; + E8EACC0939DF9452A17B1CF8A7C8A9DD /* RDEPUBTextRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD9375BCB2ACFD67E672A2460740D2BE /* RDEPUBTextRenderer.swift */; }; + E96117FB0F9C8488ECF5AA23D5F19A0A /* Archive+MemoryFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFF51E56E09E095C92CB5B9F21384027 /* Archive+MemoryFile.swift */; }; + E981FA6BB00723F4CBF3FF2DE0EBCEFA /* RDEPUBCFIGenerator.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC882A6B7818AA32593C00AC4FF0DF4B /* RDEPUBCFIGenerator.swift */; }; + E9CAAE68BC2A876C2137CA44F73F5633 /* RDEPUBAnnotationModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3BEECE8AFB5F28D8230592B605EEEC22 /* RDEPUBAnnotationModels.swift */; }; EA0040823CCF8E97363DB5891F5DA6D0 /* DTCoreTextFunctions.m in Sources */ = {isa = PBXBuildFile; fileRef = 4917E08E6E59460594AC443EDDAB7E77 /* DTCoreTextFunctions.m */; }; - EA13E34B7BF4563DF1D5D2622C7DFF8F /* RDEPUBReaderViewportMonitor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89BD34E68BFF47D27D5F91863AF1BBF1 /* RDEPUBReaderViewportMonitor.swift */; }; - EAB62A5D1D3D572AD18C7566F15279C0 /* RDEpubReaderView-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 3108DBF4D182FE04D56AB715DE874117 /* RDEpubReaderView-dummy.m */; }; - EB0A86053AC9D8A89B4D6E792AD7B7A8 /* RDEPUBTextIndexTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 025D419F9C7DF8D9768FF73AA996BB88 /* RDEPUBTextIndexTable.swift */; }; + EADE8C11C1847B549CDED4CCC415D365 /* RDEPUBReaderToolViewProtocols.swift in Sources */ = {isa = PBXBuildFile; fileRef = DBBE74D1D36F66AC23C0653D7AEA7795 /* RDEPUBReaderToolViewProtocols.swift */; }; + EB43E7D882654C025BC63DFC3F884123 /* RDEPUBWebView+Configuration.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC16F3725AAC7A9B9BDFFF49101768C7 /* RDEPUBWebView+Configuration.swift */; }; + EB6FD0657DCAD893A648C9B8F716B855 /* RDEPUBReaderController+ContentDelegates.swift in Sources */ = {isa = PBXBuildFile; fileRef = 10D69789F90890C992DA00555B99DD79 /* RDEPUBReaderController+ContentDelegates.swift */; }; EBB7E4D4DB253B5F1267CF9B4DDB4E93 /* DTCoreTextFontDescriptor.m in Sources */ = {isa = PBXBuildFile; fileRef = 88464D2E3579F1A5B25DCCA128528938 /* DTCoreTextFontDescriptor.m */; }; - EBF356418C3C6D53BE635CFA4EAA2CEC /* RDEPUBReaderUIState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4830D8C6A94E0C97E0F0675276BFD674 /* RDEPUBReaderUIState.swift */; }; - ED44A43182DD2E248D122AB1AEE76C2E /* RDEPUBTextPageVerticalJustifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F922CBFACAAD201E732987D727209EE /* RDEPUBTextPageVerticalJustifier.swift */; }; + ED4AE5B052E61B733776C141CF50DFD5 /* NSString+DTUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C80941DE172AF972D2247659684D93A /* NSString+DTUtilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; EDA269B595D70EC2B9D81DC890157D63 /* DTAccessibilityViewProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = 399AED6BF151EC39BE4450784795A832 /* DTAccessibilityViewProxy.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EDC73166CF56B7FCE34F2D81D7BA750A /* RDEPUBSafeArea.swift in Sources */ = {isa = PBXBuildFile; fileRef = 700DC188AC75D1F8DBD85D4796BF26CE /* RDEPUBSafeArea.swift */; }; EE4F0992A0F597320FF7BDE4691D0FD4 /* NSString+CSS.h in Headers */ = {isa = PBXBuildFile; fileRef = 3578B97A85BCDC60888FDF87B8F2600C /* NSString+CSS.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EE9B77D43F3023C4088D913B0012E493 /* RDEPUBChapterLocation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 834CDE067D219C544FC721901E8E70B5 /* RDEPUBChapterLocation.swift */; }; - EEE698A9AA88E431076CF2F530BD82A9 /* DTFolderMonitor.m in Sources */ = {isa = PBXBuildFile; fileRef = BEA46E51E3616ECEAF0ACCEA9B8C67EF /* DTFolderMonitor.m */; }; - EF9B5A80BF3D877F80BAEC7508948F22 /* RDEPUBWebContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE31789BAB1A8C59EDFC3C728B350E90 /* RDEPUBWebContentView.swift */; }; - EFE4AC989091964E6030D916FCA02EA7 /* RDEPUBDecryptingImageAttachment.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2B413E5361DB33B983E9237109AD610 /* RDEPUBDecryptingImageAttachment.swift */; }; + EF6805A8089C02A19ECAC3D94B5FB48E /* RDEPUBReaderTheme.swift in Sources */ = {isa = PBXBuildFile; fileRef = 22393315110085198FE2DF91FEE55D6B /* RDEPUBReaderTheme.swift */; }; F006F73F17F2E3CC0E7852E9357BA946 /* DTAnchorHTMLElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 599172147A32B6978EB5AAE1BE55FF7A /* DTAnchorHTMLElement.h */; settings = {ATTRIBUTES = (Public, ); }; }; F0F631056BADA32253528247DF493272 /* DTHTMLElement.h in Headers */ = {isa = PBXBuildFile; fileRef = F7C508BE899A1397560A767CAEADB7B9 /* DTHTMLElement.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F193C9E5DE98B216A99EB20B7B3C01C7 /* RDEPUBCFIMap.swift in Sources */ = {isa = PBXBuildFile; fileRef = E39C7BDD4236B494D4C00CBEC40F4371 /* RDEPUBCFIMap.swift */; }; - F439FC02429CC1C9DD1F6A5E161F61D6 /* RDEPUBSearchModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2B502241DFB110D155ACB255B7597984 /* RDEPUBSearchModels.swift */; }; - F45B5C3A0499EAFD676758C4A361CFC4 /* Archive+Progress.swift in Sources */ = {isa = PBXBuildFile; fileRef = DE83356F8FBC1801D29CA93C1A190D81 /* Archive+Progress.swift */; }; + F17B6A22E04BDAA68F0F1F5C0E45D238 /* ZIPFoundation-ZIPFoundation_Privacy in Resources */ = {isa = PBXBuildFile; fileRef = CA4A114775B98CEA4A566C18123B145F /* ZIPFoundation-ZIPFoundation_Privacy */; }; + F1C1C33B313E4B33936B68CF3AAE5353 /* RDEPUBChapterWarmupOrchestrator.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD99D38FA1379578B40B6A69D34C416B /* RDEPUBChapterWarmupOrchestrator.swift */; }; + F258BE64E176198FF5F2EDA64A6BA078 /* RDEPUBParser+Resources.swift in Sources */ = {isa = PBXBuildFile; fileRef = DF6C2C2EB4C27C788358EED3B9EF18A0 /* RDEPUBParser+Resources.swift */; }; + F35F106D775628DEB6168914F68EB7B0 /* RDEpubReaderTapRegionHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE9251BC09711D75E64B606CAD967665 /* RDEpubReaderTapRegionHandler.swift */; }; + F417CB1FE5BA0C0BFD0B5B3750DC9E34 /* DTFoundation-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 23588B63FC4026A371F5C683744A664C /* DTFoundation-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F42F04FC64B488F4192F1EEB92BB9081 /* RDEpubReaderView+ToolView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4F2BA60CCA5C073E4ACD6F6CE7F7B8B5 /* RDEpubReaderView+ToolView.swift */; }; + F46A79FB31B4EC325A867E885F3133C4 /* RDEpubReaderPageChildViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 192697A8E472FFD6609ECE64CCEAD4BF /* RDEpubReaderPageChildViewController.swift */; }; F4A2E3C4237B8931F61B72FF0BDD6D69 /* DTObjectTextAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = 8EDA1618562CC224690CF6FC03AFED38 /* DTObjectTextAttachment.m */; }; - F4D1800D694F5268E261595E762CA5DD /* DTVersion.m in Sources */ = {isa = PBXBuildFile; fileRef = CCC633BF76C79E0B4A6750337D5DCDB8 /* DTVersion.m */; }; + F4CED96801D8FA175977964BEF53319B /* RDEPUBTextPageVerticalJustifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2B491999733C9C301AD35FCCC8F52950 /* RDEPUBTextPageVerticalJustifier.swift */; }; 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 */; }; - F71ED6002B31FF204556F29CA0265143 /* RDEPUBReaderController+ExternalLinks.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3492A7E1375C07EAACE09CF11D14212D /* RDEPUBReaderController+ExternalLinks.swift */; }; - F7591EEF257622C45FB4686F28808841 /* RDEPUBTextPerformanceSampler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3723CC3DB0E91BE41710A956910CA87F /* RDEPUBTextPerformanceSampler.swift */; }; - F7C33530A1B3E5BFFDC06C08D888DD5D /* RDEPUBSelectionState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82BB9B078A1C0E0BDB1BFBB93A670A2A /* RDEPUBSelectionState.swift */; }; - FA5E7F24DE52E5452B0EC9091D352602 /* RDEPUBPageBreakPolicy.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD12C1ABCF0800609F8579BC62C4997F /* RDEPUBPageBreakPolicy.swift */; }; - FAC3DC7E5DE280771DD4A21A7436E52F /* DTTiledLayerWithoutFade.h in Headers */ = {isa = PBXBuildFile; fileRef = 0764D155F69503AACFA7AD976825E986 /* DTTiledLayerWithoutFade.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F658AD33739615310FDA4AB2266BC862 /* Data+Compression.swift in Sources */ = {isa = PBXBuildFile; fileRef = 22B69C9433F2FBE5CE8409BD4266DFE8 /* Data+Compression.swift */; }; + F6EFCAFF09388F272A9FDDE5783E74CF /* RDEPUBBackgroundTrace.swift in Sources */ = {isa = PBXBuildFile; fileRef = F7D21627239225BB7CC9A73D1BDB7624 /* RDEPUBBackgroundTrace.swift */; }; + F796B1681C9EF945636A9C1E33563F03 /* Entry.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0D93C2002AAECD29B3ED5A14026D3DFE /* Entry.swift */; }; + FA23E7AF74CA4142169A63E3FD607E86 /* Archive+BackingConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 765A94769106D14615FFB30EE1BD5E65 /* Archive+BackingConfiguration.swift */; }; + FAA2993E764DEF54CEDCF6CCA9BA5303 /* RDEPUBChapterOffsetMap.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4295D0D2EA8BCC5E6187DF7D006D7432 /* RDEPUBChapterOffsetMap.swift */; }; + FB686401E06D12786ECD57462C616856 /* RDEPUBTextPageRenderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 40E050B10B411E419812F5ECAC0F49D4 /* RDEPUBTextPageRenderView.swift */; }; + FBC4888BE99434905769ACA352399FE9 /* NSMutableArray+DTMoving.h in Headers */ = {isa = PBXBuildFile; fileRef = 3046397381A83C2F6BAF344B86AD176E /* NSMutableArray+DTMoving.h */; settings = {ATTRIBUTES = (Public, ); }; }; FC5F52919451A15639442B46B38E4C67 /* DTCoreTextLayoutFrame+Cursor.m in Sources */ = {isa = PBXBuildFile; fileRef = EF625CF6A790938F5CE0F0C7DC36E340 /* DTCoreTextLayoutFrame+Cursor.m */; }; - FC9DC8D4C96D819E9BE20F05441E0459 /* DTVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C9575F05D72C239E7E6F079BACDF4C7 /* DTVersion.h */; settings = {ATTRIBUTES = (Public, ); }; }; - FCE6A5A737B87FA6CDEF85A5AB54ACD0 /* Archive+ZIP64.swift in Sources */ = {isa = PBXBuildFile; fileRef = D18519BCA8FAA9B01A704A0F0B9FFC78 /* Archive+ZIP64.swift */; }; - FD088FA26275687CF53057621ADB903C /* RDEPUBReaderController+PublicAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = FBF4C131ADF1BC0D64D695B49AAC8370 /* RDEPUBReaderController+PublicAPI.swift */; }; - FD597D941EC356BFB833A672BABCA2D0 /* RDEPUBReaderChromeCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4DDA63DD315651FD20B81BE242ADFC72 /* RDEPUBReaderChromeCoordinator.swift */; }; FD5D68887297CFA94F543C49DC68A156 /* DTHTMLAttributedStringBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = E0192469A486DA7CECFECEA37518B6B9 /* DTHTMLAttributedStringBuilder.m */; }; - FDFFFDA2B22F1AF0F845CB42C63CFDFB /* DTAnimatedGIF.h in Headers */ = {isa = PBXBuildFile; fileRef = F9D9BEF72311AF9E3239F9B92A9D2842 /* DTAnimatedGIF.h */; settings = {ATTRIBUTES = (Public, ); }; }; FEB00C614DCB6A8A7BDF8DEE11260984 /* NSMutableAttributedString+HTML.m in Sources */ = {isa = PBXBuildFile; fileRef = 7CA72FA9A4F2F42A75C58325738A44AC /* NSMutableAttributedString+HTML.m */; }; + FEECAEEED9B7B0754ED4C7CEB47F0299 /* Archive+Reading.swift in Sources */ = {isa = PBXBuildFile; fileRef = E865600EE9117A9153716299FFA7912D /* Archive+Reading.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - 0A9B46C05BF3C3A70BDDF3F755A55301 /* PBXContainerItemProxy */ = { + 15DF30A9722A60D19A78DDA45AAB6F80 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = E07DDD766DCBF90486BCE6C2EA671E5E; - remoteInfo = "RDEpubReaderView-RDEpubReaderViewAssets"; + remoteGlobalIDString = 8F6E5A5BF72D62CDFD25F91A7CFA3309; + remoteInfo = DTFoundation; }; - 14DAE0FAD0D1B19388CB9AA5D13DC5A4 /* PBXContainerItemProxy */ = { + 43F183413733D85912EE7B22A08405E9 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; remoteGlobalIDString = 0C24CB0E87A728A11AA1124CB360D6A1; remoteInfo = "DTCoreText-Resources"; }; - 184572994656765806610539FDE97D20 /* PBXContainerItemProxy */ = { + 520507E75016CB2CE6A7D2909236A2D7 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; remoteGlobalIDString = FBCB57A3AEAAA3449B3F365930BC0977; remoteInfo = RDEpubReaderView; }; - 291617C41AB3A88D1C83DC7062E96890 /* PBXContainerItemProxy */ = { + 59EDD3324EDF00AFA588E8581933CF3D /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = B88F4EA0695B6B3165C64594850D72C7; + remoteInfo = DTCoreText; + }; + 6E133DB84C650CD9299C634CF4BFF4DC /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = AA15C8469D67684160CC2A7098EB841C; + remoteInfo = ZIPFoundation; + }; + 7B8F60686863BD50DFE659C5C224BBA7 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = E07DDD766DCBF90486BCE6C2EA671E5E; + remoteInfo = "RDEpubReaderView-RDEpubReaderViewAssets"; + }; + 865755327AA3EDE39CD797BE823CB077 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = AA15C8469D67684160CC2A7098EB841C; + remoteInfo = ZIPFoundation; + }; + 9190069A5700AFF4197FC08239E6F928 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = B88F4EA0695B6B3165C64594850D72C7; + remoteInfo = DTCoreText; + }; + 93C72F3A56A10442416CD3DF42EFC21C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 8F6E5A5BF72D62CDFD25F91A7CFA3309; + remoteInfo = DTFoundation; + }; + C29FF9012937BCC661166E8CCD045117 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; remoteGlobalIDString = C7A8D82E407CD3FDC3BA55CEE519B252; remoteInfo = "ZIPFoundation-ZIPFoundation_Privacy"; }; - 5B1CF3E8F84553527E617670496C2759 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = AA15C8469D67684160CC2A7098EB841C; - remoteInfo = ZIPFoundation; - }; - 89EEF9DF71A6BD020500EED6F3B6F74F /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = B88F4EA0695B6B3165C64594850D72C7; - remoteInfo = DTCoreText; - }; - 9CABD6887800C32918AF4DF87BFA0A2E /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = B88F4EA0695B6B3165C64594850D72C7; - remoteInfo = DTCoreText; - }; - C3309B36153779AA44D0A11AA303CD30 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 8F6E5A5BF72D62CDFD25F91A7CFA3309; - remoteInfo = DTFoundation; - }; - F3A9CFD4766AB58EAD7C800B495663A5 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = AA15C8469D67684160CC2A7098EB841C; - remoteInfo = ZIPFoundation; - }; - FC2A40799EA5B233DDF797D1E36600CE /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 8F6E5A5BF72D62CDFD25F91A7CFA3309; - remoteInfo = DTFoundation; - }; /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - 0020851315497D536AE8CB195B6BCA5B /* RDEPUBTextPaginationSupport.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextPaginationSupport.swift; sourceTree = ""; }; - 00385D2EEBD20524770BBB6A89C4DB3D /* RDEPUBPageInteractionController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBPageInteractionController.swift; sourceTree = ""; }; 006D002D86B43AA52E0AFD2E18459107 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = Sources/ZIPFoundation/Resources/PrivacyInfo.xcprivacy; sourceTree = ""; }; - 00C39185B11404EA80AFE34E589E7496 /* RDEPUBRenderRequest.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBRenderRequest.swift; sourceTree = ""; }; - 00CDDB6857017E4C7EFF619210E70807 /* RDEPUBChapterPageCounter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBChapterPageCounter.swift; sourceTree = ""; }; + 013FBBDBB84A86FBE4214ED574A76CCA /* RDEPUBAssetRepository.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBAssetRepository.swift; sourceTree = ""; }; 01DCD1B42D40839F1C8DBBDB11EF09BA /* RDEpubReaderView */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = RDEpubReaderView; path = RDEpubReaderView.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 025D419F9C7DF8D9768FF73AA996BB88 /* RDEPUBTextIndexTable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextIndexTable.swift; sourceTree = ""; }; + 021B114647CE6D248AECDDE35C192D10 /* RDEPUBTextContentInteractionCoordinator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextContentInteractionCoordinator.swift; sourceTree = ""; }; + 0260FAFAF47E57F48EA48DB48C073C96 /* RDEPUBReaderDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderDelegate.swift; sourceTree = ""; }; 0372FD1824BC43F7BD6B337430201420 /* DTCoreGraphicsUtils.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTCoreGraphicsUtils.m; path = Core/Source/DTCoreGraphicsUtils.m; sourceTree = ""; }; - 03B34F9D700619AE17BE5522BBABC08E /* RDEPUBChapterLoader.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBChapterLoader.swift; sourceTree = ""; }; - 0437B4D43E3BC006FB3D6082F6DF0C43 /* WeReadApi.js */ = {isa = PBXFileReference; includeInIndex = 1; name = WeReadApi.js; path = Sources/RDEpubReaderView/EPUBCore/Resources/WeReadApi.js; 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 = ""; }; 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 = ""; }; 068885F1B54CFD5DBBE6E2DC253F7819 /* DTAttributedTextCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTAttributedTextCell.h; path = Core/Source/DTAttributedTextCell.h; sourceTree = ""; }; - 06A86745BE9CD1C490EC229FA2F09BBD /* RDEPUBImageViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBImageViewController.swift; sourceTree = ""; }; + 072A12E69FD0B832AD8BD710163EAF6E /* RDEPUBParser+Package.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBParser+Package.swift"; sourceTree = ""; }; 0764D155F69503AACFA7AD976825E986 /* DTTiledLayerWithoutFade.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTTiledLayerWithoutFade.h; path = Core/Source/iOS/DTTiledLayerWithoutFade.h; sourceTree = ""; }; - 07EF7DFA2327CD5059A2A0B693813195 /* RDEPUBReaderDependencies.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderDependencies.swift; sourceTree = ""; }; - 07FC18458844B9ADFDC71FB8C1A085DE /* RDEPUBTextBookBuilder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextBookBuilder.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; }; - 08AA95F9E01837CBD5833F9D03F5FC8A /* RDEPUBAttachmentTooltipView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBAttachmentTooltipView.swift; sourceTree = ""; }; 08F54C3D9B4AECA08A47309615DC2715 /* DTFoundation-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "DTFoundation-prefix.pch"; sourceTree = ""; }; + 0986632744266A78392A1FAA353775EB /* RDEPUBSelectionState.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBSelectionState.swift; sourceTree = ""; }; 09FF858DC29B73E9B67B32B03CFF4084 /* DTAttributedLabel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTAttributedLabel.h; path = Core/Source/DTAttributedLabel.h; sourceTree = ""; }; - 0B1FC7245885C5EE717A583C35D1EC08 /* RDEPUBNoteResolver.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBNoteResolver.swift; sourceTree = ""; }; + 0AB4D55384268E7357D68871603EFA3F /* RDEPUBAttachmentTooltipView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBAttachmentTooltipView.swift; sourceTree = ""; }; + 0ACE49A008B4CCD718B22517825FA0F9 /* RDEPUBTextPositionConverter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextPositionConverter.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 = ""; }; + 0B8399E496B773A18740B02518D0C022 /* String+RDEPUB.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "String+RDEPUB.swift"; sourceTree = ""; }; 0C24F592C4F38F15DC8C46BE0442B59C /* DTCSSListStyle.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTCSSListStyle.h; path = Core/Source/DTCSSListStyle.h; sourceTree = ""; }; + 0CEE332DA13ECCE7122B46F3F48B43D5 /* RDEPUBTextLayouter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextLayouter.swift; sourceTree = ""; }; 0D93C2002AAECD29B3ED5A14026D3DFE /* Entry.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Entry.swift; path = Sources/ZIPFoundation/Entry.swift; sourceTree = ""; }; - 0D94BA24C3E1653B2ADF0961B2DFD09F /* RDEPUBSelectionOverlayView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBSelectionOverlayView.swift; sourceTree = ""; }; - 0E7113A77F93EA57B195F8A039935FF3 /* RDEPUBCFIUtilities.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBCFIUtilities.swift; sourceTree = ""; }; 0F80AC45FB1DBF50E0E3AA4F26BFA676 /* DTFoundationConstants.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTFoundationConstants.m; path = Core/Source/DTFoundationConstants.m; sourceTree = ""; }; - 0FFD7DFEB52262536F9A2C19B111C229 /* RDEPUBReaderTopToolView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderTopToolView.swift; sourceTree = ""; }; - 117C8D3804CD684A0BCFB28E527FE704 /* RDEPUBResourceURLSchemeHandler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBResourceURLSchemeHandler.swift; sourceTree = ""; }; - 1251AEBAF40F77167C2B57D0A466DAA4 /* RDEPUBTextPageDecorationView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextPageDecorationView.swift; sourceTree = ""; }; + 0FC20950D4ECD5C5C0AEF9D9F8457621 /* RDEPUBReaderController+RenderSupport.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBReaderController+RenderSupport.swift"; sourceTree = ""; }; + 0FCE59911385C68956F5AA92C3A87B66 /* RDEpubReaderView-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "RDEpubReaderView-umbrella.h"; sourceTree = ""; }; + 109C753639D44574829756B34D5651C7 /* RDEPUBReaderController+TableOfContents.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBReaderController+TableOfContents.swift"; sourceTree = ""; }; + 10D69789F90890C992DA00555B99DD79 /* RDEPUBReaderController+ContentDelegates.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBReaderController+ContentDelegates.swift"; sourceTree = ""; }; + 11D146DF988352E84DBB8C0C9D6E4026 /* RDEPUBReaderSearchCoordinator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderSearchCoordinator.swift; sourceTree = ""; }; + 1251C51C5397546CFB5A75D2B8809422 /* RDEPUBTextAnnotationOverlay.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextAnnotationOverlay.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 = ""; }; 1300CC5794E609DB8FBA6FFF90A09408 /* UIImage+DTFoundation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+DTFoundation.h"; path = "Core/Source/iOS/UIImage+DTFoundation.h"; sourceTree = ""; }; + 131769DEED97B4620743A928D7B3C624 /* RDEpubReaderPreloadController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEpubReaderPreloadController.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 = ""; }; + 135184246F4FDECFDA5CF000C5FAF61F /* RDEPUBTextLayoutFrame.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextLayoutFrame.swift; sourceTree = ""; }; 13597E7190F2C08C5906D7D128E43E99 /* DTObjectTextAttachment.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTObjectTextAttachment.h; path = Core/Source/DTObjectTextAttachment.h; sourceTree = ""; }; + 137155DEDF1E628B8966A663B395A297 /* RDEPUBRuntimeChapter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBRuntimeChapter.swift; sourceTree = ""; }; 13F8FC8B51AD434F5D4B0CF5150D7563 /* DTCoreText-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "DTCoreText-umbrella.h"; sourceTree = ""; }; + 13F98DCF70DEEDFBEBAB3647BDDF2660 /* RDEPUBJavaScriptBridge.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBJavaScriptBridge.swift; sourceTree = ""; }; + 141F26097C53F79C40A22E78C96EE4FE /* RDEPUBBookPageMap.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBBookPageMap.swift; sourceTree = ""; }; 14283024FA4A0231B32CA22AA907FEFA /* DTBreakHTMLElement.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTBreakHTMLElement.h; path = Core/Source/DTBreakHTMLElement.h; 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 = ""; }; - 157F831C6FDD7EC227517F29E2CB8590 /* RDEPUBDTCoreTextRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBDTCoreTextRenderer.swift; sourceTree = ""; }; - 1633419ACBF4D75136CB54A9595F07AB /* RDEPUBWebView+JavaScriptBridge.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBWebView+JavaScriptBridge.swift"; sourceTree = ""; }; + 15302EEE1CDF0C413064A5EBB8294A2E /* RDEPUBReaderSettings.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderSettings.swift; sourceTree = ""; }; + 15C5C3C64F13B0CFF74EBDC74F4944C3 /* RDEPUBSearchModels.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBSearchModels.swift; sourceTree = ""; }; 173194D38C897D8E38AD8A194E47DB5C /* DTPieProgressIndicator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTPieProgressIndicator.h; path = Core/Source/iOS/DTPieProgressIndicator.h; sourceTree = ""; }; - 17B38E01CD7C86BDC366392058A1D719 /* UIColor+RDEPUB.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "UIColor+RDEPUB.swift"; sourceTree = ""; }; + 182E35C25ED6D0A21324217217085D5A /* RDEPUBSelectionOverlayView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBSelectionOverlayView.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 = ""; }; - 19169CBEAD412B0E1C17F517F5B30269 /* RDEPUBWebView+Search.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBWebView+Search.swift"; sourceTree = ""; }; + 192697A8E472FFD6609ECE64CCEAD4BF /* RDEpubReaderPageChildViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEpubReaderPageChildViewController.swift; sourceTree = ""; }; 199E2ECC77BDAC03F644C20040F042D4 /* DTLog.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTLog.m; path = Core/Source/DTLog.m; sourceTree = ""; }; - 19A9DF3B54605BC418E5EC2AC9C285F9 /* RDEPUBReaderServices.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderServices.swift; sourceTree = ""; }; - 1A18237B2AA906DE9B54F3FBE756BD95 /* RDEPUBParser+Package.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBParser+Package.swift"; sourceTree = ""; }; + 1A6D9B39041E6D939308F1EC09B1DDE4 /* RDEPUBRenderDiagnosticsCollector.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBRenderDiagnosticsCollector.swift; 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 = ""; }; - 1BB49FBD6621286BA60757349FCC6883 /* RDEPUBAssetRepository.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBAssetRepository.swift; sourceTree = ""; }; - 1C12125CE2086E4553539302D7B12BB3 /* RDEPUBCFIResolver.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBCFIResolver.swift; sourceTree = ""; }; - 1C746B6D8EF063C2B6C54882895756D6 /* RDEPUBChapterWarmupOrchestrator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBChapterWarmupOrchestrator.swift; sourceTree = ""; }; - 1DFD71BAF612FE4B521B30E7E24C4E1A /* RDEPUBReadingSession.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReadingSession.swift; sourceTree = ""; }; + 1AE1960723317596B2CDAD13DD4ECE9D /* RDEPUBCFISerializer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBCFISerializer.swift; sourceTree = ""; }; + 1B65375600FD9A1B746EFF833CF8E09D /* wxread-replace.css */ = {isa = PBXFileReference; includeInIndex = 1; name = "wxread-replace.css"; path = "Sources/RDEpubReaderView/EPUBCore/Resources/wxread-replace.css"; sourceTree = ""; }; + 1DAF4368F1F937FA1A0F92353D8286A4 /* RDEPUBJumpSession.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBJumpSession.swift; sourceTree = ""; }; 1EF19AD0EF4889156D46061FB43E0F5D /* DTCoreTextFontDescriptor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTCoreTextFontDescriptor.h; path = Core/Source/DTCoreTextFontDescriptor.h; sourceTree = ""; }; + 1F1380E4CD3BCF3EF32508ADEEF3DC1D /* RDEPUBPaginator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBPaginator.swift; sourceTree = ""; }; 1F1F7BFB63DE15D627EB8F64829B8AAD /* NSURL+DTComparing.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSURL+DTComparing.h"; path = "Core/Source/NSURL+DTComparing.h"; sourceTree = ""; }; - 1F922CBFACAAD201E732987D727209EE /* RDEPUBTextPageVerticalJustifier.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextPageVerticalJustifier.swift; sourceTree = ""; }; 1FA88D00B7B2B2F0BA98BB92DF035906 /* DTDictationPlaceholderView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTDictationPlaceholderView.m; path = Core/Source/DTDictationPlaceholderView.m; 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 = ""; }; 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 = ""; }; - 229118D72FEDE65A83CE684333A3E6C0 /* RDEPUBPreferences.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBPreferences.swift; sourceTree = ""; }; + 2219C1F1BE40DA40EC84119B4AC91ED6 /* UIColor+RDEPUB.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "UIColor+RDEPUB.swift"; sourceTree = ""; }; + 22393315110085198FE2DF91FEE55D6B /* RDEPUBReaderTheme.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderTheme.swift; sourceTree = ""; }; 22B69C9433F2FBE5CE8409BD4266DFE8 /* Data+Compression.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Data+Compression.swift"; path = "Sources/ZIPFoundation/Data+Compression.swift"; sourceTree = ""; }; 23006DBAC610AEB0A4B3EAFEA4FB0567 /* DTTiledLayerWithoutFade.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTTiledLayerWithoutFade.m; path = Core/Source/iOS/DTTiledLayerWithoutFade.m; sourceTree = ""; }; + 233DA4A33C9BE1730F19ADC4DA272D19 /* RDEpubURLReaderController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEpubURLReaderController.swift; sourceTree = ""; }; + 2351FFC9DE1E7557462EA9394EFF7E68 /* RDEPUBReaderController+Orientation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBReaderController+Orientation.swift"; sourceTree = ""; }; 23588B63FC4026A371F5C683744A664C /* DTFoundation-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "DTFoundation-umbrella.h"; sourceTree = ""; }; 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 = ""; }; + 24CF48155EC3DF43BC4CA032E89EEE6B /* RDEPUBNoteResolver.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBNoteResolver.swift; sourceTree = ""; }; 25DDD76CA572F0C7AB5A8178CF80169D /* DTCoreTextFontCollection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTCoreTextFontCollection.h; path = Core/Source/DTCoreTextFontCollection.h; sourceTree = ""; }; - 27176E77CA7151E15AC5ED7E22E7AD11 /* RDEPUBChapterDataCache.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBChapterDataCache.swift; sourceTree = ""; }; - 272CA6E32EEAE8E81504F1CD3000E925 /* RDEPUBNoteModels.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBNoteModels.swift; sourceTree = ""; }; 27372A23AA4B051867E7D2C749D1DE81 /* DTImageTextAttachment.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTImageTextAttachment.h; path = Core/Source/DTImageTextAttachment.h; sourceTree = ""; }; - 27F9CACA6F2EE61A3431B82175020F04 /* RDEpubReaderView-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "RDEpubReaderView-prefix.pch"; sourceTree = ""; }; + 27551CB4C68AF584450C4B1CC073E894 /* RDEPUBPageBreakPolicy.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBPageBreakPolicy.swift; sourceTree = ""; }; 288589D0B52F73505B43C743D9837578 /* Entry+ZIP64.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Entry+ZIP64.swift"; path = "Sources/ZIPFoundation/Entry+ZIP64.swift"; sourceTree = ""; }; + 2903888BFB6ADFADC198A26EABDB80C4 /* RDEPUBReaderConfiguration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderConfiguration.swift; sourceTree = ""; }; + 292A67D45A60ACC88BAD49BB3CA0A743 /* RDEpubReaderViewProtocols.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEpubReaderViewProtocols.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 = ""; }; - 29F6775325522C48C45B7023AF9B83EB /* RDEPUBReaderLoadCoordinator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderLoadCoordinator.swift; sourceTree = ""; }; - 2AF6AEEC13967258B9E5E8BF691ADDC8 /* RDEPUBReaderController+Trial.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBReaderController+Trial.swift"; sourceTree = ""; }; - 2B502241DFB110D155ACB255B7597984 /* RDEPUBSearchModels.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBSearchModels.swift; sourceTree = ""; }; + 2A012A1477CFB810ED37E6F03B452F46 /* RDEPUBCFITextAssertion.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBCFITextAssertion.swift; sourceTree = ""; }; + 2B491999733C9C301AD35FCCC8F52950 /* RDEPUBTextPageVerticalJustifier.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextPageVerticalJustifier.swift; sourceTree = ""; }; 2C1A7359A45BB880877A672C57F522FE /* DTCoreGraphicsUtils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTCoreGraphicsUtils.h; path = Core/Source/DTCoreGraphicsUtils.h; sourceTree = ""; }; - 2DC9A66DE304F1176D36FD9294F0E536 /* RDEPUBReaderController+LocationResolution.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBReaderController+LocationResolution.swift"; sourceTree = ""; }; + 2CEFBB20AE6C96B02D38B4A59B36F039 /* RDEPUBPublication.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBPublication.swift; sourceTree = ""; }; + 2D051826AE81C18C9139E4D8AAFE10FA /* RDEPUBSettingsFlipAutomation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBSettingsFlipAutomation.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 = ""; }; 2F75437CE9F9324D315E417014797C1D /* DTExtendedFileAttributes.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTExtendedFileAttributes.h; path = Core/Source/DTExtendedFileAttributes.h; 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 = ""; }; - 3108DBF4D182FE04D56AB715DE874117 /* RDEpubReaderView-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "RDEpubReaderView-dummy.m"; sourceTree = ""; }; - 327CD220C81409236F700C96851DB0E0 /* RDEPUBRenderDiagnosticsCollector.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBRenderDiagnosticsCollector.swift; sourceTree = ""; }; - 339103E5D1A1C62BF7B414EE689069F8 /* RDEPUBReaderHighlightsViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderHighlightsViewController.swift; sourceTree = ""; }; - 33CD1120A32A59966196C179B158D57C /* rangy-core.js */ = {isa = PBXFileReference; includeInIndex = 1; name = "rangy-core.js"; path = "Sources/RDEpubReaderView/EPUBCore/Resources/rangy-core.js"; sourceTree = ""; }; - 3415CCD5F8080BB63D594BDCFEA0EB86 /* RDEPUBSafeArea.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBSafeArea.swift; sourceTree = ""; }; - 344F132625D1DB107D6F88F810131154 /* RDEPUBFontFallbackResolver.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBFontFallbackResolver.swift; sourceTree = ""; }; + 319D8B60168C932575003FA2717DA0A2 /* RDEPUBWebContentView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBWebContentView.swift; sourceTree = ""; }; + 3268DB660BB7C8116E35DB5AB0CBA97B /* RDEPUBModels.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBModels.swift; sourceTree = ""; }; + 3391309FA6D682BB75C2614C0F9DE612 /* RDEPUBReaderController+AttachmentTooltip.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBReaderController+AttachmentTooltip.swift"; sourceTree = ""; }; + 3439002DA99BB7F6F3F9A6A4B7E7D08E /* RDEPUBChapterLocation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBChapterLocation.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 = ""; }; - 3492A7E1375C07EAACE09CF11D14212D /* RDEPUBReaderController+ExternalLinks.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBReaderController+ExternalLinks.swift"; sourceTree = ""; }; + 349A1F9009A12CD9B4E6F706EEACD8B8 /* RDEPUBReaderAnnotationCoordinator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderAnnotationCoordinator.swift; sourceTree = ""; }; + 351016CE268A025C24D43F52B5142E2B /* RDEPUBMetadataParseWorker.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBMetadataParseWorker.swift; sourceTree = ""; }; 35417EC94F2D58CB80C991F875CE15C2 /* DTBlockFunctions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTBlockFunctions.h; path = Core/Source/DTBlockFunctions.h; 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 = ""; }; - 3723CC3DB0E91BE41710A956910CA87F /* RDEPUBTextPerformanceSampler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextPerformanceSampler.swift; sourceTree = ""; }; + 35D7BCD1656B9EBFCCCD9B0555301C08 /* RDEPUBCFI.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBCFI.swift; sourceTree = ""; }; 37327141DC73DE2D5742BE6F989094CE /* DTCoreTextLayoutLine.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTCoreTextLayoutLine.h; path = Core/Source/DTCoreTextLayoutLine.h; sourceTree = ""; }; - 376805E5E5095E2902BB687236336C0F /* RDEPUBReaderAnnotationCoordinator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderAnnotationCoordinator.swift; sourceTree = ""; }; - 38887F7296CA064DFC5B3ABBE16EE16C /* RDEPUBReaderController+DataSource.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBReaderController+DataSource.swift"; sourceTree = ""; }; + 37A3E41EAF109E2FA9DF571E5BA96472 /* RDEpubReaderView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEpubReaderView.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 = ""; }; - 3AF5C2B69E3DDD7DB21E7A3498D81D3B /* RDEPUBCFIError.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBCFIError.swift; sourceTree = ""; }; - 3B06436C03160A6968FEE44D6C916F2E /* RDEPUBWebView+Reflowable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBWebView+Reflowable.swift"; sourceTree = ""; }; - 3D7FE9BC0B7335F2AB850FC2EC727ACD /* RDEPUBTextLayouter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextLayouter.swift; sourceTree = ""; }; + 3AA5C3C464886AB7EEF2393527B5DB0F /* RDEpubReaderFlowLayout.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEpubReaderFlowLayout.swift; sourceTree = ""; }; + 3BA078786E78684657E20DC47B435CB0 /* RDEPUBCFIPath.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBCFIPath.swift; sourceTree = ""; }; + 3BEECE8AFB5F28D8230592B605EEEC22 /* RDEPUBAnnotationModels.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBAnnotationModels.swift; sourceTree = ""; }; + 3C612EF938BCED8260BBE438FA9D4A74 /* RDEpubReaderView.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = RDEpubReaderView.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + 3CED4412B3F7C515DE25A43E2078439C /* RDEPUBRenderRequest.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBRenderRequest.swift; sourceTree = ""; }; + 3D24112D9DBFEFA68D9454F68306EA2F /* RDEPUBReaderUIState.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderUIState.swift; sourceTree = ""; }; + 3D2D15B55BBD91FDC3CA4AAA23B8064C /* wxread-replace-latin.css */ = {isa = PBXFileReference; includeInIndex = 1; name = "wxread-replace-latin.css"; path = "Sources/RDEpubReaderView/EPUBCore/Resources/wxread-replace-latin.css"; sourceTree = ""; }; + 3D7408F42F359473D4FF2D39F9F55332 /* RDEPUBCFIError.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBCFIError.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 = ""; }; - 3E6420F3C34E33BDB146AE066B20ED88 /* RDEPUBWebView+FixedLayout.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBWebView+FixedLayout.swift"; sourceTree = ""; }; 3EFAE8DFDDEA1E6047289C86D66381C0 /* DTAttributedLabel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTAttributedLabel.m; path = Core/Source/DTAttributedLabel.m; sourceTree = ""; }; + 3F27BB96781CA1499A4FAD5250D90A95 /* RDEPUBPreferences.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBPreferences.swift; sourceTree = ""; }; + 40E050B10B411E419812F5ECAC0F49D4 /* RDEPUBTextPageRenderView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextPageRenderView.swift; sourceTree = ""; }; 40FD7C9E2E05FB4A73F4C4C70A3AFAF0 /* DTCSSListStyle.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTCSSListStyle.m; path = Core/Source/DTCSSListStyle.m; sourceTree = ""; }; - 4186A080B9749A79809873298A193880 /* RDEpubReaderView-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "RDEpubReaderView-Info.plist"; sourceTree = ""; }; - 423B499E8F7CDADBC49F611A0A4EE4CB /* RDEPUBCFITextAssertion.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBCFITextAssertion.swift; sourceTree = ""; }; + 413CDD9E8BE3530106C59CBACC41D1E6 /* RDEPUBChapterTailNormalizer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBChapterTailNormalizer.swift; sourceTree = ""; }; + 41454FB72CE9EE18949B529EC95B36F6 /* wxread-dark.css */ = {isa = PBXFileReference; includeInIndex = 1; name = "wxread-dark.css"; path = "Sources/RDEpubReaderView/EPUBCore/Resources/wxread-dark.css"; sourceTree = ""; }; + 41E8B14921F172E254BC8C5FC2813C8F /* RDEPUBParser.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBParser.swift; sourceTree = ""; }; + 4295D0D2EA8BCC5E6187DF7D006D7432 /* RDEPUBChapterOffsetMap.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBChapterOffsetMap.swift; sourceTree = ""; }; + 43EFE6D080E8275932CC5417EEC06CDE /* RDEpubReaderGestureController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEpubReaderGestureController.swift; sourceTree = ""; }; 44133205D7FD87B481BF89EA607CA7A4 /* ZIPFoundation-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ZIPFoundation-Info.plist"; sourceTree = ""; }; - 442D5E8B0118B18E067F09D23CB652DF /* RDEPUBCFI.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBCFI.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 = ""; }; - 447C8160AAD2A2E1FE48C8420778A342 /* RDEPUBReaderToolViewProtocols.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderToolViewProtocols.swift; sourceTree = ""; }; - 448445FD208B513040C97CF27CA48852 /* RDEpubReaderView+CollectionView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEpubReaderView+CollectionView.swift"; sourceTree = ""; }; - 44D49963D6EAE25EA025A41D91CEAD23 /* RDEPUBBackgroundPriorityPolicy.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBBackgroundPriorityPolicy.swift; sourceTree = ""; }; 4544C4444DCA90E700611D1281969883 /* DTColorFunctions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTColorFunctions.m; path = Core/Source/DTColorFunctions.m; sourceTree = ""; }; + 455BF75F6B611E3432FDAA69FBF25B80 /* RDEPUBTypesettingPipeline.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTypesettingPipeline.swift; sourceTree = ""; }; + 455C6E7AC61E21B7610D8D95CC98B49F /* UIColor+RDEPUBHex.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "UIColor+RDEPUBHex.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 = ""; }; 4641C3C93CE32054665ACF80457A7A94 /* DTCoreTextLayoutFrame.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTCoreTextLayoutFrame.m; path = Core/Source/DTCoreTextLayoutFrame.m; sourceTree = ""; }; 467CC59CEC3B3BC7ACDCA776FDCBDC1D /* NSURL+DTComparing.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSURL+DTComparing.m"; path = "Core/Source/NSURL+DTComparing.m"; sourceTree = ""; }; - 46F84AE2351143E6F632A3FEE684A62C /* RDEPUBPageMapReconciliationCoordinator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBPageMapReconciliationCoordinator.swift; sourceTree = ""; }; + 468E57A9700445D270B23B2998C64B1F /* RDEPUBReaderController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderController.swift; sourceTree = ""; }; + 46DD70067784B4B4D90CB55259CBDDA9 /* RDEPUBFontFallbackResolver.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBFontFallbackResolver.swift; sourceTree = ""; }; 47DC174612C98B2CFB4E7D158169139E /* default.css */ = {isa = PBXFileReference; includeInIndex = 1; name = default.css; path = Core/Source/default.css; sourceTree = ""; }; - 4830D8C6A94E0C97E0F0675276BFD674 /* RDEPUBReaderUIState.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderUIState.swift; sourceTree = ""; }; 48A4A6EDC08C8AC933D0DCD507E9D173 /* ZIPFoundation */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = ZIPFoundation; path = ZIPFoundation.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 49105E189A5AD0FAE11851C6B699A745 /* RDEPUBParser+ReadingProfile.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBParser+ReadingProfile.swift"; sourceTree = ""; }; 4917E08E6E59460594AC443EDDAB7E77 /* DTCoreTextFunctions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTCoreTextFunctions.m; path = Core/Source/DTCoreTextFunctions.m; sourceTree = ""; }; 4944FE0BE3205F2EC91A6A0550D30B75 /* DTTextAttachment.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTTextAttachment.m; path = Core/Source/DTTextAttachment.m; sourceTree = ""; }; - 499D25E7902D605A5EC2940A714AABE0 /* RDEPUBReaderController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderController.swift; sourceTree = ""; }; + 496BFBBBE6F53ECAEDD0897BCC639ACF /* RDEPUBWebView+FixedLayout.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBWebView+FixedLayout.swift"; 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 = ""; }; + 4A390FEDD8B6AEA874A09FBEA03DA5FB /* RDEPUBPaginationCacheCoordinator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBPaginationCacheCoordinator.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; }; - 4CA70CE662A3BBAFDEFA4F1AD91006DE /* RDEPUBResourceDataProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBResourceDataProvider.swift; sourceTree = ""; }; - 4CD0CE49F7A82C0DDA84464EA00115A3 /* RDEPUBWebView+Configuration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBWebView+Configuration.swift"; sourceTree = ""; }; - 4D5A551AA691377650E64BF614B5315E /* RDEPUBTextContentView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextContentView.swift; sourceTree = ""; }; - 4DDA63DD315651FD20B81BE242ADFC72 /* RDEPUBReaderChromeCoordinator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderChromeCoordinator.swift; sourceTree = ""; }; 4E1066A8FE63AD2C818E26DDCE62DF58 /* DTHTMLAttributedStringBuilder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTHTMLAttributedStringBuilder.h; path = Core/Source/DTHTMLAttributedStringBuilder.h; sourceTree = ""; }; - 4E3C6089F68358EFF3598A4990F5C545 /* epub-bridge.js */ = {isa = PBXFileReference; includeInIndex = 1; name = "epub-bridge.js"; path = "Sources/RDEpubReaderView/EPUBCore/Resources/epub-bridge.js"; sourceTree = ""; }; - 4EC9324EF18C7802D6401A32D6B5C2CC /* RDEPUBReaderSearchCoordinator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderSearchCoordinator.swift; sourceTree = ""; }; + 4F0996CF78904CED41F7185566E3CE83 /* WeReadApi.js */ = {isa = PBXFileReference; includeInIndex = 1; name = WeReadApi.js; path = Sources/RDEpubReaderView/EPUBCore/Resources/WeReadApi.js; sourceTree = ""; }; + 4F2BA60CCA5C073E4ACD6F6CE7F7B8B5 /* RDEpubReaderView+ToolView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEpubReaderView+ToolView.swift"; 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 = ""; }; 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 = ""; }; + 51484DCA01C81BA7D563C3D316CB54F7 /* RDEpubReaderView-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "RDEpubReaderView-Info.plist"; 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 = ""; }; 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 = ""; }; + 55B279EB4E340447F26F6F1F0F09432A /* RDEPUBCoreTextPageFrameFactory.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBCoreTextPageFrameFactory.swift; sourceTree = ""; }; 55B9309F0BDDDE2C3EE13C97BF2C0F1E /* Archive+Helpers.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Archive+Helpers.swift"; path = "Sources/ZIPFoundation/Archive+Helpers.swift"; sourceTree = ""; }; - 56A856C80CDD6B8D9CFEE9C551D5735F /* RDEPUBReaderSettings.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderSettings.swift; sourceTree = ""; }; 56E8939081946D090FD77A04F879754C /* DTExtendedFileAttributes.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTExtendedFileAttributes.m; path = Core/Source/DTExtendedFileAttributes.m; sourceTree = ""; }; + 5700AB7336CC9B028927801ED1496E5D /* RDEPUBWebDecorationOverlayView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBWebDecorationOverlayView.swift; sourceTree = ""; }; 57642B518C047A428FE1266A09E0513F /* DTImageTextAttachment.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTImageTextAttachment.m; path = Core/Source/DTImageTextAttachment.m; sourceTree = ""; }; - 576B635BD8D0994E47FD4CF7E23FEA79 /* RDEPUBTextPaginationInterfaces.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextPaginationInterfaces.swift; sourceTree = ""; }; - 57F3CF4EBE3598B7B7C01D2C19483B86 /* RDEpubReaderView.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = RDEpubReaderView.release.xcconfig; sourceTree = ""; }; - 58BF341C0AB71F05D2FAED75A8A835A2 /* wxread-replace-latin.css */ = {isa = PBXFileReference; includeInIndex = 1; name = "wxread-replace-latin.css"; path = "Sources/RDEpubReaderView/EPUBCore/Resources/wxread-replace-latin.css"; sourceTree = ""; }; + 57C580096A60934266E30A16BE65055B /* RDEPUBNoteDetector.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBNoteDetector.swift; sourceTree = ""; }; + 593FC97490C43D8E023CF07AA8D9DCA5 /* RDEpubReaderView.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = RDEpubReaderView.debug.xcconfig; 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 = ""; }; - 59CDD214151212AC68223A2BCC81D128 /* wxread-replace.css */ = {isa = PBXFileReference; includeInIndex = 1; name = "wxread-replace.css"; path = "Sources/RDEpubReaderView/EPUBCore/Resources/wxread-replace.css"; sourceTree = ""; }; + 5BB6241845CE67D939A6A48B126343D2 /* RDEPUBCFIParser.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBCFIParser.swift; sourceTree = ""; }; + 5BB82223A487BB329053B234079997DD /* RDEPUBTextBookModels.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextBookModels.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 = ""; }; - 5CBCA6E5C76DE2C9362183A2B3763C08 /* RDEpubPlainTextBookBuilder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEpubPlainTextBookBuilder.swift; sourceTree = ""; }; + 5CD64015D7D9EC967120ED4B3DDC6072 /* RDEPUBNotePopupViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBNotePopupViewController.swift; sourceTree = ""; }; 5D146C3F4B7878B5CE8EFF38765580C2 /* DTAccessibilityElement.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTAccessibilityElement.h; path = Core/Source/DTAccessibilityElement.h; sourceTree = ""; }; 5DB480D0B78911DBF96986E64A714907 /* DTListItemHTMLElement.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTListItemHTMLElement.h; path = Core/Source/DTListItemHTMLElement.h; sourceTree = ""; }; - 5E81140A7F083D951F3E912FC03A1A3B /* RDEPUBReaderController+ContentDelegates.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBReaderController+ContentDelegates.swift"; sourceTree = ""; }; - 6106ADA2D16E2AB749BC690E59E199B5 /* RDEpubReaderPageChildViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEpubReaderPageChildViewController.swift; sourceTree = ""; }; - 611D8F816F2E1F33D89B52CA0A04A6F4 /* RDEpubReaderView.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = RDEpubReaderView.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - 612542D38DEA4A8BBD84517629D3482B /* RDEPUBTextBookCache.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextBookCache.swift; sourceTree = ""; }; + 5E26179D651FB113885BE60137917D31 /* RDEPUBResourceDataProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBResourceDataProvider.swift; sourceTree = ""; }; + 5F2D710F0EE0316934BAA67D90F0B572 /* RDEPUBReadingSession.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReadingSession.swift; sourceTree = ""; }; 61B18088896D291E0CE7718DFE82FAC1 /* DTListItemHTMLElement.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTListItemHTMLElement.m; path = Core/Source/DTListItemHTMLElement.m; sourceTree = ""; }; - 634A51FA1417DC27E687D3FF80AD42CB /* RDEPUBPublication.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBPublication.swift; sourceTree = ""; }; - 635A4B503A7681407E2D344472AAEFF8 /* wxread-default.css */ = {isa = PBXFileReference; includeInIndex = 1; name = "wxread-default.css"; path = "Sources/RDEpubReaderView/EPUBCore/Resources/wxread-default.css"; sourceTree = ""; }; - 63731E76CD377576124BFA6BC5764F08 /* RDEPUBReaderDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderDelegate.swift; sourceTree = ""; }; - 63C303ED9417890ADDAC0BED62294CB3 /* RDEPUBChapterRuntimeStore.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBChapterRuntimeStore.swift; sourceTree = ""; }; + 61D6D122EB91AFBD7E62793B260F8999 /* RDEPUBAnnotationEditorViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBAnnotationEditorViewController.swift; sourceTree = ""; }; + 620E64D43B143049172FCA325B875ED0 /* RDEPUBParser+TOC.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBParser+TOC.swift"; sourceTree = ""; }; 6430501430329643C8280B3985C48711 /* URL+ZIP.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "URL+ZIP.swift"; path = "Sources/ZIPFoundation/URL+ZIP.swift"; sourceTree = ""; }; - 643A984CBF55EC9D17CB2D82E7E68B9E /* RDEPUBCFIPath.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBCFIPath.swift; sourceTree = ""; }; - 648B55749AEAFAEC440B7259DA5F18AA /* RDEPUBParser+Resources.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBParser+Resources.swift"; sourceTree = ""; }; - 65144E0A92FF19D145E244C61896601B /* RDEPUBMetadataParseCancellationController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBMetadataParseCancellationController.swift; sourceTree = ""; }; - 6596F63DB6DA0616A8EB8FBA7BEC20F6 /* RDEPUBCFIMarkerInjector.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBCFIMarkerInjector.swift; sourceTree = ""; }; + 643923DA1BB22F7BEA8D5752A644241B /* rangy-serializer.js */ = {isa = PBXFileReference; includeInIndex = 1; name = "rangy-serializer.js"; path = "Sources/RDEpubReaderView/EPUBCore/Resources/rangy-serializer.js"; sourceTree = ""; }; + 652B4DE8E7317B396EFC883822577223 /* RDEPUBWebView+JavaScriptBridge.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBWebView+JavaScriptBridge.swift"; sourceTree = ""; }; + 653229313625F134A4A11EBEBC7152A3 /* RDEPUBReaderDependencies.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderDependencies.swift; sourceTree = ""; }; + 654BB0622F8E7419F01F2F9C3D700D8A /* RDEPUBCFIResolver.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBCFIResolver.swift; sourceTree = ""; }; 662D30C1E74D1D5122921475F4024F73 /* DTActivityTitleView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTActivityTitleView.m; path = Core/Source/iOS/DTActivityTitleView.m; sourceTree = ""; }; - 66497586176C305ADC5F3B447F17FA90 /* RDEPUBReaderAssemblyCoordinator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderAssemblyCoordinator.swift; sourceTree = ""; }; - 66637609CA61FBB1E9F137BD7C0D5A2E /* RDEPUBReaderTableOfContentsItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderTableOfContentsItem.swift; sourceTree = ""; }; - 66CF2D711A2AC7E60FFD77AD510F8C2E /* RDEPUBReaderSettingsViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderSettingsViewController.swift; sourceTree = ""; }; + 66E8E9E37BCD4A22FD90DAACB0B94D9D /* RDEpubReaderView-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "RDEpubReaderView-prefix.pch"; sourceTree = ""; }; 671C2429406FDB36B677F4B6EC85B52F /* DTCoreTextLayoutFrameAccessibilityElementGenerator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTCoreTextLayoutFrameAccessibilityElementGenerator.h; path = Core/Source/DTCoreTextLayoutFrameAccessibilityElementGenerator.h; sourceTree = ""; }; - 677A2034D4184FC4E2836F8A5063AD50 /* RDEPUBReaderTheme.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderTheme.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 = ""; }; + 6869156BAAC95D1F5789D33AA634E2A1 /* RDEPUBTextContentView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextContentView.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 = ""; }; - 698DD735E4FB33C89CEA4216C18CD31E /* RDEPUBTextPageRenderView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextPageRenderView.swift; sourceTree = ""; }; - 6A28433723E70648483D360F3B74FA46 /* RDEPUBPaginationCacheCoordinator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBPaginationCacheCoordinator.swift; sourceTree = ""; }; - 6A58A47E8A2EEF76C3ED73CB54A086C0 /* RDEPUBReaderState.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderState.swift; sourceTree = ""; }; + 696D9E2450DEE3CFCBE2BAC8B9937FC7 /* RDEPUBStyleSheetComposer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBStyleSheetComposer.swift; sourceTree = ""; }; + 6A395A89D72D33EFF65DDE4E0150E901 /* RDEPUBWebView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBWebView.swift; sourceTree = ""; }; 6AC1E707308CDBC9FFC09CECE3117A9A /* DTAccessibilityViewProxy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTAccessibilityViewProxy.m; path = Core/Source/DTAccessibilityViewProxy.m; sourceTree = ""; }; + 6B151204014582972C0694D8E1D89191 /* RDEPUBReadingLocationModels.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReadingLocationModels.swift; sourceTree = ""; }; + 6B520A0DEBF06CF993CCA4B521BD9689 /* RDEpubReaderView+PageCurl.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEpubReaderView+PageCurl.swift"; sourceTree = ""; }; + 6BBE4AEAB48FB2E81DB288DF7B502FBA /* RDEPUBReaderToolView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderToolView.swift; sourceTree = ""; }; 6C3F8DF48C6EB28BFD05F5BB49793DDA /* FileManager+ZIP.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "FileManager+ZIP.swift"; path = "Sources/ZIPFoundation/FileManager+ZIP.swift"; sourceTree = ""; }; 6D2316F422A6C97F95F9CF43E6F8E94F /* DTBlockFunctions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTBlockFunctions.m; path = Core/Source/DTBlockFunctions.m; sourceTree = ""; }; - 6D2D23A34A39E1D251E493C14A46A852 /* RDEPUBStyleCompatibilityModels.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBStyleCompatibilityModels.swift; sourceTree = ""; }; - 6D5EB1FE3AA42EEE041C5BAF4391E8B3 /* RDEPUBReaderController+AttachmentTooltip.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBReaderController+AttachmentTooltip.swift"; sourceTree = ""; }; - 6DE016AAB61669B1F22DA37005C9CCC7 /* RDEPUBChapterCacheKey.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBChapterCacheKey.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 = ""; }; - 6F265D797C3E4FD97ED35CB9BF70F121 /* RDEPUBReaderChapterListController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderChapterListController.swift; sourceTree = ""; }; - 6F5DA3828400FEDE014E6CEF4A66E4F8 /* RDEPUBChapterTailNormalizer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBChapterTailNormalizer.swift; sourceTree = ""; }; + 6E354F34DFA8299AB7C81BBDF7D09416 /* RDEPUBChapterSummaryDiskCache.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBChapterSummaryDiskCache.swift; sourceTree = ""; }; + 700DC188AC75D1F8DBD85D4796BF26CE /* RDEPUBSafeArea.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBSafeArea.swift; sourceTree = ""; }; + 70138D8FF7E1E61CFF184766A508BAE1 /* RDEPUBReaderRuntime.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderRuntime.swift; sourceTree = ""; }; + 71AC379296558EB0F7CF754C2B17682D /* RDEPUBCFIUtilities.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBCFIUtilities.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 = ""; }; @@ -733,301 +739,273 @@ 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 = ""; }; 730B56BC97DFF2B1E04DD2608055D9E0 /* UIApplication+DTNetworkActivity.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIApplication+DTNetworkActivity.m"; path = "Core/Source/iOS/UIApplication+DTNetworkActivity.m"; sourceTree = ""; }; + 738C3ACE924986CD364DB0E54819DF5F /* wxread-default.css */ = {isa = PBXFileReference; includeInIndex = 1; name = "wxread-default.css"; path = "Sources/RDEpubReaderView/EPUBCore/Resources/wxread-default.css"; sourceTree = ""; }; + 73B4CAD27125A693F658D8352C0A1CC7 /* RDEPUBTextPageBoundaryValidator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextPageBoundaryValidator.swift; sourceTree = ""; }; 741D74BC489AF6715191F2A88E50B016 /* DTCoreText.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = DTCoreText.modulemap; sourceTree = ""; }; + 7491DBD924AAAD4FDAB1B2498061A55D /* RDEPUBTextRendererSupport.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextRendererSupport.swift; sourceTree = ""; }; 7503926237A4785CCB864B2BCD1F4C2B /* DTFoundation.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = DTFoundation.release.xcconfig; sourceTree = ""; }; - 752B1535C51D57BB88FB239513E0810A /* RDEPUBPageResolver.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBPageResolver.swift; sourceTree = ""; }; 753994141ACB981C898B36B761321C23 /* NSCoder+DTCompatibility.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSCoder+DTCompatibility.m"; path = "Core/Source/NSCoder+DTCompatibility.m"; 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 = ""; }; 76C1831768CE55090EADD902B29B6CD1 /* Entry+Serialization.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Entry+Serialization.swift"; path = "Sources/ZIPFoundation/Entry+Serialization.swift"; sourceTree = ""; }; 771E0D5CBCBC013BF5780FEE5BBA81FF /* DTCoreTextGlyphRun.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTCoreTextGlyphRun.h; path = Core/Source/DTCoreTextGlyphRun.h; sourceTree = ""; }; - 774F11C36F2A16D57002B67C22552875 /* RDEPUBSettingsFlipAutomation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBSettingsFlipAutomation.swift; sourceTree = ""; }; - 77F0FB3238D157802C13B7A0495C909B /* RDEPUBSemanticMarkerInjector.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBSemanticMarkerInjector.swift; sourceTree = ""; }; 7805DFC2CB71F5B6BBF7891876360EFB /* NSAttributedString+HTML.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSAttributedString+HTML.h"; path = "Core/Source/NSAttributedString+HTML.h"; sourceTree = ""; }; 78887827FF15DE20865DF3A00660993B /* NSDictionary+DTCoreText.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSDictionary+DTCoreText.m"; path = "Core/Source/NSDictionary+DTCoreText.m"; sourceTree = ""; }; 78EA0DF405F8465A86BFD3DDFD2EC295 /* Pods-ReadViewDemo */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Pods-ReadViewDemo"; path = Pods_ReadViewDemo.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 79119FD962559C23FF1C7BACD4E3CF27 /* RDEPUBChapterData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBChapterData.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 = ""; }; - 7B098FF2F53DED347EE39859D3CC11BE /* RDEPUBJumpSession.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBJumpSession.swift; sourceTree = ""; }; + 7B042E58E7431D5F5F85FC52ADE69567 /* RDEPUBChapterDisplayContentCache.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBChapterDisplayContentCache.swift; sourceTree = ""; }; + 7B995A87BBDE0DDBE56688C4B540EB66 /* RDEPUBSearchEngine.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBSearchEngine.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 = ""; }; - 7FE0F0004B3436CA416F69193354B1AD /* RDEPUBParser+Archive.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBParser+Archive.swift"; sourceTree = ""; }; + 7E63652FD111DAA7B37FF58431EB0251 /* RDEPUBCSSCompatibilityLayer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBCSSCompatibilityLayer.swift; sourceTree = ""; }; + 7E8C42C6222185E0BE13B91DFA107C1C /* RDEPUBTextSearchEngine.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextSearchEngine.swift; sourceTree = ""; }; 814315319ED50AF916C3C8A68C0A47A0 /* DTAttributedTextCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTAttributedTextCell.m; path = Core/Source/DTAttributedTextCell.m; sourceTree = ""; }; - 8170A64FBDE3CC44D5EFA56020DC7978 /* RDEPUBTextSelectionController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextSelectionController.swift; sourceTree = ""; }; - 820C93ABAAF16D708F0A6322AC62801F /* RDEPUBCFIRange.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBCFIRange.swift; sourceTree = ""; }; - 8250EF1AA33B1FBC82A438CB75C77E7D /* RDEPUBAnnotationModels.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBAnnotationModels.swift; sourceTree = ""; }; - 82BB9B078A1C0E0BDB1BFBB93A670A2A /* RDEPUBSelectionState.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBSelectionState.swift; sourceTree = ""; }; - 834CDE067D219C544FC721901E8E70B5 /* RDEPUBChapterLocation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBChapterLocation.swift; sourceTree = ""; }; - 847740E4EA7EBFB8F53710A0CF448BAE /* RDEPUBModels.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBModels.swift; sourceTree = ""; }; + 82EDEF2944E44F1C18F625C6C26BF209 /* RDEPUBTextBookCache.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextBookCache.swift; sourceTree = ""; }; + 836FB7225DC1F930B81C80A9421862EE /* ResourceBundle-RDEpubReaderViewAssets-RDEpubReaderView-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-RDEpubReaderViewAssets-RDEpubReaderView-Info.plist"; sourceTree = ""; }; + 838D6B774410B7E4CAF94ADEE11AAAE7 /* RDEPUBTextIndexTable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextIndexTable.swift; sourceTree = ""; }; + 83ACEDCD42A8E805DDD896F543F73413 /* rangy-core.js */ = {isa = PBXFileReference; includeInIndex = 1; name = "rangy-core.js"; path = "Sources/RDEpubReaderView/EPUBCore/Resources/rangy-core.js"; sourceTree = ""; }; 85E8DA9DE1F796F12171763D20CBAF27 /* DTFoundation.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = DTFoundation.debug.xcconfig; sourceTree = ""; }; - 85EA0348053B11994DBA92C7B6D7E996 /* RDEPUBTypesettingPipeline.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTypesettingPipeline.swift; sourceTree = ""; }; - 8612BCF374E10CB4503D16E19A381417 /* RDEPUBTextRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextRenderer.swift; sourceTree = ""; }; - 86F6704259B87ED54EF047EF455B168E /* RDEPUBCFIDOMPathBuilder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBCFIDOMPathBuilder.swift; sourceTree = ""; }; + 85FB9E100DF07B36F1D09F489F0E9E3B /* RDEPUBTextBuildPipelineInterfaces.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextBuildPipelineInterfaces.swift; sourceTree = ""; }; + 8641AD7E391CA203D99AF176DB9FFD3C /* RDEpubReaderView+ContentAccess.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEpubReaderView+ContentAccess.swift"; sourceTree = ""; }; 8718F2DB8F0DC085CB012D9996596F3F /* NSString+CSS.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSString+CSS.m"; path = "Core/Source/NSString+CSS.m"; sourceTree = ""; }; 88464D2E3579F1A5B25DCCA128528938 /* DTCoreTextFontDescriptor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTCoreTextFontDescriptor.m; path = Core/Source/DTCoreTextFontDescriptor.m; sourceTree = ""; }; 89268DC8F1FBDE4F3167647B6A4F9216 /* DTHorizontalRuleHTMLElement.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTHorizontalRuleHTMLElement.h; path = Core/Source/DTHorizontalRuleHTMLElement.h; sourceTree = ""; }; - 89BD34E68BFF47D27D5F91863AF1BBF1 /* RDEPUBReaderViewportMonitor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderViewportMonitor.swift; sourceTree = ""; }; - 8A1B3AAEE7814FA72D7C528E10D49C3C /* RDEPUBReaderController+Orientation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBReaderController+Orientation.swift"; sourceTree = ""; }; - 8A204FA398A28E3D0424A74DD407BB03 /* RDEpubReaderView-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "RDEpubReaderView-umbrella.h"; sourceTree = ""; }; - 8A99D1BD5B4CEEFCCBE92DF58132E614 /* epub-fixed-layout.html */ = {isa = PBXFileReference; includeInIndex = 1; name = "epub-fixed-layout.html"; path = "Sources/RDEpubReaderView/EPUBCore/Resources/epub-fixed-layout.html"; sourceTree = ""; }; + 89CB9865BCC2678943329CAC4EA50389 /* RDEPUBResourceURLSchemeHandler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBResourceURLSchemeHandler.swift; sourceTree = ""; }; + 89FA4A4AD5389087E418ECAFB7052A9A /* RDEpubPlainTextBookBuilder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEpubPlainTextBookBuilder.swift; sourceTree = ""; }; + 8AC1B803E56F25BAE652D5B6999E24C9 /* RDEPUBCFICompatibility.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBCFICompatibility.swift; 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 = ""; }; - 8C46A096335AF772EB451C71B476A0C8 /* RDEPUBMemoryProbe.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBMemoryProbe.swift; sourceTree = ""; }; + 8C22FB911A2A36812B470ADF6121EBF7 /* RDEPUBAttachmentTooltipOverlayView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBAttachmentTooltipOverlayView.swift; sourceTree = ""; }; + 8C5EFFDA033C18F12383C1494156C527 /* RDEPUBPresentationRuntime.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBPresentationRuntime.swift; 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 = ""; }; - 8D43BF19A7479296AA8324BFCE1BE87C /* rangy-serializer.js */ = {isa = PBXFileReference; includeInIndex = 1; name = "rangy-serializer.js"; path = "Sources/RDEpubReaderView/EPUBCore/Resources/rangy-serializer.js"; sourceTree = ""; }; 8DA0F94C0870C1F0DFADE5E9045E5E6E /* DTDictationPlaceholderTextAttachment.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTDictationPlaceholderTextAttachment.m; path = Core/Source/DTDictationPlaceholderTextAttachment.m; sourceTree = ""; }; 8E5297E7F5769C61C1838962BA76D4F5 /* NSArray+DTError.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSArray+DTError.m"; path = "Core/Source/NSArray+DTError.m"; sourceTree = ""; }; - 8EA2C6CFA053A4B06F2AAB2EA0D17A4B /* RDEpubReaderTapRegionHandler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEpubReaderTapRegionHandler.swift; sourceTree = ""; }; 8EDA1618562CC224690CF6FC03AFED38 /* DTObjectTextAttachment.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTObjectTextAttachment.m; path = Core/Source/DTObjectTextAttachment.m; sourceTree = ""; }; 8F653EFBBEDAAC96A34BC93B4211E792 /* DTCompatibility.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTCompatibility.h; path = Core/Source/DTCompatibility.h; sourceTree = ""; }; 8FAAF640165FC1B4B47C546F80D98B1E /* DTColor+Compatibility.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "DTColor+Compatibility.m"; path = "Core/Source/DTColor+Compatibility.m"; sourceTree = ""; }; - 915069D65E023E6D8140D847BBCAEF3A /* RDEPUBCFICompatibility.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBCFICompatibility.swift; sourceTree = ""; }; - 92D5B64BD3D5489A837054C68FC54D65 /* RDEPUBChapterData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBChapterData.swift; sourceTree = ""; }; - 93D30E909C16D18D790A184AB3DDF67D /* RDEPUBHTMLNormalizer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBHTMLNormalizer.swift; sourceTree = ""; }; + 8FD921A3FCB23BFE2223C090581A6BDD /* RDEPUBCFIMap.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBCFIMap.swift; sourceTree = ""; }; + 914B1FC71E36885F49DA94D4A738F229 /* RDEPUBPageLayoutSnapshot.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBPageLayoutSnapshot.swift; sourceTree = ""; }; + 917CA78BC2FD1712DA30A9F462849846 /* RDEPUBPaginationModels.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBPaginationModels.swift; sourceTree = ""; }; + 91B7A1A2FC0993456CCF9C01C4420F07 /* RDEPUBDecryptingImageAttachment.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBDecryptingImageAttachment.swift; sourceTree = ""; }; + 92A113769CE9950DC897120CC7A809F5 /* RDEPUBReaderEnvironment.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderEnvironment.swift; sourceTree = ""; }; + 92B51B67F5F28B0F2704957985E2DD5E /* RDEPUBReaderController+PublicAPI.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBReaderController+PublicAPI.swift"; sourceTree = ""; }; + 930CD4C23B5C3D593C6B42CD7A32503E /* RDEpubReaderSpreadResolver.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEpubReaderSpreadResolver.swift; sourceTree = ""; }; + 933CE5D5843A33A69BA28D0B9FBFBF60 /* RDEPUBResourceResolver.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBResourceResolver.swift; sourceTree = ""; }; + 933D070CB77BE088EE39078BF90F5038 /* RDEPUBBuildDiagnosticsReporter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBBuildDiagnosticsReporter.swift; sourceTree = ""; }; + 934C53D0904A8D943D6D60401E06753B /* RDEPUBImageViewerCoordinator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBImageViewerCoordinator.swift; sourceTree = ""; }; + 9351AEC32A6B2EFB3F6D6A6330913C73 /* RDEPUBCFIRange.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBCFIRange.swift; sourceTree = ""; }; + 937A80CBC2AD2D82F0EE423A4ADDC4C0 /* RDEPUBDarkImageAdjuster.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBDarkImageAdjuster.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 = ""; }; + 94CABDFEA31C33C50440C3B058BAF148 /* RDEPUBReaderController+ExternalLinks.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBReaderController+ExternalLinks.swift"; sourceTree = ""; }; + 94F05ED49F210D554CD806EF09DD1943 /* RDEPUBTextBookBuilder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextBookBuilder.swift; sourceTree = ""; }; + 9509C7DF773CFA2CC5948683BEDDF25F /* cssInjector.js */ = {isa = PBXFileReference; includeInIndex = 1; name = cssInjector.js; path = Sources/RDEpubReaderView/EPUBCore/Resources/cssInjector.js; sourceTree = ""; }; 9542AFE3A82C8AE56576254CE196E71A /* DTCustomColoredAccessory.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTCustomColoredAccessory.m; path = Core/Source/iOS/DTCustomColoredAccessory.m; sourceTree = ""; }; - 961206494549A9AE3C6EB03DDAD21C1C /* RDEPUBPresentationRuntime.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBPresentationRuntime.swift; sourceTree = ""; }; - 96D1D1F318551BFCF4B28021E708564D /* RDEPUBReaderEnvironment.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderEnvironment.swift; sourceTree = ""; }; + 95CBA6D7FC934EAE4C80594B79D573FB /* RDEPUBImageViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBImageViewController.swift; sourceTree = ""; }; + 96F4AF8BDDCC631C87EA6F7ABF63D7E0 /* RDEPUBSemanticMarkerInjector.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBSemanticMarkerInjector.swift; sourceTree = ""; }; 978449466D53EA6F5D40FCF0F353DDCA /* NSAttributedString+DTCoreText.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSAttributedString+DTCoreText.m"; path = "Core/Source/NSAttributedString+DTCoreText.m"; sourceTree = ""; }; - 97C6D812897020B77EF9C826643A0418 /* RDEPUBCSSCompatibilityLayer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBCSSCompatibilityLayer.swift; sourceTree = ""; }; - 97E58B2D3994B2247E96226094D6EA5F /* RDEPUBFontNormalizer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBFontNormalizer.swift; sourceTree = ""; }; - 986039F986495905BA1EB9D9F426B782 /* RDEpubReaderViewProtocols.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEpubReaderViewProtocols.swift; sourceTree = ""; }; - 9868FA712FFD17D0195649510C1A68A6 /* RDEPUBWebView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBWebView.swift; sourceTree = ""; }; - 98C6026F789783895FC83556EF6F289C /* RDEPUBReaderLocationCoordinator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderLocationCoordinator.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 = ""; }; - 98D44DA052097D1223C075A582A6E1C7 /* RDEPUBReadingLocationModels.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReadingLocationModels.swift; sourceTree = ""; }; - 9B2EA51F3AF54545A450E32FACC3B8C5 /* RDEPUBTextAnchor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextAnchor.swift; sourceTree = ""; }; + 9977C33D88319AD9219E1FA5FBC4845B /* RDEPUBPageCountCache.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBPageCountCache.swift; sourceTree = ""; }; + 9A46A3005ACAB77D9CB0CAF634ED430A /* RDEPUBReaderAssemblyCoordinator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderAssemblyCoordinator.swift; sourceTree = ""; }; + 9B0C15189A2464E1CF31D95EA4FD0B44 /* RDEPUBStyleSheetBuilder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBStyleSheetBuilder.swift; sourceTree = ""; }; 9C12A4A5BB42D0F68DABBD3BDF103BC5 /* DTDictationPlaceholderView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTDictationPlaceholderView.h; path = Core/Source/DTDictationPlaceholderView.h; 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 = ""; }; + 9C808F6521B0773999682C043AA9B204 /* RDEPUBReaderController+Trial.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBReaderController+Trial.swift"; 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; }; - A05983FAA61E2029A29085B98DEDC010 /* RDEPUBRuntimeChapter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBRuntimeChapter.swift; sourceTree = ""; }; - A08CDC243F29B29A95253DCA44335BFE /* RDEPUBDarkImageAdjuster.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBDarkImageAdjuster.swift; sourceTree = ""; }; + 9DB65624B7F08BB08886B1AF77CA5A35 /* RDEPUBReaderContext.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderContext.swift; sourceTree = ""; }; + A0CBD4A797F1B8D6FC7C2F105D534DE4 /* RDEPUBChapterLoader.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBChapterLoader.swift; sourceTree = ""; }; + A1C347BEDE76210B7602DC2192020FFB /* RDEPUBNavigatorLayoutContext.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBNavigatorLayoutContext.swift; sourceTree = ""; }; A20F6F0463A998DC3BD53DE9E63B63DE /* DTSmartPagingScrollView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTSmartPagingScrollView.m; path = Core/Source/iOS/DTSmartPagingScrollView.m; sourceTree = ""; }; - A33FA1A570B5BA2C5DCAB078F31DE5BF /* UIColor+RDEPUBHex.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "UIColor+RDEPUBHex.swift"; sourceTree = ""; }; - A36571C8CAE6B5E67048AF9818B631C6 /* RDEpubReaderGestureController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEpubReaderGestureController.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 = ""; }; - A48F69748B05758B4CB62757E8CF6464 /* RDEPUBReaderController+RuntimeBridge.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBReaderController+RuntimeBridge.swift"; sourceTree = ""; }; - A49A27A2F307647B468A9652F7A49006 /* RDEPUBReaderBottomToolView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderBottomToolView.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 = ""; }; + A610179093345F409F73789E827C8F43 /* RDEPUBTextPerformanceSampler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextPerformanceSampler.swift; sourceTree = ""; }; A61C8F1BDD76EA59082F65269083BD08 /* DTCoreTextConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTCoreTextConstants.h; path = Core/Source/DTCoreTextConstants.h; sourceTree = ""; }; - A7C6D0CBF46040C1E92580C7CB26A47C /* RDEPUBReaderRuntime.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderRuntime.swift; sourceTree = ""; }; + A78361529E8B1D3A665B0A2AF622A90E /* RDEPUBReaderController+LocationResolution.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBReaderController+LocationResolution.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 = ""; }; - A858EFE14B7184E73CC8B040C0FBAF9F /* RDEpubReaderFlowLayout.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEpubReaderFlowLayout.swift; sourceTree = ""; }; - A875D59C9ADB7D356F34F31D11DCC720 /* RDEPUBParser.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBParser.swift; sourceTree = ""; }; + A809C97E5256954972B21BFE8DA41D73 /* RDEPUBChapterDataCache.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBChapterDataCache.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 = ""; }; - A8C567DF41CC58FE2BA5C88C6B4A71F6 /* RDEPUBTextPageBoundaryValidator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextPageBoundaryValidator.swift; sourceTree = ""; }; A8CC38EFEF171FFEE008C32A6319BE6A /* DTFolderMonitor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTFolderMonitor.h; path = Core/Source/DTFolderMonitor.h; sourceTree = ""; }; - A8FEC8336CD4C54BF17C89ED0AEFC376 /* RDEpubReaderView+ContentAccess.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEpubReaderView+ContentAccess.swift"; sourceTree = ""; }; - A98B084E630DFB6A2A5DB15DFB214FD0 /* RDEPUBTextBuildPipelineInterfaces.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextBuildPipelineInterfaces.swift; sourceTree = ""; }; + A9A949885CFCDF0BF49023658E894E0C /* RDEpubReaderView-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "RDEpubReaderView-dummy.m"; sourceTree = ""; }; + A9B8AAF5F0EA3BBF843DD82B4941C531 /* RDEPUBTextPageDecorationView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextPageDecorationView.swift; sourceTree = ""; }; AA0811310099A4BCB3D52683B70DB3D1 /* Pods-ReadViewDemo-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-ReadViewDemo-dummy.m"; sourceTree = ""; }; - AAAD24FFA4B4B8E33C45ED26C2FD4B37 /* RDEPUBReaderPaginationCoordinator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderPaginationCoordinator.swift; sourceTree = ""; }; - AAFF9E2F6436861E176B5E55A1180672 /* RDEPUBChapterDisplayContentCache.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBChapterDisplayContentCache.swift; sourceTree = ""; }; AC0A4ED7E936923A29A5EEB1D95D6B55 /* DTTextAttachmentHTMLElement.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTTextAttachmentHTMLElement.m; path = Core/Source/DTTextAttachmentHTMLElement.m; sourceTree = ""; }; + AC9FB2A444D806A54DD076A442901D5E /* RDEPUBReaderBottomToolView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderBottomToolView.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 = ""; }; + AD1A3421E6BB01E8F6D89253D7F3856D /* RDEPUBReaderPaginationCoordinator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderPaginationCoordinator.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 = ""; }; - AEBCA7121897869990DF9876F2240A4A /* RDEPUBTextLayoutFrame.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextLayoutFrame.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 = ""; }; - AFC57105C58F0D30043B13D949A57D8E /* RDEpubReaderView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEpubReaderView.swift; sourceTree = ""; }; B0218A7B243387C79E099CA947CF243D /* Archive+Writing.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Archive+Writing.swift"; path = "Sources/ZIPFoundation/Archive+Writing.swift"; sourceTree = ""; }; - B03885DA855AC3C09FF73925C82186C8 /* ResourceBundle-RDEpubReaderViewAssets-RDEpubReaderView-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-RDEpubReaderViewAssets-RDEpubReaderView-Info.plist"; sourceTree = ""; }; + B04AD6AE3FF5C760FD284CE7A8744A75 /* RDEPUBMetadataParseCancellationController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBMetadataParseCancellationController.swift; sourceTree = ""; }; B12CE4962CDC324FB47FB92D6706D149 /* DTLinkButton.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTLinkButton.h; path = Core/Source/DTLinkButton.h; sourceTree = ""; }; + B1FD140706B4E87F9A77141878B7B7D8 /* RDEpubReaderView.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = RDEpubReaderView.release.xcconfig; sourceTree = ""; }; B23C5F038DAC52B75213C0760C431F2B /* DTHTMLWriter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTHTMLWriter.m; path = Core/Source/DTHTMLWriter.m; sourceTree = ""; }; - B26A41A391468A542EFC7C0F2D1A94AC /* cssInjector.js */ = {isa = PBXFileReference; includeInIndex = 1; name = cssInjector.js; path = Sources/RDEpubReaderView/EPUBCore/Resources/cssInjector.js; sourceTree = ""; }; B37118B8D16847B0F82E06A5B33898AB /* DTCSSStylesheet.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTCSSStylesheet.m; path = Core/Source/DTCSSStylesheet.m; sourceTree = ""; }; - B3875D495797D0A7441AE5FDC6606E31 /* RDEPUBTextContentInteractionCoordinator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextContentInteractionCoordinator.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; }; - B50734FC0871066B8BF8848B60EA53CF /* RDEpubReaderView+PageCurl.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEpubReaderView+PageCurl.swift"; sourceTree = ""; }; - B545FD055DB6F5E62A4B3477F7514D97 /* RDEPUBAttachmentNormalizer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBAttachmentNormalizer.swift; sourceTree = ""; }; - B60AD68DA33BB20A0FE6D0D98EBE3D2B /* RDEPUBNavigatorLayoutContext.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBNavigatorLayoutContext.swift; sourceTree = ""; }; B6CA8CC4525EF64AA5CEE4A722737F1C /* DTCoreText-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "DTCoreText-dummy.m"; sourceTree = ""; }; - B7180AF39B62FE6A6B43E7BE45E45C31 /* RDEpubReaderPagingController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEpubReaderPagingController.swift; 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 = ""; }; + B8157DDB46604BA4ABC1E776FFF3BACF /* RDEPUBRuntimePageCount.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBRuntimePageCount.swift; 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 = ""; }; - B8EBCB744C294E197C28F3B81349FCF9 /* RDEPUBTextPositionConverter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextPositionConverter.swift; sourceTree = ""; }; - B99659A42728CF06CA00A18D502850AF /* RDEPUBTextBookModels.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextBookModels.swift; sourceTree = ""; }; BA8A527A4CCB2AF1C1E26744B301F6B8 /* DTIframeTextAttachment.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTIframeTextAttachment.m; path = Core/Source/DTIframeTextAttachment.m; sourceTree = ""; }; BAE45673EE2875DB23FA7BDD61FDE1EF /* DTCustomColoredAccessory.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTCustomColoredAccessory.h; path = Core/Source/iOS/DTCustomColoredAccessory.h; sourceTree = ""; }; - BB2DDE835F718828F22B7C06D9AF02FB /* RDEPUBStyleSheetComposer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBStyleSheetComposer.swift; sourceTree = ""; }; - BBF2E942B6DF40838CD0EA5D5AFA0A49 /* RDEPUBRuntimePageCount.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBRuntimePageCount.swift; sourceTree = ""; }; + BAF5C3F61802BB558960C1264B9B95EC /* RDEPUBMemoryProbe.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBMemoryProbe.swift; sourceTree = ""; }; BC59BBF6628D93AAC30CBFE0FF0151F2 /* ZIPFoundation-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "ZIPFoundation-prefix.pch"; sourceTree = ""; }; - BC69A9D6FE337C36229B5CE0CA4206FF /* RDEPUBPageCountCache.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBPageCountCache.swift; sourceTree = ""; }; + BC98B880CE7B3D20C16C71995BF7A55E /* RDEpubReaderView.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = RDEpubReaderView.modulemap; sourceTree = ""; }; BD65B936E2A6FEB74718EA86D9AC1899 /* DTCoreTextParagraphStyle.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTCoreTextParagraphStyle.h; path = Core/Source/DTCoreTextParagraphStyle.h; sourceTree = ""; }; BEA46E51E3616ECEAF0ACCEA9B8C67EF /* DTFolderMonitor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTFolderMonitor.m; path = Core/Source/DTFolderMonitor.m; sourceTree = ""; }; - BF282AB822D775C2628A7A3D042A588D /* RDEPUBChapterSummaryDiskCache.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBChapterSummaryDiskCache.swift; sourceTree = ""; }; + BFEBB4FDA1CF193F22AE1FF2B6D7CC64 /* RDEPUBReaderController+DataSource.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBReaderController+DataSource.swift"; sourceTree = ""; }; BFF51E56E09E095C92CB5B9F21384027 /* Archive+MemoryFile.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Archive+MemoryFile.swift"; path = "Sources/ZIPFoundation/Archive+MemoryFile.swift"; sourceTree = ""; }; - C0CF886110ECBE6539FAF53C10B1498A /* String+RDEPUB.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "String+RDEPUB.swift"; sourceTree = ""; }; + BFFBC2B5CED248344B9C711B6D54DABB /* RDEPUBReaderLoadCoordinator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderLoadCoordinator.swift; sourceTree = ""; }; C0DCB00F0B62D7DBE628D2B5FF006E93 /* DTCoreText.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = DTCoreText.debug.xcconfig; sourceTree = ""; }; + C114307C21E03CC4E2E8305C21E73FB1 /* RDEPUBReaderHighlightsViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderHighlightsViewController.swift; sourceTree = ""; }; + C2C0197426EE469AC710BC6D91DA77FA /* RDEPUBReaderPersistence.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderPersistence.swift; sourceTree = ""; }; + C3B4B7A906F8C1CD31C1695AB811CED1 /* RDEPUBReaderSearchBarView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderSearchBarView.swift; sourceTree = ""; }; C3E162E0261A5B0850158D3403191E62 /* Archive.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Archive.swift; path = Sources/ZIPFoundation/Archive.swift; sourceTree = ""; }; + C43927E340CE968FE3745E042B7FB8C6 /* RDEpubReaderView+CollectionView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEpubReaderView+CollectionView.swift"; sourceTree = ""; }; + C44B5AB69C27DBBA102BE789F5FF0978 /* RDEPUBReaderServices.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderServices.swift; sourceTree = ""; }; C46FCF109DBCB37595D2A3366CF1D765 /* DTCoreTextLayoutFrame.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTCoreTextLayoutFrame.h; path = Core/Source/DTCoreTextLayoutFrame.h; sourceTree = ""; }; C495C74844982FAA1B846A2A89023D12 /* DTCoreTextMacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTCoreTextMacros.h; path = Core/Source/DTCoreTextMacros.h; sourceTree = ""; }; - C4A6313EEF4AEDADB4793D6CAEC32B0A /* RDEPUBCoreTextPageFrameFactory.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBCoreTextPageFrameFactory.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 = ""; }; C69C7A531B5E021499D8FBF1DBE0E3BB /* NSAttributedStringRunDelegates.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = NSAttributedStringRunDelegates.m; path = Core/Source/NSAttributedStringRunDelegates.m; sourceTree = ""; }; + C6BCC51588FE3E176018809B2126DE07 /* RDEPUBChapterPageCounter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBChapterPageCounter.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 = ""; }; - C8687094F5EB5A27E0D5A0070B19A4C2 /* wxread-dark.css */ = {isa = PBXFileReference; includeInIndex = 1; name = "wxread-dark.css"; path = "Sources/RDEpubReaderView/EPUBCore/Resources/wxread-dark.css"; sourceTree = ""; }; C8A6E90AB5E26049710E2C2404C28B9A /* RDEpubReaderView-RDEpubReaderViewAssets */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = "RDEpubReaderView-RDEpubReaderViewAssets"; path = RDEpubReaderViewAssets.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; - C985C2E56D867C385610E439E61BFBFE /* RDEpubURLReaderController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEpubURLReaderController.swift; sourceTree = ""; }; + C927FAF87133B84914A945573DADE009 /* RDEPUBCFIDOMPathBuilder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBCFIDOMPathBuilder.swift; sourceTree = ""; }; + C958AB41C0D909176E479CCC24B4CAEC /* RDEPUBPageResolver.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBPageResolver.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 = ""; }; - CABD447CD3A40D2D3C8E80590B8361B7 /* RDEpubReaderSpreadResolver.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEpubReaderSpreadResolver.swift; sourceTree = ""; }; CACF20969583778CAC1BC92BB96F27FD /* NSAttributedString+SmallCaps.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSAttributedString+SmallCaps.h"; path = "Core/Source/NSAttributedString+SmallCaps.h"; sourceTree = ""; }; CB2BD1F8CFECB82D427DF046439E68D6 /* DTHTMLParser.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTHTMLParser.h; path = Core/Source/DTHTMLParser/DTHTMLParser.h; sourceTree = ""; }; - CB2D03387C98C80186C40EAA590D89BD /* RDEPUBCFISerializer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBCFISerializer.swift; sourceTree = ""; }; CCC633BF76C79E0B4A6750337D5DCDB8 /* DTVersion.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTVersion.m; path = Core/Source/DTVersion.m; sourceTree = ""; }; - CCD4B82D09BE72980015175674B04B22 /* RDEPUBReaderSearchBarView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderSearchBarView.swift; sourceTree = ""; }; - CD6168EB90D5F2AE16988D0B4BC4C56E /* RDEPUBFixedLayoutTemplate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBFixedLayoutTemplate.swift; sourceTree = ""; }; - CE074C3401A1CAF095691391F2028E61 /* RDEPUBNotePopupViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBNotePopupViewController.swift; sourceTree = ""; }; + CE14FDB1A9F5658FC96A86D8827B6CAB /* RDEPUBCFIRecoveryEngine.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBCFIRecoveryEngine.swift; sourceTree = ""; }; CE761A55BD57C0BFD6336CD073F85C31 /* DTLinkButton.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTLinkButton.m; path = Core/Source/DTLinkButton.m; sourceTree = ""; }; + CE9251BC09711D75E64B606CAD967665 /* RDEpubReaderTapRegionHandler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEpubReaderTapRegionHandler.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 = ""; }; CEEC8715398E89B42F9B04E290E8E4FE /* NSString+DTURLEncoding.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSString+DTURLEncoding.h"; path = "Core/Source/NSString+DTURLEncoding.h"; sourceTree = ""; }; CF1CED3ED65443999913BC0D96ACA151 /* DTImage+HTML.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "DTImage+HTML.m"; path = "Core/Source/DTImage+HTML.m"; sourceTree = ""; }; - CF8FD338F89FBB4FEDDF24E590E86AFE /* RDEpubReaderView.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = RDEpubReaderView.debug.xcconfig; sourceTree = ""; }; + CF39A21E0450FE6C70C3B4B7F15919F8 /* RDEPUBWebView+Reflowable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBWebView+Reflowable.swift"; sourceTree = ""; }; + CF94E32627BA15D6DFDA2ECFD0EA75DE /* RDEPUBBackgroundPriorityPolicy.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBBackgroundPriorityPolicy.swift; sourceTree = ""; }; D0856C3894240A673B5AB7C2704E9144 /* DTDictationPlaceholderTextAttachment.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTDictationPlaceholderTextAttachment.h; path = Core/Source/DTDictationPlaceholderTextAttachment.h; sourceTree = ""; }; + D17BDE91B51FEA96E14261A1618D6566 /* RDEPUBReaderController+RuntimeBridge.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBReaderController+RuntimeBridge.swift"; sourceTree = ""; }; D18519BCA8FAA9B01A704A0F0B9FFC78 /* Archive+ZIP64.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Archive+ZIP64.swift"; path = "Sources/ZIPFoundation/Archive+ZIP64.swift"; sourceTree = ""; }; - D1939CE18FB1D0E9342A3963CB1F5C84 /* RDEPUBReaderPersistence.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderPersistence.swift; sourceTree = ""; }; D1E89A31867FF1FB44B4B999988F1B82 /* DTFoundation */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = DTFoundation; path = DTFoundation.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D260C6E64F57CE89343A271FB4804745 /* RDEPUBTextRendererSupport.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextRendererSupport.swift; sourceTree = ""; }; D28A3E79D83EA4B807E2D3A5EE086B8B /* DTHTMLParserNode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTHTMLParserNode.h; path = Core/Source/DTHTMLParserNode.h; sourceTree = ""; }; D30DBDF1EDB20CF83690AC6619AA0C48 /* NSString+DTPaths.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSString+DTPaths.m"; path = "Core/Source/NSString+DTPaths.m"; sourceTree = ""; }; - D36009F925C400C4981D456059CC16BA /* RDEPUBJavaScriptBridge.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBJavaScriptBridge.swift; sourceTree = ""; }; - D46B1E71516E5EC8C9D039B9D836D290 /* RDEPUBCFIRecoveryEngine.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBCFIRecoveryEngine.swift; sourceTree = ""; }; + D31105650106D4505E2C61254DFB1E92 /* RDEPUBNoteModels.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBNoteModels.swift; sourceTree = ""; }; + D3E28E9CC424366C83C3FD1EEE3D55C9 /* RDEPUBParser+Archive.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBParser+Archive.swift"; sourceTree = ""; }; D4C731AA2088D7E873D8E3D21B95D215 /* DTIframeTextAttachment.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTIframeTextAttachment.h; path = Core/Source/DTIframeTextAttachment.h; sourceTree = ""; }; - D5CC55716AF7BC27FD9268D256ABA314 /* RDEPUBAttachmentTooltipOverlayView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBAttachmentTooltipOverlayView.swift; sourceTree = ""; }; - D5D6E84305CAE9A6583309CA93366E15 /* RDEPUBNotePopupCoordinator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBNotePopupCoordinator.swift; sourceTree = ""; }; + D53B5143DBF9F121931A049852F7B439 /* RDEPUBWebView+Search.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBWebView+Search.swift"; sourceTree = ""; }; + D5D1FC3429FE4AAB31BFAF311EB4EEB3 /* RDEpubReaderContentCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEpubReaderContentCell.swift; sourceTree = ""; }; D5DD4142DF33E1BE0B5A057101E851C5 /* DTLazyImageView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTLazyImageView.h; path = Core/Source/DTLazyImageView.h; sourceTree = ""; }; - D6C8585AECE0BC205EE95CC484EC6561 /* RDEPUBFragmentMarkerInjector.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBFragmentMarkerInjector.swift; sourceTree = ""; }; - D71B377949D433438F307CC6B120D372 /* RDEpubReaderView.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = RDEpubReaderView.modulemap; sourceTree = ""; }; - D76AF74F7C0A5657241E97D1CAD4A833 /* RDEPUBBuildDiagnosticsReporter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBBuildDiagnosticsReporter.swift; sourceTree = ""; }; D80A72D8B7941D30246858D840EE1EF5 /* DTCoreTextLayouter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTCoreTextLayouter.m; path = Core/Source/DTCoreTextLayouter.m; sourceTree = ""; }; - D915BB57012D656EE211B3BC41EBAA93 /* RDEPUBCFIGenerator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBCFIGenerator.swift; sourceTree = ""; }; D9A812C3E577A3ADC36BAE3FF7AA4D9C /* NSFileWrapper+DTCopying.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSFileWrapper+DTCopying.m"; path = "Core/Source/NSFileWrapper+DTCopying.m"; sourceTree = ""; }; DA2ED17D0DDF5F1C5606BFFD9A512DE4 /* DTCoreTextFunctions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTCoreTextFunctions.h; path = Core/Source/DTCoreTextFunctions.h; sourceTree = ""; }; - DABA2040236556B3E47062333B414AF5 /* RDEPUBTextSearchEngine.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextSearchEngine.swift; sourceTree = ""; }; - DB7F916B5DAC02317D14747841AF489C /* RDEPUBStyleSheetBuilder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBStyleSheetBuilder.swift; sourceTree = ""; }; - DC0D5B57FDFCE021F4354EA651E68507 /* RDEPUBResourceResolver.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBResourceResolver.swift; sourceTree = ""; }; + DACBC55EFB0FBDBFA4EBAB5FEB8435BF /* RDEPUBWebViewDebug.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBWebViewDebug.swift; sourceTree = ""; }; + DBBE74D1D36F66AC23C0653D7AEA7795 /* RDEPUBReaderToolViewProtocols.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderToolViewProtocols.swift; sourceTree = ""; }; + DBE25565E3B8E7A39A04AFC66AFD0350 /* RDEPUBReaderTableOfContentsItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderTableOfContentsItem.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 = ""; }; - DC96DD4FDA029CD6D6E810916DEBD563 /* RDEPUBTextAnnotationOverlay.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextAnnotationOverlay.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 = ""; }; + DD9375BCB2ACFD67E672A2460740D2BE /* RDEPUBTextRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextRenderer.swift; sourceTree = ""; }; + DE1AE43B8451B52B1EE55485BDB094AC /* RDEPUBTextPaginationSupport.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextPaginationSupport.swift; 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; }; + DE82EC616E01A54A95A40DA36BE309D8 /* RDEpubReaderPagingController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEpubReaderPagingController.swift; sourceTree = ""; }; DE83356F8FBC1801D29CA93C1A190D81 /* Archive+Progress.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Archive+Progress.swift"; path = "Sources/ZIPFoundation/Archive+Progress.swift"; sourceTree = ""; }; - DFE26DA6A1180E7B617EE341C73F7A50 /* RDEPUBReaderConfiguration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderConfiguration.swift; sourceTree = ""; }; + DF6C2C2EB4C27C788358EED3B9EF18A0 /* RDEPUBParser+Resources.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBParser+Resources.swift"; sourceTree = ""; }; E0192469A486DA7CECFECEA37518B6B9 /* DTHTMLAttributedStringBuilder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTHTMLAttributedStringBuilder.m; path = Core/Source/DTHTMLAttributedStringBuilder.m; sourceTree = ""; }; - E2023C1B0BC6999F982585F30454EF30 /* RDEPUBNoteDetector.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBNoteDetector.swift; sourceTree = ""; }; - E293D93795FE3F3AA09E249FBBAF2169 /* RDEpubReaderPreloadController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEpubReaderPreloadController.swift; sourceTree = ""; }; - E2B413E5361DB33B983E9237109AD610 /* RDEPUBDecryptingImageAttachment.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBDecryptingImageAttachment.swift; sourceTree = ""; }; - E2F02728AA8EB960A35AE0DD7736C90A /* RDEPUBWebViewDebug.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBWebViewDebug.swift; sourceTree = ""; }; - E39C7BDD4236B494D4C00CBEC40F4371 /* RDEPUBCFIMap.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBCFIMap.swift; sourceTree = ""; }; - E3B3807F1E6648C733C6F915288C1E45 /* RDEPUBViewportTypes.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBViewportTypes.swift; sourceTree = ""; }; + E03059382049F6C22019EBF7CC482011 /* RDEPUBFragmentMarkerInjector.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBFragmentMarkerInjector.swift; sourceTree = ""; }; + E032FF47C872A33941F25FF668CD0728 /* RDEPUBReaderChapterListController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderChapterListController.swift; sourceTree = ""; }; + E0D637E33E3C04A550B5C25D32E4F242 /* RDEPUBReaderSettingsViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderSettingsViewController.swift; sourceTree = ""; }; + E0F83801397BE9214B379107EA879E93 /* RDEPUBViewportTypes.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBViewportTypes.swift; sourceTree = ""; }; + E12E23F6DB8D39D8D6EEC2E2C4E28A99 /* RDEPUBSelectionLoupeView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBSelectionLoupeView.swift; sourceTree = ""; }; + E160875ECD036F271801B2FBE8612A42 /* RDEPUBChapterCacheKey.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBChapterCacheKey.swift; sourceTree = ""; }; + E3896B16059A0D04942F07E7488CE212 /* RDEPUBFixedLayoutTemplate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBFixedLayoutTemplate.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 = ""; }; E4C5EB3F8F005C65005C101A9DBE488A /* DTWeakSupport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTWeakSupport.h; path = Core/Source/DTWeakSupport.h; sourceTree = ""; }; + E4F082BF59D81240AB478640AC002399 /* RDEPUBReaderLocationCoordinator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderLocationCoordinator.swift; sourceTree = ""; }; E5377786E80195587BF3E8A7589E5925 /* DTHTMLParserTextNode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTHTMLParserTextNode.m; path = Core/Source/DTHTMLParserTextNode.m; sourceTree = ""; }; + E57CDAF0DDE9577615DAD77487138B50 /* RDEPUBStyleCompatibilityModels.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBStyleCompatibilityModels.swift; sourceTree = ""; }; E5D4D6E12779C54F17AE98A1E6C9B699 /* DTBase64Coding.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTBase64Coding.m; path = Core/Source/DTBase64Coding.m; sourceTree = ""; }; + E5FA59861B42210ACA4B63C9A2BF5CA2 /* RDEPUBDTCoreTextRenderer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBDTCoreTextRenderer.swift; sourceTree = ""; }; + E62CA2D2BA86C387EA2A9EA66DA6EFB4 /* RDEPUBPageInteractionController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBPageInteractionController.swift; sourceTree = ""; }; E687628EF2FE92D093E3005D21B578E5 /* DTWeakSupport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTWeakSupport.h; path = Core/Source/DTWeakSupport.h; sourceTree = ""; }; E6B46EF6F055A721AF370D705D026E9E /* Data+CompressionDeprecated.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Data+CompressionDeprecated.swift"; path = "Sources/ZIPFoundation/Data+CompressionDeprecated.swift"; sourceTree = ""; }; - E6C77B875320EA1C7172B5E8F8A4460A /* RDEPUBSearchEngine.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBSearchEngine.swift; sourceTree = ""; }; E74132875CC4A311B230B68C085D8CE6 /* ResourceBundle-Resources-DTCoreText-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-Resources-DTCoreText-Info.plist"; sourceTree = ""; }; - E79069E6008AAA4FD339D2819CDF4675 /* RDEPUBBackgroundCoverageStore.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBBackgroundCoverageStore.swift; sourceTree = ""; }; + E7A1643CA13D509DFD1122361AC40773 /* RDEPUBCFIMarkerInjector.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBCFIMarkerInjector.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 = ""; }; - E935E1C0DB2E3250D48D6F7B1F1785EB /* RDEPUBBookPageMap.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBBookPageMap.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 = ""; }; - E9F15AEACE475EF232CB992A4CDCC6E3 /* RDEPUBBackgroundTrace.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBBackgroundTrace.swift; sourceTree = ""; }; EA2BF1D7535B036E1356E8DF42A04954 /* DTTextBlock.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTTextBlock.h; path = Core/Source/DTTextBlock.h; 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 = ""; }; + EC13894C150346B04A92269EA6AD9204 /* RDEPUBChapterRuntimeStore.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBChapterRuntimeStore.swift; sourceTree = ""; }; + EC16F3725AAC7A9B9BDFFF49101768C7 /* RDEPUBWebView+Configuration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBWebView+Configuration.swift"; sourceTree = ""; }; + EC882A6B7818AA32593C00AC4FF0DF4B /* RDEPUBCFIGenerator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBCFIGenerator.swift; sourceTree = ""; }; ED049C791713944233EE10C7A111C691 /* DTCoreTextGlyphRun.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTCoreTextGlyphRun.m; path = Core/Source/DTCoreTextGlyphRun.m; sourceTree = ""; }; - ED2AB892BC893DB186CD0AFA5CA63F61 /* RDEPUBReaderController+TableOfContents.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBReaderController+TableOfContents.swift"; sourceTree = ""; }; + ED984A84F8E3D5CD16ED53FE377FA3A2 /* epub-fixed-layout.html */ = {isa = PBXFileReference; includeInIndex = 1; name = "epub-fixed-layout.html"; path = "Sources/RDEpubReaderView/EPUBCore/Resources/epub-fixed-layout.html"; sourceTree = ""; }; ED9A1EBDA0FD72671C7F6FE15F37B906 /* DTTextHTMLElement.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTTextHTMLElement.h; path = Core/Source/DTTextHTMLElement.h; sourceTree = ""; }; EDA6D5D7D0A04878EE78FAAE94F65068 /* DTCoreText */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = DTCoreText; path = DTCoreText.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - EE31789BAB1A8C59EDFC3C728B350E90 /* RDEPUBWebContentView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBWebContentView.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 = ""; }; - F1E86313FAB2369F42BBAC7FE6CAF40B /* RDEPUBParser+TOC.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBParser+TOC.swift"; sourceTree = ""; }; - F344665C57510633A0980B1F2F023A2F /* RDEPUBReaderController+RenderSupport.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBReaderController+RenderSupport.swift"; sourceTree = ""; }; - F360D7798705EF33FED7578F42ABE588 /* RDEPUBSelectionLoupeView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBSelectionLoupeView.swift; sourceTree = ""; }; + F01F99F72C9B49C62891C3887909C4B1 /* RDEPUBTextSelectionController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextSelectionController.swift; sourceTree = ""; }; + F244E925AD8E03AF454F9847270A83B0 /* RDEPUBAttachmentNormalizer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBAttachmentNormalizer.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 = ""; }; - F486744FB2C3E4E55A9FED93371C7272 /* RDEPUBMetadataParseWorker.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBMetadataParseWorker.swift; sourceTree = ""; }; F49FC82A04EE9B3B49CBA6CB88ACBC67 /* FileManager+ZIPDeprecated.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "FileManager+ZIPDeprecated.swift"; path = "Sources/ZIPFoundation/FileManager+ZIPDeprecated.swift"; sourceTree = ""; }; F4E2B1AC73977F10254628C0B7EBE38F /* DTCoreText-Resources */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = "DTCoreText-Resources"; path = Resources.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; - F4E8A28FA2AC4F578A1098D8285D3FFE /* RDEpubReaderContentCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEpubReaderContentCell.swift; sourceTree = ""; }; - F57646CB4F9349BC9776772BFDC56B49 /* RDEPUBImageViewerCoordinator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBImageViewerCoordinator.swift; sourceTree = ""; }; - F630BB624DD56B3C0BD9131D8ACEC21D /* RDEPUBWebDecorationOverlayView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBWebDecorationOverlayView.swift; sourceTree = ""; }; + F508C2B8F652F2A20A8F37B7E1AE0E49 /* RDEPUBReaderViewportMonitor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderViewportMonitor.swift; sourceTree = ""; }; + F619B4CD11C599BCA22DC6405537C0ED /* RDEPUBTextAnchor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextAnchor.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 = ""; }; - F72A99A09ECD213552D649EF0E7BD081 /* RDEPUBParser+ReadingProfile.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBParser+ReadingProfile.swift"; sourceTree = ""; }; - F77D2A383DC7C1F05BD961646DB1D61E /* RDEPUBPageLayoutSnapshot.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBPageLayoutSnapshot.swift; sourceTree = ""; }; + F6822404F9A7E9674FE4E88E510397DF /* RDEPUBNotePopupCoordinator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBNotePopupCoordinator.swift; sourceTree = ""; }; + F7621EBFDF9CB28F0C15A295D278586F /* RDEPUBReaderState.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderState.swift; sourceTree = ""; }; F7C508BE899A1397560A767CAEADB7B9 /* DTHTMLElement.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTHTMLElement.h; path = Core/Source/DTHTMLElement.h; sourceTree = ""; }; - F84F78EBE95C9D7F7DC66344EB40BE9F /* RDEPUBChapterOffsetMap.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBChapterOffsetMap.swift; sourceTree = ""; }; - F88EF2BFEFAC452A2D6082C661041929 /* RDEPUBPaginator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBPaginator.swift; sourceTree = ""; }; + F7D21627239225BB7CC9A73D1BDB7624 /* RDEPUBBackgroundTrace.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBBackgroundTrace.swift; sourceTree = ""; }; + F84EB6F838A120BFBCE3592928F5267B /* RDEPUBBackgroundCoverageStore.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBBackgroundCoverageStore.swift; sourceTree = ""; }; + F971A4BB973BBDB69AF6F51C5EBBCE6F /* RDEPUBTextPaginationInterfaces.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBTextPaginationInterfaces.swift; 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 = ""; }; - FA19A96B26E75A87DFA7F1E213474E48 /* RDEPUBReaderContext.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderContext.swift; sourceTree = ""; }; - FA4EC97EE53FBDB24B5FB92C7FE4C7C4 /* RDEPUBReaderToolView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderToolView.swift; sourceTree = ""; }; - FB1327FE6CC30C4AC4A5124BEB747510 /* RDEPUBCFIParser.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBCFIParser.swift; sourceTree = ""; }; - FBF4C131ADF1BC0D64D695B49AAC8370 /* RDEPUBReaderController+PublicAPI.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEPUBReaderController+PublicAPI.swift"; sourceTree = ""; }; - FC0B33BDB6F7F3F950944CB3E69CDA68 /* RDEPUBPaginationModels.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBPaginationModels.swift; sourceTree = ""; }; - FD12C1ABCF0800609F8579BC62C4997F /* RDEPUBPageBreakPolicy.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBPageBreakPolicy.swift; sourceTree = ""; }; - FE76CB44588C6BA77E5E95CFF23BD68C /* RDEpubReaderView+ToolView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "RDEpubReaderView+ToolView.swift"; sourceTree = ""; }; + FA70B35339FD7AEAF6282F4A5C71D6C5 /* epub-bridge.js */ = {isa = PBXFileReference; includeInIndex = 1; name = "epub-bridge.js"; path = "Sources/RDEpubReaderView/EPUBCore/Resources/epub-bridge.js"; sourceTree = ""; }; + FAED053B066D78C71607CBA6C86AD4E5 /* RDEPUBReaderTopToolView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderTopToolView.swift; sourceTree = ""; }; + FB9079877B14ED272026DEC70CA1B494 /* RDEPUBFontNormalizer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBFontNormalizer.swift; sourceTree = ""; }; + FCEC7E64DDEB788FE417CBD151347F93 /* RDEPUBPageMapReconciliationCoordinator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBPageMapReconciliationCoordinator.swift; sourceTree = ""; }; + FD99D38FA1379578B40B6A69D34C416B /* RDEPUBChapterWarmupOrchestrator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBChapterWarmupOrchestrator.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; }; FF1C41D226C0957F715EFF3F23893386 /* DTFoundation-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "DTFoundation-dummy.m"; sourceTree = ""; }; + FF5FF35650CFF55269A6ADEB9DB1F392 /* RDEPUBReaderChromeCoordinator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBReaderChromeCoordinator.swift; sourceTree = ""; }; FF63F5E8902D6F3F5E845A924EBBC6D3 /* DTFoundationConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTFoundationConstants.h; path = Core/Source/DTFoundationConstants.h; sourceTree = ""; }; + FFC43898C44FDC7EB2254731C16610E7 /* RDEPUBHTMLNormalizer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = RDEPUBHTMLNormalizer.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 019CACBDE98B6E7CD6E2323C2BE18D6F /* Frameworks */ = { + 51AFA4F8EB718F245E1627FA4BF59B6A /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 1DC6173FB956454B07EFE7D70CFAA752 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 622158A80ADA036B99DF9CBB09B11567 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 8E909D0FE7B6AB696AA03294AC9DEA23 /* Foundation.framework in Frameworks */, - 9C4C10EBC3E762CE02A9616E6E64514C /* ImageIO.framework in Frameworks */, - 9A250709DAD9354AF5EC1E2DB111096B /* QuartzCore.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 67452C77F8E886622577C996F3462FE6 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 295918B689386A62654E2CE1AB071A69 /* Foundation.framework in Frameworks */, + 20379B541861287985D1AC7365A15E1A /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1044,6 +1022,13 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 8F0767EB7C7434A325165E4605C31950 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; 902FF6DD4EB5A15E1C04D090758D9DA8 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -1052,15 +1037,32 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - AA17F25A105235455D6DBA0379F37BC1 /* Frameworks */ = { + A25F89FC6547C5A333C0CD7BB6FE4342 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 6277845A6CCAAA5F160D86F6AA458341 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - FAD0182437679AAA39F0EDBF1BC1A05E /* Frameworks */ = { + ACA81CBBCF135C54849FA5D19DAF9CD8 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 032ABB9E9A68AA67B6B110805A53A1EF /* Foundation.framework in Frameworks */, + 5186D6E60C60C989A1ED6772123463D8 /* ImageIO.framework in Frameworks */, + C3A998DC41047D99FA04887069074476 /* QuartzCore.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D1C8BB447AF6847C2F9535EE2E5943A6 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + C18A6D603AC6D68DB2D8DE6681BFF9AD /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D31DE0184C5A09E59AA1E5AE38C9862F /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( @@ -1070,17 +1072,6 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 03DC298EABDEB36C8A8F9F3BD445F015 /* Models */ = { - isa = PBXGroup; - children = ( - 8250EF1AA33B1FBC82A438CB75C77E7D /* RDEPUBAnnotationModels.swift */, - FC0B33BDB6F7F3F950944CB3E69CDA68 /* RDEPUBPaginationModels.swift */, - 98D44DA052097D1223C075A582A6E1C7 /* RDEPUBReadingLocationModels.swift */, - ); - name = Models; - path = Models; - sourceTree = ""; - }; 06C22A27383EA079F8FF2367C9567BC0 /* DTCoreText */ = { isa = PBXGroup; children = ( @@ -1218,6 +1209,28 @@ path = DTCoreText; sourceTree = ""; }; + 0BE6BBB15C22BB13EB9526F0AF5C4C84 /* CFI */ = { + isa = PBXGroup; + children = ( + 35D7BCD1656B9EBFCCCD9B0555301C08 /* RDEPUBCFI.swift */, + 8AC1B803E56F25BAE652D5B6999E24C9 /* RDEPUBCFICompatibility.swift */, + C927FAF87133B84914A945573DADE009 /* RDEPUBCFIDOMPathBuilder.swift */, + 3D7408F42F359473D4FF2D39F9F55332 /* RDEPUBCFIError.swift */, + EC882A6B7818AA32593C00AC4FF0DF4B /* RDEPUBCFIGenerator.swift */, + 8FD921A3FCB23BFE2223C090581A6BDD /* RDEPUBCFIMap.swift */, + 5BB6241845CE67D939A6A48B126343D2 /* RDEPUBCFIParser.swift */, + 3BA078786E78684657E20DC47B435CB0 /* RDEPUBCFIPath.swift */, + 9351AEC32A6B2EFB3F6D6A6330913C73 /* RDEPUBCFIRange.swift */, + CE14FDB1A9F5658FC96A86D8827B6CAB /* RDEPUBCFIRecoveryEngine.swift */, + 654BB0622F8E7419F01F2F9C3D700D8A /* RDEPUBCFIResolver.swift */, + 1AE1960723317596B2CDAD13DD4ECE9D /* RDEPUBCFISerializer.swift */, + 2A012A1477CFB810ED37E6F03B452F46 /* RDEPUBCFITextAssertion.swift */, + 71AC379296558EB0F7CF754C2B17682D /* RDEPUBCFIUtilities.swift */, + ); + name = CFI; + path = CFI; + sourceTree = ""; + }; 0D4A349829D1C0DC0E69C0A64B9A4139 /* Pods-ReadViewDemo */ = { isa = PBXGroup; children = ( @@ -1235,26 +1248,37 @@ path = "Target Support Files/Pods-ReadViewDemo"; sourceTree = ""; }; - 0E2A238FDA759C340D26856ED84A003D /* TextPage */ = { + 0E1911B77DFE262FFDADCE2D967B5154 /* Notes */ = { isa = PBXGroup; children = ( - AAFF9E2F6436861E176B5E55A1180672 /* RDEPUBChapterDisplayContentCache.swift */, - A08CDC243F29B29A95253DCA44335BFE /* RDEPUBDarkImageAdjuster.swift */, - 00385D2EEBD20524770BBB6A89C4DB3D /* RDEPUBPageInteractionController.swift */, - F77D2A383DC7C1F05BD961646DB1D61E /* RDEPUBPageLayoutSnapshot.swift */, - F360D7798705EF33FED7578F42ABE588 /* RDEPUBSelectionLoupeView.swift */, - 0D94BA24C3E1653B2ADF0961B2DFD09F /* RDEPUBSelectionOverlayView.swift */, - DC96DD4FDA029CD6D6E810916DEBD563 /* RDEPUBTextAnnotationOverlay.swift */, - B3875D495797D0A7441AE5FDC6606E31 /* RDEPUBTextContentInteractionCoordinator.swift */, - 4D5A551AA691377650E64BF614B5315E /* RDEPUBTextContentView.swift */, - A8C567DF41CC58FE2BA5C88C6B4A71F6 /* RDEPUBTextPageBoundaryValidator.swift */, - 1251AEBAF40F77167C2B57D0A466DAA4 /* RDEPUBTextPageDecorationView.swift */, - 698DD735E4FB33C89CEA4216C18CD31E /* RDEPUBTextPageRenderView.swift */, - 1F922CBFACAAD201E732987D727209EE /* RDEPUBTextPageVerticalJustifier.swift */, - 8170A64FBDE3CC44D5EFA56020DC7978 /* RDEPUBTextSelectionController.swift */, + 57C580096A60934266E30A16BE65055B /* RDEPUBNoteDetector.swift */, + D31105650106D4505E2C61254DFB1E92 /* RDEPUBNoteModels.swift */, + 24CF48155EC3DF43BC4CA032E89EEE6B /* RDEPUBNoteResolver.swift */, ); - name = TextPage; - path = TextPage; + name = Notes; + path = Notes; + sourceTree = ""; + }; + 15AC3F1D441F5E19E1E3BF40BA2B70C1 /* ChapterRuntime */ = { + isa = PBXGroup; + children = ( + F7D21627239225BB7CC9A73D1BDB7624 /* RDEPUBBackgroundTrace.swift */, + 141F26097C53F79C40A22E78C96EE4FE /* RDEPUBBookPageMap.swift */, + E160875ECD036F271801B2FBE8612A42 /* RDEPUBChapterCacheKey.swift */, + A809C97E5256954972B21BFE8DA41D73 /* RDEPUBChapterDataCache.swift */, + A0CBD4A797F1B8D6FC7C2F105D534DE4 /* RDEPUBChapterLoader.swift */, + 3439002DA99BB7F6F3F9A6A4B7E7D08E /* RDEPUBChapterLocation.swift */, + 4295D0D2EA8BCC5E6187DF7D006D7432 /* RDEPUBChapterOffsetMap.swift */, + EC13894C150346B04A92269EA6AD9204 /* RDEPUBChapterRuntimeStore.swift */, + 6E354F34DFA8299AB7C81BBDF7D09416 /* RDEPUBChapterSummaryDiskCache.swift */, + FD99D38FA1379578B40B6A69D34C416B /* RDEPUBChapterWarmupOrchestrator.swift */, + 9977C33D88319AD9219E1FA5FBC4845B /* RDEPUBPageCountCache.swift */, + C958AB41C0D909176E479CCC24B4CAEC /* RDEPUBPageResolver.swift */, + 137155DEDF1E628B8966A663B395A297 /* RDEPUBRuntimeChapter.swift */, + B8157DDB46604BA4ABC1E776FFF3BACF /* RDEPUBRuntimePageCount.swift */, + ); + name = ChapterRuntime; + path = ChapterRuntime; sourceTree = ""; }; 1A823333EC1496E37E1F99813FE335DD /* DTAnimatedGIF */ = { @@ -1269,42 +1293,21 @@ 1CA1B2C980301DD7B83B48382F78ED08 /* Development Pods */ = { isa = PBXGroup; children = ( - BF9E008141B88625C14F2648FC9D1226 /* RDEpubReaderView */, + C73D8AD07693C4A76944027C60D1DFEB /* RDEpubReaderView */, ); name = "Development Pods"; sourceTree = ""; }; - 2F5C5558D370957F656D4C77FDD78A55 /* ReaderController */ = { + 301C3CD614987F13B0688386604A5040 /* Settings */ = { isa = PBXGroup; children = ( - E79069E6008AAA4FD339D2819CDF4675 /* RDEPUBBackgroundCoverageStore.swift */, - 44D49963D6EAE25EA025A41D91CEAD23 /* RDEPUBBackgroundPriorityPolicy.swift */, - 7B098FF2F53DED347EE39859D3CC11BE /* RDEPUBJumpSession.swift */, - 8C46A096335AF772EB451C71B476A0C8 /* RDEPUBMemoryProbe.swift */, - 65144E0A92FF19D145E244C61896601B /* RDEPUBMetadataParseCancellationController.swift */, - F486744FB2C3E4E55A9FED93371C7272 /* RDEPUBMetadataParseWorker.swift */, - 46F84AE2351143E6F632A3FEE684A62C /* RDEPUBPageMapReconciliationCoordinator.swift */, - 961206494549A9AE3C6EB03DDAD21C1C /* RDEPUBPresentationRuntime.swift */, - 376805E5E5095E2902BB687236336C0F /* RDEPUBReaderAnnotationCoordinator.swift */, - 66497586176C305ADC5F3B447F17FA90 /* RDEPUBReaderAssemblyCoordinator.swift */, - 4DDA63DD315651FD20B81BE242ADFC72 /* RDEPUBReaderChromeCoordinator.swift */, - FA19A96B26E75A87DFA7F1E213474E48 /* RDEPUBReaderContext.swift */, - 07EF7DFA2327CD5059A2A0B693813195 /* RDEPUBReaderDependencies.swift */, - 96D1D1F318551BFCF4B28021E708564D /* RDEPUBReaderEnvironment.swift */, - 29F6775325522C48C45B7023AF9B83EB /* RDEPUBReaderLoadCoordinator.swift */, - 98C6026F789783895FC83556EF6F289C /* RDEPUBReaderLocationCoordinator.swift */, - AAAD24FFA4B4B8E33C45ED26C2FD4B37 /* RDEPUBReaderPaginationCoordinator.swift */, - A7C6D0CBF46040C1E92580C7CB26A47C /* RDEPUBReaderRuntime.swift */, - 4EC9324EF18C7802D6401A32D6B5C2CC /* RDEPUBReaderSearchCoordinator.swift */, - 19A9DF3B54605BC418E5EC2AC9C285F9 /* RDEPUBReaderServices.swift */, - 6A58A47E8A2EEF76C3ED73CB54A086C0 /* RDEPUBReaderState.swift */, - 4830D8C6A94E0C97E0F0675276BFD674 /* RDEPUBReaderUIState.swift */, - 89BD34E68BFF47D27D5F91863AF1BBF1 /* RDEPUBReaderViewportMonitor.swift */, - 82BB9B078A1C0E0BDB1BFBB93A670A2A /* RDEPUBSelectionState.swift */, - D49A996EA5DB539C5B945FA3BB68E029 /* ChapterRuntime */, + 2903888BFB6ADFADC198A26EABDB80C4 /* RDEPUBReaderConfiguration.swift */, + 15302EEE1CDF0C413064A5EBB8294A2E /* RDEPUBReaderSettings.swift */, + E0D637E33E3C04A550B5C25D32E4F242 /* RDEPUBReaderSettingsViewController.swift */, + 22393315110085198FE2DF91FEE55D6B /* RDEPUBReaderTheme.swift */, ); - name = ReaderController; - path = ReaderController; + name = Settings; + path = Settings; sourceTree = ""; }; 30694C306AB98E50937E9ECB722C31A4 /* Core */ = { @@ -1314,50 +1317,36 @@ name = Core; sourceTree = ""; }; - 3217B140E7CD936FAB4FE45BED42A4E4 /* EPUBUI */ = { + 33213BF45F296BB31E0F716CBECA1A04 /* Notes */ = { isa = PBXGroup; children = ( - D5CC55716AF7BC27FD9268D256ABA314 /* RDEPUBAttachmentTooltipOverlayView.swift */, - 08AA95F9E01837CBD5833F9D03F5FC8A /* RDEPUBAttachmentTooltipView.swift */, - 06A86745BE9CD1C490EC229FA2F09BBD /* RDEPUBImageViewController.swift */, - F57646CB4F9349BC9776772BFDC56B49 /* RDEPUBImageViewerCoordinator.swift */, - A49A27A2F307647B468A9652F7A49006 /* RDEPUBReaderBottomToolView.swift */, - 6F265D797C3E4FD97ED35CB9BF70F121 /* RDEPUBReaderChapterListController.swift */, - 499D25E7902D605A5EC2940A714AABE0 /* RDEPUBReaderController.swift */, - 6D5EB1FE3AA42EEE041C5BAF4391E8B3 /* RDEPUBReaderController+AttachmentTooltip.swift */, - 5E81140A7F083D951F3E912FC03A1A3B /* RDEPUBReaderController+ContentDelegates.swift */, - 38887F7296CA064DFC5B3ABBE16EE16C /* RDEPUBReaderController+DataSource.swift */, - 3492A7E1375C07EAACE09CF11D14212D /* RDEPUBReaderController+ExternalLinks.swift */, - 2DC9A66DE304F1176D36FD9294F0E536 /* RDEPUBReaderController+LocationResolution.swift */, - 8A1B3AAEE7814FA72D7C528E10D49C3C /* RDEPUBReaderController+Orientation.swift */, - FBF4C131ADF1BC0D64D695B49AAC8370 /* RDEPUBReaderController+PublicAPI.swift */, - F344665C57510633A0980B1F2F023A2F /* RDEPUBReaderController+RenderSupport.swift */, - A48F69748B05758B4CB62757E8CF6464 /* RDEPUBReaderController+RuntimeBridge.swift */, - ED2AB892BC893DB186CD0AFA5CA63F61 /* RDEPUBReaderController+TableOfContents.swift */, - 2AF6AEEC13967258B9E5E8BF691ADDC8 /* RDEPUBReaderController+Trial.swift */, - 63731E76CD377576124BFA6BC5764F08 /* RDEPUBReaderDelegate.swift */, - 339103E5D1A1C62BF7B414EE689069F8 /* RDEPUBReaderHighlightsViewController.swift */, - D1939CE18FB1D0E9342A3963CB1F5C84 /* RDEPUBReaderPersistence.swift */, - CCD4B82D09BE72980015175674B04B22 /* RDEPUBReaderSearchBarView.swift */, - 66637609CA61FBB1E9F137BD7C0D5A2E /* RDEPUBReaderTableOfContentsItem.swift */, - FA4EC97EE53FBDB24B5FB92C7FE4C7C4 /* RDEPUBReaderToolView.swift */, - 447C8160AAD2A2E1FE48C8420778A342 /* RDEPUBReaderToolViewProtocols.swift */, - 0FFD7DFEB52262536F9A2C19B111C229 /* RDEPUBReaderTopToolView.swift */, - 774F11C36F2A16D57002B67C22552875 /* RDEPUBSettingsFlipAutomation.swift */, - C985C2E56D867C385610E439E61BFBFE /* RDEpubURLReaderController.swift */, - E3B3807F1E6648C733C6F915288C1E45 /* RDEPUBViewportTypes.swift */, - EE31789BAB1A8C59EDFC3C728B350E90 /* RDEPUBWebContentView.swift */, - F630BB624DD56B3C0BD9131D8ACEC21D /* RDEPUBWebDecorationOverlayView.swift */, - C0CF886110ECBE6539FAF53C10B1498A /* String+RDEPUB.swift */, - 17B38E01CD7C86BDC366392058A1D719 /* UIColor+RDEPUB.swift */, - A33FA1A570B5BA2C5DCAB078F31DE5BF /* UIColor+RDEPUBHex.swift */, - 6C187420AB739F30652FFBD133782A8B /* Notes */, - 2F5C5558D370957F656D4C77FDD78A55 /* ReaderController */, - 9BCDE073FD44A6E872B7420D21E3EA84 /* Settings */, - 0E2A238FDA759C340D26856ED84A003D /* TextPage */, + F6822404F9A7E9674FE4E88E510397DF /* RDEPUBNotePopupCoordinator.swift */, + 5CD64015D7D9EC967120ED4B3DDC6072 /* RDEPUBNotePopupViewController.swift */, ); - name = EPUBUI; - path = Sources/RDEpubReaderView/EPUBUI; + name = Notes; + path = Notes; + sourceTree = ""; + }; + 34714BB98AC8C864F3B5D93AC6AF5AF8 /* TextPage */ = { + isa = PBXGroup; + children = ( + 7B042E58E7431D5F5F85FC52ADE69567 /* RDEPUBChapterDisplayContentCache.swift */, + 937A80CBC2AD2D82F0EE423A4ADDC4C0 /* RDEPUBDarkImageAdjuster.swift */, + E62CA2D2BA86C387EA2A9EA66DA6EFB4 /* RDEPUBPageInteractionController.swift */, + 914B1FC71E36885F49DA94D4A738F229 /* RDEPUBPageLayoutSnapshot.swift */, + E12E23F6DB8D39D8D6EEC2E2C4E28A99 /* RDEPUBSelectionLoupeView.swift */, + 182E35C25ED6D0A21324217217085D5A /* RDEPUBSelectionOverlayView.swift */, + 1251C51C5397546CFB5A75D2B8809422 /* RDEPUBTextAnnotationOverlay.swift */, + 021B114647CE6D248AECDDE35C192D10 /* RDEPUBTextContentInteractionCoordinator.swift */, + 6869156BAAC95D1F5789D33AA634E2A1 /* RDEPUBTextContentView.swift */, + 73B4CAD27125A693F658D8352C0A1CC7 /* RDEPUBTextPageBoundaryValidator.swift */, + A9B8AAF5F0EA3BBF843DD82B4941C531 /* RDEPUBTextPageDecorationView.swift */, + 40E050B10B411E419812F5ECAC0F49D4 /* RDEPUBTextPageRenderView.swift */, + 2B491999733C9C301AD35FCCC8F52950 /* RDEPUBTextPageVerticalJustifier.swift */, + F01F99F72C9B49C62891C3887909C4B1 /* RDEPUBTextSelectionController.swift */, + ); + name = TextPage; + path = TextPage; sourceTree = ""; }; 387832C7C64B3B352215F0FD83B927AC /* Support Files */ = { @@ -1386,6 +1375,68 @@ name = Pods; sourceTree = ""; }; + 479E6671B9A1A97E730BBB65150862FC /* EPUBUI */ = { + isa = PBXGroup; + children = ( + 61D6D122EB91AFBD7E62793B260F8999 /* RDEPUBAnnotationEditorViewController.swift */, + 8C22FB911A2A36812B470ADF6121EBF7 /* RDEPUBAttachmentTooltipOverlayView.swift */, + 0AB4D55384268E7357D68871603EFA3F /* RDEPUBAttachmentTooltipView.swift */, + 95CBA6D7FC934EAE4C80594B79D573FB /* RDEPUBImageViewController.swift */, + 934C53D0904A8D943D6D60401E06753B /* RDEPUBImageViewerCoordinator.swift */, + AC9FB2A444D806A54DD076A442901D5E /* RDEPUBReaderBottomToolView.swift */, + E032FF47C872A33941F25FF668CD0728 /* RDEPUBReaderChapterListController.swift */, + 468E57A9700445D270B23B2998C64B1F /* RDEPUBReaderController.swift */, + 3391309FA6D682BB75C2614C0F9DE612 /* RDEPUBReaderController+AttachmentTooltip.swift */, + 10D69789F90890C992DA00555B99DD79 /* RDEPUBReaderController+ContentDelegates.swift */, + BFEBB4FDA1CF193F22AE1FF2B6D7CC64 /* RDEPUBReaderController+DataSource.swift */, + 94CABDFEA31C33C50440C3B058BAF148 /* RDEPUBReaderController+ExternalLinks.swift */, + A78361529E8B1D3A665B0A2AF622A90E /* RDEPUBReaderController+LocationResolution.swift */, + 2351FFC9DE1E7557462EA9394EFF7E68 /* RDEPUBReaderController+Orientation.swift */, + 92B51B67F5F28B0F2704957985E2DD5E /* RDEPUBReaderController+PublicAPI.swift */, + 0FC20950D4ECD5C5C0AEF9D9F8457621 /* RDEPUBReaderController+RenderSupport.swift */, + D17BDE91B51FEA96E14261A1618D6566 /* RDEPUBReaderController+RuntimeBridge.swift */, + 109C753639D44574829756B34D5651C7 /* RDEPUBReaderController+TableOfContents.swift */, + 9C808F6521B0773999682C043AA9B204 /* RDEPUBReaderController+Trial.swift */, + 0260FAFAF47E57F48EA48DB48C073C96 /* RDEPUBReaderDelegate.swift */, + C114307C21E03CC4E2E8305C21E73FB1 /* RDEPUBReaderHighlightsViewController.swift */, + C2C0197426EE469AC710BC6D91DA77FA /* RDEPUBReaderPersistence.swift */, + C3B4B7A906F8C1CD31C1695AB811CED1 /* RDEPUBReaderSearchBarView.swift */, + DBE25565E3B8E7A39A04AFC66AFD0350 /* RDEPUBReaderTableOfContentsItem.swift */, + 6BBE4AEAB48FB2E81DB288DF7B502FBA /* RDEPUBReaderToolView.swift */, + DBBE74D1D36F66AC23C0653D7AEA7795 /* RDEPUBReaderToolViewProtocols.swift */, + FAED053B066D78C71607CBA6C86AD4E5 /* RDEPUBReaderTopToolView.swift */, + 2D051826AE81C18C9139E4D8AAFE10FA /* RDEPUBSettingsFlipAutomation.swift */, + 233DA4A33C9BE1730F19ADC4DA272D19 /* RDEpubURLReaderController.swift */, + E0F83801397BE9214B379107EA879E93 /* RDEPUBViewportTypes.swift */, + 319D8B60168C932575003FA2717DA0A2 /* RDEPUBWebContentView.swift */, + 5700AB7336CC9B028927801ED1496E5D /* RDEPUBWebDecorationOverlayView.swift */, + 0B8399E496B773A18740B02518D0C022 /* String+RDEPUB.swift */, + 2219C1F1BE40DA40EC84119B4AC91ED6 /* UIColor+RDEPUB.swift */, + 455C6E7AC61E21B7610D8D95CC98B49F /* UIColor+RDEPUBHex.swift */, + 33213BF45F296BB31E0F716CBECA1A04 /* Notes */, + 4CFD61592C7BEDFE93234D7527A4C055 /* ReaderController */, + 301C3CD614987F13B0688386604A5040 /* Settings */, + 34714BB98AC8C864F3B5D93AC6AF5AF8 /* TextPage */, + ); + name = EPUBUI; + path = Sources/RDEpubReaderView/EPUBUI; + sourceTree = ""; + }; + 4B7CE59D3A9BEF7C1D906A308BEFA301 /* Pagination */ = { + isa = PBXGroup; + children = ( + C6BCC51588FE3E176018809B2126DE07 /* RDEPUBChapterPageCounter.swift */, + 55B279EB4E340447F26F6F1F0F09432A /* RDEPUBCoreTextPageFrameFactory.swift */, + 27551CB4C68AF584450C4B1CC073E894 /* RDEPUBPageBreakPolicy.swift */, + 0CEE332DA13ECCE7122B46F3F48B43D5 /* RDEPUBTextLayouter.swift */, + 135184246F4FDECFDA5CF000C5FAF61F /* RDEPUBTextLayoutFrame.swift */, + F971A4BB973BBDB69AF6F51C5EBBCE6F /* RDEPUBTextPaginationInterfaces.swift */, + DE1AE43B8451B52B1EE55485BDB094AC /* RDEPUBTextPaginationSupport.swift */, + ); + name = Pagination; + path = Pagination; + sourceTree = ""; + }; 4B9763CFE13CC8B0D8AA60EE28156E6D /* Support Files */ = { isa = PBXGroup; children = ( @@ -1402,20 +1453,37 @@ path = "../Target Support Files/ZIPFoundation"; sourceTree = ""; }; - 4BF62D97D37BD92F438C7139535636AB /* Support Files */ = { + 4CFD61592C7BEDFE93234D7527A4C055 /* ReaderController */ = { isa = PBXGroup; children = ( - D71B377949D433438F307CC6B120D372 /* RDEpubReaderView.modulemap */, - 3108DBF4D182FE04D56AB715DE874117 /* RDEpubReaderView-dummy.m */, - 4186A080B9749A79809873298A193880 /* RDEpubReaderView-Info.plist */, - 27F9CACA6F2EE61A3431B82175020F04 /* RDEpubReaderView-prefix.pch */, - 8A204FA398A28E3D0424A74DD407BB03 /* RDEpubReaderView-umbrella.h */, - CF8FD338F89FBB4FEDDF24E590E86AFE /* RDEpubReaderView.debug.xcconfig */, - 57F3CF4EBE3598B7B7C01D2C19483B86 /* RDEpubReaderView.release.xcconfig */, - B03885DA855AC3C09FF73925C82186C8 /* ResourceBundle-RDEpubReaderViewAssets-RDEpubReaderView-Info.plist */, + F84EB6F838A120BFBCE3592928F5267B /* RDEPUBBackgroundCoverageStore.swift */, + CF94E32627BA15D6DFDA2ECFD0EA75DE /* RDEPUBBackgroundPriorityPolicy.swift */, + 1DAF4368F1F937FA1A0F92353D8286A4 /* RDEPUBJumpSession.swift */, + BAF5C3F61802BB558960C1264B9B95EC /* RDEPUBMemoryProbe.swift */, + B04AD6AE3FF5C760FD284CE7A8744A75 /* RDEPUBMetadataParseCancellationController.swift */, + 351016CE268A025C24D43F52B5142E2B /* RDEPUBMetadataParseWorker.swift */, + FCEC7E64DDEB788FE417CBD151347F93 /* RDEPUBPageMapReconciliationCoordinator.swift */, + 8C5EFFDA033C18F12383C1494156C527 /* RDEPUBPresentationRuntime.swift */, + 349A1F9009A12CD9B4E6F706EEACD8B8 /* RDEPUBReaderAnnotationCoordinator.swift */, + 9A46A3005ACAB77D9CB0CAF634ED430A /* RDEPUBReaderAssemblyCoordinator.swift */, + FF5FF35650CFF55269A6ADEB9DB1F392 /* RDEPUBReaderChromeCoordinator.swift */, + 9DB65624B7F08BB08886B1AF77CA5A35 /* RDEPUBReaderContext.swift */, + 653229313625F134A4A11EBEBC7152A3 /* RDEPUBReaderDependencies.swift */, + 92A113769CE9950DC897120CC7A809F5 /* RDEPUBReaderEnvironment.swift */, + BFFBC2B5CED248344B9C711B6D54DABB /* RDEPUBReaderLoadCoordinator.swift */, + E4F082BF59D81240AB478640AC002399 /* RDEPUBReaderLocationCoordinator.swift */, + AD1A3421E6BB01E8F6D89253D7F3856D /* RDEPUBReaderPaginationCoordinator.swift */, + 70138D8FF7E1E61CFF184766A508BAE1 /* RDEPUBReaderRuntime.swift */, + 11D146DF988352E84DBB8C0C9D6E4026 /* RDEPUBReaderSearchCoordinator.swift */, + C44B5AB69C27DBBA102BE789F5FF0978 /* RDEPUBReaderServices.swift */, + F7621EBFDF9CB28F0C15A295D278586F /* RDEPUBReaderState.swift */, + 3D24112D9DBFEFA68D9454F68306EA2F /* RDEPUBReaderUIState.swift */, + F508C2B8F652F2A20A8F37B7E1AE0E49 /* RDEPUBReaderViewportMonitor.swift */, + 0986632744266A78392A1FAA353775EB /* RDEPUBSelectionState.swift */, + 15AC3F1D441F5E19E1E3BF40BA2B70C1 /* ChapterRuntime */, ); - name = "Support Files"; - path = "ReadViewDemo/Pods/Target Support Files/RDEpubReaderView"; + name = ReaderController; + path = ReaderController; sourceTree = ""; }; 4DABD1D106D01055A2AB87F3DA58A3CC /* iOS */ = { @@ -1431,6 +1499,18 @@ name = iOS; sourceTree = ""; }; + 4E9B026DA90DBA805FDC4C428C103429 /* Paging */ = { + isa = PBXGroup; + children = ( + DE82EC616E01A54A95A40DA36BE309D8 /* RDEpubReaderPagingController.swift */, + 131769DEED97B4620743A928D7B3C624 /* RDEpubReaderPreloadController.swift */, + 930CD4C23B5C3D593C6B42CD7A32503E /* RDEpubReaderSpreadResolver.swift */, + CE9251BC09711D75E64B606CAD967665 /* RDEpubReaderTapRegionHandler.swift */, + ); + name = Paging; + path = Paging; + sourceTree = ""; + }; 53105D96992884E1673FC639B3987E2C /* DTHTMLParser */ = { isa = PBXGroup; children = ( @@ -1440,61 +1520,46 @@ name = DTHTMLParser; sourceTree = ""; }; - 6C187420AB739F30652FFBD133782A8B /* Notes */ = { + 59FA3E6AECD3F76C6D36CD0A1E67E884 /* EPUBCore */ = { isa = PBXGroup; children = ( - D5D6E84305CAE9A6583309CA93366E15 /* RDEPUBNotePopupCoordinator.swift */, - CE074C3401A1CAF095691391F2028E61 /* RDEPUBNotePopupViewController.swift */, + 013FBBDBB84A86FBE4214ED574A76CCA /* RDEPUBAssetRepository.swift */, + E3896B16059A0D04942F07E7488CE212 /* RDEPUBFixedLayoutTemplate.swift */, + 13F98DCF70DEEDFBEBAB3647BDDF2660 /* RDEPUBJavaScriptBridge.swift */, + 3268DB660BB7C8116E35DB5AB0CBA97B /* RDEPUBModels.swift */, + A1C347BEDE76210B7602DC2192020FFB /* RDEPUBNavigatorLayoutContext.swift */, + 1F1380E4CD3BCF3EF32508ADEEF3DC1D /* RDEPUBPaginator.swift */, + 41E8B14921F172E254BC8C5FC2813C8F /* RDEPUBParser.swift */, + D3E28E9CC424366C83C3FD1EEE3D55C9 /* RDEPUBParser+Archive.swift */, + 072A12E69FD0B832AD8BD710163EAF6E /* RDEPUBParser+Package.swift */, + 49105E189A5AD0FAE11851C6B699A745 /* RDEPUBParser+ReadingProfile.swift */, + DF6C2C2EB4C27C788358EED3B9EF18A0 /* RDEPUBParser+Resources.swift */, + 620E64D43B143049172FCA325B875ED0 /* RDEPUBParser+TOC.swift */, + 3F27BB96781CA1499A4FAD5250D90A95 /* RDEPUBPreferences.swift */, + 2CEFBB20AE6C96B02D38B4A59B36F039 /* RDEPUBPublication.swift */, + 5F2D710F0EE0316934BAA67D90F0B572 /* RDEPUBReadingSession.swift */, + 3CED4412B3F7C515DE25A43E2078439C /* RDEPUBRenderRequest.swift */, + 5E26179D651FB113885BE60137917D31 /* RDEPUBResourceDataProvider.swift */, + 933CE5D5843A33A69BA28D0B9FBFBF60 /* RDEPUBResourceResolver.swift */, + 89CB9865BCC2678943329CAC4EA50389 /* RDEPUBResourceURLSchemeHandler.swift */, + 700DC188AC75D1F8DBD85D4796BF26CE /* RDEPUBSafeArea.swift */, + 7B995A87BBDE0DDBE56688C4B540EB66 /* RDEPUBSearchEngine.swift */, + 15C5C3C64F13B0CFF74EBDC74F4944C3 /* RDEPUBSearchModels.swift */, + 9B0C15189A2464E1CF31D95EA4FD0B44 /* RDEPUBStyleSheetBuilder.swift */, + F619B4CD11C599BCA22DC6405537C0ED /* RDEPUBTextAnchor.swift */, + 6A395A89D72D33EFF65DDE4E0150E901 /* RDEPUBWebView.swift */, + EC16F3725AAC7A9B9BDFFF49101768C7 /* RDEPUBWebView+Configuration.swift */, + 496BFBBBE6F53ECAEDD0897BCC639ACF /* RDEPUBWebView+FixedLayout.swift */, + 652B4DE8E7317B396EFC883822577223 /* RDEPUBWebView+JavaScriptBridge.swift */, + CF39A21E0450FE6C70C3B4B7F15919F8 /* RDEPUBWebView+Reflowable.swift */, + D53B5143DBF9F121931A049852F7B439 /* RDEPUBWebView+Search.swift */, + DACBC55EFB0FBDBFA4EBAB5FEB8435BF /* RDEPUBWebViewDebug.swift */, + 0BE6BBB15C22BB13EB9526F0AF5C4C84 /* CFI */, + F62894EA7D8CC2187938782E037C7350 /* Models */, + 0E1911B77DFE262FFDADCE2D967B5154 /* Notes */, ); - name = Notes; - path = Notes; - sourceTree = ""; - }; - 77F501B572D52526D103EA3148D4C343 /* Typesetter */ = { - isa = PBXGroup; - children = ( - B545FD055DB6F5E62A4B3477F7514D97 /* RDEPUBAttachmentNormalizer.swift */, - 6596F63DB6DA0616A8EB8FBA7BEC20F6 /* RDEPUBCFIMarkerInjector.swift */, - E2B413E5361DB33B983E9237109AD610 /* RDEPUBDecryptingImageAttachment.swift */, - 97E58B2D3994B2247E96226094D6EA5F /* RDEPUBFontNormalizer.swift */, - D6C8585AECE0BC205EE95CC484EC6561 /* RDEPUBFragmentMarkerInjector.swift */, - 93D30E909C16D18D790A184AB3DDF67D /* RDEPUBHTMLNormalizer.swift */, - 327CD220C81409236F700C96851DB0E0 /* RDEPUBRenderDiagnosticsCollector.swift */, - 77F0FB3238D157802C13B7A0495C909B /* RDEPUBSemanticMarkerInjector.swift */, - BB2DDE835F718828F22B7C06D9AF02FB /* RDEPUBStyleSheetComposer.swift */, - D260C6E64F57CE89343A271FB4804745 /* RDEPUBTextRendererSupport.swift */, - 85EA0348053B11994DBA92C7B6D7E996 /* RDEPUBTypesettingPipeline.swift */, - BA71FE38DFE3AB5568B6E88280F44F62 /* Compatibility */, - ); - name = Typesetter; - path = Typesetter; - sourceTree = ""; - }; - 808F439A37B8E287DEBC64CB967C582A /* Notes */ = { - isa = PBXGroup; - children = ( - E2023C1B0BC6999F982585F30454EF30 /* RDEPUBNoteDetector.swift */, - 272CA6E32EEAE8E81504F1CD3000E925 /* RDEPUBNoteModels.swift */, - 0B1FC7245885C5EE717A583C35D1EC08 /* RDEPUBNoteResolver.swift */, - ); - name = Notes; - path = Notes; - sourceTree = ""; - }; - 8815B4F7BEEA43535969D51A0EDD89BF /* BuildPipeline */ = { - isa = PBXGroup; - children = ( - D76AF74F7C0A5657241E97D1CAD4A833 /* RDEPUBBuildDiagnosticsReporter.swift */, - 6F5DA3828400FEDE014E6CEF4A66E4F8 /* RDEPUBChapterTailNormalizer.swift */, - 6A28433723E70648483D360F3B74FA46 /* RDEPUBPaginationCacheCoordinator.swift */, - 07FC18458844B9ADFDC71FB8C1A085DE /* RDEPUBTextBookBuilder.swift */, - 612542D38DEA4A8BBD84517629D3482B /* RDEPUBTextBookCache.swift */, - B99659A42728CF06CA00A18D502850AF /* RDEPUBTextBookModels.swift */, - A98B084E630DFB6A2A5DB15DFB214FD0 /* RDEPUBTextBuildPipelineInterfaces.swift */, - 3723CC3DB0E91BE41710A956910CA87F /* RDEPUBTextPerformanceSampler.swift */, - ); - name = BuildPipeline; - path = BuildPipeline; + name = EPUBCore; + path = Sources/RDEpubReaderView/EPUBCore; sourceTree = ""; }; 8AE80DCE6937729AEA82EC094AC470AE /* Resources */ = { @@ -1513,18 +1578,6 @@ name = "Targets Support Files"; sourceTree = ""; }; - 9BCDE073FD44A6E872B7420D21E3EA84 /* Settings */ = { - isa = PBXGroup; - children = ( - DFE26DA6A1180E7B617EE341C73F7A50 /* RDEPUBReaderConfiguration.swift */, - 56A856C80CDD6B8D9CFEE9C551D5735F /* RDEPUBReaderSettings.swift */, - 66CF2D711A2AC7E60FFD77AD510F8C2E /* RDEPUBReaderSettingsViewController.swift */, - 677A2034D4184FC4E2836F8A5063AD50 /* RDEPUBReaderTheme.swift */, - ); - name = Settings; - path = Settings; - sourceTree = ""; - }; 9C7F7E7109B9004B64578ADED4DB8E0D /* Core */ = { isa = PBXGroup; children = ( @@ -1572,66 +1625,40 @@ name = Core; sourceTree = ""; }; - 9CC032A6AD1EFA768C774E703F44FE4F /* EPUBCore */ = { + B1ADF1538037A77E19D674F03E17374F /* EPUBTextRendering */ = { isa = PBXGroup; children = ( - 1BB49FBD6621286BA60757349FCC6883 /* RDEPUBAssetRepository.swift */, - CD6168EB90D5F2AE16988D0B4BC4C56E /* RDEPUBFixedLayoutTemplate.swift */, - D36009F925C400C4981D456059CC16BA /* RDEPUBJavaScriptBridge.swift */, - 847740E4EA7EBFB8F53710A0CF448BAE /* RDEPUBModels.swift */, - B60AD68DA33BB20A0FE6D0D98EBE3D2B /* RDEPUBNavigatorLayoutContext.swift */, - F88EF2BFEFAC452A2D6082C661041929 /* RDEPUBPaginator.swift */, - A875D59C9ADB7D356F34F31D11DCC720 /* RDEPUBParser.swift */, - 7FE0F0004B3436CA416F69193354B1AD /* RDEPUBParser+Archive.swift */, - 1A18237B2AA906DE9B54F3FBE756BD95 /* RDEPUBParser+Package.swift */, - F72A99A09ECD213552D649EF0E7BD081 /* RDEPUBParser+ReadingProfile.swift */, - 648B55749AEAFAEC440B7259DA5F18AA /* RDEPUBParser+Resources.swift */, - F1E86313FAB2369F42BBAC7FE6CAF40B /* RDEPUBParser+TOC.swift */, - 229118D72FEDE65A83CE684333A3E6C0 /* RDEPUBPreferences.swift */, - 634A51FA1417DC27E687D3FF80AD42CB /* RDEPUBPublication.swift */, - 1DFD71BAF612FE4B521B30E7E24C4E1A /* RDEPUBReadingSession.swift */, - 00C39185B11404EA80AFE34E589E7496 /* RDEPUBRenderRequest.swift */, - 4CA70CE662A3BBAFDEFA4F1AD91006DE /* RDEPUBResourceDataProvider.swift */, - DC0D5B57FDFCE021F4354EA651E68507 /* RDEPUBResourceResolver.swift */, - 117C8D3804CD684A0BCFB28E527FE704 /* RDEPUBResourceURLSchemeHandler.swift */, - 3415CCD5F8080BB63D594BDCFEA0EB86 /* RDEPUBSafeArea.swift */, - E6C77B875320EA1C7172B5E8F8A4460A /* RDEPUBSearchEngine.swift */, - 2B502241DFB110D155ACB255B7597984 /* RDEPUBSearchModels.swift */, - DB7F916B5DAC02317D14747841AF489C /* RDEPUBStyleSheetBuilder.swift */, - 9B2EA51F3AF54545A450E32FACC3B8C5 /* RDEPUBTextAnchor.swift */, - 9868FA712FFD17D0195649510C1A68A6 /* RDEPUBWebView.swift */, - 4CD0CE49F7A82C0DDA84464EA00115A3 /* RDEPUBWebView+Configuration.swift */, - 3E6420F3C34E33BDB146AE066B20ED88 /* RDEPUBWebView+FixedLayout.swift */, - 1633419ACBF4D75136CB54A9595F07AB /* RDEPUBWebView+JavaScriptBridge.swift */, - 3B06436C03160A6968FEE44D6C916F2E /* RDEPUBWebView+Reflowable.swift */, - 19169CBEAD412B0E1C17F517F5B30269 /* RDEPUBWebView+Search.swift */, - E2F02728AA8EB960A35AE0DD7736C90A /* RDEPUBWebViewDebug.swift */, - C3A8956F36E7C6EDB7FB9A8070A885F9 /* CFI */, - 03DC298EABDEB36C8A8F9F3BD445F015 /* Models */, - 808F439A37B8E287DEBC64CB967C582A /* Notes */, - ); - name = EPUBCore; - path = Sources/RDEpubReaderView/EPUBCore; - sourceTree = ""; - }; - A07A5363CF915A6E953BE45979E238C2 /* EPUBTextRendering */ = { - isa = PBXGroup; - children = ( - 92D5B64BD3D5489A837054C68FC54D65 /* RDEPUBChapterData.swift */, - 157F831C6FDD7EC227517F29E2CB8590 /* RDEPUBDTCoreTextRenderer.swift */, - 5CBCA6E5C76DE2C9362183A2B3763C08 /* RDEpubPlainTextBookBuilder.swift */, - 025D419F9C7DF8D9768FF73AA996BB88 /* RDEPUBTextIndexTable.swift */, - B8EBCB744C294E197C28F3B81349FCF9 /* RDEPUBTextPositionConverter.swift */, - 8612BCF374E10CB4503D16E19A381417 /* RDEPUBTextRenderer.swift */, - DABA2040236556B3E47062333B414AF5 /* RDEPUBTextSearchEngine.swift */, - 8815B4F7BEEA43535969D51A0EDD89BF /* BuildPipeline */, - CE280496DFC1576D3C8D290405C21082 /* Pagination */, - 77F501B572D52526D103EA3148D4C343 /* Typesetter */, + 79119FD962559C23FF1C7BACD4E3CF27 /* RDEPUBChapterData.swift */, + E5FA59861B42210ACA4B63C9A2BF5CA2 /* RDEPUBDTCoreTextRenderer.swift */, + 89FA4A4AD5389087E418ECAFB7052A9A /* RDEpubPlainTextBookBuilder.swift */, + 838D6B774410B7E4CAF94ADEE11AAAE7 /* RDEPUBTextIndexTable.swift */, + 0ACE49A008B4CCD718B22517825FA0F9 /* RDEPUBTextPositionConverter.swift */, + DD9375BCB2ACFD67E672A2460740D2BE /* RDEPUBTextRenderer.swift */, + 7E8C42C6222185E0BE13B91DFA107C1C /* RDEPUBTextSearchEngine.swift */, + B31DAB67A21FEE48F3C8AE3861780FA0 /* BuildPipeline */, + 4B7CE59D3A9BEF7C1D906A308BEFA301 /* Pagination */, + B6AE15BD50463577F539A74A103AF503 /* Typesetter */, ); name = EPUBTextRendering; path = Sources/RDEpubReaderView/EPUBTextRendering; sourceTree = ""; }; + B31DAB67A21FEE48F3C8AE3861780FA0 /* BuildPipeline */ = { + isa = PBXGroup; + children = ( + 933D070CB77BE088EE39078BF90F5038 /* RDEPUBBuildDiagnosticsReporter.swift */, + 413CDD9E8BE3530106C59CBACC41D1E6 /* RDEPUBChapterTailNormalizer.swift */, + 4A390FEDD8B6AEA874A09FBEA03DA5FB /* RDEPUBPaginationCacheCoordinator.swift */, + 94F05ED49F210D554CD806EF09DD1943 /* RDEPUBTextBookBuilder.swift */, + 82EDEF2944E44F1C18F625C6C26BF209 /* RDEPUBTextBookCache.swift */, + 5BB82223A487BB329053B234079997DD /* RDEPUBTextBookModels.swift */, + 85FB9E100DF07B36F1D09F489F0E9E3B /* RDEPUBTextBuildPipelineInterfaces.swift */, + A610179093345F409F73789E827C8F43 /* RDEPUBTextPerformanceSampler.swift */, + ); + name = BuildPipeline; + path = BuildPipeline; + sourceTree = ""; + }; B45E17EA805660F2389832287623284D /* ZIPFoundation */ = { isa = PBXGroup; children = ( @@ -1663,63 +1690,80 @@ path = ZIPFoundation; sourceTree = ""; }; - BA71FE38DFE3AB5568B6E88280F44F62 /* Compatibility */ = { + B6AE15BD50463577F539A74A103AF503 /* Typesetter */ = { isa = PBXGroup; children = ( - 97C6D812897020B77EF9C826643A0418 /* RDEPUBCSSCompatibilityLayer.swift */, - 344F132625D1DB107D6F88F810131154 /* RDEPUBFontFallbackResolver.swift */, - 6D2D23A34A39E1D251E493C14A46A852 /* RDEPUBStyleCompatibilityModels.swift */, + F244E925AD8E03AF454F9847270A83B0 /* RDEPUBAttachmentNormalizer.swift */, + E7A1643CA13D509DFD1122361AC40773 /* RDEPUBCFIMarkerInjector.swift */, + 91B7A1A2FC0993456CCF9C01C4420F07 /* RDEPUBDecryptingImageAttachment.swift */, + FB9079877B14ED272026DEC70CA1B494 /* RDEPUBFontNormalizer.swift */, + E03059382049F6C22019EBF7CC482011 /* RDEPUBFragmentMarkerInjector.swift */, + FFC43898C44FDC7EB2254731C16610E7 /* RDEPUBHTMLNormalizer.swift */, + 1A6D9B39041E6D939308F1EC09B1DDE4 /* RDEPUBRenderDiagnosticsCollector.swift */, + 96F4AF8BDDCC631C87EA6F7ABF63D7E0 /* RDEPUBSemanticMarkerInjector.swift */, + 696D9E2450DEE3CFCBE2BAC8B9937FC7 /* RDEPUBStyleSheetComposer.swift */, + 7491DBD924AAAD4FDAB1B2498061A55D /* RDEPUBTextRendererSupport.swift */, + 455BF75F6B611E3432FDAA69FBF25B80 /* RDEPUBTypesettingPipeline.swift */, + BA1599ACC5D93446192A8BA92C87C16A /* Compatibility */, + ); + name = Typesetter; + path = Typesetter; + sourceTree = ""; + }; + BA1599ACC5D93446192A8BA92C87C16A /* Compatibility */ = { + isa = PBXGroup; + children = ( + 7E63652FD111DAA7B37FF58431EB0251 /* RDEPUBCSSCompatibilityLayer.swift */, + 46DD70067784B4B4D90CB55259CBDDA9 /* RDEPUBFontFallbackResolver.swift */, + E57CDAF0DDE9577615DAD77487138B50 /* RDEPUBStyleCompatibilityModels.swift */, ); name = Compatibility; path = Compatibility; sourceTree = ""; }; - BF9E008141B88625C14F2648FC9D1226 /* RDEpubReaderView */ = { + C3D56C17D655829CC8836F97ED85A744 /* ReaderView */ = { isa = PBXGroup; children = ( - B26A41A391468A542EFC7C0F2D1A94AC /* cssInjector.js */, - 4E3C6089F68358EFF3598A4990F5C545 /* epub-bridge.js */, - 8A99D1BD5B4CEEFCCBE92DF58132E614 /* epub-fixed-layout.html */, - 33CD1120A32A59966196C179B158D57C /* rangy-core.js */, - 8D43BF19A7479296AA8324BFCE1BE87C /* rangy-serializer.js */, - 0437B4D43E3BC006FB3D6082F6DF0C43 /* WeReadApi.js */, - C8687094F5EB5A27E0D5A0070B19A4C2 /* wxread-dark.css */, - 635A4B503A7681407E2D344472AAEFF8 /* wxread-default.css */, - 59CDD214151212AC68223A2BCC81D128 /* wxread-replace.css */, - 58BF341C0AB71F05D2FAED75A8A835A2 /* wxread-replace-latin.css */, - 9CC032A6AD1EFA768C774E703F44FE4F /* EPUBCore */, - A07A5363CF915A6E953BE45979E238C2 /* EPUBTextRendering */, - 3217B140E7CD936FAB4FE45BED42A4E4 /* EPUBUI */, - DD551E78FF4CE67A1600E23812E537B3 /* Pod */, - FBD7A5A2D5463D61F8B41FCE33453BBA /* ReaderView */, - 4BF62D97D37BD92F438C7139535636AB /* Support Files */, + D5D1FC3429FE4AAB31BFAF311EB4EEB3 /* RDEpubReaderContentCell.swift */, + 3AA5C3C464886AB7EEF2393527B5DB0F /* RDEpubReaderFlowLayout.swift */, + 43EFE6D080E8275932CC5417EEC06CDE /* RDEpubReaderGestureController.swift */, + 192697A8E472FFD6609ECE64CCEAD4BF /* RDEpubReaderPageChildViewController.swift */, + 37A3E41EAF109E2FA9DF571E5BA96472 /* RDEpubReaderView.swift */, + C43927E340CE968FE3745E042B7FB8C6 /* RDEpubReaderView+CollectionView.swift */, + 8641AD7E391CA203D99AF176DB9FFD3C /* RDEpubReaderView+ContentAccess.swift */, + 6B520A0DEBF06CF993CCA4B521BD9689 /* RDEpubReaderView+PageCurl.swift */, + 4F2BA60CCA5C073E4ACD6F6CE7F7B8B5 /* RDEpubReaderView+ToolView.swift */, + 292A67D45A60ACC88BAD49BB3CA0A743 /* RDEpubReaderViewProtocols.swift */, + 4E9B026DA90DBA805FDC4C428C103429 /* Paging */, + ); + name = ReaderView; + path = Sources/RDEpubReaderView/ReaderView; + sourceTree = ""; + }; + C73D8AD07693C4A76944027C60D1DFEB /* RDEpubReaderView */ = { + isa = PBXGroup; + children = ( + 9509C7DF773CFA2CC5948683BEDDF25F /* cssInjector.js */, + FA70B35339FD7AEAF6282F4A5C71D6C5 /* epub-bridge.js */, + ED984A84F8E3D5CD16ED53FE377FA3A2 /* epub-fixed-layout.html */, + 83ACEDCD42A8E805DDD896F543F73413 /* rangy-core.js */, + 643923DA1BB22F7BEA8D5752A644241B /* rangy-serializer.js */, + 4F0996CF78904CED41F7185566E3CE83 /* WeReadApi.js */, + 41454FB72CE9EE18949B529EC95B36F6 /* wxread-dark.css */, + 738C3ACE924986CD364DB0E54819DF5F /* wxread-default.css */, + 1B65375600FD9A1B746EFF833CF8E09D /* wxread-replace.css */, + 3D2D15B55BBD91FDC3CA4AAA23B8064C /* wxread-replace-latin.css */, + 59FA3E6AECD3F76C6D36CD0A1E67E884 /* EPUBCore */, + B1ADF1538037A77E19D674F03E17374F /* EPUBTextRendering */, + 479E6671B9A1A97E730BBB65150862FC /* EPUBUI */, + ECB31A0ACD00AD06662F4F344974541D /* Pod */, + C3D56C17D655829CC8836F97ED85A744 /* ReaderView */, + FED781527DD54C51336B78411D436705 /* Support Files */, ); name = RDEpubReaderView; path = ../..; sourceTree = ""; }; - C3A8956F36E7C6EDB7FB9A8070A885F9 /* CFI */ = { - isa = PBXGroup; - children = ( - 442D5E8B0118B18E067F09D23CB652DF /* RDEPUBCFI.swift */, - 915069D65E023E6D8140D847BBCAEF3A /* RDEPUBCFICompatibility.swift */, - 86F6704259B87ED54EF047EF455B168E /* RDEPUBCFIDOMPathBuilder.swift */, - 3AF5C2B69E3DDD7DB21E7A3498D81D3B /* RDEPUBCFIError.swift */, - D915BB57012D656EE211B3BC41EBAA93 /* RDEPUBCFIGenerator.swift */, - E39C7BDD4236B494D4C00CBEC40F4371 /* RDEPUBCFIMap.swift */, - FB1327FE6CC30C4AC4A5124BEB747510 /* RDEPUBCFIParser.swift */, - 643A984CBF55EC9D17CB2D82E7E68B9E /* RDEPUBCFIPath.swift */, - 820C93ABAAF16D708F0A6322AC62801F /* RDEPUBCFIRange.swift */, - D46B1E71516E5EC8C9D039B9D836D290 /* RDEPUBCFIRecoveryEngine.swift */, - 1C12125CE2086E4553539302D7B12BB3 /* RDEPUBCFIResolver.swift */, - CB2D03387C98C80186C40EAA590D89BD /* RDEPUBCFISerializer.swift */, - 423B499E8F7CDADBC49F611A0A4EE4CB /* RDEPUBCFITextAssertion.swift */, - 0E7113A77F93EA57B195F8A039935FF3 /* RDEPUBCFIUtilities.swift */, - ); - name = CFI; - path = CFI; - sourceTree = ""; - }; CB07546106F457AC4196E207FEBAB4ED /* UIKit */ = { isa = PBXGroup; children = ( @@ -1747,21 +1791,6 @@ name = UIKit; sourceTree = ""; }; - CE280496DFC1576D3C8D290405C21082 /* Pagination */ = { - isa = PBXGroup; - children = ( - 00CDDB6857017E4C7EFF619210E70807 /* RDEPUBChapterPageCounter.swift */, - C4A6313EEF4AEDADB4793D6CAEC32B0A /* RDEPUBCoreTextPageFrameFactory.swift */, - FD12C1ABCF0800609F8579BC62C4997F /* RDEPUBPageBreakPolicy.swift */, - 3D7FE9BC0B7335F2AB850FC2EC727ACD /* RDEPUBTextLayouter.swift */, - AEBCA7121897869990DF9876F2240A4A /* RDEPUBTextLayoutFrame.swift */, - 576B635BD8D0994E47FD4CF7E23FEA79 /* RDEPUBTextPaginationInterfaces.swift */, - 0020851315497D536AE8CB195B6BCA5B /* RDEPUBTextPaginationSupport.swift */, - ); - name = Pagination; - path = Pagination; - sourceTree = ""; - }; CF1408CF629C7361332E53B88F7BD30C = { isa = PBXGroup; children = ( @@ -1774,40 +1803,6 @@ ); sourceTree = ""; }; - D1C9FB9108DF2F93DED0BF06EA0FD75E /* Paging */ = { - isa = PBXGroup; - children = ( - B7180AF39B62FE6A6B43E7BE45E45C31 /* RDEpubReaderPagingController.swift */, - E293D93795FE3F3AA09E249FBBAF2169 /* RDEpubReaderPreloadController.swift */, - CABD447CD3A40D2D3C8E80590B8361B7 /* RDEpubReaderSpreadResolver.swift */, - 8EA2C6CFA053A4B06F2AAB2EA0D17A4B /* RDEpubReaderTapRegionHandler.swift */, - ); - name = Paging; - path = Paging; - sourceTree = ""; - }; - D49A996EA5DB539C5B945FA3BB68E029 /* ChapterRuntime */ = { - isa = PBXGroup; - children = ( - E9F15AEACE475EF232CB992A4CDCC6E3 /* RDEPUBBackgroundTrace.swift */, - E935E1C0DB2E3250D48D6F7B1F1785EB /* RDEPUBBookPageMap.swift */, - 6DE016AAB61669B1F22DA37005C9CCC7 /* RDEPUBChapterCacheKey.swift */, - 27176E77CA7151E15AC5ED7E22E7AD11 /* RDEPUBChapterDataCache.swift */, - 03B34F9D700619AE17BE5522BBABC08E /* RDEPUBChapterLoader.swift */, - 834CDE067D219C544FC721901E8E70B5 /* RDEPUBChapterLocation.swift */, - F84F78EBE95C9D7F7DC66344EB40BE9F /* RDEPUBChapterOffsetMap.swift */, - 63C303ED9417890ADDAC0BED62294CB3 /* RDEPUBChapterRuntimeStore.swift */, - BF282AB822D775C2628A7A3D042A588D /* RDEPUBChapterSummaryDiskCache.swift */, - 1C746B6D8EF063C2B6C54882895756D6 /* RDEPUBChapterWarmupOrchestrator.swift */, - BC69A9D6FE337C36229B5CE0CA4206FF /* RDEPUBPageCountCache.swift */, - 752B1535C51D57BB88FB239513E0810A /* RDEPUBPageResolver.swift */, - A05983FAA61E2029A29085B98DEDC010 /* RDEPUBRuntimeChapter.swift */, - BBF2E942B6DF40838CD0EA5D5AFA0A49 /* RDEPUBRuntimePageCount.swift */, - ); - name = ChapterRuntime; - path = ChapterRuntime; - sourceTree = ""; - }; D4D1573132E3E8DD3B99E449658562B8 /* Resources */ = { isa = PBXGroup; children = ( @@ -1837,14 +1832,6 @@ path = DTFoundation; sourceTree = ""; }; - DD551E78FF4CE67A1600E23812E537B3 /* Pod */ = { - isa = PBXGroup; - children = ( - 611D8F816F2E1F33D89B52CA0A04A6F4 /* RDEpubReaderView.podspec */, - ); - name = Pod; - sourceTree = ""; - }; E21916B80D2B8A09E76AB2CFCB1E1232 /* Support Files */ = { isa = PBXGroup; children = ( @@ -1860,6 +1847,25 @@ path = "../Target Support Files/DTFoundation"; sourceTree = ""; }; + ECB31A0ACD00AD06662F4F344974541D /* Pod */ = { + isa = PBXGroup; + children = ( + 3C612EF938BCED8260BBE438FA9D4A74 /* RDEpubReaderView.podspec */, + ); + name = Pod; + sourceTree = ""; + }; + F62894EA7D8CC2187938782E037C7350 /* Models */ = { + isa = PBXGroup; + children = ( + 3BEECE8AFB5F28D8230592B605EEEC22 /* RDEPUBAnnotationModels.swift */, + 917CA78BC2FD1712DA30A9F462849846 /* RDEPUBPaginationModels.swift */, + 6B151204014582972C0694D8E1D89191 /* RDEPUBReadingLocationModels.swift */, + ); + name = Models; + path = Models; + sourceTree = ""; + }; F95A6BE3981EB2EEBFE9B209199BFC43 /* Products */ = { isa = PBXGroup; children = ( @@ -1875,23 +1881,20 @@ name = Products; sourceTree = ""; }; - FBD7A5A2D5463D61F8B41FCE33453BBA /* ReaderView */ = { + FED781527DD54C51336B78411D436705 /* Support Files */ = { isa = PBXGroup; children = ( - F4E8A28FA2AC4F578A1098D8285D3FFE /* RDEpubReaderContentCell.swift */, - A858EFE14B7184E73CC8B040C0FBAF9F /* RDEpubReaderFlowLayout.swift */, - A36571C8CAE6B5E67048AF9818B631C6 /* RDEpubReaderGestureController.swift */, - 6106ADA2D16E2AB749BC690E59E199B5 /* RDEpubReaderPageChildViewController.swift */, - AFC57105C58F0D30043B13D949A57D8E /* RDEpubReaderView.swift */, - 448445FD208B513040C97CF27CA48852 /* RDEpubReaderView+CollectionView.swift */, - A8FEC8336CD4C54BF17C89ED0AEFC376 /* RDEpubReaderView+ContentAccess.swift */, - B50734FC0871066B8BF8848B60EA53CF /* RDEpubReaderView+PageCurl.swift */, - FE76CB44588C6BA77E5E95CFF23BD68C /* RDEpubReaderView+ToolView.swift */, - 986039F986495905BA1EB9D9F426B782 /* RDEpubReaderViewProtocols.swift */, - D1C9FB9108DF2F93DED0BF06EA0FD75E /* Paging */, + BC98B880CE7B3D20C16C71995BF7A55E /* RDEpubReaderView.modulemap */, + A9A949885CFCDF0BF49023658E894E0C /* RDEpubReaderView-dummy.m */, + 51484DCA01C81BA7D563C3D316CB54F7 /* RDEpubReaderView-Info.plist */, + 66E8E9E37BCD4A22FD90DAACB0B94D9D /* RDEpubReaderView-prefix.pch */, + 0FCE59911385C68956F5AA92C3A87B66 /* RDEpubReaderView-umbrella.h */, + 593FC97490C43D8E023CF07AA8D9DCA5 /* RDEpubReaderView.debug.xcconfig */, + B1FD140706B4E87F9A77141878B7B7D8 /* RDEpubReaderView.release.xcconfig */, + 836FB7225DC1F930B81C80A9421862EE /* ResourceBundle-RDEpubReaderViewAssets-RDEpubReaderView-Info.plist */, ); - name = ReaderView; - path = Sources/RDEpubReaderView/ReaderView; + name = "Support Files"; + path = "ReadViewDemo/Pods/Target Support Files/RDEpubReaderView"; sourceTree = ""; }; /* End PBXGroup section */ @@ -1905,6 +1908,47 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 1EFDF66D734CB85FCD20293660758B98 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + C4E1CFBB33F46C060FF14306E4D1E534 /* DTActivityTitleView.h in Headers */, + C3B236C18D509DD6D8D1B88289620E1C /* DTAnimatedGIF.h in Headers */, + 15C9875C155837A725CA94168B992C9C /* DTBase64Coding.h in Headers */, + 559256BF38B8A2D1F607AE7C939AA48D /* DTBlockFunctions.h in Headers */, + D60A1DF04B21F968A69965DDFCB1C346 /* DTCompatibility.h in Headers */, + BBC3F44EC02D4F634A1B7A6542C3C375 /* DTCoreGraphicsUtils.h in Headers */, + 8F3F81C51635C6FEDA5B50F531214138 /* DTCustomColoredAccessory.h in Headers */, + A77AAF0A3E7E3C34258AC6DD5BFC8617 /* DTExtendedFileAttributes.h in Headers */, + 2A270FBE0C590B4C469BCC7FEFC45FF6 /* DTFolderMonitor.h in Headers */, + F417CB1FE5BA0C0BFD0B5B3750DC9E34 /* DTFoundation-umbrella.h in Headers */, + 3B85D453F8CAFB9761D7A92F21BC86A1 /* DTFoundationConstants.h in Headers */, + B32A5AD74947EDEEC2D5C15E739A966E /* DTHTMLParser.h in Headers */, + 768DCA422F398CA15C36AA1DAAD52E50 /* DTLog.h in Headers */, + 88E470EE945721FB2E06AC69DDADDB9C /* DTPieProgressIndicator.h in Headers */, + E3CEC29E97FD5F899AAD7D8369029224 /* DTSmartPagingScrollView.h in Headers */, + A62387C68DBB8D3DB5C9FE1F7CF17C4B /* DTTiledLayerWithoutFade.h in Headers */, + 2817D30EAE1029E395CA12FD88506EAE /* DTVersion.h in Headers */, + 14E48DFCC17C206E3D1E68FBC2C285A2 /* DTWeakSupport.h in Headers */, + 69C0EC0CB88F84ECE0EBFC34C4A5AD87 /* NSArray+DTError.h in Headers */, + B8A88F30F3EED0F9C7AEF10BCE791EC2 /* NSData+DTCrypto.h in Headers */, + DB9EA836F57FA95CC3DAAAB3586E9FDB /* NSDictionary+DTError.h in Headers */, + 5590771672ECACFBEF330210BA9895D6 /* NSFileWrapper+DTCopying.h in Headers */, + FBC4888BE99434905769ACA352399FE9 /* NSMutableArray+DTMoving.h in Headers */, + 301566012FCA08F95A114CB4C752B6EC /* NSString+DTFormatNumbers.h in Headers */, + 8D06477969D540765D52E318A225F1C8 /* NSString+DTPaths.h in Headers */, + A08377C6E6F4613A2579AA7493F4CED6 /* NSString+DTURLEncoding.h in Headers */, + ED4AE5B052E61B733776C141CF50DFD5 /* NSString+DTUtilities.h in Headers */, + 363811B59B4A6460F139AA1F4CDABDA8 /* NSURL+DTAppLinks.h in Headers */, + 437A2C621B4ED7929B5AD917D0139D7E /* NSURL+DTComparing.h in Headers */, + 8DF017191755AB903A3F3B847F2DF758 /* NSURL+DTUnshorten.h in Headers */, + 6A7344B93CA8DDF68250309808CA4DDA /* UIApplication+DTNetworkActivity.h in Headers */, + 67A3F62D7F3FAD5A20681CB4A8B4F213 /* UIImage+DTFoundation.h in Headers */, + 36943240921ED5C4D946D4FE0BD93B29 /* UIScreen+DTFoundation.h in Headers */, + 0F68661A4CBE7C40C665DE09F092502A /* UIView+DTFoundation.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 29CB77F5EC62298B8E19FEFFD791AEAD /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; @@ -1978,60 +2022,19 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 36DB6228E6B596067D284904E68C9CD1 /* Headers */ = { + C48C1D3019470574A03080766B5D43F1 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 26D029D2A69EB67AF0947292B6BB7FD8 /* ZIPFoundation-umbrella.h in Headers */, + 1E0A834BAEBC182650E4D55143EFDEBB /* ZIPFoundation-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 87C04C786AEF5A0362E76E20393D92CB /* Headers */ = { + EA09E81DEB3A58AA65B0922E93A6CC0C /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - E414D1C3659D3390E1429E8E450972D1 /* DTActivityTitleView.h in Headers */, - FDFFFDA2B22F1AF0F845CB42C63CFDFB /* DTAnimatedGIF.h in Headers */, - 9317D936D1624DAFFC0665186084B9A7 /* DTBase64Coding.h in Headers */, - 44226BF89798AB351A5DD128C6BCBB34 /* DTBlockFunctions.h in Headers */, - 8E71545C934B03B3131BD995D43D18BD /* DTCompatibility.h in Headers */, - 584975F754B7B0F6773141E5788D9002 /* DTCoreGraphicsUtils.h in Headers */, - 24D662573BF450D8125295A73043FC6D /* DTCustomColoredAccessory.h in Headers */, - 81676AD4528CF268CB913CF3F27E00A2 /* DTExtendedFileAttributes.h in Headers */, - 684BDD6CF6B83CB31C2C96E7172241FD /* DTFolderMonitor.h in Headers */, - 3D8DF1B2E9B3BC529D727FBBE40D46AF /* DTFoundation-umbrella.h in Headers */, - 94A660CFA88E3A99BA840BC7C081FAF5 /* DTFoundationConstants.h in Headers */, - AC0E244868EE1BB06DA2FC31EE7FEFF0 /* DTHTMLParser.h in Headers */, - 1FD2290EC3449416DEBA4BDD5D7D7E22 /* DTLog.h in Headers */, - 4D23E316A728EAD4C30968F3D0C69E38 /* DTPieProgressIndicator.h in Headers */, - AC24EE11636D8101C9678987A7D7E56B /* DTSmartPagingScrollView.h in Headers */, - FAC3DC7E5DE280771DD4A21A7436E52F /* DTTiledLayerWithoutFade.h in Headers */, - FC9DC8D4C96D819E9BE20F05441E0459 /* DTVersion.h in Headers */, - 1C76A33A29D56E6009775DD05B32BD2B /* DTWeakSupport.h in Headers */, - 6654C4AD722864C4EE65934D55682253 /* NSArray+DTError.h in Headers */, - 5DBD89A108305B3DAE1D415BE9CBFEC2 /* NSData+DTCrypto.h in Headers */, - 22EEC92067603F597E6A32D1C77D77A0 /* NSDictionary+DTError.h in Headers */, - CA1F1B6F7C24CCC6F7F8A75E8CD73B5C /* NSFileWrapper+DTCopying.h in Headers */, - 799E070BA323793383FA81BA733C4DA5 /* NSMutableArray+DTMoving.h in Headers */, - 12E4DE7F5308A77C2548C7FC376065A0 /* NSString+DTFormatNumbers.h in Headers */, - 5CAF56EF5E99F0788C26CB4C52182EDD /* NSString+DTPaths.h in Headers */, - 50887D3ADF90BFE2720EBA9B6FABBAA2 /* NSString+DTURLEncoding.h in Headers */, - B5386D5AFA1F546EFEE6E310BFF4D707 /* NSString+DTUtilities.h in Headers */, - D5D9BDF382C943902AC2A3368DCD932C /* NSURL+DTAppLinks.h in Headers */, - 18FD31EA041A589A98B214078C77DE11 /* NSURL+DTComparing.h in Headers */, - DC976BFEBC952457D8C728BA9C43DC55 /* NSURL+DTUnshorten.h in Headers */, - C557F129B5958D29FA4015DD182ED2CC /* UIApplication+DTNetworkActivity.h in Headers */, - BC017F711B983AD8E6EE8775B3AB3602 /* UIImage+DTFoundation.h in Headers */, - 56188173A91EF51B7010905C6FCB22D2 /* UIScreen+DTFoundation.h in Headers */, - 7882FB8FD1A57CAEA4E4FDEF4952C621 /* UIView+DTFoundation.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - AA1F32B6F2921FB1A5BC3897DE76C490 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 45E0CD0CF8B9FA30F5B906B1B1374154 /* RDEpubReaderView-umbrella.h in Headers */, + 9628878221A69A856688B4522EC95F6A /* RDEpubReaderView-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2040,11 +2043,11 @@ /* Begin PBXNativeTarget section */ 0C24CB0E87A728A11AA1124CB360D6A1 /* DTCoreText-Resources */ = { isa = PBXNativeTarget; - buildConfigurationList = 6D4878B1090649FAD56F25B2145334DE /* Build configuration list for PBXNativeTarget "DTCoreText-Resources" */; + buildConfigurationList = 3967AA4F5EC629683F10167E6E03DB6A /* Build configuration list for PBXNativeTarget "DTCoreText-Resources" */; buildPhases = ( - E67568179BECE9060450A68A54A2E0FA /* Sources */, - FAD0182437679AAA39F0EDBF1BC1A05E /* Frameworks */, - 229D057473C710AD9E925A4DF80E5C56 /* Resources */, + 489B9B7585CEAB2CC404AFAA78336358 /* Sources */, + A25F89FC6547C5A333C0CD7BB6FE4342 /* Frameworks */, + 5386622E94CACC258DBC1C87EEE3802E /* Resources */, ); buildRules = ( ); @@ -2067,10 +2070,10 @@ buildRules = ( ); dependencies = ( - 1551DF4D30E2A88F1C572E3102D161E0 /* PBXTargetDependency */, - F65A4523B74023B13D4117D61E694844 /* PBXTargetDependency */, - 455E64EEF1F8ABA5151E7A74C7F65E30 /* PBXTargetDependency */, - 669D8327694A81D8D157F39CDB3E1539 /* PBXTargetDependency */, + 0F1C59C9927F0FE0ABDC38E0196D1BC4 /* PBXTargetDependency */, + E45E4072AA845DAD5984CB683BE2BCEB /* PBXTargetDependency */, + 62A6DE35071C15292C7319C39B15F798 /* PBXTargetDependency */, + 47ADCB42D33A2DE2B88C0CE8788C85A5 /* PBXTargetDependency */, ); name = "Pods-ReadViewDemo"; productName = Pods_ReadViewDemo; @@ -2079,12 +2082,12 @@ }; 8F6E5A5BF72D62CDFD25F91A7CFA3309 /* DTFoundation */ = { isa = PBXNativeTarget; - buildConfigurationList = 7FECBCCB85A6EAD26E9CC72B8864A863 /* Build configuration list for PBXNativeTarget "DTFoundation" */; + buildConfigurationList = 4D63260C6DB5A6076F02CB3FB4D6C1C5 /* Build configuration list for PBXNativeTarget "DTFoundation" */; buildPhases = ( - 87C04C786AEF5A0362E76E20393D92CB /* Headers */, - C087664E69A7DDC123A3D00480FA100C /* Sources */, - 622158A80ADA036B99DF9CBB09B11567 /* Frameworks */, - 8EC456D15BEA781946652E8A0134E477 /* Resources */, + 1EFDF66D734CB85FCD20293660758B98 /* Headers */, + 52C3E913A0F6F6BB5D7E620BC3FD1A4F /* Sources */, + ACA81CBBCF135C54849FA5D19DAF9CD8 /* Frameworks */, + 8A7904988F43D2C755B5C91829FF54E9 /* Resources */, ); buildRules = ( ); @@ -2097,17 +2100,17 @@ }; AA15C8469D67684160CC2A7098EB841C /* ZIPFoundation */ = { isa = PBXNativeTarget; - buildConfigurationList = F34DEB3C2C0CDC5F97BBEAE4D6F7D219 /* Build configuration list for PBXNativeTarget "ZIPFoundation" */; + buildConfigurationList = 73F5F8198660F8A299F6CCB06EC89904 /* Build configuration list for PBXNativeTarget "ZIPFoundation" */; buildPhases = ( - 36DB6228E6B596067D284904E68C9CD1 /* Headers */, - 9C3B5FCA1D5038170D3D6E7DEC230802 /* Sources */, - 67452C77F8E886622577C996F3462FE6 /* Frameworks */, - 7E9F0004695B48153DE4788E6CB86C68 /* Resources */, + C48C1D3019470574A03080766B5D43F1 /* Headers */, + 7AFA5AF9886E5666A6599BEC0612FC1D /* Sources */, + D1C8BB447AF6847C2F9535EE2E5943A6 /* Frameworks */, + 5F3909546F0D8924DD0996A18F31EB07 /* Resources */, ); buildRules = ( ); dependencies = ( - 00C6361C8719FBA4E395DD7972756069 /* PBXTargetDependency */, + 126C40196FF2931215B10EEDA0149D22 /* PBXTargetDependency */, ); name = ZIPFoundation; productName = ZIPFoundation; @@ -2126,8 +2129,8 @@ buildRules = ( ); dependencies = ( - F89BE326BA8B06B1007631FA78D53A6A /* PBXTargetDependency */, - 8A57936B99831660CED2C2AE2656E553 /* PBXTargetDependency */, + B03C539E4037B0E0AC8D5D8987595C4A /* PBXTargetDependency */, + 15BB03DA2078EA159F07A170FB0D3376 /* PBXTargetDependency */, ); name = DTCoreText; productName = DTCoreText; @@ -2136,11 +2139,11 @@ }; C7A8D82E407CD3FDC3BA55CEE519B252 /* ZIPFoundation-ZIPFoundation_Privacy */ = { isa = PBXNativeTarget; - buildConfigurationList = A4FC6BA1B119BFD8297B387109E266D3 /* Build configuration list for PBXNativeTarget "ZIPFoundation-ZIPFoundation_Privacy" */; + buildConfigurationList = E8D3369046B2E540437FC0D812BAF9E5 /* Build configuration list for PBXNativeTarget "ZIPFoundation-ZIPFoundation_Privacy" */; buildPhases = ( - E66DF131B1BAFD7B618B44E7892A790A /* Sources */, - 019CACBDE98B6E7CD6E2323C2BE18D6F /* Frameworks */, - 744051303ADB9EE20F09231D50B520AA /* Resources */, + DEE28BB720D717FD296935F7A8676722 /* Sources */, + D31DE0184C5A09E59AA1E5AE38C9862F /* Frameworks */, + 142235D9FC1A260A45CF2D404E7C10B0 /* Resources */, ); buildRules = ( ); @@ -2153,11 +2156,11 @@ }; E07DDD766DCBF90486BCE6C2EA671E5E /* RDEpubReaderView-RDEpubReaderViewAssets */ = { isa = PBXNativeTarget; - buildConfigurationList = 4E41342AEB9C410C736C34DCA7B0F78F /* Build configuration list for PBXNativeTarget "RDEpubReaderView-RDEpubReaderViewAssets" */; + buildConfigurationList = 772EA5867EB66F02C92AA38620603CC0 /* Build configuration list for PBXNativeTarget "RDEpubReaderView-RDEpubReaderViewAssets" */; buildPhases = ( - 13DCE5F3F9EEA363E6338EA762B8C539 /* Sources */, - 1DC6173FB956454B07EFE7D70CFAA752 /* Frameworks */, - DFE3E3891764184F381F081235D5AC22 /* Resources */, + 2D0908DBD99F1B1C7C0FA5440630DE29 /* Sources */, + 8F0767EB7C7434A325165E4605C31950 /* Frameworks */, + 6BEE5F15D45AAFF3523004862AB97F74 /* Resources */, ); buildRules = ( ); @@ -2170,19 +2173,19 @@ }; FBCB57A3AEAAA3449B3F365930BC0977 /* RDEpubReaderView */ = { isa = PBXNativeTarget; - buildConfigurationList = B302A2B9135E6E0BE1A48FEB8624A91C /* Build configuration list for PBXNativeTarget "RDEpubReaderView" */; + buildConfigurationList = DECB71FBA314E820DBE7013749639380 /* Build configuration list for PBXNativeTarget "RDEpubReaderView" */; buildPhases = ( - AA1F32B6F2921FB1A5BC3897DE76C490 /* Headers */, - D29E47752E90C593DF598BE626679F85 /* Sources */, - AA17F25A105235455D6DBA0379F37BC1 /* Frameworks */, - 2733D37A31C74211F54BFDE63AC6DBCB /* Resources */, + EA09E81DEB3A58AA65B0922E93A6CC0C /* Headers */, + D969571183BA10E54CA86536BE61D561 /* Sources */, + 51AFA4F8EB718F245E1627FA4BF59B6A /* Frameworks */, + 2255E15DF0F2FD126BF880039EA4496B /* Resources */, ); buildRules = ( ); dependencies = ( - E73110092DD196B4E565269EBF56DC68 /* PBXTargetDependency */, - 0B12ED877A504A3EDF328B8B5AB55A37 /* PBXTargetDependency */, - 982CD0D79765BF90F3C8143F8254BA5A /* PBXTargetDependency */, + EEB24B299DCD971AC817A23E8E03ECE2 /* PBXTargetDependency */, + 53F7038D2BDDF438CCF3C58066477918 /* PBXTargetDependency */, + 84B7D835EAD209ED77895FEC9D75D570 /* PBXTargetDependency */, ); name = RDEpubReaderView; productName = RDEpubReaderView; @@ -2226,19 +2229,19 @@ /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ - 229D057473C710AD9E925A4DF80E5C56 /* Resources */ = { + 142235D9FC1A260A45CF2D404E7C10B0 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 9ADFD4C5CB7848BF8C877C8F0ECCF627 /* default.css in Resources */, + B07D8711C3F6F7FA0FA195669E3736E3 /* PrivacyInfo.xcprivacy in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 2733D37A31C74211F54BFDE63AC6DBCB /* Resources */ = { + 2255E15DF0F2FD126BF880039EA4496B /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 3FA774DD0C65367606773764044C2868 /* RDEpubReaderView-RDEpubReaderViewAssets in Resources */, + 1339931AB136208196DB1E6D5DAE859C /* RDEpubReaderView-RDEpubReaderViewAssets in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2250,23 +2253,40 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 744051303ADB9EE20F09231D50B520AA /* Resources */ = { + 5386622E94CACC258DBC1C87EEE3802E /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 058D3A9B6ACC980BAAFD1BA24CCA2AE7 /* PrivacyInfo.xcprivacy in Resources */, + 875E45FFAD65DFAA26D7C194C79A485C /* default.css in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 7E9F0004695B48153DE4788E6CB86C68 /* Resources */ = { + 5F3909546F0D8924DD0996A18F31EB07 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - BB04C385085B062AD326250F566827A3 /* ZIPFoundation-ZIPFoundation_Privacy in Resources */, + F17B6A22E04BDAA68F0F1F5C0E45D238 /* ZIPFoundation-ZIPFoundation_Privacy in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 8EC456D15BEA781946652E8A0134E477 /* Resources */ = { + 6BEE5F15D45AAFF3523004862AB97F74 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 7FDB23FD87E6B583A8A281766AF52F0E /* cssInjector.js in Resources */, + 419BBD6330F869701CEFFF3229770FC2 /* epub-bridge.js in Resources */, + 1FAE80194370041BF4B0CCD32DB53BEC /* epub-fixed-layout.html in Resources */, + 6354614C88B16929EFFC76F89ECFBAF0 /* rangy-core.js in Resources */, + 6359E9C5499EC1B8098AB803AADED3F1 /* rangy-serializer.js in Resources */, + C9A9C65BFE7EBA0D662212C5E9864D12 /* WeReadApi.js in Resources */, + 3055EFBF0EAD18567DC1C22A2B6BDDC7 /* wxread-dark.css in Resources */, + DD491E0FE55D78471E165DB444255232 /* wxread-default.css in Resources */, + C001EFF514F54404EF076F2F019B8C78 /* wxread-replace.css in Resources */, + 26A1B90BB653D7393D58CA8739655DE1 /* wxread-replace-latin.css in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 8A7904988F43D2C755B5C91829FF54E9 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( @@ -2280,33 +2300,91 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - DFE3E3891764184F381F081235D5AC22 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 542013DD6C510E7A820D2CB071B1219E /* cssInjector.js in Resources */, - 4D58FC9031CA9144B783CCE85047089A /* epub-bridge.js in Resources */, - 150212A6C0D866FB32891A7C787D2AD9 /* epub-fixed-layout.html in Resources */, - 4A5B6DC44DD0C372C4D760844E7468AF /* rangy-core.js in Resources */, - 76EC3A1185B131D3A341FBB84A7AB936 /* rangy-serializer.js in Resources */, - CBE0B92DBDAB8DF59168B3BDAEF223E0 /* WeReadApi.js in Resources */, - D20A9C2E855617ADAE9ACCDC4BA2147A /* wxread-dark.css in Resources */, - DE1DF6C20E410592A6F6A1262EA189FD /* wxread-default.css in Resources */, - 00ED46EE485D06CEF016D5A721540F25 /* wxread-replace.css in Resources */, - 1D9D77BE1E9BF208AFEF407E669B2BDD /* wxread-replace-latin.css in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - 13DCE5F3F9EEA363E6338EA762B8C539 /* Sources */ = { + 2D0908DBD99F1B1C7C0FA5440630DE29 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; + 489B9B7585CEAB2CC404AFAA78336358 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 52C3E913A0F6F6BB5D7E620BC3FD1A4F /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + B8D236ACECD5ADC032CB47DF9A2B687A /* DTActivityTitleView.m in Sources */, + 2CEEC1B9930EAF539CBFE8F169D391D3 /* DTAnimatedGIF.m in Sources */, + 3888B345D74D3A8FB6545334B5F9B05D /* DTBase64Coding.m in Sources */, + C5F0379ED21BB2F35E5364D8C4A0EAF7 /* DTBlockFunctions.m in Sources */, + 5864824C49A92A737CBFB6C4CBE8C4A7 /* DTCoreGraphicsUtils.m in Sources */, + 659F8DB067EF741C4493DCB380ABF744 /* DTCustomColoredAccessory.m in Sources */, + 139FB07EEADBF314AA9349F9F226FD21 /* DTExtendedFileAttributes.m in Sources */, + 9D5D47323C593B482FA600AC88022A8E /* DTFolderMonitor.m in Sources */, + 79F7CBC0AA72EFFF633B4C1E79FB9581 /* DTFoundation-dummy.m in Sources */, + 887BFFFDA11366564EE455DE7551CCD1 /* DTFoundationConstants.m in Sources */, + 200335FBF3E68306AF48D84810E84858 /* DTHTMLParser.m in Sources */, + 0CB2574A78A6F529B52A037780D88A86 /* DTLog.m in Sources */, + 44C1763CD6EA5380468AF5A43FFA85A6 /* DTPieProgressIndicator.m in Sources */, + D39E343AB3D1141C1669E38559CD24ED /* DTSmartPagingScrollView.m in Sources */, + D26FAF023EDCA1930F01DDF01A09DE9C /* DTTiledLayerWithoutFade.m in Sources */, + 0A2E935149519402D231A93B1B452C9E /* DTVersion.m in Sources */, + 9C08204D56186A6F776F0D1F15A8ED84 /* NSArray+DTError.m in Sources */, + 21AD4322E4F01B96787DF41A1A35C31E /* NSData+DTCrypto.m in Sources */, + D4C32D821201B463A329966062B05A01 /* NSDictionary+DTError.m in Sources */, + A4786713FFA8CAEFC115B88B70483805 /* NSFileWrapper+DTCopying.m in Sources */, + 79520BDBC9D41416CB785A7B9F73A782 /* NSMutableArray+DTMoving.m in Sources */, + C305DA79D81AC6A54EFA010E66D4E25B /* NSString+DTFormatNumbers.m in Sources */, + 4B23A19A2E9B85701EA803E293A35FB5 /* NSString+DTPaths.m in Sources */, + 9A634227448D00A3FC71579D09AF785B /* NSString+DTURLEncoding.m in Sources */, + 0DA2350FAA73F48E41E7DE495DD4A49D /* NSString+DTUtilities.m in Sources */, + D9A05CFA0CD65A7FA2D9BC0A3D4965A9 /* NSURL+DTAppLinks.m in Sources */, + BE8491E76C4715935D0C8E261BF7A675 /* NSURL+DTComparing.m in Sources */, + 955DF4DB44DCB3B2D8A4CA83753CCD11 /* NSURL+DTUnshorten.m in Sources */, + CEC0B9A0D4F11D60AD377138AB4814C8 /* UIApplication+DTNetworkActivity.m in Sources */, + B32517D46C9AA4A6A5E9B483D62B61B2 /* UIImage+DTFoundation.m in Sources */, + 8A3B455DFE937CF6AC713A6F4F4DAFC7 /* UIScreen+DTFoundation.m in Sources */, + 1064ABED1C33887FD6D2170025D7D194 /* UIView+DTFoundation.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 7AFA5AF9886E5666A6599BEC0612FC1D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 677DD123A47EEE00A6EE4F4E5A12ADD9 /* Archive.swift in Sources */, + FA23E7AF74CA4142169A63E3FD607E86 /* Archive+BackingConfiguration.swift in Sources */, + 9875F1A4A570D498A1BD4EBB2CD5B35E /* Archive+Deprecated.swift in Sources */, + A0A9EEF0EADC9BCB7288D37D2849B75C /* Archive+Helpers.swift in Sources */, + E96117FB0F9C8488ECF5AA23D5F19A0A /* Archive+MemoryFile.swift in Sources */, + 57A8CA23A416D8A6EAAAA31119E2F9E0 /* Archive+Progress.swift in Sources */, + FEECAEEED9B7B0754ED4C7CEB47F0299 /* Archive+Reading.swift in Sources */, + 16FB83E006182616AEF677F7503FF7A2 /* Archive+ReadingDeprecated.swift in Sources */, + 92FB3C83BF8BA98021C2AD24BBD0D122 /* Archive+Writing.swift in Sources */, + 6EB7D3CDBB2082B2540702EF3B4EE69B /* Archive+WritingDeprecated.swift in Sources */, + 4A4C6FD8BF03727CA722411AB78B27BD /* Archive+ZIP64.swift in Sources */, + F658AD33739615310FDA4AB2266BC862 /* Data+Compression.swift in Sources */, + 1655CC5E3EBB7F0C0014C00CAAE5DF80 /* Data+CompressionDeprecated.swift in Sources */, + 85F95E263FAFF56E8AB46175744B2F7A /* Data+Serialization.swift in Sources */, + ACC9E569106EF0AC77EEBE245DBDEA1E /* Date+ZIP.swift in Sources */, + F796B1681C9EF945636A9C1E33563F03 /* Entry.swift in Sources */, + D2ACE37289E86DED74CBEB0726C20838 /* Entry+Serialization.swift in Sources */, + 2D9BD474B4DD23B302A98CD3E7BD469C /* Entry+ZIP64.swift in Sources */, + BA342692C6B24E649021E976C68123C9 /* FileManager+ZIP.swift in Sources */, + B84AAFFF255215E59F8C60CBD8222238 /* FileManager+ZIPDeprecated.swift in Sources */, + 03BBAF69EC0D68534C6C7AD9DA4CEFEB /* URL+ZIP.swift in Sources */, + DED6543DBBD077010615966077B08A2C /* ZIPFoundation-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 8F0597C224D28EFC47DAB52A1C4B18D9 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -2315,283 +2393,209 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 9C3B5FCA1D5038170D3D6E7DEC230802 /* Sources */ = { + D969571183BA10E54CA86536BE61D561 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 4A307E593B912B2F30D64559300599FE /* Archive.swift in Sources */, - 0BE1CDB7574C32928159748427234D17 /* Archive+BackingConfiguration.swift in Sources */, - 26CCE192A25CD7B025904E0AC1260A10 /* Archive+Deprecated.swift in Sources */, - DADD404DA23EBFC7F0101727EBE88832 /* Archive+Helpers.swift in Sources */, - 9760E98CC0951B6B8C058FB45926203A /* Archive+MemoryFile.swift in Sources */, - F45B5C3A0499EAFD676758C4A361CFC4 /* Archive+Progress.swift in Sources */, - 41DFB140311D7C9600D2E428FF15656D /* Archive+Reading.swift in Sources */, - 13A68713486786ECBD2F6D019D7F3A36 /* Archive+ReadingDeprecated.swift in Sources */, - 10D59A237D78A0523310743DE96A47B0 /* Archive+Writing.swift in Sources */, - D795202CC870F4CEE10864C01005F6D3 /* Archive+WritingDeprecated.swift in Sources */, - FCE6A5A737B87FA6CDEF85A5AB54ACD0 /* Archive+ZIP64.swift in Sources */, - B14BA93598C691CE6094E7B9D8AA2011 /* Data+Compression.swift in Sources */, - 37A6DEDE9455172CA9A261A3BC2ED02E /* Data+CompressionDeprecated.swift in Sources */, - 6C1327C994F11FDB4EDBDA5CE598CF11 /* Data+Serialization.swift in Sources */, - 920A2A7EF5F2915D271D229AA0E895DD /* Date+ZIP.swift in Sources */, - A002B3B82F572D8F62C398093EFFC356 /* Entry.swift in Sources */, - 0E80911EBF3F620A1B8DBCE516E2CC05 /* Entry+Serialization.swift in Sources */, - B55D0715C6E8F6847DE6D817EEBF9F2C /* Entry+ZIP64.swift in Sources */, - 91052B4F93F977458CC1A5EA78DF1DEE /* FileManager+ZIP.swift in Sources */, - D2D0EFD20BB05F026318070DB36D04BD /* FileManager+ZIPDeprecated.swift in Sources */, - 29AA7851B584FD07672063C7213179FA /* URL+ZIP.swift in Sources */, - DCD6C3ED3B13C549F589F57C95ED6BBF /* ZIPFoundation-dummy.m in Sources */, + D6D29A50E4BB3C6BF19163F4553FA0CA /* RDEPUBAnnotationEditorViewController.swift in Sources */, + E9CAAE68BC2A876C2137CA44F73F5633 /* RDEPUBAnnotationModels.swift in Sources */, + 29C038D2B02718B277EDAD605314BD8E /* RDEPUBAssetRepository.swift in Sources */, + C71592A693B55ECDE05413FED65D5083 /* RDEPUBAttachmentNormalizer.swift in Sources */, + 51C1FDAA3AB32952107C2C24921BAB91 /* RDEPUBAttachmentTooltipOverlayView.swift in Sources */, + A857394966E2AA6FD190D5A8C480ED83 /* RDEPUBAttachmentTooltipView.swift in Sources */, + E3769274189FE5F6C92AA1200B9F162E /* RDEPUBBackgroundCoverageStore.swift in Sources */, + 66C18C65049A5782802895D43619297E /* RDEPUBBackgroundPriorityPolicy.swift in Sources */, + F6EFCAFF09388F272A9FDDE5783E74CF /* RDEPUBBackgroundTrace.swift in Sources */, + 51A36881977B9EE908F7E172FE272B65 /* RDEPUBBookPageMap.swift in Sources */, + 37634B1CBA3CA0636617B12F2DCA6E2C /* RDEPUBBuildDiagnosticsReporter.swift in Sources */, + 79AE05934266E75295AB8B6C7479C7FD /* RDEPUBCFI.swift in Sources */, + 23AC7844B0D69585EBF8E0B49B885604 /* RDEPUBCFICompatibility.swift in Sources */, + D493143912BAEE46FC32FB2CAB75183F /* RDEPUBCFIDOMPathBuilder.swift in Sources */, + CE86EAF4FEBCA49AC0EA06CF8C6D7850 /* RDEPUBCFIError.swift in Sources */, + E981FA6BB00723F4CBF3FF2DE0EBCEFA /* RDEPUBCFIGenerator.swift in Sources */, + CE268E0D66B3952DC1957E64BBBAFC15 /* RDEPUBCFIMap.swift in Sources */, + 198F9CC0DDE066257B1F0DA2B54C4329 /* RDEPUBCFIMarkerInjector.swift in Sources */, + 932BA9C53210C5347E63397ADA712B01 /* RDEPUBCFIParser.swift in Sources */, + D5B0133BAF2F18252AE624EC461AD111 /* RDEPUBCFIPath.swift in Sources */, + 2DF5F1AFD440B09462173EDE2C8B59B5 /* RDEPUBCFIRange.swift in Sources */, + BA47113182FFD5568E8DF6167391E810 /* RDEPUBCFIRecoveryEngine.swift in Sources */, + 1A5028597FB05165C06A765EB697A8CF /* RDEPUBCFIResolver.swift in Sources */, + 4AF61CE812F0984882B4102DFDAEA13C /* RDEPUBCFISerializer.swift in Sources */, + D2EBD38E40FCE2A7EB8337B40E01EE63 /* RDEPUBCFITextAssertion.swift in Sources */, + 34ADB3DAC5DEBF2002CF60AF084EAAA8 /* RDEPUBCFIUtilities.swift in Sources */, + AF672117556F2FE1889FE535E27E0C6E /* RDEPUBChapterCacheKey.swift in Sources */, + 1ED9054310447B18F0352D840B12A7BC /* RDEPUBChapterData.swift in Sources */, + DBD4C142F751F972BD247D621758A966 /* RDEPUBChapterDataCache.swift in Sources */, + 0F885B9FB253DC070417F188C93E8EC7 /* RDEPUBChapterDisplayContentCache.swift in Sources */, + A49BF150A30962F235642FA9A6F4301E /* RDEPUBChapterLoader.swift in Sources */, + 6F745CE30BB3F59EB7ED04C60CB1F3B8 /* RDEPUBChapterLocation.swift in Sources */, + FAA2993E764DEF54CEDCF6CCA9BA5303 /* RDEPUBChapterOffsetMap.swift in Sources */, + 11A4D9F0501FB308A70A11AA092167FC /* RDEPUBChapterPageCounter.swift in Sources */, + 5D9491B825DAC5C8083EB48D3602DF05 /* RDEPUBChapterRuntimeStore.swift in Sources */, + 4A1C478E94E4BB919BFB0F08796D1B42 /* RDEPUBChapterSummaryDiskCache.swift in Sources */, + 56EEF06FAAE6884D91591ADCF5C0DE66 /* RDEPUBChapterTailNormalizer.swift in Sources */, + F1C1C33B313E4B33936B68CF3AAE5353 /* RDEPUBChapterWarmupOrchestrator.swift in Sources */, + 18208187C0956F089D6BF097A38950D3 /* RDEPUBCoreTextPageFrameFactory.swift in Sources */, + 313E9DF4B06E790FAABD63ABF9F628E5 /* RDEPUBCSSCompatibilityLayer.swift in Sources */, + 3E07428F10F572E3981832D5F4C95DB7 /* RDEPUBDarkImageAdjuster.swift in Sources */, + 51D130668DBF433DD66CF60CFB8DC23C /* RDEPUBDecryptingImageAttachment.swift in Sources */, + 3CB50E5D919F565639DE47EC345ABD93 /* RDEPUBDTCoreTextRenderer.swift in Sources */, + 769EBA6E5FA43A1A221327FEB82DAFBB /* RDEPUBFixedLayoutTemplate.swift in Sources */, + D478AF55E61E39EAF819E91DE2EFAE27 /* RDEPUBFontFallbackResolver.swift in Sources */, + 2C1771B28885D0BD41E0F3CA327BECBC /* RDEPUBFontNormalizer.swift in Sources */, + 828A7941546DB2AB7EB6C2ACB4C812D5 /* RDEPUBFragmentMarkerInjector.swift in Sources */, + 8CFBFB780C47E417A2EA25216A3521B7 /* RDEPUBHTMLNormalizer.swift in Sources */, + 487AFB79159977B6487775D57F8B8ECB /* RDEPUBImageViewController.swift in Sources */, + 35221429ED648505678A588D1B5EB726 /* RDEPUBImageViewerCoordinator.swift in Sources */, + E5D8AAEAB673A396BCDC5ED1976E992D /* RDEPUBJavaScriptBridge.swift in Sources */, + 5D5A653F98557AEB4F10EA1FC3BB67B4 /* RDEPUBJumpSession.swift in Sources */, + 04C9A893E242B2EA2B9B761F26F6D45E /* RDEPUBMemoryProbe.swift in Sources */, + B8F20878A7E7606D27F7221E23FE41C2 /* RDEPUBMetadataParseCancellationController.swift in Sources */, + CD1385ACDA793D761B32FFB9C619B1EF /* RDEPUBMetadataParseWorker.swift in Sources */, + B76A89C06D8A205986E46A482DEDE707 /* RDEPUBModels.swift in Sources */, + 33E43221ACC615706922CD593D473682 /* RDEPUBNavigatorLayoutContext.swift in Sources */, + 67463D3FE0C275A9FAE1DD06CA191D38 /* RDEPUBNoteDetector.swift in Sources */, + 21A4CF33E4D4F3614A63D0DFBBF4ECEF /* RDEPUBNoteModels.swift in Sources */, + 64A50700548B263C54D917C65C086D92 /* RDEPUBNotePopupCoordinator.swift in Sources */, + 9BF0FB9D487EE780433B8A0F7AC02B49 /* RDEPUBNotePopupViewController.swift in Sources */, + C4DE4E07985141A457DE4F5FDE344CF0 /* RDEPUBNoteResolver.swift in Sources */, + 21D93DB3DC2E8E92D8F44F1429261E1E /* RDEPUBPageBreakPolicy.swift in Sources */, + 369066C8D354C2DB8FBAEF32B934C634 /* RDEPUBPageCountCache.swift in Sources */, + 5FE583EB6AEFD80AE9809EEE6BF6D25E /* RDEPUBPageInteractionController.swift in Sources */, + 369CCD1D8A7ED21C9BF642050FAF3FC8 /* RDEPUBPageLayoutSnapshot.swift in Sources */, + B97064FA5D09703EE64C3BE1FB7D7AA6 /* RDEPUBPageMapReconciliationCoordinator.swift in Sources */, + 2B1F62C13E8DC8CF86EB61F1C33C48F0 /* RDEPUBPageResolver.swift in Sources */, + E86FC270FCD854E857CA88C556506690 /* RDEPUBPaginationCacheCoordinator.swift in Sources */, + 40A55362A303DE42B2C4EBC0AD1B38D2 /* RDEPUBPaginationModels.swift in Sources */, + 8C107DA9EF9A64C2FD55CFE912EE80E3 /* RDEPUBPaginator.swift in Sources */, + 354CE4147A633610D24C0D6E1498D08A /* RDEPUBParser.swift in Sources */, + 8EEBC02E90E4E1450769ECE63C086CBB /* RDEPUBParser+Archive.swift in Sources */, + 2E2C77B4CB687F944C5795992227A7B9 /* RDEPUBParser+Package.swift in Sources */, + 7D5F0717FD16276C651D92E48BD26513 /* RDEPUBParser+ReadingProfile.swift in Sources */, + F258BE64E176198FF5F2EDA64A6BA078 /* RDEPUBParser+Resources.swift in Sources */, + 1D57CFC0C6AE9883880C182F5C2D7887 /* RDEPUBParser+TOC.swift in Sources */, + 26CB5B4F18F7CB4F7F85024189763F69 /* RDEpubPlainTextBookBuilder.swift in Sources */, + AE5A04446DBF4FFCA77A14B0CDA8390F /* RDEPUBPreferences.swift in Sources */, + 78B9D9E62AA9B8AFE7CCE2073DA0768B /* RDEPUBPresentationRuntime.swift in Sources */, + E282D46F2484B59FD8A8B1F6D04DCE4F /* RDEPUBPublication.swift in Sources */, + 86B19521EE751EC00AAC4DE7792BC976 /* RDEPUBReaderAnnotationCoordinator.swift in Sources */, + 85F59057CC1C420248230817D9698428 /* RDEPUBReaderAssemblyCoordinator.swift in Sources */, + DB61F04FD1B31E92B9BDA38259702882 /* RDEPUBReaderBottomToolView.swift in Sources */, + D327143552E961F147A8FB2EA53D1C7E /* RDEPUBReaderChapterListController.swift in Sources */, + D59321F54E0CABDFBF822DB34BC347D0 /* RDEPUBReaderChromeCoordinator.swift in Sources */, + 454F7A6A755C7E62CCC8FF480B5C304A /* RDEPUBReaderConfiguration.swift in Sources */, + 23EBF04C81B4ACE7E971B9175EE8BC25 /* RDEpubReaderContentCell.swift in Sources */, + 77FB6F863387E54E46CC81BDA983A621 /* RDEPUBReaderContext.swift in Sources */, + 62B5FA1C9EEC4F1BBF1E4CAEB38CAA9A /* RDEPUBReaderController.swift in Sources */, + 1FD7F170DEEDDFECD3EC5610A820C8FE /* RDEPUBReaderController+AttachmentTooltip.swift in Sources */, + EB6FD0657DCAD893A648C9B8F716B855 /* RDEPUBReaderController+ContentDelegates.swift in Sources */, + 07A060079E1A26C1FEC4F7C36258EDEB /* RDEPUBReaderController+DataSource.swift in Sources */, + 5493ADB6F5BA9531FED4508C34B5126C /* RDEPUBReaderController+ExternalLinks.swift in Sources */, + 0884DFA1A564DEC4792661EC85BFAAAF /* RDEPUBReaderController+LocationResolution.swift in Sources */, + C96FE53021A249764E00F29B4131D4EC /* RDEPUBReaderController+Orientation.swift in Sources */, + 97083F50E18975EBD12DFD93624E6B53 /* RDEPUBReaderController+PublicAPI.swift in Sources */, + BC1EDDF14C37EE2589E1D9E25006C1FA /* RDEPUBReaderController+RenderSupport.swift in Sources */, + E13DC74A70E1F819134544915B2A2A40 /* RDEPUBReaderController+RuntimeBridge.swift in Sources */, + A1D67B58E809ACF2BB5985BEFE2245F7 /* RDEPUBReaderController+TableOfContents.swift in Sources */, + 3A394A0DF61A8A06977B16B6A8256337 /* RDEPUBReaderController+Trial.swift in Sources */, + 34B7CA2CFBA16F7967D9C4D2760FC27A /* RDEPUBReaderDelegate.swift in Sources */, + 2DCA673DFA30A97E14032A54E9470C6E /* RDEPUBReaderDependencies.swift in Sources */, + 088EF435B136C86A148B66C117D72405 /* RDEPUBReaderEnvironment.swift in Sources */, + 2B1F17E77BA28FD287A2602085F2A7E8 /* RDEpubReaderFlowLayout.swift in Sources */, + B9E2A0E42FE4C8184A617840EA39C023 /* RDEpubReaderGestureController.swift in Sources */, + D5CC3DFDF87FB32F43F30CFA773F24B7 /* RDEPUBReaderHighlightsViewController.swift in Sources */, + 829FABEC19D9936223E2B7EA504E1837 /* RDEPUBReaderLoadCoordinator.swift in Sources */, + 227417644859CD9B14CEC8A63F2A76F1 /* RDEPUBReaderLocationCoordinator.swift in Sources */, + F46A79FB31B4EC325A867E885F3133C4 /* RDEpubReaderPageChildViewController.swift in Sources */, + 1B69A9A0C1A05B9C2CF9C3D013978159 /* RDEPUBReaderPaginationCoordinator.swift in Sources */, + B33A1DCF7152EB0A3E66435A57B2AD2F /* RDEpubReaderPagingController.swift in Sources */, + E1AACD0505062235FFA7AB922014CEDF /* RDEPUBReaderPersistence.swift in Sources */, + 19A854F08693D5E33D366266CC314CA5 /* RDEpubReaderPreloadController.swift in Sources */, + BE55DB547FA2EC7642691A23F1010530 /* RDEPUBReaderRuntime.swift in Sources */, + CC186DDFBC0B9113ED059BD9476EC03F /* RDEPUBReaderSearchBarView.swift in Sources */, + 482ED32FC798FFC0988D231C422CC2D6 /* RDEPUBReaderSearchCoordinator.swift in Sources */, + 5313F46037D674A56C56AEA0627CFD9B /* RDEPUBReaderServices.swift in Sources */, + D7B972C86F2A7C53268898866BA3B52F /* RDEPUBReaderSettings.swift in Sources */, + AE53B2A304BF64574D1A8390505ACDA5 /* RDEPUBReaderSettingsViewController.swift in Sources */, + 6E20C280B30CC011FA5FE27225F4CA08 /* RDEpubReaderSpreadResolver.swift in Sources */, + 58C665673C3487FBB4FE3252B104CFCD /* RDEPUBReaderState.swift in Sources */, + BB5717D569B9E8A64525285B1EA2EFEF /* RDEPUBReaderTableOfContentsItem.swift in Sources */, + F35F106D775628DEB6168914F68EB7B0 /* RDEpubReaderTapRegionHandler.swift in Sources */, + EF6805A8089C02A19ECAC3D94B5FB48E /* RDEPUBReaderTheme.swift in Sources */, + B33D90D23522973F4B957BE6BBDC12B7 /* RDEPUBReaderToolView.swift in Sources */, + EADE8C11C1847B549CDED4CCC415D365 /* RDEPUBReaderToolViewProtocols.swift in Sources */, + 93CF72A0801EA18E1DB1D4780641D600 /* RDEPUBReaderTopToolView.swift in Sources */, + C085C95842FEA5A3B4DC88505CA31B0E /* RDEPUBReaderUIState.swift in Sources */, + 0E8ECD6D42EDB9F36643DF10770C91F8 /* RDEpubReaderView.swift in Sources */, + 01B1B72435413976C736449E2DC3A6CF /* RDEpubReaderView+CollectionView.swift in Sources */, + 5B25516F5A2B918BD9C3B9717C708ECF /* RDEpubReaderView+ContentAccess.swift in Sources */, + 7FAA2A3A6DFC9B09CF329D8B29BFBD1E /* RDEpubReaderView+PageCurl.swift in Sources */, + F42F04FC64B488F4192F1EEB92BB9081 /* RDEpubReaderView+ToolView.swift in Sources */, + 7331D2C6D83AC10A7069FEE42FDA9268 /* RDEpubReaderView-dummy.m in Sources */, + 5DEC030EBE9BF49EB9DDDBFA02E4E6A2 /* RDEPUBReaderViewportMonitor.swift in Sources */, + AB4F4834EEA8016E0F7267540C4B60A4 /* RDEpubReaderViewProtocols.swift in Sources */, + 33998131AD3B6C65F0855CDC4CE58DCE /* RDEPUBReadingLocationModels.swift in Sources */, + D4639123C7864348F4EB667C68277807 /* RDEPUBReadingSession.swift in Sources */, + 6DC437E80D450202E1FA617107964C50 /* RDEPUBRenderDiagnosticsCollector.swift in Sources */, + ACCC10F1F59C3888937C5B70BB51C53B /* RDEPUBRenderRequest.swift in Sources */, + 8734AFB8552278280C48D058D7D90828 /* RDEPUBResourceDataProvider.swift in Sources */, + BE00FE99FF516C6B4CC3EC2C13AABB5A /* RDEPUBResourceResolver.swift in Sources */, + D66B34354E4FBEA8A542004A793680E7 /* RDEPUBResourceURLSchemeHandler.swift in Sources */, + 87526E3EC15B6CB9F23FEF90C5F38E81 /* RDEPUBRuntimeChapter.swift in Sources */, + 14F87EA233F2BD37C850AF743FBF5AF7 /* RDEPUBRuntimePageCount.swift in Sources */, + EDC73166CF56B7FCE34F2D81D7BA750A /* RDEPUBSafeArea.swift in Sources */, + DE5916890AF2873F54017D140A2545DC /* RDEPUBSearchEngine.swift in Sources */, + 23A7D0BA036B4A28D207588C405FF4A0 /* RDEPUBSearchModels.swift in Sources */, + 565D69812720FD28A4FB7B2318AFEECC /* RDEPUBSelectionLoupeView.swift in Sources */, + 17A87D442B01882515E53875C61FD80C /* RDEPUBSelectionOverlayView.swift in Sources */, + B45C528F0CDD7C9CE52346555A0CFAA4 /* RDEPUBSelectionState.swift in Sources */, + 9D429B6E8D291166069D9D363D0860B5 /* RDEPUBSemanticMarkerInjector.swift in Sources */, + CCB58C85DC72D4C0A260C1FC8CC2AC84 /* RDEPUBSettingsFlipAutomation.swift in Sources */, + 7A20C1F2913D72E8F0F6FA0AAF118EFA /* RDEPUBStyleCompatibilityModels.swift in Sources */, + 059371F34380CCE46625AFC49B5A08E9 /* RDEPUBStyleSheetBuilder.swift in Sources */, + C979E387C53A31D15351F533306F6A6D /* RDEPUBStyleSheetComposer.swift in Sources */, + B66B1AC0DA9EF2FA4C14E650EBA2E5AB /* RDEPUBTextAnchor.swift in Sources */, + C0A6D9B4DCA7820FEE7DFAB73146FAAF /* RDEPUBTextAnnotationOverlay.swift in Sources */, + 4E64C7CE0CDDD901F057216D8BA82E63 /* RDEPUBTextBookBuilder.swift in Sources */, + E6C8D0B24373D5E00F5BED9A1A1EF9F7 /* RDEPUBTextBookCache.swift in Sources */, + A5DD245B9007E96AD1C2B4F7B38178CD /* RDEPUBTextBookModels.swift in Sources */, + 138EAE1EE15DC14A310235705266F35E /* RDEPUBTextBuildPipelineInterfaces.swift in Sources */, + D6D9700A2018A6997A443C1514C051D2 /* RDEPUBTextContentInteractionCoordinator.swift in Sources */, + CB7988665226D552F5CA221B952642BC /* RDEPUBTextContentView.swift in Sources */, + DFF5E1C84B5540EE49E6BDE57037A13E /* RDEPUBTextIndexTable.swift in Sources */, + C8F08C79FDEE5BB67CAB4C1D29E53693 /* RDEPUBTextLayouter.swift in Sources */, + CD1515CD09BFDEA7FD01E4BD5CED66F0 /* RDEPUBTextLayoutFrame.swift in Sources */, + 1B7BD841519D2AA86F631E4374350CDE /* RDEPUBTextPageBoundaryValidator.swift in Sources */, + 016C4C5AAC16F9172DA1D972B2975E5F /* RDEPUBTextPageDecorationView.swift in Sources */, + FB686401E06D12786ECD57462C616856 /* RDEPUBTextPageRenderView.swift in Sources */, + F4CED96801D8FA175977964BEF53319B /* RDEPUBTextPageVerticalJustifier.swift in Sources */, + CC9A12B117DF3D9A7086A79CEE7004E9 /* RDEPUBTextPaginationInterfaces.swift in Sources */, + A8935B69E5590079C9BF436E1C463D13 /* RDEPUBTextPaginationSupport.swift in Sources */, + 459EFAB3E2F9360C7894EED15FE6D6CE /* RDEPUBTextPerformanceSampler.swift in Sources */, + 4137A571BFFDAE9674C23E81BB99CD2D /* RDEPUBTextPositionConverter.swift in Sources */, + E8EACC0939DF9452A17B1CF8A7C8A9DD /* RDEPUBTextRenderer.swift in Sources */, + 14142D08800AEF8C48A255D9E208B6B5 /* RDEPUBTextRendererSupport.swift in Sources */, + 4232C91537E29083C7897068B6BF3118 /* RDEPUBTextSearchEngine.swift in Sources */, + ABA77A570534C7861463068DDA41F417 /* RDEPUBTextSelectionController.swift in Sources */, + 6D802F088A02F005913CACB96284853A /* RDEPUBTypesettingPipeline.swift in Sources */, + DAEE63FABE105BC0B542F03EE19122DA /* RDEpubURLReaderController.swift in Sources */, + A4C8D40B64601BF79F3A2A6F6B0A2E72 /* RDEPUBViewportTypes.swift in Sources */, + 828A84419D693A32124C7ADEAC5B45EC /* RDEPUBWebContentView.swift in Sources */, + 4D7E2E9FCDAD56B16A2A413F3AAB2C25 /* RDEPUBWebDecorationOverlayView.swift in Sources */, + 0E5B9D5C1A3E038DFA8CBC8B72A073CC /* RDEPUBWebView.swift in Sources */, + EB43E7D882654C025BC63DFC3F884123 /* RDEPUBWebView+Configuration.swift in Sources */, + 2D420D39A6016CDAF1031863569A3DD7 /* RDEPUBWebView+FixedLayout.swift in Sources */, + 518A4391191B09389465F612A4FFAABD /* RDEPUBWebView+JavaScriptBridge.swift in Sources */, + 7D8A904D3344A8095F404106FA0ED5BC /* RDEPUBWebView+Reflowable.swift in Sources */, + 78DB7FD218344F69EDFBBC20FACAF493 /* RDEPUBWebView+Search.swift in Sources */, + 968C9DFEA4AA3A9DD98F4742E864E787 /* RDEPUBWebViewDebug.swift in Sources */, + 3BB2E4DE822D6C1DF728BC2724F6F608 /* String+RDEPUB.swift in Sources */, + 9EE07C88D1727DEC35CF8192EE0261F0 /* UIColor+RDEPUB.swift in Sources */, + 9C522D3989BA3F0BB5B98ACFC0662943 /* UIColor+RDEPUBHex.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - C087664E69A7DDC123A3D00480FA100C /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 3526C298B08D60279E5378EDA84C1A96 /* DTActivityTitleView.m in Sources */, - D19AB62540BEEDAD415D616509B08445 /* DTAnimatedGIF.m in Sources */, - B0C819B1181CB7AC0ED2AE0F785C05E2 /* DTBase64Coding.m in Sources */, - 5FA1ED066966420F71E6B562C351B5DE /* DTBlockFunctions.m in Sources */, - BED12B4CA012BB2D1EC92E136D6457F0 /* DTCoreGraphicsUtils.m in Sources */, - 9F77C5130284AF5B3A8E3CC488CCB537 /* DTCustomColoredAccessory.m in Sources */, - 57AC6E68683D2ABB49A4B67E02411534 /* DTExtendedFileAttributes.m in Sources */, - EEE698A9AA88E431076CF2F530BD82A9 /* DTFolderMonitor.m in Sources */, - 262F8039CD300F06804EF72ADE21296F /* DTFoundation-dummy.m in Sources */, - 6C2BF3E69D66D8866F24DB24494E7A3C /* DTFoundationConstants.m in Sources */, - 20BDDBE5CE1A90B6CA1AC55C037357E0 /* DTHTMLParser.m in Sources */, - 88F2D3A8852C62750F27E9DDBACC5E80 /* DTLog.m in Sources */, - 33A0F5C950CB119A009D62682928CC68 /* DTPieProgressIndicator.m in Sources */, - 09819232AC1E42F72943F2B9EBC3EFDB /* DTSmartPagingScrollView.m in Sources */, - 12C8BE5FE485F623F695BACC11DDF5B1 /* DTTiledLayerWithoutFade.m in Sources */, - F4D1800D694F5268E261595E762CA5DD /* DTVersion.m in Sources */, - CF5E634F602E6E8723852FE93912CCBA /* NSArray+DTError.m in Sources */, - 76811D5B18D00F172575D6717BF9DA63 /* NSData+DTCrypto.m in Sources */, - A29CC045590581A0435ED48791DAB677 /* NSDictionary+DTError.m in Sources */, - BB72EACBFD0C77D61A9AA9142C100B10 /* NSFileWrapper+DTCopying.m in Sources */, - 89B3A1D41C047AB90325994EEBFFC141 /* NSMutableArray+DTMoving.m in Sources */, - 97FF7E96537BE785FC7D2BE9D3A6F48D /* NSString+DTFormatNumbers.m in Sources */, - 49047276A52DD55FA5A59AD240C6F3CF /* NSString+DTPaths.m in Sources */, - DCA2EB6A9C43728C911B1084BABADB13 /* NSString+DTURLEncoding.m in Sources */, - 3DF9D7FC3E7B18DE4FBB4935D747E57A /* NSString+DTUtilities.m in Sources */, - 2E65B1871A829C3BD96472B1F86D34DF /* NSURL+DTAppLinks.m in Sources */, - 35C487D1A21FC5ADE3DF56FDB6040C0C /* NSURL+DTComparing.m in Sources */, - 12FD06AD8AA51C9E615E9094621D68CC /* NSURL+DTUnshorten.m in Sources */, - B250A5E09EA67FE88C2CED128EFC70CE /* UIApplication+DTNetworkActivity.m in Sources */, - A99834FF2DD87F43190B51C700D3CEA5 /* UIImage+DTFoundation.m in Sources */, - E37E3251D86E8B673CB16F60CA1151C1 /* UIScreen+DTFoundation.m in Sources */, - CEBD70C204E9891A9D5CF70CCF4C9D29 /* UIView+DTFoundation.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D29E47752E90C593DF598BE626679F85 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 3AD036D9E12E1F5B13E649BD538CAE41 /* RDEPUBAnnotationModels.swift in Sources */, - B61114677CF259E6270EFD80A28250D6 /* RDEPUBAssetRepository.swift in Sources */, - CF7B02001C36BA5BE16362D5C4EBDB07 /* RDEPUBAttachmentNormalizer.swift in Sources */, - C7E253517877BD88DD8B0DF7E23D1E89 /* RDEPUBAttachmentTooltipOverlayView.swift in Sources */, - AEA69A182B7FD8571C50C8D6D0BA457E /* RDEPUBAttachmentTooltipView.swift in Sources */, - 07ADD08673F557736DFE92F970D7C6CB /* RDEPUBBackgroundCoverageStore.swift in Sources */, - B2B97CAF20B478A68B805D4BF213ECBD /* RDEPUBBackgroundPriorityPolicy.swift in Sources */, - AB4E2FB516007251FB7794E5BE62552D /* RDEPUBBackgroundTrace.swift in Sources */, - 64AD1C8FACAD892C74600ECB3814FB7E /* RDEPUBBookPageMap.swift in Sources */, - D949F02438BC5DE45F525F899D6E1027 /* RDEPUBBuildDiagnosticsReporter.swift in Sources */, - 5E24441D23EA52049F2E955644FF13D7 /* RDEPUBCFI.swift in Sources */, - 96822D638C109FD3B0248756D3C49054 /* RDEPUBCFICompatibility.swift in Sources */, - 199E93DDEF9B6092AF0C6CA8271FBF43 /* RDEPUBCFIDOMPathBuilder.swift in Sources */, - 65826528B7322AC659BE2731BF56C4D7 /* RDEPUBCFIError.swift in Sources */, - 3F77E380C25DEB0DE88525B9727D8EF4 /* RDEPUBCFIGenerator.swift in Sources */, - F193C9E5DE98B216A99EB20B7B3C01C7 /* RDEPUBCFIMap.swift in Sources */, - 4046F20BC299071A92E803F8AEE93AA5 /* RDEPUBCFIMarkerInjector.swift in Sources */, - 7F4FB7F34D880ECD442F847FA71AD492 /* RDEPUBCFIParser.swift in Sources */, - 18309C9443FFD52914CC7A183360DE88 /* RDEPUBCFIPath.swift in Sources */, - 4B79E51CBDA4A396EAEB033F203F2475 /* RDEPUBCFIRange.swift in Sources */, - D38DC76225F46051EB5D9476485B4007 /* RDEPUBCFIRecoveryEngine.swift in Sources */, - 81F6BC0B7D2391F2FE65A174AFCBCBCB /* RDEPUBCFIResolver.swift in Sources */, - AF71226D0D6B283BC04F8560E9B9C0A7 /* RDEPUBCFISerializer.swift in Sources */, - A58BA01C2B741ED36C7B579D82DF9299 /* RDEPUBCFITextAssertion.swift in Sources */, - 80FC00E351AC0D6D2F46E4394E929CF6 /* RDEPUBCFIUtilities.swift in Sources */, - 58CB40846060096DCEBFF452787552E9 /* RDEPUBChapterCacheKey.swift in Sources */, - CA8985779F800BFDE009345B28F346C2 /* RDEPUBChapterData.swift in Sources */, - 3026BC61FA36878E1CC1CBA07F69C648 /* RDEPUBChapterDataCache.swift in Sources */, - 03D9B5FDBF0F61F0D2D9B28782BFB235 /* RDEPUBChapterDisplayContentCache.swift in Sources */, - 1A5D4A937139068A751CE07AEC4FACDC /* RDEPUBChapterLoader.swift in Sources */, - EE9B77D43F3023C4088D913B0012E493 /* RDEPUBChapterLocation.swift in Sources */, - D89AFCF84CC572910C3447D1C5B88EBE /* RDEPUBChapterOffsetMap.swift in Sources */, - 43EF10B03978E0CDA6E9F049A0D1A2A3 /* RDEPUBChapterPageCounter.swift in Sources */, - 75C0B88152862378FC69366D5556A4F0 /* RDEPUBChapterRuntimeStore.swift in Sources */, - 3144D716E7A554230FE1522F621FB024 /* RDEPUBChapterSummaryDiskCache.swift in Sources */, - 685918559B0E72379697A83A0CAB97BB /* RDEPUBChapterTailNormalizer.swift in Sources */, - 879859E12B2187F26613F5158A9AF2EC /* RDEPUBChapterWarmupOrchestrator.swift in Sources */, - 51098D0F512DA347D755590FD7586D57 /* RDEPUBCoreTextPageFrameFactory.swift in Sources */, - 2F9272A25DA4AD52EE88793A86DF9180 /* RDEPUBCSSCompatibilityLayer.swift in Sources */, - 37E8FA54000350B466C257801E6614CE /* RDEPUBDarkImageAdjuster.swift in Sources */, - EFE4AC989091964E6030D916FCA02EA7 /* RDEPUBDecryptingImageAttachment.swift in Sources */, - 40DBDF8655647908ED29A31535D267FB /* RDEPUBDTCoreTextRenderer.swift in Sources */, - 4A782A595503D2EB93424CF55B45C583 /* RDEPUBFixedLayoutTemplate.swift in Sources */, - 5A1F91D233524561D955A9A8C469C597 /* RDEPUBFontFallbackResolver.swift in Sources */, - AA230AF52990B03AB21C893D18B73E09 /* RDEPUBFontNormalizer.swift in Sources */, - 751C87AD55AC0B89BD55CB0A84659855 /* RDEPUBFragmentMarkerInjector.swift in Sources */, - B637F61E19FA6EBC9889C2BEDF31BE61 /* RDEPUBHTMLNormalizer.swift in Sources */, - E5AB494FB43314E9ECF733806ED02B1E /* RDEPUBImageViewController.swift in Sources */, - 7E42B74D6ADBBF89D80AC2B85BEDC30D /* RDEPUBImageViewerCoordinator.swift in Sources */, - 3970AAD7089A8009D72C2A70F1D73EE5 /* RDEPUBJavaScriptBridge.swift in Sources */, - 40ED28D3EDCD7FD6FDD14E01F5A9B447 /* RDEPUBJumpSession.swift in Sources */, - D2F7A0CE2F73B4EDCAD52379F2233A6B /* RDEPUBMemoryProbe.swift in Sources */, - 7F30613BF7FFC301FA627D3A4FB1F0C5 /* RDEPUBMetadataParseCancellationController.swift in Sources */, - C629CF9C1701AB409A00EC5D460DB964 /* RDEPUBMetadataParseWorker.swift in Sources */, - BF411F0538517FC40CDC0FD0A8C7A420 /* RDEPUBModels.swift in Sources */, - 1FD0505F5E605B1699CAF1616CC06662 /* RDEPUBNavigatorLayoutContext.swift in Sources */, - 99E46C19748D231F3D1D030942B6E1B1 /* RDEPUBNoteDetector.swift in Sources */, - 876E49146880469D4CE3D5232EE6FC90 /* RDEPUBNoteModels.swift in Sources */, - 4D45731159EA1D951C642A46AB0A3B38 /* RDEPUBNotePopupCoordinator.swift in Sources */, - 3CCEC42C335B6DCC04C3058CF078DAC7 /* RDEPUBNotePopupViewController.swift in Sources */, - 36F6BC3C4651DB0B0122DB1300A566A6 /* RDEPUBNoteResolver.swift in Sources */, - FA5E7F24DE52E5452B0EC9091D352602 /* RDEPUBPageBreakPolicy.swift in Sources */, - E12C988C3974467F470A512B0E5C54F7 /* RDEPUBPageCountCache.swift in Sources */, - 70F233D5255EDA1579EEC9530945F1B5 /* RDEPUBPageInteractionController.swift in Sources */, - 1FFD8E423E8DC4E04096041CFD00411A /* RDEPUBPageLayoutSnapshot.swift in Sources */, - 151713856AAB9F06659A8D5DDF2087C2 /* RDEPUBPageMapReconciliationCoordinator.swift in Sources */, - 4BB8DFFFE26E48DFA8B364CFF1EC8040 /* RDEPUBPageResolver.swift in Sources */, - 4766DE4358C52541EA0EF277171EAD9A /* RDEPUBPaginationCacheCoordinator.swift in Sources */, - 8179F8F50EDBD602A3A05A57D2738C4F /* RDEPUBPaginationModels.swift in Sources */, - 8BD146DDAFEE91B40B1946154580BE95 /* RDEPUBPaginator.swift in Sources */, - B2BB216A76E7F3B995A0F3D5D099E1BC /* RDEPUBParser.swift in Sources */, - C8C71942D3A141E7CD5032E8F1016F29 /* RDEPUBParser+Archive.swift in Sources */, - 263816EA7A16F559987B895002D43484 /* RDEPUBParser+Package.swift in Sources */, - C2E430A825AC41C57B06D2E35E3A853A /* RDEPUBParser+ReadingProfile.swift in Sources */, - D32DE4EA99BAA034D0C43502E93E7739 /* RDEPUBParser+Resources.swift in Sources */, - 75918C499D6B1483FBEBE1B0BC06AD53 /* RDEPUBParser+TOC.swift in Sources */, - 5719913D1BAA2CB6B405F41F827580DE /* RDEpubPlainTextBookBuilder.swift in Sources */, - 48878AB11627CEF8C7DC40088DA7AED7 /* RDEPUBPreferences.swift in Sources */, - 4C7BAC91C1E948D9592957C3A92C3147 /* RDEPUBPresentationRuntime.swift in Sources */, - 153D368F1FB8A6C37F09FCA900308262 /* RDEPUBPublication.swift in Sources */, - 6A9D9A375EC9BC31FA823F34FFFE4B46 /* RDEPUBReaderAnnotationCoordinator.swift in Sources */, - C2E855E2813B0E3231243EBCADD7759E /* RDEPUBReaderAssemblyCoordinator.swift in Sources */, - 7561605CCF229D3B47E4F7A4214E2495 /* RDEPUBReaderBottomToolView.swift in Sources */, - 33B28214F1A3949A14C93CECA00B8173 /* RDEPUBReaderChapterListController.swift in Sources */, - FD597D941EC356BFB833A672BABCA2D0 /* RDEPUBReaderChromeCoordinator.swift in Sources */, - B24C4825CE0519A7FB2CF193659F7236 /* RDEPUBReaderConfiguration.swift in Sources */, - 169C2AB341395A974734908A6E630E5E /* RDEpubReaderContentCell.swift in Sources */, - 968B20B8DFA56F0E43056D8B437D22F8 /* RDEPUBReaderContext.swift in Sources */, - 15C867066FED697DF7379382C99E6B30 /* RDEPUBReaderController.swift in Sources */, - E6701B19F1F17E88D687A13FCBA87277 /* RDEPUBReaderController+AttachmentTooltip.swift in Sources */, - 745A241FBA65FD761B09197560A4888C /* RDEPUBReaderController+ContentDelegates.swift in Sources */, - 87A23E9C163C19613C2643A27F192AA3 /* RDEPUBReaderController+DataSource.swift in Sources */, - F71ED6002B31FF204556F29CA0265143 /* RDEPUBReaderController+ExternalLinks.swift in Sources */, - 3C1B919FDD4F85CF4E6D3E8EC4C7E025 /* RDEPUBReaderController+LocationResolution.swift in Sources */, - 929443ED1ADB72355635234DDF0923C0 /* RDEPUBReaderController+Orientation.swift in Sources */, - FD088FA26275687CF53057621ADB903C /* RDEPUBReaderController+PublicAPI.swift in Sources */, - 9502E9B316CAD4D98520953DA4915B21 /* RDEPUBReaderController+RenderSupport.swift in Sources */, - 63A5CC78A647FBD1141999BBB2BDF21B /* RDEPUBReaderController+RuntimeBridge.swift in Sources */, - 7BBB76FF5902D531FC2DEE7596B75DDA /* RDEPUBReaderController+TableOfContents.swift in Sources */, - 2B65F3DCEBB005DA04C98F60A4D1AE77 /* RDEPUBReaderController+Trial.swift in Sources */, - B5A9BB79C1D4D5081CC626C1C75ACA58 /* RDEPUBReaderDelegate.swift in Sources */, - 45D3AC9978D8A395113A015A0AE53623 /* RDEPUBReaderDependencies.swift in Sources */, - 2341854012EA656B8F32863213F7012A /* RDEPUBReaderEnvironment.swift in Sources */, - 450D55646D08FE89E88D2F08698A6D32 /* RDEpubReaderFlowLayout.swift in Sources */, - DA678828B54CE961E1C2929A1410A31D /* RDEpubReaderGestureController.swift in Sources */, - 0B13ED712E176459DC75767C81356049 /* RDEPUBReaderHighlightsViewController.swift in Sources */, - BFF82B26C8F0A924864101BE93DBEA1F /* RDEPUBReaderLoadCoordinator.swift in Sources */, - C20B3A5FE8D80ACCF7281E7CED0826B3 /* RDEPUBReaderLocationCoordinator.swift in Sources */, - CC4DFC98C197D1FE60BF52809CC1B17E /* RDEpubReaderPageChildViewController.swift in Sources */, - 30CC1E6A5D43EC97866FA6D7087D696C /* RDEPUBReaderPaginationCoordinator.swift in Sources */, - 4E6E2981D78BED42BFB236A570E76176 /* RDEpubReaderPagingController.swift in Sources */, - 65F348EA65F8B9228DDCB4CE85A41CE4 /* RDEPUBReaderPersistence.swift in Sources */, - 75AD0B7A20FF5E8B71750D60477625D3 /* RDEpubReaderPreloadController.swift in Sources */, - BB487A86B1365E8F883930A0BFB80668 /* RDEPUBReaderRuntime.swift in Sources */, - 1A423024852D474564AD29A9E234D19D /* RDEPUBReaderSearchBarView.swift in Sources */, - 93FF39CA95B10B233EA1419CF95ED174 /* RDEPUBReaderSearchCoordinator.swift in Sources */, - C72F5280B5B83EA11ACDF74895E5758F /* RDEPUBReaderServices.swift in Sources */, - 0178B405FAF3D265372305943BDB91AB /* RDEPUBReaderSettings.swift in Sources */, - 7D456A8374BD4A23821CFFB07DDCF583 /* RDEPUBReaderSettingsViewController.swift in Sources */, - 4D2640B41A756FA16BCBAC667460FD10 /* RDEpubReaderSpreadResolver.swift in Sources */, - 7A0AD5DDF58A23FABE861D91A5ADC52A /* RDEPUBReaderState.swift in Sources */, - E0FC42C3CD2D1F7E374708F600536D26 /* RDEPUBReaderTableOfContentsItem.swift in Sources */, - 509C0C64CF80609A3A9ECBCE6D3C38AA /* RDEpubReaderTapRegionHandler.swift in Sources */, - 3BEB5C7059EB7C4E62C280146D66CAF7 /* RDEPUBReaderTheme.swift in Sources */, - 75752230AC2DC5B19D73E7F5719C4AE6 /* RDEPUBReaderToolView.swift in Sources */, - B4F9C816E5248DBE5D0F5CD82D25A4B4 /* RDEPUBReaderToolViewProtocols.swift in Sources */, - 267ED64847468F47CE49E72E39AC04A3 /* RDEPUBReaderTopToolView.swift in Sources */, - EBF356418C3C6D53BE635CFA4EAA2CEC /* RDEPUBReaderUIState.swift in Sources */, - B624BE4D149D61A910396D883766C7B1 /* RDEpubReaderView.swift in Sources */, - A2FA3F0E9BDA38929CD43EF55BA1F30F /* RDEpubReaderView+CollectionView.swift in Sources */, - 65207A50AA57064D307EC65F01B1FED2 /* RDEpubReaderView+ContentAccess.swift in Sources */, - B102ABA5BAF500C91E7FEB842E860FD4 /* RDEpubReaderView+PageCurl.swift in Sources */, - 64E474FDB28F0C3CDAC624A41775468A /* RDEpubReaderView+ToolView.swift in Sources */, - EAB62A5D1D3D572AD18C7566F15279C0 /* RDEpubReaderView-dummy.m in Sources */, - EA13E34B7BF4563DF1D5D2622C7DFF8F /* RDEPUBReaderViewportMonitor.swift in Sources */, - 164B404F4970465BA732CB6C61F24099 /* RDEpubReaderViewProtocols.swift in Sources */, - 8F082DD6458E2C5F76062E7D7FAF121F /* RDEPUBReadingLocationModels.swift in Sources */, - 35D82C01D957EA4B99A7BE2D88DBAB9C /* RDEPUBReadingSession.swift in Sources */, - 2169042D85F5BBD58CA42E4893ABCF5F /* RDEPUBRenderDiagnosticsCollector.swift in Sources */, - 5517E8BF85383E87597737B7C063403C /* RDEPUBRenderRequest.swift in Sources */, - BCBDC16EE17A5C45D99597929DA76453 /* RDEPUBResourceDataProvider.swift in Sources */, - 3BE4D575119E0A75B45C32489B090137 /* RDEPUBResourceResolver.swift in Sources */, - ADFBBB7F7EA8D54F062F6FE9A0EA1FA3 /* RDEPUBResourceURLSchemeHandler.swift in Sources */, - 5AB3B36FCE78B63E84BE2044872A9AD5 /* RDEPUBRuntimeChapter.swift in Sources */, - 04703B1388DCD2CA10215F648B50F3CB /* RDEPUBRuntimePageCount.swift in Sources */, - 22F7CE3E9E7DB5F51EF4562A2E8571BA /* RDEPUBSafeArea.swift in Sources */, - B4F523484916B5B5BF93998DC855D056 /* RDEPUBSearchEngine.swift in Sources */, - F439FC02429CC1C9DD1F6A5E161F61D6 /* RDEPUBSearchModels.swift in Sources */, - 06FB9E46B498A1601FFF195078E5A156 /* RDEPUBSelectionLoupeView.swift in Sources */, - 8BF9CE9063E06BB318FE214E669391AD /* RDEPUBSelectionOverlayView.swift in Sources */, - F7C33530A1B3E5BFFDC06C08D888DD5D /* RDEPUBSelectionState.swift in Sources */, - C68E01289F5AF6B9245379348D08820F /* RDEPUBSemanticMarkerInjector.swift in Sources */, - 4F9B2DB33A8FE255DDAF17E97D68227B /* RDEPUBSettingsFlipAutomation.swift in Sources */, - B462364CFF89AEFBE3F6B0FDD710F5CD /* RDEPUBStyleCompatibilityModels.swift in Sources */, - C9C8410D0C0FF213B707830293E79235 /* RDEPUBStyleSheetBuilder.swift in Sources */, - 35B64675B8DC54F46D7D7AC046ACFD23 /* RDEPUBStyleSheetComposer.swift in Sources */, - E586800F63A73B4721C0B3F03E49E942 /* RDEPUBTextAnchor.swift in Sources */, - A866F128FF261777F443C1CDD8223687 /* RDEPUBTextAnnotationOverlay.swift in Sources */, - E277306E0085BDD4F3A8885EE5351CD2 /* RDEPUBTextBookBuilder.swift in Sources */, - C5DD9E01BE94C43A42088BF48FC4A0C7 /* RDEPUBTextBookCache.swift in Sources */, - DBF354555B4B0353E32231529CB43F0A /* RDEPUBTextBookModels.swift in Sources */, - D79FE63B494282934EDE065131B29C98 /* RDEPUBTextBuildPipelineInterfaces.swift in Sources */, - 10849A91BA39B64B632457A2818B8C63 /* RDEPUBTextContentInteractionCoordinator.swift in Sources */, - B803A1C571EE32A1E68BDC1ECA3358ED /* RDEPUBTextContentView.swift in Sources */, - EB0A86053AC9D8A89B4D6E792AD7B7A8 /* RDEPUBTextIndexTable.swift in Sources */, - 6C4C16CD6AFC19E5AE7CB35224BA5C92 /* RDEPUBTextLayouter.swift in Sources */, - 39E30D6C1E40038B0C1083926237A2E6 /* RDEPUBTextLayoutFrame.swift in Sources */, - DD5CB019978B6208D0E7ABD017DC7D94 /* RDEPUBTextPageBoundaryValidator.swift in Sources */, - 5CEAFB1EE890C110409F5D157012C0E7 /* RDEPUBTextPageDecorationView.swift in Sources */, - 890E2633C30FA49F9947BF7956F24175 /* RDEPUBTextPageRenderView.swift in Sources */, - ED44A43182DD2E248D122AB1AEE76C2E /* RDEPUBTextPageVerticalJustifier.swift in Sources */, - 299808D938C97BA948DB3935EFD82B74 /* RDEPUBTextPaginationInterfaces.swift in Sources */, - 308462B8065C4552E6F2DCA653BA4A49 /* RDEPUBTextPaginationSupport.swift in Sources */, - F7591EEF257622C45FB4686F28808841 /* RDEPUBTextPerformanceSampler.swift in Sources */, - 16C3B174F120D3C049977A091BFA34A0 /* RDEPUBTextPositionConverter.swift in Sources */, - 934D9A4D7F0455ABD8C4CEC056AD1F53 /* RDEPUBTextRenderer.swift in Sources */, - D82A46AA1A5B2F3BB3B6E200544810E6 /* RDEPUBTextRendererSupport.swift in Sources */, - 411620ED94CA27F80F5BA1C54A8C0C68 /* RDEPUBTextSearchEngine.swift in Sources */, - E9871753E44C96C4AA1F48A81CA35361 /* RDEPUBTextSelectionController.swift in Sources */, - A408F09A616AB7B4107965F03AFE340F /* RDEPUBTypesettingPipeline.swift in Sources */, - CF851879EEFBFA3EEB9EEC6F74510052 /* RDEpubURLReaderController.swift in Sources */, - 6F6E1D10B2D36F1BF24AA22D3EF2053D /* RDEPUBViewportTypes.swift in Sources */, - EF9B5A80BF3D877F80BAEC7508948F22 /* RDEPUBWebContentView.swift in Sources */, - 1384D17D1E1C6DE381FA63DAB5DB421B /* RDEPUBWebDecorationOverlayView.swift in Sources */, - 06DF0E39B884DFADA5D3A32E03935DFF /* RDEPUBWebView.swift in Sources */, - 7928AE9F98DF003568813C9DC077236D /* RDEPUBWebView+Configuration.swift in Sources */, - 2201CC7B0A221ADAF05C3C4287FA3518 /* RDEPUBWebView+FixedLayout.swift in Sources */, - AA33782864FDA1F1F75C7538038F006D /* RDEPUBWebView+JavaScriptBridge.swift in Sources */, - 8EB2C64782A5B3E28B464EC7DC62E941 /* RDEPUBWebView+Reflowable.swift in Sources */, - 4BBADAEFFC3275B9ACFEA06354F413E1 /* RDEPUBWebView+Search.swift in Sources */, - 11DEE40FA231D4F0E3E04F691930E413 /* RDEPUBWebViewDebug.swift in Sources */, - 60721E7D396AE3937C7133AB576FD883 /* String+RDEPUB.swift in Sources */, - BC8D2215508131850AC76A34FF268694 /* UIColor+RDEPUB.swift in Sources */, - 99E9D689A47495662954CEE4075C05AD /* UIColor+RDEPUBHex.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - E66DF131B1BAFD7B618B44E7892A790A /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - E67568179BECE9060450A68A54A2E0FA /* Sources */ = { + DEE28BB720D717FD296935F7A8676722 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( @@ -2670,72 +2674,72 @@ /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - 00C6361C8719FBA4E395DD7972756069 /* PBXTargetDependency */ = { + 0F1C59C9927F0FE0ABDC38E0196D1BC4 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = DTCoreText; + target = B88F4EA0695B6B3165C64594850D72C7 /* DTCoreText */; + targetProxy = 9190069A5700AFF4197FC08239E6F928 /* PBXContainerItemProxy */; + }; + 126C40196FF2931215B10EEDA0149D22 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = "ZIPFoundation-ZIPFoundation_Privacy"; target = C7A8D82E407CD3FDC3BA55CEE519B252 /* ZIPFoundation-ZIPFoundation_Privacy */; - targetProxy = 291617C41AB3A88D1C83DC7062E96890 /* PBXContainerItemProxy */; + targetProxy = C29FF9012937BCC661166E8CCD045117 /* PBXContainerItemProxy */; }; - 0B12ED877A504A3EDF328B8B5AB55A37 /* PBXTargetDependency */ = { + 15BB03DA2078EA159F07A170FB0D3376 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = DTFoundation; + target = 8F6E5A5BF72D62CDFD25F91A7CFA3309 /* DTFoundation */; + targetProxy = 93C72F3A56A10442416CD3DF42EFC21C /* PBXContainerItemProxy */; + }; + 47ADCB42D33A2DE2B88C0CE8788C85A5 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = ZIPFoundation; + target = AA15C8469D67684160CC2A7098EB841C /* ZIPFoundation */; + targetProxy = 6E133DB84C650CD9299C634CF4BFF4DC /* PBXContainerItemProxy */; + }; + 53F7038D2BDDF438CCF3C58066477918 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = "RDEpubReaderView-RDEpubReaderViewAssets"; target = E07DDD766DCBF90486BCE6C2EA671E5E /* RDEpubReaderView-RDEpubReaderViewAssets */; - targetProxy = 0A9B46C05BF3C3A70BDDF3F755A55301 /* PBXContainerItemProxy */; + targetProxy = 7B8F60686863BD50DFE659C5C224BBA7 /* PBXContainerItemProxy */; }; - 1551DF4D30E2A88F1C572E3102D161E0 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = DTCoreText; - target = B88F4EA0695B6B3165C64594850D72C7 /* DTCoreText */; - targetProxy = 89EEF9DF71A6BD020500EED6F3B6F74F /* PBXContainerItemProxy */; - }; - 455E64EEF1F8ABA5151E7A74C7F65E30 /* PBXTargetDependency */ = { + 62A6DE35071C15292C7319C39B15F798 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = RDEpubReaderView; target = FBCB57A3AEAAA3449B3F365930BC0977 /* RDEpubReaderView */; - targetProxy = 184572994656765806610539FDE97D20 /* PBXContainerItemProxy */; + targetProxy = 520507E75016CB2CE6A7D2909236A2D7 /* PBXContainerItemProxy */; }; - 669D8327694A81D8D157F39CDB3E1539 /* PBXTargetDependency */ = { + 84B7D835EAD209ED77895FEC9D75D570 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = ZIPFoundation; target = AA15C8469D67684160CC2A7098EB841C /* ZIPFoundation */; - targetProxy = F3A9CFD4766AB58EAD7C800B495663A5 /* PBXContainerItemProxy */; + targetProxy = 865755327AA3EDE39CD797BE823CB077 /* PBXContainerItemProxy */; }; - 8A57936B99831660CED2C2AE2656E553 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = DTFoundation; - target = 8F6E5A5BF72D62CDFD25F91A7CFA3309 /* DTFoundation */; - targetProxy = FC2A40799EA5B233DDF797D1E36600CE /* PBXContainerItemProxy */; - }; - 982CD0D79765BF90F3C8143F8254BA5A /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = ZIPFoundation; - target = AA15C8469D67684160CC2A7098EB841C /* ZIPFoundation */; - targetProxy = 5B1CF3E8F84553527E617670496C2759 /* PBXContainerItemProxy */; - }; - E73110092DD196B4E565269EBF56DC68 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = DTCoreText; - target = B88F4EA0695B6B3165C64594850D72C7 /* DTCoreText */; - targetProxy = 9CABD6887800C32918AF4DF87BFA0A2E /* PBXContainerItemProxy */; - }; - F65A4523B74023B13D4117D61E694844 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = DTFoundation; - target = 8F6E5A5BF72D62CDFD25F91A7CFA3309 /* DTFoundation */; - targetProxy = C3309B36153779AA44D0A11AA303CD30 /* PBXContainerItemProxy */; - }; - F89BE326BA8B06B1007631FA78D53A6A /* PBXTargetDependency */ = { + B03C539E4037B0E0AC8D5D8987595C4A /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = "DTCoreText-Resources"; target = 0C24CB0E87A728A11AA1124CB360D6A1 /* DTCoreText-Resources */; - targetProxy = 14DAE0FAD0D1B19388CB9AA5D13DC5A4 /* PBXContainerItemProxy */; + targetProxy = 43F183413733D85912EE7B22A08405E9 /* PBXContainerItemProxy */; + }; + E45E4072AA845DAD5984CB683BE2BCEB /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = DTFoundation; + target = 8F6E5A5BF72D62CDFD25F91A7CFA3309 /* DTFoundation */; + targetProxy = 15DF30A9722A60D19A78DDA45AAB6F80 /* PBXContainerItemProxy */; + }; + EEB24B299DCD971AC817A23E8E03ECE2 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = DTCoreText; + target = B88F4EA0695B6B3165C64594850D72C7 /* DTCoreText */; + targetProxy = 59EDD3324EDF00AFA588E8581933CF3D /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ - 23DEE767AD9A95A36965BBF0E1B95EE0 /* Debug */ = { + 2775895D04C2E16D17B857333606AD97 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = C0DCB00F0B62D7DBE628D2B5FF006E93 /* DTCoreText.debug.xcconfig */; + baseConfigurationReference = 7A13F9221A300A89F9F8D0A2AB1794BF /* DTCoreText.release.xcconfig */; buildSettings = { CODE_SIGNING_ALLOWED = NO; CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/DTCoreText"; @@ -2749,11 +2753,11 @@ TARGETED_DEVICE_FAMILY = "1,2"; WRAPPER_EXTENSION = bundle; }; - name = Debug; + name = Release; }; - 29B18116A3CD49E3DF1838D1231A6962 /* Release */ = { + 315DBF42EC0B6C9592A9F53B2C7E1025 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 766227355308600EFC048F797274454A /* ZIPFoundation.release.xcconfig */; + baseConfigurationReference = B1FD140706B4E87F9A77141878B7B7D8 /* RDEpubReaderView.release.xcconfig */; buildSettings = { CLANG_ENABLE_OBJC_WEAK = NO; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -2766,9 +2770,9 @@ DYLIB_INSTALL_NAME_BASE = "@rpath"; ENABLE_MODULE_VERIFIER = NO; ENABLE_USER_SCRIPT_SANDBOXING = NO; - GCC_PREFIX_HEADER = "Target Support Files/ZIPFoundation/ZIPFoundation-prefix.pch"; + GCC_PREFIX_HEADER = "Target Support Files/RDEpubReaderView/RDEpubReaderView-prefix.pch"; GENERATE_INFOPLIST_FILE = NO; - INFOPLIST_FILE = "Target Support Files/ZIPFoundation/ZIPFoundation-Info.plist"; + INFOPLIST_FILE = "Target Support Files/RDEpubReaderView/RDEpubReaderView-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 15.0; LD_RUNPATH_SEARCH_PATHS = ( @@ -2776,14 +2780,14 @@ "@executable_path/Frameworks", "@loader_path/Frameworks", ); - MODULEMAP_FILE = "Target Support Files/ZIPFoundation/ZIPFoundation.modulemap"; - PRODUCT_MODULE_NAME = ZIPFoundation; - PRODUCT_NAME = ZIPFoundation; + MODULEMAP_FILE = "Target Support Files/RDEpubReaderView/RDEpubReaderView.modulemap"; + PRODUCT_MODULE_NAME = RDEpubReaderView; + PRODUCT_NAME = RDEpubReaderView; 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"; @@ -2791,45 +2795,6 @@ }; name = Release; }; - 3E0792C6BCBD78FE928FEDF7FE083B8B /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 85E8DA9DE1F796F12171763D20CBAF27 /* DTFoundation.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/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.0; - 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"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; 44A4B2FB6211B90C1949A44A381F6D1F /* Release */ = { isa = XCBuildConfiguration; buildSettings = { @@ -2893,17 +2858,56 @@ }; name = Release; }; - 6324561B3A31DED50394D20E6F6C48F5 /* Release */ = { + 44B6567BC55B78537439A59F2CDC2315 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 766227355308600EFC048F797274454A /* ZIPFoundation.release.xcconfig */; + 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.0; + 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; + }; + 4659B585A3A44897333E9CA9844E7092 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = B1FD140706B4E87F9A77141878B7B7D8 /* RDEpubReaderView.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)/RDEpubReaderView"; ENABLE_USER_SCRIPT_SANDBOXING = NO; - IBSC_MODULE = ZIPFoundation; - INFOPLIST_FILE = "Target Support Files/ZIPFoundation/ResourceBundle-ZIPFoundation_Privacy-ZIPFoundation-Info.plist"; + IBSC_MODULE = RDEpubReaderView; + INFOPLIST_FILE = "Target Support Files/RDEpubReaderView/ResourceBundle-RDEpubReaderViewAssets-RDEpubReaderView-Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 15.0; - PRODUCT_NAME = ZIPFoundation_Privacy; + PRODUCT_NAME = RDEpubReaderViewAssets; SDKROOT = iphoneos; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; @@ -2911,6 +2915,64 @@ }; name = Release; }; + 6062823B288255DBB885D34E53EB8F49 /* 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.0; + PRODUCT_NAME = Resources; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + WRAPPER_EXTENSION = bundle; + }; + name = Debug; + }; + 73E23B608E4E1DCA537D77917BECA4F3 /* 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.0; + 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"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; 77AF13D67B09359B5F6184B93496E376 /* Debug */ = { isa = XCBuildConfiguration; baseConfigurationReference = 306477706BBB1E784F55BCF8EB1AD737 /* Pods-ReadViewDemo.debug.xcconfig */; @@ -2950,9 +3012,9 @@ }; name = Debug; }; - 86D2911B3845A1300778528B808CC582 /* Debug */ = { + 84F0ED73E911CD0B33C83F6418F7603E /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = CF8FD338F89FBB4FEDDF24E590E86AFE /* RDEpubReaderView.debug.xcconfig */; + baseConfigurationReference = 766227355308600EFC048F797274454A /* ZIPFoundation.release.xcconfig */; buildSettings = { CLANG_ENABLE_OBJC_WEAK = NO; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -2965,9 +3027,9 @@ DYLIB_INSTALL_NAME_BASE = "@rpath"; ENABLE_MODULE_VERIFIER = NO; ENABLE_USER_SCRIPT_SANDBOXING = NO; - GCC_PREFIX_HEADER = "Target Support Files/RDEpubReaderView/RDEpubReaderView-prefix.pch"; + GCC_PREFIX_HEADER = "Target Support Files/ZIPFoundation/ZIPFoundation-prefix.pch"; GENERATE_INFOPLIST_FILE = NO; - INFOPLIST_FILE = "Target Support Files/RDEpubReaderView/RDEpubReaderView-Info.plist"; + INFOPLIST_FILE = "Target Support Files/ZIPFoundation/ZIPFoundation-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 15.0; LD_RUNPATH_SEARCH_PATHS = ( @@ -2975,48 +3037,9 @@ "@executable_path/Frameworks", "@loader_path/Frameworks", ); - MODULEMAP_FILE = "Target Support Files/RDEpubReaderView/RDEpubReaderView.modulemap"; - PRODUCT_MODULE_NAME = RDEpubReaderView; - PRODUCT_NAME = RDEpubReaderView; - 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; - }; - 878C92DA590BE3C7155CD32C9C84FBA8 /* 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.0; - 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; + 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) "; @@ -3069,6 +3092,24 @@ }; name = Release; }; + 9C29D3EB1399F15A176946DCF3048452 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 593FC97490C43D8E023CF07AA8D9DCA5 /* RDEpubReaderView.debug.xcconfig */; + buildSettings = { + CODE_SIGNING_ALLOWED = NO; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/RDEpubReaderView"; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + IBSC_MODULE = RDEpubReaderView; + INFOPLIST_FILE = "Target Support Files/RDEpubReaderView/ResourceBundle-RDEpubReaderViewAssets-RDEpubReaderView-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 15.0; + PRODUCT_NAME = RDEpubReaderViewAssets; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + WRAPPER_EXTENSION = bundle; + }; + name = Debug; + }; A0DC1C2C814704734F83EAB35BB20B21 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -3215,27 +3256,9 @@ }; name = Debug; }; - CF3B3A6EE9088299CBAF7500D2133580 /* Release */ = { + ADFEFC02FDA5A993374EEE448E908490 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 7A13F9221A300A89F9F8D0A2AB1794BF /* DTCoreText.release.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.0; - PRODUCT_NAME = Resources; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - WRAPPER_EXTENSION = bundle; - }; - name = Release; - }; - D21E6AF554E5ED9D11192200394F2642 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 79D13938A04579CD1E9E042A39CC4D86 /* ZIPFoundation.debug.xcconfig */; + baseConfigurationReference = 766227355308600EFC048F797274454A /* ZIPFoundation.release.xcconfig */; buildSettings = { CODE_SIGNING_ALLOWED = NO; CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/ZIPFoundation"; @@ -3249,86 +3272,11 @@ TARGETED_DEVICE_FAMILY = "1,2"; WRAPPER_EXTENSION = bundle; }; - name = Debug; - }; - DD5459E58C63C444714EAAF61A16B4F8 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = CF8FD338F89FBB4FEDDF24E590E86AFE /* RDEpubReaderView.debug.xcconfig */; - buildSettings = { - CODE_SIGNING_ALLOWED = NO; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/RDEpubReaderView"; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - IBSC_MODULE = RDEpubReaderView; - INFOPLIST_FILE = "Target Support Files/RDEpubReaderView/ResourceBundle-RDEpubReaderViewAssets-RDEpubReaderView-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 15.0; - PRODUCT_NAME = RDEpubReaderViewAssets; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - WRAPPER_EXTENSION = bundle; - }; - name = Debug; - }; - E1D4E894DCB57F557E71F4DC86EB0013 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 57F3CF4EBE3598B7B7C01D2C19483B86 /* RDEpubReaderView.release.xcconfig */; - buildSettings = { - CODE_SIGNING_ALLOWED = NO; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/RDEpubReaderView"; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - IBSC_MODULE = RDEpubReaderView; - INFOPLIST_FILE = "Target Support Files/RDEpubReaderView/ResourceBundle-RDEpubReaderViewAssets-RDEpubReaderView-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 15.0; - PRODUCT_NAME = RDEpubReaderViewAssets; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - WRAPPER_EXTENSION = bundle; - }; name = Release; }; - E781143F031B88689D083E61995FCF43 /* Debug */ = { + B5B697BD8DA558D35386F490A9A68FDA /* 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.0; - 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; - }; - EE7F9483CF6EE6F6809A98D197239013 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 57F3CF4EBE3598B7B7C01D2C19483B86 /* RDEpubReaderView.release.xcconfig */; + baseConfigurationReference = 593FC97490C43D8E023CF07AA8D9DCA5 /* RDEpubReaderView.debug.xcconfig */; buildSettings = { CLANG_ENABLE_OBJC_WEAK = NO; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -3360,11 +3308,67 @@ SWIFT_INSTALL_OBJC_HEADER = YES; SWIFT_VERSION = 5.10; TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Release; + name = Debug; + }; + C2B4B5FEEFB67E187939982C9F22099B /* 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.0; + PRODUCT_NAME = ZIPFoundation_Privacy; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + WRAPPER_EXTENSION = bundle; + }; + name = Debug; + }; + F821B7C9A55E3555A366CFCDBEA57B10 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 85E8DA9DE1F796F12171763D20CBAF27 /* DTFoundation.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/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.0; + 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"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; }; /* End XCBuildConfiguration section */ @@ -3378,6 +3382,15 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + 3967AA4F5EC629683F10167E6E03DB6A /* Build configuration list for PBXNativeTarget "DTCoreText-Resources" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 6062823B288255DBB885D34E53EB8F49 /* Debug */, + 2775895D04C2E16D17B857333606AD97 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -3387,47 +3400,29 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 4E41342AEB9C410C736C34DCA7B0F78F /* Build configuration list for PBXNativeTarget "RDEpubReaderView-RDEpubReaderViewAssets" */ = { + 4D63260C6DB5A6076F02CB3FB4D6C1C5 /* Build configuration list for PBXNativeTarget "DTFoundation" */ = { isa = XCConfigurationList; buildConfigurations = ( - DD5459E58C63C444714EAAF61A16B4F8 /* Debug */, - E1D4E894DCB57F557E71F4DC86EB0013 /* Release */, + F821B7C9A55E3555A366CFCDBEA57B10 /* Debug */, + 73E23B608E4E1DCA537D77917BECA4F3 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 6D4878B1090649FAD56F25B2145334DE /* Build configuration list for PBXNativeTarget "DTCoreText-Resources" */ = { + 73F5F8198660F8A299F6CCB06EC89904 /* Build configuration list for PBXNativeTarget "ZIPFoundation" */ = { isa = XCConfigurationList; buildConfigurations = ( - 23DEE767AD9A95A36965BBF0E1B95EE0 /* Debug */, - CF3B3A6EE9088299CBAF7500D2133580 /* Release */, + 44B6567BC55B78537439A59F2CDC2315 /* Debug */, + 84F0ED73E911CD0B33C83F6418F7603E /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 7FECBCCB85A6EAD26E9CC72B8864A863 /* Build configuration list for PBXNativeTarget "DTFoundation" */ = { + 772EA5867EB66F02C92AA38620603CC0 /* Build configuration list for PBXNativeTarget "RDEpubReaderView-RDEpubReaderViewAssets" */ = { isa = XCConfigurationList; buildConfigurations = ( - 3E0792C6BCBD78FE928FEDF7FE083B8B /* Debug */, - 878C92DA590BE3C7155CD32C9C84FBA8 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - A4FC6BA1B119BFD8297B387109E266D3 /* Build configuration list for PBXNativeTarget "ZIPFoundation-ZIPFoundation_Privacy" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - D21E6AF554E5ED9D11192200394F2642 /* Debug */, - 6324561B3A31DED50394D20E6F6C48F5 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - B302A2B9135E6E0BE1A48FEB8624A91C /* Build configuration list for PBXNativeTarget "RDEpubReaderView" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 86D2911B3845A1300778528B808CC582 /* Debug */, - EE7F9483CF6EE6F6809A98D197239013 /* Release */, + 9C29D3EB1399F15A176946DCF3048452 /* Debug */, + 4659B585A3A44897333E9CA9844E7092 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -3441,11 +3436,20 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - F34DEB3C2C0CDC5F97BBEAE4D6F7D219 /* Build configuration list for PBXNativeTarget "ZIPFoundation" */ = { + DECB71FBA314E820DBE7013749639380 /* Build configuration list for PBXNativeTarget "RDEpubReaderView" */ = { isa = XCConfigurationList; buildConfigurations = ( - E781143F031B88689D083E61995FCF43 /* Debug */, - 29B18116A3CD49E3DF1838D1231A6962 /* Release */, + B5B697BD8DA558D35386F490A9A68FDA /* Debug */, + 315DBF42EC0B6C9592A9F53B2C7E1025 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + E8D3369046B2E540437FC0D812BAF9E5 /* Build configuration list for PBXNativeTarget "ZIPFoundation-ZIPFoundation_Privacy" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C2B4B5FEEFB67E187939982C9F22099B /* Debug */, + ADFEFC02FDA5A993374EEE448E908490 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; diff --git a/ReadViewDemo/ReadViewDemoUITests/Helpers/AccessibilityIdentifiers.swift b/ReadViewDemo/ReadViewDemoUITests/Helpers/AccessibilityIdentifiers.swift index 5dd3f16..184e1f8 100644 --- a/ReadViewDemo/ReadViewDemoUITests/Helpers/AccessibilityIdentifiers.swift +++ b/ReadViewDemo/ReadViewDemoUITests/Helpers/AccessibilityIdentifiers.swift @@ -54,7 +54,6 @@ enum IDs { static let settingsFontValue = "epub.reader.settings.font.value" static let settingsFontChoice = "epub.reader.settings.font.choice" static let settingsLineHeight = "epub.reader.settings.lineHeight" - static let settingsColumns = "epub.reader.settings.columns" static let settingsDisplayType = "epub.reader.settings.displayType" static let settingsDone = "epub.reader.settings.done" static func settingsTheme(_ index: Int) -> String { "epub.reader.settings.theme.\(index)" } diff --git a/ReadViewDemo/ReadViewDemoUITests/Helpers/DemoReaderState.swift b/ReadViewDemo/ReadViewDemoUITests/Helpers/DemoReaderState.swift index 9e7657c..5c7b5d7 100644 --- a/ReadViewDemo/ReadViewDemoUITests/Helpers/DemoReaderState.swift +++ b/ReadViewDemo/ReadViewDemoUITests/Helpers/DemoReaderState.swift @@ -28,6 +28,7 @@ struct DemoReaderState { var isOpened: Bool { fields["reader"] == "opened" } var page: Int? { fields["page"].flatMap(Int.init) } + var pagesPerScreen: Int? { fields["pagesPerScreen"].flatMap(Int.init) } var display: String? { fields["display"] } var toolbar: String? { fields["toolbar"] } var highlights: Int? { fields["highlights"].flatMap(Int.init) } diff --git a/ReadViewDemo/ReadViewDemoUITests/ReaderUITests/FixedLayoutRotationTests.swift b/ReadViewDemo/ReadViewDemoUITests/ReaderUITests/FixedLayoutRotationTests.swift index 363c36f..d69f65b 100644 --- a/ReadViewDemo/ReadViewDemoUITests/ReaderUITests/FixedLayoutRotationTests.swift +++ b/ReadViewDemo/ReadViewDemoUITests/ReaderUITests/FixedLayoutRotationTests.swift @@ -23,6 +23,11 @@ final class FixedLayoutRotationTests: XCTestCase { for _ in 0..<3 { XCUIDevice.shared.orientation = .landscapeLeft RunLoop.current.run(until: Date().addingTimeInterval(2)) + let landscapeState = app.waitForDemoReaderState( + timeout: 5, + description: "固定版式横屏保持单页" + ) { $0.pagesPerScreen == 1 } + XCTAssertEqual(landscapeState.pagesPerScreen, 1, "交互型固定版式书横屏不应启用双页") XCUIDevice.shared.orientation = .portrait RunLoop.current.run(until: Date().addingTimeInterval(2)) } @@ -30,4 +35,29 @@ final class FixedLayoutRotationTests: XCTestCase { XCTAssertEqual(app.state, .runningForeground, "反复旋转后 app 已退出(疑似崩溃)") app.waitForReader() } + + func testFixedLayoutCachedPageCanReturnAfterPageTurn() { + app.launchAndOpenSampleBook(bookTitleQuery: "熊爷爷") + app.waitForReader() + + let content = app.otherElements[IDs.readerContent] + XCTAssertTrue(content.waitForExistence(timeout: 5), "固定版式阅读区域未出现") + let initialState = app.waitForDemoReaderState(timeout: 5, description: "固定版式初始页") { + $0.page != nil + } + let initialPage = initialState.page ?? 0 + + content.swipeLeft() + let nextState = app.waitForDemoReaderState(timeout: 8, description: "固定版式向后翻页") { state in + guard let page = state.page else { return false } + return page != initialPage + } + + content.swipeRight() + let returnedState = app.waitForDemoReaderState(timeout: 8, description: "固定版式返回缓存页") { + $0.page == initialPage + } + XCTAssertNotEqual(nextState.page, returnedState.page, "固定版式返回缓存页后页码未恢复") + XCTAssertTrue(content.exists, "返回缓存页后阅读区域不应消失") + } } diff --git a/ReadViewDemo/ReadViewDemoUITests/ReaderUITests/HighlightsManagementTests.swift b/ReadViewDemo/ReadViewDemoUITests/ReaderUITests/HighlightsManagementTests.swift index 07e3651..91dc8f0 100644 --- a/ReadViewDemo/ReadViewDemoUITests/ReaderUITests/HighlightsManagementTests.swift +++ b/ReadViewDemo/ReadViewDemoUITests/ReaderUITests/HighlightsManagementTests.swift @@ -19,9 +19,9 @@ final class HighlightsManagementTests: XCTestCase { let end = selectionText.coordinate(withNormalizedOffset: CGVector(dx: 0.6, dy: 0.5)) start.press(forDuration: 0.8, thenDragTo: end) - let highlightMenuItem = app.menuItems["高亮"] + let highlightMenuItem = app.menuItems["划线"] if highlightMenuItem.waitForExistence(timeout: 3) { highlightMenuItem.tap() } - else if app.buttons["高亮"].waitForExistence(timeout: 2) { app.buttons["高亮"].tap() } + else if app.buttons["划线"].waitForExistence(timeout: 2) { app.buttons["划线"].tap() } app.waitForDemoReaderState(timeout: 5, description: "highlights exists") { $0.highlights != nil } @@ -42,7 +42,7 @@ final class HighlightsManagementTests: XCTestCase { let end = selectionText.coordinate(withNormalizedOffset: CGVector(dx: 0.6, dy: 0.5)) start.press(forDuration: 0.8, thenDragTo: end) - let highlightMenuItem = app.menuItems["高亮"] + let highlightMenuItem = app.menuItems["划线"] if highlightMenuItem.waitForExistence(timeout: 3) { highlightMenuItem.tap() } app.showReaderChromeIfNeeded() @@ -63,7 +63,7 @@ final class HighlightsManagementTests: XCTestCase { let end = selectionText.coordinate(withNormalizedOffset: CGVector(dx: 0.6, dy: 0.5)) start.press(forDuration: 0.8, thenDragTo: end) - let highlightMenuItem = app.menuItems["高亮"] + let highlightMenuItem = app.menuItems["划线"] if highlightMenuItem.waitForExistence(timeout: 3) { highlightMenuItem.tap() } app.showReaderChromeIfNeeded() @@ -102,7 +102,7 @@ final class HighlightsManagementTests: XCTestCase { let end = selectionText.coordinate(withNormalizedOffset: CGVector(dx: 0.6, dy: 0.5)) start.press(forDuration: 0.8, thenDragTo: end) - let highlightMenuItem = app.menuItems["高亮"] + let highlightMenuItem = app.menuItems["划线"] if highlightMenuItem.waitForExistence(timeout: 3) { highlightMenuItem.tap() } app.showReaderChromeIfNeeded() @@ -112,15 +112,14 @@ final class HighlightsManagementTests: XCTestCase { XCTAssertTrue(highlightsTable.waitForExistence(timeout: 5)) XCTAssertTrue(waitForCellCount(in: highlightsTable, minimum: 1, timeout: 5)) - highlightsTable.cells.element(boundBy: 0).tap() + let editButton = app.navigationBars.buttons["编辑"].firstMatch + XCTAssertTrue(editButton.waitForExistence(timeout: 3), "标注列表应提供编辑入口") + editButton.tap() - let deleteButton = app.buttons["删除标注"].firstMatch - let deleteHighlightButton = app.buttons["删除高亮"].firstMatch - if deleteButton.waitForExistence(timeout: 3) { - deleteButton.tap() - } else if deleteHighlightButton.waitForExistence(timeout: 1) { - deleteHighlightButton.tap() - } + let deleteControl = highlightsTable.buttons["删除"].firstMatch + XCTAssertTrue(deleteControl.waitForExistence(timeout: 3), "编辑状态应显示删除控件") + deleteControl.tap() + app.buttons["删除"].lastMatch.tap() XCTAssertTrue(app.staticTexts[IDs.readerHighlightsEmptyLabel].waitForExistence(timeout: 5), "删除后应显示空状态") } diff --git a/ReadViewDemo/ReadViewDemoUITests/ReaderUITests/LocationPersistenceTests.swift b/ReadViewDemo/ReadViewDemoUITests/ReaderUITests/LocationPersistenceTests.swift index 530a52f..6b26fd4 100644 --- a/ReadViewDemo/ReadViewDemoUITests/ReaderUITests/LocationPersistenceTests.swift +++ b/ReadViewDemo/ReadViewDemoUITests/ReaderUITests/LocationPersistenceTests.swift @@ -136,8 +136,8 @@ final class LocationPersistenceTests: XCTestCase { let start = content.coordinate(withNormalizedOffset: CGVector(dx: 0.2, dy: 0.5)) let end = content.coordinate(withNormalizedOffset: CGVector(dx: 0.55, dy: 0.5)) start.press(forDuration: 0.8, thenDragTo: end) - XCTAssertTrue(app.menuItems["高亮"].waitForExistence(timeout: 3)) - app.menuItems["高亮"].tap() + XCTAssertTrue(app.menuItems["划线"].waitForExistence(timeout: 3)) + app.menuItems["划线"].tap() app.waitForDemoReaderState(timeout: 8, description: "highlights=1") { $0.highlights == 1 } app.showReaderChromeIfNeeded() @@ -167,7 +167,7 @@ final class LocationPersistenceTests: XCTestCase { let end = selectionText.coordinate(withNormalizedOffset: CGVector(dx: 0.6, dy: 0.5)) start.press(forDuration: 0.8, thenDragTo: end) - let highlightItem = app.menuItems["高亮"] + let highlightItem = app.menuItems["划线"] XCTAssertTrue(highlightItem.waitForExistence(timeout: 3), "应出现高亮菜单") highlightItem.tap() app.waitForDemoReaderState(timeout: 8, description: "highlights=1") { $0.highlights == 1 } diff --git a/ReadViewDemo/ReadViewDemoUITests/ReaderUITests/ReaderAnnotationTests.swift b/ReadViewDemo/ReadViewDemoUITests/ReaderUITests/ReaderAnnotationTests.swift index a4936c1..e179370 100644 --- a/ReadViewDemo/ReadViewDemoUITests/ReaderUITests/ReaderAnnotationTests.swift +++ b/ReadViewDemo/ReadViewDemoUITests/ReaderUITests/ReaderAnnotationTests.swift @@ -22,7 +22,7 @@ final class ReaderAnnotationTests: XCTestCase { app.waitForDemoReaderState(timeout: 5, description: "selection=1") { $0.selection == 1 } - let highlightMenuItem = app.menuItems["高亮"] + let highlightMenuItem = app.menuItems["划线"] let highlightButton = app.buttons[IDs.readerSelectionHighlight] if highlightMenuItem.waitForExistence(timeout: 3) { highlightMenuItem.tap() @@ -65,7 +65,7 @@ final class ReaderAnnotationTests: XCTestCase { app.waitForDemoReaderState(timeout: 5, description: "selection=1") { $0.selection == 1 } - let annotateMenuItem = app.menuItems["批注"] + let annotateMenuItem = app.menuItems["注释"] XCTAssertTrue(annotateMenuItem.waitForExistence(timeout: 3), "选中文本后未出现批注菜单") annotateMenuItem.tap() diff --git a/ReadViewDemo/ReadViewDemoUITests/ReaderUITests/SelectionAnnotateTests.swift b/ReadViewDemo/ReadViewDemoUITests/ReaderUITests/SelectionAnnotateTests.swift index a468543..cb91f2b 100644 --- a/ReadViewDemo/ReadViewDemoUITests/ReaderUITests/SelectionAnnotateTests.swift +++ b/ReadViewDemo/ReadViewDemoUITests/ReaderUITests/SelectionAnnotateTests.swift @@ -29,7 +29,7 @@ final class SelectionAnnotateTests: XCTestCase { Thread.sleep(forTimeInterval: 0.5) // 点击批注菜单项 - let annotateItem = app.menuItems["批注"] + let annotateItem = app.menuItems["注释"] guard annotateItem.waitForExistence(timeout: 3) else { throw XCTSkip("批注菜单项不存在") } @@ -56,7 +56,7 @@ final class SelectionAnnotateTests: XCTestCase { Thread.sleep(forTimeInterval: 0.5) - let annotateItem = app.menuItems["批注"] + let annotateItem = app.menuItems["注释"] guard annotateItem.waitForExistence(timeout: 3) else { throw XCTSkip("批注菜单项不存在") } @@ -101,7 +101,7 @@ final class SelectionAnnotateTests: XCTestCase { start.press(forDuration: 0.8, thenDragTo: end) Thread.sleep(forTimeInterval: 0.5) - let highlightItem = app.menuItems["高亮"] + let highlightItem = app.menuItems["划线"] guard highlightItem.waitForExistence(timeout: 3) else { throw XCTSkip("高亮菜单项不存在") } diff --git a/ReadViewDemo/ReadViewDemoUITests/ReaderUITests/SelectionMenuTests.swift b/ReadViewDemo/ReadViewDemoUITests/ReaderUITests/SelectionMenuTests.swift index b57c293..c52e9fb 100644 --- a/ReadViewDemo/ReadViewDemoUITests/ReaderUITests/SelectionMenuTests.swift +++ b/ReadViewDemo/ReadViewDemoUITests/ReaderUITests/SelectionMenuTests.swift @@ -18,7 +18,7 @@ final class SelectionMenuTests: XCTestCase { let end = selectionText.coordinate(withNormalizedOffset: CGVector(dx: 0.6, dy: 0.5)) start.press(forDuration: 0.8, thenDragTo: end) - XCTAssertTrue(app.menuItems["拷贝"].waitForExistence(timeout: 3), "选区菜单应包含拷贝选项") + XCTAssertTrue(app.menuItems["复制"].waitForExistence(timeout: 3), "选区菜单应包含拷贝选项") } func testSelectionMenuShowsAnnotateOption() throws { @@ -32,7 +32,7 @@ final class SelectionMenuTests: XCTestCase { let end = selectionText.coordinate(withNormalizedOffset: CGVector(dx: 0.6, dy: 0.5)) start.press(forDuration: 0.8, thenDragTo: end) - XCTAssertTrue(app.menuItems["批注"].waitForExistence(timeout: 3), "选区菜单应包含批注选项") + XCTAssertTrue(app.menuItems["注释"].waitForExistence(timeout: 3), "选区菜单应包含批注选项") } func testTapBlankAreaClearsSelection() throws { @@ -46,14 +46,14 @@ final class SelectionMenuTests: XCTestCase { let end = selectionText.coordinate(withNormalizedOffset: CGVector(dx: 0.6, dy: 0.5)) start.press(forDuration: 0.8, thenDragTo: end) - XCTAssertTrue(app.menuItems["拷贝"].waitForExistence(timeout: 3), "选区菜单应出现") + XCTAssertTrue(app.menuItems["复制"].waitForExistence(timeout: 3), "选区菜单应出现") let contentArea = app.otherElements[IDs.readerContentView].firstMatch if contentArea.waitForExistence(timeout: 3) { contentArea.coordinate(withNormalizedOffset: CGVector(dx: 0.1, dy: 0.1)).tap() } - let menuGone = !app.menuItems["拷贝"].waitForExistence(timeout: 2) + let menuGone = !app.menuItems["复制"].waitForExistence(timeout: 2) XCTAssertTrue(menuGone, "点击空白区域后选区菜单应消失") } @@ -68,7 +68,7 @@ final class SelectionMenuTests: XCTestCase { let end = selectionText.coordinate(withNormalizedOffset: CGVector(dx: 0.6, dy: 0.5)) start.press(forDuration: 0.8, thenDragTo: end) - let copyMenuItem = app.menuItems["拷贝"] + let copyMenuItem = app.menuItems["复制"] if copyMenuItem.waitForExistence(timeout: 3) { copyMenuItem.tap() } app.waitForDemoReaderState(timeout: 5, description: "reader=opened") { $0.isOpened } diff --git a/ReadViewDemo/ReadViewDemoUITests/ReaderUITests/SettingsEffectTests.swift b/ReadViewDemo/ReadViewDemoUITests/ReaderUITests/SettingsEffectTests.swift index e63b9cf..a70f242 100644 --- a/ReadViewDemo/ReadViewDemoUITests/ReaderUITests/SettingsEffectTests.swift +++ b/ReadViewDemo/ReadViewDemoUITests/ReaderUITests/SettingsEffectTests.swift @@ -44,24 +44,6 @@ final class SettingsEffectTests: XCTestCase { XCTAssertTrue(contentView.waitForExistence(timeout: 5), "主题切换后内容区应存在") } - func testColumnCountChangeUpdatesLayout() throws { - app.launchAndOpenSampleBook() - app.waitForReader(timeout: 12) - - app.showReaderChromeIfNeeded() - app.buttons[IDs.readerSettings].tap() - XCTAssertTrue(app.scrollViews[IDs.settingsScroll].waitForExistence(timeout: 5)) - app.scrollViews[IDs.settingsScroll].swipeUp() - - let columnsControl = app.segmentedControls[IDs.settingsColumns] - if columnsControl.waitForExistence(timeout: 3) && columnsControl.buttons.count > 1 { - columnsControl.buttons.element(boundBy: 1).tap() - } - - app.buttons[IDs.settingsDone].tap() - app.waitForDemoReaderState(timeout: 8, description: "reader=opened") { $0.isOpened } - } - func testLineHeightChangeUpdatesContent() throws { app.launchAndOpenSampleBook() app.waitForReader(timeout: 12) diff --git a/ReadViewDemo/ReadViewDemoUITests/ReaderUITests/SettingsExtendedTests.swift b/ReadViewDemo/ReadViewDemoUITests/ReaderUITests/SettingsExtendedTests.swift index a1909ea..7cff389 100644 --- a/ReadViewDemo/ReadViewDemoUITests/ReaderUITests/SettingsExtendedTests.swift +++ b/ReadViewDemo/ReadViewDemoUITests/ReaderUITests/SettingsExtendedTests.swift @@ -36,18 +36,6 @@ final class SettingsExtendedTests: XCTestCase { XCTAssertTrue(app.buttons[IDs.readerBack].waitForExistence(timeout: 5)) } - func testColumnCountControl() { - openSettings() - let columns = app.segmentedControls[IDs.settingsColumns] - XCTAssertTrue(columns.waitForExistence(timeout: 3), "分栏控件未出现") - - columns.buttons["单栏"].tap() - columns.buttons["双栏"].tap() - - app.buttons[IDs.settingsDone].tap() - XCTAssertTrue(app.buttons[IDs.readerBack].waitForExistence(timeout: 5)) - } - func testDisplayTypeFromSettings() { openSettings() let displayType = app.segmentedControls[IDs.settingsDisplayType] @@ -73,7 +61,6 @@ final class SettingsExtendedTests: XCTestCase { XCTAssertTrue(app.sliders[IDs.settingsBrightness].waitForExistence(timeout: 3)) XCTAssertTrue(app.segmentedControls[IDs.settingsLineHeight].waitForExistence(timeout: 3)) - XCTAssertTrue(app.segmentedControls[IDs.settingsColumns].waitForExistence(timeout: 3)) XCTAssertTrue(app.segmentedControls[IDs.settingsDisplayType].waitForExistence(timeout: 3)) } } diff --git a/Sources/RDEpubReaderView/EPUBCore/Models/RDEPUBAnnotationModels.swift b/Sources/RDEpubReaderView/EPUBCore/Models/RDEPUBAnnotationModels.swift index 9d57aee..9edace4 100644 --- a/Sources/RDEpubReaderView/EPUBCore/Models/RDEPUBAnnotationModels.swift +++ b/Sources/RDEpubReaderView/EPUBCore/Models/RDEPUBAnnotationModels.swift @@ -110,6 +110,10 @@ public struct RDEPUBHighlight: Codable, Equatable { public var note: String? + /// True when this record was created directly as an annotation instead of + /// adding a note to an existing underline. + public var isAnnotationOnly: Bool + public var createdAt: Date public init( @@ -118,9 +122,10 @@ public struct RDEPUBHighlight: Codable, Equatable { location: RDEPUBLocation, text: String, rangeInfo: String? = nil, - style: RDEPUBHighlightStyle = .highlight, + style: RDEPUBHighlightStyle = .underline, color: String = "#F8E16C", note: String? = nil, + isAnnotationOnly: Bool = false, createdAt: Date = Date() ) { self.id = id @@ -131,6 +136,7 @@ public struct RDEPUBHighlight: Codable, Equatable { self.style = style self.color = color self.note = note?.nilIfEmpty + self.isAnnotationOnly = isAnnotationOnly self.createdAt = createdAt } @@ -152,6 +158,7 @@ public struct RDEPUBHighlight: Codable, Equatable { case style case color case note + case isAnnotationOnly case createdAt } @@ -164,12 +171,13 @@ public struct RDEPUBHighlight: Codable, Equatable { rangeInfo = try container.decodeIfPresent(String.self, forKey: .rangeInfo)?.nilIfEmpty if let rawStyle = try container.decodeIfPresent(String.self, forKey: .style), let decodedStyle = RDEPUBHighlightStyle(rawValue: rawStyle) { - style = decodedStyle + style = decodedStyle == .highlight ? .underline : decodedStyle } else { - style = .highlight + style = .underline } color = try container.decodeIfPresent(String.self, forKey: .color) ?? "#F8E16C" note = try container.decodeIfPresent(String.self, forKey: .note)?.nilIfEmpty + isAnnotationOnly = try container.decodeIfPresent(Bool.self, forKey: .isAnnotationOnly) ?? false createdAt = try container.decodeIfPresent(Date.self, forKey: .createdAt) ?? Date() } @@ -183,6 +191,7 @@ public struct RDEPUBHighlight: Codable, Equatable { try container.encode(style, forKey: .style) try container.encode(color, forKey: .color) try container.encodeIfPresent(note, forKey: .note) + try container.encode(isAnnotationOnly, forKey: .isAnnotationOnly) try container.encode(createdAt, forKey: .createdAt) } diff --git a/Sources/RDEpubReaderView/EPUBCore/RDEPUBPublication.swift b/Sources/RDEpubReaderView/EPUBCore/RDEPUBPublication.swift index 4577176..6ecd415 100644 --- a/Sources/RDEpubReaderView/EPUBCore/RDEPUBPublication.swift +++ b/Sources/RDEpubReaderView/EPUBCore/RDEPUBPublication.swift @@ -36,6 +36,13 @@ public final class RDEPUBPublication { parser.readingProfile() } + /// Scripted fixed-layout publications own a complete interactive scene per + /// spine item. Combining scenes in landscape can start multiple timelines + /// and media tracks, so these publications remain single-page. + public lazy var requiresSinglePagePresentation: Bool = { + layout == .fixed && parser.hasInteractiveContent() + }() + public var readingProgression: RDEPUBReadingProgression { metadata.readingProgression } @@ -68,4 +75,4 @@ public final class RDEPUBPublication { spreadEnabled: fixedLayoutSpreadEnabled(for: preferences, viewportSize: viewportSize) ) } -} \ No newline at end of file +} diff --git a/Sources/RDEpubReaderView/EPUBCore/RDEPUBWebView+Configuration.swift b/Sources/RDEpubReaderView/EPUBCore/RDEPUBWebView+Configuration.swift index 4b69a9c..d695244 100644 --- a/Sources/RDEpubReaderView/EPUBCore/RDEPUBWebView+Configuration.swift +++ b/Sources/RDEpubReaderView/EPUBCore/RDEPUBWebView+Configuration.swift @@ -56,9 +56,9 @@ extension RDEPUBWebView { webView._editMenuInteraction = interaction } else { UIMenuController.shared.menuItems = [ - UIMenuItem(title: "拷贝", action: #selector(RDEPUBAnnotationWebView.rd_copy(_:))), - UIMenuItem(title: "高亮", action: #selector(RDEPUBAnnotationWebView.rd_highlight(_:))), - UIMenuItem(title: "批注", action: #selector(RDEPUBAnnotationWebView.rd_annotate(_:))) + UIMenuItem(title: "复制", action: #selector(RDEPUBAnnotationWebView.rd_copy(_:))), + UIMenuItem(title: "划线", action: #selector(RDEPUBAnnotationWebView.rd_highlight(_:))), + UIMenuItem(title: "注释", action: #selector(RDEPUBAnnotationWebView.rd_annotate(_:))) ] } webView.navigationDelegate = self @@ -89,6 +89,11 @@ extension RDEPUBWebView { self.schemeHandler = schemeHandler self.webView = webView self.configuredPublicationKey = publicationKey + appliedNativeMediaPlaybackSuspended = false + isNativeMediaPlaybackOperationInFlight = false + nativeMediaPlaybackOperationGeneration &+= 1 + nativeMediaPlaybackRequests.removeAll() + setNativeReaderPageMediaPlaybackSuspended(true) RDEPUBWebViewDebug.log(debugScope, message: "configured webView=\(RDEPUBWebViewDebug.webViewID(webView)) publicationKey=\(publicationKey)") } @@ -103,6 +108,7 @@ extension RDEPUBWebView { func teardownWebView() { cancelFixedLayoutReadyFallback() + RDEPUBReaderMediaPlaybackCoordinator.shared.remove(self) if let webView { RDEPUBWebViewDebug.log(debugScope, message: "teardown webView=\(RDEPUBWebViewDebug.webViewID(webView))") } @@ -119,6 +125,10 @@ extension RDEPUBWebView { (webView as? RDEPUBAnnotationWebView)?.onSelectionAction = nil webView?.removeFromSuperview() webView = nil + finishAllNativeMediaPlaybackRequests() + isWaitingForReaderPageMediaNavigation = false + pendingReaderPageMediaNavigation = nil + isReaderPageMediaActivationBlocked = false schemeHandler = nil configuredPublicationKey = nil currentLoadSignature = nil @@ -143,11 +153,101 @@ private final class RDEPUBWeakScriptMessageHandler: NSObject, WKScriptMessageHan } } +/// Serializes native media activation across page WebViews. WebKit suspension +/// is asynchronous and separate WKWebView instances have no ordering contract; +/// the incoming page therefore waits for the previous active page's suspension +/// completion before it can be resumed. +private final class RDEPUBReaderMediaPlaybackCoordinator { + + static let shared = RDEPUBReaderMediaPlaybackCoordinator() + + private weak var activePage: RDEPUBWebView? + private weak var pendingPage: RDEPUBWebView? + private var activationGeneration: UInt = 0 + + func setPlaybackSuspended( + _ suspended: Bool, + for page: RDEPUBWebView, + completion: @escaping () -> Void = {} + ) { + if suspended { + suspend(page, completion: completion) + } else { + activate(page, completion: completion) + } + } + + func remove(_ page: RDEPUBWebView) { + if pendingPage === page { + activationGeneration &+= 1 + } + if activePage === page { + activePage = nil + } + if pendingPage === page { + pendingPage = nil + } + } + + private func suspend(_ page: RDEPUBWebView, completion: @escaping () -> Void) { + if pendingPage === page || (activePage === page && pendingPage == nil) { + activationGeneration &+= 1 + } + if pendingPage === page { + pendingPage = nil + } + let suspensionGeneration = activationGeneration + + page.applyNativeMediaPlaybackSuspended(true) { [weak self, weak page] in + guard let self, let page else { return } + if self.activationGeneration == suspensionGeneration, + self.activePage === page { + self.activePage = nil + } + completion() + } + } + + private func activate(_ page: RDEPUBWebView, completion: @escaping () -> Void) { + activationGeneration &+= 1 + let generation = activationGeneration + pendingPage = page + let outgoingPage = activePage + + let resumeIncomingPage = { [weak self, weak page] in + guard let self, + let page, + self.activationGeneration == generation, + self.pendingPage === page else { return } + self.pendingPage = nil + self.activePage = page + page.applyNativeMediaPlaybackSuspended(false) { [weak self, weak page] in + guard let self, let page else { return } + if self.activePage !== page { + page.applyNativeMediaPlaybackSuspended(true, completion: {}) + } else { + completion() + } + } + } + + guard let outgoingPage, outgoingPage !== page else { + resumeIncomingPage() + return + } + + outgoingPage.applyNativeMediaPlaybackSuspended(true) { + resumeIncomingPage() + } + } +} + extension RDEPUBWebView { /// Installed in every frame before EPUB scripts run. Hidden pages start in - /// a suspended state, including audio created with `new Audio()` that is - /// not attached to the DOM (as used by Tumult Hype publications). + /// a suspended state for both HTML media and Web Audio. Tumult Hype uses + /// `AudioContext`/`AudioBufferSourceNode` for this publication, so handling + /// only `