From 1bba34d56c89079220e50393fa9510a97835cae3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Herculano?= Date: Mon, 24 Jul 2023 21:16:08 +0200 Subject: [PATCH] add markdown support to all TextView for tvOS --- ConsentViewController.podspec | 1 + .../Common/SPNativeScreenViewController.swift | 18 +- Example/Podfile.lock | 8 +- Example/Pods/Down/LICENSE | 218 + Example/Pods/Down/README.md | 273 + .../Pods/Down/Source/AST/Nodes/BaseNode.swift | 33 + .../Down/Source/AST/Nodes/BlockQuote.swift | 20 + .../Down/Source/AST/Nodes/ChildSequence.swift | 34 + Example/Pods/Down/Source/AST/Nodes/Code.swift | 25 + .../Down/Source/AST/Nodes/CodeBlock.swift | 39 + .../Down/Source/AST/Nodes/CustomBlock.swift | 25 + .../Down/Source/AST/Nodes/CustomInline.swift | 24 + .../Pods/Down/Source/AST/Nodes/Document.swift | 34 + .../Pods/Down/Source/AST/Nodes/Emphasis.swift | 20 + .../Pods/Down/Source/AST/Nodes/Heading.swift | 24 + .../Down/Source/AST/Nodes/HtmlBlock.swift | 26 + .../Down/Source/AST/Nodes/HtmlInline.swift | 25 + .../Pods/Down/Source/AST/Nodes/Image.swift | 46 + Example/Pods/Down/Source/AST/Nodes/Item.swift | 20 + .../Down/Source/AST/Nodes/LineBreak.swift | 20 + Example/Pods/Down/Source/AST/Nodes/Link.swift | 46 + Example/Pods/Down/Source/AST/Nodes/List.swift | 66 + Example/Pods/Down/Source/AST/Nodes/Node.swift | 111 + .../Down/Source/AST/Nodes/Paragraph.swift | 20 + .../Down/Source/AST/Nodes/SoftBreak.swift | 20 + .../Pods/Down/Source/AST/Nodes/Strong.swift | 20 + Example/Pods/Down/Source/AST/Nodes/Text.swift | 25 + .../Down/Source/AST/Nodes/ThematicBreak.swift | 20 + .../ColorCollection.swift | 91 + .../FontCollection.swift | 71 + .../ParagraphStyleCollection.swift | 68 + .../BlockBackgroundColorAttribute.swift | 32 + .../QuoteStripeAttribute.swift | 52 + .../ThematicBreakAttribute.swift | 32 + .../Extensions/CGPoint+Translate.swift | 28 + .../Helpers/Extensions/CGRect+Helpers.swift | 32 + .../NSAttributedString+Helpers.swift | 74 + ...NSMutableAttributedString+Attributes.swift | 57 + .../Helpers/Extensions/UIFont+Traits.swift | 91 + .../Helpers/ListItemParagraphStyler.swift | 103 + .../DownDebugLayoutManager.swift | 60 + .../Layout Managers/DownLayoutManager.swift | 212 + .../Styling/Options/CodeBlockOptions.swift | 30 + .../AST/Styling/Options/ListItemOptions.swift | 40 + .../Styling/Options/QuoteStripeOptions.swift | 32 + .../Options/ThematicBreakOptions.swift | 32 + .../AST/Styling/Stylers/DownStyler.swift | 299 + .../Stylers/DownStylerConfiguration.swift | 41 + .../Source/AST/Styling/Stylers/Styler.swift | 164 + .../Text Views/DownDebugTextView.swift | 35 + .../AST/Styling/Text Views/DownTextView.swift | 95 + .../Visitors/AttributedStringVisitor.swift | 226 + .../Source/AST/Visitors/DebugVisitor.swift | 118 + .../Visitors/ListItemPrefixGenerator.swift | 35 + .../Down/Source/AST/Visitors/Visitor.swift | 69 + Example/Pods/Down/Source/Down.h | 15 + Example/Pods/Down/Source/Down.swift | 26 + .../Source/Enums & Options/DownErrors.swift | 27 + .../Source/Enums & Options/DownOptions.swift | 63 + .../Extensions/NSAttributedString+HTML.swift | 37 + .../Source/Extensions/String+ToHTML.swift | 26 + .../Source/Renderers/DownASTRenderable.swift | 64 + .../DownAttributedStringRenderable.swift | 54 + .../Renderers/DownCommonMarkRenderable.swift | 57 + .../Renderers/DownGroffRenderable.swift | 57 + .../Source/Renderers/DownHTMLRenderable.swift | 49 + .../Renderers/DownLaTeXRenderable.swift | 57 + .../Source/Renderers/DownRenderable.swift | 14 + .../Source/Renderers/DownXMLRenderable.swift | 52 + Example/Pods/Down/Source/cmark/COPYING | 170 + Example/Pods/Down/Source/cmark/blocks.c | 1281 ++ Example/Pods/Down/Source/cmark/buffer.c | 278 + Example/Pods/Down/Source/cmark/buffer.h | 82 + .../Down/Source/cmark/case_fold_switch.inc | 4327 +++++ Example/Pods/Down/Source/cmark/chunk.h | 119 + Example/Pods/Down/Source/cmark/cmark.c | 43 + Example/Pods/Down/Source/cmark/cmark.h | 650 + Example/Pods/Down/Source/cmark/cmark_ctype.c | 44 + Example/Pods/Down/Source/cmark/cmark_ctype.h | 26 + Example/Pods/Down/Source/cmark/cmark_export.h | 42 + .../Pods/Down/Source/cmark/cmark_version.h | 7 + Example/Pods/Down/Source/cmark/commonmark.c | 486 + Example/Pods/Down/Source/cmark/config.h | 76 + Example/Pods/Down/Source/cmark/entities.inc | 2138 +++ Example/Pods/Down/Source/cmark/houdini.h | 51 + .../Pods/Down/Source/cmark/houdini_href_e.c | 100 + .../Pods/Down/Source/cmark/houdini_html_e.c | 66 + .../Pods/Down/Source/cmark/houdini_html_u.c | 149 + Example/Pods/Down/Source/cmark/html.c | 341 + .../Source/cmark/include/module.modulemap | 4 + Example/Pods/Down/Source/cmark/inlines.c | 1384 ++ Example/Pods/Down/Source/cmark/inlines.h | 23 + Example/Pods/Down/Source/cmark/iterator.c | 121 + Example/Pods/Down/Source/cmark/iterator.h | 26 + Example/Pods/Down/Source/cmark/latex.c | 453 + Example/Pods/Down/Source/cmark/man.c | 252 + Example/Pods/Down/Source/cmark/node.c | 858 + Example/Pods/Down/Source/cmark/node.h | 94 + Example/Pods/Down/Source/cmark/parser.h | 40 + Example/Pods/Down/Source/cmark/references.c | 146 + Example/Pods/Down/Source/cmark/references.h | 40 + Example/Pods/Down/Source/cmark/render.c | 188 + Example/Pods/Down/Source/cmark/render.h | 49 + Example/Pods/Down/Source/cmark/scanners.c | 13787 ++++++++++++++++ Example/Pods/Down/Source/cmark/scanners.h | 53 + Example/Pods/Down/Source/cmark/utf8.c | 317 + Example/Pods/Down/Source/cmark/utf8.h | 24 + Example/Pods/Down/Source/cmark/xml.c | 170 + .../ConsentViewController.podspec.json | 7 +- Example/Pods/Manifest.lock | 8 +- Example/Pods/Pods.xcodeproj/project.pbxproj | 4119 +++-- .../ConsentViewController-tvOS.debug.xcconfig | 2 + ...onsentViewController-tvOS.release.xcconfig | 2 + .../Target Support Files/Down/Down-Info.plist | 26 + .../Target Support Files/Down/Down-dummy.m | 5 + .../Target Support Files/Down/Down-prefix.pch | 12 + .../Target Support Files/Down/Down-umbrella.h | 17 + .../Down/Down.debug.xcconfig | 15 + .../Target Support Files/Down/Down.modulemap | 6 + .../Down/Down.release.xcconfig | 15 + ...tivePMExampleApp-acknowledgements.markdown | 221 + ...-NativePMExampleApp-acknowledgements.plist | 227 + ...pp-frameworks-Debug-input-files.xcfilelist | 3 +- ...p-frameworks-Debug-output-files.xcfilelist | 3 +- ...-frameworks-Release-input-files.xcfilelist | 3 +- ...frameworks-Release-output-files.xcfilelist | 3 +- .../Pods-NativePMExampleApp-frameworks.sh | 2 + .../Pods-NativePMExampleApp.debug.xcconfig | 6 +- .../Pods-NativePMExampleApp.release.xcconfig | 6 +- ...xampleAppUITests-acknowledgements.markdown | 221 + ...PMExampleAppUITests-acknowledgements.plist | 227 + ...ts-frameworks-Debug-input-files.xcfilelist | 1 + ...s-frameworks-Debug-output-files.xcfilelist | 1 + ...-frameworks-Release-input-files.xcfilelist | 1 + ...frameworks-Release-output-files.xcfilelist | 1 + ...ds-NativePMExampleAppUITests-frameworks.sh | 2 + ...s-NativePMExampleAppUITests.debug.xcconfig | 6 +- ...NativePMExampleAppUITests.release.xcconfig | 6 +- 138 files changed, 35973 insertions(+), 1784 deletions(-) create mode 100644 Example/Pods/Down/LICENSE create mode 100644 Example/Pods/Down/README.md create mode 100644 Example/Pods/Down/Source/AST/Nodes/BaseNode.swift create mode 100644 Example/Pods/Down/Source/AST/Nodes/BlockQuote.swift create mode 100644 Example/Pods/Down/Source/AST/Nodes/ChildSequence.swift create mode 100644 Example/Pods/Down/Source/AST/Nodes/Code.swift create mode 100644 Example/Pods/Down/Source/AST/Nodes/CodeBlock.swift create mode 100644 Example/Pods/Down/Source/AST/Nodes/CustomBlock.swift create mode 100644 Example/Pods/Down/Source/AST/Nodes/CustomInline.swift create mode 100644 Example/Pods/Down/Source/AST/Nodes/Document.swift create mode 100644 Example/Pods/Down/Source/AST/Nodes/Emphasis.swift create mode 100644 Example/Pods/Down/Source/AST/Nodes/Heading.swift create mode 100644 Example/Pods/Down/Source/AST/Nodes/HtmlBlock.swift create mode 100644 Example/Pods/Down/Source/AST/Nodes/HtmlInline.swift create mode 100644 Example/Pods/Down/Source/AST/Nodes/Image.swift create mode 100644 Example/Pods/Down/Source/AST/Nodes/Item.swift create mode 100644 Example/Pods/Down/Source/AST/Nodes/LineBreak.swift create mode 100644 Example/Pods/Down/Source/AST/Nodes/Link.swift create mode 100644 Example/Pods/Down/Source/AST/Nodes/List.swift create mode 100644 Example/Pods/Down/Source/AST/Nodes/Node.swift create mode 100644 Example/Pods/Down/Source/AST/Nodes/Paragraph.swift create mode 100644 Example/Pods/Down/Source/AST/Nodes/SoftBreak.swift create mode 100644 Example/Pods/Down/Source/AST/Nodes/Strong.swift create mode 100644 Example/Pods/Down/Source/AST/Nodes/Text.swift create mode 100644 Example/Pods/Down/Source/AST/Nodes/ThematicBreak.swift create mode 100644 Example/Pods/Down/Source/AST/Styling/Attribute Collections/ColorCollection.swift create mode 100644 Example/Pods/Down/Source/AST/Styling/Attribute Collections/FontCollection.swift create mode 100644 Example/Pods/Down/Source/AST/Styling/Attribute Collections/ParagraphStyleCollection.swift create mode 100644 Example/Pods/Down/Source/AST/Styling/Custom Attributes/BlockBackgroundColorAttribute.swift create mode 100644 Example/Pods/Down/Source/AST/Styling/Custom Attributes/QuoteStripeAttribute.swift create mode 100644 Example/Pods/Down/Source/AST/Styling/Custom Attributes/ThematicBreakAttribute.swift create mode 100644 Example/Pods/Down/Source/AST/Styling/Helpers/Extensions/CGPoint+Translate.swift create mode 100644 Example/Pods/Down/Source/AST/Styling/Helpers/Extensions/CGRect+Helpers.swift create mode 100644 Example/Pods/Down/Source/AST/Styling/Helpers/Extensions/NSAttributedString+Helpers.swift create mode 100644 Example/Pods/Down/Source/AST/Styling/Helpers/Extensions/NSMutableAttributedString+Attributes.swift create mode 100644 Example/Pods/Down/Source/AST/Styling/Helpers/Extensions/UIFont+Traits.swift create mode 100644 Example/Pods/Down/Source/AST/Styling/Helpers/ListItemParagraphStyler.swift create mode 100644 Example/Pods/Down/Source/AST/Styling/Layout Managers/DownDebugLayoutManager.swift create mode 100644 Example/Pods/Down/Source/AST/Styling/Layout Managers/DownLayoutManager.swift create mode 100644 Example/Pods/Down/Source/AST/Styling/Options/CodeBlockOptions.swift create mode 100644 Example/Pods/Down/Source/AST/Styling/Options/ListItemOptions.swift create mode 100644 Example/Pods/Down/Source/AST/Styling/Options/QuoteStripeOptions.swift create mode 100644 Example/Pods/Down/Source/AST/Styling/Options/ThematicBreakOptions.swift create mode 100644 Example/Pods/Down/Source/AST/Styling/Stylers/DownStyler.swift create mode 100644 Example/Pods/Down/Source/AST/Styling/Stylers/DownStylerConfiguration.swift create mode 100644 Example/Pods/Down/Source/AST/Styling/Stylers/Styler.swift create mode 100644 Example/Pods/Down/Source/AST/Styling/Text Views/DownDebugTextView.swift create mode 100644 Example/Pods/Down/Source/AST/Styling/Text Views/DownTextView.swift create mode 100644 Example/Pods/Down/Source/AST/Visitors/AttributedStringVisitor.swift create mode 100644 Example/Pods/Down/Source/AST/Visitors/DebugVisitor.swift create mode 100644 Example/Pods/Down/Source/AST/Visitors/ListItemPrefixGenerator.swift create mode 100644 Example/Pods/Down/Source/AST/Visitors/Visitor.swift create mode 100644 Example/Pods/Down/Source/Down.h create mode 100644 Example/Pods/Down/Source/Down.swift create mode 100644 Example/Pods/Down/Source/Enums & Options/DownErrors.swift create mode 100644 Example/Pods/Down/Source/Enums & Options/DownOptions.swift create mode 100644 Example/Pods/Down/Source/Extensions/NSAttributedString+HTML.swift create mode 100644 Example/Pods/Down/Source/Extensions/String+ToHTML.swift create mode 100644 Example/Pods/Down/Source/Renderers/DownASTRenderable.swift create mode 100644 Example/Pods/Down/Source/Renderers/DownAttributedStringRenderable.swift create mode 100644 Example/Pods/Down/Source/Renderers/DownCommonMarkRenderable.swift create mode 100644 Example/Pods/Down/Source/Renderers/DownGroffRenderable.swift create mode 100644 Example/Pods/Down/Source/Renderers/DownHTMLRenderable.swift create mode 100644 Example/Pods/Down/Source/Renderers/DownLaTeXRenderable.swift create mode 100644 Example/Pods/Down/Source/Renderers/DownRenderable.swift create mode 100644 Example/Pods/Down/Source/Renderers/DownXMLRenderable.swift create mode 100755 Example/Pods/Down/Source/cmark/COPYING create mode 100755 Example/Pods/Down/Source/cmark/blocks.c create mode 100755 Example/Pods/Down/Source/cmark/buffer.c create mode 100755 Example/Pods/Down/Source/cmark/buffer.h create mode 100755 Example/Pods/Down/Source/cmark/case_fold_switch.inc create mode 100755 Example/Pods/Down/Source/cmark/chunk.h create mode 100755 Example/Pods/Down/Source/cmark/cmark.c create mode 100755 Example/Pods/Down/Source/cmark/cmark.h create mode 100755 Example/Pods/Down/Source/cmark/cmark_ctype.c create mode 100755 Example/Pods/Down/Source/cmark/cmark_ctype.h create mode 100644 Example/Pods/Down/Source/cmark/cmark_export.h create mode 100755 Example/Pods/Down/Source/cmark/cmark_version.h create mode 100755 Example/Pods/Down/Source/cmark/commonmark.c create mode 100755 Example/Pods/Down/Source/cmark/config.h create mode 100755 Example/Pods/Down/Source/cmark/entities.inc create mode 100755 Example/Pods/Down/Source/cmark/houdini.h create mode 100755 Example/Pods/Down/Source/cmark/houdini_href_e.c create mode 100755 Example/Pods/Down/Source/cmark/houdini_html_e.c create mode 100755 Example/Pods/Down/Source/cmark/houdini_html_u.c create mode 100755 Example/Pods/Down/Source/cmark/html.c create mode 100644 Example/Pods/Down/Source/cmark/include/module.modulemap create mode 100755 Example/Pods/Down/Source/cmark/inlines.c create mode 100755 Example/Pods/Down/Source/cmark/inlines.h create mode 100755 Example/Pods/Down/Source/cmark/iterator.c create mode 100755 Example/Pods/Down/Source/cmark/iterator.h create mode 100755 Example/Pods/Down/Source/cmark/latex.c create mode 100755 Example/Pods/Down/Source/cmark/man.c create mode 100755 Example/Pods/Down/Source/cmark/node.c create mode 100755 Example/Pods/Down/Source/cmark/node.h create mode 100755 Example/Pods/Down/Source/cmark/parser.h create mode 100755 Example/Pods/Down/Source/cmark/references.c create mode 100755 Example/Pods/Down/Source/cmark/references.h create mode 100755 Example/Pods/Down/Source/cmark/render.c create mode 100755 Example/Pods/Down/Source/cmark/render.h create mode 100755 Example/Pods/Down/Source/cmark/scanners.c create mode 100755 Example/Pods/Down/Source/cmark/scanners.h create mode 100755 Example/Pods/Down/Source/cmark/utf8.c create mode 100755 Example/Pods/Down/Source/cmark/utf8.h create mode 100755 Example/Pods/Down/Source/cmark/xml.c create mode 100644 Example/Pods/Target Support Files/Down/Down-Info.plist create mode 100644 Example/Pods/Target Support Files/Down/Down-dummy.m create mode 100644 Example/Pods/Target Support Files/Down/Down-prefix.pch create mode 100644 Example/Pods/Target Support Files/Down/Down-umbrella.h create mode 100644 Example/Pods/Target Support Files/Down/Down.debug.xcconfig create mode 100644 Example/Pods/Target Support Files/Down/Down.modulemap create mode 100644 Example/Pods/Target Support Files/Down/Down.release.xcconfig diff --git a/ConsentViewController.podspec b/ConsentViewController.podspec index bf4bc5a55..26cc388ae 100644 --- a/ConsentViewController.podspec +++ b/ConsentViewController.podspec @@ -12,6 +12,7 @@ Pod::Spec.new do |s| s.ios.exclude_files = 'ConsentViewController/Classes/Views/tvOS' s.tvos.deployment_target = '10.0' s.tvos.exclude_files = 'ConsentViewController/Classes/Views/iOS' + s.tvos.dependency 'Down', '~> 0.9.0' s.resource_bundles = { 'ConsentViewController' => ['ConsentViewController/Assets/**/*', 'Pod/Classes/**/*.{storyboard,xib,xcassets,json,imageset,png,js}'] } s.resources = "ConsentViewController/**/*.{js,json,png}" s.info_plist = { diff --git a/ConsentViewController/Classes/Views/tvOS/NativePrivacyManager/Common/SPNativeScreenViewController.swift b/ConsentViewController/Classes/Views/tvOS/NativePrivacyManager/Common/SPNativeScreenViewController.swift index 521076363..8a2bc139e 100644 --- a/ConsentViewController/Classes/Views/tvOS/NativePrivacyManager/Common/SPNativeScreenViewController.swift +++ b/ConsentViewController/Classes/Views/tvOS/NativePrivacyManager/Common/SPNativeScreenViewController.swift @@ -7,6 +7,7 @@ import Foundation import UIKit +import Down extension UIImageView { func load(url: URL) { @@ -212,15 +213,22 @@ class FocusGuideDebugView: UIView { return label } + func parseText(_ rawText: String) -> NSAttributedString? { + guard let markdownText = try? Down(markdownString: rawText).toAttributedString(), + markdownText.length != 0 else { + return rawText.htmlToAttributedString + } + return markdownText + } + @discardableResult func loadTextView(forComponentId id: String, textView: UITextView, text: String? = nil, bounces: Bool = true) -> UITextView { if let textViewComponent = components.first(where: { $0.id == id }) as? SPNativeText { let style = textViewComponent.settings.style - if let text = text { - textView.attributedText = text.htmlToAttributedString - } else { - textView.attributedText = textViewComponent.settings.text.htmlToAttributedString - } + textView.attributedText = parseText(text != nil ? + text! : + textViewComponent.settings.text + ) textView.textColor = UIColor(hexString: style.font.color) textView.isUserInteractionEnabled = true textView.isScrollEnabled = true diff --git a/Example/Podfile.lock b/Example/Podfile.lock index 3bea8009d..05916c9f0 100644 --- a/Example/Podfile.lock +++ b/Example/Podfile.lock @@ -1,5 +1,7 @@ PODS: - - ConsentViewController (7.2.1) + - ConsentViewController (7.2.1): + - Down (~> 0.9.0) + - Down (0.9.5) - IQKeyboardManagerSwift (6.5.10) - JSONView (0.0.3) - Nimble (10.0.0) @@ -18,6 +20,7 @@ DEPENDENCIES: SPEC REPOS: trunk: + - Down - IQKeyboardManagerSwift - JSONView - Nimble @@ -30,7 +33,8 @@ EXTERNAL SOURCES: :path: "../" SPEC CHECKSUMS: - ConsentViewController: 038d1eb3a9cebc9157809220a319ac1ef7173b8d + ConsentViewController: b4bc3ccbeb4d1659b61609ba956b61c4aa78fa86 + Down: 7321a72d0747ed0061dce948bcff518fcb6df2bd IQKeyboardManagerSwift: 52962c76ab33532f15ad9f3ff4e5715eda5335bb JSONView: ba9049102fae7ad70de40234d0b7c60986e61e4c Nimble: 5316ef81a170ce87baf72dd961f22f89a602ff84 diff --git a/Example/Pods/Down/LICENSE b/Example/Pods/Down/LICENSE new file mode 100644 index 000000000..2e9e440bf --- /dev/null +++ b/Example/Pods/Down/LICENSE @@ -0,0 +1,218 @@ +The MIT License (MIT) + +Copyright (c) 2016 Rob Phillips. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----- + +cmark + +Copyright (c) 2014, John MacFarlane + +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +----- + +houdini.h, houdini_href_e.c, houdini_html_e.c, houdini_html_u.c, +html_unescape.gperf, html_unescape.h + +derive from https://github.com/vmg/houdini (with some modifications) + +Copyright (C) 2012 Vicent Martí + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----- + +buffer.h, buffer.c, chunk.h + +are derived from code (C) 2012 Github, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----- + +utf8.c and utf8.c + +are derived from utf8proc +(), +(C) 2009 Public Software Group e. V., Berlin, Germany. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +----- + +The normalization code in runtests.py was derived from the +markdowntest project, Copyright 2013 Karl Dubost: + +The MIT License (MIT) + +Copyright (c) 2013 Karl Dubost + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----- + +The CommonMark spec (test/spec.txt) is + +Copyright (C) 2014-15 John MacFarlane + +Released under the Creative Commons CC-BY-SA 4.0 license: +. + +----- + +The test software in test/ is + +Copyright (c) 2014, John MacFarlane + +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +----- + +The normalization code in runtests.py was derived from the +markdowntest project, Copyright 2013 Karl Dubost: + +The MIT License (MIT) + +Copyright (c) 2013 Karl Dubost + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/Example/Pods/Down/README.md b/Example/Pods/Down/README.md new file mode 100644 index 000000000..c55a38ea1 --- /dev/null +++ b/Example/Pods/Down/README.md @@ -0,0 +1,273 @@ +## Down +[![Build Status](https://travis-ci.com/johnxnguyen/Down.svg?branch=master)](https://travis-ci.com/johnxnguyen/Down) +[![MIT licensed](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/johnxnguyen/Down/blob/master/LICENSE) +[![CocoaPods](https://img.shields.io/cocoapods/v/Down.svg?maxAge=10800)]() +[![Swift 5](https://img.shields.io/badge/language-Swift-blue.svg)](https://swift.org) +[![macOS](https://img.shields.io/badge/OS-macOS-orange.svg)](https://developer.apple.com/macos/) +[![iOS](https://img.shields.io/badge/OS-iOS-orange.svg)](https://developer.apple.com/ios/) +[![tvOS](https://img.shields.io/badge/OS-tvOS-orange.svg)](https://developer.apple.com/tvos/) +[![Linux](https://img.shields.io/badge/OS-Linux-orange.svg)](https://www.linux.org/) +[![Code Coverage](https://codecov.io/gh/johnxnguyen/Down/branch/master/graph/badge.svg)](https://codecov.io/gh/johnxnguyen/Down) + +Blazing fast Markdown (CommonMark) rendering in Swift, built upon [cmark v0.29.0](https://github.com/commonmark/cmark). + +Is your app using it? [Let us know!](mailto:polyxo@protonmail.com) + +If you're looking for `iwasrobbed/Down`, you found it! [Rob Phillips](https://github.com/iwasrobbed), the originator of this repository, +has transferred it to me as I will be the primary maintainer from now on. Thanks to Rob for bringing Down as far as it has come and for +entrusting me with its care. + +All existing references to `iwasrobbed/Down` should redirect to this repository. However, It is recommended to update those urls to point +to this repository. + +#### Maintainers + +- [John Nguyen](https://github.com/johnxnguyen) +- [Rob Phillips](https://github.com/iwasrobbed) +- [Keaton Burleson](https://github.com/128keaton) +- [phoney](https://github.com/phoney) +- [Tony Arnold](https://github.com/tonyarnold) +- [Ken Harris](https://github.com/kengruven) +- [Chris Zielinski](https://github.com/chriszielinski) +- [Other contributors](https://github.com/johnxnguyen/Down/graphs/contributors) 🙌 + +### Installation + +Note: Swift support is summarized in the table below. + +|Swift Version|Tag| +| --- | --- | +| Swift 5.1 | >= 0.9.0 | +| Swift 5.0 | >= 0.8.1 | +| Swift 4 | >= 0.4.x | +| Swift 3 | 0.3.x | + + now on the `master` branch and any tag >= 0.8.1 (Swift 4 is >= 0.4.x, Swift 3 is 0.3.x) + +#### Quickly install using [CocoaPods](https://cocoapods.org): + +```ruby +pod 'Down' +``` + +#### Install using [Carthage](https://github.com/Carthage/Carthage): + +``` +github "johnxnguyen/Down" +``` +Due to limitations in Carthage regarding platform specification, you need to define the platform with Carthage. + +e.g. + +```carthage update --platform iOS``` + +#### Install using [Swift Package Manager](https://github.com/apple/swift-package-manager): + +To add *Down* to your project, select `File → Swift Packages → Add Package Dependency` and enter the GitHub URL for *Down*. +See [Adding Package Dependencies to Your App](https://developer.apple.com/documentation/xcode/adding_package_dependencies_to_your_app) for detailed instructions. + +#### Or manually install: + +1. Clone this repository +2. Drag and drop the Down project into your workspace file, adding the framework in the embedded framework section +2. Build and run your app +4. ? +5. Profit + +### Robust Performance + +>[cmark](https://github.com/commonmark/cmark) can render a Markdown version of War and Peace in the blink of an eye (127 milliseconds on a ten year old laptop, vs. 100-400 milliseconds for an eye blink). In our [benchmarks](https://github.com/commonmark/cmark/blob/master/benchmarks.md), cmark is 10,000 times faster than the original Markdown.pl, and on par with the very fastest available Markdown processors. + +> The library has been extensively fuzz-tested using [american fuzzy lop](http://lcamtuf.coredump.cx/afl). The test suite includes pathological cases that bring many other Markdown parsers to a crawl (for example, thousands-deep nested bracketed text or block quotes). + +### Output Formats +* Web View (see DownView class) +* HTML +* XML +* LaTeX +* groff man +* CommonMark Markdown +* NSAttributedString +* AST (abstract syntax tree) + +### View Rendering + +The `DownView` class offers a very simple way to parse a UTF-8 encoded string with Markdown and convert it to a web view that can be added to any view: + +```swift +let downView = try? DownView(frame: self.view.bounds, markdownString: "**Oh Hai**") { + // Optional callback for loading finished +} +// Now add to view or constrain w/ Autolayout +// Or you could optionally update the contents at some point: +try? downView?.update(markdownString: "## [Google](https://google.com)") { + // Optional callback for loading finished +} +``` + +Meta example of rendering this README: + +![Example gif](Images/ohhai.gif) + +### Parsing API + +The `Down` struct has everything you need if you just want out-of-the-box setup for parsing and conversion. + +```swift +let down = Down(markdownString: "## [Down](https://github.com/johnxnguyen/Down)") + +// Convert to HTML +let html = try? down.toHTML() +// "

Down

\n" + +// Convert to XML +let xml = try? down.toXML() +// "\n\n\n \n \n Down\n \n \n\n" + +// Convert to groff man +let man = try? down.toGroff() +// ".SS\nDown (https://github.com/johnxnguyen/Down)\n" + +// Convert to LaTeX +let latex = try? down.toLaTeX() +// "\\subsection{\\href{https://github.com/johnxnguyen/Down}{Down}}\n" + +// Convert to CommonMark Markdown +let commonMark = try? down.toCommonMark() +// "## [Down](https://github.com/johnxnguyen/Down)\n" + +// Convert to an attributed string +let attributedString = try? down.toAttributedString() +// NSAttributedString representation of the rendered HTML; +// by default, uses a stylesheet that matches NSAttributedString's default font, +// but you can override this by passing in your own, using the 'stylesheet:' parameter. + +// Convert to abstract syntax tree +let ast = try? down.toAST() +// Returns pointer to AST that you can manipulate + +``` + +### Rendering Granularity + +If you'd like more granularity for the output types you want to support, you can create your own struct conforming to at least one of the renderable protocols: + +* DownHTMLRenderable +* DownXMLRenderable +* DownLaTeXRenderable +* DownGroffRenderable +* DownCommonMarkRenderable +* DownASTRenderable +* DownAttributedStringRenderable + +Example: + +```swift +public struct MarkdownToHTML: DownHTMLRenderable { + /** + A string containing CommonMark Markdown + */ + public var markdownString: String + + /** + Initializes the container with a CommonMark Markdown string which can then be rendered as HTML using `toHTML()` + + - parameter markdownString: A string containing CommonMark Markdown + + - returns: An instance of Self + */ + @warn_unused_result + public init(markdownString: String) { + self.markdownString = markdownString + } +} +``` + +### Configuration of `DownView` + +`DownView` can be configured with a custom bundle using your own HTML / CSS or to do things like supporting +Dynamic Type or custom fonts, etc. It's completely configurable. + +This option can be found in [DownView's instantiation function](https://github.com/johnxnguyen/Down/blob/master/Source/Views/DownView.swift#L26). + +##### Prevent zoom + +The default implementation of the `DownView` allows for zooming in the rendered content. If you want to disable this, then you’ll need to instantiate the `DownView` with a custom bundle where the `viewport` in `index.html` has been assigned `user-scalable=no`. More info can be found [here](https://github.com/johnxnguyen/Down/pull/30). + +### Options + +Each protocol has options that will influence either rendering or parsing: + +```swift +/** + Default options +*/ +public static let `default` = DownOptions(rawValue: 0) + +// MARK: - Rendering Options + +/** + Include a `data-sourcepos` attribute on all block elements +*/ +public static let sourcePos = DownOptions(rawValue: 1 << 1) + +/** + Render `softbreak` elements as hard line breaks. +*/ +public static let hardBreaks = DownOptions(rawValue: 1 << 2) + +/** + Suppress raw HTML and unsafe links (`javascript:`, `vbscript:`, + `file:`, and `data:`, except for `image/png`, `image/gif`, + `image/jpeg`, or `image/webp` mime types). Raw HTML is replaced + by a placeholder HTML comment. Unsafe links are replaced by + empty strings. Note that this option is provided for backwards + compatibility, but safe mode is now the default. +*/ +public static let safe = DownOptions(rawValue: 1 << 3) + +/** + Allow raw HTML and unsafe links. Note that safe mode is now + the default, and the unsafe option must be used if rendering + of raw HTML and unsafe links is desired. +*/ +public static let unsafe = DownOptions(rawValue: 1 << 17) + +// MARK: - Parsing Options + +/** + Normalize tree by consolidating adjacent text nodes. +*/ +public static let normalize = DownOptions(rawValue: 1 << 4) + +/** + Validate UTF-8 in the input before parsing, replacing illegal + sequences with the replacement character U+FFFD. +*/ +public static let validateUTF8 = DownOptions(rawValue: 1 << 5) + +/** + Convert straight quotes to curly, --- to em dashes, -- to en dashes. +*/ +public static let smart = DownOptions(rawValue: 1 << 6) + +/** + Combine smart typography with HTML rendering. +*/ +public static let smartUnsaFe = DownOptions(rawValue: (1 << 17) + (1 << 6)) +``` + +### Supports +Swift; iOS 9+, tvOS 9+, macOS 10.11+ + +### Markdown Specification + +Down is built upon the [CommonMark](http://commonmark.org) specification. + +### A little help from my friends +Please feel free to fork and create a pull request for bug fixes or improvements, being sure to maintain the general coding style, adding tests, and adding comments as necessary. + +### Credit +This library is a wrapper around [cmark](https://github.com/commonmark/cmark), which is built upon the [CommonMark](http://commonmark.org) Markdown specification. + +[cmark](https://github.com/commonmark/cmark) is Copyright (c) 2014, John MacFarlane. View [full license](https://github.com/commonmark/cmark/blob/master/COPYING). diff --git a/Example/Pods/Down/Source/AST/Nodes/BaseNode.swift b/Example/Pods/Down/Source/AST/Nodes/BaseNode.swift new file mode 100644 index 000000000..87aba1e78 --- /dev/null +++ b/Example/Pods/Down/Source/AST/Nodes/BaseNode.swift @@ -0,0 +1,33 @@ +// +// BaseNode.swift +// Down +// +// Created by John Nguyen on 21.04.19. +// +// + +import Foundation +import libcmark + +public class BaseNode: Node { + + public let cmarkNode: CMarkNode + + public private(set) lazy var children: [Node] = Array(childSequence) + + public private(set) lazy var nestDepth: Int = { + var depth = 0 + var next = cmarkNode.parent + + while let current = next { + depth += current.type == cmarkNode.type ? 1 : 0 + next = current.parent + } + return depth + }() + + init(cmarkNode: CMarkNode) { + self.cmarkNode = cmarkNode + } + +} diff --git a/Example/Pods/Down/Source/AST/Nodes/BlockQuote.swift b/Example/Pods/Down/Source/AST/Nodes/BlockQuote.swift new file mode 100644 index 000000000..2152f7b83 --- /dev/null +++ b/Example/Pods/Down/Source/AST/Nodes/BlockQuote.swift @@ -0,0 +1,20 @@ +// +// BlockQuote.swift +// Down +// +// Created by John Nguyen on 09.04.19. +// + +import Foundation +import libcmark + +public class BlockQuote: BaseNode {} + +// MARK: - Debug + +extension BlockQuote: CustomDebugStringConvertible { + + public var debugDescription: String { + return "Block Quote" + } +} diff --git a/Example/Pods/Down/Source/AST/Nodes/ChildSequence.swift b/Example/Pods/Down/Source/AST/Nodes/ChildSequence.swift new file mode 100644 index 000000000..d306c9ad1 --- /dev/null +++ b/Example/Pods/Down/Source/AST/Nodes/ChildSequence.swift @@ -0,0 +1,34 @@ +// +// ChildSequence.swift +// Down +// +// Created by Sven Weidauer on 05.10.2020 +// + +import libcmark + +/// Sequence of child nodes +public struct ChildSequence: Sequence { + let node: CMarkNode + + public struct Iterator: IteratorProtocol { + var node: CMarkNode? + + public mutating func next() -> Node? { + guard let node = node else { return nil } + defer { self.node = cmark_node_next(node) } + + guard let result = node.wrap() else { + assertionFailure("Couldn't wrap node of type: \(node.type)") + return nil + } + + return result + } + } + + public func makeIterator() -> Iterator { + return Iterator(node: cmark_node_first_child(node)) + } +} + diff --git a/Example/Pods/Down/Source/AST/Nodes/Code.swift b/Example/Pods/Down/Source/AST/Nodes/Code.swift new file mode 100644 index 000000000..da2b9e516 --- /dev/null +++ b/Example/Pods/Down/Source/AST/Nodes/Code.swift @@ -0,0 +1,25 @@ +// +// Code.swift +// Down +// +// Created by John Nguyen on 09.04.19. +// + +import Foundation +import libcmark + +public class Code: BaseNode { + + /// The code content, if present. + public private(set) lazy var literal: String? = cmarkNode.literal + +} + +// MARK: - Debug + +extension Code: CustomDebugStringConvertible { + + public var debugDescription: String { + return "Code - \(literal ?? "nil")" + } +} diff --git a/Example/Pods/Down/Source/AST/Nodes/CodeBlock.swift b/Example/Pods/Down/Source/AST/Nodes/CodeBlock.swift new file mode 100644 index 000000000..2ee306a4a --- /dev/null +++ b/Example/Pods/Down/Source/AST/Nodes/CodeBlock.swift @@ -0,0 +1,39 @@ +// +// CodeBlock.swift +// Down +// +// Created by John Nguyen on 09.04.19. +// + +import Foundation +import libcmark + +public class CodeBlock: BaseNode { + + /// The code content, if present. + public private(set) lazy var literal: String? = cmarkNode.literal + + /// The fence info is an optional string that trails the opening sequence of backticks. + /// It can be used to provide some contextual information about the block, such as + /// the name of a programming language. + /// + /// For example: + /// ``` + /// ''' + /// + /// ''' + /// ``` + /// + public private(set) lazy var fenceInfo: String? = cmarkNode.fenceInfo + +} + +// MARK: - Debug + +extension CodeBlock: CustomDebugStringConvertible { + + public var debugDescription: String { + let content = (literal ?? "nil").replacingOccurrences(of: "\n", with: "\\n") + return "Code Block - fenceInfo: \(fenceInfo ?? "nil"), content: \(content)" + } +} diff --git a/Example/Pods/Down/Source/AST/Nodes/CustomBlock.swift b/Example/Pods/Down/Source/AST/Nodes/CustomBlock.swift new file mode 100644 index 000000000..2ea85db98 --- /dev/null +++ b/Example/Pods/Down/Source/AST/Nodes/CustomBlock.swift @@ -0,0 +1,25 @@ +// +// CustomBlock.swift +// Down +// +// Created by John Nguyen on 09.04.19. +// + +import Foundation +import libcmark + +public class CustomBlock: BaseNode { + + /// The custom content, if present. + public private(set) lazy var literal: String? = cmarkNode.literal + +} + +// MARK: - Debug + +extension CustomBlock: CustomDebugStringConvertible { + + public var debugDescription: String { + return "Custom Block - \(literal ?? "nil")" + } +} diff --git a/Example/Pods/Down/Source/AST/Nodes/CustomInline.swift b/Example/Pods/Down/Source/AST/Nodes/CustomInline.swift new file mode 100644 index 000000000..ac524c68d --- /dev/null +++ b/Example/Pods/Down/Source/AST/Nodes/CustomInline.swift @@ -0,0 +1,24 @@ +// +// CustomInline.swift +// Down +// +// Created by John Nguyen on 09.04.19. +// + +import Foundation +import libcmark + +public class CustomInline: BaseNode { + + /// The custom content, if present. + public private(set) lazy var literal: String? = cmarkNode.literal +} + +// MARK: - Debug + +extension CustomInline: CustomDebugStringConvertible { + + public var debugDescription: String { + return "Custom Inline - \(literal ?? "nil")" + } +} diff --git a/Example/Pods/Down/Source/AST/Nodes/Document.swift b/Example/Pods/Down/Source/AST/Nodes/Document.swift new file mode 100644 index 000000000..747513f3a --- /dev/null +++ b/Example/Pods/Down/Source/AST/Nodes/Document.swift @@ -0,0 +1,34 @@ +// +// Document.swift +// Down +// +// Created by John Nguyen on 09.04.19. +// + +import Foundation +import libcmark + +public class Document: BaseNode { + + deinit { + // Frees the node and all its children. + cmark_node_free(cmarkNode) + } + + /// Accepts the given visitor and return its result. + @discardableResult + public func accept(_ visitor: T) -> T.Result { + return visitor.visit(document: self) + } + +} + + +// MARK: - Debug + +extension Document: CustomDebugStringConvertible { + + public var debugDescription: String { + return "Document" + } +} diff --git a/Example/Pods/Down/Source/AST/Nodes/Emphasis.swift b/Example/Pods/Down/Source/AST/Nodes/Emphasis.swift new file mode 100644 index 000000000..518f29f17 --- /dev/null +++ b/Example/Pods/Down/Source/AST/Nodes/Emphasis.swift @@ -0,0 +1,20 @@ +// +// Emphasis.swift +// Down +// +// Created by John Nguyen on 09.04.19. +// + +import Foundation +import libcmark + +public class Emphasis: BaseNode {} + +// MARK: - Debug + +extension Emphasis: CustomDebugStringConvertible { + + public var debugDescription: String { + return "Emphasis" + } +} diff --git a/Example/Pods/Down/Source/AST/Nodes/Heading.swift b/Example/Pods/Down/Source/AST/Nodes/Heading.swift new file mode 100644 index 000000000..0c4df7b97 --- /dev/null +++ b/Example/Pods/Down/Source/AST/Nodes/Heading.swift @@ -0,0 +1,24 @@ +// +// Heading.swift +// Down +// +// Created by John Nguyen on 09.04.19. +// + +import Foundation +import libcmark + +public class Heading: BaseNode { + + /// The level of the heading, a value between 1 and 6. + public private(set) lazy var headingLevel: Int = cmarkNode.headingLevel +} + +// MARK: - Debug + +extension Heading: CustomDebugStringConvertible { + + public var debugDescription: String { + return "Heading - L\(headingLevel)" + } +} diff --git a/Example/Pods/Down/Source/AST/Nodes/HtmlBlock.swift b/Example/Pods/Down/Source/AST/Nodes/HtmlBlock.swift new file mode 100644 index 000000000..181c5ea29 --- /dev/null +++ b/Example/Pods/Down/Source/AST/Nodes/HtmlBlock.swift @@ -0,0 +1,26 @@ +// +// HtmlBlock.swift +// Down +// +// Created by John Nguyen on 09.04.19. +// + +import Foundation +import libcmark + +public class HtmlBlock: BaseNode { + + /// The html content, if present. + public private(set) lazy var literal: String? = cmarkNode.literal + +} + +// MARK: - Debug + +extension HtmlBlock: CustomDebugStringConvertible { + + public var debugDescription: String { + let content = (literal ?? "nil").replacingOccurrences(of: "\n", with: "\\n") + return "Html Block - content: \(content)" + } +} diff --git a/Example/Pods/Down/Source/AST/Nodes/HtmlInline.swift b/Example/Pods/Down/Source/AST/Nodes/HtmlInline.swift new file mode 100644 index 000000000..c5be36c7f --- /dev/null +++ b/Example/Pods/Down/Source/AST/Nodes/HtmlInline.swift @@ -0,0 +1,25 @@ +// +// HtmlInline.swift +// Down +// +// Created by John Nguyen on 09.04.19. +// + +import Foundation +import libcmark + +public class HtmlInline: BaseNode { + + /// The html tag, if present. + public private(set) lazy var literal: String? = cmarkNode.literal + +} + +// MARK: - Debug + +extension HtmlInline: CustomDebugStringConvertible { + + public var debugDescription: String { + return "Html Inline - \(literal ?? "nil")" + } +} diff --git a/Example/Pods/Down/Source/AST/Nodes/Image.swift b/Example/Pods/Down/Source/AST/Nodes/Image.swift new file mode 100644 index 000000000..07c57f078 --- /dev/null +++ b/Example/Pods/Down/Source/AST/Nodes/Image.swift @@ -0,0 +1,46 @@ +// +// Image.swift +// Down +// +// Created by John Nguyen on 09.04.19. +// + +import Foundation +import libcmark + +public class Image: BaseNode { + + /// The title of the image, if present. + /// + /// In the example below, the first line is a reference link, with the reference at the + /// bottom. `` is literal text belonging to children nodes. The title occurs + /// after the url and is optional. + /// + /// ``` + /// ![][] + /// ... + /// []: "" + /// ``` + /// + public private(set) lazy var title: String? = cmarkNode.title + + /// The url of the image, if present. + /// + /// For example: + /// + /// ``` + /// ![<text>](<url>) + /// ``` + /// + public private(set) lazy var url: String? = cmarkNode.url + +} + +// MARK: - Debug + +extension Image: CustomDebugStringConvertible { + + public var debugDescription: String { + return "Image - title: \(title ?? "nil"), url: \(url ?? "nil"))" + } +} diff --git a/Example/Pods/Down/Source/AST/Nodes/Item.swift b/Example/Pods/Down/Source/AST/Nodes/Item.swift new file mode 100644 index 000000000..272592c1d --- /dev/null +++ b/Example/Pods/Down/Source/AST/Nodes/Item.swift @@ -0,0 +1,20 @@ +// +// Item.swift +// Down +// +// Created by John Nguyen on 09.04.19. +// + +import Foundation +import libcmark + +public class Item: BaseNode {} + +// MARK: - Debug + +extension Item: CustomDebugStringConvertible { + + public var debugDescription: String { + return "Item" + } +} diff --git a/Example/Pods/Down/Source/AST/Nodes/LineBreak.swift b/Example/Pods/Down/Source/AST/Nodes/LineBreak.swift new file mode 100644 index 000000000..675227e3f --- /dev/null +++ b/Example/Pods/Down/Source/AST/Nodes/LineBreak.swift @@ -0,0 +1,20 @@ +// +// LineBreak.swift +// Down +// +// Created by John Nguyen on 09.04.19. +// + +import Foundation +import libcmark + +public class LineBreak: BaseNode {} + +// MARK: - Debug + +extension LineBreak: CustomDebugStringConvertible { + + public var debugDescription: String { + return "Line Break" + } +} diff --git a/Example/Pods/Down/Source/AST/Nodes/Link.swift b/Example/Pods/Down/Source/AST/Nodes/Link.swift new file mode 100644 index 000000000..84a1758dc --- /dev/null +++ b/Example/Pods/Down/Source/AST/Nodes/Link.swift @@ -0,0 +1,46 @@ +// +// Link.swift +// Down +// +// Created by John Nguyen on 09.04.19. +// + +import Foundation +import libcmark + +public class Link: BaseNode { + + /// The title of the link, if present. + /// + /// In the example below, the first line is a reference link, with the reference at the + /// bottom. `<text>` is literal text belonging to children nodes. The title occurs + /// after the url and is optional. + /// + /// ``` + /// [<text>][<id>] + /// ... + /// [<id>]: <url> "<title>" + /// ``` + /// + public private(set) lazy var title: String? = cmarkNode.title + + /// The url of the link, if present. + /// + /// For example: + /// + /// ``` + /// [<text>](<url>) + /// ``` + /// + public private(set) lazy var url: String? = cmarkNode.url + +} + +// MARK: - Debug + +extension Link: CustomDebugStringConvertible { + + public var debugDescription: String { + return "Link - title: \(title ?? "nil"), url: \(url ?? "nil"))" + } +} diff --git a/Example/Pods/Down/Source/AST/Nodes/List.swift b/Example/Pods/Down/Source/AST/Nodes/List.swift new file mode 100644 index 000000000..37c3a8897 --- /dev/null +++ b/Example/Pods/Down/Source/AST/Nodes/List.swift @@ -0,0 +1,66 @@ +// +// List.swift +// Down +// +// Created by John Nguyen on 09.04.19. +// + +import Foundation +import libcmark + +public class List: BaseNode { + + /// The type of the list, either bullet or ordered. + public lazy var listType: ListType = { + guard let type = ListType(cmarkNode: cmarkNode) else { + assertionFailure("Unsupported or missing list type. Defaulting to .bullet.") + return .bullet + } + + return type + }() + + /// The number of items in the list. + public lazy var numberOfItems: Int = children.count + + /// Whether the list is "tight". + /// + /// If any of the list items are separated by a blank line, then this property is `false`. This value is + /// a hint to render the list with more (loose) or less (tight) spacing between items. + + public lazy var isTight: Bool = cmark_node_get_list_tight(cmarkNode) == 1 +} + +// MARK: - List Type + +public extension List { + + enum ListType: CustomDebugStringConvertible { + case bullet + case ordered(start: Int) + + public var debugDescription: String { + switch self { + case .bullet: return "Bullet" + case .ordered(let start): return "Ordered (start: \(start))" + } + } + + init?(cmarkNode: CMarkNode) { + switch cmarkNode.listType { + case CMARK_BULLET_LIST: self = .bullet + case CMARK_ORDERED_LIST: self = .ordered(start: cmarkNode.listStart) + default: return nil + } + } + } +} + +// MARK: - Debug + +extension List: CustomDebugStringConvertible { + + public var debugDescription: String { + return "List - type: \(listType), isTight: \(isTight)" + } +} diff --git a/Example/Pods/Down/Source/AST/Nodes/Node.swift b/Example/Pods/Down/Source/AST/Nodes/Node.swift new file mode 100644 index 000000000..947c2cd78 --- /dev/null +++ b/Example/Pods/Down/Source/AST/Nodes/Node.swift @@ -0,0 +1,111 @@ +// +// Node.swift +// Down +// +// Created by John Nguyen on 07.04.19. +// + +import Foundation +import libcmark + +/// A node is a wrapper of a raw `CMarkNode` belonging to the abstract syntax tree +/// generated by cmark. +public protocol Node { + /// The wrapped node. + var cmarkNode: CMarkNode { get } + + /// The wrapped child nodes. + var children: [Node] { get } +} + +public extension Node { + /// True iff the node has a sibling that succeeds it. + var hasSuccessor: Bool { + return cmark_node_next(cmarkNode) != nil + } + + /// Sequence of wrapped child nodes. + var childSequence: ChildSequence { + return ChildSequence(node: cmarkNode) + } +} + +// MARK: - Helper extensions + +public typealias CMarkNode = UnsafeMutablePointer<cmark_node> + +public extension UnsafeMutablePointer where Pointee == cmark_node { + + /// Wraps the cmark node referred to by this pointer. + func wrap() -> Node? { + switch type { + case CMARK_NODE_DOCUMENT: return Document(cmarkNode: self) + case CMARK_NODE_BLOCK_QUOTE: return BlockQuote(cmarkNode: self) + case CMARK_NODE_LIST: return List(cmarkNode: self) + case CMARK_NODE_ITEM: return Item(cmarkNode: self) + case CMARK_NODE_CODE_BLOCK: return CodeBlock(cmarkNode: self) + case CMARK_NODE_HTML_BLOCK: return HtmlBlock(cmarkNode: self) + case CMARK_NODE_CUSTOM_BLOCK: return CustomBlock(cmarkNode: self) + case CMARK_NODE_PARAGRAPH: return Paragraph(cmarkNode: self) + case CMARK_NODE_HEADING: return Heading(cmarkNode: self) + case CMARK_NODE_THEMATIC_BREAK: return ThematicBreak(cmarkNode: self) + case CMARK_NODE_TEXT: return Text(cmarkNode: self) + case CMARK_NODE_SOFTBREAK: return SoftBreak(cmarkNode: self) + case CMARK_NODE_LINEBREAK: return LineBreak(cmarkNode: self) + case CMARK_NODE_CODE: return Code(cmarkNode: self) + case CMARK_NODE_HTML_INLINE: return HtmlInline(cmarkNode: self) + case CMARK_NODE_CUSTOM_INLINE: return CustomInline(cmarkNode: self) + case CMARK_NODE_EMPH: return Emphasis(cmarkNode: self) + case CMARK_NODE_STRONG: return Strong(cmarkNode: self) + case CMARK_NODE_LINK: return Link(cmarkNode: self) + case CMARK_NODE_IMAGE: return Image(cmarkNode: self) + default: return nil + } + } + + var parent: CMarkNode? { + return cmark_node_parent(self) + } + + var type: cmark_node_type { + return cmark_node_get_type(self) + } + + var literal: String? { + return String(cString: cmark_node_get_literal(self)) + } + + var fenceInfo: String? { + return String(cString: cmark_node_get_fence_info(self)) + } + + var headingLevel: Int { + return Int(cmark_node_get_heading_level(self)) + } + + var listType: cmark_list_type { + return cmark_node_get_list_type(self) + } + + var listStart: Int { + return Int(cmark_node_get_list_start(self)) + } + + var url: String? { + return String(cString: cmark_node_get_url(self)) + } + + var title: String? { + return String(cString: cmark_node_get_title(self)) + } +} + +private extension String { + + init?(cString: UnsafePointer<Int8>?) { + guard let unwrapped = cString else { return nil } + let result = String(cString: unwrapped) + guard !result.isEmpty else { return nil } + self = result + } +} diff --git a/Example/Pods/Down/Source/AST/Nodes/Paragraph.swift b/Example/Pods/Down/Source/AST/Nodes/Paragraph.swift new file mode 100644 index 000000000..d710d6afa --- /dev/null +++ b/Example/Pods/Down/Source/AST/Nodes/Paragraph.swift @@ -0,0 +1,20 @@ +// +// Paragraph.swift +// Down +// +// Created by John Nguyen on 09.04.19. +// + +import Foundation +import libcmark + +public class Paragraph: BaseNode {} + +// MARK: - Debug + +extension Paragraph: CustomDebugStringConvertible { + + public var debugDescription: String { + return "Paragraph" + } +} diff --git a/Example/Pods/Down/Source/AST/Nodes/SoftBreak.swift b/Example/Pods/Down/Source/AST/Nodes/SoftBreak.swift new file mode 100644 index 000000000..1c61f4e9f --- /dev/null +++ b/Example/Pods/Down/Source/AST/Nodes/SoftBreak.swift @@ -0,0 +1,20 @@ +// +// SoftBreak.swift +// Down +// +// Created by John Nguyen on 09.04.19. +// + +import Foundation +import libcmark + +public class SoftBreak: BaseNode {} + +// MARK: - Debug + +extension SoftBreak: CustomDebugStringConvertible { + + public var debugDescription: String { + return "Soft Break" + } +} diff --git a/Example/Pods/Down/Source/AST/Nodes/Strong.swift b/Example/Pods/Down/Source/AST/Nodes/Strong.swift new file mode 100644 index 000000000..74ab339cb --- /dev/null +++ b/Example/Pods/Down/Source/AST/Nodes/Strong.swift @@ -0,0 +1,20 @@ +// +// Strong.swift +// Down +// +// Created by John Nguyen on 09.04.19. +// + +import Foundation +import libcmark + +public class Strong: BaseNode {} + +// MARK: - Debug + +extension Strong: CustomDebugStringConvertible { + + public var debugDescription: String { + return "Strong" + } +} diff --git a/Example/Pods/Down/Source/AST/Nodes/Text.swift b/Example/Pods/Down/Source/AST/Nodes/Text.swift new file mode 100644 index 000000000..dd8bb55c1 --- /dev/null +++ b/Example/Pods/Down/Source/AST/Nodes/Text.swift @@ -0,0 +1,25 @@ +// +// Text.swift +// Down +// +// Created by John Nguyen on 09.04.19. +// + +import Foundation +import libcmark + +public class Text: BaseNode { + + /// The text content, if present. + public private(set) lazy var literal: String? = cmarkNode.literal + +} + +// MARK: - Debug + +extension Text: CustomDebugStringConvertible { + + public var debugDescription: String { + return "Text - \(literal ?? "nil")" + } +} diff --git a/Example/Pods/Down/Source/AST/Nodes/ThematicBreak.swift b/Example/Pods/Down/Source/AST/Nodes/ThematicBreak.swift new file mode 100644 index 000000000..df20d7959 --- /dev/null +++ b/Example/Pods/Down/Source/AST/Nodes/ThematicBreak.swift @@ -0,0 +1,20 @@ +// +// ThematicBreak.swift +// Down +// +// Created by John Nguyen on 09.04.19. +// + +import Foundation +import libcmark + +public class ThematicBreak: BaseNode {} + +// MARK: - Debug + +extension ThematicBreak: CustomDebugStringConvertible { + + public var debugDescription: String { + return "Thematic Break" + } +} diff --git a/Example/Pods/Down/Source/AST/Styling/Attribute Collections/ColorCollection.swift b/Example/Pods/Down/Source/AST/Styling/Attribute Collections/ColorCollection.swift new file mode 100644 index 000000000..16d05776e --- /dev/null +++ b/Example/Pods/Down/Source/AST/Styling/Attribute Collections/ColorCollection.swift @@ -0,0 +1,91 @@ +// +// ColorCollection.swift +// Down +// +// Created by John Nguyen on 27.07.19. +// Copyright © 2016-2019 Down. All rights reserved. +// + +#if !os(watchOS) && !os(Linux) + +#if canImport(UIKit) + +import UIKit +public typealias DownColor = UIColor + +#elseif canImport(AppKit) + +import AppKit +public typealias DownColor = NSColor + +#endif + +public protocol ColorCollection { + + var heading1: DownColor { get } + var heading2: DownColor { get } + var heading3: DownColor { get } + var heading4: DownColor { get } + var heading5: DownColor { get } + var heading6: DownColor { get } + var body: DownColor { get } + var code: DownColor { get } + var link: DownColor { get } + var quote: DownColor { get } + var quoteStripe: DownColor { get } + var thematicBreak: DownColor { get } + var listItemPrefix: DownColor { get } + var codeBlockBackground: DownColor { get } +} + +public struct StaticColorCollection: ColorCollection { + + public var heading1: DownColor + public var heading2: DownColor + public var heading3: DownColor + public var heading4: DownColor + public var heading5: DownColor + public var heading6: DownColor + public var body: DownColor + public var code: DownColor + public var link: DownColor + public var quote: DownColor + public var quoteStripe: DownColor + public var thematicBreak: DownColor + public var listItemPrefix: DownColor + public var codeBlockBackground: DownColor + + public init( + heading1: DownColor = .black, + heading2: DownColor = .black, + heading3: DownColor = .black, + heading4: DownColor = .black, + heading5: DownColor = .black, + heading6: DownColor = .black, + body: DownColor = .black, + code: DownColor = .black, + link: DownColor = .blue, + quote: DownColor = .darkGray, + quoteStripe: DownColor = .darkGray, + thematicBreak: DownColor = .init(white: 0.9, alpha: 1), + listItemPrefix: DownColor = .lightGray, + codeBlockBackground: DownColor = .init(red: 0.96, green: 0.97, blue: 0.98, alpha: 1) + ) { + self.heading1 = heading1 + self.heading2 = heading2 + self.heading3 = heading3 + self.heading4 = heading4 + self.heading5 = heading5 + self.heading6 = heading6 + self.body = body + self.code = code + self.link = link + self.quote = quote + self.quoteStripe = quoteStripe + self.thematicBreak = thematicBreak + self.listItemPrefix = listItemPrefix + self.codeBlockBackground = codeBlockBackground + } +} + +#endif diff --git a/Example/Pods/Down/Source/AST/Styling/Attribute Collections/FontCollection.swift b/Example/Pods/Down/Source/AST/Styling/Attribute Collections/FontCollection.swift new file mode 100644 index 000000000..26ef66d61 --- /dev/null +++ b/Example/Pods/Down/Source/AST/Styling/Attribute Collections/FontCollection.swift @@ -0,0 +1,71 @@ +// +// FontCollection.swift +// Down +// +// Created by John Nguyen on 22.06.19. +// Copyright © 2016-2019 Down. All rights reserved. +// + +#if !os(watchOS) && !os(Linux) + +#if canImport(UIKit) + +import UIKit +public typealias DownFont = UIFont + +#elseif canImport(AppKit) + +import AppKit +public typealias DownFont = NSFont + +#endif + +public protocol FontCollection { + + var heading1: DownFont { get } + var heading2: DownFont { get } + var heading3: DownFont { get } + var heading4: DownFont { get } + var heading5: DownFont { get } + var heading6: DownFont { get } + var body: DownFont { get } + var code: DownFont { get } + var listItemPrefix: DownFont { get } +} + +public struct StaticFontCollection: FontCollection { + + public var heading1: DownFont + public var heading2: DownFont + public var heading3: DownFont + public var heading4: DownFont + public var heading5: DownFont + public var heading6: DownFont + public var body: DownFont + public var code: DownFont + public var listItemPrefix: DownFont + + public init( + heading1: DownFont = .boldSystemFont(ofSize: 28), + heading2: DownFont = .boldSystemFont(ofSize: 24), + heading3: DownFont = .boldSystemFont(ofSize: 20), + heading4: DownFont = .boldSystemFont(ofSize: 20), + heading5: DownFont = .boldSystemFont(ofSize: 20), + heading6: DownFont = .boldSystemFont(ofSize: 20), + body: DownFont = .systemFont(ofSize: 17), + code: DownFont = DownFont(name: "menlo", size: 17) ?? .systemFont(ofSize: 17), + listItemPrefix: DownFont = DownFont.monospacedDigitSystemFont(ofSize: 17, weight: .regular) + ) { + self.heading1 = heading1 + self.heading2 = heading2 + self.heading3 = heading3 + self.heading4 = heading4 + self.heading5 = heading5 + self.heading6 = heading6 + self.body = body + self.code = code + self.listItemPrefix = listItemPrefix + } +} + +#endif diff --git a/Example/Pods/Down/Source/AST/Styling/Attribute Collections/ParagraphStyleCollection.swift b/Example/Pods/Down/Source/AST/Styling/Attribute Collections/ParagraphStyleCollection.swift new file mode 100644 index 000000000..808bcc106 --- /dev/null +++ b/Example/Pods/Down/Source/AST/Styling/Attribute Collections/ParagraphStyleCollection.swift @@ -0,0 +1,68 @@ +// +// ParagraphStyleCollection.swift +// Down +// +// Created by John Nguyen on 27.07.19. +// Copyright © 2016-2019 Down. All rights reserved. +// + +#if !os(watchOS) && !os(Linux) + +#if canImport(UIKit) + +import UIKit + +#elseif canImport(AppKit) + +import AppKit + +#endif + +public protocol ParagraphStyleCollection { + + var heading1: NSParagraphStyle { get } + var heading2: NSParagraphStyle { get } + var heading3: NSParagraphStyle { get } + var heading4: NSParagraphStyle { get } + var heading5: NSParagraphStyle { get } + var heading6: NSParagraphStyle { get } + var body: NSParagraphStyle { get } + var code: NSParagraphStyle { get } +} + +public struct StaticParagraphStyleCollection: ParagraphStyleCollection { + + public var heading1: NSParagraphStyle + public var heading2: NSParagraphStyle + public var heading3: NSParagraphStyle + public var heading4: NSParagraphStyle + public var heading5: NSParagraphStyle + public var heading6: NSParagraphStyle + public var body: NSParagraphStyle + public var code: NSParagraphStyle + + public init() { + let headingStyle = NSMutableParagraphStyle() + headingStyle.paragraphSpacing = 8 + + let bodyStyle = NSMutableParagraphStyle() + bodyStyle.paragraphSpacingBefore = 8 + bodyStyle.paragraphSpacing = 8 + bodyStyle.lineSpacing = 8 + + let codeStyle = NSMutableParagraphStyle() + codeStyle.paragraphSpacingBefore = 8 + codeStyle.paragraphSpacing = 8 + + heading1 = headingStyle + heading2 = headingStyle + heading3 = headingStyle + heading4 = headingStyle + heading5 = headingStyle + heading6 = headingStyle + body = bodyStyle + code = codeStyle + } +} + +#endif diff --git a/Example/Pods/Down/Source/AST/Styling/Custom Attributes/BlockBackgroundColorAttribute.swift b/Example/Pods/Down/Source/AST/Styling/Custom Attributes/BlockBackgroundColorAttribute.swift new file mode 100644 index 000000000..d5ff2f760 --- /dev/null +++ b/Example/Pods/Down/Source/AST/Styling/Custom Attributes/BlockBackgroundColorAttribute.swift @@ -0,0 +1,32 @@ +// +// BlockBackgroundColorAttribute.swift +// Down +// +// Created by John Nguyen on 11.08.19. +// Copyright © 2016-2019 Down. All rights reserved. +// + +#if !os(watchOS) && !os(Linux) + +#if canImport(UIKit) + +import UIKit + +#elseif canImport(AppKit) + +import AppKit + +#endif + +struct BlockBackgroundColorAttribute { + + var color: DownColor + var inset: CGFloat +} + +extension NSAttributedString.Key { + + static let blockBackgroundColor = NSAttributedString.Key("blockBackgroundColor") +} + +#endif diff --git a/Example/Pods/Down/Source/AST/Styling/Custom Attributes/QuoteStripeAttribute.swift b/Example/Pods/Down/Source/AST/Styling/Custom Attributes/QuoteStripeAttribute.swift new file mode 100644 index 000000000..e2b2ca226 --- /dev/null +++ b/Example/Pods/Down/Source/AST/Styling/Custom Attributes/QuoteStripeAttribute.swift @@ -0,0 +1,52 @@ +// +// QuoteStripeAttrbute.swift +// Down +// +// Created by John Nguyen on 03.08.19. +// Copyright © 2016-2019 Down. All rights reserved. +// + +#if !os(watchOS) && !os(Linux) + +#if canImport(UIKit) + +import UIKit + +#elseif canImport(AppKit) + +import AppKit + +#endif + +struct QuoteStripeAttribute { + + var color: DownColor + var thickness: CGFloat + var spacingAfter: CGFloat + var locations: [CGFloat] + + var layoutWidth: CGFloat { + return thickness + spacingAfter + } +} + +extension QuoteStripeAttribute { + + init(level: Int, color: DownColor, options: QuoteStripeOptions) { + self.init(color: color, thickness: options.thickness, spacingAfter: options.spacingAfter, locations: []) + locations = (0..<level).map { CGFloat($0) * layoutWidth } + } + + func indented(by indentation: CGFloat) -> QuoteStripeAttribute { + var copy = self + copy.locations = locations.map { $0 + indentation } + return copy + } +} + +extension NSAttributedString.Key { + + static let quoteStripe = NSAttributedString.Key(rawValue: "quoteStripe") +} + +#endif diff --git a/Example/Pods/Down/Source/AST/Styling/Custom Attributes/ThematicBreakAttribute.swift b/Example/Pods/Down/Source/AST/Styling/Custom Attributes/ThematicBreakAttribute.swift new file mode 100644 index 000000000..2c280d60c --- /dev/null +++ b/Example/Pods/Down/Source/AST/Styling/Custom Attributes/ThematicBreakAttribute.swift @@ -0,0 +1,32 @@ +// +// ThematicBreaAttributek.swift +// Down +// +// Created by John Nguyen on 02.08.19. +// Copyright © 2016-2019 Down. All rights reserved. +// + +#if !os(watchOS) && !os(Linux) + +#if canImport(UIKit) + +import UIKit + +#elseif canImport(AppKit) + +import AppKit + +#endif + +struct ThematicBreakAttribute { + + var thickness: CGFloat + var color: DownColor +} + +extension NSAttributedString.Key { + + static let thematicBreak = NSAttributedString.Key(rawValue: "thematicBreak") +} + +#endif diff --git a/Example/Pods/Down/Source/AST/Styling/Helpers/Extensions/CGPoint+Translate.swift b/Example/Pods/Down/Source/AST/Styling/Helpers/Extensions/CGPoint+Translate.swift new file mode 100644 index 000000000..2ecb5a008 --- /dev/null +++ b/Example/Pods/Down/Source/AST/Styling/Helpers/Extensions/CGPoint+Translate.swift @@ -0,0 +1,28 @@ +// +// CGPoint+Translate.swift +// Down +// +// Created by John Nguyen on 12.08.19. +// Copyright © 2016-2019 Down. All rights reserved. +// + +#if !os(Linux) + +#if canImport(UIKit) + +import UIKit + +#elseif canImport(AppKit) + +import AppKit + +#endif + +extension CGPoint { + + func translated(by point: CGPoint) -> CGPoint { + return CGPoint(x: x + point.x, y: y + point.y) + } +} + +#endif diff --git a/Example/Pods/Down/Source/AST/Styling/Helpers/Extensions/CGRect+Helpers.swift b/Example/Pods/Down/Source/AST/Styling/Helpers/Extensions/CGRect+Helpers.swift new file mode 100644 index 000000000..57b2f2c3b --- /dev/null +++ b/Example/Pods/Down/Source/AST/Styling/Helpers/Extensions/CGRect+Helpers.swift @@ -0,0 +1,32 @@ +// +// CGRect+Helpers.swift +// Down +// +// Created by John Nguyen on 12.08.19. +// Copyright © 2016-2019 Down. All rights reserved. +// + +#if !os(Linux) + +#if canImport(UIKit) + +import UIKit + +#elseif canImport(AppKit) + +import AppKit + +#endif + +extension CGRect { + + init(minX: CGFloat, minY: CGFloat, maxX: CGFloat, maxY: CGFloat) { + self.init(x: minX, y: minY, width: maxX - minX, height: maxY - minY) + } + + func translated(by point: CGPoint) -> CGRect { + return CGRect(origin: origin.translated(by: point), size: size) + } +} + +#endif diff --git a/Example/Pods/Down/Source/AST/Styling/Helpers/Extensions/NSAttributedString+Helpers.swift b/Example/Pods/Down/Source/AST/Styling/Helpers/Extensions/NSAttributedString+Helpers.swift new file mode 100644 index 000000000..643f71bb9 --- /dev/null +++ b/Example/Pods/Down/Source/AST/Styling/Helpers/Extensions/NSAttributedString+Helpers.swift @@ -0,0 +1,74 @@ +// +// NSAttributedString+Helpers.swift +// Down +// +// Created by John Nguyen on 22.06.19. +// Copyright © 2016-2019 Down. All rights reserved. +// + +import Foundation + +extension NSAttributedString { + + typealias Attributes = [NSAttributedString.Key: Any] + + var wholeRange: NSRange { + return NSRange(location: 0, length: length) + } + + func ranges(of key: Key) -> [NSRange] { + return ranges(of: key, in: wholeRange) + } + + func ranges(of key: Key, in range: NSRange) -> [NSRange] { + return ranges(for: key, in: range, where: { $0 != nil }) + } + + func rangesMissingAttribute(for key: Key) -> [NSRange] { + return rangesMissingAttribute(for: key, in: wholeRange) + } + + func rangesMissingAttribute(for key: Key, in range: NSRange) -> [NSRange] { + return ranges(for: key, in: range, where: { $0 == nil }) + } + + private func ranges(for key: Key, in range: NSRange, where p: (Any?) -> Bool) -> [NSRange] { + var ranges = [NSRange]() + + enumerateAttribute(key, in: range, options: []) { value, attrRange, _ in + if p(value) { + ranges.append(attrRange) + } + } + + return ranges + } + + func paragraphRanges() -> [NSRange] { + guard length > 0 else { return [] } + + func nextParagraphRange(at location: Int) -> NSRange { + return NSString(string: string).paragraphRange(for: NSRange(location: location, length: 1)) + } + + var result = [nextParagraphRange(at: 0)] + + while let currentLocation = result.last?.upperBound, currentLocation < length { + result.append(nextParagraphRange(at: currentLocation)) + } + + return result.filter { $0.length > 1 } + } + + func enumerateAttributes<A>(for key: Key, block: (_ attr: A, _ range: NSRange) -> Void) { + enumerateAttributes(for: key, in: wholeRange, block: block) + } + + func enumerateAttributes<A>(for key: Key, in range: NSRange, block: (_ attr: A, _ range: NSRange) -> Void) { + enumerateAttribute(key, in: range, options: []) { value, range, _ in + if let value = value as? A { + block(value, range) + } + } + } +} diff --git a/Example/Pods/Down/Source/AST/Styling/Helpers/Extensions/NSMutableAttributedString+Attributes.swift b/Example/Pods/Down/Source/AST/Styling/Helpers/Extensions/NSMutableAttributedString+Attributes.swift new file mode 100644 index 000000000..70453060c --- /dev/null +++ b/Example/Pods/Down/Source/AST/Styling/Helpers/Extensions/NSMutableAttributedString+Attributes.swift @@ -0,0 +1,57 @@ +// +// NSMutableAttributedString+Attributes.swift +// Down +// +// Created by John Nguyen on 22.06.19. +// Copyright © 2016-2019 Down. All rights reserved. +// + +import Foundation + +extension NSMutableAttributedString { + + func setAttributes(_ attrs: Attributes) { + setAttributes(attrs, range: wholeRange) + } + + func addAttributes(_ attrs: Attributes) { + addAttributes(attrs, range: wholeRange) + } + + func addAttribute(for key: Key, value: Any) { + addAttribute(key, value: value, range: wholeRange) + } + + func removeAttribute(for key: Key) { + removeAttribute(key, range: wholeRange) + } + + func replaceAttribute(for key: Key, value: Any) { + replaceAttribute(for: key, value: value, inRange: wholeRange) + } + + func replaceAttribute(for key: Key, value: Any, inRange range: NSRange) { + removeAttribute(key, range: range) + addAttribute(key, value: value, range: range) + } + + func updateExistingAttributes<A>(for key: Key, using f: (A) -> A) { + updateExistingAttributes(for: key, in: wholeRange, using: f) + } + + func updateExistingAttributes<A>(for key: Key, in range: NSRange, using f: (A) -> A) { + var existingValues = [(value: A, range: NSRange)]() + enumerateAttributes(for: key, in: range) { existingValues.append(($0, $1)) } + existingValues.forEach { addAttribute(key, value: f($0.0), range: $0.1) } + } + + func addAttributeInMissingRanges<A>(for key: Key, value: A) { + addAttributeInMissingRanges(for: key, value: value, within: wholeRange) + } + + func addAttributeInMissingRanges<A>(for key: Key, value: A, within range: NSRange) { + rangesMissingAttribute(for: key, in: range).forEach { + addAttribute(key, value: value, range: $0) + } + } +} diff --git a/Example/Pods/Down/Source/AST/Styling/Helpers/Extensions/UIFont+Traits.swift b/Example/Pods/Down/Source/AST/Styling/Helpers/Extensions/UIFont+Traits.swift new file mode 100644 index 000000000..72dc05640 --- /dev/null +++ b/Example/Pods/Down/Source/AST/Styling/Helpers/Extensions/UIFont+Traits.swift @@ -0,0 +1,91 @@ +// +// UIFont+Traits.swift +// Down +// +// Created by John Nguyen on 22.06.19. +// Copyright © 2016-2019 Down. All rights reserved. +// + +#if !os(watchOS) && !os(Linux) + +#if canImport(UIKit) + +import UIKit +public typealias DownFontDescriptor = UIFontDescriptor + +#elseif canImport(AppKit) + +import AppKit +public typealias DownFontDescriptor = NSFontDescriptor + +#endif + +extension DownFont { + + var isStrong: Bool { + return contains(.strong) + } + + var isEmphasized: Bool { + return contains(.emphasis) + } + + var isMonospace: Bool { + return contains(.monoSpace) + } + + var strong: DownFont { + return with(.strong) ?? self + } + + var emphasis: DownFont { + return with(.emphasis) ?? self + } + + var monospace: DownFont { + return with(.monoSpace) ?? self + } + + private func with(_ trait: DownFontDescriptor.SymbolicTraits) -> DownFont? { + guard !contains(trait) else { return self } + + var traits = fontDescriptor.symbolicTraits + traits.insert(trait) + + #if canImport(UIKit) + guard let newDescriptor = fontDescriptor.withSymbolicTraits(traits) else { return self } + return DownFont(descriptor: newDescriptor, size: pointSize) + + #elseif canImport(AppKit) + let newDescriptor = fontDescriptor.withSymbolicTraits(traits) + return DownFont(descriptor: newDescriptor, size: pointSize) + + #endif + } + + private func contains(_ trait: DownFontDescriptor.SymbolicTraits) -> Bool { + return fontDescriptor.symbolicTraits.contains(trait) + } +} + +#if canImport(UIKit) + +private extension DownFontDescriptor.SymbolicTraits { + + static let strong = DownFontDescriptor.SymbolicTraits.traitBold + static let emphasis = DownFontDescriptor.SymbolicTraits.traitItalic + static let monoSpace = DownFontDescriptor.SymbolicTraits.traitMonoSpace +} + +#elseif canImport(AppKit) + +private extension DownFontDescriptor.SymbolicTraits { + + static let strong = DownFontDescriptor.SymbolicTraits.bold + static let emphasis = DownFontDescriptor.SymbolicTraits.italic + static let monoSpace = DownFontDescriptor.SymbolicTraits.monoSpace +} + +#endif + +#endif diff --git a/Example/Pods/Down/Source/AST/Styling/Helpers/ListItemParagraphStyler.swift b/Example/Pods/Down/Source/AST/Styling/Helpers/ListItemParagraphStyler.swift new file mode 100644 index 000000000..1dd37c21d --- /dev/null +++ b/Example/Pods/Down/Source/AST/Styling/Helpers/ListItemParagraphStyler.swift @@ -0,0 +1,103 @@ +// +// ParagraphStyler.swift +// Down +// +// Created by John Nguyen on 25.06.19. +// Copyright © 2016-2019 Down. All rights reserved. +// + +#if !os(watchOS) && !os(Linux) + +#if canImport(UIKit) + +import UIKit + +#elseif canImport(AppKit) + +import AppKit + +#endif + +/// A convenient class used to format lists, such that list item prefixes +/// are right aligned and list item content left aligns. +public class ListItemParagraphStyler { + + public var indentation: CGFloat { + return largestPrefixWidth + options.spacingAfterPrefix + } + + /// The paragraph style intended for all paragraphs excluding the first. + public var trailingParagraphStyle: NSParagraphStyle { + let contentIndentation = indentation + let style = baseStyle + style.firstLineHeadIndent = contentIndentation + style.headIndent = contentIndentation + return style + } + + private let options: ListItemOptions + private let largestPrefixWidth: CGFloat + + private var baseStyle: NSMutableParagraphStyle { + let style = NSMutableParagraphStyle() + style.paragraphSpacingBefore = options.spacingAbove + style.paragraphSpacing = options.spacingBelow + return style + } + + public init(options: ListItemOptions, prefixFont: DownFont) { + self.options = options + self.largestPrefixWidth = prefixFont.widthOfNumberedPrefix(digits: options.maxPrefixDigits) + } + + + /// The paragraph style intended for the first paragraph of the list item. + /// + /// - Parameter prefixWidth: the width (in points) of the list item prefix. + public func leadingParagraphStyle(prefixWidth: CGFloat) -> NSParagraphStyle { + let contentIndentation = indentation + let prefixIndentation: CGFloat = contentIndentation - options.spacingAfterPrefix - prefixWidth + let prefixSpill = max(0, prefixWidth - largestPrefixWidth) + let firstLineContentIndentation = contentIndentation + prefixSpill + + let style = baseStyle + style.firstLineHeadIndent = prefixIndentation + style.tabStops = [tabStop(at: firstLineContentIndentation)] + style.headIndent = contentIndentation + return style + } + + private func tabStop(at location: CGFloat) -> NSTextTab { + return NSTextTab(textAlignment: .left, location: location, options: [:]) + } +} + +// MARK: - Helpers + +private extension DownFont { + + func widthOfNumberedPrefix(digits: UInt) -> CGFloat { + return widthOfLargestDigit * CGFloat(digits) + widthOfPeriod + } + + private var widthOfLargestDigit: CGFloat { + return Int.decimalDigits + .map { NSAttributedString(string: "\($0)", attributes: [.font: self]).size().width } + .max()! + } + + private var widthOfPeriod: CGFloat { + return NSAttributedString(string: ".", attributes: [.font: self]) + .size() + .width + } +} + +private extension Int { + + static var decimalDigits: [Int] { + return Array(0...9) + } +} + +#endif diff --git a/Example/Pods/Down/Source/AST/Styling/Layout Managers/DownDebugLayoutManager.swift b/Example/Pods/Down/Source/AST/Styling/Layout Managers/DownDebugLayoutManager.swift new file mode 100644 index 000000000..e96835ddb --- /dev/null +++ b/Example/Pods/Down/Source/AST/Styling/Layout Managers/DownDebugLayoutManager.swift @@ -0,0 +1,60 @@ +// +// DownDebugLayoutManager.swift +// Down +// +// Created by John Nguyen on 06.08.19. +// Copyright © 2016-2019 Down. All rights reserved. +// + +#if !os(watchOS) && !os(Linux) + +#if canImport(UIKit) + +import UIKit + +#elseif canImport(AppKit) + +import AppKit + +#endif + +/// A layout manager that draws the line fragments. +/// +/// Line fragments are the areas with a document that contain lines of text. There +/// are two types. +/// +/// 1. A *line rect* (drawn in red) indicates the maximum rect enclosing the line. +/// This inlcudes not only the textual content, but also the padding (if any) around that text. +/// 2. A *line used rect* (drawn in blue) is the smallest rect enclosing the textual content. +/// +/// The visualization of these rects is useful when determining the paragraph styles +/// of a `DownStyler`. +/// +/// Insert this into a TextKit stack manually, or use the provided `DownDebugTextView`. +public class DownDebugLayoutManager: DownLayoutManager { + + override public func drawGlyphs(forGlyphRange glyphsToShow: NSRange, at origin: CGPoint) { + super.drawGlyphs(forGlyphRange: glyphsToShow, at: origin) + drawLineFragments(forGlyphRange: glyphsToShow, at: origin) + } + + private func drawLineFragments(forGlyphRange glyphsToShow: NSRange, at origin: CGPoint) { + enumerateLineFragments(forGlyphRange: glyphsToShow) { rect, usedRect, textContainer, glyphRange, _ in + [(usedRect, DownColor.blue), (rect, DownColor.red)].forEach { rectToDraw, color in + let adjustedRect = rectToDraw.translated(by: origin) + self.drawRect(adjustedRect, color: color.cgColor) + } + } + } + + private func drawRect(_ rect: CGRect, color: CGColor) { + guard let context = context else { return } + push(context: context) + defer { popContext() } + + context.setStrokeColor(color) + context.stroke(rect) + } +} + +#endif diff --git a/Example/Pods/Down/Source/AST/Styling/Layout Managers/DownLayoutManager.swift b/Example/Pods/Down/Source/AST/Styling/Layout Managers/DownLayoutManager.swift new file mode 100644 index 000000000..dea1078e6 --- /dev/null +++ b/Example/Pods/Down/Source/AST/Styling/Layout Managers/DownLayoutManager.swift @@ -0,0 +1,212 @@ +// +// DownLayoutManager.swift +// Down +// +// Created by John Nguyen on 02.08.19. +// Copyright © 2016-2019 Down. All rights reserved. +// + +#if !os(watchOS) && !os(Linux) + +#if canImport(UIKit) + +import UIKit + +#elseif canImport(AppKit) + +import AppKit + +#endif + +/// A layout manager capable of drawing the custom attributes set by the `DownStyler`. +/// +/// Insert this into a TextKit stack manually, or use the provided `DownTextView`. +public class DownLayoutManager: NSLayoutManager { + + #if canImport(UIKit) + var context: CGContext? { + return UIGraphicsGetCurrentContext() + } + + func push(context: CGContext) { + UIGraphicsPushContext(context) + } + + func popContext() { + UIGraphicsPopContext() + } + + #elseif canImport(AppKit) + var context: CGContext? { + return NSGraphicsContext.current?.cgContext + } + + func push(context: CGContext) { + NSGraphicsContext.saveGraphicsState() + } + + func popContext() { + NSGraphicsContext.restoreGraphicsState() + } + + #endif + + override public func drawGlyphs(forGlyphRange glyphsToShow: NSRange, at origin: CGPoint) { + drawCustomBackgrounds(forGlyphRange: glyphsToShow, at: origin) + super.drawGlyphs(forGlyphRange: glyphsToShow, at: origin) + drawCustomAttributes(forGlyphRange: glyphsToShow, at: origin) + } + + private func drawCustomBackgrounds(forGlyphRange glyphsToShow: NSRange, at origin: CGPoint) { + guard let context = context else { return } + push(context: context) + defer { popContext() } + + guard let textStorage = textStorage else { return } + + let characterRange = self.characterRange(forGlyphRange: glyphsToShow, actualGlyphRange: nil) + + textStorage.enumerateAttributes(for: .blockBackgroundColor, in: characterRange) { (attr: BlockBackgroundColorAttribute, blockRange) in + + let inset = attr.inset + + context.setFillColor(attr.color.cgColor) + + let allBlockColorRanges = glyphRanges(for: .blockBackgroundColor, in: textStorage, inCharacterRange: blockRange) + let blockColorGlyphRange = glyphRange(forCharacterRange: blockRange, actualCharacterRange: nil) + + enumerateLineFragments(forGlyphRange: blockColorGlyphRange) { lineRect, lineUsedRect, container, lineGlyphRange, _ in + + let isLineStartOfBlock = allBlockColorRanges.contains { + lineGlyphRange.overlapsStart(of: $0) + } + + let isLineEndOfBlock = allBlockColorRanges.contains { + lineGlyphRange.overlapsEnd(of: $0) + } + + let minX = lineUsedRect.minX + container.lineFragmentPadding - inset + let maxX = lineRect.maxX + let minY = isLineStartOfBlock ? lineUsedRect.minY - inset : lineRect.minY + let maxY = isLineEndOfBlock ? lineUsedRect.maxY + inset : lineUsedRect.maxY + let blockRect = CGRect(minX: minX, minY: minY, maxX: maxX, maxY: maxY).translated(by: origin) + + context.fill(blockRect) + } + } + } + + private func drawCustomAttributes(forGlyphRange glyphsToShow: NSRange, at origin: CGPoint) { + let characterRange = self.characterRange(forGlyphRange: glyphsToShow, actualGlyphRange: nil) + drawThematicBreakIfNeeded(in: characterRange, at: origin) + drawQuoteStripeIfNeeded(in: characterRange, at: origin) + } + + private func drawThematicBreakIfNeeded(in characterRange: NSRange, at origin: CGPoint) { + guard let context = context else { return } + push(context: context) + defer { popContext() } + + textStorage?.enumerateAttributes(for: .thematicBreak, in: characterRange) { (attr: ThematicBreakAttribute, range) in + let firstGlyphIndex = glyphIndexForCharacter(at: range.lowerBound) + + let lineRect = lineFragmentRect(forGlyphAt: firstGlyphIndex, effectiveRange: nil) + let usedRect = lineFragmentUsedRect(forGlyphAt: firstGlyphIndex, effectiveRange: nil) + + let lineStart = usedRect.minX + fragmentPadding(forGlyphAt: firstGlyphIndex) + + let boundingRect = CGRect(x: lineStart, y: lineRect.minY, width: lineRect.width - lineStart, height: lineRect.height) + let adjustedLineRect = boundingRect.translated(by: origin) + + drawThematicBreak(with: context, in: adjustedLineRect, attr: attr) + } + } + + private func fragmentPadding(forGlyphAt glyphIndex: Int) -> CGFloat { + let textContainer = self.textContainer(forGlyphAt: glyphIndex, effectiveRange: nil) + return textContainer?.lineFragmentPadding ?? 0 + } + + private func drawThematicBreak(with context: CGContext, in rect: CGRect, attr: ThematicBreakAttribute) { + context.setStrokeColor(attr.color.cgColor) + context.setLineWidth(attr.thickness) + context.move(to: CGPoint(x: rect.minX, y: rect.midY)) + context.addLine(to: CGPoint(x: rect.maxX, y: rect.midY)) + context.strokePath() + } + + private func drawQuoteStripeIfNeeded(in characterRange: NSRange, at origin: CGPoint) { + guard let context = context else { return } + push(context: context) + defer { popContext() } + + textStorage?.enumerateAttributes(for: .quoteStripe, in: characterRange) { (attr: QuoteStripeAttribute, quoteRange) in + context.setFillColor(attr.color.cgColor) + + let glyphRangeOfQuote = self.glyphRange(forCharacterRange: quoteRange, actualCharacterRange: nil) + + enumerateLineFragments(forGlyphRange: glyphRangeOfQuote) { lineRect, _, container, _, _ in + let locations = attr.locations.map { + CGPoint(x: $0 + container.lineFragmentPadding, y: 0) + .translated(by: lineRect.origin) + .translated(by: origin) + } + + let stripeSize = CGSize(width: attr.thickness, height: lineRect.height) + self.drawQuoteStripes(with: context, locations: locations, size: stripeSize) + } + } + } + + private func drawQuoteStripes(with context: CGContext, locations: [CGPoint], size: CGSize) { + locations.forEach { + let stripeRect = CGRect(origin: $0, size: size) + context.fill(stripeRect) + } + } + + private func glyphRanges(for key: NSAttributedString.Key, in storage: NSTextStorage, inCharacterRange range: NSRange) -> [NSRange] { + return storage + .ranges(of: key, in: range) + .map { self.glyphRange(forCharacterRange: $0, actualCharacterRange: nil) } + .mergeNeighbors() + } +} + +// MARK: - Helpers + +private extension NSRange { + + func overlapsStart(of range: NSRange) -> Bool { + return lowerBound <= range.lowerBound && upperBound > range.lowerBound + } + + func overlapsEnd(of range: NSRange) -> Bool { + return lowerBound < range.upperBound && upperBound >= range.upperBound + } +} + +private extension Array where Element == NSRange { + + func mergeNeighbors() -> [Element] { + let sorted = self.sorted { $0.lowerBound <= $1.lowerBound } + + let result = sorted.reduce(into: [NSRange]()) { acc, next in + guard let last = acc.popLast() else { + acc.append(next) + return + } + + guard last.upperBound == next.lowerBound else { + acc.append(contentsOf: [last, next]) + return + } + + acc.append(NSRange(location: last.lowerBound, length: next.upperBound - last.lowerBound)) + } + + return result + } +} + +#endif diff --git a/Example/Pods/Down/Source/AST/Styling/Options/CodeBlockOptions.swift b/Example/Pods/Down/Source/AST/Styling/Options/CodeBlockOptions.swift new file mode 100644 index 000000000..b0a25bd2c --- /dev/null +++ b/Example/Pods/Down/Source/AST/Styling/Options/CodeBlockOptions.swift @@ -0,0 +1,30 @@ +// +// CodeBlockOptions.swift +// Down +// +// Created by John Nguyen on 12.08.19. +// Copyright © 2016-2019 Down. All rights reserved. +// + +#if !os(watchOS) && !os(Linux) + +#if canImport(UIKit) + +import UIKit + +#elseif canImport(AppKit) + +import AppKit + +#endif + +public struct CodeBlockOptions { + + public var containerInset: CGFloat + + public init(containerInset: CGFloat = 8) { + self.containerInset = containerInset + } +} + +#endif diff --git a/Example/Pods/Down/Source/AST/Styling/Options/ListItemOptions.swift b/Example/Pods/Down/Source/AST/Styling/Options/ListItemOptions.swift new file mode 100644 index 000000000..d34c1b94b --- /dev/null +++ b/Example/Pods/Down/Source/AST/Styling/Options/ListItemOptions.swift @@ -0,0 +1,40 @@ +// +// ListItemOptions.swift +// Down +// +// Created by John Nguyen on 04.08.19. +// Copyright © 2016-2019 Down. All rights reserved. +// + +#if !os(watchOS) && !os(Linux) + +#if canImport(UIKit) + +import UIKit + +#elseif canImport(AppKit) + +import AppKit + +#endif + +public struct ListItemOptions { + + public var maxPrefixDigits: UInt + public var spacingAfterPrefix: CGFloat + public var spacingAbove: CGFloat + public var spacingBelow: CGFloat + + public init(maxPrefixDigits: UInt = 2, + spacingAfterPrefix: CGFloat = 8, + spacingAbove: CGFloat = 4, + spacingBelow: CGFloat = 8 + ) { + self.maxPrefixDigits = maxPrefixDigits + self.spacingAfterPrefix = spacingAfterPrefix + self.spacingAbove = spacingAbove + self.spacingBelow = spacingBelow + } +} + +#endif diff --git a/Example/Pods/Down/Source/AST/Styling/Options/QuoteStripeOptions.swift b/Example/Pods/Down/Source/AST/Styling/Options/QuoteStripeOptions.swift new file mode 100644 index 000000000..9dd70a92e --- /dev/null +++ b/Example/Pods/Down/Source/AST/Styling/Options/QuoteStripeOptions.swift @@ -0,0 +1,32 @@ +// +// QuoteStripeOptions.swift +// Down +// +// Created by John Nguyen on 04.08.19. +// Copyright © 2016-2019 Down. All rights reserved. +// + +#if !os(Linux) + +#if canImport(UIKit) + +import UIKit + +#elseif canImport(AppKit) + +import AppKit + +#endif + +public struct QuoteStripeOptions { + + public var thickness: CGFloat + public var spacingAfter: CGFloat + + public init(thickness: CGFloat = 2, spacingAfter: CGFloat = 8) { + self.thickness = thickness + self.spacingAfter = spacingAfter + } +} + +#endif diff --git a/Example/Pods/Down/Source/AST/Styling/Options/ThematicBreakOptions.swift b/Example/Pods/Down/Source/AST/Styling/Options/ThematicBreakOptions.swift new file mode 100644 index 000000000..4e901b558 --- /dev/null +++ b/Example/Pods/Down/Source/AST/Styling/Options/ThematicBreakOptions.swift @@ -0,0 +1,32 @@ +// +// ThematicBreakOptions.swift +// Down +// +// Created by John Nguyen on 04.08.19. +// Copyright © 2016-2019 Down. All rights reserved. +// + +#if !os(watchOS) && !os(Linux) + +#if canImport(UIKit) + +import UIKit + +#elseif canImport(AppKit) + +import AppKit + +#endif + +public struct ThematicBreakOptions { + + public var thickness: CGFloat + public var indentation: CGFloat + + public init(thickness: CGFloat = 1, indentation: CGFloat = 0) { + self.thickness = thickness + self.indentation = indentation + } +} + +#endif diff --git a/Example/Pods/Down/Source/AST/Styling/Stylers/DownStyler.swift b/Example/Pods/Down/Source/AST/Styling/Stylers/DownStyler.swift new file mode 100644 index 000000000..1e15e64ad --- /dev/null +++ b/Example/Pods/Down/Source/AST/Styling/Stylers/DownStyler.swift @@ -0,0 +1,299 @@ +// +// DownStyler.swift +// Down +// +// Created by John Nguyen on 22.06.19. +// Copyright © 2016-2019 Down. All rights reserved. +// + +#if !os(watchOS) && !os(Linux) + +#if canImport(UIKit) + +import UIKit + +#elseif canImport(AppKit) + +import AppKit + +#endif + +/// A default `Styler` implementation that supports a variety of configurable +/// properties for font, text color and paragraph styling, as well as formatting +/// of nested lists and quotes. +open class DownStyler: Styler { + + // MARK: - Properties + + public let fonts: FontCollection + public let colors: ColorCollection + public let paragraphStyles: ParagraphStyleCollection + + public let quoteStripeOptions: QuoteStripeOptions + public let thematicBreakOptions: ThematicBreakOptions + public let codeBlockOptions: CodeBlockOptions + + private let itemParagraphStyler: ListItemParagraphStyler + + private var listPrefixAttributes: [NSAttributedString.Key : Any] {[ + .font: fonts.listItemPrefix, + .foregroundColor: colors.listItemPrefix] + } + + // MARK: - Init + + public init(configuration: DownStylerConfiguration = DownStylerConfiguration()) { + fonts = configuration.fonts + colors = configuration.colors + paragraphStyles = configuration.paragraphStyles + quoteStripeOptions = configuration.quoteStripeOptions + thematicBreakOptions = configuration.thematicBreakOptions + codeBlockOptions = configuration.codeBlockOptions + itemParagraphStyler = ListItemParagraphStyler(options: configuration.listItemOptions, prefixFont: fonts.listItemPrefix) + } + + // MARK: - Styling + + open func style(document str: NSMutableAttributedString) { + + } + + open func style(blockQuote str: NSMutableAttributedString, nestDepth: Int) { + let stripeAttribute = QuoteStripeAttribute(level: nestDepth + 1, color: colors.quoteStripe, options: quoteStripeOptions) + + str.updateExistingAttributes(for: .paragraphStyle) { (style: NSParagraphStyle) in + style.indented(by: stripeAttribute.layoutWidth) + } + + str.addAttributeInMissingRanges(for: .quoteStripe, value: stripeAttribute) + str.addAttribute(for: .foregroundColor, value: colors.quote) + } + + open func style(list str: NSMutableAttributedString, nestDepth: Int) { + + } + + open func style(listItemPrefix str: NSMutableAttributedString) { + str.setAttributes(listPrefixAttributes) + } + + open func style(item str: NSMutableAttributedString, prefixLength: Int) { + let paragraphRanges = str.paragraphRanges() + + guard let leadingParagraphRange = paragraphRanges.first else { return } + + indentListItemLeadingParagraph(in: str, prefixLength: prefixLength, inRange: leadingParagraphRange) + + paragraphRanges.dropFirst().forEach { + indentListItemTrailingParagraph(in: str, inRange: $0) + } + } + + open func style(codeBlock str: NSMutableAttributedString, fenceInfo: String?) { + styleGenericCodeBlock(in: str) + } + + open func style(htmlBlock str: NSMutableAttributedString) { + styleGenericCodeBlock(in: str) + } + + open func style(customBlock str: NSMutableAttributedString) { + + } + + open func style(paragraph str: NSMutableAttributedString) { + str.addAttribute(for: .paragraphStyle, value: paragraphStyles.body) + } + + open func style(heading str: NSMutableAttributedString, level: Int) { + let (font, color, paragraphStyle) = headingAttributes(for: level) + + str.updateExistingAttributes(for: .font) { (currentFont: DownFont) in + var newFont = font + + if (currentFont.isMonospace) { + newFont = newFont.monospace + } + + if (currentFont.isEmphasized) { + newFont = newFont.emphasis + } + + if (currentFont.isStrong) { + newFont = newFont.strong + } + + return newFont + } + + str.addAttributes([ + .foregroundColor: color, + .paragraphStyle: paragraphStyle]) + } + + open func style(thematicBreak str: NSMutableAttributedString) { + let paragraphStyle = NSMutableParagraphStyle() + paragraphStyle.firstLineHeadIndent = thematicBreakOptions.indentation + let attr = ThematicBreakAttribute(thickness: thematicBreakOptions.thickness, color: colors.thematicBreak) + str.addAttribute(for: .thematicBreak, value: attr) + str.addAttribute(for: .paragraphStyle, value: paragraphStyle) + } + + open func style(text str: NSMutableAttributedString) { + str.setAttributes([ + .font: fonts.body, + .foregroundColor: colors.body]) + } + + open func style(softBreak str: NSMutableAttributedString) { + + } + + open func style(lineBreak str: NSMutableAttributedString) { + + } + + open func style(code str: NSMutableAttributedString) { + styleGenericInlineCode(in: str) + } + + open func style(htmlInline str: NSMutableAttributedString) { + styleGenericInlineCode(in: str) + } + + open func style(customInline str: NSMutableAttributedString) { + + } + + open func style(emphasis str: NSMutableAttributedString) { + str.updateExistingAttributes(for: .font) { (font: DownFont) in + font.emphasis + } + } + + open func style(strong str: NSMutableAttributedString) { + str.updateExistingAttributes(for: .font) { (font: DownFont) in + font.strong + } + } + + open func style(link str: NSMutableAttributedString, title: String?, url: String?) { + guard let url = url else { return } + styleGenericLink(in: str, url: url) + } + + open func style(image str: NSMutableAttributedString, title: String?, url: String?) { + guard let url = url else { return } + styleGenericLink(in: str, url: url) + } + + // MARK: - Common Styling + + private func styleGenericCodeBlock(in str: NSMutableAttributedString) { + let blockBackgroundAttribute = BlockBackgroundColorAttribute( + color: colors.codeBlockBackground, + inset: codeBlockOptions.containerInset) + + let adjustedParagraphStyle = paragraphStyles.code.inset(by: blockBackgroundAttribute.inset) + + str.setAttributes([ + .font: fonts.code, + .foregroundColor: colors.code, + .paragraphStyle: adjustedParagraphStyle, + .blockBackgroundColor: blockBackgroundAttribute]) + } + + private func styleGenericInlineCode(in str: NSMutableAttributedString) { + str.setAttributes([ + .font: fonts.code, + .foregroundColor: colors.code]) + } + + private func styleGenericLink(in str: NSMutableAttributedString, url: String) { + str.addAttributes([ + .link: url, + .foregroundColor: colors.link]) + } + + // MARK: - Helpers + + private func headingAttributes(for level: Int) -> (DownFont, DownColor, NSParagraphStyle) { + switch level { + case 1: return (fonts.heading1, colors.heading1, paragraphStyles.heading1) + case 2: return (fonts.heading2, colors.heading2, paragraphStyles.heading2) + case 3: return (fonts.heading3, colors.heading3, paragraphStyles.heading3) + case 4: return (fonts.heading4, colors.heading4, paragraphStyles.heading4) + case 5: return (fonts.heading5, colors.heading5, paragraphStyles.heading5) + case 6: return (fonts.heading6, colors.heading6, paragraphStyles.heading6) + default: return (fonts.heading1, colors.heading1, paragraphStyles.heading1) + } + } + + private func indentListItemLeadingParagraph(in str: NSMutableAttributedString, prefixLength: Int, inRange range: NSRange) { + str.updateExistingAttributes(for: .paragraphStyle, in: range) { (existingStyle: NSParagraphStyle) in + existingStyle.indented(by: itemParagraphStyler.indentation) + } + + let attributedPrefix = str.prefix(with: prefixLength) + let prefixWidth = attributedPrefix.size().width + + let defaultStyle = itemParagraphStyler.leadingParagraphStyle(prefixWidth: prefixWidth) + str.addAttributeInMissingRanges(for: .paragraphStyle, value: defaultStyle, within: range) + } + + private func indentListItemTrailingParagraph(in str: NSMutableAttributedString, inRange range: NSRange) { + str.updateExistingAttributes(for: .paragraphStyle, in: range) { (existingStyle: NSParagraphStyle) in + existingStyle.indented(by: itemParagraphStyler.indentation) + } + + let defaultStyle = itemParagraphStyler.trailingParagraphStyle + str.addAttributeInMissingRanges(for: .paragraphStyle, value: defaultStyle, within: range) + + indentListItemQuotes(in: str, inRange: range) + } + + private func indentListItemQuotes(in str: NSMutableAttributedString, inRange range: NSRange) { + str.updateExistingAttributes(for: .quoteStripe, in: range) { (stripe: QuoteStripeAttribute) in + stripe.indented(by: itemParagraphStyler.indentation) + } + } + +} + +// MARK: - Helper Extensions + +private extension NSParagraphStyle { + + func indented(by indentation: CGFloat) -> NSParagraphStyle { + let result = mutableCopy() as! NSMutableParagraphStyle + result.firstLineHeadIndent += indentation + result.headIndent += indentation + + result.tabStops = tabStops.map { + NSTextTab(textAlignment: $0.alignment, location: $0.location + indentation, options: $0.options) + } + + return result + } + + func inset(by amount: CGFloat) -> NSParagraphStyle { + let result = mutableCopy() as! NSMutableParagraphStyle + result.paragraphSpacingBefore += amount + result.paragraphSpacing += amount + result.firstLineHeadIndent += amount + result.headIndent += amount + result.tailIndent = -amount + return result + } +} + +private extension NSAttributedString { + + func prefix(with length: Int) -> NSAttributedString { + guard length <= self.length else { return self } + guard length > 0 else { return NSAttributedString() } + return attributedSubstring(from: NSMakeRange(0, length)) + } +} + +#endif diff --git a/Example/Pods/Down/Source/AST/Styling/Stylers/DownStylerConfiguration.swift b/Example/Pods/Down/Source/AST/Styling/Stylers/DownStylerConfiguration.swift new file mode 100644 index 000000000..8f42491ee --- /dev/null +++ b/Example/Pods/Down/Source/AST/Styling/Stylers/DownStylerConfiguration.swift @@ -0,0 +1,41 @@ +// +// DownStylerConfiguration.swift +// Down +// +// Created by John Nguyen on 10.08.19. +// Copyright © 2016-2019 Down. All rights reserved. +// + +#if !os(watchOS) && !os(Linux) + +/// A configuration object used to initialze the `DownStyler`. +public struct DownStylerConfiguration { + + public var fonts: FontCollection + public var colors: ColorCollection + public var paragraphStyles: ParagraphStyleCollection + + public var listItemOptions: ListItemOptions + public var quoteStripeOptions: QuoteStripeOptions + public var thematicBreakOptions: ThematicBreakOptions + public var codeBlockOptions: CodeBlockOptions + + public init(fonts: FontCollection = StaticFontCollection(), + colors: ColorCollection = StaticColorCollection(), + paragraphStyles: ParagraphStyleCollection = StaticParagraphStyleCollection(), + listItemOptions: ListItemOptions = ListItemOptions(), + quoteStripeOptions: QuoteStripeOptions = QuoteStripeOptions(), + thematicBreakOptions: ThematicBreakOptions = ThematicBreakOptions(), + codeBlockOptions: CodeBlockOptions = CodeBlockOptions() + ) { + self.fonts = fonts + self.colors = colors + self.paragraphStyles = paragraphStyles + self.listItemOptions = listItemOptions + self.quoteStripeOptions = quoteStripeOptions + self.thematicBreakOptions = thematicBreakOptions + self.codeBlockOptions = codeBlockOptions + } +} + +#endif diff --git a/Example/Pods/Down/Source/AST/Styling/Stylers/Styler.swift b/Example/Pods/Down/Source/AST/Styling/Stylers/Styler.swift new file mode 100644 index 000000000..df5bdb4c7 --- /dev/null +++ b/Example/Pods/Down/Source/AST/Styling/Stylers/Styler.swift @@ -0,0 +1,164 @@ +// +// Styler.swift +// Down +// +// Created by John Nguyen on 13.04.19. +// Copyright © 2016-2019 Down. All rights reserved. +// + +import Foundation + +/// A styler is an object that manipulates the appearance of attributed strings generated +/// for each particular markdown node. The attributed string passed into each method is +/// mutable, so new attributes can be added and/or existing attributes modified or removed. +/// +/// When applying paragraph styles to a string, take care not to cause any conflicts with +/// existing paragraph styles, as this can lead to visual bugs that are difficult to +/// understand. +/// +/// A styler is used in conjunction with an instance of `AttributedStringVisitor` in order +/// to generate an NSAttributedString from an abstract syntax tree. +public protocol Styler { + + /// Styles the content of the document in the given string. + /// + /// - Parameter str: the document content. + func style(document str: NSMutableAttributedString) + + + /// Styles the content of the block quote contained in the given string. + /// + /// - Parameter str: the quote content. + /// - Parameter nestDepth: the zero indexed nesting depth of the block quote node. + func style(blockQuote str: NSMutableAttributedString, nestDepth: Int) + + + /// Styles the content of the list contained in the given string. + /// + /// - Parameter str: the list content. + /// - Parameter nestDepth: the zero indexed nesting depth of the list node. + func style(list str: NSMutableAttributedString, nestDepth: Int) + + + /// Styles the number or bullet list item prefix. + /// + /// - Parameter str: the list item prefix. + func style(listItemPrefix str: NSMutableAttributedString) + + + /// Styles the content of the list item contained in the given string, including the + /// number or bullet prefix. + /// + /// - Parameter str: the item content. + /// - Parameter prefixLength: the character length of the number or bullet prefix. + func style(item str: NSMutableAttributedString, prefixLength: Int) + + + /// Styles the content of the code block in the given string. + /// + /// An example use case for `fenceInfo` is to specify a programming language name, + /// which could be used to support syntax highlighting. + /// + /// - Parameter str: the code content. + /// - Parameter fenceInfo: the string that trails the initial ``` ticks. + func style(codeBlock str: NSMutableAttributedString, fenceInfo: String?) + + + /// Styles the content of the html block contained in the given string. + /// + /// - Parameter str: the html content. + func style(htmlBlock str: NSMutableAttributedString) + + + /// Styles the content of the custom block contained in the given string. + /// + /// - Parameter str: the content. + func style(customBlock str: NSMutableAttributedString) + + + /// Styles the content of the paragraph in the given string. + /// + /// - Parameter str: the paragraph content. + func style(paragraph str: NSMutableAttributedString) + + + /// Styles the content of the heading in the given string. + /// + /// - Parameter str: the heading content. + /// - Parameter level: the heading level [1, 6] + func style(heading str: NSMutableAttributedString, level: Int) + + + /// Styles the content of the thematic break in the given string. + /// + /// - Parameter str: the thematic break. + func style(thematicBreak str: NSMutableAttributedString) + + + /// Styles the content of the inline text node in the given string. + /// + /// The text nodes are always the leaves of the AST, thus they + /// contain the base style upon which other nodes can work with. + /// + /// - Parameter str: the text content. + func style(text str: NSMutableAttributedString) + + + /// Styles the content of the soft break in the given string. + /// + /// - Parameter str: the soft break. + func style(softBreak str: NSMutableAttributedString) + + + /// Styles the content of the line break in the given string. + /// + /// - Parameter str: the line break. + func style(lineBreak str: NSMutableAttributedString) + + + /// Styles the content of the inline code in the given string. + /// + /// - Parameter str: the code content. + func style(code str: NSMutableAttributedString) + + + /// Styles the content of the inline html tags in the given string. + /// + /// Note, the content does not include text between matching tags. + /// + /// - Parameter str: the html content. + func style(htmlInline str: NSMutableAttributedString) + + + /// Styles the content of the inline custom node in the given string. + /// + /// - Parameter str: the custom content. + func style(customInline str: NSMutableAttributedString) + + + /// Styles the content of the inline emphasis node in the given string. + /// + /// - Parameter str: the ephasized content. + func style(emphasis str: NSMutableAttributedString) + + + /// Styles the content of the inline strong node in the given string. + /// + /// - Parameter str: the strong content. + func style(strong str: NSMutableAttributedString) + + + /// Styles the content of the inline link node in the given string. + /// + /// - Parameter str: the link content. + /// - Parameter title: the link title. + /// - Parameter url: the linked url. + func style(link str: NSMutableAttributedString, title: String?, url: String?) + + /// Styles the content of the inline image node in the given string. + /// + /// - Parameter str: the link content. + /// - Parameter title: the link title. + /// - Parameter url: the linked url. + func style(image str: NSMutableAttributedString, title: String?, url: String?) +} diff --git a/Example/Pods/Down/Source/AST/Styling/Text Views/DownDebugTextView.swift b/Example/Pods/Down/Source/AST/Styling/Text Views/DownDebugTextView.swift new file mode 100644 index 000000000..8c97b6472 --- /dev/null +++ b/Example/Pods/Down/Source/AST/Styling/Text Views/DownDebugTextView.swift @@ -0,0 +1,35 @@ +// +// DownDebugTextView.swift +// Down +// +// Created by John Nguyen on 06.08.19. +// Copyright © 2016-2019 Down. All rights reserved. +// + +#if !os(watchOS) && !os(Linux) + +#if canImport(UIKit) + +import UIKit + +#elseif canImport(AppKit) + +import AppKit + +#endif + +/// A text view capable of parsing and rendering markdown via the AST, as well as line fragments. +/// +/// See `DownDebugLayoutManager`. +public class DownDebugTextView: DownTextView { + + public init(frame: CGRect, styler: Styler = DownStyler()) { + super.init(frame: frame, styler: styler, layoutManager: DownDebugLayoutManager()) + } + + required public init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } +} + +#endif diff --git a/Example/Pods/Down/Source/AST/Styling/Text Views/DownTextView.swift b/Example/Pods/Down/Source/AST/Styling/Text Views/DownTextView.swift new file mode 100644 index 000000000..9db44d6df --- /dev/null +++ b/Example/Pods/Down/Source/AST/Styling/Text Views/DownTextView.swift @@ -0,0 +1,95 @@ +// +// DownTextView.swift +// Down +// +// Created by John Nguyen on 03.08.19. +// Copyright © 2016-2019 Down. All rights reserved. +// + +#if !os(watchOS) && !os(Linux) + +#if canImport(UIKit) + +import UIKit +public typealias TextView = UITextView + +#elseif canImport(AppKit) + +import AppKit +public typealias TextView = NSTextView + +#endif + +/// A text view capable of parsing and rendering markdown via the AST. +open class DownTextView: TextView { + + // MARK: - Properties + + open var styler: Styler + + #if canImport(UIKit) + + open override var text: String! { + didSet { + guard oldValue != text else { return } + try? render() + } + } + + #elseif canImport(AppKit) + + open override var string: String { + didSet { + guard oldValue != string else { return } + try? render() + } + } + + #endif + + + // MARK: - Init + + public convenience init(frame: CGRect, styler: Styler = DownStyler()) { + self.init(frame: frame, styler: styler, layoutManager: DownLayoutManager()) + } + + init(frame: CGRect, styler: Styler, layoutManager: NSLayoutManager) { + self.styler = styler + + let textStorage = NSTextStorage() + let textContainer = NSTextContainer() + + textStorage.addLayoutManager(layoutManager) + layoutManager.addTextContainer(textContainer) + + super.init(frame: frame, textContainer: textContainer) + + // We don't want the text view to overwrite link attributes set + // by the styler. + linkTextAttributes = [:] + } + + required public init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + // MARK: - Methods + + open func render() throws { + #if canImport(UIKit) + let down = Down(markdownString: text) + let markdown = try down.toAttributedString(styler: styler) + attributedText = markdown + + #elseif canImport(AppKit) + guard let textStorage = textStorage else { return } + let down = Down(markdownString: string) + let markdown = try down.toAttributedString(styler: styler) + textStorage.replaceCharacters(in: textStorage.wholeRange, with: markdown) + + #endif + } +} + +#endif diff --git a/Example/Pods/Down/Source/AST/Visitors/AttributedStringVisitor.swift b/Example/Pods/Down/Source/AST/Visitors/AttributedStringVisitor.swift new file mode 100644 index 000000000..5134e0a80 --- /dev/null +++ b/Example/Pods/Down/Source/AST/Visitors/AttributedStringVisitor.swift @@ -0,0 +1,226 @@ +// +// AttributedStringVisitor.swift +// Down +// +// Created by John Nguyen on 09.04.19. +// + +#if !os(Linux) + +import Foundation + +/// This class is used to generated an `NSMutableAttributedString` from the abstract syntax +/// tree produced by a markdown string. It traverses the tree to construct substrings +/// represented at each node and uses an instance of `Styler` to apply the visual attributes. +/// These substrings are joined together to produce the final result. +public class AttributedStringVisitor { + + private let styler: Styler + private let options: DownOptions + private var listPrefixGenerators = [ListItemPrefixGenerator]() + + /// Creates a new instance with the given styler and options. + /// + /// - parameters: + /// - styler: used to style the markdown elements. + /// - options: may be used to modify rendering. + public init(styler: Styler, options: DownOptions = .default) { + self.styler = styler + self.options = options + } +} + +extension AttributedStringVisitor: Visitor { + public typealias Result = NSMutableAttributedString + + public func visit(document node: Document) -> NSMutableAttributedString { + let s = visitChildren(of: node).joined + styler.style(document: s) + return s + } + + public func visit(blockQuote node: BlockQuote) -> NSMutableAttributedString { + let s = visitChildren(of: node).joined + if node.hasSuccessor { s.append(.paragraphSeparator) } + styler.style(blockQuote: s, nestDepth: node.nestDepth) + return s + } + + public func visit(list node: List) -> NSMutableAttributedString { + listPrefixGenerators.append(ListItemPrefixGenerator(list: node)) + defer { listPrefixGenerators.removeLast() } + + let items = visitChildren(of: node) + + let s = items.joined + if node.hasSuccessor { s.append(.paragraphSeparator) } + styler.style(list: s, nestDepth: node.nestDepth) + return s + } + + public func visit(item node: Item) -> NSMutableAttributedString { + let s = visitChildren(of: node).joined + + let prefix = listPrefixGenerators.last?.next() ?? "•" + let attributedPrefix = "\(prefix)\t".attributed + styler.style(listItemPrefix: attributedPrefix) + s.insert(attributedPrefix, at: 0) + + if node.hasSuccessor { s.append(.paragraphSeparator) } + styler.style(item: s, prefixLength: (prefix as NSString).length) + return s + } + + public func visit(codeBlock node: CodeBlock) -> NSMutableAttributedString { + guard let literal = node.literal else { return .empty } + let s = literal.replacingNewlinesWithLineSeparators().attributed + if node.hasSuccessor { s.append(.paragraphSeparator) } + styler.style(codeBlock: s, fenceInfo: node.fenceInfo) + return s + } + + public func visit(htmlBlock node: HtmlBlock) -> NSMutableAttributedString { + guard let literal = node.literal else { return .empty } + let s = literal.replacingNewlinesWithLineSeparators().attributed + if node.hasSuccessor { s.append(.paragraphSeparator) } + styler.style(htmlBlock: s) + return s + } + + public func visit(customBlock node: CustomBlock) -> NSMutableAttributedString { + guard let s = node.literal?.attributed else { return .empty } + styler.style(customBlock: s) + return s + } + + public func visit(paragraph node: Paragraph) -> NSMutableAttributedString { + let s = visitChildren(of: node).joined + if node.hasSuccessor { s.append(.paragraphSeparator) } + styler.style(paragraph: s) + return s + } + + public func visit(heading node: Heading) -> NSMutableAttributedString { + let s = visitChildren(of: node).joined + if node.hasSuccessor { s.append(.paragraphSeparator) } + styler.style(heading: s, level: node.headingLevel) + return s + } + + public func visit(thematicBreak node: ThematicBreak) -> NSMutableAttributedString { + let s = "\(String.zeroWidthSpace)\n".attributed + styler.style(thematicBreak: s) + return s + } + + public func visit(text node: Text) -> NSMutableAttributedString { + guard let s = node.literal?.attributed else { return .empty } + styler.style(text: s) + return s + } + + public func visit(softBreak node: SoftBreak) -> NSMutableAttributedString { + let s = (options.contains(.hardBreaks) ? String.lineSeparator : " ").attributed + styler.style(softBreak: s) + return s + } + + public func visit(lineBreak node: LineBreak) -> NSMutableAttributedString { + let s = String.lineSeparator.attributed + styler.style(lineBreak: s) + return s + } + + public func visit(code node: Code) -> NSMutableAttributedString { + guard let s = node.literal?.attributed else { return .empty } + styler.style(code: s) + return s + } + + public func visit(htmlInline node: HtmlInline) -> NSMutableAttributedString { + guard let s = node.literal?.attributed else { return .empty } + styler.style(htmlInline: s) + return s + } + + public func visit(customInline node: CustomInline) -> NSMutableAttributedString { + guard let s = node.literal?.attributed else { return .empty } + styler.style(customInline: s) + return s + } + + public func visit(emphasis node: Emphasis) -> NSMutableAttributedString { + let s = visitChildren(of: node).joined + styler.style(emphasis: s) + return s + } + + public func visit(strong node: Strong) -> NSMutableAttributedString { + let s = visitChildren(of: node).joined + styler.style(strong: s) + return s + } + + public func visit(link node: Link) -> NSMutableAttributedString { + let s = visitChildren(of: node).joined + styler.style(link: s, title: node.title, url: node.url) + return s + } + + public func visit(image node: Image) -> NSMutableAttributedString { + let s = visitChildren(of: node).joined + styler.style(image: s, title: node.title, url: node.url) + return s + } +} + +// MARK: - Helper extensions + +private extension Sequence where Iterator.Element == NSMutableAttributedString { + + var joined: NSMutableAttributedString { + return reduce(into: NSMutableAttributedString()) { $0.append($1) } + } +} + +private extension NSMutableAttributedString { + + static var empty: NSMutableAttributedString { + return "".attributed + } +} + +private extension NSAttributedString { + + static var paragraphSeparator: NSAttributedString { + return String.paragraphSeparator.attributed + } +} + +private extension String { + + var attributed: NSMutableAttributedString { + return NSMutableAttributedString(string: self) + } + + // This codepoint marks the end of a paragraph and the start of the next. + static var paragraphSeparator: String { + return "\u{2029}" + } + + // This code point allows line breaking, without starting a new paragraph. + static var lineSeparator: String { + return "\u{2028}" + } + + static var zeroWidthSpace: String { + return "\u{200B}" + } + + func replacingNewlinesWithLineSeparators() -> String { + let trimmed = trimmingCharacters(in: .newlines) + let lines = trimmed.components(separatedBy: .newlines) + return lines.joined(separator: .lineSeparator) + } +} +#endif // !os(Linux) diff --git a/Example/Pods/Down/Source/AST/Visitors/DebugVisitor.swift b/Example/Pods/Down/Source/AST/Visitors/DebugVisitor.swift new file mode 100644 index 000000000..9554b693c --- /dev/null +++ b/Example/Pods/Down/Source/AST/Visitors/DebugVisitor.swift @@ -0,0 +1,118 @@ +// +// DebugVisitor.swift +// Down +// +// Created by John Nguyen on 09.04.19. +// + +import Foundation + +/// This visitor will generate the debug description of an entire abstract syntax tree, +/// indicating relationships between nodes with indentation. +public class DebugVisitor: Visitor { + + private var depth = 0 + + private var indent: String { + return String(repeating: " ", count: depth) + } + + public init() {} + + private func report(_ node: Node) -> String { + return "\(indent)\(node is Document ? "" : "↳ ")\(String(reflecting: node))\n" + } + + private func reportWithChildren(_ node: Node) -> String { + let thisNode = report(node) + depth += 1 + let children = visitChildren(of: node).joined() + depth -= 1 + return "\(thisNode)\(children)" + } + + // MARK: - Visitor + + public typealias Result = String + + public func visit(document node: Document) -> String { + return reportWithChildren(node) + } + + public func visit(blockQuote node: BlockQuote) -> String { + return reportWithChildren(node) + } + + public func visit(list node: List) -> String { + return reportWithChildren(node) + } + + public func visit(item node: Item) -> String { + return reportWithChildren(node) + } + + public func visit(codeBlock node: CodeBlock) -> String { + return reportWithChildren(node) + } + + public func visit(htmlBlock node: HtmlBlock) -> String { + return reportWithChildren(node) + } + + public func visit(customBlock node: CustomBlock) -> String { + return reportWithChildren(node) + } + + public func visit(paragraph node: Paragraph) -> String { + return reportWithChildren(node) + } + + public func visit(heading node: Heading) -> String { + return reportWithChildren(node) + } + + public func visit(thematicBreak node: ThematicBreak) -> String { + return report(node) + } + + public func visit(text node: Text) -> String { + return report(node) + } + + public func visit(softBreak node: SoftBreak) -> String { + return report(node) + } + + public func visit(lineBreak node: LineBreak) -> String { + return report(node) + } + + public func visit(code node: Code) -> String { + return report(node) + } + + public func visit(htmlInline node: HtmlInline) -> String { + return report(node) + } + + public func visit(customInline node: CustomInline) -> String { + return report(node) + } + + public func visit(emphasis node: Emphasis) -> String { + return reportWithChildren(node) + } + + public func visit(strong node: Strong) -> String { + return reportWithChildren(node) + } + + public func visit(link node: Link) -> String { + return reportWithChildren(node) + } + + public func visit(image node: Image) -> String { + return reportWithChildren(node) + } +} + diff --git a/Example/Pods/Down/Source/AST/Visitors/ListItemPrefixGenerator.swift b/Example/Pods/Down/Source/AST/Visitors/ListItemPrefixGenerator.swift new file mode 100644 index 000000000..4bc146480 --- /dev/null +++ b/Example/Pods/Down/Source/AST/Visitors/ListItemPrefixGenerator.swift @@ -0,0 +1,35 @@ +// +// ListItemPrefixGenerator.swift +// Down +// +// Created by John Nguyen on 23.06.19. +// Copyright © 2016-2019 Down. All rights reserved. +// + +import Foundation + +class ListItemPrefixGenerator { + + private var prefixes: IndexingIterator<[String]> + + convenience init(list: List) { + self.init(listType: list.listType, numberOfItems: list.numberOfItems) + } + + init(listType: List.ListType, numberOfItems: Int) { + switch listType { + case .bullet: + prefixes = [String](repeating: "•", count: numberOfItems) + .makeIterator() + + case .ordered(let start): + prefixes = (start..<(start + numberOfItems)) + .map { "\($0)." } + .makeIterator() + } + } + + func next() -> String? { + prefixes.next() + } +} diff --git a/Example/Pods/Down/Source/AST/Visitors/Visitor.swift b/Example/Pods/Down/Source/AST/Visitors/Visitor.swift new file mode 100644 index 000000000..0c9072c28 --- /dev/null +++ b/Example/Pods/Down/Source/AST/Visitors/Visitor.swift @@ -0,0 +1,69 @@ +// +// Vistor.swift +// Down +// +// Created by John Nguyen on 07.04.19. +// + +import Foundation + +/// Visitor describes a type that is able to traverse the abstract syntax tree. It visits +/// each node of the tree and produces some result for that node. A visitor is "accepted" by +/// the root node (of type `Document`), which will start the traversal by first invoking +/// `visit(document:)`. +public protocol Visitor { + associatedtype Result + func visit(document node: Document) -> Result + func visit(blockQuote node: BlockQuote) -> Result + func visit(list node: List) -> Result + func visit(item node: Item) -> Result + func visit(codeBlock node: CodeBlock) -> Result + func visit(htmlBlock node: HtmlBlock) -> Result + func visit(customBlock node: CustomBlock) -> Result + func visit(paragraph node: Paragraph) -> Result + func visit(heading node: Heading) -> Result + func visit(thematicBreak node: ThematicBreak) -> Result + func visit(text node: Text) -> Result + func visit(softBreak node: SoftBreak) -> Result + func visit(lineBreak node: LineBreak) -> Result + func visit(code node: Code) -> Result + func visit(htmlInline node: HtmlInline) -> Result + func visit(customInline node: CustomInline) -> Result + func visit(emphasis node: Emphasis) -> Result + func visit(strong node: Strong) -> Result + func visit(link node: Link) -> Result + func visit(image node: Image) -> Result + func visitChildren(of node: Node) -> [Result] +} + +extension Visitor { + public func visitChildren(of node: Node) -> [Result] { + return node.childSequence.compactMap { child in + switch child { + case let child as Document: return visit(document: child) + case let child as BlockQuote: return visit(blockQuote: child) + case let child as List: return visit(list: child) + case let child as Item: return visit(item: child) + case let child as CodeBlock: return visit(codeBlock: child) + case let child as HtmlBlock: return visit(htmlBlock: child) + case let child as CustomBlock: return visit(customBlock: child) + case let child as Paragraph: return visit(paragraph: child) + case let child as Heading: return visit(heading: child) + case let child as ThematicBreak: return visit(thematicBreak: child) + case let child as Text: return visit(text: child) + case let child as SoftBreak: return visit(softBreak: child) + case let child as LineBreak: return visit(lineBreak: child) + case let child as Code: return visit(code: child) + case let child as HtmlInline: return visit(htmlInline: child) + case let child as CustomInline: return visit(customInline: child) + case let child as Emphasis: return visit(emphasis: child) + case let child as Strong: return visit(strong: child) + case let child as Link: return visit(link: child) + case let child as Image: return visit(image: child) + default: + assertionFailure("Unexpected child") + return nil + } + } + } +} diff --git a/Example/Pods/Down/Source/Down.h b/Example/Pods/Down/Source/Down.h new file mode 100644 index 000000000..18540682d --- /dev/null +++ b/Example/Pods/Down/Source/Down.h @@ -0,0 +1,15 @@ +// +// Down.h +// Down +// +// Created by Rob Phillips on 6/1/16. +// Copyright © 2016-2019 Down. All rights reserved. +// + +@import Foundation; + +//! Project version number for Down. +FOUNDATION_EXPORT double DownVersionNumber; + +//! Project version string for Down. +FOUNDATION_EXPORT const unsigned char DownVersionString[]; diff --git a/Example/Pods/Down/Source/Down.swift b/Example/Pods/Down/Source/Down.swift new file mode 100644 index 000000000..22d695ecd --- /dev/null +++ b/Example/Pods/Down/Source/Down.swift @@ -0,0 +1,26 @@ +// +// Down.swift +// Down +// +// Created by Rob Phillips on 5/28/16. +// Copyright © 2016-2019 Down. All rights reserved. +// + +import Foundation + +public struct Down: DownASTRenderable, DownHTMLRenderable, DownXMLRenderable, + DownLaTeXRenderable, DownGroffRenderable, DownCommonMarkRenderable { + /// A string containing CommonMark Markdown + public var markdownString: String + + /// Initializes the container with a CommonMark Markdown string which can then be rendered depending on protocol conformance + /// + /// - Parameter markdownString: A string containing CommonMark Markdown + public init(markdownString: String) { + self.markdownString = markdownString + } +} + +#if !os(Linux) +extension Down: DownAttributedStringRenderable { } +#endif // !os(Linux) diff --git a/Example/Pods/Down/Source/Enums & Options/DownErrors.swift b/Example/Pods/Down/Source/Enums & Options/DownErrors.swift new file mode 100644 index 000000000..4d215dc5c --- /dev/null +++ b/Example/Pods/Down/Source/Enums & Options/DownErrors.swift @@ -0,0 +1,27 @@ +// +// DownErrors.swift +// Down +// +// Created by Rob Phillips on 5/28/16. +// Copyright © 2016-2019 Down. All rights reserved. +// + +import Foundation + +public enum DownErrors: Error { + /// Thrown when there was an issue converting the Markdown into an abstract syntax tree + case markdownToASTError + + /// Thrown when the abstract syntax tree could not be rendered into another format + case astRenderingError + + /// Thrown when an HTML string cannot be converted into an `NSData` representation + case htmlDataConversionError + + #if os(macOS) + /// Thrown when a custom template bundle has a non-standard bundle format. + /// + /// Specifically, the file URL of the bundle’s subdirectory containing resource files could not be found (i.e. the bundle's `resourceURL` property is nil). + case nonStandardBundleFormatError + #endif +} diff --git a/Example/Pods/Down/Source/Enums & Options/DownOptions.swift b/Example/Pods/Down/Source/Enums & Options/DownOptions.swift new file mode 100644 index 000000000..52d73a840 --- /dev/null +++ b/Example/Pods/Down/Source/Enums & Options/DownOptions.swift @@ -0,0 +1,63 @@ +// +// DownOptions.swift +// Down +// +// Created by Rob Phillips on 5/28/16. +// Copyright © 2016-2019 Down. All rights reserved. +// + +import Foundation +import libcmark + +public struct DownOptions: OptionSet { + public let rawValue: Int32 + public init(rawValue: Int32) { self.rawValue = rawValue } + + /// Default options + public static let `default` = DownOptions(rawValue: CMARK_OPT_DEFAULT) + + // MARK: - Rendering Options + + /// Include a `data-sourcepos` attribute on all block elements + public static let sourcePos = DownOptions(rawValue: CMARK_OPT_SOURCEPOS) + + /// Render `softbreak` elements as hard line breaks. + public static let hardBreaks = DownOptions(rawValue: CMARK_OPT_HARDBREAKS) + + /// Suppress raw HTML and unsafe links (`javascript:`, `vbscript:`, + /// `file:`, and `data:`, except for `image/png`, `image/gif`, + /// `image/jpeg`, or `image/webp` mime types). Raw HTML is replaced + /// by a placeholder HTML comment. Unsafe links are replaced by + /// empty strings. + /// + /// Note: this is the default option as of cmark v0.29.0. Use `unsafe` + /// to disable this behavior. + public static let safe = DownOptions(rawValue: CMARK_OPT_SAFE) + + /// Render raw HTML and unsafe links (`javascript:`, `vbscript:`, + /// `file:`, and `data:`, except for `image/png`, `image/gif`, + /// `image/jpeg`, or `image/webp` mime types). By default, + /// raw HTML is replaced by a placeholder HTML comment. Unsafe + /// links are replaced by empty strings. + /// + /// Note: `safe` is the default as of cmark v0.29.0 + public static let unsafe = DownOptions(rawValue: CMARK_OPT_UNSAFE) + + // MARK: - Parsing Options + + /// Normalize tree by consolidating adjacent text nodes. + public static let normalize = DownOptions(rawValue: CMARK_OPT_NORMALIZE) + + /// Validate UTF-8 in the input before parsing, replacing illegal + /// sequences with the replacement character U+FFFD. + public static let validateUTF8 = DownOptions(rawValue: CMARK_OPT_VALIDATE_UTF8) + + /// Convert straight quotes to curly, --- to em dashes, -- to en dashes. + public static let smart = DownOptions(rawValue: CMARK_OPT_SMART) + + // MARK: - Combo Options + + /// Combines 'unsafe' and 'smart' to render raw HTML and produce smart typography. + public static let smartUnsafe = DownOptions(rawValue: CMARK_OPT_SMART + CMARK_OPT_UNSAFE) + +} diff --git a/Example/Pods/Down/Source/Extensions/NSAttributedString+HTML.swift b/Example/Pods/Down/Source/Extensions/NSAttributedString+HTML.swift new file mode 100644 index 000000000..c48075725 --- /dev/null +++ b/Example/Pods/Down/Source/Extensions/NSAttributedString+HTML.swift @@ -0,0 +1,37 @@ +// +// NSAttributedString+HTML.swift +// Down +// +// Created by Rob Phillips on 6/1/16. +// Copyright © 2016-2019 Down. All rights reserved. +// + +#if !os(Linux) + +#if os(macOS) + import AppKit +#else + import UIKit +#endif + + +extension NSAttributedString { + + /// Instantiates an attributed string with the given HTML string + /// + /// - Parameter htmlString: An HTML string + /// - Throws: `HTMLDataConversionError` or an instantiation error + convenience init(htmlString: String) throws { + guard let data = htmlString.data(using: String.Encoding.utf8) else { + throw DownErrors.htmlDataConversionError + } + + let options: [NSAttributedString.DocumentReadingOptionKey: Any] = [ + .documentType: NSAttributedString.DocumentType.html, + .characterEncoding: NSNumber(value: String.Encoding.utf8.rawValue) + ] + try self.init(data: data, options: options, documentAttributes: nil) + } + +} +#endif // !os(Linux) diff --git a/Example/Pods/Down/Source/Extensions/String+ToHTML.swift b/Example/Pods/Down/Source/Extensions/String+ToHTML.swift new file mode 100644 index 000000000..3691c8beb --- /dev/null +++ b/Example/Pods/Down/Source/Extensions/String+ToHTML.swift @@ -0,0 +1,26 @@ +// +// String+ToHTML.swift +// Down +// +// Created by Rob Phillips on 6/1/16. +// Copyright © 2016-2019 Down. All rights reserved. +// + +import Foundation +import libcmark + +extension String { + + /// Generates an HTML string from the contents of the string (self), which should contain CommonMark Markdown + /// + /// - Parameter options: `DownOptions` to modify parsing or rendering, defaulting to `.default` + /// - Returns: HTML string + /// - Throws: `DownErrors` depending on the scenario + public func toHTML(_ options: DownOptions = .default) throws -> String { + let ast = try DownASTRenderer.stringToAST(self, options: options) + let html = try DownHTMLRenderer.astToHTML(ast, options: options) + cmark_node_free(ast) + return html + } + +} diff --git a/Example/Pods/Down/Source/Renderers/DownASTRenderable.swift b/Example/Pods/Down/Source/Renderers/DownASTRenderable.swift new file mode 100644 index 000000000..43e607995 --- /dev/null +++ b/Example/Pods/Down/Source/Renderers/DownASTRenderable.swift @@ -0,0 +1,64 @@ +// +// DownASTRenderable.swift +// Down +// +// Created by Rob Phillips on 5/31/16. +// Copyright © 2016-2019 Down. All rights reserved. +// + +import Foundation +import libcmark + +public protocol DownASTRenderable: DownRenderable { + func toAST(_ options: DownOptions) throws -> UnsafeMutablePointer<cmark_node> +} + +extension DownASTRenderable { + /// Generates an abstract syntax tree from the `markdownString` property + /// + /// - Parameter options: `DownOptions` to modify parsing or rendering, defaulting to `.default` + /// - Returns: An abstract syntax tree representation of the Markdown input + /// - Throws: `MarkdownToASTError` if conversion fails + public func toAST(_ options: DownOptions = .default) throws -> UnsafeMutablePointer<cmark_node> { + return try DownASTRenderer.stringToAST(markdownString, options: options) + } + + /// Parses the `markdownString` property into an abstract syntax tree and returns the root `Document` node. + /// + /// - Parameter options: `DownOptions` to modify parsing or rendering, defaulting to `.default` + /// - Returns: The root Document node for the abstract syntax tree representation of the Markdown input + /// - Throws: `MarkdownToASTError` if conversion fails + public func toDocument(_ options: DownOptions = .default) throws -> Document { + let tree = try toAST(options) + + guard tree.type == CMARK_NODE_DOCUMENT else { + throw DownErrors.astRenderingError + } + + return Document(cmarkNode: tree) + } +} + +public struct DownASTRenderer { + /// Generates an abstract syntax tree from the given CommonMark Markdown string + /// + /// **Important:** It is the caller's responsibility to call `cmark_node_free(ast)` on the returned value + /// + /// - Parameters: + /// - string: A string containing CommonMark Markdown + /// - options: `DownOptions` to modify parsing or rendering, defaulting to `.default` + /// - Returns: An abstract syntax tree representation of the Markdown input + /// - Throws: `MarkdownToASTError` if conversion fails + public static func stringToAST(_ string: String, options: DownOptions = .default) throws -> UnsafeMutablePointer<cmark_node> { + var tree: UnsafeMutablePointer<cmark_node>? + string.withCString { + let stringLength = Int(strlen($0)) + tree = cmark_parse_document($0, stringLength, options.rawValue) + } + + guard let ast = tree else { + throw DownErrors.markdownToASTError + } + return ast + } +} diff --git a/Example/Pods/Down/Source/Renderers/DownAttributedStringRenderable.swift b/Example/Pods/Down/Source/Renderers/DownAttributedStringRenderable.swift new file mode 100644 index 000000000..e36174ab9 --- /dev/null +++ b/Example/Pods/Down/Source/Renderers/DownAttributedStringRenderable.swift @@ -0,0 +1,54 @@ +// +// DownAttributedStringRenderable.swift +// Down +// +// Created by Rob Phillips on 6/1/16. +// Copyright © 2016-2019 Down. All rights reserved. +// + +#if !os(Linux) +import Foundation +import libcmark + +public protocol DownAttributedStringRenderable: DownHTMLRenderable, DownASTRenderable { + func toAttributedString(_ options: DownOptions, stylesheet: String?) throws -> NSAttributedString + func toAttributedString(_ options: DownOptions, styler: Styler) throws -> NSAttributedString +} + +extension DownAttributedStringRenderable { + /// Generates an `NSAttributedString` from the `markdownString` property + /// + /// **Note:** The attributed string is constructed and rendered via WebKit from html generated from the + /// abstract syntax tree. This process is not background safe and must be executed on the main + /// thread. Additionally, it may be slow to render. For an efficient background safe render, + /// use the `toAttributedString(options: styler:)` method below. + /// + /// - Parameters: + /// - options: `DownOptions` to modify parsing or rendering, defaulting to `.default` + /// - stylesheet: a `String` to use as the CSS stylesheet when rendering, defaulting to a style that uses the `NSAttributedString` default font + /// - Returns: An `NSAttributedString` + /// - Throws: `DownErrors` depending on the scenario + public func toAttributedString(_ options: DownOptions = .default, stylesheet: String? = nil) throws -> NSAttributedString { + let html = try self.toHTML(options) + let defaultStylesheet = "* {font-family: Helvetica } code, pre { font-family: Menlo }" + return try NSAttributedString(htmlString: "<style>" + (stylesheet ?? defaultStylesheet) + "</style>" + html) + } + + /// Generates an `NSAttributedString` from the `markdownString` property + /// + /// **Note:** The attributed string is constructed directly by traversing the abstract syntax tree. It is + /// much faster than the `toAttributedString(options: stylesheet)` method and it can be also be + /// rendered in a background thread. + /// + /// - Parameters: + /// - options: `DownOptions` to modify parsing or rendering + /// - styler: a class/struct conforming to `Styler` to use when rendering the various elements of the attributed string + /// - Returns: An `NSAttributedString` + /// - Throws: `DownErrors` depending on the scenario + public func toAttributedString(_ options: DownOptions = .default, styler: Styler) throws -> NSAttributedString { + let document = try self.toDocument(options) + let visitor = AttributedStringVisitor(styler: styler, options: options) + return document.accept(visitor) + } +} +#endif // !os(Linux) diff --git a/Example/Pods/Down/Source/Renderers/DownCommonMarkRenderable.swift b/Example/Pods/Down/Source/Renderers/DownCommonMarkRenderable.swift new file mode 100644 index 000000000..cf0f2ccfc --- /dev/null +++ b/Example/Pods/Down/Source/Renderers/DownCommonMarkRenderable.swift @@ -0,0 +1,57 @@ +// +// DownCommonMarkRenderable.swift +// Down +// +// Created by Rob Phillips on 5/31/16. +// Copyright © 2016-2019 Down. All rights reserved. +// + +import Foundation +import libcmark + +public protocol DownCommonMarkRenderable: DownRenderable { + func toCommonMark(_ options: DownOptions, width: Int32) throws -> String +} + +extension DownCommonMarkRenderable { + /// Generates a CommonMark Markdown string from the `markdownString` property + /// + /// - Parameters: + /// - options: `DownOptions` to modify parsing or rendering, defaulting to `.default` + /// - width: The width to break on, defaulting to 0 + /// - Returns: CommonMark Markdown string + /// - Throws: `DownErrors` depending on the scenario + public func toCommonMark(_ options: DownOptions = .default, width: Int32 = 0) throws -> String { + let ast = try DownASTRenderer.stringToAST(markdownString, options: options) + let commonMark = try DownCommonMarkRenderer.astToCommonMark(ast, options: options, width: width) + cmark_node_free(ast) + return commonMark + } +} + +public struct DownCommonMarkRenderer { + /// Generates a CommonMark Markdown string from the given abstract syntax tree + /// + /// **Note:** caller is responsible for calling `cmark_node_free(ast)` after this returns + /// + /// - Parameters: + /// - ast: The `cmark_node` representing the abstract syntax tree + /// - options: `DownOptions` to modify parsing or rendering, defaulting to `.default` + /// - width: The width to break on, defaulting to 0 + /// - Returns: CommonMark Markdown string + /// - Throws: `ASTRenderingError` if the AST could not be converted + public static func astToCommonMark(_ ast: UnsafeMutablePointer<cmark_node>, + options: DownOptions = .default, + width: Int32 = 0) throws -> String { + guard let cCommonMarkString = cmark_render_commonmark(ast, options.rawValue, width) else { + throw DownErrors.astRenderingError + } + defer { free(cCommonMarkString) } + + guard let commonMarkString = String(cString: cCommonMarkString, encoding: String.Encoding.utf8) else { + throw DownErrors.astRenderingError + } + + return commonMarkString + } +} diff --git a/Example/Pods/Down/Source/Renderers/DownGroffRenderable.swift b/Example/Pods/Down/Source/Renderers/DownGroffRenderable.swift new file mode 100644 index 000000000..11383827f --- /dev/null +++ b/Example/Pods/Down/Source/Renderers/DownGroffRenderable.swift @@ -0,0 +1,57 @@ +// +// DownGroffRenderable.swift +// Down +// +// Created by Rob Phillips on 5/31/16. +// Copyright © 2016-2019 Down. All rights reserved. +// + +import Foundation +import libcmark + +public protocol DownGroffRenderable: DownRenderable { + func toGroff(_ options: DownOptions, width: Int32) throws -> String +} + +extension DownGroffRenderable { + /// Generates a groff man string from the `markdownString` property + /// + /// - Parameters: + /// - options: `DownOptions` to modify parsing or rendering, defaulting to `.default` + /// - width: The width to break on, defaulting to 0 + /// - Returns: groff man string + /// - Throws: `DownErrors` depending on the scenario + public func toGroff(_ options: DownOptions = .default, width: Int32 = 0) throws -> String { + let ast = try DownASTRenderer.stringToAST(markdownString, options: options) + let groff = try DownGroffRenderer.astToGroff(ast, options: options, width: width) + cmark_node_free(ast) + return groff + } +} + +public struct DownGroffRenderer { + /// Generates a groff man string from the given abstract syntax tree + /// + /// **Note:** caller is responsible for calling `cmark_node_free(ast)` after this returns + /// + /// - Parameters: + /// - ast: The `cmark_node` representing the abstract syntax tree + /// - options: `DownOptions` to modify parsing or rendering, defaulting to `.default` + /// - width: The width to break on, defaulting to 0 + /// - Returns: groff man string + /// - Throws: `ASTRenderingError` if the AST could not be converted + public static func astToGroff(_ ast: UnsafeMutablePointer<cmark_node>, + options: DownOptions = .default, + width: Int32 = 0) throws -> String { + guard let cGroffString = cmark_render_man(ast, options.rawValue, width) else { + throw DownErrors.astRenderingError + } + defer { free(cGroffString) } + + guard let groffString = String(cString: cGroffString, encoding: String.Encoding.utf8) else { + throw DownErrors.astRenderingError + } + + return groffString + } +} diff --git a/Example/Pods/Down/Source/Renderers/DownHTMLRenderable.swift b/Example/Pods/Down/Source/Renderers/DownHTMLRenderable.swift new file mode 100644 index 000000000..969021085 --- /dev/null +++ b/Example/Pods/Down/Source/Renderers/DownHTMLRenderable.swift @@ -0,0 +1,49 @@ +// +// DownHTMLRenderable.swift +// Down +// +// Created by Rob Phillips on 5/28/16. +// Copyright © 2016-2019 Down. All rights reserved. +// + +import Foundation +import libcmark + +public protocol DownHTMLRenderable: DownRenderable { + func toHTML(_ options: DownOptions) throws -> String +} + +extension DownHTMLRenderable { + /// Generates an HTML string from the `markdownString` property + /// + /// - Parameter options: `DownOptions` to modify parsing or rendering, defaulting to `.default` + /// - Returns: HTML string + /// - Throws: `DownErrors` depending on the scenario + public func toHTML(_ options: DownOptions = .default) throws -> String { + return try markdownString.toHTML(options) + } +} + +public struct DownHTMLRenderer { + /// Generates an HTML string from the given abstract syntax tree + /// + /// **Note:** caller is responsible for calling `cmark_node_free(ast)` after this returns + /// + /// - Parameters: + /// - ast: The `cmark_node` representing the abstract syntax tree + /// - options: `DownOptions` to modify parsing or rendering, defaulting to `.default` + /// - Returns: HTML string + /// - Throws: `ASTRenderingError` if the AST could not be converted + public static func astToHTML(_ ast: UnsafeMutablePointer<cmark_node>, options: DownOptions = .default) throws -> String { + guard let cHTMLString = cmark_render_html(ast, options.rawValue) else { + throw DownErrors.astRenderingError + } + defer { free(cHTMLString) } + + guard let htmlString = String(cString: cHTMLString, encoding: String.Encoding.utf8) else { + throw DownErrors.astRenderingError + } + + return htmlString + } +} diff --git a/Example/Pods/Down/Source/Renderers/DownLaTeXRenderable.swift b/Example/Pods/Down/Source/Renderers/DownLaTeXRenderable.swift new file mode 100644 index 000000000..78f65e363 --- /dev/null +++ b/Example/Pods/Down/Source/Renderers/DownLaTeXRenderable.swift @@ -0,0 +1,57 @@ +// +// DownLaTeXRenderable.swift +// Down +// +// Created by Rob Phillips on 5/31/16. +// Copyright © 2016-2019 Down. All rights reserved. +// + +import Foundation +import libcmark + +public protocol DownLaTeXRenderable: DownRenderable { + func toLaTeX(_ options: DownOptions, width: Int32) throws -> String +} + +extension DownLaTeXRenderable { + /// Generates a LaTeX string from the `markdownString` property + /// + /// - Parameters: + /// - options: `DownOptions` to modify parsing or rendering, defaulting to `.default` + /// - width: The width to break on, defaulting to 0 + /// - Returns: LaTeX string + /// - Throws: `DownErrors` depending on the scenario + public func toLaTeX(_ options: DownOptions = .default, width: Int32 = 0) throws -> String { + let ast = try DownASTRenderer.stringToAST(markdownString, options: options) + let latex = try DownLaTeXRenderer.astToLaTeX(ast, options: options, width: width) + cmark_node_free(ast) + return latex + } +} + +public struct DownLaTeXRenderer { + /// Generates a LaTeX string from the given abstract syntax tree + /// + /// **Note:** caller is responsible for calling `cmark_node_free(ast)` after this returns + /// + /// - Parameters: + /// - ast: The `cmark_node` representing the abstract syntax tree + /// - options: `DownOptions` to modify parsing or rendering, defaulting to `.default` + /// - width: The width to break on, defaulting to 0 + /// - Returns: LaTeX string + /// - Throws: `ASTRenderingError` if the AST could not be converted + public static func astToLaTeX(_ ast: UnsafeMutablePointer<cmark_node>, + options: DownOptions = .default, + width: Int32 = 0) throws -> String { + guard let cLatexString = cmark_render_latex(ast, options.rawValue, width) else { + throw DownErrors.astRenderingError + } + defer { free(cLatexString) } + + guard let latexString = String(cString: cLatexString, encoding: String.Encoding.utf8) else { + throw DownErrors.astRenderingError + } + + return latexString + } +} diff --git a/Example/Pods/Down/Source/Renderers/DownRenderable.swift b/Example/Pods/Down/Source/Renderers/DownRenderable.swift new file mode 100644 index 000000000..c5daec927 --- /dev/null +++ b/Example/Pods/Down/Source/Renderers/DownRenderable.swift @@ -0,0 +1,14 @@ +// +// DownRenderable.swift +// Down +// +// Created by Rob Phillips on 5/28/16. +// Copyright © 2016-2019 Down. All rights reserved. +// + +import Foundation + +public protocol DownRenderable { + /// A string containing CommonMark Markdown + var markdownString: String { get set } +} diff --git a/Example/Pods/Down/Source/Renderers/DownXMLRenderable.swift b/Example/Pods/Down/Source/Renderers/DownXMLRenderable.swift new file mode 100644 index 000000000..a2cbf5cb1 --- /dev/null +++ b/Example/Pods/Down/Source/Renderers/DownXMLRenderable.swift @@ -0,0 +1,52 @@ +// +// DownXMLRenderable.swift +// Down +// +// Created by Rob Phillips on 5/31/16. +// Copyright © 2016-2019 Down. All rights reserved. +// + +import Foundation +import libcmark + +public protocol DownXMLRenderable: DownRenderable { + func toXML(_ options: DownOptions) throws -> String +} + +extension DownXMLRenderable { + /// Generates an XML string from the `markdownString` property + /// + /// - Parameter options: `DownOptions` to modify parsing or rendering, defaulting to `.default` + /// - Returns: XML string + /// - Throws: `DownErrors` depending on the scenario + public func toXML(_ options: DownOptions = .default) throws -> String { + let ast = try DownASTRenderer.stringToAST(markdownString, options: options) + let xml = try DownXMLRenderer.astToXML(ast, options: options) + cmark_node_free(ast) + return xml + } +} + +public struct DownXMLRenderer { + /// Generates an XML string from the given abstract syntax tree + /// + /// **Note:** caller is responsible for calling `cmark_node_free(ast)` after this returns + /// + /// - Parameters: + /// - ast: The `cmark_node` representing the abstract syntax tree + /// - options: `DownOptions` to modify parsing or rendering, defaulting to `.default` + /// - Returns: XML string + /// - Throws: `ASTRenderingError` if the AST could not be converted + public static func astToXML(_ ast: UnsafeMutablePointer<cmark_node>, options: DownOptions = .default) throws -> String { + guard let cXMLString = cmark_render_xml(ast, options.rawValue) else { + throw DownErrors.astRenderingError + } + defer { free(cXMLString) } + + guard let xmlString = String(cString: cXMLString, encoding: String.Encoding.utf8) else { + throw DownErrors.astRenderingError + } + + return xmlString + } +} diff --git a/Example/Pods/Down/Source/cmark/COPYING b/Example/Pods/Down/Source/cmark/COPYING new file mode 100755 index 000000000..db88a81b3 --- /dev/null +++ b/Example/Pods/Down/Source/cmark/COPYING @@ -0,0 +1,170 @@ +Copyright (c) 2014, John MacFarlane + +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +----- + +houdini.h, houdini_href_e.c, houdini_html_e.c, houdini_html_u.c + +derive from https://github.com/vmg/houdini (with some modifications) + +Copyright (C) 2012 Vicent Martí + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----- + +buffer.h, buffer.c, chunk.h + +are derived from code (C) 2012 Github, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----- + +utf8.c and utf8.c + +are derived from utf8proc +(<http://www.public-software-group.org/utf8proc>), +(C) 2009 Public Software Group e. V., Berlin, Germany. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +----- + +The normalization code in normalize.py was derived from the +markdowntest project, Copyright 2013 Karl Dubost: + +The MIT License (MIT) + +Copyright (c) 2013 Karl Dubost + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----- + +The CommonMark spec (test/spec.txt) is + +Copyright (C) 2014-15 John MacFarlane + +Released under the Creative Commons CC-BY-SA 4.0 license: +<http://creativecommons.org/licenses/by-sa/4.0/>. + +----- + +The test software in test/ is + +Copyright (c) 2014, John MacFarlane + +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/Example/Pods/Down/Source/cmark/blocks.c b/Example/Pods/Down/Source/cmark/blocks.c new file mode 100755 index 000000000..b6077eb96 --- /dev/null +++ b/Example/Pods/Down/Source/cmark/blocks.c @@ -0,0 +1,1281 @@ +/** + * Block parsing implementation. + * + * For a high-level overview of the block parsing process, + * see http://spec.commonmark.org/0.24/#phase-1-block-structure + */ + +#include <stdlib.h> +#include <assert.h> +#include <stdio.h> + +#include "cmark_ctype.h" +#include "config.h" +#include "parser.h" +#include "cmark.h" +#include "node.h" +#include "references.h" +#include "utf8.h" +#include "scanners.h" +#include "inlines.h" +#include "houdini.h" +#include "buffer.h" + +#define CODE_INDENT 4 +#define TAB_STOP 4 + +#ifndef MIN +#define MIN(x, y) ((x < y) ? x : y) +#endif + +#define peek_at(i, n) (i)->data[n] + +static bool S_last_line_blank(const cmark_node *node) { + return (node->flags & CMARK_NODE__LAST_LINE_BLANK) != 0; +} + +static bool S_last_line_checked(const cmark_node *node) { + return (node->flags & CMARK_NODE__LAST_LINE_CHECKED) != 0; +} + +static CMARK_INLINE cmark_node_type S_type(const cmark_node *node) { + return (cmark_node_type)node->type; +} + +static void S_set_last_line_blank(cmark_node *node, bool is_blank) { + if (is_blank) + node->flags |= CMARK_NODE__LAST_LINE_BLANK; + else + node->flags &= ~CMARK_NODE__LAST_LINE_BLANK; +} + +static void S_set_last_line_checked(cmark_node *node) { + node->flags |= CMARK_NODE__LAST_LINE_CHECKED; +} + +static CMARK_INLINE bool S_is_line_end_char(char c) { + return (c == '\n' || c == '\r'); +} + +static CMARK_INLINE bool S_is_space_or_tab(char c) { + return (c == ' ' || c == '\t'); +} + +static void S_parser_feed(cmark_parser *parser, const unsigned char *buffer, + size_t len, bool eof); + +static void S_process_line(cmark_parser *parser, const unsigned char *buffer, + bufsize_t bytes); + +static cmark_node *make_block(cmark_mem *mem, cmark_node_type tag, + int start_line, int start_column) { + cmark_node *e; + + e = (cmark_node *)mem->calloc(1, sizeof(*e)); + cmark_strbuf_init(mem, &e->content, 32); + e->type = (uint16_t)tag; + e->flags = CMARK_NODE__OPEN; + e->start_line = start_line; + e->start_column = start_column; + e->end_line = start_line; + + return e; +} + +// Create a root document node. +static cmark_node *make_document(cmark_mem *mem) { + cmark_node *e = make_block(mem, CMARK_NODE_DOCUMENT, 1, 1); + return e; +} + +cmark_parser *cmark_parser_new_with_mem(int options, cmark_mem *mem) { + cmark_parser *parser = (cmark_parser *)mem->calloc(1, sizeof(cmark_parser)); + parser->mem = mem; + + cmark_node *document = make_document(mem); + + cmark_strbuf_init(mem, &parser->curline, 256); + cmark_strbuf_init(mem, &parser->linebuf, 0); + + parser->refmap = cmark_reference_map_new(mem); + parser->root = document; + parser->current = document; + parser->line_number = 0; + parser->offset = 0; + parser->column = 0; + parser->first_nonspace = 0; + parser->first_nonspace_column = 0; + parser->thematic_break_kill_pos = 0; + parser->indent = 0; + parser->blank = false; + parser->partially_consumed_tab = false; + parser->last_line_length = 0; + parser->options = options; + parser->last_buffer_ended_with_cr = false; + + return parser; +} + +cmark_parser *cmark_parser_new(int options) { + extern cmark_mem DEFAULT_MEM_ALLOCATOR; + return cmark_parser_new_with_mem(options, &DEFAULT_MEM_ALLOCATOR); +} + +void cmark_parser_free(cmark_parser *parser) { + cmark_mem *mem = parser->mem; + cmark_strbuf_free(&parser->curline); + cmark_strbuf_free(&parser->linebuf); + cmark_reference_map_free(parser->refmap); + mem->free(parser); +} + +static cmark_node *finalize(cmark_parser *parser, cmark_node *b); + +// Returns true if line has only space characters, else false. +static bool is_blank(cmark_strbuf *s, bufsize_t offset) { + while (offset < s->size) { + switch (s->ptr[offset]) { + case '\r': + case '\n': + return true; + case ' ': + offset++; + break; + case '\t': + offset++; + break; + default: + return false; + } + } + + return true; +} + +static CMARK_INLINE bool can_contain(cmark_node_type parent_type, + cmark_node_type child_type) { + return (parent_type == CMARK_NODE_DOCUMENT || + parent_type == CMARK_NODE_BLOCK_QUOTE || + parent_type == CMARK_NODE_ITEM || + (parent_type == CMARK_NODE_LIST && child_type == CMARK_NODE_ITEM)); +} + +static CMARK_INLINE bool accepts_lines(cmark_node_type block_type) { + return (block_type == CMARK_NODE_PARAGRAPH || + block_type == CMARK_NODE_HEADING || + block_type == CMARK_NODE_CODE_BLOCK); +} + +static CMARK_INLINE bool contains_inlines(cmark_node_type block_type) { + return (block_type == CMARK_NODE_PARAGRAPH || + block_type == CMARK_NODE_HEADING); +} + +static void add_line(cmark_node *node, cmark_chunk *ch, cmark_parser *parser) { + int chars_to_tab; + int i; + assert(node->flags & CMARK_NODE__OPEN); + if (parser->partially_consumed_tab) { + parser->offset += 1; // skip over tab + // add space characters: + chars_to_tab = TAB_STOP - (parser->column % TAB_STOP); + for (i = 0; i < chars_to_tab; i++) { + cmark_strbuf_putc(&node->content, ' '); + } + } + cmark_strbuf_put(&node->content, ch->data + parser->offset, + ch->len - parser->offset); +} + +static void remove_trailing_blank_lines(cmark_strbuf *ln) { + bufsize_t i; + unsigned char c; + + for (i = ln->size - 1; i >= 0; --i) { + c = ln->ptr[i]; + + if (c != ' ' && c != '\t' && !S_is_line_end_char(c)) + break; + } + + if (i < 0) { + cmark_strbuf_clear(ln); + return; + } + + for (; i < ln->size; ++i) { + c = ln->ptr[i]; + + if (!S_is_line_end_char(c)) + continue; + + cmark_strbuf_truncate(ln, i); + break; + } +} + +// Check to see if a node ends with a blank line, descending +// if needed into lists and sublists. +static bool S_ends_with_blank_line(cmark_node *node) { + if (S_last_line_checked(node)) { + return(S_last_line_blank(node)); + } else if ((S_type(node) == CMARK_NODE_LIST || + S_type(node) == CMARK_NODE_ITEM) && node->last_child) { + S_set_last_line_checked(node); + return(S_ends_with_blank_line(node->last_child)); + } else { + S_set_last_line_checked(node); + return (S_last_line_blank(node)); + } +} + +// returns true if content remains after link defs are resolved. +static bool resolve_reference_link_definitions( + cmark_parser *parser, + cmark_node *b) { + bufsize_t pos; + cmark_strbuf *node_content = &b->content; + cmark_chunk chunk = {node_content->ptr, node_content->size, 0}; + while (chunk.len && chunk.data[0] == '[' && + (pos = cmark_parse_reference_inline(parser->mem, &chunk, + parser->refmap))) { + + chunk.data += pos; + chunk.len -= pos; + } + cmark_strbuf_drop(node_content, (node_content->size - chunk.len)); + return !is_blank(&b->content, 0); +} + +static cmark_node *finalize(cmark_parser *parser, cmark_node *b) { + bufsize_t pos; + cmark_node *item; + cmark_node *subitem; + cmark_node *parent; + bool has_content; + + parent = b->parent; + assert(b->flags & + CMARK_NODE__OPEN); // shouldn't call finalize on closed blocks + b->flags &= ~CMARK_NODE__OPEN; + + if (parser->curline.size == 0) { + // end of input - line number has not been incremented + b->end_line = parser->line_number; + b->end_column = parser->last_line_length; + } else if (S_type(b) == CMARK_NODE_DOCUMENT || + (S_type(b) == CMARK_NODE_CODE_BLOCK && b->as.code.fenced) || + (S_type(b) == CMARK_NODE_HEADING && b->as.heading.setext)) { + b->end_line = parser->line_number; + b->end_column = parser->curline.size; + if (b->end_column && parser->curline.ptr[b->end_column - 1] == '\n') + b->end_column -= 1; + if (b->end_column && parser->curline.ptr[b->end_column - 1] == '\r') + b->end_column -= 1; + } else { + b->end_line = parser->line_number - 1; + b->end_column = parser->last_line_length; + } + + cmark_strbuf *node_content = &b->content; + + switch (S_type(b)) { + case CMARK_NODE_PARAGRAPH: + { + has_content = resolve_reference_link_definitions(parser, b); + if (!has_content) { + // remove blank node (former reference def) + cmark_node_free(b); + } + break; + } + + case CMARK_NODE_CODE_BLOCK: + if (!b->as.code.fenced) { // indented code + remove_trailing_blank_lines(node_content); + cmark_strbuf_putc(node_content, '\n'); + } else { + // first line of contents becomes info + for (pos = 0; pos < node_content->size; ++pos) { + if (S_is_line_end_char(node_content->ptr[pos])) + break; + } + assert(pos < node_content->size); + + cmark_strbuf tmp = CMARK_BUF_INIT(parser->mem); + houdini_unescape_html_f(&tmp, node_content->ptr, pos); + cmark_strbuf_trim(&tmp); + cmark_strbuf_unescape(&tmp); + b->as.code.info = cmark_chunk_buf_detach(&tmp); + + if (node_content->ptr[pos] == '\r') + pos += 1; + if (node_content->ptr[pos] == '\n') + pos += 1; + cmark_strbuf_drop(node_content, pos); + } + b->as.code.literal = cmark_chunk_buf_detach(node_content); + break; + + case CMARK_NODE_HTML_BLOCK: + b->as.literal = cmark_chunk_buf_detach(node_content); + break; + + case CMARK_NODE_LIST: // determine tight/loose status + b->as.list.tight = true; // tight by default + item = b->first_child; + + while (item) { + // check for non-final non-empty list item ending with blank line: + if (S_last_line_blank(item) && item->next) { + b->as.list.tight = false; + break; + } + // recurse into children of list item, to see if there are + // spaces between them: + subitem = item->first_child; + while (subitem) { + if ((item->next || subitem->next) && + S_ends_with_blank_line(subitem)) { + b->as.list.tight = false; + break; + } + subitem = subitem->next; + } + if (!(b->as.list.tight)) { + break; + } + item = item->next; + } + + break; + + default: + break; + } + + return parent; +} + +// Add a node as child of another. Return pointer to child. +static cmark_node *add_child(cmark_parser *parser, cmark_node *parent, + cmark_node_type block_type, int start_column) { + assert(parent); + + // if 'parent' isn't the kind of node that can accept this child, + // then back up til we hit a node that can. + while (!can_contain(S_type(parent), block_type)) { + parent = finalize(parser, parent); + } + + cmark_node *child = + make_block(parser->mem, block_type, parser->line_number, start_column); + child->parent = parent; + + if (parent->last_child) { + parent->last_child->next = child; + child->prev = parent->last_child; + } else { + parent->first_child = child; + child->prev = NULL; + } + parent->last_child = child; + return child; +} + +// Walk through node and all children, recursively, parsing +// string content into inline content where appropriate. +static void process_inlines(cmark_mem *mem, cmark_node *root, + cmark_reference_map *refmap, int options) { + cmark_iter *iter = cmark_iter_new(root); + cmark_node *cur; + cmark_event_type ev_type; + + while ((ev_type = cmark_iter_next(iter)) != CMARK_EVENT_DONE) { + cur = cmark_iter_get_node(iter); + if (ev_type == CMARK_EVENT_ENTER) { + if (contains_inlines(S_type(cur))) { + cmark_parse_inlines(mem, cur, refmap, options); + } + } + } + + cmark_iter_free(iter); +} + +// Attempts to parse a list item marker (bullet or enumerated). +// On success, returns length of the marker, and populates +// data with the details. On failure, returns 0. +static bufsize_t parse_list_marker(cmark_mem *mem, cmark_chunk *input, + bufsize_t pos, bool interrupts_paragraph, + cmark_list **dataptr) { + unsigned char c; + bufsize_t startpos; + cmark_list *data; + bufsize_t i; + + startpos = pos; + c = peek_at(input, pos); + + if (c == '*' || c == '-' || c == '+') { + pos++; + if (!cmark_isspace(peek_at(input, pos))) { + return 0; + } + + if (interrupts_paragraph) { + i = pos; + // require non-blank content after list marker: + while (S_is_space_or_tab(peek_at(input, i))) { + i++; + } + if (peek_at(input, i) == '\n') { + return 0; + } + } + + data = (cmark_list *)mem->calloc(1, sizeof(*data)); + data->marker_offset = 0; // will be adjusted later + data->list_type = CMARK_BULLET_LIST; + data->bullet_char = c; + data->start = 0; + data->delimiter = CMARK_NO_DELIM; + data->tight = false; + } else if (cmark_isdigit(c)) { + int start = 0; + int digits = 0; + + do { + start = (10 * start) + (peek_at(input, pos) - '0'); + pos++; + digits++; + // We limit to 9 digits to avoid overflow, + // assuming max int is 2^31 - 1 + // This also seems to be the limit for 'start' in some browsers. + } while (digits < 9 && cmark_isdigit(peek_at(input, pos))); + + if (interrupts_paragraph && start != 1) { + return 0; + } + c = peek_at(input, pos); + if (c == '.' || c == ')') { + pos++; + if (!cmark_isspace(peek_at(input, pos))) { + return 0; + } + if (interrupts_paragraph) { + // require non-blank content after list marker: + i = pos; + while (S_is_space_or_tab(peek_at(input, i))) { + i++; + } + if (S_is_line_end_char(peek_at(input, i))) { + return 0; + } + } + + data = (cmark_list *)mem->calloc(1, sizeof(*data)); + data->marker_offset = 0; // will be adjusted later + data->list_type = CMARK_ORDERED_LIST; + data->bullet_char = 0; + data->start = start; + data->delimiter = (c == '.' ? CMARK_PERIOD_DELIM : CMARK_PAREN_DELIM); + data->tight = false; + } else { + return 0; + } + } else { + return 0; + } + + *dataptr = data; + return (pos - startpos); +} + +// Return 1 if list item belongs in list, else 0. +static int lists_match(cmark_list *list_data, cmark_list *item_data) { + return (list_data->list_type == item_data->list_type && + list_data->delimiter == item_data->delimiter && + // list_data->marker_offset == item_data.marker_offset && + list_data->bullet_char == item_data->bullet_char); +} + +static cmark_node *finalize_document(cmark_parser *parser) { + while (parser->current != parser->root) { + parser->current = finalize(parser, parser->current); + } + + finalize(parser, parser->root); + process_inlines(parser->mem, parser->root, parser->refmap, parser->options); + + return parser->root; +} + +cmark_node *cmark_parse_file(FILE *f, int options) { + unsigned char buffer[4096]; + cmark_parser *parser = cmark_parser_new(options); + size_t bytes; + cmark_node *document; + + while ((bytes = fread(buffer, 1, sizeof(buffer), f)) > 0) { + bool eof = bytes < sizeof(buffer); + S_parser_feed(parser, buffer, bytes, eof); + if (eof) { + break; + } + } + + document = cmark_parser_finish(parser); + cmark_parser_free(parser); + return document; +} + +cmark_node *cmark_parse_document(const char *buffer, size_t len, int options) { + cmark_parser *parser = cmark_parser_new(options); + cmark_node *document; + + S_parser_feed(parser, (const unsigned char *)buffer, len, true); + + document = cmark_parser_finish(parser); + cmark_parser_free(parser); + return document; +} + +void cmark_parser_feed(cmark_parser *parser, const char *buffer, size_t len) { + S_parser_feed(parser, (const unsigned char *)buffer, len, false); +} + +static void S_parser_feed(cmark_parser *parser, const unsigned char *buffer, + size_t len, bool eof) { + const unsigned char *end = buffer + len; + static const uint8_t repl[] = {239, 191, 189}; + + if (parser->last_buffer_ended_with_cr && *buffer == '\n') { + // skip NL if last buffer ended with CR ; see #117 + buffer++; + } + parser->last_buffer_ended_with_cr = false; + while (buffer < end) { + const unsigned char *eol; + bufsize_t chunk_len; + bool process = false; + for (eol = buffer; eol < end; ++eol) { + if (S_is_line_end_char(*eol)) { + process = true; + break; + } + if (*eol == '\0' && eol < end) { + break; + } + } + if (eol >= end && eof) { + process = true; + } + + chunk_len = (eol - buffer); + if (process) { + if (parser->linebuf.size > 0) { + cmark_strbuf_put(&parser->linebuf, buffer, chunk_len); + S_process_line(parser, parser->linebuf.ptr, parser->linebuf.size); + cmark_strbuf_clear(&parser->linebuf); + } else { + S_process_line(parser, buffer, chunk_len); + } + } else { + if (eol < end && *eol == '\0') { + // omit NULL byte + cmark_strbuf_put(&parser->linebuf, buffer, chunk_len); + // add replacement character + cmark_strbuf_put(&parser->linebuf, repl, 3); + } else { + cmark_strbuf_put(&parser->linebuf, buffer, chunk_len); + } + } + + buffer += chunk_len; + if (buffer < end) { + if (*buffer == '\0') { + // skip over NULL + buffer++; + } else { + // skip over line ending characters + if (*buffer == '\r') { + buffer++; + if (buffer == end) + parser->last_buffer_ended_with_cr = true; + } + if (buffer < end && *buffer == '\n') + buffer++; + } + } + } +} + +static void chop_trailing_hashtags(cmark_chunk *ch) { + bufsize_t n, orig_n; + + cmark_chunk_rtrim(ch); + orig_n = n = ch->len - 1; + + // if string ends in space followed by #s, remove these: + while (n >= 0 && peek_at(ch, n) == '#') + n--; + + // Check for a space before the final #s: + if (n != orig_n && n >= 0 && S_is_space_or_tab(peek_at(ch, n))) { + ch->len = n; + cmark_chunk_rtrim(ch); + } +} + +// Check for thematic break. On failure, return 0 and update +// thematic_break_kill_pos with the index at which the +// parse fails. On success, return length of match. +// "...three or more hyphens, asterisks, +// or underscores on a line by themselves. If you wish, you may use +// spaces between the hyphens or asterisks." +static int S_scan_thematic_break(cmark_parser *parser, cmark_chunk *input, + bufsize_t offset) { + bufsize_t i; + char c; + char nextc = '\0'; + int count; + i = offset; + c = peek_at(input, i); + if (!(c == '*' || c == '_' || c == '-')) { + parser->thematic_break_kill_pos = i; + return 0; + } + count = 1; + while ((nextc = peek_at(input, ++i))) { + if (nextc == c) { + count++; + } else if (nextc != ' ' && nextc != '\t') { + break; + } + } + if (count >= 3 && (nextc == '\r' || nextc == '\n')) { + return (i - offset) + 1; + } else { + parser->thematic_break_kill_pos = i; + return 0; + } +} + +// Find first nonspace character from current offset, setting +// parser->first_nonspace, parser->first_nonspace_column, +// parser->indent, and parser->blank. Does not advance parser->offset. +static void S_find_first_nonspace(cmark_parser *parser, cmark_chunk *input) { + char c; + int chars_to_tab = TAB_STOP - (parser->column % TAB_STOP); + + if (parser->first_nonspace <= parser->offset) { + parser->first_nonspace = parser->offset; + parser->first_nonspace_column = parser->column; + while ((c = peek_at(input, parser->first_nonspace))) { + if (c == ' ') { + parser->first_nonspace += 1; + parser->first_nonspace_column += 1; + chars_to_tab = chars_to_tab - 1; + if (chars_to_tab == 0) { + chars_to_tab = TAB_STOP; + } + } else if (c == '\t') { + parser->first_nonspace += 1; + parser->first_nonspace_column += chars_to_tab; + chars_to_tab = TAB_STOP; + } else { + break; + } + } + } + + parser->indent = parser->first_nonspace_column - parser->column; + parser->blank = S_is_line_end_char(peek_at(input, parser->first_nonspace)); +} + +// Advance parser->offset and parser->column. parser->offset is the +// byte position in input; parser->column is a virtual column number +// that takes into account tabs. (Multibyte characters are not taken +// into account, because the Markdown line prefixes we are interested in +// analyzing are entirely ASCII.) The count parameter indicates +// how far to advance the offset. If columns is true, then count +// indicates a number of columns; otherwise, a number of bytes. +// If advancing a certain number of columns partially consumes +// a tab character, parser->partially_consumed_tab is set to true. +static void S_advance_offset(cmark_parser *parser, cmark_chunk *input, + bufsize_t count, bool columns) { + char c; + int chars_to_tab; + int chars_to_advance; + while (count > 0 && (c = peek_at(input, parser->offset))) { + if (c == '\t') { + chars_to_tab = TAB_STOP - (parser->column % TAB_STOP); + if (columns) { + parser->partially_consumed_tab = chars_to_tab > count; + chars_to_advance = MIN(count, chars_to_tab); + parser->column += chars_to_advance; + parser->offset += (parser->partially_consumed_tab ? 0 : 1); + count -= chars_to_advance; + } else { + parser->partially_consumed_tab = false; + parser->column += chars_to_tab; + parser->offset += 1; + count -= 1; + } + } else { + parser->partially_consumed_tab = false; + parser->offset += 1; + parser->column += 1; // assume ascii; block starts are ascii + count -= 1; + } + } +} + +static bool S_last_child_is_open(cmark_node *container) { + return container->last_child && + (container->last_child->flags & CMARK_NODE__OPEN); +} + +static bool parse_block_quote_prefix(cmark_parser *parser, cmark_chunk *input) { + bool res = false; + bufsize_t matched = 0; + + matched = + parser->indent <= 3 && peek_at(input, parser->first_nonspace) == '>'; + if (matched) { + + S_advance_offset(parser, input, parser->indent + 1, true); + + if (S_is_space_or_tab(peek_at(input, parser->offset))) { + S_advance_offset(parser, input, 1, true); + } + + res = true; + } + return res; +} + +static bool parse_node_item_prefix(cmark_parser *parser, cmark_chunk *input, + cmark_node *container) { + bool res = false; + + if (parser->indent >= + container->as.list.marker_offset + container->as.list.padding) { + S_advance_offset(parser, input, container->as.list.marker_offset + + container->as.list.padding, + true); + res = true; + } else if (parser->blank && container->first_child != NULL) { + // if container->first_child is NULL, then the opening line + // of the list item was blank after the list marker; in this + // case, we are done with the list item. + S_advance_offset(parser, input, parser->first_nonspace - parser->offset, + false); + res = true; + } + return res; +} + +static bool parse_code_block_prefix(cmark_parser *parser, cmark_chunk *input, + cmark_node *container, + bool *should_continue) { + bool res = false; + + if (!container->as.code.fenced) { // indented + if (parser->indent >= CODE_INDENT) { + S_advance_offset(parser, input, CODE_INDENT, true); + res = true; + } else if (parser->blank) { + S_advance_offset(parser, input, parser->first_nonspace - parser->offset, + false); + res = true; + } + } else { // fenced + bufsize_t matched = 0; + + if (parser->indent <= 3 && (peek_at(input, parser->first_nonspace) == + container->as.code.fence_char)) { + matched = scan_close_code_fence(input, parser->first_nonspace); + } + + if (matched >= container->as.code.fence_length) { + // closing fence - and since we're at + // the end of a line, we can stop processing it: + *should_continue = false; + S_advance_offset(parser, input, matched, false); + parser->current = finalize(parser, container); + } else { + // skip opt. spaces of fence parser->offset + int i = container->as.code.fence_offset; + + while (i > 0 && S_is_space_or_tab(peek_at(input, parser->offset))) { + S_advance_offset(parser, input, 1, true); + i--; + } + res = true; + } + } + + return res; +} + +static bool parse_html_block_prefix(cmark_parser *parser, + cmark_node *container) { + bool res = false; + int html_block_type = container->as.html_block_type; + + assert(html_block_type >= 1 && html_block_type <= 7); + switch (html_block_type) { + case 1: + case 2: + case 3: + case 4: + case 5: + // these types of blocks can accept blanks + res = true; + break; + case 6: + case 7: + res = !parser->blank; + break; + } + + return res; +} + +/** + * For each containing node, try to parse the associated line start. + * + * Will not close unmatched blocks, as we may have a lazy continuation + * line -> http://spec.commonmark.org/0.24/#lazy-continuation-line + * + * Returns: The last matching node, or NULL + */ +static cmark_node *check_open_blocks(cmark_parser *parser, cmark_chunk *input, + bool *all_matched) { + bool should_continue = true; + *all_matched = false; + cmark_node *container = parser->root; + cmark_node_type cont_type; + + while (S_last_child_is_open(container)) { + container = container->last_child; + cont_type = S_type(container); + + S_find_first_nonspace(parser, input); + + switch (cont_type) { + case CMARK_NODE_BLOCK_QUOTE: + if (!parse_block_quote_prefix(parser, input)) + goto done; + break; + case CMARK_NODE_ITEM: + if (!parse_node_item_prefix(parser, input, container)) + goto done; + break; + case CMARK_NODE_CODE_BLOCK: + if (!parse_code_block_prefix(parser, input, container, &should_continue)) + goto done; + break; + case CMARK_NODE_HEADING: + // a heading can never contain more than one line + goto done; + case CMARK_NODE_HTML_BLOCK: + if (!parse_html_block_prefix(parser, container)) + goto done; + break; + case CMARK_NODE_PARAGRAPH: + if (parser->blank) + goto done; + break; + default: + break; + } + } + + *all_matched = true; + +done: + if (!*all_matched) { + container = container->parent; // back up to last matching node + } + + if (!should_continue) { + container = NULL; + } + + return container; +} + +static void open_new_blocks(cmark_parser *parser, cmark_node **container, + cmark_chunk *input, bool all_matched) { + bool indented; + cmark_list *data = NULL; + bool maybe_lazy = S_type(parser->current) == CMARK_NODE_PARAGRAPH; + cmark_node_type cont_type = S_type(*container); + bufsize_t matched = 0; + int lev = 0; + bool save_partially_consumed_tab; + bool has_content; + int save_offset; + int save_column; + + while (cont_type != CMARK_NODE_CODE_BLOCK && + cont_type != CMARK_NODE_HTML_BLOCK) { + + S_find_first_nonspace(parser, input); + indented = parser->indent >= CODE_INDENT; + + if (!indented && peek_at(input, parser->first_nonspace) == '>') { + + bufsize_t blockquote_startpos = parser->first_nonspace; + + S_advance_offset(parser, input, + parser->first_nonspace + 1 - parser->offset, false); + // optional following character + if (S_is_space_or_tab(peek_at(input, parser->offset))) { + S_advance_offset(parser, input, 1, true); + } + *container = add_child(parser, *container, CMARK_NODE_BLOCK_QUOTE, + blockquote_startpos + 1); + + } else if (!indented && (matched = scan_atx_heading_start( + input, parser->first_nonspace))) { + bufsize_t hashpos; + int level = 0; + bufsize_t heading_startpos = parser->first_nonspace; + + S_advance_offset(parser, input, + parser->first_nonspace + matched - parser->offset, + false); + *container = add_child(parser, *container, CMARK_NODE_HEADING, + heading_startpos + 1); + + hashpos = cmark_chunk_strchr(input, '#', parser->first_nonspace); + + while (peek_at(input, hashpos) == '#') { + level++; + hashpos++; + } + + (*container)->as.heading.level = level; + (*container)->as.heading.setext = false; + (*container)->internal_offset = matched; + + } else if (!indented && (matched = scan_open_code_fence( + input, parser->first_nonspace))) { + *container = add_child(parser, *container, CMARK_NODE_CODE_BLOCK, + parser->first_nonspace + 1); + (*container)->as.code.fenced = true; + (*container)->as.code.fence_char = peek_at(input, parser->first_nonspace); + (*container)->as.code.fence_length = (matched > 255) ? 255 : matched; + (*container)->as.code.fence_offset = + (int8_t)(parser->first_nonspace - parser->offset); + (*container)->as.code.info = cmark_chunk_literal(""); + S_advance_offset(parser, input, + parser->first_nonspace + matched - parser->offset, + false); + + } else if (!indented && ((matched = scan_html_block_start( + input, parser->first_nonspace)) || + (cont_type != CMARK_NODE_PARAGRAPH && + (matched = scan_html_block_start_7( + input, parser->first_nonspace))))) { + *container = add_child(parser, *container, CMARK_NODE_HTML_BLOCK, + parser->first_nonspace + 1); + (*container)->as.html_block_type = matched; + // note, we don't adjust parser->offset because the tag is part of the + // text + } else if (!indented && cont_type == CMARK_NODE_PARAGRAPH && + (lev = + scan_setext_heading_line(input, parser->first_nonspace))) { + // finalize paragraph, resolving reference links + has_content = resolve_reference_link_definitions(parser, *container); + + if (has_content) { + + (*container)->type = (uint16_t)CMARK_NODE_HEADING; + (*container)->as.heading.level = lev; + (*container)->as.heading.setext = true; + S_advance_offset(parser, input, input->len - 1 - parser->offset, false); + } + } else if (!indented && + !(cont_type == CMARK_NODE_PARAGRAPH && !all_matched) && + (parser->thematic_break_kill_pos <= parser->first_nonspace) && + (matched = S_scan_thematic_break(parser, input, parser->first_nonspace))) { + // it's only now that we know the line is not part of a setext heading: + *container = add_child(parser, *container, CMARK_NODE_THEMATIC_BREAK, + parser->first_nonspace + 1); + S_advance_offset(parser, input, input->len - 1 - parser->offset, false); + } else if ((!indented || cont_type == CMARK_NODE_LIST) && + parser->indent < 4 && + (matched = parse_list_marker( + parser->mem, input, parser->first_nonspace, + (*container)->type == CMARK_NODE_PARAGRAPH, &data))) { + + // Note that we can have new list items starting with >= 4 + // spaces indent, as long as the list container is still open. + int i = 0; + + // compute padding: + S_advance_offset(parser, input, + parser->first_nonspace + matched - parser->offset, + false); + + save_partially_consumed_tab = parser->partially_consumed_tab; + save_offset = parser->offset; + save_column = parser->column; + + while (parser->column - save_column <= 5 && + S_is_space_or_tab(peek_at(input, parser->offset))) { + S_advance_offset(parser, input, 1, true); + } + + i = parser->column - save_column; + if (i >= 5 || i < 1 || + // only spaces after list marker: + S_is_line_end_char(peek_at(input, parser->offset))) { + data->padding = matched + 1; + parser->offset = save_offset; + parser->column = save_column; + parser->partially_consumed_tab = save_partially_consumed_tab; + if (i > 0) { + S_advance_offset(parser, input, 1, true); + } + } else { + data->padding = matched + i; + } + + // check container; if it's a list, see if this list item + // can continue the list; otherwise, create a list container. + + data->marker_offset = parser->indent; + + if (cont_type != CMARK_NODE_LIST || + !lists_match(&((*container)->as.list), data)) { + *container = add_child(parser, *container, CMARK_NODE_LIST, + parser->first_nonspace + 1); + + memcpy(&((*container)->as.list), data, sizeof(*data)); + } + + // add the list item + *container = add_child(parser, *container, CMARK_NODE_ITEM, + parser->first_nonspace + 1); + /* TODO: static */ + memcpy(&((*container)->as.list), data, sizeof(*data)); + parser->mem->free(data); + } else if (indented && !maybe_lazy && !parser->blank) { + S_advance_offset(parser, input, CODE_INDENT, true); + *container = add_child(parser, *container, CMARK_NODE_CODE_BLOCK, + parser->offset + 1); + (*container)->as.code.fenced = false; + (*container)->as.code.fence_char = 0; + (*container)->as.code.fence_length = 0; + (*container)->as.code.fence_offset = 0; + (*container)->as.code.info = cmark_chunk_literal(""); + + } else { + break; + } + + if (accepts_lines(S_type(*container))) { + // if it's a line container, it can't contain other containers + break; + } + + cont_type = S_type(*container); + maybe_lazy = false; + } +} + +static void add_text_to_container(cmark_parser *parser, cmark_node *container, + cmark_node *last_matched_container, + cmark_chunk *input) { + cmark_node *tmp; + // what remains at parser->offset is a text line. add the text to the + // appropriate container. + + S_find_first_nonspace(parser, input); + + if (parser->blank && container->last_child) + S_set_last_line_blank(container->last_child, true); + + // block quote lines are never blank as they start with > + // and we don't count blanks in fenced code for purposes of tight/loose + // lists or breaking out of lists. we also don't set last_line_blank + // on an empty list item. + const cmark_node_type ctype = S_type(container); + const bool last_line_blank = + (parser->blank && ctype != CMARK_NODE_BLOCK_QUOTE && + ctype != CMARK_NODE_HEADING && ctype != CMARK_NODE_THEMATIC_BREAK && + !(ctype == CMARK_NODE_CODE_BLOCK && container->as.code.fenced) && + !(ctype == CMARK_NODE_ITEM && container->first_child == NULL && + container->start_line == parser->line_number)); + + S_set_last_line_blank(container, last_line_blank); + + tmp = container; + while (tmp->parent) { + S_set_last_line_blank(tmp->parent, false); + tmp = tmp->parent; + } + + // If the last line processed belonged to a paragraph node, + // and we didn't match all of the line prefixes for the open containers, + // and we didn't start any new containers, + // and the line isn't blank, + // then treat this as a "lazy continuation line" and add it to + // the open paragraph. + if (parser->current != last_matched_container && + container == last_matched_container && !parser->blank && + S_type(parser->current) == CMARK_NODE_PARAGRAPH) { + add_line(parser->current, input, parser); + } else { // not a lazy continuation + // Finalize any blocks that were not matched and set cur to container: + while (parser->current != last_matched_container) { + parser->current = finalize(parser, parser->current); + assert(parser->current != NULL); + } + + if (S_type(container) == CMARK_NODE_CODE_BLOCK) { + add_line(container, input, parser); + } else if (S_type(container) == CMARK_NODE_HTML_BLOCK) { + add_line(container, input, parser); + + int matches_end_condition; + switch (container->as.html_block_type) { + case 1: + // </script>, </style>, </pre> + matches_end_condition = + scan_html_block_end_1(input, parser->first_nonspace); + break; + case 2: + // --> + matches_end_condition = + scan_html_block_end_2(input, parser->first_nonspace); + break; + case 3: + // ?> + matches_end_condition = + scan_html_block_end_3(input, parser->first_nonspace); + break; + case 4: + // > + matches_end_condition = + scan_html_block_end_4(input, parser->first_nonspace); + break; + case 5: + // ]]> + matches_end_condition = + scan_html_block_end_5(input, parser->first_nonspace); + break; + default: + matches_end_condition = 0; + break; + } + + if (matches_end_condition) { + container = finalize(parser, container); + assert(parser->current != NULL); + } + } else if (parser->blank) { + // ??? do nothing + } else if (accepts_lines(S_type(container))) { + if (S_type(container) == CMARK_NODE_HEADING && + container->as.heading.setext == false) { + chop_trailing_hashtags(input); + } + S_advance_offset(parser, input, parser->first_nonspace - parser->offset, + false); + add_line(container, input, parser); + } else { + // create paragraph container for line + container = add_child(parser, container, CMARK_NODE_PARAGRAPH, + parser->first_nonspace + 1); + S_advance_offset(parser, input, parser->first_nonspace - parser->offset, + false); + add_line(container, input, parser); + } + + parser->current = container; + } +} + +/* See http://spec.commonmark.org/0.24/#phase-1-block-structure */ +static void S_process_line(cmark_parser *parser, const unsigned char *buffer, + bufsize_t bytes) { + cmark_node *last_matched_container; + bool all_matched = true; + cmark_node *container; + cmark_chunk input; + + if (parser->options & CMARK_OPT_VALIDATE_UTF8) + cmark_utf8proc_check(&parser->curline, buffer, bytes); + else + cmark_strbuf_put(&parser->curline, buffer, bytes); + + bytes = parser->curline.size; + + // ensure line ends with a newline: + if (bytes == 0 || !S_is_line_end_char(parser->curline.ptr[bytes - 1])) + cmark_strbuf_putc(&parser->curline, '\n'); + + parser->offset = 0; + parser->column = 0; + parser->first_nonspace = 0; + parser->first_nonspace_column = 0; + parser->thematic_break_kill_pos = 0; + parser->indent = 0; + parser->blank = false; + parser->partially_consumed_tab = false; + + input.data = parser->curline.ptr; + input.len = parser->curline.size; + input.alloc = 0; + + parser->line_number++; + + last_matched_container = check_open_blocks(parser, &input, &all_matched); + + if (!last_matched_container) + goto finished; + + container = last_matched_container; + + open_new_blocks(parser, &container, &input, all_matched); + + add_text_to_container(parser, container, last_matched_container, &input); + +finished: + parser->last_line_length = input.len; + if (parser->last_line_length && + input.data[parser->last_line_length - 1] == '\n') + parser->last_line_length -= 1; + if (parser->last_line_length && + input.data[parser->last_line_length - 1] == '\r') + parser->last_line_length -= 1; + + cmark_strbuf_clear(&parser->curline); +} + +cmark_node *cmark_parser_finish(cmark_parser *parser) { + if (parser->linebuf.size) { + S_process_line(parser, parser->linebuf.ptr, parser->linebuf.size); + cmark_strbuf_clear(&parser->linebuf); + } + + finalize_document(parser); + + cmark_consolidate_text_nodes(parser->root); + + cmark_strbuf_free(&parser->curline); + +#if CMARK_DEBUG_NODES + if (cmark_node_check(parser->root, stderr)) { + abort(); + } +#endif + return parser->root; +} diff --git a/Example/Pods/Down/Source/cmark/buffer.c b/Example/Pods/Down/Source/cmark/buffer.c new file mode 100755 index 000000000..d94649310 --- /dev/null +++ b/Example/Pods/Down/Source/cmark/buffer.c @@ -0,0 +1,278 @@ +#include <stdarg.h> +#include <string.h> +#include <assert.h> +#include <string.h> +#include <stdio.h> +#include <stdlib.h> +#include <stdint.h> +#include <limits.h> + +#include "config.h" +#include "cmark_ctype.h" +#include "buffer.h" + +/* Used as default value for cmark_strbuf->ptr so that people can always + * assume ptr is non-NULL and zero terminated even for new cmark_strbufs. + */ +unsigned char cmark_strbuf__initbuf[1]; + +#ifndef MIN +#define MIN(x, y) ((x < y) ? x : y) +#endif + +void cmark_strbuf_init(cmark_mem *mem, cmark_strbuf *buf, + bufsize_t initial_size) { + buf->mem = mem; + buf->asize = 0; + buf->size = 0; + buf->ptr = cmark_strbuf__initbuf; + + if (initial_size > 0) + cmark_strbuf_grow(buf, initial_size); +} + +static CMARK_INLINE void S_strbuf_grow_by(cmark_strbuf *buf, bufsize_t add) { + cmark_strbuf_grow(buf, buf->size + add); +} + +void cmark_strbuf_grow(cmark_strbuf *buf, bufsize_t target_size) { + assert(target_size > 0); + + if (target_size < buf->asize) + return; + + if (target_size > (bufsize_t)(INT32_MAX / 2)) { + fprintf(stderr, + "[cmark] cmark_strbuf_grow requests buffer with size > %d, aborting\n", + (INT32_MAX / 2)); + abort(); + } + + /* Oversize the buffer by 50% to guarantee amortized linear time + * complexity on append operations. */ + bufsize_t new_size = target_size + target_size / 2; + new_size += 1; + new_size = (new_size + 7) & ~7; + + buf->ptr = (unsigned char *)buf->mem->realloc(buf->asize ? buf->ptr : NULL, + new_size); + buf->asize = new_size; +} + +bufsize_t cmark_strbuf_len(const cmark_strbuf *buf) { return buf->size; } + +void cmark_strbuf_free(cmark_strbuf *buf) { + if (!buf) + return; + + if (buf->ptr != cmark_strbuf__initbuf) + buf->mem->free(buf->ptr); + + cmark_strbuf_init(buf->mem, buf, 0); +} + +void cmark_strbuf_clear(cmark_strbuf *buf) { + buf->size = 0; + + if (buf->asize > 0) + buf->ptr[0] = '\0'; +} + +void cmark_strbuf_set(cmark_strbuf *buf, const unsigned char *data, + bufsize_t len) { + if (len <= 0 || data == NULL) { + cmark_strbuf_clear(buf); + } else { + if (data != buf->ptr) { + if (len >= buf->asize) + cmark_strbuf_grow(buf, len); + memmove(buf->ptr, data, len); + } + buf->size = len; + buf->ptr[buf->size] = '\0'; + } +} + +void cmark_strbuf_sets(cmark_strbuf *buf, const char *string) { + cmark_strbuf_set(buf, (const unsigned char *)string, + string ? strlen(string) : 0); +} + +void cmark_strbuf_putc(cmark_strbuf *buf, int c) { + S_strbuf_grow_by(buf, 1); + buf->ptr[buf->size++] = (unsigned char)(c & 0xFF); + buf->ptr[buf->size] = '\0'; +} + +void cmark_strbuf_put(cmark_strbuf *buf, const unsigned char *data, + bufsize_t len) { + if (len <= 0) + return; + + S_strbuf_grow_by(buf, len); + memmove(buf->ptr + buf->size, data, len); + buf->size += len; + buf->ptr[buf->size] = '\0'; +} + +void cmark_strbuf_puts(cmark_strbuf *buf, const char *string) { + cmark_strbuf_put(buf, (const unsigned char *)string, strlen(string)); +} + +void cmark_strbuf_copy_cstr(char *data, bufsize_t datasize, + const cmark_strbuf *buf) { + bufsize_t copylen; + + assert(buf); + if (!data || datasize <= 0) + return; + + data[0] = '\0'; + + if (buf->size == 0 || buf->asize <= 0) + return; + + copylen = buf->size; + if (copylen > datasize - 1) + copylen = datasize - 1; + memmove(data, buf->ptr, copylen); + data[copylen] = '\0'; +} + +void cmark_strbuf_swap(cmark_strbuf *buf_a, cmark_strbuf *buf_b) { + cmark_strbuf t = *buf_a; + *buf_a = *buf_b; + *buf_b = t; +} + +unsigned char *cmark_strbuf_detach(cmark_strbuf *buf) { + unsigned char *data = buf->ptr; + + if (buf->asize == 0) { + /* return an empty string */ + return (unsigned char *)buf->mem->calloc(1, 1); + } + + cmark_strbuf_init(buf->mem, buf, 0); + return data; +} + +int cmark_strbuf_cmp(const cmark_strbuf *a, const cmark_strbuf *b) { + int result = memcmp(a->ptr, b->ptr, MIN(a->size, b->size)); + return (result != 0) ? result + : (a->size < b->size) ? -1 : (a->size > b->size) ? 1 : 0; +} + +bufsize_t cmark_strbuf_strchr(const cmark_strbuf *buf, int c, bufsize_t pos) { + if (pos >= buf->size) + return -1; + if (pos < 0) + pos = 0; + + const unsigned char *p = + (unsigned char *)memchr(buf->ptr + pos, c, buf->size - pos); + if (!p) + return -1; + + return (bufsize_t)(p - (const unsigned char *)buf->ptr); +} + +bufsize_t cmark_strbuf_strrchr(const cmark_strbuf *buf, int c, bufsize_t pos) { + if (pos < 0 || buf->size == 0) + return -1; + if (pos >= buf->size) + pos = buf->size - 1; + + bufsize_t i; + for (i = pos; i >= 0; i--) { + if (buf->ptr[i] == (unsigned char)c) + return i; + } + + return -1; +} + +void cmark_strbuf_truncate(cmark_strbuf *buf, bufsize_t len) { + if (len < 0) + len = 0; + + if (len < buf->size) { + buf->size = len; + buf->ptr[buf->size] = '\0'; + } +} + +void cmark_strbuf_drop(cmark_strbuf *buf, bufsize_t n) { + if (n > 0) { + if (n > buf->size) + n = buf->size; + buf->size = buf->size - n; + if (buf->size) + memmove(buf->ptr, buf->ptr + n, buf->size); + + buf->ptr[buf->size] = '\0'; + } +} + +void cmark_strbuf_rtrim(cmark_strbuf *buf) { + if (!buf->size) + return; + + while (buf->size > 0) { + if (!cmark_isspace(buf->ptr[buf->size - 1])) + break; + + buf->size--; + } + + buf->ptr[buf->size] = '\0'; +} + +void cmark_strbuf_trim(cmark_strbuf *buf) { + bufsize_t i = 0; + + if (!buf->size) + return; + + while (i < buf->size && cmark_isspace(buf->ptr[i])) + i++; + + cmark_strbuf_drop(buf, i); + + cmark_strbuf_rtrim(buf); +} + +// Destructively modify string, collapsing consecutive +// space and newline characters into a single space. +void cmark_strbuf_normalize_whitespace(cmark_strbuf *s) { + bool last_char_was_space = false; + bufsize_t r, w; + + for (r = 0, w = 0; r < s->size; ++r) { + if (cmark_isspace(s->ptr[r])) { + if (!last_char_was_space) { + s->ptr[w++] = ' '; + last_char_was_space = true; + } + } else { + s->ptr[w++] = s->ptr[r]; + last_char_was_space = false; + } + } + + cmark_strbuf_truncate(s, w); +} + +// Destructively unescape a string: remove backslashes before punctuation chars. +extern void cmark_strbuf_unescape(cmark_strbuf *buf) { + bufsize_t r, w; + + for (r = 0, w = 0; r < buf->size; ++r) { + if (buf->ptr[r] == '\\' && cmark_ispunct(buf->ptr[r + 1])) + r++; + + buf->ptr[w++] = buf->ptr[r]; + } + + cmark_strbuf_truncate(buf, w); +} diff --git a/Example/Pods/Down/Source/cmark/buffer.h b/Example/Pods/Down/Source/cmark/buffer.h new file mode 100755 index 000000000..e8780753f --- /dev/null +++ b/Example/Pods/Down/Source/cmark/buffer.h @@ -0,0 +1,82 @@ +#ifndef CMARK_BUFFER_H +#define CMARK_BUFFER_H + +#include <stddef.h> +#include <stdarg.h> +#include <string.h> +#include <limits.h> +#include <stdint.h> +#include "config.h" +#include "cmark.h" + +#ifdef __cplusplus +extern "C" { +#endif + +typedef int32_t bufsize_t; + +typedef struct { + cmark_mem *mem; + unsigned char *ptr; + bufsize_t asize, size; +} cmark_strbuf; + +extern unsigned char cmark_strbuf__initbuf[]; + +#define CMARK_BUF_INIT(mem) \ + { mem, cmark_strbuf__initbuf, 0, 0 } + +/** + * Initialize a cmark_strbuf structure. + * + * For the cases where CMARK_BUF_INIT cannot be used to do static + * initialization. + */ +void cmark_strbuf_init(cmark_mem *mem, cmark_strbuf *buf, + bufsize_t initial_size); + +/** + * Grow the buffer to hold at least `target_size` bytes. + */ +void cmark_strbuf_grow(cmark_strbuf *buf, bufsize_t target_size); + +void cmark_strbuf_free(cmark_strbuf *buf); +void cmark_strbuf_swap(cmark_strbuf *buf_a, cmark_strbuf *buf_b); + +bufsize_t cmark_strbuf_len(const cmark_strbuf *buf); + +int cmark_strbuf_cmp(const cmark_strbuf *a, const cmark_strbuf *b); + +unsigned char *cmark_strbuf_detach(cmark_strbuf *buf); +void cmark_strbuf_copy_cstr(char *data, bufsize_t datasize, + const cmark_strbuf *buf); + +static CMARK_INLINE const char *cmark_strbuf_cstr(const cmark_strbuf *buf) { + return (char *)buf->ptr; +} + +#define cmark_strbuf_at(buf, n) ((buf)->ptr[n]) + +void cmark_strbuf_set(cmark_strbuf *buf, const unsigned char *data, + bufsize_t len); +void cmark_strbuf_sets(cmark_strbuf *buf, const char *string); +void cmark_strbuf_putc(cmark_strbuf *buf, int c); +void cmark_strbuf_put(cmark_strbuf *buf, const unsigned char *data, + bufsize_t len); +void cmark_strbuf_puts(cmark_strbuf *buf, const char *string); +void cmark_strbuf_clear(cmark_strbuf *buf); + +bufsize_t cmark_strbuf_strchr(const cmark_strbuf *buf, int c, bufsize_t pos); +bufsize_t cmark_strbuf_strrchr(const cmark_strbuf *buf, int c, bufsize_t pos); +void cmark_strbuf_drop(cmark_strbuf *buf, bufsize_t n); +void cmark_strbuf_truncate(cmark_strbuf *buf, bufsize_t len); +void cmark_strbuf_rtrim(cmark_strbuf *buf); +void cmark_strbuf_trim(cmark_strbuf *buf); +void cmark_strbuf_normalize_whitespace(cmark_strbuf *s); +void cmark_strbuf_unescape(cmark_strbuf *s); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Example/Pods/Down/Source/cmark/case_fold_switch.inc b/Example/Pods/Down/Source/cmark/case_fold_switch.inc new file mode 100755 index 000000000..28e223e14 --- /dev/null +++ b/Example/Pods/Down/Source/cmark/case_fold_switch.inc @@ -0,0 +1,4327 @@ + switch (c) { + case 0x0041: + bufpush(0x0061); + break; + case 0x0042: + bufpush(0x0062); + break; + case 0x0043: + bufpush(0x0063); + break; + case 0x0044: + bufpush(0x0064); + break; + case 0x0045: + bufpush(0x0065); + break; + case 0x0046: + bufpush(0x0066); + break; + case 0x0047: + bufpush(0x0067); + break; + case 0x0048: + bufpush(0x0068); + break; + case 0x0049: + bufpush(0x0069); + break; + case 0x004A: + bufpush(0x006A); + break; + case 0x004B: + bufpush(0x006B); + break; + case 0x004C: + bufpush(0x006C); + break; + case 0x004D: + bufpush(0x006D); + break; + case 0x004E: + bufpush(0x006E); + break; + case 0x004F: + bufpush(0x006F); + break; + case 0x0050: + bufpush(0x0070); + break; + case 0x0051: + bufpush(0x0071); + break; + case 0x0052: + bufpush(0x0072); + break; + case 0x0053: + bufpush(0x0073); + break; + case 0x0054: + bufpush(0x0074); + break; + case 0x0055: + bufpush(0x0075); + break; + case 0x0056: + bufpush(0x0076); + break; + case 0x0057: + bufpush(0x0077); + break; + case 0x0058: + bufpush(0x0078); + break; + case 0x0059: + bufpush(0x0079); + break; + case 0x005A: + bufpush(0x007A); + break; + case 0x00B5: + bufpush(0x03BC); + break; + case 0x00C0: + bufpush(0x00E0); + break; + case 0x00C1: + bufpush(0x00E1); + break; + case 0x00C2: + bufpush(0x00E2); + break; + case 0x00C3: + bufpush(0x00E3); + break; + case 0x00C4: + bufpush(0x00E4); + break; + case 0x00C5: + bufpush(0x00E5); + break; + case 0x00C6: + bufpush(0x00E6); + break; + case 0x00C7: + bufpush(0x00E7); + break; + case 0x00C8: + bufpush(0x00E8); + break; + case 0x00C9: + bufpush(0x00E9); + break; + case 0x00CA: + bufpush(0x00EA); + break; + case 0x00CB: + bufpush(0x00EB); + break; + case 0x00CC: + bufpush(0x00EC); + break; + case 0x00CD: + bufpush(0x00ED); + break; + case 0x00CE: + bufpush(0x00EE); + break; + case 0x00CF: + bufpush(0x00EF); + break; + case 0x00D0: + bufpush(0x00F0); + break; + case 0x00D1: + bufpush(0x00F1); + break; + case 0x00D2: + bufpush(0x00F2); + break; + case 0x00D3: + bufpush(0x00F3); + break; + case 0x00D4: + bufpush(0x00F4); + break; + case 0x00D5: + bufpush(0x00F5); + break; + case 0x00D6: + bufpush(0x00F6); + break; + case 0x00D8: + bufpush(0x00F8); + break; + case 0x00D9: + bufpush(0x00F9); + break; + case 0x00DA: + bufpush(0x00FA); + break; + case 0x00DB: + bufpush(0x00FB); + break; + case 0x00DC: + bufpush(0x00FC); + break; + case 0x00DD: + bufpush(0x00FD); + break; + case 0x00DE: + bufpush(0x00FE); + break; + case 0x00DF: + bufpush(0x0073); + bufpush(0x0073); + break; + case 0x0100: + bufpush(0x0101); + break; + case 0x0102: + bufpush(0x0103); + break; + case 0x0104: + bufpush(0x0105); + break; + case 0x0106: + bufpush(0x0107); + break; + case 0x0108: + bufpush(0x0109); + break; + case 0x010A: + bufpush(0x010B); + break; + case 0x010C: + bufpush(0x010D); + break; + case 0x010E: + bufpush(0x010F); + break; + case 0x0110: + bufpush(0x0111); + break; + case 0x0112: + bufpush(0x0113); + break; + case 0x0114: + bufpush(0x0115); + break; + case 0x0116: + bufpush(0x0117); + break; + case 0x0118: + bufpush(0x0119); + break; + case 0x011A: + bufpush(0x011B); + break; + case 0x011C: + bufpush(0x011D); + break; + case 0x011E: + bufpush(0x011F); + break; + case 0x0120: + bufpush(0x0121); + break; + case 0x0122: + bufpush(0x0123); + break; + case 0x0124: + bufpush(0x0125); + break; + case 0x0126: + bufpush(0x0127); + break; + case 0x0128: + bufpush(0x0129); + break; + case 0x012A: + bufpush(0x012B); + break; + case 0x012C: + bufpush(0x012D); + break; + case 0x012E: + bufpush(0x012F); + break; + case 0x0130: + bufpush(0x0069); + bufpush(0x0307); + break; + case 0x0132: + bufpush(0x0133); + break; + case 0x0134: + bufpush(0x0135); + break; + case 0x0136: + bufpush(0x0137); + break; + case 0x0139: + bufpush(0x013A); + break; + case 0x013B: + bufpush(0x013C); + break; + case 0x013D: + bufpush(0x013E); + break; + case 0x013F: + bufpush(0x0140); + break; + case 0x0141: + bufpush(0x0142); + break; + case 0x0143: + bufpush(0x0144); + break; + case 0x0145: + bufpush(0x0146); + break; + case 0x0147: + bufpush(0x0148); + break; + case 0x0149: + bufpush(0x02BC); + bufpush(0x006E); + break; + case 0x014A: + bufpush(0x014B); + break; + case 0x014C: + bufpush(0x014D); + break; + case 0x014E: + bufpush(0x014F); + break; + case 0x0150: + bufpush(0x0151); + break; + case 0x0152: + bufpush(0x0153); + break; + case 0x0154: + bufpush(0x0155); + break; + case 0x0156: + bufpush(0x0157); + break; + case 0x0158: + bufpush(0x0159); + break; + case 0x015A: + bufpush(0x015B); + break; + case 0x015C: + bufpush(0x015D); + break; + case 0x015E: + bufpush(0x015F); + break; + case 0x0160: + bufpush(0x0161); + break; + case 0x0162: + bufpush(0x0163); + break; + case 0x0164: + bufpush(0x0165); + break; + case 0x0166: + bufpush(0x0167); + break; + case 0x0168: + bufpush(0x0169); + break; + case 0x016A: + bufpush(0x016B); + break; + case 0x016C: + bufpush(0x016D); + break; + case 0x016E: + bufpush(0x016F); + break; + case 0x0170: + bufpush(0x0171); + break; + case 0x0172: + bufpush(0x0173); + break; + case 0x0174: + bufpush(0x0175); + break; + case 0x0176: + bufpush(0x0177); + break; + case 0x0178: + bufpush(0x00FF); + break; + case 0x0179: + bufpush(0x017A); + break; + case 0x017B: + bufpush(0x017C); + break; + case 0x017D: + bufpush(0x017E); + break; + case 0x017F: + bufpush(0x0073); + break; + case 0x0181: + bufpush(0x0253); + break; + case 0x0182: + bufpush(0x0183); + break; + case 0x0184: + bufpush(0x0185); + break; + case 0x0186: + bufpush(0x0254); + break; + case 0x0187: + bufpush(0x0188); + break; + case 0x0189: + bufpush(0x0256); + break; + case 0x018A: + bufpush(0x0257); + break; + case 0x018B: + bufpush(0x018C); + break; + case 0x018E: + bufpush(0x01DD); + break; + case 0x018F: + bufpush(0x0259); + break; + case 0x0190: + bufpush(0x025B); + break; + case 0x0191: + bufpush(0x0192); + break; + case 0x0193: + bufpush(0x0260); + break; + case 0x0194: + bufpush(0x0263); + break; + case 0x0196: + bufpush(0x0269); + break; + case 0x0197: + bufpush(0x0268); + break; + case 0x0198: + bufpush(0x0199); + break; + case 0x019C: + bufpush(0x026F); + break; + case 0x019D: + bufpush(0x0272); + break; + case 0x019F: + bufpush(0x0275); + break; + case 0x01A0: + bufpush(0x01A1); + break; + case 0x01A2: + bufpush(0x01A3); + break; + case 0x01A4: + bufpush(0x01A5); + break; + case 0x01A6: + bufpush(0x0280); + break; + case 0x01A7: + bufpush(0x01A8); + break; + case 0x01A9: + bufpush(0x0283); + break; + case 0x01AC: + bufpush(0x01AD); + break; + case 0x01AE: + bufpush(0x0288); + break; + case 0x01AF: + bufpush(0x01B0); + break; + case 0x01B1: + bufpush(0x028A); + break; + case 0x01B2: + bufpush(0x028B); + break; + case 0x01B3: + bufpush(0x01B4); + break; + case 0x01B5: + bufpush(0x01B6); + break; + case 0x01B7: + bufpush(0x0292); + break; + case 0x01B8: + bufpush(0x01B9); + break; + case 0x01BC: + bufpush(0x01BD); + break; + case 0x01C4: + bufpush(0x01C6); + break; + case 0x01C5: + bufpush(0x01C6); + break; + case 0x01C7: + bufpush(0x01C9); + break; + case 0x01C8: + bufpush(0x01C9); + break; + case 0x01CA: + bufpush(0x01CC); + break; + case 0x01CB: + bufpush(0x01CC); + break; + case 0x01CD: + bufpush(0x01CE); + break; + case 0x01CF: + bufpush(0x01D0); + break; + case 0x01D1: + bufpush(0x01D2); + break; + case 0x01D3: + bufpush(0x01D4); + break; + case 0x01D5: + bufpush(0x01D6); + break; + case 0x01D7: + bufpush(0x01D8); + break; + case 0x01D9: + bufpush(0x01DA); + break; + case 0x01DB: + bufpush(0x01DC); + break; + case 0x01DE: + bufpush(0x01DF); + break; + case 0x01E0: + bufpush(0x01E1); + break; + case 0x01E2: + bufpush(0x01E3); + break; + case 0x01E4: + bufpush(0x01E5); + break; + case 0x01E6: + bufpush(0x01E7); + break; + case 0x01E8: + bufpush(0x01E9); + break; + case 0x01EA: + bufpush(0x01EB); + break; + case 0x01EC: + bufpush(0x01ED); + break; + case 0x01EE: + bufpush(0x01EF); + break; + case 0x01F0: + bufpush(0x006A); + bufpush(0x030C); + break; + case 0x01F1: + bufpush(0x01F3); + break; + case 0x01F2: + bufpush(0x01F3); + break; + case 0x01F4: + bufpush(0x01F5); + break; + case 0x01F6: + bufpush(0x0195); + break; + case 0x01F7: + bufpush(0x01BF); + break; + case 0x01F8: + bufpush(0x01F9); + break; + case 0x01FA: + bufpush(0x01FB); + break; + case 0x01FC: + bufpush(0x01FD); + break; + case 0x01FE: + bufpush(0x01FF); + break; + case 0x0200: + bufpush(0x0201); + break; + case 0x0202: + bufpush(0x0203); + break; + case 0x0204: + bufpush(0x0205); + break; + case 0x0206: + bufpush(0x0207); + break; + case 0x0208: + bufpush(0x0209); + break; + case 0x020A: + bufpush(0x020B); + break; + case 0x020C: + bufpush(0x020D); + break; + case 0x020E: + bufpush(0x020F); + break; + case 0x0210: + bufpush(0x0211); + break; + case 0x0212: + bufpush(0x0213); + break; + case 0x0214: + bufpush(0x0215); + break; + case 0x0216: + bufpush(0x0217); + break; + case 0x0218: + bufpush(0x0219); + break; + case 0x021A: + bufpush(0x021B); + break; + case 0x021C: + bufpush(0x021D); + break; + case 0x021E: + bufpush(0x021F); + break; + case 0x0220: + bufpush(0x019E); + break; + case 0x0222: + bufpush(0x0223); + break; + case 0x0224: + bufpush(0x0225); + break; + case 0x0226: + bufpush(0x0227); + break; + case 0x0228: + bufpush(0x0229); + break; + case 0x022A: + bufpush(0x022B); + break; + case 0x022C: + bufpush(0x022D); + break; + case 0x022E: + bufpush(0x022F); + break; + case 0x0230: + bufpush(0x0231); + break; + case 0x0232: + bufpush(0x0233); + break; + case 0x023A: + bufpush(0x2C65); + break; + case 0x023B: + bufpush(0x023C); + break; + case 0x023D: + bufpush(0x019A); + break; + case 0x023E: + bufpush(0x2C66); + break; + case 0x0241: + bufpush(0x0242); + break; + case 0x0243: + bufpush(0x0180); + break; + case 0x0244: + bufpush(0x0289); + break; + case 0x0245: + bufpush(0x028C); + break; + case 0x0246: + bufpush(0x0247); + break; + case 0x0248: + bufpush(0x0249); + break; + case 0x024A: + bufpush(0x024B); + break; + case 0x024C: + bufpush(0x024D); + break; + case 0x024E: + bufpush(0x024F); + break; + case 0x0345: + bufpush(0x03B9); + break; + case 0x0370: + bufpush(0x0371); + break; + case 0x0372: + bufpush(0x0373); + break; + case 0x0376: + bufpush(0x0377); + break; + case 0x037F: + bufpush(0x03F3); + break; + case 0x0386: + bufpush(0x03AC); + break; + case 0x0388: + bufpush(0x03AD); + break; + case 0x0389: + bufpush(0x03AE); + break; + case 0x038A: + bufpush(0x03AF); + break; + case 0x038C: + bufpush(0x03CC); + break; + case 0x038E: + bufpush(0x03CD); + break; + case 0x038F: + bufpush(0x03CE); + break; + case 0x0390: + bufpush(0x03B9); + bufpush(0x0308); + bufpush(0x0301); + break; + case 0x0391: + bufpush(0x03B1); + break; + case 0x0392: + bufpush(0x03B2); + break; + case 0x0393: + bufpush(0x03B3); + break; + case 0x0394: + bufpush(0x03B4); + break; + case 0x0395: + bufpush(0x03B5); + break; + case 0x0396: + bufpush(0x03B6); + break; + case 0x0397: + bufpush(0x03B7); + break; + case 0x0398: + bufpush(0x03B8); + break; + case 0x0399: + bufpush(0x03B9); + break; + case 0x039A: + bufpush(0x03BA); + break; + case 0x039B: + bufpush(0x03BB); + break; + case 0x039C: + bufpush(0x03BC); + break; + case 0x039D: + bufpush(0x03BD); + break; + case 0x039E: + bufpush(0x03BE); + break; + case 0x039F: + bufpush(0x03BF); + break; + case 0x03A0: + bufpush(0x03C0); + break; + case 0x03A1: + bufpush(0x03C1); + break; + case 0x03A3: + bufpush(0x03C3); + break; + case 0x03A4: + bufpush(0x03C4); + break; + case 0x03A5: + bufpush(0x03C5); + break; + case 0x03A6: + bufpush(0x03C6); + break; + case 0x03A7: + bufpush(0x03C7); + break; + case 0x03A8: + bufpush(0x03C8); + break; + case 0x03A9: + bufpush(0x03C9); + break; + case 0x03AA: + bufpush(0x03CA); + break; + case 0x03AB: + bufpush(0x03CB); + break; + case 0x03B0: + bufpush(0x03C5); + bufpush(0x0308); + bufpush(0x0301); + break; + case 0x03C2: + bufpush(0x03C3); + break; + case 0x03CF: + bufpush(0x03D7); + break; + case 0x03D0: + bufpush(0x03B2); + break; + case 0x03D1: + bufpush(0x03B8); + break; + case 0x03D5: + bufpush(0x03C6); + break; + case 0x03D6: + bufpush(0x03C0); + break; + case 0x03D8: + bufpush(0x03D9); + break; + case 0x03DA: + bufpush(0x03DB); + break; + case 0x03DC: + bufpush(0x03DD); + break; + case 0x03DE: + bufpush(0x03DF); + break; + case 0x03E0: + bufpush(0x03E1); + break; + case 0x03E2: + bufpush(0x03E3); + break; + case 0x03E4: + bufpush(0x03E5); + break; + case 0x03E6: + bufpush(0x03E7); + break; + case 0x03E8: + bufpush(0x03E9); + break; + case 0x03EA: + bufpush(0x03EB); + break; + case 0x03EC: + bufpush(0x03ED); + break; + case 0x03EE: + bufpush(0x03EF); + break; + case 0x03F0: + bufpush(0x03BA); + break; + case 0x03F1: + bufpush(0x03C1); + break; + case 0x03F4: + bufpush(0x03B8); + break; + case 0x03F5: + bufpush(0x03B5); + break; + case 0x03F7: + bufpush(0x03F8); + break; + case 0x03F9: + bufpush(0x03F2); + break; + case 0x03FA: + bufpush(0x03FB); + break; + case 0x03FD: + bufpush(0x037B); + break; + case 0x03FE: + bufpush(0x037C); + break; + case 0x03FF: + bufpush(0x037D); + break; + case 0x0400: + bufpush(0x0450); + break; + case 0x0401: + bufpush(0x0451); + break; + case 0x0402: + bufpush(0x0452); + break; + case 0x0403: + bufpush(0x0453); + break; + case 0x0404: + bufpush(0x0454); + break; + case 0x0405: + bufpush(0x0455); + break; + case 0x0406: + bufpush(0x0456); + break; + case 0x0407: + bufpush(0x0457); + break; + case 0x0408: + bufpush(0x0458); + break; + case 0x0409: + bufpush(0x0459); + break; + case 0x040A: + bufpush(0x045A); + break; + case 0x040B: + bufpush(0x045B); + break; + case 0x040C: + bufpush(0x045C); + break; + case 0x040D: + bufpush(0x045D); + break; + case 0x040E: + bufpush(0x045E); + break; + case 0x040F: + bufpush(0x045F); + break; + case 0x0410: + bufpush(0x0430); + break; + case 0x0411: + bufpush(0x0431); + break; + case 0x0412: + bufpush(0x0432); + break; + case 0x0413: + bufpush(0x0433); + break; + case 0x0414: + bufpush(0x0434); + break; + case 0x0415: + bufpush(0x0435); + break; + case 0x0416: + bufpush(0x0436); + break; + case 0x0417: + bufpush(0x0437); + break; + case 0x0418: + bufpush(0x0438); + break; + case 0x0419: + bufpush(0x0439); + break; + case 0x041A: + bufpush(0x043A); + break; + case 0x041B: + bufpush(0x043B); + break; + case 0x041C: + bufpush(0x043C); + break; + case 0x041D: + bufpush(0x043D); + break; + case 0x041E: + bufpush(0x043E); + break; + case 0x041F: + bufpush(0x043F); + break; + case 0x0420: + bufpush(0x0440); + break; + case 0x0421: + bufpush(0x0441); + break; + case 0x0422: + bufpush(0x0442); + break; + case 0x0423: + bufpush(0x0443); + break; + case 0x0424: + bufpush(0x0444); + break; + case 0x0425: + bufpush(0x0445); + break; + case 0x0426: + bufpush(0x0446); + break; + case 0x0427: + bufpush(0x0447); + break; + case 0x0428: + bufpush(0x0448); + break; + case 0x0429: + bufpush(0x0449); + break; + case 0x042A: + bufpush(0x044A); + break; + case 0x042B: + bufpush(0x044B); + break; + case 0x042C: + bufpush(0x044C); + break; + case 0x042D: + bufpush(0x044D); + break; + case 0x042E: + bufpush(0x044E); + break; + case 0x042F: + bufpush(0x044F); + break; + case 0x0460: + bufpush(0x0461); + break; + case 0x0462: + bufpush(0x0463); + break; + case 0x0464: + bufpush(0x0465); + break; + case 0x0466: + bufpush(0x0467); + break; + case 0x0468: + bufpush(0x0469); + break; + case 0x046A: + bufpush(0x046B); + break; + case 0x046C: + bufpush(0x046D); + break; + case 0x046E: + bufpush(0x046F); + break; + case 0x0470: + bufpush(0x0471); + break; + case 0x0472: + bufpush(0x0473); + break; + case 0x0474: + bufpush(0x0475); + break; + case 0x0476: + bufpush(0x0477); + break; + case 0x0478: + bufpush(0x0479); + break; + case 0x047A: + bufpush(0x047B); + break; + case 0x047C: + bufpush(0x047D); + break; + case 0x047E: + bufpush(0x047F); + break; + case 0x0480: + bufpush(0x0481); + break; + case 0x048A: + bufpush(0x048B); + break; + case 0x048C: + bufpush(0x048D); + break; + case 0x048E: + bufpush(0x048F); + break; + case 0x0490: + bufpush(0x0491); + break; + case 0x0492: + bufpush(0x0493); + break; + case 0x0494: + bufpush(0x0495); + break; + case 0x0496: + bufpush(0x0497); + break; + case 0x0498: + bufpush(0x0499); + break; + case 0x049A: + bufpush(0x049B); + break; + case 0x049C: + bufpush(0x049D); + break; + case 0x049E: + bufpush(0x049F); + break; + case 0x04A0: + bufpush(0x04A1); + break; + case 0x04A2: + bufpush(0x04A3); + break; + case 0x04A4: + bufpush(0x04A5); + break; + case 0x04A6: + bufpush(0x04A7); + break; + case 0x04A8: + bufpush(0x04A9); + break; + case 0x04AA: + bufpush(0x04AB); + break; + case 0x04AC: + bufpush(0x04AD); + break; + case 0x04AE: + bufpush(0x04AF); + break; + case 0x04B0: + bufpush(0x04B1); + break; + case 0x04B2: + bufpush(0x04B3); + break; + case 0x04B4: + bufpush(0x04B5); + break; + case 0x04B6: + bufpush(0x04B7); + break; + case 0x04B8: + bufpush(0x04B9); + break; + case 0x04BA: + bufpush(0x04BB); + break; + case 0x04BC: + bufpush(0x04BD); + break; + case 0x04BE: + bufpush(0x04BF); + break; + case 0x04C0: + bufpush(0x04CF); + break; + case 0x04C1: + bufpush(0x04C2); + break; + case 0x04C3: + bufpush(0x04C4); + break; + case 0x04C5: + bufpush(0x04C6); + break; + case 0x04C7: + bufpush(0x04C8); + break; + case 0x04C9: + bufpush(0x04CA); + break; + case 0x04CB: + bufpush(0x04CC); + break; + case 0x04CD: + bufpush(0x04CE); + break; + case 0x04D0: + bufpush(0x04D1); + break; + case 0x04D2: + bufpush(0x04D3); + break; + case 0x04D4: + bufpush(0x04D5); + break; + case 0x04D6: + bufpush(0x04D7); + break; + case 0x04D8: + bufpush(0x04D9); + break; + case 0x04DA: + bufpush(0x04DB); + break; + case 0x04DC: + bufpush(0x04DD); + break; + case 0x04DE: + bufpush(0x04DF); + break; + case 0x04E0: + bufpush(0x04E1); + break; + case 0x04E2: + bufpush(0x04E3); + break; + case 0x04E4: + bufpush(0x04E5); + break; + case 0x04E6: + bufpush(0x04E7); + break; + case 0x04E8: + bufpush(0x04E9); + break; + case 0x04EA: + bufpush(0x04EB); + break; + case 0x04EC: + bufpush(0x04ED); + break; + case 0x04EE: + bufpush(0x04EF); + break; + case 0x04F0: + bufpush(0x04F1); + break; + case 0x04F2: + bufpush(0x04F3); + break; + case 0x04F4: + bufpush(0x04F5); + break; + case 0x04F6: + bufpush(0x04F7); + break; + case 0x04F8: + bufpush(0x04F9); + break; + case 0x04FA: + bufpush(0x04FB); + break; + case 0x04FC: + bufpush(0x04FD); + break; + case 0x04FE: + bufpush(0x04FF); + break; + case 0x0500: + bufpush(0x0501); + break; + case 0x0502: + bufpush(0x0503); + break; + case 0x0504: + bufpush(0x0505); + break; + case 0x0506: + bufpush(0x0507); + break; + case 0x0508: + bufpush(0x0509); + break; + case 0x050A: + bufpush(0x050B); + break; + case 0x050C: + bufpush(0x050D); + break; + case 0x050E: + bufpush(0x050F); + break; + case 0x0510: + bufpush(0x0511); + break; + case 0x0512: + bufpush(0x0513); + break; + case 0x0514: + bufpush(0x0515); + break; + case 0x0516: + bufpush(0x0517); + break; + case 0x0518: + bufpush(0x0519); + break; + case 0x051A: + bufpush(0x051B); + break; + case 0x051C: + bufpush(0x051D); + break; + case 0x051E: + bufpush(0x051F); + break; + case 0x0520: + bufpush(0x0521); + break; + case 0x0522: + bufpush(0x0523); + break; + case 0x0524: + bufpush(0x0525); + break; + case 0x0526: + bufpush(0x0527); + break; + case 0x0528: + bufpush(0x0529); + break; + case 0x052A: + bufpush(0x052B); + break; + case 0x052C: + bufpush(0x052D); + break; + case 0x052E: + bufpush(0x052F); + break; + case 0x0531: + bufpush(0x0561); + break; + case 0x0532: + bufpush(0x0562); + break; + case 0x0533: + bufpush(0x0563); + break; + case 0x0534: + bufpush(0x0564); + break; + case 0x0535: + bufpush(0x0565); + break; + case 0x0536: + bufpush(0x0566); + break; + case 0x0537: + bufpush(0x0567); + break; + case 0x0538: + bufpush(0x0568); + break; + case 0x0539: + bufpush(0x0569); + break; + case 0x053A: + bufpush(0x056A); + break; + case 0x053B: + bufpush(0x056B); + break; + case 0x053C: + bufpush(0x056C); + break; + case 0x053D: + bufpush(0x056D); + break; + case 0x053E: + bufpush(0x056E); + break; + case 0x053F: + bufpush(0x056F); + break; + case 0x0540: + bufpush(0x0570); + break; + case 0x0541: + bufpush(0x0571); + break; + case 0x0542: + bufpush(0x0572); + break; + case 0x0543: + bufpush(0x0573); + break; + case 0x0544: + bufpush(0x0574); + break; + case 0x0545: + bufpush(0x0575); + break; + case 0x0546: + bufpush(0x0576); + break; + case 0x0547: + bufpush(0x0577); + break; + case 0x0548: + bufpush(0x0578); + break; + case 0x0549: + bufpush(0x0579); + break; + case 0x054A: + bufpush(0x057A); + break; + case 0x054B: + bufpush(0x057B); + break; + case 0x054C: + bufpush(0x057C); + break; + case 0x054D: + bufpush(0x057D); + break; + case 0x054E: + bufpush(0x057E); + break; + case 0x054F: + bufpush(0x057F); + break; + case 0x0550: + bufpush(0x0580); + break; + case 0x0551: + bufpush(0x0581); + break; + case 0x0552: + bufpush(0x0582); + break; + case 0x0553: + bufpush(0x0583); + break; + case 0x0554: + bufpush(0x0584); + break; + case 0x0555: + bufpush(0x0585); + break; + case 0x0556: + bufpush(0x0586); + break; + case 0x0587: + bufpush(0x0565); + bufpush(0x0582); + break; + case 0x10A0: + bufpush(0x2D00); + break; + case 0x10A1: + bufpush(0x2D01); + break; + case 0x10A2: + bufpush(0x2D02); + break; + case 0x10A3: + bufpush(0x2D03); + break; + case 0x10A4: + bufpush(0x2D04); + break; + case 0x10A5: + bufpush(0x2D05); + break; + case 0x10A6: + bufpush(0x2D06); + break; + case 0x10A7: + bufpush(0x2D07); + break; + case 0x10A8: + bufpush(0x2D08); + break; + case 0x10A9: + bufpush(0x2D09); + break; + case 0x10AA: + bufpush(0x2D0A); + break; + case 0x10AB: + bufpush(0x2D0B); + break; + case 0x10AC: + bufpush(0x2D0C); + break; + case 0x10AD: + bufpush(0x2D0D); + break; + case 0x10AE: + bufpush(0x2D0E); + break; + case 0x10AF: + bufpush(0x2D0F); + break; + case 0x10B0: + bufpush(0x2D10); + break; + case 0x10B1: + bufpush(0x2D11); + break; + case 0x10B2: + bufpush(0x2D12); + break; + case 0x10B3: + bufpush(0x2D13); + break; + case 0x10B4: + bufpush(0x2D14); + break; + case 0x10B5: + bufpush(0x2D15); + break; + case 0x10B6: + bufpush(0x2D16); + break; + case 0x10B7: + bufpush(0x2D17); + break; + case 0x10B8: + bufpush(0x2D18); + break; + case 0x10B9: + bufpush(0x2D19); + break; + case 0x10BA: + bufpush(0x2D1A); + break; + case 0x10BB: + bufpush(0x2D1B); + break; + case 0x10BC: + bufpush(0x2D1C); + break; + case 0x10BD: + bufpush(0x2D1D); + break; + case 0x10BE: + bufpush(0x2D1E); + break; + case 0x10BF: + bufpush(0x2D1F); + break; + case 0x10C0: + bufpush(0x2D20); + break; + case 0x10C1: + bufpush(0x2D21); + break; + case 0x10C2: + bufpush(0x2D22); + break; + case 0x10C3: + bufpush(0x2D23); + break; + case 0x10C4: + bufpush(0x2D24); + break; + case 0x10C5: + bufpush(0x2D25); + break; + case 0x10C7: + bufpush(0x2D27); + break; + case 0x10CD: + bufpush(0x2D2D); + break; + case 0x13F8: + bufpush(0x13F0); + break; + case 0x13F9: + bufpush(0x13F1); + break; + case 0x13FA: + bufpush(0x13F2); + break; + case 0x13FB: + bufpush(0x13F3); + break; + case 0x13FC: + bufpush(0x13F4); + break; + case 0x13FD: + bufpush(0x13F5); + break; + case 0x1C80: + bufpush(0x0432); + break; + case 0x1C81: + bufpush(0x0434); + break; + case 0x1C82: + bufpush(0x043E); + break; + case 0x1C83: + bufpush(0x0441); + break; + case 0x1C84: + bufpush(0x0442); + break; + case 0x1C85: + bufpush(0x0442); + break; + case 0x1C86: + bufpush(0x044A); + break; + case 0x1C87: + bufpush(0x0463); + break; + case 0x1C88: + bufpush(0xA64B); + break; + case 0x1E00: + bufpush(0x1E01); + break; + case 0x1E02: + bufpush(0x1E03); + break; + case 0x1E04: + bufpush(0x1E05); + break; + case 0x1E06: + bufpush(0x1E07); + break; + case 0x1E08: + bufpush(0x1E09); + break; + case 0x1E0A: + bufpush(0x1E0B); + break; + case 0x1E0C: + bufpush(0x1E0D); + break; + case 0x1E0E: + bufpush(0x1E0F); + break; + case 0x1E10: + bufpush(0x1E11); + break; + case 0x1E12: + bufpush(0x1E13); + break; + case 0x1E14: + bufpush(0x1E15); + break; + case 0x1E16: + bufpush(0x1E17); + break; + case 0x1E18: + bufpush(0x1E19); + break; + case 0x1E1A: + bufpush(0x1E1B); + break; + case 0x1E1C: + bufpush(0x1E1D); + break; + case 0x1E1E: + bufpush(0x1E1F); + break; + case 0x1E20: + bufpush(0x1E21); + break; + case 0x1E22: + bufpush(0x1E23); + break; + case 0x1E24: + bufpush(0x1E25); + break; + case 0x1E26: + bufpush(0x1E27); + break; + case 0x1E28: + bufpush(0x1E29); + break; + case 0x1E2A: + bufpush(0x1E2B); + break; + case 0x1E2C: + bufpush(0x1E2D); + break; + case 0x1E2E: + bufpush(0x1E2F); + break; + case 0x1E30: + bufpush(0x1E31); + break; + case 0x1E32: + bufpush(0x1E33); + break; + case 0x1E34: + bufpush(0x1E35); + break; + case 0x1E36: + bufpush(0x1E37); + break; + case 0x1E38: + bufpush(0x1E39); + break; + case 0x1E3A: + bufpush(0x1E3B); + break; + case 0x1E3C: + bufpush(0x1E3D); + break; + case 0x1E3E: + bufpush(0x1E3F); + break; + case 0x1E40: + bufpush(0x1E41); + break; + case 0x1E42: + bufpush(0x1E43); + break; + case 0x1E44: + bufpush(0x1E45); + break; + case 0x1E46: + bufpush(0x1E47); + break; + case 0x1E48: + bufpush(0x1E49); + break; + case 0x1E4A: + bufpush(0x1E4B); + break; + case 0x1E4C: + bufpush(0x1E4D); + break; + case 0x1E4E: + bufpush(0x1E4F); + break; + case 0x1E50: + bufpush(0x1E51); + break; + case 0x1E52: + bufpush(0x1E53); + break; + case 0x1E54: + bufpush(0x1E55); + break; + case 0x1E56: + bufpush(0x1E57); + break; + case 0x1E58: + bufpush(0x1E59); + break; + case 0x1E5A: + bufpush(0x1E5B); + break; + case 0x1E5C: + bufpush(0x1E5D); + break; + case 0x1E5E: + bufpush(0x1E5F); + break; + case 0x1E60: + bufpush(0x1E61); + break; + case 0x1E62: + bufpush(0x1E63); + break; + case 0x1E64: + bufpush(0x1E65); + break; + case 0x1E66: + bufpush(0x1E67); + break; + case 0x1E68: + bufpush(0x1E69); + break; + case 0x1E6A: + bufpush(0x1E6B); + break; + case 0x1E6C: + bufpush(0x1E6D); + break; + case 0x1E6E: + bufpush(0x1E6F); + break; + case 0x1E70: + bufpush(0x1E71); + break; + case 0x1E72: + bufpush(0x1E73); + break; + case 0x1E74: + bufpush(0x1E75); + break; + case 0x1E76: + bufpush(0x1E77); + break; + case 0x1E78: + bufpush(0x1E79); + break; + case 0x1E7A: + bufpush(0x1E7B); + break; + case 0x1E7C: + bufpush(0x1E7D); + break; + case 0x1E7E: + bufpush(0x1E7F); + break; + case 0x1E80: + bufpush(0x1E81); + break; + case 0x1E82: + bufpush(0x1E83); + break; + case 0x1E84: + bufpush(0x1E85); + break; + case 0x1E86: + bufpush(0x1E87); + break; + case 0x1E88: + bufpush(0x1E89); + break; + case 0x1E8A: + bufpush(0x1E8B); + break; + case 0x1E8C: + bufpush(0x1E8D); + break; + case 0x1E8E: + bufpush(0x1E8F); + break; + case 0x1E90: + bufpush(0x1E91); + break; + case 0x1E92: + bufpush(0x1E93); + break; + case 0x1E94: + bufpush(0x1E95); + break; + case 0x1E96: + bufpush(0x0068); + bufpush(0x0331); + break; + case 0x1E97: + bufpush(0x0074); + bufpush(0x0308); + break; + case 0x1E98: + bufpush(0x0077); + bufpush(0x030A); + break; + case 0x1E99: + bufpush(0x0079); + bufpush(0x030A); + break; + case 0x1E9A: + bufpush(0x0061); + bufpush(0x02BE); + break; + case 0x1E9B: + bufpush(0x1E61); + break; + case 0x1E9E: + bufpush(0x0073); + bufpush(0x0073); + break; + case 0x1EA0: + bufpush(0x1EA1); + break; + case 0x1EA2: + bufpush(0x1EA3); + break; + case 0x1EA4: + bufpush(0x1EA5); + break; + case 0x1EA6: + bufpush(0x1EA7); + break; + case 0x1EA8: + bufpush(0x1EA9); + break; + case 0x1EAA: + bufpush(0x1EAB); + break; + case 0x1EAC: + bufpush(0x1EAD); + break; + case 0x1EAE: + bufpush(0x1EAF); + break; + case 0x1EB0: + bufpush(0x1EB1); + break; + case 0x1EB2: + bufpush(0x1EB3); + break; + case 0x1EB4: + bufpush(0x1EB5); + break; + case 0x1EB6: + bufpush(0x1EB7); + break; + case 0x1EB8: + bufpush(0x1EB9); + break; + case 0x1EBA: + bufpush(0x1EBB); + break; + case 0x1EBC: + bufpush(0x1EBD); + break; + case 0x1EBE: + bufpush(0x1EBF); + break; + case 0x1EC0: + bufpush(0x1EC1); + break; + case 0x1EC2: + bufpush(0x1EC3); + break; + case 0x1EC4: + bufpush(0x1EC5); + break; + case 0x1EC6: + bufpush(0x1EC7); + break; + case 0x1EC8: + bufpush(0x1EC9); + break; + case 0x1ECA: + bufpush(0x1ECB); + break; + case 0x1ECC: + bufpush(0x1ECD); + break; + case 0x1ECE: + bufpush(0x1ECF); + break; + case 0x1ED0: + bufpush(0x1ED1); + break; + case 0x1ED2: + bufpush(0x1ED3); + break; + case 0x1ED4: + bufpush(0x1ED5); + break; + case 0x1ED6: + bufpush(0x1ED7); + break; + case 0x1ED8: + bufpush(0x1ED9); + break; + case 0x1EDA: + bufpush(0x1EDB); + break; + case 0x1EDC: + bufpush(0x1EDD); + break; + case 0x1EDE: + bufpush(0x1EDF); + break; + case 0x1EE0: + bufpush(0x1EE1); + break; + case 0x1EE2: + bufpush(0x1EE3); + break; + case 0x1EE4: + bufpush(0x1EE5); + break; + case 0x1EE6: + bufpush(0x1EE7); + break; + case 0x1EE8: + bufpush(0x1EE9); + break; + case 0x1EEA: + bufpush(0x1EEB); + break; + case 0x1EEC: + bufpush(0x1EED); + break; + case 0x1EEE: + bufpush(0x1EEF); + break; + case 0x1EF0: + bufpush(0x1EF1); + break; + case 0x1EF2: + bufpush(0x1EF3); + break; + case 0x1EF4: + bufpush(0x1EF5); + break; + case 0x1EF6: + bufpush(0x1EF7); + break; + case 0x1EF8: + bufpush(0x1EF9); + break; + case 0x1EFA: + bufpush(0x1EFB); + break; + case 0x1EFC: + bufpush(0x1EFD); + break; + case 0x1EFE: + bufpush(0x1EFF); + break; + case 0x1F08: + bufpush(0x1F00); + break; + case 0x1F09: + bufpush(0x1F01); + break; + case 0x1F0A: + bufpush(0x1F02); + break; + case 0x1F0B: + bufpush(0x1F03); + break; + case 0x1F0C: + bufpush(0x1F04); + break; + case 0x1F0D: + bufpush(0x1F05); + break; + case 0x1F0E: + bufpush(0x1F06); + break; + case 0x1F0F: + bufpush(0x1F07); + break; + case 0x1F18: + bufpush(0x1F10); + break; + case 0x1F19: + bufpush(0x1F11); + break; + case 0x1F1A: + bufpush(0x1F12); + break; + case 0x1F1B: + bufpush(0x1F13); + break; + case 0x1F1C: + bufpush(0x1F14); + break; + case 0x1F1D: + bufpush(0x1F15); + break; + case 0x1F28: + bufpush(0x1F20); + break; + case 0x1F29: + bufpush(0x1F21); + break; + case 0x1F2A: + bufpush(0x1F22); + break; + case 0x1F2B: + bufpush(0x1F23); + break; + case 0x1F2C: + bufpush(0x1F24); + break; + case 0x1F2D: + bufpush(0x1F25); + break; + case 0x1F2E: + bufpush(0x1F26); + break; + case 0x1F2F: + bufpush(0x1F27); + break; + case 0x1F38: + bufpush(0x1F30); + break; + case 0x1F39: + bufpush(0x1F31); + break; + case 0x1F3A: + bufpush(0x1F32); + break; + case 0x1F3B: + bufpush(0x1F33); + break; + case 0x1F3C: + bufpush(0x1F34); + break; + case 0x1F3D: + bufpush(0x1F35); + break; + case 0x1F3E: + bufpush(0x1F36); + break; + case 0x1F3F: + bufpush(0x1F37); + break; + case 0x1F48: + bufpush(0x1F40); + break; + case 0x1F49: + bufpush(0x1F41); + break; + case 0x1F4A: + bufpush(0x1F42); + break; + case 0x1F4B: + bufpush(0x1F43); + break; + case 0x1F4C: + bufpush(0x1F44); + break; + case 0x1F4D: + bufpush(0x1F45); + break; + case 0x1F50: + bufpush(0x03C5); + bufpush(0x0313); + break; + case 0x1F52: + bufpush(0x03C5); + bufpush(0x0313); + bufpush(0x0300); + break; + case 0x1F54: + bufpush(0x03C5); + bufpush(0x0313); + bufpush(0x0301); + break; + case 0x1F56: + bufpush(0x03C5); + bufpush(0x0313); + bufpush(0x0342); + break; + case 0x1F59: + bufpush(0x1F51); + break; + case 0x1F5B: + bufpush(0x1F53); + break; + case 0x1F5D: + bufpush(0x1F55); + break; + case 0x1F5F: + bufpush(0x1F57); + break; + case 0x1F68: + bufpush(0x1F60); + break; + case 0x1F69: + bufpush(0x1F61); + break; + case 0x1F6A: + bufpush(0x1F62); + break; + case 0x1F6B: + bufpush(0x1F63); + break; + case 0x1F6C: + bufpush(0x1F64); + break; + case 0x1F6D: + bufpush(0x1F65); + break; + case 0x1F6E: + bufpush(0x1F66); + break; + case 0x1F6F: + bufpush(0x1F67); + break; + case 0x1F80: + bufpush(0x1F00); + bufpush(0x03B9); + break; + case 0x1F81: + bufpush(0x1F01); + bufpush(0x03B9); + break; + case 0x1F82: + bufpush(0x1F02); + bufpush(0x03B9); + break; + case 0x1F83: + bufpush(0x1F03); + bufpush(0x03B9); + break; + case 0x1F84: + bufpush(0x1F04); + bufpush(0x03B9); + break; + case 0x1F85: + bufpush(0x1F05); + bufpush(0x03B9); + break; + case 0x1F86: + bufpush(0x1F06); + bufpush(0x03B9); + break; + case 0x1F87: + bufpush(0x1F07); + bufpush(0x03B9); + break; + case 0x1F88: + bufpush(0x1F00); + bufpush(0x03B9); + break; + case 0x1F89: + bufpush(0x1F01); + bufpush(0x03B9); + break; + case 0x1F8A: + bufpush(0x1F02); + bufpush(0x03B9); + break; + case 0x1F8B: + bufpush(0x1F03); + bufpush(0x03B9); + break; + case 0x1F8C: + bufpush(0x1F04); + bufpush(0x03B9); + break; + case 0x1F8D: + bufpush(0x1F05); + bufpush(0x03B9); + break; + case 0x1F8E: + bufpush(0x1F06); + bufpush(0x03B9); + break; + case 0x1F8F: + bufpush(0x1F07); + bufpush(0x03B9); + break; + case 0x1F90: + bufpush(0x1F20); + bufpush(0x03B9); + break; + case 0x1F91: + bufpush(0x1F21); + bufpush(0x03B9); + break; + case 0x1F92: + bufpush(0x1F22); + bufpush(0x03B9); + break; + case 0x1F93: + bufpush(0x1F23); + bufpush(0x03B9); + break; + case 0x1F94: + bufpush(0x1F24); + bufpush(0x03B9); + break; + case 0x1F95: + bufpush(0x1F25); + bufpush(0x03B9); + break; + case 0x1F96: + bufpush(0x1F26); + bufpush(0x03B9); + break; + case 0x1F97: + bufpush(0x1F27); + bufpush(0x03B9); + break; + case 0x1F98: + bufpush(0x1F20); + bufpush(0x03B9); + break; + case 0x1F99: + bufpush(0x1F21); + bufpush(0x03B9); + break; + case 0x1F9A: + bufpush(0x1F22); + bufpush(0x03B9); + break; + case 0x1F9B: + bufpush(0x1F23); + bufpush(0x03B9); + break; + case 0x1F9C: + bufpush(0x1F24); + bufpush(0x03B9); + break; + case 0x1F9D: + bufpush(0x1F25); + bufpush(0x03B9); + break; + case 0x1F9E: + bufpush(0x1F26); + bufpush(0x03B9); + break; + case 0x1F9F: + bufpush(0x1F27); + bufpush(0x03B9); + break; + case 0x1FA0: + bufpush(0x1F60); + bufpush(0x03B9); + break; + case 0x1FA1: + bufpush(0x1F61); + bufpush(0x03B9); + break; + case 0x1FA2: + bufpush(0x1F62); + bufpush(0x03B9); + break; + case 0x1FA3: + bufpush(0x1F63); + bufpush(0x03B9); + break; + case 0x1FA4: + bufpush(0x1F64); + bufpush(0x03B9); + break; + case 0x1FA5: + bufpush(0x1F65); + bufpush(0x03B9); + break; + case 0x1FA6: + bufpush(0x1F66); + bufpush(0x03B9); + break; + case 0x1FA7: + bufpush(0x1F67); + bufpush(0x03B9); + break; + case 0x1FA8: + bufpush(0x1F60); + bufpush(0x03B9); + break; + case 0x1FA9: + bufpush(0x1F61); + bufpush(0x03B9); + break; + case 0x1FAA: + bufpush(0x1F62); + bufpush(0x03B9); + break; + case 0x1FAB: + bufpush(0x1F63); + bufpush(0x03B9); + break; + case 0x1FAC: + bufpush(0x1F64); + bufpush(0x03B9); + break; + case 0x1FAD: + bufpush(0x1F65); + bufpush(0x03B9); + break; + case 0x1FAE: + bufpush(0x1F66); + bufpush(0x03B9); + break; + case 0x1FAF: + bufpush(0x1F67); + bufpush(0x03B9); + break; + case 0x1FB2: + bufpush(0x1F70); + bufpush(0x03B9); + break; + case 0x1FB3: + bufpush(0x03B1); + bufpush(0x03B9); + break; + case 0x1FB4: + bufpush(0x03AC); + bufpush(0x03B9); + break; + case 0x1FB6: + bufpush(0x03B1); + bufpush(0x0342); + break; + case 0x1FB7: + bufpush(0x03B1); + bufpush(0x0342); + bufpush(0x03B9); + break; + case 0x1FB8: + bufpush(0x1FB0); + break; + case 0x1FB9: + bufpush(0x1FB1); + break; + case 0x1FBA: + bufpush(0x1F70); + break; + case 0x1FBB: + bufpush(0x1F71); + break; + case 0x1FBC: + bufpush(0x03B1); + bufpush(0x03B9); + break; + case 0x1FBE: + bufpush(0x03B9); + break; + case 0x1FC2: + bufpush(0x1F74); + bufpush(0x03B9); + break; + case 0x1FC3: + bufpush(0x03B7); + bufpush(0x03B9); + break; + case 0x1FC4: + bufpush(0x03AE); + bufpush(0x03B9); + break; + case 0x1FC6: + bufpush(0x03B7); + bufpush(0x0342); + break; + case 0x1FC7: + bufpush(0x03B7); + bufpush(0x0342); + bufpush(0x03B9); + break; + case 0x1FC8: + bufpush(0x1F72); + break; + case 0x1FC9: + bufpush(0x1F73); + break; + case 0x1FCA: + bufpush(0x1F74); + break; + case 0x1FCB: + bufpush(0x1F75); + break; + case 0x1FCC: + bufpush(0x03B7); + bufpush(0x03B9); + break; + case 0x1FD2: + bufpush(0x03B9); + bufpush(0x0308); + bufpush(0x0300); + break; + case 0x1FD3: + bufpush(0x03B9); + bufpush(0x0308); + bufpush(0x0301); + break; + case 0x1FD6: + bufpush(0x03B9); + bufpush(0x0342); + break; + case 0x1FD7: + bufpush(0x03B9); + bufpush(0x0308); + bufpush(0x0342); + break; + case 0x1FD8: + bufpush(0x1FD0); + break; + case 0x1FD9: + bufpush(0x1FD1); + break; + case 0x1FDA: + bufpush(0x1F76); + break; + case 0x1FDB: + bufpush(0x1F77); + break; + case 0x1FE2: + bufpush(0x03C5); + bufpush(0x0308); + bufpush(0x0300); + break; + case 0x1FE3: + bufpush(0x03C5); + bufpush(0x0308); + bufpush(0x0301); + break; + case 0x1FE4: + bufpush(0x03C1); + bufpush(0x0313); + break; + case 0x1FE6: + bufpush(0x03C5); + bufpush(0x0342); + break; + case 0x1FE7: + bufpush(0x03C5); + bufpush(0x0308); + bufpush(0x0342); + break; + case 0x1FE8: + bufpush(0x1FE0); + break; + case 0x1FE9: + bufpush(0x1FE1); + break; + case 0x1FEA: + bufpush(0x1F7A); + break; + case 0x1FEB: + bufpush(0x1F7B); + break; + case 0x1FEC: + bufpush(0x1FE5); + break; + case 0x1FF2: + bufpush(0x1F7C); + bufpush(0x03B9); + break; + case 0x1FF3: + bufpush(0x03C9); + bufpush(0x03B9); + break; + case 0x1FF4: + bufpush(0x03CE); + bufpush(0x03B9); + break; + case 0x1FF6: + bufpush(0x03C9); + bufpush(0x0342); + break; + case 0x1FF7: + bufpush(0x03C9); + bufpush(0x0342); + bufpush(0x03B9); + break; + case 0x1FF8: + bufpush(0x1F78); + break; + case 0x1FF9: + bufpush(0x1F79); + break; + case 0x1FFA: + bufpush(0x1F7C); + break; + case 0x1FFB: + bufpush(0x1F7D); + break; + case 0x1FFC: + bufpush(0x03C9); + bufpush(0x03B9); + break; + case 0x2126: + bufpush(0x03C9); + break; + case 0x212A: + bufpush(0x006B); + break; + case 0x212B: + bufpush(0x00E5); + break; + case 0x2132: + bufpush(0x214E); + break; + case 0x2160: + bufpush(0x2170); + break; + case 0x2161: + bufpush(0x2171); + break; + case 0x2162: + bufpush(0x2172); + break; + case 0x2163: + bufpush(0x2173); + break; + case 0x2164: + bufpush(0x2174); + break; + case 0x2165: + bufpush(0x2175); + break; + case 0x2166: + bufpush(0x2176); + break; + case 0x2167: + bufpush(0x2177); + break; + case 0x2168: + bufpush(0x2178); + break; + case 0x2169: + bufpush(0x2179); + break; + case 0x216A: + bufpush(0x217A); + break; + case 0x216B: + bufpush(0x217B); + break; + case 0x216C: + bufpush(0x217C); + break; + case 0x216D: + bufpush(0x217D); + break; + case 0x216E: + bufpush(0x217E); + break; + case 0x216F: + bufpush(0x217F); + break; + case 0x2183: + bufpush(0x2184); + break; + case 0x24B6: + bufpush(0x24D0); + break; + case 0x24B7: + bufpush(0x24D1); + break; + case 0x24B8: + bufpush(0x24D2); + break; + case 0x24B9: + bufpush(0x24D3); + break; + case 0x24BA: + bufpush(0x24D4); + break; + case 0x24BB: + bufpush(0x24D5); + break; + case 0x24BC: + bufpush(0x24D6); + break; + case 0x24BD: + bufpush(0x24D7); + break; + case 0x24BE: + bufpush(0x24D8); + break; + case 0x24BF: + bufpush(0x24D9); + break; + case 0x24C0: + bufpush(0x24DA); + break; + case 0x24C1: + bufpush(0x24DB); + break; + case 0x24C2: + bufpush(0x24DC); + break; + case 0x24C3: + bufpush(0x24DD); + break; + case 0x24C4: + bufpush(0x24DE); + break; + case 0x24C5: + bufpush(0x24DF); + break; + case 0x24C6: + bufpush(0x24E0); + break; + case 0x24C7: + bufpush(0x24E1); + break; + case 0x24C8: + bufpush(0x24E2); + break; + case 0x24C9: + bufpush(0x24E3); + break; + case 0x24CA: + bufpush(0x24E4); + break; + case 0x24CB: + bufpush(0x24E5); + break; + case 0x24CC: + bufpush(0x24E6); + break; + case 0x24CD: + bufpush(0x24E7); + break; + case 0x24CE: + bufpush(0x24E8); + break; + case 0x24CF: + bufpush(0x24E9); + break; + case 0x2C00: + bufpush(0x2C30); + break; + case 0x2C01: + bufpush(0x2C31); + break; + case 0x2C02: + bufpush(0x2C32); + break; + case 0x2C03: + bufpush(0x2C33); + break; + case 0x2C04: + bufpush(0x2C34); + break; + case 0x2C05: + bufpush(0x2C35); + break; + case 0x2C06: + bufpush(0x2C36); + break; + case 0x2C07: + bufpush(0x2C37); + break; + case 0x2C08: + bufpush(0x2C38); + break; + case 0x2C09: + bufpush(0x2C39); + break; + case 0x2C0A: + bufpush(0x2C3A); + break; + case 0x2C0B: + bufpush(0x2C3B); + break; + case 0x2C0C: + bufpush(0x2C3C); + break; + case 0x2C0D: + bufpush(0x2C3D); + break; + case 0x2C0E: + bufpush(0x2C3E); + break; + case 0x2C0F: + bufpush(0x2C3F); + break; + case 0x2C10: + bufpush(0x2C40); + break; + case 0x2C11: + bufpush(0x2C41); + break; + case 0x2C12: + bufpush(0x2C42); + break; + case 0x2C13: + bufpush(0x2C43); + break; + case 0x2C14: + bufpush(0x2C44); + break; + case 0x2C15: + bufpush(0x2C45); + break; + case 0x2C16: + bufpush(0x2C46); + break; + case 0x2C17: + bufpush(0x2C47); + break; + case 0x2C18: + bufpush(0x2C48); + break; + case 0x2C19: + bufpush(0x2C49); + break; + case 0x2C1A: + bufpush(0x2C4A); + break; + case 0x2C1B: + bufpush(0x2C4B); + break; + case 0x2C1C: + bufpush(0x2C4C); + break; + case 0x2C1D: + bufpush(0x2C4D); + break; + case 0x2C1E: + bufpush(0x2C4E); + break; + case 0x2C1F: + bufpush(0x2C4F); + break; + case 0x2C20: + bufpush(0x2C50); + break; + case 0x2C21: + bufpush(0x2C51); + break; + case 0x2C22: + bufpush(0x2C52); + break; + case 0x2C23: + bufpush(0x2C53); + break; + case 0x2C24: + bufpush(0x2C54); + break; + case 0x2C25: + bufpush(0x2C55); + break; + case 0x2C26: + bufpush(0x2C56); + break; + case 0x2C27: + bufpush(0x2C57); + break; + case 0x2C28: + bufpush(0x2C58); + break; + case 0x2C29: + bufpush(0x2C59); + break; + case 0x2C2A: + bufpush(0x2C5A); + break; + case 0x2C2B: + bufpush(0x2C5B); + break; + case 0x2C2C: + bufpush(0x2C5C); + break; + case 0x2C2D: + bufpush(0x2C5D); + break; + case 0x2C2E: + bufpush(0x2C5E); + break; + case 0x2C60: + bufpush(0x2C61); + break; + case 0x2C62: + bufpush(0x026B); + break; + case 0x2C63: + bufpush(0x1D7D); + break; + case 0x2C64: + bufpush(0x027D); + break; + case 0x2C67: + bufpush(0x2C68); + break; + case 0x2C69: + bufpush(0x2C6A); + break; + case 0x2C6B: + bufpush(0x2C6C); + break; + case 0x2C6D: + bufpush(0x0251); + break; + case 0x2C6E: + bufpush(0x0271); + break; + case 0x2C6F: + bufpush(0x0250); + break; + case 0x2C70: + bufpush(0x0252); + break; + case 0x2C72: + bufpush(0x2C73); + break; + case 0x2C75: + bufpush(0x2C76); + break; + case 0x2C7E: + bufpush(0x023F); + break; + case 0x2C7F: + bufpush(0x0240); + break; + case 0x2C80: + bufpush(0x2C81); + break; + case 0x2C82: + bufpush(0x2C83); + break; + case 0x2C84: + bufpush(0x2C85); + break; + case 0x2C86: + bufpush(0x2C87); + break; + case 0x2C88: + bufpush(0x2C89); + break; + case 0x2C8A: + bufpush(0x2C8B); + break; + case 0x2C8C: + bufpush(0x2C8D); + break; + case 0x2C8E: + bufpush(0x2C8F); + break; + case 0x2C90: + bufpush(0x2C91); + break; + case 0x2C92: + bufpush(0x2C93); + break; + case 0x2C94: + bufpush(0x2C95); + break; + case 0x2C96: + bufpush(0x2C97); + break; + case 0x2C98: + bufpush(0x2C99); + break; + case 0x2C9A: + bufpush(0x2C9B); + break; + case 0x2C9C: + bufpush(0x2C9D); + break; + case 0x2C9E: + bufpush(0x2C9F); + break; + case 0x2CA0: + bufpush(0x2CA1); + break; + case 0x2CA2: + bufpush(0x2CA3); + break; + case 0x2CA4: + bufpush(0x2CA5); + break; + case 0x2CA6: + bufpush(0x2CA7); + break; + case 0x2CA8: + bufpush(0x2CA9); + break; + case 0x2CAA: + bufpush(0x2CAB); + break; + case 0x2CAC: + bufpush(0x2CAD); + break; + case 0x2CAE: + bufpush(0x2CAF); + break; + case 0x2CB0: + bufpush(0x2CB1); + break; + case 0x2CB2: + bufpush(0x2CB3); + break; + case 0x2CB4: + bufpush(0x2CB5); + break; + case 0x2CB6: + bufpush(0x2CB7); + break; + case 0x2CB8: + bufpush(0x2CB9); + break; + case 0x2CBA: + bufpush(0x2CBB); + break; + case 0x2CBC: + bufpush(0x2CBD); + break; + case 0x2CBE: + bufpush(0x2CBF); + break; + case 0x2CC0: + bufpush(0x2CC1); + break; + case 0x2CC2: + bufpush(0x2CC3); + break; + case 0x2CC4: + bufpush(0x2CC5); + break; + case 0x2CC6: + bufpush(0x2CC7); + break; + case 0x2CC8: + bufpush(0x2CC9); + break; + case 0x2CCA: + bufpush(0x2CCB); + break; + case 0x2CCC: + bufpush(0x2CCD); + break; + case 0x2CCE: + bufpush(0x2CCF); + break; + case 0x2CD0: + bufpush(0x2CD1); + break; + case 0x2CD2: + bufpush(0x2CD3); + break; + case 0x2CD4: + bufpush(0x2CD5); + break; + case 0x2CD6: + bufpush(0x2CD7); + break; + case 0x2CD8: + bufpush(0x2CD9); + break; + case 0x2CDA: + bufpush(0x2CDB); + break; + case 0x2CDC: + bufpush(0x2CDD); + break; + case 0x2CDE: + bufpush(0x2CDF); + break; + case 0x2CE0: + bufpush(0x2CE1); + break; + case 0x2CE2: + bufpush(0x2CE3); + break; + case 0x2CEB: + bufpush(0x2CEC); + break; + case 0x2CED: + bufpush(0x2CEE); + break; + case 0x2CF2: + bufpush(0x2CF3); + break; + case 0xA640: + bufpush(0xA641); + break; + case 0xA642: + bufpush(0xA643); + break; + case 0xA644: + bufpush(0xA645); + break; + case 0xA646: + bufpush(0xA647); + break; + case 0xA648: + bufpush(0xA649); + break; + case 0xA64A: + bufpush(0xA64B); + break; + case 0xA64C: + bufpush(0xA64D); + break; + case 0xA64E: + bufpush(0xA64F); + break; + case 0xA650: + bufpush(0xA651); + break; + case 0xA652: + bufpush(0xA653); + break; + case 0xA654: + bufpush(0xA655); + break; + case 0xA656: + bufpush(0xA657); + break; + case 0xA658: + bufpush(0xA659); + break; + case 0xA65A: + bufpush(0xA65B); + break; + case 0xA65C: + bufpush(0xA65D); + break; + case 0xA65E: + bufpush(0xA65F); + break; + case 0xA660: + bufpush(0xA661); + break; + case 0xA662: + bufpush(0xA663); + break; + case 0xA664: + bufpush(0xA665); + break; + case 0xA666: + bufpush(0xA667); + break; + case 0xA668: + bufpush(0xA669); + break; + case 0xA66A: + bufpush(0xA66B); + break; + case 0xA66C: + bufpush(0xA66D); + break; + case 0xA680: + bufpush(0xA681); + break; + case 0xA682: + bufpush(0xA683); + break; + case 0xA684: + bufpush(0xA685); + break; + case 0xA686: + bufpush(0xA687); + break; + case 0xA688: + bufpush(0xA689); + break; + case 0xA68A: + bufpush(0xA68B); + break; + case 0xA68C: + bufpush(0xA68D); + break; + case 0xA68E: + bufpush(0xA68F); + break; + case 0xA690: + bufpush(0xA691); + break; + case 0xA692: + bufpush(0xA693); + break; + case 0xA694: + bufpush(0xA695); + break; + case 0xA696: + bufpush(0xA697); + break; + case 0xA698: + bufpush(0xA699); + break; + case 0xA69A: + bufpush(0xA69B); + break; + case 0xA722: + bufpush(0xA723); + break; + case 0xA724: + bufpush(0xA725); + break; + case 0xA726: + bufpush(0xA727); + break; + case 0xA728: + bufpush(0xA729); + break; + case 0xA72A: + bufpush(0xA72B); + break; + case 0xA72C: + bufpush(0xA72D); + break; + case 0xA72E: + bufpush(0xA72F); + break; + case 0xA732: + bufpush(0xA733); + break; + case 0xA734: + bufpush(0xA735); + break; + case 0xA736: + bufpush(0xA737); + break; + case 0xA738: + bufpush(0xA739); + break; + case 0xA73A: + bufpush(0xA73B); + break; + case 0xA73C: + bufpush(0xA73D); + break; + case 0xA73E: + bufpush(0xA73F); + break; + case 0xA740: + bufpush(0xA741); + break; + case 0xA742: + bufpush(0xA743); + break; + case 0xA744: + bufpush(0xA745); + break; + case 0xA746: + bufpush(0xA747); + break; + case 0xA748: + bufpush(0xA749); + break; + case 0xA74A: + bufpush(0xA74B); + break; + case 0xA74C: + bufpush(0xA74D); + break; + case 0xA74E: + bufpush(0xA74F); + break; + case 0xA750: + bufpush(0xA751); + break; + case 0xA752: + bufpush(0xA753); + break; + case 0xA754: + bufpush(0xA755); + break; + case 0xA756: + bufpush(0xA757); + break; + case 0xA758: + bufpush(0xA759); + break; + case 0xA75A: + bufpush(0xA75B); + break; + case 0xA75C: + bufpush(0xA75D); + break; + case 0xA75E: + bufpush(0xA75F); + break; + case 0xA760: + bufpush(0xA761); + break; + case 0xA762: + bufpush(0xA763); + break; + case 0xA764: + bufpush(0xA765); + break; + case 0xA766: + bufpush(0xA767); + break; + case 0xA768: + bufpush(0xA769); + break; + case 0xA76A: + bufpush(0xA76B); + break; + case 0xA76C: + bufpush(0xA76D); + break; + case 0xA76E: + bufpush(0xA76F); + break; + case 0xA779: + bufpush(0xA77A); + break; + case 0xA77B: + bufpush(0xA77C); + break; + case 0xA77D: + bufpush(0x1D79); + break; + case 0xA77E: + bufpush(0xA77F); + break; + case 0xA780: + bufpush(0xA781); + break; + case 0xA782: + bufpush(0xA783); + break; + case 0xA784: + bufpush(0xA785); + break; + case 0xA786: + bufpush(0xA787); + break; + case 0xA78B: + bufpush(0xA78C); + break; + case 0xA78D: + bufpush(0x0265); + break; + case 0xA790: + bufpush(0xA791); + break; + case 0xA792: + bufpush(0xA793); + break; + case 0xA796: + bufpush(0xA797); + break; + case 0xA798: + bufpush(0xA799); + break; + case 0xA79A: + bufpush(0xA79B); + break; + case 0xA79C: + bufpush(0xA79D); + break; + case 0xA79E: + bufpush(0xA79F); + break; + case 0xA7A0: + bufpush(0xA7A1); + break; + case 0xA7A2: + bufpush(0xA7A3); + break; + case 0xA7A4: + bufpush(0xA7A5); + break; + case 0xA7A6: + bufpush(0xA7A7); + break; + case 0xA7A8: + bufpush(0xA7A9); + break; + case 0xA7AA: + bufpush(0x0266); + break; + case 0xA7AB: + bufpush(0x025C); + break; + case 0xA7AC: + bufpush(0x0261); + break; + case 0xA7AD: + bufpush(0x026C); + break; + case 0xA7AE: + bufpush(0x026A); + break; + case 0xA7B0: + bufpush(0x029E); + break; + case 0xA7B1: + bufpush(0x0287); + break; + case 0xA7B2: + bufpush(0x029D); + break; + case 0xA7B3: + bufpush(0xAB53); + break; + case 0xA7B4: + bufpush(0xA7B5); + break; + case 0xA7B6: + bufpush(0xA7B7); + break; + case 0xAB70: + bufpush(0x13A0); + break; + case 0xAB71: + bufpush(0x13A1); + break; + case 0xAB72: + bufpush(0x13A2); + break; + case 0xAB73: + bufpush(0x13A3); + break; + case 0xAB74: + bufpush(0x13A4); + break; + case 0xAB75: + bufpush(0x13A5); + break; + case 0xAB76: + bufpush(0x13A6); + break; + case 0xAB77: + bufpush(0x13A7); + break; + case 0xAB78: + bufpush(0x13A8); + break; + case 0xAB79: + bufpush(0x13A9); + break; + case 0xAB7A: + bufpush(0x13AA); + break; + case 0xAB7B: + bufpush(0x13AB); + break; + case 0xAB7C: + bufpush(0x13AC); + break; + case 0xAB7D: + bufpush(0x13AD); + break; + case 0xAB7E: + bufpush(0x13AE); + break; + case 0xAB7F: + bufpush(0x13AF); + break; + case 0xAB80: + bufpush(0x13B0); + break; + case 0xAB81: + bufpush(0x13B1); + break; + case 0xAB82: + bufpush(0x13B2); + break; + case 0xAB83: + bufpush(0x13B3); + break; + case 0xAB84: + bufpush(0x13B4); + break; + case 0xAB85: + bufpush(0x13B5); + break; + case 0xAB86: + bufpush(0x13B6); + break; + case 0xAB87: + bufpush(0x13B7); + break; + case 0xAB88: + bufpush(0x13B8); + break; + case 0xAB89: + bufpush(0x13B9); + break; + case 0xAB8A: + bufpush(0x13BA); + break; + case 0xAB8B: + bufpush(0x13BB); + break; + case 0xAB8C: + bufpush(0x13BC); + break; + case 0xAB8D: + bufpush(0x13BD); + break; + case 0xAB8E: + bufpush(0x13BE); + break; + case 0xAB8F: + bufpush(0x13BF); + break; + case 0xAB90: + bufpush(0x13C0); + break; + case 0xAB91: + bufpush(0x13C1); + break; + case 0xAB92: + bufpush(0x13C2); + break; + case 0xAB93: + bufpush(0x13C3); + break; + case 0xAB94: + bufpush(0x13C4); + break; + case 0xAB95: + bufpush(0x13C5); + break; + case 0xAB96: + bufpush(0x13C6); + break; + case 0xAB97: + bufpush(0x13C7); + break; + case 0xAB98: + bufpush(0x13C8); + break; + case 0xAB99: + bufpush(0x13C9); + break; + case 0xAB9A: + bufpush(0x13CA); + break; + case 0xAB9B: + bufpush(0x13CB); + break; + case 0xAB9C: + bufpush(0x13CC); + break; + case 0xAB9D: + bufpush(0x13CD); + break; + case 0xAB9E: + bufpush(0x13CE); + break; + case 0xAB9F: + bufpush(0x13CF); + break; + case 0xABA0: + bufpush(0x13D0); + break; + case 0xABA1: + bufpush(0x13D1); + break; + case 0xABA2: + bufpush(0x13D2); + break; + case 0xABA3: + bufpush(0x13D3); + break; + case 0xABA4: + bufpush(0x13D4); + break; + case 0xABA5: + bufpush(0x13D5); + break; + case 0xABA6: + bufpush(0x13D6); + break; + case 0xABA7: + bufpush(0x13D7); + break; + case 0xABA8: + bufpush(0x13D8); + break; + case 0xABA9: + bufpush(0x13D9); + break; + case 0xABAA: + bufpush(0x13DA); + break; + case 0xABAB: + bufpush(0x13DB); + break; + case 0xABAC: + bufpush(0x13DC); + break; + case 0xABAD: + bufpush(0x13DD); + break; + case 0xABAE: + bufpush(0x13DE); + break; + case 0xABAF: + bufpush(0x13DF); + break; + case 0xABB0: + bufpush(0x13E0); + break; + case 0xABB1: + bufpush(0x13E1); + break; + case 0xABB2: + bufpush(0x13E2); + break; + case 0xABB3: + bufpush(0x13E3); + break; + case 0xABB4: + bufpush(0x13E4); + break; + case 0xABB5: + bufpush(0x13E5); + break; + case 0xABB6: + bufpush(0x13E6); + break; + case 0xABB7: + bufpush(0x13E7); + break; + case 0xABB8: + bufpush(0x13E8); + break; + case 0xABB9: + bufpush(0x13E9); + break; + case 0xABBA: + bufpush(0x13EA); + break; + case 0xABBB: + bufpush(0x13EB); + break; + case 0xABBC: + bufpush(0x13EC); + break; + case 0xABBD: + bufpush(0x13ED); + break; + case 0xABBE: + bufpush(0x13EE); + break; + case 0xABBF: + bufpush(0x13EF); + break; + case 0xFB00: + bufpush(0x0066); + bufpush(0x0066); + break; + case 0xFB01: + bufpush(0x0066); + bufpush(0x0069); + break; + case 0xFB02: + bufpush(0x0066); + bufpush(0x006C); + break; + case 0xFB03: + bufpush(0x0066); + bufpush(0x0066); + bufpush(0x0069); + break; + case 0xFB04: + bufpush(0x0066); + bufpush(0x0066); + bufpush(0x006C); + break; + case 0xFB05: + bufpush(0x0073); + bufpush(0x0074); + break; + case 0xFB06: + bufpush(0x0073); + bufpush(0x0074); + break; + case 0xFB13: + bufpush(0x0574); + bufpush(0x0576); + break; + case 0xFB14: + bufpush(0x0574); + bufpush(0x0565); + break; + case 0xFB15: + bufpush(0x0574); + bufpush(0x056B); + break; + case 0xFB16: + bufpush(0x057E); + bufpush(0x0576); + break; + case 0xFB17: + bufpush(0x0574); + bufpush(0x056D); + break; + case 0xFF21: + bufpush(0xFF41); + break; + case 0xFF22: + bufpush(0xFF42); + break; + case 0xFF23: + bufpush(0xFF43); + break; + case 0xFF24: + bufpush(0xFF44); + break; + case 0xFF25: + bufpush(0xFF45); + break; + case 0xFF26: + bufpush(0xFF46); + break; + case 0xFF27: + bufpush(0xFF47); + break; + case 0xFF28: + bufpush(0xFF48); + break; + case 0xFF29: + bufpush(0xFF49); + break; + case 0xFF2A: + bufpush(0xFF4A); + break; + case 0xFF2B: + bufpush(0xFF4B); + break; + case 0xFF2C: + bufpush(0xFF4C); + break; + case 0xFF2D: + bufpush(0xFF4D); + break; + case 0xFF2E: + bufpush(0xFF4E); + break; + case 0xFF2F: + bufpush(0xFF4F); + break; + case 0xFF30: + bufpush(0xFF50); + break; + case 0xFF31: + bufpush(0xFF51); + break; + case 0xFF32: + bufpush(0xFF52); + break; + case 0xFF33: + bufpush(0xFF53); + break; + case 0xFF34: + bufpush(0xFF54); + break; + case 0xFF35: + bufpush(0xFF55); + break; + case 0xFF36: + bufpush(0xFF56); + break; + case 0xFF37: + bufpush(0xFF57); + break; + case 0xFF38: + bufpush(0xFF58); + break; + case 0xFF39: + bufpush(0xFF59); + break; + case 0xFF3A: + bufpush(0xFF5A); + break; + case 0x10400: + bufpush(0x10428); + break; + case 0x10401: + bufpush(0x10429); + break; + case 0x10402: + bufpush(0x1042A); + break; + case 0x10403: + bufpush(0x1042B); + break; + case 0x10404: + bufpush(0x1042C); + break; + case 0x10405: + bufpush(0x1042D); + break; + case 0x10406: + bufpush(0x1042E); + break; + case 0x10407: + bufpush(0x1042F); + break; + case 0x10408: + bufpush(0x10430); + break; + case 0x10409: + bufpush(0x10431); + break; + case 0x1040A: + bufpush(0x10432); + break; + case 0x1040B: + bufpush(0x10433); + break; + case 0x1040C: + bufpush(0x10434); + break; + case 0x1040D: + bufpush(0x10435); + break; + case 0x1040E: + bufpush(0x10436); + break; + case 0x1040F: + bufpush(0x10437); + break; + case 0x10410: + bufpush(0x10438); + break; + case 0x10411: + bufpush(0x10439); + break; + case 0x10412: + bufpush(0x1043A); + break; + case 0x10413: + bufpush(0x1043B); + break; + case 0x10414: + bufpush(0x1043C); + break; + case 0x10415: + bufpush(0x1043D); + break; + case 0x10416: + bufpush(0x1043E); + break; + case 0x10417: + bufpush(0x1043F); + break; + case 0x10418: + bufpush(0x10440); + break; + case 0x10419: + bufpush(0x10441); + break; + case 0x1041A: + bufpush(0x10442); + break; + case 0x1041B: + bufpush(0x10443); + break; + case 0x1041C: + bufpush(0x10444); + break; + case 0x1041D: + bufpush(0x10445); + break; + case 0x1041E: + bufpush(0x10446); + break; + case 0x1041F: + bufpush(0x10447); + break; + case 0x10420: + bufpush(0x10448); + break; + case 0x10421: + bufpush(0x10449); + break; + case 0x10422: + bufpush(0x1044A); + break; + case 0x10423: + bufpush(0x1044B); + break; + case 0x10424: + bufpush(0x1044C); + break; + case 0x10425: + bufpush(0x1044D); + break; + case 0x10426: + bufpush(0x1044E); + break; + case 0x10427: + bufpush(0x1044F); + break; + case 0x104B0: + bufpush(0x104D8); + break; + case 0x104B1: + bufpush(0x104D9); + break; + case 0x104B2: + bufpush(0x104DA); + break; + case 0x104B3: + bufpush(0x104DB); + break; + case 0x104B4: + bufpush(0x104DC); + break; + case 0x104B5: + bufpush(0x104DD); + break; + case 0x104B6: + bufpush(0x104DE); + break; + case 0x104B7: + bufpush(0x104DF); + break; + case 0x104B8: + bufpush(0x104E0); + break; + case 0x104B9: + bufpush(0x104E1); + break; + case 0x104BA: + bufpush(0x104E2); + break; + case 0x104BB: + bufpush(0x104E3); + break; + case 0x104BC: + bufpush(0x104E4); + break; + case 0x104BD: + bufpush(0x104E5); + break; + case 0x104BE: + bufpush(0x104E6); + break; + case 0x104BF: + bufpush(0x104E7); + break; + case 0x104C0: + bufpush(0x104E8); + break; + case 0x104C1: + bufpush(0x104E9); + break; + case 0x104C2: + bufpush(0x104EA); + break; + case 0x104C3: + bufpush(0x104EB); + break; + case 0x104C4: + bufpush(0x104EC); + break; + case 0x104C5: + bufpush(0x104ED); + break; + case 0x104C6: + bufpush(0x104EE); + break; + case 0x104C7: + bufpush(0x104EF); + break; + case 0x104C8: + bufpush(0x104F0); + break; + case 0x104C9: + bufpush(0x104F1); + break; + case 0x104CA: + bufpush(0x104F2); + break; + case 0x104CB: + bufpush(0x104F3); + break; + case 0x104CC: + bufpush(0x104F4); + break; + case 0x104CD: + bufpush(0x104F5); + break; + case 0x104CE: + bufpush(0x104F6); + break; + case 0x104CF: + bufpush(0x104F7); + break; + case 0x104D0: + bufpush(0x104F8); + break; + case 0x104D1: + bufpush(0x104F9); + break; + case 0x104D2: + bufpush(0x104FA); + break; + case 0x104D3: + bufpush(0x104FB); + break; + case 0x10C80: + bufpush(0x10CC0); + break; + case 0x10C81: + bufpush(0x10CC1); + break; + case 0x10C82: + bufpush(0x10CC2); + break; + case 0x10C83: + bufpush(0x10CC3); + break; + case 0x10C84: + bufpush(0x10CC4); + break; + case 0x10C85: + bufpush(0x10CC5); + break; + case 0x10C86: + bufpush(0x10CC6); + break; + case 0x10C87: + bufpush(0x10CC7); + break; + case 0x10C88: + bufpush(0x10CC8); + break; + case 0x10C89: + bufpush(0x10CC9); + break; + case 0x10C8A: + bufpush(0x10CCA); + break; + case 0x10C8B: + bufpush(0x10CCB); + break; + case 0x10C8C: + bufpush(0x10CCC); + break; + case 0x10C8D: + bufpush(0x10CCD); + break; + case 0x10C8E: + bufpush(0x10CCE); + break; + case 0x10C8F: + bufpush(0x10CCF); + break; + case 0x10C90: + bufpush(0x10CD0); + break; + case 0x10C91: + bufpush(0x10CD1); + break; + case 0x10C92: + bufpush(0x10CD2); + break; + case 0x10C93: + bufpush(0x10CD3); + break; + case 0x10C94: + bufpush(0x10CD4); + break; + case 0x10C95: + bufpush(0x10CD5); + break; + case 0x10C96: + bufpush(0x10CD6); + break; + case 0x10C97: + bufpush(0x10CD7); + break; + case 0x10C98: + bufpush(0x10CD8); + break; + case 0x10C99: + bufpush(0x10CD9); + break; + case 0x10C9A: + bufpush(0x10CDA); + break; + case 0x10C9B: + bufpush(0x10CDB); + break; + case 0x10C9C: + bufpush(0x10CDC); + break; + case 0x10C9D: + bufpush(0x10CDD); + break; + case 0x10C9E: + bufpush(0x10CDE); + break; + case 0x10C9F: + bufpush(0x10CDF); + break; + case 0x10CA0: + bufpush(0x10CE0); + break; + case 0x10CA1: + bufpush(0x10CE1); + break; + case 0x10CA2: + bufpush(0x10CE2); + break; + case 0x10CA3: + bufpush(0x10CE3); + break; + case 0x10CA4: + bufpush(0x10CE4); + break; + case 0x10CA5: + bufpush(0x10CE5); + break; + case 0x10CA6: + bufpush(0x10CE6); + break; + case 0x10CA7: + bufpush(0x10CE7); + break; + case 0x10CA8: + bufpush(0x10CE8); + break; + case 0x10CA9: + bufpush(0x10CE9); + break; + case 0x10CAA: + bufpush(0x10CEA); + break; + case 0x10CAB: + bufpush(0x10CEB); + break; + case 0x10CAC: + bufpush(0x10CEC); + break; + case 0x10CAD: + bufpush(0x10CED); + break; + case 0x10CAE: + bufpush(0x10CEE); + break; + case 0x10CAF: + bufpush(0x10CEF); + break; + case 0x10CB0: + bufpush(0x10CF0); + break; + case 0x10CB1: + bufpush(0x10CF1); + break; + case 0x10CB2: + bufpush(0x10CF2); + break; + case 0x118A0: + bufpush(0x118C0); + break; + case 0x118A1: + bufpush(0x118C1); + break; + case 0x118A2: + bufpush(0x118C2); + break; + case 0x118A3: + bufpush(0x118C3); + break; + case 0x118A4: + bufpush(0x118C4); + break; + case 0x118A5: + bufpush(0x118C5); + break; + case 0x118A6: + bufpush(0x118C6); + break; + case 0x118A7: + bufpush(0x118C7); + break; + case 0x118A8: + bufpush(0x118C8); + break; + case 0x118A9: + bufpush(0x118C9); + break; + case 0x118AA: + bufpush(0x118CA); + break; + case 0x118AB: + bufpush(0x118CB); + break; + case 0x118AC: + bufpush(0x118CC); + break; + case 0x118AD: + bufpush(0x118CD); + break; + case 0x118AE: + bufpush(0x118CE); + break; + case 0x118AF: + bufpush(0x118CF); + break; + case 0x118B0: + bufpush(0x118D0); + break; + case 0x118B1: + bufpush(0x118D1); + break; + case 0x118B2: + bufpush(0x118D2); + break; + case 0x118B3: + bufpush(0x118D3); + break; + case 0x118B4: + bufpush(0x118D4); + break; + case 0x118B5: + bufpush(0x118D5); + break; + case 0x118B6: + bufpush(0x118D6); + break; + case 0x118B7: + bufpush(0x118D7); + break; + case 0x118B8: + bufpush(0x118D8); + break; + case 0x118B9: + bufpush(0x118D9); + break; + case 0x118BA: + bufpush(0x118DA); + break; + case 0x118BB: + bufpush(0x118DB); + break; + case 0x118BC: + bufpush(0x118DC); + break; + case 0x118BD: + bufpush(0x118DD); + break; + case 0x118BE: + bufpush(0x118DE); + break; + case 0x118BF: + bufpush(0x118DF); + break; + case 0x1E900: + bufpush(0x1E922); + break; + case 0x1E901: + bufpush(0x1E923); + break; + case 0x1E902: + bufpush(0x1E924); + break; + case 0x1E903: + bufpush(0x1E925); + break; + case 0x1E904: + bufpush(0x1E926); + break; + case 0x1E905: + bufpush(0x1E927); + break; + case 0x1E906: + bufpush(0x1E928); + break; + case 0x1E907: + bufpush(0x1E929); + break; + case 0x1E908: + bufpush(0x1E92A); + break; + case 0x1E909: + bufpush(0x1E92B); + break; + case 0x1E90A: + bufpush(0x1E92C); + break; + case 0x1E90B: + bufpush(0x1E92D); + break; + case 0x1E90C: + bufpush(0x1E92E); + break; + case 0x1E90D: + bufpush(0x1E92F); + break; + case 0x1E90E: + bufpush(0x1E930); + break; + case 0x1E90F: + bufpush(0x1E931); + break; + case 0x1E910: + bufpush(0x1E932); + break; + case 0x1E911: + bufpush(0x1E933); + break; + case 0x1E912: + bufpush(0x1E934); + break; + case 0x1E913: + bufpush(0x1E935); + break; + case 0x1E914: + bufpush(0x1E936); + break; + case 0x1E915: + bufpush(0x1E937); + break; + case 0x1E916: + bufpush(0x1E938); + break; + case 0x1E917: + bufpush(0x1E939); + break; + case 0x1E918: + bufpush(0x1E93A); + break; + case 0x1E919: + bufpush(0x1E93B); + break; + case 0x1E91A: + bufpush(0x1E93C); + break; + case 0x1E91B: + bufpush(0x1E93D); + break; + case 0x1E91C: + bufpush(0x1E93E); + break; + case 0x1E91D: + bufpush(0x1E93F); + break; + case 0x1E91E: + bufpush(0x1E940); + break; + case 0x1E91F: + bufpush(0x1E941); + break; + case 0x1E920: + bufpush(0x1E942); + break; + case 0x1E921: + bufpush(0x1E943); + break; + default: + bufpush(c); + } diff --git a/Example/Pods/Down/Source/cmark/chunk.h b/Example/Pods/Down/Source/cmark/chunk.h new file mode 100755 index 000000000..6d1601d24 --- /dev/null +++ b/Example/Pods/Down/Source/cmark/chunk.h @@ -0,0 +1,119 @@ +#ifndef CMARK_CHUNK_H +#define CMARK_CHUNK_H + +#include <string.h> +#include <stdlib.h> +#include <assert.h> +#include "cmark.h" +#include "buffer.h" +#include "cmark_ctype.h" + +#define CMARK_CHUNK_EMPTY \ + { NULL, 0, 0 } + +typedef struct { + unsigned char *data; + bufsize_t len; + bufsize_t alloc; // also implies a NULL-terminated string +} cmark_chunk; + +static CMARK_INLINE void cmark_chunk_free(cmark_mem *mem, cmark_chunk *c) { + if (c->alloc) + mem->free(c->data); + + c->data = NULL; + c->alloc = 0; + c->len = 0; +} + +static CMARK_INLINE void cmark_chunk_ltrim(cmark_chunk *c) { + assert(!c->alloc); + + while (c->len && cmark_isspace(c->data[0])) { + c->data++; + c->len--; + } +} + +static CMARK_INLINE void cmark_chunk_rtrim(cmark_chunk *c) { + assert(!c->alloc); + + while (c->len > 0) { + if (!cmark_isspace(c->data[c->len - 1])) + break; + + c->len--; + } +} + +static CMARK_INLINE void cmark_chunk_trim(cmark_chunk *c) { + cmark_chunk_ltrim(c); + cmark_chunk_rtrim(c); +} + +static CMARK_INLINE bufsize_t cmark_chunk_strchr(cmark_chunk *ch, int c, + bufsize_t offset) { + const unsigned char *p = + (unsigned char *)memchr(ch->data + offset, c, ch->len - offset); + return p ? (bufsize_t)(p - ch->data) : ch->len; +} + +static CMARK_INLINE const char *cmark_chunk_to_cstr(cmark_mem *mem, + cmark_chunk *c) { + unsigned char *str; + + if (c->alloc) { + return (char *)c->data; + } + str = (unsigned char *)mem->calloc(c->len + 1, 1); + if (c->len > 0) { + memcpy(str, c->data, c->len); + } + str[c->len] = 0; + c->data = str; + c->alloc = 1; + + return (char *)str; +} + +static CMARK_INLINE void cmark_chunk_set_cstr(cmark_mem *mem, cmark_chunk *c, + const char *str) { + unsigned char *old = c->alloc ? c->data : NULL; + if (str == NULL) { + c->len = 0; + c->data = NULL; + c->alloc = 0; + } else { + c->len = (bufsize_t)strlen(str); + c->data = (unsigned char *)mem->calloc(c->len + 1, 1); + c->alloc = 1; + memcpy(c->data, str, c->len + 1); + } + if (old != NULL) { + mem->free(old); + } +} + +static CMARK_INLINE cmark_chunk cmark_chunk_literal(const char *data) { + bufsize_t len = data ? (bufsize_t)strlen(data) : 0; + cmark_chunk c = {(unsigned char *)data, len, 0}; + return c; +} + +static CMARK_INLINE cmark_chunk cmark_chunk_dup(const cmark_chunk *ch, + bufsize_t pos, bufsize_t len) { + cmark_chunk c = {ch->data + pos, len, 0}; + return c; +} + +static CMARK_INLINE cmark_chunk cmark_chunk_buf_detach(cmark_strbuf *buf) { + cmark_chunk c; + + c.len = buf->size; + c.data = cmark_strbuf_detach(buf); + c.alloc = 1; + + return c; +} + +#endif diff --git a/Example/Pods/Down/Source/cmark/cmark.c b/Example/Pods/Down/Source/cmark/cmark.c new file mode 100755 index 000000000..d64237f24 --- /dev/null +++ b/Example/Pods/Down/Source/cmark/cmark.c @@ -0,0 +1,43 @@ +#include <stdlib.h> +#include <assert.h> +#include <stdio.h> +#include "node.h" +#include "houdini.h" +#include "cmark.h" +#include "buffer.h" + +int cmark_version() { return CMARK_VERSION; } + +const char *cmark_version_string() { return CMARK_VERSION_STRING; } + +static void *xcalloc(size_t nmem, size_t size) { + void *ptr = calloc(nmem, size); + if (!ptr) { + fprintf(stderr, "[cmark] calloc returned null pointer, aborting\n"); + abort(); + } + return ptr; +} + +static void *xrealloc(void *ptr, size_t size) { + void *new_ptr = realloc(ptr, size); + if (!new_ptr) { + fprintf(stderr, "[cmark] realloc returned null pointer, aborting\n"); + abort(); + } + return new_ptr; +} + +cmark_mem DEFAULT_MEM_ALLOCATOR = {xcalloc, xrealloc, free}; + +char *cmark_markdown_to_html(const char *text, size_t len, int options) { + cmark_node *doc; + char *result; + + doc = cmark_parse_document(text, len, options); + + result = cmark_render_html(doc, options); + cmark_node_free(doc); + + return result; +} diff --git a/Example/Pods/Down/Source/cmark/cmark.h b/Example/Pods/Down/Source/cmark/cmark.h new file mode 100755 index 000000000..102aa6f8f --- /dev/null +++ b/Example/Pods/Down/Source/cmark/cmark.h @@ -0,0 +1,650 @@ +#ifndef CMARK_H +#define CMARK_H + +#include <stdio.h> +#include <cmark_export.h> +#include <cmark_version.h> + +#ifdef __cplusplus +extern "C" { +#endif + +/** # NAME + * + * **cmark** - CommonMark parsing, manipulating, and rendering + */ + +/** # DESCRIPTION + * + * ## Simple Interface + */ + +/** Convert 'text' (assumed to be a UTF-8 encoded string with length + * 'len') from CommonMark Markdown to HTML, returning a null-terminated, + * UTF-8-encoded string. It is the caller's responsibility + * to free the returned buffer. + */ +CMARK_EXPORT +char *cmark_markdown_to_html(const char *text, size_t len, int options); + +/** ## Node Structure + */ + +typedef enum { + /* Error status */ + CMARK_NODE_NONE, + + /* Block */ + CMARK_NODE_DOCUMENT, + CMARK_NODE_BLOCK_QUOTE, + CMARK_NODE_LIST, + CMARK_NODE_ITEM, + CMARK_NODE_CODE_BLOCK, + CMARK_NODE_HTML_BLOCK, + CMARK_NODE_CUSTOM_BLOCK, + CMARK_NODE_PARAGRAPH, + CMARK_NODE_HEADING, + CMARK_NODE_THEMATIC_BREAK, + + CMARK_NODE_FIRST_BLOCK = CMARK_NODE_DOCUMENT, + CMARK_NODE_LAST_BLOCK = CMARK_NODE_THEMATIC_BREAK, + + /* Inline */ + CMARK_NODE_TEXT, + CMARK_NODE_SOFTBREAK, + CMARK_NODE_LINEBREAK, + CMARK_NODE_CODE, + CMARK_NODE_HTML_INLINE, + CMARK_NODE_CUSTOM_INLINE, + CMARK_NODE_EMPH, + CMARK_NODE_STRONG, + CMARK_NODE_LINK, + CMARK_NODE_IMAGE, + + CMARK_NODE_FIRST_INLINE = CMARK_NODE_TEXT, + CMARK_NODE_LAST_INLINE = CMARK_NODE_IMAGE, +} cmark_node_type; + +/* For backwards compatibility: */ +#define CMARK_NODE_HEADER CMARK_NODE_HEADING +#define CMARK_NODE_HRULE CMARK_NODE_THEMATIC_BREAK +#define CMARK_NODE_HTML CMARK_NODE_HTML_BLOCK +#define CMARK_NODE_INLINE_HTML CMARK_NODE_HTML_INLINE + +typedef enum { + CMARK_NO_LIST, + CMARK_BULLET_LIST, + CMARK_ORDERED_LIST +} cmark_list_type; + +typedef enum { + CMARK_NO_DELIM, + CMARK_PERIOD_DELIM, + CMARK_PAREN_DELIM +} cmark_delim_type; + +typedef struct cmark_node cmark_node; +typedef struct cmark_parser cmark_parser; +typedef struct cmark_iter cmark_iter; + +/** + * ## Custom memory allocator support + */ + +/** Defines the memory allocation functions to be used by CMark + * when parsing and allocating a document tree + */ +typedef struct cmark_mem { + void *(*calloc)(size_t, size_t); + void *(*realloc)(void *, size_t); + void (*free)(void *); +} cmark_mem; + +/** + * ## Creating and Destroying Nodes + */ + +/** Creates a new node of type 'type'. Note that the node may have + * other required properties, which it is the caller's responsibility + * to assign. + */ +CMARK_EXPORT cmark_node *cmark_node_new(cmark_node_type type); + +/** Same as `cmark_node_new`, but explicitly listing the memory + * allocator used to allocate the node. Note: be sure to use the same + * allocator for every node in a tree, or bad things can happen. + */ +CMARK_EXPORT cmark_node *cmark_node_new_with_mem(cmark_node_type type, + cmark_mem *mem); + +/** Frees the memory allocated for a node and any children. + */ +CMARK_EXPORT void cmark_node_free(cmark_node *node); + +/** + * ## Tree Traversal + */ + +/** Returns the next node in the sequence after 'node', or NULL if + * there is none. + */ +CMARK_EXPORT cmark_node *cmark_node_next(cmark_node *node); + +/** Returns the previous node in the sequence after 'node', or NULL if + * there is none. + */ +CMARK_EXPORT cmark_node *cmark_node_previous(cmark_node *node); + +/** Returns the parent of 'node', or NULL if there is none. + */ +CMARK_EXPORT cmark_node *cmark_node_parent(cmark_node *node); + +/** Returns the first child of 'node', or NULL if 'node' has no children. + */ +CMARK_EXPORT cmark_node *cmark_node_first_child(cmark_node *node); + +/** Returns the last child of 'node', or NULL if 'node' has no children. + */ +CMARK_EXPORT cmark_node *cmark_node_last_child(cmark_node *node); + +/** + * ## Iterator + * + * An iterator will walk through a tree of nodes, starting from a root + * node, returning one node at a time, together with information about + * whether the node is being entered or exited. The iterator will + * first descend to a child node, if there is one. When there is no + * child, the iterator will go to the next sibling. When there is no + * next sibling, the iterator will return to the parent (but with + * a 'cmark_event_type' of `CMARK_EVENT_EXIT`). The iterator will + * return `CMARK_EVENT_DONE` when it reaches the root node again. + * One natural application is an HTML renderer, where an `ENTER` event + * outputs an open tag and an `EXIT` event outputs a close tag. + * An iterator might also be used to transform an AST in some systematic + * way, for example, turning all level-3 headings into regular paragraphs. + * + * void + * usage_example(cmark_node *root) { + * cmark_event_type ev_type; + * cmark_iter *iter = cmark_iter_new(root); + * + * while ((ev_type = cmark_iter_next(iter)) != CMARK_EVENT_DONE) { + * cmark_node *cur = cmark_iter_get_node(iter); + * // Do something with `cur` and `ev_type` + * } + * + * cmark_iter_free(iter); + * } + * + * Iterators will never return `EXIT` events for leaf nodes, which are nodes + * of type: + * + * * CMARK_NODE_HTML_BLOCK + * * CMARK_NODE_THEMATIC_BREAK + * * CMARK_NODE_CODE_BLOCK + * * CMARK_NODE_TEXT + * * CMARK_NODE_SOFTBREAK + * * CMARK_NODE_LINEBREAK + * * CMARK_NODE_CODE + * * CMARK_NODE_HTML_INLINE + * + * Nodes must only be modified after an `EXIT` event, or an `ENTER` event for + * leaf nodes. + */ + +typedef enum { + CMARK_EVENT_NONE, + CMARK_EVENT_DONE, + CMARK_EVENT_ENTER, + CMARK_EVENT_EXIT +} cmark_event_type; + +/** Creates a new iterator starting at 'root'. The current node and event + * type are undefined until 'cmark_iter_next' is called for the first time. + * The memory allocated for the iterator should be released using + * 'cmark_iter_free' when it is no longer needed. + */ +CMARK_EXPORT +cmark_iter *cmark_iter_new(cmark_node *root); + +/** Frees the memory allocated for an iterator. + */ +CMARK_EXPORT +void cmark_iter_free(cmark_iter *iter); + +/** Advances to the next node and returns the event type (`CMARK_EVENT_ENTER`, + * `CMARK_EVENT_EXIT` or `CMARK_EVENT_DONE`). + */ +CMARK_EXPORT +cmark_event_type cmark_iter_next(cmark_iter *iter); + +/** Returns the current node. + */ +CMARK_EXPORT +cmark_node *cmark_iter_get_node(cmark_iter *iter); + +/** Returns the current event type. + */ +CMARK_EXPORT +cmark_event_type cmark_iter_get_event_type(cmark_iter *iter); + +/** Returns the root node. + */ +CMARK_EXPORT +cmark_node *cmark_iter_get_root(cmark_iter *iter); + +/** Resets the iterator so that the current node is 'current' and + * the event type is 'event_type'. The new current node must be a + * descendant of the root node or the root node itself. + */ +CMARK_EXPORT +void cmark_iter_reset(cmark_iter *iter, cmark_node *current, + cmark_event_type event_type); + +/** + * ## Accessors + */ + +/** Returns the user data of 'node'. + */ +CMARK_EXPORT void *cmark_node_get_user_data(cmark_node *node); + +/** Sets arbitrary user data for 'node'. Returns 1 on success, + * 0 on failure. + */ +CMARK_EXPORT int cmark_node_set_user_data(cmark_node *node, void *user_data); + +/** Returns the type of 'node', or `CMARK_NODE_NONE` on error. + */ +CMARK_EXPORT cmark_node_type cmark_node_get_type(cmark_node *node); + +/** Like 'cmark_node_get_type', but returns a string representation + of the type, or `"<unknown>"`. + */ +CMARK_EXPORT +const char *cmark_node_get_type_string(cmark_node *node); + +/** Returns the string contents of 'node', or an empty + string if none is set. Returns NULL if called on a + node that does not have string content. + */ +CMARK_EXPORT const char *cmark_node_get_literal(cmark_node *node); + +/** Sets the string contents of 'node'. Returns 1 on success, + * 0 on failure. + */ +CMARK_EXPORT int cmark_node_set_literal(cmark_node *node, const char *content); + +/** Returns the heading level of 'node', or 0 if 'node' is not a heading. + */ +CMARK_EXPORT int cmark_node_get_heading_level(cmark_node *node); + +/* For backwards compatibility */ +#define cmark_node_get_header_level cmark_node_get_heading_level +#define cmark_node_set_header_level cmark_node_set_heading_level + +/** Sets the heading level of 'node', returning 1 on success and 0 on error. + */ +CMARK_EXPORT int cmark_node_set_heading_level(cmark_node *node, int level); + +/** Returns the list type of 'node', or `CMARK_NO_LIST` if 'node' + * is not a list. + */ +CMARK_EXPORT cmark_list_type cmark_node_get_list_type(cmark_node *node); + +/** Sets the list type of 'node', returning 1 on success and 0 on error. + */ +CMARK_EXPORT int cmark_node_set_list_type(cmark_node *node, + cmark_list_type type); + +/** Returns the list delimiter type of 'node', or `CMARK_NO_DELIM` if 'node' + * is not a list. + */ +CMARK_EXPORT cmark_delim_type cmark_node_get_list_delim(cmark_node *node); + +/** Sets the list delimiter type of 'node', returning 1 on success and 0 + * on error. + */ +CMARK_EXPORT int cmark_node_set_list_delim(cmark_node *node, + cmark_delim_type delim); + +/** Returns starting number of 'node', if it is an ordered list, otherwise 0. + */ +CMARK_EXPORT int cmark_node_get_list_start(cmark_node *node); + +/** Sets starting number of 'node', if it is an ordered list. Returns 1 + * on success, 0 on failure. + */ +CMARK_EXPORT int cmark_node_set_list_start(cmark_node *node, int start); + +/** Returns 1 if 'node' is a tight list, 0 otherwise. + */ +CMARK_EXPORT int cmark_node_get_list_tight(cmark_node *node); + +/** Sets the "tightness" of a list. Returns 1 on success, 0 on failure. + */ +CMARK_EXPORT int cmark_node_set_list_tight(cmark_node *node, int tight); + +/** Returns the info string from a fenced code block. + */ +CMARK_EXPORT const char *cmark_node_get_fence_info(cmark_node *node); + +/** Sets the info string in a fenced code block, returning 1 on + * success and 0 on failure. + */ +CMARK_EXPORT int cmark_node_set_fence_info(cmark_node *node, const char *info); + +/** Returns the URL of a link or image 'node', or an empty string + if no URL is set. Returns NULL if called on a node that is + not a link or image. + */ +CMARK_EXPORT const char *cmark_node_get_url(cmark_node *node); + +/** Sets the URL of a link or image 'node'. Returns 1 on success, + * 0 on failure. + */ +CMARK_EXPORT int cmark_node_set_url(cmark_node *node, const char *url); + +/** Returns the title of a link or image 'node', or an empty + string if no title is set. Returns NULL if called on a node + that is not a link or image. + */ +CMARK_EXPORT const char *cmark_node_get_title(cmark_node *node); + +/** Sets the title of a link or image 'node'. Returns 1 on success, + * 0 on failure. + */ +CMARK_EXPORT int cmark_node_set_title(cmark_node *node, const char *title); + +/** Returns the literal "on enter" text for a custom 'node', or + an empty string if no on_enter is set. Returns NULL if called + on a non-custom node. + */ +CMARK_EXPORT const char *cmark_node_get_on_enter(cmark_node *node); + +/** Sets the literal text to render "on enter" for a custom 'node'. + Any children of the node will be rendered after this text. + Returns 1 on success 0 on failure. + */ +CMARK_EXPORT int cmark_node_set_on_enter(cmark_node *node, + const char *on_enter); + +/** Returns the literal "on exit" text for a custom 'node', or + an empty string if no on_exit is set. Returns NULL if + called on a non-custom node. + */ +CMARK_EXPORT const char *cmark_node_get_on_exit(cmark_node *node); + +/** Sets the literal text to render "on exit" for a custom 'node'. + Any children of the node will be rendered before this text. + Returns 1 on success 0 on failure. + */ +CMARK_EXPORT int cmark_node_set_on_exit(cmark_node *node, const char *on_exit); + +/** Returns the line on which 'node' begins. + */ +CMARK_EXPORT int cmark_node_get_start_line(cmark_node *node); + +/** Returns the column at which 'node' begins. + */ +CMARK_EXPORT int cmark_node_get_start_column(cmark_node *node); + +/** Returns the line on which 'node' ends. + */ +CMARK_EXPORT int cmark_node_get_end_line(cmark_node *node); + +/** Returns the column at which 'node' ends. + */ +CMARK_EXPORT int cmark_node_get_end_column(cmark_node *node); + +/** + * ## Tree Manipulation + */ + +/** Unlinks a 'node', removing it from the tree, but not freeing its + * memory. (Use 'cmark_node_free' for that.) + */ +CMARK_EXPORT void cmark_node_unlink(cmark_node *node); + +/** Inserts 'sibling' before 'node'. Returns 1 on success, 0 on failure. + */ +CMARK_EXPORT int cmark_node_insert_before(cmark_node *node, + cmark_node *sibling); + +/** Inserts 'sibling' after 'node'. Returns 1 on success, 0 on failure. + */ +CMARK_EXPORT int cmark_node_insert_after(cmark_node *node, cmark_node *sibling); + +/** Replaces 'oldnode' with 'newnode' and unlinks 'oldnode' (but does + * not free its memory). + * Returns 1 on success, 0 on failure. + */ +CMARK_EXPORT int cmark_node_replace(cmark_node *oldnode, cmark_node *newnode); + +/** Adds 'child' to the beginning of the children of 'node'. + * Returns 1 on success, 0 on failure. + */ +CMARK_EXPORT int cmark_node_prepend_child(cmark_node *node, cmark_node *child); + +/** Adds 'child' to the end of the children of 'node'. + * Returns 1 on success, 0 on failure. + */ +CMARK_EXPORT int cmark_node_append_child(cmark_node *node, cmark_node *child); + +/** Consolidates adjacent text nodes. + */ +CMARK_EXPORT void cmark_consolidate_text_nodes(cmark_node *root); + +/** + * ## Parsing + * + * Simple interface: + * + * cmark_node *document = cmark_parse_document("Hello *world*", 13, + * CMARK_OPT_DEFAULT); + * + * Streaming interface: + * + * cmark_parser *parser = cmark_parser_new(CMARK_OPT_DEFAULT); + * FILE *fp = fopen("myfile.md", "rb"); + * while ((bytes = fread(buffer, 1, sizeof(buffer), fp)) > 0) { + * cmark_parser_feed(parser, buffer, bytes); + * if (bytes < sizeof(buffer)) { + * break; + * } + * } + * document = cmark_parser_finish(parser); + * cmark_parser_free(parser); + */ + +/** Creates a new parser object. + */ +CMARK_EXPORT +cmark_parser *cmark_parser_new(int options); + +/** Creates a new parser object with the given memory allocator + */ +CMARK_EXPORT +cmark_parser *cmark_parser_new_with_mem(int options, cmark_mem *mem); + +/** Frees memory allocated for a parser object. + */ +CMARK_EXPORT +void cmark_parser_free(cmark_parser *parser); + +/** Feeds a string of length 'len' to 'parser'. + */ +CMARK_EXPORT +void cmark_parser_feed(cmark_parser *parser, const char *buffer, size_t len); + +/** Finish parsing and return a pointer to a tree of nodes. + */ +CMARK_EXPORT +cmark_node *cmark_parser_finish(cmark_parser *parser); + +/** Parse a CommonMark document in 'buffer' of length 'len'. + * Returns a pointer to a tree of nodes. The memory allocated for + * the node tree should be released using 'cmark_node_free' + * when it is no longer needed. + */ +CMARK_EXPORT +cmark_node *cmark_parse_document(const char *buffer, size_t len, int options); + +/** Parse a CommonMark document in file 'f', returning a pointer to + * a tree of nodes. The memory allocated for the node tree should be + * released using 'cmark_node_free' when it is no longer needed. + */ +CMARK_EXPORT +cmark_node *cmark_parse_file(FILE *f, int options); + +/** + * ## Rendering + */ + +/** Render a 'node' tree as XML. It is the caller's responsibility + * to free the returned buffer. + */ +CMARK_EXPORT +char *cmark_render_xml(cmark_node *root, int options); + +/** Render a 'node' tree as an HTML fragment. It is up to the user + * to add an appropriate header and footer. It is the caller's + * responsibility to free the returned buffer. + */ +CMARK_EXPORT +char *cmark_render_html(cmark_node *root, int options); + +/** Render a 'node' tree as a groff man page, without the header. + * It is the caller's responsibility to free the returned buffer. + */ +CMARK_EXPORT +char *cmark_render_man(cmark_node *root, int options, int width); + +/** Render a 'node' tree as a commonmark document. + * It is the caller's responsibility to free the returned buffer. + */ +CMARK_EXPORT +char *cmark_render_commonmark(cmark_node *root, int options, int width); + +/** Render a 'node' tree as a LaTeX document. + * It is the caller's responsibility to free the returned buffer. + */ +CMARK_EXPORT +char *cmark_render_latex(cmark_node *root, int options, int width); + +/** + * ## Options + */ + +/** Default options. + */ +#define CMARK_OPT_DEFAULT 0 + +/** + * ### Options affecting rendering + */ + +/** Include a `data-sourcepos` attribute on all block elements. + */ +#define CMARK_OPT_SOURCEPOS (1 << 1) + +/** Render `softbreak` elements as hard line breaks. + */ +#define CMARK_OPT_HARDBREAKS (1 << 2) + +/** `CMARK_OPT_SAFE` is defined here for API compatibility, + but it no longer has any effect. "Safe" mode is now the default: + set `CMARK_OPT_UNSAFE` to disable it. + */ +#define CMARK_OPT_SAFE (1 << 3) + +/** Render raw HTML and unsafe links (`javascript:`, `vbscript:`, + * `file:`, and `data:`, except for `image/png`, `image/gif`, + * `image/jpeg`, or `image/webp` mime types). By default, + * raw HTML is replaced by a placeholder HTML comment. Unsafe + * links are replaced by empty strings. + */ +#define CMARK_OPT_UNSAFE (1 << 17) + +/** Render `softbreak` elements as spaces. + */ +#define CMARK_OPT_NOBREAKS (1 << 4) + +/** + * ### Options affecting parsing + */ + +/** Legacy option (no effect). + */ +#define CMARK_OPT_NORMALIZE (1 << 8) + +/** Validate UTF-8 in the input before parsing, replacing illegal + * sequences with the replacement character U+FFFD. + */ +#define CMARK_OPT_VALIDATE_UTF8 (1 << 9) + +/** Convert straight quotes to curly, --- to em dashes, -- to en dashes. + */ +#define CMARK_OPT_SMART (1 << 10) + +/** + * ## Version information + */ + +/** The library version as integer for runtime checks. Also available as + * macro CMARK_VERSION for compile time checks. + * + * * Bits 16-23 contain the major version. + * * Bits 8-15 contain the minor version. + * * Bits 0-7 contain the patchlevel. + * + * In hexadecimal format, the number 0x010203 represents version 1.2.3. + */ +CMARK_EXPORT +int cmark_version(void); + +/** The library version string for runtime checks. Also available as + * macro CMARK_VERSION_STRING for compile time checks. + */ +CMARK_EXPORT +const char *cmark_version_string(void); + +/** # AUTHORS + * + * John MacFarlane, Vicent Marti, Kārlis Gaņģis, Nick Wellnhofer. + */ + +#ifndef CMARK_NO_SHORT_NAMES +#define NODE_DOCUMENT CMARK_NODE_DOCUMENT +#define NODE_BLOCK_QUOTE CMARK_NODE_BLOCK_QUOTE +#define NODE_LIST CMARK_NODE_LIST +#define NODE_ITEM CMARK_NODE_ITEM +#define NODE_CODE_BLOCK CMARK_NODE_CODE_BLOCK +#define NODE_HTML_BLOCK CMARK_NODE_HTML_BLOCK +#define NODE_CUSTOM_BLOCK CMARK_NODE_CUSTOM_BLOCK +#define NODE_PARAGRAPH CMARK_NODE_PARAGRAPH +#define NODE_HEADING CMARK_NODE_HEADING +#define NODE_HEADER CMARK_NODE_HEADER +#define NODE_THEMATIC_BREAK CMARK_NODE_THEMATIC_BREAK +#define NODE_HRULE CMARK_NODE_HRULE +#define NODE_TEXT CMARK_NODE_TEXT +#define NODE_SOFTBREAK CMARK_NODE_SOFTBREAK +#define NODE_LINEBREAK CMARK_NODE_LINEBREAK +#define NODE_CODE CMARK_NODE_CODE +#define NODE_HTML_INLINE CMARK_NODE_HTML_INLINE +#define NODE_CUSTOM_INLINE CMARK_NODE_CUSTOM_INLINE +#define NODE_EMPH CMARK_NODE_EMPH +#define NODE_STRONG CMARK_NODE_STRONG +#define NODE_LINK CMARK_NODE_LINK +#define NODE_IMAGE CMARK_NODE_IMAGE +#define BULLET_LIST CMARK_BULLET_LIST +#define ORDERED_LIST CMARK_ORDERED_LIST +#define PERIOD_DELIM CMARK_PERIOD_DELIM +#define PAREN_DELIM CMARK_PAREN_DELIM +#endif + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Example/Pods/Down/Source/cmark/cmark_ctype.c b/Example/Pods/Down/Source/cmark/cmark_ctype.c new file mode 100755 index 000000000..c0c4d5b03 --- /dev/null +++ b/Example/Pods/Down/Source/cmark/cmark_ctype.c @@ -0,0 +1,44 @@ +#include <stdint.h> + +#include "cmark_ctype.h" + +/** 1 = space, 2 = punct, 3 = digit, 4 = alpha, 0 = other + */ +static const uint8_t cmark_ctype_class[256] = { + /* 0 1 2 3 4 5 6 7 8 9 a b c d e f */ + /* 0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, + /* 1 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* 2 */ 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + /* 3 */ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, + /* 4 */ 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + /* 5 */ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, + /* 6 */ 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + /* 7 */ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 0, + /* 8 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* 9 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* a */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* b */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* c */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* d */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* e */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* f */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; + +/** + * Returns 1 if c is a "whitespace" character as defined by the spec. + */ +int cmark_isspace(char c) { return cmark_ctype_class[(uint8_t)c] == 1; } + +/** + * Returns 1 if c is an ascii punctuation character. + */ +int cmark_ispunct(char c) { return cmark_ctype_class[(uint8_t)c] == 2; } + +int cmark_isalnum(char c) { + uint8_t result; + result = cmark_ctype_class[(uint8_t)c]; + return (result == 3 || result == 4); +} + +int cmark_isdigit(char c) { return cmark_ctype_class[(uint8_t)c] == 3; } + +int cmark_isalpha(char c) { return cmark_ctype_class[(uint8_t)c] == 4; } diff --git a/Example/Pods/Down/Source/cmark/cmark_ctype.h b/Example/Pods/Down/Source/cmark/cmark_ctype.h new file mode 100755 index 000000000..9a0761851 --- /dev/null +++ b/Example/Pods/Down/Source/cmark/cmark_ctype.h @@ -0,0 +1,26 @@ +#ifndef CMARK_CMARK_CTYPE_H +#define CMARK_CMARK_CTYPE_H + +#ifdef __cplusplus +extern "C" { +#endif + +/** Locale-independent versions of functions from ctype.h. + * We want cmark to behave the same no matter what the system locale. + */ + +int cmark_isspace(char c); + +int cmark_ispunct(char c); + +int cmark_isalnum(char c); + +int cmark_isdigit(char c); + +int cmark_isalpha(char c); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Example/Pods/Down/Source/cmark/cmark_export.h b/Example/Pods/Down/Source/cmark/cmark_export.h new file mode 100644 index 000000000..9e5dd5d43 --- /dev/null +++ b/Example/Pods/Down/Source/cmark/cmark_export.h @@ -0,0 +1,42 @@ + +#ifndef CMARK_EXPORT_H +#define CMARK_EXPORT_H + +#ifdef CMARK_STATIC_DEFINE +# define CMARK_EXPORT +# define CMARK_NO_EXPORT +#else +# ifndef CMARK_EXPORT +# ifdef libcmark_EXPORTS + /* We are building this library */ +# define CMARK_EXPORT __attribute__((visibility("default"))) +# else + /* We are using this library */ +# define CMARK_EXPORT __attribute__((visibility("default"))) +# endif +# endif + +# ifndef CMARK_NO_EXPORT +# define CMARK_NO_EXPORT __attribute__((visibility("hidden"))) +# endif +#endif + +#ifndef CMARK_DEPRECATED +# define CMARK_DEPRECATED __attribute__ ((__deprecated__)) +#endif + +#ifndef CMARK_DEPRECATED_EXPORT +# define CMARK_DEPRECATED_EXPORT CMARK_EXPORT CMARK_DEPRECATED +#endif + +#ifndef CMARK_DEPRECATED_NO_EXPORT +# define CMARK_DEPRECATED_NO_EXPORT CMARK_NO_EXPORT CMARK_DEPRECATED +#endif + +#if 0 /* DEFINE_NO_DEPRECATED */ +# ifndef CMARK_NO_DEPRECATED +# define CMARK_NO_DEPRECATED +# endif +#endif + +#endif /* CMARK_EXPORT_H */ diff --git a/Example/Pods/Down/Source/cmark/cmark_version.h b/Example/Pods/Down/Source/cmark/cmark_version.h new file mode 100755 index 000000000..dcacd378b --- /dev/null +++ b/Example/Pods/Down/Source/cmark/cmark_version.h @@ -0,0 +1,7 @@ +#ifndef CMARK_VERSION_H +#define CMARK_VERSION_H + +#define CMARK_VERSION ((0 << 16) | (29 << 8) | 0) +#define CMARK_VERSION_STRING "0.29.0" + +#endif diff --git a/Example/Pods/Down/Source/cmark/commonmark.c b/Example/Pods/Down/Source/cmark/commonmark.c new file mode 100755 index 000000000..404c2903c --- /dev/null +++ b/Example/Pods/Down/Source/cmark/commonmark.c @@ -0,0 +1,486 @@ +#include <stdlib.h> +#include <stdio.h> +#include <string.h> +#include <stdint.h> +#include <assert.h> + +#include "config.h" +#include "cmark.h" +#include "node.h" +#include "buffer.h" +#include "utf8.h" +#include "scanners.h" +#include "render.h" + +#define OUT(s, wrap, escaping) renderer->out(renderer, s, wrap, escaping) +#define LIT(s) renderer->out(renderer, s, false, LITERAL) +#define CR() renderer->cr(renderer) +#define BLANKLINE() renderer->blankline(renderer) +#define ENCODED_SIZE 20 +#define LISTMARKER_SIZE 20 + +// Functions to convert cmark_nodes to commonmark strings. + +static CMARK_INLINE void outc(cmark_renderer *renderer, cmark_escaping escape, + int32_t c, unsigned char nextc) { + bool needs_escaping = false; + bool follows_digit = + renderer->buffer->size > 0 && + cmark_isdigit(renderer->buffer->ptr[renderer->buffer->size - 1]); + char encoded[ENCODED_SIZE]; + + needs_escaping = + c < 0x80 && escape != LITERAL && + ((escape == NORMAL && + (c < 0x20 || + c == '*' || c == '_' || c == '[' || c == ']' || c == '#' || c == '<' || + c == '>' || c == '\\' || c == '`' || c == '!' || + (c == '&' && cmark_isalpha(nextc)) || (c == '!' && nextc == '[') || + (renderer->begin_content && (c == '-' || c == '+' || c == '=') && + // begin_content doesn't get set to false til we've passed digits + // at the beginning of line, so... + !follows_digit) || + (renderer->begin_content && (c == '.' || c == ')') && follows_digit && + (nextc == 0 || cmark_isspace(nextc))))) || + (escape == URL && + (c == '`' || c == '<' || c == '>' || cmark_isspace(c) || c == '\\' || + c == ')' || c == '(')) || + (escape == TITLE && + (c == '`' || c == '<' || c == '>' || c == '"' || c == '\\'))); + + if (needs_escaping) { + if (escape == URL && cmark_isspace(c)) { + // use percent encoding for spaces + snprintf(encoded, ENCODED_SIZE, "%%%2X", c); + cmark_strbuf_puts(renderer->buffer, encoded); + renderer->column += 3; + } else if (cmark_ispunct(c)) { + cmark_render_ascii(renderer, "\\"); + cmark_render_code_point(renderer, c); + } else { // render as entity + snprintf(encoded, ENCODED_SIZE, "&#%d;", c); + cmark_strbuf_puts(renderer->buffer, encoded); + renderer->column += strlen(encoded); + } + } else { + cmark_render_code_point(renderer, c); + } +} + +static int longest_backtick_sequence(const char *code) { + int longest = 0; + int current = 0; + size_t i = 0; + size_t code_len = strlen(code); + while (i <= code_len) { + if (code[i] == '`') { + current++; + } else { + if (current > longest) { + longest = current; + } + current = 0; + } + i++; + } + return longest; +} + +static int shortest_unused_backtick_sequence(const char *code) { + // note: if the shortest sequence is >= 32, this returns 32 + // so as not to overflow the bit array. + uint32_t used = 1; + int current = 0; + size_t i = 0; + size_t code_len = strlen(code); + while (i <= code_len) { + if (code[i] == '`') { + current++; + } else { + if (current > 0 && current < 32) { + used |= (1U << current); + } + current = 0; + } + i++; + } + // return number of first bit that is 0: + i = 0; + while (i < 32 && used & 1) { + used = used >> 1; + i++; + } + return (int)i; +} + +static bool is_autolink(cmark_node *node) { + cmark_chunk *title; + cmark_chunk *url; + cmark_node *link_text; + char *realurl; + int realurllen; + + if (node->type != CMARK_NODE_LINK) { + return false; + } + + url = &node->as.link.url; + if (url->len == 0 || scan_scheme(url, 0) == 0) { + return false; + } + + title = &node->as.link.title; + // if it has a title, we can't treat it as an autolink: + if (title->len > 0) { + return false; + } + + link_text = node->first_child; + if (link_text == NULL) { + return false; + } + cmark_consolidate_text_nodes(link_text); + realurl = (char *)url->data; + realurllen = url->len; + if (strncmp(realurl, "mailto:", 7) == 0) { + realurl += 7; + realurllen -= 7; + } + return (realurllen == link_text->as.literal.len && + strncmp(realurl, (char *)link_text->as.literal.data, + link_text->as.literal.len) == 0); +} + +// if node is a block node, returns node. +// otherwise returns first block-level node that is an ancestor of node. +// if there is no block-level ancestor, returns NULL. +static cmark_node *get_containing_block(cmark_node *node) { + while (node) { + if (node->type >= CMARK_NODE_FIRST_BLOCK && + node->type <= CMARK_NODE_LAST_BLOCK) { + return node; + } else { + node = node->parent; + } + } + return NULL; +} + +static int S_render_node(cmark_renderer *renderer, cmark_node *node, + cmark_event_type ev_type, int options) { + cmark_node *tmp; + int list_number; + cmark_delim_type list_delim; + int numticks; + bool extra_spaces; + int i; + bool entering = (ev_type == CMARK_EVENT_ENTER); + const char *info, *code, *title; + char fencechar[2] = {'\0', '\0'}; + size_t info_len, code_len; + char listmarker[LISTMARKER_SIZE]; + char *emph_delim; + bool first_in_list_item; + bufsize_t marker_width; + bool allow_wrap = renderer->width > 0 && !(CMARK_OPT_NOBREAKS & options) && + !(CMARK_OPT_HARDBREAKS & options); + + // Don't adjust tight list status til we've started the list. + // Otherwise we loose the blank line between a paragraph and + // a following list. + if (!(node->type == CMARK_NODE_ITEM && node->prev == NULL && entering)) { + tmp = get_containing_block(node); + renderer->in_tight_list_item = + tmp && // tmp might be NULL if there is no containing block + ((tmp->type == CMARK_NODE_ITEM && + cmark_node_get_list_tight(tmp->parent)) || + (tmp && tmp->parent && tmp->parent->type == CMARK_NODE_ITEM && + cmark_node_get_list_tight(tmp->parent->parent))); + } + + switch (node->type) { + case CMARK_NODE_DOCUMENT: + break; + + case CMARK_NODE_BLOCK_QUOTE: + if (entering) { + LIT("> "); + renderer->begin_content = true; + cmark_strbuf_puts(renderer->prefix, "> "); + } else { + cmark_strbuf_truncate(renderer->prefix, renderer->prefix->size - 2); + BLANKLINE(); + } + break; + + case CMARK_NODE_LIST: + if (!entering && node->next && (node->next->type == CMARK_NODE_CODE_BLOCK || + node->next->type == CMARK_NODE_LIST)) { + // this ensures that a following indented code block or list will be + // inteprereted correctly. + CR(); + LIT("<!-- end list -->"); + BLANKLINE(); + } + break; + + case CMARK_NODE_ITEM: + if (cmark_node_get_list_type(node->parent) == CMARK_BULLET_LIST) { + marker_width = 4; + } else { + list_number = cmark_node_get_list_start(node->parent); + list_delim = cmark_node_get_list_delim(node->parent); + tmp = node; + while (tmp->prev) { + tmp = tmp->prev; + list_number += 1; + } + // we ensure a width of at least 4 so + // we get nice transition from single digits + // to double + snprintf(listmarker, LISTMARKER_SIZE, "%d%s%s", list_number, + list_delim == CMARK_PAREN_DELIM ? ")" : ".", + list_number < 10 ? " " : " "); + marker_width = strlen(listmarker); + } + if (entering) { + if (cmark_node_get_list_type(node->parent) == CMARK_BULLET_LIST) { + LIT(" - "); + renderer->begin_content = true; + } else { + LIT(listmarker); + renderer->begin_content = true; + } + for (i = marker_width; i--;) { + cmark_strbuf_putc(renderer->prefix, ' '); + } + } else { + cmark_strbuf_truncate(renderer->prefix, + renderer->prefix->size - marker_width); + CR(); + } + break; + + case CMARK_NODE_HEADING: + if (entering) { + for (i = cmark_node_get_heading_level(node); i > 0; i--) { + LIT("#"); + } + LIT(" "); + renderer->begin_content = true; + renderer->no_linebreaks = true; + } else { + renderer->no_linebreaks = false; + BLANKLINE(); + } + break; + + case CMARK_NODE_CODE_BLOCK: + first_in_list_item = node->prev == NULL && node->parent && + node->parent->type == CMARK_NODE_ITEM; + + if (!first_in_list_item) { + BLANKLINE(); + } + info = cmark_node_get_fence_info(node); + info_len = strlen(info); + fencechar[0] = strchr(info, '`') == NULL ? '`' : '~'; + code = cmark_node_get_literal(node); + code_len = strlen(code); + // use indented form if no info, and code doesn't + // begin or end with a blank line, and code isn't + // first thing in a list item + if (info_len == 0 && (code_len > 2 && !cmark_isspace(code[0]) && + !(cmark_isspace(code[code_len - 1]) && + cmark_isspace(code[code_len - 2]))) && + !first_in_list_item) { + LIT(" "); + cmark_strbuf_puts(renderer->prefix, " "); + OUT(cmark_node_get_literal(node), false, LITERAL); + cmark_strbuf_truncate(renderer->prefix, renderer->prefix->size - 4); + } else { + numticks = longest_backtick_sequence(code) + 1; + if (numticks < 3) { + numticks = 3; + } + for (i = 0; i < numticks; i++) { + LIT(fencechar); + } + LIT(" "); + OUT(info, false, LITERAL); + CR(); + OUT(cmark_node_get_literal(node), false, LITERAL); + CR(); + for (i = 0; i < numticks; i++) { + LIT(fencechar); + } + } + BLANKLINE(); + break; + + case CMARK_NODE_HTML_BLOCK: + BLANKLINE(); + OUT(cmark_node_get_literal(node), false, LITERAL); + BLANKLINE(); + break; + + case CMARK_NODE_CUSTOM_BLOCK: + BLANKLINE(); + OUT(entering ? cmark_node_get_on_enter(node) : cmark_node_get_on_exit(node), + false, LITERAL); + BLANKLINE(); + break; + + case CMARK_NODE_THEMATIC_BREAK: + BLANKLINE(); + LIT("-----"); + BLANKLINE(); + break; + + case CMARK_NODE_PARAGRAPH: + if (!entering) { + BLANKLINE(); + } + break; + + case CMARK_NODE_TEXT: + OUT(cmark_node_get_literal(node), allow_wrap, NORMAL); + break; + + case CMARK_NODE_LINEBREAK: + if (!(CMARK_OPT_HARDBREAKS & options)) { + LIT(" "); + } + CR(); + break; + + case CMARK_NODE_SOFTBREAK: + if (CMARK_OPT_HARDBREAKS & options) { + LIT(" "); + CR(); + } else if (!renderer->no_linebreaks && renderer->width == 0 && + !(CMARK_OPT_HARDBREAKS & options) && + !(CMARK_OPT_NOBREAKS & options)) { + CR(); + } else { + OUT(" ", allow_wrap, LITERAL); + } + break; + + case CMARK_NODE_CODE: + code = cmark_node_get_literal(node); + code_len = strlen(code); + numticks = shortest_unused_backtick_sequence(code); + extra_spaces = code_len == 0 || + code[0] == '`' || code[code_len - 1] == '`' || + code[0] == ' ' || code[code_len - 1] == ' '; + for (i = 0; i < numticks; i++) { + LIT("`"); + } + if (extra_spaces) { + LIT(" "); + } + OUT(cmark_node_get_literal(node), allow_wrap, LITERAL); + if (extra_spaces) { + LIT(" "); + } + for (i = 0; i < numticks; i++) { + LIT("`"); + } + break; + + case CMARK_NODE_HTML_INLINE: + OUT(cmark_node_get_literal(node), false, LITERAL); + break; + + case CMARK_NODE_CUSTOM_INLINE: + OUT(entering ? cmark_node_get_on_enter(node) : cmark_node_get_on_exit(node), + false, LITERAL); + break; + + case CMARK_NODE_STRONG: + if (entering) { + LIT("**"); + } else { + LIT("**"); + } + break; + + case CMARK_NODE_EMPH: + // If we have EMPH(EMPH(x)), we need to use *_x_* + // because **x** is STRONG(x): + if (node->parent && node->parent->type == CMARK_NODE_EMPH && + node->next == NULL && node->prev == NULL) { + emph_delim = "_"; + } else { + emph_delim = "*"; + } + if (entering) { + LIT(emph_delim); + } else { + LIT(emph_delim); + } + break; + + case CMARK_NODE_LINK: + if (is_autolink(node)) { + if (entering) { + LIT("<"); + if (strncmp(cmark_node_get_url(node), "mailto:", 7) == 0) { + LIT((const char *)cmark_node_get_url(node) + 7); + } else { + LIT((const char *)cmark_node_get_url(node)); + } + LIT(">"); + // return signal to skip contents of node... + return 0; + } + } else { + if (entering) { + LIT("["); + } else { + LIT("]("); + OUT(cmark_node_get_url(node), false, URL); + title = cmark_node_get_title(node); + if (strlen(title) > 0) { + LIT(" \""); + OUT(title, false, TITLE); + LIT("\""); + } + LIT(")"); + } + } + break; + + case CMARK_NODE_IMAGE: + if (entering) { + LIT("!["); + } else { + LIT("]("); + OUT(cmark_node_get_url(node), false, URL); + title = cmark_node_get_title(node); + if (strlen(title) > 0) { + OUT(" \"", allow_wrap, LITERAL); + OUT(title, false, TITLE); + LIT("\""); + } + LIT(")"); + } + break; + + default: + assert(false); + break; + } + + return 1; +} + +char *cmark_render_commonmark(cmark_node *root, int options, int width) { + if (options & CMARK_OPT_HARDBREAKS) { + // disable breaking on width, since it has + // a different meaning with OPT_HARDBREAKS + width = 0; + } + return cmark_render(root, options, width, outc, S_render_node); +} diff --git a/Example/Pods/Down/Source/cmark/config.h b/Example/Pods/Down/Source/cmark/config.h new file mode 100755 index 000000000..d38c7c7a5 --- /dev/null +++ b/Example/Pods/Down/Source/cmark/config.h @@ -0,0 +1,76 @@ +#ifndef CMARK_CONFIG_H +#define CMARK_CONFIG_H + +#ifdef __cplusplus +extern "C" { +#endif + +#define HAVE_STDBOOL_H + +#ifdef HAVE_STDBOOL_H + #include <stdbool.h> +#elif !defined(__cplusplus) + typedef char bool; +#endif + +#define HAVE___BUILTIN_EXPECT + +#define HAVE___ATTRIBUTE__ + +#ifdef HAVE___ATTRIBUTE__ + #define CMARK_ATTRIBUTE(list) __attribute__ (list) +#else + #define CMARK_ATTRIBUTE(list) +#endif + +#ifndef CMARK_INLINE + #if defined(_MSC_VER) && !defined(__cplusplus) + #define CMARK_INLINE __inline + #else + #define CMARK_INLINE inline + #endif +#endif + +/* snprintf and vsnprintf fallbacks for MSVC before 2015, + due to Valentin Milea http://stackoverflow.com/questions/2915672/ +*/ + +#if defined(_MSC_VER) && _MSC_VER < 1900 + +#include <stdio.h> +#include <stdarg.h> + +#define snprintf c99_snprintf +#define vsnprintf c99_vsnprintf + +CMARK_INLINE int c99_vsnprintf(char *outBuf, size_t size, const char *format, va_list ap) +{ + int count = -1; + + if (size != 0) + count = _vsnprintf_s(outBuf, size, _TRUNCATE, format, ap); + if (count == -1) + count = _vscprintf(format, ap); + + return count; +} + +CMARK_INLINE int c99_snprintf(char *outBuf, size_t size, const char *format, ...) +{ + int count; + va_list ap; + + va_start(ap, format); + count = c99_vsnprintf(outBuf, size, format, ap); + va_end(ap); + + return count; +} + +#endif + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Example/Pods/Down/Source/cmark/entities.inc b/Example/Pods/Down/Source/cmark/entities.inc new file mode 100755 index 000000000..a7c36e26d --- /dev/null +++ b/Example/Pods/Down/Source/cmark/entities.inc @@ -0,0 +1,2138 @@ +/* Autogenerated by tools/make_headers_inc.py */ + +struct cmark_entity_node { + unsigned char *entity; + unsigned char bytes[8]; +}; + +#define CMARK_ENTITY_MIN_LENGTH 2 +#define CMARK_ENTITY_MAX_LENGTH 32 +#define CMARK_NUM_ENTITIES 2125 + +static const struct cmark_entity_node cmark_entities[] = { +{(unsigned char*)"AElig", {195, 134, 0}}, +{(unsigned char*)"AMP", {38, 0}}, +{(unsigned char*)"Aacute", {195, 129, 0}}, +{(unsigned char*)"Abreve", {196, 130, 0}}, +{(unsigned char*)"Acirc", {195, 130, 0}}, +{(unsigned char*)"Acy", {208, 144, 0}}, +{(unsigned char*)"Afr", {240, 157, 148, 132, 0}}, +{(unsigned char*)"Agrave", {195, 128, 0}}, +{(unsigned char*)"Alpha", {206, 145, 0}}, +{(unsigned char*)"Amacr", {196, 128, 0}}, +{(unsigned char*)"And", {226, 169, 147, 0}}, +{(unsigned char*)"Aogon", {196, 132, 0}}, +{(unsigned char*)"Aopf", {240, 157, 148, 184, 0}}, +{(unsigned char*)"ApplyFunction", {226, 129, 161, 0}}, +{(unsigned char*)"Aring", {195, 133, 0}}, +{(unsigned char*)"Ascr", {240, 157, 146, 156, 0}}, +{(unsigned char*)"Assign", {226, 137, 148, 0}}, +{(unsigned char*)"Atilde", {195, 131, 0}}, +{(unsigned char*)"Auml", {195, 132, 0}}, +{(unsigned char*)"Backslash", {226, 136, 150, 0}}, +{(unsigned char*)"Barv", {226, 171, 167, 0}}, +{(unsigned char*)"Barwed", {226, 140, 134, 0}}, +{(unsigned char*)"Bcy", {208, 145, 0}}, +{(unsigned char*)"Because", {226, 136, 181, 0}}, +{(unsigned char*)"Bernoullis", {226, 132, 172, 0}}, +{(unsigned char*)"Beta", {206, 146, 0}}, +{(unsigned char*)"Bfr", {240, 157, 148, 133, 0}}, +{(unsigned char*)"Bopf", {240, 157, 148, 185, 0}}, +{(unsigned char*)"Breve", {203, 152, 0}}, +{(unsigned char*)"Bscr", {226, 132, 172, 0}}, +{(unsigned char*)"Bumpeq", {226, 137, 142, 0}}, +{(unsigned char*)"CHcy", {208, 167, 0}}, +{(unsigned char*)"COPY", {194, 169, 0}}, +{(unsigned char*)"Cacute", {196, 134, 0}}, +{(unsigned char*)"Cap", {226, 139, 146, 0}}, +{(unsigned char*)"CapitalDifferentialD", {226, 133, 133, 0}}, +{(unsigned char*)"Cayleys", {226, 132, 173, 0}}, +{(unsigned char*)"Ccaron", {196, 140, 0}}, +{(unsigned char*)"Ccedil", {195, 135, 0}}, +{(unsigned char*)"Ccirc", {196, 136, 0}}, +{(unsigned char*)"Cconint", {226, 136, 176, 0}}, +{(unsigned char*)"Cdot", {196, 138, 0}}, +{(unsigned char*)"Cedilla", {194, 184, 0}}, +{(unsigned char*)"CenterDot", {194, 183, 0}}, +{(unsigned char*)"Cfr", {226, 132, 173, 0}}, +{(unsigned char*)"Chi", {206, 167, 0}}, +{(unsigned char*)"CircleDot", {226, 138, 153, 0}}, +{(unsigned char*)"CircleMinus", {226, 138, 150, 0}}, +{(unsigned char*)"CirclePlus", {226, 138, 149, 0}}, +{(unsigned char*)"CircleTimes", {226, 138, 151, 0}}, +{(unsigned char*)"ClockwiseContourIntegral", {226, 136, 178, 0}}, +{(unsigned char*)"CloseCurlyDoubleQuote", {226, 128, 157, 0}}, +{(unsigned char*)"CloseCurlyQuote", {226, 128, 153, 0}}, +{(unsigned char*)"Colon", {226, 136, 183, 0}}, +{(unsigned char*)"Colone", {226, 169, 180, 0}}, +{(unsigned char*)"Congruent", {226, 137, 161, 0}}, +{(unsigned char*)"Conint", {226, 136, 175, 0}}, +{(unsigned char*)"ContourIntegral", {226, 136, 174, 0}}, +{(unsigned char*)"Copf", {226, 132, 130, 0}}, +{(unsigned char*)"Coproduct", {226, 136, 144, 0}}, +{(unsigned char*)"CounterClockwiseContourIntegral", {226, 136, 179, 0}}, +{(unsigned char*)"Cross", {226, 168, 175, 0}}, +{(unsigned char*)"Cscr", {240, 157, 146, 158, 0}}, +{(unsigned char*)"Cup", {226, 139, 147, 0}}, +{(unsigned char*)"CupCap", {226, 137, 141, 0}}, +{(unsigned char*)"DD", {226, 133, 133, 0}}, +{(unsigned char*)"DDotrahd", {226, 164, 145, 0}}, +{(unsigned char*)"DJcy", {208, 130, 0}}, +{(unsigned char*)"DScy", {208, 133, 0}}, +{(unsigned char*)"DZcy", {208, 143, 0}}, +{(unsigned char*)"Dagger", {226, 128, 161, 0}}, +{(unsigned char*)"Darr", {226, 134, 161, 0}}, +{(unsigned char*)"Dashv", {226, 171, 164, 0}}, +{(unsigned char*)"Dcaron", {196, 142, 0}}, +{(unsigned char*)"Dcy", {208, 148, 0}}, +{(unsigned char*)"Del", {226, 136, 135, 0}}, +{(unsigned char*)"Delta", {206, 148, 0}}, +{(unsigned char*)"Dfr", {240, 157, 148, 135, 0}}, +{(unsigned char*)"DiacriticalAcute", {194, 180, 0}}, +{(unsigned char*)"DiacriticalDot", {203, 153, 0}}, +{(unsigned char*)"DiacriticalDoubleAcute", {203, 157, 0}}, +{(unsigned char*)"DiacriticalGrave", {96, 0}}, +{(unsigned char*)"DiacriticalTilde", {203, 156, 0}}, +{(unsigned char*)"Diamond", {226, 139, 132, 0}}, +{(unsigned char*)"DifferentialD", {226, 133, 134, 0}}, +{(unsigned char*)"Dopf", {240, 157, 148, 187, 0}}, +{(unsigned char*)"Dot", {194, 168, 0}}, +{(unsigned char*)"DotDot", {226, 131, 156, 0}}, +{(unsigned char*)"DotEqual", {226, 137, 144, 0}}, +{(unsigned char*)"DoubleContourIntegral", {226, 136, 175, 0}}, +{(unsigned char*)"DoubleDot", {194, 168, 0}}, +{(unsigned char*)"DoubleDownArrow", {226, 135, 147, 0}}, +{(unsigned char*)"DoubleLeftArrow", {226, 135, 144, 0}}, +{(unsigned char*)"DoubleLeftRightArrow", {226, 135, 148, 0}}, +{(unsigned char*)"DoubleLeftTee", {226, 171, 164, 0}}, +{(unsigned char*)"DoubleLongLeftArrow", {226, 159, 184, 0}}, +{(unsigned char*)"DoubleLongLeftRightArrow", {226, 159, 186, 0}}, +{(unsigned char*)"DoubleLongRightArrow", {226, 159, 185, 0}}, +{(unsigned char*)"DoubleRightArrow", {226, 135, 146, 0}}, +{(unsigned char*)"DoubleRightTee", {226, 138, 168, 0}}, +{(unsigned char*)"DoubleUpArrow", {226, 135, 145, 0}}, +{(unsigned char*)"DoubleUpDownArrow", {226, 135, 149, 0}}, +{(unsigned char*)"DoubleVerticalBar", {226, 136, 165, 0}}, +{(unsigned char*)"DownArrow", {226, 134, 147, 0}}, +{(unsigned char*)"DownArrowBar", {226, 164, 147, 0}}, +{(unsigned char*)"DownArrowUpArrow", {226, 135, 181, 0}}, +{(unsigned char*)"DownBreve", {204, 145, 0}}, +{(unsigned char*)"DownLeftRightVector", {226, 165, 144, 0}}, +{(unsigned char*)"DownLeftTeeVector", {226, 165, 158, 0}}, +{(unsigned char*)"DownLeftVector", {226, 134, 189, 0}}, +{(unsigned char*)"DownLeftVectorBar", {226, 165, 150, 0}}, +{(unsigned char*)"DownRightTeeVector", {226, 165, 159, 0}}, +{(unsigned char*)"DownRightVector", {226, 135, 129, 0}}, +{(unsigned char*)"DownRightVectorBar", {226, 165, 151, 0}}, +{(unsigned char*)"DownTee", {226, 138, 164, 0}}, +{(unsigned char*)"DownTeeArrow", {226, 134, 167, 0}}, +{(unsigned char*)"Downarrow", {226, 135, 147, 0}}, +{(unsigned char*)"Dscr", {240, 157, 146, 159, 0}}, +{(unsigned char*)"Dstrok", {196, 144, 0}}, +{(unsigned char*)"ENG", {197, 138, 0}}, +{(unsigned char*)"ETH", {195, 144, 0}}, +{(unsigned char*)"Eacute", {195, 137, 0}}, +{(unsigned char*)"Ecaron", {196, 154, 0}}, +{(unsigned char*)"Ecirc", {195, 138, 0}}, +{(unsigned char*)"Ecy", {208, 173, 0}}, +{(unsigned char*)"Edot", {196, 150, 0}}, +{(unsigned char*)"Efr", {240, 157, 148, 136, 0}}, +{(unsigned char*)"Egrave", {195, 136, 0}}, +{(unsigned char*)"Element", {226, 136, 136, 0}}, +{(unsigned char*)"Emacr", {196, 146, 0}}, +{(unsigned char*)"EmptySmallSquare", {226, 151, 187, 0}}, +{(unsigned char*)"EmptyVerySmallSquare", {226, 150, 171, 0}}, +{(unsigned char*)"Eogon", {196, 152, 0}}, +{(unsigned char*)"Eopf", {240, 157, 148, 188, 0}}, +{(unsigned char*)"Epsilon", {206, 149, 0}}, +{(unsigned char*)"Equal", {226, 169, 181, 0}}, +{(unsigned char*)"EqualTilde", {226, 137, 130, 0}}, +{(unsigned char*)"Equilibrium", {226, 135, 140, 0}}, +{(unsigned char*)"Escr", {226, 132, 176, 0}}, +{(unsigned char*)"Esim", {226, 169, 179, 0}}, +{(unsigned char*)"Eta", {206, 151, 0}}, +{(unsigned char*)"Euml", {195, 139, 0}}, +{(unsigned char*)"Exists", {226, 136, 131, 0}}, +{(unsigned char*)"ExponentialE", {226, 133, 135, 0}}, +{(unsigned char*)"Fcy", {208, 164, 0}}, +{(unsigned char*)"Ffr", {240, 157, 148, 137, 0}}, +{(unsigned char*)"FilledSmallSquare", {226, 151, 188, 0}}, +{(unsigned char*)"FilledVerySmallSquare", {226, 150, 170, 0}}, +{(unsigned char*)"Fopf", {240, 157, 148, 189, 0}}, +{(unsigned char*)"ForAll", {226, 136, 128, 0}}, +{(unsigned char*)"Fouriertrf", {226, 132, 177, 0}}, +{(unsigned char*)"Fscr", {226, 132, 177, 0}}, +{(unsigned char*)"GJcy", {208, 131, 0}}, +{(unsigned char*)"GT", {62, 0}}, +{(unsigned char*)"Gamma", {206, 147, 0}}, +{(unsigned char*)"Gammad", {207, 156, 0}}, +{(unsigned char*)"Gbreve", {196, 158, 0}}, +{(unsigned char*)"Gcedil", {196, 162, 0}}, +{(unsigned char*)"Gcirc", {196, 156, 0}}, +{(unsigned char*)"Gcy", {208, 147, 0}}, +{(unsigned char*)"Gdot", {196, 160, 0}}, +{(unsigned char*)"Gfr", {240, 157, 148, 138, 0}}, +{(unsigned char*)"Gg", {226, 139, 153, 0}}, +{(unsigned char*)"Gopf", {240, 157, 148, 190, 0}}, +{(unsigned char*)"GreaterEqual", {226, 137, 165, 0}}, +{(unsigned char*)"GreaterEqualLess", {226, 139, 155, 0}}, +{(unsigned char*)"GreaterFullEqual", {226, 137, 167, 0}}, +{(unsigned char*)"GreaterGreater", {226, 170, 162, 0}}, +{(unsigned char*)"GreaterLess", {226, 137, 183, 0}}, +{(unsigned char*)"GreaterSlantEqual", {226, 169, 190, 0}}, +{(unsigned char*)"GreaterTilde", {226, 137, 179, 0}}, +{(unsigned char*)"Gscr", {240, 157, 146, 162, 0}}, +{(unsigned char*)"Gt", {226, 137, 171, 0}}, +{(unsigned char*)"HARDcy", {208, 170, 0}}, +{(unsigned char*)"Hacek", {203, 135, 0}}, +{(unsigned char*)"Hat", {94, 0}}, +{(unsigned char*)"Hcirc", {196, 164, 0}}, +{(unsigned char*)"Hfr", {226, 132, 140, 0}}, +{(unsigned char*)"HilbertSpace", {226, 132, 139, 0}}, +{(unsigned char*)"Hopf", {226, 132, 141, 0}}, +{(unsigned char*)"HorizontalLine", {226, 148, 128, 0}}, +{(unsigned char*)"Hscr", {226, 132, 139, 0}}, +{(unsigned char*)"Hstrok", {196, 166, 0}}, +{(unsigned char*)"HumpDownHump", {226, 137, 142, 0}}, +{(unsigned char*)"HumpEqual", {226, 137, 143, 0}}, +{(unsigned char*)"IEcy", {208, 149, 0}}, +{(unsigned char*)"IJlig", {196, 178, 0}}, +{(unsigned char*)"IOcy", {208, 129, 0}}, +{(unsigned char*)"Iacute", {195, 141, 0}}, +{(unsigned char*)"Icirc", {195, 142, 0}}, +{(unsigned char*)"Icy", {208, 152, 0}}, +{(unsigned char*)"Idot", {196, 176, 0}}, +{(unsigned char*)"Ifr", {226, 132, 145, 0}}, +{(unsigned char*)"Igrave", {195, 140, 0}}, +{(unsigned char*)"Im", {226, 132, 145, 0}}, +{(unsigned char*)"Imacr", {196, 170, 0}}, +{(unsigned char*)"ImaginaryI", {226, 133, 136, 0}}, +{(unsigned char*)"Implies", {226, 135, 146, 0}}, +{(unsigned char*)"Int", {226, 136, 172, 0}}, +{(unsigned char*)"Integral", {226, 136, 171, 0}}, +{(unsigned char*)"Intersection", {226, 139, 130, 0}}, +{(unsigned char*)"InvisibleComma", {226, 129, 163, 0}}, +{(unsigned char*)"InvisibleTimes", {226, 129, 162, 0}}, +{(unsigned char*)"Iogon", {196, 174, 0}}, +{(unsigned char*)"Iopf", {240, 157, 149, 128, 0}}, +{(unsigned char*)"Iota", {206, 153, 0}}, +{(unsigned char*)"Iscr", {226, 132, 144, 0}}, +{(unsigned char*)"Itilde", {196, 168, 0}}, +{(unsigned char*)"Iukcy", {208, 134, 0}}, +{(unsigned char*)"Iuml", {195, 143, 0}}, +{(unsigned char*)"Jcirc", {196, 180, 0}}, +{(unsigned char*)"Jcy", {208, 153, 0}}, +{(unsigned char*)"Jfr", {240, 157, 148, 141, 0}}, +{(unsigned char*)"Jopf", {240, 157, 149, 129, 0}}, +{(unsigned char*)"Jscr", {240, 157, 146, 165, 0}}, +{(unsigned char*)"Jsercy", {208, 136, 0}}, +{(unsigned char*)"Jukcy", {208, 132, 0}}, +{(unsigned char*)"KHcy", {208, 165, 0}}, +{(unsigned char*)"KJcy", {208, 140, 0}}, +{(unsigned char*)"Kappa", {206, 154, 0}}, +{(unsigned char*)"Kcedil", {196, 182, 0}}, +{(unsigned char*)"Kcy", {208, 154, 0}}, +{(unsigned char*)"Kfr", {240, 157, 148, 142, 0}}, +{(unsigned char*)"Kopf", {240, 157, 149, 130, 0}}, +{(unsigned char*)"Kscr", {240, 157, 146, 166, 0}}, +{(unsigned char*)"LJcy", {208, 137, 0}}, +{(unsigned char*)"LT", {60, 0}}, +{(unsigned char*)"Lacute", {196, 185, 0}}, +{(unsigned char*)"Lambda", {206, 155, 0}}, +{(unsigned char*)"Lang", {226, 159, 170, 0}}, +{(unsigned char*)"Laplacetrf", {226, 132, 146, 0}}, +{(unsigned char*)"Larr", {226, 134, 158, 0}}, +{(unsigned char*)"Lcaron", {196, 189, 0}}, +{(unsigned char*)"Lcedil", {196, 187, 0}}, +{(unsigned char*)"Lcy", {208, 155, 0}}, +{(unsigned char*)"LeftAngleBracket", {226, 159, 168, 0}}, +{(unsigned char*)"LeftArrow", {226, 134, 144, 0}}, +{(unsigned char*)"LeftArrowBar", {226, 135, 164, 0}}, +{(unsigned char*)"LeftArrowRightArrow", {226, 135, 134, 0}}, +{(unsigned char*)"LeftCeiling", {226, 140, 136, 0}}, +{(unsigned char*)"LeftDoubleBracket", {226, 159, 166, 0}}, +{(unsigned char*)"LeftDownTeeVector", {226, 165, 161, 0}}, +{(unsigned char*)"LeftDownVector", {226, 135, 131, 0}}, +{(unsigned char*)"LeftDownVectorBar", {226, 165, 153, 0}}, +{(unsigned char*)"LeftFloor", {226, 140, 138, 0}}, +{(unsigned char*)"LeftRightArrow", {226, 134, 148, 0}}, +{(unsigned char*)"LeftRightVector", {226, 165, 142, 0}}, +{(unsigned char*)"LeftTee", {226, 138, 163, 0}}, +{(unsigned char*)"LeftTeeArrow", {226, 134, 164, 0}}, +{(unsigned char*)"LeftTeeVector", {226, 165, 154, 0}}, +{(unsigned char*)"LeftTriangle", {226, 138, 178, 0}}, +{(unsigned char*)"LeftTriangleBar", {226, 167, 143, 0}}, +{(unsigned char*)"LeftTriangleEqual", {226, 138, 180, 0}}, +{(unsigned char*)"LeftUpDownVector", {226, 165, 145, 0}}, +{(unsigned char*)"LeftUpTeeVector", {226, 165, 160, 0}}, +{(unsigned char*)"LeftUpVector", {226, 134, 191, 0}}, +{(unsigned char*)"LeftUpVectorBar", {226, 165, 152, 0}}, +{(unsigned char*)"LeftVector", {226, 134, 188, 0}}, +{(unsigned char*)"LeftVectorBar", {226, 165, 146, 0}}, +{(unsigned char*)"Leftarrow", {226, 135, 144, 0}}, +{(unsigned char*)"Leftrightarrow", {226, 135, 148, 0}}, +{(unsigned char*)"LessEqualGreater", {226, 139, 154, 0}}, +{(unsigned char*)"LessFullEqual", {226, 137, 166, 0}}, +{(unsigned char*)"LessGreater", {226, 137, 182, 0}}, +{(unsigned char*)"LessLess", {226, 170, 161, 0}}, +{(unsigned char*)"LessSlantEqual", {226, 169, 189, 0}}, +{(unsigned char*)"LessTilde", {226, 137, 178, 0}}, +{(unsigned char*)"Lfr", {240, 157, 148, 143, 0}}, +{(unsigned char*)"Ll", {226, 139, 152, 0}}, +{(unsigned char*)"Lleftarrow", {226, 135, 154, 0}}, +{(unsigned char*)"Lmidot", {196, 191, 0}}, +{(unsigned char*)"LongLeftArrow", {226, 159, 181, 0}}, +{(unsigned char*)"LongLeftRightArrow", {226, 159, 183, 0}}, +{(unsigned char*)"LongRightArrow", {226, 159, 182, 0}}, +{(unsigned char*)"Longleftarrow", {226, 159, 184, 0}}, +{(unsigned char*)"Longleftrightarrow", {226, 159, 186, 0}}, +{(unsigned char*)"Longrightarrow", {226, 159, 185, 0}}, +{(unsigned char*)"Lopf", {240, 157, 149, 131, 0}}, +{(unsigned char*)"LowerLeftArrow", {226, 134, 153, 0}}, +{(unsigned char*)"LowerRightArrow", {226, 134, 152, 0}}, +{(unsigned char*)"Lscr", {226, 132, 146, 0}}, +{(unsigned char*)"Lsh", {226, 134, 176, 0}}, +{(unsigned char*)"Lstrok", {197, 129, 0}}, +{(unsigned char*)"Lt", {226, 137, 170, 0}}, +{(unsigned char*)"Map", {226, 164, 133, 0}}, +{(unsigned char*)"Mcy", {208, 156, 0}}, +{(unsigned char*)"MediumSpace", {226, 129, 159, 0}}, +{(unsigned char*)"Mellintrf", {226, 132, 179, 0}}, +{(unsigned char*)"Mfr", {240, 157, 148, 144, 0}}, +{(unsigned char*)"MinusPlus", {226, 136, 147, 0}}, +{(unsigned char*)"Mopf", {240, 157, 149, 132, 0}}, +{(unsigned char*)"Mscr", {226, 132, 179, 0}}, +{(unsigned char*)"Mu", {206, 156, 0}}, +{(unsigned char*)"NJcy", {208, 138, 0}}, +{(unsigned char*)"Nacute", {197, 131, 0}}, +{(unsigned char*)"Ncaron", {197, 135, 0}}, +{(unsigned char*)"Ncedil", {197, 133, 0}}, +{(unsigned char*)"Ncy", {208, 157, 0}}, +{(unsigned char*)"NegativeMediumSpace", {226, 128, 139, 0}}, +{(unsigned char*)"NegativeThickSpace", {226, 128, 139, 0}}, +{(unsigned char*)"NegativeThinSpace", {226, 128, 139, 0}}, +{(unsigned char*)"NegativeVeryThinSpace", {226, 128, 139, 0}}, +{(unsigned char*)"NestedGreaterGreater", {226, 137, 171, 0}}, +{(unsigned char*)"NestedLessLess", {226, 137, 170, 0}}, +{(unsigned char*)"NewLine", {10, 0}}, +{(unsigned char*)"Nfr", {240, 157, 148, 145, 0}}, +{(unsigned char*)"NoBreak", {226, 129, 160, 0}}, +{(unsigned char*)"NonBreakingSpace", {194, 160, 0}}, +{(unsigned char*)"Nopf", {226, 132, 149, 0}}, +{(unsigned char*)"Not", {226, 171, 172, 0}}, +{(unsigned char*)"NotCongruent", {226, 137, 162, 0}}, +{(unsigned char*)"NotCupCap", {226, 137, 173, 0}}, +{(unsigned char*)"NotDoubleVerticalBar", {226, 136, 166, 0}}, +{(unsigned char*)"NotElement", {226, 136, 137, 0}}, +{(unsigned char*)"NotEqual", {226, 137, 160, 0}}, +{(unsigned char*)"NotEqualTilde", {226, 137, 130, 204, 184, 0}}, +{(unsigned char*)"NotExists", {226, 136, 132, 0}}, +{(unsigned char*)"NotGreater", {226, 137, 175, 0}}, +{(unsigned char*)"NotGreaterEqual", {226, 137, 177, 0}}, +{(unsigned char*)"NotGreaterFullEqual", {226, 137, 167, 204, 184, 0}}, +{(unsigned char*)"NotGreaterGreater", {226, 137, 171, 204, 184, 0}}, +{(unsigned char*)"NotGreaterLess", {226, 137, 185, 0}}, +{(unsigned char*)"NotGreaterSlantEqual", {226, 169, 190, 204, 184, 0}}, +{(unsigned char*)"NotGreaterTilde", {226, 137, 181, 0}}, +{(unsigned char*)"NotHumpDownHump", {226, 137, 142, 204, 184, 0}}, +{(unsigned char*)"NotHumpEqual", {226, 137, 143, 204, 184, 0}}, +{(unsigned char*)"NotLeftTriangle", {226, 139, 170, 0}}, +{(unsigned char*)"NotLeftTriangleBar", {226, 167, 143, 204, 184, 0}}, +{(unsigned char*)"NotLeftTriangleEqual", {226, 139, 172, 0}}, +{(unsigned char*)"NotLess", {226, 137, 174, 0}}, +{(unsigned char*)"NotLessEqual", {226, 137, 176, 0}}, +{(unsigned char*)"NotLessGreater", {226, 137, 184, 0}}, +{(unsigned char*)"NotLessLess", {226, 137, 170, 204, 184, 0}}, +{(unsigned char*)"NotLessSlantEqual", {226, 169, 189, 204, 184, 0}}, +{(unsigned char*)"NotLessTilde", {226, 137, 180, 0}}, +{(unsigned char*)"NotNestedGreaterGreater", {226, 170, 162, 204, 184, 0}}, +{(unsigned char*)"NotNestedLessLess", {226, 170, 161, 204, 184, 0}}, +{(unsigned char*)"NotPrecedes", {226, 138, 128, 0}}, +{(unsigned char*)"NotPrecedesEqual", {226, 170, 175, 204, 184, 0}}, +{(unsigned char*)"NotPrecedesSlantEqual", {226, 139, 160, 0}}, +{(unsigned char*)"NotReverseElement", {226, 136, 140, 0}}, +{(unsigned char*)"NotRightTriangle", {226, 139, 171, 0}}, +{(unsigned char*)"NotRightTriangleBar", {226, 167, 144, 204, 184, 0}}, +{(unsigned char*)"NotRightTriangleEqual", {226, 139, 173, 0}}, +{(unsigned char*)"NotSquareSubset", {226, 138, 143, 204, 184, 0}}, +{(unsigned char*)"NotSquareSubsetEqual", {226, 139, 162, 0}}, +{(unsigned char*)"NotSquareSuperset", {226, 138, 144, 204, 184, 0}}, +{(unsigned char*)"NotSquareSupersetEqual", {226, 139, 163, 0}}, +{(unsigned char*)"NotSubset", {226, 138, 130, 226, 131, 146, 0}}, +{(unsigned char*)"NotSubsetEqual", {226, 138, 136, 0}}, +{(unsigned char*)"NotSucceeds", {226, 138, 129, 0}}, +{(unsigned char*)"NotSucceedsEqual", {226, 170, 176, 204, 184, 0}}, +{(unsigned char*)"NotSucceedsSlantEqual", {226, 139, 161, 0}}, +{(unsigned char*)"NotSucceedsTilde", {226, 137, 191, 204, 184, 0}}, +{(unsigned char*)"NotSuperset", {226, 138, 131, 226, 131, 146, 0}}, +{(unsigned char*)"NotSupersetEqual", {226, 138, 137, 0}}, +{(unsigned char*)"NotTilde", {226, 137, 129, 0}}, +{(unsigned char*)"NotTildeEqual", {226, 137, 132, 0}}, +{(unsigned char*)"NotTildeFullEqual", {226, 137, 135, 0}}, +{(unsigned char*)"NotTildeTilde", {226, 137, 137, 0}}, +{(unsigned char*)"NotVerticalBar", {226, 136, 164, 0}}, +{(unsigned char*)"Nscr", {240, 157, 146, 169, 0}}, +{(unsigned char*)"Ntilde", {195, 145, 0}}, +{(unsigned char*)"Nu", {206, 157, 0}}, +{(unsigned char*)"OElig", {197, 146, 0}}, +{(unsigned char*)"Oacute", {195, 147, 0}}, +{(unsigned char*)"Ocirc", {195, 148, 0}}, +{(unsigned char*)"Ocy", {208, 158, 0}}, +{(unsigned char*)"Odblac", {197, 144, 0}}, +{(unsigned char*)"Ofr", {240, 157, 148, 146, 0}}, +{(unsigned char*)"Ograve", {195, 146, 0}}, +{(unsigned char*)"Omacr", {197, 140, 0}}, +{(unsigned char*)"Omega", {206, 169, 0}}, +{(unsigned char*)"Omicron", {206, 159, 0}}, +{(unsigned char*)"Oopf", {240, 157, 149, 134, 0}}, +{(unsigned char*)"OpenCurlyDoubleQuote", {226, 128, 156, 0}}, +{(unsigned char*)"OpenCurlyQuote", {226, 128, 152, 0}}, +{(unsigned char*)"Or", {226, 169, 148, 0}}, +{(unsigned char*)"Oscr", {240, 157, 146, 170, 0}}, +{(unsigned char*)"Oslash", {195, 152, 0}}, +{(unsigned char*)"Otilde", {195, 149, 0}}, +{(unsigned char*)"Otimes", {226, 168, 183, 0}}, +{(unsigned char*)"Ouml", {195, 150, 0}}, +{(unsigned char*)"OverBar", {226, 128, 190, 0}}, +{(unsigned char*)"OverBrace", {226, 143, 158, 0}}, +{(unsigned char*)"OverBracket", {226, 142, 180, 0}}, +{(unsigned char*)"OverParenthesis", {226, 143, 156, 0}}, +{(unsigned char*)"PartialD", {226, 136, 130, 0}}, +{(unsigned char*)"Pcy", {208, 159, 0}}, +{(unsigned char*)"Pfr", {240, 157, 148, 147, 0}}, +{(unsigned char*)"Phi", {206, 166, 0}}, +{(unsigned char*)"Pi", {206, 160, 0}}, +{(unsigned char*)"PlusMinus", {194, 177, 0}}, +{(unsigned char*)"Poincareplane", {226, 132, 140, 0}}, +{(unsigned char*)"Popf", {226, 132, 153, 0}}, +{(unsigned char*)"Pr", {226, 170, 187, 0}}, +{(unsigned char*)"Precedes", {226, 137, 186, 0}}, +{(unsigned char*)"PrecedesEqual", {226, 170, 175, 0}}, +{(unsigned char*)"PrecedesSlantEqual", {226, 137, 188, 0}}, +{(unsigned char*)"PrecedesTilde", {226, 137, 190, 0}}, +{(unsigned char*)"Prime", {226, 128, 179, 0}}, +{(unsigned char*)"Product", {226, 136, 143, 0}}, +{(unsigned char*)"Proportion", {226, 136, 183, 0}}, +{(unsigned char*)"Proportional", {226, 136, 157, 0}}, +{(unsigned char*)"Pscr", {240, 157, 146, 171, 0}}, +{(unsigned char*)"Psi", {206, 168, 0}}, +{(unsigned char*)"QUOT", {34, 0}}, +{(unsigned char*)"Qfr", {240, 157, 148, 148, 0}}, +{(unsigned char*)"Qopf", {226, 132, 154, 0}}, +{(unsigned char*)"Qscr", {240, 157, 146, 172, 0}}, +{(unsigned char*)"RBarr", {226, 164, 144, 0}}, +{(unsigned char*)"REG", {194, 174, 0}}, +{(unsigned char*)"Racute", {197, 148, 0}}, +{(unsigned char*)"Rang", {226, 159, 171, 0}}, +{(unsigned char*)"Rarr", {226, 134, 160, 0}}, +{(unsigned char*)"Rarrtl", {226, 164, 150, 0}}, +{(unsigned char*)"Rcaron", {197, 152, 0}}, +{(unsigned char*)"Rcedil", {197, 150, 0}}, +{(unsigned char*)"Rcy", {208, 160, 0}}, +{(unsigned char*)"Re", {226, 132, 156, 0}}, +{(unsigned char*)"ReverseElement", {226, 136, 139, 0}}, +{(unsigned char*)"ReverseEquilibrium", {226, 135, 139, 0}}, +{(unsigned char*)"ReverseUpEquilibrium", {226, 165, 175, 0}}, +{(unsigned char*)"Rfr", {226, 132, 156, 0}}, +{(unsigned char*)"Rho", {206, 161, 0}}, +{(unsigned char*)"RightAngleBracket", {226, 159, 169, 0}}, +{(unsigned char*)"RightArrow", {226, 134, 146, 0}}, +{(unsigned char*)"RightArrowBar", {226, 135, 165, 0}}, +{(unsigned char*)"RightArrowLeftArrow", {226, 135, 132, 0}}, +{(unsigned char*)"RightCeiling", {226, 140, 137, 0}}, +{(unsigned char*)"RightDoubleBracket", {226, 159, 167, 0}}, +{(unsigned char*)"RightDownTeeVector", {226, 165, 157, 0}}, +{(unsigned char*)"RightDownVector", {226, 135, 130, 0}}, +{(unsigned char*)"RightDownVectorBar", {226, 165, 149, 0}}, +{(unsigned char*)"RightFloor", {226, 140, 139, 0}}, +{(unsigned char*)"RightTee", {226, 138, 162, 0}}, +{(unsigned char*)"RightTeeArrow", {226, 134, 166, 0}}, +{(unsigned char*)"RightTeeVector", {226, 165, 155, 0}}, +{(unsigned char*)"RightTriangle", {226, 138, 179, 0}}, +{(unsigned char*)"RightTriangleBar", {226, 167, 144, 0}}, +{(unsigned char*)"RightTriangleEqual", {226, 138, 181, 0}}, +{(unsigned char*)"RightUpDownVector", {226, 165, 143, 0}}, +{(unsigned char*)"RightUpTeeVector", {226, 165, 156, 0}}, +{(unsigned char*)"RightUpVector", {226, 134, 190, 0}}, +{(unsigned char*)"RightUpVectorBar", {226, 165, 148, 0}}, +{(unsigned char*)"RightVector", {226, 135, 128, 0}}, +{(unsigned char*)"RightVectorBar", {226, 165, 147, 0}}, +{(unsigned char*)"Rightarrow", {226, 135, 146, 0}}, +{(unsigned char*)"Ropf", {226, 132, 157, 0}}, +{(unsigned char*)"RoundImplies", {226, 165, 176, 0}}, +{(unsigned char*)"Rrightarrow", {226, 135, 155, 0}}, +{(unsigned char*)"Rscr", {226, 132, 155, 0}}, +{(unsigned char*)"Rsh", {226, 134, 177, 0}}, +{(unsigned char*)"RuleDelayed", {226, 167, 180, 0}}, +{(unsigned char*)"SHCHcy", {208, 169, 0}}, +{(unsigned char*)"SHcy", {208, 168, 0}}, +{(unsigned char*)"SOFTcy", {208, 172, 0}}, +{(unsigned char*)"Sacute", {197, 154, 0}}, +{(unsigned char*)"Sc", {226, 170, 188, 0}}, +{(unsigned char*)"Scaron", {197, 160, 0}}, +{(unsigned char*)"Scedil", {197, 158, 0}}, +{(unsigned char*)"Scirc", {197, 156, 0}}, +{(unsigned char*)"Scy", {208, 161, 0}}, +{(unsigned char*)"Sfr", {240, 157, 148, 150, 0}}, +{(unsigned char*)"ShortDownArrow", {226, 134, 147, 0}}, +{(unsigned char*)"ShortLeftArrow", {226, 134, 144, 0}}, +{(unsigned char*)"ShortRightArrow", {226, 134, 146, 0}}, +{(unsigned char*)"ShortUpArrow", {226, 134, 145, 0}}, +{(unsigned char*)"Sigma", {206, 163, 0}}, +{(unsigned char*)"SmallCircle", {226, 136, 152, 0}}, +{(unsigned char*)"Sopf", {240, 157, 149, 138, 0}}, +{(unsigned char*)"Sqrt", {226, 136, 154, 0}}, +{(unsigned char*)"Square", {226, 150, 161, 0}}, +{(unsigned char*)"SquareIntersection", {226, 138, 147, 0}}, +{(unsigned char*)"SquareSubset", {226, 138, 143, 0}}, +{(unsigned char*)"SquareSubsetEqual", {226, 138, 145, 0}}, +{(unsigned char*)"SquareSuperset", {226, 138, 144, 0}}, +{(unsigned char*)"SquareSupersetEqual", {226, 138, 146, 0}}, +{(unsigned char*)"SquareUnion", {226, 138, 148, 0}}, +{(unsigned char*)"Sscr", {240, 157, 146, 174, 0}}, +{(unsigned char*)"Star", {226, 139, 134, 0}}, +{(unsigned char*)"Sub", {226, 139, 144, 0}}, +{(unsigned char*)"Subset", {226, 139, 144, 0}}, +{(unsigned char*)"SubsetEqual", {226, 138, 134, 0}}, +{(unsigned char*)"Succeeds", {226, 137, 187, 0}}, +{(unsigned char*)"SucceedsEqual", {226, 170, 176, 0}}, +{(unsigned char*)"SucceedsSlantEqual", {226, 137, 189, 0}}, +{(unsigned char*)"SucceedsTilde", {226, 137, 191, 0}}, +{(unsigned char*)"SuchThat", {226, 136, 139, 0}}, +{(unsigned char*)"Sum", {226, 136, 145, 0}}, +{(unsigned char*)"Sup", {226, 139, 145, 0}}, +{(unsigned char*)"Superset", {226, 138, 131, 0}}, +{(unsigned char*)"SupersetEqual", {226, 138, 135, 0}}, +{(unsigned char*)"Supset", {226, 139, 145, 0}}, +{(unsigned char*)"THORN", {195, 158, 0}}, +{(unsigned char*)"TRADE", {226, 132, 162, 0}}, +{(unsigned char*)"TSHcy", {208, 139, 0}}, +{(unsigned char*)"TScy", {208, 166, 0}}, +{(unsigned char*)"Tab", {9, 0}}, +{(unsigned char*)"Tau", {206, 164, 0}}, +{(unsigned char*)"Tcaron", {197, 164, 0}}, +{(unsigned char*)"Tcedil", {197, 162, 0}}, +{(unsigned char*)"Tcy", {208, 162, 0}}, +{(unsigned char*)"Tfr", {240, 157, 148, 151, 0}}, +{(unsigned char*)"Therefore", {226, 136, 180, 0}}, +{(unsigned char*)"Theta", {206, 152, 0}}, +{(unsigned char*)"ThickSpace", {226, 129, 159, 226, 128, 138, 0}}, +{(unsigned char*)"ThinSpace", {226, 128, 137, 0}}, +{(unsigned char*)"Tilde", {226, 136, 188, 0}}, +{(unsigned char*)"TildeEqual", {226, 137, 131, 0}}, +{(unsigned char*)"TildeFullEqual", {226, 137, 133, 0}}, +{(unsigned char*)"TildeTilde", {226, 137, 136, 0}}, +{(unsigned char*)"Topf", {240, 157, 149, 139, 0}}, +{(unsigned char*)"TripleDot", {226, 131, 155, 0}}, +{(unsigned char*)"Tscr", {240, 157, 146, 175, 0}}, +{(unsigned char*)"Tstrok", {197, 166, 0}}, +{(unsigned char*)"Uacute", {195, 154, 0}}, +{(unsigned char*)"Uarr", {226, 134, 159, 0}}, +{(unsigned char*)"Uarrocir", {226, 165, 137, 0}}, +{(unsigned char*)"Ubrcy", {208, 142, 0}}, +{(unsigned char*)"Ubreve", {197, 172, 0}}, +{(unsigned char*)"Ucirc", {195, 155, 0}}, +{(unsigned char*)"Ucy", {208, 163, 0}}, +{(unsigned char*)"Udblac", {197, 176, 0}}, +{(unsigned char*)"Ufr", {240, 157, 148, 152, 0}}, +{(unsigned char*)"Ugrave", {195, 153, 0}}, +{(unsigned char*)"Umacr", {197, 170, 0}}, +{(unsigned char*)"UnderBar", {95, 0}}, +{(unsigned char*)"UnderBrace", {226, 143, 159, 0}}, +{(unsigned char*)"UnderBracket", {226, 142, 181, 0}}, +{(unsigned char*)"UnderParenthesis", {226, 143, 157, 0}}, +{(unsigned char*)"Union", {226, 139, 131, 0}}, +{(unsigned char*)"UnionPlus", {226, 138, 142, 0}}, +{(unsigned char*)"Uogon", {197, 178, 0}}, +{(unsigned char*)"Uopf", {240, 157, 149, 140, 0}}, +{(unsigned char*)"UpArrow", {226, 134, 145, 0}}, +{(unsigned char*)"UpArrowBar", {226, 164, 146, 0}}, +{(unsigned char*)"UpArrowDownArrow", {226, 135, 133, 0}}, +{(unsigned char*)"UpDownArrow", {226, 134, 149, 0}}, +{(unsigned char*)"UpEquilibrium", {226, 165, 174, 0}}, +{(unsigned char*)"UpTee", {226, 138, 165, 0}}, +{(unsigned char*)"UpTeeArrow", {226, 134, 165, 0}}, +{(unsigned char*)"Uparrow", {226, 135, 145, 0}}, +{(unsigned char*)"Updownarrow", {226, 135, 149, 0}}, +{(unsigned char*)"UpperLeftArrow", {226, 134, 150, 0}}, +{(unsigned char*)"UpperRightArrow", {226, 134, 151, 0}}, +{(unsigned char*)"Upsi", {207, 146, 0}}, +{(unsigned char*)"Upsilon", {206, 165, 0}}, +{(unsigned char*)"Uring", {197, 174, 0}}, +{(unsigned char*)"Uscr", {240, 157, 146, 176, 0}}, +{(unsigned char*)"Utilde", {197, 168, 0}}, +{(unsigned char*)"Uuml", {195, 156, 0}}, +{(unsigned char*)"VDash", {226, 138, 171, 0}}, +{(unsigned char*)"Vbar", {226, 171, 171, 0}}, +{(unsigned char*)"Vcy", {208, 146, 0}}, +{(unsigned char*)"Vdash", {226, 138, 169, 0}}, +{(unsigned char*)"Vdashl", {226, 171, 166, 0}}, +{(unsigned char*)"Vee", {226, 139, 129, 0}}, +{(unsigned char*)"Verbar", {226, 128, 150, 0}}, +{(unsigned char*)"Vert", {226, 128, 150, 0}}, +{(unsigned char*)"VerticalBar", {226, 136, 163, 0}}, +{(unsigned char*)"VerticalLine", {124, 0}}, +{(unsigned char*)"VerticalSeparator", {226, 157, 152, 0}}, +{(unsigned char*)"VerticalTilde", {226, 137, 128, 0}}, +{(unsigned char*)"VeryThinSpace", {226, 128, 138, 0}}, +{(unsigned char*)"Vfr", {240, 157, 148, 153, 0}}, +{(unsigned char*)"Vopf", {240, 157, 149, 141, 0}}, +{(unsigned char*)"Vscr", {240, 157, 146, 177, 0}}, +{(unsigned char*)"Vvdash", {226, 138, 170, 0}}, +{(unsigned char*)"Wcirc", {197, 180, 0}}, +{(unsigned char*)"Wedge", {226, 139, 128, 0}}, +{(unsigned char*)"Wfr", {240, 157, 148, 154, 0}}, +{(unsigned char*)"Wopf", {240, 157, 149, 142, 0}}, +{(unsigned char*)"Wscr", {240, 157, 146, 178, 0}}, +{(unsigned char*)"Xfr", {240, 157, 148, 155, 0}}, +{(unsigned char*)"Xi", {206, 158, 0}}, +{(unsigned char*)"Xopf", {240, 157, 149, 143, 0}}, +{(unsigned char*)"Xscr", {240, 157, 146, 179, 0}}, +{(unsigned char*)"YAcy", {208, 175, 0}}, +{(unsigned char*)"YIcy", {208, 135, 0}}, +{(unsigned char*)"YUcy", {208, 174, 0}}, +{(unsigned char*)"Yacute", {195, 157, 0}}, +{(unsigned char*)"Ycirc", {197, 182, 0}}, +{(unsigned char*)"Ycy", {208, 171, 0}}, +{(unsigned char*)"Yfr", {240, 157, 148, 156, 0}}, +{(unsigned char*)"Yopf", {240, 157, 149, 144, 0}}, +{(unsigned char*)"Yscr", {240, 157, 146, 180, 0}}, +{(unsigned char*)"Yuml", {197, 184, 0}}, +{(unsigned char*)"ZHcy", {208, 150, 0}}, +{(unsigned char*)"Zacute", {197, 185, 0}}, +{(unsigned char*)"Zcaron", {197, 189, 0}}, +{(unsigned char*)"Zcy", {208, 151, 0}}, +{(unsigned char*)"Zdot", {197, 187, 0}}, +{(unsigned char*)"ZeroWidthSpace", {226, 128, 139, 0}}, +{(unsigned char*)"Zeta", {206, 150, 0}}, +{(unsigned char*)"Zfr", {226, 132, 168, 0}}, +{(unsigned char*)"Zopf", {226, 132, 164, 0}}, +{(unsigned char*)"Zscr", {240, 157, 146, 181, 0}}, +{(unsigned char*)"aacute", {195, 161, 0}}, +{(unsigned char*)"abreve", {196, 131, 0}}, +{(unsigned char*)"ac", {226, 136, 190, 0}}, +{(unsigned char*)"acE", {226, 136, 190, 204, 179, 0}}, +{(unsigned char*)"acd", {226, 136, 191, 0}}, +{(unsigned char*)"acirc", {195, 162, 0}}, +{(unsigned char*)"acute", {194, 180, 0}}, +{(unsigned char*)"acy", {208, 176, 0}}, +{(unsigned char*)"aelig", {195, 166, 0}}, +{(unsigned char*)"af", {226, 129, 161, 0}}, +{(unsigned char*)"afr", {240, 157, 148, 158, 0}}, +{(unsigned char*)"agrave", {195, 160, 0}}, +{(unsigned char*)"alefsym", {226, 132, 181, 0}}, +{(unsigned char*)"aleph", {226, 132, 181, 0}}, +{(unsigned char*)"alpha", {206, 177, 0}}, +{(unsigned char*)"amacr", {196, 129, 0}}, +{(unsigned char*)"amalg", {226, 168, 191, 0}}, +{(unsigned char*)"amp", {38, 0}}, +{(unsigned char*)"and", {226, 136, 167, 0}}, +{(unsigned char*)"andand", {226, 169, 149, 0}}, +{(unsigned char*)"andd", {226, 169, 156, 0}}, +{(unsigned char*)"andslope", {226, 169, 152, 0}}, +{(unsigned char*)"andv", {226, 169, 154, 0}}, +{(unsigned char*)"ang", {226, 136, 160, 0}}, +{(unsigned char*)"ange", {226, 166, 164, 0}}, +{(unsigned char*)"angle", {226, 136, 160, 0}}, +{(unsigned char*)"angmsd", {226, 136, 161, 0}}, +{(unsigned char*)"angmsdaa", {226, 166, 168, 0}}, +{(unsigned char*)"angmsdab", {226, 166, 169, 0}}, +{(unsigned char*)"angmsdac", {226, 166, 170, 0}}, +{(unsigned char*)"angmsdad", {226, 166, 171, 0}}, +{(unsigned char*)"angmsdae", {226, 166, 172, 0}}, +{(unsigned char*)"angmsdaf", {226, 166, 173, 0}}, +{(unsigned char*)"angmsdag", {226, 166, 174, 0}}, +{(unsigned char*)"angmsdah", {226, 166, 175, 0}}, +{(unsigned char*)"angrt", {226, 136, 159, 0}}, +{(unsigned char*)"angrtvb", {226, 138, 190, 0}}, +{(unsigned char*)"angrtvbd", {226, 166, 157, 0}}, +{(unsigned char*)"angsph", {226, 136, 162, 0}}, +{(unsigned char*)"angst", {195, 133, 0}}, +{(unsigned char*)"angzarr", {226, 141, 188, 0}}, +{(unsigned char*)"aogon", {196, 133, 0}}, +{(unsigned char*)"aopf", {240, 157, 149, 146, 0}}, +{(unsigned char*)"ap", {226, 137, 136, 0}}, +{(unsigned char*)"apE", {226, 169, 176, 0}}, +{(unsigned char*)"apacir", {226, 169, 175, 0}}, +{(unsigned char*)"ape", {226, 137, 138, 0}}, +{(unsigned char*)"apid", {226, 137, 139, 0}}, +{(unsigned char*)"apos", {39, 0}}, +{(unsigned char*)"approx", {226, 137, 136, 0}}, +{(unsigned char*)"approxeq", {226, 137, 138, 0}}, +{(unsigned char*)"aring", {195, 165, 0}}, +{(unsigned char*)"ascr", {240, 157, 146, 182, 0}}, +{(unsigned char*)"ast", {42, 0}}, +{(unsigned char*)"asymp", {226, 137, 136, 0}}, +{(unsigned char*)"asympeq", {226, 137, 141, 0}}, +{(unsigned char*)"atilde", {195, 163, 0}}, +{(unsigned char*)"auml", {195, 164, 0}}, +{(unsigned char*)"awconint", {226, 136, 179, 0}}, +{(unsigned char*)"awint", {226, 168, 145, 0}}, +{(unsigned char*)"bNot", {226, 171, 173, 0}}, +{(unsigned char*)"backcong", {226, 137, 140, 0}}, +{(unsigned char*)"backepsilon", {207, 182, 0}}, +{(unsigned char*)"backprime", {226, 128, 181, 0}}, +{(unsigned char*)"backsim", {226, 136, 189, 0}}, +{(unsigned char*)"backsimeq", {226, 139, 141, 0}}, +{(unsigned char*)"barvee", {226, 138, 189, 0}}, +{(unsigned char*)"barwed", {226, 140, 133, 0}}, +{(unsigned char*)"barwedge", {226, 140, 133, 0}}, +{(unsigned char*)"bbrk", {226, 142, 181, 0}}, +{(unsigned char*)"bbrktbrk", {226, 142, 182, 0}}, +{(unsigned char*)"bcong", {226, 137, 140, 0}}, +{(unsigned char*)"bcy", {208, 177, 0}}, +{(unsigned char*)"bdquo", {226, 128, 158, 0}}, +{(unsigned char*)"becaus", {226, 136, 181, 0}}, +{(unsigned char*)"because", {226, 136, 181, 0}}, +{(unsigned char*)"bemptyv", {226, 166, 176, 0}}, +{(unsigned char*)"bepsi", {207, 182, 0}}, +{(unsigned char*)"bernou", {226, 132, 172, 0}}, +{(unsigned char*)"beta", {206, 178, 0}}, +{(unsigned char*)"beth", {226, 132, 182, 0}}, +{(unsigned char*)"between", {226, 137, 172, 0}}, +{(unsigned char*)"bfr", {240, 157, 148, 159, 0}}, +{(unsigned char*)"bigcap", {226, 139, 130, 0}}, +{(unsigned char*)"bigcirc", {226, 151, 175, 0}}, +{(unsigned char*)"bigcup", {226, 139, 131, 0}}, +{(unsigned char*)"bigodot", {226, 168, 128, 0}}, +{(unsigned char*)"bigoplus", {226, 168, 129, 0}}, +{(unsigned char*)"bigotimes", {226, 168, 130, 0}}, +{(unsigned char*)"bigsqcup", {226, 168, 134, 0}}, +{(unsigned char*)"bigstar", {226, 152, 133, 0}}, +{(unsigned char*)"bigtriangledown", {226, 150, 189, 0}}, +{(unsigned char*)"bigtriangleup", {226, 150, 179, 0}}, +{(unsigned char*)"biguplus", {226, 168, 132, 0}}, +{(unsigned char*)"bigvee", {226, 139, 129, 0}}, +{(unsigned char*)"bigwedge", {226, 139, 128, 0}}, +{(unsigned char*)"bkarow", {226, 164, 141, 0}}, +{(unsigned char*)"blacklozenge", {226, 167, 171, 0}}, +{(unsigned char*)"blacksquare", {226, 150, 170, 0}}, +{(unsigned char*)"blacktriangle", {226, 150, 180, 0}}, +{(unsigned char*)"blacktriangledown", {226, 150, 190, 0}}, +{(unsigned char*)"blacktriangleleft", {226, 151, 130, 0}}, +{(unsigned char*)"blacktriangleright", {226, 150, 184, 0}}, +{(unsigned char*)"blank", {226, 144, 163, 0}}, +{(unsigned char*)"blk12", {226, 150, 146, 0}}, +{(unsigned char*)"blk14", {226, 150, 145, 0}}, +{(unsigned char*)"blk34", {226, 150, 147, 0}}, +{(unsigned char*)"block", {226, 150, 136, 0}}, +{(unsigned char*)"bne", {61, 226, 131, 165, 0}}, +{(unsigned char*)"bnequiv", {226, 137, 161, 226, 131, 165, 0}}, +{(unsigned char*)"bnot", {226, 140, 144, 0}}, +{(unsigned char*)"bopf", {240, 157, 149, 147, 0}}, +{(unsigned char*)"bot", {226, 138, 165, 0}}, +{(unsigned char*)"bottom", {226, 138, 165, 0}}, +{(unsigned char*)"bowtie", {226, 139, 136, 0}}, +{(unsigned char*)"boxDL", {226, 149, 151, 0}}, +{(unsigned char*)"boxDR", {226, 149, 148, 0}}, +{(unsigned char*)"boxDl", {226, 149, 150, 0}}, +{(unsigned char*)"boxDr", {226, 149, 147, 0}}, +{(unsigned char*)"boxH", {226, 149, 144, 0}}, +{(unsigned char*)"boxHD", {226, 149, 166, 0}}, +{(unsigned char*)"boxHU", {226, 149, 169, 0}}, +{(unsigned char*)"boxHd", {226, 149, 164, 0}}, +{(unsigned char*)"boxHu", {226, 149, 167, 0}}, +{(unsigned char*)"boxUL", {226, 149, 157, 0}}, +{(unsigned char*)"boxUR", {226, 149, 154, 0}}, +{(unsigned char*)"boxUl", {226, 149, 156, 0}}, +{(unsigned char*)"boxUr", {226, 149, 153, 0}}, +{(unsigned char*)"boxV", {226, 149, 145, 0}}, +{(unsigned char*)"boxVH", {226, 149, 172, 0}}, +{(unsigned char*)"boxVL", {226, 149, 163, 0}}, +{(unsigned char*)"boxVR", {226, 149, 160, 0}}, +{(unsigned char*)"boxVh", {226, 149, 171, 0}}, +{(unsigned char*)"boxVl", {226, 149, 162, 0}}, +{(unsigned char*)"boxVr", {226, 149, 159, 0}}, +{(unsigned char*)"boxbox", {226, 167, 137, 0}}, +{(unsigned char*)"boxdL", {226, 149, 149, 0}}, +{(unsigned char*)"boxdR", {226, 149, 146, 0}}, +{(unsigned char*)"boxdl", {226, 148, 144, 0}}, +{(unsigned char*)"boxdr", {226, 148, 140, 0}}, +{(unsigned char*)"boxh", {226, 148, 128, 0}}, +{(unsigned char*)"boxhD", {226, 149, 165, 0}}, +{(unsigned char*)"boxhU", {226, 149, 168, 0}}, +{(unsigned char*)"boxhd", {226, 148, 172, 0}}, +{(unsigned char*)"boxhu", {226, 148, 180, 0}}, +{(unsigned char*)"boxminus", {226, 138, 159, 0}}, +{(unsigned char*)"boxplus", {226, 138, 158, 0}}, +{(unsigned char*)"boxtimes", {226, 138, 160, 0}}, +{(unsigned char*)"boxuL", {226, 149, 155, 0}}, +{(unsigned char*)"boxuR", {226, 149, 152, 0}}, +{(unsigned char*)"boxul", {226, 148, 152, 0}}, +{(unsigned char*)"boxur", {226, 148, 148, 0}}, +{(unsigned char*)"boxv", {226, 148, 130, 0}}, +{(unsigned char*)"boxvH", {226, 149, 170, 0}}, +{(unsigned char*)"boxvL", {226, 149, 161, 0}}, +{(unsigned char*)"boxvR", {226, 149, 158, 0}}, +{(unsigned char*)"boxvh", {226, 148, 188, 0}}, +{(unsigned char*)"boxvl", {226, 148, 164, 0}}, +{(unsigned char*)"boxvr", {226, 148, 156, 0}}, +{(unsigned char*)"bprime", {226, 128, 181, 0}}, +{(unsigned char*)"breve", {203, 152, 0}}, +{(unsigned char*)"brvbar", {194, 166, 0}}, +{(unsigned char*)"bscr", {240, 157, 146, 183, 0}}, +{(unsigned char*)"bsemi", {226, 129, 143, 0}}, +{(unsigned char*)"bsim", {226, 136, 189, 0}}, +{(unsigned char*)"bsime", {226, 139, 141, 0}}, +{(unsigned char*)"bsol", {92, 0}}, +{(unsigned char*)"bsolb", {226, 167, 133, 0}}, +{(unsigned char*)"bsolhsub", {226, 159, 136, 0}}, +{(unsigned char*)"bull", {226, 128, 162, 0}}, +{(unsigned char*)"bullet", {226, 128, 162, 0}}, +{(unsigned char*)"bump", {226, 137, 142, 0}}, +{(unsigned char*)"bumpE", {226, 170, 174, 0}}, +{(unsigned char*)"bumpe", {226, 137, 143, 0}}, +{(unsigned char*)"bumpeq", {226, 137, 143, 0}}, +{(unsigned char*)"cacute", {196, 135, 0}}, +{(unsigned char*)"cap", {226, 136, 169, 0}}, +{(unsigned char*)"capand", {226, 169, 132, 0}}, +{(unsigned char*)"capbrcup", {226, 169, 137, 0}}, +{(unsigned char*)"capcap", {226, 169, 139, 0}}, +{(unsigned char*)"capcup", {226, 169, 135, 0}}, +{(unsigned char*)"capdot", {226, 169, 128, 0}}, +{(unsigned char*)"caps", {226, 136, 169, 239, 184, 128, 0}}, +{(unsigned char*)"caret", {226, 129, 129, 0}}, +{(unsigned char*)"caron", {203, 135, 0}}, +{(unsigned char*)"ccaps", {226, 169, 141, 0}}, +{(unsigned char*)"ccaron", {196, 141, 0}}, +{(unsigned char*)"ccedil", {195, 167, 0}}, +{(unsigned char*)"ccirc", {196, 137, 0}}, +{(unsigned char*)"ccups", {226, 169, 140, 0}}, +{(unsigned char*)"ccupssm", {226, 169, 144, 0}}, +{(unsigned char*)"cdot", {196, 139, 0}}, +{(unsigned char*)"cedil", {194, 184, 0}}, +{(unsigned char*)"cemptyv", {226, 166, 178, 0}}, +{(unsigned char*)"cent", {194, 162, 0}}, +{(unsigned char*)"centerdot", {194, 183, 0}}, +{(unsigned char*)"cfr", {240, 157, 148, 160, 0}}, +{(unsigned char*)"chcy", {209, 135, 0}}, +{(unsigned char*)"check", {226, 156, 147, 0}}, +{(unsigned char*)"checkmark", {226, 156, 147, 0}}, +{(unsigned char*)"chi", {207, 135, 0}}, +{(unsigned char*)"cir", {226, 151, 139, 0}}, +{(unsigned char*)"cirE", {226, 167, 131, 0}}, +{(unsigned char*)"circ", {203, 134, 0}}, +{(unsigned char*)"circeq", {226, 137, 151, 0}}, +{(unsigned char*)"circlearrowleft", {226, 134, 186, 0}}, +{(unsigned char*)"circlearrowright", {226, 134, 187, 0}}, +{(unsigned char*)"circledR", {194, 174, 0}}, +{(unsigned char*)"circledS", {226, 147, 136, 0}}, +{(unsigned char*)"circledast", {226, 138, 155, 0}}, +{(unsigned char*)"circledcirc", {226, 138, 154, 0}}, +{(unsigned char*)"circleddash", {226, 138, 157, 0}}, +{(unsigned char*)"cire", {226, 137, 151, 0}}, +{(unsigned char*)"cirfnint", {226, 168, 144, 0}}, +{(unsigned char*)"cirmid", {226, 171, 175, 0}}, +{(unsigned char*)"cirscir", {226, 167, 130, 0}}, +{(unsigned char*)"clubs", {226, 153, 163, 0}}, +{(unsigned char*)"clubsuit", {226, 153, 163, 0}}, +{(unsigned char*)"colon", {58, 0}}, +{(unsigned char*)"colone", {226, 137, 148, 0}}, +{(unsigned char*)"coloneq", {226, 137, 148, 0}}, +{(unsigned char*)"comma", {44, 0}}, +{(unsigned char*)"commat", {64, 0}}, +{(unsigned char*)"comp", {226, 136, 129, 0}}, +{(unsigned char*)"compfn", {226, 136, 152, 0}}, +{(unsigned char*)"complement", {226, 136, 129, 0}}, +{(unsigned char*)"complexes", {226, 132, 130, 0}}, +{(unsigned char*)"cong", {226, 137, 133, 0}}, +{(unsigned char*)"congdot", {226, 169, 173, 0}}, +{(unsigned char*)"conint", {226, 136, 174, 0}}, +{(unsigned char*)"copf", {240, 157, 149, 148, 0}}, +{(unsigned char*)"coprod", {226, 136, 144, 0}}, +{(unsigned char*)"copy", {194, 169, 0}}, +{(unsigned char*)"copysr", {226, 132, 151, 0}}, +{(unsigned char*)"crarr", {226, 134, 181, 0}}, +{(unsigned char*)"cross", {226, 156, 151, 0}}, +{(unsigned char*)"cscr", {240, 157, 146, 184, 0}}, +{(unsigned char*)"csub", {226, 171, 143, 0}}, +{(unsigned char*)"csube", {226, 171, 145, 0}}, +{(unsigned char*)"csup", {226, 171, 144, 0}}, +{(unsigned char*)"csupe", {226, 171, 146, 0}}, +{(unsigned char*)"ctdot", {226, 139, 175, 0}}, +{(unsigned char*)"cudarrl", {226, 164, 184, 0}}, +{(unsigned char*)"cudarrr", {226, 164, 181, 0}}, +{(unsigned char*)"cuepr", {226, 139, 158, 0}}, +{(unsigned char*)"cuesc", {226, 139, 159, 0}}, +{(unsigned char*)"cularr", {226, 134, 182, 0}}, +{(unsigned char*)"cularrp", {226, 164, 189, 0}}, +{(unsigned char*)"cup", {226, 136, 170, 0}}, +{(unsigned char*)"cupbrcap", {226, 169, 136, 0}}, +{(unsigned char*)"cupcap", {226, 169, 134, 0}}, +{(unsigned char*)"cupcup", {226, 169, 138, 0}}, +{(unsigned char*)"cupdot", {226, 138, 141, 0}}, +{(unsigned char*)"cupor", {226, 169, 133, 0}}, +{(unsigned char*)"cups", {226, 136, 170, 239, 184, 128, 0}}, +{(unsigned char*)"curarr", {226, 134, 183, 0}}, +{(unsigned char*)"curarrm", {226, 164, 188, 0}}, +{(unsigned char*)"curlyeqprec", {226, 139, 158, 0}}, +{(unsigned char*)"curlyeqsucc", {226, 139, 159, 0}}, +{(unsigned char*)"curlyvee", {226, 139, 142, 0}}, +{(unsigned char*)"curlywedge", {226, 139, 143, 0}}, +{(unsigned char*)"curren", {194, 164, 0}}, +{(unsigned char*)"curvearrowleft", {226, 134, 182, 0}}, +{(unsigned char*)"curvearrowright", {226, 134, 183, 0}}, +{(unsigned char*)"cuvee", {226, 139, 142, 0}}, +{(unsigned char*)"cuwed", {226, 139, 143, 0}}, +{(unsigned char*)"cwconint", {226, 136, 178, 0}}, +{(unsigned char*)"cwint", {226, 136, 177, 0}}, +{(unsigned char*)"cylcty", {226, 140, 173, 0}}, +{(unsigned char*)"dArr", {226, 135, 147, 0}}, +{(unsigned char*)"dHar", {226, 165, 165, 0}}, +{(unsigned char*)"dagger", {226, 128, 160, 0}}, +{(unsigned char*)"daleth", {226, 132, 184, 0}}, +{(unsigned char*)"darr", {226, 134, 147, 0}}, +{(unsigned char*)"dash", {226, 128, 144, 0}}, +{(unsigned char*)"dashv", {226, 138, 163, 0}}, +{(unsigned char*)"dbkarow", {226, 164, 143, 0}}, +{(unsigned char*)"dblac", {203, 157, 0}}, +{(unsigned char*)"dcaron", {196, 143, 0}}, +{(unsigned char*)"dcy", {208, 180, 0}}, +{(unsigned char*)"dd", {226, 133, 134, 0}}, +{(unsigned char*)"ddagger", {226, 128, 161, 0}}, +{(unsigned char*)"ddarr", {226, 135, 138, 0}}, +{(unsigned char*)"ddotseq", {226, 169, 183, 0}}, +{(unsigned char*)"deg", {194, 176, 0}}, +{(unsigned char*)"delta", {206, 180, 0}}, +{(unsigned char*)"demptyv", {226, 166, 177, 0}}, +{(unsigned char*)"dfisht", {226, 165, 191, 0}}, +{(unsigned char*)"dfr", {240, 157, 148, 161, 0}}, +{(unsigned char*)"dharl", {226, 135, 131, 0}}, +{(unsigned char*)"dharr", {226, 135, 130, 0}}, +{(unsigned char*)"diam", {226, 139, 132, 0}}, +{(unsigned char*)"diamond", {226, 139, 132, 0}}, +{(unsigned char*)"diamondsuit", {226, 153, 166, 0}}, +{(unsigned char*)"diams", {226, 153, 166, 0}}, +{(unsigned char*)"die", {194, 168, 0}}, +{(unsigned char*)"digamma", {207, 157, 0}}, +{(unsigned char*)"disin", {226, 139, 178, 0}}, +{(unsigned char*)"div", {195, 183, 0}}, +{(unsigned char*)"divide", {195, 183, 0}}, +{(unsigned char*)"divideontimes", {226, 139, 135, 0}}, +{(unsigned char*)"divonx", {226, 139, 135, 0}}, +{(unsigned char*)"djcy", {209, 146, 0}}, +{(unsigned char*)"dlcorn", {226, 140, 158, 0}}, +{(unsigned char*)"dlcrop", {226, 140, 141, 0}}, +{(unsigned char*)"dollar", {36, 0}}, +{(unsigned char*)"dopf", {240, 157, 149, 149, 0}}, +{(unsigned char*)"dot", {203, 153, 0}}, +{(unsigned char*)"doteq", {226, 137, 144, 0}}, +{(unsigned char*)"doteqdot", {226, 137, 145, 0}}, +{(unsigned char*)"dotminus", {226, 136, 184, 0}}, +{(unsigned char*)"dotplus", {226, 136, 148, 0}}, +{(unsigned char*)"dotsquare", {226, 138, 161, 0}}, +{(unsigned char*)"doublebarwedge", {226, 140, 134, 0}}, +{(unsigned char*)"downarrow", {226, 134, 147, 0}}, +{(unsigned char*)"downdownarrows", {226, 135, 138, 0}}, +{(unsigned char*)"downharpoonleft", {226, 135, 131, 0}}, +{(unsigned char*)"downharpoonright", {226, 135, 130, 0}}, +{(unsigned char*)"drbkarow", {226, 164, 144, 0}}, +{(unsigned char*)"drcorn", {226, 140, 159, 0}}, +{(unsigned char*)"drcrop", {226, 140, 140, 0}}, +{(unsigned char*)"dscr", {240, 157, 146, 185, 0}}, +{(unsigned char*)"dscy", {209, 149, 0}}, +{(unsigned char*)"dsol", {226, 167, 182, 0}}, +{(unsigned char*)"dstrok", {196, 145, 0}}, +{(unsigned char*)"dtdot", {226, 139, 177, 0}}, +{(unsigned char*)"dtri", {226, 150, 191, 0}}, +{(unsigned char*)"dtrif", {226, 150, 190, 0}}, +{(unsigned char*)"duarr", {226, 135, 181, 0}}, +{(unsigned char*)"duhar", {226, 165, 175, 0}}, +{(unsigned char*)"dwangle", {226, 166, 166, 0}}, +{(unsigned char*)"dzcy", {209, 159, 0}}, +{(unsigned char*)"dzigrarr", {226, 159, 191, 0}}, +{(unsigned char*)"eDDot", {226, 169, 183, 0}}, +{(unsigned char*)"eDot", {226, 137, 145, 0}}, +{(unsigned char*)"eacute", {195, 169, 0}}, +{(unsigned char*)"easter", {226, 169, 174, 0}}, +{(unsigned char*)"ecaron", {196, 155, 0}}, +{(unsigned char*)"ecir", {226, 137, 150, 0}}, +{(unsigned char*)"ecirc", {195, 170, 0}}, +{(unsigned char*)"ecolon", {226, 137, 149, 0}}, +{(unsigned char*)"ecy", {209, 141, 0}}, +{(unsigned char*)"edot", {196, 151, 0}}, +{(unsigned char*)"ee", {226, 133, 135, 0}}, +{(unsigned char*)"efDot", {226, 137, 146, 0}}, +{(unsigned char*)"efr", {240, 157, 148, 162, 0}}, +{(unsigned char*)"eg", {226, 170, 154, 0}}, +{(unsigned char*)"egrave", {195, 168, 0}}, +{(unsigned char*)"egs", {226, 170, 150, 0}}, +{(unsigned char*)"egsdot", {226, 170, 152, 0}}, +{(unsigned char*)"el", {226, 170, 153, 0}}, +{(unsigned char*)"elinters", {226, 143, 167, 0}}, +{(unsigned char*)"ell", {226, 132, 147, 0}}, +{(unsigned char*)"els", {226, 170, 149, 0}}, +{(unsigned char*)"elsdot", {226, 170, 151, 0}}, +{(unsigned char*)"emacr", {196, 147, 0}}, +{(unsigned char*)"empty", {226, 136, 133, 0}}, +{(unsigned char*)"emptyset", {226, 136, 133, 0}}, +{(unsigned char*)"emptyv", {226, 136, 133, 0}}, +{(unsigned char*)"emsp", {226, 128, 131, 0}}, +{(unsigned char*)"emsp13", {226, 128, 132, 0}}, +{(unsigned char*)"emsp14", {226, 128, 133, 0}}, +{(unsigned char*)"eng", {197, 139, 0}}, +{(unsigned char*)"ensp", {226, 128, 130, 0}}, +{(unsigned char*)"eogon", {196, 153, 0}}, +{(unsigned char*)"eopf", {240, 157, 149, 150, 0}}, +{(unsigned char*)"epar", {226, 139, 149, 0}}, +{(unsigned char*)"eparsl", {226, 167, 163, 0}}, +{(unsigned char*)"eplus", {226, 169, 177, 0}}, +{(unsigned char*)"epsi", {206, 181, 0}}, +{(unsigned char*)"epsilon", {206, 181, 0}}, +{(unsigned char*)"epsiv", {207, 181, 0}}, +{(unsigned char*)"eqcirc", {226, 137, 150, 0}}, +{(unsigned char*)"eqcolon", {226, 137, 149, 0}}, +{(unsigned char*)"eqsim", {226, 137, 130, 0}}, +{(unsigned char*)"eqslantgtr", {226, 170, 150, 0}}, +{(unsigned char*)"eqslantless", {226, 170, 149, 0}}, +{(unsigned char*)"equals", {61, 0}}, +{(unsigned char*)"equest", {226, 137, 159, 0}}, +{(unsigned char*)"equiv", {226, 137, 161, 0}}, +{(unsigned char*)"equivDD", {226, 169, 184, 0}}, +{(unsigned char*)"eqvparsl", {226, 167, 165, 0}}, +{(unsigned char*)"erDot", {226, 137, 147, 0}}, +{(unsigned char*)"erarr", {226, 165, 177, 0}}, +{(unsigned char*)"escr", {226, 132, 175, 0}}, +{(unsigned char*)"esdot", {226, 137, 144, 0}}, +{(unsigned char*)"esim", {226, 137, 130, 0}}, +{(unsigned char*)"eta", {206, 183, 0}}, +{(unsigned char*)"eth", {195, 176, 0}}, +{(unsigned char*)"euml", {195, 171, 0}}, +{(unsigned char*)"euro", {226, 130, 172, 0}}, +{(unsigned char*)"excl", {33, 0}}, +{(unsigned char*)"exist", {226, 136, 131, 0}}, +{(unsigned char*)"expectation", {226, 132, 176, 0}}, +{(unsigned char*)"exponentiale", {226, 133, 135, 0}}, +{(unsigned char*)"fallingdotseq", {226, 137, 146, 0}}, +{(unsigned char*)"fcy", {209, 132, 0}}, +{(unsigned char*)"female", {226, 153, 128, 0}}, +{(unsigned char*)"ffilig", {239, 172, 131, 0}}, +{(unsigned char*)"fflig", {239, 172, 128, 0}}, +{(unsigned char*)"ffllig", {239, 172, 132, 0}}, +{(unsigned char*)"ffr", {240, 157, 148, 163, 0}}, +{(unsigned char*)"filig", {239, 172, 129, 0}}, +{(unsigned char*)"fjlig", {102, 106, 0}}, +{(unsigned char*)"flat", {226, 153, 173, 0}}, +{(unsigned char*)"fllig", {239, 172, 130, 0}}, +{(unsigned char*)"fltns", {226, 150, 177, 0}}, +{(unsigned char*)"fnof", {198, 146, 0}}, +{(unsigned char*)"fopf", {240, 157, 149, 151, 0}}, +{(unsigned char*)"forall", {226, 136, 128, 0}}, +{(unsigned char*)"fork", {226, 139, 148, 0}}, +{(unsigned char*)"forkv", {226, 171, 153, 0}}, +{(unsigned char*)"fpartint", {226, 168, 141, 0}}, +{(unsigned char*)"frac12", {194, 189, 0}}, +{(unsigned char*)"frac13", {226, 133, 147, 0}}, +{(unsigned char*)"frac14", {194, 188, 0}}, +{(unsigned char*)"frac15", {226, 133, 149, 0}}, +{(unsigned char*)"frac16", {226, 133, 153, 0}}, +{(unsigned char*)"frac18", {226, 133, 155, 0}}, +{(unsigned char*)"frac23", {226, 133, 148, 0}}, +{(unsigned char*)"frac25", {226, 133, 150, 0}}, +{(unsigned char*)"frac34", {194, 190, 0}}, +{(unsigned char*)"frac35", {226, 133, 151, 0}}, +{(unsigned char*)"frac38", {226, 133, 156, 0}}, +{(unsigned char*)"frac45", {226, 133, 152, 0}}, +{(unsigned char*)"frac56", {226, 133, 154, 0}}, +{(unsigned char*)"frac58", {226, 133, 157, 0}}, +{(unsigned char*)"frac78", {226, 133, 158, 0}}, +{(unsigned char*)"frasl", {226, 129, 132, 0}}, +{(unsigned char*)"frown", {226, 140, 162, 0}}, +{(unsigned char*)"fscr", {240, 157, 146, 187, 0}}, +{(unsigned char*)"gE", {226, 137, 167, 0}}, +{(unsigned char*)"gEl", {226, 170, 140, 0}}, +{(unsigned char*)"gacute", {199, 181, 0}}, +{(unsigned char*)"gamma", {206, 179, 0}}, +{(unsigned char*)"gammad", {207, 157, 0}}, +{(unsigned char*)"gap", {226, 170, 134, 0}}, +{(unsigned char*)"gbreve", {196, 159, 0}}, +{(unsigned char*)"gcirc", {196, 157, 0}}, +{(unsigned char*)"gcy", {208, 179, 0}}, +{(unsigned char*)"gdot", {196, 161, 0}}, +{(unsigned char*)"ge", {226, 137, 165, 0}}, +{(unsigned char*)"gel", {226, 139, 155, 0}}, +{(unsigned char*)"geq", {226, 137, 165, 0}}, +{(unsigned char*)"geqq", {226, 137, 167, 0}}, +{(unsigned char*)"geqslant", {226, 169, 190, 0}}, +{(unsigned char*)"ges", {226, 169, 190, 0}}, +{(unsigned char*)"gescc", {226, 170, 169, 0}}, +{(unsigned char*)"gesdot", {226, 170, 128, 0}}, +{(unsigned char*)"gesdoto", {226, 170, 130, 0}}, +{(unsigned char*)"gesdotol", {226, 170, 132, 0}}, +{(unsigned char*)"gesl", {226, 139, 155, 239, 184, 128, 0}}, +{(unsigned char*)"gesles", {226, 170, 148, 0}}, +{(unsigned char*)"gfr", {240, 157, 148, 164, 0}}, +{(unsigned char*)"gg", {226, 137, 171, 0}}, +{(unsigned char*)"ggg", {226, 139, 153, 0}}, +{(unsigned char*)"gimel", {226, 132, 183, 0}}, +{(unsigned char*)"gjcy", {209, 147, 0}}, +{(unsigned char*)"gl", {226, 137, 183, 0}}, +{(unsigned char*)"glE", {226, 170, 146, 0}}, +{(unsigned char*)"gla", {226, 170, 165, 0}}, +{(unsigned char*)"glj", {226, 170, 164, 0}}, +{(unsigned char*)"gnE", {226, 137, 169, 0}}, +{(unsigned char*)"gnap", {226, 170, 138, 0}}, +{(unsigned char*)"gnapprox", {226, 170, 138, 0}}, +{(unsigned char*)"gne", {226, 170, 136, 0}}, +{(unsigned char*)"gneq", {226, 170, 136, 0}}, +{(unsigned char*)"gneqq", {226, 137, 169, 0}}, +{(unsigned char*)"gnsim", {226, 139, 167, 0}}, +{(unsigned char*)"gopf", {240, 157, 149, 152, 0}}, +{(unsigned char*)"grave", {96, 0}}, +{(unsigned char*)"gscr", {226, 132, 138, 0}}, +{(unsigned char*)"gsim", {226, 137, 179, 0}}, +{(unsigned char*)"gsime", {226, 170, 142, 0}}, +{(unsigned char*)"gsiml", {226, 170, 144, 0}}, +{(unsigned char*)"gt", {62, 0}}, +{(unsigned char*)"gtcc", {226, 170, 167, 0}}, +{(unsigned char*)"gtcir", {226, 169, 186, 0}}, +{(unsigned char*)"gtdot", {226, 139, 151, 0}}, +{(unsigned char*)"gtlPar", {226, 166, 149, 0}}, +{(unsigned char*)"gtquest", {226, 169, 188, 0}}, +{(unsigned char*)"gtrapprox", {226, 170, 134, 0}}, +{(unsigned char*)"gtrarr", {226, 165, 184, 0}}, +{(unsigned char*)"gtrdot", {226, 139, 151, 0}}, +{(unsigned char*)"gtreqless", {226, 139, 155, 0}}, +{(unsigned char*)"gtreqqless", {226, 170, 140, 0}}, +{(unsigned char*)"gtrless", {226, 137, 183, 0}}, +{(unsigned char*)"gtrsim", {226, 137, 179, 0}}, +{(unsigned char*)"gvertneqq", {226, 137, 169, 239, 184, 128, 0}}, +{(unsigned char*)"gvnE", {226, 137, 169, 239, 184, 128, 0}}, +{(unsigned char*)"hArr", {226, 135, 148, 0}}, +{(unsigned char*)"hairsp", {226, 128, 138, 0}}, +{(unsigned char*)"half", {194, 189, 0}}, +{(unsigned char*)"hamilt", {226, 132, 139, 0}}, +{(unsigned char*)"hardcy", {209, 138, 0}}, +{(unsigned char*)"harr", {226, 134, 148, 0}}, +{(unsigned char*)"harrcir", {226, 165, 136, 0}}, +{(unsigned char*)"harrw", {226, 134, 173, 0}}, +{(unsigned char*)"hbar", {226, 132, 143, 0}}, +{(unsigned char*)"hcirc", {196, 165, 0}}, +{(unsigned char*)"hearts", {226, 153, 165, 0}}, +{(unsigned char*)"heartsuit", {226, 153, 165, 0}}, +{(unsigned char*)"hellip", {226, 128, 166, 0}}, +{(unsigned char*)"hercon", {226, 138, 185, 0}}, +{(unsigned char*)"hfr", {240, 157, 148, 165, 0}}, +{(unsigned char*)"hksearow", {226, 164, 165, 0}}, +{(unsigned char*)"hkswarow", {226, 164, 166, 0}}, +{(unsigned char*)"hoarr", {226, 135, 191, 0}}, +{(unsigned char*)"homtht", {226, 136, 187, 0}}, +{(unsigned char*)"hookleftarrow", {226, 134, 169, 0}}, +{(unsigned char*)"hookrightarrow", {226, 134, 170, 0}}, +{(unsigned char*)"hopf", {240, 157, 149, 153, 0}}, +{(unsigned char*)"horbar", {226, 128, 149, 0}}, +{(unsigned char*)"hscr", {240, 157, 146, 189, 0}}, +{(unsigned char*)"hslash", {226, 132, 143, 0}}, +{(unsigned char*)"hstrok", {196, 167, 0}}, +{(unsigned char*)"hybull", {226, 129, 131, 0}}, +{(unsigned char*)"hyphen", {226, 128, 144, 0}}, +{(unsigned char*)"iacute", {195, 173, 0}}, +{(unsigned char*)"ic", {226, 129, 163, 0}}, +{(unsigned char*)"icirc", {195, 174, 0}}, +{(unsigned char*)"icy", {208, 184, 0}}, +{(unsigned char*)"iecy", {208, 181, 0}}, +{(unsigned char*)"iexcl", {194, 161, 0}}, +{(unsigned char*)"iff", {226, 135, 148, 0}}, +{(unsigned char*)"ifr", {240, 157, 148, 166, 0}}, +{(unsigned char*)"igrave", {195, 172, 0}}, +{(unsigned char*)"ii", {226, 133, 136, 0}}, +{(unsigned char*)"iiiint", {226, 168, 140, 0}}, +{(unsigned char*)"iiint", {226, 136, 173, 0}}, +{(unsigned char*)"iinfin", {226, 167, 156, 0}}, +{(unsigned char*)"iiota", {226, 132, 169, 0}}, +{(unsigned char*)"ijlig", {196, 179, 0}}, +{(unsigned char*)"imacr", {196, 171, 0}}, +{(unsigned char*)"image", {226, 132, 145, 0}}, +{(unsigned char*)"imagline", {226, 132, 144, 0}}, +{(unsigned char*)"imagpart", {226, 132, 145, 0}}, +{(unsigned char*)"imath", {196, 177, 0}}, +{(unsigned char*)"imof", {226, 138, 183, 0}}, +{(unsigned char*)"imped", {198, 181, 0}}, +{(unsigned char*)"in", {226, 136, 136, 0}}, +{(unsigned char*)"incare", {226, 132, 133, 0}}, +{(unsigned char*)"infin", {226, 136, 158, 0}}, +{(unsigned char*)"infintie", {226, 167, 157, 0}}, +{(unsigned char*)"inodot", {196, 177, 0}}, +{(unsigned char*)"int", {226, 136, 171, 0}}, +{(unsigned char*)"intcal", {226, 138, 186, 0}}, +{(unsigned char*)"integers", {226, 132, 164, 0}}, +{(unsigned char*)"intercal", {226, 138, 186, 0}}, +{(unsigned char*)"intlarhk", {226, 168, 151, 0}}, +{(unsigned char*)"intprod", {226, 168, 188, 0}}, +{(unsigned char*)"iocy", {209, 145, 0}}, +{(unsigned char*)"iogon", {196, 175, 0}}, +{(unsigned char*)"iopf", {240, 157, 149, 154, 0}}, +{(unsigned char*)"iota", {206, 185, 0}}, +{(unsigned char*)"iprod", {226, 168, 188, 0}}, +{(unsigned char*)"iquest", {194, 191, 0}}, +{(unsigned char*)"iscr", {240, 157, 146, 190, 0}}, +{(unsigned char*)"isin", {226, 136, 136, 0}}, +{(unsigned char*)"isinE", {226, 139, 185, 0}}, +{(unsigned char*)"isindot", {226, 139, 181, 0}}, +{(unsigned char*)"isins", {226, 139, 180, 0}}, +{(unsigned char*)"isinsv", {226, 139, 179, 0}}, +{(unsigned char*)"isinv", {226, 136, 136, 0}}, +{(unsigned char*)"it", {226, 129, 162, 0}}, +{(unsigned char*)"itilde", {196, 169, 0}}, +{(unsigned char*)"iukcy", {209, 150, 0}}, +{(unsigned char*)"iuml", {195, 175, 0}}, +{(unsigned char*)"jcirc", {196, 181, 0}}, +{(unsigned char*)"jcy", {208, 185, 0}}, +{(unsigned char*)"jfr", {240, 157, 148, 167, 0}}, +{(unsigned char*)"jmath", {200, 183, 0}}, +{(unsigned char*)"jopf", {240, 157, 149, 155, 0}}, +{(unsigned char*)"jscr", {240, 157, 146, 191, 0}}, +{(unsigned char*)"jsercy", {209, 152, 0}}, +{(unsigned char*)"jukcy", {209, 148, 0}}, +{(unsigned char*)"kappa", {206, 186, 0}}, +{(unsigned char*)"kappav", {207, 176, 0}}, +{(unsigned char*)"kcedil", {196, 183, 0}}, +{(unsigned char*)"kcy", {208, 186, 0}}, +{(unsigned char*)"kfr", {240, 157, 148, 168, 0}}, +{(unsigned char*)"kgreen", {196, 184, 0}}, +{(unsigned char*)"khcy", {209, 133, 0}}, +{(unsigned char*)"kjcy", {209, 156, 0}}, +{(unsigned char*)"kopf", {240, 157, 149, 156, 0}}, +{(unsigned char*)"kscr", {240, 157, 147, 128, 0}}, +{(unsigned char*)"lAarr", {226, 135, 154, 0}}, +{(unsigned char*)"lArr", {226, 135, 144, 0}}, +{(unsigned char*)"lAtail", {226, 164, 155, 0}}, +{(unsigned char*)"lBarr", {226, 164, 142, 0}}, +{(unsigned char*)"lE", {226, 137, 166, 0}}, +{(unsigned char*)"lEg", {226, 170, 139, 0}}, +{(unsigned char*)"lHar", {226, 165, 162, 0}}, +{(unsigned char*)"lacute", {196, 186, 0}}, +{(unsigned char*)"laemptyv", {226, 166, 180, 0}}, +{(unsigned char*)"lagran", {226, 132, 146, 0}}, +{(unsigned char*)"lambda", {206, 187, 0}}, +{(unsigned char*)"lang", {226, 159, 168, 0}}, +{(unsigned char*)"langd", {226, 166, 145, 0}}, +{(unsigned char*)"langle", {226, 159, 168, 0}}, +{(unsigned char*)"lap", {226, 170, 133, 0}}, +{(unsigned char*)"laquo", {194, 171, 0}}, +{(unsigned char*)"larr", {226, 134, 144, 0}}, +{(unsigned char*)"larrb", {226, 135, 164, 0}}, +{(unsigned char*)"larrbfs", {226, 164, 159, 0}}, +{(unsigned char*)"larrfs", {226, 164, 157, 0}}, +{(unsigned char*)"larrhk", {226, 134, 169, 0}}, +{(unsigned char*)"larrlp", {226, 134, 171, 0}}, +{(unsigned char*)"larrpl", {226, 164, 185, 0}}, +{(unsigned char*)"larrsim", {226, 165, 179, 0}}, +{(unsigned char*)"larrtl", {226, 134, 162, 0}}, +{(unsigned char*)"lat", {226, 170, 171, 0}}, +{(unsigned char*)"latail", {226, 164, 153, 0}}, +{(unsigned char*)"late", {226, 170, 173, 0}}, +{(unsigned char*)"lates", {226, 170, 173, 239, 184, 128, 0}}, +{(unsigned char*)"lbarr", {226, 164, 140, 0}}, +{(unsigned char*)"lbbrk", {226, 157, 178, 0}}, +{(unsigned char*)"lbrace", {123, 0}}, +{(unsigned char*)"lbrack", {91, 0}}, +{(unsigned char*)"lbrke", {226, 166, 139, 0}}, +{(unsigned char*)"lbrksld", {226, 166, 143, 0}}, +{(unsigned char*)"lbrkslu", {226, 166, 141, 0}}, +{(unsigned char*)"lcaron", {196, 190, 0}}, +{(unsigned char*)"lcedil", {196, 188, 0}}, +{(unsigned char*)"lceil", {226, 140, 136, 0}}, +{(unsigned char*)"lcub", {123, 0}}, +{(unsigned char*)"lcy", {208, 187, 0}}, +{(unsigned char*)"ldca", {226, 164, 182, 0}}, +{(unsigned char*)"ldquo", {226, 128, 156, 0}}, +{(unsigned char*)"ldquor", {226, 128, 158, 0}}, +{(unsigned char*)"ldrdhar", {226, 165, 167, 0}}, +{(unsigned char*)"ldrushar", {226, 165, 139, 0}}, +{(unsigned char*)"ldsh", {226, 134, 178, 0}}, +{(unsigned char*)"le", {226, 137, 164, 0}}, +{(unsigned char*)"leftarrow", {226, 134, 144, 0}}, +{(unsigned char*)"leftarrowtail", {226, 134, 162, 0}}, +{(unsigned char*)"leftharpoondown", {226, 134, 189, 0}}, +{(unsigned char*)"leftharpoonup", {226, 134, 188, 0}}, +{(unsigned char*)"leftleftarrows", {226, 135, 135, 0}}, +{(unsigned char*)"leftrightarrow", {226, 134, 148, 0}}, +{(unsigned char*)"leftrightarrows", {226, 135, 134, 0}}, +{(unsigned char*)"leftrightharpoons", {226, 135, 139, 0}}, +{(unsigned char*)"leftrightsquigarrow", {226, 134, 173, 0}}, +{(unsigned char*)"leftthreetimes", {226, 139, 139, 0}}, +{(unsigned char*)"leg", {226, 139, 154, 0}}, +{(unsigned char*)"leq", {226, 137, 164, 0}}, +{(unsigned char*)"leqq", {226, 137, 166, 0}}, +{(unsigned char*)"leqslant", {226, 169, 189, 0}}, +{(unsigned char*)"les", {226, 169, 189, 0}}, +{(unsigned char*)"lescc", {226, 170, 168, 0}}, +{(unsigned char*)"lesdot", {226, 169, 191, 0}}, +{(unsigned char*)"lesdoto", {226, 170, 129, 0}}, +{(unsigned char*)"lesdotor", {226, 170, 131, 0}}, +{(unsigned char*)"lesg", {226, 139, 154, 239, 184, 128, 0}}, +{(unsigned char*)"lesges", {226, 170, 147, 0}}, +{(unsigned char*)"lessapprox", {226, 170, 133, 0}}, +{(unsigned char*)"lessdot", {226, 139, 150, 0}}, +{(unsigned char*)"lesseqgtr", {226, 139, 154, 0}}, +{(unsigned char*)"lesseqqgtr", {226, 170, 139, 0}}, +{(unsigned char*)"lessgtr", {226, 137, 182, 0}}, +{(unsigned char*)"lesssim", {226, 137, 178, 0}}, +{(unsigned char*)"lfisht", {226, 165, 188, 0}}, +{(unsigned char*)"lfloor", {226, 140, 138, 0}}, +{(unsigned char*)"lfr", {240, 157, 148, 169, 0}}, +{(unsigned char*)"lg", {226, 137, 182, 0}}, +{(unsigned char*)"lgE", {226, 170, 145, 0}}, +{(unsigned char*)"lhard", {226, 134, 189, 0}}, +{(unsigned char*)"lharu", {226, 134, 188, 0}}, +{(unsigned char*)"lharul", {226, 165, 170, 0}}, +{(unsigned char*)"lhblk", {226, 150, 132, 0}}, +{(unsigned char*)"ljcy", {209, 153, 0}}, +{(unsigned char*)"ll", {226, 137, 170, 0}}, +{(unsigned char*)"llarr", {226, 135, 135, 0}}, +{(unsigned char*)"llcorner", {226, 140, 158, 0}}, +{(unsigned char*)"llhard", {226, 165, 171, 0}}, +{(unsigned char*)"lltri", {226, 151, 186, 0}}, +{(unsigned char*)"lmidot", {197, 128, 0}}, +{(unsigned char*)"lmoust", {226, 142, 176, 0}}, +{(unsigned char*)"lmoustache", {226, 142, 176, 0}}, +{(unsigned char*)"lnE", {226, 137, 168, 0}}, +{(unsigned char*)"lnap", {226, 170, 137, 0}}, +{(unsigned char*)"lnapprox", {226, 170, 137, 0}}, +{(unsigned char*)"lne", {226, 170, 135, 0}}, +{(unsigned char*)"lneq", {226, 170, 135, 0}}, +{(unsigned char*)"lneqq", {226, 137, 168, 0}}, +{(unsigned char*)"lnsim", {226, 139, 166, 0}}, +{(unsigned char*)"loang", {226, 159, 172, 0}}, +{(unsigned char*)"loarr", {226, 135, 189, 0}}, +{(unsigned char*)"lobrk", {226, 159, 166, 0}}, +{(unsigned char*)"longleftarrow", {226, 159, 181, 0}}, +{(unsigned char*)"longleftrightarrow", {226, 159, 183, 0}}, +{(unsigned char*)"longmapsto", {226, 159, 188, 0}}, +{(unsigned char*)"longrightarrow", {226, 159, 182, 0}}, +{(unsigned char*)"looparrowleft", {226, 134, 171, 0}}, +{(unsigned char*)"looparrowright", {226, 134, 172, 0}}, +{(unsigned char*)"lopar", {226, 166, 133, 0}}, +{(unsigned char*)"lopf", {240, 157, 149, 157, 0}}, +{(unsigned char*)"loplus", {226, 168, 173, 0}}, +{(unsigned char*)"lotimes", {226, 168, 180, 0}}, +{(unsigned char*)"lowast", {226, 136, 151, 0}}, +{(unsigned char*)"lowbar", {95, 0}}, +{(unsigned char*)"loz", {226, 151, 138, 0}}, +{(unsigned char*)"lozenge", {226, 151, 138, 0}}, +{(unsigned char*)"lozf", {226, 167, 171, 0}}, +{(unsigned char*)"lpar", {40, 0}}, +{(unsigned char*)"lparlt", {226, 166, 147, 0}}, +{(unsigned char*)"lrarr", {226, 135, 134, 0}}, +{(unsigned char*)"lrcorner", {226, 140, 159, 0}}, +{(unsigned char*)"lrhar", {226, 135, 139, 0}}, +{(unsigned char*)"lrhard", {226, 165, 173, 0}}, +{(unsigned char*)"lrm", {226, 128, 142, 0}}, +{(unsigned char*)"lrtri", {226, 138, 191, 0}}, +{(unsigned char*)"lsaquo", {226, 128, 185, 0}}, +{(unsigned char*)"lscr", {240, 157, 147, 129, 0}}, +{(unsigned char*)"lsh", {226, 134, 176, 0}}, +{(unsigned char*)"lsim", {226, 137, 178, 0}}, +{(unsigned char*)"lsime", {226, 170, 141, 0}}, +{(unsigned char*)"lsimg", {226, 170, 143, 0}}, +{(unsigned char*)"lsqb", {91, 0}}, +{(unsigned char*)"lsquo", {226, 128, 152, 0}}, +{(unsigned char*)"lsquor", {226, 128, 154, 0}}, +{(unsigned char*)"lstrok", {197, 130, 0}}, +{(unsigned char*)"lt", {60, 0}}, +{(unsigned char*)"ltcc", {226, 170, 166, 0}}, +{(unsigned char*)"ltcir", {226, 169, 185, 0}}, +{(unsigned char*)"ltdot", {226, 139, 150, 0}}, +{(unsigned char*)"lthree", {226, 139, 139, 0}}, +{(unsigned char*)"ltimes", {226, 139, 137, 0}}, +{(unsigned char*)"ltlarr", {226, 165, 182, 0}}, +{(unsigned char*)"ltquest", {226, 169, 187, 0}}, +{(unsigned char*)"ltrPar", {226, 166, 150, 0}}, +{(unsigned char*)"ltri", {226, 151, 131, 0}}, +{(unsigned char*)"ltrie", {226, 138, 180, 0}}, +{(unsigned char*)"ltrif", {226, 151, 130, 0}}, +{(unsigned char*)"lurdshar", {226, 165, 138, 0}}, +{(unsigned char*)"luruhar", {226, 165, 166, 0}}, +{(unsigned char*)"lvertneqq", {226, 137, 168, 239, 184, 128, 0}}, +{(unsigned char*)"lvnE", {226, 137, 168, 239, 184, 128, 0}}, +{(unsigned char*)"mDDot", {226, 136, 186, 0}}, +{(unsigned char*)"macr", {194, 175, 0}}, +{(unsigned char*)"male", {226, 153, 130, 0}}, +{(unsigned char*)"malt", {226, 156, 160, 0}}, +{(unsigned char*)"maltese", {226, 156, 160, 0}}, +{(unsigned char*)"map", {226, 134, 166, 0}}, +{(unsigned char*)"mapsto", {226, 134, 166, 0}}, +{(unsigned char*)"mapstodown", {226, 134, 167, 0}}, +{(unsigned char*)"mapstoleft", {226, 134, 164, 0}}, +{(unsigned char*)"mapstoup", {226, 134, 165, 0}}, +{(unsigned char*)"marker", {226, 150, 174, 0}}, +{(unsigned char*)"mcomma", {226, 168, 169, 0}}, +{(unsigned char*)"mcy", {208, 188, 0}}, +{(unsigned char*)"mdash", {226, 128, 148, 0}}, +{(unsigned char*)"measuredangle", {226, 136, 161, 0}}, +{(unsigned char*)"mfr", {240, 157, 148, 170, 0}}, +{(unsigned char*)"mho", {226, 132, 167, 0}}, +{(unsigned char*)"micro", {194, 181, 0}}, +{(unsigned char*)"mid", {226, 136, 163, 0}}, +{(unsigned char*)"midast", {42, 0}}, +{(unsigned char*)"midcir", {226, 171, 176, 0}}, +{(unsigned char*)"middot", {194, 183, 0}}, +{(unsigned char*)"minus", {226, 136, 146, 0}}, +{(unsigned char*)"minusb", {226, 138, 159, 0}}, +{(unsigned char*)"minusd", {226, 136, 184, 0}}, +{(unsigned char*)"minusdu", {226, 168, 170, 0}}, +{(unsigned char*)"mlcp", {226, 171, 155, 0}}, +{(unsigned char*)"mldr", {226, 128, 166, 0}}, +{(unsigned char*)"mnplus", {226, 136, 147, 0}}, +{(unsigned char*)"models", {226, 138, 167, 0}}, +{(unsigned char*)"mopf", {240, 157, 149, 158, 0}}, +{(unsigned char*)"mp", {226, 136, 147, 0}}, +{(unsigned char*)"mscr", {240, 157, 147, 130, 0}}, +{(unsigned char*)"mstpos", {226, 136, 190, 0}}, +{(unsigned char*)"mu", {206, 188, 0}}, +{(unsigned char*)"multimap", {226, 138, 184, 0}}, +{(unsigned char*)"mumap", {226, 138, 184, 0}}, +{(unsigned char*)"nGg", {226, 139, 153, 204, 184, 0}}, +{(unsigned char*)"nGt", {226, 137, 171, 226, 131, 146, 0}}, +{(unsigned char*)"nGtv", {226, 137, 171, 204, 184, 0}}, +{(unsigned char*)"nLeftarrow", {226, 135, 141, 0}}, +{(unsigned char*)"nLeftrightarrow", {226, 135, 142, 0}}, +{(unsigned char*)"nLl", {226, 139, 152, 204, 184, 0}}, +{(unsigned char*)"nLt", {226, 137, 170, 226, 131, 146, 0}}, +{(unsigned char*)"nLtv", {226, 137, 170, 204, 184, 0}}, +{(unsigned char*)"nRightarrow", {226, 135, 143, 0}}, +{(unsigned char*)"nVDash", {226, 138, 175, 0}}, +{(unsigned char*)"nVdash", {226, 138, 174, 0}}, +{(unsigned char*)"nabla", {226, 136, 135, 0}}, +{(unsigned char*)"nacute", {197, 132, 0}}, +{(unsigned char*)"nang", {226, 136, 160, 226, 131, 146, 0}}, +{(unsigned char*)"nap", {226, 137, 137, 0}}, +{(unsigned char*)"napE", {226, 169, 176, 204, 184, 0}}, +{(unsigned char*)"napid", {226, 137, 139, 204, 184, 0}}, +{(unsigned char*)"napos", {197, 137, 0}}, +{(unsigned char*)"napprox", {226, 137, 137, 0}}, +{(unsigned char*)"natur", {226, 153, 174, 0}}, +{(unsigned char*)"natural", {226, 153, 174, 0}}, +{(unsigned char*)"naturals", {226, 132, 149, 0}}, +{(unsigned char*)"nbsp", {194, 160, 0}}, +{(unsigned char*)"nbump", {226, 137, 142, 204, 184, 0}}, +{(unsigned char*)"nbumpe", {226, 137, 143, 204, 184, 0}}, +{(unsigned char*)"ncap", {226, 169, 131, 0}}, +{(unsigned char*)"ncaron", {197, 136, 0}}, +{(unsigned char*)"ncedil", {197, 134, 0}}, +{(unsigned char*)"ncong", {226, 137, 135, 0}}, +{(unsigned char*)"ncongdot", {226, 169, 173, 204, 184, 0}}, +{(unsigned char*)"ncup", {226, 169, 130, 0}}, +{(unsigned char*)"ncy", {208, 189, 0}}, +{(unsigned char*)"ndash", {226, 128, 147, 0}}, +{(unsigned char*)"ne", {226, 137, 160, 0}}, +{(unsigned char*)"neArr", {226, 135, 151, 0}}, +{(unsigned char*)"nearhk", {226, 164, 164, 0}}, +{(unsigned char*)"nearr", {226, 134, 151, 0}}, +{(unsigned char*)"nearrow", {226, 134, 151, 0}}, +{(unsigned char*)"nedot", {226, 137, 144, 204, 184, 0}}, +{(unsigned char*)"nequiv", {226, 137, 162, 0}}, +{(unsigned char*)"nesear", {226, 164, 168, 0}}, +{(unsigned char*)"nesim", {226, 137, 130, 204, 184, 0}}, +{(unsigned char*)"nexist", {226, 136, 132, 0}}, +{(unsigned char*)"nexists", {226, 136, 132, 0}}, +{(unsigned char*)"nfr", {240, 157, 148, 171, 0}}, +{(unsigned char*)"ngE", {226, 137, 167, 204, 184, 0}}, +{(unsigned char*)"nge", {226, 137, 177, 0}}, +{(unsigned char*)"ngeq", {226, 137, 177, 0}}, +{(unsigned char*)"ngeqq", {226, 137, 167, 204, 184, 0}}, +{(unsigned char*)"ngeqslant", {226, 169, 190, 204, 184, 0}}, +{(unsigned char*)"nges", {226, 169, 190, 204, 184, 0}}, +{(unsigned char*)"ngsim", {226, 137, 181, 0}}, +{(unsigned char*)"ngt", {226, 137, 175, 0}}, +{(unsigned char*)"ngtr", {226, 137, 175, 0}}, +{(unsigned char*)"nhArr", {226, 135, 142, 0}}, +{(unsigned char*)"nharr", {226, 134, 174, 0}}, +{(unsigned char*)"nhpar", {226, 171, 178, 0}}, +{(unsigned char*)"ni", {226, 136, 139, 0}}, +{(unsigned char*)"nis", {226, 139, 188, 0}}, +{(unsigned char*)"nisd", {226, 139, 186, 0}}, +{(unsigned char*)"niv", {226, 136, 139, 0}}, +{(unsigned char*)"njcy", {209, 154, 0}}, +{(unsigned char*)"nlArr", {226, 135, 141, 0}}, +{(unsigned char*)"nlE", {226, 137, 166, 204, 184, 0}}, +{(unsigned char*)"nlarr", {226, 134, 154, 0}}, +{(unsigned char*)"nldr", {226, 128, 165, 0}}, +{(unsigned char*)"nle", {226, 137, 176, 0}}, +{(unsigned char*)"nleftarrow", {226, 134, 154, 0}}, +{(unsigned char*)"nleftrightarrow", {226, 134, 174, 0}}, +{(unsigned char*)"nleq", {226, 137, 176, 0}}, +{(unsigned char*)"nleqq", {226, 137, 166, 204, 184, 0}}, +{(unsigned char*)"nleqslant", {226, 169, 189, 204, 184, 0}}, +{(unsigned char*)"nles", {226, 169, 189, 204, 184, 0}}, +{(unsigned char*)"nless", {226, 137, 174, 0}}, +{(unsigned char*)"nlsim", {226, 137, 180, 0}}, +{(unsigned char*)"nlt", {226, 137, 174, 0}}, +{(unsigned char*)"nltri", {226, 139, 170, 0}}, +{(unsigned char*)"nltrie", {226, 139, 172, 0}}, +{(unsigned char*)"nmid", {226, 136, 164, 0}}, +{(unsigned char*)"nopf", {240, 157, 149, 159, 0}}, +{(unsigned char*)"not", {194, 172, 0}}, +{(unsigned char*)"notin", {226, 136, 137, 0}}, +{(unsigned char*)"notinE", {226, 139, 185, 204, 184, 0}}, +{(unsigned char*)"notindot", {226, 139, 181, 204, 184, 0}}, +{(unsigned char*)"notinva", {226, 136, 137, 0}}, +{(unsigned char*)"notinvb", {226, 139, 183, 0}}, +{(unsigned char*)"notinvc", {226, 139, 182, 0}}, +{(unsigned char*)"notni", {226, 136, 140, 0}}, +{(unsigned char*)"notniva", {226, 136, 140, 0}}, +{(unsigned char*)"notnivb", {226, 139, 190, 0}}, +{(unsigned char*)"notnivc", {226, 139, 189, 0}}, +{(unsigned char*)"npar", {226, 136, 166, 0}}, +{(unsigned char*)"nparallel", {226, 136, 166, 0}}, +{(unsigned char*)"nparsl", {226, 171, 189, 226, 131, 165, 0}}, +{(unsigned char*)"npart", {226, 136, 130, 204, 184, 0}}, +{(unsigned char*)"npolint", {226, 168, 148, 0}}, +{(unsigned char*)"npr", {226, 138, 128, 0}}, +{(unsigned char*)"nprcue", {226, 139, 160, 0}}, +{(unsigned char*)"npre", {226, 170, 175, 204, 184, 0}}, +{(unsigned char*)"nprec", {226, 138, 128, 0}}, +{(unsigned char*)"npreceq", {226, 170, 175, 204, 184, 0}}, +{(unsigned char*)"nrArr", {226, 135, 143, 0}}, +{(unsigned char*)"nrarr", {226, 134, 155, 0}}, +{(unsigned char*)"nrarrc", {226, 164, 179, 204, 184, 0}}, +{(unsigned char*)"nrarrw", {226, 134, 157, 204, 184, 0}}, +{(unsigned char*)"nrightarrow", {226, 134, 155, 0}}, +{(unsigned char*)"nrtri", {226, 139, 171, 0}}, +{(unsigned char*)"nrtrie", {226, 139, 173, 0}}, +{(unsigned char*)"nsc", {226, 138, 129, 0}}, +{(unsigned char*)"nsccue", {226, 139, 161, 0}}, +{(unsigned char*)"nsce", {226, 170, 176, 204, 184, 0}}, +{(unsigned char*)"nscr", {240, 157, 147, 131, 0}}, +{(unsigned char*)"nshortmid", {226, 136, 164, 0}}, +{(unsigned char*)"nshortparallel", {226, 136, 166, 0}}, +{(unsigned char*)"nsim", {226, 137, 129, 0}}, +{(unsigned char*)"nsime", {226, 137, 132, 0}}, +{(unsigned char*)"nsimeq", {226, 137, 132, 0}}, +{(unsigned char*)"nsmid", {226, 136, 164, 0}}, +{(unsigned char*)"nspar", {226, 136, 166, 0}}, +{(unsigned char*)"nsqsube", {226, 139, 162, 0}}, +{(unsigned char*)"nsqsupe", {226, 139, 163, 0}}, +{(unsigned char*)"nsub", {226, 138, 132, 0}}, +{(unsigned char*)"nsubE", {226, 171, 133, 204, 184, 0}}, +{(unsigned char*)"nsube", {226, 138, 136, 0}}, +{(unsigned char*)"nsubset", {226, 138, 130, 226, 131, 146, 0}}, +{(unsigned char*)"nsubseteq", {226, 138, 136, 0}}, +{(unsigned char*)"nsubseteqq", {226, 171, 133, 204, 184, 0}}, +{(unsigned char*)"nsucc", {226, 138, 129, 0}}, +{(unsigned char*)"nsucceq", {226, 170, 176, 204, 184, 0}}, +{(unsigned char*)"nsup", {226, 138, 133, 0}}, +{(unsigned char*)"nsupE", {226, 171, 134, 204, 184, 0}}, +{(unsigned char*)"nsupe", {226, 138, 137, 0}}, +{(unsigned char*)"nsupset", {226, 138, 131, 226, 131, 146, 0}}, +{(unsigned char*)"nsupseteq", {226, 138, 137, 0}}, +{(unsigned char*)"nsupseteqq", {226, 171, 134, 204, 184, 0}}, +{(unsigned char*)"ntgl", {226, 137, 185, 0}}, +{(unsigned char*)"ntilde", {195, 177, 0}}, +{(unsigned char*)"ntlg", {226, 137, 184, 0}}, +{(unsigned char*)"ntriangleleft", {226, 139, 170, 0}}, +{(unsigned char*)"ntrianglelefteq", {226, 139, 172, 0}}, +{(unsigned char*)"ntriangleright", {226, 139, 171, 0}}, +{(unsigned char*)"ntrianglerighteq", {226, 139, 173, 0}}, +{(unsigned char*)"nu", {206, 189, 0}}, +{(unsigned char*)"num", {35, 0}}, +{(unsigned char*)"numero", {226, 132, 150, 0}}, +{(unsigned char*)"numsp", {226, 128, 135, 0}}, +{(unsigned char*)"nvDash", {226, 138, 173, 0}}, +{(unsigned char*)"nvHarr", {226, 164, 132, 0}}, +{(unsigned char*)"nvap", {226, 137, 141, 226, 131, 146, 0}}, +{(unsigned char*)"nvdash", {226, 138, 172, 0}}, +{(unsigned char*)"nvge", {226, 137, 165, 226, 131, 146, 0}}, +{(unsigned char*)"nvgt", {62, 226, 131, 146, 0}}, +{(unsigned char*)"nvinfin", {226, 167, 158, 0}}, +{(unsigned char*)"nvlArr", {226, 164, 130, 0}}, +{(unsigned char*)"nvle", {226, 137, 164, 226, 131, 146, 0}}, +{(unsigned char*)"nvlt", {60, 226, 131, 146, 0}}, +{(unsigned char*)"nvltrie", {226, 138, 180, 226, 131, 146, 0}}, +{(unsigned char*)"nvrArr", {226, 164, 131, 0}}, +{(unsigned char*)"nvrtrie", {226, 138, 181, 226, 131, 146, 0}}, +{(unsigned char*)"nvsim", {226, 136, 188, 226, 131, 146, 0}}, +{(unsigned char*)"nwArr", {226, 135, 150, 0}}, +{(unsigned char*)"nwarhk", {226, 164, 163, 0}}, +{(unsigned char*)"nwarr", {226, 134, 150, 0}}, +{(unsigned char*)"nwarrow", {226, 134, 150, 0}}, +{(unsigned char*)"nwnear", {226, 164, 167, 0}}, +{(unsigned char*)"oS", {226, 147, 136, 0}}, +{(unsigned char*)"oacute", {195, 179, 0}}, +{(unsigned char*)"oast", {226, 138, 155, 0}}, +{(unsigned char*)"ocir", {226, 138, 154, 0}}, +{(unsigned char*)"ocirc", {195, 180, 0}}, +{(unsigned char*)"ocy", {208, 190, 0}}, +{(unsigned char*)"odash", {226, 138, 157, 0}}, +{(unsigned char*)"odblac", {197, 145, 0}}, +{(unsigned char*)"odiv", {226, 168, 184, 0}}, +{(unsigned char*)"odot", {226, 138, 153, 0}}, +{(unsigned char*)"odsold", {226, 166, 188, 0}}, +{(unsigned char*)"oelig", {197, 147, 0}}, +{(unsigned char*)"ofcir", {226, 166, 191, 0}}, +{(unsigned char*)"ofr", {240, 157, 148, 172, 0}}, +{(unsigned char*)"ogon", {203, 155, 0}}, +{(unsigned char*)"ograve", {195, 178, 0}}, +{(unsigned char*)"ogt", {226, 167, 129, 0}}, +{(unsigned char*)"ohbar", {226, 166, 181, 0}}, +{(unsigned char*)"ohm", {206, 169, 0}}, +{(unsigned char*)"oint", {226, 136, 174, 0}}, +{(unsigned char*)"olarr", {226, 134, 186, 0}}, +{(unsigned char*)"olcir", {226, 166, 190, 0}}, +{(unsigned char*)"olcross", {226, 166, 187, 0}}, +{(unsigned char*)"oline", {226, 128, 190, 0}}, +{(unsigned char*)"olt", {226, 167, 128, 0}}, +{(unsigned char*)"omacr", {197, 141, 0}}, +{(unsigned char*)"omega", {207, 137, 0}}, +{(unsigned char*)"omicron", {206, 191, 0}}, +{(unsigned char*)"omid", {226, 166, 182, 0}}, +{(unsigned char*)"ominus", {226, 138, 150, 0}}, +{(unsigned char*)"oopf", {240, 157, 149, 160, 0}}, +{(unsigned char*)"opar", {226, 166, 183, 0}}, +{(unsigned char*)"operp", {226, 166, 185, 0}}, +{(unsigned char*)"oplus", {226, 138, 149, 0}}, +{(unsigned char*)"or", {226, 136, 168, 0}}, +{(unsigned char*)"orarr", {226, 134, 187, 0}}, +{(unsigned char*)"ord", {226, 169, 157, 0}}, +{(unsigned char*)"order", {226, 132, 180, 0}}, +{(unsigned char*)"orderof", {226, 132, 180, 0}}, +{(unsigned char*)"ordf", {194, 170, 0}}, +{(unsigned char*)"ordm", {194, 186, 0}}, +{(unsigned char*)"origof", {226, 138, 182, 0}}, +{(unsigned char*)"oror", {226, 169, 150, 0}}, +{(unsigned char*)"orslope", {226, 169, 151, 0}}, +{(unsigned char*)"orv", {226, 169, 155, 0}}, +{(unsigned char*)"oscr", {226, 132, 180, 0}}, +{(unsigned char*)"oslash", {195, 184, 0}}, +{(unsigned char*)"osol", {226, 138, 152, 0}}, +{(unsigned char*)"otilde", {195, 181, 0}}, +{(unsigned char*)"otimes", {226, 138, 151, 0}}, +{(unsigned char*)"otimesas", {226, 168, 182, 0}}, +{(unsigned char*)"ouml", {195, 182, 0}}, +{(unsigned char*)"ovbar", {226, 140, 189, 0}}, +{(unsigned char*)"par", {226, 136, 165, 0}}, +{(unsigned char*)"para", {194, 182, 0}}, +{(unsigned char*)"parallel", {226, 136, 165, 0}}, +{(unsigned char*)"parsim", {226, 171, 179, 0}}, +{(unsigned char*)"parsl", {226, 171, 189, 0}}, +{(unsigned char*)"part", {226, 136, 130, 0}}, +{(unsigned char*)"pcy", {208, 191, 0}}, +{(unsigned char*)"percnt", {37, 0}}, +{(unsigned char*)"period", {46, 0}}, +{(unsigned char*)"permil", {226, 128, 176, 0}}, +{(unsigned char*)"perp", {226, 138, 165, 0}}, +{(unsigned char*)"pertenk", {226, 128, 177, 0}}, +{(unsigned char*)"pfr", {240, 157, 148, 173, 0}}, +{(unsigned char*)"phi", {207, 134, 0}}, +{(unsigned char*)"phiv", {207, 149, 0}}, +{(unsigned char*)"phmmat", {226, 132, 179, 0}}, +{(unsigned char*)"phone", {226, 152, 142, 0}}, +{(unsigned char*)"pi", {207, 128, 0}}, +{(unsigned char*)"pitchfork", {226, 139, 148, 0}}, +{(unsigned char*)"piv", {207, 150, 0}}, +{(unsigned char*)"planck", {226, 132, 143, 0}}, +{(unsigned char*)"planckh", {226, 132, 142, 0}}, +{(unsigned char*)"plankv", {226, 132, 143, 0}}, +{(unsigned char*)"plus", {43, 0}}, +{(unsigned char*)"plusacir", {226, 168, 163, 0}}, +{(unsigned char*)"plusb", {226, 138, 158, 0}}, +{(unsigned char*)"pluscir", {226, 168, 162, 0}}, +{(unsigned char*)"plusdo", {226, 136, 148, 0}}, +{(unsigned char*)"plusdu", {226, 168, 165, 0}}, +{(unsigned char*)"pluse", {226, 169, 178, 0}}, +{(unsigned char*)"plusmn", {194, 177, 0}}, +{(unsigned char*)"plussim", {226, 168, 166, 0}}, +{(unsigned char*)"plustwo", {226, 168, 167, 0}}, +{(unsigned char*)"pm", {194, 177, 0}}, +{(unsigned char*)"pointint", {226, 168, 149, 0}}, +{(unsigned char*)"popf", {240, 157, 149, 161, 0}}, +{(unsigned char*)"pound", {194, 163, 0}}, +{(unsigned char*)"pr", {226, 137, 186, 0}}, +{(unsigned char*)"prE", {226, 170, 179, 0}}, +{(unsigned char*)"prap", {226, 170, 183, 0}}, +{(unsigned char*)"prcue", {226, 137, 188, 0}}, +{(unsigned char*)"pre", {226, 170, 175, 0}}, +{(unsigned char*)"prec", {226, 137, 186, 0}}, +{(unsigned char*)"precapprox", {226, 170, 183, 0}}, +{(unsigned char*)"preccurlyeq", {226, 137, 188, 0}}, +{(unsigned char*)"preceq", {226, 170, 175, 0}}, +{(unsigned char*)"precnapprox", {226, 170, 185, 0}}, +{(unsigned char*)"precneqq", {226, 170, 181, 0}}, +{(unsigned char*)"precnsim", {226, 139, 168, 0}}, +{(unsigned char*)"precsim", {226, 137, 190, 0}}, +{(unsigned char*)"prime", {226, 128, 178, 0}}, +{(unsigned char*)"primes", {226, 132, 153, 0}}, +{(unsigned char*)"prnE", {226, 170, 181, 0}}, +{(unsigned char*)"prnap", {226, 170, 185, 0}}, +{(unsigned char*)"prnsim", {226, 139, 168, 0}}, +{(unsigned char*)"prod", {226, 136, 143, 0}}, +{(unsigned char*)"profalar", {226, 140, 174, 0}}, +{(unsigned char*)"profline", {226, 140, 146, 0}}, +{(unsigned char*)"profsurf", {226, 140, 147, 0}}, +{(unsigned char*)"prop", {226, 136, 157, 0}}, +{(unsigned char*)"propto", {226, 136, 157, 0}}, +{(unsigned char*)"prsim", {226, 137, 190, 0}}, +{(unsigned char*)"prurel", {226, 138, 176, 0}}, +{(unsigned char*)"pscr", {240, 157, 147, 133, 0}}, +{(unsigned char*)"psi", {207, 136, 0}}, +{(unsigned char*)"puncsp", {226, 128, 136, 0}}, +{(unsigned char*)"qfr", {240, 157, 148, 174, 0}}, +{(unsigned char*)"qint", {226, 168, 140, 0}}, +{(unsigned char*)"qopf", {240, 157, 149, 162, 0}}, +{(unsigned char*)"qprime", {226, 129, 151, 0}}, +{(unsigned char*)"qscr", {240, 157, 147, 134, 0}}, +{(unsigned char*)"quaternions", {226, 132, 141, 0}}, +{(unsigned char*)"quatint", {226, 168, 150, 0}}, +{(unsigned char*)"quest", {63, 0}}, +{(unsigned char*)"questeq", {226, 137, 159, 0}}, +{(unsigned char*)"quot", {34, 0}}, +{(unsigned char*)"rAarr", {226, 135, 155, 0}}, +{(unsigned char*)"rArr", {226, 135, 146, 0}}, +{(unsigned char*)"rAtail", {226, 164, 156, 0}}, +{(unsigned char*)"rBarr", {226, 164, 143, 0}}, +{(unsigned char*)"rHar", {226, 165, 164, 0}}, +{(unsigned char*)"race", {226, 136, 189, 204, 177, 0}}, +{(unsigned char*)"racute", {197, 149, 0}}, +{(unsigned char*)"radic", {226, 136, 154, 0}}, +{(unsigned char*)"raemptyv", {226, 166, 179, 0}}, +{(unsigned char*)"rang", {226, 159, 169, 0}}, +{(unsigned char*)"rangd", {226, 166, 146, 0}}, +{(unsigned char*)"range", {226, 166, 165, 0}}, +{(unsigned char*)"rangle", {226, 159, 169, 0}}, +{(unsigned char*)"raquo", {194, 187, 0}}, +{(unsigned char*)"rarr", {226, 134, 146, 0}}, +{(unsigned char*)"rarrap", {226, 165, 181, 0}}, +{(unsigned char*)"rarrb", {226, 135, 165, 0}}, +{(unsigned char*)"rarrbfs", {226, 164, 160, 0}}, +{(unsigned char*)"rarrc", {226, 164, 179, 0}}, +{(unsigned char*)"rarrfs", {226, 164, 158, 0}}, +{(unsigned char*)"rarrhk", {226, 134, 170, 0}}, +{(unsigned char*)"rarrlp", {226, 134, 172, 0}}, +{(unsigned char*)"rarrpl", {226, 165, 133, 0}}, +{(unsigned char*)"rarrsim", {226, 165, 180, 0}}, +{(unsigned char*)"rarrtl", {226, 134, 163, 0}}, +{(unsigned char*)"rarrw", {226, 134, 157, 0}}, +{(unsigned char*)"ratail", {226, 164, 154, 0}}, +{(unsigned char*)"ratio", {226, 136, 182, 0}}, +{(unsigned char*)"rationals", {226, 132, 154, 0}}, +{(unsigned char*)"rbarr", {226, 164, 141, 0}}, +{(unsigned char*)"rbbrk", {226, 157, 179, 0}}, +{(unsigned char*)"rbrace", {125, 0}}, +{(unsigned char*)"rbrack", {93, 0}}, +{(unsigned char*)"rbrke", {226, 166, 140, 0}}, +{(unsigned char*)"rbrksld", {226, 166, 142, 0}}, +{(unsigned char*)"rbrkslu", {226, 166, 144, 0}}, +{(unsigned char*)"rcaron", {197, 153, 0}}, +{(unsigned char*)"rcedil", {197, 151, 0}}, +{(unsigned char*)"rceil", {226, 140, 137, 0}}, +{(unsigned char*)"rcub", {125, 0}}, +{(unsigned char*)"rcy", {209, 128, 0}}, +{(unsigned char*)"rdca", {226, 164, 183, 0}}, +{(unsigned char*)"rdldhar", {226, 165, 169, 0}}, +{(unsigned char*)"rdquo", {226, 128, 157, 0}}, +{(unsigned char*)"rdquor", {226, 128, 157, 0}}, +{(unsigned char*)"rdsh", {226, 134, 179, 0}}, +{(unsigned char*)"real", {226, 132, 156, 0}}, +{(unsigned char*)"realine", {226, 132, 155, 0}}, +{(unsigned char*)"realpart", {226, 132, 156, 0}}, +{(unsigned char*)"reals", {226, 132, 157, 0}}, +{(unsigned char*)"rect", {226, 150, 173, 0}}, +{(unsigned char*)"reg", {194, 174, 0}}, +{(unsigned char*)"rfisht", {226, 165, 189, 0}}, +{(unsigned char*)"rfloor", {226, 140, 139, 0}}, +{(unsigned char*)"rfr", {240, 157, 148, 175, 0}}, +{(unsigned char*)"rhard", {226, 135, 129, 0}}, +{(unsigned char*)"rharu", {226, 135, 128, 0}}, +{(unsigned char*)"rharul", {226, 165, 172, 0}}, +{(unsigned char*)"rho", {207, 129, 0}}, +{(unsigned char*)"rhov", {207, 177, 0}}, +{(unsigned char*)"rightarrow", {226, 134, 146, 0}}, +{(unsigned char*)"rightarrowtail", {226, 134, 163, 0}}, +{(unsigned char*)"rightharpoondown", {226, 135, 129, 0}}, +{(unsigned char*)"rightharpoonup", {226, 135, 128, 0}}, +{(unsigned char*)"rightleftarrows", {226, 135, 132, 0}}, +{(unsigned char*)"rightleftharpoons", {226, 135, 140, 0}}, +{(unsigned char*)"rightrightarrows", {226, 135, 137, 0}}, +{(unsigned char*)"rightsquigarrow", {226, 134, 157, 0}}, +{(unsigned char*)"rightthreetimes", {226, 139, 140, 0}}, +{(unsigned char*)"ring", {203, 154, 0}}, +{(unsigned char*)"risingdotseq", {226, 137, 147, 0}}, +{(unsigned char*)"rlarr", {226, 135, 132, 0}}, +{(unsigned char*)"rlhar", {226, 135, 140, 0}}, +{(unsigned char*)"rlm", {226, 128, 143, 0}}, +{(unsigned char*)"rmoust", {226, 142, 177, 0}}, +{(unsigned char*)"rmoustache", {226, 142, 177, 0}}, +{(unsigned char*)"rnmid", {226, 171, 174, 0}}, +{(unsigned char*)"roang", {226, 159, 173, 0}}, +{(unsigned char*)"roarr", {226, 135, 190, 0}}, +{(unsigned char*)"robrk", {226, 159, 167, 0}}, +{(unsigned char*)"ropar", {226, 166, 134, 0}}, +{(unsigned char*)"ropf", {240, 157, 149, 163, 0}}, +{(unsigned char*)"roplus", {226, 168, 174, 0}}, +{(unsigned char*)"rotimes", {226, 168, 181, 0}}, +{(unsigned char*)"rpar", {41, 0}}, +{(unsigned char*)"rpargt", {226, 166, 148, 0}}, +{(unsigned char*)"rppolint", {226, 168, 146, 0}}, +{(unsigned char*)"rrarr", {226, 135, 137, 0}}, +{(unsigned char*)"rsaquo", {226, 128, 186, 0}}, +{(unsigned char*)"rscr", {240, 157, 147, 135, 0}}, +{(unsigned char*)"rsh", {226, 134, 177, 0}}, +{(unsigned char*)"rsqb", {93, 0}}, +{(unsigned char*)"rsquo", {226, 128, 153, 0}}, +{(unsigned char*)"rsquor", {226, 128, 153, 0}}, +{(unsigned char*)"rthree", {226, 139, 140, 0}}, +{(unsigned char*)"rtimes", {226, 139, 138, 0}}, +{(unsigned char*)"rtri", {226, 150, 185, 0}}, +{(unsigned char*)"rtrie", {226, 138, 181, 0}}, +{(unsigned char*)"rtrif", {226, 150, 184, 0}}, +{(unsigned char*)"rtriltri", {226, 167, 142, 0}}, +{(unsigned char*)"ruluhar", {226, 165, 168, 0}}, +{(unsigned char*)"rx", {226, 132, 158, 0}}, +{(unsigned char*)"sacute", {197, 155, 0}}, +{(unsigned char*)"sbquo", {226, 128, 154, 0}}, +{(unsigned char*)"sc", {226, 137, 187, 0}}, +{(unsigned char*)"scE", {226, 170, 180, 0}}, +{(unsigned char*)"scap", {226, 170, 184, 0}}, +{(unsigned char*)"scaron", {197, 161, 0}}, +{(unsigned char*)"sccue", {226, 137, 189, 0}}, +{(unsigned char*)"sce", {226, 170, 176, 0}}, +{(unsigned char*)"scedil", {197, 159, 0}}, +{(unsigned char*)"scirc", {197, 157, 0}}, +{(unsigned char*)"scnE", {226, 170, 182, 0}}, +{(unsigned char*)"scnap", {226, 170, 186, 0}}, +{(unsigned char*)"scnsim", {226, 139, 169, 0}}, +{(unsigned char*)"scpolint", {226, 168, 147, 0}}, +{(unsigned char*)"scsim", {226, 137, 191, 0}}, +{(unsigned char*)"scy", {209, 129, 0}}, +{(unsigned char*)"sdot", {226, 139, 133, 0}}, +{(unsigned char*)"sdotb", {226, 138, 161, 0}}, +{(unsigned char*)"sdote", {226, 169, 166, 0}}, +{(unsigned char*)"seArr", {226, 135, 152, 0}}, +{(unsigned char*)"searhk", {226, 164, 165, 0}}, +{(unsigned char*)"searr", {226, 134, 152, 0}}, +{(unsigned char*)"searrow", {226, 134, 152, 0}}, +{(unsigned char*)"sect", {194, 167, 0}}, +{(unsigned char*)"semi", {59, 0}}, +{(unsigned char*)"seswar", {226, 164, 169, 0}}, +{(unsigned char*)"setminus", {226, 136, 150, 0}}, +{(unsigned char*)"setmn", {226, 136, 150, 0}}, +{(unsigned char*)"sext", {226, 156, 182, 0}}, +{(unsigned char*)"sfr", {240, 157, 148, 176, 0}}, +{(unsigned char*)"sfrown", {226, 140, 162, 0}}, +{(unsigned char*)"sharp", {226, 153, 175, 0}}, +{(unsigned char*)"shchcy", {209, 137, 0}}, +{(unsigned char*)"shcy", {209, 136, 0}}, +{(unsigned char*)"shortmid", {226, 136, 163, 0}}, +{(unsigned char*)"shortparallel", {226, 136, 165, 0}}, +{(unsigned char*)"shy", {194, 173, 0}}, +{(unsigned char*)"sigma", {207, 131, 0}}, +{(unsigned char*)"sigmaf", {207, 130, 0}}, +{(unsigned char*)"sigmav", {207, 130, 0}}, +{(unsigned char*)"sim", {226, 136, 188, 0}}, +{(unsigned char*)"simdot", {226, 169, 170, 0}}, +{(unsigned char*)"sime", {226, 137, 131, 0}}, +{(unsigned char*)"simeq", {226, 137, 131, 0}}, +{(unsigned char*)"simg", {226, 170, 158, 0}}, +{(unsigned char*)"simgE", {226, 170, 160, 0}}, +{(unsigned char*)"siml", {226, 170, 157, 0}}, +{(unsigned char*)"simlE", {226, 170, 159, 0}}, +{(unsigned char*)"simne", {226, 137, 134, 0}}, +{(unsigned char*)"simplus", {226, 168, 164, 0}}, +{(unsigned char*)"simrarr", {226, 165, 178, 0}}, +{(unsigned char*)"slarr", {226, 134, 144, 0}}, +{(unsigned char*)"smallsetminus", {226, 136, 150, 0}}, +{(unsigned char*)"smashp", {226, 168, 179, 0}}, +{(unsigned char*)"smeparsl", {226, 167, 164, 0}}, +{(unsigned char*)"smid", {226, 136, 163, 0}}, +{(unsigned char*)"smile", {226, 140, 163, 0}}, +{(unsigned char*)"smt", {226, 170, 170, 0}}, +{(unsigned char*)"smte", {226, 170, 172, 0}}, +{(unsigned char*)"smtes", {226, 170, 172, 239, 184, 128, 0}}, +{(unsigned char*)"softcy", {209, 140, 0}}, +{(unsigned char*)"sol", {47, 0}}, +{(unsigned char*)"solb", {226, 167, 132, 0}}, +{(unsigned char*)"solbar", {226, 140, 191, 0}}, +{(unsigned char*)"sopf", {240, 157, 149, 164, 0}}, +{(unsigned char*)"spades", {226, 153, 160, 0}}, +{(unsigned char*)"spadesuit", {226, 153, 160, 0}}, +{(unsigned char*)"spar", {226, 136, 165, 0}}, +{(unsigned char*)"sqcap", {226, 138, 147, 0}}, +{(unsigned char*)"sqcaps", {226, 138, 147, 239, 184, 128, 0}}, +{(unsigned char*)"sqcup", {226, 138, 148, 0}}, +{(unsigned char*)"sqcups", {226, 138, 148, 239, 184, 128, 0}}, +{(unsigned char*)"sqsub", {226, 138, 143, 0}}, +{(unsigned char*)"sqsube", {226, 138, 145, 0}}, +{(unsigned char*)"sqsubset", {226, 138, 143, 0}}, +{(unsigned char*)"sqsubseteq", {226, 138, 145, 0}}, +{(unsigned char*)"sqsup", {226, 138, 144, 0}}, +{(unsigned char*)"sqsupe", {226, 138, 146, 0}}, +{(unsigned char*)"sqsupset", {226, 138, 144, 0}}, +{(unsigned char*)"sqsupseteq", {226, 138, 146, 0}}, +{(unsigned char*)"squ", {226, 150, 161, 0}}, +{(unsigned char*)"square", {226, 150, 161, 0}}, +{(unsigned char*)"squarf", {226, 150, 170, 0}}, +{(unsigned char*)"squf", {226, 150, 170, 0}}, +{(unsigned char*)"srarr", {226, 134, 146, 0}}, +{(unsigned char*)"sscr", {240, 157, 147, 136, 0}}, +{(unsigned char*)"ssetmn", {226, 136, 150, 0}}, +{(unsigned char*)"ssmile", {226, 140, 163, 0}}, +{(unsigned char*)"sstarf", {226, 139, 134, 0}}, +{(unsigned char*)"star", {226, 152, 134, 0}}, +{(unsigned char*)"starf", {226, 152, 133, 0}}, +{(unsigned char*)"straightepsilon", {207, 181, 0}}, +{(unsigned char*)"straightphi", {207, 149, 0}}, +{(unsigned char*)"strns", {194, 175, 0}}, +{(unsigned char*)"sub", {226, 138, 130, 0}}, +{(unsigned char*)"subE", {226, 171, 133, 0}}, +{(unsigned char*)"subdot", {226, 170, 189, 0}}, +{(unsigned char*)"sube", {226, 138, 134, 0}}, +{(unsigned char*)"subedot", {226, 171, 131, 0}}, +{(unsigned char*)"submult", {226, 171, 129, 0}}, +{(unsigned char*)"subnE", {226, 171, 139, 0}}, +{(unsigned char*)"subne", {226, 138, 138, 0}}, +{(unsigned char*)"subplus", {226, 170, 191, 0}}, +{(unsigned char*)"subrarr", {226, 165, 185, 0}}, +{(unsigned char*)"subset", {226, 138, 130, 0}}, +{(unsigned char*)"subseteq", {226, 138, 134, 0}}, +{(unsigned char*)"subseteqq", {226, 171, 133, 0}}, +{(unsigned char*)"subsetneq", {226, 138, 138, 0}}, +{(unsigned char*)"subsetneqq", {226, 171, 139, 0}}, +{(unsigned char*)"subsim", {226, 171, 135, 0}}, +{(unsigned char*)"subsub", {226, 171, 149, 0}}, +{(unsigned char*)"subsup", {226, 171, 147, 0}}, +{(unsigned char*)"succ", {226, 137, 187, 0}}, +{(unsigned char*)"succapprox", {226, 170, 184, 0}}, +{(unsigned char*)"succcurlyeq", {226, 137, 189, 0}}, +{(unsigned char*)"succeq", {226, 170, 176, 0}}, +{(unsigned char*)"succnapprox", {226, 170, 186, 0}}, +{(unsigned char*)"succneqq", {226, 170, 182, 0}}, +{(unsigned char*)"succnsim", {226, 139, 169, 0}}, +{(unsigned char*)"succsim", {226, 137, 191, 0}}, +{(unsigned char*)"sum", {226, 136, 145, 0}}, +{(unsigned char*)"sung", {226, 153, 170, 0}}, +{(unsigned char*)"sup", {226, 138, 131, 0}}, +{(unsigned char*)"sup1", {194, 185, 0}}, +{(unsigned char*)"sup2", {194, 178, 0}}, +{(unsigned char*)"sup3", {194, 179, 0}}, +{(unsigned char*)"supE", {226, 171, 134, 0}}, +{(unsigned char*)"supdot", {226, 170, 190, 0}}, +{(unsigned char*)"supdsub", {226, 171, 152, 0}}, +{(unsigned char*)"supe", {226, 138, 135, 0}}, +{(unsigned char*)"supedot", {226, 171, 132, 0}}, +{(unsigned char*)"suphsol", {226, 159, 137, 0}}, +{(unsigned char*)"suphsub", {226, 171, 151, 0}}, +{(unsigned char*)"suplarr", {226, 165, 187, 0}}, +{(unsigned char*)"supmult", {226, 171, 130, 0}}, +{(unsigned char*)"supnE", {226, 171, 140, 0}}, +{(unsigned char*)"supne", {226, 138, 139, 0}}, +{(unsigned char*)"supplus", {226, 171, 128, 0}}, +{(unsigned char*)"supset", {226, 138, 131, 0}}, +{(unsigned char*)"supseteq", {226, 138, 135, 0}}, +{(unsigned char*)"supseteqq", {226, 171, 134, 0}}, +{(unsigned char*)"supsetneq", {226, 138, 139, 0}}, +{(unsigned char*)"supsetneqq", {226, 171, 140, 0}}, +{(unsigned char*)"supsim", {226, 171, 136, 0}}, +{(unsigned char*)"supsub", {226, 171, 148, 0}}, +{(unsigned char*)"supsup", {226, 171, 150, 0}}, +{(unsigned char*)"swArr", {226, 135, 153, 0}}, +{(unsigned char*)"swarhk", {226, 164, 166, 0}}, +{(unsigned char*)"swarr", {226, 134, 153, 0}}, +{(unsigned char*)"swarrow", {226, 134, 153, 0}}, +{(unsigned char*)"swnwar", {226, 164, 170, 0}}, +{(unsigned char*)"szlig", {195, 159, 0}}, +{(unsigned char*)"target", {226, 140, 150, 0}}, +{(unsigned char*)"tau", {207, 132, 0}}, +{(unsigned char*)"tbrk", {226, 142, 180, 0}}, +{(unsigned char*)"tcaron", {197, 165, 0}}, +{(unsigned char*)"tcedil", {197, 163, 0}}, +{(unsigned char*)"tcy", {209, 130, 0}}, +{(unsigned char*)"tdot", {226, 131, 155, 0}}, +{(unsigned char*)"telrec", {226, 140, 149, 0}}, +{(unsigned char*)"tfr", {240, 157, 148, 177, 0}}, +{(unsigned char*)"there4", {226, 136, 180, 0}}, +{(unsigned char*)"therefore", {226, 136, 180, 0}}, +{(unsigned char*)"theta", {206, 184, 0}}, +{(unsigned char*)"thetasym", {207, 145, 0}}, +{(unsigned char*)"thetav", {207, 145, 0}}, +{(unsigned char*)"thickapprox", {226, 137, 136, 0}}, +{(unsigned char*)"thicksim", {226, 136, 188, 0}}, +{(unsigned char*)"thinsp", {226, 128, 137, 0}}, +{(unsigned char*)"thkap", {226, 137, 136, 0}}, +{(unsigned char*)"thksim", {226, 136, 188, 0}}, +{(unsigned char*)"thorn", {195, 190, 0}}, +{(unsigned char*)"tilde", {203, 156, 0}}, +{(unsigned char*)"times", {195, 151, 0}}, +{(unsigned char*)"timesb", {226, 138, 160, 0}}, +{(unsigned char*)"timesbar", {226, 168, 177, 0}}, +{(unsigned char*)"timesd", {226, 168, 176, 0}}, +{(unsigned char*)"tint", {226, 136, 173, 0}}, +{(unsigned char*)"toea", {226, 164, 168, 0}}, +{(unsigned char*)"top", {226, 138, 164, 0}}, +{(unsigned char*)"topbot", {226, 140, 182, 0}}, +{(unsigned char*)"topcir", {226, 171, 177, 0}}, +{(unsigned char*)"topf", {240, 157, 149, 165, 0}}, +{(unsigned char*)"topfork", {226, 171, 154, 0}}, +{(unsigned char*)"tosa", {226, 164, 169, 0}}, +{(unsigned char*)"tprime", {226, 128, 180, 0}}, +{(unsigned char*)"trade", {226, 132, 162, 0}}, +{(unsigned char*)"triangle", {226, 150, 181, 0}}, +{(unsigned char*)"triangledown", {226, 150, 191, 0}}, +{(unsigned char*)"triangleleft", {226, 151, 131, 0}}, +{(unsigned char*)"trianglelefteq", {226, 138, 180, 0}}, +{(unsigned char*)"triangleq", {226, 137, 156, 0}}, +{(unsigned char*)"triangleright", {226, 150, 185, 0}}, +{(unsigned char*)"trianglerighteq", {226, 138, 181, 0}}, +{(unsigned char*)"tridot", {226, 151, 172, 0}}, +{(unsigned char*)"trie", {226, 137, 156, 0}}, +{(unsigned char*)"triminus", {226, 168, 186, 0}}, +{(unsigned char*)"triplus", {226, 168, 185, 0}}, +{(unsigned char*)"trisb", {226, 167, 141, 0}}, +{(unsigned char*)"tritime", {226, 168, 187, 0}}, +{(unsigned char*)"trpezium", {226, 143, 162, 0}}, +{(unsigned char*)"tscr", {240, 157, 147, 137, 0}}, +{(unsigned char*)"tscy", {209, 134, 0}}, +{(unsigned char*)"tshcy", {209, 155, 0}}, +{(unsigned char*)"tstrok", {197, 167, 0}}, +{(unsigned char*)"twixt", {226, 137, 172, 0}}, +{(unsigned char*)"twoheadleftarrow", {226, 134, 158, 0}}, +{(unsigned char*)"twoheadrightarrow", {226, 134, 160, 0}}, +{(unsigned char*)"uArr", {226, 135, 145, 0}}, +{(unsigned char*)"uHar", {226, 165, 163, 0}}, +{(unsigned char*)"uacute", {195, 186, 0}}, +{(unsigned char*)"uarr", {226, 134, 145, 0}}, +{(unsigned char*)"ubrcy", {209, 158, 0}}, +{(unsigned char*)"ubreve", {197, 173, 0}}, +{(unsigned char*)"ucirc", {195, 187, 0}}, +{(unsigned char*)"ucy", {209, 131, 0}}, +{(unsigned char*)"udarr", {226, 135, 133, 0}}, +{(unsigned char*)"udblac", {197, 177, 0}}, +{(unsigned char*)"udhar", {226, 165, 174, 0}}, +{(unsigned char*)"ufisht", {226, 165, 190, 0}}, +{(unsigned char*)"ufr", {240, 157, 148, 178, 0}}, +{(unsigned char*)"ugrave", {195, 185, 0}}, +{(unsigned char*)"uharl", {226, 134, 191, 0}}, +{(unsigned char*)"uharr", {226, 134, 190, 0}}, +{(unsigned char*)"uhblk", {226, 150, 128, 0}}, +{(unsigned char*)"ulcorn", {226, 140, 156, 0}}, +{(unsigned char*)"ulcorner", {226, 140, 156, 0}}, +{(unsigned char*)"ulcrop", {226, 140, 143, 0}}, +{(unsigned char*)"ultri", {226, 151, 184, 0}}, +{(unsigned char*)"umacr", {197, 171, 0}}, +{(unsigned char*)"uml", {194, 168, 0}}, +{(unsigned char*)"uogon", {197, 179, 0}}, +{(unsigned char*)"uopf", {240, 157, 149, 166, 0}}, +{(unsigned char*)"uparrow", {226, 134, 145, 0}}, +{(unsigned char*)"updownarrow", {226, 134, 149, 0}}, +{(unsigned char*)"upharpoonleft", {226, 134, 191, 0}}, +{(unsigned char*)"upharpoonright", {226, 134, 190, 0}}, +{(unsigned char*)"uplus", {226, 138, 142, 0}}, +{(unsigned char*)"upsi", {207, 133, 0}}, +{(unsigned char*)"upsih", {207, 146, 0}}, +{(unsigned char*)"upsilon", {207, 133, 0}}, +{(unsigned char*)"upuparrows", {226, 135, 136, 0}}, +{(unsigned char*)"urcorn", {226, 140, 157, 0}}, +{(unsigned char*)"urcorner", {226, 140, 157, 0}}, +{(unsigned char*)"urcrop", {226, 140, 142, 0}}, +{(unsigned char*)"uring", {197, 175, 0}}, +{(unsigned char*)"urtri", {226, 151, 185, 0}}, +{(unsigned char*)"uscr", {240, 157, 147, 138, 0}}, +{(unsigned char*)"utdot", {226, 139, 176, 0}}, +{(unsigned char*)"utilde", {197, 169, 0}}, +{(unsigned char*)"utri", {226, 150, 181, 0}}, +{(unsigned char*)"utrif", {226, 150, 180, 0}}, +{(unsigned char*)"uuarr", {226, 135, 136, 0}}, +{(unsigned char*)"uuml", {195, 188, 0}}, +{(unsigned char*)"uwangle", {226, 166, 167, 0}}, +{(unsigned char*)"vArr", {226, 135, 149, 0}}, +{(unsigned char*)"vBar", {226, 171, 168, 0}}, +{(unsigned char*)"vBarv", {226, 171, 169, 0}}, +{(unsigned char*)"vDash", {226, 138, 168, 0}}, +{(unsigned char*)"vangrt", {226, 166, 156, 0}}, +{(unsigned char*)"varepsilon", {207, 181, 0}}, +{(unsigned char*)"varkappa", {207, 176, 0}}, +{(unsigned char*)"varnothing", {226, 136, 133, 0}}, +{(unsigned char*)"varphi", {207, 149, 0}}, +{(unsigned char*)"varpi", {207, 150, 0}}, +{(unsigned char*)"varpropto", {226, 136, 157, 0}}, +{(unsigned char*)"varr", {226, 134, 149, 0}}, +{(unsigned char*)"varrho", {207, 177, 0}}, +{(unsigned char*)"varsigma", {207, 130, 0}}, +{(unsigned char*)"varsubsetneq", {226, 138, 138, 239, 184, 128, 0}}, +{(unsigned char*)"varsubsetneqq", {226, 171, 139, 239, 184, 128, 0}}, +{(unsigned char*)"varsupsetneq", {226, 138, 139, 239, 184, 128, 0}}, +{(unsigned char*)"varsupsetneqq", {226, 171, 140, 239, 184, 128, 0}}, +{(unsigned char*)"vartheta", {207, 145, 0}}, +{(unsigned char*)"vartriangleleft", {226, 138, 178, 0}}, +{(unsigned char*)"vartriangleright", {226, 138, 179, 0}}, +{(unsigned char*)"vcy", {208, 178, 0}}, +{(unsigned char*)"vdash", {226, 138, 162, 0}}, +{(unsigned char*)"vee", {226, 136, 168, 0}}, +{(unsigned char*)"veebar", {226, 138, 187, 0}}, +{(unsigned char*)"veeeq", {226, 137, 154, 0}}, +{(unsigned char*)"vellip", {226, 139, 174, 0}}, +{(unsigned char*)"verbar", {124, 0}}, +{(unsigned char*)"vert", {124, 0}}, +{(unsigned char*)"vfr", {240, 157, 148, 179, 0}}, +{(unsigned char*)"vltri", {226, 138, 178, 0}}, +{(unsigned char*)"vnsub", {226, 138, 130, 226, 131, 146, 0}}, +{(unsigned char*)"vnsup", {226, 138, 131, 226, 131, 146, 0}}, +{(unsigned char*)"vopf", {240, 157, 149, 167, 0}}, +{(unsigned char*)"vprop", {226, 136, 157, 0}}, +{(unsigned char*)"vrtri", {226, 138, 179, 0}}, +{(unsigned char*)"vscr", {240, 157, 147, 139, 0}}, +{(unsigned char*)"vsubnE", {226, 171, 139, 239, 184, 128, 0}}, +{(unsigned char*)"vsubne", {226, 138, 138, 239, 184, 128, 0}}, +{(unsigned char*)"vsupnE", {226, 171, 140, 239, 184, 128, 0}}, +{(unsigned char*)"vsupne", {226, 138, 139, 239, 184, 128, 0}}, +{(unsigned char*)"vzigzag", {226, 166, 154, 0}}, +{(unsigned char*)"wcirc", {197, 181, 0}}, +{(unsigned char*)"wedbar", {226, 169, 159, 0}}, +{(unsigned char*)"wedge", {226, 136, 167, 0}}, +{(unsigned char*)"wedgeq", {226, 137, 153, 0}}, +{(unsigned char*)"weierp", {226, 132, 152, 0}}, +{(unsigned char*)"wfr", {240, 157, 148, 180, 0}}, +{(unsigned char*)"wopf", {240, 157, 149, 168, 0}}, +{(unsigned char*)"wp", {226, 132, 152, 0}}, +{(unsigned char*)"wr", {226, 137, 128, 0}}, +{(unsigned char*)"wreath", {226, 137, 128, 0}}, +{(unsigned char*)"wscr", {240, 157, 147, 140, 0}}, +{(unsigned char*)"xcap", {226, 139, 130, 0}}, +{(unsigned char*)"xcirc", {226, 151, 175, 0}}, +{(unsigned char*)"xcup", {226, 139, 131, 0}}, +{(unsigned char*)"xdtri", {226, 150, 189, 0}}, +{(unsigned char*)"xfr", {240, 157, 148, 181, 0}}, +{(unsigned char*)"xhArr", {226, 159, 186, 0}}, +{(unsigned char*)"xharr", {226, 159, 183, 0}}, +{(unsigned char*)"xi", {206, 190, 0}}, +{(unsigned char*)"xlArr", {226, 159, 184, 0}}, +{(unsigned char*)"xlarr", {226, 159, 181, 0}}, +{(unsigned char*)"xmap", {226, 159, 188, 0}}, +{(unsigned char*)"xnis", {226, 139, 187, 0}}, +{(unsigned char*)"xodot", {226, 168, 128, 0}}, +{(unsigned char*)"xopf", {240, 157, 149, 169, 0}}, +{(unsigned char*)"xoplus", {226, 168, 129, 0}}, +{(unsigned char*)"xotime", {226, 168, 130, 0}}, +{(unsigned char*)"xrArr", {226, 159, 185, 0}}, +{(unsigned char*)"xrarr", {226, 159, 182, 0}}, +{(unsigned char*)"xscr", {240, 157, 147, 141, 0}}, +{(unsigned char*)"xsqcup", {226, 168, 134, 0}}, +{(unsigned char*)"xuplus", {226, 168, 132, 0}}, +{(unsigned char*)"xutri", {226, 150, 179, 0}}, +{(unsigned char*)"xvee", {226, 139, 129, 0}}, +{(unsigned char*)"xwedge", {226, 139, 128, 0}}, +{(unsigned char*)"yacute", {195, 189, 0}}, +{(unsigned char*)"yacy", {209, 143, 0}}, +{(unsigned char*)"ycirc", {197, 183, 0}}, +{(unsigned char*)"ycy", {209, 139, 0}}, +{(unsigned char*)"yen", {194, 165, 0}}, +{(unsigned char*)"yfr", {240, 157, 148, 182, 0}}, +{(unsigned char*)"yicy", {209, 151, 0}}, +{(unsigned char*)"yopf", {240, 157, 149, 170, 0}}, +{(unsigned char*)"yscr", {240, 157, 147, 142, 0}}, +{(unsigned char*)"yucy", {209, 142, 0}}, +{(unsigned char*)"yuml", {195, 191, 0}}, +{(unsigned char*)"zacute", {197, 186, 0}}, +{(unsigned char*)"zcaron", {197, 190, 0}}, +{(unsigned char*)"zcy", {208, 183, 0}}, +{(unsigned char*)"zdot", {197, 188, 0}}, +{(unsigned char*)"zeetrf", {226, 132, 168, 0}}, +{(unsigned char*)"zeta", {206, 182, 0}}, +{(unsigned char*)"zfr", {240, 157, 148, 183, 0}}, +{(unsigned char*)"zhcy", {208, 182, 0}}, +{(unsigned char*)"zigrarr", {226, 135, 157, 0}}, +{(unsigned char*)"zopf", {240, 157, 149, 171, 0}}, +{(unsigned char*)"zscr", {240, 157, 147, 143, 0}}, +{(unsigned char*)"zwj", {226, 128, 141, 0}}, +{(unsigned char*)"zwnj", {226, 128, 140, 0}}, +}; diff --git a/Example/Pods/Down/Source/cmark/houdini.h b/Example/Pods/Down/Source/cmark/houdini.h new file mode 100755 index 000000000..f738e8243 --- /dev/null +++ b/Example/Pods/Down/Source/cmark/houdini.h @@ -0,0 +1,51 @@ +#ifndef CMARK_HOUDINI_H +#define CMARK_HOUDINI_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include <stdint.h> +#include "config.h" +#include "buffer.h" + +#ifdef HAVE___BUILTIN_EXPECT +#define likely(x) __builtin_expect((x), 1) +#define unlikely(x) __builtin_expect((x), 0) +#else +#define likely(x) (x) +#define unlikely(x) (x) +#endif + +#ifdef HOUDINI_USE_LOCALE +#define _isxdigit(c) isxdigit(c) +#define _isdigit(c) isdigit(c) +#else +/* + * Helper _isdigit methods -- do not trust the current locale + * */ +#define _isxdigit(c) (strchr("0123456789ABCDEFabcdef", (c)) != NULL) +#define _isdigit(c) ((c) >= '0' && (c) <= '9') +#endif + +#define HOUDINI_ESCAPED_SIZE(x) (((x)*12) / 10) +#define HOUDINI_UNESCAPED_SIZE(x) (x) + +extern bufsize_t houdini_unescape_ent(cmark_strbuf *ob, const uint8_t *src, + bufsize_t size); +extern int houdini_escape_html(cmark_strbuf *ob, const uint8_t *src, + bufsize_t size); +extern int houdini_escape_html0(cmark_strbuf *ob, const uint8_t *src, + bufsize_t size, int secure); +extern int houdini_unescape_html(cmark_strbuf *ob, const uint8_t *src, + bufsize_t size); +extern void houdini_unescape_html_f(cmark_strbuf *ob, const uint8_t *src, + bufsize_t size); +extern int houdini_escape_href(cmark_strbuf *ob, const uint8_t *src, + bufsize_t size); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Example/Pods/Down/Source/cmark/houdini_href_e.c b/Example/Pods/Down/Source/cmark/houdini_href_e.c new file mode 100755 index 000000000..bfa970485 --- /dev/null +++ b/Example/Pods/Down/Source/cmark/houdini_href_e.c @@ -0,0 +1,100 @@ +#include <assert.h> +#include <stdio.h> +#include <string.h> + +#include "houdini.h" + +/* + * The following characters will not be escaped: + * + * -_.+!*'(),%#@?=;:/,+&$ alphanum + * + * Note that this character set is the addition of: + * + * - The characters which are safe to be in an URL + * - The characters which are *not* safe to be in + * an URL because they are RESERVED characters. + * + * We assume (lazily) that any RESERVED char that + * appears inside an URL is actually meant to + * have its native function (i.e. as an URL + * component/separator) and hence needs no escaping. + * + * There are two exceptions: the chacters & (amp) + * and ' (single quote) do not appear in the table. + * They are meant to appear in the URL as components, + * yet they require special HTML-entity escaping + * to generate valid HTML markup. + * + * All other characters will be escaped to %XX. + * + */ +static const char HREF_SAFE[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, + 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +}; + +int houdini_escape_href(cmark_strbuf *ob, const uint8_t *src, bufsize_t size) { + static const uint8_t hex_chars[] = "0123456789ABCDEF"; + bufsize_t i = 0, org; + uint8_t hex_str[3]; + + hex_str[0] = '%'; + + while (i < size) { + org = i; + while (i < size && HREF_SAFE[src[i]] != 0) + i++; + + if (likely(i > org)) + cmark_strbuf_put(ob, src + org, i - org); + + /* escaping */ + if (i >= size) + break; + + switch (src[i]) { + /* amp appears all the time in URLs, but needs + * HTML-entity escaping to be inside an href */ + case '&': + cmark_strbuf_puts(ob, "&"); + break; + + /* the single quote is a valid URL character + * according to the standard; it needs HTML + * entity escaping too */ + case '\'': + cmark_strbuf_puts(ob, "'"); + break; + +/* the space can be escaped to %20 or a plus + * sign. we're going with the generic escape + * for now. the plus thing is more commonly seen + * when building GET strings */ +#if 0 + case ' ': + cmark_strbuf_putc(ob, '+'); + break; +#endif + + /* every other character goes with a %XX escaping */ + default: + hex_str[1] = hex_chars[(src[i] >> 4) & 0xF]; + hex_str[2] = hex_chars[src[i] & 0xF]; + cmark_strbuf_put(ob, hex_str, 3); + } + + i++; + } + + return 1; +} diff --git a/Example/Pods/Down/Source/cmark/houdini_html_e.c b/Example/Pods/Down/Source/cmark/houdini_html_e.c new file mode 100755 index 000000000..0e539f037 --- /dev/null +++ b/Example/Pods/Down/Source/cmark/houdini_html_e.c @@ -0,0 +1,66 @@ +#include <assert.h> +#include <stdio.h> +#include <string.h> + +#include "houdini.h" + +/** + * According to the OWASP rules: + * + * & --> & + * < --> < + * > --> > + * " --> " + * ' --> ' ' is not recommended + * / --> / forward slash is included as it helps end an HTML entity + * + */ +static const char HTML_ESCAPE_TABLE[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 3, 0, 0, 0, 0, 0, 0, 0, 4, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +}; + +static const char *HTML_ESCAPES[] = {"", """, "&", "'", + "/", "<", ">"}; + +int houdini_escape_html0(cmark_strbuf *ob, const uint8_t *src, bufsize_t size, + int secure) { + bufsize_t i = 0, org, esc = 0; + + while (i < size) { + org = i; + while (i < size && (esc = HTML_ESCAPE_TABLE[src[i]]) == 0) + i++; + + if (i > org) + cmark_strbuf_put(ob, src + org, i - org); + + /* escaping */ + if (unlikely(i >= size)) + break; + + /* The forward slash is only escaped in secure mode */ + if ((src[i] == '/' || src[i] == '\'') && !secure) { + cmark_strbuf_putc(ob, src[i]); + } else { + cmark_strbuf_puts(ob, HTML_ESCAPES[esc]); + } + + i++; + } + + return 1; +} + +int houdini_escape_html(cmark_strbuf *ob, const uint8_t *src, bufsize_t size) { + return houdini_escape_html0(ob, src, size, 1); +} diff --git a/Example/Pods/Down/Source/cmark/houdini_html_u.c b/Example/Pods/Down/Source/cmark/houdini_html_u.c new file mode 100755 index 000000000..30d08aa4a --- /dev/null +++ b/Example/Pods/Down/Source/cmark/houdini_html_u.c @@ -0,0 +1,149 @@ +#include <assert.h> +#include <stdio.h> +#include <string.h> + +#include "buffer.h" +#include "houdini.h" +#include "utf8.h" +#include "entities.inc" + +/* Binary tree lookup code for entities added by JGM */ + +static const unsigned char *S_lookup(int i, int low, int hi, + const unsigned char *s, int len) { + int j; + int cmp = + strncmp((const char *)s, (const char *)cmark_entities[i].entity, len); + if (cmp == 0 && cmark_entities[i].entity[len] == 0) { + return (const unsigned char *)cmark_entities[i].bytes; + } else if (cmp <= 0 && i > low) { + j = i - ((i - low) / 2); + if (j == i) + j -= 1; + return S_lookup(j, low, i - 1, s, len); + } else if (cmp > 0 && i < hi) { + j = i + ((hi - i) / 2); + if (j == i) + j += 1; + return S_lookup(j, i + 1, hi, s, len); + } else { + return NULL; + } +} + +static const unsigned char *S_lookup_entity(const unsigned char *s, int len) { + return S_lookup(CMARK_NUM_ENTITIES / 2, 0, CMARK_NUM_ENTITIES - 1, s, len); +} + +bufsize_t houdini_unescape_ent(cmark_strbuf *ob, const uint8_t *src, + bufsize_t size) { + bufsize_t i = 0; + + if (size >= 3 && src[0] == '#') { + int codepoint = 0; + int num_digits = 0; + + if (_isdigit(src[1])) { + for (i = 1; i < size && _isdigit(src[i]); ++i) { + codepoint = (codepoint * 10) + (src[i] - '0'); + + if (codepoint >= 0x110000) { + // Keep counting digits but + // avoid integer overflow. + codepoint = 0x110000; + } + } + + num_digits = i - 1; + } + + else if (src[1] == 'x' || src[1] == 'X') { + for (i = 2; i < size && _isxdigit(src[i]); ++i) { + codepoint = (codepoint * 16) + ((src[i] | 32) % 39 - 9); + + if (codepoint >= 0x110000) { + // Keep counting digits but + // avoid integer overflow. + codepoint = 0x110000; + } + } + + num_digits = i - 2; + } + + if (num_digits >= 1 && num_digits <= 8 && i < size && src[i] == ';') { + if (codepoint == 0 || (codepoint >= 0xD800 && codepoint < 0xE000) || + codepoint >= 0x110000) { + codepoint = 0xFFFD; + } + cmark_utf8proc_encode_char(codepoint, ob); + return i + 1; + } + } + + else { + if (size > CMARK_ENTITY_MAX_LENGTH) + size = CMARK_ENTITY_MAX_LENGTH; + + for (i = CMARK_ENTITY_MIN_LENGTH; i < size; ++i) { + if (src[i] == ' ') + break; + + if (src[i] == ';') { + const unsigned char *entity = S_lookup_entity(src, i); + + if (entity != NULL) { + cmark_strbuf_puts(ob, (const char *)entity); + return i + 1; + } + + break; + } + } + } + + return 0; +} + +int houdini_unescape_html(cmark_strbuf *ob, const uint8_t *src, + bufsize_t size) { + bufsize_t i = 0, org, ent; + + while (i < size) { + org = i; + while (i < size && src[i] != '&') + i++; + + if (likely(i > org)) { + if (unlikely(org == 0)) { + if (i >= size) + return 0; + + cmark_strbuf_grow(ob, HOUDINI_UNESCAPED_SIZE(size)); + } + + cmark_strbuf_put(ob, src + org, i - org); + } + + /* escaping */ + if (i >= size) + break; + + i++; + + ent = houdini_unescape_ent(ob, src + i, size - i); + i += ent; + + /* not really an entity */ + if (ent == 0) + cmark_strbuf_putc(ob, '&'); + } + + return 1; +} + +void houdini_unescape_html_f(cmark_strbuf *ob, const uint8_t *src, + bufsize_t size) { + if (!houdini_unescape_html(ob, src, size)) + cmark_strbuf_put(ob, src, size); +} diff --git a/Example/Pods/Down/Source/cmark/html.c b/Example/Pods/Down/Source/cmark/html.c new file mode 100755 index 000000000..a13d016dc --- /dev/null +++ b/Example/Pods/Down/Source/cmark/html.c @@ -0,0 +1,341 @@ +#include <stdlib.h> +#include <stdio.h> +#include <string.h> +#include <assert.h> +#include "cmark_ctype.h" +#include "config.h" +#include "cmark.h" +#include "node.h" +#include "buffer.h" +#include "houdini.h" +#include "scanners.h" + +#define BUFFER_SIZE 100 + +// Functions to convert cmark_nodes to HTML strings. + +static void escape_html(cmark_strbuf *dest, const unsigned char *source, + bufsize_t length) { + houdini_escape_html0(dest, source, length, 0); +} + +static CMARK_INLINE void cr(cmark_strbuf *html) { + if (html->size && html->ptr[html->size - 1] != '\n') + cmark_strbuf_putc(html, '\n'); +} + +struct render_state { + cmark_strbuf *html; + cmark_node *plain; +}; + +static void S_render_sourcepos(cmark_node *node, cmark_strbuf *html, + int options) { + char buffer[BUFFER_SIZE]; + if (CMARK_OPT_SOURCEPOS & options) { + snprintf(buffer, BUFFER_SIZE, " data-sourcepos=\"%d:%d-%d:%d\"", + cmark_node_get_start_line(node), cmark_node_get_start_column(node), + cmark_node_get_end_line(node), cmark_node_get_end_column(node)); + cmark_strbuf_puts(html, buffer); + } +} + +static int S_render_node(cmark_node *node, cmark_event_type ev_type, + struct render_state *state, int options) { + cmark_node *parent; + cmark_node *grandparent; + cmark_strbuf *html = state->html; + char start_heading[] = "<h0"; + char end_heading[] = "</h0"; + bool tight; + char buffer[BUFFER_SIZE]; + + bool entering = (ev_type == CMARK_EVENT_ENTER); + + if (state->plain == node) { // back at original node + state->plain = NULL; + } + + if (state->plain != NULL) { + switch (node->type) { + case CMARK_NODE_TEXT: + case CMARK_NODE_CODE: + case CMARK_NODE_HTML_INLINE: + escape_html(html, node->as.literal.data, node->as.literal.len); + break; + + case CMARK_NODE_LINEBREAK: + case CMARK_NODE_SOFTBREAK: + cmark_strbuf_putc(html, ' '); + break; + + default: + break; + } + return 1; + } + + switch (node->type) { + case CMARK_NODE_DOCUMENT: + break; + + case CMARK_NODE_BLOCK_QUOTE: + if (entering) { + cr(html); + cmark_strbuf_puts(html, "<blockquote"); + S_render_sourcepos(node, html, options); + cmark_strbuf_puts(html, ">\n"); + } else { + cr(html); + cmark_strbuf_puts(html, "</blockquote>\n"); + } + break; + + case CMARK_NODE_LIST: { + cmark_list_type list_type = node->as.list.list_type; + int start = node->as.list.start; + + if (entering) { + cr(html); + if (list_type == CMARK_BULLET_LIST) { + cmark_strbuf_puts(html, "<ul"); + S_render_sourcepos(node, html, options); + cmark_strbuf_puts(html, ">\n"); + } else if (start == 1) { + cmark_strbuf_puts(html, "<ol"); + S_render_sourcepos(node, html, options); + cmark_strbuf_puts(html, ">\n"); + } else { + snprintf(buffer, BUFFER_SIZE, "<ol start=\"%d\"", start); + cmark_strbuf_puts(html, buffer); + S_render_sourcepos(node, html, options); + cmark_strbuf_puts(html, ">\n"); + } + } else { + cmark_strbuf_puts(html, + list_type == CMARK_BULLET_LIST ? "</ul>\n" : "</ol>\n"); + } + break; + } + + case CMARK_NODE_ITEM: + if (entering) { + cr(html); + cmark_strbuf_puts(html, "<li"); + S_render_sourcepos(node, html, options); + cmark_strbuf_putc(html, '>'); + } else { + cmark_strbuf_puts(html, "</li>\n"); + } + break; + + case CMARK_NODE_HEADING: + if (entering) { + cr(html); + start_heading[2] = (char)('0' + node->as.heading.level); + cmark_strbuf_puts(html, start_heading); + S_render_sourcepos(node, html, options); + cmark_strbuf_putc(html, '>'); + } else { + end_heading[3] = (char)('0' + node->as.heading.level); + cmark_strbuf_puts(html, end_heading); + cmark_strbuf_puts(html, ">\n"); + } + break; + + case CMARK_NODE_CODE_BLOCK: + cr(html); + + if (node->as.code.info.len == 0) { + cmark_strbuf_puts(html, "<pre"); + S_render_sourcepos(node, html, options); + cmark_strbuf_puts(html, "><code>"); + } else { + bufsize_t first_tag = 0; + while (first_tag < node->as.code.info.len && + !cmark_isspace(node->as.code.info.data[first_tag])) { + first_tag += 1; + } + + cmark_strbuf_puts(html, "<pre"); + S_render_sourcepos(node, html, options); + cmark_strbuf_puts(html, "><code class=\"language-"); + escape_html(html, node->as.code.info.data, first_tag); + cmark_strbuf_puts(html, "\">"); + } + + escape_html(html, node->as.code.literal.data, node->as.code.literal.len); + cmark_strbuf_puts(html, "</code></pre>\n"); + break; + + case CMARK_NODE_HTML_BLOCK: + cr(html); + if (!(options & CMARK_OPT_UNSAFE)) { + cmark_strbuf_puts(html, "<!-- raw HTML omitted -->"); + } else { + cmark_strbuf_put(html, node->as.literal.data, node->as.literal.len); + } + cr(html); + break; + + case CMARK_NODE_CUSTOM_BLOCK: + cr(html); + if (entering) { + cmark_strbuf_put(html, node->as.custom.on_enter.data, + node->as.custom.on_enter.len); + } else { + cmark_strbuf_put(html, node->as.custom.on_exit.data, + node->as.custom.on_exit.len); + } + cr(html); + break; + + case CMARK_NODE_THEMATIC_BREAK: + cr(html); + cmark_strbuf_puts(html, "<hr"); + S_render_sourcepos(node, html, options); + cmark_strbuf_puts(html, " />\n"); + break; + + case CMARK_NODE_PARAGRAPH: + parent = cmark_node_parent(node); + grandparent = cmark_node_parent(parent); + if (grandparent != NULL && grandparent->type == CMARK_NODE_LIST) { + tight = grandparent->as.list.tight; + } else { + tight = false; + } + if (!tight) { + if (entering) { + cr(html); + cmark_strbuf_puts(html, "<p"); + S_render_sourcepos(node, html, options); + cmark_strbuf_putc(html, '>'); + } else { + cmark_strbuf_puts(html, "</p>\n"); + } + } + break; + + case CMARK_NODE_TEXT: + escape_html(html, node->as.literal.data, node->as.literal.len); + break; + + case CMARK_NODE_LINEBREAK: + cmark_strbuf_puts(html, "<br />\n"); + break; + + case CMARK_NODE_SOFTBREAK: + if (options & CMARK_OPT_HARDBREAKS) { + cmark_strbuf_puts(html, "<br />\n"); + } else if (options & CMARK_OPT_NOBREAKS) { + cmark_strbuf_putc(html, ' '); + } else { + cmark_strbuf_putc(html, '\n'); + } + break; + + case CMARK_NODE_CODE: + cmark_strbuf_puts(html, "<code>"); + escape_html(html, node->as.literal.data, node->as.literal.len); + cmark_strbuf_puts(html, "</code>"); + break; + + case CMARK_NODE_HTML_INLINE: + if (!(options & CMARK_OPT_UNSAFE)) { + cmark_strbuf_puts(html, "<!-- raw HTML omitted -->"); + } else { + cmark_strbuf_put(html, node->as.literal.data, node->as.literal.len); + } + break; + + case CMARK_NODE_CUSTOM_INLINE: + if (entering) { + cmark_strbuf_put(html, node->as.custom.on_enter.data, + node->as.custom.on_enter.len); + } else { + cmark_strbuf_put(html, node->as.custom.on_exit.data, + node->as.custom.on_exit.len); + } + break; + + case CMARK_NODE_STRONG: + if (entering) { + cmark_strbuf_puts(html, "<strong>"); + } else { + cmark_strbuf_puts(html, "</strong>"); + } + break; + + case CMARK_NODE_EMPH: + if (entering) { + cmark_strbuf_puts(html, "<em>"); + } else { + cmark_strbuf_puts(html, "</em>"); + } + break; + + case CMARK_NODE_LINK: + if (entering) { + cmark_strbuf_puts(html, "<a href=\""); + if ((options & CMARK_OPT_UNSAFE) || + !(scan_dangerous_url(&node->as.link.url, 0))) { + houdini_escape_href(html, node->as.link.url.data, + node->as.link.url.len); + } + if (node->as.link.title.len) { + cmark_strbuf_puts(html, "\" title=\""); + escape_html(html, node->as.link.title.data, node->as.link.title.len); + } + cmark_strbuf_puts(html, "\">"); + } else { + cmark_strbuf_puts(html, "</a>"); + } + break; + + case CMARK_NODE_IMAGE: + if (entering) { + cmark_strbuf_puts(html, "<img src=\""); + if ((options & CMARK_OPT_UNSAFE) || + !(scan_dangerous_url(&node->as.link.url, 0))) { + houdini_escape_href(html, node->as.link.url.data, + node->as.link.url.len); + } + cmark_strbuf_puts(html, "\" alt=\""); + state->plain = node; + } else { + if (node->as.link.title.len) { + cmark_strbuf_puts(html, "\" title=\""); + escape_html(html, node->as.link.title.data, node->as.link.title.len); + } + + cmark_strbuf_puts(html, "\" />"); + } + break; + + default: + assert(false); + break; + } + + // cmark_strbuf_putc(html, 'x'); + return 1; +} + +char *cmark_render_html(cmark_node *root, int options) { + char *result; + cmark_strbuf html = CMARK_BUF_INIT(cmark_node_mem(root)); + cmark_event_type ev_type; + cmark_node *cur; + struct render_state state = {&html, NULL}; + cmark_iter *iter = cmark_iter_new(root); + + while ((ev_type = cmark_iter_next(iter)) != CMARK_EVENT_DONE) { + cur = cmark_iter_get_node(iter); + S_render_node(cur, ev_type, &state, options); + } + result = (char *)cmark_strbuf_detach(&html); + + cmark_iter_free(iter); + return result; +} diff --git a/Example/Pods/Down/Source/cmark/include/module.modulemap b/Example/Pods/Down/Source/cmark/include/module.modulemap new file mode 100644 index 000000000..e63fc6c27 --- /dev/null +++ b/Example/Pods/Down/Source/cmark/include/module.modulemap @@ -0,0 +1,4 @@ +module libcmark [system][extern_c] { + header "../node.h" + export * +} diff --git a/Example/Pods/Down/Source/cmark/inlines.c b/Example/Pods/Down/Source/cmark/inlines.c new file mode 100755 index 000000000..e6b491ffa --- /dev/null +++ b/Example/Pods/Down/Source/cmark/inlines.c @@ -0,0 +1,1384 @@ +#include <stdlib.h> +#include <string.h> +#include <stdio.h> + +#include "cmark_ctype.h" +#include "config.h" +#include "node.h" +#include "parser.h" +#include "references.h" +#include "cmark.h" +#include "houdini.h" +#include "utf8.h" +#include "scanners.h" +#include "inlines.h" + +static const char *EMDASH = "\xE2\x80\x94"; +static const char *ENDASH = "\xE2\x80\x93"; +static const char *ELLIPSES = "\xE2\x80\xA6"; +static const char *LEFTDOUBLEQUOTE = "\xE2\x80\x9C"; +static const char *RIGHTDOUBLEQUOTE = "\xE2\x80\x9D"; +static const char *LEFTSINGLEQUOTE = "\xE2\x80\x98"; +static const char *RIGHTSINGLEQUOTE = "\xE2\x80\x99"; + +// Macros for creating various kinds of simple. +#define make_str(subj, sc, ec, s) make_literal(subj, CMARK_NODE_TEXT, sc, ec, s) +#define make_code(subj, sc, ec, s) make_literal(subj, CMARK_NODE_CODE, sc, ec, s) +#define make_raw_html(subj, sc, ec, s) make_literal(subj, CMARK_NODE_HTML_INLINE, sc, ec, s) +#define make_linebreak(mem) make_simple(mem, CMARK_NODE_LINEBREAK) +#define make_softbreak(mem) make_simple(mem, CMARK_NODE_SOFTBREAK) +#define make_emph(mem) make_simple(mem, CMARK_NODE_EMPH) +#define make_strong(mem) make_simple(mem, CMARK_NODE_STRONG) + +#define MAXBACKTICKS 1000 + +typedef struct delimiter { + struct delimiter *previous; + struct delimiter *next; + cmark_node *inl_text; + bufsize_t length; + unsigned char delim_char; + bool can_open; + bool can_close; +} delimiter; + +typedef struct bracket { + struct bracket *previous; + struct delimiter *previous_delimiter; + cmark_node *inl_text; + bufsize_t position; + bool image; + bool active; + bool bracket_after; +} bracket; + +typedef struct { + cmark_mem *mem; + cmark_chunk input; + int line; + bufsize_t pos; + int block_offset; + int column_offset; + cmark_reference_map *refmap; + delimiter *last_delim; + bracket *last_bracket; + bufsize_t backticks[MAXBACKTICKS + 1]; + bool scanned_for_backticks; +} subject; + +static CMARK_INLINE bool S_is_line_end_char(char c) { + return (c == '\n' || c == '\r'); +} + +static delimiter *S_insert_emph(subject *subj, delimiter *opener, + delimiter *closer); + +static int parse_inline(subject *subj, cmark_node *parent, int options); + +static void subject_from_buf(cmark_mem *mem, int line_number, int block_offset, subject *e, + cmark_chunk *chunk, cmark_reference_map *refmap); +static bufsize_t subject_find_special_char(subject *subj, int options); + +// Create an inline with a literal string value. +static CMARK_INLINE cmark_node *make_literal(subject *subj, cmark_node_type t, + int start_column, int end_column, + cmark_chunk s) { + cmark_node *e = (cmark_node *)subj->mem->calloc(1, sizeof(*e)); + cmark_strbuf_init(subj->mem, &e->content, 0); + e->type = (uint16_t)t; + e->as.literal = s; + e->start_line = e->end_line = subj->line; + // columns are 1 based. + e->start_column = start_column + 1 + subj->column_offset + subj->block_offset; + e->end_column = end_column + 1 + subj->column_offset + subj->block_offset; + return e; +} + +// Create an inline with no value. +static CMARK_INLINE cmark_node *make_simple(cmark_mem *mem, cmark_node_type t) { + cmark_node *e = (cmark_node *)mem->calloc(1, sizeof(*e)); + cmark_strbuf_init(mem, &e->content, 0); + e->type = t; + return e; +} + +// Like make_str, but parses entities. +static cmark_node *make_str_with_entities(subject *subj, + int start_column, int end_column, + cmark_chunk *content) { + cmark_strbuf unescaped = CMARK_BUF_INIT(subj->mem); + + if (houdini_unescape_html(&unescaped, content->data, content->len)) { + return make_str(subj, start_column, end_column, cmark_chunk_buf_detach(&unescaped)); + } else { + return make_str(subj, start_column, end_column, *content); + } +} + +// Duplicate a chunk by creating a copy of the buffer not by reusing the +// buffer like cmark_chunk_dup does. +static cmark_chunk chunk_clone(cmark_mem *mem, cmark_chunk *src) { + cmark_chunk c; + bufsize_t len = src->len; + + c.len = len; + c.data = (unsigned char *)mem->calloc(len + 1, 1); + c.alloc = 1; + if (len) + memcpy(c.data, src->data, len); + c.data[len] = '\0'; + + return c; +} + +static cmark_chunk cmark_clean_autolink(cmark_mem *mem, cmark_chunk *url, + int is_email) { + cmark_strbuf buf = CMARK_BUF_INIT(mem); + + cmark_chunk_trim(url); + + if (url->len == 0) { + cmark_chunk result = CMARK_CHUNK_EMPTY; + return result; + } + + if (is_email) + cmark_strbuf_puts(&buf, "mailto:"); + + houdini_unescape_html_f(&buf, url->data, url->len); + return cmark_chunk_buf_detach(&buf); +} + +static CMARK_INLINE cmark_node *make_autolink(subject *subj, + int start_column, int end_column, + cmark_chunk url, int is_email) { + cmark_node *link = make_simple(subj->mem, CMARK_NODE_LINK); + link->as.link.url = cmark_clean_autolink(subj->mem, &url, is_email); + link->as.link.title = cmark_chunk_literal(""); + link->start_line = link->end_line = subj->line; + link->start_column = start_column + 1; + link->end_column = end_column + 1; + cmark_node_append_child(link, make_str_with_entities(subj, start_column + 1, end_column - 1, &url)); + return link; +} + +static void subject_from_buf(cmark_mem *mem, int line_number, int block_offset, subject *e, + cmark_chunk *chunk, cmark_reference_map *refmap) { + int i; + e->mem = mem; + e->input = *chunk; + e->line = line_number; + e->pos = 0; + e->block_offset = block_offset; + e->column_offset = 0; + e->refmap = refmap; + e->last_delim = NULL; + e->last_bracket = NULL; + for (i = 0; i <= MAXBACKTICKS; i++) { + e->backticks[i] = 0; + } + e->scanned_for_backticks = false; +} + +static CMARK_INLINE int isbacktick(int c) { return (c == '`'); } + +static CMARK_INLINE unsigned char peek_char(subject *subj) { + // NULL bytes should have been stripped out by now. If they're + // present, it's a programming error: + assert(!(subj->pos < subj->input.len && subj->input.data[subj->pos] == 0)); + return (subj->pos < subj->input.len) ? subj->input.data[subj->pos] : 0; +} + +static CMARK_INLINE unsigned char peek_at(subject *subj, bufsize_t pos) { + return subj->input.data[pos]; +} + +// Return true if there are more characters in the subject. +static CMARK_INLINE int is_eof(subject *subj) { + return (subj->pos >= subj->input.len); +} + +// Advance the subject. Doesn't check for eof. +#define advance(subj) (subj)->pos += 1 + +static CMARK_INLINE bool skip_spaces(subject *subj) { + bool skipped = false; + while (peek_char(subj) == ' ' || peek_char(subj) == '\t') { + advance(subj); + skipped = true; + } + return skipped; +} + +static CMARK_INLINE bool skip_line_end(subject *subj) { + bool seen_line_end_char = false; + if (peek_char(subj) == '\r') { + advance(subj); + seen_line_end_char = true; + } + if (peek_char(subj) == '\n') { + advance(subj); + seen_line_end_char = true; + } + return seen_line_end_char || is_eof(subj); +} + +// Take characters while a predicate holds, and return a string. +static CMARK_INLINE cmark_chunk take_while(subject *subj, int (*f)(int)) { + unsigned char c; + bufsize_t startpos = subj->pos; + bufsize_t len = 0; + + while ((c = peek_char(subj)) && (*f)(c)) { + advance(subj); + len++; + } + + return cmark_chunk_dup(&subj->input, startpos, len); +} + +// Return the number of newlines in a given span of text in a subject. If +// the number is greater than zero, also return the number of characters +// between the last newline and the end of the span in `since_newline`. +static int count_newlines(subject *subj, bufsize_t from, bufsize_t len, int *since_newline) { + int nls = 0; + int since_nl = 0; + + while (len--) { + if (subj->input.data[from++] == '\n') { + ++nls; + since_nl = 0; + } else { + ++since_nl; + } + } + + if (!nls) + return 0; + + *since_newline = since_nl; + return nls; +} + +// Adjust `node`'s `end_line`, `end_column`, and `subj`'s `line` and +// `column_offset` according to the number of newlines in a just-matched span +// of text in `subj`. +static void adjust_subj_node_newlines(subject *subj, cmark_node *node, int matchlen, int extra, int options) { + if (!(options & CMARK_OPT_SOURCEPOS)) { + return; + } + + int since_newline; + int newlines = count_newlines(subj, subj->pos - matchlen - extra, matchlen, &since_newline); + if (newlines) { + subj->line += newlines; + node->end_line += newlines; + node->end_column = since_newline; + subj->column_offset = -subj->pos + since_newline + extra; + } +} + +// Try to process a backtick code span that began with a +// span of ticks of length openticklength length (already +// parsed). Return 0 if you don't find matching closing +// backticks, otherwise return the position in the subject +// after the closing backticks. +static bufsize_t scan_to_closing_backticks(subject *subj, + bufsize_t openticklength) { + + bool found = false; + if (openticklength > MAXBACKTICKS) { + // we limit backtick string length because of the array subj->backticks: + return 0; + } + if (subj->scanned_for_backticks && + subj->backticks[openticklength] <= subj->pos) { + // return if we already know there's no closer + return 0; + } + while (!found) { + // read non backticks + unsigned char c; + while ((c = peek_char(subj)) && c != '`') { + advance(subj); + } + if (is_eof(subj)) { + break; + } + bufsize_t numticks = 0; + while (peek_char(subj) == '`') { + advance(subj); + numticks++; + } + // store position of ender + if (numticks <= MAXBACKTICKS) { + subj->backticks[numticks] = subj->pos - numticks; + } + if (numticks == openticklength) { + return (subj->pos); + } + } + // got through whole input without finding closer + subj->scanned_for_backticks = true; + return 0; +} + +// Destructively modify string, converting newlines to +// spaces, then removing a single leading + trailing space, +// unless the code span consists entirely of space characters. +static void S_normalize_code(cmark_strbuf *s) { + bufsize_t r, w; + bool contains_nonspace = false; + + for (r = 0, w = 0; r < s->size; ++r) { + switch (s->ptr[r]) { + case '\r': + if (s->ptr[r + 1] != '\n') { + s->ptr[w++] = ' '; + } + break; + case '\n': + s->ptr[w++] = ' '; + break; + default: + s->ptr[w++] = s->ptr[r]; + } + if (s->ptr[r] != ' ') { + contains_nonspace = true; + } + } + + // begins and ends with space? + if (contains_nonspace && + s->ptr[0] == ' ' && s->ptr[w - 1] == ' ') { + cmark_strbuf_drop(s, 1); + cmark_strbuf_truncate(s, w - 2); + } else { + cmark_strbuf_truncate(s, w); + } + +} + + +// Parse backtick code section or raw backticks, return an inline. +// Assumes that the subject has a backtick at the current position. +static cmark_node *handle_backticks(subject *subj, int options) { + cmark_chunk openticks = take_while(subj, isbacktick); + bufsize_t startpos = subj->pos; + bufsize_t endpos = scan_to_closing_backticks(subj, openticks.len); + + if (endpos == 0) { // not found + subj->pos = startpos; // rewind + return make_str(subj, subj->pos, subj->pos, openticks); + } else { + cmark_strbuf buf = CMARK_BUF_INIT(subj->mem); + + cmark_strbuf_set(&buf, subj->input.data + startpos, + endpos - startpos - openticks.len); + S_normalize_code(&buf); + + cmark_node *node = make_code(subj, startpos, endpos - openticks.len - 1, cmark_chunk_buf_detach(&buf)); + adjust_subj_node_newlines(subj, node, endpos - startpos, openticks.len, options); + return node; + } +} + + +// Scan ***, **, or * and return number scanned, or 0. +// Advances position. +static int scan_delims(subject *subj, unsigned char c, bool *can_open, + bool *can_close) { + int numdelims = 0; + bufsize_t before_char_pos; + int32_t after_char = 0; + int32_t before_char = 0; + int len; + bool left_flanking, right_flanking; + + if (subj->pos == 0) { + before_char = 10; + } else { + before_char_pos = subj->pos - 1; + // walk back to the beginning of the UTF_8 sequence: + while (peek_at(subj, before_char_pos) >> 6 == 2 && before_char_pos > 0) { + before_char_pos -= 1; + } + len = cmark_utf8proc_iterate(subj->input.data + before_char_pos, + subj->pos - before_char_pos, &before_char); + if (len == -1) { + before_char = 10; + } + } + + if (c == '\'' || c == '"') { + numdelims++; + advance(subj); // limit to 1 delim for quotes + } else { + while (peek_char(subj) == c) { + numdelims++; + advance(subj); + } + } + + len = cmark_utf8proc_iterate(subj->input.data + subj->pos, + subj->input.len - subj->pos, &after_char); + if (len == -1) { + after_char = 10; + } + left_flanking = numdelims > 0 && !cmark_utf8proc_is_space(after_char) && + (!cmark_utf8proc_is_punctuation(after_char) || + cmark_utf8proc_is_space(before_char) || + cmark_utf8proc_is_punctuation(before_char)); + right_flanking = numdelims > 0 && !cmark_utf8proc_is_space(before_char) && + (!cmark_utf8proc_is_punctuation(before_char) || + cmark_utf8proc_is_space(after_char) || + cmark_utf8proc_is_punctuation(after_char)); + if (c == '_') { + *can_open = left_flanking && + (!right_flanking || cmark_utf8proc_is_punctuation(before_char)); + *can_close = right_flanking && + (!left_flanking || cmark_utf8proc_is_punctuation(after_char)); + } else if (c == '\'' || c == '"') { + *can_open = left_flanking && !right_flanking && + before_char != ']' && before_char != ')'; + *can_close = right_flanking; + } else { + *can_open = left_flanking; + *can_close = right_flanking; + } + return numdelims; +} + +/* +static void print_delimiters(subject *subj) +{ + delimiter *delim; + delim = subj->last_delim; + while (delim != NULL) { + printf("Item at stack pos %p: %d %d %d next(%p) prev(%p)\n", + (void*)delim, delim->delim_char, + delim->can_open, delim->can_close, + (void*)delim->next, (void*)delim->previous); + delim = delim->previous; + } +} +*/ + +static void remove_delimiter(subject *subj, delimiter *delim) { + if (delim == NULL) + return; + if (delim->next == NULL) { + // end of list: + assert(delim == subj->last_delim); + subj->last_delim = delim->previous; + } else { + delim->next->previous = delim->previous; + } + if (delim->previous != NULL) { + delim->previous->next = delim->next; + } + subj->mem->free(delim); +} + +static void pop_bracket(subject *subj) { + bracket *b; + if (subj->last_bracket == NULL) + return; + b = subj->last_bracket; + subj->last_bracket = subj->last_bracket->previous; + subj->mem->free(b); +} + +static void push_delimiter(subject *subj, unsigned char c, bool can_open, + bool can_close, cmark_node *inl_text) { + delimiter *delim = (delimiter *)subj->mem->calloc(1, sizeof(delimiter)); + delim->delim_char = c; + delim->can_open = can_open; + delim->can_close = can_close; + delim->inl_text = inl_text; + delim->length = inl_text->as.literal.len; + delim->previous = subj->last_delim; + delim->next = NULL; + if (delim->previous != NULL) { + delim->previous->next = delim; + } + subj->last_delim = delim; +} + +static void push_bracket(subject *subj, bool image, cmark_node *inl_text) { + bracket *b = (bracket *)subj->mem->calloc(1, sizeof(bracket)); + if (subj->last_bracket != NULL) { + subj->last_bracket->bracket_after = true; + } + b->image = image; + b->active = true; + b->inl_text = inl_text; + b->previous = subj->last_bracket; + b->previous_delimiter = subj->last_delim; + b->position = subj->pos; + b->bracket_after = false; + subj->last_bracket = b; +} + +// Assumes the subject has a c at the current position. +static cmark_node *handle_delim(subject *subj, unsigned char c, bool smart) { + bufsize_t numdelims; + cmark_node *inl_text; + bool can_open, can_close; + cmark_chunk contents; + + numdelims = scan_delims(subj, c, &can_open, &can_close); + + if (c == '\'' && smart) { + contents = cmark_chunk_literal(RIGHTSINGLEQUOTE); + } else if (c == '"' && smart) { + contents = + cmark_chunk_literal(can_close ? RIGHTDOUBLEQUOTE : LEFTDOUBLEQUOTE); + } else { + contents = cmark_chunk_dup(&subj->input, subj->pos - numdelims, numdelims); + } + + inl_text = make_str(subj, subj->pos - numdelims, subj->pos - 1, contents); + + if ((can_open || can_close) && (!(c == '\'' || c == '"') || smart)) { + push_delimiter(subj, c, can_open, can_close, inl_text); + } + + return inl_text; +} + +// Assumes we have a hyphen at the current position. +static cmark_node *handle_hyphen(subject *subj, bool smart) { + int startpos = subj->pos; + + advance(subj); + + if (!smart || peek_char(subj) != '-') { + return make_str(subj, subj->pos - 1, subj->pos - 1, cmark_chunk_literal("-")); + } + + while (smart && peek_char(subj) == '-') { + advance(subj); + } + + int numhyphens = subj->pos - startpos; + int en_count = 0; + int em_count = 0; + int i; + cmark_strbuf buf = CMARK_BUF_INIT(subj->mem); + + if (numhyphens % 3 == 0) { // if divisible by 3, use all em dashes + em_count = numhyphens / 3; + } else if (numhyphens % 2 == 0) { // if divisible by 2, use all en dashes + en_count = numhyphens / 2; + } else if (numhyphens % 3 == 2) { // use one en dash at end + en_count = 1; + em_count = (numhyphens - 2) / 3; + } else { // use two en dashes at the end + en_count = 2; + em_count = (numhyphens - 4) / 3; + } + + for (i = em_count; i > 0; i--) { + cmark_strbuf_puts(&buf, EMDASH); + } + + for (i = en_count; i > 0; i--) { + cmark_strbuf_puts(&buf, ENDASH); + } + + return make_str(subj, startpos, subj->pos - 1, cmark_chunk_buf_detach(&buf)); +} + +// Assumes we have a period at the current position. +static cmark_node *handle_period(subject *subj, bool smart) { + advance(subj); + if (smart && peek_char(subj) == '.') { + advance(subj); + if (peek_char(subj) == '.') { + advance(subj); + return make_str(subj, subj->pos - 3, subj->pos - 1, cmark_chunk_literal(ELLIPSES)); + } else { + return make_str(subj, subj->pos - 2, subj->pos - 1, cmark_chunk_literal("..")); + } + } else { + return make_str(subj, subj->pos - 1, subj->pos - 1, cmark_chunk_literal(".")); + } +} + +static void process_emphasis(subject *subj, delimiter *stack_bottom) { + delimiter *closer = subj->last_delim; + delimiter *opener; + delimiter *old_closer; + bool opener_found; + int openers_bottom_index = 0; + delimiter *openers_bottom[6] = {stack_bottom, stack_bottom, stack_bottom, + stack_bottom, stack_bottom, stack_bottom}; + + // move back to first relevant delim. + while (closer != NULL && closer->previous != stack_bottom) { + closer = closer->previous; + } + + // now move forward, looking for closers, and handling each + while (closer != NULL) { + if (closer->can_close) { + switch (closer->delim_char) { + case '"': + openers_bottom_index = 0; + break; + case '\'': + openers_bottom_index = 1; + break; + case '_': + openers_bottom_index = 2; + break; + case '*': + openers_bottom_index = 3 + (closer->length % 3); + break; + default: + assert(false); + } + + // Now look backwards for first matching opener: + opener = closer->previous; + opener_found = false; + while (opener != NULL && opener != openers_bottom[openers_bottom_index]) { + if (opener->can_open && opener->delim_char == closer->delim_char) { + // interior closer of size 2 can't match opener of size 1 + // or of size 1 can't match 2 + if (!(closer->can_open || opener->can_close) || + closer->length % 3 == 0 || + (opener->length + closer->length) % 3 != 0) { + opener_found = true; + break; + } + } + opener = opener->previous; + } + old_closer = closer; + if (closer->delim_char == '*' || closer->delim_char == '_') { + if (opener_found) { + closer = S_insert_emph(subj, opener, closer); + } else { + closer = closer->next; + } + } else if (closer->delim_char == '\'') { + cmark_chunk_free(subj->mem, &closer->inl_text->as.literal); + closer->inl_text->as.literal = cmark_chunk_literal(RIGHTSINGLEQUOTE); + if (opener_found) { + cmark_chunk_free(subj->mem, &opener->inl_text->as.literal); + opener->inl_text->as.literal = cmark_chunk_literal(LEFTSINGLEQUOTE); + } + closer = closer->next; + } else if (closer->delim_char == '"') { + cmark_chunk_free(subj->mem, &closer->inl_text->as.literal); + closer->inl_text->as.literal = cmark_chunk_literal(RIGHTDOUBLEQUOTE); + if (opener_found) { + cmark_chunk_free(subj->mem, &opener->inl_text->as.literal); + opener->inl_text->as.literal = cmark_chunk_literal(LEFTDOUBLEQUOTE); + } + closer = closer->next; + } + if (!opener_found) { + // set lower bound for future searches for openers + openers_bottom[openers_bottom_index] = old_closer->previous; + if (!old_closer->can_open) { + // we can remove a closer that can't be an + // opener, once we've seen there's no + // matching opener: + remove_delimiter(subj, old_closer); + } + } + } else { + closer = closer->next; + } + } + // free all delimiters in list until stack_bottom: + while (subj->last_delim != NULL && subj->last_delim != stack_bottom) { + remove_delimiter(subj, subj->last_delim); + } +} + +static delimiter *S_insert_emph(subject *subj, delimiter *opener, + delimiter *closer) { + delimiter *delim, *tmp_delim; + bufsize_t use_delims; + cmark_node *opener_inl = opener->inl_text; + cmark_node *closer_inl = closer->inl_text; + bufsize_t opener_num_chars = opener_inl->as.literal.len; + bufsize_t closer_num_chars = closer_inl->as.literal.len; + cmark_node *tmp, *tmpnext, *emph; + + // calculate the actual number of characters used from this closer + use_delims = (closer_num_chars >= 2 && opener_num_chars >= 2) ? 2 : 1; + + // remove used characters from associated inlines. + opener_num_chars -= use_delims; + closer_num_chars -= use_delims; + opener_inl->as.literal.len = opener_num_chars; + closer_inl->as.literal.len = closer_num_chars; + + // free delimiters between opener and closer + delim = closer->previous; + while (delim != NULL && delim != opener) { + tmp_delim = delim->previous; + remove_delimiter(subj, delim); + delim = tmp_delim; + } + + // create new emph or strong, and splice it in to our inlines + // between the opener and closer + emph = use_delims == 1 ? make_emph(subj->mem) : make_strong(subj->mem); + + tmp = opener_inl->next; + while (tmp && tmp != closer_inl) { + tmpnext = tmp->next; + cmark_node_append_child(emph, tmp); + tmp = tmpnext; + } + cmark_node_insert_after(opener_inl, emph); + + emph->start_line = opener_inl->start_line; + emph->end_line = closer_inl->end_line; + emph->start_column = opener_inl->start_column; + emph->end_column = closer_inl->end_column; + + // if opener has 0 characters, remove it and its associated inline + if (opener_num_chars == 0) { + cmark_node_free(opener_inl); + remove_delimiter(subj, opener); + } + + // if closer has 0 characters, remove it and its associated inline + if (closer_num_chars == 0) { + // remove empty closer inline + cmark_node_free(closer_inl); + // remove closer from list + tmp_delim = closer->next; + remove_delimiter(subj, closer); + closer = tmp_delim; + } + + return closer; +} + +// Parse backslash-escape or just a backslash, returning an inline. +static cmark_node *handle_backslash(subject *subj) { + advance(subj); + unsigned char nextchar = peek_char(subj); + if (cmark_ispunct( + nextchar)) { // only ascii symbols and newline can be escaped + advance(subj); + return make_str(subj, subj->pos - 2, subj->pos - 1, cmark_chunk_dup(&subj->input, subj->pos - 1, 1)); + } else if (!is_eof(subj) && skip_line_end(subj)) { + return make_linebreak(subj->mem); + } else { + return make_str(subj, subj->pos - 1, subj->pos - 1, cmark_chunk_literal("\\")); + } +} + +// Parse an entity or a regular "&" string. +// Assumes the subject has an '&' character at the current position. +static cmark_node *handle_entity(subject *subj) { + cmark_strbuf ent = CMARK_BUF_INIT(subj->mem); + bufsize_t len; + + advance(subj); + + len = houdini_unescape_ent(&ent, subj->input.data + subj->pos, + subj->input.len - subj->pos); + + if (len == 0) + return make_str(subj, subj->pos - 1, subj->pos - 1, cmark_chunk_literal("&")); + + subj->pos += len; + return make_str(subj, subj->pos - 1 - len, subj->pos - 1, cmark_chunk_buf_detach(&ent)); +} + +// Clean a URL: remove surrounding whitespace, and remove \ that escape +// punctuation. +cmark_chunk cmark_clean_url(cmark_mem *mem, cmark_chunk *url) { + cmark_strbuf buf = CMARK_BUF_INIT(mem); + + cmark_chunk_trim(url); + + if (url->len == 0) { + cmark_chunk result = CMARK_CHUNK_EMPTY; + return result; + } + + houdini_unescape_html_f(&buf, url->data, url->len); + + cmark_strbuf_unescape(&buf); + return cmark_chunk_buf_detach(&buf); +} + +cmark_chunk cmark_clean_title(cmark_mem *mem, cmark_chunk *title) { + cmark_strbuf buf = CMARK_BUF_INIT(mem); + unsigned char first, last; + + if (title->len == 0) { + cmark_chunk result = CMARK_CHUNK_EMPTY; + return result; + } + + first = title->data[0]; + last = title->data[title->len - 1]; + + // remove surrounding quotes if any: + if ((first == '\'' && last == '\'') || (first == '(' && last == ')') || + (first == '"' && last == '"')) { + houdini_unescape_html_f(&buf, title->data + 1, title->len - 2); + } else { + houdini_unescape_html_f(&buf, title->data, title->len); + } + + cmark_strbuf_unescape(&buf); + return cmark_chunk_buf_detach(&buf); +} + +// Parse an autolink or HTML tag. +// Assumes the subject has a '<' character at the current position. +static cmark_node *handle_pointy_brace(subject *subj, int options) { + bufsize_t matchlen = 0; + cmark_chunk contents; + + advance(subj); // advance past first < + + // first try to match a URL autolink + matchlen = scan_autolink_uri(&subj->input, subj->pos); + if (matchlen > 0) { + contents = cmark_chunk_dup(&subj->input, subj->pos, matchlen - 1); + subj->pos += matchlen; + + return make_autolink(subj, subj->pos - 1 - matchlen, subj->pos - 1, contents, 0); + } + + // next try to match an email autolink + matchlen = scan_autolink_email(&subj->input, subj->pos); + if (matchlen > 0) { + contents = cmark_chunk_dup(&subj->input, subj->pos, matchlen - 1); + subj->pos += matchlen; + + return make_autolink(subj, subj->pos - 1 - matchlen, subj->pos - 1, contents, 1); + } + + // finally, try to match an html tag + matchlen = scan_html_tag(&subj->input, subj->pos); + if (matchlen > 0) { + contents = cmark_chunk_dup(&subj->input, subj->pos - 1, matchlen + 1); + subj->pos += matchlen; + cmark_node *node = make_raw_html(subj, subj->pos - matchlen - 1, subj->pos - 1, contents); + adjust_subj_node_newlines(subj, node, matchlen, 1, options); + return node; + } + + // if nothing matches, just return the opening <: + return make_str(subj, subj->pos - 1, subj->pos - 1, cmark_chunk_literal("<")); +} + +// Parse a link label. Returns 1 if successful. +// Note: unescaped brackets are not allowed in labels. +// The label begins with `[` and ends with the first `]` character +// encountered. Backticks in labels do not start code spans. +static int link_label(subject *subj, cmark_chunk *raw_label) { + bufsize_t startpos = subj->pos; + int length = 0; + unsigned char c; + + // advance past [ + if (peek_char(subj) == '[') { + advance(subj); + } else { + return 0; + } + + while ((c = peek_char(subj)) && c != '[' && c != ']') { + if (c == '\\') { + advance(subj); + length++; + if (cmark_ispunct(peek_char(subj))) { + advance(subj); + length++; + } + } else { + advance(subj); + length++; + } + if (length > MAX_LINK_LABEL_LENGTH) { + goto noMatch; + } + } + + if (c == ']') { // match found + *raw_label = + cmark_chunk_dup(&subj->input, startpos + 1, subj->pos - (startpos + 1)); + cmark_chunk_trim(raw_label); + advance(subj); // advance past ] + return 1; + } + +noMatch: + subj->pos = startpos; // rewind + return 0; +} + +static bufsize_t manual_scan_link_url_2(cmark_chunk *input, bufsize_t offset, + cmark_chunk *output) { + bufsize_t i = offset; + size_t nb_p = 0; + + while (i < input->len) { + if (input->data[i] == '\\' && + i + 1 < input-> len && + cmark_ispunct(input->data[i+1])) + i += 2; + else if (input->data[i] == '(') { + ++nb_p; + ++i; + if (nb_p > 32) + return -1; + } else if (input->data[i] == ')') { + if (nb_p == 0) + break; + --nb_p; + ++i; + } else if (cmark_isspace(input->data[i])) { + if (i == offset) { + return -1; + } + break; + } else { + ++i; + } + } + + if (i >= input->len) + return -1; + + { + cmark_chunk result = {input->data + offset, i - offset, 0}; + *output = result; + } + return i - offset; +} + +static bufsize_t manual_scan_link_url(cmark_chunk *input, bufsize_t offset, + cmark_chunk *output) { + bufsize_t i = offset; + + if (i < input->len && input->data[i] == '<') { + ++i; + while (i < input->len) { + if (input->data[i] == '>') { + ++i; + break; + } else if (input->data[i] == '\\') + i += 2; + else if (input->data[i] == '\n' || input->data[i] == '<') + return -1; + else + ++i; + } + } else { + return manual_scan_link_url_2(input, offset, output); + } + + if (i >= input->len) + return -1; + + { + cmark_chunk result = {input->data + offset + 1, i - 2 - offset, 0}; + *output = result; + } + return i - offset; +} + +// Return a link, an image, or a literal close bracket. +static cmark_node *handle_close_bracket(subject *subj) { + bufsize_t initial_pos, after_link_text_pos; + bufsize_t endurl, starttitle, endtitle, endall; + bufsize_t sps, n; + cmark_reference *ref = NULL; + cmark_chunk url_chunk, title_chunk; + cmark_chunk url, title; + bracket *opener; + cmark_node *inl; + cmark_chunk raw_label; + int found_label; + cmark_node *tmp, *tmpnext; + bool is_image; + + advance(subj); // advance past ] + initial_pos = subj->pos; + + // get last [ or ![ + opener = subj->last_bracket; + + if (opener == NULL) { + return make_str(subj, subj->pos - 1, subj->pos - 1, cmark_chunk_literal("]")); + } + + if (!opener->active) { + // take delimiter off stack + pop_bracket(subj); + return make_str(subj, subj->pos - 1, subj->pos - 1, cmark_chunk_literal("]")); + } + + // If we got here, we matched a potential link/image text. + // Now we check to see if it's a link/image. + is_image = opener->image; + + after_link_text_pos = subj->pos; + + // First, look for an inline link. + if (peek_char(subj) == '(' && + ((sps = scan_spacechars(&subj->input, subj->pos + 1)) > -1) && + ((n = manual_scan_link_url(&subj->input, subj->pos + 1 + sps, + &url_chunk)) > -1)) { + + // try to parse an explicit link: + endurl = subj->pos + 1 + sps + n; + starttitle = endurl + scan_spacechars(&subj->input, endurl); + + // ensure there are spaces btw url and title + endtitle = (starttitle == endurl) + ? starttitle + : starttitle + scan_link_title(&subj->input, starttitle); + + endall = endtitle + scan_spacechars(&subj->input, endtitle); + + if (peek_at(subj, endall) == ')') { + subj->pos = endall + 1; + + title_chunk = + cmark_chunk_dup(&subj->input, starttitle, endtitle - starttitle); + url = cmark_clean_url(subj->mem, &url_chunk); + title = cmark_clean_title(subj->mem, &title_chunk); + cmark_chunk_free(subj->mem, &url_chunk); + cmark_chunk_free(subj->mem, &title_chunk); + goto match; + + } else { + // it could still be a shortcut reference link + subj->pos = after_link_text_pos; + } + } + + // Next, look for a following [link label] that matches in refmap. + // skip spaces + raw_label = cmark_chunk_literal(""); + found_label = link_label(subj, &raw_label); + if (!found_label) { + // If we have a shortcut reference link, back up + // to before the spacse we skipped. + subj->pos = initial_pos; + } + + if ((!found_label || raw_label.len == 0) && !opener->bracket_after) { + cmark_chunk_free(subj->mem, &raw_label); + raw_label = cmark_chunk_dup(&subj->input, opener->position, + initial_pos - opener->position - 1); + found_label = true; + } + + if (found_label) { + ref = cmark_reference_lookup(subj->refmap, &raw_label); + cmark_chunk_free(subj->mem, &raw_label); + } + + if (ref != NULL) { // found + url = chunk_clone(subj->mem, &ref->url); + title = chunk_clone(subj->mem, &ref->title); + goto match; + } else { + goto noMatch; + } + +noMatch: + // If we fall through to here, it means we didn't match a link: + pop_bracket(subj); // remove this opener from delimiter list + subj->pos = initial_pos; + return make_str(subj, subj->pos - 1, subj->pos - 1, cmark_chunk_literal("]")); + +match: + inl = make_simple(subj->mem, is_image ? CMARK_NODE_IMAGE : CMARK_NODE_LINK); + inl->as.link.url = url; + inl->as.link.title = title; + inl->start_line = inl->end_line = subj->line; + inl->start_column = opener->inl_text->start_column; + inl->end_column = subj->pos + subj->column_offset + subj->block_offset; + cmark_node_insert_before(opener->inl_text, inl); + // Add link text: + tmp = opener->inl_text->next; + while (tmp) { + tmpnext = tmp->next; + cmark_node_append_child(inl, tmp); + tmp = tmpnext; + } + + // Free the bracket [: + cmark_node_free(opener->inl_text); + + process_emphasis(subj, opener->previous_delimiter); + pop_bracket(subj); + + // Now, if we have a link, we also want to deactivate earlier link + // delimiters. (This code can be removed if we decide to allow links + // inside links.) + if (!is_image) { + opener = subj->last_bracket; + while (opener != NULL) { + if (!opener->image) { + if (!opener->active) { + break; + } else { + opener->active = false; + } + } + opener = opener->previous; + } + } + + return NULL; +} + +// Parse a hard or soft linebreak, returning an inline. +// Assumes the subject has a cr or newline at the current position. +static cmark_node *handle_newline(subject *subj) { + bufsize_t nlpos = subj->pos; + // skip over cr, crlf, or lf: + if (peek_at(subj, subj->pos) == '\r') { + advance(subj); + } + if (peek_at(subj, subj->pos) == '\n') { + advance(subj); + } + ++subj->line; + subj->column_offset = -subj->pos; + // skip spaces at beginning of line + skip_spaces(subj); + if (nlpos > 1 && peek_at(subj, nlpos - 1) == ' ' && + peek_at(subj, nlpos - 2) == ' ') { + return make_linebreak(subj->mem); + } else { + return make_softbreak(subj->mem); + } +} + +static bufsize_t subject_find_special_char(subject *subj, int options) { + // "\r\n\\`&_*[]<!" + static const int8_t SPECIAL_CHARS[256] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; + + // " ' . - + static const char SMART_PUNCT_CHARS[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }; + + bufsize_t n = subj->pos + 1; + + while (n < subj->input.len) { + if (SPECIAL_CHARS[subj->input.data[n]]) + return n; + if (options & CMARK_OPT_SMART && SMART_PUNCT_CHARS[subj->input.data[n]]) + return n; + n++; + } + + return subj->input.len; +} + +// Parse an inline, advancing subject, and add it as a child of parent. +// Return 0 if no inline can be parsed, 1 otherwise. +static int parse_inline(subject *subj, cmark_node *parent, int options) { + cmark_node *new_inl = NULL; + cmark_chunk contents; + unsigned char c; + bufsize_t startpos, endpos; + c = peek_char(subj); + if (c == 0) { + return 0; + } + switch (c) { + case '\r': + case '\n': + new_inl = handle_newline(subj); + break; + case '`': + new_inl = handle_backticks(subj, options); + break; + case '\\': + new_inl = handle_backslash(subj); + break; + case '&': + new_inl = handle_entity(subj); + break; + case '<': + new_inl = handle_pointy_brace(subj, options); + break; + case '*': + case '_': + case '\'': + case '"': + new_inl = handle_delim(subj, c, (options & CMARK_OPT_SMART) != 0); + break; + case '-': + new_inl = handle_hyphen(subj, (options & CMARK_OPT_SMART) != 0); + break; + case '.': + new_inl = handle_period(subj, (options & CMARK_OPT_SMART) != 0); + break; + case '[': + advance(subj); + new_inl = make_str(subj, subj->pos - 1, subj->pos - 1, cmark_chunk_literal("[")); + push_bracket(subj, false, new_inl); + break; + case ']': + new_inl = handle_close_bracket(subj); + break; + case '!': + advance(subj); + if (peek_char(subj) == '[') { + advance(subj); + new_inl = make_str(subj, subj->pos - 2, subj->pos - 1, cmark_chunk_literal("![")); + push_bracket(subj, true, new_inl); + } else { + new_inl = make_str(subj, subj->pos - 1, subj->pos - 1, cmark_chunk_literal("!")); + } + break; + default: + endpos = subject_find_special_char(subj, options); + contents = cmark_chunk_dup(&subj->input, subj->pos, endpos - subj->pos); + startpos = subj->pos; + subj->pos = endpos; + + // if we're at a newline, strip trailing spaces. + if (S_is_line_end_char(peek_char(subj))) { + cmark_chunk_rtrim(&contents); + } + + new_inl = make_str(subj, startpos, endpos - 1, contents); + } + if (new_inl != NULL) { + cmark_node_append_child(parent, new_inl); + } + + return 1; +} + +// Parse inlines from parent's string_content, adding as children of parent. +extern void cmark_parse_inlines(cmark_mem *mem, cmark_node *parent, + cmark_reference_map *refmap, int options) { + subject subj; + cmark_chunk content = {parent->content.ptr, parent->content.size, 0}; + subject_from_buf(mem, parent->start_line, parent->start_column - 1 + parent->internal_offset, &subj, &content, refmap); + cmark_chunk_rtrim(&subj.input); + + while (!is_eof(&subj) && parse_inline(&subj, parent, options)) + ; + + process_emphasis(&subj, NULL); + // free bracket and delim stack + while (subj.last_delim) { + remove_delimiter(&subj, subj.last_delim); + } + while (subj.last_bracket) { + pop_bracket(&subj); + } +} + +// Parse zero or more space characters, including at most one newline. +static void spnl(subject *subj) { + skip_spaces(subj); + if (skip_line_end(subj)) { + skip_spaces(subj); + } +} + +// Parse reference. Assumes string begins with '[' character. +// Modify refmap if a reference is encountered. +// Return 0 if no reference found, otherwise position of subject +// after reference is parsed. +bufsize_t cmark_parse_reference_inline(cmark_mem *mem, cmark_chunk *input, + cmark_reference_map *refmap) { + subject subj; + + cmark_chunk lab; + cmark_chunk url; + cmark_chunk title; + + bufsize_t matchlen = 0; + bufsize_t beforetitle; + + subject_from_buf(mem, -1, 0, &subj, input, NULL); + + // parse label: + if (!link_label(&subj, &lab) || lab.len == 0) + return 0; + + // colon: + if (peek_char(&subj) == ':') { + advance(&subj); + } else { + return 0; + } + + // parse link url: + spnl(&subj); + if ((matchlen = manual_scan_link_url(&subj.input, subj.pos, &url)) > -1) { + subj.pos += matchlen; + } else { + return 0; + } + + // parse optional link_title + beforetitle = subj.pos; + spnl(&subj); + matchlen = subj.pos == beforetitle ? 0 : scan_link_title(&subj.input, subj.pos); + if (matchlen) { + title = cmark_chunk_dup(&subj.input, subj.pos, matchlen); + subj.pos += matchlen; + } else { + subj.pos = beforetitle; + title = cmark_chunk_literal(""); + } + + // parse final spaces and newline: + skip_spaces(&subj); + if (!skip_line_end(&subj)) { + if (matchlen) { // try rewinding before title + subj.pos = beforetitle; + skip_spaces(&subj); + if (!skip_line_end(&subj)) { + return 0; + } + } else { + return 0; + } + } + // insert reference into refmap + cmark_reference_create(refmap, &lab, &url, &title); + return subj.pos; +} diff --git a/Example/Pods/Down/Source/cmark/inlines.h b/Example/Pods/Down/Source/cmark/inlines.h new file mode 100755 index 000000000..3eaf65ed6 --- /dev/null +++ b/Example/Pods/Down/Source/cmark/inlines.h @@ -0,0 +1,23 @@ +#ifndef CMARK_INLINES_H +#define CMARK_INLINES_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include <references.h> + +cmark_chunk cmark_clean_url(cmark_mem *mem, cmark_chunk *url); +cmark_chunk cmark_clean_title(cmark_mem *mem, cmark_chunk *title); + +void cmark_parse_inlines(cmark_mem *mem, cmark_node *parent, + cmark_reference_map *refmap, int options); + +bufsize_t cmark_parse_reference_inline(cmark_mem *mem, cmark_chunk *input, + cmark_reference_map *refmap); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Example/Pods/Down/Source/cmark/iterator.c b/Example/Pods/Down/Source/cmark/iterator.c new file mode 100755 index 000000000..f5cd80205 --- /dev/null +++ b/Example/Pods/Down/Source/cmark/iterator.c @@ -0,0 +1,121 @@ +#include <assert.h> +#include <stdlib.h> + +#include "config.h" +#include "node.h" +#include "cmark.h" +#include "iterator.h" + +static const int S_leaf_mask = + (1 << CMARK_NODE_HTML_BLOCK) | (1 << CMARK_NODE_THEMATIC_BREAK) | + (1 << CMARK_NODE_CODE_BLOCK) | (1 << CMARK_NODE_TEXT) | + (1 << CMARK_NODE_SOFTBREAK) | (1 << CMARK_NODE_LINEBREAK) | + (1 << CMARK_NODE_CODE) | (1 << CMARK_NODE_HTML_INLINE); + +cmark_iter *cmark_iter_new(cmark_node *root) { + if (root == NULL) { + return NULL; + } + cmark_mem *mem = root->content.mem; + cmark_iter *iter = (cmark_iter *)mem->calloc(1, sizeof(cmark_iter)); + iter->mem = mem; + iter->root = root; + iter->cur.ev_type = CMARK_EVENT_NONE; + iter->cur.node = NULL; + iter->next.ev_type = CMARK_EVENT_ENTER; + iter->next.node = root; + return iter; +} + +void cmark_iter_free(cmark_iter *iter) { iter->mem->free(iter); } + +static bool S_is_leaf(cmark_node *node) { + return ((1 << node->type) & S_leaf_mask) != 0; +} + +cmark_event_type cmark_iter_next(cmark_iter *iter) { + cmark_event_type ev_type = iter->next.ev_type; + cmark_node *node = iter->next.node; + + iter->cur.ev_type = ev_type; + iter->cur.node = node; + + if (ev_type == CMARK_EVENT_DONE) { + return ev_type; + } + + /* roll forward to next item, setting both fields */ + if (ev_type == CMARK_EVENT_ENTER && !S_is_leaf(node)) { + if (node->first_child == NULL) { + /* stay on this node but exit */ + iter->next.ev_type = CMARK_EVENT_EXIT; + } else { + iter->next.ev_type = CMARK_EVENT_ENTER; + iter->next.node = node->first_child; + } + } else if (node == iter->root) { + /* don't move past root */ + iter->next.ev_type = CMARK_EVENT_DONE; + iter->next.node = NULL; + } else if (node->next) { + iter->next.ev_type = CMARK_EVENT_ENTER; + iter->next.node = node->next; + } else if (node->parent) { + iter->next.ev_type = CMARK_EVENT_EXIT; + iter->next.node = node->parent; + } else { + assert(false); + iter->next.ev_type = CMARK_EVENT_DONE; + iter->next.node = NULL; + } + + return ev_type; +} + +void cmark_iter_reset(cmark_iter *iter, cmark_node *current, + cmark_event_type event_type) { + iter->next.ev_type = event_type; + iter->next.node = current; + cmark_iter_next(iter); +} + +cmark_node *cmark_iter_get_node(cmark_iter *iter) { return iter->cur.node; } + +cmark_event_type cmark_iter_get_event_type(cmark_iter *iter) { + return iter->cur.ev_type; +} + +cmark_node *cmark_iter_get_root(cmark_iter *iter) { return iter->root; } + +void cmark_consolidate_text_nodes(cmark_node *root) { + if (root == NULL) { + return; + } + cmark_iter *iter = cmark_iter_new(root); + cmark_strbuf buf = CMARK_BUF_INIT(iter->mem); + cmark_event_type ev_type; + cmark_node *cur, *tmp, *next; + + while ((ev_type = cmark_iter_next(iter)) != CMARK_EVENT_DONE) { + cur = cmark_iter_get_node(iter); + if (ev_type == CMARK_EVENT_ENTER && cur->type == CMARK_NODE_TEXT && + cur->next && cur->next->type == CMARK_NODE_TEXT) { + cmark_strbuf_clear(&buf); + cmark_strbuf_put(&buf, cur->as.literal.data, cur->as.literal.len); + tmp = cur->next; + while (tmp && tmp->type == CMARK_NODE_TEXT) { + cmark_iter_next(iter); // advance pointer + cmark_strbuf_put(&buf, tmp->as.literal.data, tmp->as.literal.len); + cur->end_column = tmp->end_column; + next = tmp->next; + cmark_node_free(tmp); + tmp = next; + } + cmark_chunk_free(iter->mem, &cur->as.literal); + cur->as.literal = cmark_chunk_buf_detach(&buf); + } + } + + cmark_strbuf_free(&buf); + cmark_iter_free(iter); +} diff --git a/Example/Pods/Down/Source/cmark/iterator.h b/Example/Pods/Down/Source/cmark/iterator.h new file mode 100755 index 000000000..30ce76f51 --- /dev/null +++ b/Example/Pods/Down/Source/cmark/iterator.h @@ -0,0 +1,26 @@ +#ifndef CMARK_ITERATOR_H +#define CMARK_ITERATOR_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include "cmark.h" + +typedef struct { + cmark_event_type ev_type; + cmark_node *node; +} cmark_iter_state; + +struct cmark_iter { + cmark_mem *mem; + cmark_node *root; + cmark_iter_state cur; + cmark_iter_state next; +}; + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Example/Pods/Down/Source/cmark/latex.c b/Example/Pods/Down/Source/cmark/latex.c new file mode 100755 index 000000000..0d9517d19 --- /dev/null +++ b/Example/Pods/Down/Source/cmark/latex.c @@ -0,0 +1,453 @@ +#include <stdlib.h> +#include <stdio.h> +#include <string.h> +#include <assert.h> + +#include "config.h" +#include "cmark.h" +#include "node.h" +#include "buffer.h" +#include "utf8.h" +#include "scanners.h" +#include "render.h" + +#define OUT(s, wrap, escaping) renderer->out(renderer, s, wrap, escaping) +#define LIT(s) renderer->out(renderer, s, false, LITERAL) +#define CR() renderer->cr(renderer) +#define BLANKLINE() renderer->blankline(renderer) +#define LIST_NUMBER_STRING_SIZE 20 + +static CMARK_INLINE void outc(cmark_renderer *renderer, cmark_escaping escape, + int32_t c, unsigned char nextc) { + if (escape == LITERAL) { + cmark_render_code_point(renderer, c); + return; + } + + switch (c) { + case 123: // '{' + case 125: // '}' + case 35: // '#' + case 37: // '%' + case 38: // '&' + cmark_render_ascii(renderer, "\\"); + cmark_render_code_point(renderer, c); + break; + case 36: // '$' + case 95: // '_' + if (escape == NORMAL) { + cmark_render_ascii(renderer, "\\"); + } + cmark_render_code_point(renderer, c); + break; + case 45: // '-' + if (nextc == 45) { // prevent ligature + cmark_render_ascii(renderer, "-{}"); + } else { + cmark_render_ascii(renderer, "-"); + } + break; + case 126: // '~' + if (escape == NORMAL) { + cmark_render_ascii(renderer, "\\textasciitilde{}"); + } else { + cmark_render_code_point(renderer, c); + } + break; + case 94: // '^' + cmark_render_ascii(renderer, "\\^{}"); + break; + case 92: // '\\' + if (escape == URL) { + // / acts as path sep even on windows: + cmark_render_ascii(renderer, "/"); + } else { + cmark_render_ascii(renderer, "\\textbackslash{}"); + } + break; + case 124: // '|' + cmark_render_ascii(renderer, "\\textbar{}"); + break; + case 60: // '<' + cmark_render_ascii(renderer, "\\textless{}"); + break; + case 62: // '>' + cmark_render_ascii(renderer, "\\textgreater{}"); + break; + case 91: // '[' + case 93: // ']' + cmark_render_ascii(renderer, "{"); + cmark_render_code_point(renderer, c); + cmark_render_ascii(renderer, "}"); + break; + case 34: // '"' + cmark_render_ascii(renderer, "\\textquotedbl{}"); + // requires \usepackage[T1]{fontenc} + break; + case 39: // '\'' + cmark_render_ascii(renderer, "\\textquotesingle{}"); + // requires \usepackage{textcomp} + break; + case 160: // nbsp + cmark_render_ascii(renderer, "~"); + break; + case 8230: // hellip + cmark_render_ascii(renderer, "\\ldots{}"); + break; + case 8216: // lsquo + if (escape == NORMAL) { + cmark_render_ascii(renderer, "`"); + } else { + cmark_render_code_point(renderer, c); + } + break; + case 8217: // rsquo + if (escape == NORMAL) { + cmark_render_ascii(renderer, "\'"); + } else { + cmark_render_code_point(renderer, c); + } + break; + case 8220: // ldquo + if (escape == NORMAL) { + cmark_render_ascii(renderer, "``"); + } else { + cmark_render_code_point(renderer, c); + } + break; + case 8221: // rdquo + if (escape == NORMAL) { + cmark_render_ascii(renderer, "''"); + } else { + cmark_render_code_point(renderer, c); + } + break; + case 8212: // emdash + if (escape == NORMAL) { + cmark_render_ascii(renderer, "---"); + } else { + cmark_render_code_point(renderer, c); + } + break; + case 8211: // endash + if (escape == NORMAL) { + cmark_render_ascii(renderer, "--"); + } else { + cmark_render_code_point(renderer, c); + } + break; + default: + cmark_render_code_point(renderer, c); + } +} + +typedef enum { + NO_LINK, + URL_AUTOLINK, + EMAIL_AUTOLINK, + NORMAL_LINK, + INTERNAL_LINK +} link_type; + +static link_type get_link_type(cmark_node *node) { + size_t title_len, url_len; + cmark_node *link_text; + char *realurl; + int realurllen; + bool isemail = false; + + if (node->type != CMARK_NODE_LINK) { + return NO_LINK; + } + + const char *url = cmark_node_get_url(node); + cmark_chunk url_chunk = cmark_chunk_literal(url); + + if (url && *url == '#') { + return INTERNAL_LINK; + } + + url_len = strlen(url); + if (url_len == 0 || scan_scheme(&url_chunk, 0) == 0) { + return NO_LINK; + } + + const char *title = cmark_node_get_title(node); + title_len = strlen(title); + // if it has a title, we can't treat it as an autolink: + if (title_len == 0) { + + link_text = node->first_child; + cmark_consolidate_text_nodes(link_text); + + if (!link_text) + return NO_LINK; + + realurl = (char *)url; + realurllen = (int)url_len; + if (strncmp(realurl, "mailto:", 7) == 0) { + realurl += 7; + realurllen -= 7; + isemail = true; + } + if (realurllen == link_text->as.literal.len && + strncmp(realurl, (char *)link_text->as.literal.data, + link_text->as.literal.len) == 0) { + if (isemail) { + return EMAIL_AUTOLINK; + } else { + return URL_AUTOLINK; + } + } + } + + return NORMAL_LINK; +} + +static int S_get_enumlevel(cmark_node *node) { + int enumlevel = 0; + cmark_node *tmp = node; + while (tmp) { + if (tmp->type == CMARK_NODE_LIST && + cmark_node_get_list_type(node) == CMARK_ORDERED_LIST) { + enumlevel++; + } + tmp = tmp->parent; + } + return enumlevel; +} + +static int S_render_node(cmark_renderer *renderer, cmark_node *node, + cmark_event_type ev_type, int options) { + int list_number; + int enumlevel; + char list_number_string[LIST_NUMBER_STRING_SIZE]; + bool entering = (ev_type == CMARK_EVENT_ENTER); + cmark_list_type list_type; + bool allow_wrap = renderer->width > 0 && !(CMARK_OPT_NOBREAKS & options); + + // avoid warning about unused parameter: + (void)(options); + + switch (node->type) { + case CMARK_NODE_DOCUMENT: + break; + + case CMARK_NODE_BLOCK_QUOTE: + if (entering) { + LIT("\\begin{quote}"); + CR(); + } else { + LIT("\\end{quote}"); + BLANKLINE(); + } + break; + + case CMARK_NODE_LIST: + list_type = cmark_node_get_list_type(node); + if (entering) { + LIT("\\begin{"); + LIT(list_type == CMARK_ORDERED_LIST ? "enumerate" : "itemize"); + LIT("}"); + CR(); + list_number = cmark_node_get_list_start(node); + if (list_number > 1) { + enumlevel = S_get_enumlevel(node); + // latex normally supports only five levels + if (enumlevel >= 1 && enumlevel <= 5) { + snprintf(list_number_string, LIST_NUMBER_STRING_SIZE, "%d", + list_number); + LIT("\\setcounter{enum"); + switch (enumlevel) { + case 1: LIT("i"); break; + case 2: LIT("ii"); break; + case 3: LIT("iii"); break; + case 4: LIT("iv"); break; + case 5: LIT("v"); break; + default: LIT("i"); break; + } + LIT("}{"); + OUT(list_number_string, false, NORMAL); + LIT("}"); + } + CR(); + } + } else { + LIT("\\end{"); + LIT(list_type == CMARK_ORDERED_LIST ? "enumerate" : "itemize"); + LIT("}"); + BLANKLINE(); + } + break; + + case CMARK_NODE_ITEM: + if (entering) { + LIT("\\item "); + } else { + CR(); + } + break; + + case CMARK_NODE_HEADING: + if (entering) { + switch (cmark_node_get_heading_level(node)) { + case 1: + LIT("\\section"); + break; + case 2: + LIT("\\subsection"); + break; + case 3: + LIT("\\subsubsection"); + break; + case 4: + LIT("\\paragraph"); + break; + case 5: + LIT("\\subparagraph"); + break; + } + LIT("{"); + } else { + LIT("}"); + BLANKLINE(); + } + break; + + case CMARK_NODE_CODE_BLOCK: + CR(); + LIT("\\begin{verbatim}"); + CR(); + OUT(cmark_node_get_literal(node), false, LITERAL); + CR(); + LIT("\\end{verbatim}"); + BLANKLINE(); + break; + + case CMARK_NODE_HTML_BLOCK: + break; + + case CMARK_NODE_CUSTOM_BLOCK: + CR(); + OUT(entering ? cmark_node_get_on_enter(node) : cmark_node_get_on_exit(node), + false, LITERAL); + CR(); + break; + + case CMARK_NODE_THEMATIC_BREAK: + BLANKLINE(); + LIT("\\begin{center}\\rule{0.5\\linewidth}{\\linethickness}\\end{center}"); + BLANKLINE(); + break; + + case CMARK_NODE_PARAGRAPH: + if (!entering) { + BLANKLINE(); + } + break; + + case CMARK_NODE_TEXT: + OUT(cmark_node_get_literal(node), allow_wrap, NORMAL); + break; + + case CMARK_NODE_LINEBREAK: + LIT("\\\\"); + CR(); + break; + + case CMARK_NODE_SOFTBREAK: + if (options & CMARK_OPT_HARDBREAKS) { + LIT("\\\\"); + CR(); + } else if (renderer->width == 0 && !(CMARK_OPT_NOBREAKS & options)) { + CR(); + } else { + OUT(" ", allow_wrap, NORMAL); + } + break; + + case CMARK_NODE_CODE: + LIT("\\texttt{"); + OUT(cmark_node_get_literal(node), false, NORMAL); + LIT("}"); + break; + + case CMARK_NODE_HTML_INLINE: + break; + + case CMARK_NODE_CUSTOM_INLINE: + OUT(entering ? cmark_node_get_on_enter(node) : cmark_node_get_on_exit(node), + false, LITERAL); + break; + + case CMARK_NODE_STRONG: + if (entering) { + LIT("\\textbf{"); + } else { + LIT("}"); + } + break; + + case CMARK_NODE_EMPH: + if (entering) { + LIT("\\emph{"); + } else { + LIT("}"); + } + break; + + case CMARK_NODE_LINK: + if (entering) { + const char *url = cmark_node_get_url(node); + // requires \usepackage{hyperref} + switch (get_link_type(node)) { + case URL_AUTOLINK: + LIT("\\url{"); + OUT(url, false, URL); + LIT("}"); + return 0; // Don't process further nodes to avoid double-rendering artefacts + case EMAIL_AUTOLINK: + LIT("\\href{"); + OUT(url, false, URL); + LIT("}\\nolinkurl{"); + break; + case NORMAL_LINK: + LIT("\\href{"); + OUT(url, false, URL); + LIT("}{"); + break; + case INTERNAL_LINK: + LIT("\\protect\\hyperlink{"); + OUT(url + 1, false, URL); + LIT("}{"); + break; + case NO_LINK: + LIT("{"); // error? + } + } else { + LIT("}"); + } + + break; + + case CMARK_NODE_IMAGE: + if (entering) { + LIT("\\protect\\includegraphics{"); + // requires \include{graphicx} + OUT(cmark_node_get_url(node), false, URL); + LIT("}"); + return 0; + } + break; + + default: + assert(false); + break; + } + + return 1; +} + +char *cmark_render_latex(cmark_node *root, int options, int width) { + return cmark_render(root, options, width, outc, S_render_node); +} diff --git a/Example/Pods/Down/Source/cmark/man.c b/Example/Pods/Down/Source/cmark/man.c new file mode 100755 index 000000000..1c76f68bb --- /dev/null +++ b/Example/Pods/Down/Source/cmark/man.c @@ -0,0 +1,252 @@ +#include <stdlib.h> +#include <stdio.h> +#include <string.h> +#include <assert.h> + +#include "config.h" +#include "cmark.h" +#include "node.h" +#include "buffer.h" +#include "utf8.h" +#include "render.h" + +#define OUT(s, wrap, escaping) renderer->out(renderer, s, wrap, escaping) +#define LIT(s) renderer->out(renderer, s, false, LITERAL) +#define CR() renderer->cr(renderer) +#define BLANKLINE() renderer->blankline(renderer) +#define LIST_NUMBER_SIZE 20 + +// Functions to convert cmark_nodes to groff man strings. +static void S_outc(cmark_renderer *renderer, cmark_escaping escape, int32_t c, + unsigned char nextc) { + (void)(nextc); + + if (escape == LITERAL) { + cmark_render_code_point(renderer, c); + return; + } + + switch (c) { + case 46: + if (renderer->begin_line) { + cmark_render_ascii(renderer, "\\&."); + } else { + cmark_render_code_point(renderer, c); + } + break; + case 39: + if (renderer->begin_line) { + cmark_render_ascii(renderer, "\\&'"); + } else { + cmark_render_code_point(renderer, c); + } + break; + case 45: + cmark_render_ascii(renderer, "\\-"); + break; + case 92: + cmark_render_ascii(renderer, "\\e"); + break; + case 8216: // left single quote + cmark_render_ascii(renderer, "\\[oq]"); + break; + case 8217: // right single quote + cmark_render_ascii(renderer, "\\[cq]"); + break; + case 8220: // left double quote + cmark_render_ascii(renderer, "\\[lq]"); + break; + case 8221: // right double quote + cmark_render_ascii(renderer, "\\[rq]"); + break; + case 8212: // em dash + cmark_render_ascii(renderer, "\\[em]"); + break; + case 8211: // en dash + cmark_render_ascii(renderer, "\\[en]"); + break; + default: + cmark_render_code_point(renderer, c); + } +} + +static int S_render_node(cmark_renderer *renderer, cmark_node *node, + cmark_event_type ev_type, int options) { + cmark_node *tmp; + int list_number; + bool entering = (ev_type == CMARK_EVENT_ENTER); + bool allow_wrap = renderer->width > 0 && !(CMARK_OPT_NOBREAKS & options); + + // avoid unused parameter error: + (void)(options); + + switch (node->type) { + case CMARK_NODE_DOCUMENT: + break; + + case CMARK_NODE_BLOCK_QUOTE: + if (entering) { + CR(); + LIT(".RS"); + CR(); + } else { + CR(); + LIT(".RE"); + CR(); + } + break; + + case CMARK_NODE_LIST: + break; + + case CMARK_NODE_ITEM: + if (entering) { + CR(); + LIT(".IP "); + if (cmark_node_get_list_type(node->parent) == CMARK_BULLET_LIST) { + LIT("\\[bu] 2"); + } else { + list_number = cmark_node_get_list_start(node->parent); + tmp = node; + while (tmp->prev) { + tmp = tmp->prev; + list_number += 1; + } + char list_number_s[LIST_NUMBER_SIZE]; + snprintf(list_number_s, LIST_NUMBER_SIZE, "\"%d.\" 4", list_number); + LIT(list_number_s); + } + CR(); + } else { + CR(); + } + break; + + case CMARK_NODE_HEADING: + if (entering) { + CR(); + LIT(cmark_node_get_heading_level(node) == 1 ? ".SH" : ".SS"); + CR(); + } else { + CR(); + } + break; + + case CMARK_NODE_CODE_BLOCK: + CR(); + LIT(".IP\n.nf\n\\f[C]\n"); + OUT(cmark_node_get_literal(node), false, NORMAL); + CR(); + LIT("\\f[]\n.fi"); + CR(); + break; + + case CMARK_NODE_HTML_BLOCK: + break; + + case CMARK_NODE_CUSTOM_BLOCK: + CR(); + OUT(entering ? cmark_node_get_on_enter(node) : cmark_node_get_on_exit(node), + false, LITERAL); + CR(); + break; + + case CMARK_NODE_THEMATIC_BREAK: + CR(); + LIT(".PP\n * * * * *"); + CR(); + break; + + case CMARK_NODE_PARAGRAPH: + if (entering) { + // no blank line if first paragraph in list: + if (node->parent && node->parent->type == CMARK_NODE_ITEM && + node->prev == NULL) { + // no blank line or .PP + } else { + CR(); + LIT(".PP"); + CR(); + } + } else { + CR(); + } + break; + + case CMARK_NODE_TEXT: + OUT(cmark_node_get_literal(node), allow_wrap, NORMAL); + break; + + case CMARK_NODE_LINEBREAK: + LIT(".PD 0\n.P\n.PD"); + CR(); + break; + + case CMARK_NODE_SOFTBREAK: + if (options & CMARK_OPT_HARDBREAKS) { + LIT(".PD 0\n.P\n.PD"); + CR(); + } else if (renderer->width == 0 && !(CMARK_OPT_NOBREAKS & options)) { + CR(); + } else { + OUT(" ", allow_wrap, LITERAL); + } + break; + + case CMARK_NODE_CODE: + LIT("\\f[C]"); + OUT(cmark_node_get_literal(node), allow_wrap, NORMAL); + LIT("\\f[]"); + break; + + case CMARK_NODE_HTML_INLINE: + break; + + case CMARK_NODE_CUSTOM_INLINE: + OUT(entering ? cmark_node_get_on_enter(node) : cmark_node_get_on_exit(node), + false, LITERAL); + break; + + case CMARK_NODE_STRONG: + if (entering) { + LIT("\\f[B]"); + } else { + LIT("\\f[]"); + } + break; + + case CMARK_NODE_EMPH: + if (entering) { + LIT("\\f[I]"); + } else { + LIT("\\f[]"); + } + break; + + case CMARK_NODE_LINK: + if (!entering) { + LIT(" ("); + OUT(cmark_node_get_url(node), allow_wrap, URL); + LIT(")"); + } + break; + + case CMARK_NODE_IMAGE: + if (entering) { + LIT("[IMAGE: "); + } else { + LIT("]"); + } + break; + + default: + assert(false); + break; + } + + return 1; +} + +char *cmark_render_man(cmark_node *root, int options, int width) { + return cmark_render(root, options, width, S_outc, S_render_node); +} diff --git a/Example/Pods/Down/Source/cmark/node.c b/Example/Pods/Down/Source/cmark/node.c new file mode 100755 index 000000000..c6c29028e --- /dev/null +++ b/Example/Pods/Down/Source/cmark/node.c @@ -0,0 +1,858 @@ +#include <stdlib.h> +#include <string.h> + +#include "config.h" +#include "node.h" + +static void S_node_unlink(cmark_node *node); + +#define NODE_MEM(node) cmark_node_mem(node) + +static CMARK_INLINE bool S_is_block(cmark_node *node) { + if (node == NULL) { + return false; + } + return node->type >= CMARK_NODE_FIRST_BLOCK && + node->type <= CMARK_NODE_LAST_BLOCK; +} + +static CMARK_INLINE bool S_is_inline(cmark_node *node) { + if (node == NULL) { + return false; + } + return node->type >= CMARK_NODE_FIRST_INLINE && + node->type <= CMARK_NODE_LAST_INLINE; +} + +static bool S_can_contain(cmark_node *node, cmark_node *child) { + cmark_node *cur; + + if (node == NULL || child == NULL) { + return false; + } + + // Verify that child is not an ancestor of node or equal to node. + cur = node; + do { + if (cur == child) { + return false; + } + cur = cur->parent; + } while (cur != NULL); + + if (child->type == CMARK_NODE_DOCUMENT) { + return false; + } + + switch (node->type) { + case CMARK_NODE_DOCUMENT: + case CMARK_NODE_BLOCK_QUOTE: + case CMARK_NODE_ITEM: + return S_is_block(child) && child->type != CMARK_NODE_ITEM; + + case CMARK_NODE_LIST: + return child->type == CMARK_NODE_ITEM; + + case CMARK_NODE_CUSTOM_BLOCK: + return true; + + case CMARK_NODE_PARAGRAPH: + case CMARK_NODE_HEADING: + case CMARK_NODE_EMPH: + case CMARK_NODE_STRONG: + case CMARK_NODE_LINK: + case CMARK_NODE_IMAGE: + case CMARK_NODE_CUSTOM_INLINE: + return S_is_inline(child); + + default: + break; + } + + return false; +} + +cmark_node *cmark_node_new_with_mem(cmark_node_type type, cmark_mem *mem) { + cmark_node *node = (cmark_node *)mem->calloc(1, sizeof(*node)); + cmark_strbuf_init(mem, &node->content, 0); + node->type = (uint16_t)type; + + switch (node->type) { + case CMARK_NODE_HEADING: + node->as.heading.level = 1; + break; + + case CMARK_NODE_LIST: { + cmark_list *list = &node->as.list; + list->list_type = CMARK_BULLET_LIST; + list->start = 0; + list->tight = false; + break; + } + + default: + break; + } + + return node; +} + +cmark_node *cmark_node_new(cmark_node_type type) { + extern cmark_mem DEFAULT_MEM_ALLOCATOR; + return cmark_node_new_with_mem(type, &DEFAULT_MEM_ALLOCATOR); +} + +// Free a cmark_node list and any children. +static void S_free_nodes(cmark_node *e) { + cmark_node *next; + while (e != NULL) { + cmark_strbuf_free(&e->content); + switch (e->type) { + case CMARK_NODE_CODE_BLOCK: + cmark_chunk_free(NODE_MEM(e), &e->as.code.info); + cmark_chunk_free(NODE_MEM(e), &e->as.code.literal); + break; + case CMARK_NODE_TEXT: + case CMARK_NODE_HTML_INLINE: + case CMARK_NODE_CODE: + case CMARK_NODE_HTML_BLOCK: + cmark_chunk_free(NODE_MEM(e), &e->as.literal); + break; + case CMARK_NODE_LINK: + case CMARK_NODE_IMAGE: + cmark_chunk_free(NODE_MEM(e), &e->as.link.url); + cmark_chunk_free(NODE_MEM(e), &e->as.link.title); + break; + case CMARK_NODE_CUSTOM_BLOCK: + case CMARK_NODE_CUSTOM_INLINE: + cmark_chunk_free(NODE_MEM(e), &e->as.custom.on_enter); + cmark_chunk_free(NODE_MEM(e), &e->as.custom.on_exit); + break; + default: + break; + } + if (e->last_child) { + // Splice children into list + e->last_child->next = e->next; + e->next = e->first_child; + } + next = e->next; + NODE_MEM(e)->free(e); + e = next; + } +} + +void cmark_node_free(cmark_node *node) { + S_node_unlink(node); + node->next = NULL; + S_free_nodes(node); +} + +cmark_node_type cmark_node_get_type(cmark_node *node) { + if (node == NULL) { + return CMARK_NODE_NONE; + } else { + return (cmark_node_type)node->type; + } +} + +const char *cmark_node_get_type_string(cmark_node *node) { + if (node == NULL) { + return "NONE"; + } + + switch (node->type) { + case CMARK_NODE_NONE: + return "none"; + case CMARK_NODE_DOCUMENT: + return "document"; + case CMARK_NODE_BLOCK_QUOTE: + return "block_quote"; + case CMARK_NODE_LIST: + return "list"; + case CMARK_NODE_ITEM: + return "item"; + case CMARK_NODE_CODE_BLOCK: + return "code_block"; + case CMARK_NODE_HTML_BLOCK: + return "html_block"; + case CMARK_NODE_CUSTOM_BLOCK: + return "custom_block"; + case CMARK_NODE_PARAGRAPH: + return "paragraph"; + case CMARK_NODE_HEADING: + return "heading"; + case CMARK_NODE_THEMATIC_BREAK: + return "thematic_break"; + case CMARK_NODE_TEXT: + return "text"; + case CMARK_NODE_SOFTBREAK: + return "softbreak"; + case CMARK_NODE_LINEBREAK: + return "linebreak"; + case CMARK_NODE_CODE: + return "code"; + case CMARK_NODE_HTML_INLINE: + return "html_inline"; + case CMARK_NODE_CUSTOM_INLINE: + return "custom_inline"; + case CMARK_NODE_EMPH: + return "emph"; + case CMARK_NODE_STRONG: + return "strong"; + case CMARK_NODE_LINK: + return "link"; + case CMARK_NODE_IMAGE: + return "image"; + } + + return "<unknown>"; +} + +cmark_node *cmark_node_next(cmark_node *node) { + if (node == NULL) { + return NULL; + } else { + return node->next; + } +} + +cmark_node *cmark_node_previous(cmark_node *node) { + if (node == NULL) { + return NULL; + } else { + return node->prev; + } +} + +cmark_node *cmark_node_parent(cmark_node *node) { + if (node == NULL) { + return NULL; + } else { + return node->parent; + } +} + +cmark_node *cmark_node_first_child(cmark_node *node) { + if (node == NULL) { + return NULL; + } else { + return node->first_child; + } +} + +cmark_node *cmark_node_last_child(cmark_node *node) { + if (node == NULL) { + return NULL; + } else { + return node->last_child; + } +} + +void *cmark_node_get_user_data(cmark_node *node) { + if (node == NULL) { + return NULL; + } else { + return node->user_data; + } +} + +int cmark_node_set_user_data(cmark_node *node, void *user_data) { + if (node == NULL) { + return 0; + } + node->user_data = user_data; + return 1; +} + +const char *cmark_node_get_literal(cmark_node *node) { + if (node == NULL) { + return NULL; + } + + switch (node->type) { + case CMARK_NODE_HTML_BLOCK: + case CMARK_NODE_TEXT: + case CMARK_NODE_HTML_INLINE: + case CMARK_NODE_CODE: + return cmark_chunk_to_cstr(NODE_MEM(node), &node->as.literal); + + case CMARK_NODE_CODE_BLOCK: + return cmark_chunk_to_cstr(NODE_MEM(node), &node->as.code.literal); + + default: + break; + } + + return NULL; +} + +int cmark_node_set_literal(cmark_node *node, const char *content) { + if (node == NULL) { + return 0; + } + + switch (node->type) { + case CMARK_NODE_HTML_BLOCK: + case CMARK_NODE_TEXT: + case CMARK_NODE_HTML_INLINE: + case CMARK_NODE_CODE: + cmark_chunk_set_cstr(NODE_MEM(node), &node->as.literal, content); + return 1; + + case CMARK_NODE_CODE_BLOCK: + cmark_chunk_set_cstr(NODE_MEM(node), &node->as.code.literal, content); + return 1; + + default: + break; + } + + return 0; +} + +int cmark_node_get_heading_level(cmark_node *node) { + if (node == NULL) { + return 0; + } + + switch (node->type) { + case CMARK_NODE_HEADING: + return node->as.heading.level; + + default: + break; + } + + return 0; +} + +int cmark_node_set_heading_level(cmark_node *node, int level) { + if (node == NULL || level < 1 || level > 6) { + return 0; + } + + switch (node->type) { + case CMARK_NODE_HEADING: + node->as.heading.level = level; + return 1; + + default: + break; + } + + return 0; +} + +cmark_list_type cmark_node_get_list_type(cmark_node *node) { + if (node == NULL) { + return CMARK_NO_LIST; + } + + if (node->type == CMARK_NODE_LIST) { + return node->as.list.list_type; + } else { + return CMARK_NO_LIST; + } +} + +int cmark_node_set_list_type(cmark_node *node, cmark_list_type type) { + if (!(type == CMARK_BULLET_LIST || type == CMARK_ORDERED_LIST)) { + return 0; + } + + if (node == NULL) { + return 0; + } + + if (node->type == CMARK_NODE_LIST) { + node->as.list.list_type = type; + return 1; + } else { + return 0; + } +} + +cmark_delim_type cmark_node_get_list_delim(cmark_node *node) { + if (node == NULL) { + return CMARK_NO_DELIM; + } + + if (node->type == CMARK_NODE_LIST) { + return node->as.list.delimiter; + } else { + return CMARK_NO_DELIM; + } +} + +int cmark_node_set_list_delim(cmark_node *node, cmark_delim_type delim) { + if (!(delim == CMARK_PERIOD_DELIM || delim == CMARK_PAREN_DELIM)) { + return 0; + } + + if (node == NULL) { + return 0; + } + + if (node->type == CMARK_NODE_LIST) { + node->as.list.delimiter = delim; + return 1; + } else { + return 0; + } +} + +int cmark_node_get_list_start(cmark_node *node) { + if (node == NULL) { + return 0; + } + + if (node->type == CMARK_NODE_LIST) { + return node->as.list.start; + } else { + return 0; + } +} + +int cmark_node_set_list_start(cmark_node *node, int start) { + if (node == NULL || start < 0) { + return 0; + } + + if (node->type == CMARK_NODE_LIST) { + node->as.list.start = start; + return 1; + } else { + return 0; + } +} + +int cmark_node_get_list_tight(cmark_node *node) { + if (node == NULL) { + return 0; + } + + if (node->type == CMARK_NODE_LIST) { + return node->as.list.tight; + } else { + return 0; + } +} + +int cmark_node_set_list_tight(cmark_node *node, int tight) { + if (node == NULL) { + return 0; + } + + if (node->type == CMARK_NODE_LIST) { + node->as.list.tight = tight == 1; + return 1; + } else { + return 0; + } +} + +const char *cmark_node_get_fence_info(cmark_node *node) { + if (node == NULL) { + return NULL; + } + + if (node->type == CMARK_NODE_CODE_BLOCK) { + return cmark_chunk_to_cstr(NODE_MEM(node), &node->as.code.info); + } else { + return NULL; + } +} + +int cmark_node_set_fence_info(cmark_node *node, const char *info) { + if (node == NULL) { + return 0; + } + + if (node->type == CMARK_NODE_CODE_BLOCK) { + cmark_chunk_set_cstr(NODE_MEM(node), &node->as.code.info, info); + return 1; + } else { + return 0; + } +} + +const char *cmark_node_get_url(cmark_node *node) { + if (node == NULL) { + return NULL; + } + + switch (node->type) { + case CMARK_NODE_LINK: + case CMARK_NODE_IMAGE: + return cmark_chunk_to_cstr(NODE_MEM(node), &node->as.link.url); + default: + break; + } + + return NULL; +} + +int cmark_node_set_url(cmark_node *node, const char *url) { + if (node == NULL) { + return 0; + } + + switch (node->type) { + case CMARK_NODE_LINK: + case CMARK_NODE_IMAGE: + cmark_chunk_set_cstr(NODE_MEM(node), &node->as.link.url, url); + return 1; + default: + break; + } + + return 0; +} + +const char *cmark_node_get_title(cmark_node *node) { + if (node == NULL) { + return NULL; + } + + switch (node->type) { + case CMARK_NODE_LINK: + case CMARK_NODE_IMAGE: + return cmark_chunk_to_cstr(NODE_MEM(node), &node->as.link.title); + default: + break; + } + + return NULL; +} + +int cmark_node_set_title(cmark_node *node, const char *title) { + if (node == NULL) { + return 0; + } + + switch (node->type) { + case CMARK_NODE_LINK: + case CMARK_NODE_IMAGE: + cmark_chunk_set_cstr(NODE_MEM(node), &node->as.link.title, title); + return 1; + default: + break; + } + + return 0; +} + +const char *cmark_node_get_on_enter(cmark_node *node) { + if (node == NULL) { + return NULL; + } + + switch (node->type) { + case CMARK_NODE_CUSTOM_INLINE: + case CMARK_NODE_CUSTOM_BLOCK: + return cmark_chunk_to_cstr(NODE_MEM(node), &node->as.custom.on_enter); + default: + break; + } + + return NULL; +} + +int cmark_node_set_on_enter(cmark_node *node, const char *on_enter) { + if (node == NULL) { + return 0; + } + + switch (node->type) { + case CMARK_NODE_CUSTOM_INLINE: + case CMARK_NODE_CUSTOM_BLOCK: + cmark_chunk_set_cstr(NODE_MEM(node), &node->as.custom.on_enter, on_enter); + return 1; + default: + break; + } + + return 0; +} + +const char *cmark_node_get_on_exit(cmark_node *node) { + if (node == NULL) { + return NULL; + } + + switch (node->type) { + case CMARK_NODE_CUSTOM_INLINE: + case CMARK_NODE_CUSTOM_BLOCK: + return cmark_chunk_to_cstr(NODE_MEM(node), &node->as.custom.on_exit); + default: + break; + } + + return NULL; +} + +int cmark_node_set_on_exit(cmark_node *node, const char *on_exit) { + if (node == NULL) { + return 0; + } + + switch (node->type) { + case CMARK_NODE_CUSTOM_INLINE: + case CMARK_NODE_CUSTOM_BLOCK: + cmark_chunk_set_cstr(NODE_MEM(node), &node->as.custom.on_exit, on_exit); + return 1; + default: + break; + } + + return 0; +} + +int cmark_node_get_start_line(cmark_node *node) { + if (node == NULL) { + return 0; + } + return node->start_line; +} + +int cmark_node_get_start_column(cmark_node *node) { + if (node == NULL) { + return 0; + } + return node->start_column; +} + +int cmark_node_get_end_line(cmark_node *node) { + if (node == NULL) { + return 0; + } + return node->end_line; +} + +int cmark_node_get_end_column(cmark_node *node) { + if (node == NULL) { + return 0; + } + return node->end_column; +} + +// Unlink a node without adjusting its next, prev, and parent pointers. +static void S_node_unlink(cmark_node *node) { + if (node == NULL) { + return; + } + + if (node->prev) { + node->prev->next = node->next; + } + if (node->next) { + node->next->prev = node->prev; + } + + // Adjust first_child and last_child of parent. + cmark_node *parent = node->parent; + if (parent) { + if (parent->first_child == node) { + parent->first_child = node->next; + } + if (parent->last_child == node) { + parent->last_child = node->prev; + } + } +} + +void cmark_node_unlink(cmark_node *node) { + S_node_unlink(node); + + node->next = NULL; + node->prev = NULL; + node->parent = NULL; +} + +int cmark_node_insert_before(cmark_node *node, cmark_node *sibling) { + if (node == NULL || sibling == NULL) { + return 0; + } + + if (!node->parent || !S_can_contain(node->parent, sibling)) { + return 0; + } + + S_node_unlink(sibling); + + cmark_node *old_prev = node->prev; + + // Insert 'sibling' between 'old_prev' and 'node'. + if (old_prev) { + old_prev->next = sibling; + } + sibling->prev = old_prev; + sibling->next = node; + node->prev = sibling; + + // Set new parent. + cmark_node *parent = node->parent; + sibling->parent = parent; + + // Adjust first_child of parent if inserted as first child. + if (parent && !old_prev) { + parent->first_child = sibling; + } + + return 1; +} + +int cmark_node_insert_after(cmark_node *node, cmark_node *sibling) { + if (node == NULL || sibling == NULL) { + return 0; + } + + if (!node->parent || !S_can_contain(node->parent, sibling)) { + return 0; + } + + S_node_unlink(sibling); + + cmark_node *old_next = node->next; + + // Insert 'sibling' between 'node' and 'old_next'. + if (old_next) { + old_next->prev = sibling; + } + sibling->next = old_next; + sibling->prev = node; + node->next = sibling; + + // Set new parent. + cmark_node *parent = node->parent; + sibling->parent = parent; + + // Adjust last_child of parent if inserted as last child. + if (parent && !old_next) { + parent->last_child = sibling; + } + + return 1; +} + +int cmark_node_replace(cmark_node *oldnode, cmark_node *newnode) { + if (!cmark_node_insert_before(oldnode, newnode)) { + return 0; + } + cmark_node_unlink(oldnode); + return 1; +} + +int cmark_node_prepend_child(cmark_node *node, cmark_node *child) { + if (!S_can_contain(node, child)) { + return 0; + } + + S_node_unlink(child); + + cmark_node *old_first_child = node->first_child; + + child->next = old_first_child; + child->prev = NULL; + child->parent = node; + node->first_child = child; + + if (old_first_child) { + old_first_child->prev = child; + } else { + // Also set last_child if node previously had no children. + node->last_child = child; + } + + return 1; +} + +int cmark_node_append_child(cmark_node *node, cmark_node *child) { + if (!S_can_contain(node, child)) { + return 0; + } + + S_node_unlink(child); + + cmark_node *old_last_child = node->last_child; + + child->next = NULL; + child->prev = old_last_child; + child->parent = node; + node->last_child = child; + + if (old_last_child) { + old_last_child->next = child; + } else { + // Also set first_child if node previously had no children. + node->first_child = child; + } + + return 1; +} + +static void S_print_error(FILE *out, cmark_node *node, const char *elem) { + if (out == NULL) { + return; + } + fprintf(out, "Invalid '%s' in node type %s at %d:%d\n", elem, + cmark_node_get_type_string(node), node->start_line, + node->start_column); +} + +int cmark_node_check(cmark_node *node, FILE *out) { + cmark_node *cur; + int errors = 0; + + if (!node) { + return 0; + } + + cur = node; + for (;;) { + if (cur->first_child) { + if (cur->first_child->prev != NULL) { + S_print_error(out, cur->first_child, "prev"); + cur->first_child->prev = NULL; + ++errors; + } + if (cur->first_child->parent != cur) { + S_print_error(out, cur->first_child, "parent"); + cur->first_child->parent = cur; + ++errors; + } + cur = cur->first_child; + continue; + } + + next_sibling: + if (cur == node) { + break; + } + if (cur->next) { + if (cur->next->prev != cur) { + S_print_error(out, cur->next, "prev"); + cur->next->prev = cur; + ++errors; + } + if (cur->next->parent != cur->parent) { + S_print_error(out, cur->next, "parent"); + cur->next->parent = cur->parent; + ++errors; + } + cur = cur->next; + continue; + } + + if (cur->parent->last_child != cur) { + S_print_error(out, cur->parent, "last_child"); + cur->parent->last_child = cur; + ++errors; + } + cur = cur->parent; + goto next_sibling; + } + + return errors; +} diff --git a/Example/Pods/Down/Source/cmark/node.h b/Example/Pods/Down/Source/cmark/node.h new file mode 100755 index 000000000..216323060 --- /dev/null +++ b/Example/Pods/Down/Source/cmark/node.h @@ -0,0 +1,94 @@ +#ifndef CMARK_NODE_H +#define CMARK_NODE_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include <stdio.h> +#include <stdint.h> + +#include "cmark.h" +#include "buffer.h" +#include "chunk.h" + +typedef struct { + cmark_list_type list_type; + int marker_offset; + int padding; + int start; + cmark_delim_type delimiter; + unsigned char bullet_char; + bool tight; +} cmark_list; + +typedef struct { + cmark_chunk info; + cmark_chunk literal; + uint8_t fence_length; + uint8_t fence_offset; + unsigned char fence_char; + int8_t fenced; +} cmark_code; + +typedef struct { + int level; + bool setext; +} cmark_heading; + +typedef struct { + cmark_chunk url; + cmark_chunk title; +} cmark_link; + +typedef struct { + cmark_chunk on_enter; + cmark_chunk on_exit; +} cmark_custom; + +enum cmark_node__internal_flags { + CMARK_NODE__OPEN = (1 << 0), + CMARK_NODE__LAST_LINE_BLANK = (1 << 1), + CMARK_NODE__LAST_LINE_CHECKED = (1 << 2), +}; + +struct cmark_node { + cmark_strbuf content; + + struct cmark_node *next; + struct cmark_node *prev; + struct cmark_node *parent; + struct cmark_node *first_child; + struct cmark_node *last_child; + + void *user_data; + + int start_line; + int start_column; + int end_line; + int end_column; + int internal_offset; + uint16_t type; + uint16_t flags; + + union { + cmark_chunk literal; + cmark_list list; + cmark_code code; + cmark_heading heading; + cmark_link link; + cmark_custom custom; + int html_block_type; + } as; +}; + +static CMARK_INLINE cmark_mem *cmark_node_mem(cmark_node *node) { + return node->content.mem; +} +CMARK_EXPORT int cmark_node_check(cmark_node *node, FILE *out); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Example/Pods/Down/Source/cmark/parser.h b/Example/Pods/Down/Source/cmark/parser.h new file mode 100755 index 000000000..f41f09960 --- /dev/null +++ b/Example/Pods/Down/Source/cmark/parser.h @@ -0,0 +1,40 @@ +#ifndef CMARK_AST_H +#define CMARK_AST_H + +#include <stdio.h> +#include "references.h" +#include "node.h" +#include "buffer.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define MAX_LINK_LABEL_LENGTH 1000 + +struct cmark_parser { + struct cmark_mem *mem; + struct cmark_reference_map *refmap; + struct cmark_node *root; + struct cmark_node *current; + int line_number; + bufsize_t offset; + bufsize_t column; + bufsize_t first_nonspace; + bufsize_t first_nonspace_column; + bufsize_t thematic_break_kill_pos; + int indent; + bool blank; + bool partially_consumed_tab; + cmark_strbuf curline; + bufsize_t last_line_length; + cmark_strbuf linebuf; + int options; + bool last_buffer_ended_with_cr; +}; + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Example/Pods/Down/Source/cmark/references.c b/Example/Pods/Down/Source/cmark/references.c new file mode 100755 index 000000000..89f2dc8cb --- /dev/null +++ b/Example/Pods/Down/Source/cmark/references.c @@ -0,0 +1,146 @@ +#include "cmark.h" +#include "utf8.h" +#include "parser.h" +#include "references.h" +#include "inlines.h" +#include "chunk.h" + +static unsigned int refhash(const unsigned char *link_ref) { + unsigned int hash = 0; + + while (*link_ref) + hash = (*link_ref++) + (hash << 6) + (hash << 16) - hash; + + return hash; +} + +static void reference_free(cmark_reference_map *map, cmark_reference *ref) { + cmark_mem *mem = map->mem; + if (ref != NULL) { + mem->free(ref->label); + cmark_chunk_free(mem, &ref->url); + cmark_chunk_free(mem, &ref->title); + mem->free(ref); + } +} + +// normalize reference: collapse internal whitespace to single space, +// remove leading/trailing whitespace, case fold +// Return NULL if the reference name is actually empty (i.e. composed +// solely from whitespace) +static unsigned char *normalize_reference(cmark_mem *mem, cmark_chunk *ref) { + cmark_strbuf normalized = CMARK_BUF_INIT(mem); + unsigned char *result; + + if (ref == NULL) + return NULL; + + if (ref->len == 0) + return NULL; + + cmark_utf8proc_case_fold(&normalized, ref->data, ref->len); + cmark_strbuf_trim(&normalized); + cmark_strbuf_normalize_whitespace(&normalized); + + result = cmark_strbuf_detach(&normalized); + assert(result); + + if (result[0] == '\0') { + mem->free(result); + return NULL; + } + + return result; +} + +static void add_reference(cmark_reference_map *map, cmark_reference *ref) { + cmark_reference *t = ref->next = map->table[ref->hash % REFMAP_SIZE]; + + while (t) { + if (t->hash == ref->hash && !strcmp((char *)t->label, (char *)ref->label)) { + reference_free(map, ref); + return; + } + + t = t->next; + } + + map->table[ref->hash % REFMAP_SIZE] = ref; +} + +void cmark_reference_create(cmark_reference_map *map, cmark_chunk *label, + cmark_chunk *url, cmark_chunk *title) { + cmark_reference *ref; + unsigned char *reflabel = normalize_reference(map->mem, label); + + /* empty reference name, or composed from only whitespace */ + if (reflabel == NULL) + return; + + ref = (cmark_reference *)map->mem->calloc(1, sizeof(*ref)); + ref->label = reflabel; + ref->hash = refhash(ref->label); + ref->url = cmark_clean_url(map->mem, url); + ref->title = cmark_clean_title(map->mem, title); + ref->next = NULL; + + add_reference(map, ref); +} + +// Returns reference if refmap contains a reference with matching +// label, otherwise NULL. +cmark_reference *cmark_reference_lookup(cmark_reference_map *map, + cmark_chunk *label) { + cmark_reference *ref = NULL; + unsigned char *norm; + unsigned int hash; + + if (label->len < 1 || label->len > MAX_LINK_LABEL_LENGTH) + return NULL; + + if (map == NULL) + return NULL; + + norm = normalize_reference(map->mem, label); + if (norm == NULL) + return NULL; + + hash = refhash(norm); + ref = map->table[hash % REFMAP_SIZE]; + + while (ref) { + if (ref->hash == hash && !strcmp((char *)ref->label, (char *)norm)) + break; + ref = ref->next; + } + + map->mem->free(norm); + return ref; +} + +void cmark_reference_map_free(cmark_reference_map *map) { + unsigned int i; + + if (map == NULL) + return; + + for (i = 0; i < REFMAP_SIZE; ++i) { + cmark_reference *ref = map->table[i]; + cmark_reference *next; + + while (ref) { + next = ref->next; + reference_free(map, ref); + ref = next; + } + } + + map->mem->free(map); +} + +cmark_reference_map *cmark_reference_map_new(cmark_mem *mem) { + cmark_reference_map *map = + (cmark_reference_map *)mem->calloc(1, sizeof(cmark_reference_map)); + map->mem = mem; + return map; +} diff --git a/Example/Pods/Down/Source/cmark/references.h b/Example/Pods/Down/Source/cmark/references.h new file mode 100755 index 000000000..8d3631f34 --- /dev/null +++ b/Example/Pods/Down/Source/cmark/references.h @@ -0,0 +1,40 @@ +#ifndef CMARK_REFERENCES_H +#define CMARK_REFERENCES_H + +#include "chunk.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define REFMAP_SIZE 16 + +struct cmark_reference { + struct cmark_reference *next; + unsigned char *label; + cmark_chunk url; + cmark_chunk title; + unsigned int hash; +}; + +typedef struct cmark_reference cmark_reference; + +struct cmark_reference_map { + cmark_mem *mem; + cmark_reference *table[REFMAP_SIZE]; +}; + +typedef struct cmark_reference_map cmark_reference_map; + +cmark_reference_map *cmark_reference_map_new(cmark_mem *mem); +void cmark_reference_map_free(cmark_reference_map *map); +cmark_reference *cmark_reference_lookup(cmark_reference_map *map, + cmark_chunk *label); +extern void cmark_reference_create(cmark_reference_map *map, cmark_chunk *label, + cmark_chunk *url, cmark_chunk *title); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Example/Pods/Down/Source/cmark/render.c b/Example/Pods/Down/Source/cmark/render.c new file mode 100755 index 000000000..fdd73df1c --- /dev/null +++ b/Example/Pods/Down/Source/cmark/render.c @@ -0,0 +1,188 @@ +#include <stdlib.h> +#include "buffer.h" +#include "chunk.h" +#include "cmark.h" +#include "utf8.h" +#include "render.h" +#include "node.h" + +static CMARK_INLINE void S_cr(cmark_renderer *renderer) { + if (renderer->need_cr < 1) { + renderer->need_cr = 1; + } +} + +static CMARK_INLINE void S_blankline(cmark_renderer *renderer) { + if (renderer->need_cr < 2) { + renderer->need_cr = 2; + } +} + +static void S_out(cmark_renderer *renderer, const char *source, bool wrap, + cmark_escaping escape) { + int length = strlen(source); + unsigned char nextc; + int32_t c; + int i = 0; + int last_nonspace; + int len; + cmark_chunk remainder = cmark_chunk_literal(""); + int k = renderer->buffer->size - 1; + + wrap = wrap && !renderer->no_linebreaks; + + if (renderer->in_tight_list_item && renderer->need_cr > 1) { + renderer->need_cr = 1; + } + while (renderer->need_cr) { + if (k < 0 || renderer->buffer->ptr[k] == '\n') { + k -= 1; + } else { + cmark_strbuf_putc(renderer->buffer, '\n'); + if (renderer->need_cr > 1) { + cmark_strbuf_put(renderer->buffer, renderer->prefix->ptr, + renderer->prefix->size); + } + } + renderer->column = 0; + renderer->last_breakable = 0; + renderer->begin_line = true; + renderer->begin_content = true; + renderer->need_cr -= 1; + } + + while (i < length) { + if (renderer->begin_line) { + cmark_strbuf_put(renderer->buffer, renderer->prefix->ptr, + renderer->prefix->size); + // note: this assumes prefix is ascii: + renderer->column = renderer->prefix->size; + } + + len = cmark_utf8proc_iterate((const uint8_t *)source + i, length - i, &c); + if (len == -1) { // error condition + return; // return without rendering rest of string + } + nextc = source[i + len]; + if (c == 32 && wrap) { + if (!renderer->begin_line) { + last_nonspace = renderer->buffer->size; + cmark_strbuf_putc(renderer->buffer, ' '); + renderer->column += 1; + renderer->begin_line = false; + renderer->begin_content = false; + // skip following spaces + while (source[i + 1] == ' ') { + i++; + } + // We don't allow breaks that make a digit the first character + // because this causes problems with commonmark output. + if (!cmark_isdigit(source[i + 1])) { + renderer->last_breakable = last_nonspace; + } + } + + } else if (escape == LITERAL) { + if (c == 10) { + cmark_strbuf_putc(renderer->buffer, '\n'); + renderer->column = 0; + renderer->begin_line = true; + renderer->begin_content = true; + renderer->last_breakable = 0; + } else { + cmark_render_code_point(renderer, c); + renderer->begin_line = false; + // we don't set 'begin_content' to false til we've + // finished parsing a digit. Reason: in commonmark + // we need to escape a potential list marker after + // a digit: + renderer->begin_content = + renderer->begin_content && cmark_isdigit(c) == 1; + } + } else { + (renderer->outc)(renderer, escape, c, nextc); + renderer->begin_line = false; + renderer->begin_content = + renderer->begin_content && cmark_isdigit(c) == 1; + } + + // If adding the character went beyond width, look for an + // earlier place where the line could be broken: + if (renderer->width > 0 && renderer->column > renderer->width && + !renderer->begin_line && renderer->last_breakable > 0) { + + // copy from last_breakable to remainder + cmark_chunk_set_cstr(renderer->mem, &remainder, + (char *)renderer->buffer->ptr + + renderer->last_breakable + 1); + // truncate at last_breakable + cmark_strbuf_truncate(renderer->buffer, renderer->last_breakable); + // add newline, prefix, and remainder + cmark_strbuf_putc(renderer->buffer, '\n'); + cmark_strbuf_put(renderer->buffer, renderer->prefix->ptr, + renderer->prefix->size); + cmark_strbuf_put(renderer->buffer, remainder.data, remainder.len); + renderer->column = renderer->prefix->size + remainder.len; + cmark_chunk_free(renderer->mem, &remainder); + renderer->last_breakable = 0; + renderer->begin_line = false; + renderer->begin_content = false; + } + + i += len; + } +} + +// Assumes no newlines, assumes ascii content: +void cmark_render_ascii(cmark_renderer *renderer, const char *s) { + int origsize = renderer->buffer->size; + cmark_strbuf_puts(renderer->buffer, s); + renderer->column += renderer->buffer->size - origsize; +} + +void cmark_render_code_point(cmark_renderer *renderer, uint32_t c) { + cmark_utf8proc_encode_char(c, renderer->buffer); + renderer->column += 1; +} + +char *cmark_render(cmark_node *root, int options, int width, + void (*outc)(cmark_renderer *, cmark_escaping, int32_t, + unsigned char), + int (*render_node)(cmark_renderer *renderer, + cmark_node *node, + cmark_event_type ev_type, int options)) { + cmark_mem *mem = cmark_node_mem(root); + cmark_strbuf pref = CMARK_BUF_INIT(mem); + cmark_strbuf buf = CMARK_BUF_INIT(mem); + cmark_node *cur; + cmark_event_type ev_type; + char *result; + cmark_iter *iter = cmark_iter_new(root); + + cmark_renderer renderer = {mem, &buf, &pref, 0, width, + 0, 0, true, true, false, + false, outc, S_cr, S_blankline, S_out}; + + while ((ev_type = cmark_iter_next(iter)) != CMARK_EVENT_DONE) { + cur = cmark_iter_get_node(iter); + if (!render_node(&renderer, cur, ev_type, options)) { + // a false value causes us to skip processing + // the node's contents. this is used for + // autolinks. + cmark_iter_reset(iter, cur, CMARK_EVENT_EXIT); + } + } + + // ensure final newline + if (renderer.buffer->size == 0 || renderer.buffer->ptr[renderer.buffer->size - 1] != '\n') { + cmark_strbuf_putc(renderer.buffer, '\n'); + } + + result = (char *)cmark_strbuf_detach(renderer.buffer); + + cmark_iter_free(iter); + cmark_strbuf_free(renderer.prefix); + cmark_strbuf_free(renderer.buffer); + + return result; +} diff --git a/Example/Pods/Down/Source/cmark/render.h b/Example/Pods/Down/Source/cmark/render.h new file mode 100755 index 000000000..ab1103982 --- /dev/null +++ b/Example/Pods/Down/Source/cmark/render.h @@ -0,0 +1,49 @@ +#ifndef CMARK_RENDER_H +#define CMARK_RENDER_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include <stdlib.h> +#include "buffer.h" +#include "chunk.h" + +typedef enum { LITERAL, NORMAL, TITLE, URL } cmark_escaping; + +struct cmark_renderer { + cmark_mem *mem; + cmark_strbuf *buffer; + cmark_strbuf *prefix; + int column; + int width; + int need_cr; + bufsize_t last_breakable; + bool begin_line; + bool begin_content; + bool no_linebreaks; + bool in_tight_list_item; + void (*outc)(struct cmark_renderer *, cmark_escaping, int32_t, unsigned char); + void (*cr)(struct cmark_renderer *); + void (*blankline)(struct cmark_renderer *); + void (*out)(struct cmark_renderer *, const char *, bool, cmark_escaping); +}; + +typedef struct cmark_renderer cmark_renderer; + +void cmark_render_ascii(cmark_renderer *renderer, const char *s); + +void cmark_render_code_point(cmark_renderer *renderer, uint32_t c); + +char *cmark_render(cmark_node *root, int options, int width, + void (*outc)(cmark_renderer *, cmark_escaping, int32_t, + unsigned char), + int (*render_node)(cmark_renderer *renderer, + cmark_node *node, + cmark_event_type ev_type, int options)); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Example/Pods/Down/Source/cmark/scanners.c b/Example/Pods/Down/Source/cmark/scanners.c new file mode 100755 index 000000000..f8e6c15f2 --- /dev/null +++ b/Example/Pods/Down/Source/cmark/scanners.c @@ -0,0 +1,13787 @@ +/* Generated by re2c 0.16 */ +#include <stdlib.h> +#include "chunk.h" +#include "scanners.h" + +bufsize_t _scan_at(bufsize_t (*scanner)(const unsigned char *), cmark_chunk *c, + bufsize_t offset) { + bufsize_t res; + unsigned char *ptr = (unsigned char *)c->data; + + if (ptr == NULL || offset > c->len) { + return 0; + } else { + unsigned char lim = ptr[c->len]; + + ptr[c->len] = '\0'; + res = scanner(ptr + offset); + ptr[c->len] = lim; + } + + return res; +} + +// Try to match a scheme including colon. +bufsize_t _scan_scheme(const unsigned char *p) { + const unsigned char *marker = NULL; + const unsigned char *start = p; + + { + unsigned char yych; + yych = *p; + if (yych <= '@') + goto yy2; + if (yych <= 'Z') + goto yy4; + if (yych <= '`') + goto yy2; + if (yych <= 'z') + goto yy4; + yy2: + ++p; + yy3 : { return 0; } + yy4: + yych = *(marker = ++p); + if (yych <= '/') { + if (yych <= '+') { + if (yych <= '*') + goto yy3; + } else { + if (yych <= ',') + goto yy3; + if (yych >= '/') + goto yy3; + } + } else { + if (yych <= 'Z') { + if (yych <= '9') + goto yy5; + if (yych <= '@') + goto yy3; + } else { + if (yych <= '`') + goto yy3; + if (yych >= '{') + goto yy3; + } + } + yy5: + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych == '+') + goto yy7; + } else { + if (yych != '/') + goto yy7; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy8; + if (yych >= 'A') + goto yy7; + } else { + if (yych <= '`') + goto yy6; + if (yych <= 'z') + goto yy7; + } + } + yy6: + p = marker; + goto yy3; + yy7: + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych == '+') + goto yy10; + goto yy6; + } else { + if (yych == '/') + goto yy6; + goto yy10; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy8; + if (yych <= '@') + goto yy6; + goto yy10; + } else { + if (yych <= '`') + goto yy6; + if (yych <= 'z') + goto yy10; + goto yy6; + } + } + yy8: + ++p; + { return (bufsize_t)(p - start); } + yy10: + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy6; + } else { + if (yych == '/') + goto yy6; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy8; + if (yych <= '@') + goto yy6; + } else { + if (yych <= '`') + goto yy6; + if (yych >= '{') + goto yy6; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy6; + } else { + if (yych == '/') + goto yy6; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy8; + if (yych <= '@') + goto yy6; + } else { + if (yych <= '`') + goto yy6; + if (yych >= '{') + goto yy6; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy6; + } else { + if (yych == '/') + goto yy6; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy8; + if (yych <= '@') + goto yy6; + } else { + if (yych <= '`') + goto yy6; + if (yych >= '{') + goto yy6; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy6; + } else { + if (yych == '/') + goto yy6; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy8; + if (yych <= '@') + goto yy6; + } else { + if (yych <= '`') + goto yy6; + if (yych >= '{') + goto yy6; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy6; + } else { + if (yych == '/') + goto yy6; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy8; + if (yych <= '@') + goto yy6; + } else { + if (yych <= '`') + goto yy6; + if (yych >= '{') + goto yy6; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy6; + } else { + if (yych == '/') + goto yy6; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy8; + if (yych <= '@') + goto yy6; + } else { + if (yych <= '`') + goto yy6; + if (yych >= '{') + goto yy6; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy6; + } else { + if (yych == '/') + goto yy6; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy8; + if (yych <= '@') + goto yy6; + } else { + if (yych <= '`') + goto yy6; + if (yych >= '{') + goto yy6; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy6; + } else { + if (yych == '/') + goto yy6; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy8; + if (yych <= '@') + goto yy6; + } else { + if (yych <= '`') + goto yy6; + if (yych >= '{') + goto yy6; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy6; + } else { + if (yych == '/') + goto yy6; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy8; + if (yych <= '@') + goto yy6; + } else { + if (yych <= '`') + goto yy6; + if (yych >= '{') + goto yy6; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy6; + } else { + if (yych == '/') + goto yy6; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy8; + if (yych <= '@') + goto yy6; + } else { + if (yych <= '`') + goto yy6; + if (yych >= '{') + goto yy6; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy6; + } else { + if (yych == '/') + goto yy6; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy8; + if (yych <= '@') + goto yy6; + } else { + if (yych <= '`') + goto yy6; + if (yych >= '{') + goto yy6; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy6; + } else { + if (yych == '/') + goto yy6; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy8; + if (yych <= '@') + goto yy6; + } else { + if (yych <= '`') + goto yy6; + if (yych >= '{') + goto yy6; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy6; + } else { + if (yych == '/') + goto yy6; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy8; + if (yych <= '@') + goto yy6; + } else { + if (yych <= '`') + goto yy6; + if (yych >= '{') + goto yy6; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy6; + } else { + if (yych == '/') + goto yy6; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy8; + if (yych <= '@') + goto yy6; + } else { + if (yych <= '`') + goto yy6; + if (yych >= '{') + goto yy6; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy6; + } else { + if (yych == '/') + goto yy6; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy8; + if (yych <= '@') + goto yy6; + } else { + if (yych <= '`') + goto yy6; + if (yych >= '{') + goto yy6; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy6; + } else { + if (yych == '/') + goto yy6; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy8; + if (yych <= '@') + goto yy6; + } else { + if (yych <= '`') + goto yy6; + if (yych >= '{') + goto yy6; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy6; + } else { + if (yych == '/') + goto yy6; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy8; + if (yych <= '@') + goto yy6; + } else { + if (yych <= '`') + goto yy6; + if (yych >= '{') + goto yy6; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy6; + } else { + if (yych == '/') + goto yy6; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy8; + if (yych <= '@') + goto yy6; + } else { + if (yych <= '`') + goto yy6; + if (yych >= '{') + goto yy6; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy6; + } else { + if (yych == '/') + goto yy6; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy8; + if (yych <= '@') + goto yy6; + } else { + if (yych <= '`') + goto yy6; + if (yych >= '{') + goto yy6; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy6; + } else { + if (yych == '/') + goto yy6; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy8; + if (yych <= '@') + goto yy6; + } else { + if (yych <= '`') + goto yy6; + if (yych >= '{') + goto yy6; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy6; + } else { + if (yych == '/') + goto yy6; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy8; + if (yych <= '@') + goto yy6; + } else { + if (yych <= '`') + goto yy6; + if (yych >= '{') + goto yy6; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy6; + } else { + if (yych == '/') + goto yy6; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy8; + if (yych <= '@') + goto yy6; + } else { + if (yych <= '`') + goto yy6; + if (yych >= '{') + goto yy6; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy6; + } else { + if (yych == '/') + goto yy6; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy8; + if (yych <= '@') + goto yy6; + } else { + if (yych <= '`') + goto yy6; + if (yych >= '{') + goto yy6; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy6; + } else { + if (yych == '/') + goto yy6; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy8; + if (yych <= '@') + goto yy6; + } else { + if (yych <= '`') + goto yy6; + if (yych >= '{') + goto yy6; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy6; + } else { + if (yych == '/') + goto yy6; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy8; + if (yych <= '@') + goto yy6; + } else { + if (yych <= '`') + goto yy6; + if (yych >= '{') + goto yy6; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy6; + } else { + if (yych == '/') + goto yy6; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy8; + if (yych <= '@') + goto yy6; + } else { + if (yych <= '`') + goto yy6; + if (yych >= '{') + goto yy6; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy6; + } else { + if (yych == '/') + goto yy6; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy8; + if (yych <= '@') + goto yy6; + } else { + if (yych <= '`') + goto yy6; + if (yych >= '{') + goto yy6; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy6; + } else { + if (yych == '/') + goto yy6; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy8; + if (yych <= '@') + goto yy6; + } else { + if (yych <= '`') + goto yy6; + if (yych >= '{') + goto yy6; + } + } + ++p; + if ((yych = *p) == ':') + goto yy8; + goto yy6; + } +} + +// Try to match URI autolink after first <, returning number of chars matched. +bufsize_t _scan_autolink_uri(const unsigned char *p) { + const unsigned char *marker = NULL; + const unsigned char *start = p; + + { + unsigned char yych; + static const unsigned char yybm[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 0, 128, 0, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, + }; + yych = *p; + if (yych <= '@') + goto yy41; + if (yych <= 'Z') + goto yy43; + if (yych <= '`') + goto yy41; + if (yych <= 'z') + goto yy43; + yy41: + ++p; + yy42 : { return 0; } + yy43: + yych = *(marker = ++p); + if (yych <= '/') { + if (yych <= '+') { + if (yych <= '*') + goto yy42; + } else { + if (yych <= ',') + goto yy42; + if (yych >= '/') + goto yy42; + } + } else { + if (yych <= 'Z') { + if (yych <= '9') + goto yy44; + if (yych <= '@') + goto yy42; + } else { + if (yych <= '`') + goto yy42; + if (yych >= '{') + goto yy42; + } + } + yy44: + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych == '+') + goto yy46; + } else { + if (yych != '/') + goto yy46; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy47; + if (yych >= 'A') + goto yy46; + } else { + if (yych <= '`') + goto yy45; + if (yych <= 'z') + goto yy46; + } + } + yy45: + p = marker; + goto yy42; + yy46: + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych == '+') + goto yy49; + goto yy45; + } else { + if (yych == '/') + goto yy45; + goto yy49; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy47; + if (yych <= '@') + goto yy45; + goto yy49; + } else { + if (yych <= '`') + goto yy45; + if (yych <= 'z') + goto yy49; + goto yy45; + } + } + yy47: + ++p; + yych = *p; + if (yybm[0 + yych] & 128) { + goto yy47; + } + if (yych <= 0xEC) { + if (yych <= 0xC1) { + if (yych <= '<') + goto yy45; + if (yych <= '>') + goto yy50; + goto yy45; + } else { + if (yych <= 0xDF) + goto yy52; + if (yych <= 0xE0) + goto yy53; + goto yy54; + } + } else { + if (yych <= 0xF0) { + if (yych <= 0xED) + goto yy55; + if (yych <= 0xEF) + goto yy54; + goto yy56; + } else { + if (yych <= 0xF3) + goto yy57; + if (yych <= 0xF4) + goto yy58; + goto yy45; + } + } + yy49: + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych == '+') + goto yy59; + goto yy45; + } else { + if (yych == '/') + goto yy45; + goto yy59; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy47; + if (yych <= '@') + goto yy45; + goto yy59; + } else { + if (yych <= '`') + goto yy45; + if (yych <= 'z') + goto yy59; + goto yy45; + } + } + yy50: + ++p; + { return (bufsize_t)(p - start); } + yy52: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy45; + if (yych <= 0xBF) + goto yy47; + goto yy45; + yy53: + ++p; + yych = *p; + if (yych <= 0x9F) + goto yy45; + if (yych <= 0xBF) + goto yy52; + goto yy45; + yy54: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy45; + if (yych <= 0xBF) + goto yy52; + goto yy45; + yy55: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy45; + if (yych <= 0x9F) + goto yy52; + goto yy45; + yy56: + ++p; + yych = *p; + if (yych <= 0x8F) + goto yy45; + if (yych <= 0xBF) + goto yy54; + goto yy45; + yy57: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy45; + if (yych <= 0xBF) + goto yy54; + goto yy45; + yy58: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy45; + if (yych <= 0x8F) + goto yy54; + goto yy45; + yy59: + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy45; + } else { + if (yych == '/') + goto yy45; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy47; + if (yych <= '@') + goto yy45; + } else { + if (yych <= '`') + goto yy45; + if (yych >= '{') + goto yy45; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy45; + } else { + if (yych == '/') + goto yy45; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy47; + if (yych <= '@') + goto yy45; + } else { + if (yych <= '`') + goto yy45; + if (yych >= '{') + goto yy45; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy45; + } else { + if (yych == '/') + goto yy45; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy47; + if (yych <= '@') + goto yy45; + } else { + if (yych <= '`') + goto yy45; + if (yych >= '{') + goto yy45; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy45; + } else { + if (yych == '/') + goto yy45; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy47; + if (yych <= '@') + goto yy45; + } else { + if (yych <= '`') + goto yy45; + if (yych >= '{') + goto yy45; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy45; + } else { + if (yych == '/') + goto yy45; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy47; + if (yych <= '@') + goto yy45; + } else { + if (yych <= '`') + goto yy45; + if (yych >= '{') + goto yy45; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy45; + } else { + if (yych == '/') + goto yy45; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy47; + if (yych <= '@') + goto yy45; + } else { + if (yych <= '`') + goto yy45; + if (yych >= '{') + goto yy45; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy45; + } else { + if (yych == '/') + goto yy45; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy47; + if (yych <= '@') + goto yy45; + } else { + if (yych <= '`') + goto yy45; + if (yych >= '{') + goto yy45; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy45; + } else { + if (yych == '/') + goto yy45; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy47; + if (yych <= '@') + goto yy45; + } else { + if (yych <= '`') + goto yy45; + if (yych >= '{') + goto yy45; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy45; + } else { + if (yych == '/') + goto yy45; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy47; + if (yych <= '@') + goto yy45; + } else { + if (yych <= '`') + goto yy45; + if (yych >= '{') + goto yy45; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy45; + } else { + if (yych == '/') + goto yy45; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy47; + if (yych <= '@') + goto yy45; + } else { + if (yych <= '`') + goto yy45; + if (yych >= '{') + goto yy45; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy45; + } else { + if (yych == '/') + goto yy45; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy47; + if (yych <= '@') + goto yy45; + } else { + if (yych <= '`') + goto yy45; + if (yych >= '{') + goto yy45; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy45; + } else { + if (yych == '/') + goto yy45; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy47; + if (yych <= '@') + goto yy45; + } else { + if (yych <= '`') + goto yy45; + if (yych >= '{') + goto yy45; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy45; + } else { + if (yych == '/') + goto yy45; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy47; + if (yych <= '@') + goto yy45; + } else { + if (yych <= '`') + goto yy45; + if (yych >= '{') + goto yy45; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy45; + } else { + if (yych == '/') + goto yy45; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy47; + if (yych <= '@') + goto yy45; + } else { + if (yych <= '`') + goto yy45; + if (yych >= '{') + goto yy45; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy45; + } else { + if (yych == '/') + goto yy45; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy47; + if (yych <= '@') + goto yy45; + } else { + if (yych <= '`') + goto yy45; + if (yych >= '{') + goto yy45; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy45; + } else { + if (yych == '/') + goto yy45; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy47; + if (yych <= '@') + goto yy45; + } else { + if (yych <= '`') + goto yy45; + if (yych >= '{') + goto yy45; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy45; + } else { + if (yych == '/') + goto yy45; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy47; + if (yych <= '@') + goto yy45; + } else { + if (yych <= '`') + goto yy45; + if (yych >= '{') + goto yy45; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy45; + } else { + if (yych == '/') + goto yy45; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy47; + if (yych <= '@') + goto yy45; + } else { + if (yych <= '`') + goto yy45; + if (yych >= '{') + goto yy45; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy45; + } else { + if (yych == '/') + goto yy45; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy47; + if (yych <= '@') + goto yy45; + } else { + if (yych <= '`') + goto yy45; + if (yych >= '{') + goto yy45; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy45; + } else { + if (yych == '/') + goto yy45; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy47; + if (yych <= '@') + goto yy45; + } else { + if (yych <= '`') + goto yy45; + if (yych >= '{') + goto yy45; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy45; + } else { + if (yych == '/') + goto yy45; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy47; + if (yych <= '@') + goto yy45; + } else { + if (yych <= '`') + goto yy45; + if (yych >= '{') + goto yy45; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy45; + } else { + if (yych == '/') + goto yy45; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy47; + if (yych <= '@') + goto yy45; + } else { + if (yych <= '`') + goto yy45; + if (yych >= '{') + goto yy45; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy45; + } else { + if (yych == '/') + goto yy45; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy47; + if (yych <= '@') + goto yy45; + } else { + if (yych <= '`') + goto yy45; + if (yych >= '{') + goto yy45; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy45; + } else { + if (yych == '/') + goto yy45; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy47; + if (yych <= '@') + goto yy45; + } else { + if (yych <= '`') + goto yy45; + if (yych >= '{') + goto yy45; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy45; + } else { + if (yych == '/') + goto yy45; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy47; + if (yych <= '@') + goto yy45; + } else { + if (yych <= '`') + goto yy45; + if (yych >= '{') + goto yy45; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy45; + } else { + if (yych == '/') + goto yy45; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy47; + if (yych <= '@') + goto yy45; + } else { + if (yych <= '`') + goto yy45; + if (yych >= '{') + goto yy45; + } + } + yych = *++p; + if (yych <= '9') { + if (yych <= ',') { + if (yych != '+') + goto yy45; + } else { + if (yych == '/') + goto yy45; + } + } else { + if (yych <= 'Z') { + if (yych <= ':') + goto yy47; + if (yych <= '@') + goto yy45; + } else { + if (yych <= '`') + goto yy45; + if (yych >= '{') + goto yy45; + } + } + ++p; + if ((yych = *p) == ':') + goto yy47; + goto yy45; + } +} + +// Try to match email autolink after first <, returning num of chars matched. +bufsize_t _scan_autolink_email(const unsigned char *p) { + const unsigned char *marker = NULL; + const unsigned char *start = p; + + { + unsigned char yych; + static const unsigned char yybm[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 128, 0, 128, 128, 128, 128, 128, 0, 0, + 128, 128, 0, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 0, 0, 0, 128, 0, 128, 0, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 0, 0, 0, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, + }; + yych = *p; + if (yych <= '9') { + if (yych <= '\'') { + if (yych == '!') + goto yy91; + if (yych >= '#') + goto yy91; + } else { + if (yych <= ')') + goto yy89; + if (yych != ',') + goto yy91; + } + } else { + if (yych <= '?') { + if (yych == '=') + goto yy91; + if (yych >= '?') + goto yy91; + } else { + if (yych <= 'Z') { + if (yych >= 'A') + goto yy91; + } else { + if (yych <= ']') + goto yy89; + if (yych <= '~') + goto yy91; + } + } + } + yy89: + ++p; + yy90 : { return 0; } + yy91: + yych = *(marker = ++p); + if (yych <= ',') { + if (yych <= '"') { + if (yych == '!') + goto yy93; + goto yy90; + } else { + if (yych <= '\'') + goto yy93; + if (yych <= ')') + goto yy90; + if (yych <= '+') + goto yy93; + goto yy90; + } + } else { + if (yych <= '>') { + if (yych <= '9') + goto yy93; + if (yych == '=') + goto yy93; + goto yy90; + } else { + if (yych <= 'Z') + goto yy93; + if (yych <= ']') + goto yy90; + if (yych <= '~') + goto yy93; + goto yy90; + } + } + yy92: + ++p; + yych = *p; + yy93: + if (yybm[0 + yych] & 128) { + goto yy92; + } + if (yych <= '>') + goto yy94; + if (yych <= '@') + goto yy95; + yy94: + p = marker; + goto yy90; + yy95: + ++p; + yych = *p; + if (yych <= '@') { + if (yych <= '/') + goto yy94; + if (yych >= ':') + goto yy94; + } else { + if (yych <= 'Z') + goto yy96; + if (yych <= '`') + goto yy94; + if (yych >= '{') + goto yy94; + } + yy96: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy94; + if (yych >= '.') + goto yy95; + } else { + if (yych <= '/') + goto yy94; + if (yych <= '9') + goto yy98; + goto yy94; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy99; + if (yych <= '@') + goto yy94; + goto yy98; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy98; + goto yy94; + } + } + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy101; + if (yych <= '/') + goto yy94; + goto yy102; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy94; + goto yy102; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy102; + goto yy94; + } + } + yy98: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy94; + if (yych <= '-') + goto yy101; + goto yy95; + } else { + if (yych <= '/') + goto yy94; + if (yych <= '9') + goto yy102; + goto yy94; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy99; + if (yych <= '@') + goto yy94; + goto yy102; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy102; + goto yy94; + } + } + yy99: + ++p; + { return (bufsize_t)(p - start); } + yy101: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy103; + if (yych <= '/') + goto yy94; + goto yy104; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy94; + goto yy104; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy104; + goto yy94; + } + } + yy102: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy94; + if (yych >= '.') + goto yy95; + } else { + if (yych <= '/') + goto yy94; + if (yych <= '9') + goto yy104; + goto yy94; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy99; + if (yych <= '@') + goto yy94; + goto yy104; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy104; + goto yy94; + } + } + yy103: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy105; + if (yych <= '/') + goto yy94; + goto yy106; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy94; + goto yy106; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy106; + goto yy94; + } + } + yy104: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy94; + if (yych >= '.') + goto yy95; + } else { + if (yych <= '/') + goto yy94; + if (yych <= '9') + goto yy106; + goto yy94; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy99; + if (yych <= '@') + goto yy94; + goto yy106; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy106; + goto yy94; + } + } + yy105: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy107; + if (yych <= '/') + goto yy94; + goto yy108; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy94; + goto yy108; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy108; + goto yy94; + } + } + yy106: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy94; + if (yych >= '.') + goto yy95; + } else { + if (yych <= '/') + goto yy94; + if (yych <= '9') + goto yy108; + goto yy94; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy99; + if (yych <= '@') + goto yy94; + goto yy108; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy108; + goto yy94; + } + } + yy107: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy109; + if (yych <= '/') + goto yy94; + goto yy110; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy94; + goto yy110; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy110; + goto yy94; + } + } + yy108: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy94; + if (yych >= '.') + goto yy95; + } else { + if (yych <= '/') + goto yy94; + if (yych <= '9') + goto yy110; + goto yy94; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy99; + if (yych <= '@') + goto yy94; + goto yy110; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy110; + goto yy94; + } + } + yy109: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy111; + if (yych <= '/') + goto yy94; + goto yy112; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy94; + goto yy112; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy112; + goto yy94; + } + } + yy110: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy94; + if (yych >= '.') + goto yy95; + } else { + if (yych <= '/') + goto yy94; + if (yych <= '9') + goto yy112; + goto yy94; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy99; + if (yych <= '@') + goto yy94; + goto yy112; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy112; + goto yy94; + } + } + yy111: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy113; + if (yych <= '/') + goto yy94; + goto yy114; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy94; + goto yy114; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy114; + goto yy94; + } + } + yy112: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy94; + if (yych >= '.') + goto yy95; + } else { + if (yych <= '/') + goto yy94; + if (yych <= '9') + goto yy114; + goto yy94; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy99; + if (yych <= '@') + goto yy94; + goto yy114; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy114; + goto yy94; + } + } + yy113: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy115; + if (yych <= '/') + goto yy94; + goto yy116; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy94; + goto yy116; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy116; + goto yy94; + } + } + yy114: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy94; + if (yych >= '.') + goto yy95; + } else { + if (yych <= '/') + goto yy94; + if (yych <= '9') + goto yy116; + goto yy94; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy99; + if (yych <= '@') + goto yy94; + goto yy116; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy116; + goto yy94; + } + } + yy115: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy117; + if (yych <= '/') + goto yy94; + goto yy118; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy94; + goto yy118; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy118; + goto yy94; + } + } + yy116: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy94; + if (yych >= '.') + goto yy95; + } else { + if (yych <= '/') + goto yy94; + if (yych <= '9') + goto yy118; + goto yy94; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy99; + if (yych <= '@') + goto yy94; + goto yy118; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy118; + goto yy94; + } + } + yy117: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy119; + if (yych <= '/') + goto yy94; + goto yy120; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy94; + goto yy120; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy120; + goto yy94; + } + } + yy118: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy94; + if (yych >= '.') + goto yy95; + } else { + if (yych <= '/') + goto yy94; + if (yych <= '9') + goto yy120; + goto yy94; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy99; + if (yych <= '@') + goto yy94; + goto yy120; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy120; + goto yy94; + } + } + yy119: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy121; + if (yych <= '/') + goto yy94; + goto yy122; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy94; + goto yy122; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy122; + goto yy94; + } + } + yy120: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy94; + if (yych >= '.') + goto yy95; + } else { + if (yych <= '/') + goto yy94; + if (yych <= '9') + goto yy122; + goto yy94; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy99; + if (yych <= '@') + goto yy94; + goto yy122; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy122; + goto yy94; + } + } + yy121: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy123; + if (yych <= '/') + goto yy94; + goto yy124; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy94; + goto yy124; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy124; + goto yy94; + } + } + yy122: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy94; + if (yych >= '.') + goto yy95; + } else { + if (yych <= '/') + goto yy94; + if (yych <= '9') + goto yy124; + goto yy94; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy99; + if (yych <= '@') + goto yy94; + goto yy124; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy124; + goto yy94; + } + } + yy123: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy125; + if (yych <= '/') + goto yy94; + goto yy126; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy94; + goto yy126; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy126; + goto yy94; + } + } + yy124: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy94; + if (yych >= '.') + goto yy95; + } else { + if (yych <= '/') + goto yy94; + if (yych <= '9') + goto yy126; + goto yy94; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy99; + if (yych <= '@') + goto yy94; + goto yy126; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy126; + goto yy94; + } + } + yy125: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy127; + if (yych <= '/') + goto yy94; + goto yy128; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy94; + goto yy128; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy128; + goto yy94; + } + } + yy126: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy94; + if (yych >= '.') + goto yy95; + } else { + if (yych <= '/') + goto yy94; + if (yych <= '9') + goto yy128; + goto yy94; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy99; + if (yych <= '@') + goto yy94; + goto yy128; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy128; + goto yy94; + } + } + yy127: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy129; + if (yych <= '/') + goto yy94; + goto yy130; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy94; + goto yy130; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy130; + goto yy94; + } + } + yy128: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy94; + if (yych >= '.') + goto yy95; + } else { + if (yych <= '/') + goto yy94; + if (yych <= '9') + goto yy130; + goto yy94; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy99; + if (yych <= '@') + goto yy94; + goto yy130; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy130; + goto yy94; + } + } + yy129: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy131; + if (yych <= '/') + goto yy94; + goto yy132; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy94; + goto yy132; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy132; + goto yy94; + } + } + yy130: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy94; + if (yych >= '.') + goto yy95; + } else { + if (yych <= '/') + goto yy94; + if (yych <= '9') + goto yy132; + goto yy94; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy99; + if (yych <= '@') + goto yy94; + goto yy132; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy132; + goto yy94; + } + } + yy131: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy133; + if (yych <= '/') + goto yy94; + goto yy134; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy94; + goto yy134; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy134; + goto yy94; + } + } + yy132: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy94; + if (yych >= '.') + goto yy95; + } else { + if (yych <= '/') + goto yy94; + if (yych <= '9') + goto yy134; + goto yy94; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy99; + if (yych <= '@') + goto yy94; + goto yy134; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy134; + goto yy94; + } + } + yy133: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy135; + if (yych <= '/') + goto yy94; + goto yy136; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy94; + goto yy136; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy136; + goto yy94; + } + } + yy134: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy94; + if (yych >= '.') + goto yy95; + } else { + if (yych <= '/') + goto yy94; + if (yych <= '9') + goto yy136; + goto yy94; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy99; + if (yych <= '@') + goto yy94; + goto yy136; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy136; + goto yy94; + } + } + yy135: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy137; + if (yych <= '/') + goto yy94; + goto yy138; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy94; + goto yy138; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy138; + goto yy94; + } + } + yy136: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy94; + if (yych >= '.') + goto yy95; + } else { + if (yych <= '/') + goto yy94; + if (yych <= '9') + goto yy138; + goto yy94; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy99; + if (yych <= '@') + goto yy94; + goto yy138; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy138; + goto yy94; + } + } + yy137: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy139; + if (yych <= '/') + goto yy94; + goto yy140; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy94; + goto yy140; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy140; + goto yy94; + } + } + yy138: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy94; + if (yych >= '.') + goto yy95; + } else { + if (yych <= '/') + goto yy94; + if (yych <= '9') + goto yy140; + goto yy94; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy99; + if (yych <= '@') + goto yy94; + goto yy140; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy140; + goto yy94; + } + } + yy139: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy141; + if (yych <= '/') + goto yy94; + goto yy142; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy94; + goto yy142; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy142; + goto yy94; + } + } + yy140: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy94; + if (yych >= '.') + goto yy95; + } else { + if (yych <= '/') + goto yy94; + if (yych <= '9') + goto yy142; + goto yy94; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy99; + if (yych <= '@') + goto yy94; + goto yy142; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy142; + goto yy94; + } + } + yy141: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy143; + if (yych <= '/') + goto yy94; + goto yy144; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy94; + goto yy144; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy144; + goto yy94; + } + } + yy142: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy94; + if (yych >= '.') + goto yy95; + } else { + if (yych <= '/') + goto yy94; + if (yych <= '9') + goto yy144; + goto yy94; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy99; + if (yych <= '@') + goto yy94; + goto yy144; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy144; + goto yy94; + } + } + yy143: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy145; + if (yych <= '/') + goto yy94; + goto yy146; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy94; + goto yy146; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy146; + goto yy94; + } + } + yy144: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy94; + if (yych >= '.') + goto yy95; + } else { + if (yych <= '/') + goto yy94; + if (yych <= '9') + goto yy146; + goto yy94; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy99; + if (yych <= '@') + goto yy94; + goto yy146; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy146; + goto yy94; + } + } + yy145: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy147; + if (yych <= '/') + goto yy94; + goto yy148; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy94; + goto yy148; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy148; + goto yy94; + } + } + yy146: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy94; + if (yych >= '.') + goto yy95; + } else { + if (yych <= '/') + goto yy94; + if (yych <= '9') + goto yy148; + goto yy94; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy99; + if (yych <= '@') + goto yy94; + goto yy148; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy148; + goto yy94; + } + } + yy147: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy149; + if (yych <= '/') + goto yy94; + goto yy150; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy94; + goto yy150; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy150; + goto yy94; + } + } + yy148: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy94; + if (yych >= '.') + goto yy95; + } else { + if (yych <= '/') + goto yy94; + if (yych <= '9') + goto yy150; + goto yy94; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy99; + if (yych <= '@') + goto yy94; + goto yy150; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy150; + goto yy94; + } + } + yy149: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy151; + if (yych <= '/') + goto yy94; + goto yy152; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy94; + goto yy152; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy152; + goto yy94; + } + } + yy150: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy94; + if (yych >= '.') + goto yy95; + } else { + if (yych <= '/') + goto yy94; + if (yych <= '9') + goto yy152; + goto yy94; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy99; + if (yych <= '@') + goto yy94; + goto yy152; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy152; + goto yy94; + } + } + yy151: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy153; + if (yych <= '/') + goto yy94; + goto yy154; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy94; + goto yy154; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy154; + goto yy94; + } + } + yy152: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy94; + if (yych >= '.') + goto yy95; + } else { + if (yych <= '/') + goto yy94; + if (yych <= '9') + goto yy154; + goto yy94; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy99; + if (yych <= '@') + goto yy94; + goto yy154; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy154; + goto yy94; + } + } + yy153: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy155; + if (yych <= '/') + goto yy94; + goto yy156; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy94; + goto yy156; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy156; + goto yy94; + } + } + yy154: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy94; + if (yych >= '.') + goto yy95; + } else { + if (yych <= '/') + goto yy94; + if (yych <= '9') + goto yy156; + goto yy94; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy99; + if (yych <= '@') + goto yy94; + goto yy156; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy156; + goto yy94; + } + } + yy155: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy157; + if (yych <= '/') + goto yy94; + goto yy158; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy94; + goto yy158; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy158; + goto yy94; + } + } + yy156: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy94; + if (yych >= '.') + goto yy95; + } else { + if (yych <= '/') + goto yy94; + if (yych <= '9') + goto yy158; + goto yy94; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy99; + if (yych <= '@') + goto yy94; + goto yy158; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy158; + goto yy94; + } + } + yy157: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy159; + if (yych <= '/') + goto yy94; + goto yy160; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy94; + goto yy160; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy160; + goto yy94; + } + } + yy158: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy94; + if (yych >= '.') + goto yy95; + } else { + if (yych <= '/') + goto yy94; + if (yych <= '9') + goto yy160; + goto yy94; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy99; + if (yych <= '@') + goto yy94; + goto yy160; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy160; + goto yy94; + } + } + yy159: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy161; + if (yych <= '/') + goto yy94; + goto yy162; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy94; + goto yy162; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy162; + goto yy94; + } + } + yy160: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy94; + if (yych >= '.') + goto yy95; + } else { + if (yych <= '/') + goto yy94; + if (yych <= '9') + goto yy162; + goto yy94; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy99; + if (yych <= '@') + goto yy94; + goto yy162; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy162; + goto yy94; + } + } + yy161: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy163; + if (yych <= '/') + goto yy94; + goto yy164; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy94; + goto yy164; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy164; + goto yy94; + } + } + yy162: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy94; + if (yych >= '.') + goto yy95; + } else { + if (yych <= '/') + goto yy94; + if (yych <= '9') + goto yy164; + goto yy94; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy99; + if (yych <= '@') + goto yy94; + goto yy164; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy164; + goto yy94; + } + } + yy163: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy165; + if (yych <= '/') + goto yy94; + goto yy166; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy94; + goto yy166; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy166; + goto yy94; + } + } + yy164: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy94; + if (yych >= '.') + goto yy95; + } else { + if (yych <= '/') + goto yy94; + if (yych <= '9') + goto yy166; + goto yy94; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy99; + if (yych <= '@') + goto yy94; + goto yy166; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy166; + goto yy94; + } + } + yy165: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy167; + if (yych <= '/') + goto yy94; + goto yy168; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy94; + goto yy168; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy168; + goto yy94; + } + } + yy166: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy94; + if (yych >= '.') + goto yy95; + } else { + if (yych <= '/') + goto yy94; + if (yych <= '9') + goto yy168; + goto yy94; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy99; + if (yych <= '@') + goto yy94; + goto yy168; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy168; + goto yy94; + } + } + yy167: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy169; + if (yych <= '/') + goto yy94; + goto yy170; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy94; + goto yy170; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy170; + goto yy94; + } + } + yy168: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy94; + if (yych >= '.') + goto yy95; + } else { + if (yych <= '/') + goto yy94; + if (yych <= '9') + goto yy170; + goto yy94; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy99; + if (yych <= '@') + goto yy94; + goto yy170; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy170; + goto yy94; + } + } + yy169: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy171; + if (yych <= '/') + goto yy94; + goto yy172; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy94; + goto yy172; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy172; + goto yy94; + } + } + yy170: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy94; + if (yych >= '.') + goto yy95; + } else { + if (yych <= '/') + goto yy94; + if (yych <= '9') + goto yy172; + goto yy94; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy99; + if (yych <= '@') + goto yy94; + goto yy172; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy172; + goto yy94; + } + } + yy171: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy173; + if (yych <= '/') + goto yy94; + goto yy174; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy94; + goto yy174; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy174; + goto yy94; + } + } + yy172: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy94; + if (yych >= '.') + goto yy95; + } else { + if (yych <= '/') + goto yy94; + if (yych <= '9') + goto yy174; + goto yy94; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy99; + if (yych <= '@') + goto yy94; + goto yy174; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy174; + goto yy94; + } + } + yy173: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy175; + if (yych <= '/') + goto yy94; + goto yy176; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy94; + goto yy176; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy176; + goto yy94; + } + } + yy174: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy94; + if (yych >= '.') + goto yy95; + } else { + if (yych <= '/') + goto yy94; + if (yych <= '9') + goto yy176; + goto yy94; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy99; + if (yych <= '@') + goto yy94; + goto yy176; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy176; + goto yy94; + } + } + yy175: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy177; + if (yych <= '/') + goto yy94; + goto yy178; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy94; + goto yy178; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy178; + goto yy94; + } + } + yy176: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy94; + if (yych >= '.') + goto yy95; + } else { + if (yych <= '/') + goto yy94; + if (yych <= '9') + goto yy178; + goto yy94; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy99; + if (yych <= '@') + goto yy94; + goto yy178; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy178; + goto yy94; + } + } + yy177: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy179; + if (yych <= '/') + goto yy94; + goto yy180; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy94; + goto yy180; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy180; + goto yy94; + } + } + yy178: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy94; + if (yych >= '.') + goto yy95; + } else { + if (yych <= '/') + goto yy94; + if (yych <= '9') + goto yy180; + goto yy94; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy99; + if (yych <= '@') + goto yy94; + goto yy180; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy180; + goto yy94; + } + } + yy179: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy181; + if (yych <= '/') + goto yy94; + goto yy182; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy94; + goto yy182; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy182; + goto yy94; + } + } + yy180: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy94; + if (yych >= '.') + goto yy95; + } else { + if (yych <= '/') + goto yy94; + if (yych <= '9') + goto yy182; + goto yy94; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy99; + if (yych <= '@') + goto yy94; + goto yy182; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy182; + goto yy94; + } + } + yy181: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy183; + if (yych <= '/') + goto yy94; + goto yy184; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy94; + goto yy184; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy184; + goto yy94; + } + } + yy182: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy94; + if (yych >= '.') + goto yy95; + } else { + if (yych <= '/') + goto yy94; + if (yych <= '9') + goto yy184; + goto yy94; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy99; + if (yych <= '@') + goto yy94; + goto yy184; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy184; + goto yy94; + } + } + yy183: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy185; + if (yych <= '/') + goto yy94; + goto yy186; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy94; + goto yy186; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy186; + goto yy94; + } + } + yy184: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy94; + if (yych >= '.') + goto yy95; + } else { + if (yych <= '/') + goto yy94; + if (yych <= '9') + goto yy186; + goto yy94; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy99; + if (yych <= '@') + goto yy94; + goto yy186; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy186; + goto yy94; + } + } + yy185: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy187; + if (yych <= '/') + goto yy94; + goto yy188; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy94; + goto yy188; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy188; + goto yy94; + } + } + yy186: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy94; + if (yych >= '.') + goto yy95; + } else { + if (yych <= '/') + goto yy94; + if (yych <= '9') + goto yy188; + goto yy94; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy99; + if (yych <= '@') + goto yy94; + goto yy188; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy188; + goto yy94; + } + } + yy187: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy189; + if (yych <= '/') + goto yy94; + goto yy190; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy94; + goto yy190; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy190; + goto yy94; + } + } + yy188: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy94; + if (yych >= '.') + goto yy95; + } else { + if (yych <= '/') + goto yy94; + if (yych <= '9') + goto yy190; + goto yy94; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy99; + if (yych <= '@') + goto yy94; + goto yy190; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy190; + goto yy94; + } + } + yy189: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy191; + if (yych <= '/') + goto yy94; + goto yy192; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy94; + goto yy192; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy192; + goto yy94; + } + } + yy190: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy94; + if (yych >= '.') + goto yy95; + } else { + if (yych <= '/') + goto yy94; + if (yych <= '9') + goto yy192; + goto yy94; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy99; + if (yych <= '@') + goto yy94; + goto yy192; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy192; + goto yy94; + } + } + yy191: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy193; + if (yych <= '/') + goto yy94; + goto yy194; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy94; + goto yy194; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy194; + goto yy94; + } + } + yy192: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy94; + if (yych >= '.') + goto yy95; + } else { + if (yych <= '/') + goto yy94; + if (yych <= '9') + goto yy194; + goto yy94; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy99; + if (yych <= '@') + goto yy94; + goto yy194; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy194; + goto yy94; + } + } + yy193: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy195; + if (yych <= '/') + goto yy94; + goto yy196; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy94; + goto yy196; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy196; + goto yy94; + } + } + yy194: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy94; + if (yych >= '.') + goto yy95; + } else { + if (yych <= '/') + goto yy94; + if (yych <= '9') + goto yy196; + goto yy94; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy99; + if (yych <= '@') + goto yy94; + goto yy196; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy196; + goto yy94; + } + } + yy195: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy197; + if (yych <= '/') + goto yy94; + goto yy198; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy94; + goto yy198; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy198; + goto yy94; + } + } + yy196: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy94; + if (yych >= '.') + goto yy95; + } else { + if (yych <= '/') + goto yy94; + if (yych <= '9') + goto yy198; + goto yy94; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy99; + if (yych <= '@') + goto yy94; + goto yy198; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy198; + goto yy94; + } + } + yy197: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy199; + if (yych <= '/') + goto yy94; + goto yy200; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy94; + goto yy200; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy200; + goto yy94; + } + } + yy198: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy94; + if (yych >= '.') + goto yy95; + } else { + if (yych <= '/') + goto yy94; + if (yych <= '9') + goto yy200; + goto yy94; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy99; + if (yych <= '@') + goto yy94; + goto yy200; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy200; + goto yy94; + } + } + yy199: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy201; + if (yych <= '/') + goto yy94; + goto yy202; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy94; + goto yy202; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy202; + goto yy94; + } + } + yy200: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy94; + if (yych >= '.') + goto yy95; + } else { + if (yych <= '/') + goto yy94; + if (yych <= '9') + goto yy202; + goto yy94; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy99; + if (yych <= '@') + goto yy94; + goto yy202; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy202; + goto yy94; + } + } + yy201: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy203; + if (yych <= '/') + goto yy94; + goto yy204; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy94; + goto yy204; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy204; + goto yy94; + } + } + yy202: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy94; + if (yych >= '.') + goto yy95; + } else { + if (yych <= '/') + goto yy94; + if (yych <= '9') + goto yy204; + goto yy94; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy99; + if (yych <= '@') + goto yy94; + goto yy204; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy204; + goto yy94; + } + } + yy203: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy205; + if (yych <= '/') + goto yy94; + goto yy206; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy94; + goto yy206; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy206; + goto yy94; + } + } + yy204: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy94; + if (yych >= '.') + goto yy95; + } else { + if (yych <= '/') + goto yy94; + if (yych <= '9') + goto yy206; + goto yy94; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy99; + if (yych <= '@') + goto yy94; + goto yy206; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy206; + goto yy94; + } + } + yy205: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy207; + if (yych <= '/') + goto yy94; + goto yy208; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy94; + goto yy208; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy208; + goto yy94; + } + } + yy206: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy94; + if (yych >= '.') + goto yy95; + } else { + if (yych <= '/') + goto yy94; + if (yych <= '9') + goto yy208; + goto yy94; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy99; + if (yych <= '@') + goto yy94; + goto yy208; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy208; + goto yy94; + } + } + yy207: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy209; + if (yych <= '/') + goto yy94; + goto yy210; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy94; + goto yy210; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy210; + goto yy94; + } + } + yy208: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy94; + if (yych >= '.') + goto yy95; + } else { + if (yych <= '/') + goto yy94; + if (yych <= '9') + goto yy210; + goto yy94; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy99; + if (yych <= '@') + goto yy94; + goto yy210; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy210; + goto yy94; + } + } + yy209: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy211; + if (yych <= '/') + goto yy94; + goto yy212; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy94; + goto yy212; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy212; + goto yy94; + } + } + yy210: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy94; + if (yych >= '.') + goto yy95; + } else { + if (yych <= '/') + goto yy94; + if (yych <= '9') + goto yy212; + goto yy94; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy99; + if (yych <= '@') + goto yy94; + goto yy212; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy212; + goto yy94; + } + } + yy211: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy213; + if (yych <= '/') + goto yy94; + goto yy214; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy94; + goto yy214; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy214; + goto yy94; + } + } + yy212: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy94; + if (yych >= '.') + goto yy95; + } else { + if (yych <= '/') + goto yy94; + if (yych <= '9') + goto yy214; + goto yy94; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy99; + if (yych <= '@') + goto yy94; + goto yy214; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy214; + goto yy94; + } + } + yy213: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy215; + if (yych <= '/') + goto yy94; + goto yy216; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy94; + goto yy216; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy216; + goto yy94; + } + } + yy214: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy94; + if (yych >= '.') + goto yy95; + } else { + if (yych <= '/') + goto yy94; + if (yych <= '9') + goto yy216; + goto yy94; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy99; + if (yych <= '@') + goto yy94; + goto yy216; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy216; + goto yy94; + } + } + yy215: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy217; + if (yych <= '/') + goto yy94; + goto yy218; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy94; + goto yy218; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy218; + goto yy94; + } + } + yy216: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy94; + if (yych >= '.') + goto yy95; + } else { + if (yych <= '/') + goto yy94; + if (yych <= '9') + goto yy218; + goto yy94; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy99; + if (yych <= '@') + goto yy94; + goto yy218; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy218; + goto yy94; + } + } + yy217: + ++p; + yych = *p; + if (yych <= '9') { + if (yych == '-') + goto yy219; + if (yych <= '/') + goto yy94; + goto yy220; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy94; + goto yy220; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy220; + goto yy94; + } + } + yy218: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= ',') + goto yy94; + if (yych >= '.') + goto yy95; + } else { + if (yych <= '/') + goto yy94; + if (yych <= '9') + goto yy220; + goto yy94; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy99; + if (yych <= '@') + goto yy94; + goto yy220; + } else { + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy220; + goto yy94; + } + } + yy219: + ++p; + yych = *p; + if (yych <= '@') { + if (yych <= '/') + goto yy94; + if (yych <= '9') + goto yy221; + goto yy94; + } else { + if (yych <= 'Z') + goto yy221; + if (yych <= '`') + goto yy94; + if (yych <= 'z') + goto yy221; + goto yy94; + } + yy220: + ++p; + yych = *p; + if (yych <= '=') { + if (yych <= '.') { + if (yych <= '-') + goto yy94; + goto yy95; + } else { + if (yych <= '/') + goto yy94; + if (yych >= ':') + goto yy94; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy99; + if (yych <= '@') + goto yy94; + } else { + if (yych <= '`') + goto yy94; + if (yych >= '{') + goto yy94; + } + } + yy221: + ++p; + yych = *p; + if (yych == '.') + goto yy95; + if (yych == '>') + goto yy99; + goto yy94; + } +} + +// Try to match an HTML tag after first <, returning num of chars matched. +bufsize_t _scan_html_tag(const unsigned char *p) { + const unsigned char *marker = NULL; + const unsigned char *start = p; + + { + unsigned char yych; + static const unsigned char yybm[] = { + /* table 1 .. 8: 0 */ + 0, + 250, + 250, + 250, + 250, + 250, + 250, + 250, + 250, + 235, + 235, + 235, + 235, + 235, + 250, + 250, + 250, + 250, + 250, + 250, + 250, + 250, + 250, + 250, + 250, + 250, + 250, + 250, + 250, + 250, + 250, + 250, + 235, + 250, + 202, + 250, + 250, + 250, + 250, + 170, + 250, + 250, + 250, + 250, + 250, + 246, + 254, + 250, + 254, + 254, + 254, + 254, + 254, + 254, + 254, + 254, + 254, + 254, + 254, + 250, + 234, + 234, + 232, + 250, + 250, + 254, + 254, + 254, + 254, + 254, + 254, + 254, + 254, + 254, + 254, + 254, + 254, + 254, + 254, + 254, + 254, + 254, + 254, + 254, + 254, + 254, + 254, + 254, + 254, + 254, + 254, + 250, + 250, + 122, + 250, + 254, + 234, + 254, + 254, + 254, + 254, + 254, + 254, + 254, + 254, + 254, + 254, + 254, + 254, + 254, + 254, + 254, + 254, + 254, + 254, + 254, + 254, + 254, + 254, + 254, + 254, + 254, + 254, + 250, + 250, + 250, + 250, + 250, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + /* table 9 .. 11: 256 */ + 0, + 128, + 128, + 128, + 128, + 128, + 128, + 128, + 128, + 128, + 128, + 128, + 128, + 128, + 128, + 128, + 128, + 128, + 128, + 128, + 128, + 128, + 128, + 128, + 128, + 128, + 128, + 128, + 128, + 128, + 128, + 128, + 128, + 128, + 128, + 128, + 128, + 128, + 128, + 128, + 128, + 128, + 128, + 128, + 128, + 192, + 128, + 128, + 192, + 192, + 192, + 192, + 192, + 192, + 192, + 192, + 192, + 192, + 128, + 128, + 128, + 128, + 128, + 0, + 128, + 224, + 224, + 224, + 224, + 224, + 224, + 224, + 224, + 224, + 224, + 224, + 224, + 224, + 224, + 224, + 224, + 224, + 224, + 224, + 224, + 224, + 224, + 224, + 224, + 224, + 224, + 128, + 128, + 128, + 128, + 128, + 128, + 192, + 192, + 192, + 192, + 192, + 192, + 192, + 192, + 192, + 192, + 192, + 192, + 192, + 192, + 192, + 192, + 192, + 192, + 192, + 192, + 192, + 192, + 192, + 192, + 192, + 192, + 128, + 128, + 128, + 128, + 128, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + }; + yych = *p; + if (yych <= '>') { + if (yych <= '!') { + if (yych >= '!') + goto yy226; + } else { + if (yych == '/') + goto yy227; + } + } else { + if (yych <= 'Z') { + if (yych <= '?') + goto yy228; + if (yych >= 'A') + goto yy229; + } else { + if (yych <= '`') + goto yy224; + if (yych <= 'z') + goto yy229; + } + } + yy224: + ++p; + yy225 : { return 0; } + yy226: + yych = *(marker = ++p); + if (yybm[256 + yych] & 32) { + goto yy232; + } + if (yych == '-') + goto yy230; + if (yych <= '@') + goto yy225; + if (yych <= '[') + goto yy234; + goto yy225; + yy227: + yych = *(marker = ++p); + if (yych <= '@') + goto yy225; + if (yych <= 'Z') + goto yy235; + if (yych <= '`') + goto yy225; + if (yych <= 'z') + goto yy235; + goto yy225; + yy228: + yych = *(marker = ++p); + if (yych <= 0x00) + goto yy225; + if (yych <= 0x7F) + goto yy238; + if (yych <= 0xC1) + goto yy225; + if (yych <= 0xF4) + goto yy238; + goto yy225; + yy229: + yych = *(marker = ++p); + if (yybm[0 + yych] & 1) { + goto yy247; + } + if (yych <= '=') { + if (yych <= '.') { + if (yych == '-') + goto yy249; + goto yy225; + } else { + if (yych <= '/') + goto yy251; + if (yych <= '9') + goto yy249; + goto yy225; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy252; + if (yych <= '@') + goto yy225; + goto yy249; + } else { + if (yych <= '`') + goto yy225; + if (yych <= 'z') + goto yy249; + goto yy225; + } + } + yy230: + yych = *++p; + if (yych == '-') + goto yy254; + yy231: + p = marker; + goto yy225; + yy232: + ++p; + yych = *p; + if (yybm[256 + yych] & 32) { + goto yy232; + } + if (yych <= 0x08) + goto yy231; + if (yych <= '\r') + goto yy255; + if (yych == ' ') + goto yy255; + goto yy231; + yy234: + yych = *++p; + if (yych == 'C') + goto yy257; + if (yych == 'c') + goto yy257; + goto yy231; + yy235: + ++p; + yych = *p; + if (yybm[256 + yych] & 64) { + goto yy235; + } + if (yych <= 0x1F) { + if (yych <= 0x08) + goto yy231; + if (yych <= '\r') + goto yy258; + goto yy231; + } else { + if (yych <= ' ') + goto yy258; + if (yych == '>') + goto yy252; + goto yy231; + } + yy237: + ++p; + yych = *p; + yy238: + if (yybm[256 + yych] & 128) { + goto yy237; + } + if (yych <= 0xEC) { + if (yych <= 0xC1) { + if (yych <= 0x00) + goto yy231; + if (yych >= '@') + goto yy231; + } else { + if (yych <= 0xDF) + goto yy240; + if (yych <= 0xE0) + goto yy241; + goto yy242; + } + } else { + if (yych <= 0xF0) { + if (yych <= 0xED) + goto yy243; + if (yych <= 0xEF) + goto yy242; + goto yy244; + } else { + if (yych <= 0xF3) + goto yy245; + if (yych <= 0xF4) + goto yy246; + goto yy231; + } + } + ++p; + yych = *p; + if (yych <= 0xE0) { + if (yych <= '>') { + if (yych <= 0x00) + goto yy231; + if (yych <= '=') + goto yy237; + goto yy252; + } else { + if (yych <= 0x7F) + goto yy237; + if (yych <= 0xC1) + goto yy231; + if (yych >= 0xE0) + goto yy241; + } + } else { + if (yych <= 0xEF) { + if (yych == 0xED) + goto yy243; + goto yy242; + } else { + if (yych <= 0xF0) + goto yy244; + if (yych <= 0xF3) + goto yy245; + if (yych <= 0xF4) + goto yy246; + goto yy231; + } + } + yy240: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy231; + if (yych <= 0xBF) + goto yy237; + goto yy231; + yy241: + ++p; + yych = *p; + if (yych <= 0x9F) + goto yy231; + if (yych <= 0xBF) + goto yy240; + goto yy231; + yy242: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy231; + if (yych <= 0xBF) + goto yy240; + goto yy231; + yy243: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy231; + if (yych <= 0x9F) + goto yy240; + goto yy231; + yy244: + ++p; + yych = *p; + if (yych <= 0x8F) + goto yy231; + if (yych <= 0xBF) + goto yy242; + goto yy231; + yy245: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy231; + if (yych <= 0xBF) + goto yy242; + goto yy231; + yy246: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy231; + if (yych <= 0x8F) + goto yy242; + goto yy231; + yy247: + ++p; + yych = *p; + if (yybm[0 + yych] & 1) { + goto yy247; + } + if (yych <= '>') { + if (yych <= '9') { + if (yych == '/') + goto yy251; + goto yy231; + } else { + if (yych <= ':') + goto yy260; + if (yych <= '=') + goto yy231; + goto yy252; + } + } else { + if (yych <= '^') { + if (yych <= '@') + goto yy231; + if (yych <= 'Z') + goto yy260; + goto yy231; + } else { + if (yych == '`') + goto yy231; + if (yych <= 'z') + goto yy260; + goto yy231; + } + } + yy249: + ++p; + yych = *p; + if (yybm[0 + yych] & 1) { + goto yy247; + } + if (yych <= '=') { + if (yych <= '.') { + if (yych == '-') + goto yy249; + goto yy231; + } else { + if (yych <= '/') + goto yy251; + if (yych <= '9') + goto yy249; + goto yy231; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy252; + if (yych <= '@') + goto yy231; + goto yy249; + } else { + if (yych <= '`') + goto yy231; + if (yych <= 'z') + goto yy249; + goto yy231; + } + } + yy251: + yych = *++p; + if (yych != '>') + goto yy231; + yy252: + ++p; + { return (bufsize_t)(p - start); } + yy254: + yych = *++p; + if (yych == '-') + goto yy264; + if (yych == '>') + goto yy231; + goto yy263; + yy255: + ++p; + yych = *p; + if (yybm[0 + yych] & 2) { + goto yy255; + } + if (yych <= 0xEC) { + if (yych <= 0xC1) { + if (yych <= 0x00) + goto yy231; + if (yych <= '>') + goto yy252; + goto yy231; + } else { + if (yych <= 0xDF) + goto yy272; + if (yych <= 0xE0) + goto yy273; + goto yy274; + } + } else { + if (yych <= 0xF0) { + if (yych <= 0xED) + goto yy275; + if (yych <= 0xEF) + goto yy274; + goto yy276; + } else { + if (yych <= 0xF3) + goto yy277; + if (yych <= 0xF4) + goto yy278; + goto yy231; + } + } + yy257: + yych = *++p; + if (yych == 'D') + goto yy279; + if (yych == 'd') + goto yy279; + goto yy231; + yy258: + ++p; + yych = *p; + if (yych <= 0x1F) { + if (yych <= 0x08) + goto yy231; + if (yych <= '\r') + goto yy258; + goto yy231; + } else { + if (yych <= ' ') + goto yy258; + if (yych == '>') + goto yy252; + goto yy231; + } + yy260: + ++p; + yych = *p; + if (yybm[0 + yych] & 4) { + goto yy260; + } + if (yych <= ',') { + if (yych <= '\r') { + if (yych <= 0x08) + goto yy231; + goto yy280; + } else { + if (yych == ' ') + goto yy280; + goto yy231; + } + } else { + if (yych <= '<') { + if (yych <= '/') + goto yy251; + goto yy231; + } else { + if (yych <= '=') + goto yy282; + if (yych <= '>') + goto yy252; + goto yy231; + } + } + yy262: + ++p; + yych = *p; + yy263: + if (yybm[0 + yych] & 8) { + goto yy262; + } + if (yych <= 0xEC) { + if (yych <= 0xC1) { + if (yych <= 0x00) + goto yy231; + if (yych <= '-') + goto yy284; + goto yy231; + } else { + if (yych <= 0xDF) + goto yy265; + if (yych <= 0xE0) + goto yy266; + goto yy267; + } + } else { + if (yych <= 0xF0) { + if (yych <= 0xED) + goto yy268; + if (yych <= 0xEF) + goto yy267; + goto yy269; + } else { + if (yych <= 0xF3) + goto yy270; + if (yych <= 0xF4) + goto yy271; + goto yy231; + } + } + yy264: + yych = *++p; + if (yych == '-') + goto yy251; + if (yych == '>') + goto yy231; + goto yy263; + yy265: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy231; + if (yych <= 0xBF) + goto yy262; + goto yy231; + yy266: + ++p; + yych = *p; + if (yych <= 0x9F) + goto yy231; + if (yych <= 0xBF) + goto yy265; + goto yy231; + yy267: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy231; + if (yych <= 0xBF) + goto yy265; + goto yy231; + yy268: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy231; + if (yych <= 0x9F) + goto yy265; + goto yy231; + yy269: + ++p; + yych = *p; + if (yych <= 0x8F) + goto yy231; + if (yych <= 0xBF) + goto yy267; + goto yy231; + yy270: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy231; + if (yych <= 0xBF) + goto yy267; + goto yy231; + yy271: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy231; + if (yych <= 0x8F) + goto yy267; + goto yy231; + yy272: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy231; + if (yych <= 0xBF) + goto yy255; + goto yy231; + yy273: + ++p; + yych = *p; + if (yych <= 0x9F) + goto yy231; + if (yych <= 0xBF) + goto yy272; + goto yy231; + yy274: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy231; + if (yych <= 0xBF) + goto yy272; + goto yy231; + yy275: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy231; + if (yych <= 0x9F) + goto yy272; + goto yy231; + yy276: + ++p; + yych = *p; + if (yych <= 0x8F) + goto yy231; + if (yych <= 0xBF) + goto yy274; + goto yy231; + yy277: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy231; + if (yych <= 0xBF) + goto yy274; + goto yy231; + yy278: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy231; + if (yych <= 0x8F) + goto yy274; + goto yy231; + yy279: + yych = *++p; + if (yych == 'A') + goto yy285; + if (yych == 'a') + goto yy285; + goto yy231; + yy280: + ++p; + yych = *p; + if (yych <= '<') { + if (yych <= ' ') { + if (yych <= 0x08) + goto yy231; + if (yych <= '\r') + goto yy280; + if (yych <= 0x1F) + goto yy231; + goto yy280; + } else { + if (yych <= '/') { + if (yych <= '.') + goto yy231; + goto yy251; + } else { + if (yych == ':') + goto yy260; + goto yy231; + } + } + } else { + if (yych <= 'Z') { + if (yych <= '=') + goto yy282; + if (yych <= '>') + goto yy252; + if (yych <= '@') + goto yy231; + goto yy260; + } else { + if (yych <= '_') { + if (yych <= '^') + goto yy231; + goto yy260; + } else { + if (yych <= '`') + goto yy231; + if (yych <= 'z') + goto yy260; + goto yy231; + } + } + } + yy282: + ++p; + yych = *p; + if (yybm[0 + yych] & 16) { + goto yy286; + } + if (yych <= 0xE0) { + if (yych <= '"') { + if (yych <= 0x00) + goto yy231; + if (yych <= ' ') + goto yy282; + goto yy288; + } else { + if (yych <= '\'') + goto yy290; + if (yych <= 0xC1) + goto yy231; + if (yych <= 0xDF) + goto yy292; + goto yy293; + } + } else { + if (yych <= 0xEF) { + if (yych == 0xED) + goto yy295; + goto yy294; + } else { + if (yych <= 0xF0) + goto yy296; + if (yych <= 0xF3) + goto yy297; + if (yych <= 0xF4) + goto yy298; + goto yy231; + } + } + yy284: + ++p; + yych = *p; + if (yybm[0 + yych] & 8) { + goto yy262; + } + if (yych <= 0xEC) { + if (yych <= 0xC1) { + if (yych <= 0x00) + goto yy231; + if (yych <= '-') + goto yy251; + goto yy231; + } else { + if (yych <= 0xDF) + goto yy265; + if (yych <= 0xE0) + goto yy266; + goto yy267; + } + } else { + if (yych <= 0xF0) { + if (yych <= 0xED) + goto yy268; + if (yych <= 0xEF) + goto yy267; + goto yy269; + } else { + if (yych <= 0xF3) + goto yy270; + if (yych <= 0xF4) + goto yy271; + goto yy231; + } + } + yy285: + yych = *++p; + if (yych == 'T') + goto yy299; + if (yych == 't') + goto yy299; + goto yy231; + yy286: + ++p; + yych = *p; + if (yybm[0 + yych] & 16) { + goto yy286; + } + if (yych <= 0xE0) { + if (yych <= '=') { + if (yych <= 0x00) + goto yy231; + if (yych <= ' ') + goto yy247; + goto yy231; + } else { + if (yych <= '>') + goto yy252; + if (yych <= 0xC1) + goto yy231; + if (yych <= 0xDF) + goto yy292; + goto yy293; + } + } else { + if (yych <= 0xEF) { + if (yych == 0xED) + goto yy295; + goto yy294; + } else { + if (yych <= 0xF0) + goto yy296; + if (yych <= 0xF3) + goto yy297; + if (yych <= 0xF4) + goto yy298; + goto yy231; + } + } + yy288: + ++p; + yych = *p; + if (yybm[0 + yych] & 32) { + goto yy288; + } + if (yych <= 0xEC) { + if (yych <= 0xC1) { + if (yych <= 0x00) + goto yy231; + if (yych <= '"') + goto yy300; + goto yy231; + } else { + if (yych <= 0xDF) + goto yy301; + if (yych <= 0xE0) + goto yy302; + goto yy303; + } + } else { + if (yych <= 0xF0) { + if (yych <= 0xED) + goto yy304; + if (yych <= 0xEF) + goto yy303; + goto yy305; + } else { + if (yych <= 0xF3) + goto yy306; + if (yych <= 0xF4) + goto yy307; + goto yy231; + } + } + yy290: + ++p; + yych = *p; + if (yybm[0 + yych] & 64) { + goto yy290; + } + if (yych <= 0xEC) { + if (yych <= 0xC1) { + if (yych <= 0x00) + goto yy231; + if (yych <= '\'') + goto yy300; + goto yy231; + } else { + if (yych <= 0xDF) + goto yy308; + if (yych <= 0xE0) + goto yy309; + goto yy310; + } + } else { + if (yych <= 0xF0) { + if (yych <= 0xED) + goto yy311; + if (yych <= 0xEF) + goto yy310; + goto yy312; + } else { + if (yych <= 0xF3) + goto yy313; + if (yych <= 0xF4) + goto yy314; + goto yy231; + } + } + yy292: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy231; + if (yych <= 0xBF) + goto yy286; + goto yy231; + yy293: + ++p; + yych = *p; + if (yych <= 0x9F) + goto yy231; + if (yych <= 0xBF) + goto yy292; + goto yy231; + yy294: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy231; + if (yych <= 0xBF) + goto yy292; + goto yy231; + yy295: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy231; + if (yych <= 0x9F) + goto yy292; + goto yy231; + yy296: + ++p; + yych = *p; + if (yych <= 0x8F) + goto yy231; + if (yych <= 0xBF) + goto yy294; + goto yy231; + yy297: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy231; + if (yych <= 0xBF) + goto yy294; + goto yy231; + yy298: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy231; + if (yych <= 0x8F) + goto yy294; + goto yy231; + yy299: + yych = *++p; + if (yych == 'A') + goto yy315; + if (yych == 'a') + goto yy315; + goto yy231; + yy300: + ++p; + yych = *p; + if (yybm[0 + yych] & 1) { + goto yy247; + } + if (yych == '/') + goto yy251; + if (yych == '>') + goto yy252; + goto yy231; + yy301: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy231; + if (yych <= 0xBF) + goto yy288; + goto yy231; + yy302: + ++p; + yych = *p; + if (yych <= 0x9F) + goto yy231; + if (yych <= 0xBF) + goto yy301; + goto yy231; + yy303: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy231; + if (yych <= 0xBF) + goto yy301; + goto yy231; + yy304: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy231; + if (yych <= 0x9F) + goto yy301; + goto yy231; + yy305: + ++p; + yych = *p; + if (yych <= 0x8F) + goto yy231; + if (yych <= 0xBF) + goto yy303; + goto yy231; + yy306: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy231; + if (yych <= 0xBF) + goto yy303; + goto yy231; + yy307: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy231; + if (yych <= 0x8F) + goto yy303; + goto yy231; + yy308: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy231; + if (yych <= 0xBF) + goto yy290; + goto yy231; + yy309: + ++p; + yych = *p; + if (yych <= 0x9F) + goto yy231; + if (yych <= 0xBF) + goto yy308; + goto yy231; + yy310: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy231; + if (yych <= 0xBF) + goto yy308; + goto yy231; + yy311: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy231; + if (yych <= 0x9F) + goto yy308; + goto yy231; + yy312: + ++p; + yych = *p; + if (yych <= 0x8F) + goto yy231; + if (yych <= 0xBF) + goto yy310; + goto yy231; + yy313: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy231; + if (yych <= 0xBF) + goto yy310; + goto yy231; + yy314: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy231; + if (yych <= 0x8F) + goto yy310; + goto yy231; + yy315: + yych = *++p; + if (yych != '[') + goto yy231; + yy316: + ++p; + yych = *p; + if (yybm[0 + yych] & 128) { + goto yy316; + } + if (yych <= 0xEC) { + if (yych <= 0xC1) { + if (yych <= 0x00) + goto yy231; + if (yych >= '^') + goto yy231; + } else { + if (yych <= 0xDF) + goto yy319; + if (yych <= 0xE0) + goto yy320; + goto yy321; + } + } else { + if (yych <= 0xF0) { + if (yych <= 0xED) + goto yy322; + if (yych <= 0xEF) + goto yy321; + goto yy323; + } else { + if (yych <= 0xF3) + goto yy324; + if (yych <= 0xF4) + goto yy325; + goto yy231; + } + } + ++p; + yych = *p; + if (yybm[0 + yych] & 128) { + goto yy316; + } + if (yych <= 0xEC) { + if (yych <= 0xC1) { + if (yych <= 0x00) + goto yy231; + if (yych <= ']') + goto yy326; + goto yy231; + } else { + if (yych <= 0xDF) + goto yy319; + if (yych <= 0xE0) + goto yy320; + goto yy321; + } + } else { + if (yych <= 0xF0) { + if (yych <= 0xED) + goto yy322; + if (yych <= 0xEF) + goto yy321; + goto yy323; + } else { + if (yych <= 0xF3) + goto yy324; + if (yych <= 0xF4) + goto yy325; + goto yy231; + } + } + yy319: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy231; + if (yych <= 0xBF) + goto yy316; + goto yy231; + yy320: + ++p; + yych = *p; + if (yych <= 0x9F) + goto yy231; + if (yych <= 0xBF) + goto yy319; + goto yy231; + yy321: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy231; + if (yych <= 0xBF) + goto yy319; + goto yy231; + yy322: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy231; + if (yych <= 0x9F) + goto yy319; + goto yy231; + yy323: + ++p; + yych = *p; + if (yych <= 0x8F) + goto yy231; + if (yych <= 0xBF) + goto yy321; + goto yy231; + yy324: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy231; + if (yych <= 0xBF) + goto yy321; + goto yy231; + yy325: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy231; + if (yych <= 0x8F) + goto yy321; + goto yy231; + yy326: + ++p; + yych = *p; + if (yych <= 0xE0) { + if (yych <= '>') { + if (yych <= 0x00) + goto yy231; + if (yych <= '=') + goto yy316; + goto yy252; + } else { + if (yych <= 0x7F) + goto yy316; + if (yych <= 0xC1) + goto yy231; + if (yych <= 0xDF) + goto yy319; + goto yy320; + } + } else { + if (yych <= 0xEF) { + if (yych == 0xED) + goto yy322; + goto yy321; + } else { + if (yych <= 0xF0) + goto yy323; + if (yych <= 0xF3) + goto yy324; + if (yych <= 0xF4) + goto yy325; + goto yy231; + } + } + } +} + +// Try to match an HTML block tag start line, returning +// an integer code for the type of block (1-6, matching the spec). +// #7 is handled by a separate function, below. +bufsize_t _scan_html_block_start(const unsigned char *p) { + const unsigned char *marker = NULL; + + { + unsigned char yych; + yych = *p; + if (yych == '<') + goto yy331; + ++p; + yy330 : { return 0; } + yy331: + yych = *(marker = ++p); + switch (yych) { + case '!': + goto yy332; + case '/': + goto yy334; + case '?': + goto yy335; + case 'A': + case 'a': + goto yy337; + case 'B': + case 'b': + goto yy338; + case 'C': + case 'c': + goto yy339; + case 'D': + case 'd': + goto yy340; + case 'F': + case 'f': + goto yy341; + case 'H': + case 'h': + goto yy342; + case 'I': + case 'i': + goto yy343; + case 'L': + case 'l': + goto yy344; + case 'M': + case 'm': + goto yy345; + case 'N': + case 'n': + goto yy346; + case 'O': + case 'o': + goto yy347; + case 'P': + case 'p': + goto yy348; + case 'S': + case 's': + goto yy349; + case 'T': + case 't': + goto yy350; + case 'U': + case 'u': + goto yy351; + default: + goto yy330; + } + yy332: + yych = *++p; + if (yych <= '@') { + if (yych == '-') + goto yy352; + } else { + if (yych <= 'Z') + goto yy353; + if (yych <= '[') + goto yy355; + } + yy333: + p = marker; + goto yy330; + yy334: + yych = *++p; + switch (yych) { + case 'A': + case 'a': + goto yy337; + case 'B': + case 'b': + goto yy338; + case 'C': + case 'c': + goto yy339; + case 'D': + case 'd': + goto yy340; + case 'F': + case 'f': + goto yy341; + case 'H': + case 'h': + goto yy342; + case 'I': + case 'i': + goto yy343; + case 'L': + case 'l': + goto yy344; + case 'M': + case 'm': + goto yy345; + case 'N': + case 'n': + goto yy346; + case 'O': + case 'o': + goto yy347; + case 'P': + case 'p': + goto yy356; + case 'S': + case 's': + goto yy357; + case 'T': + case 't': + goto yy350; + case 'U': + case 'u': + goto yy351; + default: + goto yy333; + } + yy335: + ++p; + { return 3; } + yy337: + yych = *++p; + if (yych <= 'S') { + if (yych <= 'D') { + if (yych <= 'C') + goto yy333; + goto yy358; + } else { + if (yych <= 'Q') + goto yy333; + if (yych <= 'R') + goto yy359; + goto yy360; + } + } else { + if (yych <= 'q') { + if (yych == 'd') + goto yy358; + goto yy333; + } else { + if (yych <= 'r') + goto yy359; + if (yych <= 's') + goto yy360; + goto yy333; + } + } + yy338: + yych = *++p; + if (yych <= 'O') { + if (yych <= 'K') { + if (yych == 'A') + goto yy361; + goto yy333; + } else { + if (yych <= 'L') + goto yy362; + if (yych <= 'N') + goto yy333; + goto yy363; + } + } else { + if (yych <= 'k') { + if (yych == 'a') + goto yy361; + goto yy333; + } else { + if (yych <= 'l') + goto yy362; + if (yych == 'o') + goto yy363; + goto yy333; + } + } + yy339: + yych = *++p; + if (yych <= 'O') { + if (yych <= 'D') { + if (yych == 'A') + goto yy364; + goto yy333; + } else { + if (yych <= 'E') + goto yy365; + if (yych <= 'N') + goto yy333; + goto yy366; + } + } else { + if (yych <= 'd') { + if (yych == 'a') + goto yy364; + goto yy333; + } else { + if (yych <= 'e') + goto yy365; + if (yych == 'o') + goto yy366; + goto yy333; + } + } + yy340: + yych = *++p; + switch (yych) { + case 'D': + case 'L': + case 'T': + case 'd': + case 'l': + case 't': + goto yy367; + case 'E': + case 'e': + goto yy368; + case 'I': + case 'i': + goto yy369; + default: + goto yy333; + } + yy341: + yych = *++p; + if (yych <= 'R') { + if (yych <= 'N') { + if (yych == 'I') + goto yy370; + goto yy333; + } else { + if (yych <= 'O') + goto yy371; + if (yych <= 'Q') + goto yy333; + goto yy372; + } + } else { + if (yych <= 'n') { + if (yych == 'i') + goto yy370; + goto yy333; + } else { + if (yych <= 'o') + goto yy371; + if (yych == 'r') + goto yy372; + goto yy333; + } + } + yy342: + yych = *++p; + if (yych <= 'S') { + if (yych <= 'D') { + if (yych <= '0') + goto yy333; + if (yych <= '6') + goto yy367; + goto yy333; + } else { + if (yych <= 'E') + goto yy373; + if (yych == 'R') + goto yy367; + goto yy333; + } + } else { + if (yych <= 'q') { + if (yych <= 'T') + goto yy374; + if (yych == 'e') + goto yy373; + goto yy333; + } else { + if (yych <= 'r') + goto yy367; + if (yych == 't') + goto yy374; + goto yy333; + } + } + yy343: + yych = *++p; + if (yych == 'F') + goto yy375; + if (yych == 'f') + goto yy375; + goto yy333; + yy344: + yych = *++p; + if (yych <= 'I') { + if (yych == 'E') + goto yy376; + if (yych <= 'H') + goto yy333; + goto yy377; + } else { + if (yych <= 'e') { + if (yych <= 'd') + goto yy333; + goto yy376; + } else { + if (yych == 'i') + goto yy377; + goto yy333; + } + } + yy345: + yych = *++p; + if (yych <= 'E') { + if (yych == 'A') + goto yy378; + if (yych <= 'D') + goto yy333; + goto yy379; + } else { + if (yych <= 'a') { + if (yych <= '`') + goto yy333; + goto yy378; + } else { + if (yych == 'e') + goto yy379; + goto yy333; + } + } + yy346: + yych = *++p; + if (yych <= 'O') { + if (yych == 'A') + goto yy380; + if (yych <= 'N') + goto yy333; + goto yy381; + } else { + if (yych <= 'a') { + if (yych <= '`') + goto yy333; + goto yy380; + } else { + if (yych == 'o') + goto yy381; + goto yy333; + } + } + yy347: + yych = *++p; + if (yych <= 'P') { + if (yych == 'L') + goto yy367; + if (yych <= 'O') + goto yy333; + goto yy382; + } else { + if (yych <= 'l') { + if (yych <= 'k') + goto yy333; + goto yy367; + } else { + if (yych == 'p') + goto yy382; + goto yy333; + } + } + yy348: + yych = *++p; + if (yych <= '>') { + if (yych <= ' ') { + if (yych <= 0x08) + goto yy333; + if (yych <= '\r') + goto yy383; + if (yych <= 0x1F) + goto yy333; + goto yy383; + } else { + if (yych == '/') + goto yy385; + if (yych <= '=') + goto yy333; + goto yy383; + } + } else { + if (yych <= 'R') { + if (yych == 'A') + goto yy386; + if (yych <= 'Q') + goto yy333; + goto yy387; + } else { + if (yych <= 'a') { + if (yych <= '`') + goto yy333; + goto yy386; + } else { + if (yych == 'r') + goto yy387; + goto yy333; + } + } + } + yy349: + yych = *++p; + switch (yych) { + case 'C': + case 'c': + goto yy388; + case 'E': + case 'e': + goto yy389; + case 'O': + case 'o': + goto yy390; + case 'T': + case 't': + goto yy391; + case 'U': + case 'u': + goto yy392; + default: + goto yy333; + } + yy350: + yych = *++p; + switch (yych) { + case 'A': + case 'a': + goto yy393; + case 'B': + case 'b': + goto yy394; + case 'D': + case 'd': + goto yy367; + case 'F': + case 'f': + goto yy395; + case 'H': + case 'h': + goto yy396; + case 'I': + case 'i': + goto yy397; + case 'R': + case 'r': + goto yy398; + default: + goto yy333; + } + yy351: + yych = *++p; + if (yych == 'L') + goto yy367; + if (yych == 'l') + goto yy367; + goto yy333; + yy352: + yych = *++p; + if (yych == '-') + goto yy399; + goto yy333; + yy353: + ++p; + { return 4; } + yy355: + yych = *++p; + if (yych == 'C') + goto yy401; + if (yych == 'c') + goto yy401; + goto yy333; + yy356: + yych = *++p; + if (yych <= '/') { + if (yych <= 0x1F) { + if (yych <= 0x08) + goto yy333; + if (yych <= '\r') + goto yy383; + goto yy333; + } else { + if (yych <= ' ') + goto yy383; + if (yych <= '.') + goto yy333; + goto yy385; + } + } else { + if (yych <= '@') { + if (yych == '>') + goto yy383; + goto yy333; + } else { + if (yych <= 'A') + goto yy386; + if (yych == 'a') + goto yy386; + goto yy333; + } + } + yy357: + yych = *++p; + if (yych <= 'U') { + if (yych <= 'N') { + if (yych == 'E') + goto yy389; + goto yy333; + } else { + if (yych <= 'O') + goto yy390; + if (yych <= 'T') + goto yy333; + goto yy392; + } + } else { + if (yych <= 'n') { + if (yych == 'e') + goto yy389; + goto yy333; + } else { + if (yych <= 'o') + goto yy390; + if (yych == 'u') + goto yy392; + goto yy333; + } + } + yy358: + yych = *++p; + if (yych == 'D') + goto yy402; + if (yych == 'd') + goto yy402; + goto yy333; + yy359: + yych = *++p; + if (yych == 'T') + goto yy403; + if (yych == 't') + goto yy403; + goto yy333; + yy360: + yych = *++p; + if (yych == 'I') + goto yy404; + if (yych == 'i') + goto yy404; + goto yy333; + yy361: + yych = *++p; + if (yych == 'S') + goto yy405; + if (yych == 's') + goto yy405; + goto yy333; + yy362: + yych = *++p; + if (yych == 'O') + goto yy406; + if (yych == 'o') + goto yy406; + goto yy333; + yy363: + yych = *++p; + if (yych == 'D') + goto yy407; + if (yych == 'd') + goto yy407; + goto yy333; + yy364: + yych = *++p; + if (yych == 'P') + goto yy408; + if (yych == 'p') + goto yy408; + goto yy333; + yy365: + yych = *++p; + if (yych == 'N') + goto yy409; + if (yych == 'n') + goto yy409; + goto yy333; + yy366: + yych = *++p; + if (yych == 'L') + goto yy410; + if (yych == 'l') + goto yy410; + goto yy333; + yy367: + yych = *++p; + if (yych <= ' ') { + if (yych <= 0x08) + goto yy333; + if (yych <= '\r') + goto yy383; + if (yych <= 0x1F) + goto yy333; + goto yy383; + } else { + if (yych <= '/') { + if (yych <= '.') + goto yy333; + goto yy385; + } else { + if (yych == '>') + goto yy383; + goto yy333; + } + } + yy368: + yych = *++p; + if (yych == 'T') + goto yy411; + if (yych == 't') + goto yy411; + goto yy333; + yy369: + yych = *++p; + if (yych <= 'V') { + if (yych <= 'Q') { + if (yych == 'A') + goto yy412; + goto yy333; + } else { + if (yych <= 'R') + goto yy367; + if (yych <= 'U') + goto yy333; + goto yy367; + } + } else { + if (yych <= 'q') { + if (yych == 'a') + goto yy412; + goto yy333; + } else { + if (yych <= 'r') + goto yy367; + if (yych == 'v') + goto yy367; + goto yy333; + } + } + yy370: + yych = *++p; + if (yych <= 'G') { + if (yych == 'E') + goto yy413; + if (yych <= 'F') + goto yy333; + goto yy414; + } else { + if (yych <= 'e') { + if (yych <= 'd') + goto yy333; + goto yy413; + } else { + if (yych == 'g') + goto yy414; + goto yy333; + } + } + yy371: + yych = *++p; + if (yych <= 'R') { + if (yych == 'O') + goto yy409; + if (yych <= 'Q') + goto yy333; + goto yy415; + } else { + if (yych <= 'o') { + if (yych <= 'n') + goto yy333; + goto yy409; + } else { + if (yych == 'r') + goto yy415; + goto yy333; + } + } + yy372: + yych = *++p; + if (yych == 'A') + goto yy416; + if (yych == 'a') + goto yy416; + goto yy333; + yy373: + yych = *++p; + if (yych == 'A') + goto yy417; + if (yych == 'a') + goto yy417; + goto yy333; + yy374: + yych = *++p; + if (yych == 'M') + goto yy351; + if (yych == 'm') + goto yy351; + goto yy333; + yy375: + yych = *++p; + if (yych == 'R') + goto yy418; + if (yych == 'r') + goto yy418; + goto yy333; + yy376: + yych = *++p; + if (yych == 'G') + goto yy419; + if (yych == 'g') + goto yy419; + goto yy333; + yy377: + yych = *++p; + if (yych <= '/') { + if (yych <= 0x1F) { + if (yych <= 0x08) + goto yy333; + if (yych <= '\r') + goto yy383; + goto yy333; + } else { + if (yych <= ' ') + goto yy383; + if (yych <= '.') + goto yy333; + goto yy385; + } + } else { + if (yych <= 'M') { + if (yych == '>') + goto yy383; + goto yy333; + } else { + if (yych <= 'N') + goto yy420; + if (yych == 'n') + goto yy420; + goto yy333; + } + } + yy378: + yych = *++p; + if (yych == 'I') + goto yy421; + if (yych == 'i') + goto yy421; + goto yy333; + yy379: + yych = *++p; + if (yych == 'N') + goto yy422; + if (yych == 'n') + goto yy422; + goto yy333; + yy380: + yych = *++p; + if (yych == 'V') + goto yy367; + if (yych == 'v') + goto yy367; + goto yy333; + yy381: + yych = *++p; + if (yych == 'F') + goto yy423; + if (yych == 'f') + goto yy423; + goto yy333; + yy382: + yych = *++p; + if (yych == 'T') + goto yy424; + if (yych == 't') + goto yy424; + goto yy333; + yy383: + ++p; + { return 6; } + yy385: + yych = *++p; + if (yych == '>') + goto yy383; + goto yy333; + yy386: + yych = *++p; + if (yych == 'R') + goto yy425; + if (yych == 'r') + goto yy425; + goto yy333; + yy387: + yych = *++p; + if (yych == 'E') + goto yy426; + if (yych == 'e') + goto yy426; + goto yy333; + yy388: + yych = *++p; + if (yych == 'R') + goto yy427; + if (yych == 'r') + goto yy427; + goto yy333; + yy389: + yych = *++p; + if (yych == 'C') + goto yy408; + if (yych == 'c') + goto yy408; + goto yy333; + yy390: + yych = *++p; + if (yych == 'U') + goto yy428; + if (yych == 'u') + goto yy428; + goto yy333; + yy391: + yych = *++p; + if (yych == 'Y') + goto yy429; + if (yych == 'y') + goto yy429; + goto yy333; + yy392: + yych = *++p; + if (yych == 'M') + goto yy430; + if (yych == 'm') + goto yy430; + goto yy333; + yy393: + yych = *++p; + if (yych == 'B') + goto yy431; + if (yych == 'b') + goto yy431; + goto yy333; + yy394: + yych = *++p; + if (yych == 'O') + goto yy363; + if (yych == 'o') + goto yy363; + goto yy333; + yy395: + yych = *++p; + if (yych == 'O') + goto yy432; + if (yych == 'o') + goto yy432; + goto yy333; + yy396: + yych = *++p; + if (yych <= '/') { + if (yych <= 0x1F) { + if (yych <= 0x08) + goto yy333; + if (yych <= '\r') + goto yy383; + goto yy333; + } else { + if (yych <= ' ') + goto yy383; + if (yych <= '.') + goto yy333; + goto yy385; + } + } else { + if (yych <= 'D') { + if (yych == '>') + goto yy383; + goto yy333; + } else { + if (yych <= 'E') + goto yy433; + if (yych == 'e') + goto yy433; + goto yy333; + } + } + yy397: + yych = *++p; + if (yych == 'T') + goto yy431; + if (yych == 't') + goto yy431; + goto yy333; + yy398: + yych = *++p; + if (yych <= '/') { + if (yych <= 0x1F) { + if (yych <= 0x08) + goto yy333; + if (yych <= '\r') + goto yy383; + goto yy333; + } else { + if (yych <= ' ') + goto yy383; + if (yych <= '.') + goto yy333; + goto yy385; + } + } else { + if (yych <= '@') { + if (yych == '>') + goto yy383; + goto yy333; + } else { + if (yych <= 'A') + goto yy434; + if (yych == 'a') + goto yy434; + goto yy333; + } + } + yy399: + ++p; + { return 2; } + yy401: + yych = *++p; + if (yych == 'D') + goto yy435; + if (yych == 'd') + goto yy435; + goto yy333; + yy402: + yych = *++p; + if (yych == 'R') + goto yy436; + if (yych == 'r') + goto yy436; + goto yy333; + yy403: + yych = *++p; + if (yych == 'I') + goto yy437; + if (yych == 'i') + goto yy437; + goto yy333; + yy404: + yych = *++p; + if (yych == 'D') + goto yy438; + if (yych == 'd') + goto yy438; + goto yy333; + yy405: + yych = *++p; + if (yych == 'E') + goto yy439; + if (yych == 'e') + goto yy439; + goto yy333; + yy406: + yych = *++p; + if (yych == 'C') + goto yy440; + if (yych == 'c') + goto yy440; + goto yy333; + yy407: + yych = *++p; + if (yych == 'Y') + goto yy367; + if (yych == 'y') + goto yy367; + goto yy333; + yy408: + yych = *++p; + if (yych == 'T') + goto yy441; + if (yych == 't') + goto yy441; + goto yy333; + yy409: + yych = *++p; + if (yych == 'T') + goto yy442; + if (yych == 't') + goto yy442; + goto yy333; + yy410: + yych = *++p; + if (yych <= '/') { + if (yych <= 0x1F) { + if (yych <= 0x08) + goto yy333; + if (yych <= '\r') + goto yy383; + goto yy333; + } else { + if (yych <= ' ') + goto yy383; + if (yych <= '.') + goto yy333; + goto yy385; + } + } else { + if (yych <= 'F') { + if (yych == '>') + goto yy383; + goto yy333; + } else { + if (yych <= 'G') + goto yy443; + if (yych == 'g') + goto yy443; + goto yy333; + } + } + yy411: + yych = *++p; + if (yych == 'A') + goto yy444; + if (yych == 'a') + goto yy444; + goto yy333; + yy412: + yych = *++p; + if (yych == 'L') + goto yy445; + if (yych == 'l') + goto yy445; + goto yy333; + yy413: + yych = *++p; + if (yych == 'L') + goto yy446; + if (yych == 'l') + goto yy446; + goto yy333; + yy414: + yych = *++p; + if (yych <= 'U') { + if (yych == 'C') + goto yy447; + if (yych <= 'T') + goto yy333; + goto yy448; + } else { + if (yych <= 'c') { + if (yych <= 'b') + goto yy333; + goto yy447; + } else { + if (yych == 'u') + goto yy448; + goto yy333; + } + } + yy415: + yych = *++p; + if (yych == 'M') + goto yy367; + if (yych == 'm') + goto yy367; + goto yy333; + yy416: + yych = *++p; + if (yych == 'M') + goto yy449; + if (yych == 'm') + goto yy449; + goto yy333; + yy417: + yych = *++p; + if (yych == 'D') + goto yy450; + if (yych == 'd') + goto yy450; + goto yy333; + yy418: + yych = *++p; + if (yych == 'A') + goto yy451; + if (yych == 'a') + goto yy451; + goto yy333; + yy419: + yych = *++p; + if (yych == 'E') + goto yy452; + if (yych == 'e') + goto yy452; + goto yy333; + yy420: + yych = *++p; + if (yych == 'K') + goto yy367; + if (yych == 'k') + goto yy367; + goto yy333; + yy421: + yych = *++p; + if (yych == 'N') + goto yy367; + if (yych == 'n') + goto yy367; + goto yy333; + yy422: + yych = *++p; + if (yych == 'U') + goto yy453; + if (yych == 'u') + goto yy453; + goto yy333; + yy423: + yych = *++p; + if (yych == 'R') + goto yy454; + if (yych == 'r') + goto yy454; + goto yy333; + yy424: + yych = *++p; + if (yych <= 'I') { + if (yych == 'G') + goto yy443; + if (yych <= 'H') + goto yy333; + goto yy455; + } else { + if (yych <= 'g') { + if (yych <= 'f') + goto yy333; + goto yy443; + } else { + if (yych == 'i') + goto yy455; + goto yy333; + } + } + yy425: + yych = *++p; + if (yych == 'A') + goto yy415; + if (yych == 'a') + goto yy415; + goto yy333; + yy426: + yych = *++p; + if (yych <= 0x1F) { + if (yych <= 0x08) + goto yy333; + if (yych <= '\r') + goto yy456; + goto yy333; + } else { + if (yych <= ' ') + goto yy456; + if (yych == '>') + goto yy456; + goto yy333; + } + yy427: + yych = *++p; + if (yych == 'I') + goto yy458; + if (yych == 'i') + goto yy458; + goto yy333; + yy428: + yych = *++p; + if (yych == 'R') + goto yy459; + if (yych == 'r') + goto yy459; + goto yy333; + yy429: + yych = *++p; + if (yych == 'L') + goto yy387; + if (yych == 'l') + goto yy387; + goto yy333; + yy430: + yych = *++p; + if (yych == 'M') + goto yy460; + if (yych == 'm') + goto yy460; + goto yy333; + yy431: + yych = *++p; + if (yych == 'L') + goto yy438; + if (yych == 'l') + goto yy438; + goto yy333; + yy432: + yych = *++p; + if (yych == 'O') + goto yy461; + if (yych == 'o') + goto yy461; + goto yy333; + yy433: + yych = *++p; + if (yych == 'A') + goto yy462; + if (yych == 'a') + goto yy462; + goto yy333; + yy434: + yych = *++p; + if (yych == 'C') + goto yy420; + if (yych == 'c') + goto yy420; + goto yy333; + yy435: + yych = *++p; + if (yych == 'A') + goto yy463; + if (yych == 'a') + goto yy463; + goto yy333; + yy436: + yych = *++p; + if (yych == 'E') + goto yy464; + if (yych == 'e') + goto yy464; + goto yy333; + yy437: + yych = *++p; + if (yych == 'C') + goto yy431; + if (yych == 'c') + goto yy431; + goto yy333; + yy438: + yych = *++p; + if (yych == 'E') + goto yy367; + if (yych == 'e') + goto yy367; + goto yy333; + yy439: + yych = *++p; + if (yych <= '/') { + if (yych <= 0x1F) { + if (yych <= 0x08) + goto yy333; + if (yych <= '\r') + goto yy383; + goto yy333; + } else { + if (yych <= ' ') + goto yy383; + if (yych <= '.') + goto yy333; + goto yy385; + } + } else { + if (yych <= 'E') { + if (yych == '>') + goto yy383; + goto yy333; + } else { + if (yych <= 'F') + goto yy465; + if (yych == 'f') + goto yy465; + goto yy333; + } + } + yy440: + yych = *++p; + if (yych == 'K') + goto yy466; + if (yych == 'k') + goto yy466; + goto yy333; + yy441: + yych = *++p; + if (yych == 'I') + goto yy455; + if (yych == 'i') + goto yy455; + goto yy333; + yy442: + yych = *++p; + if (yych == 'E') + goto yy467; + if (yych == 'e') + goto yy467; + goto yy333; + yy443: + yych = *++p; + if (yych == 'R') + goto yy468; + if (yych == 'r') + goto yy468; + goto yy333; + yy444: + yych = *++p; + if (yych == 'I') + goto yy469; + if (yych == 'i') + goto yy469; + goto yy333; + yy445: + yych = *++p; + if (yych == 'O') + goto yy470; + if (yych == 'o') + goto yy470; + goto yy333; + yy446: + yych = *++p; + if (yych == 'D') + goto yy471; + if (yych == 'd') + goto yy471; + goto yy333; + yy447: + yych = *++p; + if (yych == 'A') + goto yy364; + if (yych == 'a') + goto yy364; + goto yy333; + yy448: + yych = *++p; + if (yych == 'R') + goto yy438; + if (yych == 'r') + goto yy438; + goto yy333; + yy449: + yych = *++p; + if (yych == 'E') + goto yy472; + if (yych == 'e') + goto yy472; + goto yy333; + yy450: + yych = *++p; + if (yych <= '/') { + if (yych <= 0x1F) { + if (yych <= 0x08) + goto yy333; + if (yych <= '\r') + goto yy383; + goto yy333; + } else { + if (yych <= ' ') + goto yy383; + if (yych <= '.') + goto yy333; + goto yy385; + } + } else { + if (yych <= 'D') { + if (yych == '>') + goto yy383; + goto yy333; + } else { + if (yych <= 'E') + goto yy467; + if (yych == 'e') + goto yy467; + goto yy333; + } + } + yy451: + yych = *++p; + if (yych == 'M') + goto yy438; + if (yych == 'm') + goto yy438; + goto yy333; + yy452: + yych = *++p; + if (yych == 'N') + goto yy462; + if (yych == 'n') + goto yy462; + goto yy333; + yy453: + yych = *++p; + if (yych <= '/') { + if (yych <= 0x1F) { + if (yych <= 0x08) + goto yy333; + if (yych <= '\r') + goto yy383; + goto yy333; + } else { + if (yych <= ' ') + goto yy383; + if (yych <= '.') + goto yy333; + goto yy385; + } + } else { + if (yych <= 'H') { + if (yych == '>') + goto yy383; + goto yy333; + } else { + if (yych <= 'I') + goto yy473; + if (yych == 'i') + goto yy473; + goto yy333; + } + } + yy454: + yych = *++p; + if (yych == 'A') + goto yy474; + if (yych == 'a') + goto yy474; + goto yy333; + yy455: + yych = *++p; + if (yych == 'O') + goto yy421; + if (yych == 'o') + goto yy421; + goto yy333; + yy456: + ++p; + { return 1; } + yy458: + yych = *++p; + if (yych == 'P') + goto yy475; + if (yych == 'p') + goto yy475; + goto yy333; + yy459: + yych = *++p; + if (yych == 'C') + goto yy438; + if (yych == 'c') + goto yy438; + goto yy333; + yy460: + yych = *++p; + if (yych == 'A') + goto yy476; + if (yych == 'a') + goto yy476; + goto yy333; + yy461: + yych = *++p; + if (yych == 'T') + goto yy367; + if (yych == 't') + goto yy367; + goto yy333; + yy462: + yych = *++p; + if (yych == 'D') + goto yy367; + if (yych == 'd') + goto yy367; + goto yy333; + yy463: + yych = *++p; + if (yych == 'T') + goto yy477; + if (yych == 't') + goto yy477; + goto yy333; + yy464: + yych = *++p; + if (yych == 'S') + goto yy478; + if (yych == 's') + goto yy478; + goto yy333; + yy465: + yych = *++p; + if (yych == 'O') + goto yy479; + if (yych == 'o') + goto yy479; + goto yy333; + yy466: + yych = *++p; + if (yych == 'Q') + goto yy480; + if (yych == 'q') + goto yy480; + goto yy333; + yy467: + yych = *++p; + if (yych == 'R') + goto yy367; + if (yych == 'r') + goto yy367; + goto yy333; + yy468: + yych = *++p; + if (yych == 'O') + goto yy481; + if (yych == 'o') + goto yy481; + goto yy333; + yy469: + yych = *++p; + if (yych == 'L') + goto yy478; + if (yych == 'l') + goto yy478; + goto yy333; + yy470: + yych = *++p; + if (yych == 'G') + goto yy367; + if (yych == 'g') + goto yy367; + goto yy333; + yy471: + yych = *++p; + if (yych == 'S') + goto yy482; + if (yych == 's') + goto yy482; + goto yy333; + yy472: + yych = *++p; + if (yych <= '/') { + if (yych <= 0x1F) { + if (yych <= 0x08) + goto yy333; + if (yych <= '\r') + goto yy383; + goto yy333; + } else { + if (yych <= ' ') + goto yy383; + if (yych <= '.') + goto yy333; + goto yy385; + } + } else { + if (yych <= 'R') { + if (yych == '>') + goto yy383; + goto yy333; + } else { + if (yych <= 'S') + goto yy482; + if (yych == 's') + goto yy482; + goto yy333; + } + } + yy473: + yych = *++p; + if (yych == 'T') + goto yy483; + if (yych == 't') + goto yy483; + goto yy333; + yy474: + yych = *++p; + if (yych == 'M') + goto yy484; + if (yych == 'm') + goto yy484; + goto yy333; + yy475: + yych = *++p; + if (yych == 'T') + goto yy426; + if (yych == 't') + goto yy426; + goto yy333; + yy476: + yych = *++p; + if (yych == 'R') + goto yy407; + if (yych == 'r') + goto yy407; + goto yy333; + yy477: + yych = *++p; + if (yych == 'A') + goto yy485; + if (yych == 'a') + goto yy485; + goto yy333; + yy478: + yych = *++p; + if (yych == 'S') + goto yy367; + if (yych == 's') + goto yy367; + goto yy333; + yy479: + yych = *++p; + if (yych == 'N') + goto yy461; + if (yych == 'n') + goto yy461; + goto yy333; + yy480: + yych = *++p; + if (yych == 'U') + goto yy486; + if (yych == 'u') + goto yy486; + goto yy333; + yy481: + yych = *++p; + if (yych == 'U') + goto yy487; + if (yych == 'u') + goto yy487; + goto yy333; + yy482: + yych = *++p; + if (yych == 'E') + goto yy461; + if (yych == 'e') + goto yy461; + goto yy333; + yy483: + yych = *++p; + if (yych == 'E') + goto yy415; + if (yych == 'e') + goto yy415; + goto yy333; + yy484: + yych = *++p; + if (yych == 'E') + goto yy478; + if (yych == 'e') + goto yy478; + goto yy333; + yy485: + yych = *++p; + if (yych == '[') + goto yy488; + goto yy333; + yy486: + yych = *++p; + if (yych == 'O') + goto yy490; + if (yych == 'o') + goto yy490; + goto yy333; + yy487: + yych = *++p; + if (yych == 'P') + goto yy367; + if (yych == 'p') + goto yy367; + goto yy333; + yy488: + ++p; + { return 5; } + yy490: + ++p; + if ((yych = *p) == 'T') + goto yy438; + if (yych == 't') + goto yy438; + goto yy333; + } +} + +// Try to match an HTML block tag start line of type 7, returning +// 7 if successful, 0 if not. +bufsize_t _scan_html_block_start_7(const unsigned char *p) { + const unsigned char *marker = NULL; + + { + unsigned char yych; + unsigned int yyaccept = 0; + static const unsigned char yybm[] = { + 0, 224, 224, 224, 224, 224, 224, 224, 224, 198, 210, 194, 198, 194, + 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, + 224, 224, 224, 224, 198, 224, 128, 224, 224, 224, 224, 64, 224, 224, + 224, 224, 224, 233, 232, 224, 233, 233, 233, 233, 233, 233, 233, 233, + 233, 233, 232, 224, 192, 192, 192, 224, 224, 233, 233, 233, 233, 233, + 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, + 233, 233, 233, 233, 233, 233, 233, 224, 224, 224, 224, 232, 192, 233, + 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, + 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 224, 224, 224, + 224, 224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, + }; + yych = *p; + if (yych == '<') + goto yy495; + ++p; + yy494 : { return 0; } + yy495: + yyaccept = 0; + yych = *(marker = ++p); + if (yych <= '@') { + if (yych != '/') + goto yy494; + } else { + if (yych <= 'Z') + goto yy498; + if (yych <= '`') + goto yy494; + if (yych <= 'z') + goto yy498; + goto yy494; + } + yych = *++p; + if (yych <= '@') + goto yy497; + if (yych <= 'Z') + goto yy500; + if (yych <= '`') + goto yy497; + if (yych <= 'z') + goto yy500; + yy497: + p = marker; + if (yyaccept == 0) { + goto yy494; + } else { + goto yy513; + } + yy498: + ++p; + yych = *p; + if (yybm[0 + yych] & 2) { + goto yy502; + } + if (yych <= '=') { + if (yych <= '.') { + if (yych == '-') + goto yy498; + goto yy497; + } else { + if (yych <= '/') + goto yy504; + if (yych <= '9') + goto yy498; + goto yy497; + } + } else { + if (yych <= 'Z') { + if (yych <= '>') + goto yy505; + if (yych <= '@') + goto yy497; + goto yy498; + } else { + if (yych <= '`') + goto yy497; + if (yych <= 'z') + goto yy498; + goto yy497; + } + } + yy500: + ++p; + yych = *p; + if (yych <= '/') { + if (yych <= 0x1F) { + if (yych <= 0x08) + goto yy497; + if (yych <= '\r') + goto yy507; + goto yy497; + } else { + if (yych <= ' ') + goto yy507; + if (yych == '-') + goto yy500; + goto yy497; + } + } else { + if (yych <= '@') { + if (yych <= '9') + goto yy500; + if (yych == '>') + goto yy505; + goto yy497; + } else { + if (yych <= 'Z') + goto yy500; + if (yych <= '`') + goto yy497; + if (yych <= 'z') + goto yy500; + goto yy497; + } + } + yy502: + ++p; + yych = *p; + if (yybm[0 + yych] & 2) { + goto yy502; + } + if (yych <= '>') { + if (yych <= '9') { + if (yych != '/') + goto yy497; + } else { + if (yych <= ':') + goto yy509; + if (yych <= '=') + goto yy497; + goto yy505; + } + } else { + if (yych <= '^') { + if (yych <= '@') + goto yy497; + if (yych <= 'Z') + goto yy509; + goto yy497; + } else { + if (yych == '`') + goto yy497; + if (yych <= 'z') + goto yy509; + goto yy497; + } + } + yy504: + yych = *++p; + if (yych != '>') + goto yy497; + yy505: + ++p; + yych = *p; + if (yybm[0 + yych] & 4) { + goto yy505; + } + if (yych <= 0x08) + goto yy497; + if (yych <= '\n') + goto yy511; + if (yych <= '\v') + goto yy497; + if (yych <= '\r') + goto yy514; + goto yy497; + yy507: + ++p; + yych = *p; + if (yych <= 0x1F) { + if (yych <= 0x08) + goto yy497; + if (yych <= '\r') + goto yy507; + goto yy497; + } else { + if (yych <= ' ') + goto yy507; + if (yych == '>') + goto yy505; + goto yy497; + } + yy509: + ++p; + yych = *p; + if (yybm[0 + yych] & 8) { + goto yy509; + } + if (yych <= ',') { + if (yych <= '\r') { + if (yych <= 0x08) + goto yy497; + goto yy515; + } else { + if (yych == ' ') + goto yy515; + goto yy497; + } + } else { + if (yych <= '<') { + if (yych <= '/') + goto yy504; + goto yy497; + } else { + if (yych <= '=') + goto yy517; + if (yych <= '>') + goto yy505; + goto yy497; + } + } + yy511: + yyaccept = 1; + marker = ++p; + yych = *p; + if (yybm[0 + yych] & 4) { + goto yy505; + } + if (yych <= 0x08) + goto yy513; + if (yych <= '\n') + goto yy511; + if (yych <= '\v') + goto yy513; + if (yych <= '\r') + goto yy514; + yy513 : { return 7; } + yy514: + yych = *++p; + goto yy513; + yy515: + ++p; + yych = *p; + if (yych <= '<') { + if (yych <= ' ') { + if (yych <= 0x08) + goto yy497; + if (yych <= '\r') + goto yy515; + if (yych <= 0x1F) + goto yy497; + goto yy515; + } else { + if (yych <= '/') { + if (yych <= '.') + goto yy497; + goto yy504; + } else { + if (yych == ':') + goto yy509; + goto yy497; + } + } + } else { + if (yych <= 'Z') { + if (yych <= '=') + goto yy517; + if (yych <= '>') + goto yy505; + if (yych <= '@') + goto yy497; + goto yy509; + } else { + if (yych <= '_') { + if (yych <= '^') + goto yy497; + goto yy509; + } else { + if (yych <= '`') + goto yy497; + if (yych <= 'z') + goto yy509; + goto yy497; + } + } + } + yy517: + ++p; + yych = *p; + if (yybm[0 + yych] & 32) { + goto yy519; + } + if (yych <= 0xE0) { + if (yych <= '"') { + if (yych <= 0x00) + goto yy497; + if (yych <= ' ') + goto yy517; + goto yy521; + } else { + if (yych <= '\'') + goto yy523; + if (yych <= 0xC1) + goto yy497; + if (yych <= 0xDF) + goto yy525; + goto yy526; + } + } else { + if (yych <= 0xEF) { + if (yych == 0xED) + goto yy528; + goto yy527; + } else { + if (yych <= 0xF0) + goto yy529; + if (yych <= 0xF3) + goto yy530; + if (yych <= 0xF4) + goto yy531; + goto yy497; + } + } + yy519: + ++p; + yych = *p; + if (yybm[0 + yych] & 32) { + goto yy519; + } + if (yych <= 0xE0) { + if (yych <= '=') { + if (yych <= 0x00) + goto yy497; + if (yych <= ' ') + goto yy502; + goto yy497; + } else { + if (yych <= '>') + goto yy505; + if (yych <= 0xC1) + goto yy497; + if (yych <= 0xDF) + goto yy525; + goto yy526; + } + } else { + if (yych <= 0xEF) { + if (yych == 0xED) + goto yy528; + goto yy527; + } else { + if (yych <= 0xF0) + goto yy529; + if (yych <= 0xF3) + goto yy530; + if (yych <= 0xF4) + goto yy531; + goto yy497; + } + } + yy521: + ++p; + yych = *p; + if (yybm[0 + yych] & 64) { + goto yy521; + } + if (yych <= 0xEC) { + if (yych <= 0xC1) { + if (yych <= 0x00) + goto yy497; + if (yych <= '"') + goto yy532; + goto yy497; + } else { + if (yych <= 0xDF) + goto yy533; + if (yych <= 0xE0) + goto yy534; + goto yy535; + } + } else { + if (yych <= 0xF0) { + if (yych <= 0xED) + goto yy536; + if (yych <= 0xEF) + goto yy535; + goto yy537; + } else { + if (yych <= 0xF3) + goto yy538; + if (yych <= 0xF4) + goto yy539; + goto yy497; + } + } + yy523: + ++p; + yych = *p; + if (yybm[0 + yych] & 128) { + goto yy523; + } + if (yych <= 0xEC) { + if (yych <= 0xC1) { + if (yych <= 0x00) + goto yy497; + if (yych <= '\'') + goto yy532; + goto yy497; + } else { + if (yych <= 0xDF) + goto yy540; + if (yych <= 0xE0) + goto yy541; + goto yy542; + } + } else { + if (yych <= 0xF0) { + if (yych <= 0xED) + goto yy543; + if (yych <= 0xEF) + goto yy542; + goto yy544; + } else { + if (yych <= 0xF3) + goto yy545; + if (yych <= 0xF4) + goto yy546; + goto yy497; + } + } + yy525: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy497; + if (yych <= 0xBF) + goto yy519; + goto yy497; + yy526: + ++p; + yych = *p; + if (yych <= 0x9F) + goto yy497; + if (yych <= 0xBF) + goto yy525; + goto yy497; + yy527: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy497; + if (yych <= 0xBF) + goto yy525; + goto yy497; + yy528: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy497; + if (yych <= 0x9F) + goto yy525; + goto yy497; + yy529: + ++p; + yych = *p; + if (yych <= 0x8F) + goto yy497; + if (yych <= 0xBF) + goto yy527; + goto yy497; + yy530: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy497; + if (yych <= 0xBF) + goto yy527; + goto yy497; + yy531: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy497; + if (yych <= 0x8F) + goto yy527; + goto yy497; + yy532: + ++p; + yych = *p; + if (yybm[0 + yych] & 2) { + goto yy502; + } + if (yych == '/') + goto yy504; + if (yych == '>') + goto yy505; + goto yy497; + yy533: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy497; + if (yych <= 0xBF) + goto yy521; + goto yy497; + yy534: + ++p; + yych = *p; + if (yych <= 0x9F) + goto yy497; + if (yych <= 0xBF) + goto yy533; + goto yy497; + yy535: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy497; + if (yych <= 0xBF) + goto yy533; + goto yy497; + yy536: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy497; + if (yych <= 0x9F) + goto yy533; + goto yy497; + yy537: + ++p; + yych = *p; + if (yych <= 0x8F) + goto yy497; + if (yych <= 0xBF) + goto yy535; + goto yy497; + yy538: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy497; + if (yych <= 0xBF) + goto yy535; + goto yy497; + yy539: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy497; + if (yych <= 0x8F) + goto yy535; + goto yy497; + yy540: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy497; + if (yych <= 0xBF) + goto yy523; + goto yy497; + yy541: + ++p; + yych = *p; + if (yych <= 0x9F) + goto yy497; + if (yych <= 0xBF) + goto yy540; + goto yy497; + yy542: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy497; + if (yych <= 0xBF) + goto yy540; + goto yy497; + yy543: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy497; + if (yych <= 0x9F) + goto yy540; + goto yy497; + yy544: + ++p; + yych = *p; + if (yych <= 0x8F) + goto yy497; + if (yych <= 0xBF) + goto yy542; + goto yy497; + yy545: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy497; + if (yych <= 0xBF) + goto yy542; + goto yy497; + yy546: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy497; + if (yych <= 0x8F) + goto yy542; + goto yy497; + } +} + +// Try to match an HTML block end line of type 1 +bufsize_t _scan_html_block_end_1(const unsigned char *p) { + const unsigned char *marker = NULL; + const unsigned char *start = p; + + { + unsigned char yych; + unsigned int yyaccept = 0; + static const unsigned char yybm[] = { + 0, 64, 64, 64, 64, 64, 64, 64, 64, 64, 0, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 128, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, + }; + yych = *p; + if (yych <= 0xDF) { + if (yych <= ';') { + if (yych <= 0x00) + goto yy549; + if (yych != '\n') + goto yy551; + } else { + if (yych <= '<') + goto yy552; + if (yych <= 0x7F) + goto yy551; + if (yych >= 0xC2) + goto yy553; + } + } else { + if (yych <= 0xEF) { + if (yych <= 0xE0) + goto yy554; + if (yych == 0xED) + goto yy556; + goto yy555; + } else { + if (yych <= 0xF0) + goto yy557; + if (yych <= 0xF3) + goto yy558; + if (yych <= 0xF4) + goto yy559; + } + } + yy549: + ++p; + yy550 : { return 0; } + yy551: + yyaccept = 0; + yych = *(marker = ++p); + if (yych <= '\n') { + if (yych <= 0x00) + goto yy550; + if (yych <= '\t') + goto yy561; + goto yy550; + } else { + if (yych <= 0x7F) + goto yy561; + if (yych <= 0xC1) + goto yy550; + if (yych <= 0xF4) + goto yy561; + goto yy550; + } + yy552: + yyaccept = 0; + yych = *(marker = ++p); + if (yych <= '.') { + if (yych <= 0x00) + goto yy550; + if (yych == '\n') + goto yy550; + goto yy561; + } else { + if (yych <= 0x7F) { + if (yych <= '/') + goto yy572; + goto yy561; + } else { + if (yych <= 0xC1) + goto yy550; + if (yych <= 0xF4) + goto yy561; + goto yy550; + } + } + yy553: + yyaccept = 0; + yych = *(marker = ++p); + if (yych <= 0x7F) + goto yy550; + if (yych <= 0xBF) + goto yy560; + goto yy550; + yy554: + yyaccept = 0; + yych = *(marker = ++p); + if (yych <= 0x9F) + goto yy550; + if (yych <= 0xBF) + goto yy565; + goto yy550; + yy555: + yyaccept = 0; + yych = *(marker = ++p); + if (yych <= 0x7F) + goto yy550; + if (yych <= 0xBF) + goto yy565; + goto yy550; + yy556: + yyaccept = 0; + yych = *(marker = ++p); + if (yych <= 0x7F) + goto yy550; + if (yych <= 0x9F) + goto yy565; + goto yy550; + yy557: + yyaccept = 0; + yych = *(marker = ++p); + if (yych <= 0x8F) + goto yy550; + if (yych <= 0xBF) + goto yy567; + goto yy550; + yy558: + yyaccept = 0; + yych = *(marker = ++p); + if (yych <= 0x7F) + goto yy550; + if (yych <= 0xBF) + goto yy567; + goto yy550; + yy559: + yyaccept = 0; + yych = *(marker = ++p); + if (yych <= 0x7F) + goto yy550; + if (yych <= 0x8F) + goto yy567; + goto yy550; + yy560: + ++p; + yych = *p; + yy561: + if (yybm[0 + yych] & 64) { + goto yy560; + } + if (yych <= 0xEC) { + if (yych <= 0xC1) { + if (yych <= '\n') + goto yy562; + if (yych <= '<') + goto yy563; + } else { + if (yych <= 0xDF) + goto yy565; + if (yych <= 0xE0) + goto yy566; + goto yy567; + } + } else { + if (yych <= 0xF0) { + if (yych <= 0xED) + goto yy568; + if (yych <= 0xEF) + goto yy567; + goto yy569; + } else { + if (yych <= 0xF3) + goto yy570; + if (yych <= 0xF4) + goto yy571; + } + } + yy562: + p = marker; + if (yyaccept == 0) { + goto yy550; + } else { + goto yy582; + } + yy563: + ++p; + yych = *p; + if (yybm[0 + yych] & 128) { + goto yy563; + } + if (yych <= 0xDF) { + if (yych <= '.') { + if (yych <= 0x00) + goto yy562; + if (yych == '\n') + goto yy562; + goto yy560; + } else { + if (yych <= '/') + goto yy572; + if (yych <= 0x7F) + goto yy560; + if (yych <= 0xC1) + goto yy562; + } + } else { + if (yych <= 0xEF) { + if (yych <= 0xE0) + goto yy566; + if (yych == 0xED) + goto yy568; + goto yy567; + } else { + if (yych <= 0xF0) + goto yy569; + if (yych <= 0xF3) + goto yy570; + if (yych <= 0xF4) + goto yy571; + goto yy562; + } + } + yy565: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy562; + if (yych <= 0xBF) + goto yy560; + goto yy562; + yy566: + ++p; + yych = *p; + if (yych <= 0x9F) + goto yy562; + if (yych <= 0xBF) + goto yy565; + goto yy562; + yy567: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy562; + if (yych <= 0xBF) + goto yy565; + goto yy562; + yy568: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy562; + if (yych <= 0x9F) + goto yy565; + goto yy562; + yy569: + ++p; + yych = *p; + if (yych <= 0x8F) + goto yy562; + if (yych <= 0xBF) + goto yy567; + goto yy562; + yy570: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy562; + if (yych <= 0xBF) + goto yy567; + goto yy562; + yy571: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy562; + if (yych <= 0x8F) + goto yy567; + goto yy562; + yy572: + ++p; + yych = *p; + if (yybm[0 + yych] & 128) { + goto yy563; + } + if (yych <= 's') { + if (yych <= 'P') { + if (yych <= '\t') { + if (yych <= 0x00) + goto yy562; + goto yy560; + } else { + if (yych <= '\n') + goto yy562; + if (yych <= 'O') + goto yy560; + } + } else { + if (yych <= 'o') { + if (yych == 'S') + goto yy574; + goto yy560; + } else { + if (yych <= 'p') + goto yy573; + if (yych <= 'r') + goto yy560; + goto yy574; + } + } + } else { + if (yych <= 0xEC) { + if (yych <= 0xC1) { + if (yych <= 0x7F) + goto yy560; + goto yy562; + } else { + if (yych <= 0xDF) + goto yy565; + if (yych <= 0xE0) + goto yy566; + goto yy567; + } + } else { + if (yych <= 0xF0) { + if (yych <= 0xED) + goto yy568; + if (yych <= 0xEF) + goto yy567; + goto yy569; + } else { + if (yych <= 0xF3) + goto yy570; + if (yych <= 0xF4) + goto yy571; + goto yy562; + } + } + } + yy573: + ++p; + yych = *p; + if (yybm[0 + yych] & 128) { + goto yy563; + } + if (yych <= 0xC1) { + if (yych <= 'Q') { + if (yych <= 0x00) + goto yy562; + if (yych == '\n') + goto yy562; + goto yy560; + } else { + if (yych <= 'q') { + if (yych <= 'R') + goto yy575; + goto yy560; + } else { + if (yych <= 'r') + goto yy575; + if (yych <= 0x7F) + goto yy560; + goto yy562; + } + } + } else { + if (yych <= 0xED) { + if (yych <= 0xDF) + goto yy565; + if (yych <= 0xE0) + goto yy566; + if (yych <= 0xEC) + goto yy567; + goto yy568; + } else { + if (yych <= 0xF0) { + if (yych <= 0xEF) + goto yy567; + goto yy569; + } else { + if (yych <= 0xF3) + goto yy570; + if (yych <= 0xF4) + goto yy571; + goto yy562; + } + } + } + yy574: + ++p; + yych = *p; + if (yybm[0 + yych] & 128) { + goto yy563; + } + if (yych <= 't') { + if (yych <= 'C') { + if (yych <= '\t') { + if (yych <= 0x00) + goto yy562; + goto yy560; + } else { + if (yych <= '\n') + goto yy562; + if (yych <= 'B') + goto yy560; + goto yy576; + } + } else { + if (yych <= 'b') { + if (yych == 'T') + goto yy577; + goto yy560; + } else { + if (yych <= 'c') + goto yy576; + if (yych <= 's') + goto yy560; + goto yy577; + } + } + } else { + if (yych <= 0xEC) { + if (yych <= 0xC1) { + if (yych <= 0x7F) + goto yy560; + goto yy562; + } else { + if (yych <= 0xDF) + goto yy565; + if (yych <= 0xE0) + goto yy566; + goto yy567; + } + } else { + if (yych <= 0xF0) { + if (yych <= 0xED) + goto yy568; + if (yych <= 0xEF) + goto yy567; + goto yy569; + } else { + if (yych <= 0xF3) + goto yy570; + if (yych <= 0xF4) + goto yy571; + goto yy562; + } + } + } + yy575: + ++p; + yych = *p; + if (yybm[0 + yych] & 128) { + goto yy563; + } + if (yych <= 0xC1) { + if (yych <= 'D') { + if (yych <= 0x00) + goto yy562; + if (yych == '\n') + goto yy562; + goto yy560; + } else { + if (yych <= 'd') { + if (yych <= 'E') + goto yy578; + goto yy560; + } else { + if (yych <= 'e') + goto yy578; + if (yych <= 0x7F) + goto yy560; + goto yy562; + } + } + } else { + if (yych <= 0xED) { + if (yych <= 0xDF) + goto yy565; + if (yych <= 0xE0) + goto yy566; + if (yych <= 0xEC) + goto yy567; + goto yy568; + } else { + if (yych <= 0xF0) { + if (yych <= 0xEF) + goto yy567; + goto yy569; + } else { + if (yych <= 0xF3) + goto yy570; + if (yych <= 0xF4) + goto yy571; + goto yy562; + } + } + } + yy576: + ++p; + yych = *p; + if (yybm[0 + yych] & 128) { + goto yy563; + } + if (yych <= 0xC1) { + if (yych <= 'Q') { + if (yych <= 0x00) + goto yy562; + if (yych == '\n') + goto yy562; + goto yy560; + } else { + if (yych <= 'q') { + if (yych <= 'R') + goto yy579; + goto yy560; + } else { + if (yych <= 'r') + goto yy579; + if (yych <= 0x7F) + goto yy560; + goto yy562; + } + } + } else { + if (yych <= 0xED) { + if (yych <= 0xDF) + goto yy565; + if (yych <= 0xE0) + goto yy566; + if (yych <= 0xEC) + goto yy567; + goto yy568; + } else { + if (yych <= 0xF0) { + if (yych <= 0xEF) + goto yy567; + goto yy569; + } else { + if (yych <= 0xF3) + goto yy570; + if (yych <= 0xF4) + goto yy571; + goto yy562; + } + } + } + yy577: + ++p; + yych = *p; + if (yybm[0 + yych] & 128) { + goto yy563; + } + if (yych <= 0xC1) { + if (yych <= 'X') { + if (yych <= 0x00) + goto yy562; + if (yych == '\n') + goto yy562; + goto yy560; + } else { + if (yych <= 'x') { + if (yych <= 'Y') + goto yy580; + goto yy560; + } else { + if (yych <= 'y') + goto yy580; + if (yych <= 0x7F) + goto yy560; + goto yy562; + } + } + } else { + if (yych <= 0xED) { + if (yych <= 0xDF) + goto yy565; + if (yych <= 0xE0) + goto yy566; + if (yych <= 0xEC) + goto yy567; + goto yy568; + } else { + if (yych <= 0xF0) { + if (yych <= 0xEF) + goto yy567; + goto yy569; + } else { + if (yych <= 0xF3) + goto yy570; + if (yych <= 0xF4) + goto yy571; + goto yy562; + } + } + } + yy578: + ++p; + yych = *p; + if (yybm[0 + yych] & 128) { + goto yy563; + } + if (yych <= 0xDF) { + if (yych <= '=') { + if (yych <= 0x00) + goto yy562; + if (yych == '\n') + goto yy562; + goto yy560; + } else { + if (yych <= '>') + goto yy581; + if (yych <= 0x7F) + goto yy560; + if (yych <= 0xC1) + goto yy562; + goto yy565; + } + } else { + if (yych <= 0xEF) { + if (yych <= 0xE0) + goto yy566; + if (yych == 0xED) + goto yy568; + goto yy567; + } else { + if (yych <= 0xF0) + goto yy569; + if (yych <= 0xF3) + goto yy570; + if (yych <= 0xF4) + goto yy571; + goto yy562; + } + } + yy579: + ++p; + yych = *p; + if (yybm[0 + yych] & 128) { + goto yy563; + } + if (yych <= 0xC1) { + if (yych <= 'H') { + if (yych <= 0x00) + goto yy562; + if (yych == '\n') + goto yy562; + goto yy560; + } else { + if (yych <= 'h') { + if (yych <= 'I') + goto yy583; + goto yy560; + } else { + if (yych <= 'i') + goto yy583; + if (yych <= 0x7F) + goto yy560; + goto yy562; + } + } + } else { + if (yych <= 0xED) { + if (yych <= 0xDF) + goto yy565; + if (yych <= 0xE0) + goto yy566; + if (yych <= 0xEC) + goto yy567; + goto yy568; + } else { + if (yych <= 0xF0) { + if (yych <= 0xEF) + goto yy567; + goto yy569; + } else { + if (yych <= 0xF3) + goto yy570; + if (yych <= 0xF4) + goto yy571; + goto yy562; + } + } + } + yy580: + ++p; + yych = *p; + if (yybm[0 + yych] & 128) { + goto yy563; + } + if (yych <= 0xC1) { + if (yych <= 'K') { + if (yych <= 0x00) + goto yy562; + if (yych == '\n') + goto yy562; + goto yy560; + } else { + if (yych <= 'k') { + if (yych <= 'L') + goto yy575; + goto yy560; + } else { + if (yych <= 'l') + goto yy575; + if (yych <= 0x7F) + goto yy560; + goto yy562; + } + } + } else { + if (yych <= 0xED) { + if (yych <= 0xDF) + goto yy565; + if (yych <= 0xE0) + goto yy566; + if (yych <= 0xEC) + goto yy567; + goto yy568; + } else { + if (yych <= 0xF0) { + if (yych <= 0xEF) + goto yy567; + goto yy569; + } else { + if (yych <= 0xF3) + goto yy570; + if (yych <= 0xF4) + goto yy571; + goto yy562; + } + } + } + yy581: + yyaccept = 1; + marker = ++p; + yych = *p; + if (yybm[0 + yych] & 64) { + goto yy560; + } + if (yych <= 0xEC) { + if (yych <= 0xC1) { + if (yych <= '\n') + goto yy582; + if (yych <= '<') + goto yy563; + } else { + if (yych <= 0xDF) + goto yy565; + if (yych <= 0xE0) + goto yy566; + goto yy567; + } + } else { + if (yych <= 0xF0) { + if (yych <= 0xED) + goto yy568; + if (yych <= 0xEF) + goto yy567; + goto yy569; + } else { + if (yych <= 0xF3) + goto yy570; + if (yych <= 0xF4) + goto yy571; + } + } + yy582 : { return (bufsize_t)(p - start); } + yy583: + ++p; + yych = *p; + if (yybm[0 + yych] & 128) { + goto yy563; + } + if (yych <= 0xC1) { + if (yych <= 'O') { + if (yych <= 0x00) + goto yy562; + if (yych == '\n') + goto yy562; + goto yy560; + } else { + if (yych <= 'o') { + if (yych >= 'Q') + goto yy560; + } else { + if (yych <= 'p') + goto yy584; + if (yych <= 0x7F) + goto yy560; + goto yy562; + } + } + } else { + if (yych <= 0xED) { + if (yych <= 0xDF) + goto yy565; + if (yych <= 0xE0) + goto yy566; + if (yych <= 0xEC) + goto yy567; + goto yy568; + } else { + if (yych <= 0xF0) { + if (yych <= 0xEF) + goto yy567; + goto yy569; + } else { + if (yych <= 0xF3) + goto yy570; + if (yych <= 0xF4) + goto yy571; + goto yy562; + } + } + } + yy584: + ++p; + yych = *p; + if (yybm[0 + yych] & 128) { + goto yy563; + } + if (yych <= 0xC1) { + if (yych <= 'S') { + if (yych <= 0x00) + goto yy562; + if (yych == '\n') + goto yy562; + goto yy560; + } else { + if (yych <= 's') { + if (yych <= 'T') + goto yy578; + goto yy560; + } else { + if (yych <= 't') + goto yy578; + if (yych <= 0x7F) + goto yy560; + goto yy562; + } + } + } else { + if (yych <= 0xED) { + if (yych <= 0xDF) + goto yy565; + if (yych <= 0xE0) + goto yy566; + if (yych <= 0xEC) + goto yy567; + goto yy568; + } else { + if (yych <= 0xF0) { + if (yych <= 0xEF) + goto yy567; + goto yy569; + } else { + if (yych <= 0xF3) + goto yy570; + if (yych <= 0xF4) + goto yy571; + goto yy562; + } + } + } + } +} + +// Try to match an HTML block end line of type 2 +bufsize_t _scan_html_block_end_2(const unsigned char *p) { + const unsigned char *marker = NULL; + const unsigned char *start = p; + + { + unsigned char yych; + unsigned int yyaccept = 0; + static const unsigned char yybm[] = { + 0, 64, 64, 64, 64, 64, 64, 64, 64, 64, 0, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 128, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, + }; + yych = *p; + if (yych <= 0xDF) { + if (yych <= ',') { + if (yych <= 0x00) + goto yy587; + if (yych != '\n') + goto yy589; + } else { + if (yych <= '-') + goto yy590; + if (yych <= 0x7F) + goto yy589; + if (yych >= 0xC2) + goto yy591; + } + } else { + if (yych <= 0xEF) { + if (yych <= 0xE0) + goto yy592; + if (yych == 0xED) + goto yy594; + goto yy593; + } else { + if (yych <= 0xF0) + goto yy595; + if (yych <= 0xF3) + goto yy596; + if (yych <= 0xF4) + goto yy597; + } + } + yy587: + ++p; + yy588 : { return 0; } + yy589: + yyaccept = 0; + yych = *(marker = ++p); + if (yych <= '\n') { + if (yych <= 0x00) + goto yy588; + if (yych <= '\t') + goto yy599; + goto yy588; + } else { + if (yych <= 0x7F) + goto yy599; + if (yych <= 0xC1) + goto yy588; + if (yych <= 0xF4) + goto yy599; + goto yy588; + } + yy590: + yyaccept = 0; + yych = *(marker = ++p); + if (yybm[0 + yych] & 128) { + goto yy609; + } + if (yych <= '\n') { + if (yych <= 0x00) + goto yy588; + if (yych <= '\t') + goto yy599; + goto yy588; + } else { + if (yych <= 0x7F) + goto yy599; + if (yych <= 0xC1) + goto yy588; + if (yych <= 0xF4) + goto yy599; + goto yy588; + } + yy591: + yyaccept = 0; + yych = *(marker = ++p); + if (yych <= 0x7F) + goto yy588; + if (yych <= 0xBF) + goto yy598; + goto yy588; + yy592: + yyaccept = 0; + yych = *(marker = ++p); + if (yych <= 0x9F) + goto yy588; + if (yych <= 0xBF) + goto yy602; + goto yy588; + yy593: + yyaccept = 0; + yych = *(marker = ++p); + if (yych <= 0x7F) + goto yy588; + if (yych <= 0xBF) + goto yy602; + goto yy588; + yy594: + yyaccept = 0; + yych = *(marker = ++p); + if (yych <= 0x7F) + goto yy588; + if (yych <= 0x9F) + goto yy602; + goto yy588; + yy595: + yyaccept = 0; + yych = *(marker = ++p); + if (yych <= 0x8F) + goto yy588; + if (yych <= 0xBF) + goto yy604; + goto yy588; + yy596: + yyaccept = 0; + yych = *(marker = ++p); + if (yych <= 0x7F) + goto yy588; + if (yych <= 0xBF) + goto yy604; + goto yy588; + yy597: + yyaccept = 0; + yych = *(marker = ++p); + if (yych <= 0x7F) + goto yy588; + if (yych <= 0x8F) + goto yy604; + goto yy588; + yy598: + ++p; + yych = *p; + yy599: + if (yybm[0 + yych] & 64) { + goto yy598; + } + if (yych <= 0xEC) { + if (yych <= 0xC1) { + if (yych <= '\n') + goto yy600; + if (yych <= '-') + goto yy601; + } else { + if (yych <= 0xDF) + goto yy602; + if (yych <= 0xE0) + goto yy603; + goto yy604; + } + } else { + if (yych <= 0xF0) { + if (yych <= 0xED) + goto yy605; + if (yych <= 0xEF) + goto yy604; + goto yy606; + } else { + if (yych <= 0xF3) + goto yy607; + if (yych <= 0xF4) + goto yy608; + } + } + yy600: + p = marker; + if (yyaccept == 0) { + goto yy588; + } else { + goto yy612; + } + yy601: + ++p; + yych = *p; + if (yybm[0 + yych] & 64) { + goto yy598; + } + if (yych <= 0xEC) { + if (yych <= 0xC1) { + if (yych <= '\n') + goto yy600; + if (yych <= '-') + goto yy609; + goto yy600; + } else { + if (yych <= 0xDF) + goto yy602; + if (yych <= 0xE0) + goto yy603; + goto yy604; + } + } else { + if (yych <= 0xF0) { + if (yych <= 0xED) + goto yy605; + if (yych <= 0xEF) + goto yy604; + goto yy606; + } else { + if (yych <= 0xF3) + goto yy607; + if (yych <= 0xF4) + goto yy608; + goto yy600; + } + } + yy602: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy600; + if (yych <= 0xBF) + goto yy598; + goto yy600; + yy603: + ++p; + yych = *p; + if (yych <= 0x9F) + goto yy600; + if (yych <= 0xBF) + goto yy602; + goto yy600; + yy604: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy600; + if (yych <= 0xBF) + goto yy602; + goto yy600; + yy605: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy600; + if (yych <= 0x9F) + goto yy602; + goto yy600; + yy606: + ++p; + yych = *p; + if (yych <= 0x8F) + goto yy600; + if (yych <= 0xBF) + goto yy604; + goto yy600; + yy607: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy600; + if (yych <= 0xBF) + goto yy604; + goto yy600; + yy608: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy600; + if (yych <= 0x8F) + goto yy604; + goto yy600; + yy609: + ++p; + yych = *p; + if (yybm[0 + yych] & 128) { + goto yy609; + } + if (yych <= 0xDF) { + if (yych <= '=') { + if (yych <= 0x00) + goto yy600; + if (yych == '\n') + goto yy600; + goto yy598; + } else { + if (yych <= '>') + goto yy611; + if (yych <= 0x7F) + goto yy598; + if (yych <= 0xC1) + goto yy600; + goto yy602; + } + } else { + if (yych <= 0xEF) { + if (yych <= 0xE0) + goto yy603; + if (yych == 0xED) + goto yy605; + goto yy604; + } else { + if (yych <= 0xF0) + goto yy606; + if (yych <= 0xF3) + goto yy607; + if (yych <= 0xF4) + goto yy608; + goto yy600; + } + } + yy611: + yyaccept = 1; + marker = ++p; + yych = *p; + if (yybm[0 + yych] & 64) { + goto yy598; + } + if (yych <= 0xEC) { + if (yych <= 0xC1) { + if (yych <= '\n') + goto yy612; + if (yych <= '-') + goto yy601; + } else { + if (yych <= 0xDF) + goto yy602; + if (yych <= 0xE0) + goto yy603; + goto yy604; + } + } else { + if (yych <= 0xF0) { + if (yych <= 0xED) + goto yy605; + if (yych <= 0xEF) + goto yy604; + goto yy606; + } else { + if (yych <= 0xF3) + goto yy607; + if (yych <= 0xF4) + goto yy608; + } + } + yy612 : { return (bufsize_t)(p - start); } + } +} + +// Try to match an HTML block end line of type 3 +bufsize_t _scan_html_block_end_3(const unsigned char *p) { + const unsigned char *marker = NULL; + const unsigned char *start = p; + + { + unsigned char yych; + unsigned int yyaccept = 0; + static const unsigned char yybm[] = { + 0, 64, 64, 64, 64, 64, 64, 64, 64, 64, 0, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 128, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, + }; + yych = *p; + if (yych <= 0xDF) { + if (yych <= '>') { + if (yych <= 0x00) + goto yy615; + if (yych != '\n') + goto yy617; + } else { + if (yych <= '?') + goto yy618; + if (yych <= 0x7F) + goto yy617; + if (yych >= 0xC2) + goto yy619; + } + } else { + if (yych <= 0xEF) { + if (yych <= 0xE0) + goto yy620; + if (yych == 0xED) + goto yy622; + goto yy621; + } else { + if (yych <= 0xF0) + goto yy623; + if (yych <= 0xF3) + goto yy624; + if (yych <= 0xF4) + goto yy625; + } + } + yy615: + ++p; + yy616 : { return 0; } + yy617: + yyaccept = 0; + yych = *(marker = ++p); + if (yych <= '\n') { + if (yych <= 0x00) + goto yy616; + if (yych <= '\t') + goto yy627; + goto yy616; + } else { + if (yych <= 0x7F) + goto yy627; + if (yych <= 0xC1) + goto yy616; + if (yych <= 0xF4) + goto yy627; + goto yy616; + } + yy618: + yyaccept = 0; + yych = *(marker = ++p); + if (yych <= '=') { + if (yych <= 0x00) + goto yy616; + if (yych == '\n') + goto yy616; + goto yy627; + } else { + if (yych <= 0x7F) { + if (yych <= '>') + goto yy638; + goto yy627; + } else { + if (yych <= 0xC1) + goto yy616; + if (yych <= 0xF4) + goto yy627; + goto yy616; + } + } + yy619: + yyaccept = 0; + yych = *(marker = ++p); + if (yych <= 0x7F) + goto yy616; + if (yych <= 0xBF) + goto yy626; + goto yy616; + yy620: + yyaccept = 0; + yych = *(marker = ++p); + if (yych <= 0x9F) + goto yy616; + if (yych <= 0xBF) + goto yy631; + goto yy616; + yy621: + yyaccept = 0; + yych = *(marker = ++p); + if (yych <= 0x7F) + goto yy616; + if (yych <= 0xBF) + goto yy631; + goto yy616; + yy622: + yyaccept = 0; + yych = *(marker = ++p); + if (yych <= 0x7F) + goto yy616; + if (yych <= 0x9F) + goto yy631; + goto yy616; + yy623: + yyaccept = 0; + yych = *(marker = ++p); + if (yych <= 0x8F) + goto yy616; + if (yych <= 0xBF) + goto yy633; + goto yy616; + yy624: + yyaccept = 0; + yych = *(marker = ++p); + if (yych <= 0x7F) + goto yy616; + if (yych <= 0xBF) + goto yy633; + goto yy616; + yy625: + yyaccept = 0; + yych = *(marker = ++p); + if (yych <= 0x7F) + goto yy616; + if (yych <= 0x8F) + goto yy633; + goto yy616; + yy626: + ++p; + yych = *p; + yy627: + if (yybm[0 + yych] & 64) { + goto yy626; + } + if (yych <= 0xEC) { + if (yych <= 0xC1) { + if (yych <= '\n') + goto yy628; + if (yych <= '?') + goto yy629; + } else { + if (yych <= 0xDF) + goto yy631; + if (yych <= 0xE0) + goto yy632; + goto yy633; + } + } else { + if (yych <= 0xF0) { + if (yych <= 0xED) + goto yy634; + if (yych <= 0xEF) + goto yy633; + goto yy635; + } else { + if (yych <= 0xF3) + goto yy636; + if (yych <= 0xF4) + goto yy637; + } + } + yy628: + p = marker; + if (yyaccept == 0) { + goto yy616; + } else { + goto yy639; + } + yy629: + ++p; + yych = *p; + if (yybm[0 + yych] & 128) { + goto yy629; + } + if (yych <= 0xDF) { + if (yych <= '=') { + if (yych <= 0x00) + goto yy628; + if (yych == '\n') + goto yy628; + goto yy626; + } else { + if (yych <= '>') + goto yy638; + if (yych <= 0x7F) + goto yy626; + if (yych <= 0xC1) + goto yy628; + } + } else { + if (yych <= 0xEF) { + if (yych <= 0xE0) + goto yy632; + if (yych == 0xED) + goto yy634; + goto yy633; + } else { + if (yych <= 0xF0) + goto yy635; + if (yych <= 0xF3) + goto yy636; + if (yych <= 0xF4) + goto yy637; + goto yy628; + } + } + yy631: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy628; + if (yych <= 0xBF) + goto yy626; + goto yy628; + yy632: + ++p; + yych = *p; + if (yych <= 0x9F) + goto yy628; + if (yych <= 0xBF) + goto yy631; + goto yy628; + yy633: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy628; + if (yych <= 0xBF) + goto yy631; + goto yy628; + yy634: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy628; + if (yych <= 0x9F) + goto yy631; + goto yy628; + yy635: + ++p; + yych = *p; + if (yych <= 0x8F) + goto yy628; + if (yych <= 0xBF) + goto yy633; + goto yy628; + yy636: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy628; + if (yych <= 0xBF) + goto yy633; + goto yy628; + yy637: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy628; + if (yych <= 0x8F) + goto yy633; + goto yy628; + yy638: + yyaccept = 1; + marker = ++p; + yych = *p; + if (yybm[0 + yych] & 64) { + goto yy626; + } + if (yych <= 0xEC) { + if (yych <= 0xC1) { + if (yych <= '\n') + goto yy639; + if (yych <= '?') + goto yy629; + } else { + if (yych <= 0xDF) + goto yy631; + if (yych <= 0xE0) + goto yy632; + goto yy633; + } + } else { + if (yych <= 0xF0) { + if (yych <= 0xED) + goto yy634; + if (yych <= 0xEF) + goto yy633; + goto yy635; + } else { + if (yych <= 0xF3) + goto yy636; + if (yych <= 0xF4) + goto yy637; + } + } + yy639 : { return (bufsize_t)(p - start); } + } +} + +// Try to match an HTML block end line of type 4 +bufsize_t _scan_html_block_end_4(const unsigned char *p) { + const unsigned char *marker = NULL; + const unsigned char *start = p; + + { + unsigned char yych; + unsigned int yyaccept = 0; + static const unsigned char yybm[] = { + 0, 128, 128, 128, 128, 128, 128, 128, 128, 128, 0, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 64, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, + }; + yych = *p; + if (yybm[0 + yych] & 64) { + goto yy645; + } + if (yych <= 0xE0) { + if (yych <= '\n') { + if (yych <= 0x00) + goto yy642; + if (yych <= '\t') + goto yy644; + } else { + if (yych <= 0x7F) + goto yy644; + if (yych <= 0xC1) + goto yy642; + if (yych <= 0xDF) + goto yy648; + goto yy649; + } + } else { + if (yych <= 0xEF) { + if (yych == 0xED) + goto yy651; + goto yy650; + } else { + if (yych <= 0xF0) + goto yy652; + if (yych <= 0xF3) + goto yy653; + if (yych <= 0xF4) + goto yy654; + } + } + yy642: + ++p; + yy643 : { return 0; } + yy644: + yyaccept = 0; + yych = *(marker = ++p); + if (yych <= '\n') { + if (yych <= 0x00) + goto yy643; + if (yych <= '\t') + goto yy656; + goto yy643; + } else { + if (yych <= 0x7F) + goto yy656; + if (yych <= 0xC1) + goto yy643; + if (yych <= 0xF4) + goto yy656; + goto yy643; + } + yy645: + yyaccept = 1; + marker = ++p; + yych = *p; + if (yybm[0 + yych] & 128) { + goto yy655; + } + if (yych <= 0xEC) { + if (yych <= 0xC1) { + if (yych <= '\n') + goto yy647; + if (yych <= '>') + goto yy645; + } else { + if (yych <= 0xDF) + goto yy658; + if (yych <= 0xE0) + goto yy659; + goto yy660; + } + } else { + if (yych <= 0xF0) { + if (yych <= 0xED) + goto yy661; + if (yych <= 0xEF) + goto yy660; + goto yy662; + } else { + if (yych <= 0xF3) + goto yy663; + if (yych <= 0xF4) + goto yy664; + } + } + yy647 : { return (bufsize_t)(p - start); } + yy648: + yyaccept = 0; + yych = *(marker = ++p); + if (yych <= 0x7F) + goto yy643; + if (yych <= 0xBF) + goto yy655; + goto yy643; + yy649: + yyaccept = 0; + yych = *(marker = ++p); + if (yych <= 0x9F) + goto yy643; + if (yych <= 0xBF) + goto yy658; + goto yy643; + yy650: + yyaccept = 0; + yych = *(marker = ++p); + if (yych <= 0x7F) + goto yy643; + if (yych <= 0xBF) + goto yy658; + goto yy643; + yy651: + yyaccept = 0; + yych = *(marker = ++p); + if (yych <= 0x7F) + goto yy643; + if (yych <= 0x9F) + goto yy658; + goto yy643; + yy652: + yyaccept = 0; + yych = *(marker = ++p); + if (yych <= 0x8F) + goto yy643; + if (yych <= 0xBF) + goto yy660; + goto yy643; + yy653: + yyaccept = 0; + yych = *(marker = ++p); + if (yych <= 0x7F) + goto yy643; + if (yych <= 0xBF) + goto yy660; + goto yy643; + yy654: + yyaccept = 0; + yych = *(marker = ++p); + if (yych <= 0x7F) + goto yy643; + if (yych <= 0x8F) + goto yy660; + goto yy643; + yy655: + ++p; + yych = *p; + yy656: + if (yybm[0 + yych] & 128) { + goto yy655; + } + if (yych <= 0xEC) { + if (yych <= 0xC1) { + if (yych <= '\n') + goto yy657; + if (yych <= '>') + goto yy645; + } else { + if (yych <= 0xDF) + goto yy658; + if (yych <= 0xE0) + goto yy659; + goto yy660; + } + } else { + if (yych <= 0xF0) { + if (yych <= 0xED) + goto yy661; + if (yych <= 0xEF) + goto yy660; + goto yy662; + } else { + if (yych <= 0xF3) + goto yy663; + if (yych <= 0xF4) + goto yy664; + } + } + yy657: + p = marker; + if (yyaccept == 0) { + goto yy643; + } else { + goto yy647; + } + yy658: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy657; + if (yych <= 0xBF) + goto yy655; + goto yy657; + yy659: + ++p; + yych = *p; + if (yych <= 0x9F) + goto yy657; + if (yych <= 0xBF) + goto yy658; + goto yy657; + yy660: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy657; + if (yych <= 0xBF) + goto yy658; + goto yy657; + yy661: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy657; + if (yych <= 0x9F) + goto yy658; + goto yy657; + yy662: + ++p; + yych = *p; + if (yych <= 0x8F) + goto yy657; + if (yych <= 0xBF) + goto yy660; + goto yy657; + yy663: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy657; + if (yych <= 0xBF) + goto yy660; + goto yy657; + yy664: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy657; + if (yych <= 0x8F) + goto yy660; + goto yy657; + } +} + +// Try to match an HTML block end line of type 5 +bufsize_t _scan_html_block_end_5(const unsigned char *p) { + const unsigned char *marker = NULL; + const unsigned char *start = p; + + { + unsigned char yych; + unsigned int yyaccept = 0; + static const unsigned char yybm[] = { + 0, 64, 64, 64, 64, 64, 64, 64, 64, 64, 0, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 128, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, + }; + yych = *p; + if (yych <= 0xDF) { + if (yych <= '\\') { + if (yych <= 0x00) + goto yy667; + if (yych != '\n') + goto yy669; + } else { + if (yych <= ']') + goto yy670; + if (yych <= 0x7F) + goto yy669; + if (yych >= 0xC2) + goto yy671; + } + } else { + if (yych <= 0xEF) { + if (yych <= 0xE0) + goto yy672; + if (yych == 0xED) + goto yy674; + goto yy673; + } else { + if (yych <= 0xF0) + goto yy675; + if (yych <= 0xF3) + goto yy676; + if (yych <= 0xF4) + goto yy677; + } + } + yy667: + ++p; + yy668 : { return 0; } + yy669: + yyaccept = 0; + yych = *(marker = ++p); + if (yych <= '\n') { + if (yych <= 0x00) + goto yy668; + if (yych <= '\t') + goto yy679; + goto yy668; + } else { + if (yych <= 0x7F) + goto yy679; + if (yych <= 0xC1) + goto yy668; + if (yych <= 0xF4) + goto yy679; + goto yy668; + } + yy670: + yyaccept = 0; + yych = *(marker = ++p); + if (yybm[0 + yych] & 128) { + goto yy689; + } + if (yych <= '\n') { + if (yych <= 0x00) + goto yy668; + if (yych <= '\t') + goto yy679; + goto yy668; + } else { + if (yych <= 0x7F) + goto yy679; + if (yych <= 0xC1) + goto yy668; + if (yych <= 0xF4) + goto yy679; + goto yy668; + } + yy671: + yyaccept = 0; + yych = *(marker = ++p); + if (yych <= 0x7F) + goto yy668; + if (yych <= 0xBF) + goto yy678; + goto yy668; + yy672: + yyaccept = 0; + yych = *(marker = ++p); + if (yych <= 0x9F) + goto yy668; + if (yych <= 0xBF) + goto yy682; + goto yy668; + yy673: + yyaccept = 0; + yych = *(marker = ++p); + if (yych <= 0x7F) + goto yy668; + if (yych <= 0xBF) + goto yy682; + goto yy668; + yy674: + yyaccept = 0; + yych = *(marker = ++p); + if (yych <= 0x7F) + goto yy668; + if (yych <= 0x9F) + goto yy682; + goto yy668; + yy675: + yyaccept = 0; + yych = *(marker = ++p); + if (yych <= 0x8F) + goto yy668; + if (yych <= 0xBF) + goto yy684; + goto yy668; + yy676: + yyaccept = 0; + yych = *(marker = ++p); + if (yych <= 0x7F) + goto yy668; + if (yych <= 0xBF) + goto yy684; + goto yy668; + yy677: + yyaccept = 0; + yych = *(marker = ++p); + if (yych <= 0x7F) + goto yy668; + if (yych <= 0x8F) + goto yy684; + goto yy668; + yy678: + ++p; + yych = *p; + yy679: + if (yybm[0 + yych] & 64) { + goto yy678; + } + if (yych <= 0xEC) { + if (yych <= 0xC1) { + if (yych <= '\n') + goto yy680; + if (yych <= ']') + goto yy681; + } else { + if (yych <= 0xDF) + goto yy682; + if (yych <= 0xE0) + goto yy683; + goto yy684; + } + } else { + if (yych <= 0xF0) { + if (yych <= 0xED) + goto yy685; + if (yych <= 0xEF) + goto yy684; + goto yy686; + } else { + if (yych <= 0xF3) + goto yy687; + if (yych <= 0xF4) + goto yy688; + } + } + yy680: + p = marker; + if (yyaccept == 0) { + goto yy668; + } else { + goto yy692; + } + yy681: + ++p; + yych = *p; + if (yybm[0 + yych] & 64) { + goto yy678; + } + if (yych <= 0xEC) { + if (yych <= 0xC1) { + if (yych <= '\n') + goto yy680; + if (yych <= ']') + goto yy689; + goto yy680; + } else { + if (yych <= 0xDF) + goto yy682; + if (yych <= 0xE0) + goto yy683; + goto yy684; + } + } else { + if (yych <= 0xF0) { + if (yych <= 0xED) + goto yy685; + if (yych <= 0xEF) + goto yy684; + goto yy686; + } else { + if (yych <= 0xF3) + goto yy687; + if (yych <= 0xF4) + goto yy688; + goto yy680; + } + } + yy682: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy680; + if (yych <= 0xBF) + goto yy678; + goto yy680; + yy683: + ++p; + yych = *p; + if (yych <= 0x9F) + goto yy680; + if (yych <= 0xBF) + goto yy682; + goto yy680; + yy684: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy680; + if (yych <= 0xBF) + goto yy682; + goto yy680; + yy685: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy680; + if (yych <= 0x9F) + goto yy682; + goto yy680; + yy686: + ++p; + yych = *p; + if (yych <= 0x8F) + goto yy680; + if (yych <= 0xBF) + goto yy684; + goto yy680; + yy687: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy680; + if (yych <= 0xBF) + goto yy684; + goto yy680; + yy688: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy680; + if (yych <= 0x8F) + goto yy684; + goto yy680; + yy689: + ++p; + yych = *p; + if (yybm[0 + yych] & 128) { + goto yy689; + } + if (yych <= 0xDF) { + if (yych <= '=') { + if (yych <= 0x00) + goto yy680; + if (yych == '\n') + goto yy680; + goto yy678; + } else { + if (yych <= '>') + goto yy691; + if (yych <= 0x7F) + goto yy678; + if (yych <= 0xC1) + goto yy680; + goto yy682; + } + } else { + if (yych <= 0xEF) { + if (yych <= 0xE0) + goto yy683; + if (yych == 0xED) + goto yy685; + goto yy684; + } else { + if (yych <= 0xF0) + goto yy686; + if (yych <= 0xF3) + goto yy687; + if (yych <= 0xF4) + goto yy688; + goto yy680; + } + } + yy691: + yyaccept = 1; + marker = ++p; + yych = *p; + if (yybm[0 + yych] & 64) { + goto yy678; + } + if (yych <= 0xEC) { + if (yych <= 0xC1) { + if (yych <= '\n') + goto yy692; + if (yych <= ']') + goto yy681; + } else { + if (yych <= 0xDF) + goto yy682; + if (yych <= 0xE0) + goto yy683; + goto yy684; + } + } else { + if (yych <= 0xF0) { + if (yych <= 0xED) + goto yy685; + if (yych <= 0xEF) + goto yy684; + goto yy686; + } else { + if (yych <= 0xF3) + goto yy687; + if (yych <= 0xF4) + goto yy688; + } + } + yy692 : { return (bufsize_t)(p - start); } + } +} + +// Try to match a link title (in single quotes, in double quotes, or +// in parentheses), returning number of chars matched. Allow one +// level of internal nesting (quotes within quotes). +bufsize_t _scan_link_title(const unsigned char *p) { + const unsigned char *marker = NULL; + const unsigned char *start = p; + + { + unsigned char yych; + unsigned int yyaccept = 0; + static const unsigned char yybm[] = { + 0, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, + 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, + 208, 208, 208, 208, 208, 208, 192, 208, 208, 208, 208, 144, 80, 80, + 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, + 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, + 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, + 208, 208, 208, 208, 208, 208, 208, 208, 32, 208, 208, 208, 208, 208, + 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, + 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, + 208, 208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, + }; + yych = *p; + if (yych <= '&') { + if (yych == '"') + goto yy697; + } else { + if (yych <= '\'') + goto yy698; + if (yych <= '(') + goto yy699; + } + ++p; + yy696 : { return 0; } + yy697: + yyaccept = 0; + yych = *(marker = ++p); + if (yych <= 0x00) + goto yy696; + if (yych <= 0x7F) + goto yy701; + if (yych <= 0xC1) + goto yy696; + if (yych <= 0xF4) + goto yy701; + goto yy696; + yy698: + yyaccept = 0; + yych = *(marker = ++p); + if (yych <= 0x00) + goto yy696; + if (yych <= 0x7F) + goto yy715; + if (yych <= 0xC1) + goto yy696; + if (yych <= 0xF4) + goto yy715; + goto yy696; + yy699: + yyaccept = 0; + yych = *(marker = ++p); + if (yych <= '(') { + if (yych <= 0x00) + goto yy696; + if (yych <= '\'') + goto yy728; + goto yy696; + } else { + if (yych <= 0x7F) + goto yy728; + if (yych <= 0xC1) + goto yy696; + if (yych <= 0xF4) + goto yy728; + goto yy696; + } + yy700: + ++p; + yych = *p; + yy701: + if (yybm[0 + yych] & 16) { + goto yy700; + } + if (yych <= 0xE0) { + if (yych <= '\\') { + if (yych <= 0x00) + goto yy702; + if (yych <= '"') + goto yy703; + goto yy705; + } else { + if (yych <= 0xC1) + goto yy702; + if (yych <= 0xDF) + goto yy707; + goto yy708; + } + } else { + if (yych <= 0xEF) { + if (yych == 0xED) + goto yy710; + goto yy709; + } else { + if (yych <= 0xF0) + goto yy711; + if (yych <= 0xF3) + goto yy712; + if (yych <= 0xF4) + goto yy713; + } + } + yy702: + p = marker; + if (yyaccept <= 1) { + if (yyaccept == 0) { + goto yy696; + } else { + goto yy704; + } + } else { + if (yyaccept == 2) { + goto yy717; + } else { + goto yy730; + } + } + yy703: + ++p; + yy704 : { return (bufsize_t)(p - start); } + yy705: + ++p; + yych = *p; + if (yybm[0 + yych] & 16) { + goto yy700; + } + if (yych <= 0xE0) { + if (yych <= '\\') { + if (yych <= 0x00) + goto yy702; + if (yych <= '"') + goto yy740; + goto yy705; + } else { + if (yych <= 0xC1) + goto yy702; + if (yych >= 0xE0) + goto yy708; + } + } else { + if (yych <= 0xEF) { + if (yych == 0xED) + goto yy710; + goto yy709; + } else { + if (yych <= 0xF0) + goto yy711; + if (yych <= 0xF3) + goto yy712; + if (yych <= 0xF4) + goto yy713; + goto yy702; + } + } + yy707: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy702; + if (yych <= 0xBF) + goto yy700; + goto yy702; + yy708: + ++p; + yych = *p; + if (yych <= 0x9F) + goto yy702; + if (yych <= 0xBF) + goto yy707; + goto yy702; + yy709: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy702; + if (yych <= 0xBF) + goto yy707; + goto yy702; + yy710: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy702; + if (yych <= 0x9F) + goto yy707; + goto yy702; + yy711: + ++p; + yych = *p; + if (yych <= 0x8F) + goto yy702; + if (yych <= 0xBF) + goto yy709; + goto yy702; + yy712: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy702; + if (yych <= 0xBF) + goto yy709; + goto yy702; + yy713: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy702; + if (yych <= 0x8F) + goto yy709; + goto yy702; + yy714: + ++p; + yych = *p; + yy715: + if (yybm[0 + yych] & 64) { + goto yy714; + } + if (yych <= 0xE0) { + if (yych <= '\\') { + if (yych <= 0x00) + goto yy702; + if (yych >= '(') + goto yy718; + } else { + if (yych <= 0xC1) + goto yy702; + if (yych <= 0xDF) + goto yy720; + goto yy721; + } + } else { + if (yych <= 0xEF) { + if (yych == 0xED) + goto yy723; + goto yy722; + } else { + if (yych <= 0xF0) + goto yy724; + if (yych <= 0xF3) + goto yy725; + if (yych <= 0xF4) + goto yy726; + goto yy702; + } + } + yy716: + ++p; + yy717 : { return (bufsize_t)(p - start); } + yy718: + ++p; + yych = *p; + if (yybm[0 + yych] & 64) { + goto yy714; + } + if (yych <= 0xE0) { + if (yych <= '\\') { + if (yych <= 0x00) + goto yy702; + if (yych <= '\'') + goto yy741; + goto yy718; + } else { + if (yych <= 0xC1) + goto yy702; + if (yych >= 0xE0) + goto yy721; + } + } else { + if (yych <= 0xEF) { + if (yych == 0xED) + goto yy723; + goto yy722; + } else { + if (yych <= 0xF0) + goto yy724; + if (yych <= 0xF3) + goto yy725; + if (yych <= 0xF4) + goto yy726; + goto yy702; + } + } + yy720: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy702; + if (yych <= 0xBF) + goto yy714; + goto yy702; + yy721: + ++p; + yych = *p; + if (yych <= 0x9F) + goto yy702; + if (yych <= 0xBF) + goto yy720; + goto yy702; + yy722: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy702; + if (yych <= 0xBF) + goto yy720; + goto yy702; + yy723: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy702; + if (yych <= 0x9F) + goto yy720; + goto yy702; + yy724: + ++p; + yych = *p; + if (yych <= 0x8F) + goto yy702; + if (yych <= 0xBF) + goto yy722; + goto yy702; + yy725: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy702; + if (yych <= 0xBF) + goto yy722; + goto yy702; + yy726: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy702; + if (yych <= 0x8F) + goto yy722; + goto yy702; + yy727: + ++p; + yych = *p; + yy728: + if (yybm[0 + yych] & 128) { + goto yy727; + } + if (yych <= 0xE0) { + if (yych <= '\\') { + if (yych <= '(') + goto yy702; + if (yych >= '*') + goto yy731; + } else { + if (yych <= 0xC1) + goto yy702; + if (yych <= 0xDF) + goto yy733; + goto yy734; + } + } else { + if (yych <= 0xEF) { + if (yych == 0xED) + goto yy736; + goto yy735; + } else { + if (yych <= 0xF0) + goto yy737; + if (yych <= 0xF3) + goto yy738; + if (yych <= 0xF4) + goto yy739; + goto yy702; + } + } + yy729: + ++p; + yy730 : { return (bufsize_t)(p - start); } + yy731: + ++p; + yych = *p; + if (yych <= 0xDF) { + if (yych <= '[') { + if (yych <= 0x00) + goto yy702; + if (yych == ')') + goto yy742; + goto yy727; + } else { + if (yych <= '\\') + goto yy731; + if (yych <= 0x7F) + goto yy727; + if (yych <= 0xC1) + goto yy702; + } + } else { + if (yych <= 0xEF) { + if (yych <= 0xE0) + goto yy734; + if (yych == 0xED) + goto yy736; + goto yy735; + } else { + if (yych <= 0xF0) + goto yy737; + if (yych <= 0xF3) + goto yy738; + if (yych <= 0xF4) + goto yy739; + goto yy702; + } + } + yy733: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy702; + if (yych <= 0xBF) + goto yy727; + goto yy702; + yy734: + ++p; + yych = *p; + if (yych <= 0x9F) + goto yy702; + if (yych <= 0xBF) + goto yy733; + goto yy702; + yy735: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy702; + if (yych <= 0xBF) + goto yy733; + goto yy702; + yy736: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy702; + if (yych <= 0x9F) + goto yy733; + goto yy702; + yy737: + ++p; + yych = *p; + if (yych <= 0x8F) + goto yy702; + if (yych <= 0xBF) + goto yy735; + goto yy702; + yy738: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy702; + if (yych <= 0xBF) + goto yy735; + goto yy702; + yy739: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy702; + if (yych <= 0x8F) + goto yy735; + goto yy702; + yy740: + yyaccept = 1; + marker = ++p; + yych = *p; + if (yybm[0 + yych] & 16) { + goto yy700; + } + if (yych <= 0xE0) { + if (yych <= '\\') { + if (yych <= 0x00) + goto yy704; + if (yych <= '"') + goto yy703; + goto yy705; + } else { + if (yych <= 0xC1) + goto yy704; + if (yych <= 0xDF) + goto yy707; + goto yy708; + } + } else { + if (yych <= 0xEF) { + if (yych == 0xED) + goto yy710; + goto yy709; + } else { + if (yych <= 0xF0) + goto yy711; + if (yych <= 0xF3) + goto yy712; + if (yych <= 0xF4) + goto yy713; + goto yy704; + } + } + yy741: + yyaccept = 2; + marker = ++p; + yych = *p; + if (yybm[0 + yych] & 64) { + goto yy714; + } + if (yych <= 0xE0) { + if (yych <= '\\') { + if (yych <= 0x00) + goto yy717; + if (yych <= '\'') + goto yy716; + goto yy718; + } else { + if (yych <= 0xC1) + goto yy717; + if (yych <= 0xDF) + goto yy720; + goto yy721; + } + } else { + if (yych <= 0xEF) { + if (yych == 0xED) + goto yy723; + goto yy722; + } else { + if (yych <= 0xF0) + goto yy724; + if (yych <= 0xF3) + goto yy725; + if (yych <= 0xF4) + goto yy726; + goto yy717; + } + } + yy742: + yyaccept = 3; + marker = ++p; + yych = *p; + if (yybm[0 + yych] & 128) { + goto yy727; + } + if (yych <= 0xE0) { + if (yych <= '\\') { + if (yych <= '(') + goto yy730; + if (yych <= ')') + goto yy729; + goto yy731; + } else { + if (yych <= 0xC1) + goto yy730; + if (yych <= 0xDF) + goto yy733; + goto yy734; + } + } else { + if (yych <= 0xEF) { + if (yych == 0xED) + goto yy736; + goto yy735; + } else { + if (yych <= 0xF0) + goto yy737; + if (yych <= 0xF3) + goto yy738; + if (yych <= 0xF4) + goto yy739; + goto yy730; + } + } + } +} + +// Match space characters, including newlines. +bufsize_t _scan_spacechars(const unsigned char *p) { + const unsigned char *start = p; + + { + unsigned char yych; + static const unsigned char yybm[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 128, 128, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }; + yych = *p; + if (yybm[0 + yych] & 128) { + goto yy747; + } + ++p; + { return 0; } + yy747: + ++p; + yych = *p; + if (yybm[0 + yych] & 128) { + goto yy747; + } + { return (bufsize_t)(p - start); } + } +} + +// Match ATX heading start. +bufsize_t _scan_atx_heading_start(const unsigned char *p) { + const unsigned char *marker = NULL; + const unsigned char *start = p; + + { + unsigned char yych; + static const unsigned char yybm[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }; + yych = *p; + if (yych == '#') + goto yy754; + ++p; + yy753 : { return 0; } + yy754: + yych = *(marker = ++p); + if (yybm[0 + yych] & 128) { + goto yy755; + } + if (yych <= '\f') { + if (yych <= 0x08) + goto yy753; + if (yych <= '\n') + goto yy758; + goto yy753; + } else { + if (yych <= '\r') + goto yy758; + if (yych == '#') + goto yy759; + goto yy753; + } + yy755: + ++p; + yych = *p; + if (yybm[0 + yych] & 128) { + goto yy755; + } + yy757 : { return (bufsize_t)(p - start); } + yy758: + yych = *++p; + goto yy757; + yy759: + yych = *++p; + if (yybm[0 + yych] & 128) { + goto yy755; + } + if (yych <= '\f') { + if (yych <= 0x08) + goto yy760; + if (yych <= '\n') + goto yy758; + } else { + if (yych <= '\r') + goto yy758; + if (yych == '#') + goto yy761; + } + yy760: + p = marker; + goto yy753; + yy761: + yych = *++p; + if (yybm[0 + yych] & 128) { + goto yy755; + } + if (yych <= '\f') { + if (yych <= 0x08) + goto yy760; + if (yych <= '\n') + goto yy758; + goto yy760; + } else { + if (yych <= '\r') + goto yy758; + if (yych != '#') + goto yy760; + } + yych = *++p; + if (yybm[0 + yych] & 128) { + goto yy755; + } + if (yych <= '\f') { + if (yych <= 0x08) + goto yy760; + if (yych <= '\n') + goto yy758; + goto yy760; + } else { + if (yych <= '\r') + goto yy758; + if (yych != '#') + goto yy760; + } + yych = *++p; + if (yybm[0 + yych] & 128) { + goto yy755; + } + if (yych <= '\f') { + if (yych <= 0x08) + goto yy760; + if (yych <= '\n') + goto yy758; + goto yy760; + } else { + if (yych <= '\r') + goto yy758; + if (yych != '#') + goto yy760; + } + ++p; + if (yybm[0 + (yych = *p)] & 128) { + goto yy755; + } + if (yych <= 0x08) + goto yy760; + if (yych <= '\n') + goto yy758; + if (yych == '\r') + goto yy758; + goto yy760; + } +} + +// Match setext heading line. Return 1 for level-1 heading, +// 2 for level-2, 0 for no match. +bufsize_t _scan_setext_heading_line(const unsigned char *p) { + const unsigned char *marker = NULL; + + { + unsigned char yych; + static const unsigned char yybm[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }; + yych = *p; + if (yych == '-') + goto yy769; + if (yych == '=') + goto yy770; + ++p; + yy768 : { return 0; } + yy769: + yych = *(marker = ++p); + if (yybm[0 + yych] & 64) { + goto yy776; + } + if (yych <= '\f') { + if (yych <= 0x08) + goto yy768; + if (yych <= '\n') + goto yy772; + goto yy768; + } else { + if (yych <= '\r') + goto yy772; + if (yych == ' ') + goto yy772; + goto yy768; + } + yy770: + yych = *(marker = ++p); + if (yybm[0 + yych] & 128) { + goto yy782; + } + if (yych <= '\f') { + if (yych <= 0x08) + goto yy768; + if (yych <= '\n') + goto yy779; + goto yy768; + } else { + if (yych <= '\r') + goto yy779; + if (yych == ' ') + goto yy779; + goto yy768; + } + yy771: + ++p; + yych = *p; + yy772: + if (yybm[0 + yych] & 32) { + goto yy771; + } + if (yych <= 0x08) + goto yy773; + if (yych <= '\n') + goto yy774; + if (yych == '\r') + goto yy774; + yy773: + p = marker; + goto yy768; + yy774: + ++p; + { return 2; } + yy776: + ++p; + yych = *p; + if (yybm[0 + yych] & 32) { + goto yy771; + } + if (yych <= '\f') { + if (yych <= 0x08) + goto yy773; + if (yych <= '\n') + goto yy774; + goto yy773; + } else { + if (yych <= '\r') + goto yy774; + if (yych == '-') + goto yy776; + goto yy773; + } + yy778: + ++p; + yych = *p; + yy779: + if (yych <= '\f') { + if (yych <= 0x08) + goto yy773; + if (yych <= '\t') + goto yy778; + if (yych >= '\v') + goto yy773; + } else { + if (yych <= '\r') + goto yy780; + if (yych == ' ') + goto yy778; + goto yy773; + } + yy780: + ++p; + { return 1; } + yy782: + ++p; + yych = *p; + if (yybm[0 + yych] & 128) { + goto yy782; + } + if (yych <= '\f') { + if (yych <= 0x08) + goto yy773; + if (yych <= '\t') + goto yy778; + if (yych <= '\n') + goto yy780; + goto yy773; + } else { + if (yych <= '\r') + goto yy780; + if (yych == ' ') + goto yy778; + goto yy773; + } + } +} + +// Scan an opening code fence. +bufsize_t _scan_open_code_fence(const unsigned char *p) { + const unsigned char *marker = NULL; + const unsigned char *start = p; + + { + unsigned char yych; + static const unsigned char yybm[] = { + 0, 192, 192, 192, 192, 192, 192, 192, 192, 192, 0, 192, 192, 0, + 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 144, 192, + 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, + 224, 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, + }; + yych = *p; + if (yych == '`') + goto yy788; + if (yych == '~') + goto yy789; + ++p; + yy787 : { return 0; } + yy788: + yych = *(marker = ++p); + if (yych == '`') + goto yy790; + goto yy787; + yy789: + yych = *(marker = ++p); + if (yych == '~') + goto yy792; + goto yy787; + yy790: + yych = *++p; + if (yybm[0 + yych] & 16) { + goto yy793; + } + yy791: + p = marker; + goto yy787; + yy792: + yych = *++p; + if (yybm[0 + yych] & 32) { + goto yy795; + } + goto yy791; + yy793: + ++p; + yych = *p; + marker = p; + if (yybm[0 + yych] & 64) { + goto yy797; + } + if (yych <= 0xE0) { + if (yych <= '`') { + if (yych <= 0x00) + goto yy791; + if (yych <= '\r') + goto yy799; + goto yy793; + } else { + if (yych <= 0xC1) + goto yy791; + if (yych <= 0xDF) + goto yy801; + goto yy802; + } + } else { + if (yych <= 0xEF) { + if (yych == 0xED) + goto yy804; + goto yy803; + } else { + if (yych <= 0xF0) + goto yy805; + if (yych <= 0xF3) + goto yy806; + if (yych <= 0xF4) + goto yy807; + goto yy791; + } + } + yy795: + ++p; + yych = *p; + marker = p; + if (yybm[0 + yych] & 32) { + goto yy795; + } + if (yych <= 0xDF) { + if (yych <= '\f') { + if (yych <= 0x00) + goto yy791; + if (yych == '\n') + goto yy810; + goto yy808; + } else { + if (yych <= '\r') + goto yy810; + if (yych <= 0x7F) + goto yy808; + if (yych <= 0xC1) + goto yy791; + goto yy812; + } + } else { + if (yych <= 0xEF) { + if (yych <= 0xE0) + goto yy813; + if (yych == 0xED) + goto yy815; + goto yy814; + } else { + if (yych <= 0xF0) + goto yy816; + if (yych <= 0xF3) + goto yy817; + if (yych <= 0xF4) + goto yy818; + goto yy791; + } + } + yy797: + ++p; + yych = *p; + if (yybm[0 + yych] & 64) { + goto yy797; + } + if (yych <= 0xEC) { + if (yych <= 0xC1) { + if (yych <= 0x00) + goto yy791; + if (yych >= 0x0E) + goto yy791; + } else { + if (yych <= 0xDF) + goto yy801; + if (yych <= 0xE0) + goto yy802; + goto yy803; + } + } else { + if (yych <= 0xF0) { + if (yych <= 0xED) + goto yy804; + if (yych <= 0xEF) + goto yy803; + goto yy805; + } else { + if (yych <= 0xF3) + goto yy806; + if (yych <= 0xF4) + goto yy807; + goto yy791; + } + } + yy799: + ++p; + p = marker; + { return (bufsize_t)(p - start); } + yy801: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy791; + if (yych <= 0xBF) + goto yy797; + goto yy791; + yy802: + ++p; + yych = *p; + if (yych <= 0x9F) + goto yy791; + if (yych <= 0xBF) + goto yy801; + goto yy791; + yy803: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy791; + if (yych <= 0xBF) + goto yy801; + goto yy791; + yy804: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy791; + if (yych <= 0x9F) + goto yy801; + goto yy791; + yy805: + ++p; + yych = *p; + if (yych <= 0x8F) + goto yy791; + if (yych <= 0xBF) + goto yy803; + goto yy791; + yy806: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy791; + if (yych <= 0xBF) + goto yy803; + goto yy791; + yy807: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy791; + if (yych <= 0x8F) + goto yy803; + goto yy791; + yy808: + ++p; + yych = *p; + if (yybm[0 + yych] & 128) { + goto yy808; + } + if (yych <= 0xEC) { + if (yych <= 0xC1) { + if (yych <= 0x00) + goto yy791; + if (yych >= 0x0E) + goto yy791; + } else { + if (yych <= 0xDF) + goto yy812; + if (yych <= 0xE0) + goto yy813; + goto yy814; + } + } else { + if (yych <= 0xF0) { + if (yych <= 0xED) + goto yy815; + if (yych <= 0xEF) + goto yy814; + goto yy816; + } else { + if (yych <= 0xF3) + goto yy817; + if (yych <= 0xF4) + goto yy818; + goto yy791; + } + } + yy810: + ++p; + p = marker; + { return (bufsize_t)(p - start); } + yy812: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy791; + if (yych <= 0xBF) + goto yy808; + goto yy791; + yy813: + ++p; + yych = *p; + if (yych <= 0x9F) + goto yy791; + if (yych <= 0xBF) + goto yy812; + goto yy791; + yy814: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy791; + if (yych <= 0xBF) + goto yy812; + goto yy791; + yy815: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy791; + if (yych <= 0x9F) + goto yy812; + goto yy791; + yy816: + ++p; + yych = *p; + if (yych <= 0x8F) + goto yy791; + if (yych <= 0xBF) + goto yy814; + goto yy791; + yy817: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy791; + if (yych <= 0xBF) + goto yy814; + goto yy791; + yy818: + ++p; + yych = *p; + if (yych <= 0x7F) + goto yy791; + if (yych <= 0x8F) + goto yy814; + goto yy791; + } +} + +// Scan a closing code fence with length at least len. +bufsize_t _scan_close_code_fence(const unsigned char *p) { + const unsigned char *marker = NULL; + const unsigned char *start = p; + + { + unsigned char yych; + static const unsigned char yybm[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + }; + yych = *p; + if (yych == '`') + goto yy823; + if (yych == '~') + goto yy824; + ++p; + yy822 : { return 0; } + yy823: + yych = *(marker = ++p); + if (yych == '`') + goto yy825; + goto yy822; + yy824: + yych = *(marker = ++p); + if (yych == '~') + goto yy827; + goto yy822; + yy825: + yych = *++p; + if (yybm[0 + yych] & 32) { + goto yy828; + } + yy826: + p = marker; + goto yy822; + yy827: + yych = *++p; + if (yybm[0 + yych] & 64) { + goto yy830; + } + goto yy826; + yy828: + ++p; + yych = *p; + marker = p; + if (yybm[0 + yych] & 128) { + goto yy832; + } + if (yych <= '\f') { + if (yych <= 0x08) + goto yy826; + if (yych <= '\n') + goto yy834; + goto yy826; + } else { + if (yych <= '\r') + goto yy834; + if (yych == '`') + goto yy828; + goto yy826; + } + yy830: + ++p; + yych = *p; + marker = p; + if (yybm[0 + yych] & 64) { + goto yy830; + } + if (yych <= '\f') { + if (yych <= 0x08) + goto yy826; + if (yych <= '\t') + goto yy836; + if (yych <= '\n') + goto yy838; + goto yy826; + } else { + if (yych <= '\r') + goto yy838; + if (yych == ' ') + goto yy836; + goto yy826; + } + yy832: + ++p; + yych = *p; + if (yybm[0 + yych] & 128) { + goto yy832; + } + if (yych <= 0x08) + goto yy826; + if (yych <= '\n') + goto yy834; + if (yych != '\r') + goto yy826; + yy834: + ++p; + p = marker; + { return (bufsize_t)(p - start); } + yy836: + ++p; + yych = *p; + if (yych <= '\f') { + if (yych <= 0x08) + goto yy826; + if (yych <= '\t') + goto yy836; + if (yych >= '\v') + goto yy826; + } else { + if (yych <= '\r') + goto yy838; + if (yych == ' ') + goto yy836; + goto yy826; + } + yy838: + ++p; + p = marker; + { return (bufsize_t)(p - start); } + } +} + +// Scans an entity. +// Returns number of chars matched. +bufsize_t _scan_entity(const unsigned char *p) { + const unsigned char *marker = NULL; + const unsigned char *start = p; + + { + unsigned char yych; + yych = *p; + if (yych == '&') + goto yy844; + ++p; + yy843 : { return 0; } + yy844: + yych = *(marker = ++p); + if (yych <= '@') { + if (yych != '#') + goto yy843; + } else { + if (yych <= 'Z') + goto yy847; + if (yych <= '`') + goto yy843; + if (yych <= 'z') + goto yy847; + goto yy843; + } + yych = *++p; + if (yych <= 'W') { + if (yych <= '/') + goto yy846; + if (yych <= '9') + goto yy848; + } else { + if (yych <= 'X') + goto yy849; + if (yych == 'x') + goto yy849; + } + yy846: + p = marker; + goto yy843; + yy847: + yych = *++p; + if (yych <= '@') { + if (yych <= '/') + goto yy846; + if (yych <= '9') + goto yy850; + goto yy846; + } else { + if (yych <= 'Z') + goto yy850; + if (yych <= '`') + goto yy846; + if (yych <= 'z') + goto yy850; + goto yy846; + } + yy848: + yych = *++p; + if (yych <= '/') + goto yy846; + if (yych <= '9') + goto yy851; + if (yych == ';') + goto yy852; + goto yy846; + yy849: + yych = *++p; + if (yych <= '@') { + if (yych <= '/') + goto yy846; + if (yych <= '9') + goto yy854; + goto yy846; + } else { + if (yych <= 'F') + goto yy854; + if (yych <= '`') + goto yy846; + if (yych <= 'f') + goto yy854; + goto yy846; + } + yy850: + yych = *++p; + if (yych <= ';') { + if (yych <= '/') + goto yy846; + if (yych <= '9') + goto yy855; + if (yych <= ':') + goto yy846; + goto yy852; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy846; + goto yy855; + } else { + if (yych <= '`') + goto yy846; + if (yych <= 'z') + goto yy855; + goto yy846; + } + } + yy851: + yych = *++p; + if (yych <= '/') + goto yy846; + if (yych <= '9') + goto yy856; + if (yych != ';') + goto yy846; + yy852: + ++p; + { return (bufsize_t)(p - start); } + yy854: + yych = *++p; + if (yych <= ';') { + if (yych <= '/') + goto yy846; + if (yych <= '9') + goto yy857; + if (yych <= ':') + goto yy846; + goto yy852; + } else { + if (yych <= 'F') { + if (yych <= '@') + goto yy846; + goto yy857; + } else { + if (yych <= '`') + goto yy846; + if (yych <= 'f') + goto yy857; + goto yy846; + } + } + yy855: + yych = *++p; + if (yych <= ';') { + if (yych <= '/') + goto yy846; + if (yych <= '9') + goto yy858; + if (yych <= ':') + goto yy846; + goto yy852; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy846; + goto yy858; + } else { + if (yych <= '`') + goto yy846; + if (yych <= 'z') + goto yy858; + goto yy846; + } + } + yy856: + yych = *++p; + if (yych <= '/') + goto yy846; + if (yych <= '9') + goto yy859; + if (yych == ';') + goto yy852; + goto yy846; + yy857: + yych = *++p; + if (yych <= ';') { + if (yych <= '/') + goto yy846; + if (yych <= '9') + goto yy860; + if (yych <= ':') + goto yy846; + goto yy852; + } else { + if (yych <= 'F') { + if (yych <= '@') + goto yy846; + goto yy860; + } else { + if (yych <= '`') + goto yy846; + if (yych <= 'f') + goto yy860; + goto yy846; + } + } + yy858: + yych = *++p; + if (yych <= ';') { + if (yych <= '/') + goto yy846; + if (yych <= '9') + goto yy861; + if (yych <= ':') + goto yy846; + goto yy852; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy846; + goto yy861; + } else { + if (yych <= '`') + goto yy846; + if (yych <= 'z') + goto yy861; + goto yy846; + } + } + yy859: + yych = *++p; + if (yych <= '/') + goto yy846; + if (yych <= '9') + goto yy862; + if (yych == ';') + goto yy852; + goto yy846; + yy860: + yych = *++p; + if (yych <= ';') { + if (yych <= '/') + goto yy846; + if (yych <= '9') + goto yy863; + if (yych <= ':') + goto yy846; + goto yy852; + } else { + if (yych <= 'F') { + if (yych <= '@') + goto yy846; + goto yy863; + } else { + if (yych <= '`') + goto yy846; + if (yych <= 'f') + goto yy863; + goto yy846; + } + } + yy861: + yych = *++p; + if (yych <= ';') { + if (yych <= '/') + goto yy846; + if (yych <= '9') + goto yy864; + if (yych <= ':') + goto yy846; + goto yy852; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy846; + goto yy864; + } else { + if (yych <= '`') + goto yy846; + if (yych <= 'z') + goto yy864; + goto yy846; + } + } + yy862: + yych = *++p; + if (yych <= '/') + goto yy846; + if (yych <= '9') + goto yy865; + if (yych == ';') + goto yy852; + goto yy846; + yy863: + yych = *++p; + if (yych <= ';') { + if (yych <= '/') + goto yy846; + if (yych <= '9') + goto yy866; + if (yych <= ':') + goto yy846; + goto yy852; + } else { + if (yych <= 'F') { + if (yych <= '@') + goto yy846; + goto yy866; + } else { + if (yych <= '`') + goto yy846; + if (yych <= 'f') + goto yy866; + goto yy846; + } + } + yy864: + yych = *++p; + if (yych <= ';') { + if (yych <= '/') + goto yy846; + if (yych <= '9') + goto yy867; + if (yych <= ':') + goto yy846; + goto yy852; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy846; + goto yy867; + } else { + if (yych <= '`') + goto yy846; + if (yych <= 'z') + goto yy867; + goto yy846; + } + } + yy865: + yych = *++p; + if (yych <= '/') + goto yy846; + if (yych <= '9') + goto yy868; + if (yych == ';') + goto yy852; + goto yy846; + yy866: + yych = *++p; + if (yych <= ';') { + if (yych <= '/') + goto yy846; + if (yych <= '9') + goto yy868; + if (yych <= ':') + goto yy846; + goto yy852; + } else { + if (yych <= 'F') { + if (yych <= '@') + goto yy846; + goto yy868; + } else { + if (yych <= '`') + goto yy846; + if (yych <= 'f') + goto yy868; + goto yy846; + } + } + yy867: + yych = *++p; + if (yych <= ';') { + if (yych <= '/') + goto yy846; + if (yych <= '9') + goto yy869; + if (yych <= ':') + goto yy846; + goto yy852; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy846; + goto yy869; + } else { + if (yych <= '`') + goto yy846; + if (yych <= 'z') + goto yy869; + goto yy846; + } + } + yy868: + yych = *++p; + if (yych == ';') + goto yy852; + goto yy846; + yy869: + yych = *++p; + if (yych <= ';') { + if (yych <= '/') + goto yy846; + if (yych <= '9') + goto yy870; + if (yych <= ':') + goto yy846; + goto yy852; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy846; + } else { + if (yych <= '`') + goto yy846; + if (yych >= '{') + goto yy846; + } + } + yy870: + yych = *++p; + if (yych <= ';') { + if (yych <= '/') + goto yy846; + if (yych <= '9') + goto yy871; + if (yych <= ':') + goto yy846; + goto yy852; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy846; + } else { + if (yych <= '`') + goto yy846; + if (yych >= '{') + goto yy846; + } + } + yy871: + yych = *++p; + if (yych <= ';') { + if (yych <= '/') + goto yy846; + if (yych <= '9') + goto yy872; + if (yych <= ':') + goto yy846; + goto yy852; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy846; + } else { + if (yych <= '`') + goto yy846; + if (yych >= '{') + goto yy846; + } + } + yy872: + yych = *++p; + if (yych <= ';') { + if (yych <= '/') + goto yy846; + if (yych <= '9') + goto yy873; + if (yych <= ':') + goto yy846; + goto yy852; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy846; + } else { + if (yych <= '`') + goto yy846; + if (yych >= '{') + goto yy846; + } + } + yy873: + yych = *++p; + if (yych <= ';') { + if (yych <= '/') + goto yy846; + if (yych <= '9') + goto yy874; + if (yych <= ':') + goto yy846; + goto yy852; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy846; + } else { + if (yych <= '`') + goto yy846; + if (yych >= '{') + goto yy846; + } + } + yy874: + yych = *++p; + if (yych <= ';') { + if (yych <= '/') + goto yy846; + if (yych <= '9') + goto yy875; + if (yych <= ':') + goto yy846; + goto yy852; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy846; + } else { + if (yych <= '`') + goto yy846; + if (yych >= '{') + goto yy846; + } + } + yy875: + yych = *++p; + if (yych <= ';') { + if (yych <= '/') + goto yy846; + if (yych <= '9') + goto yy876; + if (yych <= ':') + goto yy846; + goto yy852; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy846; + } else { + if (yych <= '`') + goto yy846; + if (yych >= '{') + goto yy846; + } + } + yy876: + yych = *++p; + if (yych <= ';') { + if (yych <= '/') + goto yy846; + if (yych <= '9') + goto yy877; + if (yych <= ':') + goto yy846; + goto yy852; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy846; + } else { + if (yych <= '`') + goto yy846; + if (yych >= '{') + goto yy846; + } + } + yy877: + yych = *++p; + if (yych <= ';') { + if (yych <= '/') + goto yy846; + if (yych <= '9') + goto yy878; + if (yych <= ':') + goto yy846; + goto yy852; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy846; + } else { + if (yych <= '`') + goto yy846; + if (yych >= '{') + goto yy846; + } + } + yy878: + yych = *++p; + if (yych <= ';') { + if (yych <= '/') + goto yy846; + if (yych <= '9') + goto yy879; + if (yych <= ':') + goto yy846; + goto yy852; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy846; + } else { + if (yych <= '`') + goto yy846; + if (yych >= '{') + goto yy846; + } + } + yy879: + yych = *++p; + if (yych <= ';') { + if (yych <= '/') + goto yy846; + if (yych <= '9') + goto yy880; + if (yych <= ':') + goto yy846; + goto yy852; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy846; + } else { + if (yych <= '`') + goto yy846; + if (yych >= '{') + goto yy846; + } + } + yy880: + yych = *++p; + if (yych <= ';') { + if (yych <= '/') + goto yy846; + if (yych <= '9') + goto yy881; + if (yych <= ':') + goto yy846; + goto yy852; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy846; + } else { + if (yych <= '`') + goto yy846; + if (yych >= '{') + goto yy846; + } + } + yy881: + yych = *++p; + if (yych <= ';') { + if (yych <= '/') + goto yy846; + if (yych <= '9') + goto yy882; + if (yych <= ':') + goto yy846; + goto yy852; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy846; + } else { + if (yych <= '`') + goto yy846; + if (yych >= '{') + goto yy846; + } + } + yy882: + yych = *++p; + if (yych <= ';') { + if (yych <= '/') + goto yy846; + if (yych <= '9') + goto yy883; + if (yych <= ':') + goto yy846; + goto yy852; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy846; + } else { + if (yych <= '`') + goto yy846; + if (yych >= '{') + goto yy846; + } + } + yy883: + yych = *++p; + if (yych <= ';') { + if (yych <= '/') + goto yy846; + if (yych <= '9') + goto yy884; + if (yych <= ':') + goto yy846; + goto yy852; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy846; + } else { + if (yych <= '`') + goto yy846; + if (yych >= '{') + goto yy846; + } + } + yy884: + yych = *++p; + if (yych <= ';') { + if (yych <= '/') + goto yy846; + if (yych <= '9') + goto yy885; + if (yych <= ':') + goto yy846; + goto yy852; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy846; + } else { + if (yych <= '`') + goto yy846; + if (yych >= '{') + goto yy846; + } + } + yy885: + yych = *++p; + if (yych <= ';') { + if (yych <= '/') + goto yy846; + if (yych <= '9') + goto yy886; + if (yych <= ':') + goto yy846; + goto yy852; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy846; + } else { + if (yych <= '`') + goto yy846; + if (yych >= '{') + goto yy846; + } + } + yy886: + yych = *++p; + if (yych <= ';') { + if (yych <= '/') + goto yy846; + if (yych <= '9') + goto yy887; + if (yych <= ':') + goto yy846; + goto yy852; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy846; + } else { + if (yych <= '`') + goto yy846; + if (yych >= '{') + goto yy846; + } + } + yy887: + yych = *++p; + if (yych <= ';') { + if (yych <= '/') + goto yy846; + if (yych <= '9') + goto yy888; + if (yych <= ':') + goto yy846; + goto yy852; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy846; + } else { + if (yych <= '`') + goto yy846; + if (yych >= '{') + goto yy846; + } + } + yy888: + yych = *++p; + if (yych <= ';') { + if (yych <= '/') + goto yy846; + if (yych <= '9') + goto yy889; + if (yych <= ':') + goto yy846; + goto yy852; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy846; + } else { + if (yych <= '`') + goto yy846; + if (yych >= '{') + goto yy846; + } + } + yy889: + yych = *++p; + if (yych <= ';') { + if (yych <= '/') + goto yy846; + if (yych <= '9') + goto yy890; + if (yych <= ':') + goto yy846; + goto yy852; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy846; + } else { + if (yych <= '`') + goto yy846; + if (yych >= '{') + goto yy846; + } + } + yy890: + yych = *++p; + if (yych <= ';') { + if (yych <= '/') + goto yy846; + if (yych <= '9') + goto yy891; + if (yych <= ':') + goto yy846; + goto yy852; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy846; + } else { + if (yych <= '`') + goto yy846; + if (yych >= '{') + goto yy846; + } + } + yy891: + yych = *++p; + if (yych <= ';') { + if (yych <= '/') + goto yy846; + if (yych <= '9') + goto yy892; + if (yych <= ':') + goto yy846; + goto yy852; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy846; + } else { + if (yych <= '`') + goto yy846; + if (yych >= '{') + goto yy846; + } + } + yy892: + ++p; + if ((yych = *p) <= ';') { + if (yych <= '/') + goto yy846; + if (yych <= '9') + goto yy868; + if (yych <= ':') + goto yy846; + goto yy852; + } else { + if (yych <= 'Z') { + if (yych <= '@') + goto yy846; + goto yy868; + } else { + if (yych <= '`') + goto yy846; + if (yych <= 'z') + goto yy868; + goto yy846; + } + } + } +} + +// Returns positive value if a URL begins in a way that is potentially +// dangerous, with javascript:, vbscript:, file:, or data:, otherwise 0. +bufsize_t _scan_dangerous_url(const unsigned char *p) { + const unsigned char *marker = NULL; + const unsigned char *start = p; + + { + unsigned char yych; + unsigned int yyaccept = 0; + yych = *p; + if (yych <= 'V') { + if (yych <= 'F') { + if (yych == 'D') + goto yy897; + if (yych >= 'F') + goto yy898; + } else { + if (yych == 'J') + goto yy899; + if (yych >= 'V') + goto yy900; + } + } else { + if (yych <= 'f') { + if (yych == 'd') + goto yy897; + if (yych >= 'f') + goto yy898; + } else { + if (yych <= 'j') { + if (yych >= 'j') + goto yy899; + } else { + if (yych == 'v') + goto yy900; + } + } + } + ++p; + yy896 : { return 0; } + yy897: + yyaccept = 0; + yych = *(marker = ++p); + if (yych == 'A') + goto yy901; + if (yych == 'a') + goto yy901; + goto yy896; + yy898: + yyaccept = 0; + yych = *(marker = ++p); + if (yych == 'I') + goto yy903; + if (yych == 'i') + goto yy903; + goto yy896; + yy899: + yyaccept = 0; + yych = *(marker = ++p); + if (yych == 'A') + goto yy904; + if (yych == 'a') + goto yy904; + goto yy896; + yy900: + yyaccept = 0; + yych = *(marker = ++p); + if (yych == 'B') + goto yy905; + if (yych == 'b') + goto yy905; + goto yy896; + yy901: + yych = *++p; + if (yych == 'T') + goto yy906; + if (yych == 't') + goto yy906; + yy902: + p = marker; + if (yyaccept == 0) { + goto yy896; + } else { + goto yy914; + } + yy903: + yych = *++p; + if (yych == 'L') + goto yy907; + if (yych == 'l') + goto yy907; + goto yy902; + yy904: + yych = *++p; + if (yych == 'V') + goto yy908; + if (yych == 'v') + goto yy908; + goto yy902; + yy905: + yych = *++p; + if (yych == 'S') + goto yy909; + if (yych == 's') + goto yy909; + goto yy902; + yy906: + yych = *++p; + if (yych == 'A') + goto yy910; + if (yych == 'a') + goto yy910; + goto yy902; + yy907: + yych = *++p; + if (yych == 'E') + goto yy911; + if (yych == 'e') + goto yy911; + goto yy902; + yy908: + yych = *++p; + if (yych == 'A') + goto yy905; + if (yych == 'a') + goto yy905; + goto yy902; + yy909: + yych = *++p; + if (yych == 'C') + goto yy912; + if (yych == 'c') + goto yy912; + goto yy902; + yy910: + yych = *++p; + if (yych == ':') + goto yy913; + goto yy902; + yy911: + yych = *++p; + if (yych == ':') + goto yy915; + goto yy902; + yy912: + yych = *++p; + if (yych == 'R') + goto yy916; + if (yych == 'r') + goto yy916; + goto yy902; + yy913: + yyaccept = 1; + yych = *(marker = ++p); + if (yych == 'I') + goto yy917; + if (yych == 'i') + goto yy917; + yy914 : { return (bufsize_t)(p - start); } + yy915: + yych = *++p; + goto yy914; + yy916: + yych = *++p; + if (yych == 'I') + goto yy918; + if (yych == 'i') + goto yy918; + goto yy902; + yy917: + yych = *++p; + if (yych == 'M') + goto yy919; + if (yych == 'm') + goto yy919; + goto yy902; + yy918: + yych = *++p; + if (yych == 'P') + goto yy920; + if (yych == 'p') + goto yy920; + goto yy902; + yy919: + yych = *++p; + if (yych == 'A') + goto yy921; + if (yych == 'a') + goto yy921; + goto yy902; + yy920: + yych = *++p; + if (yych == 'T') + goto yy911; + if (yych == 't') + goto yy911; + goto yy902; + yy921: + yych = *++p; + if (yych == 'G') + goto yy922; + if (yych != 'g') + goto yy902; + yy922: + yych = *++p; + if (yych == 'E') + goto yy923; + if (yych != 'e') + goto yy902; + yy923: + yych = *++p; + if (yych != '/') + goto yy902; + yych = *++p; + if (yych <= 'W') { + if (yych <= 'J') { + if (yych == 'G') + goto yy925; + if (yych <= 'I') + goto yy902; + goto yy926; + } else { + if (yych == 'P') + goto yy927; + if (yych <= 'V') + goto yy902; + goto yy928; + } + } else { + if (yych <= 'j') { + if (yych == 'g') + goto yy925; + if (yych <= 'i') + goto yy902; + goto yy926; + } else { + if (yych <= 'p') { + if (yych <= 'o') + goto yy902; + goto yy927; + } else { + if (yych == 'w') + goto yy928; + goto yy902; + } + } + } + yy925: + yych = *++p; + if (yych == 'I') + goto yy929; + if (yych == 'i') + goto yy929; + goto yy902; + yy926: + yych = *++p; + if (yych == 'P') + goto yy930; + if (yych == 'p') + goto yy930; + goto yy902; + yy927: + yych = *++p; + if (yych == 'N') + goto yy931; + if (yych == 'n') + goto yy931; + goto yy902; + yy928: + yych = *++p; + if (yych == 'E') + goto yy932; + if (yych == 'e') + goto yy932; + goto yy902; + yy929: + yych = *++p; + if (yych == 'F') + goto yy933; + if (yych == 'f') + goto yy933; + goto yy902; + yy930: + yych = *++p; + if (yych == 'E') + goto yy931; + if (yych != 'e') + goto yy902; + yy931: + yych = *++p; + if (yych == 'G') + goto yy933; + if (yych == 'g') + goto yy933; + goto yy902; + yy932: + yych = *++p; + if (yych == 'B') + goto yy935; + if (yych == 'b') + goto yy935; + goto yy902; + yy933: + ++p; + { return 0; } + yy935: + ++p; + if ((yych = *p) == 'P') + goto yy933; + if (yych == 'p') + goto yy933; + goto yy902; + } +} diff --git a/Example/Pods/Down/Source/cmark/scanners.h b/Example/Pods/Down/Source/cmark/scanners.h new file mode 100755 index 000000000..bcb5fe8c3 --- /dev/null +++ b/Example/Pods/Down/Source/cmark/scanners.h @@ -0,0 +1,53 @@ +#include "cmark.h" +#include "chunk.h" + +#ifdef __cplusplus +extern "C" { +#endif + +bufsize_t _scan_at(bufsize_t (*scanner)(const unsigned char *), cmark_chunk *c, + bufsize_t offset); +bufsize_t _scan_scheme(const unsigned char *p); +bufsize_t _scan_autolink_uri(const unsigned char *p); +bufsize_t _scan_autolink_email(const unsigned char *p); +bufsize_t _scan_html_tag(const unsigned char *p); +bufsize_t _scan_html_block_start(const unsigned char *p); +bufsize_t _scan_html_block_start_7(const unsigned char *p); +bufsize_t _scan_html_block_end_1(const unsigned char *p); +bufsize_t _scan_html_block_end_2(const unsigned char *p); +bufsize_t _scan_html_block_end_3(const unsigned char *p); +bufsize_t _scan_html_block_end_4(const unsigned char *p); +bufsize_t _scan_html_block_end_5(const unsigned char *p); +bufsize_t _scan_link_title(const unsigned char *p); +bufsize_t _scan_spacechars(const unsigned char *p); +bufsize_t _scan_atx_heading_start(const unsigned char *p); +bufsize_t _scan_setext_heading_line(const unsigned char *p); +bufsize_t _scan_open_code_fence(const unsigned char *p); +bufsize_t _scan_close_code_fence(const unsigned char *p); +bufsize_t _scan_entity(const unsigned char *p); +bufsize_t _scan_dangerous_url(const unsigned char *p); + +#define scan_scheme(c, n) _scan_at(&_scan_scheme, c, n) +#define scan_autolink_uri(c, n) _scan_at(&_scan_autolink_uri, c, n) +#define scan_autolink_email(c, n) _scan_at(&_scan_autolink_email, c, n) +#define scan_html_tag(c, n) _scan_at(&_scan_html_tag, c, n) +#define scan_html_block_start(c, n) _scan_at(&_scan_html_block_start, c, n) +#define scan_html_block_start_7(c, n) _scan_at(&_scan_html_block_start_7, c, n) +#define scan_html_block_end_1(c, n) _scan_at(&_scan_html_block_end_1, c, n) +#define scan_html_block_end_2(c, n) _scan_at(&_scan_html_block_end_2, c, n) +#define scan_html_block_end_3(c, n) _scan_at(&_scan_html_block_end_3, c, n) +#define scan_html_block_end_4(c, n) _scan_at(&_scan_html_block_end_4, c, n) +#define scan_html_block_end_5(c, n) _scan_at(&_scan_html_block_end_5, c, n) +#define scan_link_title(c, n) _scan_at(&_scan_link_title, c, n) +#define scan_spacechars(c, n) _scan_at(&_scan_spacechars, c, n) +#define scan_atx_heading_start(c, n) _scan_at(&_scan_atx_heading_start, c, n) +#define scan_setext_heading_line(c, n) \ + _scan_at(&_scan_setext_heading_line, c, n) +#define scan_open_code_fence(c, n) _scan_at(&_scan_open_code_fence, c, n) +#define scan_close_code_fence(c, n) _scan_at(&_scan_close_code_fence, c, n) +#define scan_entity(c, n) _scan_at(&_scan_entity, c, n) +#define scan_dangerous_url(c, n) _scan_at(&_scan_dangerous_url, c, n) + +#ifdef __cplusplus +} +#endif diff --git a/Example/Pods/Down/Source/cmark/utf8.c b/Example/Pods/Down/Source/cmark/utf8.c new file mode 100755 index 000000000..c29bbf770 --- /dev/null +++ b/Example/Pods/Down/Source/cmark/utf8.c @@ -0,0 +1,317 @@ +#include <stdlib.h> +#include <stdint.h> +#include <assert.h> + +#include "cmark_ctype.h" +#include "utf8.h" + +static const int8_t utf8proc_utf8class[256] = { + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0}; + +static void encode_unknown(cmark_strbuf *buf) { + static const uint8_t repl[] = {239, 191, 189}; + cmark_strbuf_put(buf, repl, 3); +} + +static int utf8proc_charlen(const uint8_t *str, bufsize_t str_len) { + int length, i; + + if (!str_len) + return 0; + + length = utf8proc_utf8class[str[0]]; + + if (!length) + return -1; + + if (str_len >= 0 && (bufsize_t)length > str_len) + return -str_len; + + for (i = 1; i < length; i++) { + if ((str[i] & 0xC0) != 0x80) + return -i; + } + + return length; +} + +// Validate a single UTF-8 character according to RFC 3629. +static int utf8proc_valid(const uint8_t *str, bufsize_t str_len) { + int length = utf8proc_utf8class[str[0]]; + + if (!length) + return -1; + + if ((bufsize_t)length > str_len) + return -str_len; + + switch (length) { + case 2: + if ((str[1] & 0xC0) != 0x80) + return -1; + if (str[0] < 0xC2) { + // Overlong + return -length; + } + break; + + case 3: + if ((str[1] & 0xC0) != 0x80) + return -1; + if ((str[2] & 0xC0) != 0x80) + return -2; + if (str[0] == 0xE0) { + if (str[1] < 0xA0) { + // Overlong + return -length; + } + } else if (str[0] == 0xED) { + if (str[1] >= 0xA0) { + // Surrogate + return -length; + } + } + break; + + case 4: + if ((str[1] & 0xC0) != 0x80) + return -1; + if ((str[2] & 0xC0) != 0x80) + return -2; + if ((str[3] & 0xC0) != 0x80) + return -3; + if (str[0] == 0xF0) { + if (str[1] < 0x90) { + // Overlong + return -length; + } + } else if (str[0] >= 0xF4) { + if (str[0] > 0xF4 || str[1] >= 0x90) { + // Above 0x10FFFF + return -length; + } + } + break; + } + + return length; +} + +void cmark_utf8proc_check(cmark_strbuf *ob, const uint8_t *line, + bufsize_t size) { + bufsize_t i = 0; + + while (i < size) { + bufsize_t org = i; + int charlen = 0; + + while (i < size) { + if (line[i] < 0x80 && line[i] != 0) { + i++; + } else if (line[i] >= 0x80) { + charlen = utf8proc_valid(line + i, size - i); + if (charlen < 0) { + charlen = -charlen; + break; + } + i += charlen; + } else if (line[i] == 0) { + // ASCII NUL is technically valid but rejected + // for security reasons. + charlen = 1; + break; + } + } + + if (i > org) { + cmark_strbuf_put(ob, line + org, i - org); + } + + if (i >= size) { + break; + } else { + // Invalid UTF-8 + encode_unknown(ob); + i += charlen; + } + } +} + +int cmark_utf8proc_iterate(const uint8_t *str, bufsize_t str_len, + int32_t *dst) { + int length; + int32_t uc = -1; + + *dst = -1; + length = utf8proc_charlen(str, str_len); + if (length < 0) + return -1; + + switch (length) { + case 1: + uc = str[0]; + break; + case 2: + uc = ((str[0] & 0x1F) << 6) + (str[1] & 0x3F); + if (uc < 0x80) + uc = -1; + break; + case 3: + uc = ((str[0] & 0x0F) << 12) + ((str[1] & 0x3F) << 6) + (str[2] & 0x3F); + if (uc < 0x800 || (uc >= 0xD800 && uc < 0xE000)) + uc = -1; + break; + case 4: + uc = ((str[0] & 0x07) << 18) + ((str[1] & 0x3F) << 12) + + ((str[2] & 0x3F) << 6) + (str[3] & 0x3F); + if (uc < 0x10000 || uc >= 0x110000) + uc = -1; + break; + } + + if (uc < 0) + return -1; + + *dst = uc; + return length; +} + +void cmark_utf8proc_encode_char(int32_t uc, cmark_strbuf *buf) { + uint8_t dst[4]; + bufsize_t len = 0; + + assert(uc >= 0); + + if (uc < 0x80) { + dst[0] = (uint8_t)(uc); + len = 1; + } else if (uc < 0x800) { + dst[0] = (uint8_t)(0xC0 + (uc >> 6)); + dst[1] = 0x80 + (uc & 0x3F); + len = 2; + } else if (uc == 0xFFFF) { + dst[0] = 0xFF; + len = 1; + } else if (uc == 0xFFFE) { + dst[0] = 0xFE; + len = 1; + } else if (uc < 0x10000) { + dst[0] = (uint8_t)(0xE0 + (uc >> 12)); + dst[1] = 0x80 + ((uc >> 6) & 0x3F); + dst[2] = 0x80 + (uc & 0x3F); + len = 3; + } else if (uc < 0x110000) { + dst[0] = (uint8_t)(0xF0 + (uc >> 18)); + dst[1] = 0x80 + ((uc >> 12) & 0x3F); + dst[2] = 0x80 + ((uc >> 6) & 0x3F); + dst[3] = 0x80 + (uc & 0x3F); + len = 4; + } else { + encode_unknown(buf); + return; + } + + cmark_strbuf_put(buf, dst, len); +} + +void cmark_utf8proc_case_fold(cmark_strbuf *dest, const uint8_t *str, + bufsize_t len) { + int32_t c; + +#define bufpush(x) cmark_utf8proc_encode_char(x, dest) + + while (len > 0) { + bufsize_t char_len = cmark_utf8proc_iterate(str, len, &c); + + if (char_len >= 0) { +#include "case_fold_switch.inc" + } else { + encode_unknown(dest); + char_len = -char_len; + } + + str += char_len; + len -= char_len; + } +} + +// matches anything in the Zs class, plus LF, CR, TAB, FF. +int cmark_utf8proc_is_space(int32_t uc) { + return (uc == 9 || uc == 10 || uc == 12 || uc == 13 || uc == 32 || + uc == 160 || uc == 5760 || (uc >= 8192 && uc <= 8202) || uc == 8239 || + uc == 8287 || uc == 12288); +} + +// matches anything in the P[cdefios] classes. +int cmark_utf8proc_is_punctuation(int32_t uc) { + return ( + (uc < 128 && cmark_ispunct((char)uc)) || uc == 161 || uc == 167 || + uc == 171 || uc == 182 || uc == 183 || uc == 187 || uc == 191 || + uc == 894 || uc == 903 || (uc >= 1370 && uc <= 1375) || uc == 1417 || + uc == 1418 || uc == 1470 || uc == 1472 || uc == 1475 || uc == 1478 || + uc == 1523 || uc == 1524 || uc == 1545 || uc == 1546 || uc == 1548 || + uc == 1549 || uc == 1563 || uc == 1566 || uc == 1567 || + (uc >= 1642 && uc <= 1645) || uc == 1748 || (uc >= 1792 && uc <= 1805) || + (uc >= 2039 && uc <= 2041) || (uc >= 2096 && uc <= 2110) || uc == 2142 || + uc == 2404 || uc == 2405 || uc == 2416 || uc == 2800 || uc == 3572 || + uc == 3663 || uc == 3674 || uc == 3675 || (uc >= 3844 && uc <= 3858) || + uc == 3860 || (uc >= 3898 && uc <= 3901) || uc == 3973 || + (uc >= 4048 && uc <= 4052) || uc == 4057 || uc == 4058 || + (uc >= 4170 && uc <= 4175) || uc == 4347 || (uc >= 4960 && uc <= 4968) || + uc == 5120 || uc == 5741 || uc == 5742 || uc == 5787 || uc == 5788 || + (uc >= 5867 && uc <= 5869) || uc == 5941 || uc == 5942 || + (uc >= 6100 && uc <= 6102) || (uc >= 6104 && uc <= 6106) || + (uc >= 6144 && uc <= 6154) || uc == 6468 || uc == 6469 || uc == 6686 || + uc == 6687 || (uc >= 6816 && uc <= 6822) || (uc >= 6824 && uc <= 6829) || + (uc >= 7002 && uc <= 7008) || (uc >= 7164 && uc <= 7167) || + (uc >= 7227 && uc <= 7231) || uc == 7294 || uc == 7295 || + (uc >= 7360 && uc <= 7367) || uc == 7379 || (uc >= 8208 && uc <= 8231) || + (uc >= 8240 && uc <= 8259) || (uc >= 8261 && uc <= 8273) || + (uc >= 8275 && uc <= 8286) || uc == 8317 || uc == 8318 || uc == 8333 || + uc == 8334 || (uc >= 8968 && uc <= 8971) || uc == 9001 || uc == 9002 || + (uc >= 10088 && uc <= 10101) || uc == 10181 || uc == 10182 || + (uc >= 10214 && uc <= 10223) || (uc >= 10627 && uc <= 10648) || + (uc >= 10712 && uc <= 10715) || uc == 10748 || uc == 10749 || + (uc >= 11513 && uc <= 11516) || uc == 11518 || uc == 11519 || + uc == 11632 || (uc >= 11776 && uc <= 11822) || + (uc >= 11824 && uc <= 11842) || (uc >= 12289 && uc <= 12291) || + (uc >= 12296 && uc <= 12305) || (uc >= 12308 && uc <= 12319) || + uc == 12336 || uc == 12349 || uc == 12448 || uc == 12539 || uc == 42238 || + uc == 42239 || (uc >= 42509 && uc <= 42511) || uc == 42611 || + uc == 42622 || (uc >= 42738 && uc <= 42743) || + (uc >= 43124 && uc <= 43127) || uc == 43214 || uc == 43215 || + (uc >= 43256 && uc <= 43258) || uc == 43310 || uc == 43311 || + uc == 43359 || (uc >= 43457 && uc <= 43469) || uc == 43486 || + uc == 43487 || (uc >= 43612 && uc <= 43615) || uc == 43742 || + uc == 43743 || uc == 43760 || uc == 43761 || uc == 44011 || uc == 64830 || + uc == 64831 || (uc >= 65040 && uc <= 65049) || + (uc >= 65072 && uc <= 65106) || (uc >= 65108 && uc <= 65121) || + uc == 65123 || uc == 65128 || uc == 65130 || uc == 65131 || + (uc >= 65281 && uc <= 65283) || (uc >= 65285 && uc <= 65290) || + (uc >= 65292 && uc <= 65295) || uc == 65306 || uc == 65307 || + uc == 65311 || uc == 65312 || (uc >= 65339 && uc <= 65341) || + uc == 65343 || uc == 65371 || uc == 65373 || + (uc >= 65375 && uc <= 65381) || (uc >= 65792 && uc <= 65794) || + uc == 66463 || uc == 66512 || uc == 66927 || uc == 67671 || uc == 67871 || + uc == 67903 || (uc >= 68176 && uc <= 68184) || uc == 68223 || + (uc >= 68336 && uc <= 68342) || (uc >= 68409 && uc <= 68415) || + (uc >= 68505 && uc <= 68508) || (uc >= 69703 && uc <= 69709) || + uc == 69819 || uc == 69820 || (uc >= 69822 && uc <= 69825) || + (uc >= 69952 && uc <= 69955) || uc == 70004 || uc == 70005 || + (uc >= 70085 && uc <= 70088) || uc == 70093 || + (uc >= 70200 && uc <= 70205) || uc == 70854 || + (uc >= 71105 && uc <= 71113) || (uc >= 71233 && uc <= 71235) || + (uc >= 74864 && uc <= 74868) || uc == 92782 || uc == 92783 || + uc == 92917 || (uc >= 92983 && uc <= 92987) || uc == 92996 || + uc == 113823); +} diff --git a/Example/Pods/Down/Source/cmark/utf8.h b/Example/Pods/Down/Source/cmark/utf8.h new file mode 100755 index 000000000..8e45714d4 --- /dev/null +++ b/Example/Pods/Down/Source/cmark/utf8.h @@ -0,0 +1,24 @@ +#ifndef CMARK_UTF8_H +#define CMARK_UTF8_H + +#include <stdint.h> +#include "buffer.h" + +#ifdef __cplusplus +extern "C" { +#endif + +void cmark_utf8proc_case_fold(cmark_strbuf *dest, const uint8_t *str, + bufsize_t len); +void cmark_utf8proc_encode_char(int32_t uc, cmark_strbuf *buf); +int cmark_utf8proc_iterate(const uint8_t *str, bufsize_t str_len, int32_t *dst); +void cmark_utf8proc_check(cmark_strbuf *dest, const uint8_t *line, + bufsize_t size); +int cmark_utf8proc_is_space(int32_t uc); +int cmark_utf8proc_is_punctuation(int32_t uc); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/Example/Pods/Down/Source/cmark/xml.c b/Example/Pods/Down/Source/cmark/xml.c new file mode 100755 index 000000000..48674ccb7 --- /dev/null +++ b/Example/Pods/Down/Source/cmark/xml.c @@ -0,0 +1,170 @@ +#include <stdlib.h> +#include <stdio.h> +#include <string.h> +#include <assert.h> + +#include "config.h" +#include "cmark.h" +#include "node.h" +#include "buffer.h" +#include "houdini.h" + +#define BUFFER_SIZE 100 + +// Functions to convert cmark_nodes to XML strings. + +static void escape_xml(cmark_strbuf *dest, const unsigned char *source, + bufsize_t length) { + houdini_escape_html0(dest, source, length, 0); +} + +struct render_state { + cmark_strbuf *xml; + int indent; +}; + +static CMARK_INLINE void indent(struct render_state *state) { + int i; + for (i = 0; i < state->indent; i++) { + cmark_strbuf_putc(state->xml, ' '); + } +} + +static int S_render_node(cmark_node *node, cmark_event_type ev_type, + struct render_state *state, int options) { + cmark_strbuf *xml = state->xml; + bool literal = false; + cmark_delim_type delim; + bool entering = (ev_type == CMARK_EVENT_ENTER); + char buffer[BUFFER_SIZE]; + + if (entering) { + indent(state); + cmark_strbuf_putc(xml, '<'); + cmark_strbuf_puts(xml, cmark_node_get_type_string(node)); + + if (options & CMARK_OPT_SOURCEPOS && node->start_line != 0) { + snprintf(buffer, BUFFER_SIZE, " sourcepos=\"%d:%d-%d:%d\"", + node->start_line, node->start_column, node->end_line, + node->end_column); + cmark_strbuf_puts(xml, buffer); + } + + literal = false; + + switch (node->type) { + case CMARK_NODE_DOCUMENT: + cmark_strbuf_puts(xml, " xmlns=\"http://commonmark.org/xml/1.0\""); + break; + case CMARK_NODE_TEXT: + case CMARK_NODE_CODE: + case CMARK_NODE_HTML_BLOCK: + case CMARK_NODE_HTML_INLINE: + cmark_strbuf_puts(xml, " xml:space=\"preserve\">"); + escape_xml(xml, node->as.literal.data, node->as.literal.len); + cmark_strbuf_puts(xml, "</"); + cmark_strbuf_puts(xml, cmark_node_get_type_string(node)); + literal = true; + break; + case CMARK_NODE_LIST: + switch (cmark_node_get_list_type(node)) { + case CMARK_ORDERED_LIST: + cmark_strbuf_puts(xml, " type=\"ordered\""); + snprintf(buffer, BUFFER_SIZE, " start=\"%d\"", + cmark_node_get_list_start(node)); + cmark_strbuf_puts(xml, buffer); + delim = cmark_node_get_list_delim(node); + if (delim == CMARK_PAREN_DELIM) { + cmark_strbuf_puts(xml, " delim=\"paren\""); + } else if (delim == CMARK_PERIOD_DELIM) { + cmark_strbuf_puts(xml, " delim=\"period\""); + } + break; + case CMARK_BULLET_LIST: + cmark_strbuf_puts(xml, " type=\"bullet\""); + break; + default: + break; + } + snprintf(buffer, BUFFER_SIZE, " tight=\"%s\"", + (cmark_node_get_list_tight(node) ? "true" : "false")); + cmark_strbuf_puts(xml, buffer); + break; + case CMARK_NODE_HEADING: + snprintf(buffer, BUFFER_SIZE, " level=\"%d\"", node->as.heading.level); + cmark_strbuf_puts(xml, buffer); + break; + case CMARK_NODE_CODE_BLOCK: + if (node->as.code.info.len > 0) { + cmark_strbuf_puts(xml, " info=\""); + escape_xml(xml, node->as.code.info.data, node->as.code.info.len); + cmark_strbuf_putc(xml, '"'); + } + cmark_strbuf_puts(xml, " xml:space=\"preserve\">"); + escape_xml(xml, node->as.code.literal.data, node->as.code.literal.len); + cmark_strbuf_puts(xml, "</"); + cmark_strbuf_puts(xml, cmark_node_get_type_string(node)); + literal = true; + break; + case CMARK_NODE_CUSTOM_BLOCK: + case CMARK_NODE_CUSTOM_INLINE: + cmark_strbuf_puts(xml, " on_enter=\""); + escape_xml(xml, node->as.custom.on_enter.data, + node->as.custom.on_enter.len); + cmark_strbuf_putc(xml, '"'); + cmark_strbuf_puts(xml, " on_exit=\""); + escape_xml(xml, node->as.custom.on_exit.data, + node->as.custom.on_exit.len); + cmark_strbuf_putc(xml, '"'); + break; + case CMARK_NODE_LINK: + case CMARK_NODE_IMAGE: + cmark_strbuf_puts(xml, " destination=\""); + escape_xml(xml, node->as.link.url.data, node->as.link.url.len); + cmark_strbuf_putc(xml, '"'); + cmark_strbuf_puts(xml, " title=\""); + escape_xml(xml, node->as.link.title.data, node->as.link.title.len); + cmark_strbuf_putc(xml, '"'); + break; + default: + break; + } + if (node->first_child) { + state->indent += 2; + } else if (!literal) { + cmark_strbuf_puts(xml, " /"); + } + cmark_strbuf_puts(xml, ">\n"); + + } else if (node->first_child) { + state->indent -= 2; + indent(state); + cmark_strbuf_puts(xml, "</"); + cmark_strbuf_puts(xml, cmark_node_get_type_string(node)); + cmark_strbuf_puts(xml, ">\n"); + } + + return 1; +} + +char *cmark_render_xml(cmark_node *root, int options) { + char *result; + cmark_strbuf xml = CMARK_BUF_INIT(cmark_node_mem(root)); + cmark_event_type ev_type; + cmark_node *cur; + struct render_state state = {&xml, 0}; + + cmark_iter *iter = cmark_iter_new(root); + + cmark_strbuf_puts(state.xml, "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"); + cmark_strbuf_puts(state.xml, + "<!DOCTYPE document SYSTEM \"CommonMark.dtd\">\n"); + while ((ev_type = cmark_iter_next(iter)) != CMARK_EVENT_DONE) { + cur = cmark_iter_get_node(iter); + S_render_node(cur, ev_type, &state, options); + } + result = (char *)cmark_strbuf_detach(&xml); + + cmark_iter_free(iter); + return result; +} diff --git a/Example/Pods/Local Podspecs/ConsentViewController.podspec.json b/Example/Pods/Local Podspecs/ConsentViewController.podspec.json index 35ea6a410..3bff83836 100644 --- a/Example/Pods/Local Podspecs/ConsentViewController.podspec.json +++ b/Example/Pods/Local Podspecs/ConsentViewController.podspec.json @@ -24,7 +24,12 @@ "exclude_files": "ConsentViewController/Classes/Views/tvOS" }, "tvos": { - "exclude_files": "ConsentViewController/Classes/Views/iOS" + "exclude_files": "ConsentViewController/Classes/Views/iOS", + "dependencies": { + "Down": [ + "~> 0.9.0" + ] + } }, "resource_bundles": { "ConsentViewController": [ diff --git a/Example/Pods/Manifest.lock b/Example/Pods/Manifest.lock index 3bea8009d..05916c9f0 100644 --- a/Example/Pods/Manifest.lock +++ b/Example/Pods/Manifest.lock @@ -1,5 +1,7 @@ PODS: - - ConsentViewController (7.2.1) + - ConsentViewController (7.2.1): + - Down (~> 0.9.0) + - Down (0.9.5) - IQKeyboardManagerSwift (6.5.10) - JSONView (0.0.3) - Nimble (10.0.0) @@ -18,6 +20,7 @@ DEPENDENCIES: SPEC REPOS: trunk: + - Down - IQKeyboardManagerSwift - JSONView - Nimble @@ -30,7 +33,8 @@ EXTERNAL SOURCES: :path: "../" SPEC CHECKSUMS: - ConsentViewController: 038d1eb3a9cebc9157809220a319ac1ef7173b8d + ConsentViewController: b4bc3ccbeb4d1659b61609ba956b61c4aa78fa86 + Down: 7321a72d0747ed0061dce948bcff518fcb6df2bd IQKeyboardManagerSwift: 52962c76ab33532f15ad9f3ff4e5715eda5335bb JSONView: ba9049102fae7ad70de40234d0b7c60986e61e4c Nimble: 5316ef81a170ce87baf72dd961f22f89a602ff84 diff --git a/Example/Pods/Pods.xcodeproj/project.pbxproj b/Example/Pods/Pods.xcodeproj/project.pbxproj index a60e4a300..8950e31fb 100644 --- a/Example/Pods/Pods.xcodeproj/project.pbxproj +++ b/Example/Pods/Pods.xcodeproj/project.pbxproj @@ -28,815 +28,938 @@ /* End PBXAggregateTarget section */ /* Begin PBXBuildFile section */ - 012B5C533F0D383B85D0376627B20DBA /* QuickTestSuite.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C58B46D4D28CDA3ED378DCE0CB4E975 /* QuickTestSuite.swift */; }; - 012DAC50FDCA77492197A6E4BF248249 /* QCKDSL.h in Headers */ = {isa = PBXBuildFile; fileRef = 657DB3D6966A7638C95064AAAB838239 /* QCKDSL.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 012B5C533F0D383B85D0376627B20DBA /* QuickTestSuite.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2E52D2EDA2417EA4BA098CEFF6FAFE64 /* QuickTestSuite.swift */; }; + 012DAC50FDCA77492197A6E4BF248249 /* QCKDSL.h in Headers */ = {isa = PBXBuildFile; fileRef = A2951E938C866691A0A2B9D510DCC6B0 /* QCKDSL.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0184C2B3B35265B7DA4BDADC0DAA7816 /* DownOptions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45116B4FE9CE942C3675B2BF08E8A83D /* DownOptions.swift */; }; 01A43B3DF2526A02787A2CF76B436C8D /* SPPublisherData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 42E78312B70C2330F2ABF983EFB26634 /* SPPublisherData.swift */; }; - 021AF1A4B14E13683A2701099605008F /* BeLessThanOrEqual.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6BB0BCC9DC931FAEAB7784D9CF30E25E /* BeLessThanOrEqual.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 02339A7908BF70B860FC985F334486CB /* JSONView-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 3886CCED3A5A4890B152FE672031DDF8 /* JSONView-dummy.m */; }; - 0239FBA798E3D1A387DAA25A1FB8E515 /* SPCCPAConsent.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCDA636AD5FC717ED9DE01E748CFC607 /* SPCCPAConsent.swift */; }; + 021AF1A4B14E13683A2701099605008F /* BeLessThanOrEqual.swift in Sources */ = {isa = PBXBuildFile; fileRef = F9AB079CF093527A4CFFAB09421335E5 /* BeLessThanOrEqual.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 02339A7908BF70B860FC985F334486CB /* JSONView-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 90B9957458BA7BE9BCF5C8E5AE2DCAFE /* JSONView-dummy.m */; }; + 023E4BE5B44B99E80116BD8B9CC2EEAB /* Collection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5A08DD564C8310F4849B503C867AC1C8 /* Collection.swift */; }; 038B9A29198D9ECD65A926483B0BC6B4 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 358E1F97E66A2ED0D7C2706C3E3E104F /* Foundation.framework */; }; - 041B655D7F5932F03A65C154BC02BDAA /* IQInvocation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4847AD2AE5F414A46DE247237C056AA6 /* IQInvocation.swift */; }; - 0466EBC9619714A963EA1A5240DBA85E /* SPMessageViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27CD48DD7F3A588DE9A336B44E5C39AE /* SPMessageViewController.swift */; }; - 0496E7FAA26B24DA18937A4524CCCA7F /* RequestModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBCED0FC44CDF36BA1222F51698F4544 /* RequestModel.swift */; }; - 04B0884964D9592302CA654E0B67E80E /* IQUIView+Hierarchy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5D8C6C3D4CC5E1705C7064FAA1855427 /* IQUIView+Hierarchy.swift */; }; - 0514FCE6C64ADACA6745A4CC96A273D4 /* RequestModelBeautifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = B63CD6F02137737BB26A1087ED104FDF /* RequestModelBeautifier.swift */; }; - 0570C493972198FFB80C3E50F5D41FEA /* Flow.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = DC41E034DB0C46B8A5CDF645A7AAFBFB /* Flow.storyboard */; }; - 06729E48F280BABCE74C78167FB765DA /* DispatchTimeInterval.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9C0605F46747350B35B62214F79792A1 /* DispatchTimeInterval.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 03D88AAF056383E20FD81A4D3390411A /* DownErrors.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A9C04673231C48B2E6ED42A2AB6D34E /* DownErrors.swift */; }; + 041B655D7F5932F03A65C154BC02BDAA /* IQInvocation.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED145CB8610837DAAB01AA6075562DD1 /* IQInvocation.swift */; }; + 0496E7FAA26B24DA18937A4524CCCA7F /* RequestModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = B03360C3F37767F8978ECE6727624F1A /* RequestModel.swift */; }; + 04B0884964D9592302CA654E0B67E80E /* IQUIView+Hierarchy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0758C78A136FF46598392E3AC4DF0F9F /* IQUIView+Hierarchy.swift */; }; + 0514FCE6C64ADACA6745A4CC96A273D4 /* RequestModelBeautifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE05B6F5D5849C89D668385AE14DCBB5 /* RequestModelBeautifier.swift */; }; + 0551CB379A684FBE685C38AAF75A1535 /* Bundle+Framework.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3426D64DAD0355F382B9597FB52D8F2E /* Bundle+Framework.swift */; }; + 06729E48F280BABCE74C78167FB765DA /* DispatchTimeInterval.swift in Sources */ = {isa = PBXBuildFile; fileRef = 878715BE17B7F8EEE0EE94835AE58C98 /* DispatchTimeInterval.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 06FDDC333CD340123FAA270E7AF57A89 /* Image.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6F278F01ABEA6ADF72283305E88470CB /* Image.swift */; }; + 071DA59F09049BC9DD06805929955028 /* NSMutableAttributedString+Attributes.swift in Sources */ = {isa = PBXBuildFile; fileRef = C96FDBF32869B4E9BEA3EBC65DE5F273 /* NSMutableAttributedString+Attributes.swift */; }; 0734E0099DE41040722A03FD06EBDACC /* ConsentStatusMetadata.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8741D62C63EE9A4FA64706CD715C03A4 /* ConsentStatusMetadata.swift */; }; 073835312BA94713A5BF324C16C6C379 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 358E1F97E66A2ED0D7C2706C3E3E104F /* Foundation.framework */; }; 07971B868D8F8E3F0A93C6AA7957028A /* Pods-ConsentViewController_ExampleTests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 047053BC498C04B9C5A54C9248EA470E /* Pods-ConsentViewController_ExampleTests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 07EE025F95C44FB172AF02EA33C17C01 /* Stringers.swift in Sources */ = {isa = PBXBuildFile; fileRef = A621FCC91C5F06F22FFC5F7B814811C5 /* Stringers.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 07FD96E43048F836B6415B9A2C3FEA02 /* SPNativeUI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68A496378D7EC9AF074F5723A535B568 /* SPNativeUI.swift */; }; + 07EE025F95C44FB172AF02EA33C17C01 /* Stringers.swift in Sources */ = {isa = PBXBuildFile; fileRef = C14D9A75C6D0D148766A787E6DAEEEA2 /* Stringers.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 08561DC9A9BD8A2AD746F637E85D502A /* SPGDPRConsent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C786A46AC81577E8A8FE6F907F4F20FB /* SPGDPRConsent.swift */; }; 08A59FAAA2349A1A6C20E57187B31AEB /* Pods-ConsentViewController_Example-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 53CCA4DCC9B066F8E74E39A9D62DE1AB /* Pods-ConsentViewController_Example-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 08B185E08278AE7EC55F8BBB19693AC5 /* IQKeyboardManager+OrientationNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = FDD2C920ED602B07B5424FE6E8D8034E /* IQKeyboardManager+OrientationNotification.swift */; }; - 08C9932D0B3544DA85D912F8835E300A /* QuickConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 88AFE97485D8C4B575EA389D539760EC /* QuickConfiguration.m */; }; - 0967B12054E597F00420776748487EEB /* QuickTestObservation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 21CA5E63D9D88D2F20006DB957F102C6 /* QuickTestObservation.swift */; }; - 0B1E77925BE928223656D5C9779FAD34 /* Barcode.png in Resources */ = {isa = PBXBuildFile; fileRef = 3FAF31771437319132C8D087120F7EB2 /* Barcode.png */; }; - 0B35D8F6653593D2D64B70C98E23EA54 /* CwlCatchBadInstructionPosix.swift in Sources */ = {isa = PBXBuildFile; fileRef = 200F492CC3C1C8622293CBF849BC49E8 /* CwlCatchBadInstructionPosix.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 08B185E08278AE7EC55F8BBB19693AC5 /* IQKeyboardManager+OrientationNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5047CC804189E94A9B3CEAB093F0C53A /* IQKeyboardManager+OrientationNotification.swift */; }; + 08C9932D0B3544DA85D912F8835E300A /* QuickConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 0BE089073D68EF0B27AEA02CF5701263 /* QuickConfiguration.m */; }; + 0967B12054E597F00420776748487EEB /* QuickTestObservation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 10D5605B91235BC3C8C2EBAC0ECBB279 /* QuickTestObservation.swift */; }; + 0AF4F40E9DAD9E66E5EA2BF5A1C46773 /* houdini.h in Headers */ = {isa = PBXBuildFile; fileRef = 9344639DEC28DF6C91B12F94A3FF74C8 /* houdini.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 0B35D8F6653593D2D64B70C98E23EA54 /* CwlCatchBadInstructionPosix.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94F0D55887BBB48A5F70C73FE33701EF /* CwlCatchBadInstructionPosix.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; 0C0DB0E0332AB057D734A816C2EAE009 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 358E1F97E66A2ED0D7C2706C3E3E104F /* Foundation.framework */; }; - 0D37A1641AE660FF9A72CBCB2A743CFD /* SPDeviceManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECD3E396B3ABA6B012AB6074D3397320 /* SPDeviceManager.swift */; }; + 0C21901DCFDC1FB0D3203FC340BE1C61 /* SimpleClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 666E1CD204EC9B1A138CDBC1BA13F59D /* SimpleClient.swift */; }; + 0CC9CB00356DCA7A70F119DDD620977D /* inlines.c in Sources */ = {isa = PBXBuildFile; fileRef = CD49BC421FEE8709A52890556B3E6197 /* inlines.c */; }; + 0DB059FB453B9ACB929B45A45CB8F2C8 /* SPDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 516092EA0B6381F414688DB4BBFDB8C3 /* SPDelegate.swift */; }; + 0E40CF3EB7E52BCCE5C41C9A347C5D64 /* ConsentViewController-tvOS-ConsentViewController in Resources */ = {isa = PBXBuildFile; fileRef = 20A4710BBD2EE3CFC496E3AF134BD4FD /* ConsentViewController-tvOS-ConsentViewController */; }; + 0E676FA216928B1E736A7B10287E37A2 /* ThematicBreakAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = F309820BB3F1570708091996EE72057D /* ThematicBreakAttribute.swift */; }; 0F64D5C89FE45D9D5B4EDE18C0A9E0BA /* Pods-AuthExampleUITests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = D2EA4D4CB879E31CCAF1E4E3D382970B /* Pods-AuthExampleUITests-dummy.m */; }; - 0F94B2449CA1ADA76AE79C0BF6A08549 /* IQKeyboardManagerConstantsInternal.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32208EE956E4CCE1CBB72750BA454B06 /* IQKeyboardManagerConstantsInternal.swift */; }; - 104279DA2FF51B93B647E2F5BB4CA9EE /* SPJSReceiver.js in Resources */ = {isa = PBXBuildFile; fileRef = D6D8E4D0F1969E5EC16BDED1585EE87C /* SPJSReceiver.js */; }; - 1089CF083448B9BF75C396124983AAFD /* Pods-NativePMExampleApp-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B8D19EC5179D7698B6F32F7EABAC1DD /* Pods-NativePMExampleApp-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 11166EE5BB467C8A67D73EC236EA0F5A /* mach_excServer.h in Headers */ = {isa = PBXBuildFile; fileRef = 99F498F016DE4C8022FF34E5C97BA557 /* mach_excServer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0F94B2449CA1ADA76AE79C0BF6A08549 /* IQKeyboardManagerConstantsInternal.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5E95A52AFAF15D941AE275A43898765 /* IQKeyboardManagerConstantsInternal.swift */; }; + 10318131F49750D55C33DE122EAC9A75 /* latex.c in Sources */ = {isa = PBXBuildFile; fileRef = 48E45CD63519977DBF1E2AADE772CA21 /* latex.c */; }; + 11166EE5BB467C8A67D73EC236EA0F5A /* mach_excServer.h in Headers */ = {isa = PBXBuildFile; fileRef = 22D6C8EDA33C564DE94EEA2C5A9F0E49 /* mach_excServer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 111DED94990CDD739138FFB562BE812C /* FontCollection.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE22DD310BE71ABD5D88DAC8018A4401 /* FontCollection.swift */; }; 1152E100FF98682349F12019DD035030 /* SPURLExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = F9F61E6C51A05142C45F3411880E2286 /* SPURLExtensions.swift */; }; - 1240BCAA219CD48FCFAE2BBC86949E6C /* NimbleEnvironment.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8A57809F4D56926C8F1028B862349DCE /* NimbleEnvironment.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 131106AA140B896CDA232F30C4834ADD /* SPDateCreated.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95EE7338C8BA95D60D432002B45FC916 /* SPDateCreated.swift */; }; - 134A15A496D772F161498B36DE95A47A /* MatcherProtocols.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED3A8BE10A678CBE0765D2186308FD4F /* MatcherProtocols.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 1240BCAA219CD48FCFAE2BBC86949E6C /* NimbleEnvironment.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4B9C691E324AE9E7F94E1561C96C4D8 /* NimbleEnvironment.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 12E8047F154E88032F0E55B2DCE038B6 /* SPUIColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 201D7C8739FB6CC3D963636E0B6B616B /* SPUIColor.swift */; }; + 12F0F5521B25700EFFB0D9D2499B2160 /* javascript in Resources */ = {isa = PBXBuildFile; fileRef = 5F5D44F2C0EF9ABFEBE938FE8D408645 /* javascript */; }; + 1346DF1AEF911B1A09E474F9535D0363 /* Constants.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB3B1C453B6116B14BCBA10F11300356 /* Constants.swift */; }; + 134A15A496D772F161498B36DE95A47A /* MatcherProtocols.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1A772930289BCF3CAA8EA3D19487AA1 /* MatcherProtocols.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; 134EB68B67F996F89396B88394EB6012 /* SPMessageLanguage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 595A61A825C99B50BA12B98C40ACB365 /* SPMessageLanguage.swift */; }; - 13AC433996F4710382EC700727501EA1 /* HaveCount.swift in Sources */ = {isa = PBXBuildFile; fileRef = AC426A9D72F2B0F3506325D00A187126 /* HaveCount.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 146CDBE2D8EFEAB3955F969ADDD68E69 /* XCTestSuite+QuickTestSuiteBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = C5B54C4C31845E73420CBDBEC97B76BD /* XCTestSuite+QuickTestSuiteBuilder.m */; }; - 14CC389AB82BF9E3B222AEE442410AB0 /* BeAKindOf.swift in Sources */ = {isa = PBXBuildFile; fileRef = E24FA00E5B02151B00B67C3798B24EF5 /* BeAKindOf.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 14FA6C35B14B8EF45919AB050E9524F8 /* GDPRPMConsentSnapshot.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7C69565E1DA8AA14202A260FB5A7177F /* GDPRPMConsentSnapshot.swift */; }; - 1573F39406E1687394544FA3C9D397E1 /* NMBExceptionCapture.m in Sources */ = {isa = PBXBuildFile; fileRef = 13EA52F01B9131D674F96129406F4835 /* NMBExceptionCapture.m */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 1673801F893DD37D8EF0010FB46F7A6E /* CwlCatchException.h in Headers */ = {isa = PBXBuildFile; fileRef = 44B3C51C369D8A75EE35CAB29B305A16 /* CwlCatchException.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 167AAB25949728F2DDAEB849F507721F /* NMBExpectation.swift in Sources */ = {isa = PBXBuildFile; fileRef = A0867CB1388EF6EF460CA64F798CA4D6 /* NMBExpectation.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 16D7FA25FD7418ADC36EE32D562B39D3 /* SPGDPRManagePreferenceViewController.xib in Sources */ = {isa = PBXBuildFile; fileRef = 488C4BA0A9F62B5E7C5FAC11D20B87B7 /* SPGDPRManagePreferenceViewController.xib */; }; - 1740CBB33D469AEDD5D7291A9268FA97 /* IQToolbar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7919F901D6AD27B9E44FAAA6DDFEEA66 /* IQToolbar.swift */; }; + 13AC433996F4710382EC700727501EA1 /* HaveCount.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA7CFFF9CE15070521A2CA8C209A9889 /* HaveCount.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 146CDBE2D8EFEAB3955F969ADDD68E69 /* XCTestSuite+QuickTestSuiteBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 17F9CE199E7234100943A082F7090697 /* XCTestSuite+QuickTestSuiteBuilder.m */; }; + 14CC389AB82BF9E3B222AEE442410AB0 /* BeAKindOf.swift in Sources */ = {isa = PBXBuildFile; fileRef = 17190541F56BBA8694F01E6811EE3421 /* BeAKindOf.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 15204FEC0A5CCB1D5EE06AE1B1E46357 /* SPString.swift in Sources */ = {isa = PBXBuildFile; fileRef = 86F1F5AA5FEC4184D3FD2A77AFFFF304 /* SPString.swift */; }; + 1564F6F2FA3C4CCCA841F261DD3632F3 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8F14AA232F04EB7627811BC6CD5E590F /* Foundation.framework */; }; + 1573F39406E1687394544FA3C9D397E1 /* NMBExceptionCapture.m in Sources */ = {isa = PBXBuildFile; fileRef = 53830D02039DE43B2FFBF8AF6FF4A78B /* NMBExceptionCapture.m */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 1673801F893DD37D8EF0010FB46F7A6E /* CwlCatchException.h in Headers */ = {isa = PBXBuildFile; fileRef = DD783487C1DFFC517AF0E6DD261A5A09 /* CwlCatchException.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 167AAB25949728F2DDAEB849F507721F /* NMBExpectation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 473A7C3CEFD5E9479DB337765E09E0A7 /* NMBExpectation.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 1740CBB33D469AEDD5D7291A9268FA97 /* IQToolbar.swift in Sources */ = {isa = PBXBuildFile; fileRef = CFD22C13806BD78DC03B4768F517871B /* IQToolbar.swift */; }; + 17B8E4C8F4DAE6A9E8AAFB5F8BAA2278 /* NSAttributedString+Helpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E8151422F4D119BA7AFF87AE9863192 /* NSAttributedString+Helpers.swift */; }; + 17BBDF25C0009DFCE087E9EDDBEB3692 /* CGRect+Helpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 40D30DD3C99D443D22DE81C3C4225D05 /* CGRect+Helpers.swift */; }; 188E589116CA41D381D93B5281263386 /* ChoiceResponses.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD60E165B424A3376B8717E85854244E /* ChoiceResponses.swift */; }; - 195106E65A0BC630358079B241E47055 /* SPCCPAManagePreferenceViewController.xib in Sources */ = {isa = PBXBuildFile; fileRef = 7DB81E8B96ED30450262361FC146BF38 /* SPCCPAManagePreferenceViewController.xib */; }; - 1A9B9579E46EFBA63C5F57A6B17B5ECA /* IQKeyboardManagerSwift-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 575F2417476D467D9E11D32DF4BD1AEA /* IQKeyboardManagerSwift-dummy.m */; }; - 1AC8481701E9F661C8BA0693694E8EDF /* ConsentStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84E6ECDA9BA350599A22F8C04B50AE84 /* ConsentStatus.swift */; }; - 1B24AD17763FEE16AC2A87D504BA554A /* ConsentViewController-tvOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 20F31536BBA7624282F314441AB7D1ED /* ConsentViewController-tvOS-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1C78D412C1AD5DB6D68ADACF00711FCA /* BeNil.swift in Sources */ = {isa = PBXBuildFile; fileRef = 411E307E334DC89DE91B5D80FB75C706 /* BeNil.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 1D5A907809481246E300E92B1CFEB0A3 /* Equal+Tuple.swift in Sources */ = {isa = PBXBuildFile; fileRef = 340209A9B47B5483BBC6471331E6F1FF /* Equal+Tuple.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 1D8031C86A94D32E00ED55B80428A0F3 /* IQKeyboardManager+Toolbar.swift in Sources */ = {isa = PBXBuildFile; fileRef = EEE1701D7E9E9425B0A31A936AFC940C /* IQKeyboardManager+Toolbar.swift */; }; + 1A838CB112982DBE44BD97736CF56C8D /* SPCCPACategoryDetailsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6AE2BCE03EA70F32258C86084A12A054 /* SPCCPACategoryDetailsViewController.swift */; }; + 1A9B9579E46EFBA63C5F57A6B17B5ECA /* IQKeyboardManagerSwift-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 7947BAB773F339EAC63DAAF04B2D8CFC /* IQKeyboardManagerSwift-dummy.m */; }; + 1AB51B2AADC1DF77E4834A9A1A42889E /* SPJSReceiver.spec.js in Resources */ = {isa = PBXBuildFile; fileRef = 4643D453357EFA79CCBA741B0B5B2BC3 /* SPJSReceiver.spec.js */; }; + 1C78D412C1AD5DB6D68ADACF00711FCA /* BeNil.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80168F271651A604523035FD37B31496 /* BeNil.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 1CB7BF22EA0AA3A24FF4285775ADBAE0 /* SPJSReceiver.js in Resources */ = {isa = PBXBuildFile; fileRef = D6D8E4D0F1969E5EC16BDED1585EE87C /* SPJSReceiver.js */; }; + 1CBC6D59A9603484594C865A8EC90E67 /* man.c in Sources */ = {isa = PBXBuildFile; fileRef = 44CD8A72F3A29EF02EE34B2A6EFB7EE9 /* man.c */; }; + 1D5A907809481246E300E92B1CFEB0A3 /* Equal+Tuple.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1D5CC00FA31E003434C6D65DF8F3DA91 /* Equal+Tuple.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 1D8031C86A94D32E00ED55B80428A0F3 /* IQKeyboardManager+Toolbar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 726A34F9D4D17AE4EBF1C00A383C14CD /* IQKeyboardManager+Toolbar.swift */; }; 1E664B66B610984E8AEF015FF6539F57 /* SPJson.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5311B13E75D266751A602FCE929F48D7 /* SPJson.swift */; }; - 1EB7D0601BAF65E147D7726317F0466F /* SPCCPAManagePreferenceViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C537F67C82337C45E28A1AA2124BC4C8 /* SPCCPAManagePreferenceViewController.swift */; }; - 1EEDAD12DDDC3142EE57080A9A27A63E /* ShareUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = DAE662B92CD4567D8EEBE548FF8C7928 /* ShareUtils.swift */; }; - 20616A47873318F80BFFEABAC9730122 /* IQTitleBarButtonItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9E0D6AE08AF8041459393C35872671A0 /* IQTitleBarButtonItem.swift */; }; - 2099A05ADC88085F1460378141F500FC /* Nimble-iOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = B37729AC08E8EC071A0329BDBA83996B /* Nimble-iOS-dummy.m */; }; - 218802C96398F5DCDFE50116A6EBA41A /* ExampleGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = 463DFA009F6A01FE79F6A421F8DE2A55 /* ExampleGroup.swift */; }; - 21ABB59D4CF6010E3745B8E7EDB57A3A /* QuickConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8378F3DB5A7BDC2615F006E25D48E680 /* QuickConfiguration.swift */; }; + 1EEDAD12DDDC3142EE57080A9A27A63E /* ShareUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF6663C4A3C0BDC918F93DC3363922E4 /* ShareUtils.swift */; }; + 1F621BEBDC24A3AF842C2A0F0D067B45 /* Paragraph.swift in Sources */ = {isa = PBXBuildFile; fileRef = 03B06ABE9E1342072D5858485F4F012E /* Paragraph.swift */; }; + 20616A47873318F80BFFEABAC9730122 /* IQTitleBarButtonItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4FCB8C53F45A51260CC88D81CCF424D9 /* IQTitleBarButtonItem.swift */; }; + 2099A05ADC88085F1460378141F500FC /* Nimble-iOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = E9B17F21B1EB972CCA0ECA3E2D9067E2 /* Nimble-iOS-dummy.m */; }; + 20A8A34A0C9E184B5E1C3E57834E317B /* Text.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5459D9ADE3F53D06B748B04037F00167 /* Text.swift */; }; + 210927DF4BA990DA97B8CC4C896058A1 /* xml.c in Sources */ = {isa = PBXBuildFile; fileRef = 329F04CD8054B9D66AD1907605155E24 /* xml.c */; }; + 218802C96398F5DCDFE50116A6EBA41A /* ExampleGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = E6299AFFC345696A42141091DCDB1341 /* ExampleGroup.swift */; }; + 21ABB59D4CF6010E3745B8E7EDB57A3A /* QuickConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92321CEC968DCD4908350231D8D17509 /* QuickConfiguration.swift */; }; 21D635642020B545CBA8AB29D9B7E96A /* SPCCPAConsent.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCDA636AD5FC717ED9DE01E748CFC607 /* SPCCPAConsent.swift */; }; + 229507ED99DECB3475F25E879AA0D95C /* SPCustomViewController.xib in Sources */ = {isa = PBXBuildFile; fileRef = DBA599E1E0DAC257521B46F238B2533D /* SPCustomViewController.xib */; }; 22A6661D0F35E259CC5ECA2DB13E8017 /* Pods-SourcePointMetaApp-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = E2D77A03561086450FB789E8ED754256 /* Pods-SourcePointMetaApp-dummy.m */; }; + 22C481260572F7A6B893DE35E49D5B7D /* node.h in Headers */ = {isa = PBXBuildFile; fileRef = 1FEC456ADDF2069AA24CA59D508A3A65 /* node.h */; settings = {ATTRIBUTES = (Project, ); }; }; 22FAEB838EFBCD9F58F43F511C2603B9 /* SPUserData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6DC8858EC649722C3057FAEEDA659D61 /* SPUserData.swift */; }; + 234119F47906B0BEA20787DB2225472D /* SourcePointClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = F50ED8661468C8D694099E55721F0733 /* SourcePointClient.swift */; }; 237915FFFDA90EF0F995E5366C0390CD /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 358E1F97E66A2ED0D7C2706C3E3E104F /* Foundation.framework */; }; 2486AF84D6A25E1140D936D1A5E74BD8 /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 81ED03AB7884B5D1101A89F720BF884C /* XCTest.framework */; }; - 24B0464866453DF7E179C8A4AC360202 /* SPIDFAStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 79AA76446E91ACA06D35E27CF65D9462 /* SPIDFAStatus.swift */; }; - 24EC44FF102C2635A476CEF7567F89DA /* IQPreviousNextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 56E0467FE7EDDC1CDCFD23F4170C77F5 /* IQPreviousNextView.swift */; }; - 263106EA3D8265BD84AA81C2FAA702E4 /* CustomHTTPProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C22D4E96CC3C07425EAA1717AA769B3 /* CustomHTTPProtocol.swift */; }; - 272A704D036A486A84D49D7D7D2F00FD /* Expectation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62A2DC7533D6F811A96F2FB5FD882F7D /* Expectation.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 24EC44FF102C2635A476CEF7567F89DA /* IQPreviousNextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 285BE3E66975DB446D5F1D0A93CE222F /* IQPreviousNextView.swift */; }; + 25B3595920416BEF67C0F889A49C3DAE /* ListItemPrefixGenerator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 152016598FEB9AF219872CCA45E20932 /* ListItemPrefixGenerator.swift */; }; + 262362236D58E22F7EA08A23D3D3DBC4 /* RequestTitleSectionView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1FF9490F64DC44BA5A308995182E951C /* RequestTitleSectionView.xib */; }; + 263106EA3D8265BD84AA81C2FAA702E4 /* CustomHTTPProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1D3B561010BE2A4F21A3F0268ABDC331 /* CustomHTTPProtocol.swift */; }; + 26337DB6CB02D3B3384106F4CBF8C103 /* DownDebugLayoutManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 142CB463E6DC28D50FDFB70636557B4E /* DownDebugLayoutManager.swift */; }; + 26F295CF338C56CBB8D22A2F938A3CAC /* ConsentStatusMetadata.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8741D62C63EE9A4FA64706CD715C03A4 /* ConsentStatusMetadata.swift */; }; + 26F3C47BAFDF9F836A802636D6AEEFCF /* LongButtonViewCell.xib in Sources */ = {isa = PBXBuildFile; fileRef = E8E87378FA42D6EDD6D05140D02E18C0 /* LongButtonViewCell.xib */; }; + 272A704D036A486A84D49D7D7D2F00FD /* Expectation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2250D5EFB0AB8081F75296DB53AFB6FD /* Expectation.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 2846B04A44086BEABE6276A85F15E1BE /* Emphasis.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFACA9FCCC8A1B367EF4F8611D73E3A2 /* Emphasis.swift */; }; 28DF2D78E5B4250152BB72FBA236054A /* SPIDFAStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 79AA76446E91ACA06D35E27CF65D9462 /* SPIDFAStatus.swift */; }; 295362CA03FCA4E8AF80FDFDD3CB1905 /* SPGDPRConsent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C786A46AC81577E8A8FE6F907F4F20FB /* SPGDPRConsent.swift */; }; - 29B4BE87B1D846D5259E22C6274650F7 /* jest.config.json in Resources */ = {isa = PBXBuildFile; fileRef = A7FC9F7FA7066E0981C00753F53D557A /* jest.config.json */; }; - 29FCD0F3710299C348498F25F48D1332 /* BeLessThan.swift in Sources */ = {isa = PBXBuildFile; fileRef = 17669560008D6CBAEFC1FBE590781773 /* BeLessThan.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 2A829741AB03253BCCE514EE72543B24 /* BeAnInstanceOf.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4AEBE5CB1C04F3A1DCDEC88A37E76028 /* BeAnInstanceOf.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 2AB2AC5B637B752863F200356945143A /* mach_excServer.h in Headers */ = {isa = PBXBuildFile; fileRef = 99F498F016DE4C8022FF34E5C97BA557 /* mach_excServer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2B857FA55F67CECEE7221473C5238A66 /* SPCCPANativePrivacyManagerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4027EE899508E71C32EE10B4FA7D7824 /* SPCCPANativePrivacyManagerViewController.swift */; }; + 29FCD0F3710299C348498F25F48D1332 /* BeLessThan.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3459EB4E85FE56BAB2781890A10BA3BC /* BeLessThan.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 2A0351C8441BAC7ABDF8AA5715603881 /* render.c in Sources */ = {isa = PBXBuildFile; fileRef = 4070BC13DFC74E11C100FD3411A6AAD5 /* render.c */; }; + 2A829741AB03253BCCE514EE72543B24 /* BeAnInstanceOf.swift in Sources */ = {isa = PBXBuildFile; fileRef = 25554D9FAA26AE20BF956E70CF34111D /* BeAnInstanceOf.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 2AB2AC5B637B752863F200356945143A /* mach_excServer.h in Headers */ = {isa = PBXBuildFile; fileRef = 22D6C8EDA33C564DE94EEA2C5A9F0E49 /* mach_excServer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2ABDB0B2FF7FB51B36B10105134686F5 /* render.h in Headers */ = {isa = PBXBuildFile; fileRef = 10473F9F34E076F4BC8C76A0EDE622BC /* render.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 2B127D0E1ABE8E97D8EB1AFBB1DB253D /* cmark_ctype.h in Headers */ = {isa = PBXBuildFile; fileRef = C3B6F134DE0CE4BE0763FBD533D71D0A /* cmark_ctype.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 2B45CC6028262EDFC605F642E095F886 /* Pods-NativePMExampleApp-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 79B3A869D1182177E19095C737657B2A /* Pods-NativePMExampleApp-dummy.m */; }; 2BC396B969D2AE79BC1EB5643D7FE218 /* SPWebViewExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1372A710627A79B0C7656EC3E9B262CC /* SPWebViewExtensions.swift */; }; - 2C62052DCFAAA9C5DA2BB5619C4ED110 /* ContainElementSatisfying.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F16F531369D23712F6B65C12BDCC6DD /* ContainElementSatisfying.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 2CA0B3B43A972DF3AD79F58092E3403E /* IQKeyboardManager+Internal.swift in Sources */ = {isa = PBXBuildFile; fileRef = 115FD14F54FB6B79B6EA8E2CB4E36D60 /* IQKeyboardManager+Internal.swift */; }; - 2CA14A63B721C39634397F49A17E5E43 /* Await.swift in Sources */ = {isa = PBXBuildFile; fileRef = C92514D638CA058C4E40501754C04C0C /* Await.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 2D4A4D18AC6DE990B350196BF5623061 /* JSONTreeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D872D4A3AC93DADBCFA61C6D9A819B9 /* JSONTreeView.swift */; }; - 2D88D6A79862A326D5702110DD10AD56 /* Wormholy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0DC58DD7393E77397E396B98EB7BE1A4 /* Wormholy.swift */; }; + 2C62052DCFAAA9C5DA2BB5619C4ED110 /* ContainElementSatisfying.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0DCCB7E13844141792F26DA17E9F2A88 /* ContainElementSatisfying.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 2CA0B3B43A972DF3AD79F58092E3403E /* IQKeyboardManager+Internal.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27E4103920DAD41207C515376538B5A2 /* IQKeyboardManager+Internal.swift */; }; + 2CA14A63B721C39634397F49A17E5E43 /* Await.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B97C385536ECA9485526486DC990ECF /* Await.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 2CF995D89B361C8D214D3DFEC7A230B9 /* QueryParamEncodableProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96909B228E0DE480414A01B306B78F9A /* QueryParamEncodableProtocol.swift */; }; + 2D01A5C74AD4D848CAAD1B972896AC07 /* Down-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 2DBE73DB45AB94762EE68960C907A094 /* Down-dummy.m */; }; + 2D4A4D18AC6DE990B350196BF5623061 /* JSONTreeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41417D017600B7A6C80E0DB98E70C384 /* JSONTreeView.swift */; }; + 2D88D6A79862A326D5702110DD10AD56 /* Wormholy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 22757A3DD0FCCB8D93C46FBC5F9AC8EF /* Wormholy.swift */; }; + 2DF21D1803082108B16B22D5AD75036B /* SPMessageUIDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8990E5D07883D1FD44D92144C7E6893E /* SPMessageUIDelegate.swift */; }; 2E19A5A36AC61C9DEA7AEFF5504A9AEE /* ConnectivityManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6A6FD606DAC23570D0869E9ADB9C53FF /* ConnectivityManager.swift */; }; - 2E4A5DBE53521CDF32DE3F02D18BD0AB /* MatchError.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA70AB1FC72552C15535A35825491DB9 /* MatchError.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 2E4A5DBE53521CDF32DE3F02D18BD0AB /* MatchError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 770DD20F6C81CA75AD5242593462D0AB /* MatchError.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; 2E5138271A6C79BDA3C0835F2596219B /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 94A1E9385C6926655A13C51E80576339 /* UIKit.framework */; }; 2E6030311C8978470BEEA3E8FAE6EE6A /* PvDataRequestResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C8C4EEED96D125502B0294C6C1281FC /* PvDataRequestResponse.swift */; }; - 2E63C920D2A491ECD6880A95D1542401 /* Nimble.h in Headers */ = {isa = PBXBuildFile; fileRef = BDB550F932CBD189789910C9B6870BB9 /* Nimble.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2EC96162DD6740ECE67FF38B8400A7C5 /* IQKeyboardManager+Debug.swift in Sources */ = {isa = PBXBuildFile; fileRef = 584714409875EC36B324152B364CB41D /* IQKeyboardManager+Debug.swift */; }; - 2EF70FE262C4E0EEE8FE1325733DFCFE /* World.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3471C7707707FBAD79099C9B57BD6843 /* World.swift */; }; - 2F1105C49C25F8276ACF74C96CB8FAEB /* QuickConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = FFD222F41B47B9AE9F517372D8FE632F /* QuickConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2F331B1D69FCC3AC28A80D244D58EC90 /* ExpectationMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5E1A0C8D588EF74F05959385D8228242 /* ExpectationMessage.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 2F7268B63ED1A1C9F9F8F6AD5415FF35 /* NMBStringify.h in Headers */ = {isa = PBXBuildFile; fileRef = 8E301C03A8E058837CE3DF645DFFB33E /* NMBStringify.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2FD7B8FF456B0D1E5589E2F1E1D0876B /* JSONCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6FBC4A662E9EFEF6E8CDB970B1F295CB /* JSONCell.swift */; }; - 2FF42BD55316BC55BB5758D32F1377BD /* World+DSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06F6B74E9FCFB7B7E714506BC5B559FC /* World+DSL.swift */; }; - 302A159A5FFC8FA2AC5C265186A8E6AA /* Collection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5A08DD564C8310F4849B503C867AC1C8 /* Collection.swift */; }; - 30A4245B306BF77D5EABEEC706F03A0C /* SPGDPRVendorDetailsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D4A2F3A0774E0C7FA0DDC122EE3476 /* SPGDPRVendorDetailsViewController.swift */; }; - 30D3F6DB4ACEB43EC870D0644E56875A /* Nimble-tvOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 9D889DD6FC3B1A7AA5C40A63AF6C2432 /* Nimble-tvOS-dummy.m */; }; - 31E3EFCB3AA348C7932638746A9CA317 /* Expression.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2FBED7D1071AC5E9CE5157EF8D170AA4 /* Expression.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 329D1E331CFDE43F39F2F27277A2AF55 /* WormholyConstructor.m in Sources */ = {isa = PBXBuildFile; fileRef = 9875DA72150ED198D9C402E2D0E5B59A /* WormholyConstructor.m */; }; + 2E63C920D2A491ECD6880A95D1542401 /* Nimble.h in Headers */ = {isa = PBXBuildFile; fileRef = A62B616AE6A6F954362F28DD8D88366B /* Nimble.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2EC96162DD6740ECE67FF38B8400A7C5 /* IQKeyboardManager+Debug.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8F8E11F0BA49C7755489AD82C54034C9 /* IQKeyboardManager+Debug.swift */; }; + 2EF70FE262C4E0EEE8FE1325733DFCFE /* World.swift in Sources */ = {isa = PBXBuildFile; fileRef = CD9D36A3F5DA5E98DB86DF08477AE877 /* World.swift */; }; + 2F1105C49C25F8276ACF74C96CB8FAEB /* QuickConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 5641AE647FA56F350066C84F00C50112 /* QuickConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2F331B1D69FCC3AC28A80D244D58EC90 /* ExpectationMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D0CC2596F659DEE896423741846BCDA /* ExpectationMessage.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 2F66710AA11FE59396A51F4C312F3A71 /* SPCCPAPartnersViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 71AE527D9F47E2791077868459FE12C7 /* SPCCPAPartnersViewController.swift */; }; + 2F7268B63ED1A1C9F9F8F6AD5415FF35 /* NMBStringify.h in Headers */ = {isa = PBXBuildFile; fileRef = 904C94CF67C84BF6E4E596BFF070663F /* NMBStringify.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2FD7B8FF456B0D1E5589E2F1E1D0876B /* JSONCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65757B11E6D99E944207C7CF13BC8187 /* JSONCell.swift */; }; + 2FF42BD55316BC55BB5758D32F1377BD /* World+DSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 840B719545A6909C9264D7360E140E74 /* World+DSL.swift */; }; + 30D3F6DB4ACEB43EC870D0644E56875A /* Nimble-tvOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 3B953B8D624CEB234E8380E1D61EB7C5 /* Nimble-tvOS-dummy.m */; }; + 31C31220B6F7DAC1CCE2651AD9C05D57 /* SPQRCode.swift in Sources */ = {isa = PBXBuildFile; fileRef = C16C9F04093CBB08AF1C50315D15B239 /* SPQRCode.swift */; }; + 31E3EFCB3AA348C7932638746A9CA317 /* Expression.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B3A7F1CDBF86AAF8BC24D91BB329589 /* Expression.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 3209828CCE65B5E0970E31E73B6E9024 /* images in Resources */ = {isa = PBXBuildFile; fileRef = 6FC46704C27355B19DB1F3B2AD88733B /* images */; }; + 325E357A09EF48EC8435FD430D416DFB /* SPUserData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6DC8858EC649722C3057FAEEDA659D61 /* SPUserData.swift */; }; + 329D1E331CFDE43F39F2F27277A2AF55 /* WormholyConstructor.m in Sources */ = {isa = PBXBuildFile; fileRef = 2934A524A3B3835F09EF2ECF8337CE24 /* WormholyConstructor.m */; }; + 3356F1FD1376797D11D15013865FFC5E /* MessagesResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 63C7966CAEA214BAD3C983313BA0AC6D /* MessagesResponse.swift */; }; 33BFF0F47456E17D66CD6CCAB32D9AA2 /* SPCampaignEnv.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA6142AA32563AA24734116A7CD4505E /* SPCampaignEnv.swift */; }; - 34555F287FDB6C87E11FCDE6FE7EEE06 /* PostNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E32FB7E94C073A25C13180045EAE1B8 /* PostNotification.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 34C39BDBFE7A2CC585787F5AFCA39FDE /* IQUIView+IQKeyboardToolbar.swift in Sources */ = {isa = PBXBuildFile; fileRef = D311BAA1A3182E612E89D8E73B55B58E /* IQUIView+IQKeyboardToolbar.swift */; }; + 33EE13961D6E579BEBD0E958B729E089 /* DownDebugTextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B3AC354F5A08216CE0ED780E5B2B82C /* DownDebugTextView.swift */; }; + 33FDAF015EFA45D32A06EC72CA88C7B5 /* jest.config.json in Resources */ = {isa = PBXBuildFile; fileRef = A7FC9F7FA7066E0981C00753F53D557A /* jest.config.json */; }; + 34555F287FDB6C87E11FCDE6FE7EEE06 /* PostNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = 07909ED5D1C014D7B149EB7F691CBF93 /* PostNotification.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 34C39BDBFE7A2CC585787F5AFCA39FDE /* IQUIView+IQKeyboardToolbar.swift in Sources */ = {isa = PBXBuildFile; fileRef = C621160453E58A808103CD9384B2AD4E /* IQUIView+IQKeyboardToolbar.swift */; }; + 34DD191994AF3E86EC5B28122A228D82 /* SPPrivacyManagerTab.swift in Sources */ = {isa = PBXBuildFile; fileRef = 729B821959DF5795610C23B9E22DF957 /* SPPrivacyManagerTab.swift */; }; 35073C953C3147F75B066DCC14213DD9 /* DeleteCustomConsentRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C1C631F418F2FB214B77D554F0FE3E4 /* DeleteCustomConsentRequest.swift */; }; - 35A7D34489E1D3963D6F0BCEFBEF00C0 /* CwlMachBadInstructionHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = D33B61D2DB77284C43D27F8708BA7514 /* CwlMachBadInstructionHandler.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 352F3D7C345DC45E72C9BD5DFA9EB2B7 /* SPCCPAVendorDetailsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A79EEAC022AE86D468A8DBB9B570B36F /* SPCCPAVendorDetailsViewController.swift */; }; + 35A7D34489E1D3963D6F0BCEFBEF00C0 /* CwlMachBadInstructionHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = 42CBB759E4790435EC90368AFB4CFCF5 /* CwlMachBadInstructionHandler.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 35B30EA32042191BA3A47020A0EF8D2B /* houdini_html_e.c in Sources */ = {isa = PBXBuildFile; fileRef = 1DFB52D0BAC06E2A28FC6B18D1216BF0 /* houdini_html_e.c */; }; + 35D85D923745C260A5B46300F5B4DB90 /* SPError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8202D46743AF5E706935EB8883F7CA30 /* SPError.swift */; }; + 35DE6D89FD70FBF62BDAECB851EB79ED /* ConnectivityManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6A6FD606DAC23570D0869E9ADB9C53FF /* ConnectivityManager.swift */; }; + 36130E2B075ADD35982549E189C19D74 /* ChoiceRequests.swift in Sources */ = {isa = PBXBuildFile; fileRef = EB6B3287C11FE8E32CE6935EDB60FB97 /* ChoiceRequests.swift */; }; 363B23DCB65E101320FE55BD7059FB50 /* Pods-SourcePointMetaAppUITests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = B583A85EEA77DA2A44A2FEF3AFEC3A67 /* Pods-SourcePointMetaAppUITests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 37AA4A1FA94A1641E73EC8DA6053940A /* CwlCatchException.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C0BBEBF8BE0324C551F3491513BE35C /* CwlCatchException.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 37C241264893C04ABFCB123FB86AB2FD /* WHLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6F1C8D9B026F77F6474A77DF50D0E004 /* WHLabel.swift */; }; - 38994215E32BC2C62181AC2733E723B3 /* CwlDarwinDefinitions.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA405AC488A12FC40ECD7F0251F234C0 /* CwlDarwinDefinitions.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 38F8D5CF6D4733844DF58FCB4607BC89 /* Expectation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62A2DC7533D6F811A96F2FB5FD882F7D /* Expectation.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 3908D5A3F69A7F521721DA6EF8B6DB87 /* WHBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8F88D846671FA71C3404A7DC45B8F789 /* WHBundle.swift */; }; + 370D31F62CBCEB306E6897421F69227B /* SPDateCreated.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95EE7338C8BA95D60D432002B45FC916 /* SPDateCreated.swift */; }; + 37AA4A1FA94A1641E73EC8DA6053940A /* CwlCatchException.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF234D7502CABD3ECCE3DB47C14619FE /* CwlCatchException.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 37C241264893C04ABFCB123FB86AB2FD /* WHLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = C2766E728CD9592E3A30878EBA5AF776 /* WHLabel.swift */; }; + 38994215E32BC2C62181AC2733E723B3 /* CwlDarwinDefinitions.swift in Sources */ = {isa = PBXBuildFile; fileRef = F8E0156BBDCAA49BAAE07A1878819159 /* CwlDarwinDefinitions.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 38A0F67E25F92077FFD2F118FB7709EA /* images in Resources */ = {isa = PBXBuildFile; fileRef = 6FC46704C27355B19DB1F3B2AD88733B /* images */; }; + 38F8D5CF6D4733844DF58FCB4607BC89 /* Expectation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2250D5EFB0AB8081F75296DB53AFB6FD /* Expectation.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 3908D5A3F69A7F521721DA6EF8B6DB87 /* WHBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9840C2E2FAEF98DDD565CE6D3440E98 /* WHBundle.swift */; }; 39287B59136EC4EF7BFB8FC4FF663274 /* ConsentViewController-iOS-ConsentViewController in Resources */ = {isa = PBXBuildFile; fileRef = 4BEAC88AF84CC484F55B8A6C048444D9 /* ConsentViewController-iOS-ConsentViewController */; }; - 3935D0C24B11DB551A9FD316B428FD00 /* SPString.swift in Sources */ = {isa = PBXBuildFile; fileRef = 86F1F5AA5FEC4184D3FD2A77AFFFF304 /* SPString.swift */; }; - 39C33A7A44017A433054B67ABBFE751D /* SPPrivacyPolicyViewController.xib in Sources */ = {isa = PBXBuildFile; fileRef = F81E028ACDFF0830D7A2F10747835620 /* SPPrivacyPolicyViewController.xib */; }; - 3A41A286973A42FC6998DF11D92C212E /* MatchError.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA70AB1FC72552C15535A35825491DB9 /* MatchError.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 3ABAA6CC644E61C7EB43B54498A3FD18 /* BeLogical.swift in Sources */ = {isa = PBXBuildFile; fileRef = 87FE69F89503F5D30CB44DD04BB17F70 /* BeLogical.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 3B2B15092D3E22A93C2395DD90E2A660 /* DSL+Wait.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96D79CB65150A43F4AC3FEED83CA7362 /* DSL+Wait.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 39F04DF0BBE3970C384CD2FF65B16393 /* GDPRPMConsentSnapshot.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7C69565E1DA8AA14202A260FB5A7177F /* GDPRPMConsentSnapshot.swift */; }; + 3A41A286973A42FC6998DF11D92C212E /* MatchError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 770DD20F6C81CA75AD5242593462D0AB /* MatchError.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 3A6200D13A2426DFD4FAED9DDF60281B /* NSAttributedString+HTML.swift in Sources */ = {isa = PBXBuildFile; fileRef = D789344B063B6B4798D349FDDA21D27C /* NSAttributedString+HTML.swift */; }; + 3ABAA6CC644E61C7EB43B54498A3FD18 /* BeLogical.swift in Sources */ = {isa = PBXBuildFile; fileRef = F27E7590E21F4CF0EF3F520B93B1FA63 /* BeLogical.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 3ADA0364D58A903E62E0E01143F38FEF /* html.c in Sources */ = {isa = PBXBuildFile; fileRef = 117041B8647E513963A6BA13266955A3 /* html.c */; }; + 3B2B15092D3E22A93C2395DD90E2A660 /* DSL+Wait.swift in Sources */ = {isa = PBXBuildFile; fileRef = DB8595FA58C64090133B1404C303988C /* DSL+Wait.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 3B832557CB7196E6318D9F84D1BE535C /* references.h in Headers */ = {isa = PBXBuildFile; fileRef = 51039E4EFFDF22E0695ED52DB077E0A6 /* references.h */; settings = {ATTRIBUTES = (Project, ); }; }; 3BF9665C115E058DB3B59412923930E0 /* SPCampaignType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FC586DF51E03DD2DAFAF4D9E87488F6 /* SPCampaignType.swift */; }; - 3C0E9E5820E0E66C6A809ADFCBD3DE1C /* NimbleXCTestHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95C27240FC9EE37EA1145B55C47A35A4 /* NimbleXCTestHandler.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 3C47FFA8B1FD56F1A6C9F16BC228AF4B /* SPStringifiedJSON.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0ED67E7A9F8438FD8A8CB5F0D10DC6F6 /* SPStringifiedJSON.swift */; }; - 3C4ADA4FDACF71B2B265BC2EF6EA9866 /* SPURLExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = F9F61E6C51A05142C45F3411880E2286 /* SPURLExtensions.swift */; }; - 3C807B46079270152880FCC0CEDF7A43 /* BeginWith.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8DDFFFCCCF50BCA33E8F06F5C7CA4D2 /* BeginWith.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 3D96722FFAFA9FFFA92796DEBDF60DB1 /* WHDate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2B0EB87CEDD38E75275C206B5D086DC1 /* WHDate.swift */; }; - 3DA83EA42CD23CB31F43A83CDCABF147 /* AdapterProtocols.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4DA121B8553B31DCE630855DD4FF6C5C /* AdapterProtocols.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 3DF4103C4414C37E64CA1849D5DB3F03 /* SPCCPANativePrivacyManagerViewController.xib in Sources */ = {isa = PBXBuildFile; fileRef = 1AF9837F2C385282B58267362D7FC52F /* SPCCPANativePrivacyManagerViewController.xib */; }; - 3E48315AEB5A1C341BCD9F44B63E21C9 /* SPPMHeader.xib in Sources */ = {isa = PBXBuildFile; fileRef = 6AD83F4ACF13BF94480A96A68259475C /* SPPMHeader.xib */; }; + 3C0E9E5820E0E66C6A809ADFCBD3DE1C /* NimbleXCTestHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 22868D7C990287D519469FED4DA72B95 /* NimbleXCTestHandler.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 3C16AE323E394B78AE148637D4506E26 /* Pods-NativePMExampleAppUITests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = D463E95BBD33777E282E9ACA1764722C /* Pods-NativePMExampleAppUITests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3C807B46079270152880FCC0CEDF7A43 /* BeginWith.swift in Sources */ = {isa = PBXBuildFile; fileRef = 137E03F5404ED389DB217A87950DE3D4 /* BeginWith.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 3CECF9B89313F74EFB12CB4602965DBB /* DownTextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 42F15ADA74D492BAC76AB3EDB6C12D3D /* DownTextView.swift */; }; + 3D54CF73C49DDAF041A27EF80291C7FF /* AddOrDeleteCustomConsentResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1118F28FE3020A85B55461B0E722E82D /* AddOrDeleteCustomConsentResponse.swift */; }; + 3D96722FFAFA9FFFA92796DEBDF60DB1 /* WHDate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94A8DB62DF77D798B329646BD66F6239 /* WHDate.swift */; }; + 3DA83EA42CD23CB31F43A83CDCABF147 /* AdapterProtocols.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6779492234D4F962E2CF571B2C94019D /* AdapterProtocols.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; 3E9EC5E741D104D87387618F660244D6 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 358E1F97E66A2ED0D7C2706C3E3E104F /* Foundation.framework */; }; - 3F01EED6380B596E1D0C1497CBCF9B95 /* IQUITextFieldView+Additions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D9B81781A4383C36C41C873449913C9 /* IQUITextFieldView+Additions.swift */; }; - 3F1B4420D6DB10088BD098D804B48C01 /* SPGDPRVendorDetailsViewController.xib in Sources */ = {isa = PBXBuildFile; fileRef = B3BF08EA0B6015B0A3D1D6FCF421CE09 /* SPGDPRVendorDetailsViewController.xib */; }; - 3F5649C2948BF533FFF15431891B7B27 /* AssertionDispatcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0CBBCA9F35316A2FA939679E7E6B0D3 /* AssertionDispatcher.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 3EBDB04379A9C0962DFC76B18CD3BAAB /* SPConsentManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8759469FD400284FCCF8A7E3DF082124 /* SPConsentManager.swift */; }; + 3F006B30A43C10FD1B62079CA25753E8 /* HtmlBlock.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6D9E52F42BBF10055CE335DF2CAD2D96 /* HtmlBlock.swift */; }; + 3F01EED6380B596E1D0C1497CBCF9B95 /* IQUITextFieldView+Additions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3463540E81501C1B8A2E50EB8B788F45 /* IQUITextFieldView+Additions.swift */; }; + 3F5649C2948BF533FFF15431891B7B27 /* AssertionDispatcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8B7ECBC48D5A4C7558411E8764C9E1F /* AssertionDispatcher.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; 3F761FDB9877987DD3061A5252F860B0 /* Collection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5A08DD564C8310F4849B503C867AC1C8 /* Collection.swift */; }; 3F76A3C79D13A4F5379EC9B5D4D3F62A /* SPMessageUIDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8990E5D07883D1FD44D92144C7E6893E /* SPMessageUIDelegate.swift */; }; - 3FC353C7A045973FC40D8E559866E08A /* PMVendorManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = C950C6328AA1CFBB8EDB751B602E74CD /* PMVendorManager.swift */; }; - 400C7AE826CDAEB8321CC822E9C0D2CC /* InputStream+Utils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4E66B8734DB4639A722D9F3ACFFF1181 /* InputStream+Utils.swift */; }; - 4046282B2EA1A8066B9B98E1A04F7976 /* CwlMachBadInstructionHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 5FF2EA9F4A39CBF029477C1A037C2DF8 /* CwlMachBadInstructionHandler.m */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 3F841FF64D0FE49845D4E3C8E1E52B12 /* SPCCPAVendorDetailsViewController.xib in Sources */ = {isa = PBXBuildFile; fileRef = 36DFAE9D661C3929C5431B62FA5EACC9 /* SPCCPAVendorDetailsViewController.xib */; }; + 400C7AE826CDAEB8321CC822E9C0D2CC /* InputStream+Utils.swift in Sources */ = {isa = PBXBuildFile; fileRef = F65671B772731C7D68ADCBDE962B9D0E /* InputStream+Utils.swift */; }; + 4046282B2EA1A8066B9B98E1A04F7976 /* CwlMachBadInstructionHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = A315A7B6ECBF785825BD78B7BB6D04FC /* CwlMachBadInstructionHandler.m */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; 412817D2D65D03B34F2C94E90EFE29CB /* MetaDataRequestResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = CF775E5B55397CAE6F6DABC7C0AAAC07 /* MetaDataRequestResponse.swift */; }; - 413260E62885EA8DFE56A3888FCD0C9E /* SPCampaigns.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2297C272504B8E08B989C847C14513F5 /* SPCampaigns.swift */; }; - 4141F1CB2FE41106D513910245953AF4 /* SPUserData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6DC8858EC649722C3057FAEEDA659D61 /* SPUserData.swift */; }; - 41434FD25439032FB1D87805A509C1CE /* IDFAStatusReportRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9965D6C300E75DBE0593F3B2EBBC2788 /* IDFAStatusReportRequest.swift */; }; - 417DDBC986C3C6F2ED9D7340691114FA /* RequestCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = E0C1D0222CBCA919DD70190DE2A3EEF1 /* RequestCell.xib */; }; - 41A2FCA5CB1C7E65BD30A0D8ABF1DC31 /* SuiteHooks.swift in Sources */ = {isa = PBXBuildFile; fileRef = AC56FD03C868E910C7C5CCD0FB2618DA /* SuiteHooks.swift */; }; - 41CD40F5713CD71AD5AB1471E81C97E1 /* IQBarButtonItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6FE11A5639FE800A9D5DEB5C4323387B /* IQBarButtonItem.swift */; }; + 41A2FCA5CB1C7E65BD30A0D8ABF1DC31 /* SuiteHooks.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A8915805A6E3A56ECCC93195CA0E17A /* SuiteHooks.swift */; }; + 41CD40F5713CD71AD5AB1471E81C97E1 /* IQBarButtonItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD2D21D6421A7ED9A1EABC6BC6965D44 /* IQBarButtonItem.swift */; }; + 4253F7AD016BCC459191FA299A408AD4 /* ErrorMetricsRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = A558331540B7C379868C3D30BC93FDDB /* ErrorMetricsRequest.swift */; }; 42B8D0BBF8305C5F423D260E20B989E4 /* SPUserDefaults.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D266C9D1A3501BDFF255989526FEE20 /* SPUserDefaults.swift */; }; - 42B8D19739F67E4818160EAAB9C5066F /* ExampleMetadata.swift in Sources */ = {isa = PBXBuildFile; fileRef = B9309B3D3DC4E4D9D1C1B83FA9BE5E71 /* ExampleMetadata.swift */; }; - 42E711D1F160C2C6F2DA60860B586160 /* ThrowError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77A48D3B91441E2740A9BFCEC337829E /* ThrowError.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 42B8D19739F67E4818160EAAB9C5066F /* ExampleMetadata.swift in Sources */ = {isa = PBXBuildFile; fileRef = FB9663275D36F2DF8F24EE7DBC70A4F7 /* ExampleMetadata.swift */; }; + 42E711D1F160C2C6F2DA60860B586160 /* ThrowError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6A21A8A668B97E7B42405AC8FFD20999 /* ThrowError.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 42FBD32138517254E25A426FF3564141 /* QuoteStripeOptions.swift in Sources */ = {isa = PBXBuildFile; fileRef = F122B45B33E4C2924F2A6034B7D35605 /* QuoteStripeOptions.swift */; }; 4388D30FE3951BD95E1D8DE7A99F2BAA /* ChoiceRequests.swift in Sources */ = {isa = PBXBuildFile; fileRef = EB6B3287C11FE8E32CE6935EDB60FB97 /* ChoiceRequests.swift */; }; - 43C034ABF62D3288A97060938722F8FF /* CCPAPMConsentSnapshot.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CD697B26C8A8E16FF099B230253F0C9 /* CCPAPMConsentSnapshot.swift */; }; - 444A6FD580E349F1CBD890848056E15F /* SPUIColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 201D7C8739FB6CC3D963636E0B6B616B /* SPUIColor.swift */; }; + 45550EBD4674E087DFAAFD4F9F2F46CD /* buffer.h in Headers */ = {isa = PBXBuildFile; fileRef = E3990458C340AF97F1CC940D19CA7E33 /* buffer.h */; settings = {ATTRIBUTES = (Project, ); }; }; 45A179715C0BF3E708FF268846F68429 /* ChoiceAllResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 704402944C6D6903D1A98585A725C4BB /* ChoiceAllResponse.swift */; }; - 45E208809C318C2D9021C7BE75A4E132 /* ContainElementSatisfying.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F16F531369D23712F6B65C12BDCC6DD /* ContainElementSatisfying.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 471AD48DA44F33E6A845DF0A054750AA /* Quick-tvOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 3328D8887B4B37F498CCDF1D81D15CA5 /* Quick-tvOS-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 47214B85A1771FA93729FD086EC2FE8D /* Equal.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E502E337C35FF38CB7A8AB9D3256133 /* Equal.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 488398C4489C93FA76B4B0A09667866E /* SPMessageLanguage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 595A61A825C99B50BA12B98C40ACB365 /* SPMessageLanguage.swift */; }; - 489F8A0DEEB3104E88D94946958AD257 /* IncludeData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 44CBC0F09E3E9CEA67E781F19EFC5D09 /* IncludeData.swift */; }; + 45E208809C318C2D9021C7BE75A4E132 /* ContainElementSatisfying.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0DCCB7E13844141792F26DA17E9F2A88 /* ContainElementSatisfying.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 46BFD26F5AA2F151435475573546914B /* IncludeData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 44CBC0F09E3E9CEA67E781F19EFC5D09 /* IncludeData.swift */; }; + 46F5F856DAD49C008AADA8781E7EAE84 /* chunk.h in Headers */ = {isa = PBXBuildFile; fileRef = 3072869E17E16DC8447F4923925AF669 /* chunk.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 471AD48DA44F33E6A845DF0A054750AA /* Quick-tvOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 2CBC03C3431802F9F218104BDFB237F7 /* Quick-tvOS-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 47214B85A1771FA93729FD086EC2FE8D /* Equal.swift in Sources */ = {isa = PBXBuildFile; fileRef = 03FB2C2EAA650057FDB80218C9538C18 /* Equal.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 479B3C72C4791E8DBE7E983D443AF4A4 /* SPCCPAManagePreferenceViewController.xib in Sources */ = {isa = PBXBuildFile; fileRef = 7DB81E8B96ED30450262361FC146BF38 /* SPCCPAManagePreferenceViewController.xib */; }; + 4835228BFE47203CE8929EEAE40707DA /* Strong.swift in Sources */ = {isa = PBXBuildFile; fileRef = DBFB437DC66245AD0C2BDC0A5C302AB1 /* Strong.swift */; }; 4A7EAA2B0EB864235C3948F4337DFBBC /* Pods-ObjC-ExampleAppUITests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 4A29A77F9DF18C7CD65E01B28F6BD859 /* Pods-ObjC-ExampleAppUITests-dummy.m */; }; - 4B9E8EEF4D2F00E233D9A32332BF0337 /* SPAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05EF300E2B3F73B19667BC15EE20108D /* SPAction.swift */; }; - 4BA4814575EB8ACAEB44F16D0F3CBB00 /* Wormholy-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 3B6854E41374AFB22C72D714143F0EC3 /* Wormholy-dummy.m */; }; - 4C776F70742D9DAAF4D5C24AB053815C /* SPCustomViewController.xib in Sources */ = {isa = PBXBuildFile; fileRef = DBA599E1E0DAC257521B46F238B2533D /* SPCustomViewController.xib */; }; - 4CC2A6FB9B5D1937EAE38FF3677F819C /* jest.config.json in Resources */ = {isa = PBXBuildFile; fileRef = A7FC9F7FA7066E0981C00753F53D557A /* jest.config.json */; }; - 4DF348941BBF37C8BE2B161BB830E946 /* QCKDSL.m in Sources */ = {isa = PBXBuildFile; fileRef = 7013A63FA1E54FE0A2A7B2EE743C56B9 /* QCKDSL.m */; }; - 4E47BB1D648DE66A0BB3A3350A78F4F1 /* Barcode.png in Resources */ = {isa = PBXBuildFile; fileRef = 3FAF31771437319132C8D087120F7EB2 /* Barcode.png */; }; - 4F396AAA9310A5C272F8B32223746908 /* Quick-tvOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 3CC3EBE52D8D69A78630C1F44CB5406F /* Quick-tvOS-dummy.m */; }; + 4BA4814575EB8ACAEB44F16D0F3CBB00 /* Wormholy-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 5F4D5CD9F1F8FF97FC14E75387B62A87 /* Wormholy-dummy.m */; }; + 4DF348941BBF37C8BE2B161BB830E946 /* QCKDSL.m in Sources */ = {isa = PBXBuildFile; fileRef = EA0192695DA1B280F4BAF140ACD24C02 /* QCKDSL.m */; }; + 4DF9C5DA441A283BDA2E6F8E7A650BE8 /* PvDataRequestResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C8C4EEED96D125502B0294C6C1281FC /* PvDataRequestResponse.swift */; }; + 4E0198FBA310B7DF7A1989FC6C9D1BA1 /* UIFont+Traits.swift in Sources */ = {isa = PBXBuildFile; fileRef = E5E649623D9E40861B378DBDEF1928D7 /* UIFont+Traits.swift */; }; + 4EC56CB51B1323FE073B0A0E6E567F5D /* SP_Icon.png in Resources */ = {isa = PBXBuildFile; fileRef = 526970B89C1898F90B6255738CD35584 /* SP_Icon.png */; }; + 4F396AAA9310A5C272F8B32223746908 /* Quick-tvOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 2442FE4F068F207E66D30731905E72C0 /* Quick-tvOS-dummy.m */; }; + 4F801888E38618F6FA1A4BD2D275A9E1 /* CustomBlock.swift in Sources */ = {isa = PBXBuildFile; fileRef = 79EB69639263444FE6B71A857954296D /* CustomBlock.swift */; }; 4FB356B14A64937D37E9D6E64F481487 /* Pods-ConsentViewController_Example-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = C45FE0ACA89D6EAC73605EB0429AB073 /* Pods-ConsentViewController_Example-dummy.m */; }; - 4FCC48948A8ABE9B7454E509666837F1 /* SPJSReceiver.js in Resources */ = {isa = PBXBuildFile; fileRef = D6D8E4D0F1969E5EC16BDED1585EE87C /* SPJSReceiver.js */; }; - 50A0496078AD88960AF232777D740331 /* ChoiceRequests.swift in Sources */ = {isa = PBXBuildFile; fileRef = EB6B3287C11FE8E32CE6935EDB60FB97 /* ChoiceRequests.swift */; }; - 50AD7FAF139A67A2D2E2778B90CD988B /* SP_Icon.png in Resources */ = {isa = PBXBuildFile; fileRef = 526970B89C1898F90B6255738CD35584 /* SP_Icon.png */; }; 514C8713C359601A04F868F11DB3A993 /* ConsentStatusResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = B09EB7BFDBBBDDFE4D08E7ADCED030C7 /* ConsentStatusResponse.swift */; }; - 52775FCCD0C7312EFB69C8CD45E32A7C /* MessagesRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2B199836B37103F420037E84A61A695F /* MessagesRequest.swift */; }; - 52AB0C99279CF7A8AA084E0B8E86E119 /* QueryParamEncodableProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96909B228E0DE480414A01B306B78F9A /* QueryParamEncodableProtocol.swift */; }; - 548292E25DAB498A609655EBFDFC32C3 /* Pods-NativePMExampleApp-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 79B3A869D1182177E19095C737657B2A /* Pods-NativePMExampleApp-dummy.m */; }; - 54A6F5339FB00609AEAB163061A512B9 /* NMBStringify.m in Sources */ = {isa = PBXBuildFile; fileRef = F40DED4807355371F607A45E96E63C9B /* NMBStringify.m */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 532A7626A6EDC742BB82B2971A9102BE /* SPGDPRManagePreferenceViewController.xib in Sources */ = {isa = PBXBuildFile; fileRef = 488C4BA0A9F62B5E7C5FAC11D20B87B7 /* SPGDPRManagePreferenceViewController.xib */; }; + 533822BFD52AC1F7F673EA75F0C89A11 /* IDFAStatusReportRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9965D6C300E75DBE0593F3B2EBBC2788 /* IDFAStatusReportRequest.swift */; }; + 5442E69F7884A02F684EE6359D31E1C3 /* utf8.h in Headers */ = {isa = PBXBuildFile; fileRef = C4FC37CE1C465F65FBF6CC8565C0EFE4 /* utf8.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 54A6F5339FB00609AEAB163061A512B9 /* NMBStringify.m in Sources */ = {isa = PBXBuildFile; fileRef = 11860DB62CCE2A12727931490CF86F58 /* NMBStringify.m */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; 54E2A149813E9D75302D219FB6E4251D /* SPJSReceiver.spec.js in Resources */ = {isa = PBXBuildFile; fileRef = 4643D453357EFA79CCBA741B0B5B2BC3 /* SPJSReceiver.spec.js */; }; 559D953A9516B0617A3A3F45D6EA6BAC /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 358E1F97E66A2ED0D7C2706C3E3E104F /* Foundation.framework */; }; 55D62EE4B2E04CB746D2272E1AC0BC95 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8F14AA232F04EB7627811BC6CD5E590F /* Foundation.framework */; }; - 5634858F92D981FBEA4B8FB2A225C73C /* SPJSReceiver.spec.js in Resources */ = {isa = PBXBuildFile; fileRef = 4643D453357EFA79CCBA741B0B5B2BC3 /* SPJSReceiver.spec.js */; }; - 56667797068310AACD8427FF0C049766 /* jest.config.json in Resources */ = {isa = PBXBuildFile; fileRef = A7FC9F7FA7066E0981C00753F53D557A /* jest.config.json */; }; - 5761914AF2638F1E6407F7FA8E56FE05 /* Nimble-tvOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 187373211831CCBEF561A2272DEE9C1E /* Nimble-tvOS-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 588356B78FD84642364005940C671F2A /* BeGreaterThan.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA419EAEB778AA2B235EC76B0B4139C2 /* BeGreaterThan.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 5943EC4F48556922F7D13A4B15E23791 /* ActionableTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 17F52D4230F9EBC8AD821641D6330AF2 /* ActionableTableViewCell.xib */; }; + 568E3542065620142738AEFEFBF17EE7 /* DownLayoutManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 340BD7B6229112CF361278C3D4A29AC1 /* DownLayoutManager.swift */; }; + 5761914AF2638F1E6407F7FA8E56FE05 /* Nimble-tvOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D635DB9163CAD1427C26932646DACCE /* Nimble-tvOS-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 58191E162205E89E29B6EE87BE99EDA6 /* Styler.swift in Sources */ = {isa = PBXBuildFile; fileRef = E3A5BCA07FC62773D3782117F0871384 /* Styler.swift */; }; + 588356B78FD84642364005940C671F2A /* BeGreaterThan.swift in Sources */ = {isa = PBXBuildFile; fileRef = F17A64B69F9CAA574619498002BA3ACC /* BeGreaterThan.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; 59FD20D8AD7E5A36A5C0C97A29D492CC /* OSLogger.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99D00C84BC43874116119C8D69B762B1 /* OSLogger.swift */; }; - 5A44234D16E66A73450BE2E8491E7204 /* Predicate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8D9E8ACF78DB04B0135AB5510FB9EBFB /* Predicate.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 5AB14ABEA4BF7390AA3651591F846E04 /* PrivacyManagerViewData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 57587477437D5EB52AB0FCA9D1021112 /* PrivacyManagerViewData.swift */; }; - 5AE786AF62149DA97E359CF812559E0F /* SPQRCode.swift in Sources */ = {isa = PBXBuildFile; fileRef = C16C9F04093CBB08AF1C50315D15B239 /* SPQRCode.swift */; }; - 5B0FEAEB0385C632E303BFABAF6AA156 /* RequestCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA5277B5E66A8B6A14870A334B8F7949 /* RequestCell.swift */; }; - 5B246D99FEC5DC2B98608CB947FFD794 /* GDPRPMPayload.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3FA0ECBFCCF2161984F16A0B1F85650D /* GDPRPMPayload.swift */; }; + 5A44234D16E66A73450BE2E8491E7204 /* Predicate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 28DB72A698D4BB26E79A8534A15FD073 /* Predicate.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 5A980E91374F12F6A1CF8D57177F2E7D /* SPNativeUI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68A496378D7EC9AF074F5723A535B568 /* SPNativeUI.swift */; }; + 5AA0BAAC3035055CAD9745B7937C4414 /* SPAppleTVButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF40733DAE3BB4F60963306FEE1A082B /* SPAppleTVButton.swift */; }; + 5B0FEAEB0385C632E303BFABAF6AA156 /* RequestCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6BF9B0F4B24AC371456E88A2A3DC4027 /* RequestCell.swift */; }; + 5BF302777FEE61C4A372ACE8052BB771 /* SPJSReceiver.spec.js in Resources */ = {isa = PBXBuildFile; fileRef = 4643D453357EFA79CCBA741B0B5B2BC3 /* SPJSReceiver.spec.js */; }; 5CB69F820EF72B0292A5ACEC267F9891 /* SPJSReceiver.js in Resources */ = {isa = PBXBuildFile; fileRef = D6D8E4D0F1969E5EC16BDED1585EE87C /* SPJSReceiver.js */; }; - 5DBC721DD5D131F5241ECDC72AFACCC5 /* SPCCPAPartnersViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 71AE527D9F47E2791077868459FE12C7 /* SPCCPAPartnersViewController.swift */; }; + 5CD0DBF2E02E75DAD92FA40AA2164150 /* BlockBackgroundColorAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = 412EEDB4587FF3FBE3B0FA5D464BA14B /* BlockBackgroundColorAttribute.swift */; }; 5DD5374A58D82E2A3B62203B72631ECD /* Pods-AuthExample-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = E9B9DE8BE49CD9DD2D6D3F6A9B633732 /* Pods-AuthExample-dummy.m */; }; - 5DDE274FF0CD1DCE229F8974D243723A /* Quick.h in Headers */ = {isa = PBXBuildFile; fileRef = DF6663A2B0494D4B93CA53648FB360FE /* Quick.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5DF674AF1663283EA99F786EA8A8CADD /* QCKDSL.m in Sources */ = {isa = PBXBuildFile; fileRef = 7013A63FA1E54FE0A2A7B2EE743C56B9 /* QCKDSL.m */; }; - 5E72D2F709A7F6968F99E7BDD0E93A5E /* EndWith.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2796304021F2B70AB43357F636F6CA93 /* EndWith.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 5EAF04CF96998480A0CB77B3F9BB72D6 /* Filter.swift in Sources */ = {isa = PBXBuildFile; fileRef = B610DD493924EDEE1B3C18FBEC80AED6 /* Filter.swift */; }; - 5EDAC6C338E6FEB547A08C927C869BF0 /* Nimble-iOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 8299BA7ADAB694A9E8548659E55265C2 /* Nimble-iOS-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5F80346C24851584369CBBF6B8FEA980 /* SatisfyAnyOf.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5867AC771193408B1D7C4BCF4272C4E1 /* SatisfyAnyOf.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 5FCDE329C45C447A8189F5E431CFA144 /* Behavior.swift in Sources */ = {isa = PBXBuildFile; fileRef = A68EF4B7B65E0118195CC20531A723CD /* Behavior.swift */; }; - 603C8E76A3B6D7EBE2FF64A1B0A9C316 /* Bundle+Framework.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3426D64DAD0355F382B9597FB52D8F2E /* Bundle+Framework.swift */; }; + 5DDE274FF0CD1DCE229F8974D243723A /* Quick.h in Headers */ = {isa = PBXBuildFile; fileRef = 10FD40774BB0C4CD4661550DCF7B90F9 /* Quick.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5DF674AF1663283EA99F786EA8A8CADD /* QCKDSL.m in Sources */ = {isa = PBXBuildFile; fileRef = EA0192695DA1B280F4BAF140ACD24C02 /* QCKDSL.m */; }; + 5E72D2F709A7F6968F99E7BDD0E93A5E /* EndWith.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6B404CBE40EFC7C7BDE894D329EDD7C2 /* EndWith.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 5E97D00BE95DFA6BCA5D8E0A79070B30 /* List.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7520B9EDE9D4F5F035EFC7486AE11716 /* List.swift */; }; + 5EAF04CF96998480A0CB77B3F9BB72D6 /* Filter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B7329FE8B6F03A482CB9D887F017505 /* Filter.swift */; }; + 5EDAC6C338E6FEB547A08C927C869BF0 /* Nimble-iOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 0059947722F656B119FD60C97AC833F6 /* Nimble-iOS-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5F1DFFCE0F4F5335943499EFB042E85B /* SPGDPRCategoryDetailsViewController.xib in Sources */ = {isa = PBXBuildFile; fileRef = B3823B05E9FB89A9BCCC5D629032DE19 /* SPGDPRCategoryDetailsViewController.xib */; }; + 5F80346C24851584369CBBF6B8FEA980 /* SatisfyAnyOf.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B85932749565B4906CC95F83538C516 /* SatisfyAnyOf.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 5FCDE329C45C447A8189F5E431CFA144 /* Behavior.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F16564FBAA0831A0474BCEA8CEFC281 /* Behavior.swift */; }; 609D2A292455C3C5B2B90737DA27E6A2 /* Pods-AuthExampleUITests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 641478048A05018FE96D042EAB9E67ED /* Pods-AuthExampleUITests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 60C6606FF8176EE5A38870CFD9F649C8 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 358E1F97E66A2ED0D7C2706C3E3E104F /* Foundation.framework */; }; - 6152AF6B5E1053E4E7BDADCE0CF309A7 /* QuickConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = FFD222F41B47B9AE9F517372D8FE632F /* QuickConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6152AF6B5E1053E4E7BDADCE0CF309A7 /* QuickConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 5641AE647FA56F350066C84F00C50112 /* QuickConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; 63A4A7A93EFD4AB23496EB11C3BEBCEB /* NSObjectExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4EB416474AB2BF00B186E26CC4C2DF76 /* NSObjectExtensions.swift */; }; - 63B3348C2C4F1056501E4735E71A2F08 /* SPConsentManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8759469FD400284FCCF8A7E3DF082124 /* SPConsentManager.swift */; }; - 63D4D4EA004E705C0F20A803B3881ABB /* SPFocusableTextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 115DBA656BE7CA01AF5CE4445AFBE8F8 /* SPFocusableTextView.swift */; }; + 646A2B0AFBDCD6C6E60455A546A33EA5 /* SPGDPRPartnersViewController.xib in Sources */ = {isa = PBXBuildFile; fileRef = EDC5A0B2DE3A8B3CB5DE05B940B2213A /* SPGDPRPartnersViewController.xib */; }; 64B890C31CCB4DBBE350F747DF9ABBE9 /* Pods-NativeMessageExample-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 556E2CB0C8EF0A8C8FFC3432D8CFF6C9 /* Pods-NativeMessageExample-dummy.m */; }; - 65C76C00DA55D5BDCED24E6C46DE438D /* ToSucceed.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5DDAA996CFA91C3DBF06B7B0A60248D8 /* ToSucceed.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 6627FD3615933A6F6E8FAA73B14C7D52 /* BeGreaterThan.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA419EAEB778AA2B235EC76B0B4139C2 /* BeGreaterThan.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 66B8B2D5EB06FEEA8B1D2ACA4B92E32F /* SPCCPACategoryDetailsViewController.xib in Sources */ = {isa = PBXBuildFile; fileRef = 489CA12B18F8FC3236925A4511BE0A7B /* SPCCPACategoryDetailsViewController.xib */; }; - 67E431DA4C30BB9A8348219C45034328 /* SPPrivacyPolicyViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB75F4254D16986889A768C5D0748B4E /* SPPrivacyPolicyViewController.swift */; }; - 69877731D446D478E77F831796170652 /* QCKConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95AC69A13C835766877D195F8C6A8681 /* QCKConfiguration.swift */; }; - 6A04C6F316F2E6E5CF2DEBC372446F31 /* BeVoid.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4770059017338C3037F654914C58032E /* BeVoid.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 6A099583BC473DB8EC4D62038C057CCF /* SPCampaignType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FC586DF51E03DD2DAFAF4D9E87488F6 /* SPCampaignType.swift */; }; - 6A62C440ED464F190FDA98B4842B4679 /* HooksPhase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1DD5C09494A0D695B75387956AF712D3 /* HooksPhase.swift */; }; - 6A795EC73F636B5EAAA443CD1A666277 /* WHBaseViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BAE8EB47AD57536C397AF36CBADAD5F /* WHBaseViewController.swift */; }; + 65B19F185446EE4DAF88CF2CCC1BA90C /* SPGDPRCategoryDetailsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 996ADC6118AC80DD88D8AD99F3C8ED68 /* SPGDPRCategoryDetailsViewController.swift */; }; + 65C76C00DA55D5BDCED24E6C46DE438D /* ToSucceed.swift in Sources */ = {isa = PBXBuildFile; fileRef = 79D12FD1A71B7E99F4104E07B92F8758 /* ToSucceed.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 6605EBB8E95EB2D46954EF005D1EC5F5 /* SourcepointClientCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 61B407E96C23182596C4CD39074D593F /* SourcepointClientCoordinator.swift */; }; + 6627FD3615933A6F6E8FAA73B14C7D52 /* BeGreaterThan.swift in Sources */ = {isa = PBXBuildFile; fileRef = F17A64B69F9CAA574619498002BA3ACC /* BeGreaterThan.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 672A1B131ECC93C6B65E84A870AFA4CB /* node.c in Sources */ = {isa = PBXBuildFile; fileRef = D796E9E3C0C9CD2EEB46A54519800192 /* node.c */; }; + 67FBC4FC6D8F6ACC779C2B7A817B26A6 /* ChoiceResponses.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD60E165B424A3376B8717E85854244E /* ChoiceResponses.swift */; }; + 6839576A0CA47ADDF73C9A831E3BEA23 /* Barcode.png in Resources */ = {isa = PBXBuildFile; fileRef = 3FAF31771437319132C8D087120F7EB2 /* Barcode.png */; }; + 687056EFEBAE0D07DC5DF380ABEE3467 /* MessagesRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2B199836B37103F420037E84A61A695F /* MessagesRequest.swift */; }; + 68B0D51D3D807AC4AA36D783594591EB /* CodeBlockOptions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 356F7EAAD72C8F7AF7B705E00487476F /* CodeBlockOptions.swift */; }; + 68EFFD0BFEC41FE6C409237DD3C82DEE /* Down.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD36E655D8EE068EFF50A0757E1F193D /* Down.swift */; }; + 69877731D446D478E77F831796170652 /* QCKConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 07138E598D41B9BE88401A889CECB6E1 /* QCKConfiguration.swift */; }; + 6A04C6F316F2E6E5CF2DEBC372446F31 /* BeVoid.swift in Sources */ = {isa = PBXBuildFile; fileRef = 187BE1A69563332FBCC49B18DF193F85 /* BeVoid.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 6A62C440ED464F190FDA98B4842B4679 /* HooksPhase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 827079B1C799620ADA70CFBA806FA7AA /* HooksPhase.swift */; }; + 6A795EC73F636B5EAAA443CD1A666277 /* WHBaseViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE8B12B56BE2A03693BE1AC03EC2C77E /* WHBaseViewController.swift */; }; 6A985F0CA8C762B47F236EC403191D62 /* MessagesRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2B199836B37103F420037E84A61A695F /* MessagesRequest.swift */; }; - 6A9CDCBD1A7E222E1CAD16DCBA93B3E3 /* SPNativeScreenViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C147F6E271D4AAC2F7C22B7683AE85F /* SPNativeScreenViewController.swift */; }; - 6B1EF12CCDCD267F071A46FB0D6BE545 /* QuickConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 88AFE97485D8C4B575EA389D539760EC /* QuickConfiguration.m */; }; - 6B421785FB93A62F28C74AC21643B130 /* BeResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B64D56D24A95D102B5D9E7F8B2D0433 /* BeResult.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 6B7775A0C31ED4C9B773FFA63DCFF403 /* ExpectationMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5E1A0C8D588EF74F05959385D8228242 /* ExpectationMessage.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 6B93D43FF02D429A7068EC17FB268238 /* QuickSpec.h in Headers */ = {isa = PBXBuildFile; fileRef = F74EA5A204C3916B8A57AA03668BD130 /* QuickSpec.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 6BF5C75C0D27DD9500C0EE9651635238 /* QuickSpecBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 374C8B57DA64E7F629363C55E43AC74C /* QuickSpecBase.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 6D071377AC6EB2B041BE51D7B5749A92 /* Contain.swift in Sources */ = {isa = PBXBuildFile; fileRef = 141EE4AA5AC0E07BE1905547157BA6CD /* Contain.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 6B1EF12CCDCD267F071A46FB0D6BE545 /* QuickConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 0BE089073D68EF0B27AEA02CF5701263 /* QuickConfiguration.m */; }; + 6B421785FB93A62F28C74AC21643B130 /* BeResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = A09FB9514C706BAC0D25E445FCF3BDCA /* BeResult.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 6B7775A0C31ED4C9B773FFA63DCFF403 /* ExpectationMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D0CC2596F659DEE896423741846BCDA /* ExpectationMessage.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 6B93D43FF02D429A7068EC17FB268238 /* QuickSpec.h in Headers */ = {isa = PBXBuildFile; fileRef = C97CD2F577668AFD8F544447A6328493 /* QuickSpec.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6BF5C75C0D27DD9500C0EE9651635238 /* QuickSpecBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 4146F9ED6938E0E6704A42EFD6DD2A5F /* QuickSpecBase.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 6D071377AC6EB2B041BE51D7B5749A92 /* Contain.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64B8B62FA761D8BEA52D7DEFA8EC55C6 /* Contain.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; 6D59F2D5D39B292A18949307E7E90158 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 358E1F97E66A2ED0D7C2706C3E3E104F /* Foundation.framework */; }; - 6DAEBB3D8408B977BE548B5FCE4A06B1 /* QuickSpecBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 374C8B57DA64E7F629363C55E43AC74C /* QuickSpecBase.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 6E4A1AFC285A8C7AE226F45083355E1A /* MessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 908712E7D7BF0F6ADE4B9EABB5354452 /* MessageRequest.swift */; }; - 6EAC4914718808E3F1E79C6B9908E447 /* SPCCPAVendorDetailsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A79EEAC022AE86D468A8DBB9B570B36F /* SPCCPAVendorDetailsViewController.swift */; }; - 6EAC8C719A6BE4073B55DA45A5275E11 /* Callsite.swift in Sources */ = {isa = PBXBuildFile; fileRef = C361676F1D2E6E85585225A88E65A6EA /* Callsite.swift */; }; - 6EC7DC62BDAF027121003FD09B4329A1 /* Section.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7FCC93977EE6754F19E542699F9FF3B5 /* Section.swift */; }; + 6DAEBB3D8408B977BE548B5FCE4A06B1 /* QuickSpecBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 4146F9ED6938E0E6704A42EFD6DD2A5F /* QuickSpecBase.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 6EAC8C719A6BE4073B55DA45A5275E11 /* Callsite.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A0E3CD9E2006DAAB5710802CD11B6D7 /* Callsite.swift */; }; + 6EC7DC62BDAF027121003FD09B4329A1 /* Section.swift in Sources */ = {isa = PBXBuildFile; fileRef = CEFE2FFF1CB533C6879E27F92F3A0195 /* Section.swift */; }; 6F00A907346D8B912177676C0A083ECF /* SP_Icon.png in Resources */ = {isa = PBXBuildFile; fileRef = 526970B89C1898F90B6255738CD35584 /* SP_Icon.png */; }; - 6F022CE3B443E6C912737FDC57C6E310 /* SPGDPRPartnersViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 358D03107AFC8AD97B487E25B662184F /* SPGDPRPartnersViewController.swift */; }; - 6F04A7B593B195D28F21C9D8B3254DE2 /* Colors.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C11157199042CC9E7042E23F1EB5D3C /* Colors.swift */; }; - 70422EA21A3F3B21F491921FEC32C7E8 /* Equal.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E502E337C35FF38CB7A8AB9D3256133 /* Equal.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 707F4B8B2CAB1C7F1CA840EC36F501D3 /* SuiteHooks.swift in Sources */ = {isa = PBXBuildFile; fileRef = AC56FD03C868E910C7C5CCD0FB2618DA /* SuiteHooks.swift */; }; - 708C65AC8DEA19B924ED06A72D869EE5 /* Config.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C4332F72D50C24DF7625DC7A092464B /* Config.swift */; }; - 71FF6396B970E615D2CB70F0DDE00871 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8F14AA232F04EB7627811BC6CD5E590F /* Foundation.framework */; }; - 720D17097D4F0CDDE89C4B21C0553355 /* RequestDetailViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B94A13CCDA61A0B30A4EEDAEB0FBD08F /* RequestDetailViewController.swift */; }; - 727F8A79427F37612ED0A24BEFF141C7 /* OSLogger.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99D00C84BC43874116119C8D69B762B1 /* OSLogger.swift */; }; - 729E642502A90E0BA28A457D21BA6723 /* PMCategoryManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8D0A93A803B672E9AE30FF627057B282 /* PMCategoryManager.swift */; }; - 72BEDE948ACB5D6AC168C50D740904C2 /* ToSucceed.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5DDAA996CFA91C3DBF06B7B0A60248D8 /* ToSucceed.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 72ECCADCD31B5FF8248C042F40A164BF /* SatisfyAllOf.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0380FE7FAD6788E837DE5A0591BE8D2C /* SatisfyAllOf.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 739323ADE67F0BF0DE02202786C47364 /* CwlCatchException.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BE29CEE8B166EE8EB1DE36439CC4F62 /* CwlCatchException.m */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 744A16CCBBB07C6DFAAC5B199956F87A /* RequestTitleSectionView.xib in Resources */ = {isa = PBXBuildFile; fileRef = F827465F88B11B368DFA03549F5A4B50 /* RequestTitleSectionView.xib */; }; - 74BF16160537FCBEBE26A6A757044CB3 /* WHTextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C695CC5E5B8DED132F1EFE3C9752ABF /* WHTextView.swift */; }; + 6F04A7B593B195D28F21C9D8B3254DE2 /* Colors.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7951F1410E7686BC8E5151576CDB2B08 /* Colors.swift */; }; + 6F11E93956BCE55D7871E51FC3CB7F28 /* ThematicBreak.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7CBFD733E83362BED7DF5FDB665DF8C1 /* ThematicBreak.swift */; }; + 6F504BDCEA0991B2576FCC9DB40CFC55 /* CustomInline.swift in Sources */ = {isa = PBXBuildFile; fileRef = E105D4CE3E1294C57780FD40F1B18C84 /* CustomInline.swift */; }; + 70422EA21A3F3B21F491921FEC32C7E8 /* Equal.swift in Sources */ = {isa = PBXBuildFile; fileRef = 03FB2C2EAA650057FDB80218C9538C18 /* Equal.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 7073DC1C59F79ECD7C37F83021DF0B4C /* commonmark.c in Sources */ = {isa = PBXBuildFile; fileRef = F17AD4E54096E2D9DB39C7DB4E565F8A /* commonmark.c */; }; + 707F4B8B2CAB1C7F1CA840EC36F501D3 /* SuiteHooks.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A8915805A6E3A56ECCC93195CA0E17A /* SuiteHooks.swift */; }; + 708C65AC8DEA19B924ED06A72D869EE5 /* Config.swift in Sources */ = {isa = PBXBuildFile; fileRef = A4DE98D8DF2002DAC3ACD4A54956E4DE /* Config.swift */; }; + 711CC8F85AC1933A4DB4F35749309C42 /* SPNativeScreenViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C147F6E271D4AAC2F7C22B7683AE85F /* SPNativeScreenViewController.swift */; }; + 712FE90B581FDBC1437F4FBBA5F4F221 /* jest.config.json in Resources */ = {isa = PBXBuildFile; fileRef = A7FC9F7FA7066E0981C00753F53D557A /* jest.config.json */; }; + 71870D0CDDC4D4378047022A83DAE2E8 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8F14AA232F04EB7627811BC6CD5E590F /* Foundation.framework */; }; + 720D17097D4F0CDDE89C4B21C0553355 /* RequestDetailViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5881840E2FF0269E7DF0EBD5796161CB /* RequestDetailViewController.swift */; }; + 727B97B839A68CB226FD0ECAD1E58655 /* SPPrivacyManagerRequestResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7DC2931C54B06C048F7D2579768814A3 /* SPPrivacyManagerRequestResponse.swift */; }; + 72BEDE948ACB5D6AC168C50D740904C2 /* ToSucceed.swift in Sources */ = {isa = PBXBuildFile; fileRef = 79D12FD1A71B7E99F4104E07B92F8758 /* ToSucceed.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 72ECCADCD31B5FF8248C042F40A164BF /* SatisfyAllOf.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF9B524B32EBD31EBE91A65B1AEAE2B4 /* SatisfyAllOf.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 739323ADE67F0BF0DE02202786C47364 /* CwlCatchException.m in Sources */ = {isa = PBXBuildFile; fileRef = DA8CF835B395E0A0C4CD245C5DC019AD /* CwlCatchException.m */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 744C8EECBCFE6701875E658A82A36031 /* SoftBreak.swift in Sources */ = {isa = PBXBuildFile; fileRef = 484341D87F3E64B2D025EE94BCB11781 /* SoftBreak.swift */; }; + 74734224CA9E604FBE5C685B64F5EC82 /* Down.h in Headers */ = {isa = PBXBuildFile; fileRef = B65C472BE17C0D3E1326DCDB50A7EF8E /* Down.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 74A5958C1894644B51F491675B53429B /* Down-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = A88CE3A6E51C34187F86281DB75F54E7 /* Down-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 74A5E43F5EA23CE3358290F779B9EAF5 /* AttributedStringVisitor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5E4E445224324EA4EC853DC4DA7AF760 /* AttributedStringVisitor.swift */; }; + 74BF16160537FCBEBE26A6A757044CB3 /* WHTextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 38BFE60FE731C6D6454BC1248F62E5B5 /* WHTextView.swift */; }; + 74D9D44A7866A67CC7E620EA49391986 /* ColorCollection.swift in Sources */ = {isa = PBXBuildFile; fileRef = A20C28362BE5898EDE4FEE6C967AF566 /* ColorCollection.swift */; }; 7500E924D840780A762AAFC58F430CC3 /* Constants.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB3B1C453B6116B14BCBA10F11300356 /* Constants.swift */; }; - 75ECE90BCA424CE87DB0C841D040179A /* SPPrivacyManagerRequestResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7DC2931C54B06C048F7D2579768814A3 /* SPPrivacyManagerRequestResponse.swift */; }; - 76088A9E146E3F76CCD6CBF36941E2AA /* BeWithin.swift in Sources */ = {isa = PBXBuildFile; fileRef = CFC06F1F291F58D18CAE8F7A2119C974 /* BeWithin.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 76307308F1042B9E21EE47FC16BA1BB9 /* SPJson.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5311B13E75D266751A602FCE929F48D7 /* SPJson.swift */; }; - 775CF794D2C5999FD67AD04291ED88E5 /* Closures.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FD4BAC1B7D5EBCD2813EA653873D9AE /* Closures.swift */; }; - 77B56EF1F92DDF143E3BB0D4FD6CA35F /* QuickSpec.h in Headers */ = {isa = PBXBuildFile; fileRef = F74EA5A204C3916B8A57AA03668BD130 /* QuickSpec.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 76088A9E146E3F76CCD6CBF36941E2AA /* BeWithin.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9E108468363DC7CF9494FD4110912EF2 /* BeWithin.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 775CF794D2C5999FD67AD04291ED88E5 /* Closures.swift in Sources */ = {isa = PBXBuildFile; fileRef = E4BBB585B354A0FBE99C21B1C36D35A1 /* Closures.swift */; }; + 77B56EF1F92DDF143E3BB0D4FD6CA35F /* QuickSpec.h in Headers */ = {isa = PBXBuildFile; fileRef = C97CD2F577668AFD8F544447A6328493 /* QuickSpec.h */; settings = {ATTRIBUTES = (Public, ); }; }; 77DC981A9C36CC0CA87976BC4513B441 /* SPPropertyName.swift in Sources */ = {isa = PBXBuildFile; fileRef = 551CDB76348D1D7EE391DF9C6A64583D /* SPPropertyName.swift */; }; + 77F81E771CDDC460CE0D0C6786D42593 /* PrivacyManagerViewData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 57587477437D5EB52AB0FCA9D1021112 /* PrivacyManagerViewData.swift */; }; 792EF21DE18F4303DB1C58006809F125 /* Pods-ObjC-ExampleApp-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = CD6B894B1009A4ECEB2DCAEDF78291F8 /* Pods-ObjC-ExampleApp-dummy.m */; }; - 7A6907EB98B70430924DB7C421763B83 /* images in Resources */ = {isa = PBXBuildFile; fileRef = 6FC46704C27355B19DB1F3B2AD88733B /* images */; }; - 7AC995F567A776FC1A80A9FA0733F3D1 /* IQNSArray+Sort.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6834DEE6039AB6BE3607D05FC23AF685 /* IQNSArray+Sort.swift */; }; - 7B0B008DD4BF428580CC3F387B4123B1 /* SourceLocation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27312D227A4B4D385E6534180A780625 /* SourceLocation.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 7A075DFDAF0FF119EEFC3F306D36FB26 /* Heading.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4FEE3BDD2E631E61ED3520A5CC751820 /* Heading.swift */; }; + 7A6A699740B21D29DE4E5B40E935F457 /* SPCCPAConsent.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCDA636AD5FC717ED9DE01E748CFC607 /* SPCCPAConsent.swift */; }; + 7A806B225AAE8411EE261682BBF3996E /* cmark.h in Headers */ = {isa = PBXBuildFile; fileRef = 260AEB7610E3844784B70DD9972E25A0 /* cmark.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 7A99C453F750DFB1BD1D4901F5981A1D /* SPMessageViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27CD48DD7F3A588DE9A336B44E5C39AE /* SPMessageViewController.swift */; }; + 7AC995F567A776FC1A80A9FA0733F3D1 /* IQNSArray+Sort.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3AB0FC247E2A3101C90428EA40F1F0E6 /* IQNSArray+Sort.swift */; }; + 7B0B008DD4BF428580CC3F387B4123B1 /* SourceLocation.swift in Sources */ = {isa = PBXBuildFile; fileRef = A0032D232FB89AF247FB539CA7C6F645 /* SourceLocation.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; 7B17F4B5967B85BAE618AB57FA9DF981 /* Pods-SourcePointMetaApp-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = E41025D27A8A28123FBC9E5303F176B5 /* Pods-SourcePointMetaApp-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7B89FD72FBA5CE466611C144C0061384 /* ExampleHooks.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE4675FF6E442A057A44B97E4AD4C2ED /* ExampleHooks.swift */; }; - 7C7E120B059999C139934554F32E0555 /* NMBStringify.h in Headers */ = {isa = PBXBuildFile; fileRef = 8E301C03A8E058837CE3DF645DFFB33E /* NMBStringify.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7B89FD72FBA5CE466611C144C0061384 /* ExampleHooks.swift in Sources */ = {isa = PBXBuildFile; fileRef = AC34A396EA216E294416AD4721B04981 /* ExampleHooks.swift */; }; + 7B8D6101AFC452CEA03B8EF4E11F02BA /* ListItemParagraphStyler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6D7885C864C246711D62F40EC398C873 /* ListItemParagraphStyler.swift */; }; + 7C7E120B059999C139934554F32E0555 /* NMBStringify.h in Headers */ = {isa = PBXBuildFile; fileRef = 904C94CF67C84BF6E4E596BFF070663F /* NMBStringify.h */; settings = {ATTRIBUTES = (Public, ); }; }; 7D43F95A1C4F36F3E370CD863E1E8AFE /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 358E1F97E66A2ED0D7C2706C3E3E104F /* Foundation.framework */; }; - 7D67AC2988F82E6B0F72FC1A967F92C3 /* SourceLocation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27312D227A4B4D385E6534180A780625 /* SourceLocation.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 7DCBE5A0D567A42E6B98EF7D84F54D28 /* Constants.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB3B1C453B6116B14BCBA10F11300356 /* Constants.swift */; }; - 7E08D36D57B0ADDAD0BCFEECB92A6F40 /* SPJSReceiver.js in Resources */ = {isa = PBXBuildFile; fileRef = D6D8E4D0F1969E5EC16BDED1585EE87C /* SPJSReceiver.js */; }; - 7F33DD9E4E0361A19DA61E6BBBDD8565 /* NimbleEnvironment.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8A57809F4D56926C8F1028B862349DCE /* NimbleEnvironment.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 7F6AE748D5997EBC6658A6636FD2303B /* NMBExceptionCapture.h in Headers */ = {isa = PBXBuildFile; fileRef = 21B019815AFEA1B9A4FDC721C6E0B255 /* NMBExceptionCapture.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7FD4943BB64CF476DFD95D1CAEF8BCE4 /* ErrorMetricsRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = A558331540B7C379868C3D30BC93FDDB /* ErrorMetricsRequest.swift */; }; - 7FF4011775A6621749EBF58B9F3B37E5 /* Postman.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1318C2EB7FDBE59031F3BD98FF3FC645 /* Postman.swift */; }; - 7FFD891479B94B7809A95D260C78FB40 /* Contain.swift in Sources */ = {isa = PBXBuildFile; fileRef = 141EE4AA5AC0E07BE1905547157BA6CD /* Contain.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 807E2AC1FCB241BB30AB4855BC0D062F /* ExampleGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = 463DFA009F6A01FE79F6A421F8DE2A55 /* ExampleGroup.swift */; }; - 813AE3D5F07A3CD245691C50DD09E8F1 /* Match.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1D53A5045EA0D8E68631E597E29DB405 /* Match.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 7D67AC2988F82E6B0F72FC1A967F92C3 /* SourceLocation.swift in Sources */ = {isa = PBXBuildFile; fileRef = A0032D232FB89AF247FB539CA7C6F645 /* SourceLocation.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 7F33DD9E4E0361A19DA61E6BBBDD8565 /* NimbleEnvironment.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4B9C691E324AE9E7F94E1561C96C4D8 /* NimbleEnvironment.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 7F6AE748D5997EBC6658A6636FD2303B /* NMBExceptionCapture.h in Headers */ = {isa = PBXBuildFile; fileRef = 264E52F029884E3FDBAA8282ACAAEF3F /* NMBExceptionCapture.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7FF4011775A6621749EBF58B9F3B37E5 /* Postman.swift in Sources */ = {isa = PBXBuildFile; fileRef = 25D6CFC5D7270163DB4FC94DF015D4FB /* Postman.swift */; }; + 7FFD891479B94B7809A95D260C78FB40 /* Contain.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64B8B62FA761D8BEA52D7DEFA8EC55C6 /* Contain.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 807E2AC1FCB241BB30AB4855BC0D062F /* ExampleGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = E6299AFFC345696A42141091DCDB1341 /* ExampleGroup.swift */; }; + 813AE3D5F07A3CD245691C50DD09E8F1 /* Match.swift in Sources */ = {isa = PBXBuildFile; fileRef = E797A7DB019FE3394A969E7B42A29D4B /* Match.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 81D6EC873C56AC0CFF4243C2CB85ED51 /* DeleteCustomConsentRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C1C631F418F2FB214B77D554F0FE3E4 /* DeleteCustomConsentRequest.swift */; }; 82255B07E394E9D92E59984820CA8ECC /* SPConsentManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8759469FD400284FCCF8A7E3DF082124 /* SPConsentManager.swift */; }; 827D1B3D7AD4FB5A07299783B6446032 /* SPNativeUI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68A496378D7EC9AF074F5723A535B568 /* SPNativeUI.swift */; }; 82A39E5EA67419BEC50788B8DE8D4562 /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6350587403D45403E667216ECE104468 /* XCTest.framework */; }; - 83C60180EEA0FD6B7F22FF74E2DCAFC6 /* WormholyMethodSwizzling.h in Headers */ = {isa = PBXBuildFile; fileRef = 327FCDEA50C8539233C5BC6D9298BE28 /* WormholyMethodSwizzling.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 841BC9A6B15C2D0EB73A2645E9CC0021 /* RequestResponseExportOption.swift in Sources */ = {isa = PBXBuildFile; fileRef = B43DFEC44C693818042D6A03AE17361E /* RequestResponseExportOption.swift */; }; - 847C7C3CD29EB417A78C7B934F18B399 /* BeginWithPrefix.swift in Sources */ = {isa = PBXBuildFile; fileRef = 63311F6C1B53E8AEC47ED07D4C720ADD /* BeginWithPrefix.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 84D054917897C212417B148A8A28F542 /* NSBundle+CurrentTestBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1D0138A00D62EB30F0FF7A192AE56EA4 /* NSBundle+CurrentTestBundle.swift */; }; - 85F13B069B06ADF2B6DCA622E4645110 /* IQKeyboardManagerConstants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 63D9169D2743C66103C3874ADA6FE1EE /* IQKeyboardManagerConstants.swift */; }; - 86A03DE9366D1BE94EB99AA387EACD1F /* IQKeyboardManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 878E662BA6B7AE392EF539D854122E18 /* IQKeyboardManager.swift */; }; - 874201AA12A3610164AE04AE19E54A21 /* SPJSReceiver.spec.js in Resources */ = {isa = PBXBuildFile; fileRef = 4643D453357EFA79CCBA741B0B5B2BC3 /* SPJSReceiver.spec.js */; }; - 87AC8D36A1A7EE308DEBE9AB25FF6711 /* Quick-iOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = FE6672F8D91D91FB82A910BBE8F8E964 /* Quick-iOS-dummy.m */; }; - 881732A282391F32DD8A6C99941DE098 /* ElementsEqual.swift in Sources */ = {isa = PBXBuildFile; fileRef = D7A4B72C69599180D903A84A285859D4 /* ElementsEqual.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 8886E000A45162B556804E76F6C4C0FC /* SPGDPRCategoryDetailsViewController.xib in Sources */ = {isa = PBXBuildFile; fileRef = B3823B05E9FB89A9BCCC5D629032DE19 /* SPGDPRCategoryDetailsViewController.xib */; }; + 82FBEB9F8CAA0C3BD4C62F8DB89BEC77 /* SPAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05EF300E2B3F73B19667BC15EE20108D /* SPAction.swift */; }; + 83C60180EEA0FD6B7F22FF74E2DCAFC6 /* WormholyMethodSwizzling.h in Headers */ = {isa = PBXBuildFile; fileRef = 5FE896ADE3757DF3DEA87A9165AFD77C /* WormholyMethodSwizzling.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 841BC9A6B15C2D0EB73A2645E9CC0021 /* RequestResponseExportOption.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED4AA5CC1F2A2D60B5832E735EC0B968 /* RequestResponseExportOption.swift */; }; + 843B08A4C798486A4562A332CF72677F /* SPGDPRNativePrivacyManagerViewController.xib in Sources */ = {isa = PBXBuildFile; fileRef = B6014883D5452D3C23F73C0D0E177401 /* SPGDPRNativePrivacyManagerViewController.xib */; }; + 846E3331107918C6E9AD404CC216F8C3 /* ActionableTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = C511053A4578911005F325403FEDD36E /* ActionableTableViewCell.xib */; }; + 847C7C3CD29EB417A78C7B934F18B399 /* BeginWithPrefix.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8C11695EE5B193D1F0D8BF72B9C9AA7 /* BeginWithPrefix.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 84D054917897C212417B148A8A28F542 /* NSBundle+CurrentTestBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = F28AC251F58EA3598F307B0408E60056 /* NSBundle+CurrentTestBundle.swift */; }; + 85AD4E8A2B888B5CD9DAFDF1407B046B /* DebugVisitor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 000240FF12FC9FA921A32193478CC476 /* DebugVisitor.swift */; }; + 85F13B069B06ADF2B6DCA622E4645110 /* IQKeyboardManagerConstants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50A769B7B07BFE25CF2F46555EA8C33F /* IQKeyboardManagerConstants.swift */; }; + 864D89B8289E24B25A2FFF942F10432F /* SPPMHeader.xib in Sources */ = {isa = PBXBuildFile; fileRef = 6AD83F4ACF13BF94480A96A68259475C /* SPPMHeader.xib */; }; + 86A03DE9366D1BE94EB99AA387EACD1F /* IQKeyboardManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94E41F9E4F7F59DF33A7450045E91FAC /* IQKeyboardManager.swift */; }; + 87AC8D36A1A7EE308DEBE9AB25FF6711 /* Quick-iOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 721B0C7C51FF28CEFB75F3941BA81EA6 /* Quick-iOS-dummy.m */; }; + 881732A282391F32DD8A6C99941DE098 /* ElementsEqual.swift in Sources */ = {isa = PBXBuildFile; fileRef = C376E206D0D66370BA9AB1F8832BD3B8 /* ElementsEqual.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 888FCA358B2E7EA6D281234D59E0BD5E /* SPPublisherData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 42E78312B70C2330F2ABF983EFB26634 /* SPPublisherData.swift */; }; 88E4C9596C5CAB21C9EEC710C50BC2CD /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8F14AA232F04EB7627811BC6CD5E590F /* Foundation.framework */; }; - 89079DF3A275518BE5DB85B9BFC6DDC4 /* BeCloseTo.swift in Sources */ = {isa = PBXBuildFile; fileRef = A0505E3B346A0D295815835F4D3B3473 /* BeCloseTo.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 896E09D9B62EB8F948A00F0546467D07 /* BeAnInstanceOf.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4AEBE5CB1C04F3A1DCDEC88A37E76028 /* BeAnInstanceOf.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 89A237F1777DC9FB7FC7616350F48793 /* ThrowError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77A48D3B91441E2740A9BFCEC337829E /* ThrowError.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 89079DF3A275518BE5DB85B9BFC6DDC4 /* BeCloseTo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9BD71BF64D33A5EE5A322826A6D0E381 /* BeCloseTo.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 896E09D9B62EB8F948A00F0546467D07 /* BeAnInstanceOf.swift in Sources */ = {isa = PBXBuildFile; fileRef = 25554D9FAA26AE20BF956E70CF34111D /* BeAnInstanceOf.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 89A237F1777DC9FB7FC7616350F48793 /* ThrowError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6A21A8A668B97E7B42405AC8FFD20999 /* ThrowError.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; 89AD53FD6F377D272B66C26B57779B75 /* Pods-SPGDPRExampleAppUITests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = E735ADF04B48BEEF187FCD9E0BEC9586 /* Pods-SPGDPRExampleAppUITests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8A404515412BA5107145650F6EF55268 /* SP_Icon.png in Resources */ = {isa = PBXBuildFile; fileRef = 526970B89C1898F90B6255738CD35584 /* SP_Icon.png */; }; - 8A4186AC05EE822B66C6D3BB6D7C8316 /* JSONView-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 733DADFBEC5CB266ABD81664448B1EAB /* JSONView-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8A492E15AC13DD3A4832B77238057EB2 /* WHTableView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C6B355C9384F0A449C0F295AC001885 /* WHTableView.swift */; }; - 8A7A1BC68F5CF770015DBDC7631E677F /* BodyDetailViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 87AF78E2CBE80D5D7EA7A10CA684A36B /* BodyDetailViewController.swift */; }; - 8B35E817BB01F2DD7EDC5863523A81FF /* QuickSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C00A0585C8B836042BAA63F055F1F25 /* QuickSpec.m */; }; + 8A4186AC05EE822B66C6D3BB6D7C8316 /* JSONView-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = E31D965307FE75500537823A0BB4E322 /* JSONView-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8A492E15AC13DD3A4832B77238057EB2 /* WHTableView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 157FC1A2B09B5196FB27B65EAEB31FCE /* WHTableView.swift */; }; + 8A7A1BC68F5CF770015DBDC7631E677F /* BodyDetailViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED53C7A7A4F09274BBF9FF96AB04E6B5 /* BodyDetailViewController.swift */; }; + 8B35E817BB01F2DD7EDC5863523A81FF /* QuickSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 2DFAFF577444917A6AE859D33710B94A /* QuickSpec.m */; }; 8B6325125D5038121E7F5823D6CA5F85 /* SPNativeMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = B9C1CFC70F222752F8E90EE4F85D3E5B /* SPNativeMessage.swift */; }; - 8C124C58340E9320FB816DB391385C60 /* SPGDPRPartnersViewController.xib in Sources */ = {isa = PBXBuildFile; fileRef = EDC5A0B2DE3A8B3CB5DE05B940B2213A /* SPGDPRPartnersViewController.xib */; }; - 8C3E5369B3EEE38A1F3E71AF0D562A66 /* XCTestSuite+QuickTestSuiteBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = C5B54C4C31845E73420CBDBEC97B76BD /* XCTestSuite+QuickTestSuiteBuilder.m */; }; - 8CD80D320A437048D1469AA382719CED /* Wormholy-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = EE8D0F322A78A6FD0918013B185F2794 /* Wormholy-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8CF0093BCB53496A0810EDE254414BD5 /* QuickObjCRuntime.h in Headers */ = {isa = PBXBuildFile; fileRef = CA0CF9F033BC5C39CA8BBB0CE424DE0D /* QuickObjCRuntime.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 8C3E5369B3EEE38A1F3E71AF0D562A66 /* XCTestSuite+QuickTestSuiteBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 17F9CE199E7234100943A082F7090697 /* XCTestSuite+QuickTestSuiteBuilder.m */; }; + 8CD80D320A437048D1469AA382719CED /* Wormholy-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 97744050CD3BA0B1EC4B29A1FBC3E186 /* Wormholy-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8CF0093BCB53496A0810EDE254414BD5 /* QuickObjCRuntime.h in Headers */ = {isa = PBXBuildFile; fileRef = 932965E644537AC076786ECEF9097623 /* QuickObjCRuntime.h */; settings = {ATTRIBUTES = (Project, ); }; }; 8D019C354B2BD857F14BABEE9D2AEE9F /* SPSDK.swift in Sources */ = {isa = PBXBuildFile; fileRef = 529FD1CC0F9CA0A95F0A43EE447EE6A9 /* SPSDK.swift */; }; - 8DF6F61CE787B463382222BEA41A7237 /* BeEmpty.swift in Sources */ = {isa = PBXBuildFile; fileRef = CFBFEAD23EBEFF35E562A1AE1AAD2980 /* BeEmpty.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 8E2390711B86169F286A629991AC9A8B /* SourcePointClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = F50ED8661468C8D694099E55721F0733 /* SourcePointClient.swift */; }; - 8E620FC4313A5A2D8A73417C0B9F000F /* ConsentStatusResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = B09EB7BFDBBBDDFE4D08E7ADCED030C7 /* ConsentStatusResponse.swift */; }; + 8DF6F61CE787B463382222BEA41A7237 /* BeEmpty.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51CEF68E4C3B5CF489641AF1F5B0FF6D /* BeEmpty.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 8E6BE76EA4FC0D35CB170BF31D3BB213 /* houdini_html_u.c in Sources */ = {isa = PBXBuildFile; fileRef = 3733B89950161339721CBE2E1CBE2E10 /* houdini_html_u.c */; }; + 8F4C3AE1E928F66BA5374FA787702AC6 /* RequestCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 67CF98B34415888CFCC0A3919A234894 /* RequestCell.xib */; }; 8FB1E80497C72D54D54CB78F929EFA6A /* ConsentStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84E6ECDA9BA350599A22F8C04B50AE84 /* ConsentStatus.swift */; }; - 8FBF46C321A343806F66994ABE672723 /* DispatchTimeInterval.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9C0605F46747350B35B62214F79792A1 /* DispatchTimeInterval.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 8FBF46C321A343806F66994ABE672723 /* DispatchTimeInterval.swift in Sources */ = {isa = PBXBuildFile; fileRef = 878715BE17B7F8EEE0EE94835AE58C98 /* DispatchTimeInterval.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; 8FCDF96D2B2057E5BFA3891A21519E89 /* GDPRPrivacyManagerViewResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95B1B75F417CC67204851409EE33F7E2 /* GDPRPrivacyManagerViewResponse.swift */; }; - 9000003347A315E78EFE8CF6B485FCAA /* FileHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD42023BB16F312AE6FBCF1327CD9069 /* FileHandler.swift */; }; + 9000003347A315E78EFE8CF6B485FCAA /* FileHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA329714BAC4D98AC0B97306AA80D9B4 /* FileHandler.swift */; }; 90E55A74B2F54CD167FD03C30A2B4791 /* PrivacyManagerViewData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 57587477437D5EB52AB0FCA9D1021112 /* PrivacyManagerViewData.swift */; }; + 915FD8E16A2C1247959582A1E11CD073 /* SPSDK.swift in Sources */ = {isa = PBXBuildFile; fileRef = 529FD1CC0F9CA0A95F0A43EE447EE6A9 /* SPSDK.swift */; }; 918D1D7917B9405308843EC8B956DBF1 /* Pods-NativeMessageExample-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 9AC0A39714B6C57DA8F69184FA513363 /* Pods-NativeMessageExample-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 9222093084E7BBEBF89F6CF578716E76 /* Expression.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2FBED7D1071AC5E9CE5157EF8D170AA4 /* Expression.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 92A105AA5C80BD8FCF22FEA93A39D2B4 /* NSBundle+CurrentTestBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1D0138A00D62EB30F0FF7A192AE56EA4 /* NSBundle+CurrentTestBundle.swift */; }; - 92AEA0919DDEB8D5E611B74E63837C58 /* QuickObjCRuntime.h in Headers */ = {isa = PBXBuildFile; fileRef = CA0CF9F033BC5C39CA8BBB0CE424DE0D /* QuickObjCRuntime.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 933816828605B35FB7305AFFA071B6D0 /* mach_excServer.c in Sources */ = {isa = PBXBuildFile; fileRef = D73B214E01CD1CF83CA00150376D4E87 /* mach_excServer.c */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 934872926CBD2E122FF0789E93C7FFDA /* ConsentViewController-tvOS-ConsentViewController in Resources */ = {isa = PBXBuildFile; fileRef = 20A4710BBD2EE3CFC496E3AF134BD4FD /* ConsentViewController-tvOS-ConsentViewController */; }; - 9348B34237AE2975E20AA8D604F1423D /* WHString.swift in Sources */ = {isa = PBXBuildFile; fileRef = 07A27EE1551546DE1D5141959752F51F /* WHString.swift */; }; - 935557E2ED1490E3CE73179D1E175332 /* TextTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1CC8AD42B5FFEAAF74CFE26ABC6BF53 /* TextTableViewCell.swift */; }; - 9385F903C1A926E203BCA6A9BA192CAA /* Callsite.swift in Sources */ = {isa = PBXBuildFile; fileRef = C361676F1D2E6E85585225A88E65A6EA /* Callsite.swift */; }; + 91E499A88C7DAD182D6E2E8E835CA2F3 /* GDPRPMPayload.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3FA0ECBFCCF2161984F16A0B1F85650D /* GDPRPMPayload.swift */; }; + 9222093084E7BBEBF89F6CF578716E76 /* Expression.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B3A7F1CDBF86AAF8BC24D91BB329589 /* Expression.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 92A105AA5C80BD8FCF22FEA93A39D2B4 /* NSBundle+CurrentTestBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = F28AC251F58EA3598F307B0408E60056 /* NSBundle+CurrentTestBundle.swift */; }; + 92AEA0919DDEB8D5E611B74E63837C58 /* QuickObjCRuntime.h in Headers */ = {isa = PBXBuildFile; fileRef = 932965E644537AC076786ECEF9097623 /* QuickObjCRuntime.h */; settings = {ATTRIBUTES = (Project, ); }; }; + 933816828605B35FB7305AFFA071B6D0 /* mach_excServer.c in Sources */ = {isa = PBXBuildFile; fileRef = 1B83C1EF010747D15760FE6A52D72BE7 /* mach_excServer.c */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 9348B34237AE2975E20AA8D604F1423D /* WHString.swift in Sources */ = {isa = PBXBuildFile; fileRef = 44D5B80ADB162722509684E405FE6437 /* WHString.swift */; }; + 935557E2ED1490E3CE73179D1E175332 /* TextTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74C2AD4FAEBDF5E270D3D8E565589880 /* TextTableViewCell.swift */; }; + 9385F903C1A926E203BCA6A9BA192CAA /* Callsite.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A0E3CD9E2006DAAB5710802CD11B6D7 /* Callsite.swift */; }; 953E06ED6B9DD9B0ACB17CE135E66380 /* IDFAStatusReportRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9965D6C300E75DBE0593F3B2EBBC2788 /* IDFAStatusReportRequest.swift */; }; - 960B6871BAA93D1364063477780ACC2D /* Nimble.h in Headers */ = {isa = PBXBuildFile; fileRef = BDB550F932CBD189789910C9B6870BB9 /* Nimble.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 966D04150537604CEF1C2F45E00880BC /* AssertionRecorder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E961139719C0CC7802E56059F585826 /* AssertionRecorder.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 96AE6B66CB0F164B3FA8E697FFA3F4D2 /* Closures.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FD4BAC1B7D5EBCD2813EA653873D9AE /* Closures.swift */; }; + 954CAAAE774F5B2E0CB90D410A894BF2 /* buffer.c in Sources */ = {isa = PBXBuildFile; fileRef = C3C5C29210CD22378C6D7E9483EB41BB /* buffer.c */; }; + 960B6871BAA93D1364063477780ACC2D /* Nimble.h in Headers */ = {isa = PBXBuildFile; fileRef = A62B616AE6A6F954362F28DD8D88366B /* Nimble.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 966D04150537604CEF1C2F45E00880BC /* AssertionRecorder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4FD7D4A1D044FA2204A01761C94CF067 /* AssertionRecorder.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 96AE6B66CB0F164B3FA8E697FFA3F4D2 /* Closures.swift in Sources */ = {isa = PBXBuildFile; fileRef = E4BBB585B354A0FBE99C21B1C36D35A1 /* Closures.swift */; }; 96DF55118EA09BA3A8348C4419DFC914 /* Barcode.png in Resources */ = {isa = PBXBuildFile; fileRef = 3FAF31771437319132C8D087120F7EB2 /* Barcode.png */; }; - 9754A17BC760F8D3A4B538DAE9944CCE /* NMBExceptionCapture.m in Sources */ = {isa = PBXBuildFile; fileRef = 13EA52F01B9131D674F96129406F4835 /* NMBExceptionCapture.m */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 976D52BBD81E46FDA07DE277B62CFD23 /* mach_excServer.c in Sources */ = {isa = PBXBuildFile; fileRef = D73B214E01CD1CF83CA00150376D4E87 /* mach_excServer.c */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 9714F8151E7B53EFC858C94087255D32 /* ParagraphStyleCollection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CD9D4878151357A0A32FC57B0B6B9FE /* ParagraphStyleCollection.swift */; }; + 9754A17BC760F8D3A4B538DAE9944CCE /* NMBExceptionCapture.m in Sources */ = {isa = PBXBuildFile; fileRef = 53830D02039DE43B2FFBF8AF6FF4A78B /* NMBExceptionCapture.m */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 976D52BBD81E46FDA07DE277B62CFD23 /* mach_excServer.c in Sources */ = {isa = PBXBuildFile; fileRef = 1B83C1EF010747D15760FE6A52D72BE7 /* mach_excServer.c */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; 9784B80307CF03C9139A0F2F901DE486 /* Pods-ObjC-ExampleApp-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = A2E4695922171AB0B0A489E7FE4127B0 /* Pods-ObjC-ExampleApp-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 97BAD5386DB86E57C8121DC5BB9EB7EA /* NSURLSessionConfiguration+Wormholy.h in Headers */ = {isa = PBXBuildFile; fileRef = B9995D6640CCF7B801D003E8B6BC0BB5 /* NSURLSessionConfiguration+Wormholy.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 98E831815093E1E4775BC85A092FCDC8 /* CwlCatchBadInstruction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B21C29E14077EF9E53A94386656B78B /* CwlCatchBadInstruction.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 99DCB7412F69FD36A8D8B4685994268F /* QuickSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C00A0585C8B836042BAA63F055F1F25 /* QuickSpec.m */; }; - 9A3B2C0A35401EF3EC592A121BD22EC9 /* MatcherProtocols.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED3A8BE10A678CBE0765D2186308FD4F /* MatcherProtocols.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 9ADD01EE9D1A8C50707D5D0B1300B909 /* QCKConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95AC69A13C835766877D195F8C6A8681 /* QCKConfiguration.swift */; }; - 9B88AA76329E860E4A37E8158CC5654A /* BeLessThan.swift in Sources */ = {isa = PBXBuildFile; fileRef = 17669560008D6CBAEFC1FBE590781773 /* BeLessThan.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - 9C0F0AFD947258D58EA69FFD981333FB /* QuickConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8378F3DB5A7BDC2615F006E25D48E680 /* QuickConfiguration.swift */; }; - 9C5A6FE3D8F04EBBCD6E45CBBC5B7321 /* SPCCPACategoryDetailsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6AE2BCE03EA70F32258C86084A12A054 /* SPCCPACategoryDetailsViewController.swift */; }; - 9C993D3671A9824B1586CE129956B546 /* SPCCPAPartnersViewController.xib in Sources */ = {isa = PBXBuildFile; fileRef = B478899DE8D7819A33AC5DEA6EE4AF8F /* SPCCPAPartnersViewController.xib */; }; - 9DE88C5F07FF8323AE846031286BF3EA /* TextTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 53101DE89B3711215A567080FE307AE1 /* TextTableViewCell.xib */; }; + 97BAD5386DB86E57C8121DC5BB9EB7EA /* NSURLSessionConfiguration+Wormholy.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D21FEF1C9571A8DBCA6B3EC4628EBDB /* NSURLSessionConfiguration+Wormholy.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 98E831815093E1E4775BC85A092FCDC8 /* CwlCatchBadInstruction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E63CD0945B9D178FF0CC2AF2751C72B /* CwlCatchBadInstruction.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 99004CFF3B8205E23DD30FD3B002FF36 /* CodeBlock.swift in Sources */ = {isa = PBXBuildFile; fileRef = F7AEE99DB02A4428037B0864E9F8D711 /* CodeBlock.swift */; }; + 99DCB7412F69FD36A8D8B4685994268F /* QuickSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 2DFAFF577444917A6AE859D33710B94A /* QuickSpec.m */; }; + 9A2427722344B368420001A46F6C608E /* SPGDPRManagePreferenceViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 78944AD0C5E85C206E83971C12C55E2C /* SPGDPRManagePreferenceViewController.swift */; }; + 9A3B2C0A35401EF3EC592A121BD22EC9 /* MatcherProtocols.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1A772930289BCF3CAA8EA3D19487AA1 /* MatcherProtocols.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 9ACF28C29965E88050B6D1721E2ED1B7 /* SPUserDefaults.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D266C9D1A3501BDFF255989526FEE20 /* SPUserDefaults.swift */; }; + 9ADD01EE9D1A8C50707D5D0B1300B909 /* QCKConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 07138E598D41B9BE88401A889CECB6E1 /* QCKConfiguration.swift */; }; + 9B88AA76329E860E4A37E8158CC5654A /* BeLessThan.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3459EB4E85FE56BAB2781890A10BA3BC /* BeLessThan.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + 9C0F0AFD947258D58EA69FFD981333FB /* QuickConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92321CEC968DCD4908350231D8D17509 /* QuickConfiguration.swift */; }; + 9CAC26A9C960D9846DEA9D90A7C51465 /* SPPropertyName.swift in Sources */ = {isa = PBXBuildFile; fileRef = 551CDB76348D1D7EE391DF9C6A64583D /* SPPropertyName.swift */; }; + 9D0119E8BE858E36B99187ADC40444D4 /* TextTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6B579B6E7CFE017499BB1FEBEB94CD23 /* TextTableViewCell.xib */; }; + 9D22743F607DC333E8734C0F8414FC94 /* Code.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0CC4EC8308E462115E693E5966185CA7 /* Code.swift */; }; + 9D790E9F279FDB36B23D2BF4C0581B25 /* DownAttributedStringRenderable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 135E1342AB961BE0D0B71A03B9EDAA81 /* DownAttributedStringRenderable.swift */; }; + 9DB16BC25A69A7548BD0D77A1CB74FF2 /* DownLaTeXRenderable.swift in Sources */ = {isa = PBXBuildFile; fileRef = F5CEFC6A0CC6A008931AFEBBB9BB993F /* DownLaTeXRenderable.swift */; }; 9E02BF83DC5E871EA1D3B28994B0A1A6 /* Pods-SourcePointMetaAppUITests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 3E99BDED1E6FA8CEF01BF1ABCAC4C475 /* Pods-SourcePointMetaAppUITests-dummy.m */; }; 9E36D6BC753F4D70CAF6053C9A0A4D6D /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 358E1F97E66A2ED0D7C2706C3E3E104F /* Foundation.framework */; }; + 9EF59E9DD11592CA684587E6C4D6CEDA /* ChoiceAllResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 704402944C6D6903D1A98585A725C4BB /* ChoiceAllResponse.swift */; }; 9EFF7898F3B4E26D1E6C793BFFE7A5E5 /* Pods-SPGDPRExampleAppUITests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 3341F72CA9008F857FDC21E11D28934E /* Pods-SPGDPRExampleAppUITests-dummy.m */; }; 9F4CA26321D4661966AF9EE9DBDA6BDA /* SPPrivacyManagerRequestResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7DC2931C54B06C048F7D2579768814A3 /* SPPrivacyManagerRequestResponse.swift */; }; 9FB5B8C302F44E02838C5F51A98F0DB2 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 358E1F97E66A2ED0D7C2706C3E3E104F /* Foundation.framework */; }; 9FF8A10C07F47A9ACE4BD28985229CF4 /* SPDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 516092EA0B6381F414688DB4BBFDB8C3 /* SPDelegate.swift */; }; - A0CCB3898B7BBFC7C201B7BBCF7245BC /* RaisesException.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4E66AA5401D00FFB33E56F778C13ACBE /* RaisesException.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - A0DFD37B68319A82ACB6988C64761A8B /* ErrorUtility.swift in Sources */ = {isa = PBXBuildFile; fileRef = 87A145C0FF19C86AB46BB51380531403 /* ErrorUtility.swift */; }; - A20ABC648777D13FA9492E559D1498A3 /* ExampleHooks.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE4675FF6E442A057A44B97E4AD4C2ED /* ExampleHooks.swift */; }; - A23574519269DEE91C9DEB8D9CEA59CA /* javascript in Resources */ = {isa = PBXBuildFile; fileRef = 5F5D44F2C0EF9ABFEBE938FE8D408645 /* javascript */; }; + A0CCB3898B7BBFC7C201B7BBCF7245BC /* RaisesException.swift in Sources */ = {isa = PBXBuildFile; fileRef = E9D5368B55EA84908DB0B3619DA8A1F9 /* RaisesException.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + A0DFD37B68319A82ACB6988C64761A8B /* ErrorUtility.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46FD5A5C89B78C89056BED3CC9CC1D74 /* ErrorUtility.swift */; }; + A20ABC648777D13FA9492E559D1498A3 /* ExampleHooks.swift in Sources */ = {isa = PBXBuildFile; fileRef = AC34A396EA216E294416AD4721B04981 /* ExampleHooks.swift */; }; + A23E22F3E05399C7390833D742980647 /* Pods-NativePMExampleAppUITests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 720650416794F9CDFA5986D3D05CFBEA /* Pods-NativePMExampleAppUITests-dummy.m */; }; + A2D6042B665A724C94C9A0B416693727 /* SPGDPRVendorDetailsViewController.xib in Sources */ = {isa = PBXBuildFile; fileRef = B3BF08EA0B6015B0A3D1D6FCF421CE09 /* SPGDPRVendorDetailsViewController.xib */; }; A2E589B844FD71D26755CE0621DAB259 /* jest.config.json in Resources */ = {isa = PBXBuildFile; fileRef = A7FC9F7FA7066E0981C00753F53D557A /* jest.config.json */; }; - A41C6A275D182D7DD0E6F852A9EFF182 /* DSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC5648DD57EC3710C4027051966059D7 /* DSL.swift */; }; - A4982B494F2E3CB066938970D6F3F9E1 /* AllPass.swift in Sources */ = {isa = PBXBuildFile; fileRef = 83D62145E2FC3D33DE0E684DCBF3A038 /* AllPass.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - A4BAEE317BFF650DCC888FC67BFBF7EF /* IQKeyboardManager+UIKeyboardNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = B17917E4DA36BE6E169725A2FACD511D /* IQKeyboardManager+UIKeyboardNotification.swift */; }; + A2E7C668E28898384F61272A7E5F2AB8 /* MetaDataRequestResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = CF775E5B55397CAE6F6DABC7C0AAAC07 /* MetaDataRequestResponse.swift */; }; + A3FCDB34109A1D2028F4A60BC640E3A9 /* SPPrivacyPolicyViewController.xib in Sources */ = {isa = PBXBuildFile; fileRef = F81E028ACDFF0830D7A2F10747835620 /* SPPrivacyPolicyViewController.xib */; }; + A41C6A275D182D7DD0E6F852A9EFF182 /* DSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = B15ADC04FF459E84C6ABC2BDB65630B5 /* DSL.swift */; }; + A4982B494F2E3CB066938970D6F3F9E1 /* AllPass.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD3571F06BA6522D948405B220E90283 /* AllPass.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + A4BAEE317BFF650DCC888FC67BFBF7EF /* IQKeyboardManager+UIKeyboardNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = C2450198951C7A04D49D9EC3D4796A23 /* IQKeyboardManager+UIKeyboardNotification.swift */; }; A4C9EB97F20B7C24E713C0050829D6E2 /* Wormholy-Wormholy in Resources */ = {isa = PBXBuildFile; fileRef = AA92ED38E716E03D3FC758C810953B95 /* Wormholy-Wormholy */; }; A4EAFF99252E8299D7C7F74B5D53831B /* SPAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05EF300E2B3F73B19667BC15EE20108D /* SPAction.swift */; }; A4F92CC3E00382BFA18D255FBBDE9D97 /* Pods-AuthExample-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 9003A744024FE2D5F4EA717E4524F872 /* Pods-AuthExample-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A50B18D48497832C495F4C72CE528C89 /* SPLocalStorage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 83717442412D1566302E36DB7D05030B /* SPLocalStorage.swift */; }; - A57CA2963EA88D543295B6EE5B8FBCC0 /* BeginWithPrefix.swift in Sources */ = {isa = PBXBuildFile; fileRef = 63311F6C1B53E8AEC47ED07D4C720ADD /* BeginWithPrefix.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + A52208F6DDD149CE3C60E9AFC48C4DE5 /* SPJSReceiver.js in Resources */ = {isa = PBXBuildFile; fileRef = D6D8E4D0F1969E5EC16BDED1585EE87C /* SPJSReceiver.js */; }; + A5402A82CC38158AAB63EF5B1D81C31B /* String+ToHTML.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27721A433338F97FF04F8BE5D90C9FBD /* String+ToHTML.swift */; }; + A57CA2963EA88D543295B6EE5B8FBCC0 /* BeginWithPrefix.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8C11695EE5B193D1F0D8BF72B9C9AA7 /* BeginWithPrefix.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; A620529340239F40CB15C2B2B268F91C /* SPWebMessageViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 293DA7B23A2CDB5595E0746D4ECEFBDC /* SPWebMessageViewController.swift */; }; - A63E618214C11DFD86BEEB5D2DFD0355 /* WHCollectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1891C91CF56191B6D16C1D877187796 /* WHCollectionView.swift */; }; + A63E618214C11DFD86BEEB5D2DFD0355 /* WHCollectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DED0566FE4F1AAD73E29261F2647D4CF /* WHCollectionView.swift */; }; A65FBF3FB21D71D1CBC78C7C67959E1B /* SPCampaigns.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2297C272504B8E08B989C847C14513F5 /* SPCampaigns.swift */; }; A726CDA1B3524E7F1186E56426183C5A /* IncludeData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 44CBC0F09E3E9CEA67E781F19EFC5D09 /* IncludeData.swift */; }; - A72F14955B304037D206E4E60D46232C /* PvDataRequestResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C8C4EEED96D125502B0294C6C1281FC /* PvDataRequestResponse.swift */; }; A7A2CBF317B09EF0A593658A41EA4B95 /* Bundle+Framework.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3426D64DAD0355F382B9597FB52D8F2E /* Bundle+Framework.swift */; }; - A8171E010521F550403CAEDF4B9A48C1 /* Match.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1D53A5045EA0D8E68631E597E29DB405 /* Match.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - A89660C8F734CC768F5E36FAF366BD97 /* SourcepointClientCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 61B407E96C23182596C4CD39074D593F /* SourcepointClientCoordinator.swift */; }; - A8AD0AB5B168687BA30BE7980BB12A83 /* URL+FileName.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9419D3A79BAF578F42DF4537F6B281BD /* URL+FileName.swift */; }; - A8D2C8B688B51E8251A41E91D5B7A63C /* SPSDK.swift in Sources */ = {isa = PBXBuildFile; fileRef = 529FD1CC0F9CA0A95F0A43EE447EE6A9 /* SPSDK.swift */; }; - A8E89A5735557B18A969BC58B510399E /* SPError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8202D46743AF5E706935EB8883F7CA30 /* SPError.swift */; }; + A8171E010521F550403CAEDF4B9A48C1 /* Match.swift in Sources */ = {isa = PBXBuildFile; fileRef = E797A7DB019FE3394A969E7B42A29D4B /* Match.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + A86519112C3B4220C82539A7416B3BD3 /* scanners.h in Headers */ = {isa = PBXBuildFile; fileRef = D21A71AD36A279984DFE6049180C8C4E /* scanners.h */; settings = {ATTRIBUTES = (Project, ); }; }; + A8AD0AB5B168687BA30BE7980BB12A83 /* URL+FileName.swift in Sources */ = {isa = PBXBuildFile; fileRef = B925A01B46DC4576D5A7DCEDDB5DD6C6 /* URL+FileName.swift */; }; A947E91D304F0EF7932F96962316067A /* Pods-ObjC-ExampleAppUITests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = EDAFEE9F8D9EE1D309453F1F7B3350B6 /* Pods-ObjC-ExampleAppUITests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - ABA7B297CDB22160450724977A8C0824 /* SimpleClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 666E1CD204EC9B1A138CDBC1BA13F59D /* SimpleClient.swift */; }; + A9B47FECEF54265B27505CB84A2BDFCB /* PMVendorManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = C950C6328AA1CFBB8EDB751B602E74CD /* PMVendorManager.swift */; }; + AA6ADBFBEFB4C23F6185C2C4D7133F46 /* DownXMLRenderable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7CFEFC792F717489E1D0033C41385017 /* DownXMLRenderable.swift */; }; ABEFAEFF22267505C663C96FD88EAC77 /* ConsentViewController-iOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 16CDEE22C97CC95FDCEDC064B6D58B07 /* ConsentViewController-iOS-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; AC02C4FEB029254CBEE48EFE899E8B30 /* ConsentViewController-iOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = D35560D21C50F8F48560EFD5361D32DC /* ConsentViewController-iOS-dummy.m */; }; - AE029A1BF86B6DEE65A9ABF28A6AA3F6 /* NMBExceptionCapture.h in Headers */ = {isa = PBXBuildFile; fileRef = 21B019815AFEA1B9A4FDC721C6E0B255 /* NMBExceptionCapture.h */; settings = {ATTRIBUTES = (Public, ); }; }; - AE832C05623AF527697A2363068F6D4D /* SPUserDefaults.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D266C9D1A3501BDFF255989526FEE20 /* SPUserDefaults.swift */; }; + AC68CA9F49898B6BD81268CC3060190D /* SPCCPAPartnersViewController.xib in Sources */ = {isa = PBXBuildFile; fileRef = B478899DE8D7819A33AC5DEA6EE4AF8F /* SPCCPAPartnersViewController.xib */; }; + ACAEA3E8A176A23B9977B2D069D0EB11 /* iterator.h in Headers */ = {isa = PBXBuildFile; fileRef = 5BBD1477BD8D482C9915EB8096D1F4E4 /* iterator.h */; settings = {ATTRIBUTES = (Project, ); }; }; + AD22E968ECDFABA8D0937B8CA551E79A /* PMCategoryManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8D0A93A803B672E9AE30FF627057B282 /* PMCategoryManager.swift */; }; + ADE576B31B2AAB42ADA3B8A4B5000422 /* SPCampaignEnv.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA6142AA32563AA24734116A7CD4505E /* SPCampaignEnv.swift */; }; + AE029A1BF86B6DEE65A9ABF28A6AA3F6 /* NMBExceptionCapture.h in Headers */ = {isa = PBXBuildFile; fileRef = 264E52F029884E3FDBAA8282ACAAEF3F /* NMBExceptionCapture.h */; settings = {ATTRIBUTES = (Public, ); }; }; AEB01D60E93B68F656DF1738469F7E3D /* Pods-NativeMessageExampleUITests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 6B70E31B5F5D148C1410F07F7C6C78ED /* Pods-NativeMessageExampleUITests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - AEEB03D34DE3E18516D1FA1329A06A2C /* ConsentStatusMetadata.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8741D62C63EE9A4FA64706CD715C03A4 /* ConsentStatusMetadata.swift */; }; - AF28067741ECE83C1292C78A71936835 /* BeLogical.swift in Sources */ = {isa = PBXBuildFile; fileRef = 87FE69F89503F5D30CB44DD04BB17F70 /* BeLogical.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - AF73877606AB4589DF06DEDA97714FDD /* GDPRPrivacyManagerViewResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95B1B75F417CC67204851409EE33F7E2 /* GDPRPrivacyManagerViewResponse.swift */; }; - AFB61058B5B66AE981CF5A6FD4B1E137 /* DSL.m in Sources */ = {isa = PBXBuildFile; fileRef = 1BB896938F2BAC8395767D5FDE856920 /* DSL.m */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + AF28067741ECE83C1292C78A71936835 /* BeLogical.swift in Sources */ = {isa = PBXBuildFile; fileRef = F27E7590E21F4CF0EF3F520B93B1FA63 /* BeLogical.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + AF692D7C512D8E709B80753DA9C520F1 /* CGPoint+Translate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 26381AEAF3A5B85195A7735518CDE616 /* CGPoint+Translate.swift */; }; + AFB61058B5B66AE981CF5A6FD4B1E137 /* DSL.m in Sources */ = {isa = PBXBuildFile; fileRef = C51645FD8897485F1D69445B38DAE43C /* DSL.m */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; AFCD36B21854863CECCE408D12580A08 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 358E1F97E66A2ED0D7C2706C3E3E104F /* Foundation.framework */; }; - AFCE325B306DACC57EF5A1536645237F /* Example.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CB5FE427E1FEB62D5E337D1B21B16CF /* Example.swift */; }; - AFD94E9BDA9A250455ED7DD509CCAF4B /* SPCustomViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04F151AD67ED61790BBCBA9FB1AA160C /* SPCustomViewController.swift */; }; - B07F8454F9834C4F22811EB690451E3C /* String+C99ExtendedIdentifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1CF79DB60C6674B067125E7851227316 /* String+C99ExtendedIdentifier.swift */; }; + AFCE325B306DACC57EF5A1536645237F /* Example.swift in Sources */ = {isa = PBXBuildFile; fileRef = AFB25B07CCBB900612F3038AA46140FB /* Example.swift */; }; + B07F8454F9834C4F22811EB690451E3C /* String+C99ExtendedIdentifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF9A2702875DD2CA1970105832580D39 /* String+C99ExtendedIdentifier.swift */; }; B084D59A01F325CB6C69DA6A718B98B6 /* Pods-NativeMessageExampleUITests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 03E5B52CFD39A36F161C1EA59074B519 /* Pods-NativeMessageExampleUITests-dummy.m */; }; - B0D7A167010E5F743C6C16911F1085F0 /* BeNil.swift in Sources */ = {isa = PBXBuildFile; fileRef = 411E307E334DC89DE91B5D80FB75C706 /* BeNil.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - B174B5E9CC3A88689AA1023346EE2311 /* SPGDPRNativePrivacyManagerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 478A9714D5517A2059B8A522B3476D4D /* SPGDPRNativePrivacyManagerViewController.swift */; }; - B18E85E5F234FDA6B5842B7E8EF6FF6F /* SatisfyAllOf.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0380FE7FAD6788E837DE5A0591BE8D2C /* SatisfyAllOf.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + B0D7A167010E5F743C6C16911F1085F0 /* BeNil.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80168F271651A604523035FD37B31496 /* BeNil.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + B0EB56D8A31A7121DC1B4A375E81E06B /* DownCommonMarkRenderable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92814138089BED333E2B2E1E6F205E9D /* DownCommonMarkRenderable.swift */; }; + B18E85E5F234FDA6B5842B7E8EF6FF6F /* SatisfyAllOf.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF9B524B32EBD31EBE91A65B1AEAE2B4 /* SatisfyAllOf.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; B1B6A2491AC437909DABE20C71BECDBC /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 19110D21508DAB9D98C4C5D0BAF23535 /* CoreGraphics.framework */; }; - B44E7EEF87BF99B3A42C85119DF0AC63 /* RequestTitleSectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64364A62C6B6C780BA90963F0C2366C9 /* RequestTitleSectionView.swift */; }; - B49A110C61CA445E3EC8F5B4D91652D0 /* BeEmpty.swift in Sources */ = {isa = PBXBuildFile; fileRef = CFBFEAD23EBEFF35E562A1AE1AAD2980 /* BeEmpty.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - B5CCAA12D451B5A2DA163D5697787FA1 /* NSURLSessionConfiguration+Wormholy.m in Sources */ = {isa = PBXBuildFile; fileRef = 53FA74CE9C07264ADD94D77E20A52EFC /* NSURLSessionConfiguration+Wormholy.m */; }; - B5FC77D98DF2875C33DF026EE7BD19FB /* ConnectivityManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6A6FD606DAC23570D0869E9ADB9C53FF /* ConnectivityManager.swift */; }; + B200144A2662FC55F5045A9EFFF82011 /* DownStyler.swift in Sources */ = {isa = PBXBuildFile; fileRef = D30BC4A2BB02509CD9B6921D29507A79 /* DownStyler.swift */; }; + B2374D5E5D21A5921C94F8420CA22854 /* ConsentViewController-tvOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 20F31536BBA7624282F314441AB7D1ED /* ConsentViewController-tvOS-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B2ECD4AEBC23EEE2DD3FD4C59EC5E42C /* SPCCPACategoryDetailsViewController.xib in Sources */ = {isa = PBXBuildFile; fileRef = 489CA12B18F8FC3236925A4511BE0A7B /* SPCCPACategoryDetailsViewController.xib */; }; + B31327F383A4FDBAF97A7356AEEB52A8 /* Node.swift in Sources */ = {isa = PBXBuildFile; fileRef = 442A98950A08DA1804EF7DDB733517E7 /* Node.swift */; }; + B43D72B7F6A6F21BD8AA882DF9B9C36F /* jest.config.json in Resources */ = {isa = PBXBuildFile; fileRef = A7FC9F7FA7066E0981C00753F53D557A /* jest.config.json */; }; + B44E7EEF87BF99B3A42C85119DF0AC63 /* RequestTitleSectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8AEE728651825B45170142762B9F92BC /* RequestTitleSectionView.swift */; }; + B49A110C61CA445E3EC8F5B4D91652D0 /* BeEmpty.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51CEF68E4C3B5CF489641AF1F5B0FF6D /* BeEmpty.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + B5CCAA12D451B5A2DA163D5697787FA1 /* NSURLSessionConfiguration+Wormholy.m in Sources */ = {isa = PBXBuildFile; fileRef = CF4B3B28EE8125F595325B427398FB51 /* NSURLSessionConfiguration+Wormholy.m */; }; + B5D401DD6C5FAC655B94627551BA9A35 /* SPGDPRPartnersViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 358D03107AFC8AD97B487E25B662184F /* SPGDPRPartnersViewController.swift */; }; B615632E352E40C168446F677530A789 /* Pods-ConsentViewController_ExampleTests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 180EA410C8CD013748DA27C8F91AE330 /* Pods-ConsentViewController_ExampleTests-dummy.m */; }; - B6B43B1B78EC0E52CC08F82841A22A31 /* IQKeyboardManagerSwift-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 0ED0F0AF20E3AE1A03213CCB24BBA49A /* IQKeyboardManagerSwift-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B688263CC378164C8C1CAB71D8A0AB00 /* SPFocusableTextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 115DBA656BE7CA01AF5CE4445AFBE8F8 /* SPFocusableTextView.swift */; }; + B6B43B1B78EC0E52CC08F82841A22A31 /* IQKeyboardManagerSwift-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = B1F086384F6B2F848A9A1256E8E74A58 /* IQKeyboardManagerSwift-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; B6EC6D40823E66D5B389ACEAC9FD7AAE /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7A0A4F9E0A88F1089D54ECAE44A14BD5 /* QuartzCore.framework */; }; - B8361637C4E133D9B4C21E3382F47001 /* QuickSelectedTestSuiteBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = CEA61D929F4DA7AE9A5166EB4D5638E2 /* QuickSelectedTestSuiteBuilder.swift */; }; + B8361637C4E133D9B4C21E3382F47001 /* QuickSelectedTestSuiteBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06AF8C147B159EAFD671BEA2D92724E7 /* QuickSelectedTestSuiteBuilder.swift */; }; B8B0E565B09795038765AA13EC3878CF /* SPMessageViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27CD48DD7F3A588DE9A336B44E5C39AE /* SPMessageViewController.swift */; }; - B8D7D1AE055873AEC92D89A74C2B99D2 /* World+DSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06F6B74E9FCFB7B7E714506BC5B559FC /* World+DSL.swift */; }; + B8D7D1AE055873AEC92D89A74C2B99D2 /* World+DSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 840B719545A6909C9264D7360E140E74 /* World+DSL.swift */; }; + B8DD858B674ED60A8B6985C79A48DD6D /* parser.h in Headers */ = {isa = PBXBuildFile; fileRef = 53C8CC7E8FC942BEC4A1E73BD846E9D6 /* parser.h */; settings = {ATTRIBUTES = (Project, ); }; }; B9C1033EE93CF1ECCD0627C5230340DF /* SPString.swift in Sources */ = {isa = PBXBuildFile; fileRef = 86F1F5AA5FEC4184D3FD2A77AFFFF304 /* SPString.swift */; }; - BA372FEE4205BB5BD0DDD58A455E4BF8 /* MessagesResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 63C7966CAEA214BAD3C983313BA0AC6D /* MessagesResponse.swift */; }; - BA746FE274B45095BFCF1FFF7A7E0A9D /* CustomActivity.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2335FDE1A680D9B62880B580E770DF87 /* CustomActivity.swift */; }; + BA746FE274B45095BFCF1FFF7A7E0A9D /* CustomActivity.swift in Sources */ = {isa = PBXBuildFile; fileRef = 88C3960918EE14D8B5928FFE66526DFF /* CustomActivity.swift */; }; BA87A402244EE14A5D467FF041EBCD22 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 358E1F97E66A2ED0D7C2706C3E3E104F /* Foundation.framework */; }; - BAA910241CB58283E99B850716D95338 /* SPPrivacyManagerTab.swift in Sources */ = {isa = PBXBuildFile; fileRef = 729B821959DF5795610C23B9E22DF957 /* SPPrivacyManagerTab.swift */; }; - BB0D91D4BB4AC207CAA1121122C2B2C7 /* Errors.swift in Sources */ = {isa = PBXBuildFile; fileRef = 21E20EA8A207C5E703782A30E1CCDC33 /* Errors.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - BB424E97D02713C904D3B48A015983DF /* AdapterProtocols.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4DA121B8553B31DCE630855DD4FF6C5C /* AdapterProtocols.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - BBB34288DA32EC91B33C6C258039770E /* WHNavigationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 721ABC8E22DCBFC42D1152A13E0A140C /* WHNavigationController.swift */; }; + BB0D91D4BB4AC207CAA1121122C2B2C7 /* Errors.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50225E4C9D676A71008537AD2B84789E /* Errors.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + BB424E97D02713C904D3B48A015983DF /* AdapterProtocols.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6779492234D4F962E2CF571B2C94019D /* AdapterProtocols.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + BB9173EDAB02590A098FDC74B8C479F0 /* GDPRPrivacyManagerViewResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95B1B75F417CC67204851409EE33F7E2 /* GDPRPrivacyManagerViewResponse.swift */; }; + BBB34288DA32EC91B33C6C258039770E /* WHNavigationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C8031B5B0076AE14A6CF9249DF40286 /* WHNavigationController.swift */; }; + BC0AA7E40DEC7D868798F2B0E85D0BF4 /* blocks.c in Sources */ = {isa = PBXBuildFile; fileRef = 0FA81AA6EA32A93532A7594E869D3299 /* blocks.c */; }; BC5341C6B93D3CD487681610FEEF29CF /* SourcepointClientCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 61B407E96C23182596C4CD39074D593F /* SourcepointClientCoordinator.swift */; }; - BD2F145C060A99BEDDFBD727B0789C50 /* Quick.h in Headers */ = {isa = PBXBuildFile; fileRef = DF6663A2B0494D4B93CA53648FB360FE /* Quick.h */; settings = {ATTRIBUTES = (Public, ); }; }; - BDE773EB7BA73CAE5FF58588B01D2140 /* RequestsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 44ED6904363F52CFD10E67F1582A01A7 /* RequestsViewController.swift */; }; - BE6E109C988104FF6DF43463870569F6 /* LongButtonViewCell.xib in Sources */ = {isa = PBXBuildFile; fileRef = E8E87378FA42D6EDD6D05140D02E18C0 /* LongButtonViewCell.xib */; }; - BF4E21721F7D6538BF70A304B405D411 /* String+C99ExtendedIdentifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1CF79DB60C6674B067125E7851227316 /* String+C99ExtendedIdentifier.swift */; }; + BD2CD3F77641785F878E909173E28C5D /* Pods-NativePMExampleApp-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B8D19EC5179D7698B6F32F7EABAC1DD /* Pods-NativePMExampleApp-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BD2F145C060A99BEDDFBD727B0789C50 /* Quick.h in Headers */ = {isa = PBXBuildFile; fileRef = 10FD40774BB0C4CD4661550DCF7B90F9 /* Quick.h */; settings = {ATTRIBUTES = (Public, ); }; }; + BDA53947915589E7947858BE0EB99DED /* Barcode.png in Resources */ = {isa = PBXBuildFile; fileRef = 3FAF31771437319132C8D087120F7EB2 /* Barcode.png */; }; + BDE773EB7BA73CAE5FF58588B01D2140 /* RequestsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5D2D1A2EC4B0FEEF03C642D6B99C06E /* RequestsViewController.swift */; }; + BE92B58ABF5494852CDD21CC0C92E1EB /* SPGDPRNativePrivacyManagerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 478A9714D5517A2059B8A522B3476D4D /* SPGDPRNativePrivacyManagerViewController.swift */; }; + BF4E21721F7D6538BF70A304B405D411 /* String+C99ExtendedIdentifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF9A2702875DD2CA1970105832580D39 /* String+C99ExtendedIdentifier.swift */; }; BF87A94302F7A3CFDD8B22B1471640F4 /* SourcePointClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = F50ED8661468C8D694099E55721F0733 /* SourcePointClient.swift */; }; - C00933487B1D7020CAF7583930C66E64 /* Equal+Tuple.swift in Sources */ = {isa = PBXBuildFile; fileRef = 340209A9B47B5483BBC6471331E6F1FF /* Equal+Tuple.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - C00B2B67F1B127B1AE801FFD34DEF859 /* SPPropertyName.swift in Sources */ = {isa = PBXBuildFile; fileRef = 551CDB76348D1D7EE391DF9C6A64583D /* SPPropertyName.swift */; }; - C084C806513BE991DDB2D909B0731D18 /* SPDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 516092EA0B6381F414688DB4BBFDB8C3 /* SPDelegate.swift */; }; + C00933487B1D7020CAF7583930C66E64 /* Equal+Tuple.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1D5CC00FA31E003434C6D65DF8F3DA91 /* Equal+Tuple.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + C09E2D04BCD6FE485CF3FE043FF6140D /* DownHTMLRenderable.swift in Sources */ = {isa = PBXBuildFile; fileRef = C443E6DD1ADC19142B5667B7378C9880 /* DownHTMLRenderable.swift */; }; + C0B5C4FE2036C9ADD051A06082375F66 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8F14AA232F04EB7627811BC6CD5E590F /* Foundation.framework */; }; C109A2A2F32A2007D8F364C4787F69B7 /* ErrorMetricsRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = A558331540B7C379868C3D30BC93FDDB /* ErrorMetricsRequest.swift */; }; C15B7C50B3A6B4E0906117E2B81A331F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 358E1F97E66A2ED0D7C2706C3E3E104F /* Foundation.framework */; }; - C17F2E51FD7D6955327F8AD147142316 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8F14AA232F04EB7627811BC6CD5E590F /* Foundation.framework */; }; - C2192627E8A23CF9DDD245F89D8953F7 /* BeIdenticalTo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4D066C9E951AB3C32513BBB550D91150 /* BeIdenticalTo.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - C2295D3A9296079498EF6831DD064EA7 /* WHView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 960955AE53E13489C104DCF1C1D8076E /* WHView.swift */; }; + C17CDC0CEA536F2AD09C6A355E958CE8 /* SPCampaignType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FC586DF51E03DD2DAFAF4D9E87488F6 /* SPCampaignType.swift */; }; + C200C631EB3058960A0924160E4587A7 /* ListItemOptions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0D24D181ADD549C9848DE3C8A48A2426 /* ListItemOptions.swift */; }; + C2192627E8A23CF9DDD245F89D8953F7 /* BeIdenticalTo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BF285887327E7FE6B84864165C52641 /* BeIdenticalTo.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + C2295D3A9296079498EF6831DD064EA7 /* WHView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2ADA402AD2C0DC196800D6D7DB4E8B11 /* WHView.swift */; }; C27014F76DAD97E49214B02E41804D11 /* SPPrivacyManagerTab.swift in Sources */ = {isa = PBXBuildFile; fileRef = 729B821959DF5795610C23B9E22DF957 /* SPPrivacyManagerTab.swift */; }; + C296C0402E09312104EBC9D69A4694D0 /* ConsentStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84E6ECDA9BA350599A22F8C04B50AE84 /* ConsentStatus.swift */; }; + C3B36202AE9243914D147B22F7BFD908 /* cmark_export.h in Headers */ = {isa = PBXBuildFile; fileRef = 03C1EAD5CBF0790B3DDBF1971FE4A926 /* cmark_export.h */; settings = {ATTRIBUTES = (Project, ); }; }; C3E34F141FA3C06585D2CFED4821FAFB /* AddOrDeleteCustomConsentResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1118F28FE3020A85B55461B0E722E82D /* AddOrDeleteCustomConsentResponse.swift */; }; - C40412F36EB8293BF2D0BA6E322FDFAA /* QuickSelectedTestSuiteBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = CEA61D929F4DA7AE9A5166EB4D5638E2 /* QuickSelectedTestSuiteBuilder.swift */; }; - C71DB65A254234374AE7E05391DC7DED /* ChoiceAllResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 704402944C6D6903D1A98585A725C4BB /* ChoiceAllResponse.swift */; }; - C7AEAD070E6500727EF4FA342ABD2F7C /* SPJSReceiver.spec.js in Resources */ = {isa = PBXBuildFile; fileRef = 4643D453357EFA79CCBA741B0B5B2BC3 /* SPJSReceiver.spec.js */; }; - C807AFD3C8CEA675C531EB456BF335F8 /* HooksPhase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1DD5C09494A0D695B75387956AF712D3 /* HooksPhase.swift */; }; - C81CB3B5D25BDBCB6D3A3632BE408229 /* IQKeyboardReturnKeyHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 07EFCA28E478041C81CBC9695ECF9712 /* IQKeyboardReturnKeyHandler.swift */; }; - C9045C7228C17BCBC6BC96961CA4C2B4 /* SPCampaignEnv.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA6142AA32563AA24734116A7CD4505E /* SPCampaignEnv.swift */; }; - C9A1460F2A16077DDB1980B34633C95F /* BeLessThanOrEqual.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6BB0BCC9DC931FAEAB7784D9CF30E25E /* BeLessThanOrEqual.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - C9DACF78C9601FB2D81BCB6A35BBA3D5 /* MetaDataRequestResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = CF775E5B55397CAE6F6DABC7C0AAAC07 /* MetaDataRequestResponse.swift */; }; - CAD529C03DE828C7F4BE2D80590835A5 /* ExampleMetadata.swift in Sources */ = {isa = PBXBuildFile; fileRef = B9309B3D3DC4E4D9D1C1B83FA9BE5E71 /* ExampleMetadata.swift */; }; - CB9A16647912C296E6B40FDB28A50B85 /* AddOrDeleteCustomConsentResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1118F28FE3020A85B55461B0E722E82D /* AddOrDeleteCustomConsentResponse.swift */; }; - CBF5AB34B6558EFDB14CCEE043C1DFEB /* URL+FileName.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9419D3A79BAF578F42DF4537F6B281BD /* URL+FileName.swift */; }; + C40412F36EB8293BF2D0BA6E322FDFAA /* QuickSelectedTestSuiteBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06AF8C147B159EAFD671BEA2D92724E7 /* QuickSelectedTestSuiteBuilder.swift */; }; + C436B970C805B8C1E00BA97F18F664AF /* scanners.c in Sources */ = {isa = PBXBuildFile; fileRef = 43A59EFF147B151F00B68CC489EF1F61 /* scanners.c */; }; + C79AE28D13C8F7CBFB25603E216F70B7 /* Visitor.swift in Sources */ = {isa = PBXBuildFile; fileRef = B9A9FAAF3CDE683DCE7F80696E3E1780 /* Visitor.swift */; }; + C7B4A5A86E0B0C98EE37EF788C264F8B /* Document.swift in Sources */ = {isa = PBXBuildFile; fileRef = C6DF058A61D708AF2FB75A61C5C773A8 /* Document.swift */; }; + C807AFD3C8CEA675C531EB456BF335F8 /* HooksPhase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 827079B1C799620ADA70CFBA806FA7AA /* HooksPhase.swift */; }; + C81CB3B5D25BDBCB6D3A3632BE408229 /* IQKeyboardReturnKeyHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4F30C92BBD1CC27CB0971D9E9D0897BF /* IQKeyboardReturnKeyHandler.swift */; }; + C9A1460F2A16077DDB1980B34633C95F /* BeLessThanOrEqual.swift in Sources */ = {isa = PBXBuildFile; fileRef = F9AB079CF093527A4CFFAB09421335E5 /* BeLessThanOrEqual.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + CA85A572CA3E120226A1AB071EFB87AD /* QuoteStripeAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F7A51BA7B38F5001CC54F7CB031B708 /* QuoteStripeAttribute.swift */; }; + CAB48FEA45125084851EFDF46C2A53AA /* SPJSReceiver.js in Resources */ = {isa = PBXBuildFile; fileRef = D6D8E4D0F1969E5EC16BDED1585EE87C /* SPJSReceiver.js */; }; + CAD529C03DE828C7F4BE2D80590835A5 /* ExampleMetadata.swift in Sources */ = {isa = PBXBuildFile; fileRef = FB9663275D36F2DF8F24EE7DBC70A4F7 /* ExampleMetadata.swift */; }; + CB1C6AEB426F826F2BB6931D66B6AC6A /* LongButtonViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27D152DD1DE04856BE689AAA0C19C884 /* LongButtonViewCell.swift */; }; + CBF5AB34B6558EFDB14CCEE043C1DFEB /* URL+FileName.swift in Sources */ = {isa = PBXBuildFile; fileRef = B925A01B46DC4576D5A7DCEDDB5DD6C6 /* URL+FileName.swift */; }; + CC2509D81A5E18692461E87497845A6D /* houdini_href_e.c in Sources */ = {isa = PBXBuildFile; fileRef = 39D407912C0402B1D7380AB3F91D2C37 /* houdini_href_e.c */; }; + CC8776288842F3A1A164A603FDF7CCEE /* utf8.c in Sources */ = {isa = PBXBuildFile; fileRef = BD31644DADCD4A243771D8DD47442F62 /* utf8.c */; }; + CCC9D99FACFF8B2085C6BDBCF172234D /* LineBreak.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2216707DE7A34766E9BA9524A4506770 /* LineBreak.swift */; }; CE5D1CEEE7C907CD29B7E8AF81CF44D5 /* QueryParamEncodableProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96909B228E0DE480414A01B306B78F9A /* QueryParamEncodableProtocol.swift */; }; - CE7A5BE80C7E8800D831F3481B0E4A8C /* NMBStringify.m in Sources */ = {isa = PBXBuildFile; fileRef = F40DED4807355371F607A45E96E63C9B /* NMBStringify.m */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - CE7ED2447FFAFB3FFF753586E35B4B1F /* ElementsEqual.swift in Sources */ = {isa = PBXBuildFile; fileRef = D7A4B72C69599180D903A84A285859D4 /* ElementsEqual.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - CFA4A105B947A132D1ECD7165A427DD1 /* javascript in Resources */ = {isa = PBXBuildFile; fileRef = 5F5D44F2C0EF9ABFEBE938FE8D408645 /* javascript */; }; - D0C5835E533BA7232753E371D3599F10 /* EndWith.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2796304021F2B70AB43357F636F6CA93 /* EndWith.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - D22B1B6048FF533A75EE3C02858F01F8 /* Wormholy.h in Headers */ = {isa = PBXBuildFile; fileRef = 4FE0927C921CF8219AA20AD2A618E87D /* Wormholy.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D28626D713D7C8B2B6303BB746CD670B /* SPNativeMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = B9C1CFC70F222752F8E90EE4F85D3E5B /* SPNativeMessage.swift */; }; - D2AF02DF619F4E671CCBEE28604E97F1 /* FailureMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = DEC26655C4E80451FF4C3DBA1199CE75 /* FailureMessage.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - D2F18E06A4AE33C56EA3E17F7D7D254E /* SPMessageUIDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8990E5D07883D1FD44D92144C7E6893E /* SPMessageUIDelegate.swift */; }; - D31356D54A39420DB91C892502CFFD57 /* IQUIViewController+Additions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1A28470306D56C62F4A4F37A95BE4C15 /* IQUIViewController+Additions.swift */; }; - D354178A2D87874F491F036C2426658B /* DSL.m in Sources */ = {isa = PBXBuildFile; fileRef = 1BB896938F2BAC8395767D5FDE856920 /* DSL.m */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - D475921FD42C5F9AF0CDC4A5F4FE4055 /* ActionableTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = E31814C29B58C68F736D7E9DDA445740 /* ActionableTableViewCell.swift */; }; - D4AA83B55907BAFF61483A404992A6E2 /* Storage.swift in Sources */ = {isa = PBXBuildFile; fileRef = F73B41C8AB793C87958EB489EFE61D9C /* Storage.swift */; }; - D4B3C890621F3ABA395DEAB2BB9CDACF /* DSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C66651BBF6242B297BCE1AF00B89A12 /* DSL.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + CE7A5BE80C7E8800D831F3481B0E4A8C /* NMBStringify.m in Sources */ = {isa = PBXBuildFile; fileRef = 11860DB62CCE2A12727931490CF86F58 /* NMBStringify.m */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + CE7ED2447FFAFB3FFF753586E35B4B1F /* ElementsEqual.swift in Sources */ = {isa = PBXBuildFile; fileRef = C376E206D0D66370BA9AB1F8832BD3B8 /* ElementsEqual.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + D0C5835E533BA7232753E371D3599F10 /* EndWith.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6B404CBE40EFC7C7BDE894D329EDD7C2 /* EndWith.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + D22B1B6048FF533A75EE3C02858F01F8 /* Wormholy.h in Headers */ = {isa = PBXBuildFile; fileRef = C5161DB129928CB0A61582027AFBBAE1 /* Wormholy.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D2AF02DF619F4E671CCBEE28604E97F1 /* FailureMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37A38F8E2410D3E9C3AC2CD42833BDBA /* FailureMessage.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + D31356D54A39420DB91C892502CFFD57 /* IQUIViewController+Additions.swift in Sources */ = {isa = PBXBuildFile; fileRef = B76BA69EF675BA3E104496E798C3E72E /* IQUIViewController+Additions.swift */; }; + D354178A2D87874F491F036C2426658B /* DSL.m in Sources */ = {isa = PBXBuildFile; fileRef = C51645FD8897485F1D69445B38DAE43C /* DSL.m */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + D37E6FCEC79A4DEC3202AAB49A399171 /* DownASTRenderable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4945FF7912982C4A68DC3DDC77BBBC8D /* DownASTRenderable.swift */; }; + D3DCF4C5B0D3C6039F51FAA1B3E81E1E /* SPPMHeader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4F3D493738B45263C9F8FD5F2F93E5B1 /* SPPMHeader.swift */; }; + D475921FD42C5F9AF0CDC4A5F4FE4055 /* ActionableTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0D87A12BCF55C5BA2030A543F13E5BED /* ActionableTableViewCell.swift */; }; + D4AA83B55907BAFF61483A404992A6E2 /* Storage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D966529D260DF33A0925C56470DCABC /* Storage.swift */; }; + D4B3C890621F3ABA395DEAB2BB9CDACF /* DSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65431F2B1B767C6E562F451F5E6624CC /* DSL.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + D4BE23F06286F5C89DF17D1DF895CA52 /* Item.swift in Sources */ = {isa = PBXBuildFile; fileRef = 86895502D7A8FBC36517193F928B85D7 /* Item.swift */; }; + D50D4B1B4C6619622E9CE238B882DDBE /* ChildSequence.swift in Sources */ = {isa = PBXBuildFile; fileRef = F7FA610780C15C414C40385861A21ED4 /* ChildSequence.swift */; }; + D51C4CCF966344359BAD3ABBABF87135 /* ConsentStatusResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = B09EB7BFDBBBDDFE4D08E7ADCED030C7 /* ConsentStatusResponse.swift */; }; + D56FC15D9FAAB576E3458FA3830A7D46 /* CustomConsentRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = D6858B4DD371293D2852A7E54FDCB42D /* CustomConsentRequest.swift */; }; D5B8EFCAFFBD42E78B7A43A7E4572044 /* SimpleClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 666E1CD204EC9B1A138CDBC1BA13F59D /* SimpleClient.swift */; }; - D5E503BC73688B8E5D467A8AA03B1E5F /* DSL+Wait.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96D79CB65150A43F4AC3FEED83CA7362 /* DSL+Wait.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - D6516B5451008BF1ABA150E6482F6325 /* IQKeyboardManager+UITextFieldViewNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B48E8255A10C843E508A311E3D3C808 /* IQKeyboardManager+UITextFieldViewNotification.swift */; }; - D72C33D46E237AA38C24F41AB1B7C8EC /* Pods-NativePMExampleAppUITests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = D463E95BBD33777E282E9ACA1764722C /* Pods-NativePMExampleAppUITests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D7AE28ABBC2FD1C8BBEEF79BEB4FEE11 /* QuickSpecBase.m in Sources */ = {isa = PBXBuildFile; fileRef = D7EF3BA904D3779F38FACEDA34CA98DD /* QuickSpecBase.m */; }; - D8345116E5FAB3A02887598E1BC36A9B /* SPAppleTVButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF40733DAE3BB4F60963306FEE1A082B /* SPAppleTVButton.swift */; }; - D8595B8E8834C755E76CDB31DD6144B3 /* World.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3471C7707707FBAD79099C9B57BD6843 /* World.swift */; }; - D8D204649247FF042E9867D9F5771F04 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8F14AA232F04EB7627811BC6CD5E590F /* Foundation.framework */; }; - D90D16EF93B572D25E56C6EE47A4E675 /* CwlMachBadInstructionHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 5FF2EA9F4A39CBF029477C1A037C2DF8 /* CwlMachBadInstructionHandler.m */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + D5C7A22D694ED0C5203EF912CF5C11C2 /* NSObjectExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4EB416474AB2BF00B186E26CC4C2DF76 /* NSObjectExtensions.swift */; }; + D5E503BC73688B8E5D467A8AA03B1E5F /* DSL+Wait.swift in Sources */ = {isa = PBXBuildFile; fileRef = DB8595FA58C64090133B1404C303988C /* DSL+Wait.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + D6516B5451008BF1ABA150E6482F6325 /* IQKeyboardManager+UITextFieldViewNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = E99011D6DC0752191B6C0D0AAE03B10F /* IQKeyboardManager+UITextFieldViewNotification.swift */; }; + D6CEC8526AB65D6A84D9BE803421A8B6 /* Flow.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = CAAC5927463AA87FB034761B3595C1D3 /* Flow.storyboard */; }; + D737BA0A88AC357F9D321F76C52CC581 /* DownRenderable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 617BC5E5ED6957F2FE55CFA65E0A023A /* DownRenderable.swift */; }; + D7AE28ABBC2FD1C8BBEEF79BEB4FEE11 /* QuickSpecBase.m in Sources */ = {isa = PBXBuildFile; fileRef = 933A5B5638160E5921D63A4C3364E25F /* QuickSpecBase.m */; }; + D839411EAA41D6C2C8AB6225E53FC0F8 /* MessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 908712E7D7BF0F6ADE4B9EABB5354452 /* MessageRequest.swift */; }; + D8595B8E8834C755E76CDB31DD6144B3 /* World.swift in Sources */ = {isa = PBXBuildFile; fileRef = CD9D36A3F5DA5E98DB86DF08477AE877 /* World.swift */; }; + D8F1A867C8C135D8A4C17DE5F6C10F4A /* cmark_ctype.c in Sources */ = {isa = PBXBuildFile; fileRef = DFB18C136DCE99B90FF7D411931EB2F4 /* cmark_ctype.c */; }; + D90D16EF93B572D25E56C6EE47A4E675 /* CwlMachBadInstructionHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = A315A7B6ECBF785825BD78B7BB6D04FC /* CwlMachBadInstructionHandler.m */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + D99A4D45B0AC431D91D00D7D70E3F63C /* javascript in Resources */ = {isa = PBXBuildFile; fileRef = 5F5D44F2C0EF9ABFEBE938FE8D408645 /* javascript */; }; + D9A30FEFE288300236529A9F9D7BC470 /* SPCustomViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04F151AD67ED61790BBCBA9FB1AA160C /* SPCustomViewController.swift */; }; D9B2CEDE14F45D97857B89D451B6E7EF /* MessagesResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 63C7966CAEA214BAD3C983313BA0AC6D /* MessagesResponse.swift */; }; - DB55C8DADC70812D12B91E5C3ED8B622 /* SPGDPRConsent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C786A46AC81577E8A8FE6F907F4F20FB /* SPGDPRConsent.swift */; }; - DB707AE7CA67558EABFEB45D98615430 /* LongButtonViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27D152DD1DE04856BE689AAA0C19C884 /* LongButtonViewCell.swift */; }; - DBAE5513BEBB9E893393B956C842759E /* XCTestObservationCenter+Register.m in Sources */ = {isa = PBXBuildFile; fileRef = 3B03C4D03246191894B4C73115A5FC95 /* XCTestObservationCenter+Register.m */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - DD09D5049332E2204E0B11A6E31A46DD /* SPPMHeader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4F3D493738B45263C9F8FD5F2F93E5B1 /* SPPMHeader.swift */; }; - DD171E88D71E4D298F57702F80C4FEC8 /* AllPass.swift in Sources */ = {isa = PBXBuildFile; fileRef = 83D62145E2FC3D33DE0E684DCBF3A038 /* AllPass.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - DE22F7508DF761458B093784C6C8721F /* NMBExpectation.swift in Sources */ = {isa = PBXBuildFile; fileRef = A0867CB1388EF6EF460CA64F798CA4D6 /* NMBExpectation.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - DE285101EB3FA168A5B0851334865706 /* Await.swift in Sources */ = {isa = PBXBuildFile; fileRef = C92514D638CA058C4E40501754C04C0C /* Await.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - DEAAF1DB35FB3F9FDAB6CACC90B882E3 /* WormholyMethodSwizzling.m in Sources */ = {isa = PBXBuildFile; fileRef = D3F5C523810DD56664CB3A9822386DD9 /* WormholyMethodSwizzling.m */; }; - DF33C3DE068D6116B3F551B0453ACD23 /* IQUIScrollView+Additions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37C064BFA0651B54F5E89206BC0764EA /* IQUIScrollView+Additions.swift */; }; - DF96E81119E1C2438C0C2798C06857AC /* QuickTestSuite.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C58B46D4D28CDA3ED378DCE0CB4E975 /* QuickTestSuite.swift */; }; + D9BF48E41DB751E623C91CFB6E2DAF45 /* SPJson.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5311B13E75D266751A602FCE929F48D7 /* SPJson.swift */; }; + DA701E41142856329BAA7CA047FD3B71 /* DownGroffRenderable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1E8A5142B09DB9B65C84189E4515DC5 /* DownGroffRenderable.swift */; }; + DA73905A4DCD32168FCA02B36B313844 /* SP_Icon.png in Resources */ = {isa = PBXBuildFile; fileRef = 526970B89C1898F90B6255738CD35584 /* SP_Icon.png */; }; + DBAE5513BEBB9E893393B956C842759E /* XCTestObservationCenter+Register.m in Sources */ = {isa = PBXBuildFile; fileRef = CC4BF4A2CD5B5CB6EA8A7C9B0F662CD6 /* XCTestObservationCenter+Register.m */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + DC9E0A37ABBFF54A6529A46F174AD99C /* config.h in Headers */ = {isa = PBXBuildFile; fileRef = 22DD0E705B347629A8710A02B8299359 /* config.h */; settings = {ATTRIBUTES = (Project, ); }; }; + DD171E88D71E4D298F57702F80C4FEC8 /* AllPass.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD3571F06BA6522D948405B220E90283 /* AllPass.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + DE22F7508DF761458B093784C6C8721F /* NMBExpectation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 473A7C3CEFD5E9479DB337765E09E0A7 /* NMBExpectation.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + DE285101EB3FA168A5B0851334865706 /* Await.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B97C385536ECA9485526486DC990ECF /* Await.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + DE5E93F7C68CC8E6B635291E81F592F8 /* DownStylerConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = EF200C29F5757D84AB72546365956279 /* DownStylerConfiguration.swift */; }; + DEAAF1DB35FB3F9FDAB6CACC90B882E3 /* WormholyMethodSwizzling.m in Sources */ = {isa = PBXBuildFile; fileRef = 65CEBD3C5DD66F386216F48FD505F889 /* WormholyMethodSwizzling.m */; }; + DF33C3DE068D6116B3F551B0453ACD23 /* IQUIScrollView+Additions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2FBD3480792BC2F46E97894268A8D1FC /* IQUIScrollView+Additions.swift */; }; + DF96E81119E1C2438C0C2798C06857AC /* QuickTestSuite.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2E52D2EDA2417EA4BA098CEFF6FAFE64 /* QuickTestSuite.swift */; }; E037BDA8A0C277E93B9D6D0F41CCAD0F /* SPDeviceManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECD3E396B3ABA6B012AB6074D3397320 /* SPDeviceManager.swift */; }; E03C605C2CBB4A45A75BF4D025CA737A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 358E1F97E66A2ED0D7C2706C3E3E104F /* Foundation.framework */; }; - E04E3D7F93A2C91B6C4D3FDFA999108F /* BeIdenticalTo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4D066C9E951AB3C32513BBB550D91150 /* BeIdenticalTo.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - E0AE9F39817F153D747CBE65C6314824 /* Errors.swift in Sources */ = {isa = PBXBuildFile; fileRef = 21E20EA8A207C5E703782A30E1CCDC33 /* Errors.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - E17A128DCEE0F0CCF2FEF240CF9167F1 /* SPGDPRNativePrivacyManagerViewController.xib in Sources */ = {isa = PBXBuildFile; fileRef = B6014883D5452D3C23F73C0D0E177401 /* SPGDPRNativePrivacyManagerViewController.xib */; }; - E18684D2AE1F329CE63DD6038EA38351 /* AssertionDispatcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0CBBCA9F35316A2FA939679E7E6B0D3 /* AssertionDispatcher.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - E1919F8D5AC3156B236E9386EAFFA663 /* SPPublisherData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 42E78312B70C2330F2ABF983EFB26634 /* SPPublisherData.swift */; }; - E2B420D62D86CB7B9EFDF45F295935CE /* Async.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A92445A8DBCA3C6A4155D2C18EFAA5F /* Async.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - E2F968BF17202092C3C81E139035DD38 /* DSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC5648DD57EC3710C4027051966059D7 /* DSL.swift */; }; + E04E3D7F93A2C91B6C4D3FDFA999108F /* BeIdenticalTo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BF285887327E7FE6B84864165C52641 /* BeIdenticalTo.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + E0AE9F39817F153D747CBE65C6314824 /* Errors.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50225E4C9D676A71008537AD2B84789E /* Errors.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + E0EAF89426847B4EC7555056A6A0C661 /* SPStringifiedJSON.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0ED67E7A9F8438FD8A8CB5F0D10DC6F6 /* SPStringifiedJSON.swift */; }; + E18684D2AE1F329CE63DD6038EA38351 /* AssertionDispatcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8B7ECBC48D5A4C7558411E8764C9E1F /* AssertionDispatcher.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + E2B420D62D86CB7B9EFDF45F295935CE /* Async.swift in Sources */ = {isa = PBXBuildFile; fileRef = 03BB767417D1BC5296166C6D8CE24685 /* Async.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + E2EC1B71156D1BB95579E802B8495C4B /* BlockQuote.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BACDA6E277E5B39C910B6A290643E0D /* BlockQuote.swift */; }; + E2F968BF17202092C3C81E139035DD38 /* DSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = B15ADC04FF459E84C6ABC2BDB65630B5 /* DSL.swift */; }; + E371A09A1E95B578CF7FECFEDE6634AF /* SPCCPANativePrivacyManagerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4027EE899508E71C32EE10B4FA7D7824 /* SPCCPANativePrivacyManagerViewController.swift */; }; + E39E441930AD7B5213BC696DB0FF5C97 /* SPNativeMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = B9C1CFC70F222752F8E90EE4F85D3E5B /* SPNativeMessage.swift */; }; E3D5B8144C188005B435C4DE548C17B2 /* SPUIColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 201D7C8739FB6CC3D963636E0B6B616B /* SPUIColor.swift */; }; - E55875C14717E8840E014070162A4C2D /* NSObjectExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4EB416474AB2BF00B186E26CC4C2DF76 /* NSObjectExtensions.swift */; }; - E59F22B87A79D44586B6537D559CAF96 /* BeResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B64D56D24A95D102B5D9E7F8B2D0433 /* BeResult.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - E62A1DCDD86B9C777DB96E86C83C2AC8 /* QuickSpecBase.m in Sources */ = {isa = PBXBuildFile; fileRef = D7EF3BA904D3779F38FACEDA34CA98DD /* QuickSpecBase.m */; }; - E6586DDB5046E2129E73593F2657BBE4 /* BeWithin.swift in Sources */ = {isa = PBXBuildFile; fileRef = CFC06F1F291F58D18CAE8F7A2119C974 /* BeWithin.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - E665718896A9811A51B4946563237EC5 /* JSONView.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECFDA5278EFB29BA5CA131185F42CBBE /* JSONView.swift */; }; - E72E1BDDFF31003BD089544FC112FAAC /* IQTextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 782126019F63799BA75590E4E69F6677 /* IQTextView.swift */; }; - E77105048A615F865801AA953CFD6FD8 /* HaveCount.swift in Sources */ = {isa = PBXBuildFile; fileRef = AC426A9D72F2B0F3506325D00A187126 /* HaveCount.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - E780282B64A06FBE5267AA2B9E4416FA /* BeginWith.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8DDFFFCCCF50BCA33E8F06F5C7CA4D2 /* BeginWith.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - E88179ADB9C542619C12C62A6680D846 /* Pods-NativePMExampleAppUITests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 720650416794F9CDFA5986D3D05CFBEA /* Pods-NativePMExampleAppUITests-dummy.m */; }; - E93552A79FB5F3C728D2F9F22F70F555 /* Stringers.swift in Sources */ = {isa = PBXBuildFile; fileRef = A621FCC91C5F06F22FFC5F7B814811C5 /* Stringers.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - E96A594972D64778CF7F87836C0E26B4 /* SPCCPAVendorDetailsViewController.xib in Sources */ = {isa = PBXBuildFile; fileRef = 36DFAE9D661C3929C5431B62FA5EACC9 /* SPCCPAVendorDetailsViewController.xib */; }; - E9900F8BEFE534EB228A6C2FF7B7BDBB /* SatisfyAnyOf.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5867AC771193408B1D7C4BCF4272C4E1 /* SatisfyAnyOf.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - E99F0BD431752BE43D65B633FB7A0FBB /* Quick-iOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 19F57D1728BC85DE45BB7100F8340931 /* Quick-iOS-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EA7D1D13BC9B35541192B22962B338F9 /* FailureMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = DEC26655C4E80451FF4C3DBA1199CE75 /* FailureMessage.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - EA957DDA58BA0B531038858EC33011B4 /* DSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C66651BBF6242B297BCE1AF00B89A12 /* DSL.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + E426F460057F89F1CA718B6CDF921337 /* iterator.c in Sources */ = {isa = PBXBuildFile; fileRef = FA53C49EE9E47CCD7458E36103D8D8B4 /* iterator.c */; }; + E59F22B87A79D44586B6537D559CAF96 /* BeResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = A09FB9514C706BAC0D25E445FCF3BDCA /* BeResult.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + E62A1DCDD86B9C777DB96E86C83C2AC8 /* QuickSpecBase.m in Sources */ = {isa = PBXBuildFile; fileRef = 933A5B5638160E5921D63A4C3364E25F /* QuickSpecBase.m */; }; + E6586DDB5046E2129E73593F2657BBE4 /* BeWithin.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9E108468363DC7CF9494FD4110912EF2 /* BeWithin.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + E665718896A9811A51B4946563237EC5 /* JSONView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 503FCC970CD1073CF89DAE091834D6D3 /* JSONView.swift */; }; + E72E1BDDFF31003BD089544FC112FAAC /* IQTextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE249B34809CAE3033328C1268A59433 /* IQTextView.swift */; }; + E77105048A615F865801AA953CFD6FD8 /* HaveCount.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA7CFFF9CE15070521A2CA8C209A9889 /* HaveCount.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + E780282B64A06FBE5267AA2B9E4416FA /* BeginWith.swift in Sources */ = {isa = PBXBuildFile; fileRef = 137E03F5404ED389DB217A87950DE3D4 /* BeginWith.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + E917AB867A70822499012BB20FAD2EE2 /* HtmlInline.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2538445DADB67C90695102ED9F35D0AA /* HtmlInline.swift */; }; + E93552A79FB5F3C728D2F9F22F70F555 /* Stringers.swift in Sources */ = {isa = PBXBuildFile; fileRef = C14D9A75C6D0D148766A787E6DAEEEA2 /* Stringers.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + E9900F8BEFE534EB228A6C2FF7B7BDBB /* SatisfyAnyOf.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B85932749565B4906CC95F83538C516 /* SatisfyAnyOf.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + E99F0BD431752BE43D65B633FB7A0FBB /* Quick-iOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = F57CF95A5BD30FB7562C976EA29963FC /* Quick-iOS-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EA343E2710935ECF04828D2DCAD7A979 /* SP_Icon.png in Resources */ = {isa = PBXBuildFile; fileRef = 526970B89C1898F90B6255738CD35584 /* SP_Icon.png */; }; + EA7D1D13BC9B35541192B22962B338F9 /* FailureMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37A38F8E2410D3E9C3AC2CD42833BDBA /* FailureMessage.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + EA957DDA58BA0B531038858EC33011B4 /* DSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65431F2B1B767C6E562F451F5E6624CC /* DSL.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; EB8F1831C4827B3BFAC9AA396B4351F1 /* SPStringifiedJSON.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0ED67E7A9F8438FD8A8CB5F0D10DC6F6 /* SPStringifiedJSON.swift */; }; EB956BDCAC42ACF56DA0BA5AD634ACC7 /* SPLocalStorage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 83717442412D1566302E36DB7D05030B /* SPLocalStorage.swift */; }; - EC0E6FBB41C9736034FE0083D6B2FE97 /* AssertionRecorder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E961139719C0CC7802E56059F585826 /* AssertionRecorder.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - EC169237EC2B7BFF33AE5986AFA234B8 /* SPGDPRManagePreferenceViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 78944AD0C5E85C206E83971C12C55E2C /* SPGDPRManagePreferenceViewController.swift */; }; - ECB0CDE27886CAF7E059A1BB4012A260 /* ChoiceResponses.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD60E165B424A3376B8717E85854244E /* ChoiceResponses.swift */; }; + EB9EF0E3B54A86C66280138322A0C68E /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8F14AA232F04EB7627811BC6CD5E590F /* Foundation.framework */; }; + EC0E6FBB41C9736034FE0083D6B2FE97 /* AssertionRecorder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4FD7D4A1D044FA2204A01761C94CF067 /* AssertionRecorder.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + EC594FC0034E802473930F0DC4F6CADC /* BaseNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = A92617F51470C15CAD521741390A422E /* BaseNode.swift */; }; ED7FB6DB1B473BEAB855854C362F6EA9 /* MessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 908712E7D7BF0F6ADE4B9EABB5354452 /* MessageRequest.swift */; }; - EDF35B5AA3A54E2BD75B132B0A96E3A1 /* Example.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CB5FE427E1FEB62D5E337D1B21B16CF /* Example.swift */; }; - EE00C9DC4BFDF6407BA67F1853A5D6ED /* ConsentViewController-tvOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 2AB3F7575579A7DE29397E036A658E93 /* ConsentViewController-tvOS-dummy.m */; }; - EE4893F69340C6E86A16C72F2C3002B1 /* BeVoid.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4770059017338C3037F654914C58032E /* BeVoid.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - EE5DD0A9AE8CAF1BB17419ED7D09A807 /* DSL.h in Headers */ = {isa = PBXBuildFile; fileRef = 5EC253E1BE8C2EAFEEFD2B95F5196E92 /* DSL.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EECEAA3B9C98217F8D866DBF4B5A3CB8 /* BeAKindOf.swift in Sources */ = {isa = PBXBuildFile; fileRef = E24FA00E5B02151B00B67C3798B24EF5 /* BeAKindOf.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - EF9084B7EE5E1F9F06D57728CFBB5341 /* Async.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A92445A8DBCA3C6A4155D2C18EFAA5F /* Async.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + EDF35B5AA3A54E2BD75B132B0A96E3A1 /* Example.swift in Sources */ = {isa = PBXBuildFile; fileRef = AFB25B07CCBB900612F3038AA46140FB /* Example.swift */; }; + EE1DFCF5243A87A764D86517D3B7941D /* cmark.c in Sources */ = {isa = PBXBuildFile; fileRef = 4255A9684099CC057C80BE7B5F8CD7FB /* cmark.c */; }; + EE4893F69340C6E86A16C72F2C3002B1 /* BeVoid.swift in Sources */ = {isa = PBXBuildFile; fileRef = 187BE1A69563332FBCC49B18DF193F85 /* BeVoid.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + EE5DD0A9AE8CAF1BB17419ED7D09A807 /* DSL.h in Headers */ = {isa = PBXBuildFile; fileRef = 70294F2D3496502D0176E56BD5A0E1D9 /* DSL.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EECEAA3B9C98217F8D866DBF4B5A3CB8 /* BeAKindOf.swift in Sources */ = {isa = PBXBuildFile; fileRef = 17190541F56BBA8694F01E6811EE3421 /* BeAKindOf.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + EF8EF2D953AAA6A903470D617ACC33C1 /* ConsentViewController-tvOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 2AB3F7575579A7DE29397E036A658E93 /* ConsentViewController-tvOS-dummy.m */; }; + EF9084B7EE5E1F9F06D57728CFBB5341 /* Async.swift in Sources */ = {isa = PBXBuildFile; fileRef = 03BB767417D1BC5296166C6D8CE24685 /* Async.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; EF9AE4B9264A1C864CACCE6310179FF7 /* SPError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8202D46743AF5E706935EB8883F7CA30 /* SPError.swift */; }; - EFC7FD11601486050FF36BFD7F3312F3 /* DSL.h in Headers */ = {isa = PBXBuildFile; fileRef = 5EC253E1BE8C2EAFEEFD2B95F5196E92 /* DSL.h */; settings = {ATTRIBUTES = (Public, ); }; }; - EFF392B76EAF8F985D894CB0F4128DED /* CustomConsentRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = D6858B4DD371293D2852A7E54FDCB42D /* CustomConsentRequest.swift */; }; - F01CED6D3E752AE216478C834571F36A /* NimbleXCTestHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95C27240FC9EE37EA1145B55C47A35A4 /* NimbleXCTestHandler.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - F04C526AFFE6E909BBCCE30AEBE0C408 /* Filter.swift in Sources */ = {isa = PBXBuildFile; fileRef = B610DD493924EDEE1B3C18FBEC80AED6 /* Filter.swift */; }; - F0A7815326717B681D1902DA0D8578B8 /* BeGreaterThanOrEqualTo.swift in Sources */ = {isa = PBXBuildFile; fileRef = B0A29F22252E6E9E06E3F225186F5AE6 /* BeGreaterThanOrEqualTo.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + EFC7FD11601486050FF36BFD7F3312F3 /* DSL.h in Headers */ = {isa = PBXBuildFile; fileRef = 70294F2D3496502D0176E56BD5A0E1D9 /* DSL.h */; settings = {ATTRIBUTES = (Public, ); }; }; + EFD3009DA75F8DD0CB281CE311256B9A /* SPPrivacyPolicyViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB75F4254D16986889A768C5D0748B4E /* SPPrivacyPolicyViewController.swift */; }; + F01CED6D3E752AE216478C834571F36A /* NimbleXCTestHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 22868D7C990287D519469FED4DA72B95 /* NimbleXCTestHandler.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + F04C526AFFE6E909BBCCE30AEBE0C408 /* Filter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B7329FE8B6F03A482CB9D887F017505 /* Filter.swift */; }; + F0A7815326717B681D1902DA0D8578B8 /* BeGreaterThanOrEqualTo.swift in Sources */ = {isa = PBXBuildFile; fileRef = D31606EA9B6F472B81F34078D7AC51CB /* BeGreaterThanOrEqualTo.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; F0CE4F381F4C0518029D6DFE95469BD4 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 358E1F97E66A2ED0D7C2706C3E3E104F /* Foundation.framework */; }; - F1054CE82C94E44505663B1668577B79 /* SPGDPRCategoryDetailsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 996ADC6118AC80DD88D8AD99F3C8ED68 /* SPGDPRCategoryDetailsViewController.swift */; }; - F1324FF77DEB9C6692F36958DD895309 /* ThrowAssertion.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1631AD3252456E4420C52C0DF04D54E5 /* ThrowAssertion.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - F144429820E529577783D4326317E304 /* CwlBadInstructionException.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1026291577A33C9542B3FABBE288A890 /* CwlBadInstructionException.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - F1BE2628E749D1318776ECEA2D68EF75 /* DeleteCustomConsentRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C1C631F418F2FB214B77D554F0FE3E4 /* DeleteCustomConsentRequest.swift */; }; - F1EB1A581846A6E2C042DA786B30E617 /* QCKDSL.h in Headers */ = {isa = PBXBuildFile; fileRef = 657DB3D6966A7638C95064AAAB838239 /* QCKDSL.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F2B1C1D70C629AE19C0D5121B1BBA891 /* IQKeyboardManager+Position.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92A2F9C78701273FCB9E37D7AF3590BA /* IQKeyboardManager+Position.swift */; }; - F3DD4888DB593CB94D4A83566C9062D3 /* Barcode.png in Resources */ = {isa = PBXBuildFile; fileRef = 3FAF31771437319132C8D087120F7EB2 /* Barcode.png */; }; + F0E5F6D972060252E4454327F3C3E4C9 /* cmark_version.h in Headers */ = {isa = PBXBuildFile; fileRef = F11A37CBB808CEE0FF299BADBF67DE39 /* cmark_version.h */; settings = {ATTRIBUTES = (Project, ); }; }; + F1324FF77DEB9C6692F36958DD895309 /* ThrowAssertion.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18F5B34976A38DE6F144DBC79B173B19 /* ThrowAssertion.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + F144429820E529577783D4326317E304 /* CwlBadInstructionException.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4753479FB8DCD331A98162618B938BDC /* CwlBadInstructionException.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + F1EB1A581846A6E2C042DA786B30E617 /* QCKDSL.h in Headers */ = {isa = PBXBuildFile; fileRef = A2951E938C866691A0A2B9D510DCC6B0 /* QCKDSL.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F2B1C1D70C629AE19C0D5121B1BBA891 /* IQKeyboardManager+Position.swift in Sources */ = {isa = PBXBuildFile; fileRef = E5CDEAF94251001BA1B79F2F99403933 /* IQKeyboardManager+Position.swift */; }; + F32053BA3299858D5CDDF9301D1C5FEF /* SPCampaigns.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2297C272504B8E08B989C847C14513F5 /* SPCampaigns.swift */; }; + F3234DE408387E43BD1E1702015B154E /* SPJSReceiver.spec.js in Resources */ = {isa = PBXBuildFile; fileRef = 4643D453357EFA79CCBA741B0B5B2BC3 /* SPJSReceiver.spec.js */; }; + F3D36C6DB0814A30DB60F4FF1FA532E1 /* OSLogger.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99D00C84BC43874116119C8D69B762B1 /* OSLogger.swift */; }; + F3FF33D5FE9F499273C72A31CDF77595 /* SPMessageLanguage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 595A61A825C99B50BA12B98C40ACB365 /* SPMessageLanguage.swift */; }; F4C03CC2D104CB9E1197308E121E3210 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 358E1F97E66A2ED0D7C2706C3E3E104F /* Foundation.framework */; }; F529E73D621135EB73537E22BB99B204 /* SPDateCreated.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95EE7338C8BA95D60D432002B45FC916 /* SPDateCreated.swift */; }; - F57643DA151EEA28F893B0DEDE1A4320 /* BeGreaterThanOrEqualTo.swift in Sources */ = {isa = PBXBuildFile; fileRef = B0A29F22252E6E9E06E3F225186F5AE6 /* BeGreaterThanOrEqualTo.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - F65683DB5B553662A6B2A88E39C1B1CE /* XCTestObservationCenter+Register.m in Sources */ = {isa = PBXBuildFile; fileRef = 3B03C4D03246191894B4C73115A5FC95 /* XCTestObservationCenter+Register.m */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - F685D519C078629826C7A81C2F22B184 /* QuickTestObservation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 21CA5E63D9D88D2F20006DB957F102C6 /* QuickTestObservation.swift */; }; - F747BCC57B4F3BDE66813DD7A274A4A0 /* Behavior.swift in Sources */ = {isa = PBXBuildFile; fileRef = A68EF4B7B65E0118195CC20531A723CD /* Behavior.swift */; }; - F75A0B63D29B86F43185A84351BAAB84 /* images in Resources */ = {isa = PBXBuildFile; fileRef = 6FC46704C27355B19DB1F3B2AD88733B /* images */; }; - F8730329CCB538604FA7D82D81A30F7B /* ThrowAssertion.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1631AD3252456E4420C52C0DF04D54E5 /* ThrowAssertion.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - F8C1660DB82A169D6F855FA0EE0C1DB1 /* PostNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E32FB7E94C073A25C13180045EAE1B8 /* PostNotification.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - FA72DB4D291ADF29E96C3BEC2560573C /* BeCloseTo.swift in Sources */ = {isa = PBXBuildFile; fileRef = A0505E3B346A0D295815835F4D3B3473 /* BeCloseTo.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - FCBE3B9829F2DDA6D4DBC1D8E5F51228 /* Predicate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8D9E8ACF78DB04B0135AB5510FB9EBFB /* Predicate.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; - FD5A091354D03191AC8E62281DC757D6 /* SP_Icon.png in Resources */ = {isa = PBXBuildFile; fileRef = 526970B89C1898F90B6255738CD35584 /* SP_Icon.png */; }; - FDF81807A5BBED3B3536A29B8B4E9AFF /* ErrorUtility.swift in Sources */ = {isa = PBXBuildFile; fileRef = 87A145C0FF19C86AB46BB51380531403 /* ErrorUtility.swift */; }; - FEDE6A7C6FA4B6A785042EB946F0CD93 /* RaisesException.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4E66AA5401D00FFB33E56F778C13ACBE /* RaisesException.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + F545619E40379B69128EE4D13D8896D2 /* SPCCPANativePrivacyManagerViewController.xib in Sources */ = {isa = PBXBuildFile; fileRef = 1AF9837F2C385282B58267362D7FC52F /* SPCCPANativePrivacyManagerViewController.xib */; }; + F57643DA151EEA28F893B0DEDE1A4320 /* BeGreaterThanOrEqualTo.swift in Sources */ = {isa = PBXBuildFile; fileRef = D31606EA9B6F472B81F34078D7AC51CB /* BeGreaterThanOrEqualTo.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + F65683DB5B553662A6B2A88E39C1B1CE /* XCTestObservationCenter+Register.m in Sources */ = {isa = PBXBuildFile; fileRef = CC4BF4A2CD5B5CB6EA8A7C9B0F662CD6 /* XCTestObservationCenter+Register.m */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + F67931B71279675EE17117BBA0B327DD /* SPLocalStorage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 83717442412D1566302E36DB7D05030B /* SPLocalStorage.swift */; }; + F685D519C078629826C7A81C2F22B184 /* QuickTestObservation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 10D5605B91235BC3C8C2EBAC0ECBB279 /* QuickTestObservation.swift */; }; + F6AF7ED469F259C2D9A99413898FB69C /* CCPAPMConsentSnapshot.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CD697B26C8A8E16FF099B230253F0C9 /* CCPAPMConsentSnapshot.swift */; }; + F6E66A631FEDAE536FFDAE28564C1ABA /* SPURLExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = F9F61E6C51A05142C45F3411880E2286 /* SPURLExtensions.swift */; }; + F747BCC57B4F3BDE66813DD7A274A4A0 /* Behavior.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F16564FBAA0831A0474BCEA8CEFC281 /* Behavior.swift */; }; + F8730329CCB538604FA7D82D81A30F7B /* ThrowAssertion.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18F5B34976A38DE6F144DBC79B173B19 /* ThrowAssertion.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + F879DD3EA48C1C6325D36708A7FA1294 /* ThematicBreakOptions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7081DF63F8F7C26E5449D03D6A28AEE6 /* ThematicBreakOptions.swift */; }; + F8C1660DB82A169D6F855FA0EE0C1DB1 /* PostNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = 07909ED5D1C014D7B149EB7F691CBF93 /* PostNotification.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + FA72DB4D291ADF29E96C3BEC2560573C /* BeCloseTo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9BD71BF64D33A5EE5A322826A6D0E381 /* BeCloseTo.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + FAAE69C89974ABBB0B3EC25ADBC1D529 /* inlines.h in Headers */ = {isa = PBXBuildFile; fileRef = 77DBEBDC400AAA8661412D2C950CDE90 /* inlines.h */; settings = {ATTRIBUTES = (Project, ); }; }; + FBA9636C871C6AAB527BACE82165C984 /* SPCCPAManagePreferenceViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C537F67C82337C45E28A1AA2124BC4C8 /* SPCCPAManagePreferenceViewController.swift */; }; + FBC9EAEC9C857F543BC505AB270E1993 /* references.c in Sources */ = {isa = PBXBuildFile; fileRef = 6CD786494CC6EFDC2693FBE7DDAFE2F5 /* references.c */; }; + FCBE3B9829F2DDA6D4DBC1D8E5F51228 /* Predicate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 28DB72A698D4BB26E79A8534A15FD073 /* Predicate.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; + FCE7702A41870983DEAD920600E71FD0 /* SPDeviceManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECD3E396B3ABA6B012AB6074D3397320 /* SPDeviceManager.swift */; }; + FD4E7381748C912F2863D1C85217F12F /* Link.swift in Sources */ = {isa = PBXBuildFile; fileRef = 701793AE80F8D38D3B7EE579EDC49DA2 /* Link.swift */; }; + FDF81807A5BBED3B3536A29B8B4E9AFF /* ErrorUtility.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46FD5A5C89B78C89056BED3CC9CC1D74 /* ErrorUtility.swift */; }; + FE027277BEA987AE406A678CDB4C728F /* SPIDFAStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 79AA76446E91ACA06D35E27CF65D9462 /* SPIDFAStatus.swift */; }; + FE46A1DC05CED0DA92B3DF83E295F1C9 /* Barcode.png in Resources */ = {isa = PBXBuildFile; fileRef = 3FAF31771437319132C8D087120F7EB2 /* Barcode.png */; }; + FEDE6A7C6FA4B6A785042EB946F0CD93 /* RaisesException.swift in Sources */ = {isa = PBXBuildFile; fileRef = E9D5368B55EA84908DB0B3619DA8A1F9 /* RaisesException.swift */; settings = {COMPILER_FLAGS = "-DPRODUCT_NAME=Nimble/Nimble"; }; }; FF7962BB4E93006F2BE7B40DA31CFF4B /* CustomConsentRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = D6858B4DD371293D2852A7E54FDCB42D /* CustomConsentRequest.swift */; }; + FFAF5943E2AD36429975A0882A45B2C2 /* SPGDPRVendorDetailsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80D4A2F3A0774E0C7FA0DDC122EE3476 /* SPGDPRVendorDetailsViewController.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - 0AD313B17C04CE7AC4C6427B418801E2 /* PBXContainerItemProxy */ = { + 1FC4FEA692B307E36C973174E108BC98 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 2B03D5FD26A26B7D62142EA4492AEB83; - remoteInfo = "SwiftLint-iOS"; + remoteGlobalIDString = 89B29D1C701EFC639B36BC482FE72F13; + remoteInfo = "Quick-iOS"; }; - 131A9418402E875F54ACA12CBB95919D /* PBXContainerItemProxy */ = { + 25CACC81B32D18AF143C4E413AC61974 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 3E73ED39761329414C06DD4486C5058E; - remoteInfo = Wormholy; + remoteGlobalIDString = 89B29D1C701EFC639B36BC482FE72F13; + remoteInfo = "Quick-iOS"; }; - 162A6D9DA8939D91C51FD00942D7DE33 /* PBXContainerItemProxy */ = { + 2E6BB5A298A7B62016054D020EB6136F /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 3E73ED39761329414C06DD4486C5058E; - remoteInfo = Wormholy; + remoteGlobalIDString = B4575FF01775E963E58050542C9A4E7A; + remoteInfo = Down; }; - 166E7E3F858D731A811940C6FA8B3664 /* PBXContainerItemProxy */ = { + 32D720CF4B0253350B70B4DD9B908B93 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 84E1147DCA59477E2E390B109585DCAF; - remoteInfo = "ConsentViewController-iOS"; + remoteGlobalIDString = 28BE3303E3F4ECC2BDF79B1D886D2E74; + remoteInfo = "Quick-tvOS"; }; - 17A063C0C4AA6855B5FEDE1F54202AA8 /* PBXContainerItemProxy */ = { + 37D609DDBEA4BAFA40C5559B0273E620 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; remoteGlobalIDString = 2B03D5FD26A26B7D62142EA4492AEB83; remoteInfo = "SwiftLint-iOS"; }; - 1A453D386303579F11545EABFEAFAE5D /* PBXContainerItemProxy */ = { + 3A8A2268935CC4BC7FD62E862A25B150 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 84E1147DCA59477E2E390B109585DCAF; - remoteInfo = "ConsentViewController-iOS"; + remoteGlobalIDString = 07B93100044EF37C3FEE234DF77D3C11; + remoteInfo = "SwiftLint-tvOS"; }; - 1A9889999F55B09CB41D471DCDCA7784 /* PBXContainerItemProxy */ = { + 3BED824000D10011DA763175D07BE4B5 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 89B29D1C701EFC639B36BC482FE72F13; - remoteInfo = "Quick-iOS"; + remoteGlobalIDString = 3AAFED87F58BAA2AC3177A35C2CF5B23; + remoteInfo = "Nimble-iOS"; }; - 1C2E97565C59DFB01A3E3BDB2C1550D9 /* PBXContainerItemProxy */ = { + 3F98C5C3FC46027A5ECAD7E85EA286B7 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 94DAD332BFFC672BBE92726504A716F8; - remoteInfo = "ConsentViewController-tvOS"; + remoteGlobalIDString = 3E73ED39761329414C06DD4486C5058E; + remoteInfo = Wormholy; }; - 2F53A22EA008182778C4786FC18AE02C /* PBXContainerItemProxy */ = { + 411A5F9D79714519247121076A064E77 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 89B29D1C701EFC639B36BC482FE72F13; - remoteInfo = "Quick-iOS"; + remoteGlobalIDString = B490E7485944099E16C9CBD79119D1D4; + remoteInfo = IQKeyboardManagerSwift; }; - 3644768E5F3757BD01A00C1DDCCCFFCA /* PBXContainerItemProxy */ = { + 48BEB62478E6920466EA00B031B41DAE /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 28BE3303E3F4ECC2BDF79B1D886D2E74; - remoteInfo = "Quick-tvOS"; + remoteGlobalIDString = B4575FF01775E963E58050542C9A4E7A; + remoteInfo = Down; }; - 3DBC43A9F7A1E522CF7868FE7F4FC12D /* PBXContainerItemProxy */ = { + 5486CA012691B82F430D829FA6F4277C /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; remoteGlobalIDString = 84E1147DCA59477E2E390B109585DCAF; remoteInfo = "ConsentViewController-iOS"; }; - 466F54612DBA1CBD626E6F4B440F0FC6 /* PBXContainerItemProxy */ = { + 574631BEFBF8FADBFDE6A7EADC24FE05 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = B490E7485944099E16C9CBD79119D1D4; - remoteInfo = IQKeyboardManagerSwift; - }; - 4876F25AEC94ADC11B9D53B2E3E7A31A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 3AAFED87F58BAA2AC3177A35C2CF5B23; - remoteInfo = "Nimble-iOS"; - }; - 4B185AC602FE02667306408BAD2B1E7A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 07B93100044EF37C3FEE234DF77D3C11; - remoteInfo = "SwiftLint-tvOS"; + remoteGlobalIDString = 89B29D1C701EFC639B36BC482FE72F13; + remoteInfo = "Quick-iOS"; }; - 4EF13C830FD2DE32D00FC0928A4EEA09 /* PBXContainerItemProxy */ = { + 5F7FB47DD310A2F238837509B976A03A /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; remoteGlobalIDString = 84E1147DCA59477E2E390B109585DCAF; remoteInfo = "ConsentViewController-iOS"; }; - 4F3E024086E371792841ECC1082CD0EC /* PBXContainerItemProxy */ = { + 62D4926D36ADD4A9DAE2C4B674E52A4E /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 3AAFED87F58BAA2AC3177A35C2CF5B23; - remoteInfo = "Nimble-iOS"; + remoteGlobalIDString = B4575FF01775E963E58050542C9A4E7A; + remoteInfo = Down; }; - 53627FACF5F814E3C68F4EF9FEC9E33C /* PBXContainerItemProxy */ = { + 6C39DAE01952B1A3A419797A4651830A /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 5D0718052BFEE502C9D9BEC44BDCFA76; - remoteInfo = "ConsentViewController-tvOS-ConsentViewController"; + remoteGlobalIDString = 89B29D1C701EFC639B36BC482FE72F13; + remoteInfo = "Quick-iOS"; }; - 53F04AD757F1B4A0C917F667B28332CE /* PBXContainerItemProxy */ = { + 70890B5CA9F693F93EA611ED68E5285E /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 94DAD332BFFC672BBE92726504A716F8; - remoteInfo = "ConsentViewController-tvOS"; + remoteGlobalIDString = 2450D89327C2F3947256DE8768B4B9B9; + remoteInfo = JSONView; }; - 6204718DC5519ED79A3743B45791BFC6 /* PBXContainerItemProxy */ = { + 755FBE2811C640B583D7E9AA11C8E69B /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; remoteGlobalIDString = F9B2C41D8F3FCEB2256091CF2667D600; remoteInfo = "ConsentViewController-iOS-ConsentViewController"; }; - 62A561AFCFA9EFF45D68C973E9D1E2C6 /* PBXContainerItemProxy */ = { + 79A1EF242ADA35DA06FAECB2F42143F2 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; remoteGlobalIDString = 84E1147DCA59477E2E390B109585DCAF; remoteInfo = "ConsentViewController-iOS"; }; - 66B46F642312FFF8002D2A4E640BEEE9 /* PBXContainerItemProxy */ = { + 7D15327DADE0FBA7FC02C5C383222B50 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 3AAFED87F58BAA2AC3177A35C2CF5B23; - remoteInfo = "Nimble-iOS"; + remoteGlobalIDString = 84E1147DCA59477E2E390B109585DCAF; + remoteInfo = "ConsentViewController-iOS"; }; - 6F0DF0DC4ADE8FFB556890CDD5DFA17D /* PBXContainerItemProxy */ = { + 8079E1C9718845FECEB49AFE45839F13 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 3E73ED39761329414C06DD4486C5058E; - remoteInfo = Wormholy; + remoteGlobalIDString = 3AAFED87F58BAA2AC3177A35C2CF5B23; + remoteInfo = "Nimble-iOS"; }; - 76461F2F6667802ECAB47ECE4133D7B2 /* PBXContainerItemProxy */ = { + 85D1DB2CA9D1DB0522F1E5250690D10C /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 89B29D1C701EFC639B36BC482FE72F13; - remoteInfo = "Quick-iOS"; + remoteGlobalIDString = A897D2D55F6D87795224F846F8ED3A36; + remoteInfo = "Nimble-tvOS"; }; - 7B95B63DC0F2569E1315071EED99D4A3 /* PBXContainerItemProxy */ = { + 86051532A4F62507AB3C2134B009A043 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 89B29D1C701EFC639B36BC482FE72F13; - remoteInfo = "Quick-iOS"; + remoteGlobalIDString = 84E1147DCA59477E2E390B109585DCAF; + remoteInfo = "ConsentViewController-iOS"; }; - 7C42DC7D99100A7562F534456449E13D /* PBXContainerItemProxy */ = { + 8BC0E69258D96B35AB5C5815C943C633 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; remoteGlobalIDString = 84E1147DCA59477E2E390B109585DCAF; remoteInfo = "ConsentViewController-iOS"; }; - 8618BC5A5C5E2F4B21FAFECAD097B9A3 /* PBXContainerItemProxy */ = { + 8F31012ECF3730822C00016B116B45C3 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = A897D2D55F6D87795224F846F8ED3A36; - remoteInfo = "Nimble-tvOS"; + remoteGlobalIDString = 93CEC7FFB57A497DE49471C5D9517C13; + remoteInfo = "Wormholy-Wormholy"; }; - 86FBD13B9D0615F786B0EF201A977BBB /* PBXContainerItemProxy */ = { + 955BC2B63EB54790E2C54408B04B294C /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; remoteGlobalIDString = 84E1147DCA59477E2E390B109585DCAF; remoteInfo = "ConsentViewController-iOS"; }; - 8CED0CD61956DD9D577E2A73329915BB /* PBXContainerItemProxy */ = { + 9562CD060F6281C1E8BB0FEE992C87FA /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 2B03D5FD26A26B7D62142EA4492AEB83; - remoteInfo = "SwiftLint-iOS"; + remoteGlobalIDString = 3AAFED87F58BAA2AC3177A35C2CF5B23; + remoteInfo = "Nimble-iOS"; }; - 9065F694C63CFBD20A7BA74ACE48C3D6 /* PBXContainerItemProxy */ = { + A7D92E7BA7A2A2982BB6DD912B336ABB /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 93CEC7FFB57A497DE49471C5D9517C13; - remoteInfo = "Wormholy-Wormholy"; + remoteGlobalIDString = 5D0718052BFEE502C9D9BEC44BDCFA76; + remoteInfo = "ConsentViewController-tvOS-ConsentViewController"; }; - 92374E97C440212BD696CFB224E849E9 /* PBXContainerItemProxy */ = { + AD18A4C7961BA2E448CB44CC3B1FA6E8 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; remoteGlobalIDString = 89B29D1C701EFC639B36BC482FE72F13; remoteInfo = "Quick-iOS"; }; - 9841BE75D36AE4AE516586BF13CBC043 /* PBXContainerItemProxy */ = { + B3AFED0F8E5BDE6B5C95E9450840333E /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; remoteGlobalIDString = 3AAFED87F58BAA2AC3177A35C2CF5B23; remoteInfo = "Nimble-iOS"; }; - 9BDC6E06BDEC8CD5362952F71A258354 /* PBXContainerItemProxy */ = { + B821C3A715C47C10757BC5E5BE5F9C43 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 84E1147DCA59477E2E390B109585DCAF; - remoteInfo = "ConsentViewController-iOS"; + remoteGlobalIDString = 3E73ED39761329414C06DD4486C5058E; + remoteInfo = Wormholy; }; - A059BDC872B43C94E79A035685141DF9 /* PBXContainerItemProxy */ = { + BDEBFD3A7F506989B8CB33D07C79F37E /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; remoteGlobalIDString = 84E1147DCA59477E2E390B109585DCAF; remoteInfo = "ConsentViewController-iOS"; }; - A337433BAA6235B8CB982A700F885340 /* PBXContainerItemProxy */ = { + BE97D9A04C8B4A25ADFB8BC624278FF5 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 2450D89327C2F3947256DE8768B4B9B9; - remoteInfo = JSONView; + remoteGlobalIDString = 94DAD332BFFC672BBE92726504A716F8; + remoteInfo = "ConsentViewController-tvOS"; }; - A77F5F3519797749F98B2F7488D46F7A /* PBXContainerItemProxy */ = { + C906E6162CF65EE63F80DEF3AC56CBB8 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; remoteGlobalIDString = 3E73ED39761329414C06DD4486C5058E; remoteInfo = Wormholy; }; - AA364F1356AB1E9D68A3C66FDF324A7F /* PBXContainerItemProxy */ = { + CBA743273AF20656D5ED517A6C9F6DAA /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 84E1147DCA59477E2E390B109585DCAF; - remoteInfo = "ConsentViewController-iOS"; + remoteGlobalIDString = 2B03D5FD26A26B7D62142EA4492AEB83; + remoteInfo = "SwiftLint-iOS"; }; - AF344CE0DC82F3F35839E93C7F39C9CC /* PBXContainerItemProxy */ = { + CDD7C5FC80331F40AF439A81968B14C0 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; remoteGlobalIDString = 3AAFED87F58BAA2AC3177A35C2CF5B23; remoteInfo = "Nimble-iOS"; }; - DCF8D2ECDD1C176A847D09688880A3E4 /* PBXContainerItemProxy */ = { + D2A433E416CEEEEDAADB63887BA6AC88 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 3AAFED87F58BAA2AC3177A35C2CF5B23; - remoteInfo = "Nimble-iOS"; + remoteGlobalIDString = 89B29D1C701EFC639B36BC482FE72F13; + remoteInfo = "Quick-iOS"; }; - E1230B95C2D5EC04EB0D2AFD997CA55E /* PBXContainerItemProxy */ = { + D565C3120C22A435A12D3609906EA321 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 89B29D1C701EFC639B36BC482FE72F13; - remoteInfo = "Quick-iOS"; + remoteGlobalIDString = 84E1147DCA59477E2E390B109585DCAF; + remoteInfo = "ConsentViewController-iOS"; + }; + DA9CC4F5449141E897573AAA8DE23526 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 2B03D5FD26A26B7D62142EA4492AEB83; + remoteInfo = "SwiftLint-iOS"; }; - F470B54B424CCE7ACBF7746B13A80409 /* PBXContainerItemProxy */ = { + DB2C87732A6F43165FCF188952873B84 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 84E1147DCA59477E2E390B109585DCAF; + remoteInfo = "ConsentViewController-iOS"; + }; + DBB00A92885F64A3EEFC4EE7255779CD /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; remoteGlobalIDString = 2B03D5FD26A26B7D62142EA4492AEB83; remoteInfo = "SwiftLint-iOS"; }; - FC40C52A561730635A3C313012712B55 /* PBXContainerItemProxy */ = { + E2097260B00F95341A371C39F3E92A12 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 94DAD332BFFC672BBE92726504A716F8; + remoteInfo = "ConsentViewController-tvOS"; + }; + E90DCFE775576EDA6012B06285B126CA /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 3E73ED39761329414C06DD4486C5058E; + remoteInfo = Wormholy; + }; + F40F5F100B8E015075D7954020BC46CB /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 3AAFED87F58BAA2AC3177A35C2CF5B23; + remoteInfo = "Nimble-iOS"; + }; + F4A6B97E4F6BF987BDE062BA481528D7 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; @@ -846,510 +969,624 @@ /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ + 000240FF12FC9FA921A32193478CC476 /* DebugVisitor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DebugVisitor.swift; path = Source/AST/Visitors/DebugVisitor.swift; sourceTree = "<group>"; }; + 0059947722F656B119FD60C97AC833F6 /* Nimble-iOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Nimble-iOS-umbrella.h"; sourceTree = "<group>"; }; 00A6150EF71F7EC4E9DF1B20FBE31654 /* Pods-NativePMExampleApp.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-NativePMExampleApp.release.xcconfig"; sourceTree = "<group>"; }; 018DA24A8E9AEDD7D76CB1BBD69D4BF6 /* Pods-NativeMessageExample.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-NativeMessageExample.modulemap"; sourceTree = "<group>"; }; 031947E70928BEC10305773FD583AF03 /* Pods-SPGDPRExampleAppUITests-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-SPGDPRExampleAppUITests-Info.plist"; sourceTree = "<group>"; }; 0344CFA79C2E0C50029085BAAEE4530F /* Pods-SourcePointMetaApp.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-SourcePointMetaApp.debug.xcconfig"; sourceTree = "<group>"; }; - 0380FE7FAD6788E837DE5A0591BE8D2C /* SatisfyAllOf.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SatisfyAllOf.swift; path = Sources/Nimble/Matchers/SatisfyAllOf.swift; sourceTree = "<group>"; }; 0390D0D2ECC2B32F9AA8AF682E64F7E5 /* Pods-NativeMessageExampleUITests */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Pods-NativeMessageExampleUITests"; path = Pods_NativeMessageExampleUITests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 03B06ABE9E1342072D5858485F4F012E /* Paragraph.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Paragraph.swift; path = Source/AST/Nodes/Paragraph.swift; sourceTree = "<group>"; }; + 03BB767417D1BC5296166C6D8CE24685 /* Async.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Async.swift; path = Sources/Nimble/Matchers/Async.swift; sourceTree = "<group>"; }; + 03C1EAD5CBF0790B3DDBF1971FE4A926 /* cmark_export.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = cmark_export.h; path = Source/cmark/cmark_export.h; sourceTree = "<group>"; }; 03E5B52CFD39A36F161C1EA59074B519 /* Pods-NativeMessageExampleUITests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-NativeMessageExampleUITests-dummy.m"; sourceTree = "<group>"; }; + 03E6DD0FCA9C5A4862739B575FA5EC61 /* IQKeyboardManagerSwift.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = IQKeyboardManagerSwift.debug.xcconfig; sourceTree = "<group>"; }; + 03FB2C2EAA650057FDB80218C9538C18 /* Equal.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Equal.swift; path = Sources/Nimble/Matchers/Equal.swift; sourceTree = "<group>"; }; 047053BC498C04B9C5A54C9248EA470E /* Pods-ConsentViewController_ExampleTests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-ConsentViewController_ExampleTests-umbrella.h"; sourceTree = "<group>"; }; + 04A2FB97CD45DDF88E3278E1BE55BF7D /* Wormholy-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Wormholy-Info.plist"; sourceTree = "<group>"; }; 04F151AD67ED61790BBCBA9FB1AA160C /* SPCustomViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SPCustomViewController.swift; sourceTree = "<group>"; }; 05E89BF4BC7BB0DEC5F47D84C677BBC5 /* Pods-SourcePointMetaApp.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-SourcePointMetaApp.modulemap"; sourceTree = "<group>"; }; 05EF300E2B3F73B19667BC15EE20108D /* SPAction.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SPAction.swift; path = ConsentViewController/Classes/SPAction.swift; sourceTree = "<group>"; }; - 06F6B74E9FCFB7B7E714506BC5B559FC /* World+DSL.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "World+DSL.swift"; path = "Sources/Quick/DSL/World+DSL.swift"; sourceTree = "<group>"; }; - 07A27EE1551546DE1D5141959752F51F /* WHString.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = WHString.swift; path = Sources/Subclasses/WHString.swift; sourceTree = "<group>"; }; - 07EFCA28E478041C81CBC9695ECF9712 /* IQKeyboardReturnKeyHandler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQKeyboardReturnKeyHandler.swift; path = IQKeyboardManagerSwift/IQKeyboardReturnKeyHandler.swift; sourceTree = "<group>"; }; - 0C695CC5E5B8DED132F1EFE3C9752ABF /* WHTextView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = WHTextView.swift; path = Sources/Subclasses/WHTextView.swift; sourceTree = "<group>"; }; + 06AF8C147B159EAFD671BEA2D92724E7 /* QuickSelectedTestSuiteBuilder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = QuickSelectedTestSuiteBuilder.swift; path = Sources/Quick/QuickSelectedTestSuiteBuilder.swift; sourceTree = "<group>"; }; + 07138E598D41B9BE88401A889CECB6E1 /* QCKConfiguration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = QCKConfiguration.swift; path = Sources/Quick/Configuration/QCKConfiguration.swift; sourceTree = "<group>"; }; + 0758C78A136FF46598392E3AC4DF0F9F /* IQUIView+Hierarchy.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQUIView+Hierarchy.swift"; path = "IQKeyboardManagerSwift/Categories/IQUIView+Hierarchy.swift"; sourceTree = "<group>"; }; + 07909ED5D1C014D7B149EB7F691CBF93 /* PostNotification.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PostNotification.swift; path = Sources/Nimble/Matchers/PostNotification.swift; sourceTree = "<group>"; }; + 08C21BB1D865A9409170888F294A9126 /* SwiftLint-iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "SwiftLint-iOS.release.xcconfig"; sourceTree = "<group>"; }; + 0A8915805A6E3A56ECCC93195CA0E17A /* SuiteHooks.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SuiteHooks.swift; path = Sources/Quick/Hooks/SuiteHooks.swift; sourceTree = "<group>"; }; + 0B7329FE8B6F03A482CB9D887F017505 /* Filter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Filter.swift; path = Sources/Quick/Filter.swift; sourceTree = "<group>"; }; + 0BE089073D68EF0B27AEA02CF5701263 /* QuickConfiguration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QuickConfiguration.m; path = Sources/QuickObjectiveC/Configuration/QuickConfiguration.m; sourceTree = "<group>"; }; + 0BF285887327E7FE6B84864165C52641 /* BeIdenticalTo.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BeIdenticalTo.swift; path = Sources/Nimble/Matchers/BeIdenticalTo.swift; sourceTree = "<group>"; }; + 0CC4EC8308E462115E693E5966185CA7 /* Code.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Code.swift; path = Source/AST/Nodes/Code.swift; sourceTree = "<group>"; }; + 0D24D181ADD549C9848DE3C8A48A2426 /* ListItemOptions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ListItemOptions.swift; path = Source/AST/Styling/Options/ListItemOptions.swift; sourceTree = "<group>"; }; 0D68F2DD4656E2DC0F28ED037671461F /* Nimble-tvOS */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Nimble-tvOS"; path = Nimble.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 0DC58DD7393E77397E396B98EB7BE1A4 /* Wormholy.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Wormholy.swift; path = Sources/Wormholy.swift; sourceTree = "<group>"; }; + 0D87A12BCF55C5BA2030A543F13E5BED /* ActionableTableViewCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ActionableTableViewCell.swift; path = Sources/UI/Cells/ActionableTableViewCell.swift; sourceTree = "<group>"; }; + 0DCCB7E13844141792F26DA17E9F2A88 /* ContainElementSatisfying.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ContainElementSatisfying.swift; path = Sources/Nimble/Matchers/ContainElementSatisfying.swift; sourceTree = "<group>"; }; 0DE75CD9833B750BE6C6AF736A82C346 /* ConsentViewController-tvOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "ConsentViewController-tvOS.release.xcconfig"; path = "../ConsentViewController-tvOS/ConsentViewController-tvOS.release.xcconfig"; sourceTree = "<group>"; }; - 0ED0F0AF20E3AE1A03213CCB24BBA49A /* IQKeyboardManagerSwift-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "IQKeyboardManagerSwift-umbrella.h"; sourceTree = "<group>"; }; + 0E4356254470C38ADFCF81BF50F4EFE8 /* Quick-tvOS-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; name = "Quick-tvOS-Info.plist"; path = "../Quick-tvOS/Quick-tvOS-Info.plist"; sourceTree = "<group>"; }; 0ED67E7A9F8438FD8A8CB5F0D10DC6F6 /* SPStringifiedJSON.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SPStringifiedJSON.swift; path = ConsentViewController/Classes/SPStringifiedJSON.swift; sourceTree = "<group>"; }; + 0FA81AA6EA32A93532A7594E869D3299 /* blocks.c */ = {isa = PBXFileReference; includeInIndex = 1; name = blocks.c; path = Source/cmark/blocks.c; sourceTree = "<group>"; }; 0FBF04B83DBEEDBEB37789AB69EDD109 /* Pods-NativeMessageExample */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Pods-NativeMessageExample"; path = Pods_NativeMessageExample.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 1026291577A33C9542B3FABBE288A890 /* CwlBadInstructionException.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CwlBadInstructionException.swift; path = Carthage/Checkouts/CwlPreconditionTesting/Sources/CwlPreconditionTesting/CwlBadInstructionException.swift; sourceTree = "<group>"; }; + 10473F9F34E076F4BC8C76A0EDE622BC /* render.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = render.h; path = Source/cmark/render.h; sourceTree = "<group>"; }; + 10D5605B91235BC3C8C2EBAC0ECBB279 /* QuickTestObservation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = QuickTestObservation.swift; path = Sources/Quick/QuickTestObservation.swift; sourceTree = "<group>"; }; 10FB18F921BEBA1F02F96585EF541F88 /* Pods-ObjC-ExampleAppUITests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ObjC-ExampleAppUITests.release.xcconfig"; sourceTree = "<group>"; }; + 10FD40774BB0C4CD4661550DCF7B90F9 /* Quick.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Quick.h; path = Sources/QuickObjectiveC/Quick.h; sourceTree = "<group>"; }; 1118F28FE3020A85B55461B0E722E82D /* AddOrDeleteCustomConsentResponse.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = AddOrDeleteCustomConsentResponse.swift; sourceTree = "<group>"; }; 115DBA656BE7CA01AF5CE4445AFBE8F8 /* SPFocusableTextView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SPFocusableTextView.swift; sourceTree = "<group>"; }; - 115FD14F54FB6B79B6EA8E2CB4E36D60 /* IQKeyboardManager+Internal.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQKeyboardManager+Internal.swift"; path = "IQKeyboardManagerSwift/IQKeyboardManager+Internal.swift"; sourceTree = "<group>"; }; + 117041B8647E513963A6BA13266955A3 /* html.c */ = {isa = PBXFileReference; includeInIndex = 1; name = html.c; path = Source/cmark/html.c; sourceTree = "<group>"; }; + 11860DB62CCE2A12727931490CF86F58 /* NMBStringify.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = NMBStringify.m; path = Sources/NimbleObjectiveC/NMBStringify.m; sourceTree = "<group>"; }; 120DB32A84B61F0C61C226D9D9D1E4E7 /* Pods-ConsentViewController_ExampleTests */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Pods-ConsentViewController_ExampleTests"; path = Pods_ConsentViewController_ExampleTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 127D55D2D74E4C7F7B687C73A953FF57 /* Quick-tvOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Quick-tvOS.debug.xcconfig"; path = "../Quick-tvOS/Quick-tvOS.debug.xcconfig"; sourceTree = "<group>"; }; - 1318C2EB7FDBE59031F3BD98FF3FC645 /* Postman.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Postman.swift; path = Sources/Models/Postman/Postman.swift; sourceTree = "<group>"; }; + 135E1342AB961BE0D0B71A03B9EDAA81 /* DownAttributedStringRenderable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DownAttributedStringRenderable.swift; path = Source/Renderers/DownAttributedStringRenderable.swift; sourceTree = "<group>"; }; 1372A710627A79B0C7656EC3E9B262CC /* SPWebViewExtensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SPWebViewExtensions.swift; sourceTree = "<group>"; }; 137918CE4B88414F0264658E8287F9FC /* Pods-NativePMExampleApp.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-NativePMExampleApp.modulemap"; sourceTree = "<group>"; }; - 13EA52F01B9131D674F96129406F4835 /* NMBExceptionCapture.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = NMBExceptionCapture.m; path = Sources/NimbleObjectiveC/NMBExceptionCapture.m; sourceTree = "<group>"; }; + 137E03F5404ED389DB217A87950DE3D4 /* BeginWith.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BeginWith.swift; path = Sources/Nimble/Matchers/BeginWith.swift; sourceTree = "<group>"; }; 13F75203FAF2E8BDDD24BCEADAEED36B /* Pods-SourcePointMetaApp-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-SourcePointMetaApp-acknowledgements.markdown"; sourceTree = "<group>"; }; - 141EE4AA5AC0E07BE1905547157BA6CD /* Contain.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Contain.swift; path = Sources/Nimble/Matchers/Contain.swift; sourceTree = "<group>"; }; - 1631AD3252456E4420C52C0DF04D54E5 /* ThrowAssertion.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ThrowAssertion.swift; path = Sources/Nimble/Matchers/ThrowAssertion.swift; sourceTree = "<group>"; }; + 142CB463E6DC28D50FDFB70636557B4E /* DownDebugLayoutManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DownDebugLayoutManager.swift; path = "Source/AST/Styling/Layout Managers/DownDebugLayoutManager.swift"; sourceTree = "<group>"; }; + 14CC9F07ACC4CAD18A2A4F5AFF7D3D44 /* Down.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Down.release.xcconfig; sourceTree = "<group>"; }; + 15024E0436E62BED0C5FD20F29DDF1A4 /* Nimble-iOS-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Nimble-iOS-Info.plist"; sourceTree = "<group>"; }; + 152016598FEB9AF219872CCA45E20932 /* ListItemPrefixGenerator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ListItemPrefixGenerator.swift; path = Source/AST/Visitors/ListItemPrefixGenerator.swift; sourceTree = "<group>"; }; + 157FC1A2B09B5196FB27B65EAEB31FCE /* WHTableView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = WHTableView.swift; path = Sources/Subclasses/WHTableView.swift; sourceTree = "<group>"; }; + 15D70F7A298CC42D2568987A442A3935 /* Nimble-tvOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Nimble-tvOS.debug.xcconfig"; path = "../Nimble-tvOS/Nimble-tvOS.debug.xcconfig"; sourceTree = "<group>"; }; 16CDEE22C97CC95FDCEDC064B6D58B07 /* ConsentViewController-iOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "ConsentViewController-iOS-umbrella.h"; sourceTree = "<group>"; }; + 17190541F56BBA8694F01E6811EE3421 /* BeAKindOf.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BeAKindOf.swift; path = Sources/Nimble/Matchers/BeAKindOf.swift; sourceTree = "<group>"; }; 1757B8C944E1E0E10203BD4383190D16 /* Pods-SourcePointMetaApp.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-SourcePointMetaApp.release.xcconfig"; sourceTree = "<group>"; }; - 17669560008D6CBAEFC1FBE590781773 /* BeLessThan.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BeLessThan.swift; path = Sources/Nimble/Matchers/BeLessThan.swift; sourceTree = "<group>"; }; 17E9762D087007658323A8BC59C33F9C /* Pods-NativePMExampleAppUITests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-NativePMExampleAppUITests.debug.xcconfig"; sourceTree = "<group>"; }; - 17F52D4230F9EBC8AD821641D6330AF2 /* ActionableTableViewCell.xib */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = file.xib; name = ActionableTableViewCell.xib; path = Sources/UI/Cells/ActionableTableViewCell.xib; sourceTree = "<group>"; }; + 17F9CE199E7234100943A082F7090697 /* XCTestSuite+QuickTestSuiteBuilder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "XCTestSuite+QuickTestSuiteBuilder.m"; path = "Sources/QuickObjectiveC/XCTestSuite+QuickTestSuiteBuilder.m"; sourceTree = "<group>"; }; 180EA410C8CD013748DA27C8F91AE330 /* Pods-ConsentViewController_ExampleTests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-ConsentViewController_ExampleTests-dummy.m"; sourceTree = "<group>"; }; - 1846B7AE8ACCC3C91FF234D7EB01FDDA /* JSONView.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = JSONView.modulemap; sourceTree = "<group>"; }; - 187373211831CCBEF561A2272DEE9C1E /* Nimble-tvOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "Nimble-tvOS-umbrella.h"; path = "../Nimble-tvOS/Nimble-tvOS-umbrella.h"; sourceTree = "<group>"; }; - 187AB672B4B2D013D366C0F2D8F829B4 /* IQKeyboardManagerSwift-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "IQKeyboardManagerSwift-prefix.pch"; sourceTree = "<group>"; }; + 1836C79E905BFED1185217A961DE5924 /* Down.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Down.debug.xcconfig; sourceTree = "<group>"; }; + 187BE1A69563332FBCC49B18DF193F85 /* BeVoid.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BeVoid.swift; path = Sources/Nimble/Matchers/BeVoid.swift; sourceTree = "<group>"; }; + 18F5B34976A38DE6F144DBC79B173B19 /* ThrowAssertion.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ThrowAssertion.swift; path = Sources/Nimble/Matchers/ThrowAssertion.swift; sourceTree = "<group>"; }; 19110D21508DAB9D98C4C5D0BAF23535 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.0.sdk/System/Library/Frameworks/CoreGraphics.framework; sourceTree = DEVELOPER_DIR; }; - 19F57D1728BC85DE45BB7100F8340931 /* Quick-iOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Quick-iOS-umbrella.h"; sourceTree = "<group>"; }; - 1A28470306D56C62F4A4F37A95BE4C15 /* IQUIViewController+Additions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQUIViewController+Additions.swift"; path = "IQKeyboardManagerSwift/Categories/IQUIViewController+Additions.swift"; sourceTree = "<group>"; }; - 1A75678CF15E786713C19F5C7E2B8765 /* SwiftLint-tvOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "SwiftLint-tvOS.release.xcconfig"; path = "../SwiftLint-tvOS/SwiftLint-tvOS.release.xcconfig"; sourceTree = "<group>"; }; 1AF9837F2C385282B58267362D7FC52F /* SPCCPANativePrivacyManagerViewController.xib */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = file.xib; path = SPCCPANativePrivacyManagerViewController.xib; sourceTree = "<group>"; }; - 1BB896938F2BAC8395767D5FDE856920 /* DSL.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DSL.m; path = Sources/NimbleObjectiveC/DSL.m; sourceTree = "<group>"; }; - 1C0BBEBF8BE0324C551F3491513BE35C /* CwlCatchException.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CwlCatchException.swift; path = Carthage/Checkouts/CwlCatchException/Sources/CwlCatchException/CwlCatchException.swift; sourceTree = "<group>"; }; + 1B83C1EF010747D15760FE6A52D72BE7 /* mach_excServer.c */ = {isa = PBXFileReference; includeInIndex = 1; name = mach_excServer.c; path = Carthage/Checkouts/CwlPreconditionTesting/Sources/CwlMachBadInstructionHandler/mach_excServer.c; sourceTree = "<group>"; }; 1C1C631F418F2FB214B77D554F0FE3E4 /* DeleteCustomConsentRequest.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = DeleteCustomConsentRequest.swift; sourceTree = "<group>"; }; - 1C4332F72D50C24DF7625DC7A092464B /* Config.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Config.swift; path = "Sources/Support Files/Config.swift"; sourceTree = "<group>"; }; - 1CF79DB60C6674B067125E7851227316 /* String+C99ExtendedIdentifier.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "String+C99ExtendedIdentifier.swift"; path = "Sources/Quick/String+C99ExtendedIdentifier.swift"; sourceTree = "<group>"; }; - 1D0138A00D62EB30F0FF7A192AE56EA4 /* NSBundle+CurrentTestBundle.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "NSBundle+CurrentTestBundle.swift"; path = "Sources/Quick/NSBundle+CurrentTestBundle.swift"; sourceTree = "<group>"; }; 1D337BBB5D7E432F57EFA909DD5A9160 /* Pods-SPGDPRExampleAppUITests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-SPGDPRExampleAppUITests-acknowledgements.markdown"; sourceTree = "<group>"; }; - 1D53A5045EA0D8E68631E597E29DB405 /* Match.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Match.swift; path = Sources/Nimble/Matchers/Match.swift; sourceTree = "<group>"; }; - 1DD5C09494A0D695B75387956AF712D3 /* HooksPhase.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = HooksPhase.swift; path = Sources/Quick/Hooks/HooksPhase.swift; sourceTree = "<group>"; }; - 1E32FB7E94C073A25C13180045EAE1B8 /* PostNotification.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PostNotification.swift; path = Sources/Nimble/Matchers/PostNotification.swift; sourceTree = "<group>"; }; - 200F492CC3C1C8622293CBF849BC49E8 /* CwlCatchBadInstructionPosix.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CwlCatchBadInstructionPosix.swift; path = Carthage/Checkouts/CwlPreconditionTesting/Sources/CwlPosixPreconditionTesting/CwlCatchBadInstructionPosix.swift; sourceTree = "<group>"; }; + 1D3B561010BE2A4F21A3F0268ABDC331 /* CustomHTTPProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CustomHTTPProtocol.swift; path = Sources/CustomHTTPProtocol.swift; sourceTree = "<group>"; }; + 1D5CC00FA31E003434C6D65DF8F3DA91 /* Equal+Tuple.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Equal+Tuple.swift"; path = "Sources/Nimble/Matchers/Equal+Tuple.swift"; sourceTree = "<group>"; }; + 1DFB52D0BAC06E2A28FC6B18D1216BF0 /* houdini_html_e.c */ = {isa = PBXFileReference; includeInIndex = 1; name = houdini_html_e.c; path = Source/cmark/houdini_html_e.c; sourceTree = "<group>"; }; + 1F125995019C967D8221B1998A1F45FA /* IQKeyboardManagerSwift.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = IQKeyboardManagerSwift.modulemap; sourceTree = "<group>"; }; + 1F7A51BA7B38F5001CC54F7CB031B708 /* QuoteStripeAttribute.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = QuoteStripeAttribute.swift; path = "Source/AST/Styling/Custom Attributes/QuoteStripeAttribute.swift"; sourceTree = "<group>"; }; + 1FEC456ADDF2069AA24CA59D508A3A65 /* node.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = node.h; path = Source/cmark/node.h; sourceTree = "<group>"; }; + 1FF9490F64DC44BA5A308995182E951C /* RequestTitleSectionView.xib */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = file.xib; name = RequestTitleSectionView.xib; path = Sources/UI/Sections/RequestTitleSectionView.xib; sourceTree = "<group>"; }; 2012491F1151404FE86F38D1E721B6A5 /* Pods-NativeMessageExample.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-NativeMessageExample.release.xcconfig"; sourceTree = "<group>"; }; 201D7C8739FB6CC3D963636E0B6B616B /* SPUIColor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SPUIColor.swift; sourceTree = "<group>"; }; 20A4710BBD2EE3CFC496E3AF134BD4FD /* ConsentViewController-tvOS-ConsentViewController */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = "ConsentViewController-tvOS-ConsentViewController"; path = ConsentViewController.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; 20F31536BBA7624282F314441AB7D1ED /* ConsentViewController-tvOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "ConsentViewController-tvOS-umbrella.h"; path = "../ConsentViewController-tvOS/ConsentViewController-tvOS-umbrella.h"; sourceTree = "<group>"; }; - 21B019815AFEA1B9A4FDC721C6E0B255 /* NMBExceptionCapture.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NMBExceptionCapture.h; path = Sources/NimbleObjectiveC/NMBExceptionCapture.h; sourceTree = "<group>"; }; - 21CA5E63D9D88D2F20006DB957F102C6 /* QuickTestObservation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = QuickTestObservation.swift; path = Sources/Quick/QuickTestObservation.swift; sourceTree = "<group>"; }; - 21E20EA8A207C5E703782A30E1CCDC33 /* Errors.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Errors.swift; path = Sources/Nimble/Utils/Errors.swift; sourceTree = "<group>"; }; + 2216707DE7A34766E9BA9524A4506770 /* LineBreak.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LineBreak.swift; path = Source/AST/Nodes/LineBreak.swift; sourceTree = "<group>"; }; + 2250D5EFB0AB8081F75296DB53AFB6FD /* Expectation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Expectation.swift; path = Sources/Nimble/Expectation.swift; sourceTree = "<group>"; }; + 22757A3DD0FCCB8D93C46FBC5F9AC8EF /* Wormholy.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Wormholy.swift; path = Sources/Wormholy.swift; sourceTree = "<group>"; }; + 22868D7C990287D519469FED4DA72B95 /* NimbleXCTestHandler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NimbleXCTestHandler.swift; path = Sources/Nimble/Adapters/NimbleXCTestHandler.swift; sourceTree = "<group>"; }; 2297C272504B8E08B989C847C14513F5 /* SPCampaigns.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SPCampaigns.swift; path = ConsentViewController/Classes/SPCampaigns.swift; sourceTree = "<group>"; }; - 2335FDE1A680D9B62880B580E770DF87 /* CustomActivity.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CustomActivity.swift; path = Sources/Subclasses/CustomActivity.swift; sourceTree = "<group>"; }; + 22D6C8EDA33C564DE94EEA2C5A9F0E49 /* mach_excServer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = mach_excServer.h; path = Carthage/Checkouts/CwlPreconditionTesting/Sources/CwlMachBadInstructionHandler/mach_excServer.h; sourceTree = "<group>"; }; + 22DD0E705B347629A8710A02B8299359 /* config.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = config.h; path = Source/cmark/config.h; sourceTree = "<group>"; }; + 2442FE4F068F207E66D30731905E72C0 /* Quick-tvOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "Quick-tvOS-dummy.m"; path = "../Quick-tvOS/Quick-tvOS-dummy.m"; sourceTree = "<group>"; }; 24E349AFF4609C8B48DE335DAEC14E7C /* Pods-ConsentViewController_ExampleTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ConsentViewController_ExampleTests.debug.xcconfig"; sourceTree = "<group>"; }; 2530BC414137FF7A53A0368B476547B9 /* Wormholy */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Wormholy; path = Wormholy.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 27312D227A4B4D385E6534180A780625 /* SourceLocation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SourceLocation.swift; path = Sources/Nimble/Utils/SourceLocation.swift; sourceTree = "<group>"; }; - 2796304021F2B70AB43357F636F6CA93 /* EndWith.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = EndWith.swift; path = Sources/Nimble/Matchers/EndWith.swift; sourceTree = "<group>"; }; + 2538445DADB67C90695102ED9F35D0AA /* HtmlInline.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = HtmlInline.swift; path = Source/AST/Nodes/HtmlInline.swift; sourceTree = "<group>"; }; + 25554D9FAA26AE20BF956E70CF34111D /* BeAnInstanceOf.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BeAnInstanceOf.swift; path = Sources/Nimble/Matchers/BeAnInstanceOf.swift; sourceTree = "<group>"; }; + 25D6CFC5D7270163DB4FC94DF015D4FB /* Postman.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Postman.swift; path = Sources/Models/Postman/Postman.swift; sourceTree = "<group>"; }; + 260AEB7610E3844784B70DD9972E25A0 /* cmark.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = cmark.h; path = Source/cmark/cmark.h; sourceTree = "<group>"; }; + 26381AEAF3A5B85195A7735518CDE616 /* CGPoint+Translate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "CGPoint+Translate.swift"; path = "Source/AST/Styling/Helpers/Extensions/CGPoint+Translate.swift"; sourceTree = "<group>"; }; + 264E52F029884E3FDBAA8282ACAAEF3F /* NMBExceptionCapture.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NMBExceptionCapture.h; path = Sources/NimbleObjectiveC/NMBExceptionCapture.h; sourceTree = "<group>"; }; + 27721A433338F97FF04F8BE5D90C9FBD /* String+ToHTML.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "String+ToHTML.swift"; path = "Source/Extensions/String+ToHTML.swift"; sourceTree = "<group>"; }; 27A8053D01FA94FBBF8AFA0E44BF02DF /* Pods-SourcePointMetaAppUITests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-SourcePointMetaAppUITests.modulemap"; sourceTree = "<group>"; }; 27CD48DD7F3A588DE9A336B44E5C39AE /* SPMessageViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SPMessageViewController.swift; path = ConsentViewController/Classes/SPMessageViewController.swift; sourceTree = "<group>"; }; 27D152DD1DE04856BE689AAA0C19C884 /* LongButtonViewCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LongButtonViewCell.swift; sourceTree = "<group>"; }; + 27E4103920DAD41207C515376538B5A2 /* IQKeyboardManager+Internal.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQKeyboardManager+Internal.swift"; path = "IQKeyboardManagerSwift/IQKeyboardManager+Internal.swift"; sourceTree = "<group>"; }; + 285BE3E66975DB446D5F1D0A93CE222F /* IQPreviousNextView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQPreviousNextView.swift; path = IQKeyboardManagerSwift/IQToolbar/IQPreviousNextView.swift; sourceTree = "<group>"; }; + 28DB72A698D4BB26E79A8534A15FD073 /* Predicate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Predicate.swift; path = Sources/Nimble/Matchers/Predicate.swift; sourceTree = "<group>"; }; 28EDD4660752FB3848842119A27EDE10 /* Pods-AuthExample-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-AuthExample-acknowledgements.plist"; sourceTree = "<group>"; }; + 2934A524A3B3835F09EF2ECF8337CE24 /* WormholyConstructor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = WormholyConstructor.m; path = Sources/Objc/WormholyConstructor.m; sourceTree = "<group>"; }; 293DA7B23A2CDB5595E0746D4ECEFBDC /* SPWebMessageViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SPWebMessageViewController.swift; sourceTree = "<group>"; }; 2AB3F7575579A7DE29397E036A658E93 /* ConsentViewController-tvOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "ConsentViewController-tvOS-dummy.m"; path = "../ConsentViewController-tvOS/ConsentViewController-tvOS-dummy.m"; sourceTree = "<group>"; }; - 2B0EB87CEDD38E75275C206B5D086DC1 /* WHDate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = WHDate.swift; path = Sources/Subclasses/WHDate.swift; sourceTree = "<group>"; }; + 2ADA402AD2C0DC196800D6D7DB4E8B11 /* WHView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = WHView.swift; path = Sources/Subclasses/WHView.swift; sourceTree = "<group>"; }; 2B199836B37103F420037E84A61A695F /* MessagesRequest.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = MessagesRequest.swift; sourceTree = "<group>"; }; 2BF36247AF67FD5FCF60C2A234F271CB /* Pods-AuthExample.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-AuthExample.release.xcconfig"; sourceTree = "<group>"; }; - 2C235D5561439CB09F7902F03FD05657 /* ResourceBundle-Wormholy-Wormholy-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-Wormholy-Wormholy-Info.plist"; sourceTree = "<group>"; }; - 2CA7954C5E980886049E8C04F534B9D1 /* Wormholy.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Wormholy.debug.xcconfig; sourceTree = "<group>"; }; - 2CB5FE427E1FEB62D5E337D1B21B16CF /* Example.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Example.swift; path = Sources/Quick/Example.swift; sourceTree = "<group>"; }; - 2CD070D8FF07B2DB630D16F626593362 /* Nimble-tvOS-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; name = "Nimble-tvOS-Info.plist"; path = "../Nimble-tvOS/Nimble-tvOS-Info.plist"; sourceTree = "<group>"; }; - 2D872D4A3AC93DADBCFA61C6D9A819B9 /* JSONTreeView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JSONTreeView.swift; path = Sources/JSONView/JSONTreeView.swift; sourceTree = "<group>"; }; - 2F16F531369D23712F6B65C12BDCC6DD /* ContainElementSatisfying.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ContainElementSatisfying.swift; path = Sources/Nimble/Matchers/ContainElementSatisfying.swift; sourceTree = "<group>"; }; - 2FBED7D1071AC5E9CE5157EF8D170AA4 /* Expression.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Expression.swift; path = Sources/Nimble/Expression.swift; sourceTree = "<group>"; }; + 2CBC03C3431802F9F218104BDFB237F7 /* Quick-tvOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "Quick-tvOS-umbrella.h"; path = "../Quick-tvOS/Quick-tvOS-umbrella.h"; sourceTree = "<group>"; }; + 2CD9D4878151357A0A32FC57B0B6B9FE /* ParagraphStyleCollection.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ParagraphStyleCollection.swift; path = "Source/AST/Styling/Attribute Collections/ParagraphStyleCollection.swift"; sourceTree = "<group>"; }; + 2DBE73DB45AB94762EE68960C907A094 /* Down-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Down-dummy.m"; sourceTree = "<group>"; }; + 2DFAFF577444917A6AE859D33710B94A /* QuickSpec.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QuickSpec.m; path = Sources/QuickObjectiveC/QuickSpec.m; sourceTree = "<group>"; }; + 2E52D2EDA2417EA4BA098CEFF6FAFE64 /* QuickTestSuite.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = QuickTestSuite.swift; path = Sources/Quick/QuickTestSuite.swift; sourceTree = "<group>"; }; + 2F16564FBAA0831A0474BCEA8CEFC281 /* Behavior.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Behavior.swift; path = Sources/Quick/Behavior.swift; sourceTree = "<group>"; }; + 2F548C5F1ADA8C0124389079EFD59FD0 /* JSONView-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "JSONView-prefix.pch"; sourceTree = "<group>"; }; + 2FBD3480792BC2F46E97894268A8D1FC /* IQUIScrollView+Additions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQUIScrollView+Additions.swift"; path = "IQKeyboardManagerSwift/Categories/IQUIScrollView+Additions.swift"; sourceTree = "<group>"; }; + 3072869E17E16DC8447F4923925AF669 /* chunk.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = chunk.h; path = Source/cmark/chunk.h; sourceTree = "<group>"; }; 30FE921CDF3239D6ADA290836A61F626 /* Pods-NativePMExampleAppUITests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-NativePMExampleAppUITests.modulemap"; sourceTree = "<group>"; }; 312A1AF68BB57DFA7A0FF0EECFC51EB3 /* Pods-SPGDPRExampleAppUITests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-SPGDPRExampleAppUITests-acknowledgements.plist"; sourceTree = "<group>"; }; 316EC0791AD935F9B920930577B2C79F /* Pods-SourcePointMetaAppUITests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-SourcePointMetaAppUITests-acknowledgements.markdown"; sourceTree = "<group>"; }; 3179CECFE4593086EE4E88105BA82B07 /* Pods-AuthExampleUITests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-AuthExampleUITests-acknowledgements.plist"; sourceTree = "<group>"; }; - 32208EE956E4CCE1CBB72750BA454B06 /* IQKeyboardManagerConstantsInternal.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQKeyboardManagerConstantsInternal.swift; path = IQKeyboardManagerSwift/Constants/IQKeyboardManagerConstantsInternal.swift; sourceTree = "<group>"; }; - 327FCDEA50C8539233C5BC6D9298BE28 /* WormholyMethodSwizzling.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = WormholyMethodSwizzling.h; path = Sources/Objc/WormholyMethodSwizzling.h; sourceTree = "<group>"; }; - 3328D8887B4B37F498CCDF1D81D15CA5 /* Quick-tvOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "Quick-tvOS-umbrella.h"; path = "../Quick-tvOS/Quick-tvOS-umbrella.h"; sourceTree = "<group>"; }; + 329F04CD8054B9D66AD1907605155E24 /* xml.c */ = {isa = PBXFileReference; includeInIndex = 1; name = xml.c; path = Source/cmark/xml.c; sourceTree = "<group>"; }; 3341F72CA9008F857FDC21E11D28934E /* Pods-SPGDPRExampleAppUITests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-SPGDPRExampleAppUITests-dummy.m"; sourceTree = "<group>"; }; 33870645273F20E4E36E777203CED80F /* Pods-ConsentViewController_Example */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Pods-ConsentViewController_Example"; path = Pods_ConsentViewController_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 340209A9B47B5483BBC6471331E6F1FF /* Equal+Tuple.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Equal+Tuple.swift"; path = "Sources/Nimble/Matchers/Equal+Tuple.swift"; sourceTree = "<group>"; }; + 340BD7B6229112CF361278C3D4A29AC1 /* DownLayoutManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DownLayoutManager.swift; path = "Source/AST/Styling/Layout Managers/DownLayoutManager.swift"; sourceTree = "<group>"; }; 3426D64DAD0355F382B9597FB52D8F2E /* Bundle+Framework.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Bundle+Framework.swift"; path = "ConsentViewController/Classes/Bundle+Framework.swift"; sourceTree = "<group>"; }; - 3471C7707707FBAD79099C9B57BD6843 /* World.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = World.swift; path = Sources/Quick/World.swift; sourceTree = "<group>"; }; - 34E973FF41C1481083F32D09F5411184 /* IQKeyboardManagerSwift-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "IQKeyboardManagerSwift-Info.plist"; sourceTree = "<group>"; }; - 3505EF66D2FB134666A5C95FA4918169 /* Wormholy.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Wormholy.release.xcconfig; sourceTree = "<group>"; }; - 35899B6983EB74B3BDEA25A8C2478450 /* Nimble-iOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Nimble-iOS.modulemap"; sourceTree = "<group>"; }; + 3459EB4E85FE56BAB2781890A10BA3BC /* BeLessThan.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BeLessThan.swift; path = Sources/Nimble/Matchers/BeLessThan.swift; sourceTree = "<group>"; }; + 3463540E81501C1B8A2E50EB8B788F45 /* IQUITextFieldView+Additions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQUITextFieldView+Additions.swift"; path = "IQKeyboardManagerSwift/Categories/IQUITextFieldView+Additions.swift"; sourceTree = "<group>"; }; + 356F7EAAD72C8F7AF7B705E00487476F /* CodeBlockOptions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CodeBlockOptions.swift; path = Source/AST/Styling/Options/CodeBlockOptions.swift; sourceTree = "<group>"; }; 358D03107AFC8AD97B487E25B662184F /* SPGDPRPartnersViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SPGDPRPartnersViewController.swift; sourceTree = "<group>"; }; 358E1F97E66A2ED0D7C2706C3E3E104F /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; 36DA77D6BDB2C9F2BA204816B5EE463E /* Pods-ObjC-ExampleApp.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ObjC-ExampleApp.release.xcconfig"; sourceTree = "<group>"; }; 36DFAE9D661C3929C5431B62FA5EACC9 /* SPCCPAVendorDetailsViewController.xib */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = file.xib; path = SPCCPAVendorDetailsViewController.xib; sourceTree = "<group>"; }; - 374C8B57DA64E7F629363C55E43AC74C /* QuickSpecBase.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QuickSpecBase.h; path = Sources/QuickObjCRuntime/include/QuickSpecBase.h; sourceTree = "<group>"; }; - 37C064BFA0651B54F5E89206BC0764EA /* IQUIScrollView+Additions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQUIScrollView+Additions.swift"; path = "IQKeyboardManagerSwift/Categories/IQUIScrollView+Additions.swift"; sourceTree = "<group>"; }; + 3721E35ADD486A483A31FD4BFF96009B /* SwiftLint-tvOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "SwiftLint-tvOS.debug.xcconfig"; path = "../SwiftLint-tvOS/SwiftLint-tvOS.debug.xcconfig"; sourceTree = "<group>"; }; + 3733B89950161339721CBE2E1CBE2E10 /* houdini_html_u.c */ = {isa = PBXFileReference; includeInIndex = 1; name = houdini_html_u.c; path = Source/cmark/houdini_html_u.c; sourceTree = "<group>"; }; + 37A38F8E2410D3E9C3AC2CD42833BDBA /* FailureMessage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FailureMessage.swift; path = Sources/Nimble/FailureMessage.swift; sourceTree = "<group>"; }; 380358C9A223FE55A10AC25127FF1410 /* ConsentViewController-iOS */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "ConsentViewController-iOS"; path = ConsentViewController.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 3822AE8AFE1ECE7CFA93E07CAB519381 /* Pods-SPGDPRExampleAppUITests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-SPGDPRExampleAppUITests.modulemap"; sourceTree = "<group>"; }; 386A66D9CFBBAFEE1BB1C8675A87001F /* Pods-AuthExample.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-AuthExample.debug.xcconfig"; sourceTree = "<group>"; }; - 3886CCED3A5A4890B152FE672031DDF8 /* JSONView-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "JSONView-dummy.m"; sourceTree = "<group>"; }; - 397F0A4C22059A3F43C7F799FF127DC5 /* JSONView.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = JSONView.release.xcconfig; sourceTree = "<group>"; }; + 38BFE60FE731C6D6454BC1248F62E5B5 /* WHTextView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = WHTextView.swift; path = Sources/Subclasses/WHTextView.swift; sourceTree = "<group>"; }; + 39D407912C0402B1D7380AB3F91D2C37 /* houdini_href_e.c */ = {isa = PBXFileReference; includeInIndex = 1; name = houdini_href_e.c; path = Source/cmark/houdini_href_e.c; sourceTree = "<group>"; }; + 3AB0FC247E2A3101C90428EA40F1F0E6 /* IQNSArray+Sort.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQNSArray+Sort.swift"; path = "IQKeyboardManagerSwift/Categories/IQNSArray+Sort.swift"; sourceTree = "<group>"; }; 3AC2AF5377818CA28D1C917C5DF040D3 /* Pods-SourcePointMetaApp-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-SourcePointMetaApp-frameworks.sh"; sourceTree = "<group>"; }; - 3B03C4D03246191894B4C73115A5FC95 /* XCTestObservationCenter+Register.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "XCTestObservationCenter+Register.m"; path = "Sources/NimbleObjectiveC/XCTestObservationCenter+Register.m"; sourceTree = "<group>"; }; - 3B48E8255A10C843E508A311E3D3C808 /* IQKeyboardManager+UITextFieldViewNotification.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQKeyboardManager+UITextFieldViewNotification.swift"; path = "IQKeyboardManagerSwift/IQKeyboardManager+UITextFieldViewNotification.swift"; sourceTree = "<group>"; }; - 3B6854E41374AFB22C72D714143F0EC3 /* Wormholy-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Wormholy-dummy.m"; sourceTree = "<group>"; }; - 3C66651BBF6242B297BCE1AF00B89A12 /* DSL.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DSL.swift; path = Sources/Nimble/DSL.swift; sourceTree = "<group>"; }; + 3B3AC354F5A08216CE0ED780E5B2B82C /* DownDebugTextView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DownDebugTextView.swift; path = "Source/AST/Styling/Text Views/DownDebugTextView.swift"; sourceTree = "<group>"; }; + 3B953B8D624CEB234E8380E1D61EB7C5 /* Nimble-tvOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "Nimble-tvOS-dummy.m"; path = "../Nimble-tvOS/Nimble-tvOS-dummy.m"; sourceTree = "<group>"; }; + 3BECE616CF3BAC89AE57F207A153AF74 /* Down-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Down-prefix.pch"; sourceTree = "<group>"; }; 3CB79E0BDADBD16C58009FC26E8D55A6 /* Pods-AuthExampleUITests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-AuthExampleUITests.modulemap"; sourceTree = "<group>"; }; - 3CC3EBE52D8D69A78630C1F44CB5406F /* Quick-tvOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "Quick-tvOS-dummy.m"; path = "../Quick-tvOS/Quick-tvOS-dummy.m"; sourceTree = "<group>"; }; - 3D9B81781A4383C36C41C873449913C9 /* IQUITextFieldView+Additions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQUITextFieldView+Additions.swift"; path = "IQKeyboardManagerSwift/Categories/IQUITextFieldView+Additions.swift"; sourceTree = "<group>"; }; - 3E502E337C35FF38CB7A8AB9D3256133 /* Equal.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Equal.swift; path = Sources/Nimble/Matchers/Equal.swift; sourceTree = "<group>"; }; + 3E8151422F4D119BA7AFF87AE9863192 /* NSAttributedString+Helpers.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "NSAttributedString+Helpers.swift"; path = "Source/AST/Styling/Helpers/Extensions/NSAttributedString+Helpers.swift"; sourceTree = "<group>"; }; 3E99BDED1E6FA8CEF01BF1ABCAC4C475 /* Pods-SourcePointMetaAppUITests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-SourcePointMetaAppUITests-dummy.m"; sourceTree = "<group>"; }; 3FA0ECBFCCF2161984F16A0B1F85650D /* GDPRPMPayload.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GDPRPMPayload.swift; sourceTree = "<group>"; }; 3FAF31771437319132C8D087120F7EB2 /* Barcode.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = Barcode.png; sourceTree = "<group>"; }; 4027EE899508E71C32EE10B4FA7D7824 /* SPCCPANativePrivacyManagerViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SPCCPANativePrivacyManagerViewController.swift; sourceTree = "<group>"; }; - 411E307E334DC89DE91B5D80FB75C706 /* BeNil.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BeNil.swift; path = Sources/Nimble/Matchers/BeNil.swift; sourceTree = "<group>"; }; + 4070BC13DFC74E11C100FD3411A6AAD5 /* render.c */ = {isa = PBXFileReference; includeInIndex = 1; name = render.c; path = Source/cmark/render.c; sourceTree = "<group>"; }; + 40815068C100A6167D4D3C47E57756B1 /* Nimble-iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Nimble-iOS.debug.xcconfig"; sourceTree = "<group>"; }; + 40D30DD3C99D443D22DE81C3C4225D05 /* CGRect+Helpers.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "CGRect+Helpers.swift"; path = "Source/AST/Styling/Helpers/Extensions/CGRect+Helpers.swift"; sourceTree = "<group>"; }; + 412EEDB4587FF3FBE3B0FA5D464BA14B /* BlockBackgroundColorAttribute.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BlockBackgroundColorAttribute.swift; path = "Source/AST/Styling/Custom Attributes/BlockBackgroundColorAttribute.swift"; sourceTree = "<group>"; }; + 41417D017600B7A6C80E0DB98E70C384 /* JSONTreeView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JSONTreeView.swift; path = Sources/JSONView/JSONTreeView.swift; sourceTree = "<group>"; }; + 4146F9ED6938E0E6704A42EFD6DD2A5F /* QuickSpecBase.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QuickSpecBase.h; path = Sources/QuickObjCRuntime/include/QuickSpecBase.h; sourceTree = "<group>"; }; 41CEEBBE3F8FB596EDE429EB392FEF19 /* Pods-AuthExampleUITests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-AuthExampleUITests-acknowledgements.markdown"; sourceTree = "<group>"; }; + 4255A9684099CC057C80BE7B5F8CD7FB /* cmark.c */ = {isa = PBXFileReference; includeInIndex = 1; name = cmark.c; path = Source/cmark/cmark.c; sourceTree = "<group>"; }; + 42A51D82D7093FF4E1BF5B76F611BD58 /* Wormholy.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Wormholy.debug.xcconfig; sourceTree = "<group>"; }; + 42CBB759E4790435EC90368AFB4CFCF5 /* CwlMachBadInstructionHandler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CwlMachBadInstructionHandler.h; path = Carthage/Checkouts/CwlPreconditionTesting/Sources/CwlMachBadInstructionHandler/include/CwlMachBadInstructionHandler.h; sourceTree = "<group>"; }; 42E78312B70C2330F2ABF983EFB26634 /* SPPublisherData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SPPublisherData.swift; sourceTree = "<group>"; }; + 42F15ADA74D492BAC76AB3EDB6C12D3D /* DownTextView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DownTextView.swift; path = "Source/AST/Styling/Text Views/DownTextView.swift"; sourceTree = "<group>"; }; 437B791FEDC5C4B595D6D29500E11197 /* JSONView */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = JSONView; path = JSONView.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 43976BE89192EABAEF36AE877B44039E /* Pods-NativeMessageExampleUITests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-NativeMessageExampleUITests.debug.xcconfig"; sourceTree = "<group>"; }; - 44B3C51C369D8A75EE35CAB29B305A16 /* CwlCatchException.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CwlCatchException.h; path = Carthage/Checkouts/CwlCatchException/Sources/CwlCatchExceptionSupport/include/CwlCatchException.h; sourceTree = "<group>"; }; + 43A59EFF147B151F00B68CC489EF1F61 /* scanners.c */ = {isa = PBXFileReference; includeInIndex = 1; name = scanners.c; path = Source/cmark/scanners.c; sourceTree = "<group>"; }; + 442A98950A08DA1804EF7DDB733517E7 /* Node.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Node.swift; path = Source/AST/Nodes/Node.swift; sourceTree = "<group>"; }; 44CBC0F09E3E9CEA67E781F19EFC5D09 /* IncludeData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = IncludeData.swift; sourceTree = "<group>"; }; - 44ED6904363F52CFD10E67F1582A01A7 /* RequestsViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RequestsViewController.swift; path = Sources/UI/RequestsViewController.swift; sourceTree = "<group>"; }; - 463DFA009F6A01FE79F6A421F8DE2A55 /* ExampleGroup.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ExampleGroup.swift; path = Sources/Quick/ExampleGroup.swift; sourceTree = "<group>"; }; + 44CD8A72F3A29EF02EE34B2A6EFB7EE9 /* man.c */ = {isa = PBXFileReference; includeInIndex = 1; name = man.c; path = Source/cmark/man.c; sourceTree = "<group>"; }; + 44D5B80ADB162722509684E405FE6437 /* WHString.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = WHString.swift; path = Sources/Subclasses/WHString.swift; sourceTree = "<group>"; }; + 45116B4FE9CE942C3675B2BF08E8A83D /* DownOptions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DownOptions.swift; path = "Source/Enums & Options/DownOptions.swift"; sourceTree = "<group>"; }; 4643D453357EFA79CCBA741B0B5B2BC3 /* SPJSReceiver.spec.js */ = {isa = PBXFileReference; includeInIndex = 1; path = SPJSReceiver.spec.js; sourceTree = "<group>"; }; - 468757BED529EB253F5E0AEBA83E6B7B /* IQKeyboardManagerSwift.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = IQKeyboardManagerSwift.modulemap; sourceTree = "<group>"; }; - 4770059017338C3037F654914C58032E /* BeVoid.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BeVoid.swift; path = Sources/Nimble/Matchers/BeVoid.swift; sourceTree = "<group>"; }; + 46FD5A5C89B78C89056BED3CC9CC1D74 /* ErrorUtility.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ErrorUtility.swift; path = Sources/Quick/ErrorUtility.swift; sourceTree = "<group>"; }; + 473A7C3CEFD5E9479DB337765E09E0A7 /* NMBExpectation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NMBExpectation.swift; path = Sources/Nimble/Adapters/NMBExpectation.swift; sourceTree = "<group>"; }; + 4753479FB8DCD331A98162618B938BDC /* CwlBadInstructionException.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CwlBadInstructionException.swift; path = Carthage/Checkouts/CwlPreconditionTesting/Sources/CwlPreconditionTesting/CwlBadInstructionException.swift; sourceTree = "<group>"; }; 478A9714D5517A2059B8A522B3476D4D /* SPGDPRNativePrivacyManagerViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SPGDPRNativePrivacyManagerViewController.swift; sourceTree = "<group>"; }; - 4847AD2AE5F414A46DE247237C056AA6 /* IQInvocation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQInvocation.swift; path = IQKeyboardManagerSwift/IQToolbar/IQInvocation.swift; sourceTree = "<group>"; }; + 484341D87F3E64B2D025EE94BCB11781 /* SoftBreak.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SoftBreak.swift; path = Source/AST/Nodes/SoftBreak.swift; sourceTree = "<group>"; }; 488C4BA0A9F62B5E7C5FAC11D20B87B7 /* SPGDPRManagePreferenceViewController.xib */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = file.xib; path = SPGDPRManagePreferenceViewController.xib; sourceTree = "<group>"; }; 489CA12B18F8FC3236925A4511BE0A7B /* SPCCPACategoryDetailsViewController.xib */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = file.xib; path = SPCCPACategoryDetailsViewController.xib; sourceTree = "<group>"; }; + 48BF4B715D474202AB06AC4DFFE49825 /* SwiftLint-iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "SwiftLint-iOS.debug.xcconfig"; sourceTree = "<group>"; }; + 48CF52E2571D5B654384C5E667CD4671 /* Quick-iOS-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Quick-iOS-Info.plist"; sourceTree = "<group>"; }; + 48E45CD63519977DBF1E2AADE772CA21 /* latex.c */ = {isa = PBXFileReference; includeInIndex = 1; name = latex.c; path = Source/cmark/latex.c; sourceTree = "<group>"; }; + 4945FF7912982C4A68DC3DDC77BBBC8D /* DownASTRenderable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DownASTRenderable.swift; path = Source/Renderers/DownASTRenderable.swift; sourceTree = "<group>"; }; 494B51C75ECF3D7F5E51FBD2833B6536 /* Pods-NativeMessageExample-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-NativeMessageExample-frameworks.sh"; sourceTree = "<group>"; }; 4A29A77F9DF18C7CD65E01B28F6BD859 /* Pods-ObjC-ExampleAppUITests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-ObjC-ExampleAppUITests-dummy.m"; sourceTree = "<group>"; }; 4AA8883FD67D3E660A06F9D599287EDD /* Pods-ObjC-ExampleApp.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-ObjC-ExampleApp.modulemap"; sourceTree = "<group>"; }; - 4AEBE5CB1C04F3A1DCDEC88A37E76028 /* BeAnInstanceOf.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BeAnInstanceOf.swift; path = Sources/Nimble/Matchers/BeAnInstanceOf.swift; sourceTree = "<group>"; }; 4B5E4651FDC49B3926EDEE0FDC6859F1 /* Pods-NativePMExampleAppUITests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-NativePMExampleAppUITests-frameworks.sh"; sourceTree = "<group>"; }; + 4B85932749565B4906CC95F83538C516 /* SatisfyAnyOf.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SatisfyAnyOf.swift; path = Sources/Nimble/Matchers/SatisfyAnyOf.swift; sourceTree = "<group>"; }; 4B8D19EC5179D7698B6F32F7EABAC1DD /* Pods-NativePMExampleApp-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-NativePMExampleApp-umbrella.h"; sourceTree = "<group>"; }; 4BEAC88AF84CC484F55B8A6C048444D9 /* ConsentViewController-iOS-ConsentViewController */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = "ConsentViewController-iOS-ConsentViewController"; path = ConsentViewController.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; - 4C11157199042CC9E7042E23F1EB5D3C /* Colors.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Colors.swift; path = "Sources/Support Files/Colors.swift"; sourceTree = "<group>"; }; 4C147F6E271D4AAC2F7C22B7683AE85F /* SPNativeScreenViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SPNativeScreenViewController.swift; sourceTree = "<group>"; }; - 4C22D4E96CC3C07425EAA1717AA769B3 /* CustomHTTPProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CustomHTTPProtocol.swift; path = Sources/CustomHTTPProtocol.swift; sourceTree = "<group>"; }; - 4D066C9E951AB3C32513BBB550D91150 /* BeIdenticalTo.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BeIdenticalTo.swift; path = Sources/Nimble/Matchers/BeIdenticalTo.swift; sourceTree = "<group>"; }; - 4DA121B8553B31DCE630855DD4FF6C5C /* AdapterProtocols.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AdapterProtocols.swift; path = Sources/Nimble/Adapters/AdapterProtocols.swift; sourceTree = "<group>"; }; + 4C8031B5B0076AE14A6CF9249DF40286 /* WHNavigationController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = WHNavigationController.swift; path = Sources/Subclasses/WHNavigationController.swift; sourceTree = "<group>"; }; + 4C90E8F3F21B7688E1FB09920322D768 /* Down */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Down; path = Down.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 4E2B59D761B510E0E3646BDC3CCE697E /* Pods-ConsentViewController_ExampleTests-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-ConsentViewController_ExampleTests-Info.plist"; sourceTree = "<group>"; }; - 4E66AA5401D00FFB33E56F778C13ACBE /* RaisesException.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RaisesException.swift; path = Sources/Nimble/Matchers/RaisesException.swift; sourceTree = "<group>"; }; - 4E66B8734DB4639A722D9F3ACFFF1181 /* InputStream+Utils.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "InputStream+Utils.swift"; path = "Sources/Utils/InputStream+Utils.swift"; sourceTree = "<group>"; }; + 4EA6C625C79E315252C57908F8B8C681 /* Nimble-tvOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Nimble-tvOS.release.xcconfig"; path = "../Nimble-tvOS/Nimble-tvOS.release.xcconfig"; sourceTree = "<group>"; }; 4EB416474AB2BF00B186E26CC4C2DF76 /* NSObjectExtensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = NSObjectExtensions.swift; sourceTree = "<group>"; }; + 4F30C92BBD1CC27CB0971D9E9D0897BF /* IQKeyboardReturnKeyHandler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQKeyboardReturnKeyHandler.swift; path = IQKeyboardManagerSwift/IQKeyboardReturnKeyHandler.swift; sourceTree = "<group>"; }; 4F3D493738B45263C9F8FD5F2F93E5B1 /* SPPMHeader.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SPPMHeader.swift; sourceTree = "<group>"; }; 4F4B7F54CB04FD10F903255E6A7F053B /* Pods-NativeMessageExample-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-NativeMessageExample-acknowledgements.plist"; sourceTree = "<group>"; }; - 4FE0927C921CF8219AA20AD2A618E87D /* Wormholy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Wormholy.h; path = Sources/Wormholy.h; sourceTree = "<group>"; }; + 4FCB8C53F45A51260CC88D81CCF424D9 /* IQTitleBarButtonItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQTitleBarButtonItem.swift; path = IQKeyboardManagerSwift/IQToolbar/IQTitleBarButtonItem.swift; sourceTree = "<group>"; }; + 4FD7D4A1D044FA2204A01761C94CF067 /* AssertionRecorder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AssertionRecorder.swift; path = Sources/Nimble/Adapters/AssertionRecorder.swift; sourceTree = "<group>"; }; + 4FEE3BDD2E631E61ED3520A5CC751820 /* Heading.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Heading.swift; path = Source/AST/Nodes/Heading.swift; sourceTree = "<group>"; }; + 50225E4C9D676A71008537AD2B84789E /* Errors.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Errors.swift; path = Sources/Nimble/Utils/Errors.swift; sourceTree = "<group>"; }; + 503FCC970CD1073CF89DAE091834D6D3 /* JSONView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JSONView.swift; path = Sources/JSONView/JSONView.swift; sourceTree = "<group>"; }; + 5047CC804189E94A9B3CEAB093F0C53A /* IQKeyboardManager+OrientationNotification.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQKeyboardManager+OrientationNotification.swift"; path = "IQKeyboardManagerSwift/IQKeyboardManager+OrientationNotification.swift"; sourceTree = "<group>"; }; + 50A769B7B07BFE25CF2F46555EA8C33F /* IQKeyboardManagerConstants.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQKeyboardManagerConstants.swift; path = IQKeyboardManagerSwift/Constants/IQKeyboardManagerConstants.swift; sourceTree = "<group>"; }; + 51039E4EFFDF22E0695ED52DB077E0A6 /* references.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = references.h; path = Source/cmark/references.h; sourceTree = "<group>"; }; 510925CF4993719A64DA67893F88EE67 /* Pods-SPGDPRExampleAppUITests */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Pods-SPGDPRExampleAppUITests"; path = Pods_SPGDPRExampleAppUITests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 516092EA0B6381F414688DB4BBFDB8C3 /* SPDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SPDelegate.swift; path = ConsentViewController/Classes/SPDelegate.swift; sourceTree = "<group>"; }; + 51CEF68E4C3B5CF489641AF1F5B0FF6D /* BeEmpty.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BeEmpty.swift; path = Sources/Nimble/Matchers/BeEmpty.swift; sourceTree = "<group>"; }; 526970B89C1898F90B6255738CD35584 /* SP_Icon.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; path = SP_Icon.png; sourceTree = "<group>"; }; 529FD1CC0F9CA0A95F0A43EE447EE6A9 /* SPSDK.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SPSDK.swift; path = ConsentViewController/Classes/SPSDK.swift; sourceTree = "<group>"; }; - 53101DE89B3711215A567080FE307AE1 /* TextTableViewCell.xib */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = file.xib; name = TextTableViewCell.xib; path = Sources/UI/Cells/TextTableViewCell.xib; sourceTree = "<group>"; }; 5311B13E75D266751A602FCE929F48D7 /* SPJson.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SPJson.swift; path = ConsentViewController/Classes/SPJson.swift; sourceTree = "<group>"; }; - 532A5A315BE6A3839436AC7D9725B9F6 /* Nimble-iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Nimble-iOS.release.xcconfig"; sourceTree = "<group>"; }; + 53830D02039DE43B2FFBF8AF6FF4A78B /* NMBExceptionCapture.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = NMBExceptionCapture.m; path = Sources/NimbleObjectiveC/NMBExceptionCapture.m; sourceTree = "<group>"; }; 53C3E3B8AC4E7FFCA4CC1428AD662243 /* Pods-ConsentViewController_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ConsentViewController_Example.debug.xcconfig"; sourceTree = "<group>"; }; + 53C8CC7E8FC942BEC4A1E73BD846E9D6 /* parser.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = parser.h; path = Source/cmark/parser.h; sourceTree = "<group>"; }; 53CCA4DCC9B066F8E74E39A9D62DE1AB /* Pods-ConsentViewController_Example-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-ConsentViewController_Example-umbrella.h"; sourceTree = "<group>"; }; - 53FA74CE9C07264ADD94D77E20A52EFC /* NSURLSessionConfiguration+Wormholy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSURLSessionConfiguration+Wormholy.m"; path = "Sources/Objc/NSURLSessionConfiguration+Wormholy.m"; sourceTree = "<group>"; }; 541B6A5FF9168961A492356443FE3A9B /* ResourceBundle-ConsentViewController-ConsentViewController-iOS-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-ConsentViewController-ConsentViewController-iOS-Info.plist"; sourceTree = "<group>"; }; + 5459D9ADE3F53D06B748B04037F00167 /* Text.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Text.swift; path = Source/AST/Nodes/Text.swift; sourceTree = "<group>"; }; 551CDB76348D1D7EE391DF9C6A64583D /* SPPropertyName.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SPPropertyName.swift; path = ConsentViewController/Classes/SPPropertyName.swift; sourceTree = "<group>"; }; 556E2CB0C8EF0A8C8FFC3432D8CFF6C9 /* Pods-NativeMessageExample-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-NativeMessageExample-dummy.m"; sourceTree = "<group>"; }; + 5641AE647FA56F350066C84F00C50112 /* QuickConfiguration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QuickConfiguration.h; path = Sources/QuickObjectiveC/Configuration/QuickConfiguration.h; sourceTree = "<group>"; }; 5654C4A59E39459D55D4237E6C3C8ED4 /* Pods-ObjC-ExampleAppUITests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-ObjC-ExampleAppUITests-acknowledgements.plist"; sourceTree = "<group>"; }; - 56E0467FE7EDDC1CDCFD23F4170C77F5 /* IQPreviousNextView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQPreviousNextView.swift; path = IQKeyboardManagerSwift/IQToolbar/IQPreviousNextView.swift; sourceTree = "<group>"; }; 57587477437D5EB52AB0FCA9D1021112 /* PrivacyManagerViewData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PrivacyManagerViewData.swift; sourceTree = "<group>"; }; - 575F2417476D467D9E11D32DF4BD1AEA /* IQKeyboardManagerSwift-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "IQKeyboardManagerSwift-dummy.m"; sourceTree = "<group>"; }; 5809B792A9D471EC59ED1B3119F1FBF8 /* Pods-ConsentViewController_Example-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-ConsentViewController_Example-Info.plist"; sourceTree = "<group>"; }; - 584714409875EC36B324152B364CB41D /* IQKeyboardManager+Debug.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQKeyboardManager+Debug.swift"; path = "IQKeyboardManagerSwift/IQKeyboardManager+Debug.swift"; sourceTree = "<group>"; }; - 5867AC771193408B1D7C4BCF4272C4E1 /* SatisfyAnyOf.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SatisfyAnyOf.swift; path = Sources/Nimble/Matchers/SatisfyAnyOf.swift; sourceTree = "<group>"; }; + 5881840E2FF0269E7DF0EBD5796161CB /* RequestDetailViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RequestDetailViewController.swift; path = Sources/UI/RequestDetailViewController.swift; sourceTree = "<group>"; }; 58BDCC723571E0BEDD0A067BE8EEB4F6 /* Pods-ObjC-ExampleApp-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-ObjC-ExampleApp-acknowledgements.plist"; sourceTree = "<group>"; }; 595A61A825C99B50BA12B98C40ACB365 /* SPMessageLanguage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SPMessageLanguage.swift; path = ConsentViewController/Classes/SPMessageLanguage.swift; sourceTree = "<group>"; }; + 599829DBCF8EA88FD7D89EB0D241534D /* Wormholy.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = Wormholy.modulemap; sourceTree = "<group>"; }; 5A08DD564C8310F4849B503C867AC1C8 /* Collection.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Collection.swift; sourceTree = "<group>"; }; - 5B21C29E14077EF9E53A94386656B78B /* CwlCatchBadInstruction.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CwlCatchBadInstruction.swift; path = Carthage/Checkouts/CwlPreconditionTesting/Sources/CwlPreconditionTesting/CwlCatchBadInstruction.swift; sourceTree = "<group>"; }; - 5B8A7E9E70968A22000244F01D1CF7E4 /* Quick-iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Quick-iOS.debug.xcconfig"; sourceTree = "<group>"; }; - 5BAE8EB47AD57536C397AF36CBADAD5F /* WHBaseViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = WHBaseViewController.swift; path = Sources/Subclasses/WHBaseViewController.swift; sourceTree = "<group>"; }; + 5B3A7F1CDBF86AAF8BC24D91BB329589 /* Expression.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Expression.swift; path = Sources/Nimble/Expression.swift; sourceTree = "<group>"; }; + 5BBD1477BD8D482C9915EB8096D1F4E4 /* iterator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = iterator.h; path = Source/cmark/iterator.h; sourceTree = "<group>"; }; 5BF9C5D0DD6D01554FF9C138D12D7D3E /* Pods-ConsentViewController_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ConsentViewController_Example.release.xcconfig"; sourceTree = "<group>"; }; - 5C6B355C9384F0A449C0F295AC001885 /* WHTableView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = WHTableView.swift; path = Sources/Subclasses/WHTableView.swift; sourceTree = "<group>"; }; - 5D8C6C3D4CC5E1705C7064FAA1855427 /* IQUIView+Hierarchy.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQUIView+Hierarchy.swift"; path = "IQKeyboardManagerSwift/Categories/IQUIView+Hierarchy.swift"; sourceTree = "<group>"; }; + 5D1725DC51D44B4115DEE79C60D671DC /* Quick-tvOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Quick-tvOS.release.xcconfig"; path = "../Quick-tvOS/Quick-tvOS.release.xcconfig"; sourceTree = "<group>"; }; + 5D21FEF1C9571A8DBCA6B3EC4628EBDB /* NSURLSessionConfiguration+Wormholy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSURLSessionConfiguration+Wormholy.h"; path = "Sources/Objc/NSURLSessionConfiguration+Wormholy.h"; sourceTree = "<group>"; }; + 5D635DB9163CAD1427C26932646DACCE /* Nimble-tvOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "Nimble-tvOS-umbrella.h"; path = "../Nimble-tvOS/Nimble-tvOS-umbrella.h"; sourceTree = "<group>"; }; 5DC2E71595175144336387BD6D2DE6BD /* ConsentViewController-tvOS */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "ConsentViewController-tvOS"; path = ConsentViewController.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 5DD4912BA3155D9113F17139BEE2A08D /* Pods-AuthExampleUITests */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Pods-AuthExampleUITests"; path = Pods_AuthExampleUITests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 5DDAA996CFA91C3DBF06B7B0A60248D8 /* ToSucceed.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ToSucceed.swift; path = Sources/Nimble/Matchers/ToSucceed.swift; sourceTree = "<group>"; }; - 5E1A0C8D588EF74F05959385D8228242 /* ExpectationMessage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ExpectationMessage.swift; path = Sources/Nimble/ExpectationMessage.swift; sourceTree = "<group>"; }; - 5E56D48E8C5D520A541E6F0400BC1BBF /* IQKeyboardManagerSwift.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = IQKeyboardManagerSwift.release.xcconfig; sourceTree = "<group>"; }; - 5EC253E1BE8C2EAFEEFD2B95F5196E92 /* DSL.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DSL.h; path = Sources/NimbleObjectiveC/DSL.h; sourceTree = "<group>"; }; + 5E4E445224324EA4EC853DC4DA7AF760 /* AttributedStringVisitor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AttributedStringVisitor.swift; path = Source/AST/Visitors/AttributedStringVisitor.swift; sourceTree = "<group>"; }; + 5E9699DCBA3371AC26B64B3E8E544C9D /* ResourceBundle-Wormholy-Wormholy-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-Wormholy-Wormholy-Info.plist"; sourceTree = "<group>"; }; 5F39E3C8D460315153200F2686CD7C79 /* Pods-ObjC-ExampleApp-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-ObjC-ExampleApp-frameworks.sh"; sourceTree = "<group>"; }; + 5F4D5CD9F1F8FF97FC14E75387B62A87 /* Wormholy-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Wormholy-dummy.m"; sourceTree = "<group>"; }; 5F5D44F2C0EF9ABFEBE938FE8D408645 /* javascript */ = {isa = PBXFileReference; includeInIndex = 1; name = javascript; path = ConsentViewController/Assets/javascript; sourceTree = "<group>"; }; - 5FF2EA9F4A39CBF029477C1A037C2DF8 /* CwlMachBadInstructionHandler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CwlMachBadInstructionHandler.m; path = Carthage/Checkouts/CwlPreconditionTesting/Sources/CwlMachBadInstructionHandler/CwlMachBadInstructionHandler.m; sourceTree = "<group>"; }; + 5FE896ADE3757DF3DEA87A9165AFD77C /* WormholyMethodSwizzling.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = WormholyMethodSwizzling.h; path = Sources/Objc/WormholyMethodSwizzling.h; sourceTree = "<group>"; }; 6051AB88CD4018DE5378000839397FF7 /* Pods-ObjC-ExampleAppUITests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-ObjC-ExampleAppUITests-acknowledgements.markdown"; sourceTree = "<group>"; }; 609263FAED42AE3143F24A404851BB29 /* Pods-AuthExampleUITests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-AuthExampleUITests.debug.xcconfig"; sourceTree = "<group>"; }; 6164F084D470032D0A75C5D784D8FB4C /* Pods-ObjC-ExampleAppUITests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-ObjC-ExampleAppUITests-frameworks.sh"; sourceTree = "<group>"; }; + 617BC5E5ED6957F2FE55CFA65E0A023A /* DownRenderable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DownRenderable.swift; path = Source/Renderers/DownRenderable.swift; sourceTree = "<group>"; }; 61B407E96C23182596C4CD39074D593F /* SourcepointClientCoordinator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SourcepointClientCoordinator.swift; sourceTree = "<group>"; }; - 62A1223E84C36D479A92C16D5E0DF33E /* Quick-iOS-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Quick-iOS-Info.plist"; sourceTree = "<group>"; }; - 62A2DC7533D6F811A96F2FB5FD882F7D /* Expectation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Expectation.swift; path = Sources/Nimble/Expectation.swift; sourceTree = "<group>"; }; - 63311F6C1B53E8AEC47ED07D4C720ADD /* BeginWithPrefix.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BeginWithPrefix.swift; path = Sources/Nimble/Matchers/BeginWithPrefix.swift; sourceTree = "<group>"; }; 6350587403D45403E667216ECE104468 /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS14.0.sdk/System/Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; }; 6393D709D5E4D7D2C22AF63A320B3417 /* Pods-ObjC-ExampleApp.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ObjC-ExampleApp.debug.xcconfig"; sourceTree = "<group>"; }; 63C7966CAEA214BAD3C983313BA0AC6D /* MessagesResponse.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = MessagesResponse.swift; sourceTree = "<group>"; }; - 63D9169D2743C66103C3874ADA6FE1EE /* IQKeyboardManagerConstants.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQKeyboardManagerConstants.swift; path = IQKeyboardManagerSwift/Constants/IQKeyboardManagerConstants.swift; sourceTree = "<group>"; }; 641478048A05018FE96D042EAB9E67ED /* Pods-AuthExampleUITests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-AuthExampleUITests-umbrella.h"; sourceTree = "<group>"; }; - 64364A62C6B6C780BA90963F0C2366C9 /* RequestTitleSectionView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RequestTitleSectionView.swift; path = Sources/UI/Sections/RequestTitleSectionView.swift; sourceTree = "<group>"; }; + 64B8B62FA761D8BEA52D7DEFA8EC55C6 /* Contain.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Contain.swift; path = Sources/Nimble/Matchers/Contain.swift; sourceTree = "<group>"; }; 64E28E0A80C4A7D5E7C255D18AA75C5D /* Pods-ConsentViewController_ExampleTests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-ConsentViewController_ExampleTests-acknowledgements.plist"; sourceTree = "<group>"; }; - 657DB3D6966A7638C95064AAAB838239 /* QCKDSL.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCKDSL.h; path = Sources/QuickObjectiveC/DSL/QCKDSL.h; sourceTree = "<group>"; }; + 65431F2B1B767C6E562F451F5E6624CC /* DSL.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DSL.swift; path = Sources/Nimble/DSL.swift; sourceTree = "<group>"; }; + 65757B11E6D99E944207C7CF13BC8187 /* JSONCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JSONCell.swift; path = Sources/JSONView/JSONCell.swift; sourceTree = "<group>"; }; 658D469B3A53AB8873576EDFEC78B459 /* Pods-NativeMessageExampleUITests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-NativeMessageExampleUITests-acknowledgements.plist"; sourceTree = "<group>"; }; + 65CEBD3C5DD66F386216F48FD505F889 /* WormholyMethodSwizzling.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = WormholyMethodSwizzling.m; path = Sources/Objc/WormholyMethodSwizzling.m; sourceTree = "<group>"; }; 666E1CD204EC9B1A138CDBC1BA13F59D /* SimpleClient.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SimpleClient.swift; sourceTree = "<group>"; }; 6743B749F15E00A2C18D42C86A0765CF /* Pods-SPGDPRExampleAppUITests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-SPGDPRExampleAppUITests.release.xcconfig"; sourceTree = "<group>"; }; - 6834DEE6039AB6BE3607D05FC23AF685 /* IQNSArray+Sort.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQNSArray+Sort.swift"; path = "IQKeyboardManagerSwift/Categories/IQNSArray+Sort.swift"; sourceTree = "<group>"; }; + 6779492234D4F962E2CF571B2C94019D /* AdapterProtocols.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AdapterProtocols.swift; path = Sources/Nimble/Adapters/AdapterProtocols.swift; sourceTree = "<group>"; }; + 67CF98B34415888CFCC0A3919A234894 /* RequestCell.xib */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = file.xib; name = RequestCell.xib; path = Sources/UI/Cells/RequestCell.xib; sourceTree = "<group>"; }; 68A496378D7EC9AF074F5723A535B568 /* SPNativeUI.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SPNativeUI.swift; sourceTree = "<group>"; }; + 692C690285DAF9A7CA0DC5A23554CFF3 /* JSONView-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "JSONView-Info.plist"; sourceTree = "<group>"; }; + 6A21A8A668B97E7B42405AC8FFD20999 /* ThrowError.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ThrowError.swift; path = Sources/Nimble/Matchers/ThrowError.swift; sourceTree = "<group>"; }; 6A6FD606DAC23570D0869E9ADB9C53FF /* ConnectivityManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConnectivityManager.swift; path = ConsentViewController/Classes/ConnectivityManager.swift; sourceTree = "<group>"; }; 6AD83F4ACF13BF94480A96A68259475C /* SPPMHeader.xib */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = file.xib; path = SPPMHeader.xib; sourceTree = "<group>"; }; 6ADF841B60832F703EDAB4E0E1E037CF /* ConsentViewController-iOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "ConsentViewController-iOS.modulemap"; sourceTree = "<group>"; }; 6AE2BCE03EA70F32258C86084A12A054 /* SPCCPACategoryDetailsViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SPCCPACategoryDetailsViewController.swift; sourceTree = "<group>"; }; + 6B404CBE40EFC7C7BDE894D329EDD7C2 /* EndWith.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = EndWith.swift; path = Sources/Nimble/Matchers/EndWith.swift; sourceTree = "<group>"; }; + 6B579B6E7CFE017499BB1FEBEB94CD23 /* TextTableViewCell.xib */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = file.xib; name = TextTableViewCell.xib; path = Sources/UI/Cells/TextTableViewCell.xib; sourceTree = "<group>"; }; 6B70E31B5F5D148C1410F07F7C6C78ED /* Pods-NativeMessageExampleUITests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-NativeMessageExampleUITests-umbrella.h"; sourceTree = "<group>"; }; - 6BB0BCC9DC931FAEAB7784D9CF30E25E /* BeLessThanOrEqual.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BeLessThanOrEqual.swift; path = Sources/Nimble/Matchers/BeLessThanOrEqual.swift; sourceTree = "<group>"; }; + 6BF9B0F4B24AC371456E88A2A3DC4027 /* RequestCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RequestCell.swift; path = Sources/UI/Cells/RequestCell.swift; sourceTree = "<group>"; }; + 6CD786494CC6EFDC2693FBE7DDAFE2F5 /* references.c */ = {isa = PBXFileReference; includeInIndex = 1; name = references.c; path = Source/cmark/references.c; sourceTree = "<group>"; }; 6D660DDE4C1F24DC68B23DB115142AEC /* Pods-AuthExampleUITests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-AuthExampleUITests.release.xcconfig"; sourceTree = "<group>"; }; + 6D7885C864C246711D62F40EC398C873 /* ListItemParagraphStyler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ListItemParagraphStyler.swift; path = Source/AST/Styling/Helpers/ListItemParagraphStyler.swift; sourceTree = "<group>"; }; 6D86EC53B5BAC0C7290B2E00C0974795 /* Pods-NativePMExampleApp-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-NativePMExampleApp-acknowledgements.markdown"; sourceTree = "<group>"; }; + 6D9E52F42BBF10055CE335DF2CAD2D96 /* HtmlBlock.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = HtmlBlock.swift; path = Source/AST/Nodes/HtmlBlock.swift; sourceTree = "<group>"; }; 6DC8858EC649722C3057FAEEDA659D61 /* SPUserData.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SPUserData.swift; sourceTree = "<group>"; }; 6DEDB54E536714442A6EA8A2A05E7933 /* Pods-AuthExampleUITests-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-AuthExampleUITests-Info.plist"; sourceTree = "<group>"; }; - 6E961139719C0CC7802E56059F585826 /* AssertionRecorder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AssertionRecorder.swift; path = Sources/Nimble/Adapters/AssertionRecorder.swift; sourceTree = "<group>"; }; - 6F1C8D9B026F77F6474A77DF50D0E004 /* WHLabel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = WHLabel.swift; path = Sources/Subclasses/WHLabel.swift; sourceTree = "<group>"; }; - 6FBC4A662E9EFEF6E8CDB970B1F295CB /* JSONCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JSONCell.swift; path = Sources/JSONView/JSONCell.swift; sourceTree = "<group>"; }; + 6F278F01ABEA6ADF72283305E88470CB /* Image.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Image.swift; path = Source/AST/Nodes/Image.swift; sourceTree = "<group>"; }; 6FC46704C27355B19DB1F3B2AD88733B /* images */ = {isa = PBXFileReference; includeInIndex = 1; name = images; path = ConsentViewController/Assets/images; sourceTree = "<group>"; }; - 6FE11A5639FE800A9D5DEB5C4323387B /* IQBarButtonItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQBarButtonItem.swift; path = IQKeyboardManagerSwift/IQToolbar/IQBarButtonItem.swift; sourceTree = "<group>"; }; - 7013A63FA1E54FE0A2A7B2EE743C56B9 /* QCKDSL.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCKDSL.m; path = Sources/QuickObjectiveC/DSL/QCKDSL.m; sourceTree = "<group>"; }; + 701793AE80F8D38D3B7EE579EDC49DA2 /* Link.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Link.swift; path = Source/AST/Nodes/Link.swift; sourceTree = "<group>"; }; + 70294F2D3496502D0176E56BD5A0E1D9 /* DSL.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DSL.h; path = Sources/NimbleObjectiveC/DSL.h; sourceTree = "<group>"; }; 704402944C6D6903D1A98585A725C4BB /* ChoiceAllResponse.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ChoiceAllResponse.swift; sourceTree = "<group>"; }; + 7081DF63F8F7C26E5449D03D6A28AEE6 /* ThematicBreakOptions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ThematicBreakOptions.swift; path = Source/AST/Styling/Options/ThematicBreakOptions.swift; sourceTree = "<group>"; }; + 717AD747CABD8F35DCEEBA3D35AB2453 /* Quick-tvOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Quick-tvOS.debug.xcconfig"; path = "../Quick-tvOS/Quick-tvOS.debug.xcconfig"; sourceTree = "<group>"; }; 71AE527D9F47E2791077868459FE12C7 /* SPCCPAPartnersViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SPCCPAPartnersViewController.swift; sourceTree = "<group>"; }; 720650416794F9CDFA5986D3D05CFBEA /* Pods-NativePMExampleAppUITests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-NativePMExampleAppUITests-dummy.m"; sourceTree = "<group>"; }; - 721ABC8E22DCBFC42D1152A13E0A140C /* WHNavigationController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = WHNavigationController.swift; path = Sources/Subclasses/WHNavigationController.swift; sourceTree = "<group>"; }; + 721B0C7C51FF28CEFB75F3941BA81EA6 /* Quick-iOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Quick-iOS-dummy.m"; sourceTree = "<group>"; }; + 726A34F9D4D17AE4EBF1C00A383C14CD /* IQKeyboardManager+Toolbar.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQKeyboardManager+Toolbar.swift"; path = "IQKeyboardManagerSwift/IQKeyboardManager+Toolbar.swift"; sourceTree = "<group>"; }; 729B821959DF5795610C23B9E22DF957 /* SPPrivacyManagerTab.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SPPrivacyManagerTab.swift; path = ConsentViewController/Classes/SPPrivacyManagerTab.swift; sourceTree = "<group>"; }; - 72AFCE139A95EA3FC5E486F833DF6089 /* Quick-tvOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Quick-tvOS.release.xcconfig"; path = "../Quick-tvOS/Quick-tvOS.release.xcconfig"; sourceTree = "<group>"; }; 732E1C3D5133B3DEDABDD4D11D2D4F19 /* ConsentViewController-tvOS-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; name = "ConsentViewController-tvOS-Info.plist"; path = "../ConsentViewController-tvOS/ConsentViewController-tvOS-Info.plist"; sourceTree = "<group>"; }; - 733DADFBEC5CB266ABD81664448B1EAB /* JSONView-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "JSONView-umbrella.h"; sourceTree = "<group>"; }; 73B0B838AB750681D88AAFF192974804 /* ConsentViewController-tvOS-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "ConsentViewController-tvOS-prefix.pch"; path = "../ConsentViewController-tvOS/ConsentViewController-tvOS-prefix.pch"; sourceTree = "<group>"; }; 73F566CFB5F21F61AC2FA68F08AA0B2D /* Quick-tvOS */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Quick-tvOS"; path = Quick.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 74C2AD4FAEBDF5E270D3D8E565589880 /* TextTableViewCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TextTableViewCell.swift; path = Sources/UI/Cells/TextTableViewCell.swift; sourceTree = "<group>"; }; 74FF6F061954BEE78199AE3972F4DBB2 /* Pods-SourcePointMetaApp-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-SourcePointMetaApp-Info.plist"; sourceTree = "<group>"; }; - 75A31412CEA781CA5EF50BAEBB93958C /* Quick-tvOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; name = "Quick-tvOS.modulemap"; path = "../Quick-tvOS/Quick-tvOS.modulemap"; sourceTree = "<group>"; }; - 77A48D3B91441E2740A9BFCEC337829E /* ThrowError.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ThrowError.swift; path = Sources/Nimble/Matchers/ThrowError.swift; sourceTree = "<group>"; }; - 782126019F63799BA75590E4E69F6677 /* IQTextView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQTextView.swift; path = IQKeyboardManagerSwift/IQTextView/IQTextView.swift; sourceTree = "<group>"; }; + 7520B9EDE9D4F5F035EFC7486AE11716 /* List.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = List.swift; path = Source/AST/Nodes/List.swift; sourceTree = "<group>"; }; + 76A215D03E34C06127D887F07C63397C /* Down-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Down-Info.plist"; sourceTree = "<group>"; }; + 770DD20F6C81CA75AD5242593462D0AB /* MatchError.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MatchError.swift; path = Sources/Nimble/Matchers/MatchError.swift; sourceTree = "<group>"; }; + 77DBEBDC400AAA8661412D2C950CDE90 /* inlines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = inlines.h; path = Source/cmark/inlines.h; sourceTree = "<group>"; }; 78944AD0C5E85C206E83971C12C55E2C /* SPGDPRManagePreferenceViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SPGDPRManagePreferenceViewController.swift; sourceTree = "<group>"; }; - 7919F901D6AD27B9E44FAAA6DDFEEA66 /* IQToolbar.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQToolbar.swift; path = IQKeyboardManagerSwift/IQToolbar/IQToolbar.swift; sourceTree = "<group>"; }; + 7947BAB773F339EAC63DAAF04B2D8CFC /* IQKeyboardManagerSwift-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "IQKeyboardManagerSwift-dummy.m"; sourceTree = "<group>"; }; + 7951F1410E7686BC8E5151576CDB2B08 /* Colors.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Colors.swift; path = "Sources/Support Files/Colors.swift"; sourceTree = "<group>"; }; 79AA76446E91ACA06D35E27CF65D9462 /* SPIDFAStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SPIDFAStatus.swift; path = ConsentViewController/Classes/SPIDFAStatus.swift; sourceTree = "<group>"; }; 79B3A869D1182177E19095C737657B2A /* Pods-NativePMExampleApp-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-NativePMExampleApp-dummy.m"; sourceTree = "<group>"; }; - 79F6D0E52727D4D0DA2AAC85A2F248E2 /* SwiftLint-iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "SwiftLint-iOS.debug.xcconfig"; sourceTree = "<group>"; }; + 79D12FD1A71B7E99F4104E07B92F8758 /* ToSucceed.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ToSucceed.swift; path = Sources/Nimble/Matchers/ToSucceed.swift; sourceTree = "<group>"; }; + 79EB69639263444FE6B71A857954296D /* CustomBlock.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CustomBlock.swift; path = Source/AST/Nodes/CustomBlock.swift; sourceTree = "<group>"; }; 7A0A4F9E0A88F1089D54ECAE44A14BD5 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.0.sdk/System/Library/Frameworks/QuartzCore.framework; sourceTree = DEVELOPER_DIR; }; 7AD18DE8C07E493F29F21F71772D684F /* Pods-NativePMExampleAppUITests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-NativePMExampleAppUITests.release.xcconfig"; sourceTree = "<group>"; }; + 7B86E6E82A4364E3929BB2B03A2EBFBD /* Nimble-iOS-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Nimble-iOS-prefix.pch"; sourceTree = "<group>"; }; + 7BACDA6E277E5B39C910B6A290643E0D /* BlockQuote.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BlockQuote.swift; path = Source/AST/Nodes/BlockQuote.swift; sourceTree = "<group>"; }; 7C69565E1DA8AA14202A260FB5A7177F /* GDPRPMConsentSnapshot.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GDPRPMConsentSnapshot.swift; sourceTree = "<group>"; }; + 7CBFD733E83362BED7DF5FDB665DF8C1 /* ThematicBreak.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ThematicBreak.swift; path = Source/AST/Nodes/ThematicBreak.swift; sourceTree = "<group>"; }; 7CD06FF8DD2A0B1C387493B5DDD7C3FE /* ConsentViewController-iOS-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ConsentViewController-iOS-Info.plist"; sourceTree = "<group>"; }; + 7CFEFC792F717489E1D0033C41385017 /* DownXMLRenderable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DownXMLRenderable.swift; path = Source/Renderers/DownXMLRenderable.swift; sourceTree = "<group>"; }; 7D1C13EDC05950C8FEDA0B515FE23D7F /* Pods-ConsentViewController_ExampleTests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-ConsentViewController_ExampleTests-acknowledgements.markdown"; sourceTree = "<group>"; }; 7DADFC5D46A6CCFCFCEB51BB9D3392E4 /* Pods-SourcePointMetaAppUITests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-SourcePointMetaAppUITests.release.xcconfig"; sourceTree = "<group>"; }; 7DB81E8B96ED30450262361FC146BF38 /* SPCCPAManagePreferenceViewController.xib */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = file.xib; path = SPCCPAManagePreferenceViewController.xib; sourceTree = "<group>"; }; 7DC2931C54B06C048F7D2579768814A3 /* SPPrivacyManagerRequestResponse.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SPPrivacyManagerRequestResponse.swift; sourceTree = "<group>"; }; 7E71B2760D2E8554D609900EBB8B7690 /* Pods-NativeMessageExampleUITests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-NativeMessageExampleUITests.release.xcconfig"; sourceTree = "<group>"; }; - 7FCC93977EE6754F19E542699F9FF3B5 /* Section.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Section.swift; path = Sources/Models/Section.swift; sourceTree = "<group>"; }; + 80168F271651A604523035FD37B31496 /* BeNil.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BeNil.swift; path = Sources/Nimble/Matchers/BeNil.swift; sourceTree = "<group>"; }; 806E84F1FCD36DA4F322A51F7A6882C0 /* Pods-SourcePointMetaAppUITests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-SourcePointMetaAppUITests-frameworks.sh"; sourceTree = "<group>"; }; 80D4A2F3A0774E0C7FA0DDC122EE3476 /* SPGDPRVendorDetailsViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SPGDPRVendorDetailsViewController.swift; sourceTree = "<group>"; }; 80F0FA4B4414AA005F66CCBE95343875 /* Pods-AuthExample-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-AuthExample-acknowledgements.markdown"; sourceTree = "<group>"; }; 81ED03AB7884B5D1101A89F720BF884C /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.0.sdk/System/Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; }; 8202D46743AF5E706935EB8883F7CA30 /* SPError.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SPError.swift; path = ConsentViewController/Classes/SPError.swift; sourceTree = "<group>"; }; + 827079B1C799620ADA70CFBA806FA7AA /* HooksPhase.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = HooksPhase.swift; path = Sources/Quick/Hooks/HooksPhase.swift; sourceTree = "<group>"; }; 828FE571F426888999F376AA093B97F7 /* Pods-ConsentViewController_Example-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-ConsentViewController_Example-frameworks.sh"; sourceTree = "<group>"; }; - 8299BA7ADAB694A9E8548659E55265C2 /* Nimble-iOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Nimble-iOS-umbrella.h"; sourceTree = "<group>"; }; 82BBB0AFA84F9E17ED0A5307B6519165 /* ConsentViewController-tvOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; name = "ConsentViewController-tvOS.modulemap"; path = "../ConsentViewController-tvOS/ConsentViewController-tvOS.modulemap"; sourceTree = "<group>"; }; 83717442412D1566302E36DB7D05030B /* SPLocalStorage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SPLocalStorage.swift; sourceTree = "<group>"; }; - 8378F3DB5A7BDC2615F006E25D48E680 /* QuickConfiguration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = QuickConfiguration.swift; path = Sources/Quick/Configuration/QuickConfiguration.swift; sourceTree = "<group>"; }; - 83D62145E2FC3D33DE0E684DCBF3A038 /* AllPass.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AllPass.swift; path = Sources/Nimble/Matchers/AllPass.swift; sourceTree = "<group>"; }; 83ECB2F1811355EFDEDA3A0384A21292 /* ConsentViewController-tvOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "ConsentViewController-tvOS.debug.xcconfig"; path = "../ConsentViewController-tvOS/ConsentViewController-tvOS.debug.xcconfig"; sourceTree = "<group>"; }; + 840B719545A6909C9264D7360E140E74 /* World+DSL.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "World+DSL.swift"; path = "Sources/Quick/DSL/World+DSL.swift"; sourceTree = "<group>"; }; 84E6ECDA9BA350599A22F8C04B50AE84 /* ConsentStatus.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConsentStatus.swift; sourceTree = "<group>"; }; 866490A450A5E3230496A9B972536624 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; path = LICENSE; sourceTree = "<group>"; }; + 86895502D7A8FBC36517193F928B85D7 /* Item.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Item.swift; path = Source/AST/Nodes/Item.swift; sourceTree = "<group>"; }; + 86B2F1A946BF1440B16A1062112D22FE /* Quick-iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Quick-iOS.release.xcconfig"; sourceTree = "<group>"; }; 86F1F5AA5FEC4184D3FD2A77AFFFF304 /* SPString.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SPString.swift; sourceTree = "<group>"; }; 8741D62C63EE9A4FA64706CD715C03A4 /* ConsentStatusMetadata.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConsentStatusMetadata.swift; sourceTree = "<group>"; }; 8759469FD400284FCCF8A7E3DF082124 /* SPConsentManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SPConsentManager.swift; path = ConsentViewController/Classes/SPConsentManager.swift; sourceTree = "<group>"; }; - 878E662BA6B7AE392EF539D854122E18 /* IQKeyboardManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQKeyboardManager.swift; path = IQKeyboardManagerSwift/IQKeyboardManager.swift; sourceTree = "<group>"; }; - 87A145C0FF19C86AB46BB51380531403 /* ErrorUtility.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ErrorUtility.swift; path = Sources/Quick/ErrorUtility.swift; sourceTree = "<group>"; }; - 87AF78E2CBE80D5D7EA7A10CA684A36B /* BodyDetailViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BodyDetailViewController.swift; path = Sources/UI/BodyDetailViewController.swift; sourceTree = "<group>"; }; + 878715BE17B7F8EEE0EE94835AE58C98 /* DispatchTimeInterval.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DispatchTimeInterval.swift; path = Sources/Nimble/Utils/DispatchTimeInterval.swift; sourceTree = "<group>"; }; 87F52123A0B2F891277E0CFF9A267D9B /* Pods-AuthExample */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Pods-AuthExample"; path = Pods_AuthExample.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 87FE69F89503F5D30CB44DD04BB17F70 /* BeLogical.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BeLogical.swift; path = Sources/Nimble/Matchers/BeLogical.swift; sourceTree = "<group>"; }; - 88AFE97485D8C4B575EA389D539760EC /* QuickConfiguration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QuickConfiguration.m; path = Sources/QuickObjectiveC/Configuration/QuickConfiguration.m; sourceTree = "<group>"; }; + 88C3960918EE14D8B5928FFE66526DFF /* CustomActivity.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CustomActivity.swift; path = Sources/Subclasses/CustomActivity.swift; sourceTree = "<group>"; }; 8990E5D07883D1FD44D92144C7E6893E /* SPMessageUIDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SPMessageUIDelegate.swift; path = ConsentViewController/Classes/SPMessageUIDelegate.swift; sourceTree = "<group>"; }; - 8A57809F4D56926C8F1028B862349DCE /* NimbleEnvironment.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NimbleEnvironment.swift; path = Sources/Nimble/Adapters/NimbleEnvironment.swift; sourceTree = "<group>"; }; + 8AEE728651825B45170142762B9F92BC /* RequestTitleSectionView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RequestTitleSectionView.swift; path = Sources/UI/Sections/RequestTitleSectionView.swift; sourceTree = "<group>"; }; 8B4384F4271C4E1F68EDF2E1BCE26E1A /* Pods-ConsentViewController_Example-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-ConsentViewController_Example-acknowledgements.markdown"; sourceTree = "<group>"; }; - 8B64D56D24A95D102B5D9E7F8B2D0433 /* BeResult.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BeResult.swift; path = Sources/Nimble/Matchers/BeResult.swift; sourceTree = "<group>"; }; - 8C00A0585C8B836042BAA63F055F1F25 /* QuickSpec.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QuickSpec.m; path = Sources/QuickObjectiveC/QuickSpec.m; sourceTree = "<group>"; }; + 8B97C385536ECA9485526486DC990ECF /* Await.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Await.swift; path = Sources/Nimble/Utils/Await.swift; sourceTree = "<group>"; }; 8C0286C7DEB558F5A7144F79121AD1FC /* ResourceBundle-ConsentViewController-ConsentViewController-tvOS-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; name = "ResourceBundle-ConsentViewController-ConsentViewController-tvOS-Info.plist"; path = "../ConsentViewController-tvOS/ResourceBundle-ConsentViewController-ConsentViewController-tvOS-Info.plist"; sourceTree = "<group>"; }; - 8C58B46D4D28CDA3ED378DCE0CB4E975 /* QuickTestSuite.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = QuickTestSuite.swift; path = Sources/Quick/QuickTestSuite.swift; sourceTree = "<group>"; }; 8C8C4EEED96D125502B0294C6C1281FC /* PvDataRequestResponse.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PvDataRequestResponse.swift; sourceTree = "<group>"; }; 8CD697B26C8A8E16FF099B230253F0C9 /* CCPAPMConsentSnapshot.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CCPAPMConsentSnapshot.swift; sourceTree = "<group>"; }; 8D0A93A803B672E9AE30FF627057B282 /* PMCategoryManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PMCategoryManager.swift; sourceTree = "<group>"; }; - 8D9E8ACF78DB04B0135AB5510FB9EBFB /* Predicate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Predicate.swift; path = Sources/Nimble/Matchers/Predicate.swift; sourceTree = "<group>"; }; - 8DED920B79FF3B0A23BFC4FE4ADCE9A9 /* Nimble-iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Nimble-iOS.debug.xcconfig"; sourceTree = "<group>"; }; - 8E301C03A8E058837CE3DF645DFFB33E /* NMBStringify.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NMBStringify.h; path = Sources/NimbleObjectiveC/NMBStringify.h; sourceTree = "<group>"; }; + 8E63CD0945B9D178FF0CC2AF2751C72B /* CwlCatchBadInstruction.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CwlCatchBadInstruction.swift; path = Carthage/Checkouts/CwlPreconditionTesting/Sources/CwlPreconditionTesting/CwlCatchBadInstruction.swift; sourceTree = "<group>"; }; 8EFD389278DCAE40D4A6F1CD5019CCDE /* Pods-NativeMessageExampleUITests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-NativeMessageExampleUITests.modulemap"; sourceTree = "<group>"; }; 8F14AA232F04EB7627811BC6CD5E590F /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS14.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; - 8F88D846671FA71C3404A7DC45B8F789 /* WHBundle.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = WHBundle.swift; path = Sources/Subclasses/WHBundle.swift; sourceTree = "<group>"; }; + 8F8E11F0BA49C7755489AD82C54034C9 /* IQKeyboardManager+Debug.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQKeyboardManager+Debug.swift"; path = "IQKeyboardManagerSwift/IQKeyboardManager+Debug.swift"; sourceTree = "<group>"; }; 9003A744024FE2D5F4EA717E4524F872 /* Pods-AuthExample-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-AuthExample-umbrella.h"; sourceTree = "<group>"; }; + 904C94CF67C84BF6E4E596BFF070663F /* NMBStringify.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NMBStringify.h; path = Sources/NimbleObjectiveC/NMBStringify.h; sourceTree = "<group>"; }; 908712E7D7BF0F6ADE4B9EABB5354452 /* MessageRequest.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = MessageRequest.swift; sourceTree = "<group>"; }; - 92A2F9C78701273FCB9E37D7AF3590BA /* IQKeyboardManager+Position.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQKeyboardManager+Position.swift"; path = "IQKeyboardManagerSwift/IQKeyboardManager+Position.swift"; sourceTree = "<group>"; }; - 9419D3A79BAF578F42DF4537F6B281BD /* URL+FileName.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "URL+FileName.swift"; path = "Sources/Quick/URL+FileName.swift"; sourceTree = "<group>"; }; + 90B9957458BA7BE9BCF5C8E5AE2DCAFE /* JSONView-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "JSONView-dummy.m"; sourceTree = "<group>"; }; + 92321CEC968DCD4908350231D8D17509 /* QuickConfiguration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = QuickConfiguration.swift; path = Sources/Quick/Configuration/QuickConfiguration.swift; sourceTree = "<group>"; }; + 925E9581D16B3EC0C59F7FAE66E79D12 /* Nimble-iOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Nimble-iOS.modulemap"; sourceTree = "<group>"; }; + 92814138089BED333E2B2E1E6F205E9D /* DownCommonMarkRenderable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DownCommonMarkRenderable.swift; path = Source/Renderers/DownCommonMarkRenderable.swift; sourceTree = "<group>"; }; + 932965E644537AC076786ECEF9097623 /* QuickObjCRuntime.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QuickObjCRuntime.h; path = Sources/QuickObjCRuntime/include/QuickObjCRuntime.h; sourceTree = "<group>"; }; + 933A5B5638160E5921D63A4C3364E25F /* QuickSpecBase.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QuickSpecBase.m; path = Sources/QuickObjCRuntime/QuickSpecBase.m; sourceTree = "<group>"; }; + 9344639DEC28DF6C91B12F94A3FF74C8 /* houdini.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = houdini.h; path = Source/cmark/houdini.h; sourceTree = "<group>"; }; 94A1E9385C6926655A13C51E80576339 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.0.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; }; - 95AC69A13C835766877D195F8C6A8681 /* QCKConfiguration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = QCKConfiguration.swift; path = Sources/Quick/Configuration/QCKConfiguration.swift; sourceTree = "<group>"; }; + 94A8DB62DF77D798B329646BD66F6239 /* WHDate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = WHDate.swift; path = Sources/Subclasses/WHDate.swift; sourceTree = "<group>"; }; + 94E41F9E4F7F59DF33A7450045E91FAC /* IQKeyboardManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQKeyboardManager.swift; path = IQKeyboardManagerSwift/IQKeyboardManager.swift; sourceTree = "<group>"; }; + 94F0D55887BBB48A5F70C73FE33701EF /* CwlCatchBadInstructionPosix.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CwlCatchBadInstructionPosix.swift; path = Carthage/Checkouts/CwlPreconditionTesting/Sources/CwlPosixPreconditionTesting/CwlCatchBadInstructionPosix.swift; sourceTree = "<group>"; }; + 95AC1C935D0EFAD33334F0EC247AA314 /* Quick-iOS-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Quick-iOS-prefix.pch"; sourceTree = "<group>"; }; 95B1B75F417CC67204851409EE33F7E2 /* GDPRPrivacyManagerViewResponse.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = GDPRPrivacyManagerViewResponse.swift; sourceTree = "<group>"; }; - 95C27240FC9EE37EA1145B55C47A35A4 /* NimbleXCTestHandler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NimbleXCTestHandler.swift; path = Sources/Nimble/Adapters/NimbleXCTestHandler.swift; sourceTree = "<group>"; }; 95EE7338C8BA95D60D432002B45FC916 /* SPDateCreated.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SPDateCreated.swift; path = ConsentViewController/Classes/SPDateCreated.swift; sourceTree = "<group>"; }; - 960955AE53E13489C104DCF1C1D8076E /* WHView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = WHView.swift; path = Sources/Subclasses/WHView.swift; sourceTree = "<group>"; }; 960B3590544CFBA4BB273266039E1DCF /* Pods-NativeMessageExample-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-NativeMessageExample-Info.plist"; sourceTree = "<group>"; }; 96909B228E0DE480414A01B306B78F9A /* QueryParamEncodableProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = QueryParamEncodableProtocol.swift; sourceTree = "<group>"; }; - 96D79CB65150A43F4AC3FEED83CA7362 /* DSL+Wait.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "DSL+Wait.swift"; path = "Sources/Nimble/DSL+Wait.swift"; sourceTree = "<group>"; }; - 9875DA72150ED198D9C402E2D0E5B59A /* WormholyConstructor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = WormholyConstructor.m; path = Sources/Objc/WormholyConstructor.m; sourceTree = "<group>"; }; + 9772094106D90C4D54A9687DF2A7A60C /* Wormholy-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Wormholy-prefix.pch"; sourceTree = "<group>"; }; + 97744050CD3BA0B1EC4B29A1FBC3E186 /* Wormholy-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Wormholy-umbrella.h"; sourceTree = "<group>"; }; 9965D6C300E75DBE0593F3B2EBBC2788 /* IDFAStatusReportRequest.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = IDFAStatusReportRequest.swift; sourceTree = "<group>"; }; - 996897B8E03EF4EC019F69884A3DA5F8 /* Nimble-iOS-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Nimble-iOS-Info.plist"; sourceTree = "<group>"; }; 996ADC6118AC80DD88D8AD99F3C8ED68 /* SPGDPRCategoryDetailsViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SPGDPRCategoryDetailsViewController.swift; sourceTree = "<group>"; }; 99D00C84BC43874116119C8D69B762B1 /* OSLogger.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = OSLogger.swift; path = ConsentViewController/Classes/OSLogger.swift; sourceTree = "<group>"; }; - 99F498F016DE4C8022FF34E5C97BA557 /* mach_excServer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = mach_excServer.h; path = Carthage/Checkouts/CwlPreconditionTesting/Sources/CwlMachBadInstructionHandler/mach_excServer.h; sourceTree = "<group>"; }; - 9A92445A8DBCA3C6A4155D2C18EFAA5F /* Async.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Async.swift; path = Sources/Nimble/Matchers/Async.swift; sourceTree = "<group>"; }; + 9A0E3CD9E2006DAAB5710802CD11B6D7 /* Callsite.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Callsite.swift; path = Sources/Quick/Callsite.swift; sourceTree = "<group>"; }; + 9A9C04673231C48B2E6ED42A2AB6D34E /* DownErrors.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DownErrors.swift; path = "Source/Enums & Options/DownErrors.swift"; sourceTree = "<group>"; }; 9AC0A39714B6C57DA8F69184FA513363 /* Pods-NativeMessageExample-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-NativeMessageExample-umbrella.h"; sourceTree = "<group>"; }; - 9BE29CEE8B166EE8EB1DE36439CC4F62 /* CwlCatchException.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CwlCatchException.m; path = Carthage/Checkouts/CwlCatchException/Sources/CwlCatchExceptionSupport/CwlCatchException.m; sourceTree = "<group>"; }; - 9C0605F46747350B35B62214F79792A1 /* DispatchTimeInterval.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DispatchTimeInterval.swift; path = Sources/Nimble/Utils/DispatchTimeInterval.swift; sourceTree = "<group>"; }; + 9BD71BF64D33A5EE5A322826A6D0E381 /* BeCloseTo.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BeCloseTo.swift; path = Sources/Nimble/Matchers/BeCloseTo.swift; sourceTree = "<group>"; }; + 9D0CC2596F659DEE896423741846BCDA /* ExpectationMessage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ExpectationMessage.swift; path = Sources/Nimble/ExpectationMessage.swift; sourceTree = "<group>"; }; 9D266C9D1A3501BDFF255989526FEE20 /* SPUserDefaults.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SPUserDefaults.swift; sourceTree = "<group>"; }; 9D76D2AAF759795F17D78BD9B137FB61 /* Pods-ObjC-ExampleAppUITests */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Pods-ObjC-ExampleAppUITests"; path = Pods_ObjC_ExampleAppUITests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 9D889DD6FC3B1A7AA5C40A63AF6C2432 /* Nimble-tvOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "Nimble-tvOS-dummy.m"; path = "../Nimble-tvOS/Nimble-tvOS-dummy.m"; sourceTree = "<group>"; }; 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; }; - 9E0D6AE08AF8041459393C35872671A0 /* IQTitleBarButtonItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQTitleBarButtonItem.swift; path = IQKeyboardManagerSwift/IQToolbar/IQTitleBarButtonItem.swift; sourceTree = "<group>"; }; - 9E8387C3725354B66F5EB35A850E1F89 /* JSONView.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = JSONView.debug.xcconfig; sourceTree = "<group>"; }; + 9D966529D260DF33A0925C56470DCABC /* Storage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Storage.swift; path = Sources/Storage.swift; sourceTree = "<group>"; }; + 9E108468363DC7CF9494FD4110912EF2 /* BeWithin.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BeWithin.swift; path = Sources/Nimble/Matchers/BeWithin.swift; sourceTree = "<group>"; }; 9EED9D633EBC8E688948938F6618AB1A /* Pods-NativePMExampleApp-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-NativePMExampleApp-frameworks.sh"; sourceTree = "<group>"; }; - 9F76BA146DAC54F5529A8040C26DFCEB /* JSONView-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "JSONView-Info.plist"; sourceTree = "<group>"; }; 9F7A4C8E3574335291B39A0F8757C2AF /* ConsentViewController-iOS-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "ConsentViewController-iOS-prefix.pch"; sourceTree = "<group>"; }; 9FC586DF51E03DD2DAFAF4D9E87488F6 /* SPCampaignType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SPCampaignType.swift; path = ConsentViewController/Classes/SPCampaignType.swift; sourceTree = "<group>"; }; 9FC78135B0B858A8DF07F58C6F8451E5 /* Pods-SourcePointMetaAppUITests-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-SourcePointMetaAppUITests-Info.plist"; sourceTree = "<group>"; }; - 9FD4BAC1B7D5EBCD2813EA653873D9AE /* Closures.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Closures.swift; path = Sources/Quick/Hooks/Closures.swift; sourceTree = "<group>"; }; - A0505E3B346A0D295815835F4D3B3473 /* BeCloseTo.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BeCloseTo.swift; path = Sources/Nimble/Matchers/BeCloseTo.swift; sourceTree = "<group>"; }; - A0867CB1388EF6EF460CA64F798CA4D6 /* NMBExpectation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NMBExpectation.swift; path = Sources/Nimble/Adapters/NMBExpectation.swift; sourceTree = "<group>"; }; + A0032D232FB89AF247FB539CA7C6F645 /* SourceLocation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SourceLocation.swift; path = Sources/Nimble/Utils/SourceLocation.swift; sourceTree = "<group>"; }; + A09FB9514C706BAC0D25E445FCF3BDCA /* BeResult.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BeResult.swift; path = Sources/Nimble/Matchers/BeResult.swift; sourceTree = "<group>"; }; + A0AA1AC65798F3632CEF26195BB3BB3F /* SwiftLint-tvOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "SwiftLint-tvOS.release.xcconfig"; path = "../SwiftLint-tvOS/SwiftLint-tvOS.release.xcconfig"; sourceTree = "<group>"; }; + A20C28362BE5898EDE4FEE6C967AF566 /* ColorCollection.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ColorCollection.swift; path = "Source/AST/Styling/Attribute Collections/ColorCollection.swift"; sourceTree = "<group>"; }; + A2951E938C866691A0A2B9D510DCC6B0 /* QCKDSL.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QCKDSL.h; path = Sources/QuickObjectiveC/DSL/QCKDSL.h; sourceTree = "<group>"; }; A2A2ABEC75C3B201B4F8DFEBFE92FAA7 /* Pods-SourcePointMetaApp */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Pods-SourcePointMetaApp"; path = Pods_SourcePointMetaApp.framework; sourceTree = BUILT_PRODUCTS_DIR; }; A2E4695922171AB0B0A489E7FE4127B0 /* Pods-ObjC-ExampleApp-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-ObjC-ExampleApp-umbrella.h"; sourceTree = "<group>"; }; + A315A7B6ECBF785825BD78B7BB6D04FC /* CwlMachBadInstructionHandler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CwlMachBadInstructionHandler.m; path = Carthage/Checkouts/CwlPreconditionTesting/Sources/CwlMachBadInstructionHandler/CwlMachBadInstructionHandler.m; sourceTree = "<group>"; }; A4CEDEF6E1052F883EC87F04399160CE /* Pods-ObjC-ExampleApp */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Pods-ObjC-ExampleApp"; path = Pods_ObjC_ExampleApp.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A4DE98D8DF2002DAC3ACD4A54956E4DE /* Config.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Config.swift; path = "Sources/Support Files/Config.swift"; sourceTree = "<group>"; }; A558331540B7C379868C3D30BC93FDDB /* ErrorMetricsRequest.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ErrorMetricsRequest.swift; sourceTree = "<group>"; }; A5B781CE58834A8C23E37229F1561B47 /* Pods-AuthExample-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-AuthExample-Info.plist"; sourceTree = "<group>"; }; A5F0A5D25E74A091B2F052AABAD11F67 /* Pods-ObjC-ExampleAppUITests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-ObjC-ExampleAppUITests.modulemap"; sourceTree = "<group>"; }; - A621FCC91C5F06F22FFC5F7B814811C5 /* Stringers.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Stringers.swift; path = Sources/Nimble/Utils/Stringers.swift; sourceTree = "<group>"; }; + A62B616AE6A6F954362F28DD8D88366B /* Nimble.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Nimble.h; path = Sources/Nimble/Nimble.h; sourceTree = "<group>"; }; A63143CE5782F61A3E2FA8639850BBC7 /* Pods-NativePMExampleAppUITests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-NativePMExampleAppUITests-acknowledgements.markdown"; sourceTree = "<group>"; }; - A68EF4B7B65E0118195CC20531A723CD /* Behavior.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Behavior.swift; path = Sources/Quick/Behavior.swift; sourceTree = "<group>"; }; A79EEAC022AE86D468A8DBB9B570B36F /* SPCCPAVendorDetailsViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SPCCPAVendorDetailsViewController.swift; sourceTree = "<group>"; }; A7FC9F7FA7066E0981C00753F53D557A /* jest.config.json */ = {isa = PBXFileReference; includeInIndex = 1; path = jest.config.json; sourceTree = "<group>"; }; + A88CE3A6E51C34187F86281DB75F54E7 /* Down-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Down-umbrella.h"; sourceTree = "<group>"; }; A8E950A16D00F649C54FFB30F81D7842 /* IQKeyboardManagerSwift */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = IQKeyboardManagerSwift; path = IQKeyboardManagerSwift.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - A96664AB276256AC88E6247846F5D2DB /* Nimble-tvOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; name = "Nimble-tvOS.modulemap"; path = "../Nimble-tvOS/Nimble-tvOS.modulemap"; sourceTree = "<group>"; }; - AA419EAEB778AA2B235EC76B0B4139C2 /* BeGreaterThan.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BeGreaterThan.swift; path = Sources/Nimble/Matchers/BeGreaterThan.swift; sourceTree = "<group>"; }; + A92617F51470C15CAD521741390A422E /* BaseNode.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BaseNode.swift; path = Source/AST/Nodes/BaseNode.swift; sourceTree = "<group>"; }; + AA329714BAC4D98AC0B97306AA80D9B4 /* FileHandler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FileHandler.swift; path = Sources/Utils/FileHandler.swift; sourceTree = "<group>"; }; + AA7CFFF9CE15070521A2CA8C209A9889 /* HaveCount.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = HaveCount.swift; path = Sources/Nimble/Matchers/HaveCount.swift; sourceTree = "<group>"; }; AA92ED38E716E03D3FC758C810953B95 /* Wormholy-Wormholy */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = "Wormholy-Wormholy"; path = Wormholy.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; AB3B1C453B6116B14BCBA10F11300356 /* Constants.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Constants.swift; path = ConsentViewController/Classes/Constants.swift; sourceTree = "<group>"; }; AB75F4254D16986889A768C5D0748B4E /* SPPrivacyPolicyViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SPPrivacyPolicyViewController.swift; sourceTree = "<group>"; }; ABD6628D8C0F2EF1B89427447D9CC83D /* Pods-ObjC-ExampleApp-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-ObjC-ExampleApp-acknowledgements.markdown"; sourceTree = "<group>"; }; - AC426A9D72F2B0F3506325D00A187126 /* HaveCount.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = HaveCount.swift; path = Sources/Nimble/Matchers/HaveCount.swift; sourceTree = "<group>"; }; + AC34A396EA216E294416AD4721B04981 /* ExampleHooks.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ExampleHooks.swift; path = Sources/Quick/Hooks/ExampleHooks.swift; sourceTree = "<group>"; }; AC55A3ECDCCE7AD91C0C1F82F0D436B0 /* Pods-ObjC-ExampleAppUITests-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-ObjC-ExampleAppUITests-Info.plist"; sourceTree = "<group>"; }; - AC56FD03C868E910C7C5CCD0FB2618DA /* SuiteHooks.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SuiteHooks.swift; path = Sources/Quick/Hooks/SuiteHooks.swift; sourceTree = "<group>"; }; + ADD65C72C2B58D39737E5EF34EC9E3B5 /* Nimble-tvOS-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "Nimble-tvOS-prefix.pch"; path = "../Nimble-tvOS/Nimble-tvOS-prefix.pch"; sourceTree = "<group>"; }; + AF6663C4A3C0BDC918F93DC3363922E4 /* ShareUtils.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ShareUtils.swift; path = Sources/Utils/ShareUtils.swift; sourceTree = "<group>"; }; + AF9A2702875DD2CA1970105832580D39 /* String+C99ExtendedIdentifier.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "String+C99ExtendedIdentifier.swift"; path = "Sources/Quick/String+C99ExtendedIdentifier.swift"; sourceTree = "<group>"; }; + AFB25B07CCBB900612F3038AA46140FB /* Example.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Example.swift; path = Sources/Quick/Example.swift; sourceTree = "<group>"; }; + B03360C3F37767F8978ECE6727624F1A /* RequestModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RequestModel.swift; path = Sources/Models/RequestModel.swift; sourceTree = "<group>"; }; B09EB7BFDBBBDDFE4D08E7ADCED030C7 /* ConsentStatusResponse.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConsentStatusResponse.swift; sourceTree = "<group>"; }; - B0A29F22252E6E9E06E3F225186F5AE6 /* BeGreaterThanOrEqualTo.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BeGreaterThanOrEqualTo.swift; path = Sources/Nimble/Matchers/BeGreaterThanOrEqualTo.swift; sourceTree = "<group>"; }; - B17917E4DA36BE6E169725A2FACD511D /* IQKeyboardManager+UIKeyboardNotification.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQKeyboardManager+UIKeyboardNotification.swift"; path = "IQKeyboardManagerSwift/IQKeyboardManager+UIKeyboardNotification.swift"; sourceTree = "<group>"; }; - B1891C91CF56191B6D16C1D877187796 /* WHCollectionView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = WHCollectionView.swift; path = Sources/Subclasses/WHCollectionView.swift; sourceTree = "<group>"; }; - B37729AC08E8EC071A0329BDBA83996B /* Nimble-iOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Nimble-iOS-dummy.m"; sourceTree = "<group>"; }; + B117EC0E0AB4F2BF2420B2BBE01E6BC8 /* Quick-tvOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; name = "Quick-tvOS.modulemap"; path = "../Quick-tvOS/Quick-tvOS.modulemap"; sourceTree = "<group>"; }; + B15ADC04FF459E84C6ABC2BDB65630B5 /* DSL.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DSL.swift; path = Sources/Quick/DSL/DSL.swift; sourceTree = "<group>"; }; + B1F086384F6B2F848A9A1256E8E74A58 /* IQKeyboardManagerSwift-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "IQKeyboardManagerSwift-umbrella.h"; sourceTree = "<group>"; }; + B236B9D85298E0C2286C09291A270BF4 /* JSONView.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = JSONView.debug.xcconfig; sourceTree = "<group>"; }; B3823B05E9FB89A9BCCC5D629032DE19 /* SPGDPRCategoryDetailsViewController.xib */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = file.xib; path = SPGDPRCategoryDetailsViewController.xib; sourceTree = "<group>"; }; B3BF08EA0B6015B0A3D1D6FCF421CE09 /* SPGDPRVendorDetailsViewController.xib */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = file.xib; path = SPGDPRVendorDetailsViewController.xib; sourceTree = "<group>"; }; - B43DFEC44C693818042D6A03AE17361E /* RequestResponseExportOption.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RequestResponseExportOption.swift; path = Sources/Utils/RequestResponseExportOption.swift; sourceTree = "<group>"; }; B458415857EF90712D86C5E0A6BFA112 /* Pods-NativePMExampleAppUITests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-NativePMExampleAppUITests-acknowledgements.plist"; sourceTree = "<group>"; }; B478899DE8D7819A33AC5DEA6EE4AF8F /* SPCCPAPartnersViewController.xib */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = file.xib; path = SPCCPAPartnersViewController.xib; sourceTree = "<group>"; }; + B4B9C691E324AE9E7F94E1561C96C4D8 /* NimbleEnvironment.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NimbleEnvironment.swift; path = Sources/Nimble/Adapters/NimbleEnvironment.swift; sourceTree = "<group>"; }; B573BE43616EFECAB832B3CB2CC426F2 /* Pods-NativeMessageExample-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-NativeMessageExample-acknowledgements.markdown"; sourceTree = "<group>"; }; B583A85EEA77DA2A44A2FEF3AFEC3A67 /* Pods-SourcePointMetaAppUITests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-SourcePointMetaAppUITests-umbrella.h"; sourceTree = "<group>"; }; + B5D2D1A2EC4B0FEEF03C642D6B99C06E /* RequestsViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RequestsViewController.swift; path = Sources/UI/RequestsViewController.swift; sourceTree = "<group>"; }; + B5E95A52AFAF15D941AE275A43898765 /* IQKeyboardManagerConstantsInternal.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQKeyboardManagerConstantsInternal.swift; path = IQKeyboardManagerSwift/Constants/IQKeyboardManagerConstantsInternal.swift; sourceTree = "<group>"; }; B6014883D5452D3C23F73C0D0E177401 /* SPGDPRNativePrivacyManagerViewController.xib */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = file.xib; path = SPGDPRNativePrivacyManagerViewController.xib; sourceTree = "<group>"; }; - B610DD493924EDEE1B3C18FBEC80AED6 /* Filter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Filter.swift; path = Sources/Quick/Filter.swift; sourceTree = "<group>"; }; - B63CD6F02137737BB26A1087ED104FDF /* RequestModelBeautifier.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RequestModelBeautifier.swift; path = Sources/Utils/RequestModelBeautifier.swift; sourceTree = "<group>"; }; + B65C472BE17C0D3E1326DCDB50A7EF8E /* Down.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Down.h; path = Source/Down.h; sourceTree = "<group>"; }; B750314F9A38D3666A6541C6369B5D1D /* Pods-SPGDPRExampleAppUITests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-SPGDPRExampleAppUITests-frameworks.sh"; sourceTree = "<group>"; }; - B892E26A0BF548EF8357B4CF25CFA74C /* SwiftLint-iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "SwiftLint-iOS.release.xcconfig"; sourceTree = "<group>"; }; - B8DDFFFCCCF50BCA33E8F06F5C7CA4D2 /* BeginWith.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BeginWith.swift; path = Sources/Nimble/Matchers/BeginWith.swift; sourceTree = "<group>"; }; - B9309B3D3DC4E4D9D1C1B83FA9BE5E71 /* ExampleMetadata.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ExampleMetadata.swift; path = Sources/Quick/ExampleMetadata.swift; sourceTree = "<group>"; }; - B94A13CCDA61A0B30A4EEDAEB0FBD08F /* RequestDetailViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RequestDetailViewController.swift; path = Sources/UI/RequestDetailViewController.swift; sourceTree = "<group>"; }; - B9995D6640CCF7B801D003E8B6BC0BB5 /* NSURLSessionConfiguration+Wormholy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSURLSessionConfiguration+Wormholy.h"; path = "Sources/Objc/NSURLSessionConfiguration+Wormholy.h"; sourceTree = "<group>"; }; + B76BA69EF675BA3E104496E798C3E72E /* IQUIViewController+Additions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQUIViewController+Additions.swift"; path = "IQKeyboardManagerSwift/Categories/IQUIViewController+Additions.swift"; sourceTree = "<group>"; }; + B8C11695EE5B193D1F0D8BF72B9C9AA7 /* BeginWithPrefix.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BeginWithPrefix.swift; path = Sources/Nimble/Matchers/BeginWithPrefix.swift; sourceTree = "<group>"; }; + B925A01B46DC4576D5A7DCEDDB5DD6C6 /* URL+FileName.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "URL+FileName.swift"; path = "Sources/Quick/URL+FileName.swift"; sourceTree = "<group>"; }; + B9A9FAAF3CDE683DCE7F80696E3E1780 /* Visitor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Visitor.swift; path = Source/AST/Visitors/Visitor.swift; sourceTree = "<group>"; }; B9C1CFC70F222752F8E90EE4F85D3E5B /* SPNativeMessage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SPNativeMessage.swift; path = ConsentViewController/Classes/SPNativeMessage.swift; sourceTree = "<group>"; }; BA36FFECCCE8F0C5DF4B2C03698A3AE4 /* Pods-NativePMExampleApp.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-NativePMExampleApp.debug.xcconfig"; sourceTree = "<group>"; }; - BBCED0FC44CDF36BA1222F51698F4544 /* RequestModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RequestModel.swift; path = Sources/Models/RequestModel.swift; sourceTree = "<group>"; }; - BD42023BB16F312AE6FBCF1327CD9069 /* FileHandler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FileHandler.swift; path = Sources/Utils/FileHandler.swift; sourceTree = "<group>"; }; + BB99BA06CBE242DB60211532AF6D3446 /* Wormholy.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Wormholy.release.xcconfig; sourceTree = "<group>"; }; + BD31644DADCD4A243771D8DD47442F62 /* utf8.c */ = {isa = PBXFileReference; includeInIndex = 1; name = utf8.c; path = Source/cmark/utf8.c; sourceTree = "<group>"; }; + BD3571F06BA6522D948405B220E90283 /* AllPass.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AllPass.swift; path = Sources/Nimble/Matchers/AllPass.swift; sourceTree = "<group>"; }; BD60E165B424A3376B8717E85854244E /* ChoiceResponses.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ChoiceResponses.swift; sourceTree = "<group>"; }; - BDB550F932CBD189789910C9B6870BB9 /* Nimble.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Nimble.h; path = Sources/Nimble/Nimble.h; sourceTree = "<group>"; }; + BF234D7502CABD3ECCE3DB47C14619FE /* CwlCatchException.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CwlCatchException.swift; path = Carthage/Checkouts/CwlCatchException/Sources/CwlCatchException/CwlCatchException.swift; sourceTree = "<group>"; }; BF34295A4EEB1DD5444CFD386B9FC50D /* Pods-ConsentViewController_ExampleTests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-ConsentViewController_ExampleTests-frameworks.sh"; sourceTree = "<group>"; }; BF40733DAE3BB4F60963306FEE1A082B /* SPAppleTVButton.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SPAppleTVButton.swift; sourceTree = "<group>"; }; - C0CBBCA9F35316A2FA939679E7E6B0D3 /* AssertionDispatcher.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AssertionDispatcher.swift; path = Sources/Nimble/Adapters/AssertionDispatcher.swift; sourceTree = "<group>"; }; - C0F5D64A506AA19A26AFE00955CB962F /* Wormholy-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Wormholy-Info.plist"; sourceTree = "<group>"; }; + BFACA9FCCC8A1B367EF4F8611D73E3A2 /* Emphasis.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Emphasis.swift; path = Source/AST/Nodes/Emphasis.swift; sourceTree = "<group>"; }; + C14D9A75C6D0D148766A787E6DAEEEA2 /* Stringers.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Stringers.swift; path = Sources/Nimble/Utils/Stringers.swift; sourceTree = "<group>"; }; C16C9F04093CBB08AF1C50315D15B239 /* SPQRCode.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SPQRCode.swift; sourceTree = "<group>"; }; - C1CC8AD42B5FFEAAF74CFE26ABC6BF53 /* TextTableViewCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = TextTableViewCell.swift; path = Sources/UI/Cells/TextTableViewCell.swift; sourceTree = "<group>"; }; + C1A5FA27905F9B4BACFA1D7F792D487A /* Quick-iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Quick-iOS.debug.xcconfig"; sourceTree = "<group>"; }; + C1A772930289BCF3CAA8EA3D19487AA1 /* MatcherProtocols.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MatcherProtocols.swift; path = Sources/Nimble/Matchers/MatcherProtocols.swift; sourceTree = "<group>"; }; + C2450198951C7A04D49D9EC3D4796A23 /* IQKeyboardManager+UIKeyboardNotification.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQKeyboardManager+UIKeyboardNotification.swift"; path = "IQKeyboardManagerSwift/IQKeyboardManager+UIKeyboardNotification.swift"; sourceTree = "<group>"; }; + C2766E728CD9592E3A30878EBA5AF776 /* WHLabel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = WHLabel.swift; path = Sources/Subclasses/WHLabel.swift; sourceTree = "<group>"; }; C2FCA34B3522D944BAA3DC6A57D99686 /* Nimble-iOS */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Nimble-iOS"; path = Nimble.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - C361676F1D2E6E85585225A88E65A6EA /* Callsite.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Callsite.swift; path = Sources/Quick/Callsite.swift; sourceTree = "<group>"; }; - C370FBBFB089CAB543BA629BDA8E72CE /* SwiftLint-tvOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "SwiftLint-tvOS.debug.xcconfig"; path = "../SwiftLint-tvOS/SwiftLint-tvOS.debug.xcconfig"; sourceTree = "<group>"; }; + C376E206D0D66370BA9AB1F8832BD3B8 /* ElementsEqual.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ElementsEqual.swift; path = Sources/Nimble/Matchers/ElementsEqual.swift; sourceTree = "<group>"; }; + C3B6F134DE0CE4BE0763FBD533D71D0A /* cmark_ctype.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = cmark_ctype.h; path = Source/cmark/cmark_ctype.h; sourceTree = "<group>"; }; + C3C5C29210CD22378C6D7E9483EB41BB /* buffer.c */ = {isa = PBXFileReference; includeInIndex = 1; name = buffer.c; path = Source/cmark/buffer.c; sourceTree = "<group>"; }; + C443E6DD1ADC19142B5667B7378C9880 /* DownHTMLRenderable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DownHTMLRenderable.swift; path = Source/Renderers/DownHTMLRenderable.swift; sourceTree = "<group>"; }; C45FE0ACA89D6EAC73605EB0429AB073 /* Pods-ConsentViewController_Example-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-ConsentViewController_Example-dummy.m"; sourceTree = "<group>"; }; C4A4CD43F953CBB0C3D4664BE54D9BA5 /* Pods-AuthExample-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-AuthExample-frameworks.sh"; sourceTree = "<group>"; }; + C4FC37CE1C465F65FBF6CC8565C0EFE4 /* utf8.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = utf8.h; path = Source/cmark/utf8.h; sourceTree = "<group>"; }; + C511053A4578911005F325403FEDD36E /* ActionableTableViewCell.xib */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = file.xib; name = ActionableTableViewCell.xib; path = Sources/UI/Cells/ActionableTableViewCell.xib; sourceTree = "<group>"; }; + C5161DB129928CB0A61582027AFBBAE1 /* Wormholy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Wormholy.h; path = Sources/Wormholy.h; sourceTree = "<group>"; }; + C51645FD8897485F1D69445B38DAE43C /* DSL.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DSL.m; path = Sources/NimbleObjectiveC/DSL.m; sourceTree = "<group>"; }; C537F67C82337C45E28A1AA2124BC4C8 /* SPCCPAManagePreferenceViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SPCCPAManagePreferenceViewController.swift; sourceTree = "<group>"; }; - C5B54C4C31845E73420CBDBEC97B76BD /* XCTestSuite+QuickTestSuiteBuilder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "XCTestSuite+QuickTestSuiteBuilder.m"; path = "Sources/QuickObjectiveC/XCTestSuite+QuickTestSuiteBuilder.m"; sourceTree = "<group>"; }; - C6A3F821A09EBC594BB9FBB8C604E592 /* Nimble-tvOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Nimble-tvOS.debug.xcconfig"; path = "../Nimble-tvOS/Nimble-tvOS.debug.xcconfig"; sourceTree = "<group>"; }; + C621160453E58A808103CD9384B2AD4E /* IQUIView+IQKeyboardToolbar.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQUIView+IQKeyboardToolbar.swift"; path = "IQKeyboardManagerSwift/IQToolbar/IQUIView+IQKeyboardToolbar.swift"; sourceTree = "<group>"; }; + C6DF058A61D708AF2FB75A61C5C773A8 /* Document.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Document.swift; path = Source/AST/Nodes/Document.swift; sourceTree = "<group>"; }; C786A46AC81577E8A8FE6F907F4F20FB /* SPGDPRConsent.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SPGDPRConsent.swift; sourceTree = "<group>"; }; C8131FF6AD0882BD02A7B7EC78AF0CDE /* Pods-SourcePointMetaAppUITests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-SourcePointMetaAppUITests.debug.xcconfig"; sourceTree = "<group>"; }; C8233E8F1FDFC0D097C32E689CA106F9 /* Pods-NativePMExampleAppUITests */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Pods-NativePMExampleAppUITests"; path = Pods_NativePMExampleAppUITests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; C864DD236E19DDEC0855CD6DC11DE43C /* Pods-ConsentViewController_ExampleTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ConsentViewController_ExampleTests.release.xcconfig"; sourceTree = "<group>"; }; + C8B7ECBC48D5A4C7558411E8764C9E1F /* AssertionDispatcher.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AssertionDispatcher.swift; path = Sources/Nimble/Adapters/AssertionDispatcher.swift; sourceTree = "<group>"; }; C8E0F49D3F9CF6715FD8D2D98638F20F /* Quick-iOS */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Quick-iOS"; path = Quick.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - C92514D638CA058C4E40501754C04C0C /* Await.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Await.swift; path = Sources/Nimble/Utils/Await.swift; sourceTree = "<group>"; }; C9449F190ED29BBB0E615C70560D4FA7 /* Pods-AuthExample.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-AuthExample.modulemap"; sourceTree = "<group>"; }; C950C6328AA1CFBB8EDB751B602E74CD /* PMVendorManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PMVendorManager.swift; sourceTree = "<group>"; }; - CA0CF9F033BC5C39CA8BBB0CE424DE0D /* QuickObjCRuntime.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QuickObjCRuntime.h; path = Sources/QuickObjCRuntime/include/QuickObjCRuntime.h; sourceTree = "<group>"; }; + C96FDBF32869B4E9BEA3EBC65DE5F273 /* NSMutableAttributedString+Attributes.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "NSMutableAttributedString+Attributes.swift"; path = "Source/AST/Styling/Helpers/Extensions/NSMutableAttributedString+Attributes.swift"; sourceTree = "<group>"; }; + C97CD2F577668AFD8F544447A6328493 /* QuickSpec.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QuickSpec.h; path = Sources/QuickObjectiveC/QuickSpec.h; sourceTree = "<group>"; }; CA3196906642F926213FD7D7BE1EEEE3 /* Pods-SPGDPRExampleAppUITests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-SPGDPRExampleAppUITests.debug.xcconfig"; sourceTree = "<group>"; }; + CAAC5927463AA87FB034761B3595C1D3 /* Flow.storyboard */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = file.storyboard; name = Flow.storyboard; path = Sources/UI/Flow.storyboard; sourceTree = "<group>"; }; CAEA285DACFED563DC456C78F35A66CF /* Pods-SourcePointMetaAppUITests */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Pods-SourcePointMetaAppUITests"; path = Pods_SourcePointMetaAppUITests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + CB04BE1AF8FE9BD398CF4B13EEE1B40D /* Nimble-tvOS-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; name = "Nimble-tvOS-Info.plist"; path = "../Nimble-tvOS/Nimble-tvOS-Info.plist"; sourceTree = "<group>"; }; + CC4BF4A2CD5B5CB6EA8A7C9B0F662CD6 /* XCTestObservationCenter+Register.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "XCTestObservationCenter+Register.m"; path = "Sources/NimbleObjectiveC/XCTestObservationCenter+Register.m"; sourceTree = "<group>"; }; + CD49BC421FEE8709A52890556B3E6197 /* inlines.c */ = {isa = PBXFileReference; includeInIndex = 1; name = inlines.c; path = Source/cmark/inlines.c; sourceTree = "<group>"; }; CD6B894B1009A4ECEB2DCAEDF78291F8 /* Pods-ObjC-ExampleApp-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-ObjC-ExampleApp-dummy.m"; sourceTree = "<group>"; }; - CE4675FF6E442A057A44B97E4AD4C2ED /* ExampleHooks.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ExampleHooks.swift; path = Sources/Quick/Hooks/ExampleHooks.swift; sourceTree = "<group>"; }; - CEA61D929F4DA7AE9A5166EB4D5638E2 /* QuickSelectedTestSuiteBuilder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = QuickSelectedTestSuiteBuilder.swift; path = Sources/Quick/QuickSelectedTestSuiteBuilder.swift; sourceTree = "<group>"; }; + CD9D36A3F5DA5E98DB86DF08477AE877 /* World.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = World.swift; path = Sources/Quick/World.swift; sourceTree = "<group>"; }; + CE22DD310BE71ABD5D88DAC8018A4401 /* FontCollection.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FontCollection.swift; path = "Source/AST/Styling/Attribute Collections/FontCollection.swift"; sourceTree = "<group>"; }; + CE249B34809CAE3033328C1268A59433 /* IQTextView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQTextView.swift; path = IQKeyboardManagerSwift/IQTextView/IQTextView.swift; sourceTree = "<group>"; }; + CEFE2FFF1CB533C6879E27F92F3A0195 /* Section.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Section.swift; path = Sources/Models/Section.swift; sourceTree = "<group>"; }; + CF4B3B28EE8125F595325B427398FB51 /* NSURLSessionConfiguration+Wormholy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSURLSessionConfiguration+Wormholy.m"; path = "Sources/Objc/NSURLSessionConfiguration+Wormholy.m"; sourceTree = "<group>"; }; CF775E5B55397CAE6F6DABC7C0AAAC07 /* MetaDataRequestResponse.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = MetaDataRequestResponse.swift; sourceTree = "<group>"; }; - CFBFEAD23EBEFF35E562A1AE1AAD2980 /* BeEmpty.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BeEmpty.swift; path = Sources/Nimble/Matchers/BeEmpty.swift; sourceTree = "<group>"; }; - CFC06F1F291F58D18CAE8F7A2119C974 /* BeWithin.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BeWithin.swift; path = Sources/Nimble/Matchers/BeWithin.swift; sourceTree = "<group>"; }; + CFD22C13806BD78DC03B4768F517871B /* IQToolbar.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQToolbar.swift; path = IQKeyboardManagerSwift/IQToolbar/IQToolbar.swift; sourceTree = "<group>"; }; D0262F6E1102D80F0CBBA489C56292D1 /* ConsentViewController-iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "ConsentViewController-iOS.debug.xcconfig"; sourceTree = "<group>"; }; + D04C9CFDAA3B5689EE3E15B0956A6AEF /* Quick-tvOS-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "Quick-tvOS-prefix.pch"; path = "../Quick-tvOS/Quick-tvOS-prefix.pch"; sourceTree = "<group>"; }; + D1A51BD19FF4F43299CFD85B8CB5BFC9 /* Nimble-iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Nimble-iOS.release.xcconfig"; sourceTree = "<group>"; }; + D1E8A5142B09DB9B65C84189E4515DC5 /* DownGroffRenderable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DownGroffRenderable.swift; path = Source/Renderers/DownGroffRenderable.swift; sourceTree = "<group>"; }; + D21A71AD36A279984DFE6049180C8C4E /* scanners.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = scanners.h; path = Source/cmark/scanners.h; sourceTree = "<group>"; }; D22D5E57EB2FB92E5677D0E682BD06ED /* ConsentViewController.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = ConsentViewController.podspec; sourceTree = "<group>"; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; D2EA4D4CB879E31CCAF1E4E3D382970B /* Pods-AuthExampleUITests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-AuthExampleUITests-dummy.m"; sourceTree = "<group>"; }; - D311BAA1A3182E612E89D8E73B55B58E /* IQUIView+IQKeyboardToolbar.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQUIView+IQKeyboardToolbar.swift"; path = "IQKeyboardManagerSwift/IQToolbar/IQUIView+IQKeyboardToolbar.swift"; sourceTree = "<group>"; }; + D30BC4A2BB02509CD9B6921D29507A79 /* DownStyler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DownStyler.swift; path = Source/AST/Styling/Stylers/DownStyler.swift; sourceTree = "<group>"; }; + D31606EA9B6F472B81F34078D7AC51CB /* BeGreaterThanOrEqualTo.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BeGreaterThanOrEqualTo.swift; path = Sources/Nimble/Matchers/BeGreaterThanOrEqualTo.swift; sourceTree = "<group>"; }; D3380B653F1390A9C078B80ECA50A50E /* Pods-NativePMExampleApp */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Pods-NativePMExampleApp"; path = Pods_NativePMExampleApp.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D33B61D2DB77284C43D27F8708BA7514 /* CwlMachBadInstructionHandler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CwlMachBadInstructionHandler.h; path = Carthage/Checkouts/CwlPreconditionTesting/Sources/CwlMachBadInstructionHandler/include/CwlMachBadInstructionHandler.h; sourceTree = "<group>"; }; D35560D21C50F8F48560EFD5361D32DC /* ConsentViewController-iOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "ConsentViewController-iOS-dummy.m"; sourceTree = "<group>"; }; D37748E4D88C06FD855A363D9E50128C /* Pods-AuthExampleUITests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-AuthExampleUITests-frameworks.sh"; sourceTree = "<group>"; }; - D38E67941F5744505CE66F3CBE887955 /* Wormholy.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = Wormholy.modulemap; sourceTree = "<group>"; }; - D39D3B2D7D42F1C7DC1FF257EEB4E0E2 /* Nimble-iOS-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Nimble-iOS-prefix.pch"; sourceTree = "<group>"; }; - D3F5C523810DD56664CB3A9822386DD9 /* WormholyMethodSwizzling.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = WormholyMethodSwizzling.m; path = Sources/Objc/WormholyMethodSwizzling.m; sourceTree = "<group>"; }; - D4134C16507F23ED7C0C32BB0FC80C5D /* Wormholy-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Wormholy-prefix.pch"; sourceTree = "<group>"; }; D4582032A25ED6D21D0244FEBAC77E47 /* Pods-NativePMExampleApp-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-NativePMExampleApp-Info.plist"; sourceTree = "<group>"; }; D463E95BBD33777E282E9ACA1764722C /* Pods-NativePMExampleAppUITests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-NativePMExampleAppUITests-umbrella.h"; sourceTree = "<group>"; }; D5CB4803FC1A3665897B70D806E94A6B /* ConsentViewController-iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "ConsentViewController-iOS.release.xcconfig"; sourceTree = "<group>"; }; D6858B4DD371293D2852A7E54FDCB42D /* CustomConsentRequest.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CustomConsentRequest.swift; sourceTree = "<group>"; }; D68E620B0BABF4B46F4D59874DBA7E36 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; path = README.md; sourceTree = "<group>"; }; D6D8E4D0F1969E5EC16BDED1585EE87C /* SPJSReceiver.js */ = {isa = PBXFileReference; includeInIndex = 1; path = SPJSReceiver.js; sourceTree = "<group>"; }; - D73B214E01CD1CF83CA00150376D4E87 /* mach_excServer.c */ = {isa = PBXFileReference; includeInIndex = 1; name = mach_excServer.c; path = Carthage/Checkouts/CwlPreconditionTesting/Sources/CwlMachBadInstructionHandler/mach_excServer.c; sourceTree = "<group>"; }; - D7A4B72C69599180D903A84A285859D4 /* ElementsEqual.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ElementsEqual.swift; path = Sources/Nimble/Matchers/ElementsEqual.swift; sourceTree = "<group>"; }; - D7EF3BA904D3779F38FACEDA34CA98DD /* QuickSpecBase.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QuickSpecBase.m; path = Sources/QuickObjCRuntime/QuickSpecBase.m; sourceTree = "<group>"; }; + D6E2DA62A305B313F740939D3F6A71F8 /* Down.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = Down.modulemap; sourceTree = "<group>"; }; + D789344B063B6B4798D349FDDA21D27C /* NSAttributedString+HTML.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "NSAttributedString+HTML.swift"; path = "Source/Extensions/NSAttributedString+HTML.swift"; sourceTree = "<group>"; }; + D796E9E3C0C9CD2EEB46A54519800192 /* node.c */ = {isa = PBXFileReference; includeInIndex = 1; name = node.c; path = Source/cmark/node.c; sourceTree = "<group>"; }; D92F71F24E4CDF4CAD3BA73B49528433 /* Pods-ConsentViewController_Example.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-ConsentViewController_Example.modulemap"; sourceTree = "<group>"; }; + D9840C2E2FAEF98DDD565CE6D3440E98 /* WHBundle.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = WHBundle.swift; path = Sources/Subclasses/WHBundle.swift; sourceTree = "<group>"; }; DA6142AA32563AA24734116A7CD4505E /* SPCampaignEnv.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SPCampaignEnv.swift; path = ConsentViewController/Classes/SPCampaignEnv.swift; sourceTree = "<group>"; }; - DAE662B92CD4567D8EEBE548FF8C7928 /* ShareUtils.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ShareUtils.swift; path = Sources/Utils/ShareUtils.swift; sourceTree = "<group>"; }; + DA8CF835B395E0A0C4CD245C5DC019AD /* CwlCatchException.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = CwlCatchException.m; path = Carthage/Checkouts/CwlCatchException/Sources/CwlCatchExceptionSupport/CwlCatchException.m; sourceTree = "<group>"; }; + DB8595FA58C64090133B1404C303988C /* DSL+Wait.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "DSL+Wait.swift"; path = "Sources/Nimble/DSL+Wait.swift"; sourceTree = "<group>"; }; DBA599E1E0DAC257521B46F238B2533D /* SPCustomViewController.xib */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = file.xib; path = SPCustomViewController.xib; sourceTree = "<group>"; }; - DC41E034DB0C46B8A5CDF645A7AAFBFB /* Flow.storyboard */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = file.storyboard; name = Flow.storyboard; path = Sources/UI/Flow.storyboard; sourceTree = "<group>"; }; + DBFB437DC66245AD0C2BDC0A5C302AB1 /* Strong.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Strong.swift; path = Source/AST/Nodes/Strong.swift; sourceTree = "<group>"; }; DCDA636AD5FC717ED9DE01E748CFC607 /* SPCCPAConsent.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SPCCPAConsent.swift; sourceTree = "<group>"; }; - DEC26655C4E80451FF4C3DBA1199CE75 /* FailureMessage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FailureMessage.swift; path = Sources/Nimble/FailureMessage.swift; sourceTree = "<group>"; }; - DF6663A2B0494D4B93CA53648FB360FE /* Quick.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Quick.h; path = Sources/QuickObjectiveC/Quick.h; sourceTree = "<group>"; }; - E06B7D9C0840E93914F99525D781AB6B /* IQKeyboardManagerSwift.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = IQKeyboardManagerSwift.debug.xcconfig; sourceTree = "<group>"; }; - E0C1D0222CBCA919DD70190DE2A3EEF1 /* RequestCell.xib */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = file.xib; name = RequestCell.xib; path = Sources/UI/Cells/RequestCell.xib; sourceTree = "<group>"; }; - E24FA00E5B02151B00B67C3798B24EF5 /* BeAKindOf.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BeAKindOf.swift; path = Sources/Nimble/Matchers/BeAKindOf.swift; sourceTree = "<group>"; }; + DD36E655D8EE068EFF50A0757E1F193D /* Down.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Down.swift; path = Source/Down.swift; sourceTree = "<group>"; }; + DD783487C1DFFC517AF0E6DD261A5A09 /* CwlCatchException.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = CwlCatchException.h; path = Carthage/Checkouts/CwlCatchException/Sources/CwlCatchExceptionSupport/include/CwlCatchException.h; sourceTree = "<group>"; }; + DED0566FE4F1AAD73E29261F2647D4CF /* WHCollectionView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = WHCollectionView.swift; path = Sources/Subclasses/WHCollectionView.swift; sourceTree = "<group>"; }; + DFB18C136DCE99B90FF7D411931EB2F4 /* cmark_ctype.c */ = {isa = PBXFileReference; includeInIndex = 1; name = cmark_ctype.c; path = Source/cmark/cmark_ctype.c; sourceTree = "<group>"; }; + E105D4CE3E1294C57780FD40F1B18C84 /* CustomInline.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CustomInline.swift; path = Source/AST/Nodes/CustomInline.swift; sourceTree = "<group>"; }; + E1A0AADCD274D67C7CA432AF116F108E /* Nimble-tvOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; name = "Nimble-tvOS.modulemap"; path = "../Nimble-tvOS/Nimble-tvOS.modulemap"; sourceTree = "<group>"; }; E2D77A03561086450FB789E8ED754256 /* Pods-SourcePointMetaApp-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-SourcePointMetaApp-dummy.m"; sourceTree = "<group>"; }; - E31814C29B58C68F736D7E9DDA445740 /* ActionableTableViewCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ActionableTableViewCell.swift; path = Sources/UI/Cells/ActionableTableViewCell.swift; sourceTree = "<group>"; }; + E31D965307FE75500537823A0BB4E322 /* JSONView-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "JSONView-umbrella.h"; sourceTree = "<group>"; }; + E3990458C340AF97F1CC940D19CA7E33 /* buffer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = buffer.h; path = Source/cmark/buffer.h; sourceTree = "<group>"; }; + E3A5BCA07FC62773D3782117F0871384 /* Styler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Styler.swift; path = Source/AST/Styling/Stylers/Styler.swift; sourceTree = "<group>"; }; E41025D27A8A28123FBC9E5303F176B5 /* Pods-SourcePointMetaApp-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-SourcePointMetaApp-umbrella.h"; sourceTree = "<group>"; }; E4815C6903D5CE0C70AEE9AE28B6243D /* Pods-NativeMessageExampleUITests-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-NativeMessageExampleUITests-Info.plist"; sourceTree = "<group>"; }; - E5551CC97051D53EEF75FC3C3D4DBBB4 /* Quick-iOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Quick-iOS.modulemap"; sourceTree = "<group>"; }; + E4BBB585B354A0FBE99C21B1C36D35A1 /* Closures.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Closures.swift; path = Sources/Quick/Hooks/Closures.swift; sourceTree = "<group>"; }; + E5CDEAF94251001BA1B79F2F99403933 /* IQKeyboardManager+Position.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQKeyboardManager+Position.swift"; path = "IQKeyboardManagerSwift/IQKeyboardManager+Position.swift"; sourceTree = "<group>"; }; + E5E649623D9E40861B378DBDEF1928D7 /* UIFont+Traits.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UIFont+Traits.swift"; path = "Source/AST/Styling/Helpers/Extensions/UIFont+Traits.swift"; sourceTree = "<group>"; }; + E6299AFFC345696A42141091DCDB1341 /* ExampleGroup.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ExampleGroup.swift; path = Sources/Quick/ExampleGroup.swift; sourceTree = "<group>"; }; E735ADF04B48BEEF187FCD9E0BEC9586 /* Pods-SPGDPRExampleAppUITests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-SPGDPRExampleAppUITests-umbrella.h"; sourceTree = "<group>"; }; + E797A7DB019FE3394A969E7B42A29D4B /* Match.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Match.swift; path = Sources/Nimble/Matchers/Match.swift; sourceTree = "<group>"; }; E8E87378FA42D6EDD6D05140D02E18C0 /* LongButtonViewCell.xib */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = file.xib; path = LongButtonViewCell.xib; sourceTree = "<group>"; }; - E9754AF5F277FBB1BB643FCBF23F3FC8 /* JSONView-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "JSONView-prefix.pch"; sourceTree = "<group>"; }; + E99011D6DC0752191B6C0D0AAE03B10F /* IQKeyboardManager+UITextFieldViewNotification.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQKeyboardManager+UITextFieldViewNotification.swift"; path = "IQKeyboardManagerSwift/IQKeyboardManager+UITextFieldViewNotification.swift"; sourceTree = "<group>"; }; E99D3733783EDE0B2BC488FE6B039E71 /* Pods-NativeMessageExample.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-NativeMessageExample.debug.xcconfig"; sourceTree = "<group>"; }; + E9B17F21B1EB972CCA0ECA3E2D9067E2 /* Nimble-iOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Nimble-iOS-dummy.m"; sourceTree = "<group>"; }; E9B9DE8BE49CD9DD2D6D3F6A9B633732 /* Pods-AuthExample-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-AuthExample-dummy.m"; sourceTree = "<group>"; }; + E9D5368B55EA84908DB0B3619DA8A1F9 /* RaisesException.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RaisesException.swift; path = Sources/Nimble/Matchers/RaisesException.swift; sourceTree = "<group>"; }; + EA0192695DA1B280F4BAF140ACD24C02 /* QCKDSL.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = QCKDSL.m; path = Sources/QuickObjectiveC/DSL/QCKDSL.m; sourceTree = "<group>"; }; EB6B3287C11FE8E32CE6935EDB60FB97 /* ChoiceRequests.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ChoiceRequests.swift; sourceTree = "<group>"; }; - EC5648DD57EC3710C4027051966059D7 /* DSL.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DSL.swift; path = Sources/Quick/DSL/DSL.swift; sourceTree = "<group>"; }; EC77CD266D1284DD54A1446419D5C03E /* Pods-ObjC-ExampleApp-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-ObjC-ExampleApp-Info.plist"; sourceTree = "<group>"; }; ECD3E396B3ABA6B012AB6074D3397320 /* SPDeviceManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SPDeviceManager.swift; path = ConsentViewController/Classes/SPDeviceManager.swift; sourceTree = "<group>"; }; - ECFDA5278EFB29BA5CA131185F42CBBE /* JSONView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JSONView.swift; path = Sources/JSONView/JSONView.swift; sourceTree = "<group>"; }; - ED3A8BE10A678CBE0765D2186308FD4F /* MatcherProtocols.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MatcherProtocols.swift; path = Sources/Nimble/Matchers/MatcherProtocols.swift; sourceTree = "<group>"; }; + ED145CB8610837DAAB01AA6075562DD1 /* IQInvocation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQInvocation.swift; path = IQKeyboardManagerSwift/IQToolbar/IQInvocation.swift; sourceTree = "<group>"; }; + ED4AA5CC1F2A2D60B5832E735EC0B968 /* RequestResponseExportOption.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RequestResponseExportOption.swift; path = Sources/Utils/RequestResponseExportOption.swift; sourceTree = "<group>"; }; + ED53C7A7A4F09274BBF9FF96AB04E6B5 /* BodyDetailViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BodyDetailViewController.swift; path = Sources/UI/BodyDetailViewController.swift; sourceTree = "<group>"; }; ED6326AF536D8D7698805620E7C47602 /* Pods-SourcePointMetaAppUITests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-SourcePointMetaAppUITests-acknowledgements.plist"; sourceTree = "<group>"; }; EDAFEE9F8D9EE1D309453F1F7B3350B6 /* Pods-ObjC-ExampleAppUITests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-ObjC-ExampleAppUITests-umbrella.h"; sourceTree = "<group>"; }; EDC5A0B2DE3A8B3CB5DE05B940B2213A /* SPGDPRPartnersViewController.xib */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = file.xib; path = SPGDPRPartnersViewController.xib; sourceTree = "<group>"; }; + EDC964878FBCD5EA6DDDB4F674BBCC57 /* IQKeyboardManagerSwift-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "IQKeyboardManagerSwift-prefix.pch"; sourceTree = "<group>"; }; EE3F15539BB1143B4EBBDC81499A6939 /* Pods-ObjC-ExampleAppUITests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ObjC-ExampleAppUITests.debug.xcconfig"; sourceTree = "<group>"; }; - EE8D0F322A78A6FD0918013B185F2794 /* Wormholy-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Wormholy-umbrella.h"; sourceTree = "<group>"; }; - EEE1701D7E9E9425B0A31A936AFC940C /* IQKeyboardManager+Toolbar.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQKeyboardManager+Toolbar.swift"; path = "IQKeyboardManagerSwift/IQKeyboardManager+Toolbar.swift"; sourceTree = "<group>"; }; + EE815C02DE4CDD9B27CE39AB6863DE08 /* Quick-iOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Quick-iOS.modulemap"; sourceTree = "<group>"; }; + EF200C29F5757D84AB72546365956279 /* DownStylerConfiguration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DownStylerConfiguration.swift; path = Source/AST/Styling/Stylers/DownStylerConfiguration.swift; sourceTree = "<group>"; }; + F11A37CBB808CEE0FF299BADBF67DE39 /* cmark_version.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = cmark_version.h; path = Source/cmark/cmark_version.h; sourceTree = "<group>"; }; + F122B45B33E4C2924F2A6034B7D35605 /* QuoteStripeOptions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = QuoteStripeOptions.swift; path = Source/AST/Styling/Options/QuoteStripeOptions.swift; sourceTree = "<group>"; }; + F17A64B69F9CAA574619498002BA3ACC /* BeGreaterThan.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BeGreaterThan.swift; path = Sources/Nimble/Matchers/BeGreaterThan.swift; sourceTree = "<group>"; }; + F17AD4E54096E2D9DB39C7DB4E565F8A /* commonmark.c */ = {isa = PBXFileReference; includeInIndex = 1; name = commonmark.c; path = Source/cmark/commonmark.c; sourceTree = "<group>"; }; + F27E7590E21F4CF0EF3F520B93B1FA63 /* BeLogical.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BeLogical.swift; path = Sources/Nimble/Matchers/BeLogical.swift; sourceTree = "<group>"; }; + F28AC251F58EA3598F307B0408E60056 /* NSBundle+CurrentTestBundle.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "NSBundle+CurrentTestBundle.swift"; path = "Sources/Quick/NSBundle+CurrentTestBundle.swift"; sourceTree = "<group>"; }; F2ADB47439104387B051C0F4F093FEE8 /* Pods-ConsentViewController_ExampleTests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-ConsentViewController_ExampleTests.modulemap"; sourceTree = "<group>"; }; F2C168F3A1444427CBC39692E3CEEB60 /* Pods-NativeMessageExampleUITests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-NativeMessageExampleUITests-acknowledgements.markdown"; sourceTree = "<group>"; }; - F373FC7FD6AB3E071848A3209CCF383B /* Quick-tvOS-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; name = "Quick-tvOS-Info.plist"; path = "../Quick-tvOS/Quick-tvOS-Info.plist"; sourceTree = "<group>"; }; + F309820BB3F1570708091996EE72057D /* ThematicBreakAttribute.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ThematicBreakAttribute.swift; path = "Source/AST/Styling/Custom Attributes/ThematicBreakAttribute.swift"; sourceTree = "<group>"; }; F3851B0BF7B7EAFB0D692EAFFB61D7FA /* Pods-ConsentViewController_Example-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-ConsentViewController_Example-acknowledgements.plist"; sourceTree = "<group>"; }; - F40DED4807355371F607A45E96E63C9B /* NMBStringify.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = NMBStringify.m; path = Sources/NimbleObjectiveC/NMBStringify.m; sourceTree = "<group>"; }; - F4D85CFA3778CAF36B0F3D2E2013C4F9 /* Quick-iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Quick-iOS.release.xcconfig"; sourceTree = "<group>"; }; F50ED8661468C8D694099E55721F0733 /* SourcePointClient.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SourcePointClient.swift; sourceTree = "<group>"; }; + F548BFEA0ABCD63735858C1C7E3660AD /* IQKeyboardManagerSwift.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = IQKeyboardManagerSwift.release.xcconfig; sourceTree = "<group>"; }; + F560308EBBF1319B95EE523C06689586 /* JSONView.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = JSONView.modulemap; sourceTree = "<group>"; }; + F57CF95A5BD30FB7562C976EA29963FC /* Quick-iOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Quick-iOS-umbrella.h"; sourceTree = "<group>"; }; + F5CEFC6A0CC6A008931AFEBBB9BB993F /* DownLaTeXRenderable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = DownLaTeXRenderable.swift; path = Source/Renderers/DownLaTeXRenderable.swift; sourceTree = "<group>"; }; + F65671B772731C7D68ADCBDE962B9D0E /* InputStream+Utils.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "InputStream+Utils.swift"; path = "Sources/Utils/InputStream+Utils.swift"; sourceTree = "<group>"; }; F6B391138C925C36A372D168BE645C69 /* Pods-NativePMExampleApp-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-NativePMExampleApp-acknowledgements.plist"; sourceTree = "<group>"; }; - F73B41C8AB793C87958EB489EFE61D9C /* Storage.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Storage.swift; path = Sources/Storage.swift; sourceTree = "<group>"; }; - F74EA5A204C3916B8A57AA03668BD130 /* QuickSpec.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QuickSpec.h; path = Sources/QuickObjectiveC/QuickSpec.h; sourceTree = "<group>"; }; - F782BBFC1211CEC64B85463EC29DDC87 /* Quick-iOS-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Quick-iOS-prefix.pch"; sourceTree = "<group>"; }; F798E3221E5B46D8B6769D98F40D2F74 /* Pods-SourcePointMetaApp-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-SourcePointMetaApp-acknowledgements.plist"; sourceTree = "<group>"; }; - F7AA6E6E11F02BDA6EAC3022F9FA39C2 /* Nimble-tvOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Nimble-tvOS.release.xcconfig"; path = "../Nimble-tvOS/Nimble-tvOS.release.xcconfig"; sourceTree = "<group>"; }; + F7AEE99DB02A4428037B0864E9F8D711 /* CodeBlock.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CodeBlock.swift; path = Source/AST/Nodes/CodeBlock.swift; sourceTree = "<group>"; }; F7F82DA3FBFF7199F4A6DB4CA204B187 /* Pods-NativeMessageExampleUITests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-NativeMessageExampleUITests-frameworks.sh"; sourceTree = "<group>"; }; + F7FA610780C15C414C40385861A21ED4 /* ChildSequence.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChildSequence.swift; path = Source/AST/Nodes/ChildSequence.swift; sourceTree = "<group>"; }; F81E028ACDFF0830D7A2F10747835620 /* SPPrivacyPolicyViewController.xib */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = file.xib; path = SPPrivacyPolicyViewController.xib; sourceTree = "<group>"; }; - F827465F88B11B368DFA03549F5A4B50 /* RequestTitleSectionView.xib */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = file.xib; name = RequestTitleSectionView.xib; path = Sources/UI/Sections/RequestTitleSectionView.xib; sourceTree = "<group>"; }; - F86CCF69B48DDD6DBCCAB7F8CD75FB2A /* Quick-tvOS-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "Quick-tvOS-prefix.pch"; path = "../Quick-tvOS/Quick-tvOS-prefix.pch"; sourceTree = "<group>"; }; + F8CA88978345560FFB4A39F2E5A86334 /* IQKeyboardManagerSwift-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "IQKeyboardManagerSwift-Info.plist"; sourceTree = "<group>"; }; + F8E0156BBDCAA49BAAE07A1878819159 /* CwlDarwinDefinitions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CwlDarwinDefinitions.swift; path = Carthage/Checkouts/CwlPreconditionTesting/Sources/CwlPreconditionTesting/CwlDarwinDefinitions.swift; sourceTree = "<group>"; }; + F9AB079CF093527A4CFFAB09421335E5 /* BeLessThanOrEqual.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = BeLessThanOrEqual.swift; path = Sources/Nimble/Matchers/BeLessThanOrEqual.swift; sourceTree = "<group>"; }; F9F61E6C51A05142C45F3411880E2286 /* SPURLExtensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SPURLExtensions.swift; sourceTree = "<group>"; }; - FA405AC488A12FC40ECD7F0251F234C0 /* CwlDarwinDefinitions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = CwlDarwinDefinitions.swift; path = Carthage/Checkouts/CwlPreconditionTesting/Sources/CwlPreconditionTesting/CwlDarwinDefinitions.swift; sourceTree = "<group>"; }; - FA5277B5E66A8B6A14870A334B8F7949 /* RequestCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RequestCell.swift; path = Sources/UI/Cells/RequestCell.swift; sourceTree = "<group>"; }; - FA70AB1FC72552C15535A35825491DB9 /* MatchError.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = MatchError.swift; path = Sources/Nimble/Matchers/MatchError.swift; sourceTree = "<group>"; }; - FDD2C920ED602B07B5424FE6E8D8034E /* IQKeyboardManager+OrientationNotification.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IQKeyboardManager+OrientationNotification.swift"; path = "IQKeyboardManagerSwift/IQKeyboardManager+OrientationNotification.swift"; sourceTree = "<group>"; }; - FE02C8E5E324AA10C5D5D0F131849C11 /* Nimble-tvOS-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "Nimble-tvOS-prefix.pch"; path = "../Nimble-tvOS/Nimble-tvOS-prefix.pch"; sourceTree = "<group>"; }; + FA53C49EE9E47CCD7458E36103D8D8B4 /* iterator.c */ = {isa = PBXFileReference; includeInIndex = 1; name = iterator.c; path = Source/cmark/iterator.c; sourceTree = "<group>"; }; + FB9663275D36F2DF8F24EE7DBC70A4F7 /* ExampleMetadata.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ExampleMetadata.swift; path = Sources/Quick/ExampleMetadata.swift; sourceTree = "<group>"; }; + FD2D21D6421A7ED9A1EABC6BC6965D44 /* IQBarButtonItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = IQBarButtonItem.swift; path = IQKeyboardManagerSwift/IQToolbar/IQBarButtonItem.swift; sourceTree = "<group>"; }; + FE05B6F5D5849C89D668385AE14DCBB5 /* RequestModelBeautifier.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = RequestModelBeautifier.swift; path = Sources/Utils/RequestModelBeautifier.swift; sourceTree = "<group>"; }; + FE3E5ADA5583AAAD42F4FE34CFB5CC81 /* JSONView.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = JSONView.release.xcconfig; sourceTree = "<group>"; }; FE5623B2F4D94F11763708052AA66052 /* Pods-NativePMExampleAppUITests-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-NativePMExampleAppUITests-Info.plist"; sourceTree = "<group>"; }; - FE6672F8D91D91FB82A910BBE8F8E964 /* Quick-iOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Quick-iOS-dummy.m"; sourceTree = "<group>"; }; - FFD222F41B47B9AE9F517372D8FE632F /* QuickConfiguration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = QuickConfiguration.h; path = Sources/QuickObjectiveC/Configuration/QuickConfiguration.h; sourceTree = "<group>"; }; + FE8B12B56BE2A03693BE1AC03EC2C77E /* WHBaseViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = WHBaseViewController.swift; path = Sources/Subclasses/WHBaseViewController.swift; sourceTree = "<group>"; }; + FF9B524B32EBD31EBE91A65B1AEAE2B4 /* SatisfyAllOf.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SatisfyAllOf.swift; path = Sources/Nimble/Matchers/SatisfyAllOf.swift; sourceTree = "<group>"; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ + 02AC071D4986C98ADA545F936B6829F5 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; 05A3ED0A3245DD22537C501118BA1730 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -1358,49 +1595,51 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 164D8EB3713659914989E6184289753E /* Frameworks */ = { + 15BA4178FBD100D55EE4160BBDA3D63E /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 038B9A29198D9ECD65A926483B0BC6B4 /* Foundation.framework in Frameworks */, + 71870D0CDDC4D4378047022A83DAE2E8 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 191B5A30ED6D04A1BA6C422D68EB89F6 /* Frameworks */ = { + 164D8EB3713659914989E6184289753E /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - F4C03CC2D104CB9E1197308E121E3210 /* Foundation.framework in Frameworks */, + 038B9A29198D9ECD65A926483B0BC6B4 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 2F57967BA00C746516BE4929591E8802 /* Frameworks */ = { + 191B5A30ED6D04A1BA6C422D68EB89F6 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 7D43F95A1C4F36F3E370CD863E1E8AFE /* Foundation.framework in Frameworks */, + F4C03CC2D104CB9E1197308E121E3210 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 30308A984943461D6D740825C5F2A127 /* Frameworks */ = { + 1EFCC8F1892A0271D043247A65F2E69E /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + EB9EF0E3B54A86C66280138322A0C68E /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 35E8938E5809F820A5B3DC23ADC6A474 /* Frameworks */ = { + 2F57967BA00C746516BE4929591E8802 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 559D953A9516B0617A3A3F45D6EA6BAC /* Foundation.framework in Frameworks */, + 7D43F95A1C4F36F3E370CD863E1E8AFE /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 367920D5DB680006CB5D12F04ECAE88C /* Frameworks */ = { + 35E8938E5809F820A5B3DC23ADC6A474 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 559D953A9516B0617A3A3F45D6EA6BAC /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1420,19 +1659,19 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 5276ED18C4B6216C72E1DC637E684067 /* Frameworks */ = { + 646420E5D559C762F57477304F572653 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - C17F2E51FD7D6955327F8AD147142316 /* Foundation.framework in Frameworks */, + 0C0DB0E0332AB057D734A816C2EAE009 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 646420E5D559C762F57477304F572653 /* Frameworks */ = { + 67DA03B561D59BC8BB102AAB0CE4D00F /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 0C0DB0E0332AB057D734A816C2EAE009 /* Foundation.framework in Frameworks */, + C0B5C4FE2036C9ADD051A06082375F66 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1472,11 +1711,10 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - B3A082C368EF471E13ACE4F98043A1FB /* Frameworks */ = { + A87924351C347C5CBDEC7E0A283EC094 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 71FF6396B970E615D2CB70F0DDE00871 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1504,26 +1742,18 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - DE90FBB646BFA0FEFF30D30ACAAF74A1 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - AFCD36B21854863CECCE408D12580A08 /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - ED72CD8D4CA2920D353C4C984378F735 /* Frameworks */ = { + DA0E56E6C442825AF89E12EC8F8F6421 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - D8D204649247FF042E9867D9F5771F04 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - EDAE739CD0E3BFC0074B49FCC58A004D /* Frameworks */ = { + DE90FBB646BFA0FEFF30D30ACAAF74A1 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + AFCD36B21854863CECCE408D12580A08 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1552,6 +1782,14 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + FEABD0648F997E5252B0BCF7336B5785 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 1564F6F2FA3C4CCCA841F261DD3632F3 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ @@ -1600,21 +1838,6 @@ path = ConsentViewController/Assets/images; sourceTree = "<group>"; }; - 129248DE77A726F844A6465B57D2C19A /* Support Files */ = { - isa = PBXGroup; - children = ( - 468757BED529EB253F5E0AEBA83E6B7B /* IQKeyboardManagerSwift.modulemap */, - 575F2417476D467D9E11D32DF4BD1AEA /* IQKeyboardManagerSwift-dummy.m */, - 34E973FF41C1481083F32D09F5411184 /* IQKeyboardManagerSwift-Info.plist */, - 187AB672B4B2D013D366C0F2D8F829B4 /* IQKeyboardManagerSwift-prefix.pch */, - 0ED0F0AF20E3AE1A03213CCB24BBA49A /* IQKeyboardManagerSwift-umbrella.h */, - E06B7D9C0840E93914F99525D781AB6B /* IQKeyboardManagerSwift.debug.xcconfig */, - 5E56D48E8C5D520A541E6F0400BC1BBF /* IQKeyboardManagerSwift.release.xcconfig */, - ); - name = "Support Files"; - path = "../Target Support Files/IQKeyboardManagerSwift"; - sourceTree = "<group>"; - }; 143812CFE568DA2DCAB74F4013A3EC0D /* Pods-ObjC-ExampleAppUITests */ = { isa = PBXGroup; children = ( @@ -1713,6 +1936,39 @@ path = tvOS; sourceTree = "<group>"; }; + 285F8EF3008EED7E49D497A676875543 /* Products */ = { + isa = PBXGroup; + children = ( + 380358C9A223FE55A10AC25127FF1410 /* ConsentViewController-iOS */, + 4BEAC88AF84CC484F55B8A6C048444D9 /* ConsentViewController-iOS-ConsentViewController */, + 5DC2E71595175144336387BD6D2DE6BD /* ConsentViewController-tvOS */, + 20A4710BBD2EE3CFC496E3AF134BD4FD /* ConsentViewController-tvOS-ConsentViewController */, + 4C90E8F3F21B7688E1FB09920322D768 /* Down */, + A8E950A16D00F649C54FFB30F81D7842 /* IQKeyboardManagerSwift */, + 437B791FEDC5C4B595D6D29500E11197 /* JSONView */, + C2FCA34B3522D944BAA3DC6A57D99686 /* Nimble-iOS */, + 0D68F2DD4656E2DC0F28ED037671461F /* Nimble-tvOS */, + 87F52123A0B2F891277E0CFF9A267D9B /* Pods-AuthExample */, + 5DD4912BA3155D9113F17139BEE2A08D /* Pods-AuthExampleUITests */, + 33870645273F20E4E36E777203CED80F /* Pods-ConsentViewController_Example */, + 120DB32A84B61F0C61C226D9D9D1E4E7 /* Pods-ConsentViewController_ExampleTests */, + 0FBF04B83DBEEDBEB37789AB69EDD109 /* Pods-NativeMessageExample */, + 0390D0D2ECC2B32F9AA8AF682E64F7E5 /* Pods-NativeMessageExampleUITests */, + D3380B653F1390A9C078B80ECA50A50E /* Pods-NativePMExampleApp */, + C8233E8F1FDFC0D097C32E689CA106F9 /* Pods-NativePMExampleAppUITests */, + A4CEDEF6E1052F883EC87F04399160CE /* Pods-ObjC-ExampleApp */, + 9D76D2AAF759795F17D78BD9B137FB61 /* Pods-ObjC-ExampleAppUITests */, + A2A2ABEC75C3B201B4F8DFEBFE92FAA7 /* Pods-SourcePointMetaApp */, + CAEA285DACFED563DC456C78F35A66CF /* Pods-SourcePointMetaAppUITests */, + 510925CF4993719A64DA67893F88EE67 /* Pods-SPGDPRExampleAppUITests */, + C8E0F49D3F9CF6715FD8D2D98638F20F /* Quick-iOS */, + 73F566CFB5F21F61AC2FA68F08AA0B2D /* Quick-tvOS */, + 2530BC414137FF7A53A0368B476547B9 /* Wormholy */, + AA92ED38E716E03D3FC758C810953B95 /* Wormholy-Wormholy */, + ); + name = Products; + sourceTree = "<group>"; + }; 2A0402F186C9744D0720F053F6E088DE /* Pods-AuthExample */ = { isa = PBXGroup; children = ( @@ -1730,6 +1986,21 @@ path = "Target Support Files/Pods-AuthExample"; sourceTree = "<group>"; }; + 2A2E201AD5D00E441E2945C599A0BF8F /* Support Files */ = { + isa = PBXGroup; + children = ( + 1F125995019C967D8221B1998A1F45FA /* IQKeyboardManagerSwift.modulemap */, + 7947BAB773F339EAC63DAAF04B2D8CFC /* IQKeyboardManagerSwift-dummy.m */, + F8CA88978345560FFB4A39F2E5A86334 /* IQKeyboardManagerSwift-Info.plist */, + EDC964878FBCD5EA6DDDB4F674BBCC57 /* IQKeyboardManagerSwift-prefix.pch */, + B1F086384F6B2F848A9A1256E8E74A58 /* IQKeyboardManagerSwift-umbrella.h */, + 03E6DD0FCA9C5A4862739B575FA5EC61 /* IQKeyboardManagerSwift.debug.xcconfig */, + F548BFEA0ABCD63735858C1C7E3660AD /* IQKeyboardManagerSwift.release.xcconfig */, + ); + name = "Support Files"; + path = "../Target Support Files/IQKeyboardManagerSwift"; + sourceTree = "<group>"; + }; 2D4E5CF3B4F4AFDE0CADC26925BBF795 /* Pods-NativePMExampleAppUITests */ = { isa = PBXGroup; children = ( @@ -1747,18 +2018,6 @@ path = "Target Support Files/Pods-NativePMExampleAppUITests"; sourceTree = "<group>"; }; - 31A640306900A65A83F9091CDA62AA38 /* Support Files */ = { - isa = PBXGroup; - children = ( - 79F6D0E52727D4D0DA2AAC85A2F248E2 /* SwiftLint-iOS.debug.xcconfig */, - B892E26A0BF548EF8357B4CF25CFA74C /* SwiftLint-iOS.release.xcconfig */, - C370FBBFB089CAB543BA629BDA8E72CE /* SwiftLint-tvOS.debug.xcconfig */, - 1A75678CF15E786713C19F5C7E2B8765 /* SwiftLint-tvOS.release.xcconfig */, - ); - name = "Support Files"; - path = "../Target Support Files/SwiftLint-iOS"; - sourceTree = "<group>"; - }; 352DE0556BF969092D6C25C599BCC0D9 /* Consents */ = { isa = PBXGroup; children = ( @@ -1771,6 +2030,65 @@ path = ConsentViewController/Classes/Consents; sourceTree = "<group>"; }; + 3C1A72554DD08CA0E8561E82BB97F374 /* Wormholy */ = { + isa = PBXGroup; + children = ( + 0D87A12BCF55C5BA2030A543F13E5BED /* ActionableTableViewCell.swift */, + ED53C7A7A4F09274BBF9FF96AB04E6B5 /* BodyDetailViewController.swift */, + 7951F1410E7686BC8E5151576CDB2B08 /* Colors.swift */, + A4DE98D8DF2002DAC3ACD4A54956E4DE /* Config.swift */, + 88C3960918EE14D8B5928FFE66526DFF /* CustomActivity.swift */, + 1D3B561010BE2A4F21A3F0268ABDC331 /* CustomHTTPProtocol.swift */, + AA329714BAC4D98AC0B97306AA80D9B4 /* FileHandler.swift */, + F65671B772731C7D68ADCBDE962B9D0E /* InputStream+Utils.swift */, + 5D21FEF1C9571A8DBCA6B3EC4628EBDB /* NSURLSessionConfiguration+Wormholy.h */, + CF4B3B28EE8125F595325B427398FB51 /* NSURLSessionConfiguration+Wormholy.m */, + 25D6CFC5D7270163DB4FC94DF015D4FB /* Postman.swift */, + 6BF9B0F4B24AC371456E88A2A3DC4027 /* RequestCell.swift */, + 5881840E2FF0269E7DF0EBD5796161CB /* RequestDetailViewController.swift */, + B03360C3F37767F8978ECE6727624F1A /* RequestModel.swift */, + FE05B6F5D5849C89D668385AE14DCBB5 /* RequestModelBeautifier.swift */, + ED4AA5CC1F2A2D60B5832E735EC0B968 /* RequestResponseExportOption.swift */, + B5D2D1A2EC4B0FEEF03C642D6B99C06E /* RequestsViewController.swift */, + 8AEE728651825B45170142762B9F92BC /* RequestTitleSectionView.swift */, + CEFE2FFF1CB533C6879E27F92F3A0195 /* Section.swift */, + AF6663C4A3C0BDC918F93DC3363922E4 /* ShareUtils.swift */, + 9D966529D260DF33A0925C56470DCABC /* Storage.swift */, + 74C2AD4FAEBDF5E270D3D8E565589880 /* TextTableViewCell.swift */, + FE8B12B56BE2A03693BE1AC03EC2C77E /* WHBaseViewController.swift */, + D9840C2E2FAEF98DDD565CE6D3440E98 /* WHBundle.swift */, + DED0566FE4F1AAD73E29261F2647D4CF /* WHCollectionView.swift */, + 94A8DB62DF77D798B329646BD66F6239 /* WHDate.swift */, + C2766E728CD9592E3A30878EBA5AF776 /* WHLabel.swift */, + 4C8031B5B0076AE14A6CF9249DF40286 /* WHNavigationController.swift */, + 44D5B80ADB162722509684E405FE6437 /* WHString.swift */, + 157FC1A2B09B5196FB27B65EAEB31FCE /* WHTableView.swift */, + 38BFE60FE731C6D6454BC1248F62E5B5 /* WHTextView.swift */, + 2ADA402AD2C0DC196800D6D7DB4E8B11 /* WHView.swift */, + C5161DB129928CB0A61582027AFBBAE1 /* Wormholy.h */, + 22757A3DD0FCCB8D93C46FBC5F9AC8EF /* Wormholy.swift */, + 2934A524A3B3835F09EF2ECF8337CE24 /* WormholyConstructor.m */, + 5FE896ADE3757DF3DEA87A9165AFD77C /* WormholyMethodSwizzling.h */, + 65CEBD3C5DD66F386216F48FD505F889 /* WormholyMethodSwizzling.m */, + 8AFDA2E94D2D26BC9B836229A3927125 /* Resources */, + AD7CB23C706329C5A06A427C778FCD68 /* Support Files */, + ); + name = Wormholy; + path = Wormholy; + sourceTree = "<group>"; + }; + 430FFAD590D757BF4128EF9184649384 /* Support Files */ = { + isa = PBXGroup; + children = ( + 48BF4B715D474202AB06AC4DFFE49825 /* SwiftLint-iOS.debug.xcconfig */, + 08C21BB1D865A9409170888F294A9126 /* SwiftLint-iOS.release.xcconfig */, + 3721E35ADD486A483A31FD4BFF96009B /* SwiftLint-tvOS.debug.xcconfig */, + A0AA1AC65798F3632CEF26195BB3BB3F /* SwiftLint-tvOS.release.xcconfig */, + ); + name = "Support Files"; + path = "../Target Support Files/SwiftLint-iOS"; + sourceTree = "<group>"; + }; 449CB2F4A5E680E998AD374915D71DC2 /* Pods-SourcePointMetaApp */ = { isa = PBXGroup; children = ( @@ -1822,28 +2140,6 @@ path = "Target Support Files/Pods-ConsentViewController_ExampleTests"; sourceTree = "<group>"; }; - 5BB09CBC8C5C36CE54E18326894D0236 /* Support Files */ = { - isa = PBXGroup; - children = ( - 35899B6983EB74B3BDEA25A8C2478450 /* Nimble-iOS.modulemap */, - B37729AC08E8EC071A0329BDBA83996B /* Nimble-iOS-dummy.m */, - 996897B8E03EF4EC019F69884A3DA5F8 /* Nimble-iOS-Info.plist */, - D39D3B2D7D42F1C7DC1FF257EEB4E0E2 /* Nimble-iOS-prefix.pch */, - 8299BA7ADAB694A9E8548659E55265C2 /* Nimble-iOS-umbrella.h */, - 8DED920B79FF3B0A23BFC4FE4ADCE9A9 /* Nimble-iOS.debug.xcconfig */, - 532A5A315BE6A3839436AC7D9725B9F6 /* Nimble-iOS.release.xcconfig */, - A96664AB276256AC88E6247846F5D2DB /* Nimble-tvOS.modulemap */, - 9D889DD6FC3B1A7AA5C40A63AF6C2432 /* Nimble-tvOS-dummy.m */, - 2CD070D8FF07B2DB630D16F626593362 /* Nimble-tvOS-Info.plist */, - FE02C8E5E324AA10C5D5D0F131849C11 /* Nimble-tvOS-prefix.pch */, - 187373211831CCBEF561A2272DEE9C1E /* Nimble-tvOS-umbrella.h */, - C6A3F821A09EBC594BB9FBB8C604E592 /* Nimble-tvOS.debug.xcconfig */, - F7AA6E6E11F02BDA6EAC3022F9FA39C2 /* Nimble-tvOS.release.xcconfig */, - ); - name = "Support Files"; - path = "../Target Support Files/Nimble-iOS"; - sourceTree = "<group>"; - }; 5FA17A9A73A2F8506E9FBD4C0B4E5424 /* Pods-NativePMExampleApp */ = { isa = PBXGroup; children = ( @@ -1861,6 +2157,114 @@ path = "Target Support Files/Pods-NativePMExampleApp"; sourceTree = "<group>"; }; + 601804A74933CFDD1BA521AAF123072C /* Down */ = { + isa = PBXGroup; + children = ( + 5E4E445224324EA4EC853DC4DA7AF760 /* AttributedStringVisitor.swift */, + A92617F51470C15CAD521741390A422E /* BaseNode.swift */, + 412EEDB4587FF3FBE3B0FA5D464BA14B /* BlockBackgroundColorAttribute.swift */, + 7BACDA6E277E5B39C910B6A290643E0D /* BlockQuote.swift */, + 0FA81AA6EA32A93532A7594E869D3299 /* blocks.c */, + C3C5C29210CD22378C6D7E9483EB41BB /* buffer.c */, + E3990458C340AF97F1CC940D19CA7E33 /* buffer.h */, + 26381AEAF3A5B85195A7735518CDE616 /* CGPoint+Translate.swift */, + 40D30DD3C99D443D22DE81C3C4225D05 /* CGRect+Helpers.swift */, + F7FA610780C15C414C40385861A21ED4 /* ChildSequence.swift */, + 3072869E17E16DC8447F4923925AF669 /* chunk.h */, + 4255A9684099CC057C80BE7B5F8CD7FB /* cmark.c */, + 260AEB7610E3844784B70DD9972E25A0 /* cmark.h */, + DFB18C136DCE99B90FF7D411931EB2F4 /* cmark_ctype.c */, + C3B6F134DE0CE4BE0763FBD533D71D0A /* cmark_ctype.h */, + 03C1EAD5CBF0790B3DDBF1971FE4A926 /* cmark_export.h */, + F11A37CBB808CEE0FF299BADBF67DE39 /* cmark_version.h */, + 0CC4EC8308E462115E693E5966185CA7 /* Code.swift */, + F7AEE99DB02A4428037B0864E9F8D711 /* CodeBlock.swift */, + 356F7EAAD72C8F7AF7B705E00487476F /* CodeBlockOptions.swift */, + A20C28362BE5898EDE4FEE6C967AF566 /* ColorCollection.swift */, + F17AD4E54096E2D9DB39C7DB4E565F8A /* commonmark.c */, + 22DD0E705B347629A8710A02B8299359 /* config.h */, + 79EB69639263444FE6B71A857954296D /* CustomBlock.swift */, + E105D4CE3E1294C57780FD40F1B18C84 /* CustomInline.swift */, + 000240FF12FC9FA921A32193478CC476 /* DebugVisitor.swift */, + C6DF058A61D708AF2FB75A61C5C773A8 /* Document.swift */, + B65C472BE17C0D3E1326DCDB50A7EF8E /* Down.h */, + DD36E655D8EE068EFF50A0757E1F193D /* Down.swift */, + 4945FF7912982C4A68DC3DDC77BBBC8D /* DownASTRenderable.swift */, + 135E1342AB961BE0D0B71A03B9EDAA81 /* DownAttributedStringRenderable.swift */, + 92814138089BED333E2B2E1E6F205E9D /* DownCommonMarkRenderable.swift */, + 142CB463E6DC28D50FDFB70636557B4E /* DownDebugLayoutManager.swift */, + 3B3AC354F5A08216CE0ED780E5B2B82C /* DownDebugTextView.swift */, + 9A9C04673231C48B2E6ED42A2AB6D34E /* DownErrors.swift */, + D1E8A5142B09DB9B65C84189E4515DC5 /* DownGroffRenderable.swift */, + C443E6DD1ADC19142B5667B7378C9880 /* DownHTMLRenderable.swift */, + F5CEFC6A0CC6A008931AFEBBB9BB993F /* DownLaTeXRenderable.swift */, + 340BD7B6229112CF361278C3D4A29AC1 /* DownLayoutManager.swift */, + 45116B4FE9CE942C3675B2BF08E8A83D /* DownOptions.swift */, + 617BC5E5ED6957F2FE55CFA65E0A023A /* DownRenderable.swift */, + D30BC4A2BB02509CD9B6921D29507A79 /* DownStyler.swift */, + EF200C29F5757D84AB72546365956279 /* DownStylerConfiguration.swift */, + 42F15ADA74D492BAC76AB3EDB6C12D3D /* DownTextView.swift */, + 7CFEFC792F717489E1D0033C41385017 /* DownXMLRenderable.swift */, + BFACA9FCCC8A1B367EF4F8611D73E3A2 /* Emphasis.swift */, + CE22DD310BE71ABD5D88DAC8018A4401 /* FontCollection.swift */, + 4FEE3BDD2E631E61ED3520A5CC751820 /* Heading.swift */, + 9344639DEC28DF6C91B12F94A3FF74C8 /* houdini.h */, + 39D407912C0402B1D7380AB3F91D2C37 /* houdini_href_e.c */, + 1DFB52D0BAC06E2A28FC6B18D1216BF0 /* houdini_html_e.c */, + 3733B89950161339721CBE2E1CBE2E10 /* houdini_html_u.c */, + 117041B8647E513963A6BA13266955A3 /* html.c */, + 6D9E52F42BBF10055CE335DF2CAD2D96 /* HtmlBlock.swift */, + 2538445DADB67C90695102ED9F35D0AA /* HtmlInline.swift */, + 6F278F01ABEA6ADF72283305E88470CB /* Image.swift */, + CD49BC421FEE8709A52890556B3E6197 /* inlines.c */, + 77DBEBDC400AAA8661412D2C950CDE90 /* inlines.h */, + 86895502D7A8FBC36517193F928B85D7 /* Item.swift */, + FA53C49EE9E47CCD7458E36103D8D8B4 /* iterator.c */, + 5BBD1477BD8D482C9915EB8096D1F4E4 /* iterator.h */, + 48E45CD63519977DBF1E2AADE772CA21 /* latex.c */, + 2216707DE7A34766E9BA9524A4506770 /* LineBreak.swift */, + 701793AE80F8D38D3B7EE579EDC49DA2 /* Link.swift */, + 7520B9EDE9D4F5F035EFC7486AE11716 /* List.swift */, + 0D24D181ADD549C9848DE3C8A48A2426 /* ListItemOptions.swift */, + 6D7885C864C246711D62F40EC398C873 /* ListItemParagraphStyler.swift */, + 152016598FEB9AF219872CCA45E20932 /* ListItemPrefixGenerator.swift */, + 44CD8A72F3A29EF02EE34B2A6EFB7EE9 /* man.c */, + D796E9E3C0C9CD2EEB46A54519800192 /* node.c */, + 1FEC456ADDF2069AA24CA59D508A3A65 /* node.h */, + 442A98950A08DA1804EF7DDB733517E7 /* Node.swift */, + 3E8151422F4D119BA7AFF87AE9863192 /* NSAttributedString+Helpers.swift */, + D789344B063B6B4798D349FDDA21D27C /* NSAttributedString+HTML.swift */, + C96FDBF32869B4E9BEA3EBC65DE5F273 /* NSMutableAttributedString+Attributes.swift */, + 03B06ABE9E1342072D5858485F4F012E /* Paragraph.swift */, + 2CD9D4878151357A0A32FC57B0B6B9FE /* ParagraphStyleCollection.swift */, + 53C8CC7E8FC942BEC4A1E73BD846E9D6 /* parser.h */, + 1F7A51BA7B38F5001CC54F7CB031B708 /* QuoteStripeAttribute.swift */, + F122B45B33E4C2924F2A6034B7D35605 /* QuoteStripeOptions.swift */, + 6CD786494CC6EFDC2693FBE7DDAFE2F5 /* references.c */, + 51039E4EFFDF22E0695ED52DB077E0A6 /* references.h */, + 4070BC13DFC74E11C100FD3411A6AAD5 /* render.c */, + 10473F9F34E076F4BC8C76A0EDE622BC /* render.h */, + 43A59EFF147B151F00B68CC489EF1F61 /* scanners.c */, + D21A71AD36A279984DFE6049180C8C4E /* scanners.h */, + 484341D87F3E64B2D025EE94BCB11781 /* SoftBreak.swift */, + 27721A433338F97FF04F8BE5D90C9FBD /* String+ToHTML.swift */, + DBFB437DC66245AD0C2BDC0A5C302AB1 /* Strong.swift */, + E3A5BCA07FC62773D3782117F0871384 /* Styler.swift */, + 5459D9ADE3F53D06B748B04037F00167 /* Text.swift */, + 7CBFD733E83362BED7DF5FDB665DF8C1 /* ThematicBreak.swift */, + F309820BB3F1570708091996EE72057D /* ThematicBreakAttribute.swift */, + 7081DF63F8F7C26E5449D03D6A28AEE6 /* ThematicBreakOptions.swift */, + E5E649623D9E40861B378DBDEF1928D7 /* UIFont+Traits.swift */, + BD31644DADCD4A243771D8DD47442F62 /* utf8.c */, + C4FC37CE1C465F65FBF6CC8565C0EFE4 /* utf8.h */, + B9A9FAAF3CDE683DCE7F80696E3E1780 /* Visitor.swift */, + 329F04CD8054B9D66AD1907605155E24 /* xml.c */, + AF32A074F296D225E77D6241548CE101 /* Support Files */, + ); + name = Down; + path = Down; + sourceTree = "<group>"; + }; 602E4F20A01A72BFAA2AE468FBA3F69A /* NativePrivacyManager */ = { isa = PBXGroup; children = ( @@ -1873,26 +2277,19 @@ path = NativePrivacyManager; sourceTree = "<group>"; }; - 66ECA5FE185328C0F0D1CDC1A06D418F /* Support Files */ = { + 6530E7C8B91D6E499171BA79322E45FF /* Support Files */ = { isa = PBXGroup; children = ( - E5551CC97051D53EEF75FC3C3D4DBBB4 /* Quick-iOS.modulemap */, - FE6672F8D91D91FB82A910BBE8F8E964 /* Quick-iOS-dummy.m */, - 62A1223E84C36D479A92C16D5E0DF33E /* Quick-iOS-Info.plist */, - F782BBFC1211CEC64B85463EC29DDC87 /* Quick-iOS-prefix.pch */, - 19F57D1728BC85DE45BB7100F8340931 /* Quick-iOS-umbrella.h */, - 5B8A7E9E70968A22000244F01D1CF7E4 /* Quick-iOS.debug.xcconfig */, - F4D85CFA3778CAF36B0F3D2E2013C4F9 /* Quick-iOS.release.xcconfig */, - 75A31412CEA781CA5EF50BAEBB93958C /* Quick-tvOS.modulemap */, - 3CC3EBE52D8D69A78630C1F44CB5406F /* Quick-tvOS-dummy.m */, - F373FC7FD6AB3E071848A3209CCF383B /* Quick-tvOS-Info.plist */, - F86CCF69B48DDD6DBCCAB7F8CD75FB2A /* Quick-tvOS-prefix.pch */, - 3328D8887B4B37F498CCDF1D81D15CA5 /* Quick-tvOS-umbrella.h */, - 127D55D2D74E4C7F7B687C73A953FF57 /* Quick-tvOS.debug.xcconfig */, - 72AFCE139A95EA3FC5E486F833DF6089 /* Quick-tvOS.release.xcconfig */, + F560308EBBF1319B95EE523C06689586 /* JSONView.modulemap */, + 90B9957458BA7BE9BCF5C8E5AE2DCAFE /* JSONView-dummy.m */, + 692C690285DAF9A7CA0DC5A23554CFF3 /* JSONView-Info.plist */, + 2F548C5F1ADA8C0124389079EFD59FD0 /* JSONView-prefix.pch */, + E31D965307FE75500537823A0BB4E322 /* JSONView-umbrella.h */, + B236B9D85298E0C2286C09291A270BF4 /* JSONView.debug.xcconfig */, + FE3E5ADA5583AAAD42F4FE34CFB5CC81 /* JSONView.release.xcconfig */, ); name = "Support Files"; - path = "../Target Support Files/Quick-iOS"; + path = "../Target Support Files/JSONView"; sourceTree = "<group>"; }; 702C6C24838DD77A7F1159D211ABBB26 /* Frameworks */ = { @@ -1936,17 +2333,16 @@ path = Common; sourceTree = "<group>"; }; - 7DBD7491A0AEA64A2CA2D44F26B0985A /* Pods */ = { + 7A2895FD7976288284CE28F3757EEF0D /* JSONView */ = { isa = PBXGroup; children = ( - B65BE190E0514E823153A642103633EE /* IQKeyboardManagerSwift */, - F5712821DA0AC4A2202DB3C58D885A52 /* JSONView */, - F8057F5EC2510F51851F31CAE69CD0AF /* Nimble */, - DA25E4A550818107B135B2B7BB2302C1 /* Quick */, - B629570512F55589E8AB819B448BAA23 /* SwiftLint */, - 9DD0EF095C8E79F71E190E9188C58D6B /* Wormholy */, + 65757B11E6D99E944207C7CF13BC8187 /* JSONCell.swift */, + 41417D017600B7A6C80E0DB98E70C384 /* JSONTreeView.swift */, + 503FCC970CD1073CF89DAE091834D6D3 /* JSONView.swift */, + 6530E7C8B91D6E499171BA79322E45FF /* Support Files */, ); - name = Pods; + name = JSONView; + path = JSONView; sourceTree = "<group>"; }; 81D6054EF43F63BB285E94E3EFC28597 /* Pods-SPGDPRExampleAppUITests */ = { @@ -1966,18 +2362,6 @@ path = "Target Support Files/Pods-SPGDPRExampleAppUITests"; sourceTree = "<group>"; }; - 821B2A90CA5B0044D44435EBF06BB322 /* Resources */ = { - isa = PBXGroup; - children = ( - 17F52D4230F9EBC8AD821641D6330AF2 /* ActionableTableViewCell.xib */, - DC41E034DB0C46B8A5CDF645A7AAFBFB /* Flow.storyboard */, - E0C1D0222CBCA919DD70190DE2A3EEF1 /* RequestCell.xib */, - F827465F88B11B368DFA03549F5A4B50 /* RequestTitleSectionView.xib */, - 53101DE89B3711215A567080FE307AE1 /* TextTableViewCell.xib */, - ); - name = Resources; - sourceTree = "<group>"; - }; 861206156BFA0FE18DC5ABBC0FC00342 /* Views */ = { isa = PBXGroup; children = ( @@ -2022,20 +2406,16 @@ path = ConsentViewController/Classes/SourcePointClient; sourceTree = "<group>"; }; - 8759DE1EF16045D3C5A58FB7041BCC37 /* Support Files */ = { + 8AFDA2E94D2D26BC9B836229A3927125 /* Resources */ = { isa = PBXGroup; children = ( - 2C235D5561439CB09F7902F03FD05657 /* ResourceBundle-Wormholy-Wormholy-Info.plist */, - D38E67941F5744505CE66F3CBE887955 /* Wormholy.modulemap */, - 3B6854E41374AFB22C72D714143F0EC3 /* Wormholy-dummy.m */, - C0F5D64A506AA19A26AFE00955CB962F /* Wormholy-Info.plist */, - D4134C16507F23ED7C0C32BB0FC80C5D /* Wormholy-prefix.pch */, - EE8D0F322A78A6FD0918013B185F2794 /* Wormholy-umbrella.h */, - 2CA7954C5E980886049E8C04F534B9D1 /* Wormholy.debug.xcconfig */, - 3505EF66D2FB134666A5C95FA4918169 /* Wormholy.release.xcconfig */, + C511053A4578911005F325403FEDD36E /* ActionableTableViewCell.xib */, + CAAC5927463AA87FB034761B3595C1D3 /* Flow.storyboard */, + 67CF98B34415888CFCC0A3919A234894 /* RequestCell.xib */, + 1FF9490F64DC44BA5A308995182E951C /* RequestTitleSectionView.xib */, + 6B579B6E7CFE017499BB1FEBEB94CD23 /* TextTableViewCell.xib */, ); - name = "Support Files"; - path = "../Target Support Files/Wormholy"; + name = Resources; sourceTree = "<group>"; }; 8C808CD38509926D01B3A6464FF11366 /* CCPA */ = { @@ -2084,53 +2464,6 @@ name = Pod; sourceTree = "<group>"; }; - 9DD0EF095C8E79F71E190E9188C58D6B /* Wormholy */ = { - isa = PBXGroup; - children = ( - E31814C29B58C68F736D7E9DDA445740 /* ActionableTableViewCell.swift */, - 87AF78E2CBE80D5D7EA7A10CA684A36B /* BodyDetailViewController.swift */, - 4C11157199042CC9E7042E23F1EB5D3C /* Colors.swift */, - 1C4332F72D50C24DF7625DC7A092464B /* Config.swift */, - 2335FDE1A680D9B62880B580E770DF87 /* CustomActivity.swift */, - 4C22D4E96CC3C07425EAA1717AA769B3 /* CustomHTTPProtocol.swift */, - BD42023BB16F312AE6FBCF1327CD9069 /* FileHandler.swift */, - 4E66B8734DB4639A722D9F3ACFFF1181 /* InputStream+Utils.swift */, - B9995D6640CCF7B801D003E8B6BC0BB5 /* NSURLSessionConfiguration+Wormholy.h */, - 53FA74CE9C07264ADD94D77E20A52EFC /* NSURLSessionConfiguration+Wormholy.m */, - 1318C2EB7FDBE59031F3BD98FF3FC645 /* Postman.swift */, - FA5277B5E66A8B6A14870A334B8F7949 /* RequestCell.swift */, - B94A13CCDA61A0B30A4EEDAEB0FBD08F /* RequestDetailViewController.swift */, - BBCED0FC44CDF36BA1222F51698F4544 /* RequestModel.swift */, - B63CD6F02137737BB26A1087ED104FDF /* RequestModelBeautifier.swift */, - B43DFEC44C693818042D6A03AE17361E /* RequestResponseExportOption.swift */, - 44ED6904363F52CFD10E67F1582A01A7 /* RequestsViewController.swift */, - 64364A62C6B6C780BA90963F0C2366C9 /* RequestTitleSectionView.swift */, - 7FCC93977EE6754F19E542699F9FF3B5 /* Section.swift */, - DAE662B92CD4567D8EEBE548FF8C7928 /* ShareUtils.swift */, - F73B41C8AB793C87958EB489EFE61D9C /* Storage.swift */, - C1CC8AD42B5FFEAAF74CFE26ABC6BF53 /* TextTableViewCell.swift */, - 5BAE8EB47AD57536C397AF36CBADAD5F /* WHBaseViewController.swift */, - 8F88D846671FA71C3404A7DC45B8F789 /* WHBundle.swift */, - B1891C91CF56191B6D16C1D877187796 /* WHCollectionView.swift */, - 2B0EB87CEDD38E75275C206B5D086DC1 /* WHDate.swift */, - 6F1C8D9B026F77F6474A77DF50D0E004 /* WHLabel.swift */, - 721ABC8E22DCBFC42D1152A13E0A140C /* WHNavigationController.swift */, - 07A27EE1551546DE1D5141959752F51F /* WHString.swift */, - 5C6B355C9384F0A449C0F295AC001885 /* WHTableView.swift */, - 0C695CC5E5B8DED132F1EFE3C9752ABF /* WHTextView.swift */, - 960955AE53E13489C104DCF1C1D8076E /* WHView.swift */, - 4FE0927C921CF8219AA20AD2A618E87D /* Wormholy.h */, - 0DC58DD7393E77397E396B98EB7BE1A4 /* Wormholy.swift */, - 9875DA72150ED198D9C402E2D0E5B59A /* WormholyConstructor.m */, - 327FCDEA50C8539233C5BC6D9298BE28 /* WormholyMethodSwizzling.h */, - D3F5C523810DD56664CB3A9822386DD9 /* WormholyMethodSwizzling.m */, - 821B2A90CA5B0044D44435EBF06BB322 /* Resources */, - 8759DE1EF16045D3C5A58FB7041BCC37 /* Support Files */, - ); - name = Wormholy; - path = Wormholy; - sourceTree = "<group>"; - }; AA0FF5B84BA9871989AB30E01C8198D3 /* Targets Support Files */ = { isa = PBXGroup; children = ( @@ -2168,6 +2501,37 @@ path = "Target Support Files/Pods-ObjC-ExampleApp"; sourceTree = "<group>"; }; + AD7CB23C706329C5A06A427C778FCD68 /* Support Files */ = { + isa = PBXGroup; + children = ( + 5E9699DCBA3371AC26B64B3E8E544C9D /* ResourceBundle-Wormholy-Wormholy-Info.plist */, + 599829DBCF8EA88FD7D89EB0D241534D /* Wormholy.modulemap */, + 5F4D5CD9F1F8FF97FC14E75387B62A87 /* Wormholy-dummy.m */, + 04A2FB97CD45DDF88E3278E1BE55BF7D /* Wormholy-Info.plist */, + 9772094106D90C4D54A9687DF2A7A60C /* Wormholy-prefix.pch */, + 97744050CD3BA0B1EC4B29A1FBC3E186 /* Wormholy-umbrella.h */, + 42A51D82D7093FF4E1BF5B76F611BD58 /* Wormholy.debug.xcconfig */, + BB99BA06CBE242DB60211532AF6D3446 /* Wormholy.release.xcconfig */, + ); + name = "Support Files"; + path = "../Target Support Files/Wormholy"; + sourceTree = "<group>"; + }; + AF32A074F296D225E77D6241548CE101 /* Support Files */ = { + isa = PBXGroup; + children = ( + D6E2DA62A305B313F740939D3F6A71F8 /* Down.modulemap */, + 2DBE73DB45AB94762EE68960C907A094 /* Down-dummy.m */, + 76A215D03E34C06127D887F07C63397C /* Down-Info.plist */, + 3BECE616CF3BAC89AE57F207A153AF74 /* Down-prefix.pch */, + A88CE3A6E51C34187F86281DB75F54E7 /* Down-umbrella.h */, + 1836C79E905BFED1185217A961DE5924 /* Down.debug.xcconfig */, + 14CC9F07ACC4CAD18A2A4F5AFF7D3D44 /* Down.release.xcconfig */, + ); + name = "Support Files"; + path = "../Target Support Files/Down"; + sourceTree = "<group>"; + }; B4688885B53D142750DBDAE80DB39846 /* GDPR */ = { isa = PBXGroup; children = ( @@ -2187,45 +2551,18 @@ path = GDPR; sourceTree = "<group>"; }; - B629570512F55589E8AB819B448BAA23 /* SwiftLint */ = { - isa = PBXGroup; - children = ( - 31A640306900A65A83F9091CDA62AA38 /* Support Files */, - ); - name = SwiftLint; - path = SwiftLint; - sourceTree = "<group>"; - }; - B65BE190E0514E823153A642103633EE /* IQKeyboardManagerSwift */ = { + B4E2225F325AA42C7DFE2C9BF5AF1C28 /* Pods */ = { isa = PBXGroup; children = ( - 6FE11A5639FE800A9D5DEB5C4323387B /* IQBarButtonItem.swift */, - 4847AD2AE5F414A46DE247237C056AA6 /* IQInvocation.swift */, - 878E662BA6B7AE392EF539D854122E18 /* IQKeyboardManager.swift */, - 584714409875EC36B324152B364CB41D /* IQKeyboardManager+Debug.swift */, - 115FD14F54FB6B79B6EA8E2CB4E36D60 /* IQKeyboardManager+Internal.swift */, - FDD2C920ED602B07B5424FE6E8D8034E /* IQKeyboardManager+OrientationNotification.swift */, - 92A2F9C78701273FCB9E37D7AF3590BA /* IQKeyboardManager+Position.swift */, - EEE1701D7E9E9425B0A31A936AFC940C /* IQKeyboardManager+Toolbar.swift */, - B17917E4DA36BE6E169725A2FACD511D /* IQKeyboardManager+UIKeyboardNotification.swift */, - 3B48E8255A10C843E508A311E3D3C808 /* IQKeyboardManager+UITextFieldViewNotification.swift */, - 63D9169D2743C66103C3874ADA6FE1EE /* IQKeyboardManagerConstants.swift */, - 32208EE956E4CCE1CBB72750BA454B06 /* IQKeyboardManagerConstantsInternal.swift */, - 07EFCA28E478041C81CBC9695ECF9712 /* IQKeyboardReturnKeyHandler.swift */, - 6834DEE6039AB6BE3607D05FC23AF685 /* IQNSArray+Sort.swift */, - 56E0467FE7EDDC1CDCFD23F4170C77F5 /* IQPreviousNextView.swift */, - 782126019F63799BA75590E4E69F6677 /* IQTextView.swift */, - 9E0D6AE08AF8041459393C35872671A0 /* IQTitleBarButtonItem.swift */, - 7919F901D6AD27B9E44FAAA6DDFEEA66 /* IQToolbar.swift */, - 37C064BFA0651B54F5E89206BC0764EA /* IQUIScrollView+Additions.swift */, - 3D9B81781A4383C36C41C873449913C9 /* IQUITextFieldView+Additions.swift */, - 5D8C6C3D4CC5E1705C7064FAA1855427 /* IQUIView+Hierarchy.swift */, - D311BAA1A3182E612E89D8E73B55B58E /* IQUIView+IQKeyboardToolbar.swift */, - 1A28470306D56C62F4A4F37A95BE4C15 /* IQUIViewController+Additions.swift */, - 129248DE77A726F844A6465B57D2C19A /* Support Files */, + 601804A74933CFDD1BA521AAF123072C /* Down */, + C514E0AC53CC3B362B999AA02BB69D44 /* IQKeyboardManagerSwift */, + 7A2895FD7976288284CE28F3757EEF0D /* JSONView */, + F060D937EBFB6C3CD5279D431AD760AD /* Nimble */, + E1CE1EAD2A82B84CCFDD5C121C6CC3F4 /* Quick */, + E56E671D3A7B0425903309A49BF605B9 /* SwiftLint */, + 3C1A72554DD08CA0E8561E82BB97F374 /* Wormholy */, ); - name = IQKeyboardManagerSwift; - path = IQKeyboardManagerSwift; + name = Pods; sourceTree = "<group>"; }; BEDA5D120B9E397B2D6BF8D79DBCF25A /* Pods-SourcePointMetaAppUITests */ = { @@ -2255,36 +2592,36 @@ path = iOS; sourceTree = "<group>"; }; - C8E250BB2547EDF0EA9FFC222489480B /* Products */ = { + C514E0AC53CC3B362B999AA02BB69D44 /* IQKeyboardManagerSwift */ = { isa = PBXGroup; children = ( - 380358C9A223FE55A10AC25127FF1410 /* ConsentViewController-iOS */, - 4BEAC88AF84CC484F55B8A6C048444D9 /* ConsentViewController-iOS-ConsentViewController */, - 5DC2E71595175144336387BD6D2DE6BD /* ConsentViewController-tvOS */, - 20A4710BBD2EE3CFC496E3AF134BD4FD /* ConsentViewController-tvOS-ConsentViewController */, - A8E950A16D00F649C54FFB30F81D7842 /* IQKeyboardManagerSwift */, - 437B791FEDC5C4B595D6D29500E11197 /* JSONView */, - C2FCA34B3522D944BAA3DC6A57D99686 /* Nimble-iOS */, - 0D68F2DD4656E2DC0F28ED037671461F /* Nimble-tvOS */, - 87F52123A0B2F891277E0CFF9A267D9B /* Pods-AuthExample */, - 5DD4912BA3155D9113F17139BEE2A08D /* Pods-AuthExampleUITests */, - 33870645273F20E4E36E777203CED80F /* Pods-ConsentViewController_Example */, - 120DB32A84B61F0C61C226D9D9D1E4E7 /* Pods-ConsentViewController_ExampleTests */, - 0FBF04B83DBEEDBEB37789AB69EDD109 /* Pods-NativeMessageExample */, - 0390D0D2ECC2B32F9AA8AF682E64F7E5 /* Pods-NativeMessageExampleUITests */, - D3380B653F1390A9C078B80ECA50A50E /* Pods-NativePMExampleApp */, - C8233E8F1FDFC0D097C32E689CA106F9 /* Pods-NativePMExampleAppUITests */, - A4CEDEF6E1052F883EC87F04399160CE /* Pods-ObjC-ExampleApp */, - 9D76D2AAF759795F17D78BD9B137FB61 /* Pods-ObjC-ExampleAppUITests */, - A2A2ABEC75C3B201B4F8DFEBFE92FAA7 /* Pods-SourcePointMetaApp */, - CAEA285DACFED563DC456C78F35A66CF /* Pods-SourcePointMetaAppUITests */, - 510925CF4993719A64DA67893F88EE67 /* Pods-SPGDPRExampleAppUITests */, - C8E0F49D3F9CF6715FD8D2D98638F20F /* Quick-iOS */, - 73F566CFB5F21F61AC2FA68F08AA0B2D /* Quick-tvOS */, - 2530BC414137FF7A53A0368B476547B9 /* Wormholy */, - AA92ED38E716E03D3FC758C810953B95 /* Wormholy-Wormholy */, + FD2D21D6421A7ED9A1EABC6BC6965D44 /* IQBarButtonItem.swift */, + ED145CB8610837DAAB01AA6075562DD1 /* IQInvocation.swift */, + 94E41F9E4F7F59DF33A7450045E91FAC /* IQKeyboardManager.swift */, + 8F8E11F0BA49C7755489AD82C54034C9 /* IQKeyboardManager+Debug.swift */, + 27E4103920DAD41207C515376538B5A2 /* IQKeyboardManager+Internal.swift */, + 5047CC804189E94A9B3CEAB093F0C53A /* IQKeyboardManager+OrientationNotification.swift */, + E5CDEAF94251001BA1B79F2F99403933 /* IQKeyboardManager+Position.swift */, + 726A34F9D4D17AE4EBF1C00A383C14CD /* IQKeyboardManager+Toolbar.swift */, + C2450198951C7A04D49D9EC3D4796A23 /* IQKeyboardManager+UIKeyboardNotification.swift */, + E99011D6DC0752191B6C0D0AAE03B10F /* IQKeyboardManager+UITextFieldViewNotification.swift */, + 50A769B7B07BFE25CF2F46555EA8C33F /* IQKeyboardManagerConstants.swift */, + B5E95A52AFAF15D941AE275A43898765 /* IQKeyboardManagerConstantsInternal.swift */, + 4F30C92BBD1CC27CB0971D9E9D0897BF /* IQKeyboardReturnKeyHandler.swift */, + 3AB0FC247E2A3101C90428EA40F1F0E6 /* IQNSArray+Sort.swift */, + 285BE3E66975DB446D5F1D0A93CE222F /* IQPreviousNextView.swift */, + CE249B34809CAE3033328C1268A59433 /* IQTextView.swift */, + 4FCB8C53F45A51260CC88D81CCF424D9 /* IQTitleBarButtonItem.swift */, + CFD22C13806BD78DC03B4768F517871B /* IQToolbar.swift */, + 2FBD3480792BC2F46E97894268A8D1FC /* IQUIScrollView+Additions.swift */, + 3463540E81501C1B8A2E50EB8B788F45 /* IQUITextFieldView+Additions.swift */, + 0758C78A136FF46598392E3AC4DF0F9F /* IQUIView+Hierarchy.swift */, + C621160453E58A808103CD9384B2AD4E /* IQUIView+IQKeyboardToolbar.swift */, + B76BA69EF675BA3E104496E798C3E72E /* IQUIViewController+Additions.swift */, + 2A2E201AD5D00E441E2945C599A0BF8F /* Support Files */, ); - name = Products; + name = IQKeyboardManagerSwift; + path = IQKeyboardManagerSwift; sourceTree = "<group>"; }; CF1408CF629C7361332E53B88F7BD30C = { @@ -2293,12 +2630,34 @@ 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */, 2440D6E45C5F424A06DAC0009FC9E4C9 /* Development Pods */, 702C6C24838DD77A7F1159D211ABBB26 /* Frameworks */, - 7DBD7491A0AEA64A2CA2D44F26B0985A /* Pods */, - C8E250BB2547EDF0EA9FFC222489480B /* Products */, + B4E2225F325AA42C7DFE2C9BF5AF1C28 /* Pods */, + 285F8EF3008EED7E49D497A676875543 /* Products */, AA0FF5B84BA9871989AB30E01C8198D3 /* Targets Support Files */, ); sourceTree = "<group>"; }; + CF1E61A597E2BE0AF0BD66A34232D012 /* Support Files */ = { + isa = PBXGroup; + children = ( + EE815C02DE4CDD9B27CE39AB6863DE08 /* Quick-iOS.modulemap */, + 721B0C7C51FF28CEFB75F3941BA81EA6 /* Quick-iOS-dummy.m */, + 48CF52E2571D5B654384C5E667CD4671 /* Quick-iOS-Info.plist */, + 95AC1C935D0EFAD33334F0EC247AA314 /* Quick-iOS-prefix.pch */, + F57CF95A5BD30FB7562C976EA29963FC /* Quick-iOS-umbrella.h */, + C1A5FA27905F9B4BACFA1D7F792D487A /* Quick-iOS.debug.xcconfig */, + 86B2F1A946BF1440B16A1062112D22FE /* Quick-iOS.release.xcconfig */, + B117EC0E0AB4F2BF2420B2BBE01E6BC8 /* Quick-tvOS.modulemap */, + 2442FE4F068F207E66D30731905E72C0 /* Quick-tvOS-dummy.m */, + 0E4356254470C38ADFCF81BF50F4EFE8 /* Quick-tvOS-Info.plist */, + D04C9CFDAA3B5689EE3E15B0956A6AEF /* Quick-tvOS-prefix.pch */, + 2CBC03C3431802F9F218104BDFB237F7 /* Quick-tvOS-umbrella.h */, + 717AD747CABD8F35DCEEBA3D35AB2453 /* Quick-tvOS.debug.xcconfig */, + 5D1725DC51D44B4115DEE79C60D671DC /* Quick-tvOS.release.xcconfig */, + ); + name = "Support Files"; + path = "../Target Support Files/Quick-iOS"; + sourceTree = "<group>"; + }; D6A88BD0DA29CF69491D75FAE7D5E84A /* Extensions */ = { isa = PBXGroup; children = ( @@ -2311,61 +2670,68 @@ path = ConsentViewController/Classes/Extensions; sourceTree = "<group>"; }; - DA25E4A550818107B135B2B7BB2302C1 /* Quick */ = { + E0873A6C53E21D171AE9DDED8072BC71 /* Support Files */ = { isa = PBXGroup; children = ( - A68EF4B7B65E0118195CC20531A723CD /* Behavior.swift */, - C361676F1D2E6E85585225A88E65A6EA /* Callsite.swift */, - 9FD4BAC1B7D5EBCD2813EA653873D9AE /* Closures.swift */, - EC5648DD57EC3710C4027051966059D7 /* DSL.swift */, - 87A145C0FF19C86AB46BB51380531403 /* ErrorUtility.swift */, - 2CB5FE427E1FEB62D5E337D1B21B16CF /* Example.swift */, - 463DFA009F6A01FE79F6A421F8DE2A55 /* ExampleGroup.swift */, - CE4675FF6E442A057A44B97E4AD4C2ED /* ExampleHooks.swift */, - B9309B3D3DC4E4D9D1C1B83FA9BE5E71 /* ExampleMetadata.swift */, - B610DD493924EDEE1B3C18FBEC80AED6 /* Filter.swift */, - 1DD5C09494A0D695B75387956AF712D3 /* HooksPhase.swift */, - 1D0138A00D62EB30F0FF7A192AE56EA4 /* NSBundle+CurrentTestBundle.swift */, - 95AC69A13C835766877D195F8C6A8681 /* QCKConfiguration.swift */, - 657DB3D6966A7638C95064AAAB838239 /* QCKDSL.h */, - 7013A63FA1E54FE0A2A7B2EE743C56B9 /* QCKDSL.m */, - DF6663A2B0494D4B93CA53648FB360FE /* Quick.h */, - FFD222F41B47B9AE9F517372D8FE632F /* QuickConfiguration.h */, - 88AFE97485D8C4B575EA389D539760EC /* QuickConfiguration.m */, - 8378F3DB5A7BDC2615F006E25D48E680 /* QuickConfiguration.swift */, - CA0CF9F033BC5C39CA8BBB0CE424DE0D /* QuickObjCRuntime.h */, - CEA61D929F4DA7AE9A5166EB4D5638E2 /* QuickSelectedTestSuiteBuilder.swift */, - F74EA5A204C3916B8A57AA03668BD130 /* QuickSpec.h */, - 8C00A0585C8B836042BAA63F055F1F25 /* QuickSpec.m */, - 374C8B57DA64E7F629363C55E43AC74C /* QuickSpecBase.h */, - D7EF3BA904D3779F38FACEDA34CA98DD /* QuickSpecBase.m */, - 21CA5E63D9D88D2F20006DB957F102C6 /* QuickTestObservation.swift */, - 8C58B46D4D28CDA3ED378DCE0CB4E975 /* QuickTestSuite.swift */, - 1CF79DB60C6674B067125E7851227316 /* String+C99ExtendedIdentifier.swift */, - AC56FD03C868E910C7C5CCD0FB2618DA /* SuiteHooks.swift */, - 9419D3A79BAF578F42DF4537F6B281BD /* URL+FileName.swift */, - 3471C7707707FBAD79099C9B57BD6843 /* World.swift */, - 06F6B74E9FCFB7B7E714506BC5B559FC /* World+DSL.swift */, - C5B54C4C31845E73420CBDBEC97B76BD /* XCTestSuite+QuickTestSuiteBuilder.m */, - 66ECA5FE185328C0F0D1CDC1A06D418F /* Support Files */, + 925E9581D16B3EC0C59F7FAE66E79D12 /* Nimble-iOS.modulemap */, + E9B17F21B1EB972CCA0ECA3E2D9067E2 /* Nimble-iOS-dummy.m */, + 15024E0436E62BED0C5FD20F29DDF1A4 /* Nimble-iOS-Info.plist */, + 7B86E6E82A4364E3929BB2B03A2EBFBD /* Nimble-iOS-prefix.pch */, + 0059947722F656B119FD60C97AC833F6 /* Nimble-iOS-umbrella.h */, + 40815068C100A6167D4D3C47E57756B1 /* Nimble-iOS.debug.xcconfig */, + D1A51BD19FF4F43299CFD85B8CB5BFC9 /* Nimble-iOS.release.xcconfig */, + E1A0AADCD274D67C7CA432AF116F108E /* Nimble-tvOS.modulemap */, + 3B953B8D624CEB234E8380E1D61EB7C5 /* Nimble-tvOS-dummy.m */, + CB04BE1AF8FE9BD398CF4B13EEE1B40D /* Nimble-tvOS-Info.plist */, + ADD65C72C2B58D39737E5EF34EC9E3B5 /* Nimble-tvOS-prefix.pch */, + 5D635DB9163CAD1427C26932646DACCE /* Nimble-tvOS-umbrella.h */, + 15D70F7A298CC42D2568987A442A3935 /* Nimble-tvOS.debug.xcconfig */, + 4EA6C625C79E315252C57908F8B8C681 /* Nimble-tvOS.release.xcconfig */, ); - name = Quick; - path = Quick; + name = "Support Files"; + path = "../Target Support Files/Nimble-iOS"; sourceTree = "<group>"; }; - E1392C40218ADBC7988440F0F370631D /* Support Files */ = { + E1CE1EAD2A82B84CCFDD5C121C6CC3F4 /* Quick */ = { isa = PBXGroup; children = ( - 1846B7AE8ACCC3C91FF234D7EB01FDDA /* JSONView.modulemap */, - 3886CCED3A5A4890B152FE672031DDF8 /* JSONView-dummy.m */, - 9F76BA146DAC54F5529A8040C26DFCEB /* JSONView-Info.plist */, - E9754AF5F277FBB1BB643FCBF23F3FC8 /* JSONView-prefix.pch */, - 733DADFBEC5CB266ABD81664448B1EAB /* JSONView-umbrella.h */, - 9E8387C3725354B66F5EB35A850E1F89 /* JSONView.debug.xcconfig */, - 397F0A4C22059A3F43C7F799FF127DC5 /* JSONView.release.xcconfig */, + 2F16564FBAA0831A0474BCEA8CEFC281 /* Behavior.swift */, + 9A0E3CD9E2006DAAB5710802CD11B6D7 /* Callsite.swift */, + E4BBB585B354A0FBE99C21B1C36D35A1 /* Closures.swift */, + B15ADC04FF459E84C6ABC2BDB65630B5 /* DSL.swift */, + 46FD5A5C89B78C89056BED3CC9CC1D74 /* ErrorUtility.swift */, + AFB25B07CCBB900612F3038AA46140FB /* Example.swift */, + E6299AFFC345696A42141091DCDB1341 /* ExampleGroup.swift */, + AC34A396EA216E294416AD4721B04981 /* ExampleHooks.swift */, + FB9663275D36F2DF8F24EE7DBC70A4F7 /* ExampleMetadata.swift */, + 0B7329FE8B6F03A482CB9D887F017505 /* Filter.swift */, + 827079B1C799620ADA70CFBA806FA7AA /* HooksPhase.swift */, + F28AC251F58EA3598F307B0408E60056 /* NSBundle+CurrentTestBundle.swift */, + 07138E598D41B9BE88401A889CECB6E1 /* QCKConfiguration.swift */, + A2951E938C866691A0A2B9D510DCC6B0 /* QCKDSL.h */, + EA0192695DA1B280F4BAF140ACD24C02 /* QCKDSL.m */, + 10FD40774BB0C4CD4661550DCF7B90F9 /* Quick.h */, + 5641AE647FA56F350066C84F00C50112 /* QuickConfiguration.h */, + 0BE089073D68EF0B27AEA02CF5701263 /* QuickConfiguration.m */, + 92321CEC968DCD4908350231D8D17509 /* QuickConfiguration.swift */, + 932965E644537AC076786ECEF9097623 /* QuickObjCRuntime.h */, + 06AF8C147B159EAFD671BEA2D92724E7 /* QuickSelectedTestSuiteBuilder.swift */, + C97CD2F577668AFD8F544447A6328493 /* QuickSpec.h */, + 2DFAFF577444917A6AE859D33710B94A /* QuickSpec.m */, + 4146F9ED6938E0E6704A42EFD6DD2A5F /* QuickSpecBase.h */, + 933A5B5638160E5921D63A4C3364E25F /* QuickSpecBase.m */, + 10D5605B91235BC3C8C2EBAC0ECBB279 /* QuickTestObservation.swift */, + 2E52D2EDA2417EA4BA098CEFF6FAFE64 /* QuickTestSuite.swift */, + AF9A2702875DD2CA1970105832580D39 /* String+C99ExtendedIdentifier.swift */, + 0A8915805A6E3A56ECCC93195CA0E17A /* SuiteHooks.swift */, + B925A01B46DC4576D5A7DCEDDB5DD6C6 /* URL+FileName.swift */, + CD9D36A3F5DA5E98DB86DF08477AE877 /* World.swift */, + 840B719545A6909C9264D7360E140E74 /* World+DSL.swift */, + 17F9CE199E7234100943A082F7090697 /* XCTestSuite+QuickTestSuiteBuilder.m */, + CF1E61A597E2BE0AF0BD66A34232D012 /* Support Files */, ); - name = "Support Files"; - path = "../Target Support Files/JSONView"; + name = Quick; + path = Quick; sourceTree = "<group>"; }; E2B9297694BAA5C7BB5D4A35B5D14156 /* ConsentViewController */ = { @@ -2410,94 +2776,91 @@ path = ../..; sourceTree = "<group>"; }; - F5712821DA0AC4A2202DB3C58D885A52 /* JSONView */ = { + E56E671D3A7B0425903309A49BF605B9 /* SwiftLint */ = { isa = PBXGroup; children = ( - 6FBC4A662E9EFEF6E8CDB970B1F295CB /* JSONCell.swift */, - 2D872D4A3AC93DADBCFA61C6D9A819B9 /* JSONTreeView.swift */, - ECFDA5278EFB29BA5CA131185F42CBBE /* JSONView.swift */, - E1392C40218ADBC7988440F0F370631D /* Support Files */, + 430FFAD590D757BF4128EF9184649384 /* Support Files */, ); - name = JSONView; - path = JSONView; + name = SwiftLint; + path = SwiftLint; sourceTree = "<group>"; }; - F8057F5EC2510F51851F31CAE69CD0AF /* Nimble */ = { + F060D937EBFB6C3CD5279D431AD760AD /* Nimble */ = { isa = PBXGroup; children = ( - 4DA121B8553B31DCE630855DD4FF6C5C /* AdapterProtocols.swift */, - 83D62145E2FC3D33DE0E684DCBF3A038 /* AllPass.swift */, - C0CBBCA9F35316A2FA939679E7E6B0D3 /* AssertionDispatcher.swift */, - 6E961139719C0CC7802E56059F585826 /* AssertionRecorder.swift */, - 9A92445A8DBCA3C6A4155D2C18EFAA5F /* Async.swift */, - C92514D638CA058C4E40501754C04C0C /* Await.swift */, - E24FA00E5B02151B00B67C3798B24EF5 /* BeAKindOf.swift */, - 4AEBE5CB1C04F3A1DCDEC88A37E76028 /* BeAnInstanceOf.swift */, - A0505E3B346A0D295815835F4D3B3473 /* BeCloseTo.swift */, - CFBFEAD23EBEFF35E562A1AE1AAD2980 /* BeEmpty.swift */, - B8DDFFFCCCF50BCA33E8F06F5C7CA4D2 /* BeginWith.swift */, - 63311F6C1B53E8AEC47ED07D4C720ADD /* BeginWithPrefix.swift */, - AA419EAEB778AA2B235EC76B0B4139C2 /* BeGreaterThan.swift */, - B0A29F22252E6E9E06E3F225186F5AE6 /* BeGreaterThanOrEqualTo.swift */, - 4D066C9E951AB3C32513BBB550D91150 /* BeIdenticalTo.swift */, - 17669560008D6CBAEFC1FBE590781773 /* BeLessThan.swift */, - 6BB0BCC9DC931FAEAB7784D9CF30E25E /* BeLessThanOrEqual.swift */, - 87FE69F89503F5D30CB44DD04BB17F70 /* BeLogical.swift */, - 411E307E334DC89DE91B5D80FB75C706 /* BeNil.swift */, - 8B64D56D24A95D102B5D9E7F8B2D0433 /* BeResult.swift */, - 4770059017338C3037F654914C58032E /* BeVoid.swift */, - CFC06F1F291F58D18CAE8F7A2119C974 /* BeWithin.swift */, - 141EE4AA5AC0E07BE1905547157BA6CD /* Contain.swift */, - 2F16F531369D23712F6B65C12BDCC6DD /* ContainElementSatisfying.swift */, - 1026291577A33C9542B3FABBE288A890 /* CwlBadInstructionException.swift */, - 5B21C29E14077EF9E53A94386656B78B /* CwlCatchBadInstruction.swift */, - 200F492CC3C1C8622293CBF849BC49E8 /* CwlCatchBadInstructionPosix.swift */, - 44B3C51C369D8A75EE35CAB29B305A16 /* CwlCatchException.h */, - 9BE29CEE8B166EE8EB1DE36439CC4F62 /* CwlCatchException.m */, - 1C0BBEBF8BE0324C551F3491513BE35C /* CwlCatchException.swift */, - FA405AC488A12FC40ECD7F0251F234C0 /* CwlDarwinDefinitions.swift */, - D33B61D2DB77284C43D27F8708BA7514 /* CwlMachBadInstructionHandler.h */, - 5FF2EA9F4A39CBF029477C1A037C2DF8 /* CwlMachBadInstructionHandler.m */, - 9C0605F46747350B35B62214F79792A1 /* DispatchTimeInterval.swift */, - 5EC253E1BE8C2EAFEEFD2B95F5196E92 /* DSL.h */, - 1BB896938F2BAC8395767D5FDE856920 /* DSL.m */, - 3C66651BBF6242B297BCE1AF00B89A12 /* DSL.swift */, - 96D79CB65150A43F4AC3FEED83CA7362 /* DSL+Wait.swift */, - D7A4B72C69599180D903A84A285859D4 /* ElementsEqual.swift */, - 2796304021F2B70AB43357F636F6CA93 /* EndWith.swift */, - 3E502E337C35FF38CB7A8AB9D3256133 /* Equal.swift */, - 340209A9B47B5483BBC6471331E6F1FF /* Equal+Tuple.swift */, - 21E20EA8A207C5E703782A30E1CCDC33 /* Errors.swift */, - 62A2DC7533D6F811A96F2FB5FD882F7D /* Expectation.swift */, - 5E1A0C8D588EF74F05959385D8228242 /* ExpectationMessage.swift */, - 2FBED7D1071AC5E9CE5157EF8D170AA4 /* Expression.swift */, - DEC26655C4E80451FF4C3DBA1199CE75 /* FailureMessage.swift */, - AC426A9D72F2B0F3506325D00A187126 /* HaveCount.swift */, - D73B214E01CD1CF83CA00150376D4E87 /* mach_excServer.c */, - 99F498F016DE4C8022FF34E5C97BA557 /* mach_excServer.h */, - 1D53A5045EA0D8E68631E597E29DB405 /* Match.swift */, - ED3A8BE10A678CBE0765D2186308FD4F /* MatcherProtocols.swift */, - FA70AB1FC72552C15535A35825491DB9 /* MatchError.swift */, - BDB550F932CBD189789910C9B6870BB9 /* Nimble.h */, - 8A57809F4D56926C8F1028B862349DCE /* NimbleEnvironment.swift */, - 95C27240FC9EE37EA1145B55C47A35A4 /* NimbleXCTestHandler.swift */, - 21B019815AFEA1B9A4FDC721C6E0B255 /* NMBExceptionCapture.h */, - 13EA52F01B9131D674F96129406F4835 /* NMBExceptionCapture.m */, - A0867CB1388EF6EF460CA64F798CA4D6 /* NMBExpectation.swift */, - 8E301C03A8E058837CE3DF645DFFB33E /* NMBStringify.h */, - F40DED4807355371F607A45E96E63C9B /* NMBStringify.m */, - 1E32FB7E94C073A25C13180045EAE1B8 /* PostNotification.swift */, - 8D9E8ACF78DB04B0135AB5510FB9EBFB /* Predicate.swift */, - 4E66AA5401D00FFB33E56F778C13ACBE /* RaisesException.swift */, - 0380FE7FAD6788E837DE5A0591BE8D2C /* SatisfyAllOf.swift */, - 5867AC771193408B1D7C4BCF4272C4E1 /* SatisfyAnyOf.swift */, - 27312D227A4B4D385E6534180A780625 /* SourceLocation.swift */, - A621FCC91C5F06F22FFC5F7B814811C5 /* Stringers.swift */, - 1631AD3252456E4420C52C0DF04D54E5 /* ThrowAssertion.swift */, - 77A48D3B91441E2740A9BFCEC337829E /* ThrowError.swift */, - 5DDAA996CFA91C3DBF06B7B0A60248D8 /* ToSucceed.swift */, - 3B03C4D03246191894B4C73115A5FC95 /* XCTestObservationCenter+Register.m */, - 5BB09CBC8C5C36CE54E18326894D0236 /* Support Files */, + 6779492234D4F962E2CF571B2C94019D /* AdapterProtocols.swift */, + BD3571F06BA6522D948405B220E90283 /* AllPass.swift */, + C8B7ECBC48D5A4C7558411E8764C9E1F /* AssertionDispatcher.swift */, + 4FD7D4A1D044FA2204A01761C94CF067 /* AssertionRecorder.swift */, + 03BB767417D1BC5296166C6D8CE24685 /* Async.swift */, + 8B97C385536ECA9485526486DC990ECF /* Await.swift */, + 17190541F56BBA8694F01E6811EE3421 /* BeAKindOf.swift */, + 25554D9FAA26AE20BF956E70CF34111D /* BeAnInstanceOf.swift */, + 9BD71BF64D33A5EE5A322826A6D0E381 /* BeCloseTo.swift */, + 51CEF68E4C3B5CF489641AF1F5B0FF6D /* BeEmpty.swift */, + 137E03F5404ED389DB217A87950DE3D4 /* BeginWith.swift */, + B8C11695EE5B193D1F0D8BF72B9C9AA7 /* BeginWithPrefix.swift */, + F17A64B69F9CAA574619498002BA3ACC /* BeGreaterThan.swift */, + D31606EA9B6F472B81F34078D7AC51CB /* BeGreaterThanOrEqualTo.swift */, + 0BF285887327E7FE6B84864165C52641 /* BeIdenticalTo.swift */, + 3459EB4E85FE56BAB2781890A10BA3BC /* BeLessThan.swift */, + F9AB079CF093527A4CFFAB09421335E5 /* BeLessThanOrEqual.swift */, + F27E7590E21F4CF0EF3F520B93B1FA63 /* BeLogical.swift */, + 80168F271651A604523035FD37B31496 /* BeNil.swift */, + A09FB9514C706BAC0D25E445FCF3BDCA /* BeResult.swift */, + 187BE1A69563332FBCC49B18DF193F85 /* BeVoid.swift */, + 9E108468363DC7CF9494FD4110912EF2 /* BeWithin.swift */, + 64B8B62FA761D8BEA52D7DEFA8EC55C6 /* Contain.swift */, + 0DCCB7E13844141792F26DA17E9F2A88 /* ContainElementSatisfying.swift */, + 4753479FB8DCD331A98162618B938BDC /* CwlBadInstructionException.swift */, + 8E63CD0945B9D178FF0CC2AF2751C72B /* CwlCatchBadInstruction.swift */, + 94F0D55887BBB48A5F70C73FE33701EF /* CwlCatchBadInstructionPosix.swift */, + DD783487C1DFFC517AF0E6DD261A5A09 /* CwlCatchException.h */, + DA8CF835B395E0A0C4CD245C5DC019AD /* CwlCatchException.m */, + BF234D7502CABD3ECCE3DB47C14619FE /* CwlCatchException.swift */, + F8E0156BBDCAA49BAAE07A1878819159 /* CwlDarwinDefinitions.swift */, + 42CBB759E4790435EC90368AFB4CFCF5 /* CwlMachBadInstructionHandler.h */, + A315A7B6ECBF785825BD78B7BB6D04FC /* CwlMachBadInstructionHandler.m */, + 878715BE17B7F8EEE0EE94835AE58C98 /* DispatchTimeInterval.swift */, + 70294F2D3496502D0176E56BD5A0E1D9 /* DSL.h */, + C51645FD8897485F1D69445B38DAE43C /* DSL.m */, + 65431F2B1B767C6E562F451F5E6624CC /* DSL.swift */, + DB8595FA58C64090133B1404C303988C /* DSL+Wait.swift */, + C376E206D0D66370BA9AB1F8832BD3B8 /* ElementsEqual.swift */, + 6B404CBE40EFC7C7BDE894D329EDD7C2 /* EndWith.swift */, + 03FB2C2EAA650057FDB80218C9538C18 /* Equal.swift */, + 1D5CC00FA31E003434C6D65DF8F3DA91 /* Equal+Tuple.swift */, + 50225E4C9D676A71008537AD2B84789E /* Errors.swift */, + 2250D5EFB0AB8081F75296DB53AFB6FD /* Expectation.swift */, + 9D0CC2596F659DEE896423741846BCDA /* ExpectationMessage.swift */, + 5B3A7F1CDBF86AAF8BC24D91BB329589 /* Expression.swift */, + 37A38F8E2410D3E9C3AC2CD42833BDBA /* FailureMessage.swift */, + AA7CFFF9CE15070521A2CA8C209A9889 /* HaveCount.swift */, + 1B83C1EF010747D15760FE6A52D72BE7 /* mach_excServer.c */, + 22D6C8EDA33C564DE94EEA2C5A9F0E49 /* mach_excServer.h */, + E797A7DB019FE3394A969E7B42A29D4B /* Match.swift */, + C1A772930289BCF3CAA8EA3D19487AA1 /* MatcherProtocols.swift */, + 770DD20F6C81CA75AD5242593462D0AB /* MatchError.swift */, + A62B616AE6A6F954362F28DD8D88366B /* Nimble.h */, + B4B9C691E324AE9E7F94E1561C96C4D8 /* NimbleEnvironment.swift */, + 22868D7C990287D519469FED4DA72B95 /* NimbleXCTestHandler.swift */, + 264E52F029884E3FDBAA8282ACAAEF3F /* NMBExceptionCapture.h */, + 53830D02039DE43B2FFBF8AF6FF4A78B /* NMBExceptionCapture.m */, + 473A7C3CEFD5E9479DB337765E09E0A7 /* NMBExpectation.swift */, + 904C94CF67C84BF6E4E596BFF070663F /* NMBStringify.h */, + 11860DB62CCE2A12727931490CF86F58 /* NMBStringify.m */, + 07909ED5D1C014D7B149EB7F691CBF93 /* PostNotification.swift */, + 28DB72A698D4BB26E79A8534A15FD073 /* Predicate.swift */, + E9D5368B55EA84908DB0B3619DA8A1F9 /* RaisesException.swift */, + FF9B524B32EBD31EBE91A65B1AEAE2B4 /* SatisfyAllOf.swift */, + 4B85932749565B4906CC95F83538C516 /* SatisfyAnyOf.swift */, + A0032D232FB89AF247FB539CA7C6F645 /* SourceLocation.swift */, + C14D9A75C6D0D148766A787E6DAEEEA2 /* Stringers.swift */, + 18F5B34976A38DE6F144DBC79B173B19 /* ThrowAssertion.swift */, + 6A21A8A668B97E7B42405AC8FFD20999 /* ThrowError.swift */, + 79D12FD1A71B7E99F4104E07B92F8758 /* ToSucceed.swift */, + CC4BF4A2CD5B5CB6EA8A7C9B0F662CD6 /* XCTestObservationCenter+Register.m */, + E0873A6C53E21D171AE9DDED8072BC71 /* Support Files */, ); name = Nimble; path = Nimble; @@ -2579,6 +2942,14 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 543BAD2D8EFF2ED5101ACC316617AFAF /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + BD2CD3F77641785F878E909173E28C5D /* Pods-NativePMExampleApp-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 59A0863F95222B52EE5F7461ACFA5FE2 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; @@ -2609,6 +2980,31 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 731DC328A71A96FF2080406028E8276A /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 45550EBD4674E087DFAAFD4F9F2F46CD /* buffer.h in Headers */, + 46F5F856DAD49C008AADA8781E7EAE84 /* chunk.h in Headers */, + 7A806B225AAE8411EE261682BBF3996E /* cmark.h in Headers */, + 2B127D0E1ABE8E97D8EB1AFBB1DB253D /* cmark_ctype.h in Headers */, + C3B36202AE9243914D147B22F7BFD908 /* cmark_export.h in Headers */, + F0E5F6D972060252E4454327F3C3E4C9 /* cmark_version.h in Headers */, + DC9E0A37ABBFF54A6529A46F174AD99C /* config.h in Headers */, + 74734224CA9E604FBE5C685B64F5EC82 /* Down.h in Headers */, + 74A5958C1894644B51F491675B53429B /* Down-umbrella.h in Headers */, + 0AF4F40E9DAD9E66E5EA2BF5A1C46773 /* houdini.h in Headers */, + FAAE69C89974ABBB0B3EC25ADBC1D529 /* inlines.h in Headers */, + ACAEA3E8A176A23B9977B2D069D0EB11 /* iterator.h in Headers */, + 22C481260572F7A6B893DE35E49D5B7D /* node.h in Headers */, + B8DD858B674ED60A8B6985C79A48DD6D /* parser.h in Headers */, + 3B832557CB7196E6318D9F84D1BE535C /* references.h in Headers */, + 2ABDB0B2FF7FB51B36B10105134686F5 /* render.h in Headers */, + A86519112C3B4220C82539A7416B3BD3 /* scanners.h in Headers */, + 5442E69F7884A02F684EE6359D31E1C3 /* utf8.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 9931E64D42DE2B166B32F4B4C3203971 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; @@ -2617,6 +3013,14 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 9ECC54765FD4179C279579E65487240F /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + B2374D5E5D21A5921C94F8420CA22854 /* ConsentViewController-tvOS-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; A3BF01E730ED346AEBA9FE566DCE9D1A /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; @@ -2630,14 +3034,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - AD4B9048FC98DBCDD172EC9D8BFBC6B2 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 1B24AD17763FEE16AC2A87D504BA554A /* ConsentViewController-tvOS-umbrella.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; C4369CA1ABA436A0EA915D9294690A8F /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; @@ -2685,11 +3081,11 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - F7338884310F7B46B17A0E66F7AA17D6 /* Headers */ = { + F9392719F52027958DF295E1DCF17770 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 1089CF083448B9BF75C396124983AAFD /* Pods-NativePMExampleApp-umbrella.h in Headers */, + 3C16AE323E394B78AE148637D4506E26 /* Pods-NativePMExampleAppUITests-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2701,14 +3097,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - FFFE823163DD2390C6BAB0F7B24E4C2B /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - D72C33D46E237AA38C24F41AB1B7C8EC /* Pods-NativePMExampleAppUITests-umbrella.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ @@ -2724,9 +3112,9 @@ buildRules = ( ); dependencies = ( - 79745D8073EF7FECBF0EE96F9741E267 /* PBXTargetDependency */, - 9B310260E3349FCF91440473D15639DF /* PBXTargetDependency */, - 9B6F31847AE228621509052C4E8C7FC9 /* PBXTargetDependency */, + 0C2775D2A92DA4781AE1874F672257AC /* PBXTargetDependency */, + 932C6EE4F3E99A335FFCD75BAA44FB75 /* PBXTargetDependency */, + 1F21EE3120C72649982C980F3A4B8273 /* PBXTargetDependency */, ); name = "Pods-AuthExample"; productName = Pods_AuthExample; @@ -2745,9 +3133,9 @@ buildRules = ( ); dependencies = ( - A750E072297F979B3BE8811E55FC6906 /* PBXTargetDependency */, - B700EB32D51EAF002BE5265D1A327322 /* PBXTargetDependency */, - 54CE178A5E7ACAB00ACF57C52FD6504D /* PBXTargetDependency */, + 97DAF803E875B618B323401C51B44D9E /* PBXTargetDependency */, + 2E5B4A8A181E061D85C7C630C57C1C20 /* PBXTargetDependency */, + 0B624ABC4A4FDEA3B0A82C1A83023FBD /* PBXTargetDependency */, ); name = "Pods-ObjC-ExampleAppUITests"; productName = Pods_ObjC_ExampleAppUITests; @@ -2784,9 +3172,9 @@ buildRules = ( ); dependencies = ( - 13BFF0E9B98C82223E39A9059A0F52A5 /* PBXTargetDependency */, - BAFC661D7430ABFECD4935092887ED1C /* PBXTargetDependency */, - B8DEEB5B76347ECF7A9D583318E24CBC /* PBXTargetDependency */, + D5CF96FBB8EEB6B02C07447B4EB428C1 /* PBXTargetDependency */, + 7FEDF075795C0396285992054945515D /* PBXTargetDependency */, + A15BABF1F1D13D4EDF6D05417B7CD454 /* PBXTargetDependency */, ); name = "Pods-SPGDPRExampleAppUITests"; productName = Pods_SPGDPRExampleAppUITests; @@ -2823,9 +3211,9 @@ buildRules = ( ); dependencies = ( - B343344DF7F5125CB5619CB5696BC4DB /* PBXTargetDependency */, - AF961868906395382420C10ACD1F694E /* PBXTargetDependency */, - 1EDB995AE859160D240B5B84FAEDE0EF /* PBXTargetDependency */, + 2EA12CAE186459633DD8E7658AA89512 /* PBXTargetDependency */, + 86964FB31ED3BAF54F5B11F7F6B9AD0E /* PBXTargetDependency */, + 6F8F68F7B0F06066ECDD1C25DF2096EE /* PBXTargetDependency */, ); name = "Pods-NativeMessageExample"; productName = Pods_NativeMessageExample; @@ -2844,10 +3232,10 @@ buildRules = ( ); dependencies = ( - E5CE891D5D0251A9FDC84B2440E1A796 /* PBXTargetDependency */, - 3A502215B436484ED80ED649DF2BD87A /* PBXTargetDependency */, - F7410F656BECC0695C0B3E789E718CC1 /* PBXTargetDependency */, - 8414054190B97D909B93B2CC86CF7E5B /* PBXTargetDependency */, + 32D3AD5F5A544BCDC748A212A334CF28 /* PBXTargetDependency */, + 1D4493F42CC1FD06F0031CB86C831354 /* PBXTargetDependency */, + 81B3F2DCA1C3CC05B5423067FBF2A532 /* PBXTargetDependency */, + 80BE4E77393CDC3F9E7574B410EE7CE1 /* PBXTargetDependency */, ); name = "Pods-ConsentViewController_Example"; productName = Pods_ConsentViewController_Example; @@ -2884,7 +3272,7 @@ buildRules = ( ); dependencies = ( - D216D6DB8DE5404E4EE98759047BA82A /* PBXTargetDependency */, + BD41884FA275F8C890FF5F982C622C1C /* PBXTargetDependency */, ); name = Wormholy; productName = Wormholy; @@ -2893,11 +3281,11 @@ }; 5D0718052BFEE502C9D9BEC44BDCFA76 /* ConsentViewController-tvOS-ConsentViewController */ = { isa = PBXNativeTarget; - buildConfigurationList = 84491A3C019073BB3D5B392B775380F3 /* Build configuration list for PBXNativeTarget "ConsentViewController-tvOS-ConsentViewController" */; + buildConfigurationList = 10275298945DA3F5189C597D009E75E5 /* Build configuration list for PBXNativeTarget "ConsentViewController-tvOS-ConsentViewController" */; buildPhases = ( - 6CD0D19E1BE3E5FBE1AD0F4091B9C706 /* Sources */, - 30308A984943461D6D740825C5F2A127 /* Frameworks */, - 7A75CD8CF3A27D68C1CDD50576966EDE /* Resources */, + DF2230D4562327FD14AF304960EDE66F /* Sources */, + A87924351C347C5CBDEC7E0A283EC094 /* Frameworks */, + 9D75ECF501D584341E1C66067F7AAF0D /* Resources */, ); buildRules = ( ); @@ -2920,9 +3308,9 @@ buildRules = ( ); dependencies = ( - 4C7535CE2144F5C133B2CF716D41F15C /* PBXTargetDependency */, - 2C81C0FF9B22598C6592CBE538788359 /* PBXTargetDependency */, - AFFFB6F096B66724F1A4D22466A53E68 /* PBXTargetDependency */, + 04269B87EFAD2B360F41CDE5079FB27D /* PBXTargetDependency */, + 870E5DF021216DB5FC0F2954F5188D4D /* PBXTargetDependency */, + 478EE9F28228B6708AAA1734AC02D8CD /* PBXTargetDependency */, ); name = "Pods-SourcePointMetaApp"; productName = Pods_SourcePointMetaApp; @@ -2941,7 +3329,7 @@ buildRules = ( ); dependencies = ( - D7BFEFC269CBEDD76AD52F7563455963 /* PBXTargetDependency */, + 63C844E17105F464B498FE58D90B8EC1 /* PBXTargetDependency */, ); name = "ConsentViewController-iOS"; productName = ConsentViewController; @@ -2968,19 +3356,20 @@ }; 8FD9E971155D1AC7805AA23C6E69A5E6 /* Pods-NativePMExampleAppUITests */ = { isa = PBXNativeTarget; - buildConfigurationList = 063E3C5A270A37E751F48F50F5CCAEFE /* Build configuration list for PBXNativeTarget "Pods-NativePMExampleAppUITests" */; + buildConfigurationList = BC76FF67FC62C9C3FDEB937EA8CF06E5 /* Build configuration list for PBXNativeTarget "Pods-NativePMExampleAppUITests" */; buildPhases = ( - FFFE823163DD2390C6BAB0F7B24E4C2B /* Headers */, - 1A71D8A6F33523D6645B678C1F8CE2F4 /* Sources */, - B3A082C368EF471E13ACE4F98043A1FB /* Frameworks */, - 0957AE4426A6FB784D1892D0D1AEF0BB /* Resources */, + F9392719F52027958DF295E1DCF17770 /* Headers */, + FF76FD7FEE97F2FF454ECBBD002AC9C7 /* Sources */, + 15BA4178FBD100D55EE4160BBDA3D63E /* Frameworks */, + C30570541DFC6B9FED44750E0E0D5A06 /* Resources */, ); buildRules = ( ); dependencies = ( - D03F4CD9A63780B72F665A2F008494D4 /* PBXTargetDependency */, - 8DAE6006127E43B35DD8B66A0F7A5C5D /* PBXTargetDependency */, - A7D571A06E83603549BB9951B4BB769E /* PBXTargetDependency */, + BB366EDAC29D23E79D2799B70FEEC876 /* PBXTargetDependency */, + FC06784645A7948ED1ED6865E33ECD6D /* PBXTargetDependency */, + D99A3B2EDF0AAF0F6522447E6D72DA6F /* PBXTargetDependency */, + 55B4074C73D7D8104F351AE028BF545C /* PBXTargetDependency */, ); name = "Pods-NativePMExampleAppUITests"; productName = Pods_NativePMExampleAppUITests; @@ -2989,11 +3378,11 @@ }; 93CEC7FFB57A497DE49471C5D9517C13 /* Wormholy-Wormholy */ = { isa = PBXNativeTarget; - buildConfigurationList = E63D9917C6EF845BEC92865C1B2FAF8E /* Build configuration list for PBXNativeTarget "Wormholy-Wormholy" */; + buildConfigurationList = 6F1C03DBEBD03FAF1A1860A90B0F5C46 /* Build configuration list for PBXNativeTarget "Wormholy-Wormholy" */; buildPhases = ( - D17460AA970C4DC0B7FE74F5E93023E6 /* Sources */, - 367920D5DB680006CB5D12F04ECAE88C /* Frameworks */, - 99FB203216719B22C7EE566AC7305C92 /* Resources */, + 2BC75E8BE4411B12DF42C1493EF38CB2 /* Sources */, + DA0E56E6C442825AF89E12EC8F8F6421 /* Frameworks */, + B388B334E168CABB814655BE55AC8DB7 /* Resources */, ); buildRules = ( ); @@ -3006,18 +3395,19 @@ }; 93E6BD3365D71609E2794732B2B09566 /* Pods-NativePMExampleApp */ = { isa = PBXNativeTarget; - buildConfigurationList = E9903ECC83659D287F9D84C5CC449921 /* Build configuration list for PBXNativeTarget "Pods-NativePMExampleApp" */; + buildConfigurationList = D0586DB7EA80A14145DF9B811442BC26 /* Build configuration list for PBXNativeTarget "Pods-NativePMExampleApp" */; buildPhases = ( - F7338884310F7B46B17A0E66F7AA17D6 /* Headers */, - 81D744BA81882BC4E7AD6421E81FF4F0 /* Sources */, - 5276ED18C4B6216C72E1DC637E684067 /* Frameworks */, - 4F03A6D14D453B6A8AF0B481A9626B6D /* Resources */, + 543BAD2D8EFF2ED5101ACC316617AFAF /* Headers */, + 1EAC666E9962B105733A9D07953390FB /* Sources */, + 1EFCC8F1892A0271D043247A65F2E69E /* Frameworks */, + 838D066E2E824B6A6D33580EDB111E2A /* Resources */, ); buildRules = ( ); dependencies = ( - 22FC638A42F561B732CFBB73CA3394F3 /* PBXTargetDependency */, - C67A5935FFEB7CCEA87435CD07D30DF3 /* PBXTargetDependency */, + 28DBE8541D2317EA159081CD3DBF2C0D /* PBXTargetDependency */, + 19680E6CFA2C394DE111D00577BE0820 /* PBXTargetDependency */, + FCB3A3D608DD834289F72E085E9D31B4 /* PBXTargetDependency */, ); name = "Pods-NativePMExampleApp"; productName = Pods_NativePMExampleApp; @@ -3036,9 +3426,9 @@ buildRules = ( ); dependencies = ( - 6F632ED4DA7922E53A7B40059ADEBEB1 /* PBXTargetDependency */, - F666857C3290A88B02B470AB6AA9118E /* PBXTargetDependency */, - 828A95F4AC7D1985C3C22F4F8005C83D /* PBXTargetDependency */, + 5648A7CE4AF74B9D1F51B13B52E4C40B /* PBXTargetDependency */, + 8D1A5C4E0A3F908E4DEE0467E442AA3F /* PBXTargetDependency */, + C64DD27F6F7DB09EDDC5E3C00627E718 /* PBXTargetDependency */, ); name = "Pods-NativeMessageExampleUITests"; productName = Pods_NativeMessageExampleUITests; @@ -3047,17 +3437,18 @@ }; 94DAD332BFFC672BBE92726504A716F8 /* ConsentViewController-tvOS */ = { isa = PBXNativeTarget; - buildConfigurationList = 5233CD6BA4EA487C95ADC0774AC270C6 /* Build configuration list for PBXNativeTarget "ConsentViewController-tvOS" */; + buildConfigurationList = 7B0F76B1C06EA56DDBE87A0EE81F361F /* Build configuration list for PBXNativeTarget "ConsentViewController-tvOS" */; buildPhases = ( - AD4B9048FC98DBCDD172EC9D8BFBC6B2 /* Headers */, - 2997FDB78D1BE0AC7340FEE912A5AD1B /* Sources */, - ED72CD8D4CA2920D353C4C984378F735 /* Frameworks */, - C9F0387CBE212A02EE7407A0B4A32E4B /* Resources */, + 9ECC54765FD4179C279579E65487240F /* Headers */, + CF3DE862D2EA3D36AA1F50E6D6B62A8E /* Sources */, + 67DA03B561D59BC8BB102AAB0CE4D00F /* Frameworks */, + E06A084D4182752EA7E4AC6EF6552770 /* Resources */, ); buildRules = ( ); dependencies = ( - 1EB0A20D01EA62D3923460EF738237EE /* PBXTargetDependency */, + CADDBD09B328BEA8D1FF019F24FA290D /* PBXTargetDependency */, + 566557F1EA0947BA1825CBF4B9356187 /* PBXTargetDependency */, ); name = "ConsentViewController-tvOS"; productName = ConsentViewController; @@ -3082,6 +3473,24 @@ productReference = 0D68F2DD4656E2DC0F28ED037671461F /* Nimble-tvOS */; productType = "com.apple.product-type.framework"; }; + B4575FF01775E963E58050542C9A4E7A /* Down */ = { + isa = PBXNativeTarget; + buildConfigurationList = 8BC7EBA66E56F008F3EB75205DC1B174 /* Build configuration list for PBXNativeTarget "Down" */; + buildPhases = ( + 731DC328A71A96FF2080406028E8276A /* Headers */, + 35CDB213C4B34078453EFA89FF0ED7DE /* Sources */, + FEABD0648F997E5252B0BCF7336B5785 /* Frameworks */, + 02F6542DE473EC192E78EBE4705139B0 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Down; + productName = Down; + productReference = 4C90E8F3F21B7688E1FB09920322D768 /* Down */; + productType = "com.apple.product-type.framework"; + }; B490E7485944099E16C9CBD79119D1D4 /* IQKeyboardManagerSwift */ = { isa = PBXNativeTarget; buildConfigurationList = 42F76AA8E84D32E2DED70BBA35321CB1 /* Build configuration list for PBXNativeTarget "IQKeyboardManagerSwift" */; @@ -3112,8 +3521,8 @@ buildRules = ( ); dependencies = ( - 2E6C201E9FCAD373D29706313A012888 /* PBXTargetDependency */, - 3D6BA932E8C74710DAE115EA03876526 /* PBXTargetDependency */, + C5A3BF08B4C630204BEACDCED30B845C /* PBXTargetDependency */, + B21F9D9EC136A9E272F6AA5B83EC14CC /* PBXTargetDependency */, ); name = "Pods-ObjC-ExampleApp"; productName = Pods_ObjC_ExampleApp; @@ -3132,9 +3541,9 @@ buildRules = ( ); dependencies = ( - D7A79E0B6B8CDFA76A604DD98E940E61 /* PBXTargetDependency */, - 55F8A820F7D117682FA9EA9627DE4077 /* PBXTargetDependency */, - 296F265478017C436354F41757FC25C6 /* PBXTargetDependency */, + A97A9AA65991B5F0A0F71F55FB6733DF /* PBXTargetDependency */, + EDC0180C3FCD79E4D2C2FCF775D668C5 /* PBXTargetDependency */, + 631233125ED23B169DE339F9731C158E /* PBXTargetDependency */, ); name = "Pods-AuthExampleUITests"; productName = Pods_AuthExampleUITests; @@ -3143,11 +3552,11 @@ }; F9B2C41D8F3FCEB2256091CF2667D600 /* ConsentViewController-iOS-ConsentViewController */ = { isa = PBXNativeTarget; - buildConfigurationList = D5CCDDCFF1C3B171F67DE788B61C1E27 /* Build configuration list for PBXNativeTarget "ConsentViewController-iOS-ConsentViewController" */; + buildConfigurationList = A33A563DC7AF034BA028761292BFC81C /* Build configuration list for PBXNativeTarget "ConsentViewController-iOS-ConsentViewController" */; buildPhases = ( - 2EBE720369317E1475BEE8FEE168B7AB /* Sources */, - EDAE739CD0E3BFC0074B49FCC58A004D /* Frameworks */, - 080CD30DE46C38CAFD0D879ECAF5ABAA /* Resources */, + A6F61728E84FE04E15A54122796E67B7 /* Sources */, + 02AC071D4986C98ADA545F936B6829F5 /* Frameworks */, + 9F5A22F936DCBA3014B7D970AF897D7A /* Resources */, ); buildRules = ( ); @@ -3170,9 +3579,9 @@ buildRules = ( ); dependencies = ( - 67CA27F185E2F00474C45C80530EDDD4 /* PBXTargetDependency */, - CBD7C30F6CEDD9DCD53196B99D29573A /* PBXTargetDependency */, - A7036A444580D6E59A58CB95D9288934 /* PBXTargetDependency */, + 1FDF1AECF403722A2CC25C632DF816AF /* PBXTargetDependency */, + 39DFEA2FBD7422775A4F34E30590F7F9 /* PBXTargetDependency */, + 6C255CF052413AA6E1491E4CFB64A0CF /* PBXTargetDependency */, ); name = "Pods-SourcePointMetaAppUITests"; productName = Pods_SourcePointMetaAppUITests; @@ -3191,9 +3600,9 @@ buildRules = ( ); dependencies = ( - FEF5DD8345FA9C5DD160C77E0BADEB94 /* PBXTargetDependency */, - 0B557B1639F28B8B95BFE3EDDCF2A44D /* PBXTargetDependency */, - 8068E879A56E12E2A41F5DCAF46BD446 /* PBXTargetDependency */, + F9947D428575E476A10231401C76891A /* PBXTargetDependency */, + 36F5149B717B10A088EBB2E6D4F2EA32 /* PBXTargetDependency */, + D1EF4181D6B5396AA9015FEE185B568C /* PBXTargetDependency */, ); name = "Pods-ConsentViewController_ExampleTests"; productName = Pods_ConsentViewController_ExampleTests; @@ -3218,7 +3627,7 @@ en, ); mainGroup = CF1408CF629C7361332E53B88F7BD30C; - productRefGroup = C8E250BB2547EDF0EA9FFC222489480B /* Products */; + productRefGroup = 285F8EF3008EED7E49D497A676875543 /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( @@ -3226,6 +3635,7 @@ F9B2C41D8F3FCEB2256091CF2667D600 /* ConsentViewController-iOS-ConsentViewController */, 94DAD332BFFC672BBE92726504A716F8 /* ConsentViewController-tvOS */, 5D0718052BFEE502C9D9BEC44BDCFA76 /* ConsentViewController-tvOS-ConsentViewController */, + B4575FF01775E963E58050542C9A4E7A /* Down */, B490E7485944099E16C9CBD79119D1D4 /* IQKeyboardManagerSwift */, 2450D89327C2F3947256DE8768B4B9B9 /* JSONView */, 3AAFED87F58BAA2AC3177A35C2CF5B23 /* Nimble-iOS */, @@ -3268,21 +3678,7 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 080CD30DE46C38CAFD0D879ECAF5ABAA /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 0B1E77925BE928223656D5C9779FAD34 /* Barcode.png in Resources */, - 7A6907EB98B70430924DB7C421763B83 /* images in Resources */, - A23574519269DEE91C9DEB8D9CEA59CA /* javascript in Resources */, - 4CC2A6FB9B5D1937EAE38FF3677F819C /* jest.config.json in Resources */, - FD5A091354D03191AC8E62281DC757D6 /* SP_Icon.png in Resources */, - 104279DA2FF51B93B647E2F5BB4CA9EE /* SPJSReceiver.js in Resources */, - 5634858F92D981FBEA4B8FB2A225C73C /* SPJSReceiver.spec.js in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 0957AE4426A6FB784D1892D0D1AEF0BB /* Resources */ = { + 02F6542DE473EC192E78EBE4705139B0 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( @@ -3324,86 +3720,88 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 4F03A6D14D453B6A8AF0B481A9626B6D /* Resources */ = { + 546DF9D511D3C110BEC0259ECCE4DFC3 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - 546DF9D511D3C110BEC0259ECCE4DFC3 /* Resources */ = { + 5BB3DB61628775ED8CE643DA0A531A0C /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - 5BB3DB61628775ED8CE643DA0A531A0C /* Resources */ = { + 6965E2DD1AB4A5F9EFCFC2CA8778A066 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - 6965E2DD1AB4A5F9EFCFC2CA8778A066 /* Resources */ = { + 7D1DF32B3F4C004C090533F0C3B79979 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - 7A75CD8CF3A27D68C1CDD50576966EDE /* Resources */ = { + 838D066E2E824B6A6D33580EDB111E2A /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 4E47BB1D648DE66A0BB3A3350A78F4F1 /* Barcode.png in Resources */, - F75A0B63D29B86F43185A84351BAAB84 /* images in Resources */, - CFA4A105B947A132D1ECD7165A427DD1 /* javascript in Resources */, - 29B4BE87B1D846D5259E22C6274650F7 /* jest.config.json in Resources */, - 50AD7FAF139A67A2D2E2778B90CD988B /* SP_Icon.png in Resources */, - 7E08D36D57B0ADDAD0BCFEECB92A6F40 /* SPJSReceiver.js in Resources */, - C7AEAD070E6500727EF4FA342ABD2F7C /* SPJSReceiver.spec.js in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 7D1DF32B3F4C004C090533F0C3B79979 /* Resources */ = { + 84A6362E561756EA5B196773778C700B /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - 84A6362E561756EA5B196773778C700B /* Resources */ = { + 9BDCFC4F0A5DBB4FF94EDBE487DB6C3B /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + A4C9EB97F20B7C24E713C0050829D6E2 /* Wormholy-Wormholy in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 99FB203216719B22C7EE566AC7305C92 /* Resources */ = { + 9D72F6F5092D73BF789E2046F6734DF6 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 5943EC4F48556922F7D13A4B15E23791 /* ActionableTableViewCell.xib in Resources */, - 0570C493972198FFB80C3E50F5D41FEA /* Flow.storyboard in Resources */, - 417DDBC986C3C6F2ED9D7340691114FA /* RequestCell.xib in Resources */, - 744A16CCBBB07C6DFAAC5B199956F87A /* RequestTitleSectionView.xib in Resources */, - 9DE88C5F07FF8323AE846031286BF3EA /* TextTableViewCell.xib in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 9BDCFC4F0A5DBB4FF94EDBE487DB6C3B /* Resources */ = { + 9D75ECF501D584341E1C66067F7AAF0D /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - A4C9EB97F20B7C24E713C0050829D6E2 /* Wormholy-Wormholy in Resources */, + BDA53947915589E7947858BE0EB99DED /* Barcode.png in Resources */, + 3209828CCE65B5E0970E31E73B6E9024 /* images in Resources */, + D99A4D45B0AC431D91D00D7D70E3F63C /* javascript in Resources */, + 712FE90B581FDBC1437F4FBBA5F4F221 /* jest.config.json in Resources */, + DA73905A4DCD32168FCA02B36B313844 /* SP_Icon.png in Resources */, + CAB48FEA45125084851EFDF46C2A53AA /* SPJSReceiver.js in Resources */, + 5BF302777FEE61C4A372ACE8052BB771 /* SPJSReceiver.spec.js in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 9D72F6F5092D73BF789E2046F6734DF6 /* Resources */ = { + 9F5A22F936DCBA3014B7D970AF897D7A /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 6839576A0CA47ADDF73C9A831E3BEA23 /* Barcode.png in Resources */, + 38A0F67E25F92077FFD2F118FB7709EA /* images in Resources */, + 12F0F5521B25700EFFB0D9D2499B2160 /* javascript in Resources */, + 33FDAF015EFA45D32A06EC72CA88C7B5 /* jest.config.json in Resources */, + 4EC56CB51B1323FE073B0A0E6E567F5D /* SP_Icon.png in Resources */, + A52208F6DDD149CE3C60E9AFC48C4DE5 /* SPJSReceiver.js in Resources */, + 1AB51B2AADC1DF77E4834A9A1A42889E /* SPJSReceiver.spec.js in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -3427,6 +3825,18 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + B388B334E168CABB814655BE55AC8DB7 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 846E3331107918C6E9AD404CC216F8C3 /* ActionableTableViewCell.xib in Resources */, + D6CEC8526AB65D6A84D9BE803421A8B6 /* Flow.storyboard in Resources */, + 8F4C3AE1E928F66BA5374FA787702AC6 /* RequestCell.xib in Resources */, + 262362236D58E22F7EA08A23D3D3DBC4 /* RequestTitleSectionView.xib in Resources */, + 9D0119E8BE858E36B99187ADC40444D4 /* TextTableViewCell.xib in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; B44461313E64A3CFB2461078380358D8 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -3434,23 +3844,17 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - C35D41FD9AAD97B1563146157A8E4377 /* Resources */ = { + C30570541DFC6B9FED44750E0E0D5A06 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - C9F0387CBE212A02EE7407A0B4A32E4B /* Resources */ = { + C35D41FD9AAD97B1563146157A8E4377 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - F3DD4888DB593CB94D4A83566C9062D3 /* Barcode.png in Resources */, - 934872926CBD2E122FF0789E93C7FFDA /* ConsentViewController-tvOS-ConsentViewController in Resources */, - 56667797068310AACD8427FF0C049766 /* jest.config.json in Resources */, - 8A404515412BA5107145650F6EF55268 /* SP_Icon.png in Resources */, - 4FCC48948A8ABE9B7454E509666837F1 /* SPJSReceiver.js in Resources */, - 874201AA12A3610164AE04AE19E54A21 /* SPJSReceiver.spec.js in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -3461,14 +3865,27 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + E06A084D4182752EA7E4AC6EF6552770 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + FE46A1DC05CED0DA92B3DF83E295F1C9 /* Barcode.png in Resources */, + 0E40CF3EB7E52BCCE5C41C9A347C5D64 /* ConsentViewController-tvOS-ConsentViewController in Resources */, + B43D72B7F6A6F21BD8AA882DF9B9C36F /* jest.config.json in Resources */, + EA343E2710935ECF04828D2DCAD7A979 /* SP_Icon.png in Resources */, + 1CB7BF22EA0AA3A24FF4285775ADBAE0 /* SPJSReceiver.js in Resources */, + F3234DE408387E43BD1E1702015B154E /* SPJSReceiver.spec.js in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - 1A71D8A6F33523D6645B678C1F8CE2F4 /* Sources */ = { + 1EAC666E9962B105733A9D07953390FB /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - E88179ADB9C542619C12C62A6680D846 /* Pods-NativePMExampleAppUITests-dummy.m in Sources */, + 2B45CC6028262EDFC605F642E095F886 /* Pods-NativePMExampleApp-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -3483,111 +3900,7 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 2997FDB78D1BE0AC7340FEE912A5AD1B /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - CB9A16647912C296E6B40FDB28A50B85 /* AddOrDeleteCustomConsentResponse.swift in Sources */, - 603C8E76A3B6D7EBE2FF64A1B0A9C316 /* Bundle+Framework.swift in Sources */, - 43C034ABF62D3288A97060938722F8FF /* CCPAPMConsentSnapshot.swift in Sources */, - C71DB65A254234374AE7E05391DC7DED /* ChoiceAllResponse.swift in Sources */, - 50A0496078AD88960AF232777D740331 /* ChoiceRequests.swift in Sources */, - ECB0CDE27886CAF7E059A1BB4012A260 /* ChoiceResponses.swift in Sources */, - 302A159A5FFC8FA2AC5C265186A8E6AA /* Collection.swift in Sources */, - B5FC77D98DF2875C33DF026EE7BD19FB /* ConnectivityManager.swift in Sources */, - 1AC8481701E9F661C8BA0693694E8EDF /* ConsentStatus.swift in Sources */, - AEEB03D34DE3E18516D1FA1329A06A2C /* ConsentStatusMetadata.swift in Sources */, - 8E620FC4313A5A2D8A73417C0B9F000F /* ConsentStatusResponse.swift in Sources */, - EE00C9DC4BFDF6407BA67F1853A5D6ED /* ConsentViewController-tvOS-dummy.m in Sources */, - 7DCBE5A0D567A42E6B98EF7D84F54D28 /* Constants.swift in Sources */, - EFF392B76EAF8F985D894CB0F4128DED /* CustomConsentRequest.swift in Sources */, - F1BE2628E749D1318776ECEA2D68EF75 /* DeleteCustomConsentRequest.swift in Sources */, - 7FD4943BB64CF476DFD95D1CAEF8BCE4 /* ErrorMetricsRequest.swift in Sources */, - 14FA6C35B14B8EF45919AB050E9524F8 /* GDPRPMConsentSnapshot.swift in Sources */, - 5B246D99FEC5DC2B98608CB947FFD794 /* GDPRPMPayload.swift in Sources */, - AF73877606AB4589DF06DEDA97714FDD /* GDPRPrivacyManagerViewResponse.swift in Sources */, - 41434FD25439032FB1D87805A509C1CE /* IDFAStatusReportRequest.swift in Sources */, - 489F8A0DEEB3104E88D94946958AD257 /* IncludeData.swift in Sources */, - DB707AE7CA67558EABFEB45D98615430 /* LongButtonViewCell.swift in Sources */, - BE6E109C988104FF6DF43463870569F6 /* LongButtonViewCell.xib in Sources */, - 6E4A1AFC285A8C7AE226F45083355E1A /* MessageRequest.swift in Sources */, - 52775FCCD0C7312EFB69C8CD45E32A7C /* MessagesRequest.swift in Sources */, - BA372FEE4205BB5BD0DDD58A455E4BF8 /* MessagesResponse.swift in Sources */, - C9DACF78C9601FB2D81BCB6A35BBA3D5 /* MetaDataRequestResponse.swift in Sources */, - E55875C14717E8840E014070162A4C2D /* NSObjectExtensions.swift in Sources */, - 727F8A79427F37612ED0A24BEFF141C7 /* OSLogger.swift in Sources */, - 729E642502A90E0BA28A457D21BA6723 /* PMCategoryManager.swift in Sources */, - 3FC353C7A045973FC40D8E559866E08A /* PMVendorManager.swift in Sources */, - 5AB14ABEA4BF7390AA3651591F846E04 /* PrivacyManagerViewData.swift in Sources */, - A72F14955B304037D206E4E60D46232C /* PvDataRequestResponse.swift in Sources */, - 52AB0C99279CF7A8AA084E0B8E86E119 /* QueryParamEncodableProtocol.swift in Sources */, - ABA7B297CDB22160450724977A8C0824 /* SimpleClient.swift in Sources */, - 8E2390711B86169F286A629991AC9A8B /* SourcePointClient.swift in Sources */, - A89660C8F734CC768F5E36FAF366BD97 /* SourcepointClientCoordinator.swift in Sources */, - 4B9E8EEF4D2F00E233D9A32332BF0337 /* SPAction.swift in Sources */, - D8345116E5FAB3A02887598E1BC36A9B /* SPAppleTVButton.swift in Sources */, - C9045C7228C17BCBC6BC96961CA4C2B4 /* SPCampaignEnv.swift in Sources */, - 413260E62885EA8DFE56A3888FCD0C9E /* SPCampaigns.swift in Sources */, - 6A099583BC473DB8EC4D62038C057CCF /* SPCampaignType.swift in Sources */, - 9C5A6FE3D8F04EBBCD6E45CBBC5B7321 /* SPCCPACategoryDetailsViewController.swift in Sources */, - 66B8B2D5EB06FEEA8B1D2ACA4B92E32F /* SPCCPACategoryDetailsViewController.xib in Sources */, - 0239FBA798E3D1A387DAA25A1FB8E515 /* SPCCPAConsent.swift in Sources */, - 1EB7D0601BAF65E147D7726317F0466F /* SPCCPAManagePreferenceViewController.swift in Sources */, - 195106E65A0BC630358079B241E47055 /* SPCCPAManagePreferenceViewController.xib in Sources */, - 2B857FA55F67CECEE7221473C5238A66 /* SPCCPANativePrivacyManagerViewController.swift in Sources */, - 3DF4103C4414C37E64CA1849D5DB3F03 /* SPCCPANativePrivacyManagerViewController.xib in Sources */, - 5DBC721DD5D131F5241ECDC72AFACCC5 /* SPCCPAPartnersViewController.swift in Sources */, - 9C993D3671A9824B1586CE129956B546 /* SPCCPAPartnersViewController.xib in Sources */, - 6EAC4914718808E3F1E79C6B9908E447 /* SPCCPAVendorDetailsViewController.swift in Sources */, - E96A594972D64778CF7F87836C0E26B4 /* SPCCPAVendorDetailsViewController.xib in Sources */, - 63B3348C2C4F1056501E4735E71A2F08 /* SPConsentManager.swift in Sources */, - AFD94E9BDA9A250455ED7DD509CCAF4B /* SPCustomViewController.swift in Sources */, - 4C776F70742D9DAAF4D5C24AB053815C /* SPCustomViewController.xib in Sources */, - 131106AA140B896CDA232F30C4834ADD /* SPDateCreated.swift in Sources */, - C084C806513BE991DDB2D909B0731D18 /* SPDelegate.swift in Sources */, - 0D37A1641AE660FF9A72CBCB2A743CFD /* SPDeviceManager.swift in Sources */, - A8E89A5735557B18A969BC58B510399E /* SPError.swift in Sources */, - 63D4D4EA004E705C0F20A803B3881ABB /* SPFocusableTextView.swift in Sources */, - F1054CE82C94E44505663B1668577B79 /* SPGDPRCategoryDetailsViewController.swift in Sources */, - 8886E000A45162B556804E76F6C4C0FC /* SPGDPRCategoryDetailsViewController.xib in Sources */, - DB55C8DADC70812D12B91E5C3ED8B622 /* SPGDPRConsent.swift in Sources */, - EC169237EC2B7BFF33AE5986AFA234B8 /* SPGDPRManagePreferenceViewController.swift in Sources */, - 16D7FA25FD7418ADC36EE32D562B39D3 /* SPGDPRManagePreferenceViewController.xib in Sources */, - B174B5E9CC3A88689AA1023346EE2311 /* SPGDPRNativePrivacyManagerViewController.swift in Sources */, - E17A128DCEE0F0CCF2FEF240CF9167F1 /* SPGDPRNativePrivacyManagerViewController.xib in Sources */, - 6F022CE3B443E6C912737FDC57C6E310 /* SPGDPRPartnersViewController.swift in Sources */, - 8C124C58340E9320FB816DB391385C60 /* SPGDPRPartnersViewController.xib in Sources */, - 30A4245B306BF77D5EABEEC706F03A0C /* SPGDPRVendorDetailsViewController.swift in Sources */, - 3F1B4420D6DB10088BD098D804B48C01 /* SPGDPRVendorDetailsViewController.xib in Sources */, - 24B0464866453DF7E179C8A4AC360202 /* SPIDFAStatus.swift in Sources */, - 76307308F1042B9E21EE47FC16BA1BB9 /* SPJson.swift in Sources */, - A50B18D48497832C495F4C72CE528C89 /* SPLocalStorage.swift in Sources */, - 488398C4489C93FA76B4B0A09667866E /* SPMessageLanguage.swift in Sources */, - D2F18E06A4AE33C56EA3E17F7D7D254E /* SPMessageUIDelegate.swift in Sources */, - 0466EBC9619714A963EA1A5240DBA85E /* SPMessageViewController.swift in Sources */, - D28626D713D7C8B2B6303BB746CD670B /* SPNativeMessage.swift in Sources */, - 6A9CDCBD1A7E222E1CAD16DCBA93B3E3 /* SPNativeScreenViewController.swift in Sources */, - 07FD96E43048F836B6415B9A2C3FEA02 /* SPNativeUI.swift in Sources */, - DD09D5049332E2204E0B11A6E31A46DD /* SPPMHeader.swift in Sources */, - 3E48315AEB5A1C341BCD9F44B63E21C9 /* SPPMHeader.xib in Sources */, - 75ECE90BCA424CE87DB0C841D040179A /* SPPrivacyManagerRequestResponse.swift in Sources */, - BAA910241CB58283E99B850716D95338 /* SPPrivacyManagerTab.swift in Sources */, - 67E431DA4C30BB9A8348219C45034328 /* SPPrivacyPolicyViewController.swift in Sources */, - 39C33A7A44017A433054B67ABBFE751D /* SPPrivacyPolicyViewController.xib in Sources */, - C00B2B67F1B127B1AE801FFD34DEF859 /* SPPropertyName.swift in Sources */, - E1919F8D5AC3156B236E9386EAFFA663 /* SPPublisherData.swift in Sources */, - 5AE786AF62149DA97E359CF812559E0F /* SPQRCode.swift in Sources */, - A8D2C8B688B51E8251A41E91D5B7A63C /* SPSDK.swift in Sources */, - 3935D0C24B11DB551A9FD316B428FD00 /* SPString.swift in Sources */, - 3C47FFA8B1FD56F1A6C9F16BC228AF4B /* SPStringifiedJSON.swift in Sources */, - 444A6FD580E349F1CBD890848056E15F /* SPUIColor.swift in Sources */, - 3C4ADA4FDACF71B2B265BC2EF6EA9866 /* SPURLExtensions.swift in Sources */, - 4141F1CB2FE41106D513910245953AF4 /* SPUserData.swift in Sources */, - AE832C05623AF527697A2363068F6D4D /* SPUserDefaults.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 2EBE720369317E1475BEE8FEE168B7AB /* Sources */ = { + 2BC75E8BE4411B12DF42C1493EF38CB2 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( @@ -3704,6 +4017,96 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 35CDB213C4B34078453EFA89FF0ED7DE /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 74A5E43F5EA23CE3358290F779B9EAF5 /* AttributedStringVisitor.swift in Sources */, + EC594FC0034E802473930F0DC4F6CADC /* BaseNode.swift in Sources */, + 5CD0DBF2E02E75DAD92FA40AA2164150 /* BlockBackgroundColorAttribute.swift in Sources */, + E2EC1B71156D1BB95579E802B8495C4B /* BlockQuote.swift in Sources */, + BC0AA7E40DEC7D868798F2B0E85D0BF4 /* blocks.c in Sources */, + 954CAAAE774F5B2E0CB90D410A894BF2 /* buffer.c in Sources */, + AF692D7C512D8E709B80753DA9C520F1 /* CGPoint+Translate.swift in Sources */, + 17BBDF25C0009DFCE087E9EDDBEB3692 /* CGRect+Helpers.swift in Sources */, + D50D4B1B4C6619622E9CE238B882DDBE /* ChildSequence.swift in Sources */, + EE1DFCF5243A87A764D86517D3B7941D /* cmark.c in Sources */, + D8F1A867C8C135D8A4C17DE5F6C10F4A /* cmark_ctype.c in Sources */, + 9D22743F607DC333E8734C0F8414FC94 /* Code.swift in Sources */, + 99004CFF3B8205E23DD30FD3B002FF36 /* CodeBlock.swift in Sources */, + 68B0D51D3D807AC4AA36D783594591EB /* CodeBlockOptions.swift in Sources */, + 74D9D44A7866A67CC7E620EA49391986 /* ColorCollection.swift in Sources */, + 7073DC1C59F79ECD7C37F83021DF0B4C /* commonmark.c in Sources */, + 4F801888E38618F6FA1A4BD2D275A9E1 /* CustomBlock.swift in Sources */, + 6F504BDCEA0991B2576FCC9DB40CFC55 /* CustomInline.swift in Sources */, + 85AD4E8A2B888B5CD9DAFDF1407B046B /* DebugVisitor.swift in Sources */, + C7B4A5A86E0B0C98EE37EF788C264F8B /* Document.swift in Sources */, + 68EFFD0BFEC41FE6C409237DD3C82DEE /* Down.swift in Sources */, + 2D01A5C74AD4D848CAAD1B972896AC07 /* Down-dummy.m in Sources */, + D37E6FCEC79A4DEC3202AAB49A399171 /* DownASTRenderable.swift in Sources */, + 9D790E9F279FDB36B23D2BF4C0581B25 /* DownAttributedStringRenderable.swift in Sources */, + B0EB56D8A31A7121DC1B4A375E81E06B /* DownCommonMarkRenderable.swift in Sources */, + 26337DB6CB02D3B3384106F4CBF8C103 /* DownDebugLayoutManager.swift in Sources */, + 33EE13961D6E579BEBD0E958B729E089 /* DownDebugTextView.swift in Sources */, + 03D88AAF056383E20FD81A4D3390411A /* DownErrors.swift in Sources */, + DA701E41142856329BAA7CA047FD3B71 /* DownGroffRenderable.swift in Sources */, + C09E2D04BCD6FE485CF3FE043FF6140D /* DownHTMLRenderable.swift in Sources */, + 9DB16BC25A69A7548BD0D77A1CB74FF2 /* DownLaTeXRenderable.swift in Sources */, + 568E3542065620142738AEFEFBF17EE7 /* DownLayoutManager.swift in Sources */, + 0184C2B3B35265B7DA4BDADC0DAA7816 /* DownOptions.swift in Sources */, + D737BA0A88AC357F9D321F76C52CC581 /* DownRenderable.swift in Sources */, + B200144A2662FC55F5045A9EFFF82011 /* DownStyler.swift in Sources */, + DE5E93F7C68CC8E6B635291E81F592F8 /* DownStylerConfiguration.swift in Sources */, + 3CECF9B89313F74EFB12CB4602965DBB /* DownTextView.swift in Sources */, + AA6ADBFBEFB4C23F6185C2C4D7133F46 /* DownXMLRenderable.swift in Sources */, + 2846B04A44086BEABE6276A85F15E1BE /* Emphasis.swift in Sources */, + 111DED94990CDD739138FFB562BE812C /* FontCollection.swift in Sources */, + 7A075DFDAF0FF119EEFC3F306D36FB26 /* Heading.swift in Sources */, + CC2509D81A5E18692461E87497845A6D /* houdini_href_e.c in Sources */, + 35B30EA32042191BA3A47020A0EF8D2B /* houdini_html_e.c in Sources */, + 8E6BE76EA4FC0D35CB170BF31D3BB213 /* houdini_html_u.c in Sources */, + 3ADA0364D58A903E62E0E01143F38FEF /* html.c in Sources */, + 3F006B30A43C10FD1B62079CA25753E8 /* HtmlBlock.swift in Sources */, + E917AB867A70822499012BB20FAD2EE2 /* HtmlInline.swift in Sources */, + 06FDDC333CD340123FAA270E7AF57A89 /* Image.swift in Sources */, + 0CC9CB00356DCA7A70F119DDD620977D /* inlines.c in Sources */, + D4BE23F06286F5C89DF17D1DF895CA52 /* Item.swift in Sources */, + E426F460057F89F1CA718B6CDF921337 /* iterator.c in Sources */, + 10318131F49750D55C33DE122EAC9A75 /* latex.c in Sources */, + CCC9D99FACFF8B2085C6BDBCF172234D /* LineBreak.swift in Sources */, + FD4E7381748C912F2863D1C85217F12F /* Link.swift in Sources */, + 5E97D00BE95DFA6BCA5D8E0A79070B30 /* List.swift in Sources */, + C200C631EB3058960A0924160E4587A7 /* ListItemOptions.swift in Sources */, + 7B8D6101AFC452CEA03B8EF4E11F02BA /* ListItemParagraphStyler.swift in Sources */, + 25B3595920416BEF67C0F889A49C3DAE /* ListItemPrefixGenerator.swift in Sources */, + 1CBC6D59A9603484594C865A8EC90E67 /* man.c in Sources */, + 672A1B131ECC93C6B65E84A870AFA4CB /* node.c in Sources */, + B31327F383A4FDBAF97A7356AEEB52A8 /* Node.swift in Sources */, + 17B8E4C8F4DAE6A9E8AAFB5F8BAA2278 /* NSAttributedString+Helpers.swift in Sources */, + 3A6200D13A2426DFD4FAED9DDF60281B /* NSAttributedString+HTML.swift in Sources */, + 071DA59F09049BC9DD06805929955028 /* NSMutableAttributedString+Attributes.swift in Sources */, + 1F621BEBDC24A3AF842C2A0F0D067B45 /* Paragraph.swift in Sources */, + 9714F8151E7B53EFC858C94087255D32 /* ParagraphStyleCollection.swift in Sources */, + CA85A572CA3E120226A1AB071EFB87AD /* QuoteStripeAttribute.swift in Sources */, + 42FBD32138517254E25A426FF3564141 /* QuoteStripeOptions.swift in Sources */, + FBC9EAEC9C857F543BC505AB270E1993 /* references.c in Sources */, + 2A0351C8441BAC7ABDF8AA5715603881 /* render.c in Sources */, + C436B970C805B8C1E00BA97F18F664AF /* scanners.c in Sources */, + 744C8EECBCFE6701875E658A82A36031 /* SoftBreak.swift in Sources */, + A5402A82CC38158AAB63EF5B1D81C31B /* String+ToHTML.swift in Sources */, + 4835228BFE47203CE8929EEAE40707DA /* Strong.swift in Sources */, + 58191E162205E89E29B6EE87BE99EDA6 /* Styler.swift in Sources */, + 20A8A34A0C9E184B5E1C3E57834E317B /* Text.swift in Sources */, + 6F11E93956BCE55D7871E51FC3CB7F28 /* ThematicBreak.swift in Sources */, + 0E676FA216928B1E736A7B10287E37A2 /* ThematicBreakAttribute.swift in Sources */, + F879DD3EA48C1C6325D36708A7FA1294 /* ThematicBreakOptions.swift in Sources */, + 4E0198FBA310B7DF7A1989FC6C9D1BA1 /* UIFont+Traits.swift in Sources */, + CC8776288842F3A1A164A603FDF7CCEE /* utf8.c in Sources */, + C79AE28D13C8F7CBFB25603E216F70B7 /* Visitor.swift in Sources */, + 210927DF4BA990DA97B8CC4C896058A1 /* xml.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 3CDE3BD2F4CCBE9954088F7571F9D03E /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -3827,13 +4230,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 6CD0D19E1BE3E5FBE1AD0F4091B9C706 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; 7928E5EAF08F29363214D09510B80175 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -3842,27 +4238,26 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 81D744BA81882BC4E7AD6421E81FF4F0 /* Sources */ = { + 86653946B7B0163A7015CD699FF3CD8A /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 548292E25DAB498A609655EBFDFC32C3 /* Pods-NativePMExampleApp-dummy.m in Sources */, + 0F64D5C89FE45D9D5B4EDE18C0A9E0BA /* Pods-AuthExampleUITests-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 86653946B7B0163A7015CD699FF3CD8A /* Sources */ = { + 993FD293C5AF71707CC5B6C4AE6204D8 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 0F64D5C89FE45D9D5B4EDE18C0A9E0BA /* Pods-AuthExampleUITests-dummy.m in Sources */, + 4A7EAA2B0EB864235C3948F4337DFBBC /* Pods-ObjC-ExampleAppUITests-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 993FD293C5AF71707CC5B6C4AE6204D8 /* Sources */ = { + A6F61728E84FE04E15A54122796E67B7 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 4A7EAA2B0EB864235C3948F4337DFBBC /* Pods-ObjC-ExampleAppUITests-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -3929,6 +4324,110 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + CF3DE862D2EA3D36AA1F50E6D6B62A8E /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 3D54CF73C49DDAF041A27EF80291C7FF /* AddOrDeleteCustomConsentResponse.swift in Sources */, + 0551CB379A684FBE685C38AAF75A1535 /* Bundle+Framework.swift in Sources */, + F6AF7ED469F259C2D9A99413898FB69C /* CCPAPMConsentSnapshot.swift in Sources */, + 9EF59E9DD11592CA684587E6C4D6CEDA /* ChoiceAllResponse.swift in Sources */, + 36130E2B075ADD35982549E189C19D74 /* ChoiceRequests.swift in Sources */, + 67FBC4FC6D8F6ACC779C2B7A817B26A6 /* ChoiceResponses.swift in Sources */, + 023E4BE5B44B99E80116BD8B9CC2EEAB /* Collection.swift in Sources */, + 35DE6D89FD70FBF62BDAECB851EB79ED /* ConnectivityManager.swift in Sources */, + C296C0402E09312104EBC9D69A4694D0 /* ConsentStatus.swift in Sources */, + 26F295CF338C56CBB8D22A2F938A3CAC /* ConsentStatusMetadata.swift in Sources */, + D51C4CCF966344359BAD3ABBABF87135 /* ConsentStatusResponse.swift in Sources */, + EF8EF2D953AAA6A903470D617ACC33C1 /* ConsentViewController-tvOS-dummy.m in Sources */, + 1346DF1AEF911B1A09E474F9535D0363 /* Constants.swift in Sources */, + D56FC15D9FAAB576E3458FA3830A7D46 /* CustomConsentRequest.swift in Sources */, + 81D6EC873C56AC0CFF4243C2CB85ED51 /* DeleteCustomConsentRequest.swift in Sources */, + 4253F7AD016BCC459191FA299A408AD4 /* ErrorMetricsRequest.swift in Sources */, + 39F04DF0BBE3970C384CD2FF65B16393 /* GDPRPMConsentSnapshot.swift in Sources */, + 91E499A88C7DAD182D6E2E8E835CA2F3 /* GDPRPMPayload.swift in Sources */, + BB9173EDAB02590A098FDC74B8C479F0 /* GDPRPrivacyManagerViewResponse.swift in Sources */, + 533822BFD52AC1F7F673EA75F0C89A11 /* IDFAStatusReportRequest.swift in Sources */, + 46BFD26F5AA2F151435475573546914B /* IncludeData.swift in Sources */, + CB1C6AEB426F826F2BB6931D66B6AC6A /* LongButtonViewCell.swift in Sources */, + 26F3C47BAFDF9F836A802636D6AEEFCF /* LongButtonViewCell.xib in Sources */, + D839411EAA41D6C2C8AB6225E53FC0F8 /* MessageRequest.swift in Sources */, + 687056EFEBAE0D07DC5DF380ABEE3467 /* MessagesRequest.swift in Sources */, + 3356F1FD1376797D11D15013865FFC5E /* MessagesResponse.swift in Sources */, + A2E7C668E28898384F61272A7E5F2AB8 /* MetaDataRequestResponse.swift in Sources */, + D5C7A22D694ED0C5203EF912CF5C11C2 /* NSObjectExtensions.swift in Sources */, + F3D36C6DB0814A30DB60F4FF1FA532E1 /* OSLogger.swift in Sources */, + AD22E968ECDFABA8D0937B8CA551E79A /* PMCategoryManager.swift in Sources */, + A9B47FECEF54265B27505CB84A2BDFCB /* PMVendorManager.swift in Sources */, + 77F81E771CDDC460CE0D0C6786D42593 /* PrivacyManagerViewData.swift in Sources */, + 4DF9C5DA441A283BDA2E6F8E7A650BE8 /* PvDataRequestResponse.swift in Sources */, + 2CF995D89B361C8D214D3DFEC7A230B9 /* QueryParamEncodableProtocol.swift in Sources */, + 0C21901DCFDC1FB0D3203FC340BE1C61 /* SimpleClient.swift in Sources */, + 234119F47906B0BEA20787DB2225472D /* SourcePointClient.swift in Sources */, + 6605EBB8E95EB2D46954EF005D1EC5F5 /* SourcepointClientCoordinator.swift in Sources */, + 82FBEB9F8CAA0C3BD4C62F8DB89BEC77 /* SPAction.swift in Sources */, + 5AA0BAAC3035055CAD9745B7937C4414 /* SPAppleTVButton.swift in Sources */, + ADE576B31B2AAB42ADA3B8A4B5000422 /* SPCampaignEnv.swift in Sources */, + F32053BA3299858D5CDDF9301D1C5FEF /* SPCampaigns.swift in Sources */, + C17CDC0CEA536F2AD09C6A355E958CE8 /* SPCampaignType.swift in Sources */, + 1A838CB112982DBE44BD97736CF56C8D /* SPCCPACategoryDetailsViewController.swift in Sources */, + B2ECD4AEBC23EEE2DD3FD4C59EC5E42C /* SPCCPACategoryDetailsViewController.xib in Sources */, + 7A6A699740B21D29DE4E5B40E935F457 /* SPCCPAConsent.swift in Sources */, + FBA9636C871C6AAB527BACE82165C984 /* SPCCPAManagePreferenceViewController.swift in Sources */, + 479B3C72C4791E8DBE7E983D443AF4A4 /* SPCCPAManagePreferenceViewController.xib in Sources */, + E371A09A1E95B578CF7FECFEDE6634AF /* SPCCPANativePrivacyManagerViewController.swift in Sources */, + F545619E40379B69128EE4D13D8896D2 /* SPCCPANativePrivacyManagerViewController.xib in Sources */, + 2F66710AA11FE59396A51F4C312F3A71 /* SPCCPAPartnersViewController.swift in Sources */, + AC68CA9F49898B6BD81268CC3060190D /* SPCCPAPartnersViewController.xib in Sources */, + 352F3D7C345DC45E72C9BD5DFA9EB2B7 /* SPCCPAVendorDetailsViewController.swift in Sources */, + 3F841FF64D0FE49845D4E3C8E1E52B12 /* SPCCPAVendorDetailsViewController.xib in Sources */, + 3EBDB04379A9C0962DFC76B18CD3BAAB /* SPConsentManager.swift in Sources */, + D9A30FEFE288300236529A9F9D7BC470 /* SPCustomViewController.swift in Sources */, + 229507ED99DECB3475F25E879AA0D95C /* SPCustomViewController.xib in Sources */, + 370D31F62CBCEB306E6897421F69227B /* SPDateCreated.swift in Sources */, + 0DB059FB453B9ACB929B45A45CB8F2C8 /* SPDelegate.swift in Sources */, + FCE7702A41870983DEAD920600E71FD0 /* SPDeviceManager.swift in Sources */, + 35D85D923745C260A5B46300F5B4DB90 /* SPError.swift in Sources */, + B688263CC378164C8C1CAB71D8A0AB00 /* SPFocusableTextView.swift in Sources */, + 65B19F185446EE4DAF88CF2CCC1BA90C /* SPGDPRCategoryDetailsViewController.swift in Sources */, + 5F1DFFCE0F4F5335943499EFB042E85B /* SPGDPRCategoryDetailsViewController.xib in Sources */, + 08561DC9A9BD8A2AD746F637E85D502A /* SPGDPRConsent.swift in Sources */, + 9A2427722344B368420001A46F6C608E /* SPGDPRManagePreferenceViewController.swift in Sources */, + 532A7626A6EDC742BB82B2971A9102BE /* SPGDPRManagePreferenceViewController.xib in Sources */, + BE92B58ABF5494852CDD21CC0C92E1EB /* SPGDPRNativePrivacyManagerViewController.swift in Sources */, + 843B08A4C798486A4562A332CF72677F /* SPGDPRNativePrivacyManagerViewController.xib in Sources */, + B5D401DD6C5FAC655B94627551BA9A35 /* SPGDPRPartnersViewController.swift in Sources */, + 646A2B0AFBDCD6C6E60455A546A33EA5 /* SPGDPRPartnersViewController.xib in Sources */, + FFAF5943E2AD36429975A0882A45B2C2 /* SPGDPRVendorDetailsViewController.swift in Sources */, + A2D6042B665A724C94C9A0B416693727 /* SPGDPRVendorDetailsViewController.xib in Sources */, + FE027277BEA987AE406A678CDB4C728F /* SPIDFAStatus.swift in Sources */, + D9BF48E41DB751E623C91CFB6E2DAF45 /* SPJson.swift in Sources */, + F67931B71279675EE17117BBA0B327DD /* SPLocalStorage.swift in Sources */, + F3FF33D5FE9F499273C72A31CDF77595 /* SPMessageLanguage.swift in Sources */, + 2DF21D1803082108B16B22D5AD75036B /* SPMessageUIDelegate.swift in Sources */, + 7A99C453F750DFB1BD1D4901F5981A1D /* SPMessageViewController.swift in Sources */, + E39E441930AD7B5213BC696DB0FF5C97 /* SPNativeMessage.swift in Sources */, + 711CC8F85AC1933A4DB4F35749309C42 /* SPNativeScreenViewController.swift in Sources */, + 5A980E91374F12F6A1CF8D57177F2E7D /* SPNativeUI.swift in Sources */, + D3DCF4C5B0D3C6039F51FAA1B3E81E1E /* SPPMHeader.swift in Sources */, + 864D89B8289E24B25A2FFF942F10432F /* SPPMHeader.xib in Sources */, + 727B97B839A68CB226FD0ECAD1E58655 /* SPPrivacyManagerRequestResponse.swift in Sources */, + 34DD191994AF3E86EC5B28122A228D82 /* SPPrivacyManagerTab.swift in Sources */, + EFD3009DA75F8DD0CB281CE311256B9A /* SPPrivacyPolicyViewController.swift in Sources */, + A3FCDB34109A1D2028F4A60BC640E3A9 /* SPPrivacyPolicyViewController.xib in Sources */, + 9CAC26A9C960D9846DEA9D90A7C51465 /* SPPropertyName.swift in Sources */, + 888FCA358B2E7EA6D281234D59E0BD5E /* SPPublisherData.swift in Sources */, + 31C31220B6F7DAC1CCE2651AD9C05D57 /* SPQRCode.swift in Sources */, + 915FD8E16A2C1247959582A1E11CD073 /* SPSDK.swift in Sources */, + 15204FEC0A5CCB1D5EE06AE1B1E46357 /* SPString.swift in Sources */, + E0EAF89426847B4EC7555056A6A0C661 /* SPStringifiedJSON.swift in Sources */, + 12E8047F154E88032F0E55B2DCE038B6 /* SPUIColor.swift in Sources */, + F6E66A631FEDAE536FFDAE28564C1ABA /* SPURLExtensions.swift in Sources */, + 325E357A09EF48EC8435FD430D416DFB /* SPUserData.swift in Sources */, + 9ACF28C29965E88050B6D1721E2ED1B7 /* SPUserDefaults.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; CF5E2221C519A64CE1AD80237AA762C5 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -3937,7 +4436,7 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - D17460AA970C4DC0B7FE74F5E93023E6 /* Sources */ = { + DF2230D4562327FD14AF304960EDE66F /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( @@ -4056,261 +4555,287 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + FF76FD7FEE97F2FF454ECBBD002AC9C7 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + A23E22F3E05399C7390833D742980647 /* Pods-NativePMExampleAppUITests-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - 0B557B1639F28B8B95BFE3EDDCF2A44D /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Nimble-iOS"; - target = 3AAFED87F58BAA2AC3177A35C2CF5B23 /* Nimble-iOS */; - targetProxy = DCF8D2ECDD1C176A847D09688880A3E4 /* PBXContainerItemProxy */; - }; - 13BFF0E9B98C82223E39A9059A0F52A5 /* PBXTargetDependency */ = { + 04269B87EFAD2B360F41CDE5079FB27D /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = "ConsentViewController-iOS"; target = 84E1147DCA59477E2E390B109585DCAF /* ConsentViewController-iOS */; - targetProxy = FC40C52A561730635A3C313012712B55 /* PBXContainerItemProxy */; - }; - 1EB0A20D01EA62D3923460EF738237EE /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "ConsentViewController-tvOS-ConsentViewController"; - target = 5D0718052BFEE502C9D9BEC44BDCFA76 /* ConsentViewController-tvOS-ConsentViewController */; - targetProxy = 53627FACF5F814E3C68F4EF9FEC9E33C /* PBXContainerItemProxy */; - }; - 1EDB995AE859160D240B5B84FAEDE0EF /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = Wormholy; - target = 3E73ED39761329414C06DD4486C5058E /* Wormholy */; - targetProxy = 131A9418402E875F54ACA12CBB95919D /* PBXContainerItemProxy */; - }; - 22FC638A42F561B732CFBB73CA3394F3 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "ConsentViewController-tvOS"; - target = 94DAD332BFFC672BBE92726504A716F8 /* ConsentViewController-tvOS */; - targetProxy = 1C2E97565C59DFB01A3E3BDB2C1550D9 /* PBXContainerItemProxy */; + targetProxy = D565C3120C22A435A12D3609906EA321 /* PBXContainerItemProxy */; }; - 296F265478017C436354F41757FC25C6 /* PBXTargetDependency */ = { + 0B624ABC4A4FDEA3B0A82C1A83023FBD /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = "Quick-iOS"; target = 89B29D1C701EFC639B36BC482FE72F13 /* Quick-iOS */; - targetProxy = E1230B95C2D5EC04EB0D2AFD997CA55E /* PBXContainerItemProxy */; - }; - 2C81C0FF9B22598C6592CBE538788359 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = IQKeyboardManagerSwift; - target = B490E7485944099E16C9CBD79119D1D4 /* IQKeyboardManagerSwift */; - targetProxy = 466F54612DBA1CBD626E6F4B440F0FC6 /* PBXContainerItemProxy */; + targetProxy = 6C39DAE01952B1A3A419797A4651830A /* PBXContainerItemProxy */; }; - 2E6C201E9FCAD373D29706313A012888 /* PBXTargetDependency */ = { + 0C2775D2A92DA4781AE1874F672257AC /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = "ConsentViewController-iOS"; target = 84E1147DCA59477E2E390B109585DCAF /* ConsentViewController-iOS */; - targetProxy = 86FBD13B9D0615F786B0EF201A977BBB /* PBXContainerItemProxy */; + targetProxy = 79A1EF242ADA35DA06FAECB2F42143F2 /* PBXContainerItemProxy */; + }; + 19680E6CFA2C394DE111D00577BE0820 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = Down; + target = B4575FF01775E963E58050542C9A4E7A /* Down */; + targetProxy = 48BEB62478E6920466EA00B031B41DAE /* PBXContainerItemProxy */; }; - 3A502215B436484ED80ED649DF2BD87A /* PBXTargetDependency */ = { + 1D4493F42CC1FD06F0031CB86C831354 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = JSONView; target = 2450D89327C2F3947256DE8768B4B9B9 /* JSONView */; - targetProxy = A337433BAA6235B8CB982A700F885340 /* PBXContainerItemProxy */; + targetProxy = 70890B5CA9F693F93EA611ED68E5285E /* PBXContainerItemProxy */; }; - 3D6BA932E8C74710DAE115EA03876526 /* PBXTargetDependency */ = { + 1F21EE3120C72649982C980F3A4B8273 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = "SwiftLint-iOS"; - target = 2B03D5FD26A26B7D62142EA4492AEB83 /* SwiftLint-iOS */; - targetProxy = 8CED0CD61956DD9D577E2A73329915BB /* PBXContainerItemProxy */; + name = Wormholy; + target = 3E73ED39761329414C06DD4486C5058E /* Wormholy */; + targetProxy = C906E6162CF65EE63F80DEF3AC56CBB8 /* PBXContainerItemProxy */; }; - 4C7535CE2144F5C133B2CF716D41F15C /* PBXTargetDependency */ = { + 1FDF1AECF403722A2CC25C632DF816AF /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = "ConsentViewController-iOS"; target = 84E1147DCA59477E2E390B109585DCAF /* ConsentViewController-iOS */; - targetProxy = 9BDC6E06BDEC8CD5362952F71A258354 /* PBXContainerItemProxy */; + targetProxy = 955BC2B63EB54790E2C54408B04B294C /* PBXContainerItemProxy */; }; - 54CE178A5E7ACAB00ACF57C52FD6504D /* PBXTargetDependency */ = { + 28DBE8541D2317EA159081CD3DBF2C0D /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = "Quick-iOS"; - target = 89B29D1C701EFC639B36BC482FE72F13 /* Quick-iOS */; - targetProxy = 2F53A22EA008182778C4786FC18AE02C /* PBXContainerItemProxy */; + name = "ConsentViewController-tvOS"; + target = 94DAD332BFFC672BBE92726504A716F8 /* ConsentViewController-tvOS */; + targetProxy = E2097260B00F95341A371C39F3E92A12 /* PBXContainerItemProxy */; }; - 55F8A820F7D117682FA9EA9627DE4077 /* PBXTargetDependency */ = { + 2E5B4A8A181E061D85C7C630C57C1C20 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = "Nimble-iOS"; target = 3AAFED87F58BAA2AC3177A35C2CF5B23 /* Nimble-iOS */; - targetProxy = 66B46F642312FFF8002D2A4E640BEEE9 /* PBXContainerItemProxy */; - }; - 67CA27F185E2F00474C45C80530EDDD4 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "ConsentViewController-iOS"; - target = 84E1147DCA59477E2E390B109585DCAF /* ConsentViewController-iOS */; - targetProxy = 7C42DC7D99100A7562F534456449E13D /* PBXContainerItemProxy */; + targetProxy = 3BED824000D10011DA763175D07BE4B5 /* PBXContainerItemProxy */; }; - 6F632ED4DA7922E53A7B40059ADEBEB1 /* PBXTargetDependency */ = { + 2EA12CAE186459633DD8E7658AA89512 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = "ConsentViewController-iOS"; target = 84E1147DCA59477E2E390B109585DCAF /* ConsentViewController-iOS */; - targetProxy = 1A453D386303579F11545EABFEAFAE5D /* PBXContainerItemProxy */; + targetProxy = 86051532A4F62507AB3C2134B009A043 /* PBXContainerItemProxy */; }; - 79745D8073EF7FECBF0EE96F9741E267 /* PBXTargetDependency */ = { + 32D3AD5F5A544BCDC748A212A334CF28 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = "ConsentViewController-iOS"; target = 84E1147DCA59477E2E390B109585DCAF /* ConsentViewController-iOS */; - targetProxy = AA364F1356AB1E9D68A3C66FDF324A7F /* PBXContainerItemProxy */; + targetProxy = 5486CA012691B82F430D829FA6F4277C /* PBXContainerItemProxy */; }; - 8068E879A56E12E2A41F5DCAF46BD446 /* PBXTargetDependency */ = { + 36F5149B717B10A088EBB2E6D4F2EA32 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = "Quick-iOS"; - target = 89B29D1C701EFC639B36BC482FE72F13 /* Quick-iOS */; - targetProxy = 92374E97C440212BD696CFB224E849E9 /* PBXContainerItemProxy */; + name = "Nimble-iOS"; + target = 3AAFED87F58BAA2AC3177A35C2CF5B23 /* Nimble-iOS */; + targetProxy = B3AFED0F8E5BDE6B5C95E9450840333E /* PBXContainerItemProxy */; }; - 828A95F4AC7D1985C3C22F4F8005C83D /* PBXTargetDependency */ = { + 39DFEA2FBD7422775A4F34E30590F7F9 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = "Quick-iOS"; - target = 89B29D1C701EFC639B36BC482FE72F13 /* Quick-iOS */; - targetProxy = 7B95B63DC0F2569E1315071EED99D4A3 /* PBXContainerItemProxy */; + name = "Nimble-iOS"; + target = 3AAFED87F58BAA2AC3177A35C2CF5B23 /* Nimble-iOS */; + targetProxy = 8079E1C9718845FECEB49AFE45839F13 /* PBXContainerItemProxy */; }; - 8414054190B97D909B93B2CC86CF7E5B /* PBXTargetDependency */ = { + 478EE9F28228B6708AAA1734AC02D8CD /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = Wormholy; target = 3E73ED39761329414C06DD4486C5058E /* Wormholy */; - targetProxy = A77F5F3519797749F98B2F7488D46F7A /* PBXContainerItemProxy */; + targetProxy = E90DCFE775576EDA6012B06285B126CA /* PBXContainerItemProxy */; }; - 8DAE6006127E43B35DD8B66A0F7A5C5D /* PBXTargetDependency */ = { + 55B4074C73D7D8104F351AE028BF545C /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = "Nimble-tvOS"; - target = A897D2D55F6D87795224F846F8ED3A36 /* Nimble-tvOS */; - targetProxy = 8618BC5A5C5E2F4B21FAFECAD097B9A3 /* PBXContainerItemProxy */; + name = "Quick-tvOS"; + target = 28BE3303E3F4ECC2BDF79B1D886D2E74 /* Quick-tvOS */; + targetProxy = 32D720CF4B0253350B70B4DD9B908B93 /* PBXContainerItemProxy */; }; - 9B310260E3349FCF91440473D15639DF /* PBXTargetDependency */ = { + 5648A7CE4AF74B9D1F51B13B52E4C40B /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = "SwiftLint-iOS"; - target = 2B03D5FD26A26B7D62142EA4492AEB83 /* SwiftLint-iOS */; - targetProxy = F470B54B424CCE7ACBF7746B13A80409 /* PBXContainerItemProxy */; + name = "ConsentViewController-iOS"; + target = 84E1147DCA59477E2E390B109585DCAF /* ConsentViewController-iOS */; + targetProxy = BDEBFD3A7F506989B8CB33D07C79F37E /* PBXContainerItemProxy */; }; - 9B6F31847AE228621509052C4E8C7FC9 /* PBXTargetDependency */ = { + 566557F1EA0947BA1825CBF4B9356187 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = Wormholy; - target = 3E73ED39761329414C06DD4486C5058E /* Wormholy */; - targetProxy = 162A6D9DA8939D91C51FD00942D7DE33 /* PBXContainerItemProxy */; + name = Down; + target = B4575FF01775E963E58050542C9A4E7A /* Down */; + targetProxy = 62D4926D36ADD4A9DAE2C4B674E52A4E /* PBXContainerItemProxy */; }; - A7036A444580D6E59A58CB95D9288934 /* PBXTargetDependency */ = { + 631233125ED23B169DE339F9731C158E /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = "Quick-iOS"; target = 89B29D1C701EFC639B36BC482FE72F13 /* Quick-iOS */; - targetProxy = 76461F2F6667802ECAB47ECE4133D7B2 /* PBXContainerItemProxy */; + targetProxy = D2A433E416CEEEEDAADB63887BA6AC88 /* PBXContainerItemProxy */; }; - A750E072297F979B3BE8811E55FC6906 /* PBXTargetDependency */ = { + 63C844E17105F464B498FE58D90B8EC1 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = "ConsentViewController-iOS"; - target = 84E1147DCA59477E2E390B109585DCAF /* ConsentViewController-iOS */; - targetProxy = 166E7E3F858D731A811940C6FA8B3664 /* PBXContainerItemProxy */; + name = "ConsentViewController-iOS-ConsentViewController"; + target = F9B2C41D8F3FCEB2256091CF2667D600 /* ConsentViewController-iOS-ConsentViewController */; + targetProxy = 755FBE2811C640B583D7E9AA11C8E69B /* PBXContainerItemProxy */; }; - A7D571A06E83603549BB9951B4BB769E /* PBXTargetDependency */ = { + 6C255CF052413AA6E1491E4CFB64A0CF /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = "Quick-tvOS"; - target = 28BE3303E3F4ECC2BDF79B1D886D2E74 /* Quick-tvOS */; - targetProxy = 3644768E5F3757BD01A00C1DDCCCFFCA /* PBXContainerItemProxy */; + name = "Quick-iOS"; + target = 89B29D1C701EFC639B36BC482FE72F13 /* Quick-iOS */; + targetProxy = 574631BEFBF8FADBFDE6A7EADC24FE05 /* PBXContainerItemProxy */; }; - AF961868906395382420C10ACD1F694E /* PBXTargetDependency */ = { + 6F8F68F7B0F06066ECDD1C25DF2096EE /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = "SwiftLint-iOS"; - target = 2B03D5FD26A26B7D62142EA4492AEB83 /* SwiftLint-iOS */; - targetProxy = 0AD313B17C04CE7AC4C6427B418801E2 /* PBXContainerItemProxy */; + name = Wormholy; + target = 3E73ED39761329414C06DD4486C5058E /* Wormholy */; + targetProxy = 3F98C5C3FC46027A5ECAD7E85EA286B7 /* PBXContainerItemProxy */; + }; + 7FEDF075795C0396285992054945515D /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Nimble-iOS"; + target = 3AAFED87F58BAA2AC3177A35C2CF5B23 /* Nimble-iOS */; + targetProxy = 9562CD060F6281C1E8BB0FEE992C87FA /* PBXContainerItemProxy */; }; - AFFFB6F096B66724F1A4D22466A53E68 /* PBXTargetDependency */ = { + 80BE4E77393CDC3F9E7574B410EE7CE1 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = Wormholy; target = 3E73ED39761329414C06DD4486C5058E /* Wormholy */; - targetProxy = 6F0DF0DC4ADE8FFB556890CDD5DFA17D /* PBXContainerItemProxy */; + targetProxy = B821C3A715C47C10757BC5E5BE5F9C43 /* PBXContainerItemProxy */; }; - B343344DF7F5125CB5619CB5696BC4DB /* PBXTargetDependency */ = { + 81B3F2DCA1C3CC05B5423067FBF2A532 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = "ConsentViewController-iOS"; - target = 84E1147DCA59477E2E390B109585DCAF /* ConsentViewController-iOS */; - targetProxy = A059BDC872B43C94E79A035685141DF9 /* PBXContainerItemProxy */; + name = "SwiftLint-iOS"; + target = 2B03D5FD26A26B7D62142EA4492AEB83 /* SwiftLint-iOS */; + targetProxy = DA9CC4F5449141E897573AAA8DE23526 /* PBXContainerItemProxy */; }; - B700EB32D51EAF002BE5265D1A327322 /* PBXTargetDependency */ = { + 86964FB31ED3BAF54F5B11F7F6B9AD0E /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = "Nimble-iOS"; - target = 3AAFED87F58BAA2AC3177A35C2CF5B23 /* Nimble-iOS */; - targetProxy = 9841BE75D36AE4AE516586BF13CBC043 /* PBXContainerItemProxy */; + name = "SwiftLint-iOS"; + target = 2B03D5FD26A26B7D62142EA4492AEB83 /* SwiftLint-iOS */; + targetProxy = CBA743273AF20656D5ED517A6C9F6DAA /* PBXContainerItemProxy */; }; - B8DEEB5B76347ECF7A9D583318E24CBC /* PBXTargetDependency */ = { + 870E5DF021216DB5FC0F2954F5188D4D /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = "Quick-iOS"; - target = 89B29D1C701EFC639B36BC482FE72F13 /* Quick-iOS */; - targetProxy = 1A9889999F55B09CB41D471DCDCA7784 /* PBXContainerItemProxy */; + name = IQKeyboardManagerSwift; + target = B490E7485944099E16C9CBD79119D1D4 /* IQKeyboardManagerSwift */; + targetProxy = 411A5F9D79714519247121076A064E77 /* PBXContainerItemProxy */; }; - BAFC661D7430ABFECD4935092887ED1C /* PBXTargetDependency */ = { + 8D1A5C4E0A3F908E4DEE0467E442AA3F /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = "Nimble-iOS"; target = 3AAFED87F58BAA2AC3177A35C2CF5B23 /* Nimble-iOS */; - targetProxy = AF344CE0DC82F3F35839E93C7F39C9CC /* PBXContainerItemProxy */; + targetProxy = CDD7C5FC80331F40AF439A81968B14C0 /* PBXContainerItemProxy */; }; - C67A5935FFEB7CCEA87435CD07D30DF3 /* PBXTargetDependency */ = { + 932C6EE4F3E99A335FFCD75BAA44FB75 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = "SwiftLint-tvOS"; - target = 07B93100044EF37C3FEE234DF77D3C11 /* SwiftLint-tvOS */; - targetProxy = 4B185AC602FE02667306408BAD2B1E7A /* PBXContainerItemProxy */; + name = "SwiftLint-iOS"; + target = 2B03D5FD26A26B7D62142EA4492AEB83 /* SwiftLint-iOS */; + targetProxy = DBB00A92885F64A3EEFC4EE7255779CD /* PBXContainerItemProxy */; }; - CBD7C30F6CEDD9DCD53196B99D29573A /* PBXTargetDependency */ = { + 97DAF803E875B618B323401C51B44D9E /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = "Nimble-iOS"; - target = 3AAFED87F58BAA2AC3177A35C2CF5B23 /* Nimble-iOS */; - targetProxy = 4876F25AEC94ADC11B9D53B2E3E7A31A /* PBXContainerItemProxy */; + name = "ConsentViewController-iOS"; + target = 84E1147DCA59477E2E390B109585DCAF /* ConsentViewController-iOS */; + targetProxy = F4A6B97E4F6BF987BDE062BA481528D7 /* PBXContainerItemProxy */; + }; + A15BABF1F1D13D4EDF6D05417B7CD454 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Quick-iOS"; + target = 89B29D1C701EFC639B36BC482FE72F13 /* Quick-iOS */; + targetProxy = 1FC4FEA692B307E36C973174E108BC98 /* PBXContainerItemProxy */; + }; + A97A9AA65991B5F0A0F71F55FB6733DF /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "ConsentViewController-iOS"; + target = 84E1147DCA59477E2E390B109585DCAF /* ConsentViewController-iOS */; + targetProxy = 5F7FB47DD310A2F238837509B976A03A /* PBXContainerItemProxy */; + }; + B21F9D9EC136A9E272F6AA5B83EC14CC /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "SwiftLint-iOS"; + target = 2B03D5FD26A26B7D62142EA4492AEB83 /* SwiftLint-iOS */; + targetProxy = 37D609DDBEA4BAFA40C5559B0273E620 /* PBXContainerItemProxy */; }; - D03F4CD9A63780B72F665A2F008494D4 /* PBXTargetDependency */ = { + BB366EDAC29D23E79D2799B70FEEC876 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = "ConsentViewController-tvOS"; target = 94DAD332BFFC672BBE92726504A716F8 /* ConsentViewController-tvOS */; - targetProxy = 53F04AD757F1B4A0C917F667B28332CE /* PBXContainerItemProxy */; + targetProxy = BE97D9A04C8B4A25ADFB8BC624278FF5 /* PBXContainerItemProxy */; }; - D216D6DB8DE5404E4EE98759047BA82A /* PBXTargetDependency */ = { + BD41884FA275F8C890FF5F982C622C1C /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = "Wormholy-Wormholy"; target = 93CEC7FFB57A497DE49471C5D9517C13 /* Wormholy-Wormholy */; - targetProxy = 9065F694C63CFBD20A7BA74ACE48C3D6 /* PBXContainerItemProxy */; + targetProxy = 8F31012ECF3730822C00016B116B45C3 /* PBXContainerItemProxy */; }; - D7A79E0B6B8CDFA76A604DD98E940E61 /* PBXTargetDependency */ = { + C5A3BF08B4C630204BEACDCED30B845C /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = "ConsentViewController-iOS"; target = 84E1147DCA59477E2E390B109585DCAF /* ConsentViewController-iOS */; - targetProxy = 3DBC43A9F7A1E522CF7868FE7F4FC12D /* PBXContainerItemProxy */; + targetProxy = DB2C87732A6F43165FCF188952873B84 /* PBXContainerItemProxy */; }; - D7BFEFC269CBEDD76AD52F7563455963 /* PBXTargetDependency */ = { + C64DD27F6F7DB09EDDC5E3C00627E718 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = "ConsentViewController-iOS-ConsentViewController"; - target = F9B2C41D8F3FCEB2256091CF2667D600 /* ConsentViewController-iOS-ConsentViewController */; - targetProxy = 6204718DC5519ED79A3743B45791BFC6 /* PBXContainerItemProxy */; + name = "Quick-iOS"; + target = 89B29D1C701EFC639B36BC482FE72F13 /* Quick-iOS */; + targetProxy = 25CACC81B32D18AF143C4E413AC61974 /* PBXContainerItemProxy */; }; - E5CE891D5D0251A9FDC84B2440E1A796 /* PBXTargetDependency */ = { + CADDBD09B328BEA8D1FF019F24FA290D /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "ConsentViewController-tvOS-ConsentViewController"; + target = 5D0718052BFEE502C9D9BEC44BDCFA76 /* ConsentViewController-tvOS-ConsentViewController */; + targetProxy = A7D92E7BA7A2A2982BB6DD912B336ABB /* PBXContainerItemProxy */; + }; + D1EF4181D6B5396AA9015FEE185B568C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Quick-iOS"; + target = 89B29D1C701EFC639B36BC482FE72F13 /* Quick-iOS */; + targetProxy = AD18A4C7961BA2E448CB44CC3B1FA6E8 /* PBXContainerItemProxy */; + }; + D5CF96FBB8EEB6B02C07447B4EB428C1 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = "ConsentViewController-iOS"; target = 84E1147DCA59477E2E390B109585DCAF /* ConsentViewController-iOS */; - targetProxy = 4EF13C830FD2DE32D00FC0928A4EEA09 /* PBXContainerItemProxy */; + targetProxy = 8BC0E69258D96B35AB5C5815C943C633 /* PBXContainerItemProxy */; }; - F666857C3290A88B02B470AB6AA9118E /* PBXTargetDependency */ = { + D99A3B2EDF0AAF0F6522447E6D72DA6F /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = "Nimble-iOS"; - target = 3AAFED87F58BAA2AC3177A35C2CF5B23 /* Nimble-iOS */; - targetProxy = 4F3E024086E371792841ECC1082CD0EC /* PBXContainerItemProxy */; + name = "Nimble-tvOS"; + target = A897D2D55F6D87795224F846F8ED3A36 /* Nimble-tvOS */; + targetProxy = 85D1DB2CA9D1DB0522F1E5250690D10C /* PBXContainerItemProxy */; }; - F7410F656BECC0695C0B3E789E718CC1 /* PBXTargetDependency */ = { + EDC0180C3FCD79E4D2C2FCF775D668C5 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = "SwiftLint-iOS"; - target = 2B03D5FD26A26B7D62142EA4492AEB83 /* SwiftLint-iOS */; - targetProxy = 17A063C0C4AA6855B5FEDE1F54202AA8 /* PBXContainerItemProxy */; + name = "Nimble-iOS"; + target = 3AAFED87F58BAA2AC3177A35C2CF5B23 /* Nimble-iOS */; + targetProxy = F40F5F100B8E015075D7954020BC46CB /* PBXContainerItemProxy */; }; - FEF5DD8345FA9C5DD160C77E0BADEB94 /* PBXTargetDependency */ = { + F9947D428575E476A10231401C76891A /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = "ConsentViewController-iOS"; target = 84E1147DCA59477E2E390B109585DCAF /* ConsentViewController-iOS */; - targetProxy = 62A561AFCFA9EFF45D68C973E9D1E2C6 /* PBXContainerItemProxy */; + targetProxy = 7D15327DADE0FBA7FC02C5C383222B50 /* PBXContainerItemProxy */; + }; + FC06784645A7948ED1ED6865E33ECD6D /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = Down; + target = B4575FF01775E963E58050542C9A4E7A /* Down */; + targetProxy = 2E6BB5A298A7B62016054D020EB6136F /* PBXContainerItemProxy */; + }; + FCB3A3D608DD834289F72E085E9D31B4 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "SwiftLint-tvOS"; + target = 07B93100044EF37C3FEE234DF77D3C11 /* SwiftLint-tvOS */; + targetProxy = 3A8A2268935CC4BC7FD62E862A25B150 /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ 0713164992F5E521347FC482D5A47111 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 9E8387C3725354B66F5EB35A850E1F89 /* JSONView.debug.xcconfig */; + baseConfigurationReference = B236B9D85298E0C2286C09291A270BF4 /* JSONView.debug.xcconfig */; buildSettings = { CLANG_ENABLE_OBJC_WEAK = NO; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -4342,26 +4867,9 @@ }; name = Debug; }; - 0BDB186C206CF8A9BD55549DECED4F78 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 83ECB2F1811355EFDEDA3A0384A21292 /* ConsentViewController-tvOS.debug.xcconfig */; - buildSettings = { - CODE_SIGNING_ALLOWED = NO; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/ConsentViewController-tvOS"; - IBSC_MODULE = ConsentViewController; - INFOPLIST_FILE = "Target Support Files/ConsentViewController-tvOS/ResourceBundle-ConsentViewController-ConsentViewController-tvOS-Info.plist"; - PRODUCT_NAME = ConsentViewController; - SDKROOT = appletvos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 3; - TVOS_DEPLOYMENT_TARGET = 10.0; - WRAPPER_EXTENSION = bundle; - }; - name = Debug; - }; 0D2ED34DCB28393F6C51CDEB599E08AD /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 3505EF66D2FB134666A5C95FA4918169 /* Wormholy.release.xcconfig */; + baseConfigurationReference = BB99BA06CBE242DB60211532AF6D3446 /* Wormholy.release.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -4394,45 +4902,9 @@ }; name = Release; }; - 10A9C857744AC237C738A0C19858DCA7 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 17E9762D087007658323A8BC59C33F9C /* Pods-NativePMExampleAppUITests.debug.xcconfig */; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = 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"; - INFOPLIST_FILE = "Target Support Files/Pods-NativePMExampleAppUITests/Pods-NativePMExampleAppUITests-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-NativePMExampleAppUITests/Pods-NativePMExampleAppUITests.modulemap"; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SDKROOT = appletvos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 3; - TVOS_DEPLOYMENT_TARGET = 10.0; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; 1DC3F2797085B0CA43FDFB9E557063FA /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 79F6D0E52727D4D0DA2AAC85A2F248E2 /* SwiftLint-iOS.debug.xcconfig */; + baseConfigurationReference = 48BF4B715D474202AB06AC4DFFE49825 /* SwiftLint-iOS.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; @@ -4521,6 +4993,23 @@ }; name = Debug; }; + 270CBB0E903D0E7B41CBEC6211592750 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 42A51D82D7093FF4E1BF5B76F611BD58 /* Wormholy.debug.xcconfig */; + buildSettings = { + CODE_SIGNING_ALLOWED = NO; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Wormholy"; + IBSC_MODULE = Wormholy; + INFOPLIST_FILE = "Target Support Files/Wormholy/ResourceBundle-Wormholy-Wormholy-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + PRODUCT_NAME = Wormholy; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + WRAPPER_EXTENSION = bundle; + }; + name = Debug; + }; 294660B811164BB2D1775B3D13428B5B /* Release */ = { isa = XCBuildConfiguration; baseConfigurationReference = 2BF36247AF67FD5FCF60C2A234F271CB /* Pods-AuthExample.release.xcconfig */; @@ -4630,9 +5119,45 @@ }; name = Release; }; + 2BF554184FF176AA666254F962EE913B /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = BA36FFECCCE8F0C5DF4B2C03698A3AE4 /* Pods-NativePMExampleApp.debug.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = 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"; + INFOPLIST_FILE = "Target Support Files/Pods-NativePMExampleApp/Pods-NativePMExampleApp-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-NativePMExampleApp/Pods-NativePMExampleApp.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = appletvos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 3; + TVOS_DEPLOYMENT_TARGET = 10.0; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; 2E79676060BE50EFBB9F691481606EFB /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = C6A3F821A09EBC594BB9FBB8C604E592 /* Nimble-tvOS.debug.xcconfig */; + baseConfigurationReference = 15D70F7A298CC42D2568987A442A3935 /* Nimble-tvOS.debug.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -4665,7 +5190,7 @@ }; 35B7B676B4DC30A8EEACF85A9FBC275C /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 1A75678CF15E786713C19F5C7E2B8765 /* SwiftLint-tvOS.release.xcconfig */; + baseConfigurationReference = A0AA1AC65798F3632CEF26195BB3BB3F /* SwiftLint-tvOS.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image"; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; @@ -4680,11 +5205,10 @@ }; name = Release; }; - 374991558904FFCD9232554477E13F54 /* Release */ = { + 38D4FBB26C7FFF1164291CA50299C642 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 00A6150EF71F7EC4E9DF1B20FBE31654 /* Pods-NativePMExampleApp.release.xcconfig */; + baseConfigurationReference = 0DE75CD9833B750BE6C6AF736A82C346 /* ConsentViewController-tvOS.release.xcconfig */; buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; @@ -4693,22 +5217,21 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "Target Support Files/Pods-NativePMExampleApp/Pods-NativePMExampleApp-Info.plist"; + GCC_PREFIX_HEADER = "Target Support Files/ConsentViewController-tvOS/ConsentViewController-tvOS-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/ConsentViewController-tvOS/ConsentViewController-tvOS-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", "@loader_path/Frameworks", ); - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-NativePMExampleApp/Pods-NativePMExampleApp.modulemap"; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + MODULEMAP_FILE = "Target Support Files/ConsentViewController-tvOS/ConsentViewController-tvOS.modulemap"; + PRODUCT_MODULE_NAME = ConsentViewController; + PRODUCT_NAME = ConsentViewController; SDKROOT = appletvos; SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = 3; TVOS_DEPLOYMENT_TARGET = 10.0; VALIDATE_PRODUCT = YES; @@ -4717,9 +5240,26 @@ }; name = Release; }; + 391DA3E474DC6A133EB2420042B2C16D /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 0DE75CD9833B750BE6C6AF736A82C346 /* ConsentViewController-tvOS.release.xcconfig */; + buildSettings = { + CODE_SIGNING_ALLOWED = NO; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/ConsentViewController-tvOS"; + IBSC_MODULE = ConsentViewController; + INFOPLIST_FILE = "Target Support Files/ConsentViewController-tvOS/ResourceBundle-ConsentViewController-ConsentViewController-tvOS-Info.plist"; + PRODUCT_NAME = ConsentViewController; + SDKROOT = appletvos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 3; + TVOS_DEPLOYMENT_TARGET = 10.0; + WRAPPER_EXTENSION = bundle; + }; + name = Release; + }; 39560CD8986628B3DE0D6DA585AE79C3 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 72AFCE139A95EA3FC5E486F833DF6089 /* Quick-tvOS.release.xcconfig */; + baseConfigurationReference = 5D1725DC51D44B4115DEE79C60D671DC /* Quick-tvOS.release.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -4828,7 +5368,7 @@ }; 3D9543BCB95FA49B643F0FA3F7C9BB6D /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = C370FBBFB089CAB543BA629BDA8E72CE /* SwiftLint-tvOS.debug.xcconfig */; + baseConfigurationReference = 3721E35ADD486A483A31FD4BFF96009B /* SwiftLint-tvOS.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image"; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; @@ -4844,7 +5384,7 @@ }; 4B53A3A7165A4114EC3F02AF360A73AC /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = F4D85CFA3778CAF36B0F3D2E2013C4F9 /* Quick-iOS.release.xcconfig */; + baseConfigurationReference = 86B2F1A946BF1440B16A1062112D22FE /* Quick-iOS.release.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -4878,7 +5418,7 @@ }; 4E7A1F3635F55FB62825E3E3209068CA /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 127D55D2D74E4C7F7B687C73A953FF57 /* Quick-tvOS.debug.xcconfig */; + baseConfigurationReference = 717AD747CABD8F35DCEEBA3D35AB2453 /* Quick-tvOS.debug.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -4949,7 +5489,7 @@ }; 5A2FAE164F7CF0B0C1EC8D4ECCF137CD /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 8DED920B79FF3B0A23BFC4FE4ADCE9A9 /* Nimble-iOS.debug.xcconfig */; + baseConfigurationReference = 40815068C100A6167D4D3C47E57756B1 /* Nimble-iOS.debug.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -5058,7 +5598,7 @@ }; 65205A188656B883537EA60B1529DD25 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 397F0A4C22059A3F43C7F799FF127DC5 /* JSONView.release.xcconfig */; + baseConfigurationReference = FE3E5ADA5583AAAD42F4FE34CFB5CC81 /* JSONView.release.xcconfig */; buildSettings = { CLANG_ENABLE_OBJC_WEAK = NO; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -5091,40 +5631,6 @@ }; name = Release; }; - 6653100AE7A31D5763A2D5712C856154 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 83ECB2F1811355EFDEDA3A0384A21292 /* ConsentViewController-tvOS.debug.xcconfig */; - buildSettings = { - "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"; - GCC_PREFIX_HEADER = "Target Support Files/ConsentViewController-tvOS/ConsentViewController-tvOS-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/ConsentViewController-tvOS/ConsentViewController-tvOS-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MODULEMAP_FILE = "Target Support Files/ConsentViewController-tvOS/ConsentViewController-tvOS.modulemap"; - PRODUCT_MODULE_NAME = ConsentViewController; - PRODUCT_NAME = ConsentViewController; - SDKROOT = appletvos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = 3; - TVOS_DEPLOYMENT_TARGET = 10.0; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; 6B34316DB1F3C7B462E98E89FE54DB62 /* Debug */ = { isa = XCBuildConfiguration; baseConfigurationReference = C8131FF6AD0882BD02A7B7EC78AF0CDE /* Pods-SourcePointMetaAppUITests.debug.xcconfig */; @@ -5162,46 +5668,10 @@ }; name = Debug; }; - 704463E62D7D5712DE2757466939A86D /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 2CA7954C5E980886049E8C04F534B9D1 /* Wormholy.debug.xcconfig */; - buildSettings = { - CODE_SIGNING_ALLOWED = NO; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Wormholy"; - IBSC_MODULE = Wormholy; - INFOPLIST_FILE = "Target Support Files/Wormholy/ResourceBundle-Wormholy-Wormholy-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - PRODUCT_NAME = Wormholy; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - WRAPPER_EXTENSION = bundle; - }; - name = Debug; - }; - 73ECEBF2240A9CA654FBACE5DD384511 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 0DE75CD9833B750BE6C6AF736A82C346 /* ConsentViewController-tvOS.release.xcconfig */; - buildSettings = { - CODE_SIGNING_ALLOWED = NO; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/ConsentViewController-tvOS"; - IBSC_MODULE = ConsentViewController; - INFOPLIST_FILE = "Target Support Files/ConsentViewController-tvOS/ResourceBundle-ConsentViewController-ConsentViewController-tvOS-Info.plist"; - PRODUCT_NAME = ConsentViewController; - SDKROOT = appletvos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 3; - TVOS_DEPLOYMENT_TARGET = 10.0; - WRAPPER_EXTENSION = bundle; - }; - name = Release; - }; - 75DF0E1D9ADB795BE44367F4A962835C /* Debug */ = { + 7368AFC2CEEA996A255DAF6205F72F69 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 386A66D9CFBBAFEE1BB1C8675A87001F /* Pods-AuthExample.debug.xcconfig */; + baseConfigurationReference = 1836C79E905BFED1185217A961DE5924 /* Down.debug.xcconfig */; buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; - CLANG_ENABLE_OBJC_WEAK = NO; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; @@ -5210,34 +5680,34 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "Target Support Files/Pods-AuthExample/Pods-AuthExample-Info.plist"; + GCC_PREFIX_HEADER = "Target Support Files/Down/Down-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/Down/Down-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", "@loader_path/Frameworks", ); - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-AuthExample/Pods-AuthExample.modulemap"; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SDKROOT = iphoneos; + MODULEMAP_FILE = "Target Support Files/Down/Down.modulemap"; + PRODUCT_MODULE_NAME = Down; + PRODUCT_NAME = Down; + SDKROOT = appletvos; SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.1; + TARGETED_DEVICE_FAMILY = 3; + TVOS_DEPLOYMENT_TARGET = 9.0; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; name = Debug; }; - 799C76EF532413DAA33CBB117A3AC7FE /* Debug */ = { + 75DF0E1D9ADB795BE44367F4A962835C /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = BA36FFECCCE8F0C5DF4B2C03698A3AE4 /* Pods-NativePMExampleApp.debug.xcconfig */; + baseConfigurationReference = 386A66D9CFBBAFEE1BB1C8675A87001F /* Pods-AuthExample.debug.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CLANG_ENABLE_OBJC_WEAK = NO; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; @@ -5246,46 +5716,29 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "Target Support Files/Pods-NativePMExampleApp/Pods-NativePMExampleApp-Info.plist"; + INFOPLIST_FILE = "Target Support Files/Pods-AuthExample/Pods-AuthExample-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", "@loader_path/Frameworks", ); MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-NativePMExampleApp/Pods-NativePMExampleApp.modulemap"; + MODULEMAP_FILE = "Target Support Files/Pods-AuthExample/Pods-AuthExample.modulemap"; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PODS_ROOT = "$(SRCROOT)"; PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SDKROOT = appletvos; + SDKROOT = iphoneos; SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 3; - TVOS_DEPLOYMENT_TARGET = 10.0; + TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; name = Debug; }; - 825F302C19618924779D6C7B40477EFA /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 3505EF66D2FB134666A5C95FA4918169 /* Wormholy.release.xcconfig */; - buildSettings = { - CODE_SIGNING_ALLOWED = NO; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Wormholy"; - IBSC_MODULE = Wormholy; - INFOPLIST_FILE = "Target Support Files/Wormholy/ResourceBundle-Wormholy-Wormholy-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - PRODUCT_NAME = Wormholy; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - WRAPPER_EXTENSION = bundle; - }; - name = Release; - }; 828203A879FC8E858119953A985C3F7E /* Release */ = { isa = XCBuildConfiguration; baseConfigurationReference = 6D660DDE4C1F24DC68B23DB115142AEC /* Pods-AuthExampleUITests.release.xcconfig */; @@ -5400,7 +5853,7 @@ }; 8B089B7CAE3110CAE8EFBB063995AB4A /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 2CA7954C5E980886049E8C04F534B9D1 /* Wormholy.debug.xcconfig */; + baseConfigurationReference = 42A51D82D7093FF4E1BF5B76F611BD58 /* Wormholy.debug.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -5432,23 +5885,6 @@ }; name = Debug; }; - 8EC7B9C3AC74A283DE09D49D4F299FC1 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = D5CB4803FC1A3665897B70D806E94A6B /* ConsentViewController-iOS.release.xcconfig */; - buildSettings = { - CODE_SIGNING_ALLOWED = NO; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/ConsentViewController-iOS"; - IBSC_MODULE = ConsentViewController; - INFOPLIST_FILE = "Target Support Files/ConsentViewController-iOS/ResourceBundle-ConsentViewController-ConsentViewController-iOS-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; - PRODUCT_NAME = ConsentViewController; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - WRAPPER_EXTENSION = bundle; - }; - name = Release; - }; 94884B251F9A0BE6B0F7E3C6394DA1DF /* Release */ = { isa = XCBuildConfiguration; baseConfigurationReference = 7DADFC5D46A6CCFCFCEB51BB9D3392E4 /* Pods-SourcePointMetaAppUITests.release.xcconfig */; @@ -5489,7 +5925,7 @@ }; 96629609EE1D8616C19C2BEBECAA5115 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 5B8A7E9E70968A22000244F01D1CF7E4 /* Quick-iOS.debug.xcconfig */; + baseConfigurationReference = C1A5FA27905F9B4BACFA1D7F792D487A /* Quick-iOS.debug.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -5520,6 +5956,23 @@ }; name = Debug; }; + 9989AB64FE032930765A7531D97D0DBD /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = D0262F6E1102D80F0CBBA489C56292D1 /* ConsentViewController-iOS.debug.xcconfig */; + buildSettings = { + CODE_SIGNING_ALLOWED = NO; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/ConsentViewController-iOS"; + IBSC_MODULE = ConsentViewController; + INFOPLIST_FILE = "Target Support Files/ConsentViewController-iOS/ResourceBundle-ConsentViewController-ConsentViewController-iOS-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + PRODUCT_NAME = ConsentViewController; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + WRAPPER_EXTENSION = bundle; + }; + name = Debug; + }; 9BD94977283C2AD5CDD617F193F901D3 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { @@ -5585,7 +6038,7 @@ }; 9D8C08F259B4E57381CFE8BC28467628 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 5E56D48E8C5D520A541E6F0400BC1BBF /* IQKeyboardManagerSwift.release.xcconfig */; + baseConfigurationReference = F548BFEA0ABCD63735858C1C7E3660AD /* IQKeyboardManagerSwift.release.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -5620,7 +6073,7 @@ }; 9F4DFDE713B9C221AAFD11B6992009B3 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = B892E26A0BF548EF8357B4CF25CFA74C /* SwiftLint-iOS.release.xcconfig */; + baseConfigurationReference = 08C21BB1D865A9409170888F294A9126 /* SwiftLint-iOS.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; @@ -5712,7 +6165,7 @@ }; A7812D2D557FB7A8DD3B9BC3BE12CDFC /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = F7AA6E6E11F02BDA6EAC3022F9FA39C2 /* Nimble-tvOS.release.xcconfig */; + baseConfigurationReference = 4EA6C625C79E315252C57908F8B8C681 /* Nimble-tvOS.release.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -5744,22 +6197,42 @@ }; name = Release; }; - B8B45ED6A796969798E51623F42E3B2A /* Debug */ = { + B63BFD9DAB26AA5ACD8A5C08795E9B9E /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = D0262F6E1102D80F0CBBA489C56292D1 /* ConsentViewController-iOS.debug.xcconfig */; + baseConfigurationReference = 7AD18DE8C07E493F29F21F71772D684F /* Pods-NativePMExampleAppUITests.release.xcconfig */; buildSettings = { - CODE_SIGNING_ALLOWED = NO; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/ConsentViewController-iOS"; - IBSC_MODULE = ConsentViewController; - INFOPLIST_FILE = "Target Support Files/ConsentViewController-iOS/ResourceBundle-ConsentViewController-ConsentViewController-iOS-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; - PRODUCT_NAME = ConsentViewController; - SDKROOT = iphoneos; + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = 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"; + INFOPLIST_FILE = "Target Support Files/Pods-NativePMExampleAppUITests/Pods-NativePMExampleAppUITests-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-NativePMExampleAppUITests/Pods-NativePMExampleAppUITests.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = appletvos; SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - WRAPPER_EXTENSION = bundle; + TARGETED_DEVICE_FAMILY = 3; + TVOS_DEPLOYMENT_TARGET = 10.0; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; }; - name = Debug; + name = Release; }; BA3D16E8A5C864B26AE6A1CCC67DDB8E /* Release */ = { isa = XCBuildConfiguration; @@ -5799,6 +6272,74 @@ }; name = Release; }; + C4E1E7A6C8DCE99556EA549184B27500 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 83ECB2F1811355EFDEDA3A0384A21292 /* ConsentViewController-tvOS.debug.xcconfig */; + buildSettings = { + "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"; + GCC_PREFIX_HEADER = "Target Support Files/ConsentViewController-tvOS/ConsentViewController-tvOS-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/ConsentViewController-tvOS/ConsentViewController-tvOS-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MODULEMAP_FILE = "Target Support Files/ConsentViewController-tvOS/ConsentViewController-tvOS.modulemap"; + PRODUCT_MODULE_NAME = ConsentViewController; + PRODUCT_NAME = ConsentViewController; + SDKROOT = appletvos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 3; + TVOS_DEPLOYMENT_TARGET = 10.0; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + C83721588C9178534E59FEB9569F0851 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = BB99BA06CBE242DB60211532AF6D3446 /* Wormholy.release.xcconfig */; + buildSettings = { + CODE_SIGNING_ALLOWED = NO; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Wormholy"; + IBSC_MODULE = Wormholy; + INFOPLIST_FILE = "Target Support Files/Wormholy/ResourceBundle-Wormholy-Wormholy-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + PRODUCT_NAME = Wormholy; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + WRAPPER_EXTENSION = bundle; + }; + name = Release; + }; + CE3CBD372C3D36ED71836DD780CCAE18 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = D5CB4803FC1A3665897B70D806E94A6B /* ConsentViewController-iOS.release.xcconfig */; + buildSettings = { + CODE_SIGNING_ALLOWED = NO; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/ConsentViewController-iOS"; + IBSC_MODULE = ConsentViewController; + INFOPLIST_FILE = "Target Support Files/ConsentViewController-iOS/ResourceBundle-ConsentViewController-ConsentViewController-iOS-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 10.0; + PRODUCT_NAME = ConsentViewController; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + WRAPPER_EXTENSION = bundle; + }; + name = Release; + }; D3A67E8404FC38559FF4E0D88769BB47 /* Debug */ = { isa = XCBuildConfiguration; baseConfigurationReference = CA3196906642F926213FD7D7BE1EEEE3 /* Pods-SPGDPRExampleAppUITests.debug.xcconfig */; @@ -5836,10 +6377,11 @@ }; name = Debug; }; - D594BC0BF8B35EB92BE24B6A7DF284EB /* Release */ = { + D4147402B26DFEA2D124B3D6C99C1925 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 0DE75CD9833B750BE6C6AF736A82C346 /* ConsentViewController-tvOS.release.xcconfig */; + baseConfigurationReference = 00A6150EF71F7EC4E9DF1B20FBE31654 /* Pods-NativePMExampleApp.release.xcconfig */; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; @@ -5848,23 +6390,76 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/ConsentViewController-tvOS/ConsentViewController-tvOS-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/ConsentViewController-tvOS/ConsentViewController-tvOS-Info.plist"; + INFOPLIST_FILE = "Target Support Files/Pods-NativePMExampleApp/Pods-NativePMExampleApp-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", "@loader_path/Frameworks", ); - MODULEMAP_FILE = "Target Support Files/ConsentViewController-tvOS/ConsentViewController-tvOS.modulemap"; - PRODUCT_MODULE_NAME = ConsentViewController; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-NativePMExampleApp/Pods-NativePMExampleApp.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = appletvos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 3; + TVOS_DEPLOYMENT_TARGET = 10.0; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + D56BB205BEC36F7C394D80921E8C673A /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 83ECB2F1811355EFDEDA3A0384A21292 /* ConsentViewController-tvOS.debug.xcconfig */; + buildSettings = { + CODE_SIGNING_ALLOWED = NO; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/ConsentViewController-tvOS"; + IBSC_MODULE = ConsentViewController; + INFOPLIST_FILE = "Target Support Files/ConsentViewController-tvOS/ResourceBundle-ConsentViewController-ConsentViewController-tvOS-Info.plist"; PRODUCT_NAME = ConsentViewController; SDKROOT = appletvos; SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = 3; TVOS_DEPLOYMENT_TARGET = 10.0; + WRAPPER_EXTENSION = bundle; + }; + name = Debug; + }; + D5B3C041BF6C2863E2E774F608788754 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 14CC9F07ACC4CAD18A2A4F5AFF7D3D44 /* Down.release.xcconfig */; + buildSettings = { + "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"; + GCC_PREFIX_HEADER = "Target Support Files/Down/Down-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/Down/Down-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MODULEMAP_FILE = "Target Support Files/Down/Down.modulemap"; + PRODUCT_MODULE_NAME = Down; + PRODUCT_NAME = Down; + SDKROOT = appletvos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.1; + TARGETED_DEVICE_FAMILY = 3; + TVOS_DEPLOYMENT_TARGET = 9.0; VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; @@ -5908,9 +6503,9 @@ }; name = Debug; }; - DB0CD8F74366F2A582B60CCD0571728E /* Release */ = { + D690A4AA6F8BB8504920A15CCFBD215C /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 7AD18DE8C07E493F29F21F71772D684F /* Pods-NativePMExampleAppUITests.release.xcconfig */; + baseConfigurationReference = 17E9762D087007658323A8BC59C33F9C /* Pods-NativePMExampleAppUITests.debug.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -5939,11 +6534,10 @@ SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = 3; TVOS_DEPLOYMENT_TARGET = 10.0; - VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Release; + name = Debug; }; E424F35D4AF69317585EE0726154027A /* Debug */ = { isa = XCBuildConfiguration; @@ -6051,7 +6645,7 @@ }; F0377F003E77F0F91AC8FEE0F297E927 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = E06B7D9C0840E93914F99525D781AB6B /* IQKeyboardManagerSwift.debug.xcconfig */; + baseConfigurationReference = 03E6DD0FCA9C5A4862739B575FA5EC61 /* IQKeyboardManagerSwift.debug.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -6123,7 +6717,7 @@ }; FA79029750CFB9B7DB87C58A1293B239 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 532A5A315BE6A3839436AC7D9725B9F6 /* Nimble-iOS.release.xcconfig */; + baseConfigurationReference = D1A51BD19FF4F43299CFD85B8CB5BFC9 /* Nimble-iOS.release.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -6195,11 +6789,11 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 063E3C5A270A37E751F48F50F5CCAEFE /* Build configuration list for PBXNativeTarget "Pods-NativePMExampleAppUITests" */ = { + 10275298945DA3F5189C597D009E75E5 /* Build configuration list for PBXNativeTarget "ConsentViewController-tvOS-ConsentViewController" */ = { isa = XCConfigurationList; buildConfigurations = ( - 10A9C857744AC237C738A0C19858DCA7 /* Debug */, - DB0CD8F74366F2A582B60CCD0571728E /* Release */, + D56BB205BEC36F7C394D80921E8C673A /* Debug */, + 391DA3E474DC6A133EB2420042B2C16D /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -6267,15 +6861,6 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 5233CD6BA4EA487C95ADC0774AC270C6 /* Build configuration list for PBXNativeTarget "ConsentViewController-tvOS" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 6653100AE7A31D5763A2D5712C856154 /* Debug */, - D594BC0BF8B35EB92BE24B6A7DF284EB /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; 5C01044BD27EFFBA936CA5C274AF8ADA /* Build configuration list for PBXNativeTarget "Pods-ObjC-ExampleApp" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -6303,6 +6888,15 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + 6F1C03DBEBD03FAF1A1860A90B0F5C46 /* Build configuration list for PBXNativeTarget "Wormholy-Wormholy" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 270CBB0E903D0E7B41CBEC6211592750 /* Debug */, + C83721588C9178534E59FEB9569F0851 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; 6F4036EF217B05C74462DC446343FB74 /* Build configuration list for PBXNativeTarget "Nimble-iOS" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -6321,6 +6915,15 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + 7B0F76B1C06EA56DDBE87A0EE81F361F /* Build configuration list for PBXNativeTarget "ConsentViewController-tvOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C4E1E7A6C8DCE99556EA549184B27500 /* Debug */, + 38D4FBB26C7FFF1164291CA50299C642 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; 82522820FDEA059D178B48B92140EA18 /* Build configuration list for PBXNativeTarget "Pods-SourcePointMetaAppUITests" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -6330,11 +6933,11 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 84491A3C019073BB3D5B392B775380F3 /* Build configuration list for PBXNativeTarget "ConsentViewController-tvOS-ConsentViewController" */ = { + 8BC7EBA66E56F008F3EB75205DC1B174 /* Build configuration list for PBXNativeTarget "Down" */ = { isa = XCConfigurationList; buildConfigurations = ( - 0BDB186C206CF8A9BD55549DECED4F78 /* Debug */, - 73ECEBF2240A9CA654FBACE5DD384511 /* Release */, + 7368AFC2CEEA996A255DAF6205F72F69 /* Debug */, + D5B3C041BF6C2863E2E774F608788754 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -6366,6 +6969,15 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + A33A563DC7AF034BA028761292BFC81C /* Build configuration list for PBXNativeTarget "ConsentViewController-iOS-ConsentViewController" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 9989AB64FE032930765A7531D97D0DBD /* Debug */, + CE3CBD372C3D36ED71836DD780CCAE18 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; A3CD09CFE63569E1B4BE5F2A197D88AA /* Build configuration list for PBXNativeTarget "JSONView" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -6402,20 +7014,20 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - D5CCDDCFF1C3B171F67DE788B61C1E27 /* Build configuration list for PBXNativeTarget "ConsentViewController-iOS-ConsentViewController" */ = { + BC76FF67FC62C9C3FDEB937EA8CF06E5 /* Build configuration list for PBXNativeTarget "Pods-NativePMExampleAppUITests" */ = { isa = XCConfigurationList; buildConfigurations = ( - B8B45ED6A796969798E51623F42E3B2A /* Debug */, - 8EC7B9C3AC74A283DE09D49D4F299FC1 /* Release */, + D690A4AA6F8BB8504920A15CCFBD215C /* Debug */, + B63BFD9DAB26AA5ACD8A5C08795E9B9E /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - E63D9917C6EF845BEC92865C1B2FAF8E /* Build configuration list for PBXNativeTarget "Wormholy-Wormholy" */ = { + D0586DB7EA80A14145DF9B811442BC26 /* Build configuration list for PBXNativeTarget "Pods-NativePMExampleApp" */ = { isa = XCConfigurationList; buildConfigurations = ( - 704463E62D7D5712DE2757466939A86D /* Debug */, - 825F302C19618924779D6C7B40477EFA /* Release */, + 2BF554184FF176AA666254F962EE913B /* Debug */, + D4147402B26DFEA2D124B3D6C99C1925 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -6429,15 +7041,6 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - E9903ECC83659D287F9D84C5CC449921 /* Build configuration list for PBXNativeTarget "Pods-NativePMExampleApp" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 799C76EF532413DAA33CBB117A3AC7FE /* Debug */, - 374991558904FFCD9232554477E13F54 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; FA6BC2B1351F5C60DBAE0C17E7946A9D /* Build configuration list for PBXNativeTarget "Pods-ConsentViewController_Example" */ = { isa = XCConfigurationList; buildConfigurations = ( diff --git a/Example/Pods/Target Support Files/ConsentViewController-tvOS/ConsentViewController-tvOS.debug.xcconfig b/Example/Pods/Target Support Files/ConsentViewController-tvOS/ConsentViewController-tvOS.debug.xcconfig index c9ee25d04..7b79d77ed 100644 --- a/Example/Pods/Target Support Files/ConsentViewController-tvOS/ConsentViewController-tvOS.debug.xcconfig +++ b/Example/Pods/Target Support Files/ConsentViewController-tvOS/ConsentViewController-tvOS.debug.xcconfig @@ -1,7 +1,9 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/ConsentViewController-tvOS +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Down" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift +OTHER_LDFLAGS = $(inherited) -framework "Down" OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) diff --git a/Example/Pods/Target Support Files/ConsentViewController-tvOS/ConsentViewController-tvOS.release.xcconfig b/Example/Pods/Target Support Files/ConsentViewController-tvOS/ConsentViewController-tvOS.release.xcconfig index c9ee25d04..7b79d77ed 100644 --- a/Example/Pods/Target Support Files/ConsentViewController-tvOS/ConsentViewController-tvOS.release.xcconfig +++ b/Example/Pods/Target Support Files/ConsentViewController-tvOS/ConsentViewController-tvOS.release.xcconfig @@ -1,7 +1,9 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/ConsentViewController-tvOS +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Down" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift +OTHER_LDFLAGS = $(inherited) -framework "Down" OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) diff --git a/Example/Pods/Target Support Files/Down/Down-Info.plist b/Example/Pods/Target Support Files/Down/Down-Info.plist new file mode 100644 index 000000000..84e965b93 --- /dev/null +++ b/Example/Pods/Target Support Files/Down/Down-Info.plist @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>CFBundleDevelopmentRegion</key> + <string>${PODS_DEVELOPMENT_LANGUAGE}</string> + <key>CFBundleExecutable</key> + <string>${EXECUTABLE_NAME}</string> + <key>CFBundleIdentifier</key> + <string>${PRODUCT_BUNDLE_IDENTIFIER}</string> + <key>CFBundleInfoDictionaryVersion</key> + <string>6.0</string> + <key>CFBundleName</key> + <string>${PRODUCT_NAME}</string> + <key>CFBundlePackageType</key> + <string>FMWK</string> + <key>CFBundleShortVersionString</key> + <string>0.9.5</string> + <key>CFBundleSignature</key> + <string>????</string> + <key>CFBundleVersion</key> + <string>${CURRENT_PROJECT_VERSION}</string> + <key>NSPrincipalClass</key> + <string></string> +</dict> +</plist> diff --git a/Example/Pods/Target Support Files/Down/Down-dummy.m b/Example/Pods/Target Support Files/Down/Down-dummy.m new file mode 100644 index 000000000..7e4c783af --- /dev/null +++ b/Example/Pods/Target Support Files/Down/Down-dummy.m @@ -0,0 +1,5 @@ +#import <Foundation/Foundation.h> +@interface PodsDummy_Down : NSObject +@end +@implementation PodsDummy_Down +@end diff --git a/Example/Pods/Target Support Files/Down/Down-prefix.pch b/Example/Pods/Target Support Files/Down/Down-prefix.pch new file mode 100644 index 000000000..beb2a2441 --- /dev/null +++ b/Example/Pods/Target Support Files/Down/Down-prefix.pch @@ -0,0 +1,12 @@ +#ifdef __OBJC__ +#import <UIKit/UIKit.h> +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + diff --git a/Example/Pods/Target Support Files/Down/Down-umbrella.h b/Example/Pods/Target Support Files/Down/Down-umbrella.h new file mode 100644 index 000000000..6f858dacd --- /dev/null +++ b/Example/Pods/Target Support Files/Down/Down-umbrella.h @@ -0,0 +1,17 @@ +#ifdef __OBJC__ +#import <UIKit/UIKit.h> +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + +#import "Down.h" + +FOUNDATION_EXPORT double DownVersionNumber; +FOUNDATION_EXPORT const unsigned char DownVersionString[]; + diff --git a/Example/Pods/Target Support Files/Down/Down.debug.xcconfig b/Example/Pods/Target Support Files/Down/Down.debug.xcconfig new file mode 100644 index 000000000..08495ac62 --- /dev/null +++ b/Example/Pods/Target Support Files/Down/Down.debug.xcconfig @@ -0,0 +1,15 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Down +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/Down +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +SWIFT_INCLUDE_PATHS = $(inherited) $(SRCROOT)/Down/Source/cmark/** +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Example/Pods/Target Support Files/Down/Down.modulemap b/Example/Pods/Target Support Files/Down/Down.modulemap new file mode 100644 index 000000000..aa732b545 --- /dev/null +++ b/Example/Pods/Target Support Files/Down/Down.modulemap @@ -0,0 +1,6 @@ +framework module Down { + umbrella header "Down-umbrella.h" + + export * + module * { export * } +} diff --git a/Example/Pods/Target Support Files/Down/Down.release.xcconfig b/Example/Pods/Target Support Files/Down/Down.release.xcconfig new file mode 100644 index 000000000..08495ac62 --- /dev/null +++ b/Example/Pods/Target Support Files/Down/Down.release.xcconfig @@ -0,0 +1,15 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Down +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/Down +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +SWIFT_INCLUDE_PATHS = $(inherited) $(SRCROOT)/Down/Source/cmark/** +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Example/Pods/Target Support Files/Pods-NativePMExampleApp/Pods-NativePMExampleApp-acknowledgements.markdown b/Example/Pods/Target Support Files/Pods-NativePMExampleApp/Pods-NativePMExampleApp-acknowledgements.markdown index 235a7495f..8c43b49f8 100644 --- a/Example/Pods/Target Support Files/Pods-NativePMExampleApp/Pods-NativePMExampleApp-acknowledgements.markdown +++ b/Example/Pods/Target Support Files/Pods-NativePMExampleApp/Pods-NativePMExampleApp-acknowledgements.markdown @@ -48,4 +48,225 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +## Down + +The MIT License (MIT) + +Copyright (c) 2016 Rob Phillips. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----- + +cmark + +Copyright (c) 2014, John MacFarlane + +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +----- + +houdini.h, houdini_href_e.c, houdini_html_e.c, houdini_html_u.c, +html_unescape.gperf, html_unescape.h + +derive from https://github.com/vmg/houdini (with some modifications) + +Copyright (C) 2012 Vicent Martí + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----- + +buffer.h, buffer.c, chunk.h + +are derived from code (C) 2012 Github, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----- + +utf8.c and utf8.c + +are derived from utf8proc +(<http://www.public-software-group.org/utf8proc>), +(C) 2009 Public Software Group e. V., Berlin, Germany. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +----- + +The normalization code in runtests.py was derived from the +markdowntest project, Copyright 2013 Karl Dubost: + +The MIT License (MIT) + +Copyright (c) 2013 Karl Dubost + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----- + +The CommonMark spec (test/spec.txt) is + +Copyright (C) 2014-15 John MacFarlane + +Released under the Creative Commons CC-BY-SA 4.0 license: +<http://creativecommons.org/licenses/by-sa/4.0/>. + +----- + +The test software in test/ is + +Copyright (c) 2014, John MacFarlane + +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +----- + +The normalization code in runtests.py was derived from the +markdowntest project, Copyright 2013 Karl Dubost: + +The MIT License (MIT) + +Copyright (c) 2013 Karl Dubost + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. Generated by CocoaPods - https://cocoapods.org diff --git a/Example/Pods/Target Support Files/Pods-NativePMExampleApp/Pods-NativePMExampleApp-acknowledgements.plist b/Example/Pods/Target Support Files/Pods-NativePMExampleApp/Pods-NativePMExampleApp-acknowledgements.plist index 1d7cce169..bf939aab9 100644 --- a/Example/Pods/Target Support Files/Pods-NativePMExampleApp/Pods-NativePMExampleApp-acknowledgements.plist +++ b/Example/Pods/Target Support Files/Pods-NativePMExampleApp/Pods-NativePMExampleApp-acknowledgements.plist @@ -72,6 +72,233 @@ SOFTWARE. <key>Type</key> <string>PSGroupSpecifier</string> </dict> + <dict> + <key>FooterText</key> + <string>The MIT License (MIT) + +Copyright (c) 2016 Rob Phillips. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----- + +cmark + +Copyright (c) 2014, John MacFarlane + +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +----- + +houdini.h, houdini_href_e.c, houdini_html_e.c, houdini_html_u.c, +html_unescape.gperf, html_unescape.h + +derive from https://github.com/vmg/houdini (with some modifications) + +Copyright (C) 2012 Vicent Martí + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----- + +buffer.h, buffer.c, chunk.h + +are derived from code (C) 2012 Github, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----- + +utf8.c and utf8.c + +are derived from utf8proc +(<http://www.public-software-group.org/utf8proc>), +(C) 2009 Public Software Group e. V., Berlin, Germany. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +----- + +The normalization code in runtests.py was derived from the +markdowntest project, Copyright 2013 Karl Dubost: + +The MIT License (MIT) + +Copyright (c) 2013 Karl Dubost + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----- + +The CommonMark spec (test/spec.txt) is + +Copyright (C) 2014-15 John MacFarlane + +Released under the Creative Commons CC-BY-SA 4.0 license: +<http://creativecommons.org/licenses/by-sa/4.0/>. + +----- + +The test software in test/ is + +Copyright (c) 2014, John MacFarlane + +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +----- + +The normalization code in runtests.py was derived from the +markdowntest project, Copyright 2013 Karl Dubost: + +The MIT License (MIT) + +Copyright (c) 2013 Karl Dubost + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</string> + <key>License</key> + <string>MIT</string> + <key>Title</key> + <string>Down</string> + <key>Type</key> + <string>PSGroupSpecifier</string> + </dict> <dict> <key>FooterText</key> <string>Generated by CocoaPods - https://cocoapods.org</string> diff --git a/Example/Pods/Target Support Files/Pods-NativePMExampleApp/Pods-NativePMExampleApp-frameworks-Debug-input-files.xcfilelist b/Example/Pods/Target Support Files/Pods-NativePMExampleApp/Pods-NativePMExampleApp-frameworks-Debug-input-files.xcfilelist index a869e7a1a..72bc76542 100644 --- a/Example/Pods/Target Support Files/Pods-NativePMExampleApp/Pods-NativePMExampleApp-frameworks-Debug-input-files.xcfilelist +++ b/Example/Pods/Target Support Files/Pods-NativePMExampleApp/Pods-NativePMExampleApp-frameworks-Debug-input-files.xcfilelist @@ -1,2 +1,3 @@ ${PODS_ROOT}/Target Support Files/Pods-NativePMExampleApp/Pods-NativePMExampleApp-frameworks.sh -${BUILT_PRODUCTS_DIR}/ConsentViewController-tvOS/ConsentViewController.framework \ No newline at end of file +${BUILT_PRODUCTS_DIR}/ConsentViewController-tvOS/ConsentViewController.framework +${BUILT_PRODUCTS_DIR}/Down/Down.framework \ No newline at end of file diff --git a/Example/Pods/Target Support Files/Pods-NativePMExampleApp/Pods-NativePMExampleApp-frameworks-Debug-output-files.xcfilelist b/Example/Pods/Target Support Files/Pods-NativePMExampleApp/Pods-NativePMExampleApp-frameworks-Debug-output-files.xcfilelist index 169c8c2cb..ab74ab138 100644 --- a/Example/Pods/Target Support Files/Pods-NativePMExampleApp/Pods-NativePMExampleApp-frameworks-Debug-output-files.xcfilelist +++ b/Example/Pods/Target Support Files/Pods-NativePMExampleApp/Pods-NativePMExampleApp-frameworks-Debug-output-files.xcfilelist @@ -1 +1,2 @@ -${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/ConsentViewController.framework \ No newline at end of file +${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/ConsentViewController.framework +${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Down.framework \ No newline at end of file diff --git a/Example/Pods/Target Support Files/Pods-NativePMExampleApp/Pods-NativePMExampleApp-frameworks-Release-input-files.xcfilelist b/Example/Pods/Target Support Files/Pods-NativePMExampleApp/Pods-NativePMExampleApp-frameworks-Release-input-files.xcfilelist index a869e7a1a..72bc76542 100644 --- a/Example/Pods/Target Support Files/Pods-NativePMExampleApp/Pods-NativePMExampleApp-frameworks-Release-input-files.xcfilelist +++ b/Example/Pods/Target Support Files/Pods-NativePMExampleApp/Pods-NativePMExampleApp-frameworks-Release-input-files.xcfilelist @@ -1,2 +1,3 @@ ${PODS_ROOT}/Target Support Files/Pods-NativePMExampleApp/Pods-NativePMExampleApp-frameworks.sh -${BUILT_PRODUCTS_DIR}/ConsentViewController-tvOS/ConsentViewController.framework \ No newline at end of file +${BUILT_PRODUCTS_DIR}/ConsentViewController-tvOS/ConsentViewController.framework +${BUILT_PRODUCTS_DIR}/Down/Down.framework \ No newline at end of file diff --git a/Example/Pods/Target Support Files/Pods-NativePMExampleApp/Pods-NativePMExampleApp-frameworks-Release-output-files.xcfilelist b/Example/Pods/Target Support Files/Pods-NativePMExampleApp/Pods-NativePMExampleApp-frameworks-Release-output-files.xcfilelist index 169c8c2cb..ab74ab138 100644 --- a/Example/Pods/Target Support Files/Pods-NativePMExampleApp/Pods-NativePMExampleApp-frameworks-Release-output-files.xcfilelist +++ b/Example/Pods/Target Support Files/Pods-NativePMExampleApp/Pods-NativePMExampleApp-frameworks-Release-output-files.xcfilelist @@ -1 +1,2 @@ -${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/ConsentViewController.framework \ No newline at end of file +${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/ConsentViewController.framework +${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Down.framework \ No newline at end of file diff --git a/Example/Pods/Target Support Files/Pods-NativePMExampleApp/Pods-NativePMExampleApp-frameworks.sh b/Example/Pods/Target Support Files/Pods-NativePMExampleApp/Pods-NativePMExampleApp-frameworks.sh index 38084dde7..a7f5a7eea 100755 --- a/Example/Pods/Target Support Files/Pods-NativePMExampleApp/Pods-NativePMExampleApp-frameworks.sh +++ b/Example/Pods/Target Support Files/Pods-NativePMExampleApp/Pods-NativePMExampleApp-frameworks.sh @@ -177,9 +177,11 @@ code_sign_if_enabled() { if [[ "$CONFIGURATION" == "Debug" ]]; then install_framework "${BUILT_PRODUCTS_DIR}/ConsentViewController-tvOS/ConsentViewController.framework" + install_framework "${BUILT_PRODUCTS_DIR}/Down/Down.framework" fi if [[ "$CONFIGURATION" == "Release" ]]; then install_framework "${BUILT_PRODUCTS_DIR}/ConsentViewController-tvOS/ConsentViewController.framework" + install_framework "${BUILT_PRODUCTS_DIR}/Down/Down.framework" fi if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then wait diff --git a/Example/Pods/Target Support Files/Pods-NativePMExampleApp/Pods-NativePMExampleApp.debug.xcconfig b/Example/Pods/Target Support Files/Pods-NativePMExampleApp/Pods-NativePMExampleApp.debug.xcconfig index 1e397e614..7a6dc8644 100644 --- a/Example/Pods/Target Support Files/Pods-NativePMExampleApp/Pods-NativePMExampleApp.debug.xcconfig +++ b/Example/Pods/Target Support Files/Pods-NativePMExampleApp/Pods-NativePMExampleApp.debug.xcconfig @@ -1,11 +1,11 @@ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO -FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/ConsentViewController-tvOS" +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/ConsentViewController-tvOS" "${PODS_CONFIGURATION_BUILD_DIR}/Down" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/ConsentViewController-tvOS/ConsentViewController.framework/Headers" +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/ConsentViewController-tvOS/ConsentViewController.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Down/Down.framework/Headers" LD_RUNPATH_SEARCH_PATHS = $(inherited) /usr/lib/swift '@executable_path/Frameworks' '@loader_path/Frameworks' LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift -OTHER_LDFLAGS = $(inherited) -framework "ConsentViewController" +OTHER_LDFLAGS = $(inherited) -framework "ConsentViewController" -framework "Down" OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) diff --git a/Example/Pods/Target Support Files/Pods-NativePMExampleApp/Pods-NativePMExampleApp.release.xcconfig b/Example/Pods/Target Support Files/Pods-NativePMExampleApp/Pods-NativePMExampleApp.release.xcconfig index 1e397e614..7a6dc8644 100644 --- a/Example/Pods/Target Support Files/Pods-NativePMExampleApp/Pods-NativePMExampleApp.release.xcconfig +++ b/Example/Pods/Target Support Files/Pods-NativePMExampleApp/Pods-NativePMExampleApp.release.xcconfig @@ -1,11 +1,11 @@ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO -FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/ConsentViewController-tvOS" +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/ConsentViewController-tvOS" "${PODS_CONFIGURATION_BUILD_DIR}/Down" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/ConsentViewController-tvOS/ConsentViewController.framework/Headers" +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/ConsentViewController-tvOS/ConsentViewController.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Down/Down.framework/Headers" LD_RUNPATH_SEARCH_PATHS = $(inherited) /usr/lib/swift '@executable_path/Frameworks' '@loader_path/Frameworks' LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift -OTHER_LDFLAGS = $(inherited) -framework "ConsentViewController" +OTHER_LDFLAGS = $(inherited) -framework "ConsentViewController" -framework "Down" OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) diff --git a/Example/Pods/Target Support Files/Pods-NativePMExampleAppUITests/Pods-NativePMExampleAppUITests-acknowledgements.markdown b/Example/Pods/Target Support Files/Pods-NativePMExampleAppUITests/Pods-NativePMExampleAppUITests-acknowledgements.markdown index 4a8b28b0f..f72262732 100644 --- a/Example/Pods/Target Support Files/Pods-NativePMExampleAppUITests/Pods-NativePMExampleAppUITests-acknowledgements.markdown +++ b/Example/Pods/Target Support Files/Pods-NativePMExampleAppUITests/Pods-NativePMExampleAppUITests-acknowledgements.markdown @@ -24,6 +24,227 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +## Down + +The MIT License (MIT) + +Copyright (c) 2016 Rob Phillips. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----- + +cmark + +Copyright (c) 2014, John MacFarlane + +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +----- + +houdini.h, houdini_href_e.c, houdini_html_e.c, houdini_html_u.c, +html_unescape.gperf, html_unescape.h + +derive from https://github.com/vmg/houdini (with some modifications) + +Copyright (C) 2012 Vicent Martí + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----- + +buffer.h, buffer.c, chunk.h + +are derived from code (C) 2012 Github, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----- + +utf8.c and utf8.c + +are derived from utf8proc +(<http://www.public-software-group.org/utf8proc>), +(C) 2009 Public Software Group e. V., Berlin, Germany. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +----- + +The normalization code in runtests.py was derived from the +markdowntest project, Copyright 2013 Karl Dubost: + +The MIT License (MIT) + +Copyright (c) 2013 Karl Dubost + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----- + +The CommonMark spec (test/spec.txt) is + +Copyright (C) 2014-15 John MacFarlane + +Released under the Creative Commons CC-BY-SA 4.0 license: +<http://creativecommons.org/licenses/by-sa/4.0/>. + +----- + +The test software in test/ is + +Copyright (c) 2014, John MacFarlane + +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +----- + +The normalization code in runtests.py was derived from the +markdowntest project, Copyright 2013 Karl Dubost: + +The MIT License (MIT) + +Copyright (c) 2013 Karl Dubost + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + ## Nimble Apache License diff --git a/Example/Pods/Target Support Files/Pods-NativePMExampleAppUITests/Pods-NativePMExampleAppUITests-acknowledgements.plist b/Example/Pods/Target Support Files/Pods-NativePMExampleAppUITests/Pods-NativePMExampleAppUITests-acknowledgements.plist index 8c0cf432d..8f48364b7 100644 --- a/Example/Pods/Target Support Files/Pods-NativePMExampleAppUITests/Pods-NativePMExampleAppUITests-acknowledgements.plist +++ b/Example/Pods/Target Support Files/Pods-NativePMExampleAppUITests/Pods-NativePMExampleAppUITests-acknowledgements.plist @@ -41,6 +41,233 @@ THE SOFTWARE. <key>Type</key> <string>PSGroupSpecifier</string> </dict> + <dict> + <key>FooterText</key> + <string>The MIT License (MIT) + +Copyright (c) 2016 Rob Phillips. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +----- + +cmark + +Copyright (c) 2014, John MacFarlane + +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +----- + +houdini.h, houdini_href_e.c, houdini_html_e.c, houdini_html_u.c, +html_unescape.gperf, html_unescape.h + +derive from https://github.com/vmg/houdini (with some modifications) + +Copyright (C) 2012 Vicent Martí + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----- + +buffer.h, buffer.c, chunk.h + +are derived from code (C) 2012 Github, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +----- + +utf8.c and utf8.c + +are derived from utf8proc +(<http://www.public-software-group.org/utf8proc>), +(C) 2009 Public Software Group e. V., Berlin, Germany. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +----- + +The normalization code in runtests.py was derived from the +markdowntest project, Copyright 2013 Karl Dubost: + +The MIT License (MIT) + +Copyright (c) 2013 Karl Dubost + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +----- + +The CommonMark spec (test/spec.txt) is + +Copyright (C) 2014-15 John MacFarlane + +Released under the Creative Commons CC-BY-SA 4.0 license: +<http://creativecommons.org/licenses/by-sa/4.0/>. + +----- + +The test software in test/ is + +Copyright (c) 2014, John MacFarlane + +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +----- + +The normalization code in runtests.py was derived from the +markdowntest project, Copyright 2013 Karl Dubost: + +The MIT License (MIT) + +Copyright (c) 2013 Karl Dubost + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</string> + <key>License</key> + <string>MIT</string> + <key>Title</key> + <string>Down</string> + <key>Type</key> + <string>PSGroupSpecifier</string> + </dict> <dict> <key>FooterText</key> <string>Apache License diff --git a/Example/Pods/Target Support Files/Pods-NativePMExampleAppUITests/Pods-NativePMExampleAppUITests-frameworks-Debug-input-files.xcfilelist b/Example/Pods/Target Support Files/Pods-NativePMExampleAppUITests/Pods-NativePMExampleAppUITests-frameworks-Debug-input-files.xcfilelist index a6e7420e3..41b50da36 100644 --- a/Example/Pods/Target Support Files/Pods-NativePMExampleAppUITests/Pods-NativePMExampleAppUITests-frameworks-Debug-input-files.xcfilelist +++ b/Example/Pods/Target Support Files/Pods-NativePMExampleAppUITests/Pods-NativePMExampleAppUITests-frameworks-Debug-input-files.xcfilelist @@ -1,4 +1,5 @@ ${PODS_ROOT}/Target Support Files/Pods-NativePMExampleAppUITests/Pods-NativePMExampleAppUITests-frameworks.sh ${BUILT_PRODUCTS_DIR}/ConsentViewController-tvOS/ConsentViewController.framework +${BUILT_PRODUCTS_DIR}/Down/Down.framework ${BUILT_PRODUCTS_DIR}/Nimble-tvOS/Nimble.framework ${BUILT_PRODUCTS_DIR}/Quick-tvOS/Quick.framework \ No newline at end of file diff --git a/Example/Pods/Target Support Files/Pods-NativePMExampleAppUITests/Pods-NativePMExampleAppUITests-frameworks-Debug-output-files.xcfilelist b/Example/Pods/Target Support Files/Pods-NativePMExampleAppUITests/Pods-NativePMExampleAppUITests-frameworks-Debug-output-files.xcfilelist index 3a975e916..6c424833a 100644 --- a/Example/Pods/Target Support Files/Pods-NativePMExampleAppUITests/Pods-NativePMExampleAppUITests-frameworks-Debug-output-files.xcfilelist +++ b/Example/Pods/Target Support Files/Pods-NativePMExampleAppUITests/Pods-NativePMExampleAppUITests-frameworks-Debug-output-files.xcfilelist @@ -1,3 +1,4 @@ ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/ConsentViewController.framework +${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Down.framework ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Nimble.framework ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Quick.framework \ No newline at end of file diff --git a/Example/Pods/Target Support Files/Pods-NativePMExampleAppUITests/Pods-NativePMExampleAppUITests-frameworks-Release-input-files.xcfilelist b/Example/Pods/Target Support Files/Pods-NativePMExampleAppUITests/Pods-NativePMExampleAppUITests-frameworks-Release-input-files.xcfilelist index a6e7420e3..41b50da36 100644 --- a/Example/Pods/Target Support Files/Pods-NativePMExampleAppUITests/Pods-NativePMExampleAppUITests-frameworks-Release-input-files.xcfilelist +++ b/Example/Pods/Target Support Files/Pods-NativePMExampleAppUITests/Pods-NativePMExampleAppUITests-frameworks-Release-input-files.xcfilelist @@ -1,4 +1,5 @@ ${PODS_ROOT}/Target Support Files/Pods-NativePMExampleAppUITests/Pods-NativePMExampleAppUITests-frameworks.sh ${BUILT_PRODUCTS_DIR}/ConsentViewController-tvOS/ConsentViewController.framework +${BUILT_PRODUCTS_DIR}/Down/Down.framework ${BUILT_PRODUCTS_DIR}/Nimble-tvOS/Nimble.framework ${BUILT_PRODUCTS_DIR}/Quick-tvOS/Quick.framework \ No newline at end of file diff --git a/Example/Pods/Target Support Files/Pods-NativePMExampleAppUITests/Pods-NativePMExampleAppUITests-frameworks-Release-output-files.xcfilelist b/Example/Pods/Target Support Files/Pods-NativePMExampleAppUITests/Pods-NativePMExampleAppUITests-frameworks-Release-output-files.xcfilelist index 3a975e916..6c424833a 100644 --- a/Example/Pods/Target Support Files/Pods-NativePMExampleAppUITests/Pods-NativePMExampleAppUITests-frameworks-Release-output-files.xcfilelist +++ b/Example/Pods/Target Support Files/Pods-NativePMExampleAppUITests/Pods-NativePMExampleAppUITests-frameworks-Release-output-files.xcfilelist @@ -1,3 +1,4 @@ ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/ConsentViewController.framework +${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Down.framework ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Nimble.framework ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Quick.framework \ No newline at end of file diff --git a/Example/Pods/Target Support Files/Pods-NativePMExampleAppUITests/Pods-NativePMExampleAppUITests-frameworks.sh b/Example/Pods/Target Support Files/Pods-NativePMExampleAppUITests/Pods-NativePMExampleAppUITests-frameworks.sh index b9ee29b4e..a6b42f5a4 100755 --- a/Example/Pods/Target Support Files/Pods-NativePMExampleAppUITests/Pods-NativePMExampleAppUITests-frameworks.sh +++ b/Example/Pods/Target Support Files/Pods-NativePMExampleAppUITests/Pods-NativePMExampleAppUITests-frameworks.sh @@ -177,11 +177,13 @@ code_sign_if_enabled() { if [[ "$CONFIGURATION" == "Debug" ]]; then install_framework "${BUILT_PRODUCTS_DIR}/ConsentViewController-tvOS/ConsentViewController.framework" + install_framework "${BUILT_PRODUCTS_DIR}/Down/Down.framework" install_framework "${BUILT_PRODUCTS_DIR}/Nimble-tvOS/Nimble.framework" install_framework "${BUILT_PRODUCTS_DIR}/Quick-tvOS/Quick.framework" fi if [[ "$CONFIGURATION" == "Release" ]]; then install_framework "${BUILT_PRODUCTS_DIR}/ConsentViewController-tvOS/ConsentViewController.framework" + install_framework "${BUILT_PRODUCTS_DIR}/Down/Down.framework" install_framework "${BUILT_PRODUCTS_DIR}/Nimble-tvOS/Nimble.framework" install_framework "${BUILT_PRODUCTS_DIR}/Quick-tvOS/Quick.framework" fi diff --git a/Example/Pods/Target Support Files/Pods-NativePMExampleAppUITests/Pods-NativePMExampleAppUITests.debug.xcconfig b/Example/Pods/Target Support Files/Pods-NativePMExampleAppUITests/Pods-NativePMExampleAppUITests.debug.xcconfig index 40cb2d153..91ab3c604 100644 --- a/Example/Pods/Target Support Files/Pods-NativePMExampleAppUITests/Pods-NativePMExampleAppUITests.debug.xcconfig +++ b/Example/Pods/Target Support Files/Pods-NativePMExampleAppUITests/Pods-NativePMExampleAppUITests.debug.xcconfig @@ -1,11 +1,11 @@ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO -FRAMEWORK_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/Library/Frameworks" "${PODS_CONFIGURATION_BUILD_DIR}/ConsentViewController-tvOS" "${PODS_CONFIGURATION_BUILD_DIR}/Nimble-tvOS" "${PODS_CONFIGURATION_BUILD_DIR}/Quick-tvOS" +FRAMEWORK_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/Library/Frameworks" "${PODS_CONFIGURATION_BUILD_DIR}/ConsentViewController-tvOS" "${PODS_CONFIGURATION_BUILD_DIR}/Down" "${PODS_CONFIGURATION_BUILD_DIR}/Nimble-tvOS" "${PODS_CONFIGURATION_BUILD_DIR}/Quick-tvOS" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/ConsentViewController-tvOS/ConsentViewController.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Nimble-tvOS/Nimble.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Quick-tvOS/Quick.framework/Headers" +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/ConsentViewController-tvOS/ConsentViewController.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Down/Down.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Nimble-tvOS/Nimble.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Quick-tvOS/Quick.framework/Headers" LD_RUNPATH_SEARCH_PATHS = $(inherited) /usr/lib/swift "$(PLATFORM_DIR)/Developer/Library/Frameworks" '@executable_path/Frameworks' '@loader_path/Frameworks' LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift -OTHER_LDFLAGS = $(inherited) -framework "ConsentViewController" -framework "Nimble" -framework "Quick" -framework "XCTest" -weak_framework "XCTest" +OTHER_LDFLAGS = $(inherited) -framework "ConsentViewController" -framework "Down" -framework "Nimble" -framework "Quick" -framework "XCTest" -weak_framework "XCTest" OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) diff --git a/Example/Pods/Target Support Files/Pods-NativePMExampleAppUITests/Pods-NativePMExampleAppUITests.release.xcconfig b/Example/Pods/Target Support Files/Pods-NativePMExampleAppUITests/Pods-NativePMExampleAppUITests.release.xcconfig index 40cb2d153..91ab3c604 100644 --- a/Example/Pods/Target Support Files/Pods-NativePMExampleAppUITests/Pods-NativePMExampleAppUITests.release.xcconfig +++ b/Example/Pods/Target Support Files/Pods-NativePMExampleAppUITests/Pods-NativePMExampleAppUITests.release.xcconfig @@ -1,11 +1,11 @@ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO -FRAMEWORK_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/Library/Frameworks" "${PODS_CONFIGURATION_BUILD_DIR}/ConsentViewController-tvOS" "${PODS_CONFIGURATION_BUILD_DIR}/Nimble-tvOS" "${PODS_CONFIGURATION_BUILD_DIR}/Quick-tvOS" +FRAMEWORK_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/Library/Frameworks" "${PODS_CONFIGURATION_BUILD_DIR}/ConsentViewController-tvOS" "${PODS_CONFIGURATION_BUILD_DIR}/Down" "${PODS_CONFIGURATION_BUILD_DIR}/Nimble-tvOS" "${PODS_CONFIGURATION_BUILD_DIR}/Quick-tvOS" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/ConsentViewController-tvOS/ConsentViewController.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Nimble-tvOS/Nimble.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Quick-tvOS/Quick.framework/Headers" +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/ConsentViewController-tvOS/ConsentViewController.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Down/Down.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Nimble-tvOS/Nimble.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Quick-tvOS/Quick.framework/Headers" LD_RUNPATH_SEARCH_PATHS = $(inherited) /usr/lib/swift "$(PLATFORM_DIR)/Developer/Library/Frameworks" '@executable_path/Frameworks' '@loader_path/Frameworks' LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift -OTHER_LDFLAGS = $(inherited) -framework "ConsentViewController" -framework "Nimble" -framework "Quick" -framework "XCTest" -weak_framework "XCTest" +OTHER_LDFLAGS = $(inherited) -framework "ConsentViewController" -framework "Down" -framework "Nimble" -framework "Quick" -framework "XCTest" -weak_framework "XCTest" OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)