[
  {
    "path": ".gitignore",
    "content": ".DS_Store\nSmartlookConsentSDK.xcworkspace/xcuserdata/*\nSmartlookConsentSDK.xcworkspace/xcuserdatad/*\nxcuserdata\n"
  },
  {
    "path": ".swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n   version = \"1.0\">\n   <FileRef\n      location = \"self:\">\n   </FileRef>\n</Workspace>\n"
  },
  {
    "path": "CHANGELOG.md",
    "content": "# Changelog\r\nAll notable changes to this project will be documented here.\r\n\r\n## [1.6.0] - 2021-01-15\r\n### Added\r\n- Support for apps managed with SceneDelegate\r\n\r\n## [1.3.0] - 2020-04-21\r\n### Fixed\r\n- Fixed issues with dialog not appearing in new apps due to `keyWindow` behaviour changes in latest iOS\r\n\r\n## [1.2.0] - 2019-11-04\r\n### Fixed\r\n- Consent form sheet behaviour on iOS 13\r\n- Dark mode design\r\n\r\n## [1.1.0] - 2019-03-07\r\n### Added\r\n- Documentation and code examples in Demo Apps of `Settings.bundle` integration\r\n- When Consents settings are touched, a `SmartlookConsentSDK.consentsTouchedNotification` notification is posted\r\n"
  },
  {
    "path": "Demos/ConsentsDemo/ConsentsDemo.xcodeproj/project.pbxproj",
    "content": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 51;\n\tobjects = {\n\n/* Begin PBXBuildFile section */\n\t\t8FA873F725AC5515003CA69F /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 338579CF221AD646006861C1 /* AppDelegate.swift */; };\n\t\t8FA873F925AC5515003CA69F /* SmartlookConsentSDK.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8FAA366925A8618A00945E91 /* SmartlookConsentSDK.framework */; };\n\t\t8FA873FC25AC5515003CA69F /* Settings.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 8FB02CBF25AC51EF00EC75E8 /* Settings.bundle */; };\n\t\t8FA873FD25AC5515003CA69F /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 338579D8221AD647006861C1 /* LaunchScreen.storyboard */; };\n\t\t8FA873FE25AC5515003CA69F /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 338579D6221AD647006861C1 /* Assets.xcassets */; };\n\t\t8FA873FF25AC5515003CA69F /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 338579D3221AD646006861C1 /* Main.storyboard */; };\n\t\t8FA8740225AC5515003CA69F /* SmartlookConsentSDK.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 8FAA366925A8618A00945E91 /* SmartlookConsentSDK.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };\n\t\t8FA8740A25AC5747003CA69F /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 8FA8740825AC5747003CA69F /* Localizable.strings */; };\n\t\t8FA8740E25AC58EB003CA69F /* MainViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 338579D1221AD646006861C1 /* MainViewController.swift */; };\n/* End PBXBuildFile section */\n\n/* Begin PBXCopyFilesBuildPhase section */\n\t\t8FA8740125AC5515003CA69F /* Embed Frameworks */ = {\n\t\t\tisa = PBXCopyFilesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tdstPath = \"\";\n\t\t\tdstSubfolderSpec = 10;\n\t\t\tfiles = (\n\t\t\t\t8FA8740225AC5515003CA69F /* SmartlookConsentSDK.framework in Embed Frameworks */,\n\t\t\t);\n\t\t\tname = \"Embed Frameworks\";\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXCopyFilesBuildPhase section */\n\n/* Begin PBXFileReference section */\n\t\t338579CF221AD646006861C1 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = \"<group>\"; };\n\t\t338579D1221AD646006861C1 /* MainViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainViewController.swift; sourceTree = \"<group>\"; };\n\t\t338579D4221AD646006861C1 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = \"<group>\"; };\n\t\t338579D6221AD647006861C1 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = \"<group>\"; };\n\t\t338579D9221AD647006861C1 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = \"<group>\"; };\n\t\t338579DB221AD647006861C1 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = \"<group>\"; };\n\t\t8FA8740625AC5515003CA69F /* ConsentsDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ConsentsDemo.app; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\t8FA8740925AC5747003CA69F /* Base */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Base; path = ../../Shared/Base.lproj/Localizable.strings; sourceTree = \"<group>\"; };\n\t\t8FAA366925A8618A00945E91 /* SmartlookConsentSDK.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SmartlookConsentSDK.framework; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\t8FB02CBF25AC51EF00EC75E8 /* Settings.bundle */ = {isa = PBXFileReference; lastKnownFileType = \"wrapper.plug-in\"; name = Settings.bundle; path = ../Shared/Settings.bundle; sourceTree = \"<group>\"; };\n/* End PBXFileReference section */\n\n/* Begin PBXFrameworksBuildPhase section */\n\t\t8FA873F825AC5515003CA69F /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t8FA873F925AC5515003CA69F /* SmartlookConsentSDK.framework in Frameworks */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXFrameworksBuildPhase section */\n\n/* Begin PBXGroup section */\n\t\t338579C3221AD646006861C1 = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t8FB02CBF25AC51EF00EC75E8 /* Settings.bundle */,\n\t\t\t\t338579CE221AD646006861C1 /* Sources */,\n\t\t\t\t338579CD221AD646006861C1 /* Products */,\n\t\t\t\t8FAA366825A8618A00945E91 /* Frameworks */,\n\t\t\t);\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t338579CD221AD646006861C1 /* Products */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t8FA8740625AC5515003CA69F /* ConsentsDemo.app */,\n\t\t\t);\n\t\t\tname = Products;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t338579CE221AD646006861C1 /* Sources */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t338579CF221AD646006861C1 /* AppDelegate.swift */,\n\t\t\t\t338579D1221AD646006861C1 /* MainViewController.swift */,\n\t\t\t\t338579D3221AD646006861C1 /* Main.storyboard */,\n\t\t\t\t338579D6221AD647006861C1 /* Assets.xcassets */,\n\t\t\t\t338579D8221AD647006861C1 /* LaunchScreen.storyboard */,\n\t\t\t\t338579DB221AD647006861C1 /* Info.plist */,\n\t\t\t\t8FA8740825AC5747003CA69F /* Localizable.strings */,\n\t\t\t);\n\t\t\tpath = Sources;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t8FAA366825A8618A00945E91 /* Frameworks */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t8FAA366925A8618A00945E91 /* SmartlookConsentSDK.framework */,\n\t\t\t);\n\t\t\tname = Frameworks;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n/* End PBXGroup section */\n\n/* Begin PBXNativeTarget section */\n\t\t8FA873F525AC5515003CA69F /* ConsentsDemo */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = 8FA8740325AC5515003CA69F /* Build configuration list for PBXNativeTarget \"ConsentsDemo\" */;\n\t\t\tbuildPhases = (\n\t\t\t\t8FA873F625AC5515003CA69F /* Sources */,\n\t\t\t\t8FA873F825AC5515003CA69F /* Frameworks */,\n\t\t\t\t8FA873FA25AC5515003CA69F /* Resources */,\n\t\t\t\t8FA8740025AC5515003CA69F /* SwiftLint */,\n\t\t\t\t8FA8740125AC5515003CA69F /* Embed Frameworks */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t);\n\t\t\tname = ConsentsDemo;\n\t\t\tproductName = ConsentSDKDemo;\n\t\t\tproductReference = 8FA8740625AC5515003CA69F /* ConsentsDemo.app */;\n\t\t\tproductType = \"com.apple.product-type.application\";\n\t\t};\n/* End PBXNativeTarget section */\n\n/* Begin PBXProject section */\n\t\t338579C4221AD646006861C1 /* Project object */ = {\n\t\t\tisa = PBXProject;\n\t\t\tattributes = {\n\t\t\t\tLastSwiftUpdateCheck = 1010;\n\t\t\t\tLastUpgradeCheck = 1220;\n\t\t\t\tORGANIZATIONNAME = Smartlook;\n\t\t\t};\n\t\t\tbuildConfigurationList = 338579C7221AD646006861C1 /* Build configuration list for PBXProject \"ConsentsDemo\" */;\n\t\t\tcompatibilityVersion = \"Xcode 10.0\";\n\t\t\tdevelopmentRegion = en;\n\t\t\thasScannedForEncodings = 0;\n\t\t\tknownRegions = (\n\t\t\t\ten,\n\t\t\t\tBase,\n\t\t\t);\n\t\t\tmainGroup = 338579C3221AD646006861C1;\n\t\t\tproductRefGroup = 338579CD221AD646006861C1 /* Products */;\n\t\t\tprojectDirPath = \"\";\n\t\t\tprojectRoot = \"\";\n\t\t\ttargets = (\n\t\t\t\t8FA873F525AC5515003CA69F /* ConsentsDemo */,\n\t\t\t);\n\t\t};\n/* End PBXProject section */\n\n/* Begin PBXResourcesBuildPhase section */\n\t\t8FA873FA25AC5515003CA69F /* Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t8FA8740A25AC5747003CA69F /* Localizable.strings in Resources */,\n\t\t\t\t8FA873FC25AC5515003CA69F /* Settings.bundle in Resources */,\n\t\t\t\t8FA873FD25AC5515003CA69F /* LaunchScreen.storyboard in Resources */,\n\t\t\t\t8FA873FE25AC5515003CA69F /* Assets.xcassets in Resources */,\n\t\t\t\t8FA873FF25AC5515003CA69F /* Main.storyboard in Resources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXResourcesBuildPhase section */\n\n/* Begin PBXShellScriptBuildPhase section */\n\t\t8FA8740025AC5515003CA69F /* SwiftLint */ = {\n\t\t\tisa = PBXShellScriptBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\tinputFileListPaths = (\n\t\t\t);\n\t\t\tinputPaths = (\n\t\t\t);\n\t\t\tname = SwiftLint;\n\t\t\toutputFileListPaths = (\n\t\t\t);\n\t\t\toutputPaths = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t\tshellPath = /bin/sh;\n\t\t\tshellScript = \"if which swiftlint >/dev/null; then\\nswiftlint\\nfi\\n\";\n\t\t};\n/* End PBXShellScriptBuildPhase section */\n\n/* Begin PBXSourcesBuildPhase section */\n\t\t8FA873F625AC5515003CA69F /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t8FA8740E25AC58EB003CA69F /* MainViewController.swift in Sources */,\n\t\t\t\t8FA873F725AC5515003CA69F /* AppDelegate.swift in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXSourcesBuildPhase section */\n\n/* Begin PBXVariantGroup section */\n\t\t338579D3221AD646006861C1 /* Main.storyboard */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\t338579D4221AD646006861C1 /* Base */,\n\t\t\t);\n\t\t\tname = Main.storyboard;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t338579D8221AD647006861C1 /* LaunchScreen.storyboard */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\t338579D9221AD647006861C1 /* Base */,\n\t\t\t);\n\t\t\tname = LaunchScreen.storyboard;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t8FA8740825AC5747003CA69F /* Localizable.strings */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\t8FA8740925AC5747003CA69F /* Base */,\n\t\t\t);\n\t\t\tname = Localizable.strings;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n/* End PBXVariantGroup section */\n\n/* Begin XCBuildConfiguration section */\n\t\t338579DC221AD647006861C1 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tCLANG_ANALYZER_NONNULL = YES;\n\t\t\t\tCLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;\n\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"gnu++14\";\n\t\t\t\tCLANG_CXX_LIBRARY = \"libc++\";\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_WEAK = YES;\n\t\t\t\tCLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;\n\t\t\t\tCLANG_WARN_BOOL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_COMMA = YES;\n\t\t\t\tCLANG_WARN_CONSTANT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;\n\t\t\t\tCLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;\n\t\t\t\tCLANG_WARN_DOCUMENTATION_COMMENTS = YES;\n\t\t\t\tCLANG_WARN_EMPTY_BODY = YES;\n\t\t\t\tCLANG_WARN_ENUM_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_INFINITE_RECURSION = YES;\n\t\t\t\tCLANG_WARN_INT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;\n\t\t\t\tCLANG_WARN_OBJC_LITERAL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;\n\t\t\t\tCLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;\n\t\t\t\tCLANG_WARN_RANGE_LOOP_ANALYSIS = YES;\n\t\t\t\tCLANG_WARN_STRICT_PROTOTYPES = YES;\n\t\t\t\tCLANG_WARN_SUSPICIOUS_MOVE = YES;\n\t\t\t\tCLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;\n\t\t\t\tCLANG_WARN_UNREACHABLE_CODE = YES;\n\t\t\t\tCLANG_WARN__DUPLICATE_METHOD_MATCH = YES;\n\t\t\t\tCODE_SIGN_IDENTITY = \"iPhone Developer\";\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tDEBUG_INFORMATION_FORMAT = dwarf;\n\t\t\t\tENABLE_STRICT_OBJC_MSGSEND = YES;\n\t\t\t\tENABLE_TESTABILITY = YES;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu11;\n\t\t\t\tGCC_DYNAMIC_NO_PIC = NO;\n\t\t\t\tGCC_NO_COMMON_BLOCKS = YES;\n\t\t\t\tGCC_OPTIMIZATION_LEVEL = 0;\n\t\t\t\tGCC_PREPROCESSOR_DEFINITIONS = (\n\t\t\t\t\t\"DEBUG=1\",\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t);\n\t\t\t\tGCC_WARN_64_TO_32_BIT_CONVERSION = YES;\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;\n\t\t\t\tGCC_WARN_UNDECLARED_SELECTOR = YES;\n\t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;\n\t\t\t\tGCC_WARN_UNUSED_FUNCTION = YES;\n\t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 12.1;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;\n\t\t\t\tMTL_FAST_MATH = YES;\n\t\t\t\tONLY_ACTIVE_ARCH = YES;\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t\tSWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-Onone\";\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\t338579DD221AD647006861C1 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tCLANG_ANALYZER_NONNULL = YES;\n\t\t\t\tCLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;\n\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"gnu++14\";\n\t\t\t\tCLANG_CXX_LIBRARY = \"libc++\";\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_WEAK = YES;\n\t\t\t\tCLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;\n\t\t\t\tCLANG_WARN_BOOL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_COMMA = YES;\n\t\t\t\tCLANG_WARN_CONSTANT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;\n\t\t\t\tCLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;\n\t\t\t\tCLANG_WARN_DOCUMENTATION_COMMENTS = YES;\n\t\t\t\tCLANG_WARN_EMPTY_BODY = YES;\n\t\t\t\tCLANG_WARN_ENUM_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_INFINITE_RECURSION = YES;\n\t\t\t\tCLANG_WARN_INT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;\n\t\t\t\tCLANG_WARN_OBJC_LITERAL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;\n\t\t\t\tCLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;\n\t\t\t\tCLANG_WARN_RANGE_LOOP_ANALYSIS = YES;\n\t\t\t\tCLANG_WARN_STRICT_PROTOTYPES = YES;\n\t\t\t\tCLANG_WARN_SUSPICIOUS_MOVE = YES;\n\t\t\t\tCLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;\n\t\t\t\tCLANG_WARN_UNREACHABLE_CODE = YES;\n\t\t\t\tCLANG_WARN__DUPLICATE_METHOD_MATCH = YES;\n\t\t\t\tCODE_SIGN_IDENTITY = \"iPhone Developer\";\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tDEBUG_INFORMATION_FORMAT = \"dwarf-with-dsym\";\n\t\t\t\tENABLE_NS_ASSERTIONS = NO;\n\t\t\t\tENABLE_STRICT_OBJC_MSGSEND = YES;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu11;\n\t\t\t\tGCC_NO_COMMON_BLOCKS = YES;\n\t\t\t\tGCC_WARN_64_TO_32_BIT_CONVERSION = YES;\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;\n\t\t\t\tGCC_WARN_UNDECLARED_SELECTOR = YES;\n\t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;\n\t\t\t\tGCC_WARN_UNUSED_FUNCTION = YES;\n\t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 12.1;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = NO;\n\t\t\t\tMTL_FAST_MATH = YES;\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t\tSWIFT_COMPILATION_MODE = wholemodule;\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-O\";\n\t\t\t\tVALIDATE_PRODUCT = YES;\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\t8FA8740425AC5515003CA69F /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;\n\t\t\t\tCODE_SIGN_STYLE = Automatic;\n\t\t\t\tDEVELOPMENT_TEAM = 57MHDLMMHS;\n\t\t\t\tFRAMEWORK_SEARCH_PATHS = \"\";\n\t\t\t\tINFOPLIST_FILE = \"$(SRCROOT)/Sources/Info.plist\";\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = (\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t\t\"@executable_path/Frameworks\",\n\t\t\t\t);\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = com.smartlook.ConsentSDKDemo;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\t8FA8740525AC5515003CA69F /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;\n\t\t\t\tCODE_SIGN_STYLE = Automatic;\n\t\t\t\tDEVELOPMENT_TEAM = 57MHDLMMHS;\n\t\t\t\tFRAMEWORK_SEARCH_PATHS = \"\";\n\t\t\t\tINFOPLIST_FILE = \"$(SRCROOT)/Sources/Info.plist\";\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = (\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t\t\"@executable_path/Frameworks\",\n\t\t\t\t);\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = com.smartlook.ConsentSDKDemo;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n/* End XCBuildConfiguration section */\n\n/* Begin XCConfigurationList section */\n\t\t338579C7221AD646006861C1 /* Build configuration list for PBXProject \"ConsentsDemo\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\t338579DC221AD647006861C1 /* Debug */,\n\t\t\t\t338579DD221AD647006861C1 /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\t8FA8740325AC5515003CA69F /* Build configuration list for PBXNativeTarget \"ConsentsDemo\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\t8FA8740425AC5515003CA69F /* Debug */,\n\t\t\t\t8FA8740525AC5515003CA69F /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n/* End XCConfigurationList section */\n\t};\n\trootObject = 338579C4221AD646006861C1 /* Project object */;\n}\n"
  },
  {
    "path": "Demos/ConsentsDemo/ConsentsDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n   version = \"1.0\">\n   <FileRef\n      location = \"self:\">\n   </FileRef>\n</Workspace>\n"
  },
  {
    "path": "Demos/ConsentsDemo/ConsentsDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>IDEDidComputeMac32BitWarning</key>\n\t<true/>\n</dict>\n</plist>\n"
  },
  {
    "path": "Demos/ConsentsDemo/Sources/AppDelegate.swift",
    "content": "//\n//  AppDelegate.swift\n//  ConsentSDKDemo\n//\n//  Created by Pavel Kroh on 18/02/2019.\n//  Copyright © 2019 Smartlook. All rights reserved.\n//\n\nimport UIKit\nimport SmartlookConsentSDK\n\n@UIApplicationMain\nclass AppDelegate: UIResponder, UIApplicationDelegate {\n\n    var window: UIWindow?\n\n    // MARK: - Consent check\n\n    /** This method is to be invoked any time the app starts to check if the consents are provided\n     namely in:\n     - `application:didFinishWithLaunchingOptions` for the fresh start\n     - `application:WillEnterForeground` for app woken up from background (where possibly the consent\n     setting could be changed in system settings)\n     */\n    func checkConsentStates() {\n        var consentsSettingsDefaults = SmartlookConsentSDK.ConsentsSettings()\n        consentsSettingsDefaults.append((.privacy, .provided))\n        consentsSettingsDefaults.append((.analytics, .notProvided))\n        // adding a custom consent\n        // consentsSettingsDefaults.append((\"gdpr\", .notProvided))\n\n        SmartlookConsentSDK.check(with: consentsSettingsDefaults) {\n            if SmartlookConsentSDK.consentState(for: .analytics) == .provided {\n                // start analytics tools\n                // Smartlook.start(withKey: \"1a2b3c4e5f60\")\n            }\n        }\n    }\n\n    // MARK: - Application lifecycle\n\n    func application(_ application: UIApplication,\n                     didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {\n        checkConsentStates()\n        return true\n    }\n\n    func applicationWillEnterForeground(_ application: UIApplication) {\n        checkConsentStates()\n    }\n}\n"
  },
  {
    "path": "Demos/ConsentsDemo/Sources/Assets.xcassets/AppIcon.appiconset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"iphone\",\n      \"size\" : \"20x20\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"iphone\",\n      \"size\" : \"20x20\",\n      \"scale\" : \"3x\"\n    },\n    {\n      \"idiom\" : \"iphone\",\n      \"size\" : \"29x29\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"iphone\",\n      \"size\" : \"29x29\",\n      \"scale\" : \"3x\"\n    },\n    {\n      \"idiom\" : \"iphone\",\n      \"size\" : \"40x40\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"iphone\",\n      \"size\" : \"40x40\",\n      \"scale\" : \"3x\"\n    },\n    {\n      \"idiom\" : \"iphone\",\n      \"size\" : \"60x60\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"iphone\",\n      \"size\" : \"60x60\",\n      \"scale\" : \"3x\"\n    },\n    {\n      \"idiom\" : \"ipad\",\n      \"size\" : \"20x20\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"ipad\",\n      \"size\" : \"20x20\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"ipad\",\n      \"size\" : \"29x29\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"ipad\",\n      \"size\" : \"29x29\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"ipad\",\n      \"size\" : \"40x40\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"ipad\",\n      \"size\" : \"40x40\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"ipad\",\n      \"size\" : \"76x76\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"ipad\",\n      \"size\" : \"76x76\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"ipad\",\n      \"size\" : \"83.5x83.5\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"ios-marketing\",\n      \"size\" : \"1024x1024\",\n      \"scale\" : \"1x\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "Demos/ConsentsDemo/Sources/Assets.xcassets/Contents.json",
    "content": "{\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "Demos/ConsentsDemo/Sources/Base.lproj/LaunchScreen.storyboard",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB\" version=\"3.0\" toolsVersion=\"13122.16\" targetRuntime=\"iOS.CocoaTouch\" propertyAccessControl=\"none\" useAutolayout=\"YES\" launchScreen=\"YES\" useTraitCollections=\"YES\" useSafeAreas=\"YES\" colorMatched=\"YES\" initialViewController=\"01J-lp-oVM\">\n    <dependencies>\n        <plugIn identifier=\"com.apple.InterfaceBuilder.IBCocoaTouchPlugin\" version=\"13104.12\"/>\n        <capability name=\"Safe area layout guides\" minToolsVersion=\"9.0\"/>\n        <capability name=\"documents saved in the Xcode 8 format\" minToolsVersion=\"8.0\"/>\n    </dependencies>\n    <scenes>\n        <!--View Controller-->\n        <scene sceneID=\"EHf-IW-A2E\">\n            <objects>\n                <viewController id=\"01J-lp-oVM\" sceneMemberID=\"viewController\">\n                    <view key=\"view\" contentMode=\"scaleToFill\" id=\"Ze5-6b-2t3\">\n                        <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"375\" height=\"667\"/>\n                        <autoresizingMask key=\"autoresizingMask\" widthSizable=\"YES\" heightSizable=\"YES\"/>\n                        <color key=\"backgroundColor\" red=\"1\" green=\"1\" blue=\"1\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"sRGB\"/>\n                        <viewLayoutGuide key=\"safeArea\" id=\"6Tk-OE-BBY\"/>\n                    </view>\n                </viewController>\n                <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"iYj-Kq-Ea1\" userLabel=\"First Responder\" sceneMemberID=\"firstResponder\"/>\n            </objects>\n            <point key=\"canvasLocation\" x=\"53\" y=\"375\"/>\n        </scene>\n    </scenes>\n</document>\n"
  },
  {
    "path": "Demos/ConsentsDemo/Sources/Base.lproj/Main.storyboard",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB\" version=\"3.0\" toolsVersion=\"17701\" targetRuntime=\"iOS.CocoaTouch\" propertyAccessControl=\"none\" useAutolayout=\"YES\" useTraitCollections=\"YES\" useSafeAreas=\"YES\" colorMatched=\"YES\" initialViewController=\"mXd-qs-Tuh\">\n    <device id=\"retina6_1\" orientation=\"portrait\" appearance=\"light\"/>\n    <dependencies>\n        <deployment identifier=\"iOS\"/>\n        <plugIn identifier=\"com.apple.InterfaceBuilder.IBCocoaTouchPlugin\" version=\"17703\"/>\n        <capability name=\"Safe area layout guides\" minToolsVersion=\"9.0\"/>\n        <capability name=\"documents saved in the Xcode 8 format\" minToolsVersion=\"8.0\"/>\n    </dependencies>\n    <scenes>\n        <!--Main View Controller-->\n        <scene sceneID=\"BTY-lJ-pq9\">\n            <objects>\n                <viewController id=\"mXd-qs-Tuh\" customClass=\"MainViewController\" customModule=\"ConsentsDemo\" customModuleProvider=\"target\" sceneMemberID=\"viewController\">\n                    <view key=\"view\" contentMode=\"scaleToFill\" id=\"MMR-9h-mQx\">\n                        <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"414\" height=\"896\"/>\n                        <autoresizingMask key=\"autoresizingMask\" widthSizable=\"YES\" heightSizable=\"YES\"/>\n                        <subviews>\n                            <label opaque=\"NO\" userInteractionEnabled=\"NO\" contentMode=\"left\" horizontalHuggingPriority=\"251\" verticalHuggingPriority=\"251\" text=\"Smartlook Consent Demo\" textAlignment=\"center\" lineBreakMode=\"tailTruncation\" baselineAdjustment=\"alignBaselines\" minimumScaleFactor=\"0.5\" adjustsLetterSpacingToFitWidth=\"YES\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"xgV-tS-thK\">\n                                <rect key=\"frame\" x=\"16\" y=\"56\" width=\"382\" height=\"41\"/>\n                                <fontDescription key=\"fontDescription\" style=\"UICTFontTextStyleTitle0\"/>\n                                <nil key=\"textColor\"/>\n                                <nil key=\"highlightedColor\"/>\n                            </label>\n                            <label opaque=\"NO\" userInteractionEnabled=\"NO\" contentMode=\"left\" horizontalHuggingPriority=\"251\" verticalHuggingPriority=\"251\" text=\"Consents panel has been shown\" textAlignment=\"natural\" lineBreakMode=\"tailTruncation\" baselineAdjustment=\"alignBaselines\" minimumScaleFactor=\"0.5\" adjustsLetterSpacingToFitWidth=\"YES\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"niN-6t-20E\">\n                                <rect key=\"frame\" x=\"16\" y=\"129\" width=\"246\" height=\"21\"/>\n                                <fontDescription key=\"fontDescription\" style=\"UICTFontTextStyleBody\"/>\n                                <nil key=\"textColor\"/>\n                                <nil key=\"highlightedColor\"/>\n                            </label>\n                            <label opaque=\"NO\" userInteractionEnabled=\"NO\" contentMode=\"left\" horizontalHuggingPriority=\"251\" verticalHuggingPriority=\"251\" text=\"Privacy consent\" textAlignment=\"natural\" lineBreakMode=\"tailTruncation\" baselineAdjustment=\"alignBaselines\" minimumScaleFactor=\"0.5\" adjustsLetterSpacingToFitWidth=\"YES\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"eMH-Ld-eYV\">\n                                <rect key=\"frame\" x=\"16\" y=\"158\" width=\"246\" height=\"20.5\"/>\n                                <fontDescription key=\"fontDescription\" style=\"UICTFontTextStyleBody\"/>\n                                <nil key=\"textColor\"/>\n                                <nil key=\"highlightedColor\"/>\n                            </label>\n                            <label opaque=\"NO\" userInteractionEnabled=\"NO\" contentMode=\"left\" horizontalHuggingPriority=\"251\" verticalHuggingPriority=\"251\" text=\"Analytics consent\" textAlignment=\"natural\" lineBreakMode=\"tailTruncation\" baselineAdjustment=\"alignBaselines\" minimumScaleFactor=\"0.5\" adjustsLetterSpacingToFitWidth=\"YES\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"7f3-wJ-wxY\">\n                                <rect key=\"frame\" x=\"16\" y=\"186.5\" width=\"246\" height=\"20.5\"/>\n                                <fontDescription key=\"fontDescription\" style=\"UICTFontTextStyleBody\"/>\n                                <nil key=\"textColor\"/>\n                                <nil key=\"highlightedColor\"/>\n                            </label>\n                            <view contentMode=\"scaleToFill\" horizontalHuggingPriority=\"1000\" horizontalCompressionResistancePriority=\"1000\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"8fo-g4-Czz\">\n                                <rect key=\"frame\" x=\"274\" y=\"158\" width=\"20.5\" height=\"20.5\"/>\n                                <color key=\"backgroundColor\" white=\"1\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"genericGamma22GrayColorSpace\"/>\n                                <constraints>\n                                    <constraint firstAttribute=\"width\" secondItem=\"8fo-g4-Czz\" secondAttribute=\"height\" multiplier=\"1:1\" id=\"M3u-Tb-aAN\"/>\n                                </constraints>\n                            </view>\n                            <view contentMode=\"scaleToFill\" horizontalHuggingPriority=\"1000\" horizontalCompressionResistancePriority=\"1000\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"dag-Y1-SgF\">\n                                <rect key=\"frame\" x=\"274\" y=\"186.5\" width=\"20.5\" height=\"20.5\"/>\n                                <color key=\"backgroundColor\" white=\"1\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"genericGamma22GrayColorSpace\"/>\n                                <constraints>\n                                    <constraint firstAttribute=\"width\" secondItem=\"dag-Y1-SgF\" secondAttribute=\"height\" multiplier=\"1:1\" id=\"AZN-Jv-gqu\"/>\n                                </constraints>\n                            </view>\n                            <view contentMode=\"scaleToFill\" horizontalHuggingPriority=\"1000\" horizontalCompressionResistancePriority=\"1000\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"9XM-0E-dit\">\n                                <rect key=\"frame\" x=\"274\" y=\"129\" width=\"21\" height=\"21\"/>\n                                <color key=\"backgroundColor\" white=\"1\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"genericGamma22GrayColorSpace\"/>\n                                <constraints>\n                                    <constraint firstAttribute=\"width\" secondItem=\"9XM-0E-dit\" secondAttribute=\"height\" multiplier=\"1:1\" id=\"Hns-iU-sAe\"/>\n                                </constraints>\n                            </view>\n                            <button opaque=\"NO\" contentMode=\"scaleToFill\" contentHorizontalAlignment=\"center\" contentVerticalAlignment=\"center\" buttonType=\"system\" lineBreakMode=\"middleTruncation\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"b7n-LX-fLk\">\n                                <rect key=\"frame\" x=\"16\" y=\"239\" width=\"128\" height=\"30\"/>\n                                <state key=\"normal\" title=\"Review consents...\"/>\n                                <connections>\n                                    <action selector=\"reviewConsents:\" destination=\"mXd-qs-Tuh\" eventType=\"touchUpInside\" id=\"D95-ly-sdM\"/>\n                                </connections>\n                            </button>\n                            <button opaque=\"NO\" contentMode=\"scaleToFill\" contentHorizontalAlignment=\"center\" contentVerticalAlignment=\"center\" buttonType=\"system\" lineBreakMode=\"middleTruncation\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"N5C-JV-HoQ\">\n                                <rect key=\"frame\" x=\"16\" y=\"285\" width=\"140\" height=\"30\"/>\n                                <state key=\"normal\" title=\"Show app settings...\"/>\n                                <connections>\n                                    <action selector=\"showAppSettingsAction:\" destination=\"mXd-qs-Tuh\" eventType=\"touchUpInside\" id=\"aFj-yf-QbM\"/>\n                                </connections>\n                            </button>\n                        </subviews>\n                        <viewLayoutGuide key=\"safeArea\" id=\"lAI-jv-3h8\"/>\n                        <constraints>\n                            <constraint firstItem=\"b7n-LX-fLk\" firstAttribute=\"leading\" secondItem=\"lAI-jv-3h8\" secondAttribute=\"leading\" constant=\"16\" id=\"0MF-wa-iJE\"/>\n                            <constraint firstItem=\"lAI-jv-3h8\" firstAttribute=\"trailing\" secondItem=\"xgV-tS-thK\" secondAttribute=\"trailing\" constant=\"16\" id=\"0gs-k2-ItO\"/>\n                            <constraint firstItem=\"8fo-g4-Czz\" firstAttribute=\"height\" secondItem=\"eMH-Ld-eYV\" secondAttribute=\"height\" id=\"0xw-1T-tHM\"/>\n                            <constraint firstItem=\"9XM-0E-dit\" firstAttribute=\"height\" secondItem=\"niN-6t-20E\" secondAttribute=\"height\" id=\"2Ua-qd-Z0b\"/>\n                            <constraint firstItem=\"lAI-jv-3h8\" firstAttribute=\"trailing\" relation=\"greaterThanOrEqual\" secondItem=\"9XM-0E-dit\" secondAttribute=\"trailing\" constant=\"16\" id=\"3kt-Mv-mZH\"/>\n                            <constraint firstItem=\"8fo-g4-Czz\" firstAttribute=\"leading\" secondItem=\"9XM-0E-dit\" secondAttribute=\"leading\" id=\"3qx-d0-hfV\"/>\n                            <constraint firstItem=\"dag-Y1-SgF\" firstAttribute=\"width\" secondItem=\"dag-Y1-SgF\" secondAttribute=\"height\" multiplier=\"1:1\" id=\"8Ys-X0-fxE\"/>\n                            <constraint firstItem=\"8fo-g4-Czz\" firstAttribute=\"leading\" relation=\"greaterThanOrEqual\" secondItem=\"eMH-Ld-eYV\" secondAttribute=\"trailing\" constant=\"12\" id=\"AHp-XT-h7P\"/>\n                            <constraint firstItem=\"lAI-jv-3h8\" firstAttribute=\"trailing\" relation=\"greaterThanOrEqual\" secondItem=\"8fo-g4-Czz\" secondAttribute=\"trailing\" constant=\"16\" id=\"Bbk-rh-kUD\"/>\n                            <constraint firstItem=\"lAI-jv-3h8\" firstAttribute=\"trailing\" relation=\"greaterThanOrEqual\" secondItem=\"dag-Y1-SgF\" secondAttribute=\"trailing\" constant=\"16\" id=\"D09-Or-v33\"/>\n                            <constraint firstItem=\"9XM-0E-dit\" firstAttribute=\"leading\" relation=\"greaterThanOrEqual\" secondItem=\"niN-6t-20E\" secondAttribute=\"trailing\" constant=\"12\" id=\"DgD-AL-yZ0\"/>\n                            <constraint firstItem=\"9XM-0E-dit\" firstAttribute=\"leading\" secondItem=\"niN-6t-20E\" secondAttribute=\"trailing\" priority=\"750\" constant=\"12\" id=\"KrT-3r-Rzn\"/>\n                            <constraint firstItem=\"9XM-0E-dit\" firstAttribute=\"centerY\" secondItem=\"niN-6t-20E\" secondAttribute=\"centerY\" id=\"Lp2-p3-dA2\"/>\n                            <constraint firstItem=\"xgV-tS-thK\" firstAttribute=\"leading\" secondItem=\"lAI-jv-3h8\" secondAttribute=\"leading\" constant=\"16\" id=\"TBd-hS-AcD\"/>\n                            <constraint firstItem=\"eMH-Ld-eYV\" firstAttribute=\"leading\" secondItem=\"lAI-jv-3h8\" secondAttribute=\"leading\" constant=\"16\" id=\"Thw-TD-624\"/>\n                            <constraint firstItem=\"8fo-g4-Czz\" firstAttribute=\"centerY\" secondItem=\"eMH-Ld-eYV\" secondAttribute=\"centerY\" id=\"UAl-DI-9i0\"/>\n                            <constraint firstItem=\"7f3-wJ-wxY\" firstAttribute=\"leading\" secondItem=\"lAI-jv-3h8\" secondAttribute=\"leading\" constant=\"16\" id=\"b28-1f-v9X\"/>\n                            <constraint firstItem=\"b7n-LX-fLk\" firstAttribute=\"top\" secondItem=\"7f3-wJ-wxY\" secondAttribute=\"bottom\" constant=\"32\" id=\"b3n-6J-0Zx\"/>\n                            <constraint firstItem=\"dag-Y1-SgF\" firstAttribute=\"height\" secondItem=\"7f3-wJ-wxY\" secondAttribute=\"height\" id=\"bn3-F0-DdW\"/>\n                            <constraint firstItem=\"N5C-JV-HoQ\" firstAttribute=\"top\" secondItem=\"b7n-LX-fLk\" secondAttribute=\"bottom\" constant=\"16\" id=\"c6w-wq-EE8\"/>\n                            <constraint firstItem=\"dag-Y1-SgF\" firstAttribute=\"leading\" secondItem=\"8fo-g4-Czz\" secondAttribute=\"leading\" id=\"cIF-5R-I8g\"/>\n                            <constraint firstItem=\"8fo-g4-Czz\" firstAttribute=\"leading\" secondItem=\"eMH-Ld-eYV\" secondAttribute=\"trailing\" priority=\"750\" constant=\"12\" id=\"cck-we-TX4\"/>\n                            <constraint firstItem=\"7f3-wJ-wxY\" firstAttribute=\"top\" secondItem=\"eMH-Ld-eYV\" secondAttribute=\"bottom\" constant=\"8\" id=\"eCZ-RG-VOO\"/>\n                            <constraint firstItem=\"9XM-0E-dit\" firstAttribute=\"width\" secondItem=\"9XM-0E-dit\" secondAttribute=\"height\" multiplier=\"1:1\" id=\"fjA-r8-MRY\"/>\n                            <constraint firstItem=\"eMH-Ld-eYV\" firstAttribute=\"top\" secondItem=\"niN-6t-20E\" secondAttribute=\"bottom\" constant=\"8\" id=\"h72-Lw-1w1\"/>\n                            <constraint firstItem=\"dag-Y1-SgF\" firstAttribute=\"leading\" relation=\"greaterThanOrEqual\" secondItem=\"7f3-wJ-wxY\" secondAttribute=\"trailing\" constant=\"12\" id=\"jOc-fv-cjd\"/>\n                            <constraint firstItem=\"N5C-JV-HoQ\" firstAttribute=\"leading\" secondItem=\"lAI-jv-3h8\" secondAttribute=\"leading\" constant=\"16\" id=\"jn3-eG-Ram\"/>\n                            <constraint firstItem=\"dag-Y1-SgF\" firstAttribute=\"leading\" secondItem=\"7f3-wJ-wxY\" secondAttribute=\"trailing\" priority=\"750\" constant=\"12\" id=\"k6l-nv-BIP\"/>\n                            <constraint firstItem=\"dag-Y1-SgF\" firstAttribute=\"centerY\" secondItem=\"7f3-wJ-wxY\" secondAttribute=\"centerY\" id=\"kDs-ze-Mhb\"/>\n                            <constraint firstItem=\"xgV-tS-thK\" firstAttribute=\"top\" secondItem=\"lAI-jv-3h8\" secondAttribute=\"top\" constant=\"12\" id=\"s8a-6e-ADY\"/>\n                            <constraint firstItem=\"niN-6t-20E\" firstAttribute=\"top\" secondItem=\"xgV-tS-thK\" secondAttribute=\"bottom\" constant=\"32\" id=\"uwl-2c-Qc1\"/>\n                            <constraint firstItem=\"niN-6t-20E\" firstAttribute=\"leading\" secondItem=\"lAI-jv-3h8\" secondAttribute=\"leading\" constant=\"16\" id=\"z02-J9-DsC\"/>\n                        </constraints>\n                    </view>\n                    <connections>\n                        <outlet property=\"analyticsConsentIndicator\" destination=\"dag-Y1-SgF\" id=\"rmZ-k9-ym6\"/>\n                        <outlet property=\"consentPanelWasShown\" destination=\"9XM-0E-dit\" id=\"bEd-JP-8jO\"/>\n                        <outlet property=\"privacyConsentIndicator\" destination=\"8fo-g4-Czz\" id=\"Opa-7b-39U\"/>\n                    </connections>\n                </viewController>\n                <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"rlh-FN-O3E\" userLabel=\"First Responder\" sceneMemberID=\"firstResponder\"/>\n            </objects>\n            <point key=\"canvasLocation\" x=\"-2.3999999999999999\" y=\"-177.66116941529236\"/>\n        </scene>\n    </scenes>\n</document>\n"
  },
  {
    "path": "Demos/ConsentsDemo/Sources/Info.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>CFBundleDevelopmentRegion</key>\n\t<string>$(DEVELOPMENT_LANGUAGE)</string>\n\t<key>CFBundleDisplayName</key>\n\t<string>Consents Demo</string>\n\t<key>CFBundleExecutable</key>\n\t<string>$(EXECUTABLE_NAME)</string>\n\t<key>CFBundleIdentifier</key>\n\t<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>\n\t<key>CFBundleInfoDictionaryVersion</key>\n\t<string>6.0</string>\n\t<key>CFBundleName</key>\n\t<string>$(PRODUCT_NAME)</string>\n\t<key>CFBundlePackageType</key>\n\t<string>APPL</string>\n\t<key>CFBundleShortVersionString</key>\n\t<string>1.0</string>\n\t<key>CFBundleVersion</key>\n\t<string>1</string>\n\t<key>LSRequiresIPhoneOS</key>\n\t<true/>\n\t<key>UILaunchStoryboardName</key>\n\t<string>LaunchScreen</string>\n\t<key>UIMainStoryboardFile</key>\n\t<string>Main</string>\n\t<key>UIRequiredDeviceCapabilities</key>\n\t<array>\n\t\t<string>armv7</string>\n\t</array>\n\t<key>UISupportedInterfaceOrientations</key>\n\t<array>\n\t\t<string>UIInterfaceOrientationPortrait</string>\n\t\t<string>UIInterfaceOrientationLandscapeLeft</string>\n\t\t<string>UIInterfaceOrientationLandscapeRight</string>\n\t</array>\n\t<key>UISupportedInterfaceOrientations~ipad</key>\n\t<array>\n\t\t<string>UIInterfaceOrientationPortrait</string>\n\t\t<string>UIInterfaceOrientationPortraitUpsideDown</string>\n\t\t<string>UIInterfaceOrientationLandscapeLeft</string>\n\t\t<string>UIInterfaceOrientationLandscapeRight</string>\n\t</array>\n</dict>\n</plist>\n"
  },
  {
    "path": "Demos/ConsentsDemo/Sources/MainViewController.swift",
    "content": "//\n//  ViewController.swift\n//  ConsentSDKDemo\n//\n//  Created by Pavel Kroh on 18/02/2019.\n//  Copyright © 2019 Smartlook. All rights reserved.\n//\n\nimport UIKit\nimport SmartlookConsentSDK\n\nclass MainViewController: UIViewController {\n\n    // MARK: - UI Outlets\n\n    @IBOutlet weak var consentPanelWasShown: UIView!\n    @IBOutlet weak var privacyConsentIndicator: UIView!\n    @IBOutlet weak var analyticsConsentIndicator: UIView!\n\n    // MARK: - View lifecycle\n\n    override func viewDidLoad() {\n        super.viewDidLoad()\n\n        privacyConsentIndicator.layer.cornerRadius = 3\n        analyticsConsentIndicator.layer.cornerRadius = 3\n\n        // This is not necessary if all the logic is handled in the `SmartlookConsentSDK.check`\n        // or `SmartlookConsentSDK.show` callbacks may be usefully eg.,\n        // if some UI depends on the consents state like here.\n        let notificationName = SmartlookConsentSDK.consentsTouchedNotification\n        _ = NotificationCenter.default.addObserver(forName: notificationName, object: nil, queue: nil) { (_) in\n            self.updateConsentIndicators()\n        }\n\n        if #available(iOS 13.0, *) {\n            view.backgroundColor = UIColor.systemBackground\n        } else {\n            view.backgroundColor = UIColor.white\n        }\n    }\n\n    override func viewDidAppear(_ animated: Bool) {\n        super.viewDidAppear(animated)\n        self.updateConsentIndicators()\n    }\n\n    // MARK: - Consent state visualization\n\n    let consentColors: [SmartlookConsentSDK.ConsentState: UIColor] = [\n        .unknown: UIColor.lightGray,\n        .provided: UIColor.green,\n        .notProvided: UIColor.red\n    ]\n\n    func updateConsentIndicators() {\n        consentPanelWasShown.backgroundColor = SmartlookConsentSDK.wasShown ? UIColor.green : UIColor.red\n        privacyConsentIndicator.backgroundColor = consentColors[SmartlookConsentSDK.consentState(for: .privacy)]\n        analyticsConsentIndicator.backgroundColor = consentColors[SmartlookConsentSDK.consentState(for: .analytics)]\n    }\n\n    // MARK: - UI Actions\n\n    @IBAction func reviewConsents(_ sender: Any) {\n        // let user review or check the consents\n        SmartlookConsentSDK.show {\n            self.updateConsentIndicators()\n            if SmartlookConsentSDK.consentState(for: .analytics) != .provided {\n                // stop analytics tools\n            }\n        }\n    }\n\n    @IBAction func showAppSettingsAction(_ sender: Any) {\n        if\n            let settingsUrl = URL(string: UIApplication.openSettingsURLString),\n            UIApplication.shared.canOpenURL(settingsUrl)\n        {\n            UIApplication.shared.open(settingsUrl, completionHandler: nil)\n        }\n    }\n}\n"
  },
  {
    "path": "Demos/ConsentsObjC/ConsentsObjC.xcodeproj/project.pbxproj",
    "content": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 51;\n\tobjects = {\n\n/* Begin PBXBuildFile section */\n\t\t337E624F22173CAB00EBAB60 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 337E624E22173CAB00EBAB60 /* AppDelegate.m */; };\n\t\t337E625222173CAB00EBAB60 /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 337E625122173CAB00EBAB60 /* ViewController.m */; };\n\t\t337E625522173CAB00EBAB60 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 337E625322173CAB00EBAB60 /* Main.storyboard */; };\n\t\t337E625722173CAC00EBAB60 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 337E625622173CAC00EBAB60 /* Assets.xcassets */; };\n\t\t337E625A22173CAC00EBAB60 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 337E625822173CAC00EBAB60 /* LaunchScreen.storyboard */; };\n\t\t337E625D22173CAC00EBAB60 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 337E625C22173CAC00EBAB60 /* main.m */; };\n\t\t8FA8740D25AC5801003CA69F /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 8FA8740B25AC5800003CA69F /* Localizable.strings */; };\n\t\t8FAA367025A8620B00945E91 /* SmartlookConsentSDK.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8FAA366F25A8620B00945E91 /* SmartlookConsentSDK.framework */; };\n\t\t8FAA367125A8620B00945E91 /* SmartlookConsentSDK.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 8FAA366F25A8620B00945E91 /* SmartlookConsentSDK.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };\n\t\t8FD4736225AC4EF0004ECA0A /* Settings.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 8FD4736125AC4EF0004ECA0A /* Settings.bundle */; };\n/* End PBXBuildFile section */\n\n/* Begin PBXCopyFilesBuildPhase section */\n\t\t338579E8221AE468006861C1 /* Embed Frameworks */ = {\n\t\t\tisa = PBXCopyFilesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tdstPath = \"\";\n\t\t\tdstSubfolderSpec = 10;\n\t\t\tfiles = (\n\t\t\t\t8FAA367125A8620B00945E91 /* SmartlookConsentSDK.framework in Embed Frameworks */,\n\t\t\t);\n\t\t\tname = \"Embed Frameworks\";\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXCopyFilesBuildPhase section */\n\n/* Begin PBXFileReference section */\n\t\t337E624A22173CAB00EBAB60 /* ConsentsObjC.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ConsentsObjC.app; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\t337E624D22173CAB00EBAB60 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = \"<group>\"; };\n\t\t337E624E22173CAB00EBAB60 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = \"<group>\"; };\n\t\t337E625022173CAB00EBAB60 /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = \"<group>\"; };\n\t\t337E625122173CAB00EBAB60 /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = \"<group>\"; };\n\t\t337E625422173CAB00EBAB60 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = \"<group>\"; };\n\t\t337E625622173CAC00EBAB60 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = \"<group>\"; };\n\t\t337E625922173CAC00EBAB60 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = \"<group>\"; };\n\t\t337E625B22173CAC00EBAB60 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = \"<group>\"; };\n\t\t337E625C22173CAC00EBAB60 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = \"<group>\"; };\n\t\t8FA8740C25AC5800003CA69F /* Base */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Base; path = ../../Shared/Base.lproj/Localizable.strings; sourceTree = \"<group>\"; };\n\t\t8FAA366F25A8620B00945E91 /* SmartlookConsentSDK.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SmartlookConsentSDK.framework; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\t8FD4736125AC4EF0004ECA0A /* Settings.bundle */ = {isa = PBXFileReference; lastKnownFileType = \"wrapper.plug-in\"; name = Settings.bundle; path = ../Shared/Settings.bundle; sourceTree = \"<group>\"; };\n/* End PBXFileReference section */\n\n/* Begin PBXFrameworksBuildPhase section */\n\t\t337E624722173CAB00EBAB60 /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t8FAA367025A8620B00945E91 /* SmartlookConsentSDK.framework in Frameworks */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXFrameworksBuildPhase section */\n\n/* Begin PBXGroup section */\n\t\t337E624122173CAB00EBAB60 = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t8FD4736125AC4EF0004ECA0A /* Settings.bundle */,\n\t\t\t\t337E624C22173CAB00EBAB60 /* Sources */,\n\t\t\t\t337E624B22173CAB00EBAB60 /* Products */,\n\t\t\t\t8FAA366E25A8620B00945E91 /* Frameworks */,\n\t\t\t);\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t337E624B22173CAB00EBAB60 /* Products */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t337E624A22173CAB00EBAB60 /* ConsentsObjC.app */,\n\t\t\t);\n\t\t\tname = Products;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t337E624C22173CAB00EBAB60 /* Sources */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t337E624D22173CAB00EBAB60 /* AppDelegate.h */,\n\t\t\t\t337E624E22173CAB00EBAB60 /* AppDelegate.m */,\n\t\t\t\t337E625022173CAB00EBAB60 /* ViewController.h */,\n\t\t\t\t337E625122173CAB00EBAB60 /* ViewController.m */,\n\t\t\t\t337E625322173CAB00EBAB60 /* Main.storyboard */,\n\t\t\t\t337E625622173CAC00EBAB60 /* Assets.xcassets */,\n\t\t\t\t337E625822173CAC00EBAB60 /* LaunchScreen.storyboard */,\n\t\t\t\t337E625B22173CAC00EBAB60 /* Info.plist */,\n\t\t\t\t337E625C22173CAC00EBAB60 /* main.m */,\n\t\t\t\t8FA8740B25AC5800003CA69F /* Localizable.strings */,\n\t\t\t);\n\t\t\tpath = Sources;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t8FAA366E25A8620B00945E91 /* Frameworks */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t8FAA366F25A8620B00945E91 /* SmartlookConsentSDK.framework */,\n\t\t\t);\n\t\t\tname = Frameworks;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n/* End PBXGroup section */\n\n/* Begin PBXNativeTarget section */\n\t\t337E624922173CAB00EBAB60 /* ConsentsObjC */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = 337E626022173CAC00EBAB60 /* Build configuration list for PBXNativeTarget \"ConsentsObjC\" */;\n\t\t\tbuildPhases = (\n\t\t\t\t337E624622173CAB00EBAB60 /* Sources */,\n\t\t\t\t337E624722173CAB00EBAB60 /* Frameworks */,\n\t\t\t\t337E624822173CAB00EBAB60 /* Resources */,\n\t\t\t\t338579E8221AE468006861C1 /* Embed Frameworks */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t);\n\t\t\tname = ConsentsObjC;\n\t\t\tproductName = ConsentSDKDemoObjC;\n\t\t\tproductReference = 337E624A22173CAB00EBAB60 /* ConsentsObjC.app */;\n\t\t\tproductType = \"com.apple.product-type.application\";\n\t\t};\n/* End PBXNativeTarget section */\n\n/* Begin PBXProject section */\n\t\t337E624222173CAB00EBAB60 /* Project object */ = {\n\t\t\tisa = PBXProject;\n\t\t\tattributes = {\n\t\t\t\tLastUpgradeCheck = 1230;\n\t\t\t\tORGANIZATIONNAME = Smartlook;\n\t\t\t\tTargetAttributes = {\n\t\t\t\t\t337E624922173CAB00EBAB60 = {\n\t\t\t\t\t\tCreatedOnToolsVersion = 10.1;\n\t\t\t\t\t\tLastSwiftMigration = 1010;\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t};\n\t\t\tbuildConfigurationList = 337E624522173CAB00EBAB60 /* Build configuration list for PBXProject \"ConsentsObjC\" */;\n\t\t\tcompatibilityVersion = \"Xcode 10.0\";\n\t\t\tdevelopmentRegion = en;\n\t\t\thasScannedForEncodings = 0;\n\t\t\tknownRegions = (\n\t\t\t\ten,\n\t\t\t\tBase,\n\t\t\t);\n\t\t\tmainGroup = 337E624122173CAB00EBAB60;\n\t\t\tproductRefGroup = 337E624B22173CAB00EBAB60 /* Products */;\n\t\t\tprojectDirPath = \"\";\n\t\t\tprojectRoot = \"\";\n\t\t\ttargets = (\n\t\t\t\t337E624922173CAB00EBAB60 /* ConsentsObjC */,\n\t\t\t);\n\t\t};\n/* End PBXProject section */\n\n/* Begin PBXResourcesBuildPhase section */\n\t\t337E624822173CAB00EBAB60 /* Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t8FA8740D25AC5801003CA69F /* Localizable.strings in Resources */,\n\t\t\t\t337E625A22173CAC00EBAB60 /* LaunchScreen.storyboard in Resources */,\n\t\t\t\t8FD4736225AC4EF0004ECA0A /* Settings.bundle in Resources */,\n\t\t\t\t337E625722173CAC00EBAB60 /* Assets.xcassets in Resources */,\n\t\t\t\t337E625522173CAB00EBAB60 /* Main.storyboard in Resources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXResourcesBuildPhase section */\n\n/* Begin PBXSourcesBuildPhase section */\n\t\t337E624622173CAB00EBAB60 /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t337E625222173CAB00EBAB60 /* ViewController.m in Sources */,\n\t\t\t\t337E625D22173CAC00EBAB60 /* main.m in Sources */,\n\t\t\t\t337E624F22173CAB00EBAB60 /* AppDelegate.m in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXSourcesBuildPhase section */\n\n/* Begin PBXVariantGroup section */\n\t\t337E625322173CAB00EBAB60 /* Main.storyboard */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\t337E625422173CAB00EBAB60 /* Base */,\n\t\t\t);\n\t\t\tname = Main.storyboard;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t337E625822173CAC00EBAB60 /* LaunchScreen.storyboard */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\t337E625922173CAC00EBAB60 /* Base */,\n\t\t\t);\n\t\t\tname = LaunchScreen.storyboard;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t8FA8740B25AC5800003CA69F /* Localizable.strings */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\t8FA8740C25AC5800003CA69F /* Base */,\n\t\t\t);\n\t\t\tname = Localizable.strings;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n/* End PBXVariantGroup section */\n\n/* Begin XCBuildConfiguration section */\n\t\t337E625E22173CAC00EBAB60 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tCLANG_ANALYZER_NONNULL = YES;\n\t\t\t\tCLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;\n\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"gnu++14\";\n\t\t\t\tCLANG_CXX_LIBRARY = \"libc++\";\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_WEAK = YES;\n\t\t\t\tCLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;\n\t\t\t\tCLANG_WARN_BOOL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_COMMA = YES;\n\t\t\t\tCLANG_WARN_CONSTANT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;\n\t\t\t\tCLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;\n\t\t\t\tCLANG_WARN_DOCUMENTATION_COMMENTS = YES;\n\t\t\t\tCLANG_WARN_EMPTY_BODY = YES;\n\t\t\t\tCLANG_WARN_ENUM_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_INFINITE_RECURSION = YES;\n\t\t\t\tCLANG_WARN_INT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;\n\t\t\t\tCLANG_WARN_OBJC_LITERAL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;\n\t\t\t\tCLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;\n\t\t\t\tCLANG_WARN_RANGE_LOOP_ANALYSIS = YES;\n\t\t\t\tCLANG_WARN_STRICT_PROTOTYPES = YES;\n\t\t\t\tCLANG_WARN_SUSPICIOUS_MOVE = YES;\n\t\t\t\tCLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;\n\t\t\t\tCLANG_WARN_UNREACHABLE_CODE = YES;\n\t\t\t\tCLANG_WARN__DUPLICATE_METHOD_MATCH = YES;\n\t\t\t\tCODE_SIGN_IDENTITY = \"iPhone Developer\";\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tDEBUG_INFORMATION_FORMAT = dwarf;\n\t\t\t\tENABLE_STRICT_OBJC_MSGSEND = YES;\n\t\t\t\tENABLE_TESTABILITY = YES;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu11;\n\t\t\t\tGCC_DYNAMIC_NO_PIC = NO;\n\t\t\t\tGCC_NO_COMMON_BLOCKS = YES;\n\t\t\t\tGCC_OPTIMIZATION_LEVEL = 0;\n\t\t\t\tGCC_PREPROCESSOR_DEFINITIONS = (\n\t\t\t\t\t\"DEBUG=1\",\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t);\n\t\t\t\tGCC_WARN_64_TO_32_BIT_CONVERSION = YES;\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;\n\t\t\t\tGCC_WARN_UNDECLARED_SELECTOR = YES;\n\t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;\n\t\t\t\tGCC_WARN_UNUSED_FUNCTION = YES;\n\t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 12.1;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;\n\t\t\t\tMTL_FAST_MATH = YES;\n\t\t\t\tONLY_ACTIVE_ARCH = YES;\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\t337E625F22173CAC00EBAB60 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tCLANG_ANALYZER_NONNULL = YES;\n\t\t\t\tCLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;\n\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"gnu++14\";\n\t\t\t\tCLANG_CXX_LIBRARY = \"libc++\";\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_WEAK = YES;\n\t\t\t\tCLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;\n\t\t\t\tCLANG_WARN_BOOL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_COMMA = YES;\n\t\t\t\tCLANG_WARN_CONSTANT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;\n\t\t\t\tCLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;\n\t\t\t\tCLANG_WARN_DOCUMENTATION_COMMENTS = YES;\n\t\t\t\tCLANG_WARN_EMPTY_BODY = YES;\n\t\t\t\tCLANG_WARN_ENUM_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_INFINITE_RECURSION = YES;\n\t\t\t\tCLANG_WARN_INT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;\n\t\t\t\tCLANG_WARN_OBJC_LITERAL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;\n\t\t\t\tCLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;\n\t\t\t\tCLANG_WARN_RANGE_LOOP_ANALYSIS = YES;\n\t\t\t\tCLANG_WARN_STRICT_PROTOTYPES = YES;\n\t\t\t\tCLANG_WARN_SUSPICIOUS_MOVE = YES;\n\t\t\t\tCLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;\n\t\t\t\tCLANG_WARN_UNREACHABLE_CODE = YES;\n\t\t\t\tCLANG_WARN__DUPLICATE_METHOD_MATCH = YES;\n\t\t\t\tCODE_SIGN_IDENTITY = \"iPhone Developer\";\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tDEBUG_INFORMATION_FORMAT = \"dwarf-with-dsym\";\n\t\t\t\tENABLE_NS_ASSERTIONS = NO;\n\t\t\t\tENABLE_STRICT_OBJC_MSGSEND = YES;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu11;\n\t\t\t\tGCC_NO_COMMON_BLOCKS = YES;\n\t\t\t\tGCC_WARN_64_TO_32_BIT_CONVERSION = YES;\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;\n\t\t\t\tGCC_WARN_UNDECLARED_SELECTOR = YES;\n\t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;\n\t\t\t\tGCC_WARN_UNUSED_FUNCTION = YES;\n\t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 12.1;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = NO;\n\t\t\t\tMTL_FAST_MATH = YES;\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t\tVALIDATE_PRODUCT = YES;\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\t337E626122173CAC00EBAB60 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCODE_SIGN_STYLE = Automatic;\n\t\t\t\tDEVELOPMENT_TEAM = 57MHDLMMHS;\n\t\t\t\tINFOPLIST_FILE = \"$(SRCROOT)/Sources/Info.plist\";\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 11.0;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = (\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t\t\"@executable_path/Frameworks\",\n\t\t\t\t);\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = com.smartlook.ConsentSDKDemoObjC;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSWIFT_OBJC_BRIDGING_HEADER = \"ConsentSDKDemoObjC-Bridging-Header.h\";\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-Onone\";\n\t\t\t\tSWIFT_VERSION = 4.2;\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\t337E626222173CAC00EBAB60 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCODE_SIGN_STYLE = Automatic;\n\t\t\t\tDEVELOPMENT_TEAM = 57MHDLMMHS;\n\t\t\t\tINFOPLIST_FILE = \"$(SRCROOT)/Sources/Info.plist\";\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 11.0;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = (\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t\t\"@executable_path/Frameworks\",\n\t\t\t\t);\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = com.smartlook.ConsentSDKDemoObjC;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSWIFT_OBJC_BRIDGING_HEADER = \"ConsentSDKDemoObjC-Bridging-Header.h\";\n\t\t\t\tSWIFT_VERSION = 4.2;\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n/* End XCBuildConfiguration section */\n\n/* Begin XCConfigurationList section */\n\t\t337E624522173CAB00EBAB60 /* Build configuration list for PBXProject \"ConsentsObjC\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\t337E625E22173CAC00EBAB60 /* Debug */,\n\t\t\t\t337E625F22173CAC00EBAB60 /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\t337E626022173CAC00EBAB60 /* Build configuration list for PBXNativeTarget \"ConsentsObjC\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\t337E626122173CAC00EBAB60 /* Debug */,\n\t\t\t\t337E626222173CAC00EBAB60 /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n/* End XCConfigurationList section */\n\t};\n\trootObject = 337E624222173CAB00EBAB60 /* Project object */;\n}\n"
  },
  {
    "path": "Demos/ConsentsObjC/Sources/AppDelegate.h",
    "content": "//\n//  AppDelegate.h\n//  ConsentSDKDemoObjC\n//\n//  Created by Pavel Kroh on 15/02/2019.\n//  Copyright © 2019 Smartlook. All rights reserved.\n//\n\n#import <UIKit/UIKit.h>\n\n@interface AppDelegate : UIResponder <UIApplicationDelegate>\n\n@property (strong, nonatomic) UIWindow *window;\n\n\n@end\n"
  },
  {
    "path": "Demos/ConsentsObjC/Sources/AppDelegate.m",
    "content": "//\n//  AppDelegate.m\n//  ConsentSDKDemoObjC\n//\n//  Created by Pavel Kroh on 15/02/2019.\n//  Copyright © 2019 Smartlook. All rights reserved.\n//\n\n#import \"AppDelegate.h\"\n#import <SmartlookConsentSDK/SmartlookConsentSDK.h>\n\n@implementation AppDelegate\n\n// MARK: - Consent check\n\n/** This method is to be invoked any time the app starts to check if the consents are provided\n namely in:\n - `application:didFinishWithLaunchingOptions` for the fresh start\n - `application:WillEnterForeground` for app woken up from background (where possibly the consent\n setting could be changed in system settings)\n */\n- (void)checkConsentStates {\n    NSMutableArray *consentsSettingsDefaults = [NSMutableArray new];\n    [consentsSettingsDefaults addObjectsFromArray:@[SLCConsentPrivacy, @(SLCConsentStateProvided)]];\n    [consentsSettingsDefaults addObjectsFromArray:@[SLCConsentAnalytics, @(SLCConsentStateNotProvided)]];\n    \n    [SmartlookConsentSDK checkWith:consentsSettingsDefaults callback:^{\n        if ([SmartlookConsentSDK consentStateFor:SLCConsentAnalytics] == SLCConsentStateProvided) {\n            // start analytics tools\n        };\n    }];\n}\n\n\n// MARK: - Application lifecycle\n\n- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {\n    [self checkConsentStates];\n    return YES;\n}\n\n- (void)applicationWillEnterForeground:(UIApplication *)application {\n    [self checkConsentStates];\n}\n\n\n@end\n"
  },
  {
    "path": "Demos/ConsentsObjC/Sources/Assets.xcassets/AppIcon.appiconset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"iphone\",\n      \"size\" : \"20x20\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"iphone\",\n      \"size\" : \"20x20\",\n      \"scale\" : \"3x\"\n    },\n    {\n      \"idiom\" : \"iphone\",\n      \"size\" : \"29x29\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"iphone\",\n      \"size\" : \"29x29\",\n      \"scale\" : \"3x\"\n    },\n    {\n      \"idiom\" : \"iphone\",\n      \"size\" : \"40x40\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"iphone\",\n      \"size\" : \"40x40\",\n      \"scale\" : \"3x\"\n    },\n    {\n      \"idiom\" : \"iphone\",\n      \"size\" : \"60x60\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"iphone\",\n      \"size\" : \"60x60\",\n      \"scale\" : \"3x\"\n    },\n    {\n      \"idiom\" : \"ipad\",\n      \"size\" : \"20x20\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"ipad\",\n      \"size\" : \"20x20\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"ipad\",\n      \"size\" : \"29x29\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"ipad\",\n      \"size\" : \"29x29\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"ipad\",\n      \"size\" : \"40x40\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"ipad\",\n      \"size\" : \"40x40\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"ipad\",\n      \"size\" : \"76x76\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"ipad\",\n      \"size\" : \"76x76\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"ipad\",\n      \"size\" : \"83.5x83.5\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"ios-marketing\",\n      \"size\" : \"1024x1024\",\n      \"scale\" : \"1x\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "Demos/ConsentsObjC/Sources/Assets.xcassets/Contents.json",
    "content": "{\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "Demos/ConsentsObjC/Sources/Base.lproj/LaunchScreen.storyboard",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB\" version=\"3.0\" toolsVersion=\"15400\" targetRuntime=\"iOS.CocoaTouch\" propertyAccessControl=\"none\" useAutolayout=\"YES\" launchScreen=\"YES\" useTraitCollections=\"YES\" useSafeAreas=\"YES\" colorMatched=\"YES\" initialViewController=\"01J-lp-oVM\">\n    <device id=\"retina6_1\" orientation=\"portrait\" appearance=\"light\"/>\n    <dependencies>\n        <deployment identifier=\"iOS\"/>\n        <plugIn identifier=\"com.apple.InterfaceBuilder.IBCocoaTouchPlugin\" version=\"15404\"/>\n        <capability name=\"Safe area layout guides\" minToolsVersion=\"9.0\"/>\n        <capability name=\"documents saved in the Xcode 8 format\" minToolsVersion=\"8.0\"/>\n    </dependencies>\n    <scenes>\n        <!--View Controller-->\n        <scene sceneID=\"EHf-IW-A2E\">\n            <objects>\n                <viewController id=\"01J-lp-oVM\" sceneMemberID=\"viewController\">\n                    <view key=\"view\" contentMode=\"scaleToFill\" id=\"Ze5-6b-2t3\">\n                        <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"414\" height=\"896\"/>\n                        <autoresizingMask key=\"autoresizingMask\" widthSizable=\"YES\" heightSizable=\"YES\"/>\n                        <viewLayoutGuide key=\"safeArea\" id=\"6Tk-OE-BBY\"/>\n                    </view>\n                </viewController>\n                <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"iYj-Kq-Ea1\" userLabel=\"First Responder\" sceneMemberID=\"firstResponder\"/>\n            </objects>\n            <point key=\"canvasLocation\" x=\"53\" y=\"375\"/>\n        </scene>\n    </scenes>\n</document>\n"
  },
  {
    "path": "Demos/ConsentsObjC/Sources/Base.lproj/Main.storyboard",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB\" version=\"3.0\" toolsVersion=\"17701\" targetRuntime=\"iOS.CocoaTouch\" propertyAccessControl=\"none\" useAutolayout=\"YES\" useTraitCollections=\"YES\" useSafeAreas=\"YES\" colorMatched=\"YES\" initialViewController=\"BYZ-38-t0r\">\n    <device id=\"retina6_1\" orientation=\"portrait\" appearance=\"light\"/>\n    <dependencies>\n        <deployment identifier=\"iOS\"/>\n        <plugIn identifier=\"com.apple.InterfaceBuilder.IBCocoaTouchPlugin\" version=\"17703\"/>\n        <capability name=\"Safe area layout guides\" minToolsVersion=\"9.0\"/>\n        <capability name=\"documents saved in the Xcode 8 format\" minToolsVersion=\"8.0\"/>\n    </dependencies>\n    <scenes>\n        <!--View Controller-->\n        <scene sceneID=\"tne-QT-ifu\">\n            <objects>\n                <viewController id=\"BYZ-38-t0r\" customClass=\"ViewController\" sceneMemberID=\"viewController\">\n                    <view key=\"view\" contentMode=\"scaleToFill\" id=\"8bC-Xf-vdC\">\n                        <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"414\" height=\"896\"/>\n                        <autoresizingMask key=\"autoresizingMask\" widthSizable=\"YES\" heightSizable=\"YES\"/>\n                        <subviews>\n                            <label opaque=\"NO\" userInteractionEnabled=\"NO\" contentMode=\"left\" horizontalHuggingPriority=\"251\" verticalHuggingPriority=\"251\" text=\"Consents panel has been shown\" textAlignment=\"natural\" lineBreakMode=\"tailTruncation\" baselineAdjustment=\"alignBaselines\" minimumScaleFactor=\"0.5\" adjustsLetterSpacingToFitWidth=\"YES\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"TxH-0L-2UB\">\n                                <rect key=\"frame\" x=\"16\" y=\"139\" width=\"246\" height=\"20.5\"/>\n                                <fontDescription key=\"fontDescription\" style=\"UICTFontTextStyleBody\"/>\n                                <nil key=\"textColor\"/>\n                                <nil key=\"highlightedColor\"/>\n                            </label>\n                            <label opaque=\"NO\" userInteractionEnabled=\"NO\" contentMode=\"left\" horizontalHuggingPriority=\"251\" verticalHuggingPriority=\"251\" text=\"Privacy consent\" textAlignment=\"natural\" lineBreakMode=\"tailTruncation\" baselineAdjustment=\"alignBaselines\" minimumScaleFactor=\"0.5\" adjustsLetterSpacingToFitWidth=\"YES\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"mXu-XI-mUt\">\n                                <rect key=\"frame\" x=\"16\" y=\"167.5\" width=\"246\" height=\"20.5\"/>\n                                <fontDescription key=\"fontDescription\" style=\"UICTFontTextStyleBody\"/>\n                                <nil key=\"textColor\"/>\n                                <nil key=\"highlightedColor\"/>\n                            </label>\n                            <button opaque=\"NO\" contentMode=\"scaleToFill\" contentHorizontalAlignment=\"center\" contentVerticalAlignment=\"center\" buttonType=\"system\" lineBreakMode=\"middleTruncation\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"4EG-ux-VLA\">\n                                <rect key=\"frame\" x=\"16\" y=\"248.5\" width=\"128\" height=\"30\"/>\n                                <state key=\"normal\" title=\"Review consents...\"/>\n                                <connections>\n                                    <action selector=\"buttonAction:\" destination=\"BYZ-38-t0r\" eventType=\"touchUpInside\" id=\"IJe-xU-MCR\"/>\n                                </connections>\n                            </button>\n                            <view contentMode=\"scaleToFill\" horizontalHuggingPriority=\"1000\" horizontalCompressionResistancePriority=\"1000\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"nrb-0G-edZ\">\n                                <rect key=\"frame\" x=\"274\" y=\"196\" width=\"20.5\" height=\"20.5\"/>\n                                <color key=\"backgroundColor\" white=\"1\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"genericGamma22GrayColorSpace\"/>\n                                <constraints>\n                                    <constraint firstAttribute=\"width\" secondItem=\"nrb-0G-edZ\" secondAttribute=\"height\" multiplier=\"1:1\" id=\"SsY-sM-bve\"/>\n                                </constraints>\n                            </view>\n                            <view contentMode=\"scaleToFill\" horizontalHuggingPriority=\"1000\" horizontalCompressionResistancePriority=\"1000\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"hLJ-Vj-b24\">\n                                <rect key=\"frame\" x=\"274\" y=\"139\" width=\"20.5\" height=\"20.5\"/>\n                                <color key=\"backgroundColor\" white=\"1\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"genericGamma22GrayColorSpace\"/>\n                                <constraints>\n                                    <constraint firstAttribute=\"width\" secondItem=\"hLJ-Vj-b24\" secondAttribute=\"height\" multiplier=\"1:1\" id=\"vvD-1c-zTj\"/>\n                                </constraints>\n                            </view>\n                            <view contentMode=\"scaleToFill\" horizontalHuggingPriority=\"1000\" horizontalCompressionResistancePriority=\"1000\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"rUk-1Y-qgO\">\n                                <rect key=\"frame\" x=\"274\" y=\"167.5\" width=\"20.5\" height=\"20.5\"/>\n                                <color key=\"backgroundColor\" white=\"1\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"genericGamma22GrayColorSpace\"/>\n                                <constraints>\n                                    <constraint firstAttribute=\"width\" secondItem=\"rUk-1Y-qgO\" secondAttribute=\"height\" multiplier=\"1:1\" id=\"YRF-SZ-3qW\"/>\n                                </constraints>\n                            </view>\n                            <label opaque=\"NO\" userInteractionEnabled=\"NO\" contentMode=\"left\" horizontalHuggingPriority=\"251\" verticalHuggingPriority=\"251\" text=\"Analytics consent\" textAlignment=\"natural\" lineBreakMode=\"tailTruncation\" baselineAdjustment=\"alignBaselines\" minimumScaleFactor=\"0.5\" adjustsLetterSpacingToFitWidth=\"YES\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"jy8-Hk-hC8\">\n                                <rect key=\"frame\" x=\"16\" y=\"196\" width=\"246\" height=\"20.5\"/>\n                                <fontDescription key=\"fontDescription\" style=\"UICTFontTextStyleBody\"/>\n                                <nil key=\"textColor\"/>\n                                <nil key=\"highlightedColor\"/>\n                            </label>\n                            <label opaque=\"NO\" userInteractionEnabled=\"NO\" contentMode=\"left\" horizontalHuggingPriority=\"251\" verticalHuggingPriority=\"251\" text=\"Smartlook Consent Demo\" textAlignment=\"center\" lineBreakMode=\"tailTruncation\" baselineAdjustment=\"alignBaselines\" minimumScaleFactor=\"0.5\" adjustsLetterSpacingToFitWidth=\"YES\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"gjC-OR-EYS\">\n                                <rect key=\"frame\" x=\"16\" y=\"66\" width=\"382\" height=\"41\"/>\n                                <fontDescription key=\"fontDescription\" style=\"UICTFontTextStyleTitle0\"/>\n                                <nil key=\"textColor\"/>\n                                <nil key=\"highlightedColor\"/>\n                            </label>\n                            <button opaque=\"NO\" contentMode=\"scaleToFill\" contentHorizontalAlignment=\"center\" contentVerticalAlignment=\"center\" buttonType=\"system\" lineBreakMode=\"middleTruncation\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"cRK-SZ-J3U\">\n                                <rect key=\"frame\" x=\"16\" y=\"294.5\" width=\"140\" height=\"30\"/>\n                                <state key=\"normal\" title=\"Show app settings...\"/>\n                                <connections>\n                                    <action selector=\"showAppSettingsAction:\" destination=\"BYZ-38-t0r\" eventType=\"touchUpInside\" id=\"ovm-jD-3Vs\"/>\n                                </connections>\n                            </button>\n                        </subviews>\n                        <viewLayoutGuide key=\"safeArea\" id=\"6Tk-OE-BBY\"/>\n                        <constraints>\n                            <constraint firstItem=\"TxH-0L-2UB\" firstAttribute=\"leading\" secondItem=\"6Tk-OE-BBY\" secondAttribute=\"leading\" constant=\"16\" id=\"3EI-PZ-pVc\"/>\n                            <constraint firstItem=\"nrb-0G-edZ\" firstAttribute=\"height\" secondItem=\"jy8-Hk-hC8\" secondAttribute=\"height\" id=\"6PO-WF-6KW\"/>\n                            <constraint firstItem=\"nrb-0G-edZ\" firstAttribute=\"leading\" relation=\"greaterThanOrEqual\" secondItem=\"jy8-Hk-hC8\" secondAttribute=\"trailing\" constant=\"12\" id=\"9I8-2G-k2P\"/>\n                            <constraint firstItem=\"hLJ-Vj-b24\" firstAttribute=\"leading\" relation=\"greaterThanOrEqual\" secondItem=\"TxH-0L-2UB\" secondAttribute=\"trailing\" constant=\"12\" id=\"9R2-4T-42K\"/>\n                            <constraint firstItem=\"hLJ-Vj-b24\" firstAttribute=\"width\" secondItem=\"hLJ-Vj-b24\" secondAttribute=\"height\" multiplier=\"1:1\" id=\"9UL-ip-G6v\"/>\n                            <constraint firstItem=\"6Tk-OE-BBY\" firstAttribute=\"trailing\" relation=\"greaterThanOrEqual\" secondItem=\"hLJ-Vj-b24\" secondAttribute=\"trailing\" constant=\"16\" id=\"BAr-bw-bdK\"/>\n                            <constraint firstItem=\"nrb-0G-edZ\" firstAttribute=\"leading\" secondItem=\"rUk-1Y-qgO\" secondAttribute=\"leading\" id=\"BaH-gn-ewk\"/>\n                            <constraint firstItem=\"rUk-1Y-qgO\" firstAttribute=\"leading\" secondItem=\"hLJ-Vj-b24\" secondAttribute=\"leading\" id=\"C2f-ah-Koy\"/>\n                            <constraint firstItem=\"cRK-SZ-J3U\" firstAttribute=\"top\" secondItem=\"4EG-ux-VLA\" secondAttribute=\"bottom\" constant=\"16\" id=\"Cd4-tS-hEV\"/>\n                            <constraint firstItem=\"4EG-ux-VLA\" firstAttribute=\"top\" secondItem=\"jy8-Hk-hC8\" secondAttribute=\"bottom\" constant=\"32\" id=\"Ge3-sX-2x5\"/>\n                            <constraint firstItem=\"rUk-1Y-qgO\" firstAttribute=\"height\" secondItem=\"mXu-XI-mUt\" secondAttribute=\"height\" id=\"H2C-dP-KzZ\"/>\n                            <constraint firstItem=\"jy8-Hk-hC8\" firstAttribute=\"top\" secondItem=\"mXu-XI-mUt\" secondAttribute=\"bottom\" constant=\"8\" id=\"J9i-Fg-3vQ\"/>\n                            <constraint firstItem=\"rUk-1Y-qgO\" firstAttribute=\"centerY\" secondItem=\"mXu-XI-mUt\" secondAttribute=\"centerY\" id=\"JAT-4B-oJL\"/>\n                            <constraint firstItem=\"6Tk-OE-BBY\" firstAttribute=\"trailing\" relation=\"greaterThanOrEqual\" secondItem=\"rUk-1Y-qgO\" secondAttribute=\"trailing\" constant=\"16\" id=\"Ktt-df-Avt\"/>\n                            <constraint firstItem=\"6Tk-OE-BBY\" firstAttribute=\"trailing\" secondItem=\"gjC-OR-EYS\" secondAttribute=\"trailing\" constant=\"16\" id=\"LjX-4e-Xu7\"/>\n                            <constraint firstItem=\"rUk-1Y-qgO\" firstAttribute=\"width\" secondItem=\"rUk-1Y-qgO\" secondAttribute=\"height\" multiplier=\"1:1\" id=\"ObK-x1-xI9\"/>\n                            <constraint firstItem=\"gjC-OR-EYS\" firstAttribute=\"top\" secondItem=\"6Tk-OE-BBY\" secondAttribute=\"top\" constant=\"22\" id=\"Pj8-fS-gmu\"/>\n                            <constraint firstItem=\"6Tk-OE-BBY\" firstAttribute=\"trailing\" relation=\"greaterThanOrEqual\" secondItem=\"nrb-0G-edZ\" secondAttribute=\"trailing\" constant=\"16\" id=\"QAU-W0-BeO\"/>\n                            <constraint firstItem=\"mXu-XI-mUt\" firstAttribute=\"leading\" secondItem=\"6Tk-OE-BBY\" secondAttribute=\"leading\" constant=\"16\" id=\"QWa-u7-oG9\"/>\n                            <constraint firstItem=\"hLJ-Vj-b24\" firstAttribute=\"centerY\" secondItem=\"TxH-0L-2UB\" secondAttribute=\"centerY\" id=\"Rvd-OI-OXn\"/>\n                            <constraint firstItem=\"hLJ-Vj-b24\" firstAttribute=\"width\" secondItem=\"hLJ-Vj-b24\" secondAttribute=\"height\" multiplier=\"1:1\" id=\"SIw-LN-BH3\"/>\n                            <constraint firstItem=\"nrb-0G-edZ\" firstAttribute=\"width\" secondItem=\"nrb-0G-edZ\" secondAttribute=\"height\" multiplier=\"1:1\" id=\"Wd8-EQ-ILT\"/>\n                            <constraint firstItem=\"cRK-SZ-J3U\" firstAttribute=\"leading\" secondItem=\"6Tk-OE-BBY\" secondAttribute=\"leading\" constant=\"16\" id=\"Y1i-wm-kqK\"/>\n                            <constraint firstItem=\"hLJ-Vj-b24\" firstAttribute=\"leading\" secondItem=\"TxH-0L-2UB\" secondAttribute=\"trailing\" priority=\"750\" constant=\"12\" id=\"bWa-RP-QOD\"/>\n                            <constraint firstItem=\"gjC-OR-EYS\" firstAttribute=\"leading\" secondItem=\"6Tk-OE-BBY\" secondAttribute=\"leading\" constant=\"16\" id=\"eVs-3Y-p8s\"/>\n                            <constraint firstItem=\"4EG-ux-VLA\" firstAttribute=\"leading\" secondItem=\"6Tk-OE-BBY\" secondAttribute=\"leading\" constant=\"16\" id=\"env-Ub-O0P\"/>\n                            <constraint firstItem=\"nrb-0G-edZ\" firstAttribute=\"centerY\" secondItem=\"jy8-Hk-hC8\" secondAttribute=\"centerY\" id=\"esR-bJ-Jbc\"/>\n                            <constraint firstItem=\"nrb-0G-edZ\" firstAttribute=\"width\" secondItem=\"nrb-0G-edZ\" secondAttribute=\"height\" multiplier=\"1:1\" id=\"euX-h2-dLK\"/>\n                            <constraint firstItem=\"rUk-1Y-qgO\" firstAttribute=\"leading\" relation=\"greaterThanOrEqual\" secondItem=\"mXu-XI-mUt\" secondAttribute=\"trailing\" constant=\"12\" id=\"jts-rD-TOb\"/>\n                            <constraint firstItem=\"hLJ-Vj-b24\" firstAttribute=\"height\" secondItem=\"TxH-0L-2UB\" secondAttribute=\"height\" id=\"lFv-kv-hs9\"/>\n                            <constraint firstItem=\"rUk-1Y-qgO\" firstAttribute=\"leading\" secondItem=\"mXu-XI-mUt\" secondAttribute=\"trailing\" priority=\"750\" constant=\"12\" id=\"tJ3-p2-z2c\"/>\n                            <constraint firstItem=\"jy8-Hk-hC8\" firstAttribute=\"leading\" secondItem=\"6Tk-OE-BBY\" secondAttribute=\"leading\" constant=\"16\" id=\"tUC-mI-nGc\"/>\n                            <constraint firstItem=\"TxH-0L-2UB\" firstAttribute=\"top\" secondItem=\"gjC-OR-EYS\" secondAttribute=\"bottom\" constant=\"32\" id=\"vWy-Kt-yhh\"/>\n                            <constraint firstItem=\"nrb-0G-edZ\" firstAttribute=\"leading\" secondItem=\"jy8-Hk-hC8\" secondAttribute=\"trailing\" priority=\"750\" constant=\"12\" id=\"wFA-ms-0jJ\"/>\n                            <constraint firstItem=\"mXu-XI-mUt\" firstAttribute=\"top\" secondItem=\"TxH-0L-2UB\" secondAttribute=\"bottom\" constant=\"8\" id=\"zxz-Ca-NSC\"/>\n                        </constraints>\n                    </view>\n                    <connections>\n                        <outlet property=\"analyticsConsentIndicator\" destination=\"nrb-0G-edZ\" id=\"rLz-XB-kch\"/>\n                        <outlet property=\"consentsPanelWasShownIndicator\" destination=\"hLJ-Vj-b24\" id=\"XH2-90-baq\"/>\n                        <outlet property=\"privacyConsentIndicator\" destination=\"rUk-1Y-qgO\" id=\"QFs-qq-8pc\"/>\n                    </connections>\n                </viewController>\n                <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"dkx-z0-nzr\" sceneMemberID=\"firstResponder\"/>\n            </objects>\n            <point key=\"canvasLocation\" x=\"140\" y=\"133.5832083958021\"/>\n        </scene>\n    </scenes>\n</document>\n"
  },
  {
    "path": "Demos/ConsentsObjC/Sources/Info.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>CFBundleDevelopmentRegion</key>\n\t<string>$(DEVELOPMENT_LANGUAGE)</string>\n\t<key>CFBundleDisplayName</key>\n\t<string>Consents (ObjC)</string>\n\t<key>CFBundleExecutable</key>\n\t<string>$(EXECUTABLE_NAME)</string>\n\t<key>CFBundleIdentifier</key>\n\t<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>\n\t<key>CFBundleInfoDictionaryVersion</key>\n\t<string>6.0</string>\n\t<key>CFBundleName</key>\n\t<string>$(PRODUCT_NAME)</string>\n\t<key>CFBundlePackageType</key>\n\t<string>APPL</string>\n\t<key>CFBundleShortVersionString</key>\n\t<string>1.0</string>\n\t<key>CFBundleVersion</key>\n\t<string>1</string>\n\t<key>LSRequiresIPhoneOS</key>\n\t<true/>\n\t<key>UILaunchStoryboardName</key>\n\t<string>LaunchScreen</string>\n\t<key>UIMainStoryboardFile</key>\n\t<string>Main</string>\n\t<key>UIRequiredDeviceCapabilities</key>\n\t<array>\n\t\t<string>armv7</string>\n\t</array>\n\t<key>UISupportedInterfaceOrientations</key>\n\t<array>\n\t\t<string>UIInterfaceOrientationPortrait</string>\n\t\t<string>UIInterfaceOrientationLandscapeLeft</string>\n\t\t<string>UIInterfaceOrientationLandscapeRight</string>\n\t</array>\n\t<key>UISupportedInterfaceOrientations~ipad</key>\n\t<array>\n\t\t<string>UIInterfaceOrientationPortrait</string>\n\t\t<string>UIInterfaceOrientationPortraitUpsideDown</string>\n\t\t<string>UIInterfaceOrientationLandscapeLeft</string>\n\t\t<string>UIInterfaceOrientationLandscapeRight</string>\n\t</array>\n</dict>\n</plist>\n"
  },
  {
    "path": "Demos/ConsentsObjC/Sources/ViewController.h",
    "content": "//\n//  ViewController.h\n//  ConsentSDKDemoObjC\n//\n//  Created by Pavel Kroh on 15/02/2019.\n//  Copyright © 2019 Smartlook. All rights reserved.\n//\n\n#import <UIKit/UIKit.h>\n\n@interface ViewController : UIViewController\n\n\n@end\n\n"
  },
  {
    "path": "Demos/ConsentsObjC/Sources/ViewController.m",
    "content": "//\n//  ViewController.m\n//  ConsentSDKDemoObjC\n//\n//  Created by Pavel Kroh on 15/02/2019.\n//  Copyright © 2019 Smartlook. All rights reserved.\n//\n\n#import \"ViewController.h\"\n#import <SmartlookConsentSDK/SmartlookConsentSDK.h>\n\n@interface ViewController ();\n\n@property (weak, nonatomic) IBOutlet UIView *consentsPanelWasShownIndicator;\n@property (weak, nonatomic) IBOutlet UIView *privacyConsentIndicator;\n@property (weak, nonatomic) IBOutlet UIView *analyticsConsentIndicator;\n\n@end\n\n@implementation ViewController\n\n// MARK: - View lifecycle\n\n- (void)viewDidLoad {\n    [super viewDidLoad];\n    \n    _privacyConsentIndicator.layer.cornerRadius = 3;\n    _analyticsConsentIndicator.layer.cornerRadius = 3;\n    \n    // This is not necessary if all the logic is handled in the `SmartlookConsentSDK.check`\n    // or `SmartlookConsentSDK.show` callbacks may be usefully eg.,\n    // if some UI depends on the consents state like here.\n    [[NSNotificationCenter defaultCenter] addObserverForName:SLCConsentsTouchedNotification object:nil queue:nil usingBlock:^(NSNotification * _Nonnull note) {\n        [self updateConsentIndicators];\n    }];\n    \n    if (@available(iOS 13.0, *)) {\n        self.view.backgroundColor = UIColor.systemBackgroundColor;\n    } else {\n        self.view.backgroundColor = UIColor.whiteColor;\n    }\n}\n\n- (void)viewDidAppear:(BOOL)animated {\n    [super viewDidAppear:animated];\n    [self updateConsentIndicators];\n}\n\n\n// MARK: - Consent state visualization\n\n- (UIColor *)colorForState:(SLCConsentState)state {\n    switch (state) {\n        case SLCConsentStateUnknown:\n            return [UIColor lightGrayColor];\n            break;\n        case SLCConsentStateNotProvided:\n            return [UIColor redColor];\n            break;\n        case SLCConsentStateProvided:\n            return [UIColor greenColor];\n            break;\n    }\n}\n\n-(void)updateConsentIndicators {\n    self.consentsPanelWasShownIndicator.backgroundColor = SmartlookConsentSDK.wasShown ? [UIColor greenColor] : [UIColor grayColor];\n    self.privacyConsentIndicator.backgroundColor = [self colorForState:[SmartlookConsentSDK consentStateFor:SLCConsentPrivacy]];\n    self.analyticsConsentIndicator.backgroundColor = [self colorForState:[SmartlookConsentSDK consentStateFor:SLCConsentAnalytics]];\n}\n\n\n// MARK: - UI Actions\n\n- (IBAction)buttonAction:(id)sender {\n    // let user review or check the consents\n    [SmartlookConsentSDK showWithCallback:^{\n        [self updateConsentIndicators];\n        if ([SmartlookConsentSDK consentStateFor:SLCConsentAnalytics] != SLCConsentStateProvided) {\n            // stop analytics tools\n        };\n    }];\n}\n\n- (IBAction)showAppSettingsAction:(id)sender {\n    NSURL *settingsUrl = [NSURL URLWithString:UIApplicationOpenSettingsURLString];\n    if ([[UIApplication sharedApplication] canOpenURL:settingsUrl]) {\n        [[UIApplication sharedApplication] openURL:settingsUrl options:@{} completionHandler:nil];\n    }\n\n}\n\n\n@end\n"
  },
  {
    "path": "Demos/ConsentsObjC/Sources/main.m",
    "content": "//\n//  main.m\n//  ConsentSDKDemoObjC\n//\n//  Created by Pavel Kroh on 15/02/2019.\n//  Copyright © 2019 Smartlook. All rights reserved.\n//\n\n#import <UIKit/UIKit.h>\n#import \"AppDelegate.h\"\n\nint main(int argc, char * argv[]) {\n    @autoreleasepool {\n        return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));\n    }\n}\n"
  },
  {
    "path": "Demos/ConsentsSwiftUI/ConsentsSwiftUI.xcodeproj/project.pbxproj",
    "content": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 51;\n\tobjects = {\n\n/* Begin PBXBuildFile section */\n\t\t8F24310D25AC5FCD00403182 /* ConsentStatesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8F24310C25AC5FCD00403182 /* ConsentStatesView.swift */; };\n\t\t8FA8741225AC5AE2003CA69F /* Settings.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 8FA8741125AC5AE2003CA69F /* Settings.bundle */; };\n\t\t8FA8741725AC5B04003CA69F /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 8FA8741525AC5B04003CA69F /* Localizable.strings */; };\n\t\t8FD01CC925AC92EE00FD6871 /* SmartlookConsentSDK.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8FD01CC825AC92EE00FD6871 /* SmartlookConsentSDK.framework */; };\n\t\t8FD01CCA25AC92EE00FD6871 /* SmartlookConsentSDK.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 8FD01CC825AC92EE00FD6871 /* SmartlookConsentSDK.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };\n\t\t8FE5C8BD25A88E460073DEBD /* ConsentsDemoSwiftUIApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8FE5C8BC25A88E460073DEBD /* ConsentsDemoSwiftUIApp.swift */; };\n\t\t8FE5C8BF25A88E460073DEBD /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8FE5C8BE25A88E460073DEBD /* ContentView.swift */; };\n\t\t8FE5C8C125A88E480073DEBD /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 8FE5C8C025A88E480073DEBD /* Assets.xcassets */; };\n\t\t8FE5C8C425A88E480073DEBD /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 8FE5C8C325A88E480073DEBD /* Preview Assets.xcassets */; };\n\t\t8FE5C8D725A898C30073DEBD /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8FE5C8D625A898C30073DEBD /* AppDelegate.swift */; };\n/* End PBXBuildFile section */\n\n/* Begin PBXCopyFilesBuildPhase section */\n\t\t8FA8741C25AC5B64003CA69F /* Embed Frameworks */ = {\n\t\t\tisa = PBXCopyFilesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tdstPath = \"\";\n\t\t\tdstSubfolderSpec = 10;\n\t\t\tfiles = (\n\t\t\t\t8FD01CCA25AC92EE00FD6871 /* SmartlookConsentSDK.framework in Embed Frameworks */,\n\t\t\t);\n\t\t\tname = \"Embed Frameworks\";\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXCopyFilesBuildPhase section */\n\n/* Begin PBXFileReference section */\n\t\t8F24310C25AC5FCD00403182 /* ConsentStatesView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConsentStatesView.swift; sourceTree = \"<group>\"; };\n\t\t8FA8741125AC5AE2003CA69F /* Settings.bundle */ = {isa = PBXFileReference; lastKnownFileType = \"wrapper.plug-in\"; name = Settings.bundle; path = ../Shared/Settings.bundle; sourceTree = \"<group>\"; };\n\t\t8FA8741625AC5B04003CA69F /* Base */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Base; path = ../../Shared/Base.lproj/Localizable.strings; sourceTree = \"<group>\"; };\n\t\t8FD01CC825AC92EE00FD6871 /* SmartlookConsentSDK.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SmartlookConsentSDK.framework; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\t8FE5C8B925A88E460073DEBD /* ConsentsSwiftUI.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ConsentsSwiftUI.app; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\t8FE5C8BC25A88E460073DEBD /* ConsentsDemoSwiftUIApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConsentsDemoSwiftUIApp.swift; sourceTree = \"<group>\"; };\n\t\t8FE5C8BE25A88E460073DEBD /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = \"<group>\"; };\n\t\t8FE5C8C025A88E480073DEBD /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = \"<group>\"; };\n\t\t8FE5C8C325A88E480073DEBD /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = \"Preview Assets.xcassets\"; sourceTree = \"<group>\"; };\n\t\t8FE5C8C525A88E480073DEBD /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = \"<group>\"; };\n\t\t8FE5C8D625A898C30073DEBD /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = \"<group>\"; };\n/* End PBXFileReference section */\n\n/* Begin PBXFrameworksBuildPhase section */\n\t\t8FE5C8B625A88E460073DEBD /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t8FD01CC925AC92EE00FD6871 /* SmartlookConsentSDK.framework in Frameworks */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXFrameworksBuildPhase section */\n\n/* Begin PBXGroup section */\n\t\t8FE5C8B025A88E460073DEBD = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t8FA8741125AC5AE2003CA69F /* Settings.bundle */,\n\t\t\t\t8FE5C8BB25A88E460073DEBD /* Sources */,\n\t\t\t\t8FE5C8BA25A88E460073DEBD /* Products */,\n\t\t\t\t8FE5C8CF25A8938F0073DEBD /* Frameworks */,\n\t\t\t);\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t8FE5C8BA25A88E460073DEBD /* Products */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t8FE5C8B925A88E460073DEBD /* ConsentsSwiftUI.app */,\n\t\t\t);\n\t\t\tname = Products;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t8FE5C8BB25A88E460073DEBD /* Sources */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t8FE5C8D625A898C30073DEBD /* AppDelegate.swift */,\n\t\t\t\t8FE5C8BC25A88E460073DEBD /* ConsentsDemoSwiftUIApp.swift */,\n\t\t\t\t8F24310C25AC5FCD00403182 /* ConsentStatesView.swift */,\n\t\t\t\t8FE5C8BE25A88E460073DEBD /* ContentView.swift */,\n\t\t\t\t8FE5C8C025A88E480073DEBD /* Assets.xcassets */,\n\t\t\t\t8FE5C8C525A88E480073DEBD /* Info.plist */,\n\t\t\t\t8FA8741525AC5B04003CA69F /* Localizable.strings */,\n\t\t\t\t8FE5C8C225A88E480073DEBD /* Preview Content */,\n\t\t\t);\n\t\t\tpath = Sources;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t8FE5C8C225A88E480073DEBD /* Preview Content */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t8FE5C8C325A88E480073DEBD /* Preview Assets.xcassets */,\n\t\t\t);\n\t\t\tpath = \"Preview Content\";\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t8FE5C8CF25A8938F0073DEBD /* Frameworks */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t8FD01CC825AC92EE00FD6871 /* SmartlookConsentSDK.framework */,\n\t\t\t);\n\t\t\tname = Frameworks;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n/* End PBXGroup section */\n\n/* Begin PBXNativeTarget section */\n\t\t8FE5C8B825A88E460073DEBD /* ConsentsSwiftUI */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = 8FE5C8C825A88E480073DEBD /* Build configuration list for PBXNativeTarget \"ConsentsSwiftUI\" */;\n\t\t\tbuildPhases = (\n\t\t\t\t8FE5C8B525A88E460073DEBD /* Sources */,\n\t\t\t\t8FE5C8B625A88E460073DEBD /* Frameworks */,\n\t\t\t\t8FE5C8B725A88E460073DEBD /* Resources */,\n\t\t\t\t8FE5C8D525A895560073DEBD /* SwiftLint */,\n\t\t\t\t8FA8741C25AC5B64003CA69F /* Embed Frameworks */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t);\n\t\t\tname = ConsentsSwiftUI;\n\t\t\tproductName = \"Consents Demo SwiftUI\";\n\t\t\tproductReference = 8FE5C8B925A88E460073DEBD /* ConsentsSwiftUI.app */;\n\t\t\tproductType = \"com.apple.product-type.application\";\n\t\t};\n/* End PBXNativeTarget section */\n\n/* Begin PBXProject section */\n\t\t8FE5C8B125A88E460073DEBD /* Project object */ = {\n\t\t\tisa = PBXProject;\n\t\t\tattributes = {\n\t\t\t\tLastSwiftUpdateCheck = 1230;\n\t\t\t\tLastUpgradeCheck = 1230;\n\t\t\t\tTargetAttributes = {\n\t\t\t\t\t8FE5C8B825A88E460073DEBD = {\n\t\t\t\t\t\tCreatedOnToolsVersion = 12.3;\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t};\n\t\t\tbuildConfigurationList = 8FE5C8B425A88E460073DEBD /* Build configuration list for PBXProject \"ConsentsSwiftUI\" */;\n\t\t\tcompatibilityVersion = \"Xcode 10.0\";\n\t\t\tdevelopmentRegion = en;\n\t\t\thasScannedForEncodings = 0;\n\t\t\tknownRegions = (\n\t\t\t\ten,\n\t\t\t\tBase,\n\t\t\t);\n\t\t\tmainGroup = 8FE5C8B025A88E460073DEBD;\n\t\t\tproductRefGroup = 8FE5C8BA25A88E460073DEBD /* Products */;\n\t\t\tprojectDirPath = \"\";\n\t\t\tprojectRoot = \"\";\n\t\t\ttargets = (\n\t\t\t\t8FE5C8B825A88E460073DEBD /* ConsentsSwiftUI */,\n\t\t\t);\n\t\t};\n/* End PBXProject section */\n\n/* Begin PBXResourcesBuildPhase section */\n\t\t8FE5C8B725A88E460073DEBD /* Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t8FA8741225AC5AE2003CA69F /* Settings.bundle in Resources */,\n\t\t\t\t8FA8741725AC5B04003CA69F /* Localizable.strings in Resources */,\n\t\t\t\t8FE5C8C425A88E480073DEBD /* Preview Assets.xcassets in Resources */,\n\t\t\t\t8FE5C8C125A88E480073DEBD /* Assets.xcassets in Resources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXResourcesBuildPhase section */\n\n/* Begin PBXShellScriptBuildPhase section */\n\t\t8FE5C8D525A895560073DEBD /* SwiftLint */ = {\n\t\t\tisa = PBXShellScriptBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\tinputFileListPaths = (\n\t\t\t);\n\t\t\tinputPaths = (\n\t\t\t);\n\t\t\tname = SwiftLint;\n\t\t\toutputFileListPaths = (\n\t\t\t);\n\t\t\toutputPaths = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t\tshellPath = /bin/sh;\n\t\t\tshellScript = \"if which swiftlint >/dev/null; then\\nswiftlint\\nfi\\n\";\n\t\t};\n/* End PBXShellScriptBuildPhase section */\n\n/* Begin PBXSourcesBuildPhase section */\n\t\t8FE5C8B525A88E460073DEBD /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t8FE5C8D725A898C30073DEBD /* AppDelegate.swift in Sources */,\n\t\t\t\t8FE5C8BF25A88E460073DEBD /* ContentView.swift in Sources */,\n\t\t\t\t8FE5C8BD25A88E460073DEBD /* ConsentsDemoSwiftUIApp.swift in Sources */,\n\t\t\t\t8F24310D25AC5FCD00403182 /* ConsentStatesView.swift in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXSourcesBuildPhase section */\n\n/* Begin PBXVariantGroup section */\n\t\t8FA8741525AC5B04003CA69F /* Localizable.strings */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\t8FA8741625AC5B04003CA69F /* Base */,\n\t\t\t);\n\t\t\tname = Localizable.strings;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n/* End PBXVariantGroup section */\n\n/* Begin XCBuildConfiguration section */\n\t\t8FE5C8C625A88E480073DEBD /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tCLANG_ANALYZER_NONNULL = YES;\n\t\t\t\tCLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;\n\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"gnu++14\";\n\t\t\t\tCLANG_CXX_LIBRARY = \"libc++\";\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_WEAK = YES;\n\t\t\t\tCLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;\n\t\t\t\tCLANG_WARN_BOOL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_COMMA = YES;\n\t\t\t\tCLANG_WARN_CONSTANT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;\n\t\t\t\tCLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;\n\t\t\t\tCLANG_WARN_DOCUMENTATION_COMMENTS = YES;\n\t\t\t\tCLANG_WARN_EMPTY_BODY = YES;\n\t\t\t\tCLANG_WARN_ENUM_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_INFINITE_RECURSION = YES;\n\t\t\t\tCLANG_WARN_INT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;\n\t\t\t\tCLANG_WARN_OBJC_LITERAL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;\n\t\t\t\tCLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;\n\t\t\t\tCLANG_WARN_RANGE_LOOP_ANALYSIS = YES;\n\t\t\t\tCLANG_WARN_STRICT_PROTOTYPES = YES;\n\t\t\t\tCLANG_WARN_SUSPICIOUS_MOVE = YES;\n\t\t\t\tCLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;\n\t\t\t\tCLANG_WARN_UNREACHABLE_CODE = YES;\n\t\t\t\tCLANG_WARN__DUPLICATE_METHOD_MATCH = YES;\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tDEBUG_INFORMATION_FORMAT = dwarf;\n\t\t\t\tENABLE_STRICT_OBJC_MSGSEND = YES;\n\t\t\t\tENABLE_TESTABILITY = YES;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu11;\n\t\t\t\tGCC_DYNAMIC_NO_PIC = NO;\n\t\t\t\tGCC_NO_COMMON_BLOCKS = YES;\n\t\t\t\tGCC_OPTIMIZATION_LEVEL = 0;\n\t\t\t\tGCC_PREPROCESSOR_DEFINITIONS = (\n\t\t\t\t\t\"DEBUG=1\",\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t);\n\t\t\t\tGCC_WARN_64_TO_32_BIT_CONVERSION = YES;\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;\n\t\t\t\tGCC_WARN_UNDECLARED_SELECTOR = YES;\n\t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;\n\t\t\t\tGCC_WARN_UNUSED_FUNCTION = YES;\n\t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 14.3;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;\n\t\t\t\tMTL_FAST_MATH = YES;\n\t\t\t\tONLY_ACTIVE_ARCH = YES;\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t\tSWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-Onone\";\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\t8FE5C8C725A88E480073DEBD /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tCLANG_ANALYZER_NONNULL = YES;\n\t\t\t\tCLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;\n\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"gnu++14\";\n\t\t\t\tCLANG_CXX_LIBRARY = \"libc++\";\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_WEAK = YES;\n\t\t\t\tCLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;\n\t\t\t\tCLANG_WARN_BOOL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_COMMA = YES;\n\t\t\t\tCLANG_WARN_CONSTANT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;\n\t\t\t\tCLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;\n\t\t\t\tCLANG_WARN_DOCUMENTATION_COMMENTS = YES;\n\t\t\t\tCLANG_WARN_EMPTY_BODY = YES;\n\t\t\t\tCLANG_WARN_ENUM_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_INFINITE_RECURSION = YES;\n\t\t\t\tCLANG_WARN_INT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;\n\t\t\t\tCLANG_WARN_OBJC_LITERAL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;\n\t\t\t\tCLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;\n\t\t\t\tCLANG_WARN_RANGE_LOOP_ANALYSIS = YES;\n\t\t\t\tCLANG_WARN_STRICT_PROTOTYPES = YES;\n\t\t\t\tCLANG_WARN_SUSPICIOUS_MOVE = YES;\n\t\t\t\tCLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;\n\t\t\t\tCLANG_WARN_UNREACHABLE_CODE = YES;\n\t\t\t\tCLANG_WARN__DUPLICATE_METHOD_MATCH = YES;\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tDEBUG_INFORMATION_FORMAT = \"dwarf-with-dsym\";\n\t\t\t\tENABLE_NS_ASSERTIONS = NO;\n\t\t\t\tENABLE_STRICT_OBJC_MSGSEND = YES;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu11;\n\t\t\t\tGCC_NO_COMMON_BLOCKS = YES;\n\t\t\t\tGCC_WARN_64_TO_32_BIT_CONVERSION = YES;\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;\n\t\t\t\tGCC_WARN_UNDECLARED_SELECTOR = YES;\n\t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;\n\t\t\t\tGCC_WARN_UNUSED_FUNCTION = YES;\n\t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 14.3;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = NO;\n\t\t\t\tMTL_FAST_MATH = YES;\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t\tSWIFT_COMPILATION_MODE = wholemodule;\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-O\";\n\t\t\t\tVALIDATE_PRODUCT = YES;\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\t8FE5C8C925A88E480073DEBD /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;\n\t\t\t\tASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;\n\t\t\t\tCODE_SIGN_STYLE = Automatic;\n\t\t\t\tDEVELOPMENT_ASSET_PATHS = \"\\\"Sources/Preview Content\\\"\";\n\t\t\t\tDEVELOPMENT_TEAM = L67NW37249;\n\t\t\t\tENABLE_PREVIEWS = YES;\n\t\t\t\tINFOPLIST_FILE = \"$(SRCROOT)/Sources/Info.plist\";\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 14.0;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = (\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t\t\"@executable_path/Frameworks\",\n\t\t\t\t);\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = com.smartlook.ConsentSDKDemoSwiftUI;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\t8FE5C8CA25A88E480073DEBD /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;\n\t\t\t\tASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;\n\t\t\t\tCODE_SIGN_STYLE = Automatic;\n\t\t\t\tDEVELOPMENT_ASSET_PATHS = \"\\\"Sources/Preview Content\\\"\";\n\t\t\t\tDEVELOPMENT_TEAM = L67NW37249;\n\t\t\t\tENABLE_PREVIEWS = YES;\n\t\t\t\tINFOPLIST_FILE = \"$(SRCROOT)/Sources/Info.plist\";\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 14.0;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = (\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t\t\"@executable_path/Frameworks\",\n\t\t\t\t);\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = com.smartlook.ConsentSDKDemoSwiftUI;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n/* End XCBuildConfiguration section */\n\n/* Begin XCConfigurationList section */\n\t\t8FE5C8B425A88E460073DEBD /* Build configuration list for PBXProject \"ConsentsSwiftUI\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\t8FE5C8C625A88E480073DEBD /* Debug */,\n\t\t\t\t8FE5C8C725A88E480073DEBD /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\t8FE5C8C825A88E480073DEBD /* Build configuration list for PBXNativeTarget \"ConsentsSwiftUI\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\t8FE5C8C925A88E480073DEBD /* Debug */,\n\t\t\t\t8FE5C8CA25A88E480073DEBD /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n/* End XCConfigurationList section */\n\t};\n\trootObject = 8FE5C8B125A88E460073DEBD /* Project object */;\n}\n"
  },
  {
    "path": "Demos/ConsentsSwiftUI/ConsentsSwiftUI.xcodeproj/project.xcworkspace/contents.xcworkspacedata",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n   version = \"1.0\">\n   <FileRef\n      location = \"self:\">\n   </FileRef>\n</Workspace>\n"
  },
  {
    "path": "Demos/ConsentsSwiftUI/ConsentsSwiftUI.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>IDEDidComputeMac32BitWarning</key>\n\t<true/>\n</dict>\n</plist>\n"
  },
  {
    "path": "Demos/ConsentsSwiftUI/Sources/AppDelegate.swift",
    "content": "//\n//  AppDelegate.swift\n//  Consents Demo SwiftUI\n//\n//  Created by Václav Halík on 08.01.2021.\n//\n\nimport UIKit\nimport SmartlookConsentSDK\n\nclass AppDelegate: NSObject, UIApplicationDelegate {\n\n    // MARK: - Consent check\n\n    /** This method is to be invoked any time the app starts to check if the consents are provided\n     namely in:\n     - `application:didFinishWithLaunchingOptions` for the fresh start\n     - `application:WillEnterForeground` for app woken up from background (where possibly the consent\n     setting could be changed in system settings)\n     */\n    func checkConsentStates() {\n        var consentsSettingsDefaults = SmartlookConsentSDK.ConsentsSettings()\n        consentsSettingsDefaults.append((.privacy, .provided))\n        consentsSettingsDefaults.append((.analytics, .notProvided))\n        // adding a custom consent\n        // consentsSettingsDefaults.append((\"gdpr\", .notProvided))\n\n        SmartlookConsentSDK.check(with: consentsSettingsDefaults) {\n            if SmartlookConsentSDK.consentState(for: .analytics) == .provided {\n                // start analytics tools\n                // Smartlook.start(withKey: \"1a2b3c4e5f60\")\n            }\n        }\n    }\n\n    // MARK: - Application lifecycle\n\n    func application(_ application: UIApplication,\n                     didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {\n        checkConsentStates()\n        return true\n    }\n\n    func applicationWillEnterForeground(_ application: UIApplication) {\n        checkConsentStates()\n    }\n}\n"
  },
  {
    "path": "Demos/ConsentsSwiftUI/Sources/Assets.xcassets/AccentColor.colorset/Contents.json",
    "content": "{\n  \"colors\" : [\n    {\n      \"idiom\" : \"universal\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "Demos/ConsentsSwiftUI/Sources/Assets.xcassets/AppIcon.appiconset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"iphone\",\n      \"scale\" : \"2x\",\n      \"size\" : \"20x20\"\n    },\n    {\n      \"idiom\" : \"iphone\",\n      \"scale\" : \"3x\",\n      \"size\" : \"20x20\"\n    },\n    {\n      \"idiom\" : \"iphone\",\n      \"scale\" : \"2x\",\n      \"size\" : \"29x29\"\n    },\n    {\n      \"idiom\" : \"iphone\",\n      \"scale\" : \"3x\",\n      \"size\" : \"29x29\"\n    },\n    {\n      \"idiom\" : \"iphone\",\n      \"scale\" : \"2x\",\n      \"size\" : \"40x40\"\n    },\n    {\n      \"idiom\" : \"iphone\",\n      \"scale\" : \"3x\",\n      \"size\" : \"40x40\"\n    },\n    {\n      \"idiom\" : \"iphone\",\n      \"scale\" : \"2x\",\n      \"size\" : \"60x60\"\n    },\n    {\n      \"idiom\" : \"iphone\",\n      \"scale\" : \"3x\",\n      \"size\" : \"60x60\"\n    },\n    {\n      \"idiom\" : \"ipad\",\n      \"scale\" : \"1x\",\n      \"size\" : \"20x20\"\n    },\n    {\n      \"idiom\" : \"ipad\",\n      \"scale\" : \"2x\",\n      \"size\" : \"20x20\"\n    },\n    {\n      \"idiom\" : \"ipad\",\n      \"scale\" : \"1x\",\n      \"size\" : \"29x29\"\n    },\n    {\n      \"idiom\" : \"ipad\",\n      \"scale\" : \"2x\",\n      \"size\" : \"29x29\"\n    },\n    {\n      \"idiom\" : \"ipad\",\n      \"scale\" : \"1x\",\n      \"size\" : \"40x40\"\n    },\n    {\n      \"idiom\" : \"ipad\",\n      \"scale\" : \"2x\",\n      \"size\" : \"40x40\"\n    },\n    {\n      \"idiom\" : \"ipad\",\n      \"scale\" : \"1x\",\n      \"size\" : \"76x76\"\n    },\n    {\n      \"idiom\" : \"ipad\",\n      \"scale\" : \"2x\",\n      \"size\" : \"76x76\"\n    },\n    {\n      \"idiom\" : \"ipad\",\n      \"scale\" : \"2x\",\n      \"size\" : \"83.5x83.5\"\n    },\n    {\n      \"idiom\" : \"ios-marketing\",\n      \"scale\" : \"1x\",\n      \"size\" : \"1024x1024\"\n    }\n  ],\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "Demos/ConsentsSwiftUI/Sources/Assets.xcassets/Contents.json",
    "content": "{\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "Demos/ConsentsSwiftUI/Sources/ConsentStatesView.swift",
    "content": "//\n//  ConsentStatesView.swift\n//  ConsentsSwiftUI\n//\n//  Created by Václav Halík on 11.01.2021.\n//\n\nimport SwiftUI\nimport SmartlookConsentSDK\n\nstruct ConsentStatesView: View {\n\n    @State private var updateFlag: Bool = false\n\n    // States colors\n    private let consentColors: [SmartlookConsentSDK.ConsentState: Color] = [\n        .unknown: Color(.systemGray2),\n        .provided: Color(.systemGreen),\n        .notProvided: Color(.systemRed)\n    ]\n\n    // Consent colors\n    private var panelWasShownColor: Color {\n        SmartlookConsentSDK.wasShown ? .green : .red\n    }\n    private var privacyConsentColor: Color? { consentColors[SmartlookConsentSDK.consentState(for: .privacy)]\n    }\n    private var analyticsConsentColor: Color? { consentColors[SmartlookConsentSDK.consentState(for: .analytics)]\n    }\n\n    var body: some View {\n        VStack(spacing: 6) {\n            ConsentStateRowView(text: \"Consents panel has been shown\", color: panelWasShownColor)\n\n            ConsentStateRowView(text: \"Privacy consent\", color: privacyConsentColor)\n\n            ConsentStateRowView(text: \"Analytics consent\", color: analyticsConsentColor)\n\n            // Force to update view\n            if updateFlag {\n                EmptyView()\n            }\n        }\n        // This is not necessary if all the logic is handled in the `SmartlookConsentSDK.check`\n        // or `SmartlookConsentSDK.show` callbacks may be usefully eg.,\n        // if some UI depends on the consents state like here.\n        .onReceive(NotificationCenter.default.publisher(\n            for: SmartlookConsentSDK.consentsTouchedNotification\n        )) { _ in\n            updateFlag.toggle()\n        }\n    }\n}\n\nstruct ConsentStateRowView: View {\n    var text: String\n    var color: Color?\n\n    var body: some View {\n        HStack {\n            Text(text)\n\n            Spacer()\n\n            Rectangle()\n                .frame(width: 20, height: 20)\n                .foregroundColor(color)\n                .cornerRadius(4)\n        }\n    }\n}\n\nstruct ConsentStatesView_Previews: PreviewProvider {\n    static var previews: some View {\n        ConsentStatesView()\n    }\n}\n"
  },
  {
    "path": "Demos/ConsentsSwiftUI/Sources/ConsentsDemoSwiftUIApp.swift",
    "content": "//\n//  ConsentsDemoSwiftUIApp.swift\n//  Consents Demo SwiftUI\n//\n//  Created by Václav Halík on 08.01.2021.\n//\n\nimport SwiftUI\n\n@main\nstruct ConsentsSwiftUIApp: App {\n    // swiftlint:disable weak_delegate\n    @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate\n\n    var body: some Scene {\n        WindowGroup {\n            ContentView()\n        }\n    }\n}\n"
  },
  {
    "path": "Demos/ConsentsSwiftUI/Sources/ContentView.swift",
    "content": "//\n//  ContentView.swift\n//  Consents Demo SwiftUI\n//\n//  Created by Václav Halík on 08.01.2021.\n//\n\nimport SwiftUI\nimport SmartlookConsentSDK\n\nstruct ContentView: View {\n\n    var body: some View {\n        VStack(alignment: .leading, spacing: 32) {\n            HStack {\n                Spacer()\n\n                Text(\"Smartlook Consent Demo\")\n                    .font(.title)\n\n                Spacer()\n            }\n\n            ConsentStatesView()\n                .frame(maxWidth: 350)\n\n            Button(\"Review consents...\") {\n                reviewConsents()\n            }\n\n            Button(\"Show app settings...\") {\n                showAppSettingsAction()\n            }\n\n            Spacer()\n        }\n        .padding()\n    }\n\n    // MARK: - UI Actions\n\n    func reviewConsents() {\n        // let user review or check the consents\n        SmartlookConsentSDK.show {\n            if SmartlookConsentSDK.consentState(for: .analytics) != .provided {\n                // stop analytics tools\n            }\n        }\n    }\n\n    func showAppSettingsAction() {\n        if\n            let settingsUrl = URL(string: UIApplication.openSettingsURLString),\n            UIApplication.shared.canOpenURL(settingsUrl)\n        {\n            UIApplication.shared.open(settingsUrl, completionHandler: nil)\n        }\n    }\n}\n\nstruct ContentView_Previews: PreviewProvider {\n    static var previews: some View {\n        ContentView()\n    }\n}\n"
  },
  {
    "path": "Demos/ConsentsSwiftUI/Sources/Info.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>CFBundleDevelopmentRegion</key>\n\t<string>$(DEVELOPMENT_LANGUAGE)</string>\n\t<key>CFBundleDisplayName</key>\n\t<string>Consent (SwiftUI)</string>\n\t<key>CFBundleExecutable</key>\n\t<string>$(EXECUTABLE_NAME)</string>\n\t<key>CFBundleIdentifier</key>\n\t<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>\n\t<key>CFBundleInfoDictionaryVersion</key>\n\t<string>6.0</string>\n\t<key>CFBundleName</key>\n\t<string>$(PRODUCT_NAME)</string>\n\t<key>CFBundlePackageType</key>\n\t<string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>\n\t<key>CFBundleShortVersionString</key>\n\t<string>1.0</string>\n\t<key>CFBundleVersion</key>\n\t<string>1</string>\n\t<key>LSRequiresIPhoneOS</key>\n\t<true/>\n\t<key>UIApplicationSceneManifest</key>\n\t<dict>\n\t\t<key>UIApplicationSupportsMultipleScenes</key>\n\t\t<true/>\n\t</dict>\n\t<key>UIApplicationSupportsIndirectInputEvents</key>\n\t<true/>\n\t<key>UILaunchScreen</key>\n\t<dict/>\n\t<key>UIRequiredDeviceCapabilities</key>\n\t<array>\n\t\t<string>armv7</string>\n\t</array>\n\t<key>UISupportedInterfaceOrientations</key>\n\t<array>\n\t\t<string>UIInterfaceOrientationPortrait</string>\n\t\t<string>UIInterfaceOrientationLandscapeLeft</string>\n\t\t<string>UIInterfaceOrientationLandscapeRight</string>\n\t</array>\n\t<key>UISupportedInterfaceOrientations~ipad</key>\n\t<array>\n\t\t<string>UIInterfaceOrientationPortrait</string>\n\t\t<string>UIInterfaceOrientationPortraitUpsideDown</string>\n\t\t<string>UIInterfaceOrientationLandscapeLeft</string>\n\t\t<string>UIInterfaceOrientationLandscapeRight</string>\n\t</array>\n</dict>\n</plist>\n"
  },
  {
    "path": "Demos/ConsentsSwiftUI/Sources/Preview Content/Preview Assets.xcassets/Contents.json",
    "content": "{\n  \"info\" : {\n    \"author\" : \"xcode\",\n    \"version\" : 1\n  }\n}\n"
  },
  {
    "path": "Demos/Shared/Base.lproj/Localizable.strings",
    "content": "/* \n  Localizable.strings\n  ConsentSDKDemo\n\n  Created by Pavel Kroh on 15/02/2019.\n  Copyright © 2019 Smartlook. All rights reserved.\n*/\n\n// Title and into text\n\"smartlook-consent-sdk-title\" = \"Consents for $APP\"; //$APP is replaced by the app display name and the name is highlighted then\n\"smartlook-consent-sdk-text\" = \"Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Etiam sapien elit, consequat eget, tristique non, venenatis quis, ante.\\n\\nCurabitur vitae diam non enim vestibulum interdum. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos.\"; //\\n\\nCurabitur sagittis hendrerit ante. Donec iaculis gravida nulla.\\n\\nClass aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos.\n\n// Texts for privacy consent\n\"smartlook-consent-sdk-privacy-consent\" = \"Privacy consent proin mattis lacinia justo. Duis ante orci, molestie vitae vehicula venenatis, tincidunt ac pede.\";   //Maecenas ipsum velit, consectetuer eu lobortis ut, dictum at dui.\n\"smartlook-consent-sdk-privacy-consent-url\" = \"https://www.smartlook.com\";\n\n// Texts for analytics consent\n\"smartlook-consent-sdk-analytics-consent\" = \"Analytics consent aliquam erat volutpat. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Morbi scelerisque luctus velit. Nunc auctor. \";\n//\"consent-sdk-analytics-consent-url\" = \"https://www.smartlook.com\";\n\n// The button\n\"smartlook-consent-sdk-button\" = \"Confirm & continue\";\n"
  },
  {
    "path": "Demos/Shared/Settings.bundle/Root.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>StringsTable</key>\n\t<string>Root</string>\n\t<key>PreferenceSpecifiers</key>\n\t<array>\n\t\t<dict>\n\t\t\t<key>Type</key>\n\t\t\t<string>PSGroupSpecifier</string>\n\t\t\t<key>Title</key>\n\t\t\t<string>Group</string>\n\t\t</dict>\n\t\t<dict>\n\t\t\t<key>Type</key>\n\t\t\t<string>PSToggleSwitchSpecifier</string>\n\t\t\t<key>Title</key>\n\t\t\t<string>privacy-consent</string>\n\t\t\t<key>Key</key>\n\t\t\t<string>smartlook-consent-sdk-privacy-consent</string>\n\t\t\t<key>DefaultValue</key>\n\t\t\t<true/>\n\t\t</dict>\n\t\t<dict>\n\t\t\t<key>Type</key>\n\t\t\t<string>PSToggleSwitchSpecifier</string>\n\t\t\t<key>Title</key>\n\t\t\t<string>analytics-consent</string>\n\t\t\t<key>Key</key>\n\t\t\t<string>smartlook-consent-sdk-analytics-consent</string>\n\t\t\t<key>DefaultValue</key>\n\t\t\t<true/>\n\t\t</dict>\n\t</array>\n</dict>\n</plist>\n"
  },
  {
    "path": "LICENSE",
    "content": "MIT License\n\nCopyright (c) 2019 Smartlook\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "Package.swift",
    "content": "// swift-tools-version:5.3\n\nimport PackageDescription\n\nlet package = Package(\n    name: \"SmartlookConsentSDK\",\n    platforms: [\n        .iOS(.v10)\n    ],\n    products: [\n        .library(\n            name: \"SmartlookConsentSDK\",\n            targets: [\"SmartlookConsentSDK\"])\n    ],\n    targets: [\n        .target(\n            name: \"SmartlookConsentSDK\",\n            path: \"Sources\",\n            exclude: [\"Info.plist\"])\n    ]\n)\n"
  },
  {
    "path": "README.md",
    "content": "# SmartlookConsentSDK for iOS\n\nGetting explicit user consent with gathering analytics data in an app, or with processing the user’s personal data, is an important part of establishing user trust and seamless user experience.\n\nIt is also an obligation of an app developer stated in [App Store Guidelines](https://developer.apple.com/app-store/review/guidelines/) (2.5.14 and 5.1.2), necessary to fulfil to get your app approved for distribution.\n\nPer the guidelines, if an app uses a 3rd party tool for analytics, it is the sole responsibility of the app developer, not of the 3rd party tool provider, to verify that the analytics tool does not register events in the app without user explicit consent.\n\nAlthough implementing a simple dialog to obtain user consents and store them for further reference seems like a straightforward process — digging into it reveals (as it is usual with “simple tasks”) that many programming and design details should be respected. \n\nSince implementing the consent goes beyond core functionality and the intended design of the app, it is likely that this consent necessity will bring further annoyances, impact time and disrupt existing developing processes. \nSo why not use or reuse some ready-made SDK?\n\nThe SmartlookConsentSDK:\n- provides a configurable control panel where user can select their privacy options\n- stores the selected user preferences for the app\n- enables all texts to be fully localized \n- enables linking to privacy policies which may be provided by an external web page and presenting them without leaving the app\n\nSmartlookConsentSDK works well with both Swift and Objective-C apps.\n\n&nbsp;\n&nbsp;\n\n\n  ![iPad Screenshot](https://github.com/smartlook/ios-consent-sdk/raw/master/readme-media/SmartlookConsentSDKDemo2.gif) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  ![iPhone SettingsScreenshot](https://github.com/smartlook/ios-consent-sdk/raw/master/readme-media/ConsentSDK-Settings.png)  \n\n## Code examples\n### Simple example \nThe most straightforward use that utilises default settings:\n```swift\nSmartlookConsentSDK.check() {\n      if SmartlookConsentSDK.consentState(for: .analytics) == .provided {\n          // Start analytics tools\n      }\n}\n```\n\nThis method first checks if the user already provided/rejected consent for both `privacy` and `analytics`. If not, the privacy control panel is shown with build-in defaults (consent is provided for both). When user agrees, the callback is called to let you handle the user preferences. \n\nIn the case user previously went though these settings, the control panel is not show and the callback is called straight away.\n\n### Complex example \n\nIn this example, only consent for analytics is sought for with the consent provided by default.\n\n```swift\nvar consentsSettingsDefaults = SmartlookConsentSDK.ConsentsSettings()\n// consentsSettingsDefaults.append((.privacy, .notProvided)) \nconsentsSettingsDefaults.append((.analytics, .provided))\n\nSmartlookConsentSDK.check(with: consentsSettingsDefaults) {\n    if SmartlookConsentSDK.consentState(for: .analytics) == .provided {\n        // Start analytics tools\n    }\n}\n```\n\n## Installation\n\n### Swift Package Manager\nIntegration into the application using [Swift Package Manager](https://swift.org/package-manager/) is fully supported.\n\n### Direct framework embedding\nFramwork is ready for direct embedding in your app, e.g. the way it is embedded into the demo apps here. For detailed descriptions see this Apple Developer Portal document [Embedding Frameworks In An App](https://developer.apple.com/library/archive/technotes/tn2435/_index.html)\n\n### Cocoapods (deprecated)\nAdd cocoapod `SmartlookConsentSDK` into your Podfile.\n\n## Adding SmartlookConsentSDK to app code\n\nGenerally, you want `SmartlookConsentSDK.check()` be called at the very beginning of the app life-cycle. Where exactly, it depends on your app architecture. If you don't want integrate this SDK into the standard app Settings, then `viewDidLoad()` of the root view controller is enough. If you want more comprehensive solution, then see our demo apps `AppDelegate` and `ViewController` for an inpiration.\n\n## Objective-C\nThe SDK is fully compatible with `Objective-C`. For code examples see the respective demo app.\n\n## API\n\n### Consent\nConsent is identified by a string constant. For convenience, SDK provides a `String` alias with two predefined constants, `.privacy` a `.analytics` together with the respective text placeholders in demo app `Localizable.strings`. However, any string works, and the name convention used in `Localizable.strings` is obvious.\n\n### ConsentState\nIs a standard enumaration and indicates whether user seen and provided consent to a policy.\n- `.unknown` state indicates that the user did not reviewed the policy\n- `.notProvided` state indicates that the user explicitely refused consent to the policy\n- `.provided` state indicates that the user explicitely provided consent to the policy \n```swift\n@objc(SLCConsentState) public enum ConsentState: Int {\n      case unknown = -2\n      case notProvided = -1\n      case provided = 1\n}\n```\n### SmartlookConsentSDK.check()\nIs the key method of the SDK. It comes in two versions:\n\n```swift\n@objc public static func check(callback: @escaping RequestIdCallback)\n``` \na straigth one w/out consents configuration that can be used when both `.privacy` and `.analytics` policies consents are required with `.provided` as the default value. \n\n```swift\npublic static func check(with consentsSettings: ConsentsSettings, callback: @escaping RequestIdCallback)\n```  \na version with configuration that allows fine-tuning required consents (adding, removing, chaning order of or their default values) \n\n### SmartlookConsentSDK.show()\nTwo variants much like `check()`, it **always** opens the Control Panel for the user to review their current privacy settings.\n\n### Content Touched Notification\nWhenever user closes the panel opened by a call to `check()` or `show()`, `SmartlookConsentSDK.consentsTouchedNotification` notification is broadcased (regardless whether the consents were changed or not). This provides an alternative way to the `callback` block to let the app know there might be a change in consents.\n\nIn ObjC, the notification identifier is `SLCConsentsTouchedNotification`.\n\n## Localisation\nThe texts shown in the control panel are configured using the standard `Localizable.strings` mechanism. `Localizable.strings`  are also used to provide an optional URL of a detailed policy information (thus the link is localised as well).\n\nThe keys used in the `Localizable.strings` are listed in the table below, or you can simply reuse [the file in our demo app](https://github.com/smartlook/ios-consent-sdk/raw/master/Consents%20Demo/ConsentsDemo/Base.lproj/Localizable.strings) .\n\nLocalization follows a name conventions. If a new consent type is added (on top of the predefined convenience types `.privacy` a `.analytics`), the respective keys must be added to localized files following the pattern\n\n```\n\"smartlook-consent-sdk-*consent-key*-consent\" = \"My special consent...\";\n\"smartlook-consent-sdk-*consent-key*-consent-url\" = \"https://www.my-company.com/consent-policy-details?lang=de\"; //optional\n```\n\nwhere `*consent-key*` is simply the text string constant used to identify the policy.\n\n## iOS Settings\n\nThe Consents SDK can be straigthforwardly integrated into the iOS Settings app so the user can also review their consents there. To do this, some manual work is needed even if the SDK is integrated using Cocoapods. If you are not familiar with adding system settings panel into your app, have a look at [Implementing an iOS Settings Bundle](https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/UserDefaults/Preferences/Preferences.html) or just copy the `Settings.bundle` from one of our Demo apps to start.\n\nThe key for SDK integration here is using the same names for your settings items as you use for localised strings, i.e., in order to add the most basic consent settings to iOS settings:\n\n1. Add `Settings.bundle` if it is not there\n2. Into it, add a `Toggle Switch` for each consent.\n3. To connect it with a consent, set the toggle identifier to the same string you use for it in `Localizable.strings`, e.g., `smartlook-consent-sdk-analytics-consent`\n4. Do not forget that `Settings.bundle` localisation is separated from the app localisation (the respective `.strings` file is inside the `Settings.bundle`, in the demo apps it is named `Root.strings`) \n"
  },
  {
    "path": "SmartlookConsentSDK.podspec",
    "content": "# coding: utf-8\n\n#\n# Be sure to run `pod lib lint ABCPod.podspec' to ensure this is a\n# valid spec before submitting.\n#\n# Any lines starting with a # are optional, but their use is encouraged\n# To learn more about a Podspec see https://guides.cocoapods.org/syntax/podspec.html\n#\n\nPod::Spec.new do |s|\ns.name             = 'SmartlookConsentSDK'\ns.version          = '1.6.0'\ns.summary          = 'This SDK provides a configurable control panel where user selects her privacy options.'\n\n# This description is used to generate tags and improve search results.\ns.description      = <<-DESC\nThis SDK:\n\n- provides a configurable control panel where user selects her privacy options\n- stores the selected user preferences to be used in your app\n- works both with Swift and Objective-C apps\n- all texts are fully localizable\n- privacy policies may be provided by an external web page that is presented w/out leaving the app (see localisation.)\n\nObtaining explicit user consent with gathering analytics data in an app, or with processing user’s personal data is important part of establishing user trust and seamless user experience.\n\nIt is also an obligation of an app developer stated in App Store Guidelines (2.5.14 and 5.1.2), necessary to fulfil in order to get your app approved for distribution. If your app e.g. uses a 3rd party tool for analytics, it is the sole responsibility of you as the app developer, not of the 3rd party tool provider, that the analytics tool does not start registering events in the app without user explicit consent.\n\nAlthough implementing some dialog to obtain user consents and store them for further reference seems pretty straightforward, digging into it reveals (as usual with “simple tasks”) many programming and design details that must be implemented, which are not the core functionality of your app.\nDESC\n\ns.homepage         = 'https://github.com/smartlook/ios-consent-sdk/'\ns.screenshots     =  ['https://sdk.smartlook.com/assets/SmartlookConsentSDKDemo2.gif', 'https://github.com/smartlook/ios-consent-sdk/raw/master/readme-media/ConsentSDK-Settings.png']\ns.license          = { :type => 'MIT', :file => 'LICENSE' }\ns.authors           = { 'Pavel Kroh' => 'pavelkroh@smartlook.com', 'Václav Halík' => 'vaclav.halik@smartlook.com' }\ns.source           = { :git => 'https://github.com/smartlook/ios-consent-sdk.git', :tag => s.version.to_s }\ns.documentation_url = 'https://github.com/smartlook/ios-consent-sdk/'\n\ns.ios.deployment_target = '10.0'\n\ns.swift_versions = ['5.1', '5.2', '5.3']\ns.source_files = 'Sources/**/*.{h,m,c,swift}'\n\ns.resource_bundles = {\n    'SmartlookConsentSDK' => ['Sources/**/*.{storyboard,xib}']\n}\n\nend\n"
  },
  {
    "path": "SmartlookConsentSDK.xcodeproj/project.pbxproj",
    "content": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 51;\n\tobjects = {\n\n/* Begin PBXBuildFile section */\n\t\t3313512D222E80FB004BE5AE /* SmartlookConsentSDK+Notification.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3313512C222E80FB004BE5AE /* SmartlookConsentSDK+Notification.swift */; };\n\t\t33C27E44221C07560026F090 /* SmartlookConsentSDK.h in Headers */ = {isa = PBXBuildFile; fileRef = 33C27E42221C07560026F090 /* SmartlookConsentSDK.h */; settings = {ATTRIBUTES = (Public, ); }; };\n\t\t33C27E53221C07D30026F090 /* HeaderCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33C27E4A221C07D20026F090 /* HeaderCell.swift */; };\n\t\t33C27E54221C07D30026F090 /* TopBorderCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33C27E4B221C07D30026F090 /* TopBorderCell.swift */; };\n\t\t33C27E55221C07D30026F090 /* ButtonCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33C27E4C221C07D30026F090 /* ButtonCell.swift */; };\n\t\t33C27E56221C07D30026F090 /* ControlPanel.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 33C27E4D221C07D30026F090 /* ControlPanel.storyboard */; };\n\t\t33C27E57221C07D30026F090 /* SmartlookConsentSDK+Consent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33C27E4E221C07D30026F090 /* SmartlookConsentSDK+Consent.swift */; };\n\t\t33C27E58221C07D30026F090 /* ControlPanelViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33C27E4F221C07D30026F090 /* ControlPanelViewController.swift */; };\n\t\t33C27E59221C07D30026F090 /* SmartlookConsentSDK+ObjC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33C27E50221C07D30026F090 /* SmartlookConsentSDK+ObjC.swift */; };\n\t\t33C27E5A221C07D30026F090 /* ConsentCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33C27E51221C07D30026F090 /* ConsentCell.swift */; };\n\t\t33C27E5B221C07D30026F090 /* SmartlookConsentSDK.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33C27E52221C07D30026F090 /* SmartlookConsentSDK.swift */; };\n\t\t8F0CFF782576A085002CBC8B /* ConsentCellDelegateProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8F0CFF772576A085002CBC8B /* ConsentCellDelegateProtocol.swift */; };\n\t\t8F114349257A34F000F41179 /* ButtonCellDelegateProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8F114348257A34F000F41179 /* ButtonCellDelegateProtocol.swift */; };\n/* End PBXBuildFile section */\n\n/* Begin PBXFileReference section */\n\t\t3313512C222E80FB004BE5AE /* SmartlookConsentSDK+Notification.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = \"SmartlookConsentSDK+Notification.swift\"; sourceTree = \"<group>\"; };\n\t\t33C27E3F221C07560026F090 /* SmartlookConsentSDK.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SmartlookConsentSDK.framework; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\t33C27E42221C07560026F090 /* SmartlookConsentSDK.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SmartlookConsentSDK.h; sourceTree = \"<group>\"; };\n\t\t33C27E43221C07560026F090 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = \"<group>\"; };\n\t\t33C27E4A221C07D20026F090 /* HeaderCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HeaderCell.swift; sourceTree = \"<group>\"; };\n\t\t33C27E4B221C07D30026F090 /* TopBorderCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TopBorderCell.swift; sourceTree = \"<group>\"; };\n\t\t33C27E4C221C07D30026F090 /* ButtonCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ButtonCell.swift; sourceTree = \"<group>\"; };\n\t\t33C27E4D221C07D30026F090 /* ControlPanel.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = ControlPanel.storyboard; sourceTree = \"<group>\"; };\n\t\t33C27E4E221C07D30026F090 /* SmartlookConsentSDK+Consent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = \"SmartlookConsentSDK+Consent.swift\"; sourceTree = \"<group>\"; };\n\t\t33C27E4F221C07D30026F090 /* ControlPanelViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ControlPanelViewController.swift; sourceTree = \"<group>\"; };\n\t\t33C27E50221C07D30026F090 /* SmartlookConsentSDK+ObjC.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = \"SmartlookConsentSDK+ObjC.swift\"; sourceTree = \"<group>\"; };\n\t\t33C27E51221C07D30026F090 /* ConsentCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ConsentCell.swift; sourceTree = \"<group>\"; };\n\t\t33C27E52221C07D30026F090 /* SmartlookConsentSDK.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SmartlookConsentSDK.swift; sourceTree = \"<group>\"; };\n\t\t8F0CFF772576A085002CBC8B /* ConsentCellDelegateProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConsentCellDelegateProtocol.swift; sourceTree = \"<group>\"; };\n\t\t8F114348257A34F000F41179 /* ButtonCellDelegateProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ButtonCellDelegateProtocol.swift; sourceTree = \"<group>\"; };\n/* End PBXFileReference section */\n\n/* Begin PBXFrameworksBuildPhase section */\n\t\t33C27E3C221C07560026F090 /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXFrameworksBuildPhase section */\n\n/* Begin PBXGroup section */\n\t\t33C27E35221C07560026F090 = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t33C27E41221C07560026F090 /* Sources */,\n\t\t\t\t33C27E40221C07560026F090 /* Products */,\n\t\t\t);\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t33C27E40221C07560026F090 /* Products */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t33C27E3F221C07560026F090 /* SmartlookConsentSDK.framework */,\n\t\t\t);\n\t\t\tname = Products;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t33C27E41221C07560026F090 /* Sources */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t8F0CFF7E2576A55E002CBC8B /* UI */,\n\t\t\t\t33C27E42221C07560026F090 /* SmartlookConsentSDK.h */,\n\t\t\t\t33C27E52221C07D30026F090 /* SmartlookConsentSDK.swift */,\n\t\t\t\t33C27E4E221C07D30026F090 /* SmartlookConsentSDK+Consent.swift */,\n\t\t\t\t33C27E50221C07D30026F090 /* SmartlookConsentSDK+ObjC.swift */,\n\t\t\t\t3313512C222E80FB004BE5AE /* SmartlookConsentSDK+Notification.swift */,\n\t\t\t\t33C27E43221C07560026F090 /* Info.plist */,\n\t\t\t);\n\t\t\tpath = Sources;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t8F0CFF7E2576A55E002CBC8B /* UI */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t8FEA48B92576923A002B07EA /* Cells */,\n\t\t\t\t33C27E4F221C07D30026F090 /* ControlPanelViewController.swift */,\n\t\t\t\t33C27E4D221C07D30026F090 /* ControlPanel.storyboard */,\n\t\t\t);\n\t\t\tpath = UI;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t8FEA48B92576923A002B07EA /* Cells */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t33C27E4C221C07D30026F090 /* ButtonCell.swift */,\n\t\t\t\t8F114348257A34F000F41179 /* ButtonCellDelegateProtocol.swift */,\n\t\t\t\t33C27E51221C07D30026F090 /* ConsentCell.swift */,\n\t\t\t\t8F0CFF772576A085002CBC8B /* ConsentCellDelegateProtocol.swift */,\n\t\t\t\t33C27E4A221C07D20026F090 /* HeaderCell.swift */,\n\t\t\t\t33C27E4B221C07D30026F090 /* TopBorderCell.swift */,\n\t\t\t);\n\t\t\tpath = Cells;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n/* End PBXGroup section */\n\n/* Begin PBXHeadersBuildPhase section */\n\t\t33C27E3A221C07560026F090 /* Headers */ = {\n\t\t\tisa = PBXHeadersBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t33C27E44221C07560026F090 /* SmartlookConsentSDK.h in Headers */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXHeadersBuildPhase section */\n\n/* Begin PBXNativeTarget section */\n\t\t33C27E3E221C07560026F090 /* SmartlookConsentSDK */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = 33C27E47221C07560026F090 /* Build configuration list for PBXNativeTarget \"SmartlookConsentSDK\" */;\n\t\t\tbuildPhases = (\n\t\t\t\t3332D680237040CD00A1C2F0 /* Build Number Increase */,\n\t\t\t\t33C27E3A221C07560026F090 /* Headers */,\n\t\t\t\t33C27E3B221C07560026F090 /* Sources */,\n\t\t\t\t33C27E3C221C07560026F090 /* Frameworks */,\n\t\t\t\t33C27E3D221C07560026F090 /* Resources */,\n\t\t\t\t8FEA48B525767DCD002B07EA /* SwiftLint */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t);\n\t\t\tname = SmartlookConsentSDK;\n\t\t\tproductName = SmartlookConsentSDK;\n\t\t\tproductReference = 33C27E3F221C07560026F090 /* SmartlookConsentSDK.framework */;\n\t\t\tproductType = \"com.apple.product-type.framework\";\n\t\t};\n/* End PBXNativeTarget section */\n\n/* Begin PBXProject section */\n\t\t33C27E36221C07560026F090 /* Project object */ = {\n\t\t\tisa = PBXProject;\n\t\t\tattributes = {\n\t\t\t\tLastUpgradeCheck = 1220;\n\t\t\t\tORGANIZATIONNAME = Smartlook;\n\t\t\t\tTargetAttributes = {\n\t\t\t\t\t33C27E3E221C07560026F090 = {\n\t\t\t\t\t\tCreatedOnToolsVersion = 10.1;\n\t\t\t\t\t\tLastSwiftMigration = 1220;\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t};\n\t\t\tbuildConfigurationList = 33C27E39221C07560026F090 /* Build configuration list for PBXProject \"SmartlookConsentSDK\" */;\n\t\t\tcompatibilityVersion = \"Xcode 10.0\";\n\t\t\tdevelopmentRegion = en;\n\t\t\thasScannedForEncodings = 0;\n\t\t\tknownRegions = (\n\t\t\t\ten,\n\t\t\t\tBase,\n\t\t\t);\n\t\t\tmainGroup = 33C27E35221C07560026F090;\n\t\t\tproductRefGroup = 33C27E40221C07560026F090 /* Products */;\n\t\t\tprojectDirPath = \"\";\n\t\t\tprojectRoot = \"\";\n\t\t\ttargets = (\n\t\t\t\t33C27E3E221C07560026F090 /* SmartlookConsentSDK */,\n\t\t\t);\n\t\t};\n/* End PBXProject section */\n\n/* Begin PBXResourcesBuildPhase section */\n\t\t33C27E3D221C07560026F090 /* Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t33C27E56221C07D30026F090 /* ControlPanel.storyboard in Resources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXResourcesBuildPhase section */\n\n/* Begin PBXShellScriptBuildPhase section */\n\t\t3332D680237040CD00A1C2F0 /* Build Number Increase */ = {\n\t\t\tisa = PBXShellScriptBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\tinputFileListPaths = (\n\t\t\t);\n\t\t\tinputPaths = (\n\t\t\t);\n\t\t\tname = \"Build Number Increase\";\n\t\t\toutputFileListPaths = (\n\t\t\t);\n\t\t\toutputPaths = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t\tshellPath = /bin/sh;\n\t\t\tshellScript = \"buildNumber=$(/usr/libexec/PlistBuddy -c \\\"Print CFBundleVersion\\\" \\\"$INFOPLIST_FILE\\\")\\nbuildNumber=$(($buildNumber + 1))\\n/usr/libexec/PlistBuddy -c \\\"Set :CFBundleVersion $buildNumber\\\" \\\"$INFOPLIST_FILE\\\"\\n\";\n\t\t};\n\t\t8FEA48B525767DCD002B07EA /* SwiftLint */ = {\n\t\t\tisa = PBXShellScriptBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\tinputFileListPaths = (\n\t\t\t);\n\t\t\tinputPaths = (\n\t\t\t);\n\t\t\tname = SwiftLint;\n\t\t\toutputFileListPaths = (\n\t\t\t);\n\t\t\toutputPaths = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t\tshellPath = /bin/sh;\n\t\t\tshellScript = \"if which swiftlint >/dev/null; then\\nswiftlint\\nfi\\n\";\n\t\t};\n/* End PBXShellScriptBuildPhase section */\n\n/* Begin PBXSourcesBuildPhase section */\n\t\t33C27E3B221C07560026F090 /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t33C27E53221C07D30026F090 /* HeaderCell.swift in Sources */,\n\t\t\t\t33C27E58221C07D30026F090 /* ControlPanelViewController.swift in Sources */,\n\t\t\t\t33C27E59221C07D30026F090 /* SmartlookConsentSDK+ObjC.swift in Sources */,\n\t\t\t\t33C27E57221C07D30026F090 /* SmartlookConsentSDK+Consent.swift in Sources */,\n\t\t\t\t33C27E5B221C07D30026F090 /* SmartlookConsentSDK.swift in Sources */,\n\t\t\t\t33C27E5A221C07D30026F090 /* ConsentCell.swift in Sources */,\n\t\t\t\t33C27E54221C07D30026F090 /* TopBorderCell.swift in Sources */,\n\t\t\t\t8F0CFF782576A085002CBC8B /* ConsentCellDelegateProtocol.swift in Sources */,\n\t\t\t\t33C27E55221C07D30026F090 /* ButtonCell.swift in Sources */,\n\t\t\t\t3313512D222E80FB004BE5AE /* SmartlookConsentSDK+Notification.swift in Sources */,\n\t\t\t\t8F114349257A34F000F41179 /* ButtonCellDelegateProtocol.swift in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXSourcesBuildPhase section */\n\n/* Begin XCBuildConfiguration section */\n\t\t33C27E45221C07560026F090 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tCLANG_ANALYZER_NONNULL = YES;\n\t\t\t\tCLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;\n\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"gnu++14\";\n\t\t\t\tCLANG_CXX_LIBRARY = \"libc++\";\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_WEAK = YES;\n\t\t\t\tCLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;\n\t\t\t\tCLANG_WARN_BOOL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_COMMA = YES;\n\t\t\t\tCLANG_WARN_CONSTANT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;\n\t\t\t\tCLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;\n\t\t\t\tCLANG_WARN_DOCUMENTATION_COMMENTS = YES;\n\t\t\t\tCLANG_WARN_EMPTY_BODY = YES;\n\t\t\t\tCLANG_WARN_ENUM_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_INFINITE_RECURSION = YES;\n\t\t\t\tCLANG_WARN_INT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;\n\t\t\t\tCLANG_WARN_OBJC_LITERAL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;\n\t\t\t\tCLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;\n\t\t\t\tCLANG_WARN_RANGE_LOOP_ANALYSIS = YES;\n\t\t\t\tCLANG_WARN_STRICT_PROTOTYPES = YES;\n\t\t\t\tCLANG_WARN_SUSPICIOUS_MOVE = YES;\n\t\t\t\tCLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;\n\t\t\t\tCLANG_WARN_UNREACHABLE_CODE = YES;\n\t\t\t\tCLANG_WARN__DUPLICATE_METHOD_MATCH = YES;\n\t\t\t\tCODE_SIGN_IDENTITY = \"iPhone Developer\";\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tCURRENT_PROJECT_VERSION = 1;\n\t\t\t\tDEBUG_INFORMATION_FORMAT = dwarf;\n\t\t\t\tENABLE_STRICT_OBJC_MSGSEND = YES;\n\t\t\t\tENABLE_TESTABILITY = YES;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu11;\n\t\t\t\tGCC_DYNAMIC_NO_PIC = NO;\n\t\t\t\tGCC_NO_COMMON_BLOCKS = YES;\n\t\t\t\tGCC_OPTIMIZATION_LEVEL = 0;\n\t\t\t\tGCC_PREPROCESSOR_DEFINITIONS = (\n\t\t\t\t\t\"DEBUG=1\",\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t);\n\t\t\t\tGCC_WARN_64_TO_32_BIT_CONVERSION = YES;\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;\n\t\t\t\tGCC_WARN_UNDECLARED_SELECTOR = YES;\n\t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;\n\t\t\t\tGCC_WARN_UNUSED_FUNCTION = YES;\n\t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 12.1;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;\n\t\t\t\tMTL_FAST_MATH = YES;\n\t\t\t\tONLY_ACTIVE_ARCH = YES;\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t\tSWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-Onone\";\n\t\t\t\tVERSIONING_SYSTEM = \"apple-generic\";\n\t\t\t\tVERSION_INFO_PREFIX = \"\";\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\t33C27E46221C07560026F090 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tCLANG_ANALYZER_NONNULL = YES;\n\t\t\t\tCLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;\n\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"gnu++14\";\n\t\t\t\tCLANG_CXX_LIBRARY = \"libc++\";\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_WEAK = YES;\n\t\t\t\tCLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;\n\t\t\t\tCLANG_WARN_BOOL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_COMMA = YES;\n\t\t\t\tCLANG_WARN_CONSTANT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;\n\t\t\t\tCLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;\n\t\t\t\tCLANG_WARN_DOCUMENTATION_COMMENTS = YES;\n\t\t\t\tCLANG_WARN_EMPTY_BODY = YES;\n\t\t\t\tCLANG_WARN_ENUM_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_INFINITE_RECURSION = YES;\n\t\t\t\tCLANG_WARN_INT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;\n\t\t\t\tCLANG_WARN_OBJC_LITERAL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;\n\t\t\t\tCLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;\n\t\t\t\tCLANG_WARN_RANGE_LOOP_ANALYSIS = YES;\n\t\t\t\tCLANG_WARN_STRICT_PROTOTYPES = YES;\n\t\t\t\tCLANG_WARN_SUSPICIOUS_MOVE = YES;\n\t\t\t\tCLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;\n\t\t\t\tCLANG_WARN_UNREACHABLE_CODE = YES;\n\t\t\t\tCLANG_WARN__DUPLICATE_METHOD_MATCH = YES;\n\t\t\t\tCODE_SIGN_IDENTITY = \"iPhone Developer\";\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tCURRENT_PROJECT_VERSION = 1;\n\t\t\t\tDEBUG_INFORMATION_FORMAT = \"dwarf-with-dsym\";\n\t\t\t\tENABLE_NS_ASSERTIONS = NO;\n\t\t\t\tENABLE_STRICT_OBJC_MSGSEND = YES;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu11;\n\t\t\t\tGCC_NO_COMMON_BLOCKS = YES;\n\t\t\t\tGCC_WARN_64_TO_32_BIT_CONVERSION = YES;\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;\n\t\t\t\tGCC_WARN_UNDECLARED_SELECTOR = YES;\n\t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;\n\t\t\t\tGCC_WARN_UNUSED_FUNCTION = YES;\n\t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 12.1;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = NO;\n\t\t\t\tMTL_FAST_MATH = YES;\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t\tSWIFT_COMPILATION_MODE = wholemodule;\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-O\";\n\t\t\t\tVALIDATE_PRODUCT = YES;\n\t\t\t\tVERSIONING_SYSTEM = \"apple-generic\";\n\t\t\t\tVERSION_INFO_PREFIX = \"\";\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\t33C27E48221C07560026F090 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCODE_SIGN_IDENTITY = \"\";\n\t\t\t\tCODE_SIGN_STYLE = Automatic;\n\t\t\t\tDEFINES_MODULE = YES;\n\t\t\t\tDEVELOPMENT_TEAM = 57MHDLMMHS;\n\t\t\t\tDYLIB_COMPATIBILITY_VERSION = 1;\n\t\t\t\tDYLIB_CURRENT_VERSION = 1;\n\t\t\t\tDYLIB_INSTALL_NAME_BASE = \"@rpath\";\n\t\t\t\tINFOPLIST_FILE = Sources/Info.plist;\n\t\t\t\tINSTALL_PATH = \"$(LOCAL_LIBRARY_DIR)/Frameworks\";\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = (\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t\t\"@executable_path/Frameworks\",\n\t\t\t\t\t\"@loader_path/Frameworks\",\n\t\t\t\t);\n\t\t\t\tMARKETING_VERSION = 1.6.0;\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = com.smartlook.SmartlookConsentSDK;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME:c99extidentifier)\";\n\t\t\t\tSKIP_INSTALL = YES;\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-Onone\";\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\t33C27E49221C07560026F090 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCODE_SIGN_IDENTITY = \"\";\n\t\t\t\tCODE_SIGN_STYLE = Automatic;\n\t\t\t\tDEFINES_MODULE = YES;\n\t\t\t\tDEVELOPMENT_TEAM = 57MHDLMMHS;\n\t\t\t\tDYLIB_COMPATIBILITY_VERSION = 1;\n\t\t\t\tDYLIB_CURRENT_VERSION = 1;\n\t\t\t\tDYLIB_INSTALL_NAME_BASE = \"@rpath\";\n\t\t\t\tINFOPLIST_FILE = Sources/Info.plist;\n\t\t\t\tINSTALL_PATH = \"$(LOCAL_LIBRARY_DIR)/Frameworks\";\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = (\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t\t\"@executable_path/Frameworks\",\n\t\t\t\t\t\"@loader_path/Frameworks\",\n\t\t\t\t);\n\t\t\t\tMARKETING_VERSION = 1.6.0;\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = com.smartlook.SmartlookConsentSDK;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME:c99extidentifier)\";\n\t\t\t\tSKIP_INSTALL = YES;\n\t\t\t\tSWIFT_VERSION = 5.0;\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n/* End XCBuildConfiguration section */\n\n/* Begin XCConfigurationList section */\n\t\t33C27E39221C07560026F090 /* Build configuration list for PBXProject \"SmartlookConsentSDK\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\t33C27E45221C07560026F090 /* Debug */,\n\t\t\t\t33C27E46221C07560026F090 /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\t33C27E47221C07560026F090 /* Build configuration list for PBXNativeTarget \"SmartlookConsentSDK\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\t33C27E48221C07560026F090 /* Debug */,\n\t\t\t\t33C27E49221C07560026F090 /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n/* End XCConfigurationList section */\n\t};\n\trootObject = 33C27E36221C07560026F090 /* Project object */;\n}\n"
  },
  {
    "path": "SmartlookConsentSDK.xcodeproj/project.xcworkspace/contents.xcworkspacedata",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n   version = \"1.0\">\n   <FileRef\n      location = \"self:\">\n   </FileRef>\n</Workspace>\n"
  },
  {
    "path": "SmartlookConsentSDK.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>IDEDidComputeMac32BitWarning</key>\n\t<true/>\n</dict>\n</plist>\n"
  },
  {
    "path": "SmartlookConsentSDK.xcodeproj/xcshareddata/xcschemes/SmartlookConsentSDK.xcscheme",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n   LastUpgradeVersion = \"1230\"\n   version = \"1.3\">\n   <BuildAction\n      parallelizeBuildables = \"YES\"\n      buildImplicitDependencies = \"YES\">\n      <BuildActionEntries>\n         <BuildActionEntry\n            buildForTesting = \"YES\"\n            buildForRunning = \"YES\"\n            buildForProfiling = \"YES\"\n            buildForArchiving = \"YES\"\n            buildForAnalyzing = \"YES\">\n            <BuildableReference\n               BuildableIdentifier = \"primary\"\n               BlueprintIdentifier = \"33C27E3E221C07560026F090\"\n               BuildableName = \"SmartlookConsentSDK.framework\"\n               BlueprintName = \"SmartlookConsentSDK\"\n               ReferencedContainer = \"container:SmartlookConsentSDK.xcodeproj\">\n            </BuildableReference>\n         </BuildActionEntry>\n      </BuildActionEntries>\n   </BuildAction>\n   <TestAction\n      buildConfiguration = \"Debug\"\n      selectedDebuggerIdentifier = \"Xcode.DebuggerFoundation.Debugger.LLDB\"\n      selectedLauncherIdentifier = \"Xcode.DebuggerFoundation.Launcher.LLDB\"\n      shouldUseLaunchSchemeArgsEnv = \"YES\">\n      <Testables>\n      </Testables>\n   </TestAction>\n   <LaunchAction\n      buildConfiguration = \"Debug\"\n      selectedDebuggerIdentifier = \"Xcode.DebuggerFoundation.Debugger.LLDB\"\n      selectedLauncherIdentifier = \"Xcode.DebuggerFoundation.Launcher.LLDB\"\n      launchStyle = \"0\"\n      useCustomWorkingDirectory = \"NO\"\n      ignoresPersistentStateOnLaunch = \"NO\"\n      debugDocumentVersioning = \"YES\"\n      debugServiceExtension = \"internal\"\n      allowLocationSimulation = \"YES\">\n   </LaunchAction>\n   <ProfileAction\n      buildConfiguration = \"Release\"\n      shouldUseLaunchSchemeArgsEnv = \"YES\"\n      savedToolIdentifier = \"\"\n      useCustomWorkingDirectory = \"NO\"\n      debugDocumentVersioning = \"YES\">\n      <MacroExpansion>\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"33C27E3E221C07560026F090\"\n            BuildableName = \"SmartlookConsentSDK.framework\"\n            BlueprintName = \"SmartlookConsentSDK\"\n            ReferencedContainer = \"container:SmartlookConsentSDK.xcodeproj\">\n         </BuildableReference>\n      </MacroExpansion>\n   </ProfileAction>\n   <AnalyzeAction\n      buildConfiguration = \"Debug\">\n   </AnalyzeAction>\n   <ArchiveAction\n      buildConfiguration = \"Release\"\n      revealArchiveInOrganizer = \"YES\">\n   </ArchiveAction>\n</Scheme>\n"
  },
  {
    "path": "SmartlookConsentSDK.xcworkspace/contents.xcworkspacedata",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n   version = \"1.0\">\n   <FileRef\n      location = \"container:SmartlookConsentSDK.xcodeproj\">\n   </FileRef>\n   <Group\n      location = \"container:\"\n      name = \"Demos\">\n      <FileRef\n         location = \"group:Demos/ConsentsDemo/ConsentsDemo.xcodeproj\">\n      </FileRef>\n      <FileRef\n         location = \"group:Demos/ConsentsObjC/ConsentsObjC.xcodeproj\">\n      </FileRef>\n      <FileRef\n         location = \"group:Demos/ConsentsSwiftUI/ConsentsSwiftUI.xcodeproj\">\n      </FileRef>\n   </Group>\n   <FileRef\n      location = \"group:Package.swift\">\n   </FileRef>\n   <FileRef\n      location = \"group:SmartlookConsentSDK.podspec\">\n   </FileRef>\n   <FileRef\n      location = \"group:README.md\">\n   </FileRef>\n   <FileRef\n      location = \"group:CHANGELOG.md\">\n   </FileRef>\n   <FileRef\n      location = \"group:LICENSE\">\n   </FileRef>\n</Workspace>\n"
  },
  {
    "path": "SmartlookConsentSDK.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>IDEDidComputeMac32BitWarning</key>\n\t<true/>\n</dict>\n</plist>\n"
  },
  {
    "path": "Sources/Info.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>CFBundleDevelopmentRegion</key>\n\t<string>$(DEVELOPMENT_LANGUAGE)</string>\n\t<key>CFBundleExecutable</key>\n\t<string>$(EXECUTABLE_NAME)</string>\n\t<key>CFBundleIdentifier</key>\n\t<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>\n\t<key>CFBundleInfoDictionaryVersion</key>\n\t<string>6.0</string>\n\t<key>CFBundleName</key>\n\t<string>$(PRODUCT_NAME)</string>\n\t<key>CFBundlePackageType</key>\n\t<string>FMWK</string>\n\t<key>CFBundleShortVersionString</key>\n\t<string>$(MARKETING_VERSION)</string>\n\t<key>CFBundleVersion</key>\n\t<string>533</string>\n</dict>\n</plist>\n"
  },
  {
    "path": "Sources/SmartlookConsentSDK+Consent.swift",
    "content": "//\n//  SmartlookConsentSDK+Consent.swift\n//  SmartlookConsentSDK\n//\n//  Created by Pavel Kroh on 18/02/2019.\n//  Copyright © 2019 Smartlook. All rights reserved.\n//\n\nimport Foundation\n\nextension SmartlookConsentSDK {\n    public typealias Consent = String\n}\n\nextension SmartlookConsentSDK.Consent {\n    public static let privacy: SmartlookConsentSDK.Consent = \"privacy\"\n    public static let analytics: SmartlookConsentSDK.Consent = \"analytics\"\n}\n\nextension SmartlookConsentSDK {\n\n    /**\n     Indicates whether user seen and provided consent to a policy.\n     \n     `.unknown` state indicates that the user did not reviewed the policy\n\n     `.notProvided` state indicates that the user explicitly refused consent to the policy\n     \n     `.provided` state indicates that the user explicitly provided consent to the policy\n     */\n    @objc(SLCConsentState) public enum ConsentState: Int {\n        case unknown = -2\n        case notProvided = -1\n        case provided = 1\n    }\n\n    static func key(for consent: Consent) -> String {\n        return \"\\(SmartlookConsentSDK.keyPrefix)-\\(consent)-consent\"\n    }\n\n    static func set(state: ConsentState, for consent: Consent) {\n        switch state {\n        case .unknown:\n            UserDefaults.standard.removeObject(forKey: key(for: consent))\n\n        case .provided:\n            UserDefaults.standard.set(true, forKey: key(for: consent))\n\n        case .notProvided:\n            UserDefaults.standard.set(false, forKey: key(for: consent))\n        }\n    }\n\n    /**\n     The current consent state.\n     */\n    @objc public static func consentState(for consent: Consent) -> ConsentState {\n        guard let value = UserDefaults.standard.object(forKey: key(for: consent)) as? Bool else {\n            return .unknown\n        }\n\n        return value ? .provided: .notProvided\n    }\n\n    static func label(for consent: Consent) -> String {\n        return NSLocalizedString(key(for: consent), comment: \"\")\n    }\n\n    static func detailUrl(for consent: Consent) -> URL? {\n        let urlKey = \"\\(key(for: consent))-url\"\n        let consentUrlString = NSLocalizedString(urlKey, comment: \"\")\n        guard consentUrlString != urlKey else {\n            return nil\n        }\n\n        return URL(string: consentUrlString)\n    }\n}\n"
  },
  {
    "path": "Sources/SmartlookConsentSDK+Notification.swift",
    "content": "//\n//  SmartlookConsentSDK+Notification.swift\n//  SmartlookConsentSDK\n//\n//  Created by Pavel Kroh on 05/03/2019.\n//  Copyright © 2019 Smartlook. All rights reserved.\n//\n\nimport Foundation\n\nextension SmartlookConsentSDK {\n\n    private static var touchedName = \"com.smartlook.SmartlookConsentSDK.notification.consentsTouched\"\n\n    /**\n     This notification is sent whenever user touches the consents,\n     regardless there is an actual change in the consents or not.\n     */\n    public static let consentsTouchedNotification = Notification.Name(rawValue: touchedName)\n}\n"
  },
  {
    "path": "Sources/SmartlookConsentSDK+ObjC.swift",
    "content": "//\n//  SmartlookConsentSDK+ObjC.swift\n//  SmartlookConsentSDK\n//\n//  Created by Pavel Kroh on 18/02/2019.\n//  Copyright © 2019 Smartlook. All rights reserved.\n//\n\nimport Foundation\n\n/**\n This array must be filled alternatively by values of `NSString` (preferably a constant defined in `SLCConsent` class)\n and the respective default value for `SLCConsentState`: [NSString, @(SLCConsentState), NSString, @(SLCConsentState)...]\n */\npublic typealias SLCConsentsSettings = [Any]\n\nextension SmartlookConsentSDK {\n\n    static func settings(from objcSettings: SLCConsentsSettings) -> ConsentsSettings {\n        var swiftConsents = ConsentsSettings()\n        for index in stride(from: 0, to: objcSettings.count - 1, by: 2) {\n            if\n                let consent = objcSettings[index] as? Consent,\n                let rawValue = objcSettings[index + 1] as? Int,\n                let state = ConsentState(rawValue: rawValue)\n            {\n                swiftConsents.append((consent, state))\n            }\n        }\n\n        return swiftConsents\n    }\n\n    @objc public static func show(with consentsSettings: SLCConsentsSettings, callback: @escaping RequestIdCallback) {\n        show(with: settings(from: consentsSettings), callback: callback)\n    }\n\n    @objc public static func check(with consentsSettings: SLCConsentsSettings, callback: @escaping RequestIdCallback) {\n        check(with: settings(from: consentsSettings), callback: callback)\n    }\n}\n"
  },
  {
    "path": "Sources/SmartlookConsentSDK.h",
    "content": "//\n//  SmartlookConsentSDK.h\n//  SmartlookConsentSDK\n//\n//  Created by Pavel Kroh on 19/02/2019.\n//  Copyright © 2019 Smartlook. All rights reserved.\n//\n\n#import <UIKit/UIKit.h>\n\n#define SLCConsentPrivacy @\"privacy\"\n#define SLCConsentAnalytics @\"analytics\"\n#define SLCConsentsTouchedNotification @\"com.smartlook.SmartlookConsentSDK.notification.consentsTouched\"\n\n"
  },
  {
    "path": "Sources/SmartlookConsentSDK.swift",
    "content": "//\n//  SmartlookConsentSDK.swift\n//  SmartlookConsentSDK\n//\n//  Created by Pavel Kroh on 12/02/2019.\n//  Copyright © 2019 Smartlook. All rights reserved.\n//\n\nimport Foundation\nimport UIKit\n\n@objc public class SmartlookConsentSDK: NSObject, SLCViewControllerDelegate {\n\n    private static let shared = SmartlookConsentSDK()\n    private static let defaultConsentsSettings: ConsentsSettings = [(.privacy, .provided), (.analytics, .provided)]\n\n    static let keyPrefix = \"smartlook-consent-sdk\"\n    static let bundleName = \"SmartlookConsentSDK\"\n\n    // MARK: - Private\n\n    private var originalKeyWindow: UIWindow?\n    private var keyWindow: UIWindow?\n    private var callback: RequestIdCallback?\n\n    // MARK: - Presenting Control Panel\n\n    public typealias RequestIdCallback = () -> Void\n\n    /**\n     An array used to configure what consents with which default state appear in the control panel.\n     If user already changed set its own state to a particular consent, her choice is respected\n     and the default state is not used.\n     */\n    public typealias ConsentsSettings = [(consent: SmartlookConsentSDK.Consent,\n                                          defaultState: SmartlookConsentSDK.ConsentState)]\n\n    // MARK: - Show control panel\n\n    /**\n     Indicates whether the control panel was already shown at least once.\n     */\n    @objc public static var wasShown: Bool {\n        return UserDefaults.standard.bool(forKey: \"\\(keyPrefix)-shown\")\n    }\n\n    /**\n     This method always opens the Control Panel for user to review the current consents states\n     and calls the callback once the user confirm her choice in with the button there.\n     */\n    @objc public static func show(callback: @escaping RequestIdCallback) {\n        show(with: defaultConsentsSettings, callback: callback)\n    }\n\n    /**\n     This method always opens the Control Panel for user to review the current consents states\n     and calls the callback once the user confirm her choice in with the button there.\n     */\n    public static func show(with consentsSettings: ConsentsSettings, callback: @escaping RequestIdCallback) {\n        guard shared.keyWindow == nil else {\n            return\n        }\n\n        var originalWindow: UIWindow?\n        for window in UIApplication.shared.windows where window.isKeyWindow {\n            originalWindow = window\n            break\n        }\n\n        if let originalWindow = originalWindow {\n            shared.originalKeyWindow = originalWindow\n            shared.callback = callback\n\n            if #available(iOS 13.0, *) {\n                if let windowScene = originalWindow.windowScene {\n                    shared.keyWindow = UIWindow(windowScene: windowScene)\n                }\n            } else {\n                shared.keyWindow = UIWindow()\n            }\n\n            if let viewController = shared.viewController {\n                shared.keyWindow?.windowLevel += 1\n                shared.keyWindow?.accessibilityViewIsModal = true\n                shared.keyWindow?.rootViewController = UIViewController()\n                shared.keyWindow?.backgroundColor = UIColor.clear\n                viewController.consents = consentsSettings\n\n                DispatchQueue.main.async {\n                    shared.keyWindow?.makeKeyAndVisible()\n                    shared.keyWindow?.rootViewController?.present(viewController, animated: true) {\n                        UserDefaults.standard.set(true, forKey: \"\\(keyPrefix)-shown\")\n                    }\n                }\n            }\n        } else {\n            DispatchQueue.main.asyncAfter(deadline: .now() + 0.05) {\n                show(with: consentsSettings, callback: callback)\n            }\n        }\n    }\n\n    // MARK: - Check and show control panel\n\n    /**\n     This method checks if the user reviewed the default (i.e., `privacy` and `analytics` policies).\n     If not, it opens the Control Panel and calls the callback once the user confirm her choice\n     in with the button there. If the consents were already reviewed by the user, callback is called immediately.\n    */\n    @objc public static func check(callback: @escaping RequestIdCallback) {\n        check(with: defaultConsentsSettings, callback: callback)\n    }\n\n    /**\n     This method checks if the user reviewed the privacy policies enumerated in `ConsentsSettings` array.\n     If not, it opens the Control Panel and calls the callback once the user confirm her choice\n     in with the button there. If the consents were already reviewed by the user, callback is called immediately.\n     */\n    public static func check(with consentsSettings: ConsentsSettings, callback: @escaping RequestIdCallback) {\n        var consentsHaveBeenSet = true\n        consentsSettings.forEach { (key: SmartlookConsentSDK.Consent, _: SmartlookConsentSDK.ConsentState) in\n            consentsHaveBeenSet = consentsHaveBeenSet && consentState(for: key) != .unknown\n        }\n        guard consentsHaveBeenSet else {\n            show(with: consentsSettings, callback: callback)\n            return\n        }\n\n        NotificationCenter.default.post(name: SmartlookConsentSDK.consentsTouchedNotification, object: nil)\n        callback()\n    }\n\n    // MARK: - Control panel instantiate\n\n    private var controlPanel: ControlPanelViewController?\n\n    private func instantiateControlPanel() -> ControlPanelViewController? {\n        #if SWIFT_PACKAGE\n        // Framework is used as Swift Package\n        let storyboard = UIStoryboard(name: \"ControlPanel\", bundle: Bundle.module)\n        return storyboard.instantiateInitialViewController() as? ControlPanelViewController\n\n        #else\n        // Framework is imported via legacy methods\n        let thisBundle = Bundle(for: type(of: self))\n        if thisBundle.bundleIdentifier == \"com.smartlook.SmartlookConsentSDK\" {\n            let storyboard = UIStoryboard(name: \"ControlPanel\", bundle: thisBundle)\n            return storyboard.instantiateInitialViewController() as? ControlPanelViewController\n\n        } else if\n            let cocoapodResourcesBundleUrl = thisBundle.url(forResource: Self.bundleName, withExtension: \"bundle\"),\n            let cocoapodResourcesBundle = Bundle(url: cocoapodResourcesBundleUrl)\n        {\n            let storyboard = UIStoryboard(name: \"ControlPanel\", bundle: cocoapodResourcesBundle)\n            return storyboard.instantiateInitialViewController() as? ControlPanelViewController\n        }\n\n        return nil\n        #endif\n    }\n\n    // MARK: - View Controller Implementation\n\n    var viewController: ControlPanelViewController? {\n        get {\n            if controlPanel != nil {\n                return controlPanel\n            }\n\n            controlPanel = instantiateControlPanel()\n            guard let viewController = controlPanel else {\n                return nil\n            }\n\n            // For tablet modes presents control panel as form\n            viewController.delegate = self\n            viewController.modalTransitionStyle = .coverVertical\n            // This ensures, together with the viewController.supportedInterfaceOrientations = .portrait\n            // that the controller is never in landscape.\n            viewController.modalPresentationStyle = .formSheet\n\n            // On phone presents control panel as full screen\n            let phoneTraitCollection = UITraitCollection(userInterfaceIdiom: .phone)\n            if\n                let currentRootViewController = originalKeyWindow?.rootViewController,\n                currentRootViewController.traitCollection.containsTraits(in: phoneTraitCollection)\n            {\n                viewController.modalPresentationStyle = .fullScreen\n            }\n\n            if #available(iOS 13.0, *) {\n                // disable 'swipe to dismiss'\n                viewController.isModalInPresentation = true\n            }\n\n            return viewController\n        }\n        set {\n            controlPanel = newValue\n        }\n    }\n\n    func viewControllerRequestClose(_ viewController: ControlPanelViewController) {\n        DispatchQueue.main.async {\n            viewController.dismiss(animated: true) { [weak self] in\n                self?.originalKeyWindow?.makeKeyAndVisible()\n                self?.originalKeyWindow = nil\n                self?.keyWindow = nil\n                self?.viewController = nil\n\n                NotificationCenter.default.post(name: SmartlookConsentSDK.consentsTouchedNotification, object: nil)\n\n                self?.callback?()\n                self?.callback = nil\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "Sources/UI/Cells/ButtonCell.swift",
    "content": "//\n//  ButtonCell.swift\n//  SmartlookConsentSDK\n//\n//  Created by Pavel Kroh on 15/02/2019.\n//  Copyright © 2019 Smartlook. All rights reserved.\n//\n\nimport UIKit\n\nclass ButtonCell: TopBorderCell {\n\n    // MARK: - UI Outlets\n\n    @IBOutlet weak var button: UIButton!\n\n    // MARK: - Public\n\n    public weak var delegate: ButtonCellDelegate?\n\n    // MARK: - UI Actions\n\n    @IBAction func detailButtonAction(_ sender: Any) {\n        if let button = sender as? UIButton {\n            delegate?.buttonCellPressed(button: button)\n        }\n    }\n\n    // MARK: - View lifecycle\n\n    override func awakeFromNib() {\n        super.awakeFromNib()\n\n        button.layer.cornerRadius = 6\n        button.setTitleColor(.white, for: .normal)\n\n        let buttonTitle = NSLocalizedString(\"\\(SmartlookConsentSDK.keyPrefix)-button\", comment: \"\")\n        button.setTitle(buttonTitle, for: .normal)\n    }\n\n    override func layoutSubviews() {\n        super.layoutSubviews()\n\n        button.backgroundColor = tintColor\n    }\n}\n"
  },
  {
    "path": "Sources/UI/Cells/ButtonCellDelegateProtocol.swift",
    "content": "//\n//  ButtonCellDelegateProtocol.swift\n//  SmartlookConsentSDK\n//\n//  Created by Václav Halík on 04.12.2020.\n//  Copyright © 2020 Smartlook. All rights reserved.\n//\n\nimport UIKit\n\nprotocol ButtonCellDelegate: AnyObject {\n    func buttonCellPressed(button: UIButton)\n}\n"
  },
  {
    "path": "Sources/UI/Cells/ConsentCell.swift",
    "content": "//\n//  ConsentCell.swift\n//  SmartlookConsentSDK\n//\n//  Created by Pavel Kroh on 15/02/2019.\n//  Copyright © 2019 Smartlook. All rights reserved.\n//\n\nimport UIKit\n\nclass ConsentCell: TopBorderCell {\n\n    // MARK: - UI Outlets\n\n    @IBOutlet weak var consentSwitch: UISwitch!\n    @IBOutlet weak var label: UILabel!\n    @IBOutlet weak var detailView: UIView!\n\n    // MARK: - Private\n\n    private var consentUrl: URL?\n\n    // MARK: - Public\n\n    public weak var delegate: ConsentCellDelegate?\n    private(set) var consent: SmartlookConsentSDK.Consent?\n\n    func setupCell(_ consent: SmartlookConsentSDK.Consent, _ defaultState: SmartlookConsentSDK.ConsentState) {\n        self.consent = consent\n\n        if SmartlookConsentSDK.consentState(for: consent) == .unknown {\n            // default default state is .provided\n            SmartlookConsentSDK.set(state: defaultState == .unknown ? .provided : defaultState, for: consent)\n        }\n        consentSwitch.isOn = SmartlookConsentSDK.consentState(for: consent) == .provided\n        label.text = SmartlookConsentSDK.label(for: consent)\n        consentUrl = SmartlookConsentSDK.detailUrl(for: consent)\n        detailView.isHidden = consentUrl == nil\n    }\n\n    // MARK: - UI Actions\n\n    // the state is changed immediately\n    @IBAction func switchAction(_ sender: Any) {\n        if let consent = consent {\n            SmartlookConsentSDK.set(state: consentSwitch.isOn ? .provided : .notProvided, for: consent)\n            consentSwitch.isOn = SmartlookConsentSDK.consentState(for: consent) != .notProvided\n        }\n    }\n\n    @IBAction func detailButtonAction(_ sender: Any) {\n        delegate?.consentCellDetailButtonPressed(cell: self)\n    }\n\n    // MARK: - View lifecycle\n\n    override func prepareForReuse() {\n        consentUrl = nil\n    }\n}\n"
  },
  {
    "path": "Sources/UI/Cells/ConsentCellDelegateProtocol.swift",
    "content": "//\n//  ConsentCellDelegateProtocol.swift\n//  SmartlookConsentSDK\n//\n//  Created by Václav Halík on 01.12.2020.\n//  Copyright © 2020 Smartlook. All rights reserved.\n//\n\nprotocol ConsentCellDelegate: AnyObject {\n    func consentCellDetailButtonPressed(cell: ConsentCell)\n}\n"
  },
  {
    "path": "Sources/UI/Cells/HeaderCell.swift",
    "content": "//\n//  HeaderCell.swift\n//  SmartlookConsentSDK\n//\n//  Created by Pavel Kroh on 15/02/2019.\n//  Copyright © 2019 Smartlook. All rights reserved.\n//\n\nimport UIKit\n\nclass HeaderCell: UITableViewCell {\n\n    // MARK: - UI Outlets\n\n    @IBOutlet weak var titleLabel: UILabel!\n    @IBOutlet weak var infoLabel: UILabel!\n\n    // MARK: - View lifecycle\n\n    override func awakeFromNib() {\n        super.awakeFromNib()\n\n        fillContent()\n    }\n\n    override func layoutSubviews() {\n        super.layoutSubviews()\n\n        fillContent()\n    }\n\n    // MARK: - Content\n\n    private func fillContent() {\n        let appName = Bundle.main.infoDictionary?[\"CFBundleDisplayName\"] as? String ?? \"\"\n        var titleText = NSLocalizedString(\"\\(SmartlookConsentSDK.keyPrefix)-title\", comment: \"\")\n        titleText = titleText.replacingOccurrences(of: \"$APP\", with: appName)\n\n        let titleStyles = [NSAttributedString.Key.font: UIFont.preferredFont(forTextStyle: .title1)]\n        let attributedString = NSMutableAttributedString(string: titleText, attributes: titleStyles)\n\n        if let appNameRange = titleText.range(of: appName), !appNameRange.isEmpty {\n            let appNameColor = tintColor ?? UIColor(red: 0, green: 0.48, blue: 1, alpha: 1)\n            let appNameAttributes = [NSAttributedString.Key.foregroundColor: appNameColor]\n            attributedString.setAttributes(appNameAttributes, range: NSRange(appNameRange, in: titleText))\n        }\n\n        titleLabel.attributedText = attributedString\n        infoLabel.text = NSLocalizedString(\"\\(SmartlookConsentSDK.keyPrefix)-text\", comment: \"\")\n    }\n}\n"
  },
  {
    "path": "Sources/UI/Cells/TopBorderCell.swift",
    "content": "//\n//  TopBorderCell.swift\n//  SmartlookConsentSDK\n//\n//  Created by Pavel Kroh on 15/02/2019.\n//  Copyright © 2019 Smartlook. All rights reserved.\n//\n\nimport UIKit\n\nclass TopBorderCell: UITableViewCell {\n\n    // MARK: - View lifecycle\n\n    override func awakeFromNib() {\n        super.awakeFromNib()\n\n        let borderView = UIView()\n        borderView.translatesAutoresizingMaskIntoConstraints = false\n        contentView.addSubview(borderView)\n\n        var separatorColor: UIColor = .lightGray\n        if #available(iOS 13.0, *) {\n            separatorColor = .separator\n        }\n        borderView.backgroundColor = separatorColor\n        borderView.heightAnchor.constraint(equalToConstant: 0.5).isActive = true\n        borderView.topAnchor.constraint(equalTo: contentView.topAnchor).isActive = true\n        borderView.leadingAnchor.constraint(equalTo: contentView.leadingAnchor).isActive = true\n        borderView.trailingAnchor.constraint(equalTo: contentView.trailingAnchor).isActive = true\n    }\n}\n"
  },
  {
    "path": "Sources/UI/ControlPanel.storyboard",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB\" version=\"3.0\" toolsVersion=\"17506\" targetRuntime=\"iOS.CocoaTouch\" propertyAccessControl=\"none\" useAutolayout=\"YES\" useTraitCollections=\"YES\" useSafeAreas=\"YES\" colorMatched=\"YES\" initialViewController=\"hBv-OV-dYa\">\n    <device id=\"retina4_7\" orientation=\"portrait\" appearance=\"light\"/>\n    <dependencies>\n        <deployment identifier=\"iOS\"/>\n        <plugIn identifier=\"com.apple.InterfaceBuilder.IBCocoaTouchPlugin\" version=\"17505\"/>\n        <capability name=\"Safe area layout guides\" minToolsVersion=\"9.0\"/>\n        <capability name=\"System colors in document resources\" minToolsVersion=\"11.0\"/>\n        <capability name=\"documents saved in the Xcode 8 format\" minToolsVersion=\"8.0\"/>\n    </dependencies>\n    <scenes>\n        <!--Control Panel View Controller-->\n        <scene sceneID=\"nZO-h7-nCt\">\n            <objects>\n                <viewController id=\"hBv-OV-dYa\" customClass=\"ControlPanelViewController\" customModule=\"SmartlookConsentSDK\" sceneMemberID=\"viewController\">\n                    <view key=\"view\" contentMode=\"scaleToFill\" id=\"NmP-RK-Vit\">\n                        <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"375\" height=\"667\"/>\n                        <autoresizingMask key=\"autoresizingMask\" widthSizable=\"YES\" heightSizable=\"YES\"/>\n                        <subviews>\n                            <tableView clipsSubviews=\"YES\" contentMode=\"scaleToFill\" alwaysBounceVertical=\"YES\" dataMode=\"prototypes\" style=\"plain\" separatorStyle=\"none\" rowHeight=\"-1\" estimatedRowHeight=\"-1\" sectionHeaderHeight=\"28\" sectionFooterHeight=\"28\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"Ngg-Up-DpY\">\n                                <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"375\" height=\"667\"/>\n                                <color key=\"backgroundColor\" systemColor=\"systemBackgroundColor\"/>\n                                <prototypes>\n                                    <tableViewCell clipsSubviews=\"YES\" contentMode=\"scaleToFill\" preservesSuperviewLayoutMargins=\"YES\" selectionStyle=\"none\" indentationWidth=\"10\" reuseIdentifier=\"ConsentCell\" rowHeight=\"74\" id=\"fD0-2E-sps\" customClass=\"ConsentCell\" customModule=\"SmartlookConsentSDK\">\n                                        <rect key=\"frame\" x=\"0.0\" y=\"28\" width=\"375\" height=\"74\"/>\n                                        <autoresizingMask key=\"autoresizingMask\"/>\n                                        <tableViewCellContentView key=\"contentView\" opaque=\"NO\" clipsSubviews=\"YES\" multipleTouchEnabled=\"YES\" contentMode=\"center\" preservesSuperviewLayoutMargins=\"YES\" insetsLayoutMarginsFromSafeArea=\"NO\" tableViewCell=\"fD0-2E-sps\" id=\"DTI-Ig-8ku\">\n                                            <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"375\" height=\"74\"/>\n                                            <autoresizingMask key=\"autoresizingMask\"/>\n                                            <subviews>\n                                                <stackView opaque=\"NO\" contentMode=\"scaleToFill\" alignment=\"center\" spacing=\"16\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"zAS-Ok-3Yq\">\n                                                    <rect key=\"frame\" x=\"16\" y=\"16\" width=\"343\" height=\"42\"/>\n                                                    <subviews>\n                                                        <switch opaque=\"NO\" contentMode=\"scaleToFill\" horizontalHuggingPriority=\"1000\" verticalHuggingPriority=\"750\" contentHorizontalAlignment=\"center\" contentVerticalAlignment=\"center\" on=\"YES\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"g3a-bY-Sh5\">\n                                                            <rect key=\"frame\" x=\"0.0\" y=\"5.5\" width=\"51\" height=\"31\"/>\n                                                            <connections>\n                                                                <action selector=\"switchAction:\" destination=\"fD0-2E-sps\" eventType=\"valueChanged\" id=\"9Sg-FZ-eAy\"/>\n                                                            </connections>\n                                                        </switch>\n                                                        <label opaque=\"NO\" userInteractionEnabled=\"NO\" contentMode=\"left\" horizontalHuggingPriority=\"251\" verticalHuggingPriority=\"1000\" verticalCompressionResistancePriority=\"1000\" text=\"I agree to play for free and that my personal data is collected via the SDK tools build into the application.\" textAlignment=\"natural\" lineBreakMode=\"tailTruncation\" numberOfLines=\"0\" baselineAdjustment=\"alignBaselines\" adjustsFontSizeToFit=\"NO\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"bNS-V7-Cbj\">\n                                                            <rect key=\"frame\" x=\"65\" y=\"0.0\" width=\"222\" height=\"42\"/>\n                                                            <fontDescription key=\"fontDescription\" style=\"UICTFontTextStyleCaption1\"/>\n                                                            <nil key=\"textColor\"/>\n                                                            <nil key=\"highlightedColor\"/>\n                                                        </label>\n                                                        <view contentMode=\"scaleToFill\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"tRf-9O-Ieh\">\n                                                            <rect key=\"frame\" x=\"303\" y=\"0.0\" width=\"40\" height=\"42\"/>\n                                                            <subviews>\n                                                                <button opaque=\"NO\" contentMode=\"scaleToFill\" contentHorizontalAlignment=\"center\" contentVerticalAlignment=\"center\" buttonType=\"detailDisclosure\" lineBreakMode=\"middleTruncation\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"zID-aI-i7W\">\n                                                                    <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"40\" height=\"42\"/>\n                                                                    <connections>\n                                                                        <action selector=\"detailButtonAction:\" destination=\"fD0-2E-sps\" eventType=\"touchUpInside\" id=\"mve-Ky-zW1\"/>\n                                                                    </connections>\n                                                                </button>\n                                                            </subviews>\n                                                            <constraints>\n                                                                <constraint firstAttribute=\"width\" constant=\"40\" id=\"118-rW-cfp\"/>\n                                                                <constraint firstItem=\"zID-aI-i7W\" firstAttribute=\"centerX\" secondItem=\"tRf-9O-Ieh\" secondAttribute=\"centerX\" id=\"JDp-ye-F0n\"/>\n                                                                <constraint firstItem=\"zID-aI-i7W\" firstAttribute=\"centerY\" secondItem=\"tRf-9O-Ieh\" secondAttribute=\"centerY\" id=\"NEM-pf-zdD\"/>\n                                                                <constraint firstItem=\"zID-aI-i7W\" firstAttribute=\"width\" secondItem=\"tRf-9O-Ieh\" secondAttribute=\"width\" id=\"eE3-uM-eDc\"/>\n                                                                <constraint firstAttribute=\"height\" constant=\"44\" id=\"t4Y-LC-AZS\"/>\n                                                                <constraint firstItem=\"zID-aI-i7W\" firstAttribute=\"height\" secondItem=\"tRf-9O-Ieh\" secondAttribute=\"height\" id=\"ya4-6a-tNK\"/>\n                                                            </constraints>\n                                                        </view>\n                                                    </subviews>\n                                                </stackView>\n                                            </subviews>\n                                            <constraints>\n                                                <constraint firstAttribute=\"bottom\" secondItem=\"zAS-Ok-3Yq\" secondAttribute=\"bottom\" constant=\"16\" id=\"AxH-TC-arJ\"/>\n                                                <constraint firstItem=\"zAS-Ok-3Yq\" firstAttribute=\"leading\" secondItem=\"DTI-Ig-8ku\" secondAttribute=\"leadingMargin\" id=\"N9z-XT-JWi\"/>\n                                                <constraint firstItem=\"zAS-Ok-3Yq\" firstAttribute=\"top\" secondItem=\"DTI-Ig-8ku\" secondAttribute=\"top\" constant=\"16\" id=\"uoY-F0-Mh0\"/>\n                                                <constraint firstAttribute=\"trailingMargin\" secondItem=\"zAS-Ok-3Yq\" secondAttribute=\"trailing\" id=\"yqS-sN-E2P\"/>\n                                            </constraints>\n                                        </tableViewCellContentView>\n                                        <connections>\n                                            <outlet property=\"consentSwitch\" destination=\"g3a-bY-Sh5\" id=\"Xr4-i4-5oQ\"/>\n                                            <outlet property=\"detailView\" destination=\"tRf-9O-Ieh\" id=\"Xcz-Ch-9sQ\"/>\n                                            <outlet property=\"label\" destination=\"bNS-V7-Cbj\" id=\"k7c-Aj-TmT\"/>\n                                        </connections>\n                                    </tableViewCell>\n                                    <tableViewCell clipsSubviews=\"YES\" contentMode=\"scaleToFill\" preservesSuperviewLayoutMargins=\"YES\" selectionStyle=\"none\" indentationWidth=\"10\" reuseIdentifier=\"ButtonCell\" rowHeight=\"82\" id=\"oy0-Kw-gJ8\" customClass=\"ButtonCell\" customModule=\"SmartlookConsentSDK\">\n                                        <rect key=\"frame\" x=\"0.0\" y=\"102\" width=\"375\" height=\"82\"/>\n                                        <autoresizingMask key=\"autoresizingMask\"/>\n                                        <tableViewCellContentView key=\"contentView\" opaque=\"NO\" clipsSubviews=\"YES\" multipleTouchEnabled=\"YES\" contentMode=\"center\" preservesSuperviewLayoutMargins=\"YES\" insetsLayoutMarginsFromSafeArea=\"NO\" tableViewCell=\"oy0-Kw-gJ8\" id=\"cKE-nz-ifl\">\n                                            <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"375\" height=\"82\"/>\n                                            <autoresizingMask key=\"autoresizingMask\"/>\n                                            <subviews>\n                                                <button opaque=\"NO\" contentMode=\"scaleToFill\" contentHorizontalAlignment=\"center\" contentVerticalAlignment=\"center\" buttonType=\"system\" lineBreakMode=\"middleTruncation\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"E89-2x-iwj\">\n                                                    <rect key=\"frame\" x=\"16\" y=\"24\" width=\"343\" height=\"42\"/>\n                                                    <color key=\"backgroundColor\" systemColor=\"systemBlueColor\"/>\n                                                    <constraints>\n                                                        <constraint firstAttribute=\"height\" relation=\"greaterThanOrEqual\" constant=\"50\" id=\"ECC-Wi-X17\"/>\n                                                    </constraints>\n                                                    <state key=\"normal\" title=\"Button\">\n                                                        <color key=\"titleColor\" white=\"1\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"genericGamma22GrayColorSpace\"/>\n                                                    </state>\n                                                    <connections>\n                                                        <action selector=\"detailButtonAction:\" destination=\"oy0-Kw-gJ8\" eventType=\"touchUpInside\" id=\"0ha-zd-0c5\"/>\n                                                    </connections>\n                                                </button>\n                                            </subviews>\n                                            <constraints>\n                                                <constraint firstAttribute=\"bottom\" secondItem=\"E89-2x-iwj\" secondAttribute=\"bottom\" constant=\"16\" id=\"BW1-f4-vtg\"/>\n                                                <constraint firstAttribute=\"trailingMargin\" secondItem=\"E89-2x-iwj\" secondAttribute=\"trailing\" id=\"cvp-r6-fgh\"/>\n                                                <constraint firstItem=\"E89-2x-iwj\" firstAttribute=\"top\" secondItem=\"cKE-nz-ifl\" secondAttribute=\"top\" constant=\"24\" id=\"hxk-dj-LMZ\"/>\n                                                <constraint firstItem=\"E89-2x-iwj\" firstAttribute=\"leading\" secondItem=\"cKE-nz-ifl\" secondAttribute=\"leadingMargin\" id=\"ido-eS-3Pi\"/>\n                                            </constraints>\n                                        </tableViewCellContentView>\n                                        <connections>\n                                            <outlet property=\"button\" destination=\"E89-2x-iwj\" id=\"FuC-dz-jJr\"/>\n                                        </connections>\n                                    </tableViewCell>\n                                    <tableViewCell clipsSubviews=\"YES\" contentMode=\"scaleToFill\" preservesSuperviewLayoutMargins=\"YES\" selectionStyle=\"none\" indentationWidth=\"10\" reuseIdentifier=\"HeaderCell\" rowHeight=\"108\" id=\"glC-Rp-Jfz\" customClass=\"HeaderCell\" customModule=\"SmartlookConsentSDK\">\n                                        <rect key=\"frame\" x=\"0.0\" y=\"184\" width=\"375\" height=\"108\"/>\n                                        <autoresizingMask key=\"autoresizingMask\"/>\n                                        <tableViewCellContentView key=\"contentView\" opaque=\"NO\" clipsSubviews=\"YES\" multipleTouchEnabled=\"YES\" contentMode=\"center\" preservesSuperviewLayoutMargins=\"YES\" insetsLayoutMarginsFromSafeArea=\"NO\" tableViewCell=\"glC-Rp-Jfz\" id=\"sbA-4l-Bv4\">\n                                            <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"375\" height=\"108\"/>\n                                            <autoresizingMask key=\"autoresizingMask\"/>\n                                            <subviews>\n                                                <label opaque=\"NO\" userInteractionEnabled=\"NO\" contentMode=\"left\" horizontalHuggingPriority=\"251\" verticalHuggingPriority=\"1000\" verticalCompressionResistancePriority=\"1000\" text=\"Label\" textAlignment=\"natural\" lineBreakMode=\"tailTruncation\" numberOfLines=\"0\" baselineAdjustment=\"alignBaselines\" adjustsFontSizeToFit=\"NO\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"ofG-Tq-7LK\">\n                                                    <rect key=\"frame\" x=\"16\" y=\"11\" width=\"343\" height=\"21\"/>\n                                                    <fontDescription key=\"fontDescription\" style=\"UICTFontTextStyleTitle1\"/>\n                                                    <nil key=\"textColor\"/>\n                                                    <nil key=\"highlightedColor\"/>\n                                                </label>\n                                                <label opaque=\"NO\" userInteractionEnabled=\"NO\" contentMode=\"left\" horizontalHuggingPriority=\"251\" verticalHuggingPriority=\"1000\" verticalCompressionResistancePriority=\"1000\" text=\"Info text\" textAlignment=\"natural\" lineBreakMode=\"tailTruncation\" numberOfLines=\"0\" baselineAdjustment=\"alignBaselines\" adjustsFontSizeToFit=\"NO\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"fbs-1F-bmw\">\n                                                    <rect key=\"frame\" x=\"16\" y=\"54\" width=\"343\" height=\"21\"/>\n                                                    <constraints>\n                                                        <constraint firstAttribute=\"height\" constant=\"21\" placeholder=\"YES\" id=\"zq4-fd-GdH\"/>\n                                                    </constraints>\n                                                    <fontDescription key=\"fontDescription\" style=\"UICTFontTextStyleCaption1\"/>\n                                                    <nil key=\"textColor\"/>\n                                                    <nil key=\"highlightedColor\"/>\n                                                </label>\n                                            </subviews>\n                                            <constraints>\n                                                <constraint firstItem=\"ofG-Tq-7LK\" firstAttribute=\"leading\" secondItem=\"sbA-4l-Bv4\" secondAttribute=\"leadingMargin\" id=\"4aL-uU-7sp\"/>\n                                                <constraint firstItem=\"ofG-Tq-7LK\" firstAttribute=\"top\" secondItem=\"sbA-4l-Bv4\" secondAttribute=\"topMargin\" id=\"6hV-Kr-WxZ\"/>\n                                                <constraint firstItem=\"fbs-1F-bmw\" firstAttribute=\"leading\" secondItem=\"sbA-4l-Bv4\" secondAttribute=\"leadingMargin\" id=\"79u-Uu-GUU\"/>\n                                                <constraint firstAttribute=\"trailingMargin\" secondItem=\"ofG-Tq-7LK\" secondAttribute=\"trailing\" id=\"Ca6-F6-lgP\"/>\n                                                <constraint firstAttribute=\"trailingMargin\" secondItem=\"fbs-1F-bmw\" secondAttribute=\"trailing\" id=\"Epo-cX-ijc\"/>\n                                                <constraint firstAttribute=\"bottomMargin\" secondItem=\"fbs-1F-bmw\" secondAttribute=\"bottom\" constant=\"22\" id=\"KjA-uj-IYJ\"/>\n                                                <constraint firstItem=\"fbs-1F-bmw\" firstAttribute=\"top\" secondItem=\"ofG-Tq-7LK\" secondAttribute=\"bottom\" constant=\"22\" id=\"u8f-jM-W4E\"/>\n                                            </constraints>\n                                        </tableViewCellContentView>\n                                        <connections>\n                                            <outlet property=\"infoLabel\" destination=\"fbs-1F-bmw\" id=\"fiM-8g-qNS\"/>\n                                            <outlet property=\"titleLabel\" destination=\"ofG-Tq-7LK\" id=\"GhG-D9-Zfh\"/>\n                                        </connections>\n                                    </tableViewCell>\n                                </prototypes>\n                                <connections>\n                                    <outlet property=\"dataSource\" destination=\"hBv-OV-dYa\" id=\"mr4-XV-sCw\"/>\n                                    <outlet property=\"delegate\" destination=\"hBv-OV-dYa\" id=\"8f4-1u-H0I\"/>\n                                </connections>\n                            </tableView>\n                        </subviews>\n                        <viewLayoutGuide key=\"safeArea\" id=\"zJO-WL-clK\"/>\n                        <color key=\"backgroundColor\" white=\"1\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"genericGamma22GrayColorSpace\"/>\n                        <constraints>\n                            <constraint firstAttribute=\"trailing\" secondItem=\"Ngg-Up-DpY\" secondAttribute=\"trailing\" id=\"3iZ-L7-ENC\"/>\n                            <constraint firstItem=\"Ngg-Up-DpY\" firstAttribute=\"top\" secondItem=\"zJO-WL-clK\" secondAttribute=\"top\" id=\"duv-ov-ijk\"/>\n                            <constraint firstItem=\"Ngg-Up-DpY\" firstAttribute=\"leading\" secondItem=\"NmP-RK-Vit\" secondAttribute=\"leading\" id=\"f35-5n-Kzt\"/>\n                            <constraint firstAttribute=\"bottom\" secondItem=\"Ngg-Up-DpY\" secondAttribute=\"bottom\" id=\"iFX-US-ReY\"/>\n                        </constraints>\n                    </view>\n                    <connections>\n                        <outlet property=\"tableView\" destination=\"Ngg-Up-DpY\" id=\"Yfh-s8-rZo\"/>\n                    </connections>\n                </viewController>\n                <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"WpF-gP-hgN\" userLabel=\"First Responder\" sceneMemberID=\"firstResponder\"/>\n            </objects>\n            <point key=\"canvasLocation\" x=\"-535.20000000000005\" y=\"106.59670164917542\"/>\n        </scene>\n    </scenes>\n    <resources>\n        <systemColor name=\"systemBackgroundColor\">\n            <color white=\"1\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"genericGamma22GrayColorSpace\"/>\n        </systemColor>\n        <systemColor name=\"systemBlueColor\">\n            <color red=\"0.0\" green=\"0.47843137254901963\" blue=\"1\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"sRGB\"/>\n        </systemColor>\n    </resources>\n</document>\n"
  },
  {
    "path": "Sources/UI/ControlPanelViewController.swift",
    "content": "//\n//  ControlPanelViewController.swift\n//  SmartlookConsentSDK\n//\n//  Created by Pavel Kroh on 13/02/2019.\n//  Copyright © 2019 Smartlook. All rights reserved.\n//\n\nimport UIKit\nimport SafariServices\n\nprotocol SLCViewControllerDelegate: AnyObject {\n    func viewControllerRequestClose(_ viewController: ControlPanelViewController)\n}\n\nclass ControlPanelViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {\n\n    // MARK: - UI Outlets\n\n    @IBOutlet weak var tableView: UITableView!\n\n    // MARK: - Public\n\n    public weak var delegate: SLCViewControllerDelegate?\n    public var consents = SmartlookConsentSDK.ConsentsSettings()\n\n    // MARK: - View lifecycle\n\n    override func viewDidLoad() {\n        super.viewDidLoad()\n        if #available(iOS 13.0, *) {\n            view.backgroundColor = UIColor.systemBackground\n        }\n    }\n\n    override var supportedInterfaceOrientations: UIInterfaceOrientationMask {\n        return .portrait\n    }\n\n    // MARK: - UITableViewDataSource methods\n\n    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {\n        return consents.count + 2\n    }\n\n    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {\n        switch indexPath.item {\n        case 0:\n            return tableView.dequeueReusableCell(withIdentifier: \"HeaderCell\", for: indexPath)\n\n        case consents.count + 1:\n            if let cell = tableView.dequeueReusableCell(withIdentifier: \"ButtonCell\", for: indexPath) as? ButtonCell {\n                cell.delegate = self\n                return cell\n            }\n\n        default:\n            if let cell = tableView.dequeueReusableCell(withIdentifier: \"ConsentCell\", for: indexPath) as? ConsentCell {\n                cell.delegate = self\n                let consentDef = consents[indexPath.item - 1]\n                cell.setupCell(consentDef.consent, consentDef.defaultState)\n                return cell\n            }\n        }\n\n        return UITableViewCell()\n    }\n\n    // MARK: - UITableViewDelegate methods\n\n    func tableView(_ tableView: UITableView, shouldHighlightRowAt indexPath: IndexPath) -> Bool {\n        return indexPath.item == consents.count + 1\n    }\n}\n\nextension ControlPanelViewController: ConsentCellDelegate {\n\n    // MARK: - ConsentCellDelegate methods\n\n    func consentCellDetailButtonPressed(cell: ConsentCell) {\n        guard let consent = cell.consent, let url = SmartlookConsentSDK.detailUrl(for: consent) else {\n            return\n        }\n\n        var safariController: SFSafariViewController?\n        if #available(iOS 11, *) {\n            let config = SFSafariViewController.Configuration()\n            config.barCollapsingEnabled = false\n            safariController = SFSafariViewController(url: url, configuration: config)\n            safariController?.dismissButtonStyle = .done\n        } else {\n            safariController = SFSafariViewController(url: url)\n        }\n\n        safariController?.modalPresentationStyle = .formSheet\n        safariController?.modalTransitionStyle = .crossDissolve\n        safariController?.preferredControlTintColor = self.view.tintColor\n\n        if let safariController = safariController {\n            present(safariController, animated: true, completion: nil)\n        }\n    }\n}\n\nextension ControlPanelViewController: ButtonCellDelegate {\n\n    // MARK: - ButtonCellDelegate methods\n\n    func buttonCellPressed(button: UIButton) {\n        delegate?.viewControllerRequestClose(self)\n    }\n}\n"
  }
]