diff --git a/.github/workflows/adhoc.yml b/.github/workflows/adhoc.yml index 367b948807..b22eb4014f 100644 --- a/.github/workflows/adhoc.yml +++ b/.github/workflows/adhoc.yml @@ -27,25 +27,7 @@ jobs: uses: actions/checkout@v3 with: submodules: recursive - - - name: Set cache key hash - run: | - has_only_tags=$(jq '[ .object.pins[].state | has("version") ] | all' DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved) - if [[ "$has_only_tags" == "true" ]]; then - echo "cache_key_hash=${{ hashFiles('DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved') }}" >> $GITHUB_ENV - else - echo "Package.resolved contains dependencies specified by branch or commit, skipping cache." - fi - - name: Cache SPM - if: env.cache_key_hash - uses: actions/cache@v3 - with: - path: DerivedData/SourcePackages - key: ${{ runner.os }}-spm-${{ env.cache_key_hash }} - restore-keys: | - ${{ runner.os }}-spm- - - name: Select Xcode run: sudo xcode-select -s /Applications/Xcode_$(<.xcode-version).app/Contents/Developer diff --git a/.github/workflows/end-to-end.yml b/.github/workflows/end-to-end.yml index d5dfd817cc..ebf4aaad18 100644 --- a/.github/workflows/end-to-end.yml +++ b/.github/workflows/end-to-end.yml @@ -40,8 +40,9 @@ jobs: run: | set -o pipefail && xcodebuild \ -scheme "DuckDuckGo" \ - -destination "platform=iOS Simulator,name=iPhone 14" \ - -derivedDataPath "DerivedData" + -destination "platform=iOS Simulator,name=iPhone 14,OS=16.4" \ + -derivedDataPath "DerivedData" \ + | tee xcodebuild.log - name: Setup tests run: bundle install && bundle exec fastlane setup_e2e_tests @@ -83,4 +84,13 @@ jobs: "notes" : "The end to end workflow has failed. See https://github.com/duckduckgo/iOS/actions/runs/${{ github.run_id }}", \ " \ }' - \ No newline at end of file + + - name: Upload logs when workflow failed + uses: actions/upload-artifact@v3 + if: failure() + with: + name: BuildLogs + path: | + xcodebuild.log + DerivedData/Logs/Test/*.xcresult + retention-days: 7 diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 3f6cee6439..ad5c8bec9d 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -44,10 +44,21 @@ jobs: run: | set -o pipefail && xcodebuild test \ -scheme "AtbUITests" \ - -destination "platform=iOS Simulator,name=iPhone 14" \ + -destination "platform=iOS Simulator,name=iPhone 14,OS=16.4" \ -derivedDataPath "DerivedData" \ + | tee xcodebuild.log \ | xcbeautify --report junit --report-path . --junit-report-filename unittests.xml + - name: Upload logs if workflow failed + uses: actions/upload-artifact@v3 + if: failure() + with: + name: BuildLogs + path: | + xcodebuild.log + DerivedData/Logs/Test/*.xcresult + retention-days: 7 + - name: Publish unit tests report uses: mikepenz/action-junit-report@v3 with: @@ -74,7 +85,7 @@ jobs: run: | set -o pipefail && xcodebuild test \ -scheme "FingerprintingUITests" \ - -destination "platform=iOS Simulator,name=iPhone 14" \ + -destination "platform=iOS Simulator,name=iPhone 14,OS=16.4" \ -derivedDataPath "DerivedData" \ | xcbeautify --report junit --report-path . --junit-report-filename unittests.xml diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 5dbcf27110..5d94f31c9f 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -4,8 +4,6 @@ on: push: branches: [ develop, "release/**" ] pull_request: - branches: [ develop, "release/**" ] - jobs: swiftlint: @@ -80,13 +78,107 @@ jobs: run: | set -o pipefail && xcodebuild test \ -scheme "DuckDuckGo" \ - -destination "platform=iOS Simulator,name=iPhone 14" \ + -destination "platform=iOS Simulator,name=iPhone 14,OS=16.4" \ -derivedDataPath "DerivedData" \ DDG_SLOW_COMPILE_CHECK_THRESHOLD=250 \ + | tee xcodebuild.log \ | xcbeautify --report junit --report-path . --junit-report-filename unittests.xml + - name: Upload logs if workflow failed + uses: actions/upload-artifact@v3 + if: failure() + with: + name: BuildLogs + path: | + xcodebuild.log + DerivedData/Logs/Test/*.xcresult + retention-days: 7 + - name: Publish unit tests report uses: mikepenz/action-junit-report@v3 with: report_paths: unittests.xml + release-build: + + name: Make Release Build + + runs-on: macos-13 + timeout-minutes: 30 + + steps: + + - name: Register SSH keys for access to certificates + uses: webfactory/ssh-agent@v0.7.0 + with: + ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY_FASTLANE_MATCH }} + + - name: Check out the code + uses: actions/checkout@v3 + with: + submodules: recursive + + - name: Set cache key hash + run: | + has_only_tags=$(jq '[ .object.pins[].state | has("version") ] | all' DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved) + if [[ "$has_only_tags" == "true" ]]; then + echo "cache_key_hash=${{ hashFiles('DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved') }}" >> $GITHUB_ENV + else + echo "Package.resolved contains dependencies specified by branch or commit, skipping cache." + fi + + - name: Cache SPM + if: env.cache_key_hash + uses: actions/cache@v3 + with: + path: DerivedData/SourcePackages + key: ${{ runner.os }}-spm-release-${{ env.cache_key_hash }} + restore-keys: | + ${{ runner.os }}-spm-release- + + - name: Install xcbeautify + run: brew install xcbeautify + + - name: Select Xcode + run: sudo xcode-select -s /Applications/Xcode_$(<.xcode-version).app/Contents/Developer + + - name: Prepare fastlane + run: bundle install + + - name: Build the app + env: + APPLE_API_KEY_BASE64: ${{ secrets.APPLE_API_KEY_BASE64 }} + APPLE_API_KEY_ID: ${{ secrets.APPLE_API_KEY_ID }} + APPLE_API_KEY_ISSUER: ${{ secrets.APPLE_API_KEY_ISSUER }} + MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }} + run: | + bundle exec fastlane sync_signing + + set -o pipefail && xcodebuild \ + -scheme "DuckDuckGo" \ + -destination "platform=iOS Simulator,name=iPhone 14" \ + -derivedDataPath "DerivedData" \ + -configuration "Release" \ + | xcbeautify + + asana: + name: Create Asana Task + needs: [swiftlint, unit-tests, shellcheck, release-build] + + if: failure() && github.ref_name == 'develop' + + env: + WORKFLOW_URL: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }} + + runs-on: ubuntu-latest + + steps: + - name: Create Asana Task + uses: malmstein/github-asana-action@master + with: + asana-pat: ${{ secrets.ASANA_ACCESS_TOKEN }} + asana-project: ${{ vars.APPLE_CI_FAILING_TESTS_PROJECT_ID }} + asana-section: ${{ vars.APPLE_CI_FAILING_TESTS_IOS_POST_MERGE_SECTION_ID }} + asana-task-name: 'PR Check is failing on develop' + action: create-asana-task + asana-task-description: PR Checks conducted after merging have failed. See ${{ env.WORKFLOW_URL }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 724965e33a..a0819c8ded 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -55,24 +55,6 @@ jobs: with: submodules: recursive - - name: Set cache key hash - run: | - has_only_tags=$(jq '[ .object.pins[].state | has("version") ] | all' DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved) - if [[ "$has_only_tags" == "true" ]]; then - echo "cache_key_hash=${{ hashFiles('DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved') }}" >> $GITHUB_ENV - else - echo "Package.resolved contains dependencies specified by branch or commit, skipping cache." - fi - - - name: Cache SPM - if: env.cache_key_hash - uses: actions/cache@v3 - with: - path: DerivedData/SourcePackages - key: ${{ runner.os }}-spm-${{ env.cache_key_hash }} - restore-keys: | - ${{ runner.os }}-spm- - - name: Select Xcode run: sudo xcode-select -s /Applications/Xcode_$(<.xcode-version).app/Contents/Developer diff --git a/.swiftlint.yml b/.swiftlint.yml index c03bdcfb4f..9b5e726984 100644 --- a/.swiftlint.yml +++ b/.swiftlint.yml @@ -4,6 +4,7 @@ disabled_rules: - orphaned_doc_comment - todo - unused_capture_list + - trailing_comma opt_in_rules: - closure_end_indentation diff --git a/Configuration/Version.xcconfig b/Configuration/Version.xcconfig index 62e4f2d234..d3c6f14e15 100644 --- a/Configuration/Version.xcconfig +++ b/Configuration/Version.xcconfig @@ -1 +1 @@ -MARKETING_VERSION = 7.79.0 +MARKETING_VERSION = 7.85.0 diff --git a/Core/AppDeepLinkSchemes.swift b/Core/AppDeepLinkSchemes.swift new file mode 100644 index 0000000000..55e6868e46 --- /dev/null +++ b/Core/AppDeepLinkSchemes.swift @@ -0,0 +1,54 @@ +// +// AppDeepLinkSchemes.swift +// DuckDuckGo +// +// Copyright © 2017 DuckDuckGo. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import Foundation + +public enum AppDeepLinkSchemes: String, CaseIterable { + + case newSearch = "ddgNewSearch" + case voiceSearch = "ddgVoiceSearch" + case fireButton = "ddgFireButton" + case favorites = "ddgFavorites" + case newEmail = "ddgNewEmail" + + case quickLink = "ddgQuickLink" + + case addFavorite = "ddgAddFavorite" + + public var url: URL { + URL(string: rawValue + "://")! + } + + public func appending(_ string: String) -> String { + "\(rawValue)://\(string)" + } + + public static func fromURL(_ url: URL) -> AppDeepLinkSchemes? { + guard let scheme = url.scheme else { return nil } + return allCases.first(where: { $0.rawValue.lowercased() == scheme.lowercased() }) + } + + public static func query(fromQuickLink url: URL) -> String { + return url.absoluteString + .replacingOccurrences(of: AppDeepLinkSchemes.quickLink.url.absoluteString, + with: "", + options: .caseInsensitive) + } + +} diff --git a/Core/AppDeepLinks.swift b/Core/AppDeepLinks.swift deleted file mode 100644 index 642da862d2..0000000000 --- a/Core/AppDeepLinks.swift +++ /dev/null @@ -1,74 +0,0 @@ -// -// AppDeepLinks.swift -// DuckDuckGo -// -// Copyright © 2017 DuckDuckGo. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// - -import Foundation - -public struct AppDeepLinks { - - public static let newSearch = "ddgNewSearch://" - - public static let quickLink = "ddgQuickLink://" - - public static let launchFavorite = "ddgFavorite://" - public static let launchFavoriteHttps = "ddgFavoriteHttps://" - - public static let addFavorite = "ddgAddFavorite://" - - public static let aboutLink = URL(string: "\(AppDeepLinks.quickLink)duckduckgo.com/about")! - public static let webTrackingProtections = URL(string: "\(AppDeepLinks.quickLink)help.duckduckgo.com/duckduckgo-help-pages/privacy/web-tracking-protections/")! - public static let thirdPartyTrackerLoadingProtection = URL(string: "\(AppDeepLinks.quickLink)help.duckduckgo.com/duckduckgo-help-pages/privacy/web-tracking-protections/#3rd-party-tracker-loading-protection")! - - public static func isLaunchFavorite(url: URL) -> Bool { - return isUrl(url, deepLink: launchFavorite) || isUrl(url, deepLink: launchFavoriteHttps) - } - - public static func isNewSearch(url: URL) -> Bool { - return isUrl(url, deepLink: AppDeepLinks.newSearch) - } - - public static func isQuickLink(url: URL) -> Bool { - return isUrl(url, deepLink: AppDeepLinks.quickLink) - } - - public static func isAddFavorite(url: URL) -> Bool { - return isUrl(url, deepLink: AppDeepLinks.addFavorite) - } - - private static func isUrl(_ url: URL, deepLink: String) -> Bool { - if let scheme = url.scheme { - let cleanDeepLink = deepLink.dropping(suffix: "://") - return cleanDeepLink.lowercased() == scheme.lowercased() - } - return false - } - - public static func query(fromQuickLink url: URL) -> String { - return url.absoluteString.replacingOccurrences(of: quickLink, with: "", options: .caseInsensitive) - } - - public static func query(fromLaunchFavorite url: URL) -> String { - var newQuery = url.absoluteString - if newQuery.hasPrefix(launchFavoriteHttps) { - newQuery = "https://" + newQuery.dropping(prefix: launchFavoriteHttps) - } else if newQuery.hasPrefix(launchFavorite) { - newQuery = "http://" + newQuery.dropping(prefix: launchFavorite) - } - return newQuery - } -} diff --git a/Core/AppPrivacyConfigurationDataProvider.swift b/Core/AppPrivacyConfigurationDataProvider.swift index 18fcddbc58..816c69791a 100644 --- a/Core/AppPrivacyConfigurationDataProvider.swift +++ b/Core/AppPrivacyConfigurationDataProvider.swift @@ -23,8 +23,8 @@ import BrowserServicesKit final public class AppPrivacyConfigurationDataProvider: EmbeddedDataProvider { public struct Constants { - public static let embeddedDataETag = "\"b294e67b2262ad947e9e487b6ac9b975\"" - public static let embeddedDataSHA = "1f614c4a8d5d2ddb4c6218ab3fb8718c2a6cfa2ec81a6f7c6bd7dc0a6114b353" + public static let embeddedDataETag = "\"99c821c6657eb5bb4b6e93ac29e803ae\"" + public static let embeddedDataSHA = "b7cfbb562a67448b9a9c7a518ab0a4ef2b818270dc10b92ea358545d06b02782" } public var embeddedDataEtag: String { diff --git a/Core/AppTrackerDataSetProvider.swift b/Core/AppTrackerDataSetProvider.swift index 136cc22bbe..b54d6745de 100644 --- a/Core/AppTrackerDataSetProvider.swift +++ b/Core/AppTrackerDataSetProvider.swift @@ -23,8 +23,8 @@ import BrowserServicesKit final public class AppTrackerDataSetProvider: EmbeddedDataProvider { public struct Constants { - public static let embeddedDataETag = "\"7e00e68f8d00cbe0b092d66208300b80\"" - public static let embeddedDataSHA = "3be3db8211245b3da3858231894ac823f251e9e8360d6127394ecc0f947fad9d" + public static let embeddedDataETag = "\"fe1c5d43a3f99c0733a19d87415953fc\"" + public static let embeddedDataSHA = "edc1c2496d5010ba7916bd5773fdb8ca5f06faaba4454494e97954427cc04bb4" } public var embeddedDataEtag: String { diff --git a/Core/AppTrackingProtectionListViewModel.swift b/Core/AppTrackingProtectionListViewModel.swift index 92ded1aef6..7ff61c28e1 100644 --- a/Core/AppTrackingProtectionListViewModel.swift +++ b/Core/AppTrackingProtectionListViewModel.swift @@ -32,10 +32,15 @@ public class AppTrackingProtectionListViewModel: NSObject, ObservableObject, NSF @Published public var sections: [NSFetchedResultsSectionInfo] = [] @Published public var debugModeEnabled = false + @Published public var isOnboarding = false // We only want to show "Manage Trackers" and "Report an issue" if the user has enabled AppTP at least once @UserDefaultsWrapper(key: .appTPUsed, defaultValue: false) - public var appTPUsed + public var appTPUsed { + didSet { + isOnboarding = !appTPUsed + } + } private let context: NSManagedObjectContext @@ -133,6 +138,8 @@ public class AppTrackingProtectionListViewModel: NSObject, ObservableObject, NSF self.context.stalenessInterval = 0 super.init() + + self.isOnboarding = !appTPUsed setupFetchedResultsController() registerForLifecycleEvents() diff --git a/Core/AppURLs.swift b/Core/AppURLs.swift index 7ffeda9a55..6feb8e7407 100644 --- a/Core/AppURLs.swift +++ b/Core/AppURLs.swift @@ -29,10 +29,11 @@ public extension URL { static let autocomplete = URL(string: "\(base)/ac/")! static let emailProtection = URL(string: "\(base)/email")! - static let emailProtectionQuickLink = URL(string: "ddgQuickLink://\(base)/email")! + static let emailProtectionQuickLink = URL(string: AppDeepLinkSchemes.quickLink.appending("\(ddg.host!)/email"))! + static let aboutLink = URL(string: AppDeepLinkSchemes.quickLink.appending("\(ddg.host!)/about"))! static let surrogates = URL(string: "\(staticBase)/surrogates.txt")! - static let privacyConfig = URL(string: "\(staticBase)/trackerblocking/config/v2/ios-config.json")! + static let privacyConfig = URL(string: "\(staticBase)/trackerblocking/config/v3/ios-config.json")! static let trackerDataSet = URL(string: "\(staticBase)/trackerblocking/v5/current/ios-tds.json")! static let bloomFilter = URL(string: "\(staticBase)/https/https-mobile-v2-bloom.bin")! static let bloomFilterSpec = URL(string: "\(staticBase)/https/https-mobile-v2-bloom-spec.json")! diff --git a/Core/BookmarksCleanupErrorHandling.swift b/Core/BookmarksCleanupErrorHandling.swift index 48c035d407..aee1f065db 100644 --- a/Core/BookmarksCleanupErrorHandling.swift +++ b/Core/BookmarksCleanupErrorHandling.swift @@ -26,11 +26,15 @@ public class BookmarksCleanupErrorHandling: EventMapping public init() { super.init { event, _, _, _ in - let domainEvent = Pixel.Event.bookmarksCleanupFailed - let processedErrors = CoreDataErrorsParser.parse(error: event.coreDataError as NSError) - let params = processedErrors.errorPixelParameters + if event.cleanupError is BookmarksCleanupCancelledError { + Pixel.fire(pixel: .bookmarksCleanupAttemptedWhileSyncWasEnabled) + } else { + let domainEvent = Pixel.Event.bookmarksCleanupFailed + let processedErrors = CoreDataErrorsParser.parse(error: event.cleanupError as NSError) + let params = processedErrors.errorPixelParameters - Pixel.fire(pixel: domainEvent, error: event.coreDataError, withAdditionalParameters: params) + Pixel.fire(pixel: domainEvent, error: event.cleanupError, withAdditionalParameters: params) + } } } diff --git a/Core/ContentBlocking.swift b/Core/ContentBlocking.swift index 78000ec0f1..011a13af55 100644 --- a/Core/ContentBlocking.swift +++ b/Core/ContentBlocking.swift @@ -145,15 +145,19 @@ public final class ContentBlocking { } private let attributionEvents = EventMapping { event, _, parameters, _ in + var shouldIncludeAppVersion = true let domainEvent: Pixel.Event switch event { case .adAttributionDetected: domainEvent = .adClickAttributionDetected case .adAttributionActive: domainEvent = .adClickAttributionActive + case .adAttributionPageLoads: + domainEvent = .adClickAttributionPageLoads + shouldIncludeAppVersion = false } - Pixel.fire(pixel: domainEvent, withAdditionalParameters: parameters ?? [:], includedParameters: [.appVersion]) + Pixel.fire(pixel: domainEvent, withAdditionalParameters: parameters ?? [:], includedParameters: shouldIncludeAppVersion ? [.appVersion] : []) } private let attributionDebugEvents = EventMapping { event, _, _, _ in diff --git a/Core/CredentialsCleanupErrorHandling.swift b/Core/CredentialsCleanupErrorHandling.swift new file mode 100644 index 0000000000..3ce5d639dd --- /dev/null +++ b/Core/CredentialsCleanupErrorHandling.swift @@ -0,0 +1,44 @@ +// +// CredentialsCleanupErrorHandling.swift +// DuckDuckGo +// +// Copyright © 2023 DuckDuckGo. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import Foundation +import BrowserServicesKit +import Common +import Persistence + +public class CredentialsCleanupErrorHandling: EventMapping { + + public init() { + super.init { event, _, _, _ in + if event.cleanupError is CredentialsCleanupCancelledError { + Pixel.fire(pixel: .credentialsCleanupAttemptedWhileSyncWasEnabled) + } else { + let domainEvent = Pixel.Event.credentialsDatabaseCleanupFailed + let processedErrors = CoreDataErrorsParser.parse(error: event.cleanupError as NSError) + let params = processedErrors.errorPixelParameters + + Pixel.fire(pixel: domainEvent, error: event.cleanupError, withAdditionalParameters: params) + } + } + } + + override init(mapping: @escaping EventMapping.Mapping) { + fatalError("Use init()") + } +} diff --git a/Core/FeatureFlag.swift b/Core/FeatureFlag.swift index ecd72bd1a7..2dce192565 100644 --- a/Core/FeatureFlag.swift +++ b/Core/FeatureFlag.swift @@ -29,12 +29,13 @@ public enum FeatureFlag: String { case autofillAccessCredentialManagement case autofillPasswordGeneration case appTrackingProtection + case networkProtection } extension FeatureFlag: FeatureFlagSourceProviding { public var source: FeatureFlagSource { switch self { - case .debugMenu, .sync, .appTrackingProtection: + case .debugMenu, .sync, .appTrackingProtection, .networkProtection: return .internalOnly case .autofillCredentialInjecting: return .remoteReleasable(.subfeature(AutofillSubfeature.credentialsAutofill)) diff --git a/Core/Pixel.swift b/Core/Pixel.swift index 20e048cf9f..fb0f2bf23c 100644 --- a/Core/Pixel.swift +++ b/Core/Pixel.swift @@ -106,7 +106,9 @@ public struct PixelParameters { public static let bookmarkErrorOrphanedFolderCount = "bookmark_error_orphaned_count" - public static let ctaShown = "cta" + // Remote messaging + public static let message = "message" + public static let sheetResult = "success" } public struct PixelValues { diff --git a/Core/PixelEvent.swift b/Core/PixelEvent.swift index 3a04864b22..13806587be 100644 --- a/Core/PixelEvent.swift +++ b/Core/PixelEvent.swift @@ -29,7 +29,6 @@ extension Pixel { public enum Event { case appLaunch - case defaultBrowserLaunch case refreshPressed case forgetAllPressedBrowsing @@ -142,10 +141,7 @@ extension Pixel { case daxDialogsAutoconsentShown case daxDialogsAutoconsentConfirmed case daxDialogsAutoconsentCancelled - - case widgetFavoriteLaunch - case widgetNewSearch - + case defaultBrowserButtonPressedSettings case widgetsOnboardingCTAPressed @@ -263,6 +259,7 @@ extension Pixel { case adClickAttributionDetected case adClickAttributionActive + case adClickAttributionPageLoads // MARK: SERP pixels @@ -300,9 +297,18 @@ extension Pixel { case remoteMessageShown case remoteMessageShownUnique case remoteMessageDismissed - case remoteMessageShownPrimaryActionClicked - case remoteMessageShownSecondaryActionClicked - + case remoteMessageActionClicked + case remoteMessagePrimaryActionClicked + case remoteMessageSecondaryActionClicked + case remoteMessageSheet + + // MARK: Lock Screen widgets + case lockScreenWidgetNewSearch + case lockScreenWidgetFavorites + case lockScreenWidgetFireButton + case lockScreenWidgetVoiceSearch + case lockScreenWidgetNewEmail + // MARK: debug pixels case dbCrashDetected @@ -404,7 +410,6 @@ extension Pixel { case bookmarksCouldNotLoadDatabase case bookmarksCouldNotPrepareDatabase - case bookmarksCleanupFailed case bookmarksMigrationAlreadyPerformed case bookmarksMigrationFailed case bookmarksMigrationCouldNotPrepareDatabase @@ -420,6 +425,14 @@ extension Pixel { case syncMetadataCouldNotLoadDatabase case syncBookmarksProviderInitializationFailed case syncBookmarksFailed + case syncCredentialsProviderInitializationFailed + case syncCredentialsFailed + + case bookmarksCleanupFailed + case bookmarksCleanupAttemptedWhileSyncWasEnabled + + case credentialsDatabaseCleanupFailed + case credentialsCleanupAttemptedWhileSyncWasEnabled case invalidPayload(Configuration) } @@ -433,7 +446,6 @@ extension Pixel.Event { public var name: String { switch self { case .appLaunch: return "ml" - case .defaultBrowserLaunch: return "m_dl" case .refreshPressed: return "m_r" case .forgetAllPressedBrowsing: return "mf_bp" @@ -548,9 +560,6 @@ extension Pixel.Event { case .daxDialogsAutoconsentConfirmed: return "m_dax_dialog_autoconsent_confirmed" case .daxDialogsAutoconsentCancelled: return "m_dax_dialog_autoconsent_cancelled" - case .widgetFavoriteLaunch: return "m_w_fl" - case .widgetNewSearch: return "m_w_ns" - case .defaultBrowserButtonPressedSettings: return "m_db_s" case .widgetsOnboardingCTAPressed: return "m_o_w_a" @@ -674,6 +683,7 @@ extension Pixel.Event { case .adClickAttributionDetected: return "m_ad_click_detected" case .adClickAttributionActive: return "m_ad_click_active" + case .adClickAttributionPageLoads: return "m_pageloads_with_ad_attribution" // MARK: SERP pixels @@ -709,8 +719,17 @@ extension Pixel.Event { case .remoteMessageShown: return "m_remote_message_shown" case .remoteMessageShownUnique: return "m_remote_message_shown_unique" case .remoteMessageDismissed: return "m_remote_message_dismissed" - case .remoteMessageShownPrimaryActionClicked: return "m_remote_message_primary_action_clicked" - case .remoteMessageShownSecondaryActionClicked: return "m_remote_message_secondary_action_clicked" + case .remoteMessageActionClicked: return "m_remote_message_action_clicked" + case .remoteMessagePrimaryActionClicked: return "m_remote_message_primary_action_clicked" + case .remoteMessageSecondaryActionClicked: return "m_remote_message_secondary_action_clicked" + case .remoteMessageSheet: return "m_remote_message_sheet" + + // Lock Screen Widgets + case .lockScreenWidgetNewSearch: return "m_lockscreen_newsearch" + case .lockScreenWidgetFavorites: return "m_lockscreen_favorites" + case .lockScreenWidgetFireButton: return "m_lockscreen_fire" + case .lockScreenWidgetVoiceSearch: return "m_lockscreen_voicesearch" + case .lockScreenWidgetNewEmail: return "m_lockscreen_newemail" // MARK: debug pixels @@ -814,7 +833,6 @@ extension Pixel.Event { case .bookmarksCouldNotLoadDatabase: return "m_d_bookmarks_could_not_load_database" case .bookmarksCouldNotPrepareDatabase: return "m_d_bookmarks_could_not_prepare_database" - case .bookmarksCleanupFailed: return "m_d_bookmarks_cleanup_failed" case .bookmarksMigrationAlreadyPerformed: return "m_d_bookmarks_migration_already_performed" case .bookmarksMigrationFailed: return "m_d_bookmarks_migration_failed" case .bookmarksMigrationCouldNotPrepareDatabase: return "m_d_bookmarks_migration_could_not_prepare_database" @@ -831,6 +849,14 @@ extension Pixel.Event { case .syncMetadataCouldNotLoadDatabase: return "m_d_sync_metadata_could_not_load_database" case .syncBookmarksProviderInitializationFailed: return "m_d_sync_bookmarks_provider_initialization_failed" case .syncBookmarksFailed: return "m_d_sync_bookmarks_failed" + case .syncCredentialsProviderInitializationFailed: return "m_d_sync_credentials_provider_initialization_failed" + case .syncCredentialsFailed: return "m_d_sync_credentials_failed" + + case .bookmarksCleanupFailed: return "m_d_bookmarks_cleanup_failed" + case .bookmarksCleanupAttemptedWhileSyncWasEnabled: return "m_d_bookmarks_cleanup_attempted_while_sync_was_enabled" + + case .credentialsDatabaseCleanupFailed: return "m_d_credentials_database_cleanup_failed_2" + case .credentialsCleanupAttemptedWhileSyncWasEnabled: return "m_d_credentials_cleanup_attempted_while_sync_was_enabled" case .invalidPayload(let configuration): return "m_d_\(configuration.rawValue)_invalid_payload".lowercased() } diff --git a/Core/SyncBookmarksAdapter.swift b/Core/SyncBookmarksAdapter.swift index cf5be5288e..e89a37db01 100644 --- a/Core/SyncBookmarksAdapter.swift +++ b/Core/SyncBookmarksAdapter.swift @@ -17,21 +17,41 @@ // limitations under the License. // +import Bookmarks import Combine import Common import DDGSync import Foundation import Persistence import SyncDataProviders +import WidgetKit public final class SyncBookmarksAdapter { public private(set) var provider: BookmarksProvider? - + public let databaseCleaner: BookmarkDatabaseCleaner public let syncDidCompletePublisher: AnyPublisher + public let widgetRefreshCancellable: AnyCancellable - public init() { + public init(database: CoreDataDatabase) { syncDidCompletePublisher = syncDidCompleteSubject.eraseToAnyPublisher() + databaseCleaner = BookmarkDatabaseCleaner( + bookmarkDatabase: database, + errorEvents: BookmarksCleanupErrorHandling(), + log: .generalLog + ) + widgetRefreshCancellable = syncDidCompletePublisher.sink { _ in + WidgetCenter.shared.reloadAllTimelines() + } + } + + public func cleanUpDatabaseAndUpdateSchedule(shouldEnable: Bool) { + databaseCleaner.cleanUpDatabaseNow() + if shouldEnable { + databaseCleaner.scheduleRegularCleaning() + } else { + databaseCleaner.cancelCleaningSchedule() + } } public func setUpProviderIfNeeded(database: CoreDataDatabase, metadataStore: SyncMetadataStore) { @@ -42,7 +62,7 @@ public final class SyncBookmarksAdapter { let provider = try BookmarksProvider( database: database, metadataStore: metadataStore, - reloadBookmarksAfterSync: { [syncDidCompleteSubject] in + syncDidUpdateData: { [syncDidCompleteSubject] in syncDidCompleteSubject.send() } ) diff --git a/Core/SyncCredentialsAdapter.swift b/Core/SyncCredentialsAdapter.swift new file mode 100644 index 0000000000..e4b96e01ef --- /dev/null +++ b/Core/SyncCredentialsAdapter.swift @@ -0,0 +1,97 @@ +// +// SyncCredentialsAdapter.swift +// DuckDuckGo +// +// Copyright © 2023 DuckDuckGo. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import BrowserServicesKit +import Combine +import Common +import DDGSync +import Persistence +import SecureStorage +import SyncDataProviders + +public final class SyncCredentialsAdapter { + + public private(set) var provider: CredentialsProvider? + public let databaseCleaner: CredentialsDatabaseCleaner + public let syncDidCompletePublisher: AnyPublisher + + public init(secureVaultFactory: AutofillVaultFactory = AutofillSecureVaultFactory, secureVaultErrorReporter: SecureVaultErrorReporting) { + syncDidCompletePublisher = syncDidCompleteSubject.eraseToAnyPublisher() + self.secureVaultErrorReporter = secureVaultErrorReporter + databaseCleaner = CredentialsDatabaseCleaner( + secureVaultFactory: secureVaultFactory, + secureVaultErrorReporter: secureVaultErrorReporter, + errorEvents: CredentialsCleanupErrorHandling(), + log: .generalLog + ) + } + + public func cleanUpDatabaseAndUpdateSchedule(shouldEnable: Bool) { + databaseCleaner.cleanUpDatabaseNow() + if shouldEnable { + databaseCleaner.scheduleRegularCleaning() + } else { + databaseCleaner.cancelCleaningSchedule() + } + } + + public func setUpProviderIfNeeded(secureVaultFactory: AutofillVaultFactory, metadataStore: SyncMetadataStore) { + guard provider == nil else { + return + } + + do { + let provider = try CredentialsProvider( + secureVaultFactory: secureVaultFactory, + secureVaultErrorReporter: secureVaultErrorReporter, + metadataStore: metadataStore, + syncDidUpdateData: { [weak self] in + self?.syncDidCompleteSubject.send() + } + ) + + syncErrorCancellable = provider.syncErrorPublisher + .sink { error in + switch error { + case let syncError as SyncError: + Pixel.fire(pixel: .syncCredentialsFailed, error: syncError) + default: + let nsError = error as NSError + if nsError.domain != NSURLErrorDomain { + let processedErrors = CoreDataErrorsParser.parse(error: error as NSError) + let params = processedErrors.errorPixelParameters + Pixel.fire(pixel: .syncCredentialsFailed, error: error, withAdditionalParameters: params) + } + } + os_log(.error, log: OSLog.syncLog, "Credentials Sync error: %{public}s", String(reflecting: error)) + } + + self.provider = provider + + } catch let error as NSError { + let processedErrors = CoreDataErrorsParser.parse(error: error) + let params = processedErrors.errorPixelParameters + Pixel.fire(pixel: .syncCredentialsProviderInitializationFailed, error: error, withAdditionalParameters: params) + } + } + + private var syncDidCompleteSubject = PassthroughSubject() + private var syncErrorCancellable: AnyCancellable? + private let secureVaultErrorReporter: SecureVaultErrorReporting +} diff --git a/Core/SyncDataProviders.swift b/Core/SyncDataProviders.swift index d09b53d00a..5c775c91cc 100644 --- a/Core/SyncDataProviders.swift +++ b/Core/SyncDataProviders.swift @@ -17,13 +17,17 @@ // limitations under the License. // +import BrowserServicesKit +import Combine import Common import DDGSync import Persistence +import SecureStorage import SyncDataProviders public class SyncDataProviders: DataProvidersSource { public let bookmarksAdapter: SyncBookmarksAdapter + public let credentialsAdapter: SyncCredentialsAdapter public func makeDataProviders() -> [DataProviding] { initializeMetadataDatabaseIfNeeded() @@ -33,12 +37,57 @@ public class SyncDataProviders: DataProvidersSource { } bookmarksAdapter.setUpProviderIfNeeded(database: bookmarksDatabase, metadataStore: syncMetadata) - return [bookmarksAdapter.provider].compactMap { $0 } + credentialsAdapter.setUpProviderIfNeeded(secureVaultFactory: secureVaultFactory, metadataStore: syncMetadata) + + let providers: [Any] = [ + bookmarksAdapter.provider as Any, + credentialsAdapter.provider as Any + ] + + return providers.compactMap { $0 as? DataProviding } + } + + public func setUpDatabaseCleanersIfNeeded(syncService: DDGSync) { + guard !isDatabaseCleanersSetUp else { + return + } + + bookmarksAdapter.databaseCleaner.isSyncActive = { [weak syncService] in + syncService?.authState == .active + } + credentialsAdapter.databaseCleaner.isSyncActive = { [weak syncService] in + syncService?.authState == .active + } + + let syncAuthStateDidChangePublisher = syncService.authStatePublisher + .dropFirst() + .map { $0 == .inactive } + .removeDuplicates() + + syncAuthStateDidChangeCancellable = syncAuthStateDidChangePublisher + .sink { [weak self] isSyncDisabled in + self?.credentialsAdapter.cleanUpDatabaseAndUpdateSchedule(shouldEnable: isSyncDisabled) + self?.bookmarksAdapter.cleanUpDatabaseAndUpdateSchedule(shouldEnable: isSyncDisabled) + } + + if syncService.authState == .inactive { + credentialsAdapter.cleanUpDatabaseAndUpdateSchedule(shouldEnable: true) + bookmarksAdapter.cleanUpDatabaseAndUpdateSchedule(shouldEnable: true) + } + + isDatabaseCleanersSetUp = true } - public init(bookmarksDatabase: CoreDataDatabase) { + public init( + bookmarksDatabase: CoreDataDatabase, + secureVaultFactory: AutofillVaultFactory = AutofillSecureVaultFactory, + secureVaultErrorReporter: SecureVaultErrorReporting + ) { self.bookmarksDatabase = bookmarksDatabase - bookmarksAdapter = SyncBookmarksAdapter() + self.secureVaultFactory = secureVaultFactory + self.secureVaultErrorReporter = secureVaultErrorReporter + bookmarksAdapter = SyncBookmarksAdapter(database: bookmarksDatabase) + credentialsAdapter = SyncCredentialsAdapter(secureVaultFactory: secureVaultFactory, secureVaultErrorReporter: secureVaultErrorReporter) } private func initializeMetadataDatabaseIfNeeded() { @@ -63,8 +112,12 @@ public class SyncDataProviders: DataProvidersSource { } private var isSyncMetadaDatabaseLoaded: Bool = false + private var isDatabaseCleanersSetUp: Bool = false private var syncMetadata: SyncMetadataStore? + private var syncAuthStateDidChangeCancellable: AnyCancellable? private let syncMetadataDatabase: CoreDataDatabase = SyncMetadataDatabase.make() private let bookmarksDatabase: CoreDataDatabase + private let secureVaultFactory: AutofillVaultFactory + private let secureVaultErrorReporter: SecureVaultErrorReporting } diff --git a/Core/ios-config.json b/Core/ios-config.json index f7fed2daec..ba673dd34e 100644 --- a/Core/ios-config.json +++ b/Core/ios-config.json @@ -1,6 +1,6 @@ { "readme": "https://github.com/duckduckgo/privacy-configuration", - "version": 1688727300803, + "version": 1692311463527, "features": { "adClickAttribution": { "readme": "https://help.duckduckgo.com/duckduckgo-help-pages/privacy/web-tracking-protections/#3rd-party-tracker-loading-protection", @@ -103,10 +103,6 @@ }, "autoconsent": { "exceptions": [ - { - "domain": "autotrader.co.uk", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/326" - }, { "domain": "bild.de", "reason": "https://github.com/duckduckgo/privacy-configuration/issues/326" @@ -123,6 +119,10 @@ "domain": "ksta.de", "reason": "https://github.com/duckduckgo/privacy-configuration/issues/326" }, + { + "domain": "motherdenim.com", + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/326" + }, { "domain": "nationalgrid.co.uk", "reason": "https://github.com/duckduckgo/privacy-configuration/issues/326" @@ -242,24 +242,15 @@ { "domain": "gfds.de", "reason": "https://github.com/duckduckgo/autoconsent/issues/130" - }, - { - "domain": "upstart.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/897" - }, - { - "domain": "granit.com", - "reason": "https://github.com/duckduckgo/autoconsent/issues/200" } ], "settings": { "disabledCMPs": [ - "Sourcepoint-top", "generic-cosmetic" ] }, "state": "enabled", - "hash": "558792e54daecddf71939b03b238c49c" + "hash": "114934e1f0153202bf5e6f238b35ad88" }, "autofill": { "exceptions": [ @@ -1082,6 +1073,10 @@ { "domain": "www.google.ws", "reason": "https://github.com/duckduckgo/privacy-configuration/issues/911" + }, + { + "domain": "freenom.com", + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1109" } ], "settings": { @@ -1099,7 +1094,7 @@ } }, "state": "disabled", - "hash": "1526ca67acf2606be86e62506cb10243" + "hash": "0a080f38c1774ed81b4f93d2e593a669" }, "clickToPlay": { "exceptions": [], @@ -1180,6 +1175,10 @@ "domain": "digid.nl", "reason": "https://github.com/duckduckgo/privacy-configuration/issues/602" }, + { + "domain": "intymna.pl", + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/667" + }, { "domain": "sme.sk", "reason": "https://github.com/duckduckgo/privacy-configuration/issues/667" @@ -1192,6 +1191,14 @@ "domain": "wykop.pl", "reason": "https://github.com/duckduckgo/privacy-configuration/issues/667" }, + { + "domain": "nypost.com", + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/667" + }, + { + "domain": "crunchynihongo.com", + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1201" + }, { "domain": "cvs.com", "reason": "Navigation section at the top of the main page renders as text." @@ -1221,16 +1228,84 @@ "reason": "https://github.com/duckduckgo/privacy-configuration/issues/667" } ], - "omitVersionSites": [] + "omitVersionSites": [ + { + "domain": "hulu.com", + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1145" + }, + { + "domain": "crunchynihongo.com", + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1201" + } + ] }, "exceptions": [], "state": "enabled", - "hash": "567a899425340aaf1022f5a5eb8294c6" + "hash": "8efa33bbeea9114315cc6ae63ef57d43" }, "duckPlayer": { "exceptions": [], + "settings": { + "tryDuckPlayerLink": "https://www.youtube.com/watch?v=yKWIA-Pys4c", + "overlays": { + "youtube": { + "state": "disabled", + "selectors": { + "thumbLink": "a[href^='/watch']", + "excludedRegions": [ + "#playlist" + ], + "videoElement": "#player video", + "videoElementContainer": "#player .html5-video-player", + "hoverExcluded": [], + "clickExcluded": [], + "allowedEventTargets": [ + ".ytp-inline-preview-scrim", + ".ytd-video-preview", + "#thumbnail-container", + "#video-title-link", + "#video-title" + ] + }, + "thumbnailOverlays": { + "state": "enabled" + }, + "clickInterception": { + "state": "enabled" + }, + "videoOverlays": { + "state": "enabled" + } + }, + "serpProxy": { + "state": "disabled" + } + }, + "domains": [ + { + "domain": "www.youtube.com", + "patchSettings": [ + { + "op": "replace", + "path": "/overlays/youtube/state", + "value": "enabled" + } + ] + }, + { + "domain": "duckduckgo.com", + "patchSettings": [ + { + "op": "replace", + "path": "/overlays/serpProxy/state", + "value": "enabled" + } + ] + } + ] + }, "state": "disabled", - "hash": "728493ef7a1488e4781656d3f9db84aa" + "hash": "cd5c420d948ff708f93d17ad2e55cd1b" }, "elementHiding": { "exceptions": [ @@ -1238,6 +1313,10 @@ "domain": "bild.de", "reason": "https://github.com/duckduckgo/privacy-configuration/issues/589" }, + { + "domain": "derstandard.at", + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1101" + }, { "domain": "foxnews.com", "reason": "https://github.com/duckduckgo/privacy-configuration/issues/965" @@ -1246,10 +1325,6 @@ "domain": "kbb.com", "reason": "Adblocker wall" }, - { - "domain": "google.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/592" - }, { "domain": "wiwo.de", "reason": "https://github.com/duckduckgo/privacy-configuration/issues/592" @@ -1269,6 +1344,38 @@ { "domain": "bizjournals.com", "reason": "https://github.com/duckduckgo/privacy-configuration/issues/592" + }, + { + "domain": "slate.com", + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/592" + }, + { + "domain": "dailycaller.com", + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/592" + }, + { + "domain": "dailymail.co.uk", + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/592" + }, + { + "domain": "eltiempo.com", + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/592" + }, + { + "domain": "dailyherald.com", + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/592" + }, + { + "domain": "publico.es", + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/592" + }, + { + "domain": "rawstory.com", + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/592" + }, + { + "domain": "allgemeine-zeitung.de", + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/592" } ], "settings": { @@ -1334,6 +1441,14 @@ "selector": "[class*='ad_unit']", "type": "closest-empty" }, + { + "selector": "[class^='adunit']", + "type": "hide-empty" + }, + { + "selector": ".ad-unit", + "type": "hide-empty" + }, { "selector": ".column-ad", "type": "hide-empty" @@ -1350,6 +1465,10 @@ "selector": ".AD", "type": "hide-empty" }, + { + "selector": ".ad-adhesion", + "type": "hide-empty" + }, { "selector": "[class*='ad-content']", "type": "hide-empty" @@ -1371,11 +1490,11 @@ "type": "hide-empty" }, { - "selector": "[class^='adunit']", + "selector": ".apexAd", "type": "hide-empty" }, { - "selector": ".apexAd", + "selector": ".ad-placement", "type": "hide-empty" }, { @@ -1462,6 +1581,10 @@ "selector": ".ad_container", "type": "closest-empty" }, + { + "selector": ".ads_container", + "type": "hide-empty" + }, { "selector": ".ad__container", "type": "closest-empty" @@ -1526,6 +1649,18 @@ "selector": "[class^='adWrapper']", "type": "closest-empty" }, + { + "selector": "[class^='Display_displayAd']", + "type": "hide-empty" + }, + { + "selector": "[class^='Display_displayAd']", + "type": "hide-empty" + }, + { + "selector": "#premium_ddb_0", + "type": "hide-empty" + }, { "selector": "[class*='ad-zone']", "type": "hide-empty" @@ -1546,6 +1681,18 @@ "selector": "[data-ad]", "type": "hide-empty" }, + { + "selector": ".adthrive", + "type": "hide-empty" + }, + { + "selector": ".adthrive-ad", + "type": "hide-empty" + }, + { + "selector": ".adthrive-content", + "type": "hide-empty" + }, { "selector": ".arc-ad-wrapper", "type": "hide-empty" @@ -1554,6 +1701,26 @@ "selector": ".dmpu-ad", "type": "hide-empty" }, + { + "selector": "#bfad-slot", + "type": "hide-empty" + }, + { + "selector": ".ezoic-ad", + "type": "hide-empty" + }, + { + "selector": ".ezo_ad", + "type": "hide-empty" + }, + { + "selector": "[data-ez-ph-id]", + "type": "hide-empty" + }, + { + "selector": "#amp_floatingAdDiv", + "type": "hide" + }, { "selector": ".bordeaux-slot", "type": "closest-empty" @@ -1569,6 +1736,14 @@ { "selector": ".sponsored-slot", "type": "hide-empty" + }, + { + "selector": "#ez-content-blocker-container", + "type": "hide" + }, + { + "selector": "#notify-adblock", + "type": "hide" } ], "styleTagExceptions": [ @@ -1581,10 +1756,37 @@ "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1058" } ], + "hideTimeouts": [ + 0, + 100, + 200, + 300, + 400, + 500, + 1000, + 1500, + 2000, + 2500, + 3000, + 5000, + 10000 + ], + "unhideTimeouts": [ + 750, + 1500, + 2250, + 3000, + 4500, + 6000, + 12000 + ], "mediaAndFormSelectors": "video,canvas,embed,object,audio,map,form,input,textarea,select,option", "adLabelStrings": [ "ad", + "advert", + "advert10", "advertisement", + "advertisements", "advertisment", "advertisementclose", "advertisementcontinue reading the main story", @@ -1601,6 +1803,7 @@ "anzeige", "close ad", "close this ad", + "x", "sponsored", "sponsorisé", "story continues below advertisement", @@ -1645,6 +1848,15 @@ } ] }, + { + "domain": "bestbuy.com", + "rules": [ + { + "selector": "#credential_picker_container", + "type": "override" + } + ] + }, { "domain": "bleacherreport.com", "rules": [ @@ -1654,6 +1866,15 @@ } ] }, + { + "domain": "bleedcubbieblue.com", + "rules": [ + { + "selector": "[class*='ad_unit']", + "type": "override" + } + ] + }, { "domain": "bloomberg.com", "rules": [ @@ -1664,6 +1885,10 @@ { "selector": "[class^='FullWidthAd']", "type": "hide-empty" + }, + { + "selector": "[data-testid='sparkle-ad']", + "type": "closest-empty" } ] }, @@ -1715,6 +1940,24 @@ } ] }, + { + "domain": "cleartax.in", + "rules": [ + { + "selector": "#credential_picker_container", + "type": "override" + } + ] + }, + { + "domain": "cnbc.com", + "rules": [ + { + "selector": ".TopBanner-container", + "type": "hide-empty" + } + ] + }, { "domain": "coingecko.com", "rules": [ @@ -1742,6 +1985,27 @@ } ] }, + { + "domain": "dallasnews.com", + "rules": [ + { + "selector": ".adhesiveAdWrapper", + "type": "hide-empty" + }, + { + "selector": "[data-cy='Ad']", + "type": "hide-empty" + }, + { + "selector": "[data-cy='InstreamPlayer']", + "type": "hide-empty" + }, + { + "selector": ".bg-neutral-grey-4.items-center", + "type": "hide-empty" + } + ] + }, { "domain": "ebay.com", "rules": [ @@ -1760,6 +2024,15 @@ } ] }, + { + "domain": "eniro.se", + "rules": [ + { + "selector": "#page .e-banner.e-embed-aware", + "type": "hide" + } + ] + }, { "domain": "eonline.com", "rules": [ @@ -1778,6 +2051,15 @@ } ] }, + { + "domain": "express.de", + "rules": [ + { + "selector": ".dm-slot", + "type": "hide-empty" + } + ] + }, { "domain": "express.co.uk", "rules": [ @@ -1788,6 +2070,18 @@ { "selector": "#ad-vip-article", "type": "hide-empty" + }, + { + "selector": ".taboola-above-article", + "type": "hide" + }, + { + "selector": "#taboola-ad", + "type": "hide" + }, + { + "selector": ".viafoura-standalone-mpu", + "type": "hide" } ] }, @@ -1869,6 +2163,24 @@ } ] }, + { + "domain": "gamingbible.com", + "rules": [ + { + "selector": "[class*='Advert']", + "type": "hide-empty" + } + ] + }, + { + "domain": "getpocket.com", + "rules": [ + { + "selector": "[class*='syndication-ad']", + "type": "hide-empty" + } + ] + }, { "domain": "ghacks.net", "rules": [ @@ -1886,118 +2198,88 @@ "domain": "google.com", "rules": [ { - "selector": "iframe[src*='prid=19026802']", + "selector": ":is(div:has(> iframe[src*='prid=19026802']))", "type": "hide" }, { - "selector": "iframe[src*='prid=19026802']", - "type": "closest-empty" - }, - { - "selector": "iframe[src*='prid=19015398']", + "selector": ":is(div:has(> iframe[src*='prid=19015398']))", "type": "hide" }, { - "selector": "iframe[src*='prid=19015398']", - "type": "closest-empty" - }, - { - "selector": "iframe[src*='prid=19026796']", + "selector": ":is(div:has(> iframe[src*='prid=19026796']))", "type": "hide" }, { - "selector": "iframe[src*='prid=19026796']", - "type": "closest-empty" - }, - { - "selector": "iframe[src*='prid=19018053']", + "selector": ":is(div:has(> iframe[src*='prid=19018053']))", "type": "hide" }, { - "selector": "iframe[src*='prid=19018053']", - "type": "closest-empty" - }, - { - "selector": "iframe[src*='prid=19018054']", + "selector": ":is(div:has(> iframe[src*='prid=19018054']))", "type": "hide" }, { - "selector": "iframe[src*='prid=19018054']", - "type": "closest-empty" - }, - { - "selector": "iframe[src*='prid=19016403']", + "selector": ":is(div:has(> iframe[src*='prid=19016403']))", "type": "hide" }, { - "selector": "iframe[src*='prid=19016403']", - "type": "closest-empty" - }, - { - "selector": "iframe[src*='prid=19015972']", + "selector": ":is(div:has(> iframe[src*='prid=19015972']))", "type": "hide" }, { - "selector": "iframe[src*='prid=19015972']", - "type": "closest-empty" - }, - { - "selector": "iframe[src*='prid=19016223']", + "selector": ":is(div:has(> iframe[src*='prid=19016223']))", "type": "hide" }, { - "selector": "iframe[src*='prid=19016223']", - "type": "closest-empty" - }, - { - "selector": "iframe[src*='prid=19015952']", + "selector": ":is(div:has(> iframe[src*='prid=19015952']))", "type": "hide" }, { - "selector": "iframe[src*='prid=19015952']", - "type": "closest-empty" - }, - { - "selector": "iframe[src*='prid=19030391']", + "selector": ":is(div:has(> iframe[src*='prid=19030391']))", "type": "hide" }, { - "selector": "iframe[src*='prid=19030391']", - "type": "closest-empty" - }, - { - "selector": "iframe[src*='prid=19030389']", + "selector": ":is(div:has(> iframe[src*='prid=19030389']))", "type": "hide" }, { - "selector": "iframe[src*='prid=19030389']", - "type": "closest-empty" - }, - { - "selector": "iframe[src*='prid=19030167']", + "selector": ":is(div:has(> iframe[src*='prid=19030167']))", "type": "hide" - }, - { - "selector": "iframe[src*='prid=19030167']", - "type": "closest-empty" } ] }, { - "domain": "harpygee.com", + "domain": "gute-garne.de", "rules": [ { - "selector": "#leaderboard", + "selector": ".ad", "type": "override" } ] }, { - "domain": "hindustantimes.com", + "domain": "guard.io", "rules": [ { - "selector": ".desktopAd", - "type": "hide-empty" + "selector": "#credential_picker_container", + "type": "override" + } + ] + }, + { + "domain": "harpygee.com", + "rules": [ + { + "selector": "#leaderboard", + "type": "override" + } + ] + }, + { + "domain": "hindustantimes.com", + "rules": [ + { + "selector": ".desktopAd", + "type": "hide-empty" }, { "selector": "[class^='adHeight']", @@ -2009,6 +2291,27 @@ } ] }, + { + "domain": "howstuffworks.com", + "rules": [ + { + "selector": ".leaderboard-banner", + "type": "hide-empty" + }, + { + "selector": ".ad-container", + "type": "hide" + }, + { + "selector": ".ad-inline", + "type": "hide-empty" + }, + { + "selector": "#ad-wrap-mobadhesion", + "type": "closest-empty" + } + ] + }, { "domain": "huffpost.com", "rules": [ @@ -2018,6 +2321,15 @@ } ] }, + { + "domain": "indeed.com", + "rules": [ + { + "selector": ".google-Only-Modal", + "type": "hide" + } + ] + }, { "domain": "indiatimes.com", "rules": [ @@ -2065,6 +2377,15 @@ } ] }, + { + "domain": "kbb.com", + "rules": [ + { + "selector": "#contentFor_kbbAdsSimplifiedNativeAd", + "type": "hide" + } + ] + }, { "domain": "leboncoin.fr", "rules": [ @@ -2174,6 +2495,48 @@ } ] }, + { + "domain": "nerdist.com", + "rules": [ + { + "selector": ".kskdCls", + "type": "hide" + } + ] + }, + { + "domain": "newser.com", + "rules": [ + { + "selector": ".RightRailAds", + "type": "hide-empty" + }, + { + "selector": "#headerAdSection", + "type": "hide-empty" + }, + { + "selector": "#FreeStarVideoAdContainer", + "type": "closest-empty" + }, + { + "selector": "[id^='div-insticator-ad']", + "type": "closest-empty" + }, + { + "selector": "#divMobileHeaderAd", + "type": "closest-empty" + }, + { + "selector": "#divImageAd", + "type": "closest-empty" + }, + { + "selector": ".divNColAdRepeating", + "type": "closest-empty" + } + ] + }, { "domain": "newsmax.com", "rules": [ @@ -2255,6 +2618,32 @@ } ] }, + { + "domain": "on.cc", + "rules": [ + { + "selector": "#mOverLay-container", + "type": "hide" + }, + { + "selector": ".lrec", + "type": "hide-empty" + } + ] + }, + { + "domain": "ouest-france.fr", + "rules": [ + { + "selector": "[id*='pub_banniere']", + "type": "hide-empty" + }, + { + "selector": "[id*='pub_pave']", + "type": "hide-empty" + } + ] + }, { "domain": "peterboroughtoday.co.uk", "rules": [ @@ -2268,6 +2657,19 @@ } ] }, + { + "domain": "popsci.com", + "rules": [ + { + "selector": ".mtc-unit-prefill-container", + "type": "hide-empty" + }, + { + "selector": ".ad-slot-wrapper", + "type": "hide-empty" + } + ] + }, { "domain": "psypost.com", "rules": [ @@ -2298,7 +2700,7 @@ "type": "hide" }, { - "selector": "[devicetype=\"desktop\"] [data*='\"isNsfw\":false'] ~ shreddit-experience-tree", + "selector": "[devicetype=\"desktop\"] .grid:not([style='filter: blur(4px);']) ~ shreddit-experience-tree", "type": "hide" } ] @@ -2354,6 +2756,19 @@ } ] }, + { + "domain": "semafor.com", + "rules": [ + { + "selector": "[class*='adMargin']", + "type": "hide-empty" + }, + { + "selector": "[class*='adHeaderMargin']", + "type": "hide-empty" + } + ] + }, { "domain": "si.com", "rules": [ @@ -2403,6 +2818,32 @@ } ] }, + { + "domain": "theatlantic.com", + "rules": [ + { + "selector": "[class*='ArticleInjector']", + "type": "hide-empty" + } + ] + }, + { + "domain": "thetimes.co.uk", + "rules": [ + { + "selector": "#ad-header", + "type": "closest-empty" + }, + { + "selector": ".Section-ad", + "type": "hide-empty" + }, + { + "selector": "[class*='responsive__NativeAd']", + "type": "hide-empty" + } + ] + }, { "domain": "thingiverse.com", "rules": [ @@ -2422,6 +2863,44 @@ { "selector": ".ZkqhQ", "type": "hide" + }, + { + "selector": ".mxEhR", + "type": "hide" + } + ] + }, + { + "domain": "tripadvisor.de", + "rules": [ + { + "selector": "#tripGoogleOnetapContainer", + "type": "hide" + }, + { + "selector": ".ZkqhQ", + "type": "hide" + }, + { + "selector": ".mxEhR", + "type": "hide" + } + ] + }, + { + "domain": "tripadvisor.co.uk", + "rules": [ + { + "selector": "#tripGoogleOnetapContainer", + "type": "hide" + }, + { + "selector": ".ZkqhQ", + "type": "hide" + }, + { + "selector": ".mxEhR", + "type": "hide" } ] }, @@ -2435,6 +2914,27 @@ { "selector": ".ZkqhQ", "type": "hide" + }, + { + "selector": ".mxEhR", + "type": "hide" + } + ] + }, + { + "domain": "tripadvisor.fr", + "rules": [ + { + "selector": "#tripGoogleOnetapContainer", + "type": "hide" + }, + { + "selector": ".ZkqhQ", + "type": "hide" + }, + { + "selector": ".mxEhR", + "type": "hide" } ] }, @@ -2448,11 +2948,20 @@ ] }, { - "domain": "wunderground.com", + "domain": "usnews.com", "rules": [ { - "selector": ".pane-wu-fullscreenweather-ad-box-atf", - "type": "hide-empty" + "selector": "[class^='Ad__Container-']", + "type": "hide" + } + ] + }, + { + "domain": "vinted.fr", + "rules": [ + { + "selector": ".ad-container--leaderboard", + "type": "hide" } ] }, @@ -2490,6 +2999,15 @@ } ] }, + { + "domain": "winnipegfreepress.com", + "rules": [ + { + "selector": ".article-ad", + "type": "hide" + } + ] + }, { "domain": "wsj.com", "rules": [ @@ -2499,6 +3017,24 @@ } ] }, + { + "domain": "wunderground.com", + "rules": [ + { + "selector": ".pane-wu-fullscreenweather-ad-box-atf", + "type": "hide-empty" + } + ] + }, + { + "domain": "wykop.pl", + "rules": [ + { + "selector": ".pub-slot-wrapper", + "type": "hide-empty" + } + ] + }, { "domain": "yahoo.com", "rules": [ @@ -2622,7 +3158,7 @@ ] }, "state": "enabled", - "hash": "c6be96b0355dc5deb121ae2de2172ea6" + "hash": "2f8931c70e46c85a1733f86720d07db0" }, "exceptionHandler": { "exceptions": [], @@ -2868,10 +3404,18 @@ "domain": "allegiantair.com", "reason": "Example URL: https://www.allegiantair.com/seating-checking-boarding; Clicking the 'show details' button in the FAQ sections does nothing." }, + { + "domain": "boston.com", + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/700" + }, { "domain": "costco.com", "reason": "https://github.com/duckduckgo/privacy-configuration/issues/644" }, + { + "domain": "eventbrite.com", + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/700" + }, { "domain": "duluthtrading.com", "reason": "https://github.com/duckduckgo/privacy-configuration/issues/700" @@ -2879,6 +3423,10 @@ { "domain": "web.whatsapp.com", "reason": "https://github.com/duckduckgo/privacy-configuration/issues/620" + }, + { + "domain": "walmart.com", + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1198" } ], "settings": { @@ -2890,7 +3438,7 @@ "privacy-test-pages.glitch.me" ] }, - "hash": "470c77b05c99b8f0986cc40422a59c91" + "hash": "77d4f914f73a5d3fec51f38d32918a2c" }, "harmfulApis": { "settings": { @@ -2997,8 +3545,13 @@ }, "https": { "state": "enabled", - "exceptions": [], - "hash": "697382e31649d84b01166f1dc6f790d6" + "exceptions": [ + { + "domain": "act.alz.org", + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1158" + } + ], + "hash": "150c8d7e1b9c95d412568b28deb10451" }, "incontextSignup": { "exceptions": [], @@ -3017,6 +3570,11 @@ "state": "enabled", "hash": "831a734e08585b40a38556ad9d108e7b" }, + "newTabContinueSetUp": { + "exceptions": [], + "state": "disabled", + "hash": "728493ef7a1488e4781656d3f9db84aa" + }, "nonTracking3pCookies": { "settings": { "excludedCookieDomains": [] @@ -3027,10 +3585,18 @@ }, "referrer": { "exceptions": [ + { + "domain": "atlassian.com", + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1092" + }, { "domain": "learning.edx.org", "reason": "https://github.com/duckduckgo/privacy-configuration/issues/934" }, + { + "domain": "login-seconnecter.ca", + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1097" + }, { "domain": "canadapost-postescanada.ca", "reason": "https://github.com/duckduckgo/privacy-configuration/issues/647" @@ -3045,7 +3611,7 @@ } ], "state": "enabled", - "hash": "1ed2336bb12ce5218b091ee5f33bf4c0" + "hash": "9800a128dcc0363ea66d0687b0c8cbcb" }, "requestFilterer": { "state": "disabled", @@ -3157,6 +3723,19 @@ } ] }, + "adthrive.com": { + "rules": [ + { + "rule": "adthrive.com", + "domains": [ + "gardeningknowhow.com", + "adamtheautomator.com", + "packhacker.com" + ], + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1122" + } + ] + }, "ads-twitter.com": { "rules": [ { @@ -3243,10 +3822,12 @@ "rule": "c.amazon-adsystem.com/aax2/apstag.js", "domains": [ "corriere.it", + "cnn.com", "eurogamer.net", - "seattletimes.com" + "seattletimes.com", + "wcvb.com" ], - "reason": "corriere.it - Example URL: https://www.corriere.it/video-articoli/2022/07/13/missione-wwf-liberare-mare-plastica/9abb64de-029d-11ed-a0cc-ad3c68cacbae.shtml; Clicking on the video to play causes a still frame to show and the video does not continue. eurogamer.net, seattletimes.com - An unskippable adwall appears which prevents interaction with the page." + "reason": "corriere.it - Example URL: https://www.corriere.it/video-articoli/2022/07/13/missione-wwf-liberare-mare-plastica/9abb64de-029d-11ed-a0cc-ad3c68cacbae.shtml; Clicking on the video to play causes a still frame to show and the video does not continue. eurogamer.net, seattletimes.com - An unskippable adwall appears which prevents interaction with the page. cnn.com - https://github.com/duckduckgo/privacy-configuration/issues/1220 wcvb.com - https://github.com/duckduckgo/privacy-configuration/issues/1088" } ] }, @@ -3266,32 +3847,23 @@ { "rule": "prime.amazon.dev", "domains": [ - "amazon.eg", - "amazon.com.br", - "amazon.ca", - "amazon.com.mx", - "amazon.com", - "amazon.cn", - "amazon.in", - "amazon.co.jp", - "amazon.sa", - "amazon.sg", - "amazon.com.tr", - "amazon.ae", - "amazon.com.be", - "amazon.fr", - "amazon.it", - "amazon.nl", - "amazon.pl", - "amazon.es", - "amazon.se", - "amazon.co.uk", - "amazon.com.au" + "" ], "reason": "https://github.com/duckduckgo/privacy-configuration/issues/943" } ] }, + "analytics-egain.com": { + "rules": [ + { + "rule": "analytics.analytics-egain.com/onetag/", + "domains": [ + "support.norton.com" + ], + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1156" + } + ] + }, "aticdn.net": { "rules": [ { @@ -3303,6 +3875,28 @@ } ] }, + "att.com": { + "rules": [ + { + "rule": "att.com/scripts/att_common.js", + "domains": [ + "directv.com" + ], + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1107" + } + ] + }, + "aweber.com": { + "rules": [ + { + "rule": "aweber.com/form/", + "domains": [ + "" + ], + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1107" + } + ] + }, "azure.net": { "rules": [ { @@ -3346,11 +3940,11 @@ "reason": "See https://github.com/duckduckgo/privacy-configuration/issues/321. These requests are associated with map/location functionality on websites." }, { - "rule": "th.bing.com/th", + "rule": "bing.com/th", "domains": [ - "drudgereport.com" + "" ], - "reason": "On the homepage (drudgereport.com), some images are fetched from bing.com. When we block these requests, the images do not render, and the page appears to have blank boxes. Note that requests can be of the form th.bing.com/th?id=... or th.bing.com/th/id/..., hence we unblock the common path here." + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/765" }, { "rule": "www.bing.com/api/maps/mapcontrol", @@ -3389,6 +3983,17 @@ } ] }, + "boldapps.net": { + "rules": [ + { + "rule": "option.boldapps.net/js/options.js", + "domains": [ + "" + ], + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1222" + } + ] + }, "captcha-delivery.com": { "rules": [ { @@ -3436,18 +4041,60 @@ "cloudflare.com": { "rules": [ { - "rule": "cdnjs.cloudflare.com/ajax/libs/fingerprintjs2/1.8.6/fingerprint2.min.js", + "rule": "cdnjs.cloudflare.com/cdn-cgi/scripts/.*/cloudflare-static/rocket-loader.min.js", "domains": [ - "winnipegfreepress.com" + "" + ], + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1107" + }, + { + "rule": "cdnjs.cloudflare.com/ajax/libs/leaflet/", + "domains": [ + "" + ], + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1107" + }, + { + "rule": "cdnjs.cloudflare.com/ajax/libs/three.js/", + "domains": [ + "" + ], + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1107" + }, + { + "rule": "cdnjs.cloudflare.com/ajax/libs/vue/", + "domains": [ + "" + ], + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1107" + }, + { + "rule": "cdnjs.cloudflare.com/ajax/libs/video.js/", + "domains": [ + "" + ], + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1107" + }, + { + "rule": "cdnjs.cloudflare.com/ajax/libs/headjs/", + "domains": [ + "" + ], + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1107" + }, + { + "rule": "cdnjs.cloudflare.com/ajax/libs/hola_player/", + "domains": [ + "" ], - "reason": "Example URL: https://www.winnipegfreepress.com/local/city-will-try-to-fill-money-losing-ex-canada-post-office-576646662.html Main text content on article does not load." + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1107" }, { - "rule": "cdnjs.cloudflare.com/ajax/libs/three.js/84/three.min.js", + "rule": "cdnjs.cloudflare.com/ajax/libs/fingerprintjs2/1.8.6/fingerprint2.min.js", "domains": [ - "2000mules.com" + "winnipegfreepress.com" ], - "reason": "Loading percentage hits 100% and the site does not proceed to display usual content." + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1066" }, { "rule": "challenges.cloudflare.com", @@ -3491,14 +4138,14 @@ } ] }, - "quantcast.com": { + "crisp.chat": { "rules": [ { - "rule": "cmp.quantcast.com", + "rule": "crisp.chat", "domains": [ - "express.co.uk" + "" ], - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1068" + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1107" } ] }, @@ -3573,17 +4220,49 @@ "" ], "reason": "https://github.com/duckduckgo/privacy-configuration/issues/486" + }, + { + "rule": "p.cquotient.com/pebble", + "domains": [ + "scheels.com" + ], + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/486" + } + ] + }, + "cudasvc.com": { + "rules": [ + { + "rule": "cudasvc.com/url", + "domains": [ + "" + ], + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1107" } ] }, "cxense.com": { "rules": [ { - "rule": "api.cxense.com/public/widget/data", + "rule": "cxense.com/public/widget", + "domains": [ + "" + ], + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1143" + }, + { + "rule": "cxense.com/cx.js", "domains": [ - "wsj.com" + "" + ], + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1143" + }, + { + "rule": "cxense.com/cx.cce.js", + "domains": [ + "" ], - "reason": "Opinion section article elements do not render. Note that Firefox Enhanced Tracking Protection may prevent mitigation from succeeding on Firefox." + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1143" } ] }, @@ -3634,6 +4313,13 @@ }, "doubleclick.net": { "rules": [ + { + "rule": "doubleclick.net/ondemand/hls/content/", + "domains": [ + "history.com" + ], + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1185" + }, { "rule": "securepubads.g.doubleclick.net/gampad/ads", "domains": [ @@ -3645,11 +4331,13 @@ { "rule": "pubads.g.doubleclick.net/gampad/ads", "domains": [ + "fifa.com", "nhl.com", "viki.com", - "rocketnews24.com" + "rocketnews24.com", + "crunchyroll.com" ], - "reason": "nhl.com - Videos show a spinner and never load. viki.com - after a video has played for a few seconds an adwall pops up. Clicking 'I've turned off my adblocker' resets the video, then after a few seconds the adwall pops up again. rocketnews24.com - https://github.com/duckduckgo/privacy-configuration/issues/846" + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1185 rocketnews24.com - https://github.com/duckduckgo/privacy-configuration/issues/846 crunchyroll.com - https://github.com/duckduckgo/privacy-configuration/issues/1140" }, { "rule": "pubads.g.doubleclick.net/ssai/event/", @@ -3697,6 +4385,17 @@ } ] }, + "driftt.com": { + "rules": [ + { + "rule": "driftt.com", + "domains": [ + "" + ], + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1107" + } + ] + }, "dynamicyield.com": { "rules": [ { @@ -3714,11 +4413,11 @@ "edgekey.net": { "rules": [ { - "rule": "scene7.com.edgekey.net/s7viewersdk/3.11/MixedMediaViewer/js/s7sdk/utils/Utils.js", + "rule": "scene7.com.edgekey.net/s7viewersdk", "domains": [ "" ], - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/356" + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1107" }, { "rule": "alicdn.com.edgekey.net/", @@ -3871,15 +4570,30 @@ } ] }, - "fox.com": { + "five9.com": { "rules": [ { - "rule": "b.fox.com", + "rule": "app.five9.com", "domains": [ - "pizzahut.com" + "machiassavings.bank" ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - }, + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1111" + } + ] + }, + "flowplayer.org": { + "rules": [ + { + "rule": "flowplayer.org", + "domains": [ + "" + ], + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1107" + } + ] + }, + "fox.com": { + "rules": [ { "rule": "fox.com", "domains": [ @@ -4075,6 +4789,24 @@ "doterra.com" ], "reason": "For doterra.com/login/loading, the page shows a loading indicator and never redirects." + }, + { + "rule": "www.google-analytics.com/collect", + "domains": [ + "youmath.it" + ], + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1147" + } + ] + }, + "googleoptimize.com": { + "rules": [ + { + "rule": "googleoptimize.com/optimize.js", + "domains": [ + "motherdenim.com" + ], + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1117" } ] }, @@ -4086,7 +4818,8 @@ "magicgameworld.com", "youmath.it", "duden.de", - "rocketnews24.com" + "rocketnews24.com", + "zefoy.com" ], "reason": "https://github.com/duckduckgo/privacy-configuration/issues/388 rocketnews24.com - https://github.com/duckduckgo/privacy-configuration/issues/846" }, @@ -4095,16 +4828,18 @@ "domains": [ "laprensa.hn", "rumble.com", - "rocketnews24.com" + "rocketnews24.com", + "zefoy.com" ], "reason": "https://github.com/duckduckgo/privacy-configuration/issues/388 rocketnews24.com - https://github.com/duckduckgo/privacy-configuration/issues/846" }, { "rule": "googlesyndication.com", "domains": [ - "rocketnews24.com" + "rocketnews24.com", + "zefoy.com" ], - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/846" + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/388 rocketnews24.com - https://github.com/duckduckgo/privacy-configuration/issues/846" } ] }, @@ -4116,23 +4851,158 @@ "abril.com.br" ], "reason": "https://github.com/duckduckgo/privacy-configuration/issues/929" - }, - { - "rule": "googletagmanager.com/gtm.js", - "domains": [ - "aeromexico.com", - "ah.nl", - "al.com", - "bbcgoodfood.com", - "dailyherald.com", - "emirates.com", - "garnethill.com", - "iltalehti.fi", - "kingarthurbaking.com", - "pickfu.com", - "rbcroyalbank.com" - ], - "reason": "ah.nl - 'Bonus offer' elements do not render and are not clickable. aeromexico.com, al.com, bbcgoodfood.com, garnethill.com - https://github.com/duckduckgo/privacy-configuration/issues/921 dailyherald.com - Article images render as grey boxes. emirates.com - After filling out login details and clicking to proceed, a loading spinners shows on the proceed button and the login does not progress. iltalehti.fi - Article video renders as a blank box. kingarthurbaking.com - https://github.com/duckduckgo/privacy-configuration/issues/348 pickfu.com - https://github.com/duckduckgo/privacy-configuration/issues/346 rbcroyalbank.com - Investments page renders blank." + } + ] + }, + "googletagservices.com": { + "rules": [ + { + "rule": "googletagservices.com/tag/js/gpt.js", + "domains": [ + "13wham.com", + "22thepoint.com", + "abc3340.com", + "abc45.com", + "abc6onyourside.com", + "abc7amarillo.com", + "abcnews4.com", + "abcstlouis.com", + "azteca48.com", + "bakersfieldnow.com", + "cbs12.com", + "cbs2iowa.com", + "cbs4local.com", + "cbs6albany.com", + "cbsaustin.com", + "chattanoogacw.com", + "cnycentral.com", + "cw14online.com", + "cw18milwaukee.com", + "cw23tv.com", + "cw34.com", + "cw35.com", + "cw7michigan.com", + "cwalbany.com", + "cwbaltimore.com", + "cwcentralpa.com", + "cwcincinnati.com", + "cwcolumbus.com", + "cwlasvegas.com", + "cwnashville.tv", + "cwokc.com", + "cwomaha.tv", + "cwrochester.com", + "cwtreasurevalley.com", + "dayton247now.com", + "fox11online.com", + "fox17.com", + "fox23maine.com", + "fox28savannah.com", + "fox38corpuschristi.com", + "fox42kptm.com", + "fox47.com", + "fox49.tv", + "fox4beaumont.com", + "fox56.com", + "foxbaltimore.com", + "foxchattanooga.com", + "foxillinois.com", + "foxkansas.com", + "foxnebraska.com", + "foxreno.com", + "foxrichmond.com", + "foxrochester.com", + "foxsanantonio.com", + "idahonews.com", + "katu.com", + "katv.com", + "kcby.com", + "kdsm17.com", + "keprtv.com", + "kfdm.com", + "kfoxtv.com", + "khqa.com", + "kimatv.com", + "kjzz.com", + "klewtv.com", + "kmph.com", + "kmyu.tv", + "komonews.com", + "kpic.com", + "krcgtv.com", + "ktul.com", + "ktvl.com", + "ktvo.com", + "ktxs.com", + "kunptv.com", + "kunwtv.com", + "kutv.com", + "kval.com", + "local12.com", + "local21news.com", + "midmichigannow.com", + "my15wtcn.com", + "my24milwaukee.com", + "my48.tv", + "mycbs4.com", + "myfox28columbus.com", + "mylvtv.com", + "mynbc15.com", + "mynews4.com", + "myrdctv.com", + "mytv30web.com", + "mytvbaltimore.com", + "mytvbuffalo.com", + "mytvcharleston.com", + "mytvrichmond.com", + "mytvwichita.com", + "mytvz.com", + "nbc16.com", + "nbc24.com", + "nbcmontana.com", + "nebraska.tv", + "nevadasportsnet.com", + "news3lv.com", + "news4sanantonio.com", + "newschannel20.com", + "newschannel9.com", + "okcfox.com", + "raleighcw.com", + "siouxlandnews.com", + "southernoregoncw.com", + "star64.tv", + "thecw38.com", + "thecw46.com", + "thecwtc.com", + "turnto10.com", + "univisionseattle.com", + "upnorthlive.com", + "utv44.com", + "wabm68.com", + "wach.com", + "wchstv.com", + "wcti12.com", + "wcyb.com", + "weartv.com", + "wfgxtv.com", + "wfxl.com", + "wgme.com", + "wgxa.tv", + "wjactv.com", + "wjla.com", + "wlos.com", + "wpde.com", + "wpgh53.com", + "wsbt.com", + "wset.com", + "wtov9.com", + "wtto21.com", + "wtwc40.com", + "wutv29.com", + "wvah.com", + "wwmt.com" + ], + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1173" } ] }, @@ -4172,6 +5042,17 @@ } ] }, + "heapanalytics.com": { + "rules": [ + { + "rule": "cdn.heapanalytics.com", + "domains": [ + "mejuri.com" + ], + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1081" + } + ] + }, "iesnare.com": { "rules": [ { @@ -4185,13 +5066,6 @@ }, "iheart.com": { "rules": [ - { - "rule": "smy.iheart.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - }, { "rule": "iheart.com", "domains": [ @@ -4318,7 +5192,8 @@ { "rule": "klaviyo.com/", "domains": [ - "kmail-lists.com" + "kmail-lists.com", + "footweartruth.com" ], "reason": "https://github.com/duckduckgo/privacy-configuration/issues/362" } @@ -4431,6 +5306,17 @@ } ] }, + "memberful.com": { + "rules": [ + { + "rule": "memberful.com/embed.js", + "domains": [ + "" + ], + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1107" + } + ] + }, "nc0.co": { "rules": [ { @@ -4475,6 +5361,17 @@ } ] }, + "omappapi.com": { + "rules": [ + { + "rule": "omappapi.com", + "domains": [ + "dogfoodadvisor.com" + ], + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1113" + } + ] + }, "omnitagjs.com": { "rules": [ { @@ -4511,17 +5408,6 @@ } ] }, - "online-metrix.net": { - "rules": [ - { - "rule": "online-metrix.net/", - "domains": [ - "citizensbankonline.com" - ], - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1079" - } - ] - }, "onlyfans.com": { "rules": [ { @@ -4581,11 +5467,29 @@ "pardot.com": { "rules": [ { - "rule": "go.pardot.com/", + "rule": "go.pardot.com", + "domains": [ + "" + ], + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1180" + }, + { + "rule": "storage.pardot.com", + "domains": [ + "" + ], + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1180" + } + ] + }, + "patreon.com": { + "rules": [ + { + "rule": "patreon.com/becomePatronButton.bundle.js", "domains": [ - "klove.com" + "" ], - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/625" + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1107" } ] }, @@ -4749,6 +5653,17 @@ } ] }, + "proofpoint.com": { + "rules": [ + { + "rule": "proofpoint.com/v2/url", + "domains": [ + "" + ], + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1107" + } + ] + }, "pubmatic.com": { "rules": [ { @@ -4767,6 +5682,28 @@ } ] }, + "qualtrics.com": { + "rules": [ + { + "rule": "qualtrics.com", + "domains": [ + "" + ], + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1196" + } + ] + }, + "quantcast.com": { + "rules": [ + { + "rule": "cmp.quantcast.com", + "domains": [ + "" + ], + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1125" + } + ] + }, "quantserve.com": { "rules": [ { @@ -4781,14 +5718,14 @@ "reddit.com": { "rules": [ { - "rule": "embed.reddit.com/widgets.js", + "rule": "embed.reddit.com/", "domains": [ "" ], "reason": "https://github.com/duckduckgo/privacy-configuration/issues/369" }, { - "rule": "embed.reddit.com/r/", + "rule": "gql.reddit.com/", "domains": [ "" ], @@ -4880,6 +5817,17 @@ } ] }, + "shop.app": { + "rules": [ + { + "rule": "shop.app/pay/session", + "domains": [ + "" + ], + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1107" + } + ] + }, "shopeemobile.com": { "rules": [ { @@ -4891,6 +5839,24 @@ } ] }, + "shopifyapps.com": { + "rules": [ + { + "rule": "shopifyapps.com/locale_bar/script.js", + "domains": [ + "" + ], + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1107" + }, + { + "rule": "shopifyapps.com/selectors/script.js", + "domains": [ + "" + ], + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1107" + } + ] + }, "shortpixel.ai": { "rules": [ { @@ -4902,6 +5868,17 @@ } ] }, + "snapkit.com": { + "rules": [ + { + "rule": "snapkit.com/js/v1/create.js", + "domains": [ + "" + ], + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1107" + } + ] + }, "speedcurve.com": { "rules": [ { @@ -4921,20 +5898,6 @@ "spiegel.de" ], "reason": "https://github.com/duckduckgo/privacy-configuration/issues/344" - }, - { - "rule": "sams.spiegel.de", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - }, - { - "rule": "sats.spiegel.de", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" } ] }, @@ -4971,28 +5934,36 @@ } ] }, - "theplatform.com": { + "techlab-cdn.com": { "rules": [ { - "rule": "link.theplatform.com/s/", + "rule": "techlab-cdn.com/collect", "domains": [ - "nbcsports.com" + "jcrew.com" ], - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/512" - }, + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1094" + } + ] + }, + "theplatform.com": { + "rules": [ { - "rule": "pdk.theplatform.com/pdk6/current/pdk/player.js", + "rule": "theplatform.com", "domains": [ - "eonline.com" + "" ], - "reason": "Videos don't play (blank box after clicking to play)." - }, + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1107" + } + ] + }, + "tidiochat.com": { + "rules": [ { - "rule": "pdk.theplatform.com/pdk6/next/pdk/player.js", + "rule": "tidiochat.com", "domains": [ - "nbcsports.com" + "" ], - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/512" + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1107" } ] }, @@ -5132,6 +6103,28 @@ } ] }, + "viglink.com": { + "rules": [ + { + "rule": "cdn.viglink.com/api/vglnk.js", + "domains": [ + "9to5mac.com" + ], + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1204" + } + ] + }, + "voxmedia.com": { + "rules": [ + { + "rule": "voxmedia.com/sso/unison_request", + "domains": [ + "" + ], + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1107" + } + ] + }, "wpadmngr.com": { "rules": [ { @@ -5171,70 +6164,7 @@ "yotpo.com": { "rules": [ { - "rule": "api.yotpo.com/products/.*/.*/bottomline", - "domains": [ - "" - ], - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/348" - }, - { - "rule": "api.yotpo.com/questions/send_confirmation_mail", - "domains": [ - "" - ], - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/348" - }, - { - "rule": "api.yotpo.com/v1/widget/reviews", - "domains": [ - "" - ], - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/348" - }, - { - "rule": "cdn-yotpo-images-production.yotpo.com/Product/.*/.*/square.jpg", - "domains": [ - "" - ], - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/348" - }, - { - "rule": "staticw2.yotpo.com/.*/widget.js", - "domains": [ - "" - ], - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/348" - }, - { - "rule": "staticw2.yotpo.com/.*/widget.css", - "domains": [ - "" - ], - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/348" - }, - { - "rule": "staticw2.yotpo.com/assets/yotpo-widget-font.woff", - "domains": [ - "" - ], - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/348" - }, - { - "rule": "staticw2.yotpo.com/batch/", - "domains": [ - "" - ], - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/348" - }, - { - "rule": "staticw2.yotpo.com/batch/app_key/.*/domain_key/.*/widget/main_widget", - "domains": [ - "" - ], - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/348" - }, - { - "rule": "api.yotpo.com/reviews/.*/vote", + "rule": "yotpo.com", "domains": [ "" ], @@ -5257,138 +6187,46 @@ "" ], "reason": "https://github.com/duckduckgo/privacy-configuration/issues/830" - } - ] - }, - "zeustechnology.com": { - "rules": [ - { - "rule": "seattle-times.zeustechnology.com/main.js", - "domains": [ - "seattletimes.com" - ], - "reason": "An unskippable adwall appears which prevents interaction with the page." - } - ] - }, - "seatgeek.com": { - "rules": [ - { - "rule": "datadome.seatgeek.com", - "domains": [ - "thetrainline.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: datadome.co" - } - ] - }, - "auspost.com.au": { - "rules": [ - { - "rule": "dd.auspost.com.au", - "domains": [ - "thetrainline.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: datadome.co" }, { - "rule": "ssl.o.auspost.com.au", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "magiceden.io": { - "rules": [ - { - "rule": "dd.magiceden.io", - "domains": [ - "thetrainline.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: datadome.co" - } - ] - }, - "nytimes.com": { - "rules": [ - { - "rule": "dd.nytimes.com", - "domains": [ - "thetrainline.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: datadome.co" - } - ] - }, - "soundcloud.com": { - "rules": [ - { - "rule": "dwt.soundcloud.com", - "domains": [ - "thetrainline.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: datadome.co" - } - ] - }, - "imobiliare.ro": { - "rules": [ - { - "rule": "protect.imobiliare.ro", + "rule": "rapid-cdn.yottaa.com/rapid/lib/ows8CdAyrC5lTw.js", "domains": [ - "thetrainline.com" + "scheels.com" ], - "reason": "CNAME ENTRY GENERATED FROM: datadome.co" + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/492" } ] }, - "asics.com": { + "zencdn.net": { "rules": [ { - "rule": "tags.asics.com", + "rule": "vjs.zencdn.net", "domains": [ - "asics.com" + "" ], - "reason": "CNAME ENTRY GENERATED FROM: tags.asics.com.greylabeldelivery.com" + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1107" } ] }, - "focus.de": { + "zeustechnology.com": { "rules": [ { - "rule": "tags.focus.de/focus-web/prod/utag.js", + "rule": "seattle-times.zeustechnology.com/main.js", "domains": [ - "focus.de" + "seattletimes.com" ], - "reason": "CNAME ENTRY GENERATED FROM: tags.focus.de.greylabeldelivery.com" + "reason": "An unskippable adwall appears which prevents interaction with the page." } ] }, - "cox.com": { + "zip.co": { "rules": [ { - "rule": "webcdn.cox.com", + "rule": "zip.co/v1/quadpay.js", "domains": [ - "cox.com", - "cox.net" - ], - "reason": "CNAME ENTRY GENERATED FROM: e9pkvlf.impervadns.net" - }, - { - "rule": "smetrics.cox.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - }, - { - "rule": "target.cox.com", - "domains": [ - "pizzahut.com" + "" ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1107" } ] }, @@ -5400,20 +6238,6 @@ "" ], "reason": "CNAME ENTRY GENERATED FROM: liveperson.net" - }, - { - "rule": "lpcdn.chat.online.citi.com", - "domains": [ - "" - ], - "reason": "CNAME ENTRY GENERATED FROM: lpsnmedia.net" - }, - { - "rule": "metrics1.citi.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" } ] }, @@ -5425,27 +6249,6 @@ "" ], "reason": "CNAME ENTRY GENERATED FROM: liveperson.net" - }, - { - "rule": "lp-01.customermessaging.bupa.com.au", - "domains": [ - "" - ], - "reason": "CNAME ENTRY GENERATED FROM: lpsnmedia.net" - }, - { - "rule": "lpcdn.customermessaging.bupa.com.au", - "domains": [ - "" - ], - "reason": "CNAME ENTRY GENERATED FROM: lpsnmedia.net" - }, - { - "rule": "stt.bupa.com.au", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" } ] }, @@ -5464,8520 +6267,35 @@ "" ], "reason": "CNAME ENTRY GENERATED FROM: liveperson.net" - }, - { - "rule": "lpcdn.messaging.optus.com.au", - "domains": [ - "" - ], - "reason": "CNAME ENTRY GENERATED FROM: lpsnmedia.net" - } - ] - }, - "mbna.ca": { - "rules": [ - { - "rule": "chat.mbna.ca", - "domains": [ - "" - ], - "reason": "CNAME ENTRY GENERATED FROM: lpsnmedia.net" - } - ] - }, - "singtel.com": { - "rules": [ - { - "rule": "chat.singtel.com", - "domains": [ - "" - ], - "reason": "CNAME ENTRY GENERATED FROM: lpsnmedia.net" - } - ] - }, - "navyfederal.org": { - "rules": [ - { - "rule": "liveengage.navyfederal.org", - "domains": [ - "" - ], - "reason": "CNAME ENTRY GENERATED FROM: lpsnmedia.net" - }, - { - "rule": "analytics.navyfederal.org", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" } ] }, - "telstra.com.au": { + "canadapost-postescanada.ca": { "rules": [ { - "rule": "lpcdn.messaging.telstra.com.au", + "rule": "evaluation.canadapost-postescanada.ca", "domains": [ "" ], - "reason": "CNAME ENTRY GENERATED FROM: lpsnmedia.net" - }, - { - "rule": "infos.telstra.com.au", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" + "reason": "CNAME ENTRY GENERATED FROM: qualtrics.com" } ] }, - "americanexpress.com": { + "goto.com": { "rules": [ { - "rule": "lpchat.americanexpress.com", + "rule": "feedback.goto.com", "domains": [ "" ], - "reason": "CNAME ENTRY GENERATED FROM: lpsnmedia.net" - }, - { - "rule": "omns.americanexpress.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "bankofamerica.com": { - "rules": [ - { - "rule": "target.bankofamerica.com/m2/bankofamerica/mbox/json", - "domains": [ - "bankofamerica.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: bankofamerica.tt.omtrdc.net" - }, - { - "rule": "target.bankofamerica.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "rohde-schwarz.com": { - "rules": [ - { - "rule": "a.rohde-schwarz.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "hotpepper.jp": { - "rules": [ - { - "rule": "aa-metrics.beauty.hotpepper.jp", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - }, - { - "rule": "aa-metrics.hotpepper.jp", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "jalan.net": { - "rules": [ - { - "rule": "aa-metrics.jalan.net", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "msnbc.com": { - "rules": [ - { - "rule": "aamt.msnbc.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "nbcnews.com": { - "rules": [ - { - "rule": "aamt.nbcnews.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "telemundo.com": { - "rules": [ - { - "rule": "aamt.newsapp.telemundo.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "today.com": { - "rules": [ - { - "rule": "aamt.today.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "adelaide.edu.au": { - "rules": [ - { - "rule": "aanalytics.adelaide.edu.au", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - }, - { - "rule": "atarget.adelaide.edu.au", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "nike.com": { - "rules": [ - { - "rule": "abt.nike.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - }, - { - "rule": "smodus.nike.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "aaa.com": { - "rules": [ - { - "rule": "acemetrics.aaa.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - }, - { - "rule": "mcdmetrics2.aaa.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - }, - { - "rule": "smetrics.cluballiance.aaa.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "kijk.nl": { - "rules": [ - { - "rule": "adb-secured.kijk.nl", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "aeonbank.co.jp": { - "rules": [ - { - "rule": "adobe.aeonbank.co.jp", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "bws.com.au": { - "rules": [ - { - "rule": "adobeanalytics.bws.com.au", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "danmurphys.com.au": { - "rules": [ - { - "rule": "adobeanalytics.danmurphys.com.au", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "fcbarcelona.com": { - "rules": [ - { - "rule": "adtarget.fcbarcelona.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "fcbarcelona.es": { - "rules": [ - { - "rule": "adtarget.fcbarcelona.es", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "vizio.com": { - "rules": [ - { - "rule": "al-smetrics.vizio.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "asml.com": { - "rules": [ - { - "rule": "analytics.asml.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "capitalgroup.com": { - "rules": [ - { - "rule": "analytics.capitalgroup.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "cibc.com": { - "rules": [ - { - "rule": "analytics.cibc.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - }, - { - "rule": "w-profiling.cibc.com/", - "domains": [ - "citizensbankonline.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: online-metrix.net" - } - ] - }, - "pnc.com": { - "rules": [ - { - "rule": "analytics.pnc.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "ubs.com": { - "rules": [ - { - "rule": "analytics.ubs.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - }, - { - "rule": "tt.ubs.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "mlb.com": { - "rules": [ - { - "rule": "ans.mlb.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "autobild.de": { - "rules": [ - { - "rule": "as.autobild.de", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "bild.de": { - "rules": [ - { - "rule": "as.bild.de", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "bz-berlin.de": { - "rules": [ - { - "rule": "as.bz-berlin.de", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "computerbild.de": { - "rules": [ - { - "rule": "as.computerbild.de", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "fitbook.de": { - "rules": [ - { - "rule": "as.fitbook.de", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "metal-hammer.de": { - "rules": [ - { - "rule": "as.metal-hammer.de", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "musikexpress.de": { - "rules": [ - { - "rule": "as.musikexpress.de", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "myhomebook.de": { - "rules": [ - { - "rule": "as.myhomebook.de", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "rollingstone.de": { - "rules": [ - { - "rule": "as.rollingstone.de", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "stylebook.de": { - "rules": [ - { - "rule": "as.stylebook.de", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "techbook.de": { - "rules": [ - { - "rule": "as.techbook.de", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "travelbook.de": { - "rules": [ - { - "rule": "as.travelbook.de", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "welt.de": { - "rules": [ - { - "rule": "as.welt.de", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "aami.com.au": { - "rules": [ - { - "rule": "assets2.aami.com.au", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - }, - { - "rule": "smetrics.aami.com.au", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "shannons.com.au": { - "rules": [ - { - "rule": "assets2.shannons.com.au", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - }, - { - "rule": "smetrics.shannons.com.au", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "suncorp.com.au": { - "rules": [ - { - "rule": "assets2.suncorp.com.au", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - }, - { - "rule": "smetrics.suncorp.com.au", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "mclaren.com": { - "rules": [ - { - "rule": "at.mclaren.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "postbank.de": { - "rules": [ - { - "rule": "at.postbank.de", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "swisscom.ch": { - "rules": [ - { - "rule": "at.swisscom.ch", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - }, - { - "rule": "so.swisscom.ch", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "vodafone.de": { - "rules": [ - { - "rule": "at.vodafone.de", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - }, - { - "rule": "was.vodafone.de", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "harley-davidson.com": { - "rules": [ - { - "rule": "atarget.harley-davidson.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "foxsports.com": { - "rules": [ - { - "rule": "b.foxsports.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "koodomobile.com": { - "rules": [ - { - "rule": "b.koodomobile.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "law.com": { - "rules": [ - { - "rule": "b.law.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "medtronic.com": { - "rules": [ - { - "rule": "b.medtronic.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "snow.com": { - "rules": [ - { - "rule": "b.snow.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "telus.com": { - "rules": [ - { - "rule": "b.telus.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "intuit.com": { - "rules": [ - { - "rule": "sci.intuit.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - }, - { - "rule": "ci.intuit.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - }, - { - "rule": "mfp.intuit.com/", - "domains": [ - "citizensbankonline.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: online-metrix.net" - } - ] - }, - "westjet.com": { - "rules": [ - { - "rule": "digistats.westjet.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - }, - { - "rule": "starget.westjet.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "fishersci.com": { - "rules": [ - { - "rule": "dm-target.fishersci.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - }, - { - "rule": "sstats.fishersci.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "bose.com": { - "rules": [ - { - "rule": "emetrics.bose.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - }, - { - "rule": "target.bose.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "asb.co.nz": { - "rules": [ - { - "rule": "experience.asb.co.nz", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - }, - { - "rule": "visit.asb.co.nz", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "firestonecompleteautocare.com": { - "rules": [ - { - "rule": "hub.firestonecompleteautocare.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "anz.com.au": { - "rules": [ - { - "rule": "infos.anz.com.au", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "belong.com.au": { - "rules": [ - { - "rule": "infos.belong.com.au", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "dn.no": { - "rules": [ - { - "rule": "maling.dn.no", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "wegmans.com": { - "rules": [ - { - "rule": "mbox.wegmans.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "hp.com": { - "rules": [ - { - "rule": "met2.hp.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "siriusxm.com": { - "rules": [ - { - "rule": "metrics-target.siriusxm.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - }, - { - "rule": "smetrics.siriusxm.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - }, - { - "rule": "metrics.siriusxm.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "aa.com": { - "rules": [ - { - "rule": "smetrics.aa.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - }, - { - "rule": "metrics.aa.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "adelaidenow.com.au": { - "rules": [ - { - "rule": "metrics.adelaidenow.com.au", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "armstrongceilings.com": { - "rules": [ - { - "rule": "metrics.armstrongceilings.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "asos.com": { - "rules": [ - { - "rule": "metrics.asos.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "barclaycardus.com": { - "rules": [ - { - "rule": "metrics.barclaycardus.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "bestrecipes.com.au": { - "rules": [ - { - "rule": "metrics.bestrecipes.com.au", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "bodyandsoul.com.au": { - "rules": [ - { - "rule": "metrics.bodyandsoul.com.au", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "cancer.gov": { - "rules": [ - { - "rule": "metrics.cancer.gov", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "indigo.ca": { - "rules": [ - { - "rule": "metrics.chapters.indigo.ca", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "couriermail.com.au": { - "rules": [ - { - "rule": "metrics.couriermail.com.au", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "crateandbarrel.com": { - "rules": [ - { - "rule": "metrics.crateandbarrel.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "dailytelegraph.com.au": { - "rules": [ - { - "rule": "metrics.dailytelegraph.com.au", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "delicious.com.au": { - "rules": [ - { - "rule": "metrics.delicious.com.au", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "duluthtrading.com": { - "rules": [ - { - "rule": "metrics.duluthtrading.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "fortinet.com": { - "rules": [ - { - "rule": "metrics.fortinet.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "heraldsun.com.au": { - "rules": [ - { - "rule": "metrics.heraldsun.com.au", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "ionos.co.uk": { - "rules": [ - { - "rule": "metrics.ionos.co.uk", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "ionos.com": { - "rules": [ - { - "rule": "metrics.ionos.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "ionos.es": { - "rules": [ - { - "rule": "metrics.ionos.es", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "ionos.it": { - "rules": [ - { - "rule": "metrics.ionos.it", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "makemytrip.com": { - "rules": [ - { - "rule": "metrics.makemytrip.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "news.com.au": { - "rules": [ - { - "rule": "metrics.news.com.au", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "nrma.com.au": { - "rules": [ - { - "rule": "metrics.nrma.com.au", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - }, - { - "rule": "target.nrma.com.au", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "ntnews.com.au": { - "rules": [ - { - "rule": "metrics.ntnews.com.au", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "postoffice.co.uk": { - "rules": [ - { - "rule": "metrics.postoffice.co.uk", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "rewe.de": { - "rules": [ - { - "rule": "metrics.rewe.de", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "samsclub.com": { - "rules": [ - { - "rule": "metrics.samsclub.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "steelcase.com": { - "rules": [ - { - "rule": "metrics.steelcase.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "synopsys.com": { - "rules": [ - { - "rule": "smetrics.synopsys.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - }, - { - "rule": "metrics.synopsys.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "taste.com.au": { - "rules": [ - { - "rule": "metrics.taste.com.au", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "telegraph.co.uk": { - "rules": [ - { - "rule": "smetrics.telegraph.co.uk", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - }, - { - "rule": "metrics.telegraph.co.uk", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "theaustralian.com.au": { - "rules": [ - { - "rule": "metrics.theaustralian.com.au", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "thelott.com": { - "rules": [ - { - "rule": "metrics.thelott.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - }, - { - "rule": "stt.thelott.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "themercury.com.au": { - "rules": [ - { - "rule": "metrics.themercury.com.au", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "timewarnercable.com": { - "rules": [ - { - "rule": "metrics.timewarnercable.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "uhc.com": { - "rules": [ - { - "rule": "smetrics.uhc.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - }, - { - "rule": "metrics.uhc.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "vogue.com.au": { - "rules": [ - { - "rule": "metrics.vogue.com.au", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "yellowpages.com": { - "rules": [ - { - "rule": "metrics.yellowpages.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "citibankonline.com": { - "rules": [ - { - "rule": "metrics1.citibankonline.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - }, - { - "rule": "content22.citibankonline.com/", - "domains": [ - "citizensbankonline.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: online-metrix.net" - } - ] - }, - "houselogic.com": { - "rules": [ - { - "rule": "metrics2.houselogic.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "nhk.or.jp": { - "rules": [ - { - "rule": "mtcs.nhk.or.jp", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "queensland.com": { - "rules": [ - { - "rule": "nsteq.queensland.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "familysearch.org": { - "rules": [ - { - "rule": "om.familysearch.org", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "basspro.com": { - "rules": [ - { - "rule": "omnis.basspro.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "cadence.com": { - "rules": [ - { - "rule": "omniture-dc-sec.cadence.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "asda.com": { - "rules": [ - { - "rule": "omniture-ssl.direct.asda.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "walmart.ca": { - "rules": [ - { - "rule": "omniture-ssl.walmart.ca", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "walmart.com": { - "rules": [ - { - "rule": "omniture-ssl.walmart.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - }, - { - "rule": "drfdisvc.walmart.com/", - "domains": [ - "citizensbankonline.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: online-metrix.net" - } - ] - }, - "kennametal.com": { - "rules": [ - { - "rule": "omniture.kennametal.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "chatrwireless.com": { - "rules": [ - { - "rule": "oms.chatrwireless.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "dowjones.com": { - "rules": [ - { - "rule": "oms.dowjones.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "dowjoneson.com": { - "rules": [ - { - "rule": "oms.dowjoneson.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "expedia.com": { - "rules": [ - { - "rule": "oms.expedia.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "hotels.com": { - "rules": [ - { - "rule": "oms.hotels.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "neimanmarcus.com": { - "rules": [ - { - "rule": "oms.neimanmarcus.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "norton.com": { - "rules": [ - { - "rule": "oms.norton.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "sportsnet.ca": { - "rules": [ - { - "rule": "oms1.sportsnet.ca", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "fandango.com": { - "rules": [ - { - "rule": "os.fandango.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "shutterfly.com": { - "rules": [ - { - "rule": "os.shutterfly.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "nbcuni.com": { - "rules": [ - { - "rule": "osimg.nbcuni.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "workday.com": { - "rules": [ - { - "rule": "otracks.workday.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "ihs.com": { - "rules": [ - { - "rule": "owss.ihs.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "buick.com": { - "rules": [ - { - "rule": "pdmsmrt.buick.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "cadillac.com": { - "rules": [ - { - "rule": "pdmsmrt.cadillac.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "chevrolet.com": { - "rules": [ - { - "rule": "pdmsmrt.chevrolet.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "gmc.com": { - "rules": [ - { - "rule": "pdmsmrt.gmc.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "ameriprisestats.com": { - "rules": [ - { - "rule": "s.ameriprisestats.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "bloomberglaw.com": { - "rules": [ - { - "rule": "s.cadent.bloomberglaw.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "lenovo.com": { - "rules": [ - { - "rule": "s.lenovo.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "lexusfinancial.com": { - "rules": [ - { - "rule": "s.lexusfinancial.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "vodacom.co.za": { - "rules": [ - { - "rule": "s.metric.vodacom.co.za", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "thestar.com": { - "rules": [ - { - "rule": "s.thestar.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "toyotafinancial.com": { - "rules": [ - { - "rule": "s.toyotafinancial.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "subaru.com": { - "rules": [ - { - "rule": "s1.subaru.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "cbs.com": { - "rules": [ - { - "rule": "saa.cbs.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "cbsnews.com": { - "rules": [ - { - "rule": "saa.cbsnews.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "comicbook.com": { - "rules": [ - { - "rule": "saa.comicbook.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "drphil.com": { - "rules": [ - { - "rule": "saa.drphil.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "dyson.co.uk": { - "rules": [ - { - "rule": "saa.dyson.co.uk", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "dyson.com": { - "rules": [ - { - "rule": "saa.dyson.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "dyson.de": { - "rules": [ - { - "rule": "saa.dyson.de", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "dyson.fr": { - "rules": [ - { - "rule": "saa.dyson.fr", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "dysoncanada.ca": { - "rules": [ - { - "rule": "saa.dysoncanada.ca", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "etonline.com": { - "rules": [ - { - "rule": "saa.etonline.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "globalspec.com": { - "rules": [ - { - "rule": "saa.globalspec.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "insideedition.com": { - "rules": [ - { - "rule": "saa.insideedition.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "last.fm": { - "rules": [ - { - "rule": "saa.last.fm", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "maxpreps.com": { - "rules": [ - { - "rule": "saa.maxpreps.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "popculture.com": { - "rules": [ - { - "rule": "saa.popculture.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "rachaelrayshow.com": { - "rules": [ - { - "rule": "saa.rachaelrayshow.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "sportsline.com": { - "rules": [ - { - "rule": "saa.sportsline.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "startrek.com": { - "rules": [ - { - "rule": "saa.startrek.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "tallink.com": { - "rules": [ - { - "rule": "saa.tallink.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "thedrewbarrymoreshow.com": { - "rules": [ - { - "rule": "saa.thedrewbarrymoreshow.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "wowma.jp": { - "rules": [ - { - "rule": "saa.wowma.jp", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "anz.co.nz": { - "rules": [ - { - "rule": "saainfo.anz.co.nz", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "gumtree.com.au": { - "rules": [ - { - "rule": "saam.gumtree.com.au", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "dow.com": { - "rules": [ - { - "rule": "saat.dow.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "abc.es": { - "rules": [ - { - "rule": "sadbmetrics.abc.es", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "autocasion.com": { - "rules": [ - { - "rule": "sadbmetrics.autocasion.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "diariosur.es": { - "rules": [ - { - "rule": "sadbmetrics.diariosur.es", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "diariovasco.com": { - "rules": [ - { - "rule": "sadbmetrics.diariovasco.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "elcomercio.es": { - "rules": [ - { - "rule": "sadbmetrics.elcomercio.es", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "elcorreo.com": { - "rules": [ - { - "rule": "sadbmetrics.elcorreo.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "eldiariomontanes.es": { - "rules": [ - { - "rule": "sadbmetrics.eldiariomontanes.es", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "elnortedecastilla.es": { - "rules": [ - { - "rule": "sadbmetrics.elnortedecastilla.es", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "hoy.es": { - "rules": [ - { - "rule": "sadbmetrics.hoy.es", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "ideal.es": { - "rules": [ - { - "rule": "sadbmetrics.ideal.es", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "larioja.com": { - "rules": [ - { - "rule": "sadbmetrics.larioja.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "lasprovincias.es": { - "rules": [ - { - "rule": "sadbmetrics.lasprovincias.es", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "laverdad.es": { - "rules": [ - { - "rule": "sadbmetrics.laverdad.es", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "mujerhoy.com": { - "rules": [ - { - "rule": "sadbmetrics.mujerhoy.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "pisos.com": { - "rules": [ - { - "rule": "sadbmetrics.pisos.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "rtve.es": { - "rules": [ - { - "rule": "sadbmetrics.rtve.es", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "falabella.com.co": { - "rules": [ - { - "rule": "sadobe.falabella.com.co", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "falabella.com.pe": { - "rules": [ - { - "rule": "sadobe.falabella.com.pe", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "geico.com": { - "rules": [ - { - "rule": "sadobeanalytics.geico.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "manager-magazin.de": { - "rules": [ - { - "rule": "sams.manager-magazin.de", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - }, - { - "rule": "sats.manager-magazin.de", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "box.com": { - "rules": [ - { - "rule": "sanalytics.box.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "disneyplus.com": { - "rules": [ - { - "rule": "sanalytics.disneyplus.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "hallmark.com": { - "rules": [ - { - "rule": "sanalytics.hallmark.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "hottopic.com": { - "rules": [ - { - "rule": "sanalytics.hottopic.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "skinny.co.nz": { - "rules": [ - { - "rule": "sanalytics.skinny.co.nz", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "spark.co.nz": { - "rules": [ - { - "rule": "sanalytics.spark.co.nz", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "verizon.com": { - "rules": [ - { - "rule": "sanalytics.verizon.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "visible.com": { - "rules": [ - { - "rule": "sanalytics.visible.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "originenergy.com.au": { - "rules": [ - { - "rule": "sanmet.originenergy.com.au", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "equifax.com": { - "rules": [ - { - "rule": "sawap.equifax.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "landsend.co.uk": { - "rules": [ - { - "rule": "scnd.landsend.co.uk", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "landsend.com": { - "rules": [ - { - "rule": "scnd.landsend.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "landsend.de": { - "rules": [ - { - "rule": "scnd.landsend.de", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "arcteryx.com": { - "rules": [ - { - "rule": "scs.arcteryx.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "felissimo.co.jp": { - "rules": [ - { - "rule": "sdcs.felissimo.co.jp", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "hagerty.ca": { - "rules": [ - { - "rule": "secu.hagerty.ca", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "hagerty.com": { - "rules": [ - { - "rule": "secu.hagerty.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "ihg.com": { - "rules": [ - { - "rule": "secure.analytics.ihg.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "unsw.edu.au": { - "rules": [ - { - "rule": "securedata.unsw.edu.au", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "esri.com": { - "rules": [ - { - "rule": "securetags.esri.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - }, - { - "rule": "go.esri.com/", - "domains": [ - "klove.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: go.pardot.com" - } - ] - }, - "panasonic.com": { - "rules": [ - { - "rule": "sgw-analytics.panasonic.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "ikea.com": { - "rules": [ - { - "rule": "sicas.ikea.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "ig.com": { - "rules": [ - { - "rule": "sig.ig.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "troweprice.com": { - "rules": [ - { - "rule": "sitecats.troweprice.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "aarp.org": { - "rules": [ - { - "rule": "sjourney.aarp.org", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - }, - { - "rule": "smetrics.aarp.org", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "penfed.org": { - "rules": [ - { - "rule": "sjourney.penfed.org", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - }, - { - "rule": "smetrics.penfed.org", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "dell.com": { - "rules": [ - { - "rule": "sm.dell.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - }, - { - "rule": "stt.dell.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "stjude.org": { - "rules": [ - { - "rule": "sm.stjude.org", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "betway.com": { - "rules": [ - { - "rule": "smetric.betway.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "hilton.com": { - "rules": [ - { - "rule": "smetric.hilton.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "malaysiaairlines.com": { - "rules": [ - { - "rule": "smetric.malaysiaairlines.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "schwab.com": { - "rules": [ - { - "rule": "smetric.schwab.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "trulia.com": { - "rules": [ - { - "rule": "smetric.trulia.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "ieee.org": { - "rules": [ - { - "rule": "smetrics-ieeexplore.ieee.org", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "10play.com.au": { - "rules": [ - { - "rule": "smetrics.10play.com.au", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "1800contacts.com": { - "rules": [ - { - "rule": "smetrics.1800contacts.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "24hourfitness.com": { - "rules": [ - { - "rule": "smetrics.24hourfitness.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "3m.com": { - "rules": [ - { - "rule": "smetrics.3m.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "activecommunities.com": { - "rules": [ - { - "rule": "smetrics.activecommunities.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "adage.com": { - "rules": [ - { - "rule": "smetrics.adage.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "playstation.com": { - "rules": [ - { - "rule": "smetrics.aem.playstation.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "aetn.com": { - "rules": [ - { - "rule": "smetrics.aetn.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "aircanada.com": { - "rules": [ - { - "rule": "smetrics.aircanada.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - }, - { - "rule": "starget.aircanada.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "airtv.net": { - "rules": [ - { - "rule": "smetrics.airtv.net", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "ajinomoto.co.jp": { - "rules": [ - { - "rule": "smetrics.ajinomoto.co.jp", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "allegion.com": { - "rules": [ - { - "rule": "smetrics.allegion.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "allstate.com": { - "rules": [ - { - "rule": "smetrics.allstate.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "ally.com": { - "rules": [ - { - "rule": "smetrics.ally.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "americancentury.com": { - "rules": [ - { - "rule": "smetrics.americancentury.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "amfam.com": { - "rules": [ - { - "rule": "smetrics.amfam.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "amica.com": { - "rules": [ - { - "rule": "smetrics.amica.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "ancestry.com": { - "rules": [ - { - "rule": "smetrics.ancestry.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "ansible.com": { - "rules": [ - { - "rule": "smetrics.ansible.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "anthem.com": { - "rules": [ - { - "rule": "smetrics.anthem.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "argenta.be": { - "rules": [ - { - "rule": "smetrics.argenta.be", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "atomic.com": { - "rules": [ - { - "rule": "smetrics.atomic.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "autodesk.com": { - "rules": [ - { - "rule": "smetrics.autodesk.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "avalara.com": { - "rules": [ - { - "rule": "smetrics.avalara.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "banamex.com": { - "rules": [ - { - "rule": "smetrics.banamex.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "bankatfirst.com": { - "rules": [ - { - "rule": "smetrics.bankatfirst.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "bbva.com.ar": { - "rules": [ - { - "rule": "smetrics.bbva.com.ar", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "bbva.es": { - "rules": [ - { - "rule": "smetrics.bbva.es", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "bbva.mx": { - "rules": [ - { - "rule": "smetrics.bbva.mx", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "bedbathandbeyond.com": { - "rules": [ - { - "rule": "smetrics.bedbathandbeyond.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "beefeater.co.uk": { - "rules": [ - { - "rule": "smetrics.beefeater.co.uk", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "belk.com": { - "rules": [ - { - "rule": "smetrics.belk.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "bestbuy.com": { - "rules": [ - { - "rule": "smetrics.bestbuy.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "bet.com": { - "rules": [ - { - "rule": "smetrics.bet.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "blair.com": { - "rules": [ - { - "rule": "smetrics.blair.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "bloombergtax.com": { - "rules": [ - { - "rule": "smetrics.bloombergtax.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "bmc.com": { - "rules": [ - { - "rule": "smetrics.bmc.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "bmo.com": { - "rules": [ - { - "rule": "smetrics.bmo.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - }, - { - "rule": "content22.bmo.com/", - "domains": [ - "citizensbankonline.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: online-metrix.net" - } - ] - }, - "bnymellon.com": { - "rules": [ - { - "rule": "smetrics.bnymellon.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "boozallen.com": { - "rules": [ - { - "rule": "smetrics.boozallen.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "boscovs.com": { - "rules": [ - { - "rule": "smetrics.boscovs.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "bostonglobe.com": { - "rules": [ - { - "rule": "smetrics.bostonglobe.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "brewersfayre.co.uk": { - "rules": [ - { - "rule": "smetrics.brewersfayre.co.uk", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "britishgas.co.uk": { - "rules": [ - { - "rule": "smetrics.britishgas.co.uk", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "brookdale.com": { - "rules": [ - { - "rule": "smetrics.brookdale.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "buffalotracedistillery.com": { - "rules": [ - { - "rule": "smetrics.buffalotracedistillery.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "builddirect.com": { - "rules": [ - { - "rule": "smetrics.builddirect.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "calvinklein.us": { - "rules": [ - { - "rule": "smetrics.calvinklein.us", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "capitalone.com": { - "rules": [ - { - "rule": "smetrics.capitalone.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "carfax.com": { - "rules": [ - { - "rule": "smetrics.carfax.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "carphonewarehouse.com": { - "rules": [ - { - "rule": "smetrics.carphonewarehouse.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "cars.com": { - "rules": [ - { - "rule": "smetrics.cars.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "cartersoshkosh.ca": { - "rules": [ - { - "rule": "smetrics.cartersoshkosh.ca", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "casio.com": { - "rules": [ - { - "rule": "smetrics.casio.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "casio.jp": { - "rules": [ - { - "rule": "smetrics.casio.jp", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "cbn.com": { - "rules": [ - { - "rule": "smetrics.cbn.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "cdiscount.com": { - "rules": [ - { - "rule": "smetrics.cdiscount.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "cedars-sinai.org": { - "rules": [ - { - "rule": "smetrics.cedars-sinai.org", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "centurylink.com": { - "rules": [ - { - "rule": "smetrics.centurylink.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "chicagobusiness.com": { - "rules": [ - { - "rule": "smetrics.chicagobusiness.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "christies.com": { - "rules": [ - { - "rule": "smetrics.christies.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "cisco.com": { - "rules": [ - { - "rule": "smetrics.cisco.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - }, - { - "rule": "target.cisco.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "cit.com": { - "rules": [ - { - "rule": "smetrics.cit.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "citibank.com.au": { - "rules": [ - { - "rule": "smetrics.citibank.com.au", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "citizensbank.com": { - "rules": [ - { - "rule": "smetrics.citizensbank.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "claris.com": { - "rules": [ - { - "rule": "smetrics.claris.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "cloudera.com": { - "rules": [ - { - "rule": "smetrics.cloudera.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "comenity.net": { - "rules": [ - { - "rule": "smetrics.comenity.net", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "consumerreports.org": { - "rules": [ - { - "rule": "smetrics.consumerreports.org", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "corus.ca": { - "rules": [ - { - "rule": "smetrics.corus.ca", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "costadelmar.com": { - "rules": [ - { - "rule": "smetrics.costadelmar.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "costco.com": { - "rules": [ - { - "rule": "smetrics.costco.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "countryfinancial.com": { - "rules": [ - { - "rule": "smetrics.countryfinancial.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "crainsdetroit.com": { - "rules": [ - { - "rule": "smetrics.crainsdetroit.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "deakin.edu.au": { - "rules": [ - { - "rule": "smetrics.deakin.edu.au", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - }, - { - "rule": "stt.deakin.edu.au", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "delta.com": { - "rules": [ - { - "rule": "smetrics.delta.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "demarini.com": { - "rules": [ - { - "rule": "smetrics.demarini.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "dickssportinggoods.com": { - "rules": [ - { - "rule": "smetrics.dickssportinggoods.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "discover.com": { - "rules": [ - { - "rule": "smetrics.discover.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - }, - { - "rule": "content.discover.com/", - "domains": [ - "citizensbankonline.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: online-metrix.net" - } - ] - }, - "dish.com": { - "rules": [ - { - "rule": "smetrics.dish.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "dominos.com": { - "rules": [ - { - "rule": "smetrics.dominos.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "elal.com": { - "rules": [ - { - "rule": "smetrics.elal.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "element14.com": { - "rules": [ - { - "rule": "smetrics.element14.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - }, - { - "rule": "target.element14.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "elsevier.com": { - "rules": [ - { - "rule": "smetrics.elsevier.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "enterprise.com": { - "rules": [ - { - "rule": "smetrics.enterprise.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "etihad.com": { - "rules": [ - { - "rule": "smetrics.etihad.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "eurowings.com": { - "rules": [ - { - "rule": "smetrics.eurowings.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "eversource.com": { - "rules": [ - { - "rule": "smetrics.eversource.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "express.com": { - "rules": [ - { - "rule": "smetrics.express.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "fcacert.com": { - "rules": [ - { - "rule": "smetrics.fcacert.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "fedex.com": { - "rules": [ - { - "rule": "smetrics.fedex.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "fieldandstreamshop.com": { - "rules": [ - { - "rule": "smetrics.fieldandstreamshop.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "flagstar.com": { - "rules": [ - { - "rule": "smetrics.flagstar.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "ford.com": { - "rules": [ - { - "rule": "smetrics.ford.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "foxbusiness.com": { - "rules": [ - { - "rule": "smetrics.foxbusiness.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "foxnews.com": { - "rules": [ - { - "rule": "smetrics.foxnews.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "fpl.com": { - "rules": [ - { - "rule": "smetrics.fpl.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "frontier.com": { - "rules": [ - { - "rule": "smetrics.frontier.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "gehealthcare.com": { - "rules": [ - { - "rule": "smetrics.gehealthcare.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "mandg.com": { - "rules": [ - { - "rule": "smetrics.global.mandg.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "nba.com": { - "rules": [ - { - "rule": "smetrics.global.nba.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "globaltv.com": { - "rules": [ - { - "rule": "smetrics.globaltv.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "golfgalaxy.com": { - "rules": [ - { - "rule": "smetrics.golfgalaxy.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "grainger.com": { - "rules": [ - { - "rule": "smetrics.grainger.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "grundfos.com": { - "rules": [ - { - "rule": "smetrics.grundfos.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "hbs.edu": { - "rules": [ - { - "rule": "smetrics.hbs.edu", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "healthengine.com.au": { - "rules": [ - { - "rule": "smetrics.healthengine.com.au", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - }, - { - "rule": "target.healthengine.com.au", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "healthpartners.com": { - "rules": [ - { - "rule": "smetrics.healthpartners.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "hellobank.fr": { - "rules": [ - { - "rule": "smetrics.hellobank.fr", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - }, - { - "rule": "content.espace-client.hellobank.fr/", - "domains": [ - "citizensbankonline.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: online-metrix.net" - } - ] - }, - "helvetia.com": { - "rules": [ - { - "rule": "smetrics.helvetia.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "herbalife.com": { - "rules": [ - { - "rule": "smetrics.herbalife.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "hollandamerica.com": { - "rules": [ - { - "rule": "smetrics.hollandamerica.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "homeadvisor.com": { - "rules": [ - { - "rule": "smetrics.homeadvisor.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "hpe.com": { - "rules": [ - { - "rule": "smetrics.hpe.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "hrblock.com": { - "rules": [ - { - "rule": "smetrics.hrblock.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "huntington.com": { - "rules": [ - { - "rule": "smetrics.huntington.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "hyundaiusa.com": { - "rules": [ - { - "rule": "smetrics.hyundaiusa.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "illumina.com": { - "rules": [ - { - "rule": "smetrics.illumina.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - }, - { - "rule": "prdt.illumina.com/", - "domains": [ - "klove.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: go.pardot.com" - } - ] - }, - "intact.ca": { - "rules": [ - { - "rule": "smetrics.intact.ca", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - }, - { - "rule": "target.intact.ca", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "jared.com": { - "rules": [ - { - "rule": "smetrics.jared.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "jcb.co.jp": { - "rules": [ - { - "rule": "smetrics.jcb.co.jp", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "jcpenney.com": { - "rules": [ - { - "rule": "smetrics.jcpenney.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - }, - { - "rule": "ttmetrics.jcpenney.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "jcrew.com": { - "rules": [ - { - "rule": "smetrics.jcrew.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "jjill.com": { - "rules": [ - { - "rule": "smetrics.jjill.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "joefresh.com": { - "rules": [ - { - "rule": "smetrics.joefresh.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "joules.com": { - "rules": [ - { - "rule": "smetrics.joules.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "kaercher.com": { - "rules": [ - { - "rule": "smetrics.kaercher.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "kaiserpermanente.org": { - "rules": [ - { - "rule": "smetrics.kaiserpermanente.org", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "kao.co.jp": { - "rules": [ - { - "rule": "smetrics.kao.co.jp", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "kao.com": { - "rules": [ - { - "rule": "smetrics.kao.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "kay.com": { - "rules": [ - { - "rule": "smetrics.kay.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "kayosports.com.au": { - "rules": [ - { - "rule": "smetrics.kayosports.com.au", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "kayoutlet.com": { - "rules": [ - { - "rule": "smetrics.kayoutlet.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "labaie.com": { - "rules": [ - { - "rule": "smetrics.labaie.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "landolakes.com": { - "rules": [ - { - "rule": "smetrics.landolakes.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "lanebryant.com": { - "rules": [ - { - "rule": "smetrics.lanebryant.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "latitudefinancial.com.au": { - "rules": [ - { - "rule": "smetrics.latitudefinancial.com.au", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "latrobe.edu.au": { - "rules": [ - { - "rule": "smetrics.latrobe.edu.au", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "libertymutual.com": { - "rules": [ - { - "rule": "smetrics.libertymutual.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "lifetime.life": { - "rules": [ - { - "rule": "smetrics.lifetime.life", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "loblaws.ca": { - "rules": [ - { - "rule": "smetrics.loblaws.ca", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "lululemon.com.au": { - "rules": [ - { - "rule": "smetrics.lululemon.com.au", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "manheim.com": { - "rules": [ - { - "rule": "smetrics.manheim.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "marksandspencer.com": { - "rules": [ - { - "rule": "smetrics.marksandspencer.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "marriott.com": { - "rules": [ - { - "rule": "smetrics.marriott.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "marshalls.com": { - "rules": [ - { - "rule": "smetrics.marshalls.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "mathworks.com": { - "rules": [ - { - "rule": "smetrics.mathworks.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - }, - { - "rule": "starget.mathworks.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "maurices.com": { - "rules": [ - { - "rule": "smetrics.maurices.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "mcdonalds.com": { - "rules": [ - { - "rule": "smetrics.mcdonalds.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "mercy.net": { - "rules": [ - { - "rule": "smetrics.mercy.net", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "metrobyt-mobile.com": { - "rules": [ - { - "rule": "smetrics.metrobyt-mobile.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "mgmresorts.com": { - "rules": [ - { - "rule": "smetrics.mgmresorts.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "michaels.com": { - "rules": [ - { - "rule": "smetrics.michaels.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "misumi-ec.com": { - "rules": [ - { - "rule": "smetrics.misumi-ec.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "mitsubishi-motors.co.jp": { - "rules": [ - { - "rule": "smetrics.mitsubishi-motors.co.jp", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "mitsubishi-motors.com.au": { - "rules": [ - { - "rule": "smetrics.mitsubishi-motors.com.au", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "moodys.com": { - "rules": [ - { - "rule": "smetrics.moodys.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "morganstanley.com": { - "rules": [ - { - "rule": "smetrics.morganstanley.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - }, - { - "rule": "starget.morganstanley.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "motorsportreg.com": { - "rules": [ - { - "rule": "smetrics.motorsportreg.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "motortrend.com": { - "rules": [ - { - "rule": "smetrics.motortrend.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "mrrooter.com": { - "rules": [ - { - "rule": "smetrics.mrrooter.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "msg.com": { - "rules": [ - { - "rule": "smetrics.msg.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "murata.com": { - "rules": [ - { - "rule": "smetrics.murata.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "nab.com.au": { - "rules": [ - { - "rule": "smetrics.nab.com.au", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "napaonline.com": { - "rules": [ - { - "rule": "smetrics.napaonline.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "nationwide.co.uk": { - "rules": [ - { - "rule": "smetrics.nationwide.co.uk", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "nesn.com": { - "rules": [ - { - "rule": "smetrics.nesn.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "newark.com": { - "rules": [ - { - "rule": "smetrics.newark.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - }, - { - "rule": "target.newark.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "nfl.com": { - "rules": [ - { - "rule": "smetrics.nfl.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "ni.com": { - "rules": [ - { - "rule": "smetrics.ni.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "nofrills.ca": { - "rules": [ - { - "rule": "smetrics.nofrills.ca", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "nvidia.com": { - "rules": [ - { - "rule": "smetrics.nvidia.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "nyulangone.org": { - "rules": [ - { - "rule": "smetrics.nyulangone.org", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "oakley.com": { - "rules": [ - { - "rule": "smetrics.oakley.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "oakleysi.com": { - "rules": [ - { - "rule": "smetrics.oakleysi.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "officeworks.com.au": { - "rules": [ - { - "rule": "smetrics.officeworks.com.au", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "oliverpeoples.com": { - "rules": [ - { - "rule": "smetrics.oliverpeoples.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "openshift.com": { - "rules": [ - { - "rule": "smetrics.openshift.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "opensource.com": { - "rules": [ - { - "rule": "smetrics.opensource.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "opsm.com.au": { - "rules": [ - { - "rule": "smetrics.opsm.com.au", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "optimum.net": { - "rules": [ - { - "rule": "smetrics.optimum.net", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "optum.com": { - "rules": [ - { - "rule": "smetrics.optum.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "pacsun.com": { - "rules": [ - { - "rule": "smetrics.pacsun.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "pandora.net": { - "rules": [ - { - "rule": "smetrics.pandora.net", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "pbteen.com": { - "rules": [ - { - "rule": "smetrics.pbteen.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "pcoptimum.ca": { - "rules": [ - { - "rule": "smetrics.pcoptimum.ca", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "persol.com": { - "rules": [ - { - "rule": "smetrics.persol.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "petco.com": { - "rules": [ - { - "rule": "smetrics.petco.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "politico.com": { - "rules": [ - { - "rule": "smetrics.politico.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "potterybarn.com": { - "rules": [ - { - "rule": "smetrics.potterybarn.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "potterybarnkids.com": { - "rules": [ - { - "rule": "smetrics.potterybarnkids.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "premera.com": { - "rules": [ - { - "rule": "smetrics.premera.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "princess.com": { - "rules": [ - { - "rule": "smetrics.princess.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "proximus.be": { - "rules": [ - { - "rule": "smetrics.proximus.be", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "quill.com": { - "rules": [ - { - "rule": "smetrics.quill.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "rac.co.uk": { - "rules": [ - { - "rule": "smetrics.rac.co.uk", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "rackroomshoes.com": { - "rules": [ - { - "rule": "smetrics.rackroomshoes.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "racv.com.au": { - "rules": [ - { - "rule": "smetrics.racv.com.au", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "ralphlauren.com": { - "rules": [ - { - "rule": "smetrics.ralphlauren.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "ray-ban.com": { - "rules": [ - { - "rule": "smetrics.ray-ban.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "rcsmetrics.it": { - "rules": [ - { - "rule": "smetrics.rcsmetrics.it", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "realcanadiansuperstore.ca": { - "rules": [ - { - "rule": "smetrics.realcanadiansuperstore.ca", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "realestate.com.au": { - "rules": [ - { - "rule": "smetrics.realestate.com.au", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "realtor.com": { - "rules": [ - { - "rule": "smetrics.realtor.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "redcross.org": { - "rules": [ - { - "rule": "smetrics.redcross.org", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "regions.com": { - "rules": [ - { - "rule": "smetrics.regions.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - }, - { - "rule": "tm.regions.com/", - "domains": [ - "citizensbankonline.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: online-metrix.net" - } - ] - }, - "rejuvenation.com": { - "rules": [ - { - "rule": "smetrics.rejuvenation.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "riteaid.com": { - "rules": [ - { - "rule": "smetrics.riteaid.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "rolex.com": { - "rules": [ - { - "rule": "smetrics.rolex.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "roomandboard.com": { - "rules": [ - { - "rule": "smetrics.roomandboard.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "royalcaribbean.com": { - "rules": [ - { - "rule": "smetrics.royalcaribbean.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "saksoff5th.com": { - "rules": [ - { - "rule": "smetrics.saksoff5th.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "salliemae.com": { - "rules": [ - { - "rule": "smetrics.salliemae.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "salomon.com": { - "rules": [ - { - "rule": "smetrics.salomon.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "samsung.com": { - "rules": [ - { - "rule": "smetrics.samsung.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - }, - { - "rule": "target-us.samsung.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "santander.co.uk": { - "rules": [ - { - "rule": "smetrics.santander.co.uk", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "sasktel.com": { - "rules": [ - { - "rule": "smetrics.sasktel.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "schwans.com": { - "rules": [ - { - "rule": "smetrics.schwans.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "sdcvisit.com": { - "rules": [ - { - "rule": "smetrics.sdcvisit.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "sephora.com": { - "rules": [ - { - "rule": "smetrics.sephora.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "shopmyexchange.com": { - "rules": [ - { - "rule": "smetrics.shopmyexchange.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "sky.com": { - "rules": [ - { - "rule": "smetrics.sky.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - }, - { - "rule": "idstatus.sky.com/", - "domains": [ - "citizensbankonline.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: online-metrix.net" - } - ] - }, - "sky.it": { - "rules": [ - { - "rule": "smetrics.sky.it", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "sling.com": { - "rules": [ - { - "rule": "smetrics.sling.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "solarwinds.com": { - "rules": [ - { - "rule": "smetrics.solarwinds.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "southwest.com": { - "rules": [ - { - "rule": "smetrics.southwest.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - }, - { - "rule": "soptimize.southwest.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "staples.com": { - "rules": [ - { - "rule": "smetrics.staples.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "startribune.com": { - "rules": [ - { - "rule": "smetrics.startribune.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "statefarm.com": { - "rules": [ - { - "rule": "smetrics.statefarm.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "statnews.com": { - "rules": [ - { - "rule": "smetrics.statnews.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "sunglasshut.com": { - "rules": [ - { - "rule": "smetrics.sunglasshut.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "sunlife.ca": { - "rules": [ - { - "rule": "smetrics.sunlife.ca", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - }, - { - "rule": "target.sunlife.ca", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "swinburne.edu.au": { - "rules": [ - { - "rule": "smetrics.swinburne.edu.au", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - }, - { - "rule": "target.swinburne.edu.au", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "t-mobile.com": { - "rules": [ - { - "rule": "smetrics.t-mobile.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "talbots.com": { - "rules": [ - { - "rule": "smetrics.talbots.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "te.com": { - "rules": [ - { - "rule": "smetrics.te.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "tedbaker.com": { - "rules": [ - { - "rule": "smetrics.tedbaker.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "tesco.com": { - "rules": [ - { - "rule": "smetrics.tesco.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "theathletesfoot.com.au": { - "rules": [ - { - "rule": "smetrics.theathletesfoot.com.au", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "thebay.com": { - "rules": [ - { - "rule": "smetrics.thebay.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "three.co.uk": { - "rules": [ - { - "rule": "smetrics.three.co.uk", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "tiaa.org": { - "rules": [ - { - "rule": "smetrics.tiaa.org", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - }, - { - "rule": "check3.tiaa.org/", - "domains": [ - "citizensbankonline.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: online-metrix.net" - } - ] - }, - "time.com": { - "rules": [ - { - "rule": "smetrics.time.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "tmz.com": { - "rules": [ - { - "rule": "smetrics.tmz.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "tommy.com": { - "rules": [ - { - "rule": "smetrics.tommy.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "toofab.com": { - "rules": [ - { - "rule": "smetrics.toofab.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "toyota.com": { - "rules": [ - { - "rule": "smetrics.toyota.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "tudorwatch.com": { - "rules": [ - { - "rule": "smetrics.tudorwatch.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "upc.ch": { - "rules": [ - { - "rule": "smetrics.upc.ch", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "usbank.com": { - "rules": [ - { - "rule": "smetrics.usbank.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "usopen.org": { - "rules": [ - { - "rule": "smetrics.usopen.org", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "virginatlantic.com": { - "rules": [ - { - "rule": "smetrics.virginatlantic.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "virginaustralia.com": { - "rules": [ - { - "rule": "smetrics.virginaustralia.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "visitsingapore.com": { - "rules": [ - { - "rule": "smetrics.visitsingapore.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - }, - { - "rule": "target.visitsingapore.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "vitacost.com": { - "rules": [ - { - "rule": "smetrics.vitacost.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "vodafone.co.uk": { - "rules": [ - { - "rule": "smetrics.vodafone.co.uk", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "vodafone.com.tr": { - "rules": [ - { - "rule": "smetrics.vodafone.com.tr", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "vonage.com": { - "rules": [ - { - "rule": "smetrics.vonage.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - }, - { - "rule": "ww3.business.vonage.com/", - "domains": [ - "klove.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: go.pardot.com" - } - ] - }, - "webex.com": { - "rules": [ - { - "rule": "smetrics.webex.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - }, - { - "rule": "tmetrics.webex.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "westelm.com": { - "rules": [ - { - "rule": "smetrics.westelm.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "westernaustralia.com": { - "rules": [ - { - "rule": "smetrics.westernaustralia.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "westernunion.com": { - "rules": [ - { - "rule": "smetrics.westernunion.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "westpac.com.au": { - "rules": [ - { - "rule": "smetrics.westpac.com.au", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "wgu.edu": { - "rules": [ - { - "rule": "smetrics.wgu.edu", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "williams-sonoma.com": { - "rules": [ - { - "rule": "smetrics.williams-sonoma.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "wilson.com": { - "rules": [ - { - "rule": "smetrics.wilson.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "wmg.com": { - "rules": [ - { - "rule": "smetrics.wmg.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "worldmarket.com": { - "rules": [ - { - "rule": "smetrics.worldmarket.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "wyndhamhotels.com": { - "rules": [ - { - "rule": "smetrics.wyndhamhotels.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "yellowpages.com.au": { - "rules": [ - { - "rule": "smetrics.yellowpages.com.au", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "zales.com": { - "rules": [ - { - "rule": "smetrics.zales.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "zalesoutlet.com": { - "rules": [ - { - "rule": "smetrics.zalesoutlet.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "ziplyfiber.com": { - "rules": [ - { - "rule": "smetrics.ziplyfiber.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "experian.com": { - "rules": [ - { - "rule": "smetrics1.experian.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "congress.gov": { - "rules": [ - { - "rule": "smon.congress.gov", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "loc.gov": { - "rules": [ - { - "rule": "smon.loc.gov", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "qantas.com": { - "rules": [ - { - "rule": "smtc.qantas.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "belfius.be": { - "rules": [ - { - "rule": "smtx.belfius.be", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "athenahealth.com": { - "rules": [ - { - "rule": "som.athenahealth.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "hotwire.com": { - "rules": [ - { - "rule": "som.hotwire.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "sears.com": { - "rules": [ - { - "rule": "som.sears.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "netapp.com": { - "rules": [ - { - "rule": "sometrics.netapp.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - }, - { - "rule": "target.netapp.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "accenture.com": { - "rules": [ - { - "rule": "somni.accenture.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - }, - { - "rule": "target.accenture.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "alaskaair.com": { - "rules": [ - { - "rule": "somni.alaskaair.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "bell.ca": { - "rules": [ - { - "rule": "somni.bell.ca", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "deere.com": { - "rules": [ - { - "rule": "somni.deere.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "dsw.com": { - "rules": [ - { - "rule": "somni.dsw.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "hardrockhotels.com": { - "rules": [ - { - "rule": "somni.hardrockhotels.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "home.saxo": { - "rules": [ - { - "rule": "somni.home.saxo", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "lightstream.com": { - "rules": [ - { - "rule": "somni.lightstream.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "nine.com.au": { - "rules": [ - { - "rule": "somni.nine.com.au", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "quickenloans.com": { - "rules": [ - { - "rule": "somni.quickenloans.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "rei.com": { - "rules": [ - { - "rule": "somni.rei.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "rockethomes.com": { - "rules": [ - { - "rule": "somni.rockethomes.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "rocketmortgage.com": { - "rules": [ - { - "rule": "somni.rocketmortgage.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "sky.de": { - "rules": [ - { - "rule": "somni.sky.de", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "sundancecatalog.com": { - "rules": [ - { - "rule": "somni.sundancecatalog.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "jetblue.com": { - "rules": [ - { - "rule": "somnistats.jetblue.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "scotiabank.com": { - "rules": [ - { - "rule": "somniture.scotiabank.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "honda.com": { - "rules": [ - { - "rule": "somt.honda.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "mitsubishicars.com": { - "rules": [ - { - "rule": "sreport.mitsubishicars.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "cc.com": { - "rules": [ - { - "rule": "ssc.cc.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "cmt.com": { - "rules": [ - { - "rule": "ssc.cmt.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "logotv.com": { - "rules": [ - { - "rule": "ssc.logotv.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "mtv.com": { - "rules": [ - { - "rule": "ssc.mtv.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "muji.net": { - "rules": [ - { - "rule": "ssc.muji.net", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "nick.com": { - "rules": [ - { - "rule": "ssc.nick.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "paramountnetwork.com": { - "rules": [ - { - "rule": "ssc.paramountnetwork.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "vh1.com": { - "rules": [ - { - "rule": "ssc.vh1.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "eset.com": { - "rules": [ - { - "rule": "ssitecat.eset.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "emedicinehealth.com": { - "rules": [ - { - "rule": "ssl.o.emedicinehealth.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "mdedge.com": { - "rules": [ - { - "rule": "ssl.o.mdedge.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "medhelp.org": { - "rules": [ - { - "rule": "ssl.o.medhelp.org", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "medicinenet.com": { - "rules": [ - { - "rule": "ssl.o.medicinenet.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "medscape.com": { - "rules": [ - { - "rule": "ssl.o.medscape.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "onhealth.com": { - "rules": [ - { - "rule": "ssl.o.onhealth.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "rxlist.com": { - "rules": [ - { - "rule": "ssl.o.rxlist.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "webmd.com": { - "rules": [ - { - "rule": "ssl.o.webmd.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "canadapost.ca": { - "rules": [ - { - "rule": "sslstats.canadapost.ca", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "nuro.jp": { - "rules": [ - { - "rule": "ssmr.nuro.jp", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "americafirst.com": { - "rules": [ - { - "rule": "sstats.americafirst.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "asadventure.com": { - "rules": [ - { - "rule": "sstats.asadventure.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "bever.nl": { - "rules": [ - { - "rule": "sstats.bever.nl", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "bitdefender.com": { - "rules": [ - { - "rule": "sstats.bitdefender.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - }, - { - "rule": "starget.bitdefender.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "bnpparibasfortis.be": { - "rules": [ - { - "rule": "sstats.bnpparibasfortis.be", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "cotswoldoutdoor.com": { - "rules": [ - { - "rule": "sstats.cotswoldoutdoor.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "deloitte.com": { - "rules": [ - { - "rule": "sstats.deloitte.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "fairmont.com": { - "rules": [ - { - "rule": "sstats.fairmont.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "fishersci.co.uk": { - "rules": [ - { - "rule": "sstats.fishersci.co.uk", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "investors.com": { - "rules": [ - { - "rule": "sstats.investors.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "kroger.com": { - "rules": [ - { - "rule": "sstats.kroger.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "mt.com": { - "rules": [ - { - "rule": "sstats.mt.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "pitchfork.com": { - "rules": [ - { - "rule": "sstats.pitchfork.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "runnersneed.com": { - "rules": [ - { - "rule": "sstats.runnersneed.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "scholastic.com": { - "rules": [ - { - "rule": "sstats.scholastic.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "snowandrock.com": { - "rules": [ - { - "rule": "sstats.snowandrock.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "tdameritrade.com": { - "rules": [ - { - "rule": "sstats.tdameritrade.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "truist.com": { - "rules": [ - { - "rule": "sstats.truist.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "o2.cz": { - "rules": [ - { - "rule": "sstats.www.o2.cz", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "airmiles.ca": { - "rules": [ - { - "rule": "starget.airmiles.ca", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "collegeboard.org": { - "rules": [ - { - "rule": "starget.collegeboard.org", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "panerabread.com": { - "rules": [ - { - "rule": "starget.panerabread.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "bushikaku.net": { - "rules": [ - { - "rule": "stat-ssl.bushikaku.net", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "webcg.net": { - "rules": [ - { - "rule": "stat-ssl.webcg.net", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "mdanderson.org": { - "rules": [ - { - "rule": "stats-ssl.mdanderson.org", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "agl.com.au": { - "rules": [ - { - "rule": "stats.agl.com.au", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "radio-canada.ca": { - "rules": [ - { - "rule": "stats.radio-canada.ca", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "tou.tv": { - "rules": [ - { - "rule": "stats.tou.tv", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "crutchfield.ca": { - "rules": [ - { - "rule": "stereos2s.crutchfield.ca", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "crutchfield.com": { - "rules": [ - { - "rule": "stereos2s.crutchfield.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "masters.com": { - "rules": [ - { - "rule": "sticketsmetrics.masters.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "bestbuy.ca": { - "rules": [ - { - "rule": "strack.bestbuy.ca", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "rogers.com": { - "rules": [ - { - "rule": "stracking.rogers.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "pluralsight.com": { - "rules": [ - { - "rule": "stt.pluralsight.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "unicredit.it": { - "rules": [ - { - "rule": "sucmetrics.unicredit.it", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "abc.com": { - "rules": [ - { - "rule": "sw88.abc.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "disney.co.uk": { - "rules": [ - { - "rule": "sw88.disney.co.uk", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "disney.de": { - "rules": [ - { - "rule": "sw88.disney.de", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "disneynow.com": { - "rules": [ - { - "rule": "sw88.disneynow.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "espn.com": { - "rules": [ - { - "rule": "sw88.espn.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "go.com": { - "rules": [ - { - "rule": "sw88.go.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "nationalgeographic.com": { - "rules": [ - { - "rule": "sw88.nationalgeographic.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "asnbank.nl": { - "rules": [ - { - "rule": "swa.asnbank.nl", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "bol.com": { - "rules": [ - { - "rule": "swa.bol.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "regiobank.nl": { - "rules": [ - { - "rule": "swa.regiobank.nl", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "st.com": { - "rules": [ - { - "rule": "swa.st.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "wowcher.co.uk": { - "rules": [ - { - "rule": "swa.wowcher.co.uk", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "homedepot.ca": { - "rules": [ - { - "rule": "swasc.homedepot.ca", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "pgatour.com": { - "rules": [ - { - "rule": "swebanalytics.pgatour.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "ok.gov": { - "rules": [ - { - "rule": "swebmetrics.ok.gov", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "zebra.com": { - "rules": [ - { - "rule": "swebmetrics.zebra.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "nature.org": { - "rules": [ - { - "rule": "swebreports.nature.org", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "alfaromeousa.com": { - "rules": [ - { - "rule": "target.alfaromeousa.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "ansys.com": { - "rules": [ - { - "rule": "target.ansys.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "bankwest.com.au": { - "rules": [ - { - "rule": "target.bankwest.com.au", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "centerpointenergy.com": { - "rules": [ - { - "rule": "target.centerpointenergy.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "chase.com": { - "rules": [ - { - "rule": "target.chase.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "chrysler.com": { - "rules": [ - { - "rule": "target.chrysler.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "css.ch": { - "rules": [ - { - "rule": "target.css.ch", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "dodge.com": { - "rules": [ - { - "rule": "target.dodge.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "fiatusa.com": { - "rules": [ - { - "rule": "target.fiatusa.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "hsn.com": { - "rules": [ - { - "rule": "target.hsn.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "jeep.com": { - "rules": [ - { - "rule": "target.jeep.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "key.com": { - "rules": [ - { - "rule": "target.key.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "microsoft.com": { - "rules": [ - { - "rule": "target.microsoft.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "nationwide.com": { - "rules": [ - { - "rule": "target.nationwide.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "nejm.org": { - "rules": [ - { - "rule": "target.nejm.org", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "nfm.com": { - "rules": [ - { - "rule": "target.nfm.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "questdiagnostics.com": { - "rules": [ - { - "rule": "target.questdiagnostics.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "ramtrucks.com": { - "rules": [ - { - "rule": "target.ramtrucks.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "sportsmansguide.com": { - "rules": [ - { - "rule": "target.sportsmansguide.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "synergy.net.au": { - "rules": [ - { - "rule": "target.synergy.net.au", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "thegrocer.co.uk": { - "rules": [ - { - "rule": "target.thegrocer.co.uk", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "veeam.com": { - "rules": [ - { - "rule": "target.veeam.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "walgreens.com": { - "rules": [ - { - "rule": "target.walgreens.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "kohler.com": { - "rules": [ - { - "rule": "targetsecure.kohler.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "ibm.com": { - "rules": [ - { - "rule": "tgt.maep.ibm.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "kaspersky.com": { - "rules": [ - { - "rule": "tr2.kaspersky.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "popsugar.com": { - "rules": [ - { - "rule": "ts.popsugar.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "americanbar.org": { - "rules": [ - { - "rule": "webstats.americanbar.org", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "logitech.com": { - "rules": [ - { - "rule": "webtarget.logitech.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "logitechg.com": { - "rules": [ - { - "rule": "webtarget.logitechg.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "kohls.com": { - "rules": [ - { - "rule": "ww8.kohls.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "intel.co.jp": { - "rules": [ - { - "rule": "www91.intel.co.jp", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "intel.co.uk": { - "rules": [ - { - "rule": "www91.intel.co.uk", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "intel.com": { - "rules": [ - { - "rule": "www91.intel.com", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "intel.com.br": { - "rules": [ - { - "rule": "www91.intel.com.br", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "intel.de": { - "rules": [ - { - "rule": "www91.intel.de", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "intel.es": { - "rules": [ - { - "rule": "www91.intel.es", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "intel.fr": { - "rules": [ - { - "rule": "www91.intel.fr", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "intel.it": { - "rules": [ - { - "rule": "www91.intel.it", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "intel.la": { - "rules": [ - { - "rule": "www91.intel.la", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "huk.de": { - "rules": [ - { - "rule": "xps.huk.de", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "huk24.de": { - "rules": [ - { - "rule": "xps.huk24.de", - "domains": [ - "pizzahut.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: omtrdc.net" - } - ] - }, - "gusto.com": { - "rules": [ - { - "rule": "cdn.gusto.com/", - "domains": [ - "citizensbankonline.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: online-metrix.net" - } - ] - }, - "f-cdn.com": { - "rules": [ - { - "rule": "cdn1.f-cdn.com/", - "domains": [ - "citizensbankonline.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: online-metrix.net" - } - ] - }, - "fidelity.com": { - "rules": [ - { - "rule": "cfa.fidelity.com/", - "domains": [ - "citizensbankonline.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: online-metrix.net" - } - ] - }, - "mystreetscape.com": { - "rules": [ - { - "rule": "cfa.mystreetscape.com/", - "domains": [ - "citizensbankonline.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: online-metrix.net" - } - ] - }, - "tiaabank.com": { - "rules": [ - { - "rule": "check3.tiaabank.com/", - "domains": [ - "citizensbankonline.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: online-metrix.net" - } - ] - }, - "wallapop.com": { - "rules": [ - { - "rule": "clear.wallapop.com/", - "domains": [ - "citizensbankonline.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: online-metrix.net" - } - ] - }, - "atmosphere.ca": { - "rules": [ - { - "rule": "content.atmosphere.ca/", - "domains": [ - "citizensbankonline.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: online-metrix.net" - } - ] - }, - "canadiantire.ca": { - "rules": [ - { - "rule": "content.canadiantire.ca/", - "domains": [ - "citizensbankonline.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: online-metrix.net" - } - ] - }, - "citizensbankonline.com": { - "rules": [ - { - "rule": "content.citizensbankonline.com/", - "domains": [ - "citizensbankonline.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: online-metrix.net" - } - ] - }, - "gap.com": { - "rules": [ - { - "rule": "content.gap.com/", - "domains": [ - "citizensbankonline.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: online-metrix.net" - } - ] - }, - "marks.com": { - "rules": [ - { - "rule": "content.marks.com/", - "domains": [ - "citizensbankonline.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: online-metrix.net" - } - ] - }, - "quicken.com": { - "rules": [ - { - "rule": "content.quicken.com/", - "domains": [ - "citizensbankonline.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: online-metrix.net" - } - ] - }, - "sportchek.ca": { - "rules": [ - { - "rule": "content.sportchek.ca/", - "domains": [ - "citizensbankonline.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: online-metrix.net" - } - ] - }, - "homedepot.com": { - "rules": [ - { - "rule": "customer.homedepot.com/", - "domains": [ - "citizensbankonline.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: online-metrix.net" - } - ] - }, - "my100bank.com": { - "rules": [ - { - "rule": "debs.my100bank.com/", - "domains": [ - "citizensbankonline.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: online-metrix.net" - } - ] - }, - "santanderbank.com": { - "rules": [ - { - "rule": "digitalid.santanderbank.com/", - "domains": [ - "citizensbankonline.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: online-metrix.net" - } - ] - }, - "authorize.net": { - "rules": [ - { - "rule": "dpf.authorize.net/", - "domains": [ - "citizensbankonline.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: online-metrix.net" - } - ] - }, - "53.com": { - "rules": [ - { - "rule": "event.evtm.53.com/", - "domains": [ - "citizensbankonline.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: online-metrix.net" - } - ] - }, - "adp.com": { - "rules": [ - { - "rule": "image.online.adp.com/", - "domains": [ - "citizensbankonline.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: online-metrix.net" - } - ] - }, - "cdscdn.com": { - "rules": [ - { - "rule": "imagesmx.cdscdn.com/", - "domains": [ - "citizensbankonline.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: online-metrix.net" - } - ] - }, - "myfrs.com": { - "rules": [ - { - "rule": "metrics.myfrs.com/", - "domains": [ - "citizensbankonline.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: online-metrix.net" - } - ] - }, - "ameriprise.com": { - "rules": [ - { - "rule": "ocs.ameriprise.com/", - "domains": [ - "citizensbankonline.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: online-metrix.net" - } - ] - }, - "spectrum.net": { - "rules": [ - { - "rule": "pov.spectrum.net/", - "domains": [ - "citizensbankonline.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: online-metrix.net" - } - ] - }, - "betfair.com": { - "rules": [ - { - "rule": "regstat.betfair.com/", - "domains": [ - "citizensbankonline.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: online-metrix.net" - } - ] - }, - "liveme.com": { - "rules": [ - { - "rule": "sc.liveme.com/", - "domains": [ - "citizensbankonline.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: online-metrix.net" - } - ] - }, - "pilates.com": { - "rules": [ - { - "rule": "sptbb.pilates.com/", - "domains": [ - "citizensbankonline.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: online-metrix.net" - } - ] - }, - "ebay-us.com": { - "rules": [ - { - "rule": "src.ebay-us.com/", - "domains": [ - "citizensbankonline.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: online-metrix.net" - } - ] - }, - "tacdn.com": { - "rules": [ - { - "rule": "t1.tacdn.com/", - "domains": [ - "citizensbankonline.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: online-metrix.net" - } - ] - }, - "beachbody.com": { - "rules": [ - { - "rule": "tm.beachbody.com/", - "domains": [ - "citizensbankonline.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: online-metrix.net" - } - ] - }, - "td.com": { - "rules": [ - { - "rule": "tmx.td.com/", - "domains": [ - "citizensbankonline.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: online-metrix.net" - } - ] - }, - "simplii.com": { - "rules": [ - { - "rule": "w-profiling.simplii.com/", - "domains": [ - "citizensbankonline.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: online-metrix.net" - } - ] - }, - "nsbank.com": { - "rules": [ - { - "rule": "w3.nsbank.com/", - "domains": [ - "citizensbankonline.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: online-metrix.net" - } - ] - }, - "joindeleteme.com": { - "rules": [ - { - "rule": "b2b.joindeleteme.com/", - "domains": [ - "klove.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: go.pardot.com" - } - ] - }, - "usgbc.org": { - "rules": [ - { - "rule": "build.usgbc.org/", - "domains": [ - "klove.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: go.pardot.com" - } - ] - }, - "nielsen.com": { - "rules": [ - { - "rule": "content.nielsen.com/", - "domains": [ - "klove.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: go.pardot.com" - } - ] - }, - "president.jp": { - "rules": [ - { - "rule": "corp.president.jp/", - "domains": [ - "klove.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: go.pardot.com" - } - ] - }, - "ap.org": { - "rules": [ - { - "rule": "discover.ap.org/", - "domains": [ - "klove.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: go.pardot.com" - } - ] - }, - "selinc.com": { - "rules": [ - { - "rule": "discover.selinc.com/", - "domains": [ - "klove.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: go.pardot.com" - } - ] - }, - "discovery.org": { - "rules": [ - { - "rule": "dot.discovery.org/", - "domains": [ - "klove.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: go.pardot.com" - } - ] - }, - "baesystems.com": { - "rules": [ - { - "rule": "events.baesystems.com/", - "domains": [ - "klove.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: go.pardot.com" - } - ] - }, - "harvard.edu": { - "rules": [ - { - "rule": "execed2.sph.harvard.edu/", - "domains": [ - "klove.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: go.pardot.com" - } - ] - }, - "adflegal.org": { - "rules": [ - { - "rule": "go.adflegal.org/", - "domains": [ - "klove.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: go.pardot.com" - } - ] - }, - "adspipe.com": { - "rules": [ - { - "rule": "go.adspipe.com/", - "domains": [ - "klove.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: go.pardot.com" - } - ] - }, - "adventure-life.com": { - "rules": [ - { - "rule": "go.adventure-life.com/", - "domains": [ - "klove.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: go.pardot.com" - } - ] - }, - "brennancenter.org": { - "rules": [ - { - "rule": "go.brennancenter.org/", - "domains": [ - "klove.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: go.pardot.com" - } - ] - }, - "cdata.com": { - "rules": [ - { - "rule": "go.cdata.com/", - "domains": [ - "klove.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: go.pardot.com" - } - ] - }, - "concernusa.org": { - "rules": [ - { - "rule": "go.concernusa.org/", - "domains": [ - "klove.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: go.pardot.com" - } - ] - }, - "herzing.edu": { - "rules": [ - { - "rule": "go.connect.herzing.edu/", - "domains": [ - "klove.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: go.pardot.com" - } - ] - }, - "costar.com": { - "rules": [ - { - "rule": "go.costar.com/", - "domains": [ - "klove.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: go.pardot.com" - } - ] - }, - "estes-express.com": { - "rules": [ - { - "rule": "go.estes-express.com/", - "domains": [ - "klove.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: go.pardot.com" - } - ] - }, - "goldbullionaustralia.com.au": { - "rules": [ - { - "rule": "go.goldbullionaustralia.com.au/", - "domains": [ - "klove.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: go.pardot.com" - } - ] - }, - "hustlerturf.com": { - "rules": [ - { - "rule": "go.hustlerturf.com/", - "domains": [ - "klove.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: go.pardot.com" - } - ] - }, - "iocdf.org": { - "rules": [ - { - "rule": "go.iocdf.org/", - "domains": [ - "klove.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: go.pardot.com" - } - ] - }, - "jinjibu.jp": { - "rules": [ - { - "rule": "go.jinjibu.jp/", - "domains": [ - "klove.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: go.pardot.com" - } - ] - }, - "kirkelliottphd.com": { - "rules": [ - { - "rule": "go.kirkelliottphd.com/", - "domains": [ - "klove.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: go.pardot.com" - } - ] - }, - "lifefitness.com": { - "rules": [ - { - "rule": "go.lifefitness.com/", - "domains": [ - "klove.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: go.pardot.com" - } - ] - }, - "mobilityworks.com": { - "rules": [ - { - "rule": "go.mobilityworks.com/", - "domains": [ - "klove.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: go.pardot.com" - } - ] - }, - "newport.com": { - "rules": [ - { - "rule": "go.newport.com/", - "domains": [ - "klove.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: go.pardot.com" - } - ] - }, - "panasonic.biz": { - "rules": [ - { - "rule": "go.panasonic.biz/", - "domains": [ - "klove.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: go.pardot.com" - } - ] - }, - "ripple.com": { - "rules": [ - { - "rule": "go.ripple.com/", - "domains": [ - "klove.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: go.pardot.com" - } - ] - }, - "rubbermaidcommercial.com": { - "rules": [ - { - "rule": "go.rubbermaidcommercial.com/", - "domains": [ - "klove.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: go.pardot.com" - } - ] - }, - "strongtie.com": { - "rules": [ - { - "rule": "go.strongtie.com/", - "domains": [ - "klove.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: go.pardot.com" - } - ] - }, - "thirdspacelearning.com": { - "rules": [ - { - "rule": "go.thirdspacelearning.com/", - "domains": [ - "klove.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: go.pardot.com" - } - ] - }, - "iata.org": { - "rules": [ - { - "rule": "go.updates.iata.org/", - "domains": [ - "klove.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: go.pardot.com" - } - ] - }, - "uslawshield.com": { - "rules": [ - { - "rule": "go.uslawshield.com/", - "domains": [ - "klove.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: go.pardot.com" - } - ] - }, - "signalboosters.com": { - "rules": [ - { - "rule": "go2.signalboosters.com/", - "domains": [ - "klove.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: go.pardot.com" - } - ] - }, - "panasonic.jp": { - "rules": [ - { - "rule": "gohs.panasonic.jp/", - "domains": [ - "klove.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: go.pardot.com" - } - ] - }, - "rescue.org": { - "rules": [ - { - "rule": "gorm.rescue.org/", - "domains": [ - "klove.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: go.pardot.com" - } - ] - }, - "affirm.com": { - "rules": [ - { - "rule": "info.affirm.com/", - "domains": [ - "klove.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: go.pardot.com" - } - ] - }, - "bldr.com": { - "rules": [ - { - "rule": "info.bldr.com/", - "domains": [ - "klove.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: go.pardot.com" - } - ] - }, - "factsmgt.com": { - "rules": [ - { - "rule": "info.factsmgt.com/", - "domains": [ - "klove.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: go.pardot.com" - } - ] - }, - "ledvanceus.com": { - "rules": [ - { - "rule": "info.ledvanceus.com/", - "domains": [ - "klove.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: go.pardot.com" - } - ] - }, - "msci.com": { - "rules": [ - { - "rule": "info.msci.com/", - "domains": [ - "klove.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: go.pardot.com" - } - ] - }, - "thebulletin.org": { - "rules": [ - { - "rule": "info.thebulletin.org/", - "domains": [ - "klove.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: go.pardot.com" - } - ] - }, - "viewsonic.com": { - "rules": [ - { - "rule": "info.viewsonic.com/", - "domains": [ - "klove.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: go.pardot.com" - } - ] - }, - "renasantbank.com": { - "rules": [ - { - "rule": "insights.renasantbank.com/", - "domains": [ - "klove.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: go.pardot.com" - } - ] - }, - "caring.com": { - "rules": [ - { - "rule": "launch.caring.com/", - "domains": [ - "klove.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: go.pardot.com" - } - ] - }, - "epson.com.au": { - "rules": [ - { - "rule": "marketing-sf.epson.com.au/", - "domains": [ - "klove.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: go.pardot.com" - } - ] - }, - "globalsign.com": { - "rules": [ - { - "rule": "media.globalsign.com/", - "domains": [ - "klove.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: go.pardot.com" - } - ] - }, - "tatlerasia.com": { - "rules": [ - { - "rule": "media2.tatlerasia.com/", - "domains": [ - "klove.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: go.pardot.com" - } - ] - }, - "schrott24.de": { - "rules": [ - { - "rule": "metal.schrott24.de/", - "domains": [ - "klove.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: go.pardot.com" - } - ] - }, - "fujitsu.com": { - "rules": [ - { - "rule": "mkt-europe.global.fujitsu.com/", - "domains": [ - "klove.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: go.pardot.com" - } - ] - }, - "tokyoweekender.com": { - "rules": [ - { - "rule": "mkt.tokyoweekender.com/", - "domains": [ - "klove.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: go.pardot.com" - } - ] - }, - "northside.com": { - "rules": [ - { - "rule": "onechartmail.northside.com/", - "domains": [ - "klove.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: go.pardot.com" - } - ] - }, - "11880.com": { - "rules": [ - { - "rule": "pdt.11880.com/", - "domains": [ - "klove.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: go.pardot.com" - } - ] - }, - "redlightguide.com": { - "rules": [ - { - "rule": "pdt.redlightguide.com/", - "domains": [ - "klove.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: go.pardot.com" - } - ] - }, - "werkenntdenbesten.de": { - "rules": [ - { - "rule": "pdt.werkenntdenbesten.de/", - "domains": [ - "klove.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: go.pardot.com" - } - ] - }, - "xserver.ne.jp": { - "rules": [ - { - "rule": "prm.xserver.ne.jp/", - "domains": [ - "klove.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: go.pardot.com" - } - ] - }, - "brother.ca": { - "rules": [ - { - "rule": "resellersales.brother.ca/", - "domains": [ - "klove.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: go.pardot.com" - } - ] - }, - "chemie.de": { - "rules": [ - { - "rule": "t.chemie.de/", - "domains": [ - "klove.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: go.pardot.com" - } - ] - }, - "ntt.com": { - "rules": [ - { - "rule": "www.bizsol.ntt.com/", - "domains": [ - "klove.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: go.pardot.com" - } - ] - }, - "shredit.com": { - "rules": [ - { - "rule": "www.email.shredit.com/", - "domains": [ - "klove.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: go.pardot.com" - } - ] - }, - "ergotron.com": { - "rules": [ - { - "rule": "www2.ergotron.com/", - "domains": [ - "klove.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: go.pardot.com" - } - ] - }, - "evsmetal.com": { - "rules": [ - { - "rule": "www2.evsmetal.com/", - "domains": [ - "klove.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: go.pardot.com" - } - ] - }, - "aruhi-corp.co.jp": { - "rules": [ - { - "rule": "www2.go.aruhi-corp.co.jp/", - "domains": [ - "klove.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: go.pardot.com" - } - ] - }, - "sharecare.com": { - "rules": [ - { - "rule": "www2.sharecare.com/", - "domains": [ - "klove.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: go.pardot.com" - } - ] - }, - "kidney.org": { - "rules": [ - { - "rule": "www3.kidney.org/", - "domains": [ - "klove.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: go.pardot.com" - } - ] - }, - "sma.de": { - "rules": [ - { - "rule": "www3.sma.de/", - "domains": [ - "klove.com" - ], - "reason": "CNAME ENTRY GENERATED FROM: go.pardot.com" + "reason": "CNAME ENTRY GENERATED FROM: qualtrics.com" } ] } } }, "exceptions": [], - "hash": "9dbcc2f941ef7eef745249baddd6b2f0" + "hash": "331ee3a6561d1cf6a042fd47770e0ceb" }, "trackingCookies1p": { "settings": { @@ -14041,302 +6359,38 @@ "hash": "5d33a7d6a3f780d2e07076e209a5bccb" }, "webCompat": { - "exceptions": [ - { - "domain": "lastpass.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/533" - }, - { - "domain": "forums.swift.org", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/519" - }, - { - "domain": "twittercommunity.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/519" - }, - { - "domain": "forum.asana.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/519" - }, - { - "domain": "community.developer.atlassian.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/519" - }, - { - "domain": "meta.discourse.org", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/519" - }, - { - "domain": "community.smartthings.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/519" - }, - { - "domain": "forum.figma.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/519" - }, - { - "domain": "bbs.boingboing.net", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/519" - }, - { - "domain": "devforum.zoom.us", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/519" - }, - { - "domain": "forum.uipath.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/519" - }, - { - "domain": "discuss.elastic.co", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/519" - }, - { - "domain": "forums.envato.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/519" - }, - { - "domain": "discuss.newrelic.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/519" - }, - { - "domain": "community.wd.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/519" - }, - { - "domain": "forums.wyzecam.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/519" - }, - { - "domain": "community.anker.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/519" - }, - { - "domain": "www.trainerroad.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/519" - }, - { - "domain": "www.sitepoint.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/519" - }, - { - "domain": "comunidade.nubank.com.br", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/519" - }, - { - "domain": "community.monzo.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/519" - }, - { - "domain": "community.wirexapp.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/519" - }, - { - "domain": "community.freetrade.io", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/519" - }, - { - "domain": "forums.unrealengine.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/519" - }, - { - "domain": "forums.funcom.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/519" - }, - { - "domain": "community.infiniteflight.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/519" - }, - { - "domain": "forums.eveonline.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/519" - }, - { - "domain": "community.metamask.io", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/519" - }, - { - "domain": "forum.algorand.org", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/519" - }, - { - "domain": "forum.cardano.org", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/519" - }, - { - "domain": "forums.solana.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/519" - }, - { - "domain": "developers.chia.net", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/519" - }, - { - "domain": "community.cartalk.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/519" - }, - { - "domain": "www.thefantasyfootballers.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/519" - }, - { - "domain": "www.twit.community", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/519" - }, - { - "domain": "commons.commondreams.org", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/519" - }, - { - "domain": "boards.straightdope.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/519" - }, - { - "domain": "forum.gitlab.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/519" - }, - { - "domain": "discuss.rubyonrails.org", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/519" - }, - { - "domain": "forums.docker.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/519" - }, - { - "domain": "community.brave.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/519" - }, - { - "domain": "discuss.emberjs.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/519" - }, - { - "domain": "forum.glamour.de", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/519" - }, - { - "domain": "forums.cfl.ca", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/519" - }, - { - "domain": "soaps.sheknows.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/519" - }, - { - "domain": "forum.mssociety.org.uk", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/519" - }, - { - "domain": "forum.schizophrenia.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/519" - }, - { - "domain": "forum.octopus.energy", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/519" - }, - { - "domain": "forum.level1techs.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/519" - }, - { - "domain": "forums.zwift.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/519" - }, - { - "domain": "forums.plex.tv", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/519" - }, - { - "domain": "forum.arduino.cc", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/519" - }, - { - "domain": "forum.restic.net", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/519" - }, - { - "domain": "forum.openwrt.org", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/519" - }, - { - "domain": "www.horlogeforum.nl", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/519" - }, - { - "domain": "forum.infinityfree.net", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/519" - }, - { - "domain": "forum.manjaro.org", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/519" - }, - { - "domain": "forum.projectpanoptes.org", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/519" - }, - { - "domain": "forum.obsidian.md", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/519" - }, - { - "domain": "us.forums.blizzard.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/519" - }, - { - "domain": "community.home-assistant.io", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/519" - }, - { - "domain": "community.openfl.org", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/519" - }, - { - "domain": "community.sonarsource.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/519" - }, - { - "domain": "ubuntu-mate.community", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/519" - }, - { - "domain": "community.letsencrypt.org", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/519" - }, - { - "domain": "community.naimaudio.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/519" - }, - { - "domain": "community.ipfire.org", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/519" - }, - { - "domain": "community.squirrelsquadron.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/519" - }, - { - "domain": "community.signalusers.org", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/519" - }, - { - "domain": "community.haxe.org", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/519" - }, - { - "domain": "community.grafana.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/519" - }, - { - "domain": "community.octoprint.org", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/519" + "exceptions": [], + "state": "enabled", + "settings": { + "windowSizing": "disabled", + "navigatorCredentials": "disabled", + "safariObject": "disabled", + "messageHandlers": { + "state": "disabled", + "handlerStrategies": { + "reflect": [ + "trackerDetectedMessage" + ], + "polyfill": [ + "*" + ], + "undefined": [] + } }, - { - "domain": "community.bitwarden.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/519" - } - ], - "state": "disabled", - "hash": "2c9337d1278978467568a7f8f0162022" + "domains": [ + { + "domain": "www.cbsnews.com", + "patchSettings": [ + { + "op": "replace", + "path": "/messageHandlers/state", + "value": "enabled" + } + ] + } + ] + }, + "hash": "650c1ae0aed87711da676d0868f4885e" }, "windowsPermissionUsage": { "exceptions": [], @@ -14364,12 +6418,16 @@ "reason": "https://github.com/duckduckgo/privacy-configuration/issues/794" }, { - "domain": "ticketmaster.com", + "domain": "earth.google.com", + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1099" + }, + { + "domain": "iscorp.com", "reason": "https://github.com/duckduckgo/privacy-configuration/issues/794" }, { - "domain": "livenation.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1053" + "domain": "marvel.com", + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1194" }, { "domain": "bank.marksandspencer.com", @@ -14378,6 +6436,14 @@ { "domain": "www7.marksandspencer.com", "reason": "https://github.com/duckduckgo/privacy-configuration/issues/794" + }, + { + "domain": "paramountplus.com", + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1085" + }, + { + "domain": "vinted.fr", + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/794" } ] } \ No newline at end of file diff --git a/Core/trackerData.json b/Core/trackerData.json index 86fd467fa3..f32f54c808 100644 --- a/Core/trackerData.json +++ b/Core/trackerData.json @@ -1,6 +1,6 @@ { "_builtWith": { - "tracker-radar": "4013b4e91930c643394cb31c6c745356f133b04f", + "tracker-radar": "1ac9fed9a2a95c5029ed64ca548745e720ff5f4970907d2a4f3a2a52db5fc20c-4013b4e91930c643394cb31c6c745356f133b04f", "tracker-surrogates": "d61691a2fdf9f4dc062a8d248fd1e78c20b5b892" }, "readme": "https://github.com/duckduckgo/tracker-blocklists", @@ -89,9 +89,9 @@ "fingerprinting": 0, "cookies": 0.1, "categories": [ + "Ad Fraud", "Ad Motivated Tracking", "Advertising", - "Ad Fraud", "Third-Party Analytics Marketing" ], "default": "block" @@ -132,9 +132,9 @@ "fingerprinting": 1, "cookies": 0.0000272, "categories": [ + "Ad Fraud", "Ad Motivated Tracking", - "Advertising", - "Ad Fraud" + "Advertising" ], "default": "ignore", "rules": [ @@ -196,11 +196,11 @@ "fingerprinting": 1, "cookies": 0.00259, "categories": [ + "Action Pixels", "Ad Motivated Tracking", "Analytics", "Audience Measurement", - "Third-Party Analytics Marketing", - "Action Pixels" + "Third-Party Analytics Marketing" ], "default": "block", "rules": [ @@ -239,10 +239,10 @@ "fingerprinting": 1, "cookies": 0.0875, "categories": [ + "Action Pixels", "Ad Motivated Tracking", "Advertising", - "Analytics", - "Action Pixels" + "Analytics" ], "default": "block" }, @@ -482,7 +482,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -493,7 +493,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -509,8 +509,8 @@ "cookies": 0.00223, "categories": [ "Analytics", - "Third-Party Analytics Marketing", - "Session Replay" + "Session Replay", + "Third-Party Analytics Marketing" ], "default": "block" }, @@ -539,7 +539,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -784,9 +784,9 @@ "Advertising", "Analytics", "Audience Measurement", - "Third-Party Analytics Marketing", + "Embedded Content", "Social - Share", - "Embedded Content" + "Third-Party Analytics Marketing" ], "default": "block", "rules": [ @@ -818,9 +818,9 @@ "Ad Motivated Tracking", "Advertising", "Analytics", - "Third-Party Analytics Marketing", + "Embedded Content", "Social - Share", - "Embedded Content" + "Third-Party Analytics Marketing" ], "default": "block" }, @@ -854,9 +854,9 @@ "fingerprinting": 0, "cookies": 0.00106, "categories": [ + "Ad Fraud", "Ad Motivated Tracking", - "Advertising", - "Ad Fraud" + "Advertising" ], "default": "block" }, @@ -906,9 +906,9 @@ "fingerprinting": 2, "cookies": 0.0808, "categories": [ + "Ad Fraud", "Ad Motivated Tracking", "Advertising", - "Ad Fraud", "Audience Measurement" ], "default": "block" @@ -1009,9 +1009,9 @@ "fingerprinting": 0, "cookies": 0.0589, "categories": [ + "Ad Fraud", "Ad Motivated Tracking", "Advertising", - "Ad Fraud", "Third-Party Analytics Marketing" ], "default": "block" @@ -1623,8 +1623,8 @@ "fingerprinting": 2, "cookies": 0.00034, "categories": [ - "Ad Motivated Tracking", "Ad Fraud", + "Ad Motivated Tracking", "Analytics" ], "default": "ignore", @@ -1648,10 +1648,10 @@ "fingerprinting": 1, "cookies": 0, "categories": [ + "Action Pixels", "Ad Motivated Tracking", "Advertising", - "Third-Party Analytics Marketing", - "Action Pixels" + "Third-Party Analytics Marketing" ], "default": "block" }, @@ -1686,9 +1686,9 @@ "fingerprinting": 3, "cookies": 0, "categories": [ + "Ad Fraud", "Ad Motivated Tracking", - "Advertising", - "Ad Fraud" + "Advertising" ], "default": "block", "rules": [ @@ -1736,8 +1736,8 @@ "fingerprinting": 3, "cookies": 0.00383, "categories": [ - "Ad Motivated Tracking", "Ad Fraud", + "Ad Motivated Tracking", "Analytics", "Audience Measurement" ], @@ -2152,9 +2152,9 @@ "fingerprinting": 0, "cookies": 0.0198, "categories": [ + "Ad Fraud", "Ad Motivated Tracking", "Advertising", - "Ad Fraud", "Audience Measurement" ], "default": "block" @@ -2414,7 +2414,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -2425,7 +2425,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -2469,7 +2469,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -2480,7 +2480,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -2538,10 +2538,10 @@ "categories": [ "Ad Motivated Tracking", "Analytics", - "SSO", - "Third-Party Analytics Marketing", + "Embedded Content", "Online Payment", - "Embedded Content" + "SSO", + "Third-Party Analytics Marketing" ], "default": "ignore", "rules": [ @@ -2605,7 +2605,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -2744,7 +2744,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -2755,7 +2755,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -3068,25 +3068,13 @@ } ] }, - "arkoselabs.com": { - "domain": "arkoselabs.com", - "owner": { - "name": "Arkose Labs, Inc.", - "displayName": "Arkose Labs" - }, - "prevalence": 0.000116, - "fingerprinting": 3, - "cookies": 0.0000136, - "categories": [], - "default": "ignore" - }, "aspiringattempt.com": { "domain": "aspiringattempt.com", "owner": { "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -3213,7 +3201,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -3337,7 +3325,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -3721,7 +3709,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -3732,7 +3720,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -3743,7 +3731,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -3754,7 +3742,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -3820,7 +3808,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -3872,7 +3860,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -3883,7 +3871,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -3962,10 +3950,10 @@ "fingerprinting": 0, "cookies": 0.0552, "categories": [ + "Action Pixels", "Ad Motivated Tracking", "Advertising", - "Third-Party Analytics Marketing", - "Action Pixels" + "Third-Party Analytics Marketing" ], "default": "block" }, @@ -3996,9 +3984,9 @@ "fingerprinting": 1, "cookies": 0.161, "categories": [ + "Ad Fraud", "Ad Motivated Tracking", - "Advertising", - "Ad Fraud" + "Advertising" ], "default": "block" }, @@ -4020,7 +4008,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -4065,10 +4053,10 @@ "fingerprinting": 2, "cookies": 0.151, "categories": [ + "Action Pixels", + "Ad Fraud", "Ad Motivated Tracking", "Advertising", - "Ad Fraud", - "Action Pixels", "Embedded Content" ], "default": "block" @@ -4161,10 +4149,10 @@ "fingerprinting": 1, "cookies": 0.000374, "categories": [ + "Action Pixels", "Ad Motivated Tracking", "Analytics", - "Audience Measurement", - "Action Pixels" + "Audience Measurement" ], "default": "ignore", "rules": [ @@ -4186,13 +4174,13 @@ "fingerprinting": 1, "cookies": 0.000361, "categories": [ + "Action Pixels", "Ad Motivated Tracking", "Advertising", "Analytics", "Audience Measurement", - "Third-Party Analytics Marketing", - "Action Pixels", - "Embedded Content" + "Embedded Content", + "Third-Party Analytics Marketing" ], "default": "ignore", "rules": [ @@ -4249,9 +4237,9 @@ "fingerprinting": 0, "cookies": 0.0295, "categories": [ + "Ad Fraud", "Ad Motivated Tracking", "Advertising", - "Ad Fraud", "Analytics", "Audience Measurement", "Third-Party Analytics Marketing" @@ -4307,8 +4295,8 @@ "fingerprinting": 1, "cookies": 0.0182, "categories": [ - "Ad Motivated Tracking", "Ad Fraud", + "Ad Motivated Tracking", "Analytics", "Audience Measurement" ], @@ -4325,11 +4313,11 @@ "fingerprinting": 1, "cookies": 0.00494, "categories": [ + "Action Pixels", "Ad Motivated Tracking", "Advertising", "Analytics", - "Third-Party Analytics Marketing", - "Action Pixels" + "Third-Party Analytics Marketing" ], "default": "block", "rules": [ @@ -4371,7 +4359,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -4406,7 +4394,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -4566,11 +4554,11 @@ "fingerprinting": 3, "cookies": 0.00623, "categories": [ + "Action Pixels", "Ad Motivated Tracking", "Advertising", "Analytics", - "Audience Measurement", - "Action Pixels" + "Audience Measurement" ], "default": "block" }, @@ -4786,11 +4774,11 @@ "fingerprinting": 3, "cookies": 0.000864, "categories": [ + "Action Pixels", "Ad Motivated Tracking", "Advertising", "Analytics", - "Third-Party Analytics Marketing", - "Action Pixels" + "Third-Party Analytics Marketing" ], "default": "ignore", "rules": [ @@ -4812,9 +4800,9 @@ "fingerprinting": 1, "cookies": 0.0285, "categories": [ + "Ad Fraud", "Ad Motivated Tracking", "Advertising", - "Ad Fraud", "Analytics", "Embedded Content" ], @@ -4857,7 +4845,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -4868,7 +4856,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -5070,7 +5058,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -5112,7 +5100,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -5135,7 +5123,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -5170,7 +5158,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -5199,7 +5187,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -5247,8 +5235,8 @@ "fingerprinting": 0, "cookies": 0.00399, "categories": [ - "Unknown High Risk Behavior", - "Obscure Ownership" + "Obscure Ownership", + "Unknown High Risk Behavior" ], "default": "block" }, @@ -5487,7 +5475,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -5604,7 +5592,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -5615,7 +5603,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -5626,7 +5614,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -5637,7 +5625,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -5674,90 +5662,11 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" }, - "civiccomputing.com": { - "domain": "civiccomputing.com", - "owner": { - "name": "Civic Computing Limited", - "displayName": "Civic Computing" - }, - "prevalence": 0.00236, - "fingerprinting": 2, - "cookies": 0.000912, - "categories": [], - "default": "ignore", - "rules": [ - { - "rule": "civiccomputing\\.com\\/9\\/cookieControl-9\\.5\\.min\\.js", - "fingerprinting": 2, - "cookies": 0.0000136 - }, - { - "rule": "civiccomputing\\.com\\/9\\/cookieControl-9\\.x\\.min\\.js", - "fingerprinting": 2, - "cookies": 0.000368 - }, - { - "rule": "civiccomputing\\.com\\/9\\/cookieControl-9\\.8\\.min\\.js", - "fingerprinting": 2, - "cookies": 0.0000136 - }, - { - "rule": "civiccomputing\\.com\\/8\\/cookieControl-8\\.1\\.min\\.js", - "fingerprinting": 1, - "cookies": 0.00000681 - }, - { - "rule": "civiccomputing\\.com\\/9\\/cookieControl-9\\.7\\.min\\.js", - "fingerprinting": 2, - "cookies": 0.0000204 - }, - { - "rule": "civiccomputing\\.com\\/8\\/cookieControl-8\\.x\\.min\\.js", - "fingerprinting": 1, - "cookies": 0.0000272 - }, - { - "rule": "civiccomputing\\.com\\/js\\/container_sCsGby1s\\.js", - "fingerprinting": 2, - "cookies": 0.0000136 - }, - { - "rule": "civiccomputing\\.com\\/9\\/cookieControl-9\\.4\\.min\\.js", - "fingerprinting": 2, - "cookies": 0.0000136 - }, - { - "rule": "civiccomputing\\.com\\/8\\.0\\/cookieControl-8\\.2\\.1\\.min\\.js", - "fingerprinting": 1, - "cookies": 0.0000136 - }, - { - "rule": "civiccomputing\\.com\\/9\\/cookieControl-9\\.0\\.min\\.js", - "fingerprinting": 2, - "cookies": 0 - }, - { - "rule": "civiccomputing\\.com\\/9\\/cookieControl-9\\.6\\.1\\.min\\.js", - "fingerprinting": 2, - "cookies": 0.0000136 - }, - { - "rule": "civiccomputing\\.com\\/9\\/cookieControl-9\\.3\\.1\\.min\\.js", - "fingerprinting": 2, - "cookies": 0 - }, - { - "rule": "civiccomputing\\.com\\/9\\/cookieControl-9\\.1\\.min\\.js", - "fingerprinting": 2, - "cookies": 0 - } - ] - }, "ck-ie.com": { "domain": "ck-ie.com", "owner": { @@ -5808,7 +5717,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -6344,7 +6253,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -6409,13 +6318,13 @@ "fingerprinting": 0, "cookies": 0.015, "categories": [ + "Action Pixels", "Ad Motivated Tracking", "Advertising", "Analytics", "Audience Measurement", - "Third-Party Analytics Marketing", - "Action Pixels", - "Obscure Ownership" + "Obscure Ownership", + "Third-Party Analytics Marketing" ], "default": "block" }, @@ -6503,7 +6412,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -6544,43 +6453,6 @@ "categories": [], "default": "block" }, - "consentframework.com": { - "domain": "consentframework.com", - "owner": { - "name": "Sirdata SAS", - "displayName": "Sirdata" - }, - "prevalence": 0.00208, - "fingerprinting": 2, - "cookies": 0.00205, - "categories": [], - "default": "ignore", - "rules": [ - { - "rule": "consentframework\\.com/js/pa/.*", - "fingerprinting": 2, - "cookies": 0.000201 - }, - { - "rule": "consentframework\\.com\\/api\\/v1\\/public\\/user-action", - "fingerprinting": 0, - "cookies": 0, - "comment": "pixel" - } - ] - }, - "consentmanager.net": { - "domain": "consentmanager.net", - "owner": { - "name": "consentmanager AB", - "displayName": "ConsentManager" - }, - "prevalence": 0.00426, - "fingerprinting": 2, - "cookies": 0.00325, - "categories": [], - "default": "block" - }, "contentexchange.me": { "domain": "contentexchange.me", "owner": { @@ -6627,11 +6499,11 @@ "fingerprinting": 2, "cookies": 0.00547, "categories": [ + "Action Pixels", "Analytics", "Audience Measurement", - "Third-Party Analytics Marketing", - "Action Pixels", - "Session Replay" + "Session Replay", + "Third-Party Analytics Marketing" ], "default": "block" }, @@ -6647,9 +6519,9 @@ "fingerprinting": 1, "cookies": 0.116, "categories": [ + "Ad Fraud", "Ad Motivated Tracking", "Advertising", - "Ad Fraud", "Audience Measurement" ], "default": "block" @@ -6721,62 +6593,6 @@ } ] }, - "cookiefirst.com": { - "domain": "cookiefirst.com", - "owner": { - "name": "cookiefirst.com", - "displayName": "cookiefirst.com" - }, - "prevalence": 0.0011, - "fingerprinting": 2, - "cookies": 0, - "categories": [], - "default": "ignore", - "rules": [ - { - "rule": "cookiefirst\\.com\\/banner\\/v2\\.6\\.9\\/static-main\\/app\\.95b2\\.c\\.js", - "fingerprinting": 2, - "cookies": 0 - } - ] - }, - "cookieinformation.com": { - "domain": "cookieinformation.com", - "owner": { - "name": "Cookie Information A/S", - "displayName": "Cookie Information" - }, - "prevalence": 0.00195, - "fingerprinting": 1, - "cookies": 0.00153, - "categories": [], - "default": "ignore", - "rules": [ - { - "rule": "cookieinformation\\.com\\/uc\\.js", - "fingerprinting": 1, - "cookies": 0.000674 - }, - { - "rule": "cookieinformation\\.com\\/cookiesharingiframe\\.html", - "fingerprinting": 1, - "cookies": 0.000381 - } - ] - }, - "cookiepro.com": { - "domain": "cookiepro.com", - "owner": { - "name": "OneTrust LLC", - "displayName": "OneTrust", - "privacyPolicy": "https://www.onetrust.com/privacy-notice" - }, - "prevalence": 0.00518, - "fingerprinting": 2, - "cookies": 0.00485, - "categories": [], - "default": "block" - }, "cootlogix.com": { "domain": "cootlogix.com", "owner": { @@ -6881,11 +6697,11 @@ "fingerprinting": 1, "cookies": 0.0135, "categories": [ + "Action Pixels", "Ad Motivated Tracking", "Advertising", "Analytics", "Audience Measurement", - "Action Pixels", "Obscure Ownership" ], "default": "block" @@ -6912,7 +6728,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -6923,7 +6739,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -6942,8 +6758,8 @@ "categories": [ "Analytics", "Audience Measurement", - "Third-Party Analytics Marketing", - "Session Replay" + "Session Replay", + "Third-Party Analytics Marketing" ], "default": "block" }, @@ -6958,9 +6774,9 @@ "fingerprinting": 1, "cookies": 0.0194, "categories": [ + "Action Pixels", "Ad Motivated Tracking", - "Advertising", - "Action Pixels" + "Advertising" ], "default": "block" }, @@ -7047,7 +6863,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -7243,7 +7059,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -7279,7 +7095,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -7290,7 +7106,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -7301,7 +7117,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -7884,7 +7700,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -7895,7 +7711,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -7906,7 +7722,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -7923,23 +7739,6 @@ "categories": [], "default": "block" }, - "datadome.co": { - "domain": "datadome.co", - "owner": { - "name": "DataDome", - "displayName": "DataDome" - }, - "prevalence": 0.00418, - "fingerprinting": 3, - "cookies": 0.00353, - "categories": [], - "default": "ignore", - "rules": [ - { - "rule": "datadome\\.co/js/" - } - ] - }, "dbukjj6eu5tsf.cloudfront.net": { "domain": "dbukjj6eu5tsf.cloudfront.net", "owner": { @@ -7999,7 +7798,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -8090,11 +7889,11 @@ "fingerprinting": 1, "cookies": 0.000218, "categories": [ + "Action Pixels", "Ad Motivated Tracking", "Advertising", "Analytics", - "Third-Party Analytics Marketing", - "Action Pixels" + "Third-Party Analytics Marketing" ], "default": "block" }, @@ -8122,7 +7921,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -8133,7 +7932,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -8211,7 +8010,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -8222,7 +8021,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -8238,9 +8037,9 @@ "fingerprinting": 2, "cookies": 0.0159, "categories": [ + "Embedded Content", "Federated Login", - "Social - Comment", - "Embedded Content" + "Social - Comment" ], "default": "ignore" }, @@ -8337,7 +8136,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -8468,9 +8267,9 @@ "fingerprinting": 3, "cookies": 0, "categories": [ + "Ad Fraud", "Ad Motivated Tracking", - "Advertising", - "Ad Fraud" + "Advertising" ], "default": "block" }, @@ -8480,7 +8279,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -8491,30 +8290,11 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" }, - "dreamlab.pl": { - "domain": "dreamlab.pl", - "owner": { - "name": "Ringier Axel Springer Media AG", - "displayName": "Ringier Axel Springer" - }, - "prevalence": 0.000109, - "fingerprinting": 1, - "cookies": 0.000109, - "categories": [], - "default": "ignore", - "rules": [ - { - "rule": "dreamlab\\.pl\\/static-v2\\/cmp\\.bundle\\.js", - "fingerprinting": 1, - "cookies": 0.0000545 - } - ] - }, "driftt.com": { "domain": "driftt.com", "owner": { @@ -8526,8 +8306,8 @@ "cookies": 0.00198, "categories": [ "Analytics", - "Third-Party Analytics Marketing", - "Embedded Content" + "Embedded Content", + "Third-Party Analytics Marketing" ], "default": "ignore", "rules": [ @@ -8729,8 +8509,8 @@ "categories": [ "Analytics", "Audience Measurement", - "Third-Party Analytics Marketing", - "Embedded Content" + "Embedded Content", + "Third-Party Analytics Marketing" ], "default": "block" }, @@ -9036,7 +8816,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -9047,7 +8827,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -9088,7 +8868,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -9456,11 +9236,11 @@ "fingerprinting": 1, "cookies": 0.0385, "categories": [ + "Action Pixels", "Ad Motivated Tracking", "Advertising", "Analytics", - "Audience Measurement", - "Action Pixels" + "Audience Measurement" ], "default": "block" }, @@ -9504,7 +9284,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -9685,12 +9465,12 @@ "fingerprinting": 3, "cookies": 0.0000136, "categories": [ + "Action Pixels", + "Ad Fraud", "Ad Motivated Tracking", "Advertising", - "Ad Fraud", "Analytics", "Audience Measurement", - "Action Pixels", "Session Replay" ], "default": "ignore", @@ -9822,13 +9602,13 @@ "fingerprinting": 2, "cookies": 0.000878, "categories": [ + "Action Pixels", "Ad Motivated Tracking", "Advertising", "Analytics", "Audience Measurement", - "Third-Party Analytics Marketing", - "Action Pixels", - "Session Replay" + "Session Replay", + "Third-Party Analytics Marketing" ], "default": "ignore", "rules": [ @@ -9937,14 +9717,14 @@ "fingerprinting": 3, "cookies": 0.0000204, "categories": [ + "Action Pixels", "Ad Motivated Tracking", "Advertising", "Analytics", - "Third-Party Analytics Marketing", - "Action Pixels", "Content Delivery", "Embedded Content", - "Session Replay" + "Session Replay", + "Third-Party Analytics Marketing" ], "default": "ignore", "rules": [ @@ -9967,17 +9747,17 @@ "fingerprinting": 1, "cookies": 0.00322, "categories": [ + "Action Pixels", + "Ad Fraud", "Ad Motivated Tracking", "Advertising", - "Ad Fraud", "Analytics", "Audience Measurement", + "Badge", + "Embedded Content", "Federated Login", "Social - Comment", "Social - Share", - "Action Pixels", - "Badge", - "Embedded Content", "Social Network" ], "default": "ignore", @@ -10025,17 +9805,17 @@ "fingerprinting": 2, "cookies": 0.208, "categories": [ + "Action Pixels", + "Ad Fraud", "Ad Motivated Tracking", "Advertising", - "Ad Fraud", "Analytics", "Audience Measurement", + "Badge", + "Embedded Content", "Federated Login", "Social - Comment", "Social - Share", - "Action Pixels", - "Badge", - "Embedded Content", "Social Network" ], "default": "ignore", @@ -10114,7 +9894,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -10125,7 +9905,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -10136,7 +9916,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -10176,7 +9956,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -10218,7 +9998,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -10292,7 +10072,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -10319,14 +10099,14 @@ "fingerprinting": 2, "cookies": 0.0263, "categories": [ + "Action Pixels", "Ad Motivated Tracking", "Advertising", "Analytics", "Audience Measurement", - "Third-Party Analytics Marketing", - "Action Pixels", "Embedded Content", - "Session Replay" + "Session Replay", + "Third-Party Analytics Marketing" ], "default": "block" }, @@ -10360,7 +10140,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -10371,7 +10151,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -10419,7 +10199,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -10470,9 +10250,9 @@ "fingerprinting": 2, "cookies": 0.00172, "categories": [ + "Action Pixels", "Analytics", "Audience Measurement", - "Action Pixels", "Session Replay" ], "default": "ignore", @@ -10539,25 +10319,13 @@ } ] }, - "forter.com": { - "domain": "forter.com", - "owner": { - "name": "Forter Inc.", - "displayName": "Forter" - }, - "prevalence": 0.00302, - "fingerprinting": 3, - "cookies": 0.00283, - "categories": [], - "default": "block" - }, "fortunatemark.com": { "domain": "fortunatemark.com", "owner": { "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -10717,7 +10485,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -10728,7 +10496,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -10739,7 +10507,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -10766,7 +10534,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -10816,7 +10584,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -10863,7 +10631,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -11331,8 +11099,8 @@ "Ad Motivated Tracking", "Analytics", "Audience Measurement", - "Third-Party Analytics Marketing", - "Embedded Content" + "Embedded Content", + "Third-Party Analytics Marketing" ], "default": "block" }, @@ -11342,7 +11110,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -11382,7 +11150,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -11493,8 +11261,8 @@ "categories": [ "Ad Motivated Tracking", "Advertising", - "Online Payment", - "Content Delivery" + "Content Delivery", + "Online Payment" ], "default": "ignore", "rules": [ @@ -11870,20 +11638,152 @@ "Audience Measurement", "Third-Party Analytics Marketing" ], - "default": "block", + "default": "ignore", "rules": [ { "rule": "googletagmanager\\.com/gtm\\.js", "surrogate": "gtm.js", "exceptions": { "domains": [ + "aeromexico.com", + "ah.nl", + "al.com", + "bbcgoodfood.com", "bethesda.net", + "dailyherald.com", + "emirates.com", "findmyformula.com", + "garnethill.com", + "iltalehti.fi", + "kingarthurbaking.com", "noaa.gov", + "pickfu.com", + "rbcroyalbank.com", "redballoon.com.au", "southbankresearch.com" ] + }, + "options": { + "domains": [ + "abbottnutrition.com", + "abril.com.br", + "alza.cz", + "amateur.tv", + "au.com", + "autobodytoolmart.com", + "autodesk.com", + "autoscout24.be", + "autoscout24.com", + "autoscout24.de", + "autoscout24.es", + "autoscout24.it", + "bfv.de", + "blackwoods.com.au", + "bloomberg.co.jp", + "bradyid.com", + "c-and-a.com", + "cerdas.com", + "coldwatercreek.com", + "connectionsacademy.com", + "dailypaws.com", + "debijenkorf.nl", + "deutschlandcard.de", + "digitec.ch", + "ensure.com", + "eprice.it", + "ew.com", + "fanatec.com", + "farrow-ball.com", + "francebleu.fr", + "galaxus.ch", + "galaxus.de", + "gardenista.com", + "gereedschapcentrum.nl", + "gobankingrates.com", + "healthchoicesfirst.com", + "hellooha.com", + "henkel-adhesives.com", + "hustlermoneyblog.com", + "hut.de", + "jetbrains.com", + "joongang.co.kr", + "kik.de", + "kunzmann.de", + "lectura-specs.com", + "lectura.de", + "marketwatch.com", + "mediaexpert.pl", + "midwestliving.com", + "milanomalpensa-airport.com", + "moneycrashers.com", + "morbocornudos.com", + "nordvpn.com", + "notino.co.uk", + "notino.pl", + "notino.ro", + "ntotank.com", + "ozone.bg", + "pajilleros.com", + "parenting.com", + "peacocks.co.uk", + "plannedparenthood.org", + "pmtonline.co.uk", + "qbe.com", + "qualys.com", + "reclameaqui.com.br", + "remax.com", + "remodelista.com", + "rotowire.com", + "seaworld.com", + "skincare-univ.com", + "sotor.com", + "specsavers.com.au", + "straighttalk.com", + "theindependentpharmacy.co.uk", + "tiaabank.com", + "todorelatos.com", + "totalbyverizon.com", + "tracfone.com", + "urssaf.fr", + "wallethacks.com", + "webjet.com.au", + "webteb.com", + "xfinity.com" + ] } + }, + { + "rule": "googletagmanager\\.com/gtag/js" + }, + { + "rule": "googletagmanager\\.com/amp\\.json" + }, + { + "rule": "googletagmanager\\.com/a" + }, + { + "rule": "googletagmanager\\.com/gtag/destination" + }, + { + "rule": "googletagmanager\\.com/ns\\.html" + }, + { + "rule": "googletagmanager\\.com/td" + }, + { + "rule": "googletagmanager\\.com/dclk/ns/v1\\.js" + }, + { + "rule": "googletagmanager\\.com/gtag\\.js" + }, + { + "rule": "googletagmanager\\.com/gtag/amp" + }, + { + "rule": "googletagmanager\\.com/gtm/js" + }, + { + "rule": "googletagmanager\\.com/ns\\.twig" } ] }, @@ -11899,12 +11799,12 @@ "fingerprinting": 2, "cookies": 0, "categories": [ + "Action Pixels", "Ad Motivated Tracking", "Advertising", "Analytics", "Audience Measurement", - "Third-Party Analytics Marketing", - "Action Pixels" + "Third-Party Analytics Marketing" ], "default": "block", "rules": [ @@ -11942,7 +11842,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -12029,7 +11929,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -12040,7 +11940,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -12272,7 +12172,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -12312,7 +12212,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -12323,7 +12223,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -12334,7 +12234,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -12345,7 +12245,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -12500,8 +12400,8 @@ "fingerprinting": 2, "cookies": 0.00356, "categories": [ - "Analytics", "Action Pixels", + "Analytics", "Session Replay" ], "default": "block" @@ -12518,10 +12418,10 @@ "fingerprinting": 2, "cookies": 0.0000408, "categories": [ + "Action Pixels", "Ad Motivated Tracking", "Advertising", "Analytics", - "Action Pixels", "Session Replay" ], "default": "ignore", @@ -12671,7 +12571,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -12682,7 +12582,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -12693,7 +12593,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -12751,10 +12651,10 @@ "fingerprinting": 2, "cookies": 0.0129, "categories": [ + "Action Pixels", "Analytics", "Audience Measurement", - "Third-Party Analytics Marketing", - "Action Pixels" + "Third-Party Analytics Marketing" ], "default": "block" }, @@ -12845,8 +12745,8 @@ "Ad Motivated Tracking", "Advertising", "Analytics", - "Third-Party Analytics Marketing", - "Embedded Content" + "Embedded Content", + "Third-Party Analytics Marketing" ], "default": "ignore", "rules": [ @@ -13213,65 +13113,6 @@ } ] }, - "iesnare.com": { - "domain": "iesnare.com", - "owner": { - "name": "TransUnion LLC", - "displayName": "TransUnion" - }, - "prevalence": 0.00167, - "fingerprinting": 3, - "cookies": 0.00164, - "categories": [], - "default": "ignore", - "rules": [ - { - "rule": "iesnare\\.com\\/general5\\/wdp\\.js", - "fingerprinting": 3, - "cookies": 0.000626 - }, - { - "rule": "iesnare\\.com\\/snare\\.js", - "fingerprinting": 2, - "cookies": 0.000177 - }, - { - "rule": "iesnare\\.com\\/general5\\/8kBKRVp2MD8gzqEz2pogphwEF2uRk3-QIGEed9TZ_wM\\/wdp\\.js", - "fingerprinting": 3, - "cookies": 0.0000613 - }, - { - "rule": "iesnare\\.com\\/general5\\/NmVxq-iDDMiwb1gCA5eBhL60S9VNaWh5lDA1Ne2MdRI\\/wdp\\.js", - "fingerprinting": 3, - "cookies": 0.000034 - }, - { - "rule": "iesnare\\.com\\/5\\.0\\.0\\/wdp\\.js", - "fingerprinting": 2, - "cookies": 0.0000204 - }, - { - "rule": "iesnare\\.com\\/general5\\/5FExse%2BoA1134BhiwCF2EeQ1TfisPJGha4CpVG2nd7E%3D\\/wdp\\.js", - "fingerprinting": 3, - "cookies": 0.0000136 - }, - { - "rule": "iesnare\\.com\\/5\\.2\\.2\\/wdp\\.js", - "fingerprinting": 3, - "cookies": 0.0000681 - }, - { - "rule": "iesnare\\.com\\/early5\\/nLdMddw0jvDUZG3ETn8y0CEt7ZECk8Jm4N-uQ7wPu0k\\/wdp\\.js", - "fingerprinting": 3, - "cookies": 0.0000136 - }, - { - "rule": "iesnare\\.com\\/5\\.1\\.0\\/wdp\\.js", - "fingerprinting": 2, - "cookies": 0.0000204 - } - ] - }, "igodigital.com": { "domain": "igodigital.com", "owner": { @@ -13463,11 +13304,11 @@ "fingerprinting": 1, "cookies": 0.00468, "categories": [ + "Action Pixels", "Ad Motivated Tracking", "Advertising", "Analytics", - "Third-Party Analytics Marketing", - "Action Pixels" + "Third-Party Analytics Marketing" ], "default": "block" }, @@ -13605,12 +13446,12 @@ "fingerprinting": 2, "cookies": 0.0167, "categories": [ + "Action Pixels", "Ad Motivated Tracking", "Advertising", "Analytics", "Audience Measurement", - "Third-Party Analytics Marketing", - "Action Pixels" + "Third-Party Analytics Marketing" ], "default": "block", "rules": [ @@ -14002,8 +13843,8 @@ "categories": [ "Ad Motivated Tracking", "Advertising", - "Social - Share", "Embedded Content", + "Social - Share", "Social Network" ], "default": "ignore", @@ -14095,9 +13936,9 @@ "fingerprinting": 0, "cookies": 0.0371, "categories": [ + "Ad Fraud", "Ad Motivated Tracking", "Advertising", - "Ad Fraud", "Analytics", "Third-Party Analytics Marketing" ], @@ -14646,14 +14487,14 @@ "fingerprinting": 2, "cookies": 0.000442, "categories": [ + "Action Pixels", "Ad Motivated Tracking", "Advertising", "Analytics", - "Third-Party Analytics Marketing", - "Action Pixels", "Content Delivery", "Embedded Content", - "Session Replay" + "Session Replay", + "Third-Party Analytics Marketing" ], "default": "ignore", "rules": [ @@ -14675,7 +14516,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -15134,8 +14975,8 @@ "fingerprinting": 1, "cookies": 0.00221, "categories": [ - "Third-Party Analytics Marketing", - "Embedded Content" + "Embedded Content", + "Third-Party Analytics Marketing" ], "default": "block" }, @@ -15174,9 +15015,9 @@ "fingerprinting": 1, "cookies": 0.0656, "categories": [ + "Ad Fraud", "Ad Motivated Tracking", - "Advertising", - "Ad Fraud" + "Advertising" ], "default": "block" }, @@ -15349,8 +15190,8 @@ "Advertising", "Analytics", "Audience Measurement", - "Third-Party Analytics Marketing", - "Embedded Content" + "Embedded Content", + "Third-Party Analytics Marketing" ], "default": "block" }, @@ -15360,7 +15201,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -15435,7 +15276,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -15486,7 +15327,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -15628,14 +15469,14 @@ "fingerprinting": 3, "cookies": 0.0031, "categories": [ + "Action Pixels", "Ad Motivated Tracking", "Advertising", "Analytics", "Audience Measurement", - "Third-Party Analytics Marketing", - "Action Pixels", "Content Delivery", - "Embedded Content" + "Embedded Content", + "Third-Party Analytics Marketing" ], "default": "ignore", "rules": [ @@ -15668,12 +15509,12 @@ "fingerprinting": 1, "cookies": 0.121, "categories": [ + "Action Pixels", "Ad Motivated Tracking", "Advertising", "Analytics", "Audience Measurement", - "Third-Party Analytics Marketing", - "Action Pixels" + "Third-Party Analytics Marketing" ], "default": "block" }, @@ -15712,12 +15553,12 @@ "fingerprinting": 1, "cookies": 0.175, "categories": [ + "Action Pixels", "Ad Motivated Tracking", "Advertising", "Analytics", - "Social - Share", - "Action Pixels", "Embedded Content", + "Social - Share", "Social Network" ], "default": "ignore", @@ -15820,8 +15661,8 @@ "fingerprinting": 3, "cookies": 0.00297, "categories": [ - "Third-Party Analytics Marketing", - "Embedded Content" + "Embedded Content", + "Third-Party Analytics Marketing" ], "default": "ignore", "rules": [ @@ -15908,12 +15749,12 @@ "fingerprinting": 2, "cookies": 0.00407, "categories": [ + "Action Pixels", "Ad Motivated Tracking", "Advertising", "Analytics", "Audience Measurement", - "Third-Party Analytics Marketing", - "Action Pixels" + "Third-Party Analytics Marketing" ], "default": "ignore", "rules": [ @@ -16293,12 +16134,12 @@ "fingerprinting": 1, "cookies": 0.0689, "categories": [ + "Action Pixels", "Ad Motivated Tracking", "Advertising", "Analytics", "Audience Measurement", - "Third-Party Analytics Marketing", - "Action Pixels" + "Third-Party Analytics Marketing" ], "default": "block" }, @@ -16308,7 +16149,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -16319,7 +16160,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -16347,7 +16188,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -16566,7 +16407,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -16600,12 +16441,12 @@ "fingerprinting": 2, "cookies": 0.00324, "categories": [ + "Action Pixels", "Ad Motivated Tracking", "Advertising", "Analytics", - "Social - Share", - "Action Pixels", - "Embedded Content" + "Embedded Content", + "Social - Share" ], "default": "ignore" }, @@ -16622,8 +16463,8 @@ "cookies": 0, "categories": [ "Advertising", - "Third-Party Analytics Marketing", - "Embedded Content" + "Embedded Content", + "Third-Party Analytics Marketing" ], "default": "block", "rules": [ @@ -16807,8 +16648,8 @@ "categories": [ "Ad Motivated Tracking", "Advertising", - "Third-Party Analytics Marketing", - "Embedded Content" + "Embedded Content", + "Third-Party Analytics Marketing" ], "default": "ignore" }, @@ -16826,8 +16667,8 @@ "categories": [ "Ad Motivated Tracking", "Advertising", - "Third-Party Analytics Marketing", - "Embedded Content" + "Embedded Content", + "Third-Party Analytics Marketing" ], "default": "block" }, @@ -16874,7 +16715,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -16885,7 +16726,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -16966,8 +16807,8 @@ "fingerprinting": 3, "cookies": 0.000395, "categories": [ - "Ad Motivated Tracking", "Ad Fraud", + "Ad Motivated Tracking", "Analytics", "Audience Measurement" ], @@ -17070,7 +16911,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -17119,7 +16960,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -17393,7 +17234,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -17404,7 +17245,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -17480,9 +17321,9 @@ "fingerprinting": 1, "cookies": 0.0724, "categories": [ + "Ad Fraud", "Ad Motivated Tracking", - "Advertising", - "Ad Fraud" + "Advertising" ], "default": "block" }, @@ -17497,9 +17338,9 @@ "fingerprinting": 2, "cookies": 0.0114, "categories": [ + "Ad Fraud", "Ad Motivated Tracking", "Advertising", - "Ad Fraud", "Analytics", "Audience Measurement", "Third-Party Analytics Marketing" @@ -17739,8 +17580,8 @@ "categories": [ "Ad Motivated Tracking", "Advertising", - "Third-Party Analytics Marketing", - "Embedded Content" + "Embedded Content", + "Third-Party Analytics Marketing" ], "default": "block" }, @@ -17791,11 +17632,11 @@ "fingerprinting": 1, "cookies": 0.0299, "categories": [ + "Action Pixels", "Ad Motivated Tracking", "Advertising", "Analytics", "Audience Measurement", - "Action Pixels", "Session Replay" ], "default": "block" @@ -17812,13 +17653,13 @@ "fingerprinting": 3, "cookies": 0, "categories": [ + "Action Pixels", + "Ad Fraud", "Ad Motivated Tracking", "Advertising", - "Ad Fraud", "Analytics", "Audience Measurement", - "Third-Party Analytics Marketing", - "Action Pixels" + "Third-Party Analytics Marketing" ], "default": "block", "rules": [ @@ -17891,13 +17732,13 @@ "fingerprinting": 2, "cookies": 0.00283, "categories": [ + "Action Pixels", "Ad Motivated Tracking", "Advertising", "Analytics", "Audience Measurement", - "Third-Party Analytics Marketing", - "Action Pixels", - "Embedded Content" + "Embedded Content", + "Third-Party Analytics Marketing" ], "default": "block" }, @@ -17952,12 +17793,12 @@ "fingerprinting": 1, "cookies": 0.0505, "categories": [ + "Action Pixels", "Ad Motivated Tracking", "Advertising", "Analytics", "Audience Measurement", - "Third-Party Analytics Marketing", - "Action Pixels" + "Third-Party Analytics Marketing" ], "default": "block" }, @@ -17967,7 +17808,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -17996,11 +17837,11 @@ "fingerprinting": 3, "cookies": 0.00205, "categories": [ + "Action Pixels", "Ad Motivated Tracking", "Analytics", - "Third-Party Analytics Marketing", - "Action Pixels", - "Session Replay" + "Session Replay", + "Third-Party Analytics Marketing" ], "default": "block" }, @@ -18117,11 +17958,11 @@ "fingerprinting": 2, "cookies": 0.0031, "categories": [ + "Action Pixels", "Analytics", "Audience Measurement", - "Third-Party Analytics Marketing", - "Action Pixels", - "Session Replay" + "Session Replay", + "Third-Party Analytics Marketing" ], "default": "block", "rules": [ @@ -18279,7 +18120,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -18418,7 +18259,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -18481,11 +18322,11 @@ "fingerprinting": 1, "cookies": 0.000517, "categories": [ + "Action Pixels", "Ad Motivated Tracking", "Advertising", "Analytics", - "Audience Measurement", - "Action Pixels" + "Audience Measurement" ], "default": "ignore", "rules": [ @@ -18768,7 +18609,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -18857,9 +18698,9 @@ "Advertising", "Analytics", "Audience Measurement", + "Embedded Content", "SSO", - "Third-Party Analytics Marketing", - "Embedded Content" + "Third-Party Analytics Marketing" ], "default": "block", "rules": [ @@ -18998,7 +18839,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -19489,8 +19330,8 @@ "categories": [ "Ad Motivated Tracking", "Analytics", - "Third-Party Analytics Marketing", - "Embedded Content" + "Embedded Content", + "Third-Party Analytics Marketing" ], "default": "block" }, @@ -19683,9 +19524,9 @@ "fingerprinting": 1, "cookies": 0.17, "categories": [ + "Ad Fraud", "Ad Motivated Tracking", "Advertising", - "Ad Fraud", "Audience Measurement" ], "default": "block" @@ -19727,12 +19568,12 @@ "fingerprinting": 2, "cookies": 0.000926, "categories": [ + "Action Pixels", "Ad Motivated Tracking", "Advertising", "Analytics", - "Third-Party Analytics Marketing", - "Action Pixels", - "Embedded Content" + "Embedded Content", + "Third-Party Analytics Marketing" ], "default": "ignore", "rules": [ @@ -19871,10 +19712,10 @@ "fingerprinting": 2, "cookies": 0.0121, "categories": [ + "Action Pixels", "Analytics", "Audience Measurement", - "Third-Party Analytics Marketing", - "Action Pixels" + "Third-Party Analytics Marketing" ], "default": "block" }, @@ -19909,12 +19750,12 @@ "fingerprinting": 2, "cookies": 0.000626, "categories": [ + "Action Pixels", "Ad Motivated Tracking", "Advertising", "Analytics", - "Third-Party Analytics Marketing", - "Action Pixels", - "Embedded Content" + "Embedded Content", + "Third-Party Analytics Marketing" ], "default": "ignore", "rules": [ @@ -20187,7 +20028,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -20202,9 +20043,9 @@ "fingerprinting": 0, "cookies": 0.0282, "categories": [ + "Ad Fraud", "Ad Motivated Tracking", "Advertising", - "Ad Fraud", "Audience Measurement" ], "default": "block" @@ -20408,7 +20249,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -20419,7 +20260,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -20430,7 +20271,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -20524,11 +20365,11 @@ "fingerprinting": 2, "cookies": 0.00999, "categories": [ + "Action Pixels", "Ad Motivated Tracking", "Analytics", "Audience Measurement", - "Third-Party Analytics Marketing", - "Action Pixels" + "Third-Party Analytics Marketing" ], "default": "block" }, @@ -20538,7 +20379,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -20575,10 +20416,10 @@ "categories": [ "Analytics", "Audience Measurement", - "SSO", - "Online Payment", "Badge", - "Embedded Content" + "Embedded Content", + "Online Payment", + "SSO" ], "default": "ignore" }, @@ -20729,60 +20570,11 @@ "Advertising", "Analytics", "Audience Measurement", - "Third-Party Analytics Marketing", - "Session Replay" + "Session Replay", + "Third-Party Analytics Marketing" ], "default": "block" }, - "perimeterx.net": { - "domain": "perimeterx.net", - "owner": { - "name": "PerimeterX, Inc.", - "displayName": "PerimeterX" - }, - "prevalence": 0.000374, - "fingerprinting": 3, - "cookies": 0.000279, - "categories": [ - "Ad Motivated Tracking", - "Ad Fraud", - "Analytics", - "Audience Measurement" - ], - "default": "ignore", - "rules": [ - { - "rule": "perimeterx\\.net\\/PXFF0j69T5\\/captcha\\.js", - "fingerprinting": 2, - "cookies": 0 - }, - { - "rule": "perimeterx\\.net/[a-zA-Z0-9]+/main\\.min\\.js", - "fingerprinting": 3, - "cookies": 0.0000272 - }, - { - "rule": "perimeterx\\.net\\/PXh1Z8j4kW\\/captcha\\.js", - "fingerprinting": 2, - "cookies": 0 - }, - { - "rule": "perimeterx\\.net\\/PX31404oqJ\\/captcha\\.js", - "fingerprinting": 2, - "cookies": 0 - }, - { - "rule": "perimeterx\\.net\\/PX8T5aKZsq\\/captcha\\.js", - "fingerprinting": 2, - "cookies": 0 - }, - { - "rule": "perimeterx\\.net\\/PXev56mY37\\/captcha\\.js", - "fingerprinting": 2, - "cookies": 0 - } - ] - }, "permutive.app": { "domain": "permutive.app", "owner": { @@ -20809,8 +20601,8 @@ "categories": [ "Analytics", "Audience Measurement", - "Third-Party Analytics Marketing", - "Session Replay" + "Session Replay", + "Third-Party Analytics Marketing" ], "default": "block" }, @@ -20903,9 +20695,9 @@ "fingerprinting": 2, "cookies": 0, "categories": [ + "Action Pixels", "Analytics", - "Audience Measurement", - "Action Pixels" + "Audience Measurement" ], "default": "block" }, @@ -20920,10 +20712,9 @@ "fingerprinting": 1, "cookies": 0.0258, "categories": [ - "Social - Share", "Content Delivery", "Embedded Content", - "Social Network" + "Social - Share" ], "default": "ignore" }, @@ -21065,7 +20856,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -21094,7 +20885,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -21105,7 +20896,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -21116,7 +20907,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -21180,7 +20971,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -21197,9 +20988,9 @@ "fingerprinting": 2, "cookies": 0.0000817, "categories": [ + "Ad Fraud", "Ad Motivated Tracking", "Advertising", - "Ad Fraud", "Analytics", "Third-Party Analytics Marketing" ], @@ -21260,7 +21051,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -21308,7 +21099,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -21319,7 +21110,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -21364,7 +21155,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -21375,7 +21166,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -21410,7 +21201,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -21421,7 +21212,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -21487,14 +21278,14 @@ "fingerprinting": 2, "cookies": 0.000211, "categories": [ + "Action Pixels", "Ad Motivated Tracking", "Advertising", "Analytics", - "Third-Party Analytics Marketing", - "Action Pixels", "Content Delivery", "Embedded Content", - "Session Replay" + "Session Replay", + "Third-Party Analytics Marketing" ], "default": "ignore", "rules": [ @@ -21554,7 +21345,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -21645,7 +21436,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -21801,9 +21592,9 @@ "fingerprinting": 2, "cookies": 0.168, "categories": [ + "Ad Fraud", "Ad Motivated Tracking", "Advertising", - "Ad Fraud", "Analytics", "Audience Measurement", "Third-Party Analytics Marketing" @@ -21854,9 +21645,9 @@ "fingerprinting": 2, "cookies": 0.000613, "categories": [ + "Ad Fraud", "Ad Motivated Tracking", "Advertising", - "Ad Fraud", "Analytics", "Audience Measurement", "Third-Party Analytics Marketing" @@ -21886,48 +21677,6 @@ } ] }, - "px-cdn.net": { - "domain": "px-cdn.net", - "owner": { - "name": "PerimeterX, Inc.", - "displayName": "PerimeterX" - }, - "prevalence": 0.0011, - "fingerprinting": 2, - "cookies": 0, - "categories": [], - "default": "ignore", - "rules": [ - { - "rule": "px-cdn\\.net\\/PXLkXIE7Oj\\/captcha\\.js", - "fingerprinting": 2, - "cookies": 0 - }, - { - "rule": "px-cdn\\.net\\/PXO4boPf13\\/captcha\\.js", - "fingerprinting": 2, - "cookies": 0 - }, - { - "rule": "px-cdn\\.net\\/api\\/v1\\/PXsLC3j22K\\/d\\/e", - "fingerprinting": 0, - "cookies": 0, - "comment": "pixel" - } - ] - }, - "px-cloud.net": { - "domain": "px-cloud.net", - "owner": { - "name": "PerimeterX, Inc.", - "displayName": "PerimeterX" - }, - "prevalence": 0.00277, - "fingerprinting": 3, - "cookies": 0.000728, - "categories": [], - "default": "block" - }, "pxlclnmdecom-a.akamaihd.net": { "domain": "pxlclnmdecom-a.akamaihd.net", "owner": { @@ -21981,14 +21730,14 @@ "fingerprinting": 3, "cookies": 0, "categories": [ + "Action Pixels", "Ad Motivated Tracking", "Advertising", "Analytics", - "Third-Party Analytics Marketing", - "Action Pixels", "Content Delivery", "Embedded Content", - "Session Replay" + "Session Replay", + "Third-Party Analytics Marketing" ], "default": "ignore", "rules": [ @@ -22013,9 +21762,9 @@ "categories": [ "Analytics", "Audience Measurement", - "Third-Party Analytics Marketing", "Embedded Content", - "Session Replay" + "Session Replay", + "Third-Party Analytics Marketing" ], "default": "ignore", "rules": [ @@ -22038,9 +21787,9 @@ "categories": [ "Analytics", "Audience Measurement", - "Third-Party Analytics Marketing", "Embedded Content", - "Session Replay" + "Session Replay", + "Third-Party Analytics Marketing" ], "default": "ignore", "rules": [ @@ -22158,7 +21907,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -22169,7 +21918,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -22180,7 +21929,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -22198,9 +21947,9 @@ "categories": [ "Advertising", "Analytics", + "Embedded Content", "Social - Comment", "Social - Share", - "Embedded Content", "Social Network" ], "default": "block" @@ -22250,7 +21999,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -22261,7 +22010,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -22414,7 +22163,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -22425,7 +22174,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -22467,7 +22216,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -22478,7 +22227,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -22489,7 +22238,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -22573,12 +22322,12 @@ "Advertising", "Analytics", "Audience Measurement", - "Third-Party Analytics Marketing", - "Social - Comment", - "Social - Share", "Badge", "Embedded Content", - "Social Network" + "Social - Comment", + "Social - Share", + "Social Network", + "Third-Party Analytics Marketing" ], "default": "ignore", "rules": [ @@ -22710,9 +22459,9 @@ "fingerprinting": 2, "cookies": 0.0123, "categories": [ + "Action Pixels", "Ad Motivated Tracking", - "Analytics", - "Action Pixels" + "Analytics" ], "default": "block" }, @@ -22759,7 +22508,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -22770,7 +22519,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -22817,9 +22566,9 @@ "fingerprinting": 0, "cookies": 0.00299, "categories": [ + "Ad Fraud", "Ad Motivated Tracking", "Advertising", - "Ad Fraud", "Analytics", "Third-Party Analytics Marketing" ], @@ -22831,7 +22580,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -22889,7 +22638,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -22900,7 +22649,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -22987,8 +22736,8 @@ "fingerprinting": 1, "cookies": 0, "categories": [ - "Advertising", "Ad Fraud", + "Advertising", "Social - Comment", "Social Network" ], @@ -23000,7 +22749,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -23023,7 +22772,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -23034,7 +22783,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -23164,9 +22913,9 @@ "fingerprinting": 1, "cookies": 0.143, "categories": [ + "Ad Fraud", "Ad Motivated Tracking", "Advertising", - "Ad Fraud", "Analytics", "Third-Party Analytics Marketing" ], @@ -23375,7 +23124,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -23479,7 +23228,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -23497,8 +23246,8 @@ "Ad Motivated Tracking", "Advertising", "Analytics", - "Third-Party Analytics Marketing", - "Embedded Content" + "Embedded Content", + "Third-Party Analytics Marketing" ], "default": "block", "rules": [ @@ -23876,7 +23625,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -23891,10 +23640,10 @@ "fingerprinting": 0, "cookies": 0.00329, "categories": [ + "Action Pixels", "Ad Motivated Tracking", "Audience Measurement", - "Third-Party Analytics Marketing", - "Action Pixels" + "Third-Party Analytics Marketing" ], "default": "block" }, @@ -23951,7 +23700,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -23962,7 +23711,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -23977,10 +23726,10 @@ "fingerprinting": 2, "cookies": 0.0231, "categories": [ + "Action Pixels", "Ad Motivated Tracking", "Advertising", "Analytics", - "Action Pixels", "Embedded Content" ], "default": "block" @@ -24006,7 +23755,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -24017,7 +23766,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -24028,7 +23777,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -24039,7 +23788,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -24119,7 +23868,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -24152,7 +23901,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -24203,7 +23952,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -24219,14 +23968,14 @@ "fingerprinting": 3, "cookies": 0, "categories": [ + "Action Pixels", "Ad Motivated Tracking", "Advertising", "Analytics", - "Third-Party Analytics Marketing", - "Action Pixels", "Content Delivery", "Embedded Content", - "Session Replay" + "Session Replay", + "Third-Party Analytics Marketing" ], "default": "ignore", "rules": [ @@ -24271,80 +24020,6 @@ "categories": [], "default": "block" }, - "sdiapi.com": { - "domain": "sdiapi.com", - "owner": { - "name": "sourcedefense", - "displayName": "sourcedefense" - }, - "prevalence": 0.000327, - "fingerprinting": 2, - "cookies": 0.000252, - "categories": [], - "default": "ignore", - "rules": [ - { - "rule": "sdiapi\\.com/vice_loader/", - "fingerprinting": 2, - "cookies": 0.0000204 - }, - { - "rule": "sdiapi\\.com\\/vice_release\\/1\\.23\\.1\\.1", - "fingerprinting": 2, - "cookies": 0 - }, - { - "rule": "sdiapi\\.com\\/callawaygolf\\/callawaygolf\\/1\\.23\\.1\\.1\\/", - "fingerprinting": 2, - "cookies": 0 - }, - { - "rule": "sdiapi\\.com\\/reporter\\/1\\.0\\.7\\.22\\/receiver\\.js", - "fingerprinting": 2, - "cookies": 0 - }, - { - "rule": "sdiapi\\.com\\/big5\\/big5\\/1\\.23\\.1\\.1\\/", - "fingerprinting": 2, - "cookies": 0 - }, - { - "rule": "sdiapi\\.com\\/tprg\\/bouxavenue\\/1\\.23\\.1\\.1\\/", - "fingerprinting": 2, - "cookies": 0 - }, - { - "rule": "sdiapi\\.com\\/callawaygolf\\/callawaygolfpreowned\\/1\\.23\\.1\\.1\\/", - "fingerprinting": 2, - "cookies": 0.00000681 - }, - { - "rule": "sdiapi\\.com\\/stevemadden\\/dolcevita\\/1\\.23\\.1\\.1\\/", - "fingerprinting": 2, - "cookies": 0 - }, - { - "rule": "sdiapi\\.com/helenoftroy/.*", - "fingerprinting": 2, - "cookies": 0 - }, - { - "rule": "sdiapi\\.com\\/horizonblue\\/horizonblue\\/1\\.23\\.1\\.1\\/", - "fingerprinting": 2, - "cookies": 0 - }, - { - "rule": "sdiapi\\.com\\/rb\\/mucinex\\/1\\.23\\.1\\.1\\/", - "fingerprinting": 2, - "cookies": 0 - }, - { - "rule": "sdiapi\\.com\\/stevemadden\\/stevemadden\\/1\\.23\\.1\\.1\\/", - "fingerprinting": 2, - "cookies": 0 - } - ] - }, "sdtagging.azureedge.net": { "domain": "sdtagging.azureedge.net", "owner": { @@ -24413,7 +24088,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -24477,11 +24152,11 @@ "fingerprinting": 2, "cookies": 0.0115, "categories": [ + "Action Pixels", "Ad Motivated Tracking", "Advertising", "Analytics", - "Third-Party Analytics Marketing", - "Action Pixels" + "Third-Party Analytics Marketing" ], "default": "block", "rules": [ @@ -24509,11 +24184,11 @@ "fingerprinting": 1, "cookies": 0.0003, "categories": [ + "Action Pixels", "Ad Motivated Tracking", "Advertising", "Analytics", - "Third-Party Analytics Marketing", - "Action Pixels" + "Third-Party Analytics Marketing" ], "default": "block" }, @@ -24542,7 +24217,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -24553,7 +24228,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -24800,7 +24475,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -24811,7 +24486,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -24822,7 +24497,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -24871,9 +24546,9 @@ "Ad Motivated Tracking", "Advertising", "Analytics", - "Third-Party Analytics Marketing", + "Embedded Content", "Social - Share", - "Embedded Content" + "Third-Party Analytics Marketing" ], "default": "block" }, @@ -24890,9 +24565,9 @@ "categories": [ "Ad Motivated Tracking", "Advertising", - "Third-Party Analytics Marketing", + "Embedded Content", "Social - Share", - "Embedded Content" + "Third-Party Analytics Marketing" ], "default": "block" }, @@ -25103,7 +24778,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -25138,58 +24813,11 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" }, - "sift.com": { - "domain": "sift.com", - "owner": { - "name": "Sift Science, Inc.", - "displayName": "Sift Science", - "privacyPolicy": "https://sift.com/service-privacy" - }, - "prevalence": 0.000987, - "fingerprinting": 3, - "cookies": 0.000858, - "categories": [], - "default": "ignore", - "rules": [ - { - "rule": "sift\\.com\\/s\\.js", - "fingerprinting": 3, - "cookies": 0.000456 - }, - { - "rule": "sift\\.com\\/s-beta\\.js", - "fingerprinting": 3, - "cookies": 0.0000136 - } - ] - }, - "siftscience.com": { - "domain": "siftscience.com", - "owner": { - "name": "Sift Science, Inc.", - "displayName": "Sift Science", - "privacyPolicy": "https://sift.com/service-privacy" - }, - "prevalence": 0.0012, - "fingerprinting": 3, - "cookies": 0.00103, - "categories": [ - "Ad Fraud" - ], - "default": "ignore", - "rules": [ - { - "rule": "siftscience\\.com\\/s\\.js", - "fingerprinting": 3, - "cookies": 0.000572 - } - ] - }, "signifyd.com": { "domain": "signifyd.com", "owner": { @@ -25226,7 +24854,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -25329,10 +24957,10 @@ "fingerprinting": 0, "cookies": 0.104, "categories": [ + "Action Pixels", "Ad Motivated Tracking", "Advertising", - "Analytics", - "Action Pixels" + "Analytics" ], "default": "block" }, @@ -25342,7 +24970,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -25353,7 +24981,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -25382,7 +25010,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -25478,7 +25106,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -25535,7 +25163,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -25546,7 +25174,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -25667,7 +25295,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -25682,8 +25310,8 @@ "fingerprinting": 1, "cookies": 0.0212, "categories": [ - "Ad Motivated Tracking", "Action Pixels", + "Ad Motivated Tracking", "Social Network" ], "default": "block" @@ -25824,7 +25452,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -25850,7 +25478,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -25861,7 +25489,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -25924,7 +25552,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -25935,7 +25563,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -25946,7 +25574,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -26163,11 +25791,11 @@ "fingerprinting": 1, "cookies": 0.119, "categories": [ + "Action Pixels", "Ad Motivated Tracking", "Advertising", "Analytics", - "Audience Measurement", - "Action Pixels" + "Audience Measurement" ], "default": "block" }, @@ -26177,7 +25805,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -26204,7 +25832,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -26215,7 +25843,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -26226,7 +25854,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -26256,7 +25884,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -26267,7 +25895,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -26295,7 +25923,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -26306,7 +25934,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -26381,10 +26009,10 @@ "fingerprinting": 1, "cookies": 0.00496, "categories": [ + "Action Pixels", "Ad Motivated Tracking", "Advertising", - "Third-Party Analytics Marketing", - "Action Pixels" + "Third-Party Analytics Marketing" ], "default": "block" }, @@ -26394,7 +26022,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -26442,7 +26070,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -26453,7 +26081,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -26464,7 +26092,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -26475,7 +26103,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -26486,7 +26114,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -26497,7 +26125,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -26515,8 +26143,8 @@ "categories": [ "Ad Motivated Tracking", "Advertising", - "Third-Party Analytics Marketing", - "Embedded Content" + "Embedded Content", + "Third-Party Analytics Marketing" ], "default": "block" }, @@ -26569,7 +26197,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -26580,7 +26208,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -26634,7 +26262,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -26684,10 +26312,10 @@ "Advertising", "Analytics", "Audience Measurement", - "Federated Login", - "Social - Share", "Badge", "Embedded Content", + "Federated Login", + "Social - Share", "Social Network" ], "default": "block" @@ -26836,7 +26464,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -27010,13 +26638,13 @@ "fingerprinting": 0, "cookies": 0.00525, "categories": [ + "Action Pixels", "Ad Motivated Tracking", "Advertising", "Analytics", "Audience Measurement", - "Third-Party Analytics Marketing", - "Action Pixels", - "Session Replay" + "Session Replay", + "Third-Party Analytics Marketing" ], "default": "block" }, @@ -27107,9 +26735,9 @@ "fingerprinting": 1, "cookies": 0.0907, "categories": [ + "Ad Fraud", "Ad Motivated Tracking", - "Advertising", - "Ad Fraud" + "Advertising" ], "default": "block" }, @@ -27144,7 +26772,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -27155,7 +26783,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -27166,7 +26794,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -27417,7 +27045,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -27428,7 +27056,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -27516,9 +27144,9 @@ "Advertising", "Analytics", "Audience Measurement", + "Embedded Content", "SSO", - "Third-Party Analytics Marketing", - "Embedded Content" + "Third-Party Analytics Marketing" ], "default": "ignore" }, @@ -27545,46 +27173,92 @@ "rule": "tags\\.tiqcdn\\.com/utag/.*/utag\\.js", "exceptions": { "domains": [ + "1und1.de", + "agl.com.au", "asics.com", "bankofamerica.com", + "bankofscotland.co.uk", "bloomingdales.com", + "bupa.co.uk", + "bupa.com.au", "caremark.com", + "chihealth.com", "chilis.com", "cox.com", + "cvs.com", + "dignityhealth.com", + "fidelityrewards.com", + "fingerhut.com", + "halifax-online.co.uk", + "halifax.co.uk", "hsbc.co.uk", "hsbc.com", "humana.com", "intuit.com", + "latitudefinancial.com.au", + "lloydsbank.com", "marksandspencer.com", + "mbna.co.uk", + "mdanderson.org", "ml.com", "mtb.com", + "myaccountaccess.com", + "myvi.in", "pch.com", "priceline.com", - "usbank.com" + "providence.org", + "psjhmedgroups.org", + "schwab.com", + "scottishwidows.co.uk", + "spectrum.com", + "spectrum.net", + "stlukeshealth.org", + "sunlife.ca", + "swedish.org", + "t-mobile.com", + "tdameritrade.com", + "travelers.com", + "unimelb.edu.au", + "unionbank.com", + "unipolsai.it", + "unive.nl", + "usbank.com", + "visible.com", + "vmfh.org", + "vodacom.co.za", + "vodafone.co.uk", + "voeazul.com.br" ] }, "options": { "domains": [ "10play.com.au", + "1und1.de", "32red.com", "active.com", + "agl.com.au", "aktion-mensch.de", "americastire.com", + "bankofscotland.co.uk", "baseballsavings.com", "basf.us", "belk.com", "blackbaud.com", "bloomingdales.com", "boxlunch.com", + "bupa.co.uk", + "bupa.com.au", "canon.co.uk", "cbs.com", "cdw.com", "celebritycruises.com", + "chihealth.com", "commonspirit.org", "consumentenbond.nl", "converse.com", "costadelmar.com", "customerservice-macys.com", + "cvs.com", "cvshealth.com", "dignityhealth.org", "discounttire.com", @@ -27592,26 +27266,39 @@ "dropbox.com", "dropboxforum.com", "eddiebaueroutlet.com", + "fidelityrewards.com", + "fingerhut.com", "hagerty.com", + "halifax-online.co.uk", + "halifax.co.uk", "hartvannederland.nl", "hottopic.com", "hotwire.com", "hulu.com", + "humana.com", "ibm.com", + "intuit.com", "iweb-sharedealing.co.uk", "just-eat.ie", "kijk.nl", "klachtenkompas.nl", + "latitudefinancial.com.au", "lenscrafters.com", + "lloydsbank.com", "lloydsbankinggroup.com", "macys.com", "marksandspencer.com", + "mbna.co.uk", + "mdanderson.org", "meinestadt.de", "mercer.com", "michaels.com", "microsoft.com", "miumiu.com", "mscdirect.com", + "mtb.com", + "myaccountaccess.com", + "myvi.in", "ncl.com", "neimanmarcus.com", "newbalance.com", @@ -27631,6 +27318,8 @@ "potterybarn.com", "potterybarnkids.com", "prada.com", + "providence.org", + "psjhmedgroups.org", "qualcomm.com", "qvc.com", "rakuten.co.jp", @@ -27641,16 +27330,36 @@ "salvationarmy.org", "salvationarmyusa.org", "satruck.org", + "schwab.com", "schwabassetmanagement.com", + "scottishwidows.co.uk", "shownieuws.nl", + "spectrum.com", + "spectrum.net", + "stlukeshealth.org", "sunglasshut.com", + "sunlife.ca", + "swedish.org", + "t-mobile.com", "talbots.com", "targetoptical.com", + "tdameritrade.com", "thegreatcourses.com", "tommy.com", "top10.com", + "travelers.com", + "unimelb.edu.au", + "unionbank.com", + "unipolsai.it", + "unive.nl", + "usbank.com", "versace.com", "victoriassecret.com", + "visible.com", + "vmfh.org", + "vodacom.co.za", + "vodafone.co.uk", + "voeazul.com.br", "westelm.com", "williams-sonoma.com", "woolworths.com.au", @@ -27677,21 +27386,9 @@ { "rule": "tiqcdn\\.com/shared/tms/t\\.tealium_collect\\.1_0_3\\.js" }, - { - "rule": "tiqcdn\\.com/utag/immobilienscout/is24/prod/utag\\.js" - }, { "rule": "tiqcdn\\.com/dle/ibm/web/d_medallia_survey_configurations\\.js" }, - { - "rule": "tiqcdn\\.com/utag/telekom/bestellcentergk/prod/utag\\.js" - }, - { - "rule": "tiqcdn\\.com/utag/telekom/unterhaltung/prod/utag\\.js" - }, - { - "rule": "tiqcdn\\.com/utag/telekom/community/prod/utag\\.js" - }, { "rule": "tiqcdn\\.com/dle/usaa/nw/ent-pubhome-app\\.js" }, @@ -27701,45 +27398,9 @@ { "rule": "tiqcdn\\.com/dle/bofa/main/prod-_-live%20chat\\.js" }, - { - "rule": "tiqcdn\\.com/utag/colruytgroup/colruyt/prod/utag\\.js" - }, - { - "rule": "tiqcdn\\.com/utag/colruytgroup/dreamland/prod/utag\\.js" - }, - { - "rule": "tiqcdn\\.com/utag/corelio/gva-pub/prod/utag\\.js" - }, - { - "rule": "tiqcdn\\.com/utag/corelio/hbvl-pub/prod/utag\\.js" - }, - { - "rule": "tiqcdn\\.com/utag/intesasanpaolo/vetrina/prod/utag\\.js" - }, { "rule": "tiqcdn\\.com/utag/gmcr/keurighybris/prod/utag\\.modalExt_857\\.js" }, - { - "rule": "tiqcdn\\.com/utag/corelio/limburger-pub/prod/utag\\.js" - }, - { - "rule": "tiqcdn\\.com/utag/telekom/tsport/prod/utag\\.js" - }, - { - "rule": "tiqcdn\\.com/utag/corelio/nieuwsblad-pub/prod/utag\\.js" - }, - { - "rule": "tiqcdn\\.com/utag/axelspringer/asmb-rollingstone\\.de/prod/utag\\.js" - }, - { - "rule": "tiqcdn\\.com/utag/corelio/standaard-pub/prod/utag\\.js" - }, - { - "rule": "tiqcdn\\.com/utag/blog\\.telekom/com/prod/utag\\.js" - }, - { - "rule": "tiqcdn\\.com/utag/immobilienscout/is24-de-satellite/prod/utag\\.js" - }, { "rule": "tiqcdn\\.com/.*/prod/utag\\.tagsOptOut\\.js" }, @@ -27760,7 +27421,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -27910,9 +27571,9 @@ "fingerprinting": 0, "cookies": 0.000892, "categories": [ + "Action Pixels", "Ad Motivated Tracking", - "Advertising", - "Action Pixels" + "Advertising" ], "default": "block" }, @@ -28349,9 +28010,9 @@ "fingerprinting": 2, "cookies": 0.00777, "categories": [ + "Action Pixels", "Ad Motivated Tracking", - "Advertising", - "Action Pixels" + "Advertising" ], "default": "block" }, @@ -28516,10 +28177,10 @@ "Ad Motivated Tracking", "Advertising", "Analytics", + "Embedded Content", "Federated Login", "Social - Comment", "Social - Share", - "Embedded Content", "Social Network" ], "default": "ignore", @@ -28603,11 +28264,11 @@ "fingerprinting": 1, "cookies": 0.0507, "categories": [ + "Action Pixels", "Ad Motivated Tracking", "Advertising", - "Third-Party Analytics Marketing", "Social - Share", - "Action Pixels" + "Third-Party Analytics Marketing" ], "default": "block" }, @@ -28617,7 +28278,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -28652,8 +28313,8 @@ "fingerprinting": 2, "cookies": 0, "categories": [ - "Analytics", "Action Pixels", + "Analytics", "Embedded Content" ], "default": "block" @@ -28747,7 +28408,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -28758,7 +28419,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -28797,9 +28458,9 @@ "fingerprinting": 1, "cookies": 0.000599, "categories": [ + "Ad Fraud", "Ad Motivated Tracking", "Advertising", - "Ad Fraud", "Audience Measurement" ], "default": "ignore", @@ -28891,7 +28552,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -28963,8 +28624,8 @@ "Ad Motivated Tracking", "Advertising", "Audience Measurement", - "Third-Party Analytics Marketing", - "Embedded Content" + "Embedded Content", + "Third-Party Analytics Marketing" ], "default": "block" }, @@ -28974,7 +28635,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -28985,7 +28646,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -29122,18 +28783,6 @@ ], "default": "ignore" }, - "usercentrics.eu": { - "domain": "usercentrics.eu", - "owner": { - "name": "usercentrics.eu", - "displayName": "usercentrics.eu" - }, - "prevalence": 0.00803, - "fingerprinting": 2, - "cookies": 0.0000545, - "categories": [], - "default": "block" - }, "usergram.info": { "domain": "usergram.info", "owner": { @@ -29164,9 +28813,9 @@ "fingerprinting": 1, "cookies": 0.000211, "categories": [ + "Ad Fraud", "Ad Motivated Tracking", "Advertising", - "Ad Fraud", "Analytics", "Audience Measurement" ], @@ -29357,7 +29006,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -29482,8 +29131,8 @@ "cookies": 0.00751, "categories": [ "Analytics", - "Third-Party Analytics Marketing", - "Session Replay" + "Session Replay", + "Third-Party Analytics Marketing" ], "default": "block", "rules": [ @@ -29567,10 +29216,10 @@ "Ad Motivated Tracking", "Advertising", "Analytics", + "Embedded Content", "Federated Login", "Social - Comment", "Social - Share", - "Embedded Content", "Social Network" ], "default": "block", @@ -29653,7 +29302,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -29664,7 +29313,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -29790,7 +29439,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -29801,7 +29450,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -30761,14 +30410,14 @@ "fingerprinting": 3, "cookies": 0.0239, "categories": [ + "Action Pixels", "Ad Motivated Tracking", "Advertising", "Analytics", "Audience Measurement", - "SSO", - "Online Payment", - "Action Pixels", "Embedded Content", + "Online Payment", + "SSO", "Session Replay" ], "default": "ignore", @@ -31078,9 +30727,9 @@ "categories": [ "Ad Motivated Tracking", "Advertising", - "Social - Share", "Content Delivery", - "Embedded Content" + "Embedded Content", + "Social - Share" ], "default": "ignore" }, @@ -31359,8 +31008,8 @@ "cookies": 0.00773, "categories": [ "Advertising", - "Third-Party Analytics Marketing", - "Embedded Content" + "Embedded Content", + "Third-Party Analytics Marketing" ], "default": "block", "rules": [ @@ -31511,9 +31160,9 @@ "cookies": 0.0111, "categories": [ "Analytics", - "Federated Login", "Content Delivery", - "Embedded Content" + "Embedded Content", + "Federated Login" ], "default": "ignore" }, @@ -31529,37 +31178,13 @@ "categories": [], "default": "block" }, - "zeronaught.com": { - "domain": "zeronaught.com", - "owner": { - "name": "F5 Networks Inc", - "displayName": "F5 Networks" - }, - "prevalence": 0.000191, - "fingerprinting": 3, - "cookies": 0.0000476, - "categories": [], - "default": "ignore", - "rules": [ - { - "rule": "zeronaught\\.com\\/__imp_apg__\\/js\\/f5cs-a_aa_yxmyOQk-c56be27e\\.js", - "fingerprinting": 3, - "cookies": 0.0000136 - }, - { - "rule": "zeronaught\\.com\\/__imp_apg__\\/js\\/sed-hawaiianairlines-66239934\\.js", - "fingerprinting": 3, - "cookies": 0.0000136 - } - ] - }, "zestycrime.com": { "domain": "zestycrime.com", "owner": { "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -31789,25 +31414,6 @@ "categories": [], "default": "ignore" }, - "appconsent.io": { - "domain": "appconsent.io", - "owner": { - "name": "SFBX SAS", - "displayName": "SFBX" - }, - "prevalence": 0.00784, - "fingerprinting": 1, - "cookies": 0.00653, - "categories": [], - "default": "ignore", - "rules": [ - { - "rule": "appconsent\\.io\\/tcf2\\/30\\.2\\.0\\/core\\.bundle\\.js", - "fingerprinting": 1, - "cookies": 0.000101 - } - ] - }, "veoxa.com": { "domain": "veoxa.com", "owner": { @@ -31833,7 +31439,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32138,70 +31744,6 @@ } ] }, - "consensu.org": { - "domain": "consensu.org", - "owner": { - "name": "IAB Europe", - "displayName": "IAB Europe" - }, - "prevalence": 0.0174, - "fingerprinting": 2, - "cookies": 0.00149, - "categories": [ - "Non-Tracking" - ], - "default": "ignore", - "rules": [ - { - "rule": "consensu\\.org\\/v2\\/cmp\\.js", - "fingerprinting": 0, - "cookies": 0, - "comment": "pixel" - } - ] - }, - "cookielaw.org": { - "domain": "cookielaw.org", - "owner": { - "name": "OneTrust LLC", - "displayName": "OneTrust", - "privacyPolicy": "https://www.onetrust.com/privacy-notice" - }, - "prevalence": 0.0642, - "fingerprinting": 2, - "cookies": 0.0602, - "categories": [ - "Embedded Content", - "Non-Tracking" - ], - "default": "ignore", - "rules": [ - { - "rule": "cookielaw\\.org\\/consent\\/undefined\\/undefined\\.json", - "fingerprinting": 0, - "cookies": 0, - "comment": "pixel" - }, - { - "rule": "cookielaw\\.org\\/scripttemplates\\/otSDKStub\\.js", - "fingerprinting": 1, - "cookies": 0, - "comment": "pixel" - }, - { - "rule": "cookielaw\\.org\\/scripttemplates\\/202210\\.1\\.0\\/otBannerSdk\\.js", - "fingerprinting": 1, - "cookies": 0.000034, - "comment": "pixel" - }, - { - "rule": "cookielaw\\.org\\/scripttemplates\\/202210\\.1\\.0\\/otTCF\\.js", - "fingerprinting": 1, - "cookies": 0, - "comment": "pixel" - } - ] - }, "dmxleo.com": { "domain": "dmxleo.com", "owner": { @@ -32214,10 +31756,10 @@ "categories": [ "Ad Motivated Tracking", "Analytics", + "Embedded Content", "Federated Login", - "Third-Party Analytics Marketing", "Social - Share", - "Embedded Content" + "Third-Party Analytics Marketing" ], "default": "ignore", "rules": [ @@ -32403,8 +31945,8 @@ "Advertising", "Analytics", "Audience Measurement", - "Third-Party Analytics Marketing", - "Content Delivery" + "Content Delivery", + "Third-Party Analytics Marketing" ], "default": "ignore", "rules": [ @@ -32422,31 +31964,6 @@ } ] }, - "iubenda.com": { - "domain": "iubenda.com", - "owner": { - "name": "iubenda s.r.l.", - "displayName": "iubenda", - "privacyPolicy": "https://www.iubenda.com/en/" - }, - "prevalence": 0.00416, - "fingerprinting": 2, - "cookies": 0.000252, - "categories": [ - "Badge", - "Embedded Content", - "Non-Tracking" - ], - "default": "ignore", - "rules": [ - { - "rule": "iubenda\\.com\\/write", - "fingerprinting": 0, - "cookies": 0, - "comment": "pixel" - } - ] - }, "jwpltx.com": { "domain": "jwpltx.com", "owner": { @@ -32554,30 +32071,6 @@ "categories": [], "default": "ignore" }, - "onetrust.com": { - "domain": "onetrust.com", - "owner": { - "name": "OneTrust LLC", - "displayName": "OneTrust", - "privacyPolicy": "https://www.onetrust.com/privacy-notice" - }, - "prevalence": 0.0637, - "fingerprinting": 1, - "cookies": 0.00597, - "categories": [ - "Embedded Content", - "Non-Tracking" - ], - "default": "ignore", - "rules": [ - { - "rule": "onetrust\\.com\\/request\\/v1\\/privacyNotices\\/stats\\/views", - "fingerprinting": 0, - "cookies": 0, - "comment": "pixel" - } - ] - }, "outbrainimg.com": { "domain": "outbrainimg.com", "owner": { @@ -32659,22 +32152,6 @@ } ] }, - "polyfill.io": { - "domain": "polyfill.io", - "owner": { - "name": "The Financial Times Limited", - "displayName": "The Financial Times", - "privacyPolicy": "https://www.ft.com/" - }, - "prevalence": 0.0248, - "fingerprinting": 0, - "cookies": 0, - "categories": [ - "Content Delivery", - "Non-Tracking" - ], - "default": "ignore" - }, "quantcount.com": { "domain": "quantcount.com", "owner": { @@ -32755,9 +32232,9 @@ "fingerprinting": 2, "cookies": 0.00777, "categories": [ - "Online Payment", "Content Delivery", - "Embedded Content" + "Embedded Content", + "Online Payment" ], "default": "ignore", "rules": [ @@ -32781,10 +32258,10 @@ "fingerprinting": 1, "cookies": 0.00000681, "categories": [ - "Social - Comment", - "Social - Share", "Content Delivery", "Embedded Content", + "Social - Comment", + "Social - Share", "Social Network" ], "default": "ignore", @@ -33103,7 +32580,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33114,7 +32591,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33125,7 +32602,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33136,7 +32613,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33147,7 +32624,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33158,7 +32635,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33169,7 +32646,18 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "actuallything.com": { + "domain": "actuallything.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral", + "displayName": "Admiral" + }, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33180,7 +32668,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33191,7 +32679,18 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "agreeablearch.com": { + "domain": "agreeablearch.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral", + "displayName": "Admiral" + }, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33202,7 +32701,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33213,7 +32712,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33224,7 +32723,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33235,7 +32734,18 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "amusedbucket.com": { + "domain": "amusedbucket.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral", + "displayName": "Admiral" + }, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33246,7 +32756,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33257,7 +32767,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33268,7 +32778,29 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "aspiringapples.com": { + "domain": "aspiringapples.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral", + "displayName": "Admiral" + }, + "prevalence": 0.012, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "astonishingfood.com": { + "domain": "astonishingfood.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral", + "displayName": "Admiral" + }, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33279,7 +32811,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33290,7 +32822,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33301,7 +32833,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33312,7 +32844,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33323,7 +32855,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33334,7 +32866,18 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "balloonbelieve.com": { + "domain": "balloonbelieve.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral", + "displayName": "Admiral" + }, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33345,7 +32888,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33356,7 +32899,18 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "beamvolcano.com": { + "domain": "beamvolcano.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral", + "displayName": "Admiral" + }, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33367,7 +32921,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33378,7 +32932,29 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "bikesboard.com": { + "domain": "bikesboard.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral", + "displayName": "Admiral" + }, + "prevalence": 0.012, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "blackbrake.com": { + "domain": "blackbrake.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral", + "displayName": "Admiral" + }, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33389,7 +32965,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33400,7 +32976,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33411,7 +32987,29 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "boundarybusiness.com": { + "domain": "boundarybusiness.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral", + "displayName": "Admiral" + }, + "prevalence": 0.012, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "boundlessveil.com": { + "domain": "boundlessveil.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral", + "displayName": "Admiral" + }, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33422,7 +33020,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33433,7 +33031,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33444,7 +33042,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33455,7 +33053,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33466,7 +33064,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33477,7 +33075,18 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "buildingknife.com": { + "domain": "buildingknife.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral", + "displayName": "Admiral" + }, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33488,7 +33097,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33499,7 +33108,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33510,7 +33119,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33521,7 +33130,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33532,7 +33141,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33543,7 +33152,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33554,7 +33163,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33565,7 +33174,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33576,7 +33185,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33587,7 +33196,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33598,7 +33207,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33609,7 +33218,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33620,7 +33229,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33631,7 +33240,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33642,7 +33251,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33653,7 +33262,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33664,7 +33273,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33675,7 +33284,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33686,7 +33295,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33697,7 +33306,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33708,7 +33317,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33719,7 +33328,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33730,7 +33339,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33741,7 +33350,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33752,7 +33361,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33763,7 +33372,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33774,7 +33383,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33785,7 +33394,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33796,7 +33405,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33807,7 +33416,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33818,7 +33427,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33829,7 +33438,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33840,7 +33449,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33851,7 +33460,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33862,7 +33471,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33873,7 +33482,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33884,7 +33493,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33895,7 +33504,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33906,7 +33515,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33917,7 +33526,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33928,7 +33537,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33939,7 +33548,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33950,7 +33559,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33961,7 +33570,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33972,7 +33581,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33983,7 +33592,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33994,7 +33603,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34005,7 +33614,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34016,7 +33625,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34027,7 +33636,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34038,7 +33647,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34049,7 +33658,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34060,7 +33669,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34071,7 +33680,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34082,7 +33691,18 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "dustydime.com": { + "domain": "dustydime.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral", + "displayName": "Admiral" + }, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34093,7 +33713,18 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "elderlybean.com": { + "domain": "elderlybean.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral", + "displayName": "Admiral" + }, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34104,7 +33735,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34115,7 +33746,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34126,7 +33757,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34137,7 +33768,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34148,7 +33779,18 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "eventexistence.com": { + "domain": "eventexistence.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral", + "displayName": "Admiral" + }, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34159,7 +33801,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34170,7 +33812,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34181,7 +33823,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34192,7 +33834,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34203,7 +33845,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34214,7 +33856,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34225,7 +33867,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34236,7 +33878,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34247,7 +33889,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34258,7 +33900,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34269,7 +33911,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34280,7 +33922,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34291,7 +33933,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34302,7 +33944,40 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "flowerycreature.com": { + "domain": "flowerycreature.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral", + "displayName": "Admiral" + }, + "prevalence": 0.012, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "floweryfact.com": { + "domain": "floweryfact.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral", + "displayName": "Admiral" + }, + "prevalence": 0.012, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "followborder.com": { + "domain": "followborder.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral", + "displayName": "Admiral" + }, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34313,7 +33988,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34324,7 +33999,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34335,7 +34010,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34346,7 +34021,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34357,7 +34032,18 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "futuristicframe.com": { + "domain": "futuristicframe.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral", + "displayName": "Admiral" + }, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34368,7 +34054,18 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "gaudyairplane.com": { + "domain": "gaudyairplane.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral", + "displayName": "Admiral" + }, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34379,7 +34076,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34390,7 +34087,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34401,7 +34098,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34412,7 +34109,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34423,7 +34120,18 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "grandfatherguitar.com": { + "domain": "grandfatherguitar.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral", + "displayName": "Admiral" + }, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34434,7 +34142,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34445,7 +34153,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34456,7 +34164,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34467,7 +34175,18 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "guardeddirection.com": { + "domain": "guardeddirection.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral", + "displayName": "Admiral" + }, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34478,7 +34197,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34489,7 +34208,29 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "gustygrandmother.com": { + "domain": "gustygrandmother.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral", + "displayName": "Admiral" + }, + "prevalence": 0.012, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "hallowedinvention.com": { + "domain": "hallowedinvention.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral", + "displayName": "Admiral" + }, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34500,7 +34241,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34511,7 +34252,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34522,7 +34263,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34533,7 +34274,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34544,7 +34285,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34555,7 +34296,18 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "heartbreakingmind.com": { + "domain": "heartbreakingmind.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral", + "displayName": "Admiral" + }, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34566,7 +34318,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34577,7 +34329,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34588,7 +34340,18 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "honeybulb.com": { + "domain": "honeybulb.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral", + "displayName": "Admiral" + }, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34599,7 +34362,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34610,7 +34373,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34621,7 +34384,18 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "illinvention.com": { + "domain": "illinvention.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral", + "displayName": "Admiral" + }, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34632,7 +34406,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34643,7 +34417,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34654,7 +34428,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34665,7 +34439,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34676,7 +34450,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34687,7 +34461,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34698,7 +34472,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34709,7 +34483,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34720,7 +34494,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34731,7 +34505,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34742,7 +34516,18 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "lightenafterthought.com": { + "domain": "lightenafterthought.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral", + "displayName": "Admiral" + }, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34753,7 +34538,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34764,7 +34549,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34775,7 +34560,40 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "livingsleet.com": { + "domain": "livingsleet.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral", + "displayName": "Admiral" + }, + "prevalence": 0.012, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "lizardslaugh.com": { + "domain": "lizardslaugh.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral", + "displayName": "Admiral" + }, + "prevalence": 0.012, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "lonelyflavor.com": { + "domain": "lonelyflavor.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral", + "displayName": "Admiral" + }, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34786,7 +34604,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34797,7 +34615,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34808,7 +34626,18 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "ludicrousarch.com": { + "domain": "ludicrousarch.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral", + "displayName": "Admiral" + }, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34819,7 +34648,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34830,7 +34659,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34841,7 +34670,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34852,7 +34681,18 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "materialplayground.com": { + "domain": "materialplayground.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral", + "displayName": "Admiral" + }, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34863,7 +34703,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34874,7 +34714,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34885,7 +34725,18 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "merequartz.com": { + "domain": "merequartz.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral", + "displayName": "Admiral" + }, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34896,7 +34747,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34907,7 +34758,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34918,7 +34769,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34929,7 +34780,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34940,7 +34791,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34951,7 +34802,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34962,7 +34813,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34973,7 +34824,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34984,7 +34835,18 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "needlessnorth.com": { + "domain": "needlessnorth.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral", + "displayName": "Admiral" + }, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34995,7 +34857,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35006,7 +34868,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35017,7 +34879,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35028,7 +34890,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35039,7 +34901,18 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "obscenesidewalk.com": { + "domain": "obscenesidewalk.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral", + "displayName": "Admiral" + }, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35050,7 +34923,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35061,7 +34934,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35072,7 +34945,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35083,7 +34956,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35094,7 +34967,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35105,7 +34978,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35116,7 +34989,18 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "parentpicture.com": { + "domain": "parentpicture.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral", + "displayName": "Admiral" + }, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35127,7 +35011,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35138,7 +35022,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35149,7 +35033,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35160,7 +35044,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35171,7 +35055,51 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "poeticpackage.com": { + "domain": "poeticpackage.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral", + "displayName": "Admiral" + }, + "prevalence": 0.012, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "politeplanes.com": { + "domain": "politeplanes.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral", + "displayName": "Admiral" + }, + "prevalence": 0.012, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "politicalporter.com": { + "domain": "politicalporter.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral", + "displayName": "Admiral" + }, + "prevalence": 0.012, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "powderjourney.com": { + "domain": "powderjourney.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral", + "displayName": "Admiral" + }, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35182,7 +35110,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35193,7 +35121,18 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "pumpedpancake.com": { + "domain": "pumpedpancake.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral", + "displayName": "Admiral" + }, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35204,7 +35143,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35215,7 +35154,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35226,7 +35165,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35237,7 +35176,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35248,7 +35187,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35259,7 +35198,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35270,7 +35209,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35281,7 +35220,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35292,7 +35231,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35303,7 +35242,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35314,7 +35253,18 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "rebelhen.com": { + "domain": "rebelhen.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral", + "displayName": "Admiral" + }, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35325,7 +35275,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35336,7 +35286,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35347,7 +35297,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35358,7 +35308,18 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "regulatesleet.com": { + "domain": "regulatesleet.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral", + "displayName": "Admiral" + }, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35369,29 +35330,40 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "resonantbrush.com": { + "domain": "resonantbrush.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral", + "displayName": "Admiral" + }, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" }, - "resonantbrush.com": { - "domain": "resonantbrush.com", + "respectrain.com": { + "domain": "respectrain.com", "owner": { "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" }, - "respectrain.com": { - "domain": "respectrain.com", + "retrievemint.com": { + "domain": "retrievemint.com", "owner": { "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35402,7 +35374,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35413,7 +35385,18 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "rigidrobin.com": { + "domain": "rigidrobin.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral", + "displayName": "Admiral" + }, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35424,7 +35407,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35435,7 +35418,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35446,7 +35429,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35457,7 +35440,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35468,7 +35451,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35479,7 +35462,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35490,7 +35473,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35501,7 +35484,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35512,7 +35495,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35523,7 +35506,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35534,7 +35517,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35545,7 +35528,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35556,7 +35539,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35567,7 +35550,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35578,7 +35561,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35589,7 +35572,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35600,7 +35583,18 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "serioussuit.com": { + "domain": "serioussuit.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral", + "displayName": "Admiral" + }, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35611,7 +35605,18 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "settleshoes.com": { + "domain": "settleshoes.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral", + "displayName": "Admiral" + }, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35622,7 +35627,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35633,7 +35638,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35644,7 +35649,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35655,7 +35660,18 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "shirtsidewalk.com": { + "domain": "shirtsidewalk.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral", + "displayName": "Admiral" + }, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35666,7 +35682,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35677,7 +35693,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35688,7 +35704,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35699,7 +35715,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35710,7 +35726,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35721,7 +35737,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35732,7 +35748,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35743,7 +35759,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35754,7 +35770,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35765,7 +35781,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35776,7 +35792,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35787,7 +35803,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35798,7 +35814,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35809,7 +35825,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35820,7 +35836,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35831,7 +35847,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35842,7 +35858,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35853,7 +35869,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35864,7 +35880,18 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "stakingbasket.com": { + "domain": "stakingbasket.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral", + "displayName": "Admiral" + }, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35875,7 +35902,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35886,7 +35913,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35897,7 +35924,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35908,7 +35935,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35919,7 +35946,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35930,7 +35957,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35941,7 +35968,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35952,7 +35979,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35963,7 +35990,18 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "stomachscience.com": { + "domain": "stomachscience.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral", + "displayName": "Admiral" + }, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35974,7 +36012,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35985,7 +36023,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35996,7 +36034,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36007,7 +36045,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36018,7 +36056,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36029,7 +36067,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36040,7 +36078,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36051,7 +36089,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36062,7 +36100,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36073,7 +36111,18 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "suspectmark.com": { + "domain": "suspectmark.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral", + "displayName": "Admiral" + }, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36084,7 +36133,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36095,7 +36144,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36106,7 +36155,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36117,7 +36166,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36128,7 +36177,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36139,7 +36188,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36150,7 +36199,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36161,7 +36210,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36172,7 +36221,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36183,7 +36232,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36194,7 +36243,18 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "temptteam.com": { + "domain": "temptteam.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral", + "displayName": "Admiral" + }, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36205,7 +36265,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36216,7 +36276,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36227,7 +36287,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36238,7 +36298,18 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "thoughtlessknot.com": { + "domain": "thoughtlessknot.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral", + "displayName": "Admiral" + }, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36249,7 +36320,18 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "tidymitten.com": { + "domain": "tidymitten.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral", + "displayName": "Admiral" + }, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36260,7 +36342,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36271,7 +36353,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36282,7 +36364,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36293,7 +36375,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36304,7 +36386,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36315,7 +36397,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36326,7 +36408,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36337,7 +36419,18 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "unaccountablepie.com": { + "domain": "unaccountablepie.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral", + "displayName": "Admiral" + }, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36348,7 +36441,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36359,7 +36452,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36370,7 +36463,18 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "unequaltrail.com": { + "domain": "unequaltrail.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral", + "displayName": "Admiral" + }, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36381,7 +36485,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36392,7 +36496,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36403,7 +36507,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36414,7 +36518,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36425,7 +36529,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36436,7 +36540,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36447,7 +36551,18 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "virtualvincent.com": { + "domain": "virtualvincent.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral", + "displayName": "Admiral" + }, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36458,7 +36573,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36469,7 +36584,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36480,7 +36595,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36491,7 +36606,18 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "wildcommittee.com": { + "domain": "wildcommittee.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral", + "displayName": "Admiral" + }, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36502,7 +36628,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36513,7 +36639,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36524,7 +36650,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0127, + "prevalence": 0.012, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -38923,18 +39049,6 @@ "prevalence": 0.175, "displayName": "Arcspire" }, - "Arkose Labs, Inc.": { - "domains": [ - "arkoselabs.com", - "funcaptcha.co", - "funcaptcha.com", - "funcaptcha.net", - "swipeads.co", - "swipeads.com" - ], - "prevalence": 0.0102, - "displayName": "Arkose Labs" - }, "Akamai Technologies": { "domains": [ "abmr.net", @@ -39792,13 +39906,6 @@ "prevalence": 0.639, "displayName": "Cint" }, - "Civic Computing Limited": { - "domains": [ - "civiccomputing.com" - ], - "prevalence": 0.201, - "displayName": "Civic Computing" - }, "ck-ie.com": { "domains": [ "ck-ie.com" @@ -40037,51 +40144,6 @@ "prevalence": 0.296, "displayName": "ConnectAd" }, - "Sirdata SAS": { - "domains": [ - "consentframework.com", - "datnova.com", - "sddan.com", - "sirdata.com", - "sirdata.io", - "thirdata.com" - ], - "prevalence": 0.442, - "displayName": "Sirdata" - }, - "consentmanager AB": { - "domains": [ - "choicemanager.net", - "consentmanager.be", - "consentmanager.ch", - "consentmanager.es", - "consentmanager.fr", - "consentmanager.io", - "consentmanager.mx", - "consentmanager.net", - "consentmanager.us", - "cookie-consent.net", - "cookiebot.es", - "cookiebot.it", - "cookiebot.net", - "cookiecrawler.net", - "cookiecrawler.org", - "cookiefirst.net", - "cookiefirst.org", - "cookiefirst.pl", - "cookiefirst.sk", - "cookiefox.net", - "cookieinformation.lt", - "cookiescanner.org", - "cookiespider.net", - "cookiespider.org", - "cookietext.net", - "cookieyes.nl", - "policymanager.net" - ], - "prevalence": 0.359, - "displayName": "ConsentManager" - }, "contentexchange.me": { "domains": [ "contentexchange.me" @@ -40128,39 +40190,6 @@ "prevalence": 0.0027, "displayName": "Motionpoint" }, - "cookiefirst.com": { - "domains": [ - "cookiefirst.com" - ], - "prevalence": 0, - "displayName": "cookiefirst.com" - }, - "Cookie Information A/S": { - "domains": [ - "cookiebanner.com", - "cookieinfo.dk", - "cookieinformation.co.uk", - "cookieinformation.com", - "cookieinformation.dk", - "cookieinformation.eu", - "cookieinformation.se", - "freeccpatool.com", - "vendorlistgenerator.eu", - "wpgdprc.com" - ], - "prevalence": 0.187, - "displayName": "Cookie Information" - }, - "OneTrust LLC": { - "domains": [ - "cookielaw.org", - "cookiepro.com", - "onetrust.com", - "onetrust.io" - ], - "prevalence": 7.37, - "displayName": "OneTrust" - }, "Vidazoo Ltd": { "domains": [ "cootlogix.com", @@ -40593,29 +40622,6 @@ "prevalence": 0.975, "displayName": "DoubleVerify" }, - "Ringier Axel Springer Media AG": { - "domains": [ - "auto-swiat.pl", - "blikk.hu", - "dreamlab.pl", - "ewydania.pl", - "grupaonet.pl", - "komputerswiat.pl", - "medonet.pl", - "newsweek.pl", - "nk.pl", - "ocdn.eu", - "onet.pl", - "pclab.pl", - "schweizer-illustrierte.ch", - "skapiec.pl", - "vod.pl", - "zapytaj.com.pl", - "zumi.pl" - ], - "prevalence": 0.0368, - "displayName": "Ringier Axel Springer" - }, "Drift.com, Inc.": { "domains": [ "drift.com", @@ -41100,13 +41106,6 @@ "prevalence": 0.214, "displayName": "ForeSee Results" }, - "Forter Inc.": { - "domains": [ - "forter.com" - ], - "prevalence": 0.3, - "displayName": "Forter" - }, "Marketing Science Consulting Group, Inc.": { "domains": [ "fouanalytics.com", @@ -43411,6 +43410,29 @@ "prevalence": 0, "displayName": "ntvpwpush.com" }, + "Ringier Axel Springer Media AG": { + "domains": [ + "auto-swiat.pl", + "blikk.hu", + "dreamlab.pl", + "ewydania.pl", + "grupaonet.pl", + "komputerswiat.pl", + "medonet.pl", + "newsweek.pl", + "nk.pl", + "ocdn.eu", + "onet.pl", + "pclab.pl", + "schweizer-illustrierte.ch", + "skapiec.pl", + "vod.pl", + "zapytaj.com.pl", + "zumi.pl" + ], + "prevalence": 0.0368, + "displayName": "Ringier Axel Springer" + }, "Retyp LLC": { "domains": [ "monstercampaigns.com", @@ -43882,18 +43904,6 @@ "prevalence": 0.688, "displayName": "Perfect Market" }, - "PerimeterX, Inc.": { - "domains": [ - "perimeterx.com", - "perimeterx.net", - "px-cdn.net", - "px-client.net", - "px-cloud.net", - "pxi.pub" - ], - "prevalence": 0.107, - "displayName": "PerimeterX" - }, "Permutive, Inc.": { "domains": [ "permutive.app", @@ -44708,12 +44718,17 @@ "prevalence": 0, "displayName": "sda.fyi" }, - "sourcedefense": { + "Sirdata SAS": { "domains": [ - "sdiapi.com" + "consentframework.com", + "datnova.com", + "sddan.com", + "sirdata.com", + "sirdata.io", + "thirdata.com" ], - "prevalence": 0.0327, - "displayName": "sourcedefense" + "prevalence": 0.442, + "displayName": "Sirdata" }, "searchspring.io": { "domains": [ @@ -44914,14 +44929,6 @@ "prevalence": 0.107, "displayName": "Dual Technologies Services" }, - "Sift Science, Inc.": { - "domains": [ - "sift.com", - "siftscience.com" - ], - "prevalence": 0.217, - "displayName": "Sift Science" - }, "Signifyd Inc.": { "domains": [ "signifyd.com" @@ -45826,13 +45833,6 @@ "prevalence": 0, "displayName": "usbrowserspeed.com" }, - "usercentrics.eu": { - "domains": [ - "usercentrics.eu" - ], - "prevalence": 0, - "displayName": "usercentrics.eu" - }, "beBit Inc.": { "domains": [ "usergram.info", @@ -46374,15 +46374,6 @@ "prevalence": 0.511, "displayName": "Zeotap" }, - "F5 Networks Inc": { - "domains": [ - "f5.com", - "nginx.com", - "zeronaught.com" - ], - "prevalence": 0.0054, - "displayName": "F5 Networks" - }, "zipMoney Payments Pty Ltd": { "domains": [ "zip.co", @@ -46437,14 +46428,6 @@ "prevalence": 0.0041, "displayName": "Telstra" }, - "SFBX SAS": { - "domains": [ - "appconsent.io", - "sfbx.io" - ], - "prevalence": 0.0892, - "displayName": "SFBX" - }, "J S WEB PRODUCTION": { "domains": [ "ad2perf.com", @@ -46521,13 +46504,6 @@ "prevalence": 0, "displayName": "clean.gg" }, - "IAB Europe": { - "domains": [ - "consensu.org" - ], - "prevalence": 1.45, - "displayName": "IAB Europe" - }, "Fonticons Inc": { "domains": [ "fontawesome.com", @@ -46539,13 +46515,6 @@ "prevalence": 0.881, "displayName": "Fonticons" }, - "iubenda s.r.l.": { - "domains": [ - "iubenda.com" - ], - "prevalence": 0.387, - "displayName": "iubenda" - }, "nereserv.com": { "domains": [ "nereserv.com" @@ -46561,14 +46530,6 @@ "prevalence": 0, "displayName": "OnAudience" }, - "The Financial Times Limited": { - "domains": [ - "ft.com", - "polyfill.io" - ], - "prevalence": 0.0007, - "displayName": "The Financial Times" - }, "rtactivate.com": { "domains": [ "rtactivate.com" @@ -46698,8 +46659,10 @@ "acidpigs.com", "actoramusement.com", "actuallysnake.com", + "actuallything.com", "adorableanger.com", "adventurousamount.com", + "agreeablearch.com", "agreeabletouch.com", "aheadday.com", "aliasanvil.com", @@ -46709,12 +46672,15 @@ "aloofvest.com", "ambiguousafternoon.com", "ambiguousdinosaurs.com", + "amusedbucket.com", "ancientact.com", "annoyedairport.com", "annoyingacoustics.com", "annoyingclover.com", "aquaticowl.com", + "aspiringapples.com", "aspiringattempt.com", + "astonishingfood.com", "attractionbanana.com", "audioarctic.com", "automaticside.com", @@ -46725,27 +46691,34 @@ "badgevolcano.com", "bagbeam.com", "baitbaseball.com", + "balloonbelieve.com", "ballsbanana.com", "bandborder.com", "barbarousbase.com", "basketballbelieve.com", "bawdybalance.com", + "beamvolcano.com", "bedsberry.com", "beginnerpancake.com", "begintrain.com", "bestboundary.com", + "bikesboard.com", "billowybelief.com", + "blackbrake.com", "bleachbubble.com", "blushingbeast.com", "blushingbread.com", "boilingcredit.com", "boredcrown.com", + "boundarybusiness.com", + "boundlessveil.com", "brainynut.com", "bravecalculator.com", "breadbalance.com", "breakfastboat.com", "broadborder.com", "brotherslocket.com", + "buildingknife.com", "bulbbait.com", "burnbubble.com", "bushesbag.com", @@ -46835,7 +46808,9 @@ "dq95d35.com", "drainpaste.com", "dramaticdirection.com", + "dustydime.com", "elasticchange.com", + "elderlybean.com", "encouragingthread.com", "endurablebulb.com", "energeticladybug.com", @@ -46844,6 +46819,7 @@ "enviousshape.com", "equablekettle.com", "evanescentedge.com", + "eventexistence.com", "exhibitsneeze.com", "expansioneggnog.com", "exuberantedge.com", @@ -46866,8 +46842,11 @@ "flimsycircle.com", "flimsythought.com", "flowerstreatment.com", + "flowerycreature.com", + "floweryfact.com", "floweryflavor.com", "flutteringfireman.com", + "followborder.com", "fortunatemark.com", "frailfruit.com", "franticroof.com", @@ -46878,9 +46857,11 @@ "functionalfeather.com", "furryfork.com", "futuristicfifth.com", + "futuristicframe.com", "fuzzybasketball.com", "fuzzyerror.com", "gammamaximum.com", + "gaudyairplane.com", "giddycoat.com", "giraffepiano.com", "givevacation.com", @@ -46890,14 +46871,18 @@ "gondolagnome.com", "gorgeousedge.com", "grainmass.com", + "grandfatherguitar.com", "grayoranges.com", "grayreceipt.com", "greasysquare.com", "grouchypush.com", "grumpydime.com", + "guardeddirection.com", "guidecent.com", "guiltlessbasketball.com", "gulliblegrip.com", + "gustygrandmother.com", + "hallowedinvention.com", "haltingbadge.com", "haltinggold.com", "hammerhearing.com", @@ -46908,15 +46893,18 @@ "haplessland.com", "harborcaption.com", "hatefulrequest.com", + "heartbreakingmind.com", "hearthorn.com", "heavyplayground.com", "historicalbeam.com", "hocgeese.com", "hollowafterthought.com", + "honeybulb.com", "honorableland.com", "horsenectar.com", "hospitablehat.com", "hystericalcloth.com", + "illinvention.com", "impossibleexpansion.com", "impulsejewel.com", "incompetentjoke.com", @@ -46932,14 +46920,19 @@ "largebrass.com", "laughablelizards.com", "leftliquid.com", + "lightenafterthought.com", "livelumber.com", "livelylaugh.com", "livelyreward.com", + "livingsleet.com", + "lizardslaugh.com", + "lonelyflavor.com", "longingtrees.com", "looseloaf.com", "lorenzourban.com", "losslace.com", "lovelydrum.com", + "ludicrousarch.com", "lumpylumber.com", "lunchroomlock.com", "maddeningpowder.com", @@ -46948,6 +46941,7 @@ "marriedbelief.com", "materialisticmoon.com", "materialparcel.com", + "materialplayground.com", "measlymiddle.com", "meatydime.com", "meddleplant.com", @@ -46955,6 +46949,7 @@ "memorizematch.com", "memorizeneck.com", "mentorsticks.com", + "merequartz.com", "mightyspiders.com", "mixedreading.com", "modularmental.com", @@ -46966,6 +46961,7 @@ "muteknife.com", "nappyattack.com", "neatshade.com", + "needlessnorth.com", "nervoussummer.com", "nightwound.com", "nondescriptcrowd.com", @@ -46974,6 +46970,7 @@ "nutritiousbean.com", "nuttyorganization.com", "oafishchance.com", + "obscenesidewalk.com", "operationchicken.com", "optimallimit.com", "outstandingincome.com", @@ -46986,6 +46983,7 @@ "panickypancake.com", "panoramicplane.com", "parchedsofa.com", + "parentpicture.com", "partplanes.com", "passivepolo.com", "peacefullimit.com", @@ -46997,8 +46995,12 @@ "plotrabbit.com", "pluckypocket.com", "pocketfaucet.com", + "poeticpackage.com", + "politeplanes.com", + "politicalporter.com", "possibleboats.com", "potatoinvention.com", + "powderjourney.com", "powerfulcopper.com", "predictplate.com", "prepareplanes.com", @@ -47008,6 +47010,7 @@ "protestcopy.com", "psychedelicarithmetic.com", "puffypurpose.com", + "pumpedpancake.com", "punyplant.com", "quietknowledge.com", "quillkick.com", @@ -47026,6 +47029,7 @@ "rangeplayground.com", "raresummer.com", "readymoon.com", + "rebelhen.com", "rebelsubway.com", "rebelswing.com", "receptivereaction.com", @@ -47033,6 +47037,7 @@ "reconditerake.com", "reconditerespect.com", "regularplants.com", + "regulatesleet.com", "rehabilitatereason.com", "repeatsweater.com", "replaceroute.com", @@ -47041,11 +47046,13 @@ "respectrain.com", "restrainstorm.com", "restructureinvention.com", + "retrievemint.com", "rhetoricalloss.com", "rhetoricalveil.com", "richstring.com", "righteouscrayon.com", "rightfulfall.com", + "rigidrobin.com", "roofrelation.com", "ruralrobin.com", "rusticprice.com", @@ -47078,7 +47085,9 @@ "selectivesummer.com", "selfishsnake.com", "separatesort.com", + "serioussuit.com", "serpentshampoo.com", + "settleshoes.com", "shakegoldfish.com", "shakyseat.com", "shakysurprise.com", @@ -47086,6 +47095,7 @@ "shamerain.com", "shapecomb.com", "shesubscriptions.com", + "shirtsidewalk.com", "shiveringspot.com", "shiverscissors.com", "shockingship.com", @@ -47121,6 +47131,7 @@ "spookysleet.com", "spotlessstamp.com", "spottednoise.com", + "stakingbasket.com", "stakingshock.com", "stakingsmile.com", "stalesummer.com", @@ -47138,6 +47149,7 @@ "stingycrush.com", "stingyshoe.com", "stingyspoon.com", + "stomachscience.com", "straightnest.com", "strangeclocks.com", "strangesink.com", @@ -47157,6 +47169,7 @@ "superficialspring.com", "superficialsquare.com", "supportwaves.com", + "suspectmark.com", "swankysquare.com", "swellstocking.com", "swelteringsleep.com", @@ -47172,14 +47185,17 @@ "teenytinyshirt.com", "teenytinytongue.com", "tempertrick.com", + "temptteam.com", "tendertest.com", "terriblethumb.com", "terrifictooth.com", "thinkitten.com", "thirdrespect.com", "thomastorch.com", + "thoughtlessknot.com", "threetruck.com", "ticketaunt.com", + "tidymitten.com", "tiredthroat.com", "tiresomethunder.com", "tremendousplastic.com", @@ -47191,10 +47207,12 @@ "ubiquitousyard.com", "ultraoranges.com", "unablehope.com", + "unaccountablepie.com", "unbecominghall.com", "unbecominglamp.com", "uncoveredexpert.com", "unequalbrake.com", + "unequaltrail.com", "uninterestedquarter.com", "unknowncrate.com", "untidyrice.com", @@ -47206,6 +47224,7 @@ "venusgloria.com", "verdantanswer.com", "verseballs.com", + "virtualvincent.com", "volatilevessel.com", "voraciousgrip.com", "wantingwindow.com", @@ -47214,12 +47233,13 @@ "wearbasin.com", "wellgroomedhydrant.com", "whispermeeting.com", + "wildcommittee.com", "workoperation.com", "zestycrime.com", "zipperxray.com", "zlp6s.pw" ], - "prevalence": 0.0127, + "prevalence": 0.012, "displayName": "Admiral" } }, @@ -47947,8 +47967,10 @@ "acidpigs.com": "Leven Labs, Inc. DBA Admiral", "actoramusement.com": "Leven Labs, Inc. DBA Admiral", "actuallysnake.com": "Leven Labs, Inc. DBA Admiral", + "actuallything.com": "Leven Labs, Inc. DBA Admiral", "adorableanger.com": "Leven Labs, Inc. DBA Admiral", "adventurousamount.com": "Leven Labs, Inc. DBA Admiral", + "agreeablearch.com": "Leven Labs, Inc. DBA Admiral", "agreeabletouch.com": "Leven Labs, Inc. DBA Admiral", "aheadday.com": "Leven Labs, Inc. DBA Admiral", "aliasanvil.com": "Leven Labs, Inc. DBA Admiral", @@ -47958,12 +47980,15 @@ "aloofvest.com": "Leven Labs, Inc. DBA Admiral", "ambiguousafternoon.com": "Leven Labs, Inc. DBA Admiral", "ambiguousdinosaurs.com": "Leven Labs, Inc. DBA Admiral", + "amusedbucket.com": "Leven Labs, Inc. DBA Admiral", "ancientact.com": "Leven Labs, Inc. DBA Admiral", "annoyedairport.com": "Leven Labs, Inc. DBA Admiral", "annoyingacoustics.com": "Leven Labs, Inc. DBA Admiral", "annoyingclover.com": "Leven Labs, Inc. DBA Admiral", "aquaticowl.com": "Leven Labs, Inc. DBA Admiral", + "aspiringapples.com": "Leven Labs, Inc. DBA Admiral", "aspiringattempt.com": "Leven Labs, Inc. DBA Admiral", + "astonishingfood.com": "Leven Labs, Inc. DBA Admiral", "attractionbanana.com": "Leven Labs, Inc. DBA Admiral", "audioarctic.com": "Leven Labs, Inc. DBA Admiral", "automaticside.com": "Leven Labs, Inc. DBA Admiral", @@ -47974,27 +47999,34 @@ "badgevolcano.com": "Leven Labs, Inc. DBA Admiral", "bagbeam.com": "Leven Labs, Inc. DBA Admiral", "baitbaseball.com": "Leven Labs, Inc. DBA Admiral", + "balloonbelieve.com": "Leven Labs, Inc. DBA Admiral", "ballsbanana.com": "Leven Labs, Inc. DBA Admiral", "bandborder.com": "Leven Labs, Inc. DBA Admiral", "barbarousbase.com": "Leven Labs, Inc. DBA Admiral", "basketballbelieve.com": "Leven Labs, Inc. DBA Admiral", "bawdybalance.com": "Leven Labs, Inc. DBA Admiral", + "beamvolcano.com": "Leven Labs, Inc. DBA Admiral", "bedsberry.com": "Leven Labs, Inc. DBA Admiral", "beginnerpancake.com": "Leven Labs, Inc. DBA Admiral", "begintrain.com": "Leven Labs, Inc. DBA Admiral", "bestboundary.com": "Leven Labs, Inc. DBA Admiral", + "bikesboard.com": "Leven Labs, Inc. DBA Admiral", "billowybelief.com": "Leven Labs, Inc. DBA Admiral", + "blackbrake.com": "Leven Labs, Inc. DBA Admiral", "bleachbubble.com": "Leven Labs, Inc. DBA Admiral", "blushingbeast.com": "Leven Labs, Inc. DBA Admiral", "blushingbread.com": "Leven Labs, Inc. DBA Admiral", "boilingcredit.com": "Leven Labs, Inc. DBA Admiral", "boredcrown.com": "Leven Labs, Inc. DBA Admiral", + "boundarybusiness.com": "Leven Labs, Inc. DBA Admiral", + "boundlessveil.com": "Leven Labs, Inc. DBA Admiral", "brainynut.com": "Leven Labs, Inc. DBA Admiral", "bravecalculator.com": "Leven Labs, Inc. DBA Admiral", "breadbalance.com": "Leven Labs, Inc. DBA Admiral", "breakfastboat.com": "Leven Labs, Inc. DBA Admiral", "broadborder.com": "Leven Labs, Inc. DBA Admiral", "brotherslocket.com": "Leven Labs, Inc. DBA Admiral", + "buildingknife.com": "Leven Labs, Inc. DBA Admiral", "bulbbait.com": "Leven Labs, Inc. DBA Admiral", "burnbubble.com": "Leven Labs, Inc. DBA Admiral", "bushesbag.com": "Leven Labs, Inc. DBA Admiral", @@ -48084,7 +48116,9 @@ "dq95d35.com": "Leven Labs, Inc. DBA Admiral", "drainpaste.com": "Leven Labs, Inc. DBA Admiral", "dramaticdirection.com": "Leven Labs, Inc. DBA Admiral", + "dustydime.com": "Leven Labs, Inc. DBA Admiral", "elasticchange.com": "Leven Labs, Inc. DBA Admiral", + "elderlybean.com": "Leven Labs, Inc. DBA Admiral", "encouragingthread.com": "Leven Labs, Inc. DBA Admiral", "endurablebulb.com": "Leven Labs, Inc. DBA Admiral", "energeticladybug.com": "Leven Labs, Inc. DBA Admiral", @@ -48093,6 +48127,7 @@ "enviousshape.com": "Leven Labs, Inc. DBA Admiral", "equablekettle.com": "Leven Labs, Inc. DBA Admiral", "evanescentedge.com": "Leven Labs, Inc. DBA Admiral", + "eventexistence.com": "Leven Labs, Inc. DBA Admiral", "exhibitsneeze.com": "Leven Labs, Inc. DBA Admiral", "expansioneggnog.com": "Leven Labs, Inc. DBA Admiral", "exuberantedge.com": "Leven Labs, Inc. DBA Admiral", @@ -48115,8 +48150,11 @@ "flimsycircle.com": "Leven Labs, Inc. DBA Admiral", "flimsythought.com": "Leven Labs, Inc. DBA Admiral", "flowerstreatment.com": "Leven Labs, Inc. DBA Admiral", + "flowerycreature.com": "Leven Labs, Inc. DBA Admiral", + "floweryfact.com": "Leven Labs, Inc. DBA Admiral", "floweryflavor.com": "Leven Labs, Inc. DBA Admiral", "flutteringfireman.com": "Leven Labs, Inc. DBA Admiral", + "followborder.com": "Leven Labs, Inc. DBA Admiral", "fortunatemark.com": "Leven Labs, Inc. DBA Admiral", "frailfruit.com": "Leven Labs, Inc. DBA Admiral", "franticroof.com": "Leven Labs, Inc. DBA Admiral", @@ -48127,9 +48165,11 @@ "functionalfeather.com": "Leven Labs, Inc. DBA Admiral", "furryfork.com": "Leven Labs, Inc. DBA Admiral", "futuristicfifth.com": "Leven Labs, Inc. DBA Admiral", + "futuristicframe.com": "Leven Labs, Inc. DBA Admiral", "fuzzybasketball.com": "Leven Labs, Inc. DBA Admiral", "fuzzyerror.com": "Leven Labs, Inc. DBA Admiral", "gammamaximum.com": "Leven Labs, Inc. DBA Admiral", + "gaudyairplane.com": "Leven Labs, Inc. DBA Admiral", "giddycoat.com": "Leven Labs, Inc. DBA Admiral", "giraffepiano.com": "Leven Labs, Inc. DBA Admiral", "givevacation.com": "Leven Labs, Inc. DBA Admiral", @@ -48139,14 +48179,18 @@ "gondolagnome.com": "Leven Labs, Inc. DBA Admiral", "gorgeousedge.com": "Leven Labs, Inc. DBA Admiral", "grainmass.com": "Leven Labs, Inc. DBA Admiral", + "grandfatherguitar.com": "Leven Labs, Inc. DBA Admiral", "grayoranges.com": "Leven Labs, Inc. DBA Admiral", "grayreceipt.com": "Leven Labs, Inc. DBA Admiral", "greasysquare.com": "Leven Labs, Inc. DBA Admiral", "grouchypush.com": "Leven Labs, Inc. DBA Admiral", "grumpydime.com": "Leven Labs, Inc. DBA Admiral", + "guardeddirection.com": "Leven Labs, Inc. DBA Admiral", "guidecent.com": "Leven Labs, Inc. DBA Admiral", "guiltlessbasketball.com": "Leven Labs, Inc. DBA Admiral", "gulliblegrip.com": "Leven Labs, Inc. DBA Admiral", + "gustygrandmother.com": "Leven Labs, Inc. DBA Admiral", + "hallowedinvention.com": "Leven Labs, Inc. DBA Admiral", "haltingbadge.com": "Leven Labs, Inc. DBA Admiral", "haltinggold.com": "Leven Labs, Inc. DBA Admiral", "hammerhearing.com": "Leven Labs, Inc. DBA Admiral", @@ -48157,15 +48201,18 @@ "haplessland.com": "Leven Labs, Inc. DBA Admiral", "harborcaption.com": "Leven Labs, Inc. DBA Admiral", "hatefulrequest.com": "Leven Labs, Inc. DBA Admiral", + "heartbreakingmind.com": "Leven Labs, Inc. DBA Admiral", "hearthorn.com": "Leven Labs, Inc. DBA Admiral", "heavyplayground.com": "Leven Labs, Inc. DBA Admiral", "historicalbeam.com": "Leven Labs, Inc. DBA Admiral", "hocgeese.com": "Leven Labs, Inc. DBA Admiral", "hollowafterthought.com": "Leven Labs, Inc. DBA Admiral", + "honeybulb.com": "Leven Labs, Inc. DBA Admiral", "honorableland.com": "Leven Labs, Inc. DBA Admiral", "horsenectar.com": "Leven Labs, Inc. DBA Admiral", "hospitablehat.com": "Leven Labs, Inc. DBA Admiral", "hystericalcloth.com": "Leven Labs, Inc. DBA Admiral", + "illinvention.com": "Leven Labs, Inc. DBA Admiral", "impossibleexpansion.com": "Leven Labs, Inc. DBA Admiral", "impulsejewel.com": "Leven Labs, Inc. DBA Admiral", "incompetentjoke.com": "Leven Labs, Inc. DBA Admiral", @@ -48181,14 +48228,19 @@ "largebrass.com": "Leven Labs, Inc. DBA Admiral", "laughablelizards.com": "Leven Labs, Inc. DBA Admiral", "leftliquid.com": "Leven Labs, Inc. DBA Admiral", + "lightenafterthought.com": "Leven Labs, Inc. DBA Admiral", "livelumber.com": "Leven Labs, Inc. DBA Admiral", "livelylaugh.com": "Leven Labs, Inc. DBA Admiral", "livelyreward.com": "Leven Labs, Inc. DBA Admiral", + "livingsleet.com": "Leven Labs, Inc. DBA Admiral", + "lizardslaugh.com": "Leven Labs, Inc. DBA Admiral", + "lonelyflavor.com": "Leven Labs, Inc. DBA Admiral", "longingtrees.com": "Leven Labs, Inc. DBA Admiral", "looseloaf.com": "Leven Labs, Inc. DBA Admiral", "lorenzourban.com": "Leven Labs, Inc. DBA Admiral", "losslace.com": "Leven Labs, Inc. DBA Admiral", "lovelydrum.com": "Leven Labs, Inc. DBA Admiral", + "ludicrousarch.com": "Leven Labs, Inc. DBA Admiral", "lumpylumber.com": "Leven Labs, Inc. DBA Admiral", "lunchroomlock.com": "Leven Labs, Inc. DBA Admiral", "maddeningpowder.com": "Leven Labs, Inc. DBA Admiral", @@ -48197,6 +48249,7 @@ "marriedbelief.com": "Leven Labs, Inc. DBA Admiral", "materialisticmoon.com": "Leven Labs, Inc. DBA Admiral", "materialparcel.com": "Leven Labs, Inc. DBA Admiral", + "materialplayground.com": "Leven Labs, Inc. DBA Admiral", "measlymiddle.com": "Leven Labs, Inc. DBA Admiral", "meatydime.com": "Leven Labs, Inc. DBA Admiral", "meddleplant.com": "Leven Labs, Inc. DBA Admiral", @@ -48204,6 +48257,7 @@ "memorizematch.com": "Leven Labs, Inc. DBA Admiral", "memorizeneck.com": "Leven Labs, Inc. DBA Admiral", "mentorsticks.com": "Leven Labs, Inc. DBA Admiral", + "merequartz.com": "Leven Labs, Inc. DBA Admiral", "mightyspiders.com": "Leven Labs, Inc. DBA Admiral", "mixedreading.com": "Leven Labs, Inc. DBA Admiral", "modularmental.com": "Leven Labs, Inc. DBA Admiral", @@ -48215,6 +48269,7 @@ "muteknife.com": "Leven Labs, Inc. DBA Admiral", "nappyattack.com": "Leven Labs, Inc. DBA Admiral", "neatshade.com": "Leven Labs, Inc. DBA Admiral", + "needlessnorth.com": "Leven Labs, Inc. DBA Admiral", "nervoussummer.com": "Leven Labs, Inc. DBA Admiral", "nightwound.com": "Leven Labs, Inc. DBA Admiral", "nondescriptcrowd.com": "Leven Labs, Inc. DBA Admiral", @@ -48223,6 +48278,7 @@ "nutritiousbean.com": "Leven Labs, Inc. DBA Admiral", "nuttyorganization.com": "Leven Labs, Inc. DBA Admiral", "oafishchance.com": "Leven Labs, Inc. DBA Admiral", + "obscenesidewalk.com": "Leven Labs, Inc. DBA Admiral", "operationchicken.com": "Leven Labs, Inc. DBA Admiral", "optimallimit.com": "Leven Labs, Inc. DBA Admiral", "outstandingincome.com": "Leven Labs, Inc. DBA Admiral", @@ -48235,6 +48291,7 @@ "panickypancake.com": "Leven Labs, Inc. DBA Admiral", "panoramicplane.com": "Leven Labs, Inc. DBA Admiral", "parchedsofa.com": "Leven Labs, Inc. DBA Admiral", + "parentpicture.com": "Leven Labs, Inc. DBA Admiral", "partplanes.com": "Leven Labs, Inc. DBA Admiral", "passivepolo.com": "Leven Labs, Inc. DBA Admiral", "peacefullimit.com": "Leven Labs, Inc. DBA Admiral", @@ -48246,8 +48303,12 @@ "plotrabbit.com": "Leven Labs, Inc. DBA Admiral", "pluckypocket.com": "Leven Labs, Inc. DBA Admiral", "pocketfaucet.com": "Leven Labs, Inc. DBA Admiral", + "poeticpackage.com": "Leven Labs, Inc. DBA Admiral", + "politeplanes.com": "Leven Labs, Inc. DBA Admiral", + "politicalporter.com": "Leven Labs, Inc. DBA Admiral", "possibleboats.com": "Leven Labs, Inc. DBA Admiral", "potatoinvention.com": "Leven Labs, Inc. DBA Admiral", + "powderjourney.com": "Leven Labs, Inc. DBA Admiral", "powerfulcopper.com": "Leven Labs, Inc. DBA Admiral", "predictplate.com": "Leven Labs, Inc. DBA Admiral", "prepareplanes.com": "Leven Labs, Inc. DBA Admiral", @@ -48257,6 +48318,7 @@ "protestcopy.com": "Leven Labs, Inc. DBA Admiral", "psychedelicarithmetic.com": "Leven Labs, Inc. DBA Admiral", "puffypurpose.com": "Leven Labs, Inc. DBA Admiral", + "pumpedpancake.com": "Leven Labs, Inc. DBA Admiral", "punyplant.com": "Leven Labs, Inc. DBA Admiral", "quietknowledge.com": "Leven Labs, Inc. DBA Admiral", "quillkick.com": "Leven Labs, Inc. DBA Admiral", @@ -48275,6 +48337,7 @@ "rangeplayground.com": "Leven Labs, Inc. DBA Admiral", "raresummer.com": "Leven Labs, Inc. DBA Admiral", "readymoon.com": "Leven Labs, Inc. DBA Admiral", + "rebelhen.com": "Leven Labs, Inc. DBA Admiral", "rebelsubway.com": "Leven Labs, Inc. DBA Admiral", "rebelswing.com": "Leven Labs, Inc. DBA Admiral", "receptivereaction.com": "Leven Labs, Inc. DBA Admiral", @@ -48282,6 +48345,7 @@ "reconditerake.com": "Leven Labs, Inc. DBA Admiral", "reconditerespect.com": "Leven Labs, Inc. DBA Admiral", "regularplants.com": "Leven Labs, Inc. DBA Admiral", + "regulatesleet.com": "Leven Labs, Inc. DBA Admiral", "rehabilitatereason.com": "Leven Labs, Inc. DBA Admiral", "repeatsweater.com": "Leven Labs, Inc. DBA Admiral", "replaceroute.com": "Leven Labs, Inc. DBA Admiral", @@ -48290,11 +48354,13 @@ "respectrain.com": "Leven Labs, Inc. DBA Admiral", "restrainstorm.com": "Leven Labs, Inc. DBA Admiral", "restructureinvention.com": "Leven Labs, Inc. DBA Admiral", + "retrievemint.com": "Leven Labs, Inc. DBA Admiral", "rhetoricalloss.com": "Leven Labs, Inc. DBA Admiral", "rhetoricalveil.com": "Leven Labs, Inc. DBA Admiral", "richstring.com": "Leven Labs, Inc. DBA Admiral", "righteouscrayon.com": "Leven Labs, Inc. DBA Admiral", "rightfulfall.com": "Leven Labs, Inc. DBA Admiral", + "rigidrobin.com": "Leven Labs, Inc. DBA Admiral", "roofrelation.com": "Leven Labs, Inc. DBA Admiral", "ruralrobin.com": "Leven Labs, Inc. DBA Admiral", "rusticprice.com": "Leven Labs, Inc. DBA Admiral", @@ -48327,7 +48393,9 @@ "selectivesummer.com": "Leven Labs, Inc. DBA Admiral", "selfishsnake.com": "Leven Labs, Inc. DBA Admiral", "separatesort.com": "Leven Labs, Inc. DBA Admiral", + "serioussuit.com": "Leven Labs, Inc. DBA Admiral", "serpentshampoo.com": "Leven Labs, Inc. DBA Admiral", + "settleshoes.com": "Leven Labs, Inc. DBA Admiral", "shakegoldfish.com": "Leven Labs, Inc. DBA Admiral", "shakyseat.com": "Leven Labs, Inc. DBA Admiral", "shakysurprise.com": "Leven Labs, Inc. DBA Admiral", @@ -48335,6 +48403,7 @@ "shamerain.com": "Leven Labs, Inc. DBA Admiral", "shapecomb.com": "Leven Labs, Inc. DBA Admiral", "shesubscriptions.com": "Leven Labs, Inc. DBA Admiral", + "shirtsidewalk.com": "Leven Labs, Inc. DBA Admiral", "shiveringspot.com": "Leven Labs, Inc. DBA Admiral", "shiverscissors.com": "Leven Labs, Inc. DBA Admiral", "shockingship.com": "Leven Labs, Inc. DBA Admiral", @@ -48370,6 +48439,7 @@ "spookysleet.com": "Leven Labs, Inc. DBA Admiral", "spotlessstamp.com": "Leven Labs, Inc. DBA Admiral", "spottednoise.com": "Leven Labs, Inc. DBA Admiral", + "stakingbasket.com": "Leven Labs, Inc. DBA Admiral", "stakingshock.com": "Leven Labs, Inc. DBA Admiral", "stakingsmile.com": "Leven Labs, Inc. DBA Admiral", "stalesummer.com": "Leven Labs, Inc. DBA Admiral", @@ -48387,6 +48457,7 @@ "stingycrush.com": "Leven Labs, Inc. DBA Admiral", "stingyshoe.com": "Leven Labs, Inc. DBA Admiral", "stingyspoon.com": "Leven Labs, Inc. DBA Admiral", + "stomachscience.com": "Leven Labs, Inc. DBA Admiral", "straightnest.com": "Leven Labs, Inc. DBA Admiral", "strangeclocks.com": "Leven Labs, Inc. DBA Admiral", "strangesink.com": "Leven Labs, Inc. DBA Admiral", @@ -48406,6 +48477,7 @@ "superficialspring.com": "Leven Labs, Inc. DBA Admiral", "superficialsquare.com": "Leven Labs, Inc. DBA Admiral", "supportwaves.com": "Leven Labs, Inc. DBA Admiral", + "suspectmark.com": "Leven Labs, Inc. DBA Admiral", "swankysquare.com": "Leven Labs, Inc. DBA Admiral", "swellstocking.com": "Leven Labs, Inc. DBA Admiral", "swelteringsleep.com": "Leven Labs, Inc. DBA Admiral", @@ -48421,14 +48493,17 @@ "teenytinyshirt.com": "Leven Labs, Inc. DBA Admiral", "teenytinytongue.com": "Leven Labs, Inc. DBA Admiral", "tempertrick.com": "Leven Labs, Inc. DBA Admiral", + "temptteam.com": "Leven Labs, Inc. DBA Admiral", "tendertest.com": "Leven Labs, Inc. DBA Admiral", "terriblethumb.com": "Leven Labs, Inc. DBA Admiral", "terrifictooth.com": "Leven Labs, Inc. DBA Admiral", "thinkitten.com": "Leven Labs, Inc. DBA Admiral", "thirdrespect.com": "Leven Labs, Inc. DBA Admiral", "thomastorch.com": "Leven Labs, Inc. DBA Admiral", + "thoughtlessknot.com": "Leven Labs, Inc. DBA Admiral", "threetruck.com": "Leven Labs, Inc. DBA Admiral", "ticketaunt.com": "Leven Labs, Inc. DBA Admiral", + "tidymitten.com": "Leven Labs, Inc. DBA Admiral", "tiredthroat.com": "Leven Labs, Inc. DBA Admiral", "tiresomethunder.com": "Leven Labs, Inc. DBA Admiral", "tremendousplastic.com": "Leven Labs, Inc. DBA Admiral", @@ -48440,10 +48515,12 @@ "ubiquitousyard.com": "Leven Labs, Inc. DBA Admiral", "ultraoranges.com": "Leven Labs, Inc. DBA Admiral", "unablehope.com": "Leven Labs, Inc. DBA Admiral", + "unaccountablepie.com": "Leven Labs, Inc. DBA Admiral", "unbecominghall.com": "Leven Labs, Inc. DBA Admiral", "unbecominglamp.com": "Leven Labs, Inc. DBA Admiral", "uncoveredexpert.com": "Leven Labs, Inc. DBA Admiral", "unequalbrake.com": "Leven Labs, Inc. DBA Admiral", + "unequaltrail.com": "Leven Labs, Inc. DBA Admiral", "uninterestedquarter.com": "Leven Labs, Inc. DBA Admiral", "unknowncrate.com": "Leven Labs, Inc. DBA Admiral", "untidyrice.com": "Leven Labs, Inc. DBA Admiral", @@ -48455,6 +48532,7 @@ "venusgloria.com": "Leven Labs, Inc. DBA Admiral", "verdantanswer.com": "Leven Labs, Inc. DBA Admiral", "verseballs.com": "Leven Labs, Inc. DBA Admiral", + "virtualvincent.com": "Leven Labs, Inc. DBA Admiral", "volatilevessel.com": "Leven Labs, Inc. DBA Admiral", "voraciousgrip.com": "Leven Labs, Inc. DBA Admiral", "wantingwindow.com": "Leven Labs, Inc. DBA Admiral", @@ -48463,6 +48541,7 @@ "wearbasin.com": "Leven Labs, Inc. DBA Admiral", "wellgroomedhydrant.com": "Leven Labs, Inc. DBA Admiral", "whispermeeting.com": "Leven Labs, Inc. DBA Admiral", + "wildcommittee.com": "Leven Labs, Inc. DBA Admiral", "workoperation.com": "Leven Labs, Inc. DBA Admiral", "zestycrime.com": "Leven Labs, Inc. DBA Admiral", "zipperxray.com": "Leven Labs, Inc. DBA Admiral", @@ -49516,12 +49595,6 @@ "showmore.cc": "ucfunnel Co., Ltd.", "ucfunnel.com": "ucfunnel Co., Ltd.", "arcspire.io": "Arcspire Limited", - "arkoselabs.com": "Arkose Labs, Inc.", - "funcaptcha.co": "Arkose Labs, Inc.", - "funcaptcha.com": "Arkose Labs, Inc.", - "funcaptcha.net": "Arkose Labs, Inc.", - "swipeads.co": "Arkose Labs, Inc.", - "swipeads.com": "Arkose Labs, Inc.", "abmr.net": "Akamai Technologies", "accdn.com.cn": "Akamai Technologies", "akadns.net": "Akamai Technologies", @@ -49902,7 +49975,6 @@ "vdopia.com": "Vdopia Inc.", "cint.com": "Cint AB", "cintnetworks.com": "Cint AB", - "civiccomputing.com": "Civic Computing Limited", "ck-ie.com": "ck-ie.com", "clearbit.com": "APIHub, Inc.", "clearbitjs.com": "clearbitjs.com", @@ -50003,39 +50075,6 @@ "connatix.com": "Connatix", "connectad.io": "ConnectAd", "connectadrealtime.com": "ConnectAd", - "consentframework.com": "Sirdata SAS", - "datnova.com": "Sirdata SAS", - "sddan.com": "Sirdata SAS", - "sirdata.com": "Sirdata SAS", - "sirdata.io": "Sirdata SAS", - "thirdata.com": "Sirdata SAS", - "choicemanager.net": "consentmanager AB", - "consentmanager.be": "consentmanager AB", - "consentmanager.ch": "consentmanager AB", - "consentmanager.es": "consentmanager AB", - "consentmanager.fr": "consentmanager AB", - "consentmanager.io": "consentmanager AB", - "consentmanager.mx": "consentmanager AB", - "consentmanager.net": "consentmanager AB", - "consentmanager.us": "consentmanager AB", - "cookie-consent.net": "consentmanager AB", - "cookiebot.es": "consentmanager AB", - "cookiebot.it": "consentmanager AB", - "cookiebot.net": "consentmanager AB", - "cookiecrawler.net": "consentmanager AB", - "cookiecrawler.org": "consentmanager AB", - "cookiefirst.net": "consentmanager AB", - "cookiefirst.org": "consentmanager AB", - "cookiefirst.pl": "consentmanager AB", - "cookiefirst.sk": "consentmanager AB", - "cookiefox.net": "consentmanager AB", - "cookieinformation.lt": "consentmanager AB", - "cookiescanner.org": "consentmanager AB", - "cookiespider.net": "consentmanager AB", - "cookiespider.org": "consentmanager AB", - "cookietext.net": "consentmanager AB", - "cookieyes.nl": "consentmanager AB", - "policymanager.net": "consentmanager AB", "contentexchange.me": "contentexchange.me", "content-square.net": "ContentSquare", "contentsquare.com": "ContentSquare", @@ -50046,21 +50085,6 @@ "conversionruler.com": "Market Ruler, LLC", "convertkit.com": "ConvertKit LLC", "convertlanguage.com": "Motionpoint Corporation", - "cookiefirst.com": "cookiefirst.com", - "cookiebanner.com": "Cookie Information A/S", - "cookieinfo.dk": "Cookie Information A/S", - "cookieinformation.co.uk": "Cookie Information A/S", - "cookieinformation.com": "Cookie Information A/S", - "cookieinformation.dk": "Cookie Information A/S", - "cookieinformation.eu": "Cookie Information A/S", - "cookieinformation.se": "Cookie Information A/S", - "freeccpatool.com": "Cookie Information A/S", - "vendorlistgenerator.eu": "Cookie Information A/S", - "wpgdprc.com": "Cookie Information A/S", - "cookielaw.org": "OneTrust LLC", - "cookiepro.com": "OneTrust LLC", - "onetrust.com": "OneTrust LLC", - "onetrust.io": "OneTrust LLC", "cootlogix.com": "Vidazoo Ltd", "vidazoo.com": "Vidazoo Ltd", "cordial.io": "Bandfarm, Inc.", @@ -50265,23 +50289,6 @@ "openslate.com": "DoubleVerify", "openslatedata.com": "DoubleVerify", "research.de.com": "DoubleVerify", - "auto-swiat.pl": "Ringier Axel Springer Media AG", - "blikk.hu": "Ringier Axel Springer Media AG", - "dreamlab.pl": "Ringier Axel Springer Media AG", - "ewydania.pl": "Ringier Axel Springer Media AG", - "grupaonet.pl": "Ringier Axel Springer Media AG", - "komputerswiat.pl": "Ringier Axel Springer Media AG", - "medonet.pl": "Ringier Axel Springer Media AG", - "newsweek.pl": "Ringier Axel Springer Media AG", - "nk.pl": "Ringier Axel Springer Media AG", - "ocdn.eu": "Ringier Axel Springer Media AG", - "onet.pl": "Ringier Axel Springer Media AG", - "pclab.pl": "Ringier Axel Springer Media AG", - "schweizer-illustrierte.ch": "Ringier Axel Springer Media AG", - "skapiec.pl": "Ringier Axel Springer Media AG", - "vod.pl": "Ringier Axel Springer Media AG", - "zapytaj.com.pl": "Ringier Axel Springer Media AG", - "zumi.pl": "Ringier Axel Springer Media AG", "drift.com": "Drift.com, Inc.", "driftt.com": "Drift.com, Inc.", "dtscdn.com": "DTS Technology", @@ -50508,7 +50515,6 @@ "4seeresults.com": "ForeSee Results, Inc.", "foresee.com": "ForeSee Results, Inc.", "foreseeresults.com": "ForeSee Results, Inc.", - "forter.com": "Forter Inc.", "fouanalytics.com": "Marketing Science Consulting Group, Inc.", "mktsci.com": "Marketing Science Consulting Group, Inc.", "fout.jp": "FreakOut Holdings, inc.", @@ -51559,6 +51565,23 @@ "ntv.io": "Nativo, Inc", "postrelease.com": "Nativo, Inc", "ntvpwpush.com": "ntvpwpush.com", + "auto-swiat.pl": "Ringier Axel Springer Media AG", + "blikk.hu": "Ringier Axel Springer Media AG", + "dreamlab.pl": "Ringier Axel Springer Media AG", + "ewydania.pl": "Ringier Axel Springer Media AG", + "grupaonet.pl": "Ringier Axel Springer Media AG", + "komputerswiat.pl": "Ringier Axel Springer Media AG", + "medonet.pl": "Ringier Axel Springer Media AG", + "newsweek.pl": "Ringier Axel Springer Media AG", + "nk.pl": "Ringier Axel Springer Media AG", + "ocdn.eu": "Ringier Axel Springer Media AG", + "onet.pl": "Ringier Axel Springer Media AG", + "pclab.pl": "Ringier Axel Springer Media AG", + "schweizer-illustrierte.ch": "Ringier Axel Springer Media AG", + "skapiec.pl": "Ringier Axel Springer Media AG", + "vod.pl": "Ringier Axel Springer Media AG", + "zapytaj.com.pl": "Ringier Axel Springer Media AG", + "zumi.pl": "Ringier Axel Springer Media AG", "monstercampaigns.com": "Retyp LLC", "omappapi.com": "Retyp LLC", "omwpapi.com": "Retyp LLC", @@ -51802,12 +51825,6 @@ "radware.com": "Radware Ltd.", "shieldsquare.com": "Radware Ltd.", "perfectmarket.com": "Perfect Market, Inc.", - "perimeterx.com": "PerimeterX, Inc.", - "perimeterx.net": "PerimeterX, Inc.", - "px-cdn.net": "PerimeterX, Inc.", - "px-client.net": "PerimeterX, Inc.", - "px-cloud.net": "PerimeterX, Inc.", - "pxi.pub": "PerimeterX, Inc.", "permutive.app": "Permutive, Inc.", "permutive.com": "Permutive, Inc.", "prmutv.co": "Permutive, Inc.", @@ -52184,7 +52201,12 @@ "ryzeo.com": "EZ Publishing Inc.", "screenpopper.com": "EZ Publishing Inc.", "sda.fyi": "sda.fyi", - "sdiapi.com": "sourcedefense", + "consentframework.com": "Sirdata SAS", + "datnova.com": "Sirdata SAS", + "sddan.com": "Sirdata SAS", + "sirdata.com": "Sirdata SAS", + "sirdata.io": "Sirdata SAS", + "thirdata.com": "Sirdata SAS", "searchspring.io": "searchspring.io", "securedvisit.com": "4Cite Marketing", "seedtag.com": "SEEDTAG ADVERTISING S.L.", @@ -52258,8 +52280,6 @@ "shopperapproved.com": "Global Marketing Strategies", "sendinblue.com": "Dual Technologies Services", "sibautomation.com": "Dual Technologies Services", - "sift.com": "Sift Science, Inc.", - "siftscience.com": "Sift Science, Inc.", "signifyd.com": "Signifyd Inc.", "simpli.fi": "Simplifi Holdings Inc.", "siteimprove.com": "Siteimprove AS", @@ -52558,7 +52578,6 @@ "unrulymedia.com": "Unruly Group Limited", "upsellit.com": "USI Technologies, Inc.", "usbrowserspeed.com": "usbrowserspeed.com", - "usercentrics.eu": "usercentrics.eu", "usergram.info": "beBit Inc.", "webantenna.info": "beBit Inc.", "audienceproject.com": "AudienceProject", @@ -52776,9 +52795,6 @@ "zopim.com": "Zendesk, Inc.", "zopim.io": "Zendesk, Inc.", "zeotap.com": "Zeotap GmbH", - "f5.com": "F5 Networks Inc", - "nginx.com": "F5 Networks Inc", - "zeronaught.com": "F5 Networks Inc", "zip.co": "zipMoney Payments Pty Ltd", "zipmoney.com.au": "zipMoney Payments Pty Ltd", "zippay.com.au": "zipMoney Payments Pty Ltd", @@ -52791,8 +52807,6 @@ "shop.pe": "Add Shoppers", "telstra.com": "Telstra Corporation Limited", "telstra.com.au": "Telstra Corporation Limited", - "appconsent.io": "SFBX SAS", - "sfbx.io": "SFBX SAS", "ad2perf.com": "J S WEB PRODUCTION", "moxielinks.com": "J S WEB PRODUCTION", "veoxa.com": "J S WEB PRODUCTION", @@ -52821,18 +52835,14 @@ "bugsnag.com": "Bugsnag Inc.", "clarium.io": "ClarityAd", "clean.gg": "clean.gg", - "consensu.org": "IAB Europe", "fontawesome.com": "Fonticons Inc", "fontawesome.io": "Fonticons Inc", "fonticons.com": "Fonticons Inc", "fortawesome.com": "Fonticons Inc", "symbolset.com": "Fonticons Inc", - "iubenda.com": "iubenda s.r.l.", "nereserv.com": "nereserv.com", "behavioralengine.com": "OnAudience Ltd.", "onaudience.com": "OnAudience Ltd.", - "ft.com": "The Financial Times Limited", - "polyfill.io": "The Financial Times Limited", "rtactivate.com": "rtactivate.com", "stripe.com": "Stripe, Inc", "stripe.network": "Stripe, Inc", diff --git a/DuckDuckGo.xcodeproj/project.pbxproj b/DuckDuckGo.xcodeproj/project.pbxproj index 68eb1fa7ee..2b929fa3ea 100644 --- a/DuckDuckGo.xcodeproj/project.pbxproj +++ b/DuckDuckGo.xcodeproj/project.pbxproj @@ -66,14 +66,21 @@ 02025B1529884EA500E694E7 /* DDGObserverFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02025B1429884EA500E694E7 /* DDGObserverFactory.swift */; }; 021D30752989C04200918636 /* Observer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 021D306D2989C04200918636 /* Observer.swift */; }; 021D30762989C04200918636 /* ObserverFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 021D306E2989C04200918636 /* ObserverFactory.swift */; }; + 02341FA42A437999008A1531 /* OnboardingStepView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02341FA32A437999008A1531 /* OnboardingStepView.swift */; }; + 02341FA62A4379CC008A1531 /* OnboardingStepViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02341FA52A4379CC008A1531 /* OnboardingStepViewModel.swift */; }; 0238E44F29C0FAA100615E30 /* FindInPageIOSJSSupport in Frameworks */ = {isa = PBXBuildFile; productRef = 0238E44E29C0FAA100615E30 /* FindInPageIOSJSSupport */; }; 0253A43129E5DCD7003697C1 /* AppTrackingProtectionAllowlistModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0253A43029E5DCD7003697C1 /* AppTrackingProtectionAllowlistModel.swift */; }; 0253A43329E5E393003697C1 /* AppTrackingProtectionAllowlistModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0253A43229E5E393003697C1 /* AppTrackingProtectionAllowlistModelTests.swift */; }; 025CD01025826035001CD5BB /* FingerprintUITest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 025CCF75257EAFAF001CD5BB /* FingerprintUITest.swift */; }; 0262085B2A37915D006CB755 /* ios_blocklist_075.json in Resources */ = {isa = PBXBuildFile; fileRef = 0262085A2A37915D006CB755 /* ios_blocklist_075.json */; }; 0262085C2A37915D006CB755 /* ios_blocklist_075.json in Resources */ = {isa = PBXBuildFile; fileRef = 0262085A2A37915D006CB755 /* ios_blocklist_075.json */; }; + 0268FC132A449F04000EE6A2 /* OnboardingContainerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0268FC122A449F04000EE6A2 /* OnboardingContainerView.swift */; }; 026DABA428242BC80089E0B5 /* MockUserAgent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 026DABA328242BC80089E0B5 /* MockUserAgent.swift */; }; 026F08B829B7DC480079B9DF /* EmbeddedAppTPDataTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 026F08B729B7DC480079B9DF /* EmbeddedAppTPDataTests.swift */; }; + 027F48742A4B5904001A1C6C /* AppTPAboutView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 027F48732A4B5904001A1C6C /* AppTPAboutView.swift */; }; + 027F48762A4B5FBE001A1C6C /* AppTPLinkButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 027F48752A4B5FBE001A1C6C /* AppTPLinkButton.swift */; }; + 027F48782A4B663C001A1C6C /* AppTPFAQView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 027F48772A4B663C001A1C6C /* AppTPFAQView.swift */; }; + 027F487A2A4B66CD001A1C6C /* AppTPFAQViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 027F48792A4B66CD001A1C6C /* AppTPFAQViewModel.swift */; }; 0290471E29E708750008FE3C /* AppTPManageTrackersView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0290471D29E708750008FE3C /* AppTPManageTrackersView.swift */; }; 0290472029E708B70008FE3C /* AppTPManageTrackersViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0290471F29E708B70008FE3C /* AppTPManageTrackersViewModel.swift */; }; 0290472229E723260008FE3C /* AppTPManageTrackerCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0290472129E723260008FE3C /* AppTPManageTrackerCell.swift */; }; @@ -218,7 +225,6 @@ 3170048227A9504F00C03F35 /* DownloadMocks.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3170048127A9504F00C03F35 /* DownloadMocks.swift */; }; 317045C02858C6B90016ED1F /* AutofillInterfaceEmailTruncatorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 317045BF2858C6B90016ED1F /* AutofillInterfaceEmailTruncatorTests.swift */; }; 31951E8E2823003200CAF535 /* AutofillLoginDetailsHeaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 31951E8D2823003200CAF535 /* AutofillLoginDetailsHeaderView.swift */; }; - 31951E95282310FF00CAF535 /* WebsiteAccountExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 31951E94282310FF00CAF535 /* WebsiteAccountExtension.swift */; }; 319A371028299A850079FBCE /* PasswordHider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 319A370F28299A850079FBCE /* PasswordHider.swift */; }; 319A37152829A55F0079FBCE /* AutofillListItemTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 319A37142829A55F0079FBCE /* AutofillListItemTableViewCell.swift */; }; 319A37172829C8AD0079FBCE /* UITableViewExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 319A37162829C8AD0079FBCE /* UITableViewExtension.swift */; }; @@ -242,9 +248,11 @@ 37445F972A155F7C0029F789 /* SyncDataProviders.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37445F962A155F7C0029F789 /* SyncDataProviders.swift */; }; 3760DFED299315EF0045A446 /* Waitlist in Frameworks */ = {isa = PBXBuildFile; productRef = 3760DFEC299315EF0045A446 /* Waitlist */; }; 379E877429E97C8D001C8BB0 /* BookmarksCleanupErrorHandling.swift in Sources */ = {isa = PBXBuildFile; fileRef = 379E877329E97C8D001C8BB0 /* BookmarksCleanupErrorHandling.swift */; }; + 37CEFCAC2A673B90001EF741 /* CredentialsCleanupErrorHandling.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37CEFCAB2A673B90001EF741 /* CredentialsCleanupErrorHandling.swift */; }; 37DF000A29F9C416002B7D3E /* SyncMetadataDatabase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37DF000929F9C416002B7D3E /* SyncMetadataDatabase.swift */; }; 37DF000C29F9CA80002B7D3E /* SyncDataProviders in Frameworks */ = {isa = PBXBuildFile; productRef = 37DF000B29F9CA80002B7D3E /* SyncDataProviders */; }; 37DF000F29F9D635002B7D3E /* SyncBookmarksAdapter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37DF000E29F9D635002B7D3E /* SyncBookmarksAdapter.swift */; }; + 37E615752A5F533E00ACD63D /* SyncCredentialsAdapter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37E615742A5F533E00ACD63D /* SyncCredentialsAdapter.swift */; }; 37FCAAAB29911BF1000E420A /* WaitlistExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37FCAAAA29911BF1000E420A /* WaitlistExtensions.swift */; }; 37FCAAB229914232000E420A /* WindowsBrowserWaitlistView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37FCAAB129914232000E420A /* WindowsBrowserWaitlistView.swift */; }; 37FCAAB429914C77000E420A /* WindowsWaitlistViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37FCAAB329914C77000E420A /* WindowsWaitlistViewController.swift */; }; @@ -278,6 +286,7 @@ 4B83397529AFBCE6003F7EA9 /* AppTrackingProtectionFeedbackModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B83397429AFBCE6003F7EA9 /* AppTrackingProtectionFeedbackModelTests.swift */; }; 4B948E2629DCCDB9002531FA /* Persistence in Frameworks */ = {isa = PBXBuildFile; productRef = 4B948E2529DCCDB9002531FA /* Persistence */; }; 4BC21A2F27238B7500229F0E /* RunLoopExtensionTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4BC21A2C272388BD00229F0E /* RunLoopExtensionTests.swift */; }; + 4BC6DD1C2A60E6AD001EC129 /* ReportBrokenSiteView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4BC6DD1B2A60E6AD001EC129 /* ReportBrokenSiteView.swift */; }; 4BE2756827304F57006B20B0 /* URLRequestExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4BE27566272F878F006B20B0 /* URLRequestExtension.swift */; }; 4BEF65692989C2FC00B650CB /* AdapterSocketEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 021D307A2989C0C400918636 /* AdapterSocketEvent.swift */; }; 4BEF656A2989C2FC00B650CB /* ProxyServerEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 021D307C2989C0C600918636 /* ProxyServerEvent.swift */; }; @@ -336,6 +345,7 @@ 8512EA5724ED30D30073EE19 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 8512EA5624ED30D30073EE19 /* Assets.xcassets */; }; 8512EA5D24ED30D30073EE19 /* WidgetsExtension.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 8512EA4D24ED30D20073EE19 /* WidgetsExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; 8512EA9D24EEA6820073EE19 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = F143C2B11E49D78C00CFDE3A /* Assets.xcassets */; }; + 851481882A600EFC00ABC65F /* RemoteMessaging in Frameworks */ = {isa = PBXBuildFile; productRef = 851481872A600EFC00ABC65F /* RemoteMessaging */; }; 8517D98B221783A0006A8DD0 /* FindInPage.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 8517D98A221783A0006A8DD0 /* FindInPage.xcassets */; }; 851B1283221FE65E004781BC /* ImproveOnboardingExperiment1Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 851B1281221FE64E004781BC /* ImproveOnboardingExperiment1Tests.swift */; }; 851B128822200575004781BC /* Onboarding.swift in Sources */ = {isa = PBXBuildFile; fileRef = 851B128722200575004781BC /* Onboarding.swift */; }; @@ -356,7 +366,6 @@ 8531A08E1F9950E6000484F0 /* UnprotectedSitesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8531A08D1F9950E6000484F0 /* UnprotectedSitesViewController.swift */; }; 853273AB24FEF27500E3C778 /* WidgetViews.swift in Sources */ = {isa = PBXBuildFile; fileRef = 853273A924FEF24300E3C778 /* WidgetViews.swift */; }; 853273AE24FEF49600E3C778 /* ColorExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 853273AC24FEF49600E3C778 /* ColorExtension.swift */; }; - 853273B224FF114700E3C778 /* DeepLinks.swift in Sources */ = {isa = PBXBuildFile; fileRef = 853273B124FF114700E3C778 /* DeepLinks.swift */; }; 853273B324FF114700E3C778 /* DeepLinks.swift in Sources */ = {isa = PBXBuildFile; fileRef = 853273B124FF114700E3C778 /* DeepLinks.swift */; }; 853273B424FFB36100E3C778 /* UIColorExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1B745211E549D550072547E /* UIColorExtension.swift */; }; 853273B624FFE0BB00E3C778 /* WidgetKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8512EA4E24ED30D20073EE19 /* WidgetKit.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; @@ -378,6 +387,7 @@ 85449EFB23FDA0BC00512AAF /* UserDefaultsPropertyWrapper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85449EFA23FDA0BC00512AAF /* UserDefaultsPropertyWrapper.swift */; }; 85449EFD23FDA71F00512AAF /* KeyboardSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85449EFC23FDA71F00512AAF /* KeyboardSettings.swift */; }; 8544C37C250B827300A0FE73 /* UserText.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8544C37A250B823600A0FE73 /* UserText.swift */; }; + 8546A54A2A672959003929BF /* MainViewController+Email.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8546A5492A672959003929BF /* MainViewController+Email.swift */; }; 85480CB429226B3B007E8F13 /* CrashCollectionExtensionTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85480CB229226B1E007E8F13 /* CrashCollectionExtensionTests.swift */; }; 85482D8D2462DCD100EDEDD1 /* ActionViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85482D8C2462DCD100EDEDD1 /* ActionViewController.swift */; }; 85482D902462DCD100EDEDD1 /* MainInterface.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 85482D8E2462DCD100EDEDD1 /* MainInterface.storyboard */; }; @@ -386,9 +396,9 @@ 854858E32937BC550063610B /* CollectionExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1EE411F22857C4A30003FE64 /* CollectionExtension.swift */; }; 8548D95E25262B1B005AAE49 /* ViewHighlighter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8548D95D25262B1B005AAE49 /* ViewHighlighter.swift */; }; 8548D96825262C33005AAE49 /* view_highlight.json in Resources */ = {isa = PBXBuildFile; fileRef = 8548D96725262C33005AAE49 /* view_highlight.json */; }; + 854A012B2A54412600FCC628 /* ActivityViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 854A012A2A54412600FCC628 /* ActivityViewController.swift */; }; 854A012F2A5563A400FCC628 /* FindInPage.xib in Resources */ = {isa = PBXBuildFile; fileRef = 854A012E2A5563A400FCC628 /* FindInPage.xib */; }; 854A01332A558B3A00FCC628 /* UIView+Constraints.swift in Sources */ = {isa = PBXBuildFile; fileRef = 854A01322A558B3A00FCC628 /* UIView+Constraints.swift */; }; - 854A012B2A54412600FCC628 /* ActivityViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 854A012A2A54412600FCC628 /* ActivityViewController.swift */; }; 85514FFD2372DA0100DBC528 /* ios13-home-row.mp4 in Resources */ = {isa = PBXBuildFile; fileRef = 85514FFC2372DA0000DBC528 /* ios13-home-row.mp4 */; }; 8551912724746EDC0010FDD0 /* SnapshotHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8551912624746EDC0010FDD0 /* SnapshotHelper.swift */; }; 85582E0029D7409700E9AE35 /* SyncSettingsViewController+PDFRendering.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85582DFF29D7409700E9AE35 /* SyncSettingsViewController+PDFRendering.swift */; }; @@ -439,7 +449,7 @@ 85C2970A247EB7AA0063A335 /* Text.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 85C29709247EB7AA0063A335 /* Text.xcassets */; }; 85C2971A248162CA0063A335 /* DaxOnboardingPadViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85C29719248162CA0063A335 /* DaxOnboardingPadViewController.swift */; }; 85C861E628FF1B5F00189466 /* HomeViewSectionRenderersExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85C861E528FF1B5F00189466 /* HomeViewSectionRenderersExtension.swift */; }; - 85C91CA224671F4C00A11132 /* AppDeepLinks.swift in Sources */ = {isa = PBXBuildFile; fileRef = F17D723B1E8BB374003E8B0E /* AppDeepLinks.swift */; }; + 85C91CA224671F4C00A11132 /* AppDeepLinkSchemes.swift in Sources */ = {isa = PBXBuildFile; fileRef = F17D723B1E8BB374003E8B0E /* AppDeepLinkSchemes.swift */; }; 85CA53A824BB343700A6288C /* Favicons.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85CA53A324B9F2BD00A6288C /* Favicons.swift */; }; 85CA53AA24BB376800A6288C /* NotFoundCachingDownloader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85CA53A924BB376800A6288C /* NotFoundCachingDownloader.swift */; }; 85CA53AC24BBD39300A6288C /* FaviconRequestModifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85CA53AB24BBD39300A6288C /* FaviconRequestModifier.swift */; }; @@ -450,6 +460,8 @@ 85D2187924BF6B8B004373D2 /* FaviconSourcesProviderTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85D2187724BF6B88004373D2 /* FaviconSourcesProviderTests.swift */; }; 85D2187B24BF9F85004373D2 /* FaviconUserScript.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85D2187A24BF9F85004373D2 /* FaviconUserScript.swift */; }; 85D598872927F84C00FA3B1B /* Crashes in Frameworks */ = {isa = PBXBuildFile; productRef = 85D598862927F84C00FA3B1B /* Crashes */; }; + 85DB12EB2A1FE2A4000A4A72 /* LockScreenWidgets.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85DB12EA2A1FE2A4000A4A72 /* LockScreenWidgets.swift */; }; + 85DB12ED2A1FED0C000A4A72 /* AppDelegate+AppDeepLinks.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85DB12EC2A1FED0C000A4A72 /* AppDelegate+AppDeepLinks.swift */; }; 85DF714624F7FE6100C89288 /* Core.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F143C2E41E4A4CD400CFDE3A /* Core.framework */; }; 85DFEDED24C7CCA500973FE7 /* AppWidthObserver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85DFEDEC24C7CCA500973FE7 /* AppWidthObserver.swift */; }; 85DFEDEF24C7EA3B00973FE7 /* SmallOmniBarState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85DFEDEE24C7EA3B00973FE7 /* SmallOmniBarState.swift */; }; @@ -711,12 +723,31 @@ CBD4F140279EBFB300B20FD7 /* SwiftUICollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = CB1AEFB02799AA940031AE3D /* SwiftUICollectionViewCell.swift */; }; CBDD5DDF29A6736A00832877 /* APIHeadersTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = CBDD5DDE29A6736A00832877 /* APIHeadersTests.swift */; }; CBDD5DE129A6741300832877 /* MockBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = CBDD5DE029A6741300832877 /* MockBundle.swift */; }; + D63657192A7BAE7C001AF19D /* EmailManagerRequestDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = D63657182A7BAE7C001AF19D /* EmailManagerRequestDelegate.swift */; }; EA39B7E2268A1A35000C62CD /* privacy-reference-tests in Resources */ = {isa = PBXBuildFile; fileRef = EA39B7E1268A1A35000C62CD /* privacy-reference-tests */; }; EAB19EDA268963510015D3EA /* DomainMatchingTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAB19ED9268963510015D3EA /* DomainMatchingTests.swift */; }; + EE0153E12A6EABE0002A8B26 /* NetworkProtectionConvenienceInitialisers.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE0153E02A6EABE0002A8B26 /* NetworkProtectionConvenienceInitialisers.swift */; }; + EE0153E62A6FE106002A8B26 /* NetworkProtectionRootViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE0153E52A6FE106002A8B26 /* NetworkProtectionRootViewModel.swift */; }; + EE0153EB2A6FF970002A8B26 /* NetworkProtectionRootViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE0153EA2A6FF970002A8B26 /* NetworkProtectionRootViewModelTests.swift */; }; + EE0153ED2A6FF9E6002A8B26 /* NetworkProtectionRootView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE0153EC2A6FF9E6002A8B26 /* NetworkProtectionRootView.swift */; }; + EE0153EF2A70021E002A8B26 /* NetworkProtectionInviteView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE0153EE2A70021E002A8B26 /* NetworkProtectionInviteView.swift */; }; + EE276BEA2A77F823009167B6 /* NetworkProtectionRootViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE276BE92A77F823009167B6 /* NetworkProtectionRootViewController.swift */; }; EE3B226B29DE0F110082298A /* MockInternalUserStoring.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE3B226A29DE0F110082298A /* MockInternalUserStoring.swift */; }; EE3B226C29DE0FD30082298A /* MockInternalUserStoring.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE3B226A29DE0F110082298A /* MockInternalUserStoring.swift */; }; + EE41BD192A729E9C00546C57 /* NetworkProtectionInviteViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE41BD182A729E9C00546C57 /* NetworkProtectionInviteViewModelTests.swift */; }; + EE4BE0092A740BED00CD6AA8 /* ClearTextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE4BE0082A740BED00CD6AA8 /* ClearTextField.swift */; }; + EE4FB1862A28CE7200E5CBA7 /* NetworkProtectionStatusView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE4FB1852A28CE7200E5CBA7 /* NetworkProtectionStatusView.swift */; }; + EE4FB1882A28D11900E5CBA7 /* NetworkProtectionStatusViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE4FB1872A28D11900E5CBA7 /* NetworkProtectionStatusViewModel.swift */; }; EE50052E29C369D300AE0773 /* FeatureFlag.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE50052D29C369D300AE0773 /* FeatureFlag.swift */; }; EE50053029C3BA0800AE0773 /* InternalUserStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE50052F29C3BA0800AE0773 /* InternalUserStore.swift */; }; + EE72CA852A862D000043B5B3 /* NetworkProtectionDebugViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE72CA842A862D000043B5B3 /* NetworkProtectionDebugViewController.swift */; }; + EE7917912A83DE93008DFF28 /* CombineTestUtilities.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE7917902A83DE93008DFF28 /* CombineTestUtilities.swift */; }; + EE8594992A44791C008A6D06 /* NetworkProtectionTunnelController.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE8594982A44791C008A6D06 /* NetworkProtectionTunnelController.swift */; }; + EE8E568A2A56BCE400F11DCA /* NetworkProtection in Frameworks */ = {isa = PBXBuildFile; productRef = EE8E56892A56BCE400F11DCA /* NetworkProtection */; }; + EEEB80A32A421CE600386378 /* NetworkProtectionPacketTunnelProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = EEEB80A22A421CE600386378 /* NetworkProtectionPacketTunnelProvider.swift */; }; + EEFAB4672A73C230008A38E4 /* NetworkProtectionTestUtils in Frameworks */ = {isa = PBXBuildFile; productRef = EEFAB4662A73C230008A38E4 /* NetworkProtectionTestUtils */; }; + EEFD562F2A65B6CA00DAEC48 /* NetworkProtectionInviteViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = EEFD562E2A65B6CA00DAEC48 /* NetworkProtectionInviteViewModel.swift */; }; + EEFE9C732A603CE9005B0A26 /* NetworkProtectionStatusViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = EEFE9C722A603CE9005B0A26 /* NetworkProtectionStatusViewModelTests.swift */; }; F103073B1E7C91330059FEC7 /* BookmarksDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = F103073A1E7C91330059FEC7 /* BookmarksDataSource.swift */; }; F1075C921E9EF827006BE8A8 /* UserDefaultsExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1075C911E9EF827006BE8A8 /* UserDefaultsExtension.swift */; }; F10E522D1E946F8800CE1253 /* NSAttributedStringExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = F10E522C1E946F8800CE1253 /* NSAttributedStringExtension.swift */; }; @@ -763,7 +794,7 @@ F17922E01E71BB59006E3D97 /* AutocompleteViewControllerDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = F17922DF1E71BB59006E3D97 /* AutocompleteViewControllerDelegate.swift */; }; F17922E21E71CD67006E3D97 /* NoSuggestionsTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = F17922E11E71CD67006E3D97 /* NoSuggestionsTableViewCell.swift */; }; F17D72391E8B35C6003E8B0E /* AppURLsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F17D72381E8B35C6003E8B0E /* AppURLsTests.swift */; }; - F17D723C1E8BB374003E8B0E /* AppDeepLinks.swift in Sources */ = {isa = PBXBuildFile; fileRef = F17D723B1E8BB374003E8B0E /* AppDeepLinks.swift */; }; + F17D723C1E8BB374003E8B0E /* AppDeepLinkSchemes.swift in Sources */ = {isa = PBXBuildFile; fileRef = F17D723B1E8BB374003E8B0E /* AppDeepLinkSchemes.swift */; }; F189AED71F18F6DE001EBAE1 /* TabTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F189AED61F18F6DE001EBAE1 /* TabTests.swift */; }; F189AEE41F18FDAF001EBAE1 /* LinkTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F189AEE31F18FDAF001EBAE1 /* LinkTests.swift */; }; F194FAED1F14E2B3009B4DF8 /* UIFontExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = F194FAEC1F14E2B3009B4DF8 /* UIFontExtension.swift */; }; @@ -1023,14 +1054,21 @@ 021D307C2989C0C600918636 /* ProxyServerEvent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProxyServerEvent.swift; sourceTree = ""; }; 021D307D2989C0C700918636 /* RuleMatchEvent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RuleMatchEvent.swift; sourceTree = ""; }; 021D307E2989C0C800918636 /* EventType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EventType.swift; sourceTree = ""; }; + 02341FA32A437999008A1531 /* OnboardingStepView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingStepView.swift; sourceTree = ""; }; + 02341FA52A4379CC008A1531 /* OnboardingStepViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingStepViewModel.swift; sourceTree = ""; }; 0253A43029E5DCD7003697C1 /* AppTrackingProtectionAllowlistModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppTrackingProtectionAllowlistModel.swift; sourceTree = ""; }; 0253A43229E5E393003697C1 /* AppTrackingProtectionAllowlistModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppTrackingProtectionAllowlistModelTests.swift; sourceTree = ""; }; 025CCF75257EAFAF001CD5BB /* FingerprintUITest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FingerprintUITest.swift; sourceTree = ""; }; 025CCFE22582601C001CD5BB /* FingerprintingUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = FingerprintingUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 025CCFE62582601C001CD5BB /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 0262085A2A37915D006CB755 /* ios_blocklist_075.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = ios_blocklist_075.json; sourceTree = ""; }; + 0268FC122A449F04000EE6A2 /* OnboardingContainerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingContainerView.swift; sourceTree = ""; }; 026DABA328242BC80089E0B5 /* MockUserAgent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockUserAgent.swift; sourceTree = ""; }; 026F08B729B7DC480079B9DF /* EmbeddedAppTPDataTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmbeddedAppTPDataTests.swift; sourceTree = ""; }; + 027F48732A4B5904001A1C6C /* AppTPAboutView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppTPAboutView.swift; sourceTree = ""; }; + 027F48752A4B5FBE001A1C6C /* AppTPLinkButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppTPLinkButton.swift; sourceTree = ""; }; + 027F48772A4B663C001A1C6C /* AppTPFAQView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppTPFAQView.swift; sourceTree = ""; }; + 027F48792A4B66CD001A1C6C /* AppTPFAQViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppTPFAQViewModel.swift; sourceTree = ""; }; 0290471D29E708750008FE3C /* AppTPManageTrackersView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppTPManageTrackersView.swift; sourceTree = ""; }; 0290471F29E708B70008FE3C /* AppTPManageTrackersViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppTPManageTrackersViewModel.swift; sourceTree = ""; }; 0290472129E723260008FE3C /* AppTPManageTrackerCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppTPManageTrackerCell.swift; sourceTree = ""; }; @@ -1192,8 +1230,10 @@ 31EF52E0281B3BDC0034796E /* AutofillLoginListItemViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AutofillLoginListItemViewModel.swift; sourceTree = ""; }; 37445F962A155F7C0029F789 /* SyncDataProviders.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SyncDataProviders.swift; sourceTree = ""; }; 379E877329E97C8D001C8BB0 /* BookmarksCleanupErrorHandling.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BookmarksCleanupErrorHandling.swift; sourceTree = ""; }; + 37CEFCAB2A673B90001EF741 /* CredentialsCleanupErrorHandling.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CredentialsCleanupErrorHandling.swift; sourceTree = ""; }; 37DF000929F9C416002B7D3E /* SyncMetadataDatabase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SyncMetadataDatabase.swift; sourceTree = ""; }; 37DF000E29F9D635002B7D3E /* SyncBookmarksAdapter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SyncBookmarksAdapter.swift; sourceTree = ""; }; + 37E615742A5F533E00ACD63D /* SyncCredentialsAdapter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SyncCredentialsAdapter.swift; sourceTree = ""; }; 37FCAAAA29911BF1000E420A /* WaitlistExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WaitlistExtensions.swift; sourceTree = ""; }; 37FCAAB129914232000E420A /* WindowsBrowserWaitlistView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WindowsBrowserWaitlistView.swift; sourceTree = ""; }; 37FCAAB329914C77000E420A /* WindowsWaitlistViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WindowsWaitlistViewController.swift; sourceTree = ""; }; @@ -1225,6 +1265,7 @@ 4B83397229AFB8D2003F7EA9 /* AppTrackingProtectionFeedbackModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppTrackingProtectionFeedbackModel.swift; sourceTree = ""; }; 4B83397429AFBCE6003F7EA9 /* AppTrackingProtectionFeedbackModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppTrackingProtectionFeedbackModelTests.swift; sourceTree = ""; }; 4BC21A2C272388BD00229F0E /* RunLoopExtensionTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunLoopExtensionTests.swift; sourceTree = ""; }; + 4BC6DD1B2A60E6AD001EC129 /* ReportBrokenSiteView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReportBrokenSiteView.swift; sourceTree = ""; }; 4BE27566272F878F006B20B0 /* URLRequestExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = URLRequestExtension.swift; path = ../DuckDuckGo/URLRequestExtension.swift; sourceTree = ""; }; 4BFB911A29B7D9530014D4B7 /* AppTrackingProtectionStoringModelPerformanceTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppTrackingProtectionStoringModelPerformanceTests.swift; sourceTree = ""; }; 56244C1C2A137B1900EDF259 /* WaitlistViews.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WaitlistViews.swift; sourceTree = ""; }; @@ -1327,6 +1368,7 @@ 85449EFC23FDA71F00512AAF /* KeyboardSettings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KeyboardSettings.swift; sourceTree = ""; }; 85449F0023FEAF3000512AAF /* UserDefaultsExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserDefaultsExtension.swift; sourceTree = ""; }; 8544C37A250B823600A0FE73 /* UserText.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserText.swift; sourceTree = ""; }; + 8546A5492A672959003929BF /* MainViewController+Email.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "MainViewController+Email.swift"; sourceTree = ""; }; 85480CB229226B1E007E8F13 /* CrashCollectionExtensionTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CrashCollectionExtensionTests.swift; sourceTree = ""; }; 85482D882462DCD100EDEDD1 /* OpenAction.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = OpenAction.appex; sourceTree = BUILT_PRODUCTS_DIR; }; 85482D8C2462DCD100EDEDD1 /* ActionViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActionViewController.swift; sourceTree = ""; }; @@ -1335,9 +1377,9 @@ 85482D982462F1C600EDEDD1 /* ActionIcons.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = ActionIcons.xcassets; sourceTree = ""; }; 8548D95D25262B1B005AAE49 /* ViewHighlighter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewHighlighter.swift; sourceTree = ""; }; 8548D96725262C33005AAE49 /* view_highlight.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = view_highlight.json; sourceTree = ""; }; + 854A012A2A54412600FCC628 /* ActivityViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ActivityViewController.swift; sourceTree = ""; }; 854A012E2A5563A400FCC628 /* FindInPage.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = FindInPage.xib; sourceTree = ""; }; 854A01322A558B3A00FCC628 /* UIView+Constraints.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIView+Constraints.swift"; sourceTree = ""; }; - 854A012A2A54412600FCC628 /* ActivityViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ActivityViewController.swift; sourceTree = ""; }; 85514FFC2372DA0000DBC528 /* ios13-home-row.mp4 */ = {isa = PBXFileReference; lastKnownFileType = file; path = "ios13-home-row.mp4"; sourceTree = ""; }; 85519124247468580010FDD0 /* TrackerRadarIntegrationTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TrackerRadarIntegrationTests.swift; sourceTree = ""; }; 8551912624746EDC0010FDD0 /* SnapshotHelper.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SnapshotHelper.swift; path = fastlane/SnapshotHelper.swift; sourceTree = SOURCE_ROOT; }; @@ -1400,6 +1442,8 @@ 85D2187A24BF9F85004373D2 /* FaviconUserScript.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FaviconUserScript.swift; sourceTree = ""; }; 85D33FCB25C97B6E002B91A6 /* IntegrationTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = IntegrationTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 85D33FCF25C97B6E002B91A6 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 85DB12EA2A1FE2A4000A4A72 /* LockScreenWidgets.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LockScreenWidgets.swift; sourceTree = ""; }; + 85DB12EC2A1FED0C000A4A72 /* AppDelegate+AppDeepLinks.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "AppDelegate+AppDeepLinks.swift"; sourceTree = ""; }; 85DFEDEC24C7CCA500973FE7 /* AppWidthObserver.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppWidthObserver.swift; sourceTree = ""; }; 85DFEDEE24C7EA3B00973FE7 /* SmallOmniBarState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SmallOmniBarState.swift; sourceTree = ""; }; 85DFEDF024C7EEA400973FE7 /* LargeOmniBarState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LargeOmniBarState.swift; sourceTree = ""; }; @@ -2247,11 +2291,31 @@ CBF14FC227970072001D94D0 /* HomeMessageView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeMessageView.swift; sourceTree = ""; }; CBF14FC427970AB0001D94D0 /* HomeMessageViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeMessageViewModel.swift; sourceTree = ""; }; CBF14FC627970C8A001D94D0 /* HomeMessageCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeMessageCollectionViewCell.swift; sourceTree = ""; }; + D63657182A7BAE7C001AF19D /* EmailManagerRequestDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EmailManagerRequestDelegate.swift; sourceTree = ""; }; EA39B7E1268A1A35000C62CD /* privacy-reference-tests */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "privacy-reference-tests"; path = "submodules/privacy-reference-tests"; sourceTree = SOURCE_ROOT; }; EAB19ED9268963510015D3EA /* DomainMatchingTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DomainMatchingTests.swift; sourceTree = ""; }; + EE0153E02A6EABE0002A8B26 /* NetworkProtectionConvenienceInitialisers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkProtectionConvenienceInitialisers.swift; sourceTree = ""; }; + EE0153E52A6FE106002A8B26 /* NetworkProtectionRootViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkProtectionRootViewModel.swift; sourceTree = ""; }; + EE0153EA2A6FF970002A8B26 /* NetworkProtectionRootViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkProtectionRootViewModelTests.swift; sourceTree = ""; }; + EE0153EC2A6FF9E6002A8B26 /* NetworkProtectionRootView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkProtectionRootView.swift; sourceTree = ""; }; + EE0153EE2A70021E002A8B26 /* NetworkProtectionInviteView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkProtectionInviteView.swift; sourceTree = ""; }; + EE276BE92A77F823009167B6 /* NetworkProtectionRootViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkProtectionRootViewController.swift; sourceTree = ""; }; EE3B226A29DE0F110082298A /* MockInternalUserStoring.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockInternalUserStoring.swift; sourceTree = ""; }; + EE3B98EA2A9634CC002F63A0 /* DuckDuckGoAlpha.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DuckDuckGoAlpha.entitlements; sourceTree = ""; }; + EE3B98EB2A963515002F63A0 /* WidgetsExtensionAlpha.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = WidgetsExtensionAlpha.entitlements; sourceTree = ""; }; + EE3B98EC2A963538002F63A0 /* PacketTunnelProviderAlpha.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = PacketTunnelProviderAlpha.entitlements; sourceTree = ""; }; + EE41BD182A729E9C00546C57 /* NetworkProtectionInviteViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkProtectionInviteViewModelTests.swift; sourceTree = ""; }; + EE4BE0082A740BED00CD6AA8 /* ClearTextField.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ClearTextField.swift; sourceTree = ""; }; + EE4FB1852A28CE7200E5CBA7 /* NetworkProtectionStatusView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkProtectionStatusView.swift; sourceTree = ""; }; + EE4FB1872A28D11900E5CBA7 /* NetworkProtectionStatusViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkProtectionStatusViewModel.swift; sourceTree = ""; }; EE50052D29C369D300AE0773 /* FeatureFlag.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FeatureFlag.swift; sourceTree = ""; }; EE50052F29C3BA0800AE0773 /* InternalUserStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InternalUserStore.swift; sourceTree = ""; }; + EE72CA842A862D000043B5B3 /* NetworkProtectionDebugViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkProtectionDebugViewController.swift; sourceTree = ""; }; + EE7917902A83DE93008DFF28 /* CombineTestUtilities.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CombineTestUtilities.swift; sourceTree = ""; }; + EE8594982A44791C008A6D06 /* NetworkProtectionTunnelController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkProtectionTunnelController.swift; sourceTree = ""; }; + EEEB80A22A421CE600386378 /* NetworkProtectionPacketTunnelProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkProtectionPacketTunnelProvider.swift; sourceTree = ""; }; + EEFD562E2A65B6CA00DAEC48 /* NetworkProtectionInviteViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkProtectionInviteViewModel.swift; sourceTree = ""; }; + EEFE9C722A603CE9005B0A26 /* NetworkProtectionStatusViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkProtectionStatusViewModelTests.swift; sourceTree = ""; }; F103073A1E7C91330059FEC7 /* BookmarksDataSource.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BookmarksDataSource.swift; sourceTree = ""; }; F1075C911E9EF827006BE8A8 /* UserDefaultsExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserDefaultsExtension.swift; sourceTree = ""; }; F10E522C1E946F8800CE1253 /* NSAttributedStringExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NSAttributedStringExtension.swift; sourceTree = ""; }; @@ -2303,7 +2367,7 @@ F17922DF1E71BB59006E3D97 /* AutocompleteViewControllerDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AutocompleteViewControllerDelegate.swift; sourceTree = ""; }; F17922E11E71CD67006E3D97 /* NoSuggestionsTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NoSuggestionsTableViewCell.swift; sourceTree = ""; }; F17D72381E8B35C6003E8B0E /* AppURLsTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppURLsTests.swift; sourceTree = ""; }; - F17D723B1E8BB374003E8B0E /* AppDeepLinks.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDeepLinks.swift; sourceTree = ""; }; + F17D723B1E8BB374003E8B0E /* AppDeepLinkSchemes.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDeepLinkSchemes.swift; sourceTree = ""; }; F189AED61F18F6DE001EBAE1 /* TabTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TabTests.swift; sourceTree = ""; }; F189AEE31F18FDAF001EBAE1 /* LinkTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LinkTests.swift; sourceTree = ""; }; F194FAEC1F14E2B3009B4DF8 /* UIFontExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIFontExtension.swift; sourceTree = ""; }; @@ -2419,6 +2483,7 @@ files = ( F486D3362506A037002D07D7 /* OHHTTPStubs in Frameworks */, F486D3382506A225002D07D7 /* OHHTTPStubsSwift in Frameworks */, + EEFAB4672A73C230008A38E4 /* NetworkProtectionTestUtils in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2475,10 +2540,12 @@ 1E60989B290009C700A508F9 /* Common in Frameworks */, 1E60989D290011E600A508F9 /* ContentBlocking in Frameworks */, F486D33425069BBB002D07D7 /* Kingfisher in Frameworks */, + EE8E568A2A56BCE400F11DCA /* NetworkProtection in Frameworks */, CBC83E3429B631780008E19C /* Configuration in Frameworks */, 98A16C2D28A11D6200A6C003 /* BrowserServicesKit in Frameworks */, 8599690F29D2F1C100DBF9FA /* DDGSync in Frameworks */, 1E60989F290011E600A508F9 /* PrivacyDashboard in Frameworks */, + 851481882A600EFC00ABC65F /* RemoteMessaging in Frameworks */, 37DF000C29F9CA80002B7D3E /* SyncDataProviders in Frameworks */, 1E6098A1290011E600A508F9 /* UserScript in Frameworks */, C14882ED27F211A000D59F0C /* SwiftSoup in Frameworks */, @@ -2501,11 +2568,13 @@ 02025665298818B200E694E7 /* PacketTunnelProvider */ = { isa = PBXGroup; children = ( + EE3B98EC2A963538002F63A0 /* PacketTunnelProviderAlpha.entitlements */, 02025670298818CB00E694E7 /* ProxyServer */, 02025666298818B200E694E7 /* AppTrackingProtectionPacketTunnelProvider.swift */, 02025B1429884EA500E694E7 /* DDGObserverFactory.swift */, 02025668298818B200E694E7 /* Info.plist */, 02025669298818B200E694E7 /* PacketTunnelProvider.entitlements */, + EEEB80A22A421CE600386378 /* NetworkProtectionPacketTunnelProvider.swift */, ); path = PacketTunnelProvider; sourceTree = ""; @@ -2660,6 +2729,7 @@ 02025B0A29884CF300E694E7 /* AppTrackingProtection */ = { isa = PBXGroup; children = ( + 02341FA22A435E42008A1531 /* AppTPOnboarding */, 0290471C29E7085D0008FE3C /* AppTPManageTrackersView */, 0290472629E8619B0008FE3C /* AppTPTrackerDetailView */, 02EC02C229AFA31900557F1A /* AppTPBreakageForm */, @@ -2695,6 +2765,19 @@ path = Event; sourceTree = ""; }; + 02341FA22A435E42008A1531 /* AppTPOnboarding */ = { + isa = PBXGroup; + children = ( + 02341FA32A437999008A1531 /* OnboardingStepView.swift */, + 02341FA52A4379CC008A1531 /* OnboardingStepViewModel.swift */, + 0268FC122A449F04000EE6A2 /* OnboardingContainerView.swift */, + 027F48732A4B5904001A1C6C /* AppTPAboutView.swift */, + 027F48772A4B663C001A1C6C /* AppTPFAQView.swift */, + 027F48792A4B66CD001A1C6C /* AppTPFAQViewModel.swift */, + ); + name = AppTPOnboarding; + sourceTree = ""; + }; 025CCFE32582601C001CD5BB /* FingerprintingUITests */ = { isa = PBXGroup; children = ( @@ -2748,6 +2831,7 @@ 020108AD29A7F91600644F9D /* AppTPTrackerCell.swift */, 0290472429E8496A0008FE3C /* AppTPActivityIconView.swift */, 0290472D29E99A2F0008FE3C /* GenericIconView.swift */, + 027F48752A4B5FBE001A1C6C /* AppTPLinkButton.swift */, ); name = View; sourceTree = ""; @@ -2795,6 +2879,7 @@ 1E24295D293F57FA00584836 /* LottieView.swift */, 1E162604296840D80004127F /* Triangle.swift */, 1E1626062968413B0004127F /* ViewExtension.swift */, + EE4BE0082A740BED00CD6AA8 /* ClearTextField.swift */, ); name = SwiftUI; sourceTree = ""; @@ -3160,8 +3245,10 @@ children = ( 37DF000929F9C416002B7D3E /* SyncMetadataDatabase.swift */, 37DF000E29F9D635002B7D3E /* SyncBookmarksAdapter.swift */, + 37E615742A5F533E00ACD63D /* SyncCredentialsAdapter.swift */, 37445F962A155F7C0029F789 /* SyncDataProviders.swift */, 37FD780E2A29E28B00B36DB1 /* SyncErrorHandler.swift */, + 37CEFCAB2A673B90001EF741 /* CredentialsCleanupErrorHandling.swift */, ); name = Sync; sourceTree = ""; @@ -3349,6 +3436,7 @@ 980891A42237D4F500313A70 /* FeedbackNavigator.swift */, 980891A62237D5D800313A70 /* FeedbackPresenter.swift */, 986C7FA624171C6000A3557D /* BrokenSiteCategories.swift */, + 4BC6DD1B2A60E6AD001EC129 /* ReportBrokenSiteView.swift */, 986C7FA82417ADE700A3557D /* ReportBrokenSiteViewController.swift */, 98728E812417E3300033960E /* BrokenSiteInfo.swift */, ); @@ -3373,6 +3461,7 @@ 84E341891E2F7EFB00BDBA6F = { isa = PBXGroup; children = ( + EE3B98EB2A963515002F63A0 /* WidgetsExtensionAlpha.entitlements */, 6FB030C7234331B400A10DB9 /* Configuration.xcconfig */, 84E341941E2F7EFB00BDBA6F /* DuckDuckGo */, F143C2E51E4A4CD400CFDE3A /* Core */, @@ -3417,6 +3506,7 @@ 84E341941E2F7EFB00BDBA6F /* DuckDuckGo */ = { isa = PBXGroup; children = ( + EE3B98EA2A9634CC002F63A0 /* DuckDuckGoAlpha.entitlements */, CB258D1129A4F1BB00DEBA24 /* Configuration */, 1E908BED29827C480008C8F3 /* Autoconsent */, 3157B43627F4C8380042D3D7 /* Favicons */, @@ -3438,6 +3528,7 @@ 98B001B1251EABB40090EC07 /* InfoPlist.strings */, 85DFEDEB24C7CC7600973FE7 /* iPad */, F1C5ECFA1E37B15B00C599A4 /* Main */, + EECD94B22A28B8580085C66E /* NetworkProtection */, 85AE668C20971FCA0014CF04 /* Notifications */, F1C4A70C1E5771F800A6CA1B /* OmniBar */, F1AE54DB1F0425BB00D9A700 /* Privacy */, @@ -3495,12 +3586,13 @@ 853273AC24FEF49600E3C778 /* ColorExtension.swift */, 853273B124FF114700E3C778 /* DeepLinks.swift */, 8512EA5824ED30D30073EE19 /* Info.plist */, - 98B001A8251EABB40090EC07 /* Localizable.strings */, 98B001A2251EABB40090EC07 /* InfoPlist.strings */, + 98B001A8251EABB40090EC07 /* Localizable.strings */, + 85DB12EA2A1FE2A4000A4A72 /* LockScreenWidgets.swift */, + 8544C37A250B823600A0FE73 /* UserText.swift */, 8512EA5324ED30D20073EE19 /* Widgets.swift */, 853273AF24FEFE4600E3C778 /* WidgetsExtension.entitlements */, 853273A924FEF24300E3C778 /* WidgetViews.swift */, - 8544C37A250B823600A0FE73 /* UserText.swift */, ); path = Widgets; sourceTree = ""; @@ -3589,6 +3681,7 @@ 1EDE39D12705D4A100C99C72 /* FileSizeDebugViewController.swift */, F46FEC5627987A5F0061D9DF /* KeychainItemsDebugViewController.swift */, 983D71B02A286E810072E26D /* SyncDebugViewController.swift */, + EE72CA842A862D000043B5B3 /* NetworkProtectionDebugViewController.swift */, ); name = Debug; sourceTree = ""; @@ -4160,6 +4253,24 @@ name = PrivacyReferenceTests; sourceTree = ""; }; + EE0153DF2A6EABAF002A8B26 /* Helpers */ = { + isa = PBXGroup; + children = ( + EE0153E02A6EABE0002A8B26 /* NetworkProtectionConvenienceInitialisers.swift */, + ); + name = Helpers; + sourceTree = ""; + }; + EE0153E22A6FE031002A8B26 /* Root */ = { + isa = PBXGroup; + children = ( + EE0153E52A6FE106002A8B26 /* NetworkProtectionRootViewModel.swift */, + EE0153EC2A6FF9E6002A8B26 /* NetworkProtectionRootView.swift */, + EE276BE92A77F823009167B6 /* NetworkProtectionRootViewController.swift */, + ); + name = Root; + sourceTree = ""; + }; EE3B226929DE0EE10082298A /* FeatureFlags */ = { isa = PBXGroup; children = ( @@ -4177,6 +4288,46 @@ name = FeatureFlags; sourceTree = ""; }; + EE56DE3A2A6038F500375C41 /* NetworkProtection */ = { + isa = PBXGroup; + children = ( + EEFE9C722A603CE9005B0A26 /* NetworkProtectionStatusViewModelTests.swift */, + EE0153EA2A6FF970002A8B26 /* NetworkProtectionRootViewModelTests.swift */, + EE41BD182A729E9C00546C57 /* NetworkProtectionInviteViewModelTests.swift */, + ); + name = NetworkProtection; + sourceTree = ""; + }; + EECD94B22A28B8580085C66E /* NetworkProtection */ = { + isa = PBXGroup; + children = ( + EE0153E22A6FE031002A8B26 /* Root */, + EE0153DF2A6EABAF002A8B26 /* Helpers */, + EEFD562D2A65B68B00DAEC48 /* Invite */, + EECD94B32A28B96C0085C66E /* Status */, + EE8594982A44791C008A6D06 /* NetworkProtectionTunnelController.swift */, + ); + name = NetworkProtection; + sourceTree = ""; + }; + EECD94B32A28B96C0085C66E /* Status */ = { + isa = PBXGroup; + children = ( + EE4FB1852A28CE7200E5CBA7 /* NetworkProtectionStatusView.swift */, + EE4FB1872A28D11900E5CBA7 /* NetworkProtectionStatusViewModel.swift */, + ); + name = Status; + sourceTree = ""; + }; + EEFD562D2A65B68B00DAEC48 /* Invite */ = { + isa = PBXGroup; + children = ( + EEFD562E2A65B6CA00DAEC48 /* NetworkProtectionInviteViewModel.swift */, + EE0153EE2A70021E002A8B26 /* NetworkProtectionInviteView.swift */, + ); + name = Invite; + sourceTree = ""; + }; F1134EA71F3E2B3500B73467 /* Statistics */ = { isa = PBXGroup; children = ( @@ -4251,6 +4402,7 @@ C14882E627F20DAB00D59F0C /* TestDataLoader.swift */, 85449F0023FEAF3000512AAF /* UserDefaultsExtension.swift */, 31B1FA86286EFC5C00CA3C1C /* XCTestCaseExtension.swift */, + EE7917902A83DE93008DFF28 /* CombineTestUtilities.swift */, ); name = TestUtils; sourceTree = ""; @@ -4299,6 +4451,7 @@ 83134D7F20E2E013006CE65D /* Feedback */, 8588026724E4249800C24AB6 /* iPad */, 851DFD88212C5ED600D95F20 /* Main */, + EE56DE3A2A6038F500375C41 /* NetworkProtection */, F1D477C71F2139210031ED49 /* OmniBar */, C1B7B52E28944DDC0098FD6A /* RemoteMessaging */, 98EA2C3F218BB5140023E1DC /* Settings */, @@ -4411,22 +4564,22 @@ isa = PBXGroup; children = ( 4B470ED4299C484B0086EBDC /* AppTrackingProtection */, - CBAA195627BFDD9800A4BD49 /* SmarterEncryption */, F1CE42A71ECA0A520074A8DF /* Bookmarks */, 837774491F8E1ECE00E17A29 /* ContentBlocker */, F143C2E61E4A4CD400CFDE3A /* Core.h */, F143C3141E4A99BE00CFDE3A /* Domain */, - EE50052C29C3692700AE0773 /* FeatureFlags */, 85CA53A724BB342B00A6288C /* Favicons */, + EE50052C29C3692700AE0773 /* FeatureFlags */, 8512BCBF2061B6110085E862 /* global.swift */, F143C2E71E4A4CD400CFDE3A /* Info.plist */, 98B001AE251EABB40090EC07 /* InfoPlist.strings */, F18608DE1E5E648100361C30 /* Javascript */, + CBAA195B27C3982A00A4BD49 /* PrivacyFeatures.swift */, + CBAA195627BFDD9800A4BD49 /* SmarterEncryption */, F1134EA71F3E2B3500B73467 /* Statistics */, 37DF000829F9C3F0002B7D3E /* Sync */, F143C3191E4A99DD00CFDE3A /* Utilities */, F143C3311E4A9A6A00CFDE3A /* Web */, - CBAA195B27C3982A00A4BD49 /* PrivacyFeatures.swift */, ); path = Core; sourceTree = ""; @@ -4435,7 +4588,7 @@ isa = PBXGroup; children = ( F143C3151E4A99D200CFDE3A /* AppURLs.swift */, - F17D723B1E8BB374003E8B0E /* AppDeepLinks.swift */, + F17D723B1E8BB374003E8B0E /* AppDeepLinkSchemes.swift */, F143C3161E4A99D200CFDE3A /* Link.swift */, ); name = Domain; @@ -4701,15 +4854,16 @@ F1C5ECF31E37812900C599A4 /* Application */ = { isa = PBXGroup; children = ( + 83BE9BC2215D69C1009844D9 /* AppConfigurationFetch.swift */, CB24F70E29A3EB15006DCC58 /* AppConfigurationURLProvider.swift */, 84E341951E2F7EFB00BDBA6F /* AppDelegate.swift */, + 85DB12EC2A1FED0C000A4A72 /* AppDelegate+AppDeepLinks.swift */, 98B31291218CCB8C00E54DE1 /* AppDependencyProvider.swift */, - 85BA58541F34F49E00C6E8CA /* AppUserDefaults.swift */, 85BA58591F3506AE00C6E8CA /* AppSettings.swift */, - 83BE9BC2215D69C1009844D9 /* AppConfigurationFetch.swift */, - 853C5F6021C277C7001F7A05 /* global.swift */, + 85BA58541F34F49E00C6E8CA /* AppUserDefaults.swift */, 850250B220D803F4002199C7 /* AtbAndVariantCleanup.swift */, 983EABB7236198F6003948D1 /* DatabaseMigration.swift */, + 853C5F6021C277C7001F7A05 /* global.swift */, ); name = Application; sourceTree = ""; @@ -4723,8 +4877,9 @@ 8C4838B4221C8F7F008A6739 /* GestureToolbarButton.swift */, 84E341991E2F7EFB00BDBA6F /* Main.storyboard */, F17669D61E43401C003D3222 /* MainViewController.swift */, - 1E4F4A59297193DE00625985 /* MainViewController+CookiesManaged.swift */, 981CA7E92617797500E119D5 /* MainViewController+AddFavoriteFlow.swift */, + 1E4F4A59297193DE00625985 /* MainViewController+CookiesManaged.swift */, + 8546A5492A672959003929BF /* MainViewController+Email.swift */, 85F2FFCC2211F615006BB258 /* MainViewController+KeyCommands.swift */, 98EF177C21837E35006750C1 /* new_tab_dark.json */, 85371D232121B9D400920548 /* new_tab.json */, @@ -4871,6 +5026,7 @@ F44D279327F331930037F371 /* Autofill */ = { isa = PBXGroup; children = ( + D63657182A7BAE7C001AF19D /* EmailManagerRequestDelegate.swift */, F4147353283BF834004AA7A5 /* AutofillContentScopeFeatureToggles.swift */, C1D21E2C293A5965006E5A05 /* AutofillLoginSession.swift */, C13B32D12A0E750700A59236 /* AutofillSettingStatus.swift */, @@ -5000,6 +5156,7 @@ 37B4F3D329D2C84400758752 /* Copy GRDB framework */, F10307651E7D5B2C0059FEC7 /* Copy Frameworks */, 83E282AC20BC1840005FBE88 /* Embed App Extensions */, + EE9286812A812BD2002B7818 /* Embed PacketTunnelProvider */, ); buildRules = ( ); @@ -5042,6 +5199,7 @@ packageProductDependencies = ( F486D3352506A037002D07D7 /* OHHTTPStubs */, F486D3372506A225002D07D7 /* OHHTTPStubsSwift */, + EEFAB4662A73C230008A38E4 /* NetworkProtectionTestUtils */, ); productName = DuckDuckGoTests; productReference = 84E341A61E2F7EFB00BDBA6F /* UnitTests.xctest */; @@ -5187,6 +5345,8 @@ 8599690E29D2F1C100DBF9FA /* DDGSync */, 4B948E2529DCCDB9002531FA /* Persistence */, 37DF000B29F9CA80002B7D3E /* SyncDataProviders */, + 851481872A600EFC00ABC65F /* RemoteMessaging */, + EE8E56892A56BCE400F11DCA /* NetworkProtection */, ); productName = Core; productReference = F143C2E41E4A4CD400CFDE3A /* Core.framework */; @@ -5627,7 +5787,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "if [[ -n \"$CI\" ]] || [[ -n \"$BITRISE_IO\" ]]; then\n echo \"Skipping SwiftLint run in CI\"\n exit 0\nfi\n\nif test -d \"/opt/homebrew/bin/\"; then\n PATH=\"/opt/homebrew/bin/:${PATH}\"\nfi\n\nif test -d \"$HOME/.mint/bin/\"; then\n PATH=\"$HOME/.mint/bin/:${PATH}\"\nfi\n\nexport PATH\n\nif which swiftlint >/dev/null; then\n if [ \"$CONFIGURATION\" = \"Release\" ]; then\n swiftlint lint --strict\n if [ $? -ne 0 ]; then\n echo \"error: SwiftLint validation failed.\"\n exit 1\n fi\n else\n swiftlint lint\n fi\nelse\n echo \"error: SwiftLint not installed. Install using \\`brew install swiftlint\\`\"\n exit 1\nfi\n"; + shellScript = "./lint.sh\n"; }; 98B0CE69251C937D003FB601 /* Update Localizable.strings */ = { isa = PBXShellScriptBuildPhase; @@ -5667,6 +5827,25 @@ shellPath = /bin/sh; shellScript = "\"$SOURCE_ROOT/scripts/assert_xcode_version.sh\"\n"; }; + EE9286812A812BD2002B7818 /* Embed PacketTunnelProvider */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + name = "Embed PacketTunnelProvider"; + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "# Conditionally embeds PacketTunnelProvider extension for Debug and Alpha builds.\n\n# Conditionally embeds the PacketTunnelProvider extension for debug builds.\\n# To be moved to the Embed App Extensions phase on release.\n\nif [ \"${CONFIGURATION}\" = \"Debug\" ] || [ \"${CONFIGURATION}\" = \"Alpha\" ]; then\n# Copy the extension \n rsync -r --copy-links \"${CONFIGURATION_BUILD_DIR}/PacketTunnelProvider.appex\" \"${CONFIGURATION_BUILD_DIR}/${PLUGINS_FOLDER_PATH}\"\nfi\n"; + }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -5681,6 +5860,7 @@ 02025AA32988229800E694E7 /* PacketProtocolParser.swift in Sources */, 02025AA42988229800E694E7 /* IPPacket.swift in Sources */, 02025AA72988229800E694E7 /* ConnectSession.swift in Sources */, + EEEB80A32A421CE600386378 /* NetworkProtectionPacketTunnelProvider.swift in Sources */, 02025AA82988229800E694E7 /* HTTPHeader.swift in Sources */, 02025AA92988229800E694E7 /* ProxyServer.swift in Sources */, 4BEF656D2989C2FC00B650CB /* EventType.swift in Sources */, @@ -5752,6 +5932,7 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + EE4FB1862A28CE7200E5CBA7 /* NetworkProtectionStatusView.swift in Sources */, C17B59592A03AAD30055F2D1 /* PasswordGenerationPromptViewModel.swift in Sources */, 8528AE81212F15D600D0BD74 /* AppRatingPrompt.xcdatamodeld in Sources */, 1E24295E293F57FA00584836 /* LottieView.swift in Sources */, @@ -5764,9 +5945,11 @@ 319A371028299A850079FBCE /* PasswordHider.swift in Sources */, 982C87C42255559A00919035 /* UITableViewCellExtension.swift in Sources */, B623C1C42862CD670043013E /* WKDownloadSession.swift in Sources */, + EEFD562F2A65B6CA00DAEC48 /* NetworkProtectionInviteViewModel.swift in Sources */, 1E8AD1D927C4FEC100ABA377 /* DownloadsListSectioningHelper.swift in Sources */, 1E4DCF4827B6A35400961E25 /* DownloadsListModel.swift in Sources */, 31669B9A28020A460071CC18 /* SaveLoginViewModel.swift in Sources */, + EE4FB1882A28D11900E5CBA7 /* NetworkProtectionStatusViewModel.swift in Sources */, 0290472029E708B70008FE3C /* AppTPManageTrackersViewModel.swift in Sources */, 9881439C23326DC200573F7C /* ThemeSettingsViewController.swift in Sources */, 8540BD5623D9E9C20057FDD2 /* PreserveLoginsSettingsViewController.swift in Sources */, @@ -5798,6 +5981,7 @@ 314C92BA27C3E7CB0042EC96 /* QuickLookContainerViewController.swift in Sources */, 855D914D2063EF6A00C4B448 /* TabSwitcherTransition.swift in Sources */, CB258D1229A4F24900DEBA24 /* ConfigurationManager.swift in Sources */, + 8546A54A2A672959003929BF /* MainViewController+Email.swift in Sources */, F4F6DFB226E6AEC100ED7E12 /* AddOrEditBookmarkViewController.swift in Sources */, 85047C752A0D3C2900D2FF3F /* SyncSettingsViewController+Themable.swift in Sources */, F44D279F27F331BB0037F371 /* AutofillLoginPromptViewController.swift in Sources */, @@ -5807,7 +5991,6 @@ 3157B43527F497F50042D3D7 /* SaveLoginViewController.swift in Sources */, 853C5F6121C277C7001F7A05 /* global.swift in Sources */, F13B4BD31F1822C700814661 /* Tab.swift in Sources */, - 31951E95282310FF00CAF535 /* WebsiteAccountExtension.swift in Sources */, F1BE54581E69DE1000FCF649 /* TutorialSettings.swift in Sources */, 1EE52ABB28FB1D6300B750C1 /* UIImageExtension.swift in Sources */, 858650D12469BCDE00C36F8A /* DaxDialogs.swift in Sources */, @@ -5821,6 +6004,7 @@ 3132FA2A27A0788F00DD7A12 /* QuickLookPreviewHelper.swift in Sources */, C1D21E2D293A5965006E5A05 /* AutofillLoginSession.swift in Sources */, 4B53648A26718D0E001AA041 /* EmailWaitlist.swift in Sources */, + 027F48762A4B5FBE001A1C6C /* AppTPLinkButton.swift in Sources */, 8524CC98246D66E100E59D45 /* String+Markdown.swift in Sources */, 020108A329A561C300644F9D /* AppTPActivityView.swift in Sources */, 02A54A9E2A097F0F000C8FED /* AppTPCollectionViewCell.swift in Sources */, @@ -5832,6 +6016,7 @@ 1E1626072968413B0004127F /* ViewExtension.swift in Sources */, 31A42566285A0A6300049386 /* FaviconViewModel.swift in Sources */, 8C4838B5221C8F7F008A6739 /* GestureToolbarButton.swift in Sources */, + EE276BEA2A77F823009167B6 /* NetworkProtectionRootViewController.swift in Sources */, 986C7FA92417ADE700A3557D /* ReportBrokenSiteViewController.swift in Sources */, 310ECFDD282A8BB0005029B3 /* EnableAutofillSettingsTableViewCell.swift in Sources */, 1E908BF329827C480008C8F3 /* AutoconsentManagement.swift in Sources */, @@ -5841,6 +6026,7 @@ 85C297042476C1FD0063A335 /* DaxDialogsSettings.swift in Sources */, 8505836F219F424500ED4EDB /* UIViewExtension.swift in Sources */, 8505836E219F424500ED4EDB /* RoundedRectangleView.swift in Sources */, + EE8594992A44791C008A6D06 /* NetworkProtectionTunnelController.swift in Sources */, 1EEF123F2850A68A003DDE57 /* PrivacyInfoContainerView.swift in Sources */, F4B0B796252CB35700830156 /* OnboardingWidgetsDetailsViewController.swift in Sources */, CB258D1329A4F24E00DEBA24 /* ConfigurationStore.swift in Sources */, @@ -5857,6 +6043,7 @@ 4B6484F327FD1E350050A7A1 /* MenuControllerView.swift in Sources */, 1EE7C299294227EC0026C8CB /* AutoconsentSettingsViewController.swift in Sources */, 1E8AD1D527C2E22900ABA377 /* DownloadsListSectionViewModel.swift in Sources */, + 4BC6DD1C2A60E6AD001EC129 /* ReportBrokenSiteView.swift in Sources */, 31584616281AFB46004ADB8B /* AutofillLoginDetailsViewController.swift in Sources */, F47E53D9250A97330037C686 /* OnboardingDefaultBroswerViewController.swift in Sources */, F13B4BD51F183B3600814661 /* TabsModelPersistenceExtension.swift in Sources */, @@ -5865,6 +6052,7 @@ 1E8AD1C927BFAD1500ABA377 /* DirectoryMonitor.swift in Sources */, 1E8AD1D127C000AB00ABA377 /* OngoingDownloadRow.swift in Sources */, 85058366219AE9EA00ED4EDB /* HomePageConfiguration.swift in Sources */, + EE0153E12A6EABE0002A8B26 /* NetworkProtectionConvenienceInitialisers.swift in Sources */, C17B595B2A03AAD30055F2D1 /* PasswordGenerationPromptView.swift in Sources */, 98AA92B32456FBE100ED4B9E /* SearchFieldContainerView.swift in Sources */, 3157B43827F4C8490042D3D7 /* FaviconsHelper.swift in Sources */, @@ -5892,6 +6080,7 @@ F4C9FBF528340DDA002281CC /* AutofillInterfaceEmailTruncator.swift in Sources */, 1E016AB42949FEB500F21625 /* OmniBarNotificationViewModel.swift in Sources */, 6AC6DAB328804F97002723C0 /* BarsAnimator.swift in Sources */, + EE0153ED2A6FF9E6002A8B26 /* NetworkProtectionRootView.swift in Sources */, B60DFF072872B64B0061E7C2 /* JSAlertController.swift in Sources */, 981FED6E22025151008488D7 /* BlankSnapshotViewController.swift in Sources */, 98F3A1DC217B373E0011A0D4 /* DarkTheme.swift in Sources */, @@ -5910,16 +6099,19 @@ 85DFEDF124C7EEA400973FE7 /* LargeOmniBarState.swift in Sources */, 9880722A25FA497B0039EF4B /* MenuButton.swift in Sources */, F46FEC5727987A5F0061D9DF /* KeychainItemsDebugViewController.swift in Sources */, + 02341FA62A4379CC008A1531 /* OnboardingStepViewModel.swift in Sources */, 850365F323DE087800D0F787 /* UIImageViewExtension.swift in Sources */, C160544129D6044D00B715A1 /* AutofillInterfaceUsernameTruncator.swift in Sources */, 02A54A9A2A094A17000C8FED /* AppTPHomeView.swift in Sources */, 31C70B5528045E3500FB6AD1 /* SecureVaultErrorReporter.swift in Sources */, F4CE6D1B257EA33C00D0A6AA /* FireButtonAnimator.swift in Sources */, 85582E0029D7409700E9AE35 /* SyncSettingsViewController+PDFRendering.swift in Sources */, + EE0153EF2A70021E002A8B26 /* NetworkProtectionInviteView.swift in Sources */, 9888F77B2224980500C46159 /* FeedbackViewController.swift in Sources */, 982686AD2600C0850011A8D6 /* ActionMessageView.swift in Sources */, F446B9B5251150AC00324016 /* HomeMessageViewSectionRenderer.swift in Sources */, 98D98A8225ED88E300D8E3DF /* BrowsingMenuSeparatorViewCell.swift in Sources */, + D63657192A7BAE7C001AF19D /* EmailManagerRequestDelegate.swift in Sources */, 1E4FAA6427D8DFB900ADC5B3 /* OngoingDownloadRowViewModel.swift in Sources */, 8C4724502217A14B004C9B2D /* TabViewControllerLongPressBookmarkExtension.swift in Sources */, 1EDE39D22705D4A200C99C72 /* FileSizeDebugViewController.swift in Sources */, @@ -5939,11 +6131,14 @@ F194FAED1F14E2B3009B4DF8 /* UIFontExtension.swift in Sources */, F1CDD3F21F16911700BE0581 /* AboutViewController.swift in Sources */, 98F0FC2021FF18E700CE77AB /* AutoClearSettingsViewController.swift in Sources */, + 027F487A2A4B66CD001A1C6C /* AppTPFAQViewModel.swift in Sources */, F1E90C201E678E7C005E7E21 /* HomeControllerDelegate.swift in Sources */, F17922DE1E7192E6006E3D97 /* SuggestionTableViewCell.swift in Sources */, 986C7FA724171C6000A3557D /* BrokenSiteCategories.swift in Sources */, + 85DB12ED2A1FED0C000A4A72 /* AppDelegate+AppDeepLinks.swift in Sources */, 98DA6ECA2181E41F00E65433 /* ThemeManager.swift in Sources */, 1E016AB6294A5EB100F21625 /* CustomDaxDialog.swift in Sources */, + 02341FA42A437999008A1531 /* OnboardingStepView.swift in Sources */, F1CA3C3B1F045B65005FADB3 /* Authenticator.swift in Sources */, CBD4F13D279EBFA000B20FD7 /* HomeMessageCollectionViewCell.swift in Sources */, 8505836D219F424500ED4EDB /* Point.swift in Sources */, @@ -5965,6 +6160,7 @@ 85C861E628FF1B5F00189466 /* HomeViewSectionRenderersExtension.swift in Sources */, F1D477C61F2126CC0031ED49 /* OmniBarState.swift in Sources */, 85F2FFCD2211F615006BB258 /* MainViewController+KeyCommands.swift in Sources */, + 0268FC132A449F04000EE6A2 /* OnboardingContainerView.swift in Sources */, 858650D9246B0D3C00C36F8A /* DaxOnboardingViewController.swift in Sources */, 312E5746283BB04A00C18FA0 /* AutofillEmptySearchView.swift in Sources */, F1A5683A1E70F98E0081082E /* AutocompleteRequest.swift in Sources */, @@ -5983,6 +6179,7 @@ 1E4DCF4E27B6A69600961E25 /* DownloadsListHostingController.swift in Sources */, 020108A129A5610C00644F9D /* AppTPActivityHostingViewController.swift in Sources */, 02025B0F29884DC500E694E7 /* AppTrackerDataParser.swift in Sources */, + 027F48742A4B5904001A1C6C /* AppTPAboutView.swift in Sources */, 311BD1B12836C0CA00AEF6C1 /* AutofillLoginListAuthenticator.swift in Sources */, B652DF13287C373A00C12A9C /* ScriptSourceProviding.swift in Sources */, 854A012B2A54412600FCC628 /* ActivityViewController.swift in Sources */, @@ -6029,6 +6226,7 @@ 310D091D2799F57200DC0060 /* Download.swift in Sources */, 1EEF124E2850EADE003DDE57 /* PrivacyIconView.swift in Sources */, 37FCAAAB29911BF1000E420A /* WaitlistExtensions.swift in Sources */, + EE4BE0092A740BED00CD6AA8 /* ClearTextField.swift in Sources */, F159BDA41F0BDB5A00B4A01D /* TabViewController.swift in Sources */, F44D279C27F331BB0037F371 /* AutofillLoginPromptView.swift in Sources */, CBD4F13E279EBFAB00B20FD7 /* HomeMessageView.swift in Sources */, @@ -6043,10 +6241,11 @@ 020108AE29A7F91600644F9D /* AppTPTrackerCell.swift in Sources */, 983D71B12A286E810072E26D /* SyncDebugViewController.swift in Sources */, F103073B1E7C91330059FEC7 /* BookmarksDataSource.swift in Sources */, + EE0153E62A6FE106002A8B26 /* NetworkProtectionRootViewModel.swift in Sources */, 85864FBC24D31EF300E756FF /* SuggestionTrayViewController.swift in Sources */, 1EF24235273BB9D200DE3D02 /* IntervalSlider.swift in Sources */, + 027F48782A4B663C001A1C6C /* AppTPFAQView.swift in Sources */, 02A4EACA29B0F464009BE006 /* AppTPToggleViewModel.swift in Sources */, - 853273B224FF114700E3C778 /* DeepLinks.swift in Sources */, 4B6484EE27FD1E350050A7A1 /* WindowsBrowserWaitlistDebugViewController.swift in Sources */, F1D796EE1E7AF2EB0019D451 /* UIViewControllerExtension.swift in Sources */, 1EE411F12857C3640003FE64 /* TrackerAnimationImageProvider.swift in Sources */, @@ -6057,6 +6256,7 @@ 31EF52E1281B3BDC0034796E /* AutofillLoginListItemViewModel.swift in Sources */, 1E4FAA6627D8DFC800ADC5B3 /* CompleteDownloadRowViewModel.swift in Sources */, 83004E862193E5ED00DA013C /* TabViewControllerBrowsingMenuExtension.swift in Sources */, + EE72CA852A862D000043B5B3 /* NetworkProtectionDebugViewController.swift in Sources */, CB84C7BD29A3EF530088A5B8 /* AppConfigurationURLProvider.swift in Sources */, AA3D854723D9E88E00788410 /* AppIconSettingsCell.swift in Sources */, 316931D927BD22A80095F5ED /* DownloadActionMessageViewHelper.swift in Sources */, @@ -6123,6 +6323,7 @@ 85BA58581F34F72F00C6E8CA /* AppUserDefaultsTests.swift in Sources */, F1134EBC1F40D45700B73467 /* MockStatisticsStore.swift in Sources */, 31C138AC27A403CB00FFD4B2 /* DownloadManagerTests.swift in Sources */, + EEFE9C732A603CE9005B0A26 /* NetworkProtectionStatusViewModelTests.swift in Sources */, F13B4BF91F18CA0600814661 /* TabsModelTests.swift in Sources */, 98B31290218CCB2200E54DE1 /* MockDependencyProvider.swift in Sources */, CBDD5DDF29A6736A00832877 /* APIHeadersTests.swift in Sources */, @@ -6206,6 +6407,7 @@ C14882E727F20DAB00D59F0C /* HtmlTestDataLoader.swift in Sources */, F17D72391E8B35C6003E8B0E /* AppURLsTests.swift in Sources */, F1134ED61F40F29F00B73467 /* StatisticsUserDefaultsTests.swift in Sources */, + EE41BD192A729E9C00546C57 /* NetworkProtectionInviteViewModelTests.swift in Sources */, 0253A43329E5E393003697C1 /* AppTrackingProtectionAllowlistModelTests.swift in Sources */, C1B7B53028944E390098FD6A /* RemoteMessagingStoreTests.swift in Sources */, 98EA2C3C218B9AAD0023E1DC /* ThemeManagerTests.swift in Sources */, @@ -6215,6 +6417,7 @@ 4B83397529AFBCE6003F7EA9 /* AppTrackingProtectionFeedbackModelTests.swift in Sources */, 851DFD8A212C5EE800D95F20 /* TabSwitcherButtonTests.swift in Sources */, 98983096255B5019003339A2 /* BookmarksCachingSearchTests.swift in Sources */, + EE7917912A83DE93008DFF28 /* CombineTestUtilities.swift in Sources */, 85480CB429226B3B007E8F13 /* CrashCollectionExtensionTests.swift in Sources */, 4B6484FC27FFD14F0050A7A1 /* WindowsBrowserWaitlistTests.swift in Sources */, 8540BD5223D8C2220057FDD2 /* PreserveLoginsTests.swift in Sources */, @@ -6223,6 +6426,7 @@ C14882E427F20D9A00D59F0C /* BookmarksImporterTests.swift in Sources */, 8588026A24E424EE00C24AB6 /* AppWidthObserverTests.swift in Sources */, 8588026624E420BD00C24AB6 /* LargeOmniBarStateTests.swift in Sources */, + EE0153EB2A6FF970002A8B26 /* NetworkProtectionRootViewModelTests.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6235,6 +6439,7 @@ 853273B424FFB36100E3C778 /* UIColorExtension.swift in Sources */, 853273AB24FEF27500E3C778 /* WidgetViews.swift in Sources */, 8512EA5424ED30D20073EE19 /* Widgets.swift in Sources */, + 85DB12EB2A1FE2A4000A4A72 /* LockScreenWidgets.swift in Sources */, 8544C37C250B827300A0FE73 /* UserText.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -6244,7 +6449,7 @@ buildActionMask = 2147483647; files = ( 85482D8D2462DCD100EDEDD1 /* ActionViewController.swift in Sources */, - 85C91CA224671F4C00A11132 /* AppDeepLinks.swift in Sources */, + 85C91CA224671F4C00A11132 /* AppDeepLinkSchemes.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -6315,6 +6520,7 @@ C14882DC27F2011C00D59F0C /* BookmarksImporter.swift in Sources */, CBAA195A27BFE15600A4BD49 /* NSManagedObjectContextExtension.swift in Sources */, F1134EB31F40AD2500B73467 /* Atb.swift in Sources */, + 37E615752A5F533E00ACD63D /* SyncCredentialsAdapter.swift in Sources */, 02CA904B24F6C11A00D41DDF /* NavigatorSharePatchUserScript.swift in Sources */, 85BDC3192436161C0053DB07 /* LoginFormDetectionUserScript.swift in Sources */, 98982B3422F8D8E400578AC9 /* Debounce.swift in Sources */, @@ -6365,6 +6571,7 @@ F143C3181E4A99D200CFDE3A /* Link.swift in Sources */, 4B470EDF299C67270086EBDC /* AppTrackerEntity.swift in Sources */, 1E61BC2A27074BED00B2854D /* TextSizeUserScript.swift in Sources */, + 37CEFCAC2A673B90001EF741 /* CredentialsCleanupErrorHandling.swift in Sources */, CB2A7EF128410DF700885F67 /* PixelEvent.swift in Sources */, 85D2187624BF6164004373D2 /* FaviconSourcesProvider.swift in Sources */, 98B000532915C46E0034BCA0 /* LegacyBookmarksStoreMigration.swift in Sources */, @@ -6378,7 +6585,7 @@ 988F3DCF237D5C0F00AEE34C /* SchemeHandler.swift in Sources */, 9875E00722316B8400B1373F /* Instruments.swift in Sources */, F1134EA61F3E2AF400B73467 /* StatisticsStore.swift in Sources */, - F17D723C1E8BB374003E8B0E /* AppDeepLinks.swift in Sources */, + F17D723C1E8BB374003E8B0E /* AppDeepLinkSchemes.swift in Sources */, 0290472329E737B40008FE3C /* FirewallManager.swift in Sources */, 1E8AD1DB27C51AE000ABA377 /* TimeIntervalExtension.swift in Sources */, B652DF0D287C2A6300C12A9C /* PrivacyFeatures.swift in Sources */, @@ -7268,7 +7475,7 @@ CODE_SIGN_ENTITLEMENTS = PacketTunnelProvider/PacketTunnelProvider.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; + CURRENT_PROJECT_VERSION = 0; DEVELOPMENT_TEAM = HKE973VLUW; GCC_C_LANGUAGE_STANDARD = gnu11; GENERATE_INFOPLIST_FILE = YES; @@ -7305,7 +7512,7 @@ CODE_SIGN_IDENTITY = "iPhone Distribution"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 1; + CURRENT_PROJECT_VERSION = 0; DEVELOPMENT_TEAM = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = HKE973VLUW; GCC_C_LANGUAGE_STANDARD = gnu11; @@ -7397,7 +7604,7 @@ CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; + CURRENT_PROJECT_VERSION = 0; GCC_C_LANGUAGE_STANDARD = gnu11; INFOPLIST_FILE = ShareExtension/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( @@ -7424,7 +7631,7 @@ CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 1; + CURRENT_PROJECT_VERSION = 0; DEVELOPMENT_TEAM = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = HKE973VLUW; GCC_C_LANGUAGE_STANDARD = gnu11; @@ -7499,7 +7706,7 @@ MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG APP_TRACKING_PROTECTION"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG APP_TRACKING_PROTECTION NETWORK_PROTECTION"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; TARGETED_DEVICE_FAMILY = "1,2"; VALID_ARCHS = "$(ARCHS_STANDARD_64_BIT)"; @@ -7570,7 +7777,7 @@ CODE_SIGN_ENTITLEMENTS = DuckDuckGo/DuckDuckGo.entitlements; CODE_SIGN_IDENTITY = "iPhone Distribution"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CURRENT_PROJECT_VERSION = 1; + CURRENT_PROJECT_VERSION = 0; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_ASSET_PATHS = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = HKE973VLUW; @@ -7594,7 +7801,7 @@ CODE_SIGN_ENTITLEMENTS = DuckDuckGo/DuckDuckGo.entitlements; CODE_SIGN_IDENTITY = "iPhone Distribution"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; - CURRENT_PROJECT_VERSION = 1; + CURRENT_PROJECT_VERSION = 0; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = HKE973VLUW; INFOPLIST_FILE = DuckDuckGo/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( @@ -7658,7 +7865,7 @@ CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; + CURRENT_PROJECT_VERSION = 0; DEAD_CODE_STRIPPING = NO; GCC_C_LANGUAGE_STANDARD = gnu11; INFOPLIST_FILE = Widgets/Info.plist; @@ -7693,7 +7900,7 @@ CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 1; + CURRENT_PROJECT_VERSION = 0; DEAD_CODE_STRIPPING = NO; DEVELOPMENT_TEAM = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = HKE973VLUW; @@ -7727,7 +7934,7 @@ CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; + CURRENT_PROJECT_VERSION = 0; GCC_C_LANGUAGE_STANDARD = gnu11; INFOPLIST_FILE = OpenAction/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( @@ -7757,7 +7964,7 @@ CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 1; + CURRENT_PROJECT_VERSION = 0; DEVELOPMENT_TEAM = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = HKE973VLUW; GCC_C_LANGUAGE_STANDARD = gnu11; @@ -7973,6 +8180,413 @@ }; name = Release; }; + EE5A7C462A82BBB700387C84 /* Alpha */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 6FB030C7234331B400A10DB9 /* Configuration.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG NETWORK_PROTECTION"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + TARGETED_DEVICE_FAMILY = "1,2"; + VALID_ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + }; + name = Alpha; + }; + EE5A7C472A82BBB700387C84 /* Alpha */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + ASSETCATALOG_COMPILER_APPICON_NAME = "DDG-AppIcon-Alpha"; + CODE_SIGN_ENTITLEMENTS = DuckDuckGo/DuckDuckGoAlpha.entitlements; + CODE_SIGN_IDENTITY = "iPhone Distribution"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; + CURRENT_PROJECT_VERSION = 0; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEVELOPMENT_ASSET_PATHS = ""; + "DEVELOPMENT_TEAM[sdk=iphoneos*]" = HKE973VLUW; + INFOPLIST_FILE = DuckDuckGo/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.duckduckgo.mobile.ios.alpha; + PRODUCT_NAME = "$(TARGET_NAME)-Alpha"; + "PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "match AppStore com.duckduckgo.mobile.ios.alpha"; + SWIFT_VERSION = 5.0; + }; + name = Alpha; + }; + EE5A7C482A82BBB700387C84 /* Alpha */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_IDENTITY = "Apple Development"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; + CODE_SIGN_STYLE = Manual; + CURRENT_PROJECT_VERSION = 0; + DEVELOPMENT_TEAM = ""; + "DEVELOPMENT_TEAM[sdk=iphoneos*]" = HKE973VLUW; + GCC_C_LANGUAGE_STANDARD = gnu11; + INFOPLIST_FILE = ShareExtension/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@executable_path/../../Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = "$(APP_ID).ShareExtension"; + "PRODUCT_BUNDLE_IDENTIFIER[sdk=iphoneos*]" = com.duckduckgo.mobile.ios.alpha.ShareExtension; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + "PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "match AppStore com.duckduckgo.mobile.ios.alpha.ShareExtension"; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Alpha; + }; + EE5A7C492A82BBB700387C84 /* Alpha */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = ActionIcons; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; + CODE_SIGN_STYLE = Manual; + CURRENT_PROJECT_VERSION = 0; + DEVELOPMENT_TEAM = ""; + "DEVELOPMENT_TEAM[sdk=iphoneos*]" = HKE973VLUW; + GCC_C_LANGUAGE_STANDARD = gnu11; + INFOPLIST_FILE = OpenAction/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@executable_path/../../Frameworks", + ); + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = "$(APP_ID).OpenAction2"; + "PRODUCT_BUNDLE_IDENTIFIER[sdk=iphoneos*]" = com.duckduckgo.mobile.ios.alpha.OpenAction2; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + "PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "match AppStore com.duckduckgo.mobile.ios.alpha.OpenAction2"; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Alpha; + }; + EE5A7C4A2A82BBB700387C84 /* Alpha */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME = WidgetBackground; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_ENTITLEMENTS = WidgetsExtensionAlpha.entitlements; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; + CODE_SIGN_STYLE = Manual; + CURRENT_PROJECT_VERSION = 0; + DEAD_CODE_STRIPPING = NO; + DEVELOPMENT_TEAM = ""; + "DEVELOPMENT_TEAM[sdk=iphoneos*]" = HKE973VLUW; + GCC_C_LANGUAGE_STANDARD = gnu11; + INFOPLIST_FILE = Widgets/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@executable_path/../../Frameworks", + ); + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = "$(APP_ID).Widgets"; + "PRODUCT_BUNDLE_IDENTIFIER[sdk=iphoneos*]" = com.duckduckgo.mobile.ios.alpha.Widgets; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + "PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "match AppStore com.duckduckgo.mobile.ios.alpha.Widgets"; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Alpha; + }; + EE5A7C4B2A82BBB700387C84 /* Alpha */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_ENTITLEMENTS = PacketTunnelProvider/PacketTunnelProviderAlpha.entitlements; + CODE_SIGN_IDENTITY = "Apple Development"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; + CODE_SIGN_STYLE = Manual; + CURRENT_PROJECT_VERSION = 0; + DEVELOPMENT_TEAM = ""; + "DEVELOPMENT_TEAM[sdk=iphoneos*]" = HKE973VLUW; + GCC_C_LANGUAGE_STANDARD = gnu11; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = PacketTunnelProvider/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = PacketTunnelProvider; + INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright © 2023 DuckDuckGo. All rights reserved."; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@executable_path/../../Frameworks", + ); + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + OTHER_CFLAGS = ""; + OTHER_SWIFT_FLAGS = "-D NETWORK_EXTENSION"; + PRODUCT_BUNDLE_IDENTIFIER = com.duckduckgo.mobile.ios.alpha.NetworkExtension; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + "PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "match AppStore com.duckduckgo.mobile.ios.alpha.NetworkExtension"; + SKIP_INSTALL = YES; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Alpha; + }; + EE5A7C4C2A82BBB700387C84 /* Alpha */ = { + isa = XCBuildConfiguration; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 0; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 0; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Core/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.duckduckgo.mobile.ios.Core; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SUPPORTS_MACCATALYST = NO; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Alpha; + }; + EE5A7C4D2A82BBB700387C84 /* Alpha */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CODE_SIGN_STYLE = Automatic; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Instruments/Packages"; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SDKROOT = macosx; + VERSIONING_SYSTEM = ""; + }; + name = Alpha; + }; + EE5A7C4E2A82BBB700387C84 /* Alpha */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_IDENTITY = "iPhone Developer"; + CODE_SIGN_STYLE = Automatic; + FRAMEWORK_SEARCH_PATHS = "$(inherited)"; + GCC_C_LANGUAGE_STANDARD = gnu11; + INFOPLIST_FILE = IntegrationTests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.duckduckgo.IntegrationTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_TARGET_NAME = DuckDuckGo; + }; + name = Alpha; + }; + EE5A7C4F2A82BBB700387C84 /* Alpha */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + BUNDLE_LOADER = "$(TEST_HOST)"; + INFOPLIST_FILE = DuckDuckGoTests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.duckduckgo.mobile.ios.Tests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/DuckDuckGo.app/DuckDuckGo"; + }; + name = Alpha; + }; + EE5A7C502A82BBB700387C84 /* Alpha */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_STYLE = Automatic; + GCC_C_LANGUAGE_STANDARD = gnu11; + INFOPLIST_FILE = FingerprintingUITests/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = com.duckduckgo.FingerprintingUITests; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_TARGET_NAME = DuckDuckGo; + }; + name = Alpha; + }; + EE5A7C512A82BBB700387C84 /* Alpha */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_STYLE = Automatic; + GCC_C_LANGUAGE_STANDARD = gnu11; + INFOPLIST_FILE = IntegrationTests/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 14.4; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = com.duckduckgo.mobile.ios.IntegrationTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/DuckDuckGo.app/DuckDuckGo"; + }; + name = Alpha; + }; + EE5A7C522A82BBB700387C84 /* Alpha */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_STYLE = Automatic; + GCC_C_LANGUAGE_STANDARD = gnu11; + INFOPLIST_FILE = "IntegrationTests copy-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 14.4; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = com.duckduckgo.mobile.ios.IntegrationTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/DuckDuckGo.app/DuckDuckGo"; + }; + name = Alpha; + }; F143C2EE1E4A4CD400CFDE3A /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -7980,11 +8594,11 @@ CLANG_ENABLE_MODULES = YES; CODE_SIGN_IDENTITY = ""; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; + CURRENT_PROJECT_VERSION = 0; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; + DYLIB_CURRENT_VERSION = 0; DYLIB_INSTALL_NAME_BASE = "@rpath"; INFOPLIST_FILE = Core/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; @@ -8013,10 +8627,10 @@ CLANG_ENABLE_MODULES = YES; CODE_SIGN_IDENTITY = ""; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; + CURRENT_PROJECT_VERSION = 0; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; + DYLIB_CURRENT_VERSION = 0; DYLIB_INSTALL_NAME_BASE = "@rpath"; INFOPLIST_FILE = Core/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; @@ -8044,6 +8658,7 @@ isa = XCConfigurationList; buildConfigurations = ( 0202566D298818B200E694E7 /* Debug */, + EE5A7C4B2A82BBB700387C84 /* Alpha */, 0202566E298818B200E694E7 /* Release */, ); defaultConfigurationIsVisible = 0; @@ -8053,6 +8668,7 @@ isa = XCConfigurationList; buildConfigurations = ( 025CCFE92582601C001CD5BB /* Debug */, + EE5A7C502A82BBB700387C84 /* Alpha */, 025CCFEA2582601C001CD5BB /* Release */, ); defaultConfigurationIsVisible = 0; @@ -8062,6 +8678,7 @@ isa = XCConfigurationList; buildConfigurations = ( 8390447820BDCE10006461CD /* Debug */, + EE5A7C482A82BBB700387C84 /* Alpha */, 8390447920BDCE10006461CD /* Release */, ); defaultConfigurationIsVisible = 0; @@ -8071,6 +8688,7 @@ isa = XCConfigurationList; buildConfigurations = ( 84E341B81E2F7EFC00BDBA6F /* Debug */, + EE5A7C462A82BBB700387C84 /* Alpha */, 84E341B91E2F7EFC00BDBA6F /* Release */, ); defaultConfigurationIsVisible = 0; @@ -8080,6 +8698,7 @@ isa = XCConfigurationList; buildConfigurations = ( 84E341BB1E2F7EFC00BDBA6F /* Debug */, + EE5A7C472A82BBB700387C84 /* Alpha */, 84E341BC1E2F7EFC00BDBA6F /* Release */, ); defaultConfigurationIsVisible = 0; @@ -8089,6 +8708,7 @@ isa = XCConfigurationList; buildConfigurations = ( 84E341BE1E2F7EFC00BDBA6F /* Debug */, + EE5A7C4F2A82BBB700387C84 /* Alpha */, 84E341BF1E2F7EFC00BDBA6F /* Release */, ); defaultConfigurationIsVisible = 0; @@ -8098,6 +8718,7 @@ isa = XCConfigurationList; buildConfigurations = ( 8512EA5E24ED30D30073EE19 /* Debug */, + EE5A7C4A2A82BBB700387C84 /* Alpha */, 8512EA5F24ED30D30073EE19 /* Release */, ); defaultConfigurationIsVisible = 0; @@ -8107,6 +8728,7 @@ isa = XCConfigurationList; buildConfigurations = ( 85482D952462DCD100EDEDD1 /* Debug */, + EE5A7C492A82BBB700387C84 /* Alpha */, 85482D962462DCD100EDEDD1 /* Release */, ); defaultConfigurationIsVisible = 0; @@ -8116,6 +8738,7 @@ isa = XCConfigurationList; buildConfigurations = ( 85D33FD325C97B6E002B91A6 /* Debug */, + EE5A7C512A82BBB700387C84 /* Alpha */, 85D33FD425C97B6E002B91A6 /* Release */, ); defaultConfigurationIsVisible = 0; @@ -8125,6 +8748,7 @@ isa = XCConfigurationList; buildConfigurations = ( 85F21DB4210F5E32002631A6 /* Debug */, + EE5A7C4E2A82BBB700387C84 /* Alpha */, 85F21DB5210F5E32002631A6 /* Release */, ); defaultConfigurationIsVisible = 0; @@ -8134,6 +8758,7 @@ isa = XCConfigurationList; buildConfigurations = ( 9825F9D5293F2DE900F220F2 /* Debug */, + EE5A7C522A82BBB700387C84 /* Alpha */, 9825F9D6293F2DE900F220F2 /* Release */, ); defaultConfigurationIsVisible = 0; @@ -8143,6 +8768,7 @@ isa = XCConfigurationList; buildConfigurations = ( 98A54A8622AFCB2D00E541F4 /* Debug */, + EE5A7C4D2A82BBB700387C84 /* Alpha */, 98A54A8722AFCB2D00E541F4 /* Release */, ); defaultConfigurationIsVisible = 0; @@ -8152,6 +8778,7 @@ isa = XCConfigurationList; buildConfigurations = ( F143C2EE1E4A4CD400CFDE3A /* Debug */, + EE5A7C4C2A82BBB700387C84 /* Alpha */, F143C2EF1E4A4CD400CFDE3A /* Release */, ); defaultConfigurationIsVisible = 0; @@ -8189,7 +8816,7 @@ repositoryURL = "https://github.com/DuckDuckGo/BrowserServicesKit"; requirement = { kind = exactVersion; - version = 65.0.0; + version = 75.0.4; }; }; C14882EB27F211A000D59F0C /* XCRemoteSwiftPackageReference "SwiftSoup" */ = { @@ -8205,7 +8832,7 @@ repositoryURL = "https://github.com/duckduckgo/DesignResourcesKit"; requirement = { kind = exactVersion; - version = 1.1.0; + version = 1.1.1; }; }; F486D2EF25069482002D07D7 /* XCRemoteSwiftPackageReference "Kingfisher" */ = { @@ -8306,6 +8933,11 @@ package = 98A16C2928A11BDE00A6C003 /* XCRemoteSwiftPackageReference "BrowserServicesKit" */; productName = Persistence; }; + 851481872A600EFC00ABC65F /* RemoteMessaging */ = { + isa = XCSwiftPackageProductDependency; + package = 98A16C2928A11BDE00A6C003 /* XCRemoteSwiftPackageReference "BrowserServicesKit" */; + productName = RemoteMessaging; + }; 85875B6029912A9900115F05 /* SyncUI */ = { isa = XCSwiftPackageProductDependency; productName = SyncUI; @@ -8340,6 +8972,16 @@ package = 98A16C2928A11BDE00A6C003 /* XCRemoteSwiftPackageReference "BrowserServicesKit" */; productName = Configuration; }; + EE8E56892A56BCE400F11DCA /* NetworkProtection */ = { + isa = XCSwiftPackageProductDependency; + package = 98A16C2928A11BDE00A6C003 /* XCRemoteSwiftPackageReference "BrowserServicesKit" */; + productName = NetworkProtection; + }; + EEFAB4662A73C230008A38E4 /* NetworkProtectionTestUtils */ = { + isa = XCSwiftPackageProductDependency; + package = 98A16C2928A11BDE00A6C003 /* XCRemoteSwiftPackageReference "BrowserServicesKit" */; + productName = NetworkProtectionTestUtils; + }; F42D541C29DCA40B004C4FF1 /* DesignResourcesKit */ = { isa = XCSwiftPackageProductDependency; package = F42D541B29DCA40B004C4FF1 /* XCRemoteSwiftPackageReference "DesignResourcesKit" */; diff --git a/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index 73eebc48b3..354e4217b1 100644 --- a/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -15,8 +15,8 @@ "repositoryURL": "https://github.com/DuckDuckGo/BrowserServicesKit", "state": { "branch": null, - "revision": "763043e8de014a9a8d82829b618a1ca1e69ca5a3", - "version": "65.0.0" + "revision": "02e87697d9e8d897bde0a913b7ed5b0943cbe993", + "version": "75.0.4" } }, { @@ -33,8 +33,8 @@ "repositoryURL": "https://github.com/duckduckgo/content-scope-scripts", "state": { "branch": null, - "revision": "630eb2c4cf94055e630fd5b7daae71bed893ad0a", - "version": "4.22.4" + "revision": "8def15fe8a4c2fb76730f640507e9fd1d6c1f8a7", + "version": "4.32.0" } }, { @@ -42,8 +42,8 @@ "repositoryURL": "https://github.com/duckduckgo/DesignResourcesKit", "state": { "branch": null, - "revision": "119efad12aa5d5917d10ee4492d40839848b3b3c", - "version": "1.1.0" + "revision": "5de78d59358ff60651b2cf9322c74a2297927b4e", + "version": "1.1.1" } }, { @@ -51,8 +51,8 @@ "repositoryURL": "https://github.com/duckduckgo/duckduckgo-autofill.git", "state": { "branch": null, - "revision": "44cd844b6bb5d8ccfefbd6e025817d800c26ad76", - "version": "7.2.0" + "revision": "40bcd0d347b51d14e8114f191df2817d8dcb4284", + "version": "8.1.2" } }, { @@ -60,8 +60,8 @@ "repositoryURL": "https://github.com/duckduckgo/GRDB.swift.git", "state": { "branch": null, - "revision": "4475888676cfe1aabb1a35f379cd079ea692da1e", - "version": "2.1.1" + "revision": "77d9a83191a74e319a5cfa27b0e3145d15607573", + "version": "2.2.0" } }, { @@ -156,12 +156,21 @@ }, { "package": "TrackerRadarKit", - "repositoryURL": "https://github.com/duckduckgo/TrackerRadarKit.git", + "repositoryURL": "https://github.com/duckduckgo/TrackerRadarKit", "state": { "branch": null, "revision": "4684440d03304e7638a2c8086895367e90987463", "version": "1.2.1" } + }, + { + "package": "WireGuardKit", + "repositoryURL": "https://github.com/duckduckgo/wireguard-apple", + "state": { + "branch": null, + "revision": "2d8172c11478ab11b0f5ad49bdb4f93f4b3d5e0d", + "version": "1.1.1" + } } ] }, diff --git a/DuckDuckGo.xcodeproj/xcshareddata/xcschemes/DuckDuckGo.xcscheme b/DuckDuckGo.xcodeproj/xcshareddata/xcschemes/DuckDuckGo.xcscheme index 7cfeb57d56..5383c46f83 100644 --- a/DuckDuckGo.xcodeproj/xcshareddata/xcschemes/DuckDuckGo.xcscheme +++ b/DuckDuckGo.xcodeproj/xcshareddata/xcschemes/DuckDuckGo.xcscheme @@ -58,6 +58,11 @@ BlueprintName = "UnitTests" ReferencedContainer = "container:DuckDuckGo.xcodeproj"> + + + + diff --git a/DuckDuckGo/AboutViewController.swift b/DuckDuckGo/AboutViewController.swift index d3bb158261..0c9d4a1328 100644 --- a/DuckDuckGo/AboutViewController.swift +++ b/DuckDuckGo/AboutViewController.swift @@ -35,7 +35,7 @@ class AboutViewController: UIViewController { @IBAction func onPrivacyLinkTapped(_ sender: UIButton) { dismiss(animated: true) { - UIApplication.shared.open(AppDeepLinks.aboutLink, options: [:]) + UIApplication.shared.open(URL.aboutLink, options: [:]) } } } diff --git a/DuckDuckGo/AppDelegate+AppDeepLinks.swift b/DuckDuckGo/AppDelegate+AppDeepLinks.swift new file mode 100644 index 0000000000..1d811846bd --- /dev/null +++ b/DuckDuckGo/AppDelegate+AppDeepLinks.swift @@ -0,0 +1,81 @@ +// +// AppDelegate+AppDeepLinks.swift +// DuckDuckGo +// +// Copyright © 2023 DuckDuckGo. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import UIKit +import Core + +extension AppDelegate { + + func handleAppDeepLink(_ app: UIApplication, _ mainViewController: MainViewController?, _ url: URL) -> Bool { + guard let mainViewController else { return false } + + func firePixelIfLockScreen(_ pixelEvent: Pixel.Event) { + if url.getParameter(named: "ls") != nil { + Pixel.fire(pixel: pixelEvent) + } + } + + switch AppDeepLinkSchemes.fromURL(url) { + + case .newSearch: + mainViewController.newTab(reuseExisting: true) + mainViewController.enterSearch() + firePixelIfLockScreen(.lockScreenWidgetNewSearch) + + + case .favorites: + mainViewController.newTab(reuseExisting: true, allowingKeyboard: false) + firePixelIfLockScreen(.lockScreenWidgetFavorites) + + case .quickLink: + let query = AppDeepLinkSchemes.query(fromQuickLink: url) + mainViewController.loadQueryInNewTab(query, reuseExisting: true) + + case .addFavorite: + mainViewController.startAddFavoriteFlow() + + case .fireButton: + mainViewController.forgetAllWithAnimation() + firePixelIfLockScreen(.lockScreenWidgetFireButton) + + case .voiceSearch: + mainViewController.onVoiceSearchPressed() + firePixelIfLockScreen(.lockScreenWidgetVoiceSearch) + + case .newEmail: + mainViewController.newEmailAddress() + firePixelIfLockScreen(.lockScreenWidgetNewEmail) + + default: + guard app.applicationState == .active, + let currentTab = mainViewController.currentTab else { + return false + } + + // If app is in active state, treat this navigation as something initiated form the context of the current tab. + mainViewController.tab(currentTab, + didRequestNewTabForUrl: url, + openedByPage: true, + inheritingAttribution: nil) + } + + return true + } + +} diff --git a/DuckDuckGo/AppDelegate.swift b/DuckDuckGo/AppDelegate.swift index b7aeee8572..a69382d6ca 100644 --- a/DuckDuckGo/AppDelegate.swift +++ b/DuckDuckGo/AppDelegate.swift @@ -59,25 +59,26 @@ class AppDelegate: UIResponder, UIApplicationDelegate { private var showKeyboardIfSettingOn = true private var lastBackgroundDate: Date? - private(set) var syncService: DDGSyncing! + private(set) var syncService: DDGSync! private(set) var syncDataProviders: SyncDataProviders! private var syncDidFinishCancellable: AnyCancellable? + private var syncStateCancellable: AnyCancellable? // MARK: lifecycle // swiftlint:disable:next function_body_length cyclomatic_complexity func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { - #if targetEnvironment(simulator) +#if targetEnvironment(simulator) if ProcessInfo.processInfo.environment["UITESTING"] == "true" { // Disable hardware keyboards. let setHardwareLayout = NSSelectorFromString("setHardwareLayout:") UITextInputMode.activeInputModes - // Filter `UIKeyboardInputMode`s. + // Filter `UIKeyboardInputMode`s. .filter({ $0.responds(to: setHardwareLayout) }) .forEach { $0.perform(setHardwareLayout, with: nil) } } - #endif +#endif // Can be removed after a couple of versions cleanUpMacPromoExperiment2() @@ -112,13 +113,13 @@ class AppDelegate: UIResponder, UIApplicationDelegate { } removeEmailWaitlistState() - + Database.shared.loadStore { context, error in guard let context = context else { let parameters = [PixelParameters.applicationState: "\(application.applicationState.rawValue)", PixelParameters.dataAvailability: "\(application.isProtectedDataAvailable)"] - + switch error { case .none: fatalError("Could not create database stack: Unknown Error") @@ -190,17 +191,20 @@ class AppDelegate: UIResponder, UIApplicationDelegate { // MARK: Sync initialisation - syncDataProviders = SyncDataProviders(bookmarksDatabase: bookmarksDatabase) - syncService = DDGSync(dataProvidersSource: syncDataProviders, errorEvents: SyncErrorHandler(), log: .syncLog) + syncDataProviders = SyncDataProviders(bookmarksDatabase: bookmarksDatabase, secureVaultErrorReporter: SecureVaultErrorReporter.shared) + let syncService = DDGSync(dataProvidersSource: syncDataProviders, errorEvents: SyncErrorHandler(), log: .syncLog) syncService.initializeIfNeeded(isInternalUser: InternalUserStore().isInternalUser) + self.syncService = syncService let storyboard: UIStoryboard = UIStoryboard(name: "Main", bundle: Bundle.main) guard let main = storyboard.instantiateInitialViewController(creator: { coder in MainViewController(coder: coder, bookmarksDatabase: self.bookmarksDatabase, + bookmarksDatabaseCleaner: self.syncDataProviders.bookmarksAdapter.databaseCleaner, appTrackingProtectionDatabase: self.appTrackingProtectionDatabase, - syncService: self.syncService) + syncService: self.syncService, + syncDataProviders: self.syncDataProviders) }) else { fatalError("Could not load MainViewController") } @@ -272,6 +276,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate { guard !testing else { return } syncService.initializeIfNeeded(isInternalUser: InternalUserStore().isInternalUser) + syncDataProviders.setUpDatabaseCleanersIfNeeded(syncService: syncService) if !(overlayWindow?.rootViewController is AuthenticationViewController) { removeOverlay() @@ -455,34 +460,11 @@ class AppDelegate: UIResponder, UIApplicationDelegate { mainViewController?.clearNavigationStack() autoClear?.applicationWillMoveToForeground() showKeyboardIfSettingOn = false - - if AppDeepLinks.isNewSearch(url: url) { - mainViewController?.newTab(reuseExisting: true) - if url.getParameter(named: "w") != nil { - Pixel.fire(pixel: .widgetNewSearch) - mainViewController?.enterSearch() - } - } else if AppDeepLinks.isLaunchFavorite(url: url) { - let query = AppDeepLinks.query(fromLaunchFavorite: url) - mainViewController?.loadQueryInNewTab(query, reuseExisting: true) - Pixel.fire(pixel: .widgetFavoriteLaunch) - } else if AppDeepLinks.isQuickLink(url: url) { - let query = AppDeepLinks.query(fromQuickLink: url) - mainViewController?.loadQueryInNewTab(query, reuseExisting: true) - } else if AppDeepLinks.isAddFavorite(url: url) { - mainViewController?.startAddFavoriteFlow() - } else if app.applicationState == .active, - let currentTab = mainViewController?.currentTab { - // If app is in active state, treat this navigation as something initiated form the context of the current tab. - mainViewController?.tab(currentTab, - didRequestNewTabForUrl: url, - openedByPage: true, - inheritingAttribution: nil) - } else { - Pixel.fire(pixel: .defaultBrowserLaunch) + + if !handleAppDeepLink(app, mainViewController, url) { mainViewController?.loadUrlInNewTab(url, reuseExisting: true, inheritedAttribution: nil) } - + return true } diff --git a/DuckDuckGo/AppTP.xcassets/AppTPEmptyDisabled.imageset/AppTP-disabled-placholder-128.svg b/DuckDuckGo/AppTP.xcassets/AppTPEmptyDisabled.imageset/AppTP-disabled-placholder-128.svg deleted file mode 100644 index 273cdeb4bf..0000000000 --- a/DuckDuckGo/AppTP.xcassets/AppTPEmptyDisabled.imageset/AppTP-disabled-placholder-128.svg +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/DuckDuckGo/AppTP.xcassets/AppTPEmptyEnabled.imageset/AppTP-placholder-128.svg b/DuckDuckGo/AppTP.xcassets/AppTPEmptyEnabled.imageset/AppTP-placholder-128.svg deleted file mode 100644 index 604960313c..0000000000 --- a/DuckDuckGo/AppTP.xcassets/AppTPEmptyEnabled.imageset/AppTP-placholder-128.svg +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/DuckDuckGo/AppTP.xcassets/AppTPEmptyEnabled.imageset/Contents.json b/DuckDuckGo/AppTP.xcassets/AppTPRadar.imageset/Contents.json similarity index 72% rename from DuckDuckGo/AppTP.xcassets/AppTPEmptyEnabled.imageset/Contents.json rename to DuckDuckGo/AppTP.xcassets/AppTPRadar.imageset/Contents.json index 23d8993c2b..2b1df414ea 100644 --- a/DuckDuckGo/AppTP.xcassets/AppTPEmptyEnabled.imageset/Contents.json +++ b/DuckDuckGo/AppTP.xcassets/AppTPRadar.imageset/Contents.json @@ -1,7 +1,7 @@ { "images" : [ { - "filename" : "AppTP-placholder-128.svg", + "filename" : "Radar-128.svg", "idiom" : "universal" } ], diff --git a/DuckDuckGo/AppTP.xcassets/AppTPRadar.imageset/Radar-128.svg b/DuckDuckGo/AppTP.xcassets/AppTPRadar.imageset/Radar-128.svg new file mode 100644 index 0000000000..6ef458f61a --- /dev/null +++ b/DuckDuckGo/AppTP.xcassets/AppTPRadar.imageset/Radar-128.svg @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/DuckDuckGo/AppTP.xcassets/AppTPEmptyDisabled.imageset/Contents.json b/DuckDuckGo/AppTP.xcassets/AppTPSwitch.imageset/Contents.json similarity index 68% rename from DuckDuckGo/AppTP.xcassets/AppTPEmptyDisabled.imageset/Contents.json rename to DuckDuckGo/AppTP.xcassets/AppTPSwitch.imageset/Contents.json index 042aab56f9..6d8b792abd 100644 --- a/DuckDuckGo/AppTP.xcassets/AppTPEmptyDisabled.imageset/Contents.json +++ b/DuckDuckGo/AppTP.xcassets/AppTPSwitch.imageset/Contents.json @@ -1,7 +1,7 @@ { "images" : [ { - "filename" : "AppTP-disabled-placholder-128.svg", + "filename" : "Shield-Switch-128.svg", "idiom" : "universal" } ], diff --git a/DuckDuckGo/AppTP.xcassets/AppTPSwitch.imageset/Shield-Switch-128.svg b/DuckDuckGo/AppTP.xcassets/AppTPSwitch.imageset/Shield-Switch-128.svg new file mode 100644 index 0000000000..4062ffc86d --- /dev/null +++ b/DuckDuckGo/AppTP.xcassets/AppTPSwitch.imageset/Shield-Switch-128.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/DuckDuckGo/AppTP.xcassets/AppTPWatching-Blocked.imageset/Contents.json b/DuckDuckGo/AppTP.xcassets/AppTPWatching-Blocked.imageset/Contents.json new file mode 100644 index 0000000000..b31ce40700 --- /dev/null +++ b/DuckDuckGo/AppTP.xcassets/AppTPWatching-Blocked.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "filename" : "Watching-Blocked-128.svg", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/DuckDuckGo/AppTP.xcassets/AppTPWatching-Blocked.imageset/Watching-Blocked-128.svg b/DuckDuckGo/AppTP.xcassets/AppTPWatching-Blocked.imageset/Watching-Blocked-128.svg new file mode 100644 index 0000000000..f5b3247663 --- /dev/null +++ b/DuckDuckGo/AppTP.xcassets/AppTPWatching-Blocked.imageset/Watching-Blocked-128.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/DuckDuckGo/AppTPAboutView.swift b/DuckDuckGo/AppTPAboutView.swift new file mode 100644 index 0000000000..4499ce1c29 --- /dev/null +++ b/DuckDuckGo/AppTPAboutView.swift @@ -0,0 +1,71 @@ +// +// AppTPAboutView.swift +// DuckDuckGo +// +// Copyright © 2023 DuckDuckGo. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import SwiftUI +import DesignResourcesKit + +#if APP_TRACKING_PROTECTION + +struct AppTPAboutView: View { + var aboutBody: some View { + ScrollView { + VStack(alignment: .leading, spacing: Const.Size.stackSpacing) { + Text(UserText.appTPAboutTitle) + .daxTitle3() + + Group { + Text(UserText.appTPAboutContent1) + + Text(UserText.appTPAboutContent2) + .fontWeight(.bold) + + Text(UserText.appTPAboutContent3) + } + .daxBodyRegular() + } + .frame(maxWidth: .infinity) + .padding(Const.Size.stackPadding) + } + .navigationTitle(Text(UserText.appTPAboutNavTitle)) + } + + var body: some View { + if #available(iOS 16, *) { + aboutBody + .scrollContentBackground(.hidden) + .background(Color(designSystemColor: .background)) + } else { + aboutBody + .background(Color(designSystemColor: .background)) + } + } +} + +private enum Const { + enum Size { + static let stackSpacing: CGFloat = 10 + static let stackPadding: CGFloat = 24 + } +} + +struct AppTPAboutView_Previews: PreviewProvider { + static var previews: some View { + AppTPAboutView() + } +} + +#endif diff --git a/DuckDuckGo/AppTPActivityHostingViewController.swift b/DuckDuckGo/AppTPActivityHostingViewController.swift index 5e1724198b..d818b6cc32 100644 --- a/DuckDuckGo/AppTPActivityHostingViewController.swift +++ b/DuckDuckGo/AppTPActivityHostingViewController.swift @@ -24,11 +24,11 @@ import Core #if APP_TRACKING_PROTECTION class AppTPActivityHostingViewController: UIHostingController { - init(appTrackingProtectionDatabase: CoreDataDatabase) { + init(appTrackingProtectionDatabase: CoreDataDatabase, setNavColor: ((Bool) -> Void)? = nil) { let feedbackModel = AppTrackingProtectionFeedbackModel(appTrackingProtectionDatabase: appTrackingProtectionDatabase) let viewModel = AppTrackingProtectionListViewModel(appTrackingProtectionDatabase: appTrackingProtectionDatabase) - let root = AppTPActivityView(viewModel: viewModel, feedbackModel: feedbackModel) + let root = AppTPActivityView(viewModel: viewModel, feedbackModel: feedbackModel, setNavColor: setNavColor) super.init(rootView: root) } diff --git a/DuckDuckGo/AppTPActivityView.swift b/DuckDuckGo/AppTPActivityView.swift index f22a76d9ee..86aad6b2d7 100644 --- a/DuckDuckGo/AppTPActivityView.swift +++ b/DuckDuckGo/AppTPActivityView.swift @@ -19,16 +19,23 @@ import SwiftUI import Core +import DesignResourcesKit #if APP_TRACKING_PROTECTION struct AppTPActivityView: View { + @Environment(\.colorScheme) var scheme + @ObservedObject var viewModel: AppTrackingProtectionListViewModel @ObservedObject var feedbackModel: AppTrackingProtectionFeedbackModel @ObservedObject var toggleViewModel = AppTPToggleViewModel() + + @State var isConnectingForOnboarding = false let imageCache = AppTrackerImageCache() + let setNavColor: ((Bool) -> Void)? + func imageForState() -> Image { return toggleViewModel.isOn ? Image("AppTPEmptyEnabled") : Image("AppTPEmptyDisabled") } @@ -37,20 +44,30 @@ struct AppTPActivityView: View { return toggleViewModel.isOn ? UserText.appTPEmptyEnabledInfo : UserText.appTPEmptyDisabledInfo } + func enableAppTPFromOnboarding() { + isConnectingForOnboarding = true + toggleViewModel.firewallStatus = .disconnected + toggleViewModel.connectFirewall = true + Task { @MainActor in + await toggleViewModel.changeFirewallStatus() + } + } + var emptyState: some View { - VStack { - imageForState() - .resizable() - .aspectRatio(contentMode: .fit) - .frame(width: 128, height: 96) - .padding(.bottom) + VStack(alignment: .center, spacing: Const.Size.emptyStateSpacing) { + Text(UserText.appTPEmptyHeading) + .daxHeadline() Text(textForState()) .multilineTextAlignment(.center) - .font(Font(uiFont: Const.Font.info)) - .foregroundColor(.infoText) + .daxBodyRegular() + .foregroundColor(Color(designSystemColor: .textSecondary)) + .frame(maxWidth: .infinity) } - .padding() + .frame(maxWidth: .infinity) + .padding(Const.Size.emptyStatePadding) + .background(Color(designSystemColor: .surface)) + .cornerRadius(Const.Size.cornerRadius) .padding(.top) } @@ -98,40 +115,44 @@ struct AppTPActivityView: View { } var manageSection: some View { - Section { - VStack(alignment: .leading, spacing: 0) { - NavigationLink(destination: AppTPManageTrackersView(viewModel: AppTPManageTrackersViewModel(), - feedbackModel: feedbackModel, - imageCache: imageCache)) { - HStack { - Text(UserText.appTPManageTrackers) - .font(Font(uiFont: Const.Font.info)) - .foregroundColor(Color.buttonColor) - - Spacer() + Group { + Section { + VStack(alignment: .leading, spacing: 0) { + NavigationLink(destination: AppTPManageTrackersView(viewModel: AppTPManageTrackersViewModel(), + feedbackModel: feedbackModel, + imageCache: imageCache)) { + AppTPLinkButton(buttonText: UserText.appTPManageTrackers) + } + + Divider() + .padding(.leading) + + NavigationLink(destination: AppTPBreakageFormView(feedbackModel: feedbackModel)) { + AppTPLinkButton(buttonText: UserText.appTPReportIssueButton) } - .padding(.horizontal) - .frame(height: Const.Size.standardCellHeight) } - - Divider() - .padding(.leading) - - NavigationLink(destination: AppTPBreakageFormView(feedbackModel: feedbackModel)) { - HStack { - Text(UserText.appTPReportIssueButton) - .font(Font(uiFont: Const.Font.info)) - .foregroundColor(Color.buttonColor) - - Spacer() + .background(Color.cellBackground) + .cornerRadius(Const.Size.cornerRadius) + .padding(.bottom, Const.Size.sectionBottomPadding) + } + + Section { + VStack(alignment: .leading, spacing: 0) { + NavigationLink(destination: AppTPAboutView()) { + AppTPLinkButton(buttonText: UserText.appTPAboutTitle) + } + + Divider() + .padding(.leading) + + NavigationLink(destination: AppTPFAQView()) { + AppTPLinkButton(buttonText: UserText.appTPFAQTitle) } - .padding(.horizontal) - .frame(height: Const.Size.standardCellHeight) } + .background(Color.cellBackground) + .cornerRadius(Const.Size.cornerRadius) + .padding(.bottom) } - .background(Color.cellBackground) - .cornerRadius(Const.Size.cornerRadius) - .padding(.bottom) } } @@ -142,7 +163,7 @@ struct AppTPActivityView: View { AppTPToggleView(viewModel: toggleViewModel) .background(Color.cellBackground) .cornerRadius(Const.Size.cornerRadius) - .padding(.bottom) + .padding(.bottom, Const.Size.sectionBottomPadding) } if viewModel.appTPUsed || viewModel.sections.count > 0 { @@ -156,11 +177,6 @@ struct AppTPActivityView: View { } } .padding() - .onChange(of: toggleViewModel.firewallStatus) { value in - if value == .connected { - viewModel.appTPUsed = true - } - } } .background(Color.viewBackground) .navigationTitle(UserText.appTPNavTitle) @@ -180,13 +196,29 @@ struct AppTPActivityView: View { var body: some View { scrollWithBackgroud + .sheet(isPresented: $viewModel.isOnboarding) { + NavigationView { + OnboardingContainerView( + viewModels: OnboardingStepViewModel.onboardingData, + enableAppTP: enableAppTPFromOnboarding, + isLoading: $isConnectingForOnboarding + ) + .onChange(of: toggleViewModel.firewallStatus) { value in + if value == .connected { + viewModel.appTPUsed = true + } else if value == .invalid { + isConnectingForOnboarding = false + } + } + } + .accentColor(Color(scheme == .dark ? UIColor.lightMercury : UIColor.darkGreyish)) + } } } private enum Const { enum Font { static let sectionHeader = UIFont.systemFont(ofSize: 12) - static let info = UIFont.appFont(ofSize: 16) } enum Size { @@ -194,6 +226,9 @@ private enum Const { static let sectionIndentation: CGFloat = 16 static let sectionHeaderBottom: CGFloat = -2 static let standardCellHeight: CGFloat = 44 + static let sectionBottomPadding: CGFloat = 32 + static let emptyStatePadding: CGFloat = 16 + static let emptyStateSpacing: CGFloat = 8 } } diff --git a/DuckDuckGo/AppTPBreakageFormHeaderView.swift b/DuckDuckGo/AppTPBreakageFormHeaderView.swift index 70414495c7..21ce9d01c8 100644 --- a/DuckDuckGo/AppTPBreakageFormHeaderView.swift +++ b/DuckDuckGo/AppTPBreakageFormHeaderView.swift @@ -18,6 +18,7 @@ // import SwiftUI +import DesignResourcesKit struct AppTPBreakageFormHeaderView: View { @@ -26,7 +27,7 @@ struct AppTPBreakageFormHeaderView: View { var body: some View { HStack { Text(text) - .font(Font(uiFont: Const.Font.sectionHeader)) + .daxBodyRegular() .foregroundColor(.infoText) Spacer() @@ -34,12 +35,6 @@ struct AppTPBreakageFormHeaderView: View { } } -private enum Const { - enum Font { - static let sectionHeader = UIFont.appFont(ofSize: 17) - } -} - private extension Color { static let infoText = Color("AppTPDomainColor") } diff --git a/DuckDuckGo/AppTPBreakageFormView.swift b/DuckDuckGo/AppTPBreakageFormView.swift index 469ef7274c..ef07b37408 100644 --- a/DuckDuckGo/AppTPBreakageFormView.swift +++ b/DuckDuckGo/AppTPBreakageFormView.swift @@ -18,6 +18,8 @@ // import SwiftUI +import DuckUI +import DesignResourcesKit import Core private enum BreakageCategory: String, CaseIterable, Identifiable { @@ -165,14 +167,12 @@ struct AppTPBreakageFormView: View { sendReport() }, label: { Text(UserText.appTPReportSubmit) - .font(Font(uiFont: Const.Font.button)) - .frame(maxWidth: .infinity, alignment: .center) - .foregroundColor(appName.isEmpty ? Color.disabledButtonLabel : Color.buttonLabelColor) }) - .buttonStyle(PlainButtonStyle()) + .buttonStyle(PrimaryButtonStyle(disabled: appName.isEmpty)) .frame(height: 30) - .listRowBackground(appName.isEmpty ? Color.disabledButton : Color.buttonColor) + .listRowBackground(Color.clear) .disabled(appName.isEmpty) + .listRowInsets(EdgeInsets()) } } .listStyle(.insetGrouped) @@ -190,7 +190,6 @@ struct AppTPBreakageFormView: View { private enum Const { enum Font { - static let button = UIFont.semiBoldAppFont(ofSize: 17) static let footer = UIFont.appFont(ofSize: 15) } @@ -208,8 +207,5 @@ private extension Color { static let infoText = Color("AppTPDomainColor") static let footerText = Color(designSystemColor: .textSecondary) static let buttonColor = Color(designSystemColor: .accent) - static let buttonLabelColor = Color("AppTPBreakageButtonLabel") - static let disabledButton = Color("AppTPBreakageButtonDisabled") - static let disabledButtonLabel = Color("AppTPBreakageButtonLabelDisabled") static let viewBackground = Color(designSystemColor: .background) } diff --git a/DuckDuckGo/AppTPFAQView.swift b/DuckDuckGo/AppTPFAQView.swift new file mode 100644 index 0000000000..8196752429 --- /dev/null +++ b/DuckDuckGo/AppTPFAQView.swift @@ -0,0 +1,90 @@ +// +// AppTPFAQView.swift +// DuckDuckGo +// +// Copyright © 2023 DuckDuckGo. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import SwiftUI +import DesignResourcesKit + +#if APP_TRACKING_PROTECTION + +struct AppTPFAQView: View { + + init() { + let coloredAppearance = UINavigationBarAppearance() + coloredAppearance.configureWithTransparentBackground() + coloredAppearance.backgroundColor = UIColor(designSystemColor: .background) + + UINavigationBar.appearance().standardAppearance = coloredAppearance + UINavigationBar.appearance().compactAppearance = coloredAppearance + UINavigationBar.appearance().scrollEdgeAppearance = coloredAppearance + } + + var faqBody: some View { + ScrollView { + VStack(alignment: .leading, spacing: Const.Size.stackSpacing) { + ForEach(AppTPFAQViewModel.faqs, id: \.question) { faq in + VStack(alignment: .leading, spacing: Const.Size.stackSpacing) { + Text(faq.question) + .daxTitle3() + .foregroundColor(Color.fontColor) + Text(faq.answer) + .daxBodyRegular() + .foregroundColor(Color.fontColor) + } + .padding(Const.Size.stackPadding) + } + } + .frame(maxWidth: .infinity) + } + .navigationTitle(Text(UserText.appTPFAQTitle)) + .navigationBarTitleDisplayMode(.inline) + } + + var body: some View { + if #available(iOS 16, *) { + faqBody + .scrollContentBackground(.hidden) + .background(Color(designSystemColor: .background)) + } else { + faqBody + .background(Color(designSystemColor: .background)) + } + } +} + +private enum Const { + enum Size { + static let stackSpacing: CGFloat = 10 + static let stackPadding: CGFloat = 24 + } +} + +private extension Color { + static let fontColor = Color("AppTPDomainColor") +} + + +struct AppTPFAQView_Previews: PreviewProvider { + static var previews: some View { + NavigationView { + AppTPFAQView() + } + } +} + +#endif diff --git a/DuckDuckGo/AppTPFAQViewModel.swift b/DuckDuckGo/AppTPFAQViewModel.swift new file mode 100644 index 0000000000..fe53304a5c --- /dev/null +++ b/DuckDuckGo/AppTPFAQViewModel.swift @@ -0,0 +1,60 @@ +// +// AppTPFAQViewModel.swift +// DuckDuckGo +// +// Copyright © 2023 DuckDuckGo. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import Foundation + +#if APP_TRACKING_PROTECTION + +struct AppTPFAQViewModel { + let question: String + let answer: String + + static let faqs: [AppTPFAQViewModel] = [ + AppTPFAQViewModel( + question: UserText.appTPFAQQuestion1, + answer: UserText.appTPFAQAnswer1 + ), + AppTPFAQViewModel( + question: UserText.appTPFAQQuestion2, + answer: UserText.appTPFAQAnswer2 + ), + AppTPFAQViewModel( + question: UserText.appTPFAQQuestion3, + answer: UserText.appTPFAQAnswer3 + ), + AppTPFAQViewModel( + question: UserText.appTPFAQQuestion4, + answer: UserText.appTPFAQAnswer4 + ), + AppTPFAQViewModel( + question: UserText.appTPFAQQuestion5, + answer: UserText.appTPFAQAnswer5 + ), + AppTPFAQViewModel( + question: UserText.appTPFAQQuestion6, + answer: UserText.appTPFAQAnswer6 + ), + AppTPFAQViewModel( + question: UserText.appTPFAQQuestion7, + answer: UserText.appTPFAQAnswer7 + ) + ] +} + +#endif diff --git a/DuckDuckGo/AppTPHomeView.swift b/DuckDuckGo/AppTPHomeView.swift index 8f14d4aaed..5998b3f3e3 100644 --- a/DuckDuckGo/AppTPHomeView.swift +++ b/DuckDuckGo/AppTPHomeView.swift @@ -18,6 +18,7 @@ // import SwiftUI +import DesignResourcesKit #if APP_TRACKING_PROTECTION @@ -35,7 +36,7 @@ struct AppTPHomeView: View { .foregroundColor(Color.fontColor) .fixedSize(horizontal: false, vertical: true) .multilineTextAlignment(.leading) - .fontWithLineHeight(font: Const.Font.text, lineHeight: Const.Spacing.lineHeight) + .daxSubheadRegular() } var disabledText: some View { @@ -47,7 +48,7 @@ struct AppTPHomeView: View { .foregroundColor(Color.fontColor) .fixedSize(horizontal: false, vertical: true) .multilineTextAlignment(.leading) - .fontWithLineHeight(font: Const.Font.text, lineHeight: Const.Spacing.lineHeight) + .daxSubheadRegular() } var image: some View { @@ -91,10 +92,6 @@ private extension Color { } private enum Const { - enum Font { - static let text = UIFont.appFont(ofSize: 15) - } - enum Radius { static let shadow: CGFloat = 3 static let corner: CGFloat = 8 diff --git a/DuckDuckGo/AppTPLinkButton.swift b/DuckDuckGo/AppTPLinkButton.swift new file mode 100644 index 0000000000..60d166147d --- /dev/null +++ b/DuckDuckGo/AppTPLinkButton.swift @@ -0,0 +1,54 @@ +// +// AppTPLinkButton.swift +// DuckDuckGo +// +// Copyright © 2023 DuckDuckGo. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import SwiftUI +import DesignResourcesKit + +#if APP_TRACKING_PROTECTION + +struct AppTPLinkButton: View { + + let buttonText: String + + var body: some View { + HStack { + Text(buttonText) + .daxBodyRegular() + .foregroundColor(Color(designSystemColor: .accent)) + + Spacer() + } + .padding(.horizontal) + .frame(height: Const.Size.standardCellHeight) + } +} + +private enum Const { + enum Size { + static let standardCellHeight: CGFloat = 44 + } +} + +struct AppTPLinkButton_Previews: PreviewProvider { + static var previews: some View { + AppTPLinkButton(buttonText: UserText.appTPManageTrackers) + } +} + +#endif diff --git a/DuckDuckGo/AppTPManageTrackerCell.swift b/DuckDuckGo/AppTPManageTrackerCell.swift index 8b92614c4e..8456839f7a 100644 --- a/DuckDuckGo/AppTPManageTrackerCell.swift +++ b/DuckDuckGo/AppTPManageTrackerCell.swift @@ -18,6 +18,7 @@ // import SwiftUI +import DesignResourcesKit struct AppTPManageTrackerCell: View { @@ -58,7 +59,7 @@ struct AppTPManageTrackerCell: View { Toggle(isOn: $isBlocking) { Text(trackerDomain) - .font(Font(uiFont: Const.Font.info)) + .daxBodyRegular() .foregroundColor(.infoText) } .toggleStyle(SwitchToggleStyle(tint: .toggleTint)) @@ -71,19 +72,16 @@ struct AppTPManageTrackerCell: View { if showDivider { Divider() - .padding(.leading, 44) + .padding(.leading, Const.Size.dividerPadding) } } } } private enum Const { - enum Font { - static let info = UIFont.appFont(ofSize: 16) - } - enum Size { static let standardCellHeight: CGFloat = 44 + static let dividerPadding: CGFloat = 44 static let iconWidth: CGFloat = 25 } } diff --git a/DuckDuckGo/AppTPManageTrackersView.swift b/DuckDuckGo/AppTPManageTrackersView.swift index bae38df48d..464d51025d 100644 --- a/DuckDuckGo/AppTPManageTrackersView.swift +++ b/DuckDuckGo/AppTPManageTrackersView.swift @@ -19,6 +19,7 @@ import SwiftUI import Core +import DesignResourcesKit struct AppTPManageTrackersView: View { @@ -67,7 +68,7 @@ struct AppTPManageTrackersView: View { Spacer() Text(UserText.appTPRestoreDefaults) - .font(Font(uiFont: Const.Font.info)) + .daxBodyRegular() .foregroundColor(Color.buttonTextColor) Spacer() @@ -111,11 +112,11 @@ struct AppTPManageTrackersView: View { .alert(isPresented: $showReportAlert) { Alert(title: Text(UserText.appTPReportAlertTitle), message: Text(UserText.appTPReportAlertMessage), - primaryButton: .default(Text(UserText.appTPReportAlertConfirm)) { + primaryButton: .cancel(Text(UserText.appTPReportAlertConfirm)) { isBreakageLinkActive = true viewModel.trackerDisabled = false }, - secondaryButton: .cancel(Text(UserText.appTPReportAlertCancel)) { + secondaryButton: .default(Text(UserText.appTPReportAlertCancel)) { viewModel.trackerDisabled = false } ) @@ -129,10 +130,6 @@ struct AppTPManageTrackersView: View { } private enum Const { - enum Font { - static let info = UIFont.appFont(ofSize: 16) - } - enum Size { static let cornerRadius: CGFloat = 12 static let standardCellHeight: CGFloat = 44 diff --git a/DuckDuckGo/AppTPToggleView.swift b/DuckDuckGo/AppTPToggleView.swift index 80da87bdbf..8c71477c8b 100644 --- a/DuckDuckGo/AppTPToggleView.swift +++ b/DuckDuckGo/AppTPToggleView.swift @@ -18,6 +18,7 @@ // import SwiftUI +import DesignResourcesKit #if APP_TRACKING_PROTECTION @@ -33,6 +34,7 @@ struct AppTPToggleView: View { Toggle(isOn: $viewModel.isOn, label: { HStack { Text(UserText.appTPNavTitle) + .daxBodyRegular() .foregroundColor(Color.fontColor) Spacer() @@ -63,10 +65,6 @@ struct AppTPToggleView: View { } private enum Const { - enum Font { - static let toggleLabel = UIFont.appFont(ofSize: 16) - } - enum Size { static let rowHeight: CGFloat = 44 } diff --git a/DuckDuckGo/AppTPTrackerCell.swift b/DuckDuckGo/AppTPTrackerCell.swift index b37827b48b..952c391266 100644 --- a/DuckDuckGo/AppTPTrackerCell.swift +++ b/DuckDuckGo/AppTPTrackerCell.swift @@ -19,6 +19,7 @@ import SwiftUI import Core +import DesignResourcesKit struct AppTPTrackerCell: View { let trackerDomain: String @@ -52,7 +53,7 @@ struct AppTPTrackerCell: View { VStack(alignment: .leading, spacing: Const.Size.rowSpacing) { Text(trackerDomain) .lineLimit(1) - .font(Font(uiFont: Const.Font.trackerDomain)) + .daxBodyRegular() .foregroundColor(.trackerDomain) Text(UserText.appTPTrackingAttempts(count: trackerCount)) @@ -90,7 +91,6 @@ struct AppTPTrackerCell: View { private enum Const { enum Font { - static let trackerDomain = UIFont.appFont(ofSize: 16) static let trackerCount = UIFont.appFont(ofSize: 13) } diff --git a/DuckDuckGo/AppTPTrackerDetailView.swift b/DuckDuckGo/AppTPTrackerDetailView.swift index ef4f934a81..9bee9d4755 100644 --- a/DuckDuckGo/AppTPTrackerDetailView.swift +++ b/DuckDuckGo/AppTPTrackerDetailView.swift @@ -19,6 +19,7 @@ import SwiftUI import Core +import DesignResourcesKit struct AppTPTrackerDetailView: View { @@ -36,13 +37,13 @@ struct AppTPTrackerDetailView: View { ScrollView { VStack(alignment: .leading) { Text(viewModel.trackerDomain) - .font(Font(uiFont: Const.Font.sectionHeader)) + .daxSubheadSemibold() .foregroundColor(.infoText) .padding(.leading, Const.Size.sectionHeaderPadding) Toggle(isOn: $viewModel.isOn, label: { Text(UserText.appTPBlockTracker) - .font(Font(uiFont: Const.Font.info)) + .daxBodyRegular() .foregroundColor(.infoText) }) .toggleStyle(SwitchToggleStyle(tint: Color.toggleTint)) @@ -70,23 +71,19 @@ struct AppTPTrackerDetailView: View { } } .alert(isPresented: $showReportAlert) { - Alert(title: Text(UserText.appTPReportAlertTitle), - message: Text(UserText.appTPReportAlertMessage), - primaryButton: .default(Text(UserText.appTPReportAlertConfirm)) { - isBreakageLinkActive = true - }, - secondaryButton: .cancel(Text(UserText.appTPReportAlertCancel)) + Alert( + title: Text(UserText.appTPReportAlertTitle), + message: Text(UserText.appTPReportAlertMessage), + primaryButton: .cancel(Text(UserText.appTPReportAlertConfirm)) { + isBreakageLinkActive = true + }, + secondaryButton: .default(Text(UserText.appTPReportAlertCancel)) ) } } } private enum Const { - enum Font { - static let sectionHeader = UIFont.semiBoldAppFont(ofSize: 15) - static let info = UIFont.appFont(ofSize: 16) - } - enum Size { static let cornerRadius: CGFloat = 12 static let standardCellHeight: CGFloat = 44 diff --git a/DuckDuckGo/Assets.xcassets/DDG-AppIcon-Alpha.appiconset/1024.png b/DuckDuckGo/Assets.xcassets/DDG-AppIcon-Alpha.appiconset/1024.png new file mode 100644 index 0000000000..a53a64d7b6 Binary files /dev/null and b/DuckDuckGo/Assets.xcassets/DDG-AppIcon-Alpha.appiconset/1024.png differ diff --git a/DuckDuckGo/Assets.xcassets/DDG-AppIcon-Alpha.appiconset/29 1.png b/DuckDuckGo/Assets.xcassets/DDG-AppIcon-Alpha.appiconset/29 1.png new file mode 100644 index 0000000000..0904196f44 Binary files /dev/null and b/DuckDuckGo/Assets.xcassets/DDG-AppIcon-Alpha.appiconset/29 1.png differ diff --git a/DuckDuckGo/Assets.xcassets/DDG-AppIcon-Alpha.appiconset/29.png b/DuckDuckGo/Assets.xcassets/DDG-AppIcon-Alpha.appiconset/29.png new file mode 100644 index 0000000000..0904196f44 Binary files /dev/null and b/DuckDuckGo/Assets.xcassets/DDG-AppIcon-Alpha.appiconset/29.png differ diff --git a/DuckDuckGo/Assets.xcassets/DDG-AppIcon-Alpha.appiconset/29@2x 1.png b/DuckDuckGo/Assets.xcassets/DDG-AppIcon-Alpha.appiconset/29@2x 1.png new file mode 100644 index 0000000000..7f792888f9 Binary files /dev/null and b/DuckDuckGo/Assets.xcassets/DDG-AppIcon-Alpha.appiconset/29@2x 1.png differ diff --git a/DuckDuckGo/Assets.xcassets/DDG-AppIcon-Alpha.appiconset/29@2x.png b/DuckDuckGo/Assets.xcassets/DDG-AppIcon-Alpha.appiconset/29@2x.png new file mode 100644 index 0000000000..7f792888f9 Binary files /dev/null and b/DuckDuckGo/Assets.xcassets/DDG-AppIcon-Alpha.appiconset/29@2x.png differ diff --git a/DuckDuckGo/Assets.xcassets/DDG-AppIcon-Alpha.appiconset/29@3x.png b/DuckDuckGo/Assets.xcassets/DDG-AppIcon-Alpha.appiconset/29@3x.png new file mode 100644 index 0000000000..41f1b91565 Binary files /dev/null and b/DuckDuckGo/Assets.xcassets/DDG-AppIcon-Alpha.appiconset/29@3x.png differ diff --git a/DuckDuckGo/Assets.xcassets/DDG-AppIcon-Alpha.appiconset/40 1.png b/DuckDuckGo/Assets.xcassets/DDG-AppIcon-Alpha.appiconset/40 1.png new file mode 100644 index 0000000000..5107820e2c Binary files /dev/null and b/DuckDuckGo/Assets.xcassets/DDG-AppIcon-Alpha.appiconset/40 1.png differ diff --git a/DuckDuckGo/Assets.xcassets/DDG-AppIcon-Alpha.appiconset/40@2x 1.png b/DuckDuckGo/Assets.xcassets/DDG-AppIcon-Alpha.appiconset/40@2x 1.png new file mode 100644 index 0000000000..7591436357 Binary files /dev/null and b/DuckDuckGo/Assets.xcassets/DDG-AppIcon-Alpha.appiconset/40@2x 1.png differ diff --git a/DuckDuckGo/Assets.xcassets/DDG-AppIcon-Alpha.appiconset/40@2x.png b/DuckDuckGo/Assets.xcassets/DDG-AppIcon-Alpha.appiconset/40@2x.png new file mode 100644 index 0000000000..7591436357 Binary files /dev/null and b/DuckDuckGo/Assets.xcassets/DDG-AppIcon-Alpha.appiconset/40@2x.png differ diff --git a/DuckDuckGo/Assets.xcassets/DDG-AppIcon-Alpha.appiconset/40@3x.png b/DuckDuckGo/Assets.xcassets/DDG-AppIcon-Alpha.appiconset/40@3x.png new file mode 100644 index 0000000000..f41ad07ec5 Binary files /dev/null and b/DuckDuckGo/Assets.xcassets/DDG-AppIcon-Alpha.appiconset/40@3x.png differ diff --git a/DuckDuckGo/Assets.xcassets/DDG-AppIcon-Alpha.appiconset/50.png b/DuckDuckGo/Assets.xcassets/DDG-AppIcon-Alpha.appiconset/50.png new file mode 100644 index 0000000000..19215d311c Binary files /dev/null and b/DuckDuckGo/Assets.xcassets/DDG-AppIcon-Alpha.appiconset/50.png differ diff --git a/DuckDuckGo/Assets.xcassets/DDG-AppIcon-Alpha.appiconset/50@2x.png b/DuckDuckGo/Assets.xcassets/DDG-AppIcon-Alpha.appiconset/50@2x.png new file mode 100644 index 0000000000..07ccfd7d36 Binary files /dev/null and b/DuckDuckGo/Assets.xcassets/DDG-AppIcon-Alpha.appiconset/50@2x.png differ diff --git a/DuckDuckGo/Assets.xcassets/DDG-AppIcon-Alpha.appiconset/60@2x 1.png b/DuckDuckGo/Assets.xcassets/DDG-AppIcon-Alpha.appiconset/60@2x 1.png new file mode 100644 index 0000000000..d9b663fda9 Binary files /dev/null and b/DuckDuckGo/Assets.xcassets/DDG-AppIcon-Alpha.appiconset/60@2x 1.png differ diff --git a/DuckDuckGo/Assets.xcassets/DDG-AppIcon-Alpha.appiconset/60@2x.png b/DuckDuckGo/Assets.xcassets/DDG-AppIcon-Alpha.appiconset/60@2x.png new file mode 100644 index 0000000000..d9b663fda9 Binary files /dev/null and b/DuckDuckGo/Assets.xcassets/DDG-AppIcon-Alpha.appiconset/60@2x.png differ diff --git a/DuckDuckGo/Assets.xcassets/DDG-AppIcon-Alpha.appiconset/60@3x 1.png b/DuckDuckGo/Assets.xcassets/DDG-AppIcon-Alpha.appiconset/60@3x 1.png new file mode 100644 index 0000000000..bfc30c8ba7 Binary files /dev/null and b/DuckDuckGo/Assets.xcassets/DDG-AppIcon-Alpha.appiconset/60@3x 1.png differ diff --git a/DuckDuckGo/Assets.xcassets/DDG-AppIcon-Alpha.appiconset/60@3x.png b/DuckDuckGo/Assets.xcassets/DDG-AppIcon-Alpha.appiconset/60@3x.png new file mode 100644 index 0000000000..bfc30c8ba7 Binary files /dev/null and b/DuckDuckGo/Assets.xcassets/DDG-AppIcon-Alpha.appiconset/60@3x.png differ diff --git a/DuckDuckGo/Assets.xcassets/DDG-AppIcon-Alpha.appiconset/76.png b/DuckDuckGo/Assets.xcassets/DDG-AppIcon-Alpha.appiconset/76.png new file mode 100644 index 0000000000..7cceafaec6 Binary files /dev/null and b/DuckDuckGo/Assets.xcassets/DDG-AppIcon-Alpha.appiconset/76.png differ diff --git a/DuckDuckGo/Assets.xcassets/DDG-AppIcon-Alpha.appiconset/76@2x.png b/DuckDuckGo/Assets.xcassets/DDG-AppIcon-Alpha.appiconset/76@2x.png new file mode 100644 index 0000000000..8e1caa7049 Binary files /dev/null and b/DuckDuckGo/Assets.xcassets/DDG-AppIcon-Alpha.appiconset/76@2x.png differ diff --git a/DuckDuckGo/Assets.xcassets/DDG-AppIcon-Alpha.appiconset/83-5@2x.png b/DuckDuckGo/Assets.xcassets/DDG-AppIcon-Alpha.appiconset/83-5@2x.png new file mode 100644 index 0000000000..68f891674b Binary files /dev/null and b/DuckDuckGo/Assets.xcassets/DDG-AppIcon-Alpha.appiconset/83-5@2x.png differ diff --git a/DuckDuckGo/Assets.xcassets/DDG-AppIcon-Alpha.appiconset/Contents.json b/DuckDuckGo/Assets.xcassets/DDG-AppIcon-Alpha.appiconset/Contents.json new file mode 100644 index 0000000000..186dd9b2f0 --- /dev/null +++ b/DuckDuckGo/Assets.xcassets/DDG-AppIcon-Alpha.appiconset/Contents.json @@ -0,0 +1,327 @@ +{ + "images" : [ + { + "idiom" : "iphone", + "scale" : "2x", + "size" : "20x20" + }, + { + "idiom" : "iphone", + "scale" : "3x", + "size" : "20x20" + }, + { + "filename" : "29.png", + "idiom" : "iphone", + "scale" : "1x", + "size" : "29x29" + }, + { + "filename" : "29@2x.png", + "idiom" : "iphone", + "scale" : "2x", + "size" : "29x29" + }, + { + "filename" : "29@3x.png", + "idiom" : "iphone", + "scale" : "3x", + "size" : "29x29" + }, + { + "filename" : "40@2x.png", + "idiom" : "iphone", + "scale" : "2x", + "size" : "40x40" + }, + { + "filename" : "40@3x.png", + "idiom" : "iphone", + "scale" : "3x", + "size" : "40x40" + }, + { + "idiom" : "iphone", + "scale" : "1x", + "size" : "57x57" + }, + { + "idiom" : "iphone", + "scale" : "2x", + "size" : "57x57" + }, + { + "filename" : "60@2x.png", + "idiom" : "iphone", + "scale" : "2x", + "size" : "60x60" + }, + { + "filename" : "60@3x.png", + "idiom" : "iphone", + "scale" : "3x", + "size" : "60x60" + }, + { + "idiom" : "ipad", + "scale" : "1x", + "size" : "20x20" + }, + { + "idiom" : "ipad", + "scale" : "2x", + "size" : "20x20" + }, + { + "filename" : "29 1.png", + "idiom" : "ipad", + "scale" : "1x", + "size" : "29x29" + }, + { + "filename" : "29@2x 1.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "29x29" + }, + { + "filename" : "40 1.png", + "idiom" : "ipad", + "scale" : "1x", + "size" : "40x40" + }, + { + "filename" : "40@2x 1.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "40x40" + }, + { + "filename" : "50.png", + "idiom" : "ipad", + "scale" : "1x", + "size" : "50x50" + }, + { + "filename" : "50@2x.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "50x50" + }, + { + "idiom" : "ipad", + "scale" : "1x", + "size" : "72x72" + }, + { + "idiom" : "ipad", + "scale" : "2x", + "size" : "72x72" + }, + { + "filename" : "76.png", + "idiom" : "ipad", + "scale" : "1x", + "size" : "76x76" + }, + { + "filename" : "76@2x.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "76x76" + }, + { + "filename" : "83-5@2x.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "83.5x83.5" + }, + { + "filename" : "60@2x 1.png", + "idiom" : "car", + "scale" : "2x", + "size" : "60x60" + }, + { + "filename" : "60@3x 1.png", + "idiom" : "car", + "scale" : "3x", + "size" : "60x60" + }, + { + "filename" : "1024.png", + "idiom" : "ios-marketing", + "scale" : "1x", + "size" : "1024x1024" + }, + { + "idiom" : "mac", + "scale" : "1x", + "size" : "16x16" + }, + { + "idiom" : "mac", + "scale" : "2x", + "size" : "16x16" + }, + { + "idiom" : "mac", + "scale" : "1x", + "size" : "32x32" + }, + { + "idiom" : "mac", + "scale" : "2x", + "size" : "32x32" + }, + { + "idiom" : "mac", + "scale" : "1x", + "size" : "128x128" + }, + { + "idiom" : "mac", + "scale" : "2x", + "size" : "128x128" + }, + { + "idiom" : "mac", + "scale" : "1x", + "size" : "256x256" + }, + { + "idiom" : "mac", + "scale" : "2x", + "size" : "256x256" + }, + { + "idiom" : "mac", + "scale" : "1x", + "size" : "512x512" + }, + { + "idiom" : "mac", + "scale" : "2x", + "size" : "512x512" + }, + { + "idiom" : "watch", + "role" : "notificationCenter", + "scale" : "2x", + "size" : "24x24", + "subtype" : "38mm" + }, + { + "idiom" : "watch", + "role" : "notificationCenter", + "scale" : "2x", + "size" : "27.5x27.5", + "subtype" : "42mm" + }, + { + "idiom" : "watch", + "role" : "companionSettings", + "scale" : "2x", + "size" : "29x29" + }, + { + "idiom" : "watch", + "role" : "companionSettings", + "scale" : "3x", + "size" : "29x29" + }, + { + "idiom" : "watch", + "role" : "notificationCenter", + "scale" : "2x", + "size" : "33x33", + "subtype" : "45mm" + }, + { + "idiom" : "watch", + "role" : "appLauncher", + "scale" : "2x", + "size" : "40x40", + "subtype" : "38mm" + }, + { + "idiom" : "watch", + "role" : "appLauncher", + "scale" : "2x", + "size" : "44x44", + "subtype" : "40mm" + }, + { + "idiom" : "watch", + "role" : "appLauncher", + "scale" : "2x", + "size" : "46x46", + "subtype" : "41mm" + }, + { + "idiom" : "watch", + "role" : "appLauncher", + "scale" : "2x", + "size" : "50x50", + "subtype" : "44mm" + }, + { + "idiom" : "watch", + "role" : "appLauncher", + "scale" : "2x", + "size" : "51x51", + "subtype" : "45mm" + }, + { + "idiom" : "watch", + "role" : "appLauncher", + "scale" : "2x", + "size" : "54x54", + "subtype" : "49mm" + }, + { + "idiom" : "watch", + "role" : "quickLook", + "scale" : "2x", + "size" : "86x86", + "subtype" : "38mm" + }, + { + "idiom" : "watch", + "role" : "quickLook", + "scale" : "2x", + "size" : "98x98", + "subtype" : "42mm" + }, + { + "idiom" : "watch", + "role" : "quickLook", + "scale" : "2x", + "size" : "108x108", + "subtype" : "44mm" + }, + { + "idiom" : "watch", + "role" : "quickLook", + "scale" : "2x", + "size" : "117x117", + "subtype" : "45mm" + }, + { + "idiom" : "watch", + "role" : "quickLook", + "scale" : "2x", + "size" : "129x129", + "subtype" : "49mm" + }, + { + "idiom" : "watch-marketing", + "scale" : "1x", + "size" : "1024x1024" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/DuckDuckGo/Assets.xcassets/InviteLock.imageset/Contents.json b/DuckDuckGo/Assets.xcassets/InviteLock.imageset/Contents.json new file mode 100644 index 0000000000..013b85525e --- /dev/null +++ b/DuckDuckGo/Assets.xcassets/InviteLock.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "filename" : "lock-100.pdf", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/DuckDuckGo/Assets.xcassets/InviteLock.imageset/lock-100.pdf b/DuckDuckGo/Assets.xcassets/InviteLock.imageset/lock-100.pdf new file mode 100644 index 0000000000..1d720af3e0 Binary files /dev/null and b/DuckDuckGo/Assets.xcassets/InviteLock.imageset/lock-100.pdf differ diff --git a/DuckDuckGo/Assets.xcassets/InviteLockSuccess.imageset/Contents.json b/DuckDuckGo/Assets.xcassets/InviteLockSuccess.imageset/Contents.json new file mode 100644 index 0000000000..eca9e5604b --- /dev/null +++ b/DuckDuckGo/Assets.xcassets/InviteLockSuccess.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "filename" : "lock-success-100.pdf", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/DuckDuckGo/Assets.xcassets/InviteLockSuccess.imageset/lock-success-100.pdf b/DuckDuckGo/Assets.xcassets/InviteLockSuccess.imageset/lock-success-100.pdf new file mode 100644 index 0000000000..946c7250d0 Binary files /dev/null and b/DuckDuckGo/Assets.xcassets/InviteLockSuccess.imageset/lock-success-100.pdf differ diff --git a/DuckDuckGo/Assets.xcassets/VPN.imageset/Contents.json b/DuckDuckGo/Assets.xcassets/VPN.imageset/Contents.json new file mode 100644 index 0000000000..7d29a35569 --- /dev/null +++ b/DuckDuckGo/Assets.xcassets/VPN.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "filename" : "VPN.pdf", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/DuckDuckGo/Assets.xcassets/VPN.imageset/VPN.pdf b/DuckDuckGo/Assets.xcassets/VPN.imageset/VPN.pdf new file mode 100644 index 0000000000..005d8fb066 Binary files /dev/null and b/DuckDuckGo/Assets.xcassets/VPN.imageset/VPN.pdf differ diff --git a/DuckDuckGo/Assets.xcassets/VPNDisabled.imageset/Contents.json b/DuckDuckGo/Assets.xcassets/VPNDisabled.imageset/Contents.json new file mode 100644 index 0000000000..4c65d209a8 --- /dev/null +++ b/DuckDuckGo/Assets.xcassets/VPNDisabled.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "filename" : "VPNDisabled.pdf", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/DuckDuckGo/Assets.xcassets/VPNDisabled.imageset/VPNDisabled.pdf b/DuckDuckGo/Assets.xcassets/VPNDisabled.imageset/VPNDisabled.pdf new file mode 100644 index 0000000000..a89d61ec2c Binary files /dev/null and b/DuckDuckGo/Assets.xcassets/VPNDisabled.imageset/VPNDisabled.pdf differ diff --git a/DuckDuckGo/Autoconsent/AutoconsentUserScript.swift b/DuckDuckGo/Autoconsent/AutoconsentUserScript.swift index c1b03304e4..0258cf8a45 100644 --- a/DuckDuckGo/Autoconsent/AutoconsentUserScript.swift +++ b/DuckDuckGo/Autoconsent/AutoconsentUserScript.swift @@ -235,7 +235,8 @@ extension AutoconsentUserScript { return } - guard config.isFeature(.autoconsent, enabledForDomain: url.host) else { + let topURLDomain = message.webView?.url?.host + guard config.isFeature(.autoconsent, enabledForDomain: topURLDomain) else { os_log("disabled for site: %s", log: .autoconsentLog, type: .info, String(describing: url.absoluteString)) replyHandler([ "type": "ok" ], nil) // this is just to prevent a Promise rejection return diff --git a/DuckDuckGo/Autoconsent/autoconsent-bundle.js b/DuckDuckGo/Autoconsent/autoconsent-bundle.js index 30a0f43954..d288caa0b6 100644 --- a/DuckDuckGo/Autoconsent/autoconsent-bundle.js +++ b/DuckDuckGo/Autoconsent/autoconsent-bundle.js @@ -1 +1 @@ -!function(){"use strict";function e(){return crypto&&void 0!==crypto.randomUUID?crypto.randomUUID():Math.random().toString()}class t{constructor(e,t=1e3){this.id=e,this.promise=new Promise(((e,t)=>{this.resolve=e,this.reject=t})),this.timer=window.setTimeout((()=>{this.reject(new Error("timeout"))}),t)}}const o={pending:new Map,sendContentMessage:null};function c(e="autoconsent-css-rules"){const t=`style#${e}`,o=document.querySelector(t);if(o&&o instanceof HTMLStyleElement)return o;{const t=document.head||document.getElementsByTagName("head")[0]||document.documentElement,o=document.createElement("style");return o.id=e,t.appendChild(o),o}}function i(e,t,o="display"){const c="opacity"===o?"opacity: 0":"display: none",i=`${t.join(",")} { ${c} !important; z-index: -1 !important; pointer-events: none !important; } `;return e instanceof HTMLStyleElement&&(e.innerText+=i,t.length>0)}async function n(e,t,o){const c=await e();return!c&&t>0?new Promise((c=>{setTimeout((async()=>{c(n(e,t-1,o))}),o)})):Promise.resolve(c)}function a(e){if(!e)return!1;if(null!==e.offsetParent)return!0;{const t=window.getComputedStyle(e);if("fixed"===t.position&&"none"!==t.display)return!0}return!1}function s(c){return function(c){const i=e();o.sendContentMessage({type:"eval",id:i,code:c});const n=new t(i);return o.pending.set(n.id,n),n.promise}(c).catch((e=>!1))}function r(e,t=!1){let o=[];return o="string"==typeof e?Array.from(document.querySelectorAll(e)):e,o.length>0&&(t?o.forEach((e=>e.click())):o[0].click()),o.length>0}function p(e){return null!==document.querySelector(e)}function l(e,t){const o=document.querySelectorAll(e),c=new Array(o.length);return o.forEach(((e,t)=>{c[t]=a(e)})),"none"===t?c.every((e=>!e)):0!==c.length&&("any"===t?c.some((e=>e)):c.every((e=>e)))}function d(e,t=1e4){return n((()=>null!==document.querySelector(e)),Math.ceil(t/200),200)}async function u(e,t=1e4,o=!1){return await d(e,t),r(e,o)}function m(e){return new Promise((t=>{setTimeout((()=>{t(!0)}),e)}))}const h={main:!0,frame:!1,urlPattern:""};class k{constructor(e){this.runContext=h,this.name=e}get hasSelfTest(){throw new Error("Not Implemented")}get isIntermediate(){throw new Error("Not Implemented")}get isCosmetic(){throw new Error("Not Implemented")}checkRunContext(){const e={...h,...this.runContext},t=window.top===window;return!(t&&!e.main||!t&&!e.frame||e.urlPattern&&!window.location.href.match(e.urlPattern))}detectCmp(){throw new Error("Not Implemented")}async detectPopup(){return!1}optOut(){throw new Error("Not Implemented")}optIn(){throw new Error("Not Implemented")}openCmp(){throw new Error("Not Implemented")}async test(){return Promise.resolve(!0)}}async function b(e){const t=[];if(e.exists&&t.push(p(e.exists)),e.visible&&t.push(l(e.visible,e.check)),e.eval){const o=s(e.eval);t.push(o)}var o,a;if(e.waitFor&&t.push(d(e.waitFor,e.timeout)),e.waitForVisible&&t.push(function(e,t=1e4,o="any"){return n((()=>l(e,o)),Math.ceil(t/200),200)}(e.waitForVisible,e.timeout,e.check)),e.click&&t.push(r(e.click,e.all)),e.waitForThenClick&&t.push(u(e.waitForThenClick,e.timeout,e.all)),e.wait&&t.push(m(e.wait)),e.hide&&t.push((o=e.hide,a=e.method,i(c(),o,a))),e.if){if(!e.if.exists&&!e.if.visible)return console.error("invalid conditional rule",e.if),!1;await b(e.if)?t.push(g(e.then)):e.else&&t.push(g(e.else))}return 0!==t.length&&(await Promise.all(t)).reduce(((e,t)=>e&&t),!0)}async function g(e){for(const t of e)if(!await b(t)&&!t.optional)return!1;return!0}class y extends k{constructor(e){super(e.name),this.config=e,this.runContext=e.runContext||h}get hasSelfTest(){return!!this.config.test}get isIntermediate(){return!!this.config.intermediate}get isCosmetic(){return!!this.config.cosmetic}get prehideSelectors(){return this.config.prehideSelectors}async detectCmp(){return!!this.config.detectCmp&&async function(e){const t=e.map((e=>b(e)));return(await Promise.all(t)).every((e=>!!e))}(this.config.detectCmp)}async detectPopup(){return!!this.config.detectPopup&&g(this.config.detectPopup)}async optOut(){return!!this.config.optOut&&g(this.config.optOut)}async optIn(){return!!this.config.optIn&&g(this.config.optIn)}async openCmp(){return!!this.config.openCmp&&g(this.config.openCmp)}async test(){return this.hasSelfTest?g(this.config.test):super.test()}}const w=[new class extends k{constructor(){super("TrustArc-top"),this.prehideSelectors=[".trustarc-banner-container",".truste_popframe,.truste_overlay,.truste_box_overlay,#truste-consent-track"],this.runContext={main:!0,frame:!1},this._shortcutButton=null,this._optInDone=!1}get hasSelfTest(){return!1}get isIntermediate(){return!this._optInDone&&!this._shortcutButton}get isCosmetic(){return!1}async detectCmp(){const e=p("#truste-show-consent,#truste-consent-track");return e&&(this._shortcutButton=document.querySelector("#truste-consent-required")),e}async detectPopup(){return l("#truste-consent-content,#trustarc-banner-overlay,#truste-consent-track","all")}openFrame(){r("#truste-show-consent")}async optOut(){return this._shortcutButton?(this._shortcutButton.click(),!0):(i(c(),[".truste_popframe",".truste_overlay",".truste_box_overlay","#truste-consent-track"]),r("#truste-show-consent"),setTimeout((()=>{c().remove()}),1e4),!0)}async optIn(){return this._optInDone=!0,r("#truste-consent-button")}async openCmp(){return!0}async test(){return await s("window && window.truste && window.truste.eu.bindMap.prefCookie === '0'")}},new class extends k{constructor(){super("TrustArc-frame"),this.runContext={main:!1,frame:!0,urlPattern:"^https://consent-pref\\.trustarc\\.com/\\?"}}get hasSelfTest(){return!1}get isIntermediate(){return!1}get isCosmetic(){return!1}async detectCmp(){return!0}async detectPopup(){return l("#defaultpreferencemanager","any")&&l(".mainContent","any")}async navigateToSettings(){return await n((async()=>p(".shp")||l(".advance","any")||p(".switch span:first-child")),10,500),p(".shp")&&r(".shp"),await d(".prefPanel",5e3),l(".advance","any")&&r(".advance"),await n((()=>l(".switch span:first-child","any")),5,1e3)}async optOut(){return await n((()=>"complete"===document.readyState),20,100),await d(".mainContent[aria-hidden=false]",5e3),!!r(".rejectAll")||(p(".prefPanel")&&await d('.prefPanel[style="visibility: visible;"]',3e3),r("#catDetails0")?(r(".submit"),!0):(r(".required")||(await this.navigateToSettings(),r(".switch span:nth-child(1):not(.active)",!0),r(".submit"),d("#gwt-debug-close_id",3e5).then((()=>{r("#gwt-debug-close_id")}))),!0))}async optIn(){return r(".call")||(await this.navigateToSettings(),r(".switch span:nth-child(2)",!0),r(".submit"),d("#gwt-debug-close_id",3e5).then((()=>{r("#gwt-debug-close_id")}))),!0}},new class extends k{constructor(){super("Cybotcookiebot"),this.prehideSelectors=["#CybotCookiebotDialog,#dtcookie-container,#cookiebanner,#cb-cookieoverlay"]}get hasSelfTest(){return!0}get isIntermediate(){return!1}get isCosmetic(){return!1}async detectCmp(){return p("#CybotCookiebotDialogBodyLevelButtonPreferences")}async detectPopup(){return p("#CybotCookiebotDialog,#dtcookie-container,#cookiebanner,#cb-cookiebanner")}async optOut(){return r(".cookie-alert-extended-detail-link")?(await d(".cookie-alert-configuration",2e3),r(".cookie-alert-configuration-input:checked",!0),r(".cookie-alert-extended-button-secondary"),!0):p("#dtcookie-container")?r(".h-dtcookie-decline"):(r(".cookiebot__button--settings")||r("#CybotCookiebotDialogBodyButtonDecline")||(r(".cookiebanner__link--details"),r('.CybotCookiebotDialogBodyLevelButton:checked:enabled,input[id*="CybotCookiebotDialogBodyLevelButton"]:checked:enabled',!0),r("#CybotCookiebotDialogBodyButtonDecline"),r("input[id^=CybotCookiebotDialogBodyLevelButton]:checked",!0),p("#CybotCookiebotDialogBodyButtonAcceptSelected")?r("#CybotCookiebotDialogBodyButtonAcceptSelected"):r("#CybotCookiebotDialogBodyLevelButtonAccept,#CybotCookiebotDialogBodyButtonAccept,#CybotCookiebotDialogBodyLevelButtonLevelOptinAllowallSelection",!0),await s("window.CookieConsent.hasResponse !== true")&&(await s("window.Cookiebot.dialog.submitConsent()"),await m(500)),p("#cb-confirmedSettings")&&await s("endCookieProcess()")),!0)}async optIn(){return p("#dtcookie-container")?r(".h-dtcookie-accept"):(r(".CybotCookiebotDialogBodyLevelButton:not(:checked):enabled",!0),r("#CybotCookiebotDialogBodyLevelButtonAccept"),r("#CybotCookiebotDialogBodyButtonAccept"),!0)}async test(){return s("window.CookieConsent.declined === true")}},new class extends k{constructor(){super("Sourcepoint-frame"),this.prehideSelectors=["div[id^='sp_message_container_'],.message-overlay","#sp_privacy_manager_container"],this.ccpaNotice=!1,this.ccpaPopup=!1,this.runContext={main:!1,frame:!0}}get hasSelfTest(){return!1}get isIntermediate(){return!1}get isCosmetic(){return!1}async detectCmp(){const e=new URL(location.href);return e.searchParams.has("message_id")&&"ccpa-notice.sp-prod.net"===e.hostname?(this.ccpaNotice=!0,!0):"ccpa-pm.sp-prod.net"===e.hostname?(this.ccpaPopup=!0,!0):("/index.html"===e.pathname||"/privacy-manager/index.html"===e.pathname)&&(e.searchParams.has("message_id")||e.searchParams.has("requestUUID")||e.searchParams.has("consentUUID"))}async detectPopup(){return!!this.ccpaNotice||(this.ccpaPopup?await d(".priv-save-btn",2e3):(await d(".sp_choice_type_11,.sp_choice_type_12,.sp_choice_type_13,.sp_choice_type_ACCEPT_ALL",2e3),!p(".sp_choice_type_9")))}async optIn(){return await d(".sp_choice_type_11,.sp_choice_type_ACCEPT_ALL",2e3),!!r(".sp_choice_type_11")||!!r(".sp_choice_type_ACCEPT_ALL")}isManagerOpen(){return"/privacy-manager/index.html"===location.pathname}async optOut(){if(this.ccpaPopup){const e=document.querySelectorAll(".priv-purpose-container .sp-switch-arrow-block a.neutral.on .right");for(const t of e)r([t]);const t=document.querySelectorAll(".priv-purpose-container .sp-switch-arrow-block a.switch-bg.on");for(const e of t)r([e]);return r(".priv-save-btn")}if(!this.isManagerOpen()){if(!await d(".sp_choice_type_12,.sp_choice_type_13"))return!1;if(!p(".sp_choice_type_12"))return r(".sp_choice_type_13");r(".sp_choice_type_12"),await n((()=>this.isManagerOpen()),200,100)}await d(".type-modal",2e4);try{const e=".sp_choice_type_REJECT_ALL",t=".reject-toggle",o=await Promise.race([d(e,2e3).then((e=>e?0:-1)),d(t,2e3).then((e=>e?1:-1)),d(".pm-features",2e3).then((e=>e?2:-1))]);if(0===o)return await m(1e3),r(e);1===o?r(t):2===o&&(await d(".pm-features",1e4),r(".checked > span",!0),r(".chevron"))}catch(e){}return r(".sp_choice_type_SAVE_AND_EXIT")}},new class extends k{get hasSelfTest(){return this.apiAvailable}get isIntermediate(){return!1}get isCosmetic(){return!1}constructor(){super("consentmanager.net"),this.prehideSelectors=["#cmpbox,#cmpbox2"],this.apiAvailable=!1}async detectCmp(){return this.apiAvailable=await s('window.__cmp && typeof __cmp("getCMPData") === "object"'),!!this.apiAvailable||p("#cmpbox")}async detectPopup(){return this.apiAvailable?(await m(500),await s("!__cmp('consentStatus').userChoiceExists")):l("#cmpbox .cmpmore","any")}async optOut(){return await m(500),this.apiAvailable?await s("__cmp('setConsent', 0)"):!!r(".cmpboxbtnno")||(p(".cmpwelcomeprpsbtn")?(r(".cmpwelcomeprpsbtn > a[aria-checked=true]",!0),r(".cmpboxbtnsave"),!0):(r(".cmpboxbtncustom"),await d(".cmptblbox",2e3),r(".cmptdchoice > a[aria-checked=true]",!0),r(".cmpboxbtnyescustomchoices"),!0))}async optIn(){return this.apiAvailable?await s("__cmp('setConsent', 1)"):r(".cmpboxbtnyes")}async test(){if(this.apiAvailable)return await s("__cmp('consentStatus').userChoiceExists")}},new class extends k{constructor(){super("Evidon")}get hasSelfTest(){return!1}get isIntermediate(){return!1}get isCosmetic(){return!1}async detectCmp(){return p("#_evidon_banner")}async detectPopup(){return l("#_evidon_banner","any")}async optOut(){return r("#_evidon-decline-button")||(i(c(),["#evidon-prefdiag-overlay","#evidon-prefdiag-background"]),r("#_evidon-option-button"),await d("#evidon-prefdiag-overlay",5e3),r("#evidon-prefdiag-decline")),!0}async optIn(){return r("#_evidon-accept-button")}},new class extends k{constructor(){super("Onetrust"),this.prehideSelectors=["#onetrust-banner-sdk,#onetrust-consent-sdk,.onetrust-pc-dark-filter,.js-consent-banner"],this.runContext={urlPattern:"^(?!.*https://www\\.nba\\.com/)"}}get hasSelfTest(){return!0}get isIntermediate(){return!1}get isCosmetic(){return!1}async detectCmp(){return p("#onetrust-banner-sdk")}async detectPopup(){return l("#onetrust-banner-sdk","all")}async optOut(){return p("#onetrust-pc-btn-handler")?r("#onetrust-pc-btn-handler"):r(".ot-sdk-show-settings,button.js-cookie-settings"),await d("#onetrust-consent-sdk",2e3),await m(1e3),r("#onetrust-consent-sdk input.category-switch-handler:checked,.js-editor-toggle-state:checked",!0),await m(1e3),await d(".save-preference-btn-handler,.js-consent-save",2e3),r(".save-preference-btn-handler,.js-consent-save"),await n((()=>l("#onetrust-banner-sdk","none")),10,500),!0}async optIn(){return r("#onetrust-accept-btn-handler,.js-accept-cookies")}async test(){return await s("window.OnetrustActiveGroups.split(',').filter(s => s.length > 0).length <= 1")}},new class extends k{constructor(){super("Klaro"),this.prehideSelectors=[".klaro"],this.settingsOpen=!1}get hasSelfTest(){return!0}get isIntermediate(){return!1}get isCosmetic(){return!1}async detectCmp(){return p(".klaro > .cookie-modal")?(this.settingsOpen=!0,!0):p(".klaro > .cookie-notice")}async detectPopup(){return l(".klaro > .cookie-notice,.klaro > .cookie-modal","any")}async optOut(){return!!r(".klaro .cn-decline")||(this.settingsOpen||(r(".klaro .cn-learn-more"),await d(".klaro > .cookie-modal",2e3),this.settingsOpen=!0),!!r(".klaro .cn-decline")||(r(".cm-purpose:not(.cm-toggle-all) > input:not(.half-checked)",!0),r(".cm-btn-accept")))}async optIn(){return!!r(".klaro .cm-btn-accept-all")||(this.settingsOpen?(r(".cm-purpose:not(.cm-toggle-all) > input.half-checked",!0),r(".cm-btn-accept")):r(".klaro .cookie-notice .cm-btn-success"))}async test(){return await s("klaro.getManager().config.services.every(c => c.required || !klaro.getManager().consents[c.name])")}},new class extends k{constructor(){super("Uniconsent")}get prehideSelectors(){return[".unic",".modal:has(.unic)"]}get hasSelfTest(){return!0}get isIntermediate(){return!1}get isCosmetic(){return!1}async detectCmp(){return p(".unic .unic-box,.unic .unic-bar")}async detectPopup(){return l(".unic .unic-box,.unic .unic-bar","any")}async optOut(){if(await d(".unic button",1e3),document.querySelectorAll(".unic button").forEach((e=>{const t=e.textContent;(t.includes("Manage Options")||t.includes("Optionen verwalten"))&&e.click()})),await d(".unic input[type=checkbox]",1e3)){await d(".unic button",1e3),document.querySelectorAll(".unic input[type=checkbox]").forEach((e=>{e.checked&&e.click()}));for(const e of document.querySelectorAll(".unic button")){const t=e.textContent;for(const o of["Confirm Choices","Save Choices","Auswahl speichern"])if(t.includes(o))return e.click(),await m(500),!0}}return!1}async optIn(){return u(".unic #unic-agree")}async test(){return await m(1e3),!p(".unic .unic-box,.unic .unic-bar")}},new class extends k{constructor(){super("Conversant"),this.prehideSelectors=[".cmp-root"]}get hasSelfTest(){return!0}get isIntermediate(){return!1}get isCosmetic(){return!1}async detectCmp(){return p(".cmp-root .cmp-receptacle")}async detectPopup(){return l(".cmp-root .cmp-receptacle","any")}async optOut(){if(!await u(".cmp-main-button:not(.cmp-main-button--primary)"))return!1;if(!await d(".cmp-view-tab-tabs"))return!1;await u(".cmp-view-tab-tabs > :first-child"),await u(".cmp-view-tab-tabs > .cmp-view-tab--active:first-child");for(const e of Array.from(document.querySelectorAll(".cmp-accordion-item"))){e.querySelector(".cmp-accordion-item-title").click(),await n((()=>!!e.querySelector(".cmp-accordion-item-content.cmp-active")),10,50);const t=e.querySelector(".cmp-accordion-item-content.cmp-active");t.querySelectorAll(".cmp-toggle-actions .cmp-toggle-deny:not(.cmp-toggle-deny--active)").forEach((e=>e.click())),t.querySelectorAll(".cmp-toggle-actions .cmp-toggle-checkbox:not(.cmp-toggle-checkbox--active)").forEach((e=>e.click()))}return await r(".cmp-main-button:not(.cmp-main-button--primary)"),!0}async optIn(){return u(".cmp-main-button.cmp-main-button--primary")}async test(){return document.cookie.includes("cmp-data=0")}},new class extends k{constructor(){super("tiktok.com"),this.runContext={urlPattern:"tiktok"}}get hasSelfTest(){return!0}get isIntermediate(){return!1}get isCosmetic(){return!1}getShadowRoot(){const e=document.querySelector("tiktok-cookie-banner");return e?e.shadowRoot:null}async detectCmp(){return p("tiktok-cookie-banner")}async detectPopup(){return a(this.getShadowRoot().querySelector(".tiktok-cookie-banner"))}async optOut(){const e=this.getShadowRoot().querySelector(".button-wrapper button:first-child");return!!e&&(e.click(),!0)}async optIn(){const e=this.getShadowRoot().querySelector(".button-wrapper button:last-child");return!!e&&(e.click(),!0)}async test(){const e=document.cookie.match(/cookie-consent=([^;]+)/);if(!e)return!1;const t=JSON.parse(decodeURIComponent(e[1]));return Object.values(t).every((e=>"boolean"!=typeof e||!1===e))}},new class extends k{constructor(){super("airbnb"),this.runContext={urlPattern:"^https://(www\\.)?airbnb\\.[^/]+/"},this.prehideSelectors=["div[data-testid=main-cookies-banner-container]",'div:has(> div:first-child):has(> div:last-child):has(> section [data-testid="strictly-necessary-cookies"])']}get hasSelfTest(){return!0}get isIntermediate(){return!1}get isCosmetic(){return!1}async detectCmp(){return p("div[data-testid=main-cookies-banner-container]")}async detectPopup(){return l("div[data-testid=main-cookies-banner-container","any")}async optOut(){let e;for(await u("div[data-testid=main-cookies-banner-container] button._snbhip0");e=document.querySelector("[data-testid=modal-container] button[aria-checked=true]:not([disabled])");)e.click();return u("button[data-testid=save-btn]")}async optIn(){return u("div[data-testid=main-cookies-banner-container] button._148dgdpk")}async test(){return await n((()=>!!document.cookie.match("OptanonAlertBoxClosed")),20,200)}}];class _{static setBase(e){_.base=e}static findElement(e,t=null,o=!1){let c=null;return c=null!=t?Array.from(t.querySelectorAll(e.selector)):null!=_.base?Array.from(_.base.querySelectorAll(e.selector)):Array.from(document.querySelectorAll(e.selector)),null!=e.textFilter&&(c=c.filter((t=>{const o=t.textContent.toLowerCase();if(Array.isArray(e.textFilter)){let t=!1;for(const c of e.textFilter)if(-1!==o.indexOf(c.toLowerCase())){t=!0;break}return t}if(null!=e.textFilter)return-1!==o.indexOf(e.textFilter.toLowerCase())}))),null!=e.styleFilters&&(c=c.filter((t=>{const o=window.getComputedStyle(t);let c=!0;for(const t of e.styleFilters){const e=o[t.option];c=t.negated?c&&e!==t.value:c&&e===t.value}return c}))),null!=e.displayFilter&&(c=c.filter((t=>e.displayFilter?0!==t.offsetHeight:0===t.offsetHeight))),null!=e.iframeFilter&&(c=c.filter((()=>e.iframeFilter?window.location!==window.parent.location:window.location===window.parent.location))),null!=e.childFilter&&(c=c.filter((t=>{const o=_.base;_.setBase(t);const c=_.find(e.childFilter);return _.setBase(o),null!=c.target}))),o?c:(c.length>1&&console.warn("Multiple possible targets: ",c,e,t),c[0])}static find(e,t=!1){const o=[];if(null!=e.parent){const c=_.findElement(e.parent,null,t);if(null!=c){if(c instanceof Array)return c.forEach((c=>{const i=_.findElement(e.target,c,t);i instanceof Array?i.forEach((e=>{o.push({parent:c,target:e})})):o.push({parent:c,target:i})})),o;{const i=_.findElement(e.target,c,t);i instanceof Array?i.forEach((e=>{o.push({parent:c,target:e})})):o.push({parent:c,target:i})}}}else{const c=_.findElement(e.target,null,t);c instanceof Array?c.forEach((e=>{o.push({parent:null,target:e})})):o.push({parent:null,target:c})}return 0===o.length&&o.push({parent:null,target:null}),t?o:(1!==o.length&&console.warn("Multiple results found, even though multiple false",o),o[0])}}function v(e){const t=_.find(e);return"css"===e.type?!!t.target:"checkbox"===e.type?!!t.target&&t.target.checked:void 0}async function f(e,t){switch(e.type){case"click":return async function(e){const t=_.find(e);return null!=t.target&&t.target.click(),C(0)}(e);case"list":return async function(e,t){for(const o of e.actions)await f(o,t)}(e,t);case"consent":return async function(e,t){for(const o of e.consents){const e=-1!==t.indexOf(o.type);o.matcher&&o.toggleAction?v(o.matcher)!==e&&await f(o.toggleAction):e?await f(o.trueAction):await f(o.falseAction)}}(e,t);case"ifcss":return async function(e,t){_.find(e).target?e.falseAction&&await f(e.falseAction,t):e.trueAction&&await f(e.trueAction,t)}(e,t);case"waitcss":return async function(e){await new Promise((t=>{let o=e.retries||10;const c=e.waitTime||250,i=()=>{const n=_.find(e);(e.negated&&n.target||!e.negated&&!n.target)&&o>0?(o-=1,setTimeout(i,c)):t()};i()}))}(e);case"foreach":return async function(e,t){const o=_.find(e,!0),c=_.base;for(const c of o)c.target&&(_.setBase(c.target),await f(e.action,t));_.setBase(c)}(e,t);case"hide":return async function(e){const t=_.find(e);t.target&&t.target.classList.add("Autoconsent-Hidden")}(e);case"slide":return async function(e){const t=_.find(e),o=_.find(e.dragTarget);if(t.target){const e=t.target.getBoundingClientRect(),c=o.target.getBoundingClientRect();let i=c.top-e.top,n=c.left-e.left;"y"===this.config.axis.toLowerCase()&&(n=0),"x"===this.config.axis.toLowerCase()&&(i=0);const a=window.screenX+e.left+e.width/2,s=window.screenY+e.top+e.height/2,r=e.left+e.width/2,p=e.top+e.height/2,l=document.createEvent("MouseEvents");l.initMouseEvent("mousedown",!0,!0,window,0,a,s,r,p,!1,!1,!1,!1,0,t.target);const d=document.createEvent("MouseEvents");d.initMouseEvent("mousemove",!0,!0,window,0,a+n,s+i,r+n,p+i,!1,!1,!1,!1,0,t.target);const u=document.createEvent("MouseEvents");u.initMouseEvent("mouseup",!0,!0,window,0,a+n,s+i,r+n,p+i,!1,!1,!1,!1,0,t.target),t.target.dispatchEvent(l),await this.waitTimeout(10),t.target.dispatchEvent(d),await this.waitTimeout(10),t.target.dispatchEvent(u)}}(e);case"close":return async function(){window.close()}();case"wait":return async function(e){await C(e.waitTime)}(e);case"eval":return async function(e){return console.log("eval!",e.code),new Promise((t=>{try{e.async?(window.eval(e.code),setTimeout((()=>{t(window.eval("window.__consentCheckResult"))}),e.timeout||250)):t(window.eval(e.code))}catch(o){console.warn("eval error",o,e.code),t(!1)}}))}(e);default:throw"Unknown action type: "+e.type}}function C(e){return new Promise((t=>{setTimeout((()=>{t()}),e)}))}_.base=null;class x{constructor(e,t){this.name=e,this.config=t,this.methods=new Map,this.runContext=h,this.isCosmetic=!1,t.methods.forEach((e=>{e.action&&this.methods.set(e.name,e.action)})),this.hasSelfTest=!1}get isIntermediate(){return!1}checkRunContext(){return!0}async detectCmp(){return this.config.detectors.map((e=>v(e.presentMatcher))).some((e=>!!e))}async detectPopup(){return this.config.detectors.map((e=>v(e.showingMatcher))).some((e=>!!e))}async executeAction(e,t){return!this.methods.has(e)||f(this.methods.get(e),t)}async optOut(){return await this.executeAction("HIDE_CMP"),await this.executeAction("OPEN_OPTIONS"),await this.executeAction("HIDE_CMP"),await this.executeAction("DO_CONSENT",[]),await this.executeAction("SAVE_CONSENT"),!0}async optIn(){return await this.executeAction("HIDE_CMP"),await this.executeAction("OPEN_OPTIONS"),await this.executeAction("HIDE_CMP"),await this.executeAction("DO_CONSENT",["D","A","B","E","F","X"]),await this.executeAction("SAVE_CONSENT"),!0}async openCmp(){return await this.executeAction("HIDE_CMP"),await this.executeAction("OPEN_OPTIONS"),!0}async test(){return!0}}var S=[{name:"192.com",detectCmp:[{exists:".ont-cookies"}],detectPopup:[{visible:".ont-cookies"}],optIn:[{click:".ont-btn-main.ont-cookies-btn.js-ont-btn-ok2"}],optOut:[{click:".ont-cookes-btn-manage"},{click:".ont-btn-main.ont-cookies-btn.js-ont-btn-choose"}],test:[{eval:"document.cookie.includes('CC_ADVERTISING=NO') && document.cookie.includes('CC_ANALYTICS=NO')"}]},{name:"1password-com",cosmetic:!0,prehideSelectors:['footer #footer-root [aria-label="Cookie Consent"]'],detectCmp:[{exists:'footer #footer-root [aria-label="Cookie Consent"]'}],detectPopup:[{visible:'footer #footer-root [aria-label="Cookie Consent"]'}],optIn:[{click:'footer #footer-root [aria-label="Cookie Consent"] button'}],optOut:[{hide:['footer #footer-root [aria-label="Cookie Consent"]']}]},{name:"Adroll",prehideSelectors:["#adroll_consent_container"],detectCmp:[{exists:"#adroll_consent_container"}],detectPopup:[{visible:"#adroll_consent_container"}],optIn:[{waitForThenClick:"#adroll_consent_accept"}],optOut:[{waitForThenClick:"#adroll_consent_reject"}],test:[{eval:"!document.cookie.includes('__adroll_fpc')"}]},{name:"affinity.serif.com",detectCmp:[{exists:".c-cookie-banner button[data-qa='allow-all-cookies']"}],detectPopup:[{visible:".c-cookie-banner"}],optIn:[{click:'button[data-qa="allow-all-cookies"]'}],optOut:[{click:'button[data-qa="manage-cookies"]'},{waitFor:'.c-cookie-banner ~ [role="dialog"]'},{waitForThenClick:'.c-cookie-banner ~ [role="dialog"] input[type="checkbox"][value="true"]',all:!0},{click:'.c-cookie-banner ~ [role="dialog"] .c-modal__action button'}],test:[{wait:500},{eval:"document.cookie.includes('serif_manage_cookies_viewed') && !document.cookie.includes('serif_allow_analytics')"}]},{name:"agolde.com",cosmetic:!0,prehideSelectors:["#modal-1 div[data-micromodal-close]"],detectCmp:[{exists:"#modal-1 div[aria-labelledby=modal-1-title]"}],detectPopup:[{exists:"#modal-1 div[data-micromodal-close]"}],optIn:[{click:'button[aria-label="Close modal"]'}],optOut:[{hide:["#modal-1 div[data-micromodal-close]"]}]},{name:"altium.com",cosmetic:!0,prehideSelectors:[".altium-privacy-bar"],detectCmp:[{exists:".altium-privacy-bar"}],detectPopup:[{exists:".altium-privacy-bar"}],optIn:[{click:"a.altium-privacy-bar__btn"}],optOut:[{hide:[".altium-privacy-bar"]}]},{name:"amazon.com",prehideSelectors:['span[data-action="sp-cc"][data-sp-cc*="rejectAllAction"]'],detectCmp:[{exists:'span[data-action="sp-cc"][data-sp-cc*="rejectAllAction"]'}],detectPopup:[{visible:'span[data-action="sp-cc"][data-sp-cc*="rejectAllAction"]'}],optIn:[{waitForVisible:"#sp-cc-accept"},{wait:500},{click:"#sp-cc-accept"}],optOut:[{waitForVisible:"#sp-cc-rejectall-link"},{wait:500},{click:"#sp-cc-rejectall-link"}]},{name:"aquasana.com",cosmetic:!0,prehideSelectors:["#consent-tracking"],detectCmp:[{exists:"#consent-tracking"}],detectPopup:[{exists:"#consent-tracking"}],optIn:[{click:"#accept_consent"}],optOut:[{hide:["#consent-tracking"]}]},{name:"arzt-auskunft.de",prehideSelectors:["#cookiescript_injected"],detectCmp:[{exists:"#cookiescript_injected"}],detectPopup:[{visible:"#cookiescript_injected"}],optOut:[{click:"#cookiescript_reject"}],optIn:[{click:"#cookiescript_accept"}]},{name:"athlinks-com",runContext:{urlPattern:"^https://(www\\.)?athlinks\\.com/"},cosmetic:!0,prehideSelectors:["#footer-container ~ div"],detectCmp:[{exists:"#footer-container ~ div"}],detectPopup:[{visible:"#footer-container > div"}],optIn:[{click:"#footer-container ~ div button"}],optOut:[{hide:["#footer-container ~ div"]}]},{name:"ausopen.com",cosmetic:!0,detectCmp:[{exists:".gdpr-popup__message"}],detectPopup:[{visible:".gdpr-popup__message"}],optOut:[{hide:[".gdpr-popup__message"]}],optIn:[{click:".gdpr-popup__message button"}]},{name:"automattic-cmp-optout",prehideSelectors:['form[class*="cookie-banner"][method="post"]'],detectCmp:[{exists:'form[class*="cookie-banner"][method="post"]'}],detectPopup:[{visible:'form[class*="cookie-banner"][method="post"]'}],optIn:[{click:'a[class*="accept-all-button"]'}],optOut:[{click:'form[class*="cookie-banner"] div[class*="simple-options"] a[class*="customize-button"]'},{waitForThenClick:"input[type=checkbox][checked]:not([disabled])",all:!0},{click:'a[class*="accept-selection-button"]'}]},{name:"aws.amazon.com",prehideSelectors:["#awsccc-cb-content","#awsccc-cs-container","#awsccc-cs-modalOverlay","#awsccc-cs-container-inner"],detectCmp:[{exists:"#awsccc-cb-content"}],detectPopup:[{visible:"#awsccc-cb-content"}],optIn:[{click:"button[data-id=awsccc-cb-btn-accept"}],optOut:[{click:"button[data-id=awsccc-cb-btn-customize]"},{waitFor:"input[aria-checked]"},{click:"input[aria-checked=true]",all:!0,optional:!0},{click:"button[data-id=awsccc-cs-btn-save]"}]},{name:"axeptio",prehideSelectors:[".axeptio_widget"],detectCmp:[{exists:".axeptio_widget"}],detectPopup:[{visible:".axeptio_widget"}],optIn:[{waitFor:".axeptio-widget--open"},{click:"button#axeptio_btn_acceptAll"}],optOut:[{waitFor:".axeptio-widget--open"},{click:"button#axeptio_btn_dismiss"}],test:[{eval:"document.cookie.includes('axeptio_authorized_vendors=%2C%2C')"}]},{name:"baden-wuerttemberg.de",prehideSelectors:[".cookie-alert.t-dark"],cosmetic:!0,detectCmp:[{exists:".cookie-alert.t-dark"}],detectPopup:[{visible:".cookie-alert.t-dark"}],optIn:[{click:".cookie-alert__form input:not([disabled]):not([checked])"},{click:".cookie-alert__button button"}],optOut:[{hide:[".cookie-alert.t-dark"]}]},{name:"bbb.org",runContext:{urlPattern:"^https://www\\.bbb\\.org/"},cosmetic:!0,prehideSelectors:['div[aria-label="use of cookies on bbb.org"]'],detectCmp:[{exists:'div[aria-label="use of cookies on bbb.org"]'}],detectPopup:[{visible:'div[aria-label="use of cookies on bbb.org"]'}],optIn:[{click:'div[aria-label="use of cookies on bbb.org"] button.bds-button-unstyled span.visually-hidden'}],optOut:[{hide:['div[aria-label="use of cookies on bbb.org"]']}]},{name:"bing.com",prehideSelectors:["#bnp_container"],detectCmp:[{exists:"#bnp_cookie_banner"}],detectPopup:[{visible:"#bnp_cookie_banner"}],optIn:[{click:"#bnp_btn_accept"}],optOut:[{click:"#bnp_btn_preference"},{click:"#mcp_savesettings"}],test:[{eval:"document.cookie.includes('AL=0') && document.cookie.includes('AD=0') && document.cookie.includes('SM=0')"}]},{name:"borlabs",detectCmp:[{exists:"._brlbs-block-content"}],detectPopup:[{visible:"._brlbs-bar-wrap,._brlbs-box-wrap"}],optIn:[{click:"a[data-cookie-accept-all]"}],optOut:[{click:"a[data-cookie-individual]"},{waitForVisible:".cookie-preference"},{click:"input[data-borlabs-cookie-checkbox]:checked",all:!0,optional:!0},{click:"#CookiePrefSave"},{wait:500}],prehideSelectors:["#BorlabsCookieBox"],test:[{eval:"!JSON.parse(decodeURIComponent(document.cookie.split(';').find(c => c.indexOf('borlabs-cookie') !== -1).split('=', 2)[1])).consents.statistics"}]},{name:"bundesregierung.de",prehideSelectors:[".bpa-cookie-banner"],detectCmp:[{exists:".bpa-cookie-banner"}],detectPopup:[{visible:".bpa-cookie-banner .bpa-module-full-hero"}],optIn:[{click:".bpa-accept-all-button"}],optOut:[{wait:500,comment:"click is not immediately recognized"},{waitForThenClick:".bpa-close-button"}],test:[{eval:"document.cookie.match('cookie-allow-tracking=0')"}]},{name:"burpee.com",cosmetic:!0,prehideSelectors:["#notice-cookie-block"],detectCmp:[{exists:"#notice-cookie-block"}],detectPopup:[{exists:"#html-body #notice-cookie-block"}],optIn:[{click:"#btn-cookie-allow"}],optOut:[{hide:["#html-body #notice-cookie-block"]}]},{name:"canva.com",prehideSelectors:['div[role="dialog"] a[data-anchor-id="cookie-policy"]'],detectCmp:[{exists:'div[role="dialog"] a[data-anchor-id="cookie-policy"]'}],detectPopup:[{exists:'div[role="dialog"] a[data-anchor-id="cookie-policy"]'}],optIn:[{click:'div[role="dialog"] button:nth-child(1)'}],optOut:[{if:{exists:'div[role="dialog"] button:nth-child(3)'},then:[{click:'div[role="dialog"] button:nth-child(2)'}],else:[{click:'div[role="dialog"] button:nth-child(2)'},{waitFor:'div[role="dialog"] a[data-anchor-id="privacy-policy"]'},{click:'div[role="dialog"] button:nth-child(2)'},{click:'div[role="dialog"] div:last-child button:only-child'}]}],test:[{eval:"!document.cookie.includes('gtm_fpc_engagement_event')"}]},{name:"cc_banner",cosmetic:!0,prehideSelectors:[".cc_banner-wrapper"],detectCmp:[{exists:".cc_banner-wrapper"}],detectPopup:[{visible:".cc_banner"}],optIn:[{click:".cc_btn_accept_all"}],optOut:[{hide:[".cc_banner-wrapper"]}]},{comment:"https://www.civicuk.com/cookie-control/",name:"civic-cookie-control",prehideSelectors:["#ccc-module,#ccc-overlay"],detectCmp:[{exists:"#ccc-module"}],detectPopup:[{visible:"#ccc"},{visible:"#ccc-module"}],optOut:[{click:"#ccc-reject-settings"}],optIn:[{click:"#ccc-recommended-settings"}]},{name:"click.io",prehideSelectors:["#cl-consent"],detectCmp:[{exists:"#cl-consent"}],detectPopup:[{visible:"#cl-consent"}],optIn:[{waitForThenClick:'#cl-consent [data-role="b_agree"]'}],optOut:[{waitFor:'#cl-consent [data-role="b_options"]'},{wait:500},{click:'#cl-consent [data-role="b_options"]'},{waitFor:'.cl-consent-popup.cl-consent-visible [data-role="alloff"]'},{click:'.cl-consent-popup.cl-consent-visible [data-role="alloff"]',all:!0},{click:'[data-role="b_save"]'}],test:[{eval:"document.cookie.includes('__lxG__consent__v2_daisybit=')",comment:"TODO: this only checks if we interacted at all"}]},{name:"clinch",intermediate:!1,runContext:{frame:!1,main:!0},prehideSelectors:[".consent-modal[role=dialog]"],detectCmp:[{exists:".consent-modal[role=dialog]"}],detectPopup:[{visible:".consent-modal[role=dialog]"}],optIn:[{click:"#consent_agree"}],optOut:[{click:"#manage_cookie_preferences"},{click:"#cookie_consent_preferences input:checked",all:!0,optional:!0},{click:"#consent_save"}],test:[{eval:"document.cookie.includes('ctc_rejected=1')"}]},{name:"clustrmaps.com",runContext:{urlPattern:"^https://(www\\.)?clustrmaps\\.com/"},cosmetic:!0,prehideSelectors:["#gdpr-cookie-message"],detectCmp:[{exists:"#gdpr-cookie-message"}],detectPopup:[{visible:"#gdpr-cookie-message"}],optIn:[{click:"button#gdpr-cookie-accept"}],optOut:[{hide:["#gdpr-cookie-message"]}]},{name:"coinbase",intermediate:!1,runContext:{frame:!0,main:!0,urlPattern:"^https://(www|help)\\.coinbase\\.com"},prehideSelectors:[],detectCmp:[{exists:"div[class^=CookieBannerContent__Container]"}],detectPopup:[{visible:"div[class^=CookieBannerContent__Container]"}],optIn:[{click:"div[class^=CookieBannerContent__CTA] :nth-last-child(1)"}],optOut:[{click:"button[class^=CookieBannerContent__Settings]"},{click:"div[class^=CookiePreferencesModal__CategoryContainer] input:checked",all:!0,optional:!0},{click:"div[class^=CookiePreferencesModal__ButtonContainer] > button"}],test:[{eval:"JSON.parse(decodeURIComponent(document.cookie.match(/cm_(eu|default)_preferences=([0-9a-zA-Z\\{\\}\\[\\]%:]*);?/)[2])).consent.length <= 1"}]},{name:"Complianz banner",prehideSelectors:["#cmplz-cookiebanner-container"],detectCmp:[{exists:"#cmplz-cookiebanner-container .cmplz-cookiebanner"}],detectPopup:[{visible:"#cmplz-cookiebanner-container .cmplz-cookiebanner",check:"any"}],optIn:[{waitForThenClick:".cmplz-cookiebanner .cmplz-accept"}],optOut:[{waitForThenClick:".cmplz-cookiebanner .cmplz-deny"}],test:[{eval:"document.cookie.includes('cmplz_banner-status=dismissed')"}]},{name:"Complianz categories",prehideSelectors:['.cc-type-categories[aria-describedby="cookieconsent:desc"]'],detectCmp:[{exists:'.cc-type-categories[aria-describedby="cookieconsent:desc"]'}],detectPopup:[{visible:'.cc-type-categories[aria-describedby="cookieconsent:desc"]'}],optIn:[{click:".cc-accept-all",optional:!0},{click:".cc-allow",optional:!0},{click:".cc-dismiss",optional:!0}],optOut:[{click:".cc-dismiss"}],test:[{eval:"!!document.cookie.match(/cmplz_[^=]+=deny/)"}]},{name:"Complianz notice",prehideSelectors:['.cc-type-info[aria-describedby="cookieconsent:desc"]'],cosmetic:!0,detectCmp:[{exists:'.cc-type-info[aria-describedby="cookieconsent:desc"]'}],detectPopup:[{visible:'.cc-type-info[aria-describedby="cookieconsent:desc"]'}],optIn:[{click:".cc-accept-all",optional:!0},{click:".cc-allow",optional:!0},{click:".cc-dismiss",optional:!0}],optOut:[{hide:['[aria-describedby="cookieconsent:desc"]']}]},{name:"Complianz optin",prehideSelectors:['.cc-type-opt-in[aria-describedby="cookieconsent:desc"]'],detectCmp:[{exists:'.cc-type-opt-in[aria-describedby="cookieconsent:desc"]'}],detectPopup:[{visible:'.cc-type-opt-in[aria-describedby="cookieconsent:desc"]'}],optIn:[{click:".cc-accept-all",optional:!0},{click:".cc-allow",optional:!0},{click:".cc-dismiss",optional:!0}],optOut:[{click:".cc-settings"},{waitForVisible:'[aria-label="cookies preferences popup"]'},{click:'[aria-label="cookies preferences popup"] input[type=checkbox]:not([disabled]):checked',all:!0,optional:!0},{click:'[aria-label="cookies preferences popup"] [aria-label="Accept Selected"], [aria-label="cookies preferences popup"] [aria-label="Save my choice"], .cc-btn-accept-selected, .cc-deny',optional:!0}],test:[{eval:"!!document.cookie.match(/cookieconsent_preferences_disabled=[^;]+/)"}]},{name:"cookie-law-info",prehideSelectors:["#cookie-law-info-bar"],detectCmp:[{exists:"#cookie-law-info-bar"}],detectPopup:[{visible:"#cookie-law-info-bar"}],optIn:[{click:'[data-cli_action="accept_all"]'}],optOut:[{hide:["#cookie-law-info-bar"]},{eval:"CLI.disableAllCookies() || CLI.reject_close() || true"}],test:[{eval:"document.cookie.indexOf('cookielawinfo-checkbox-non-necessary=yes') === -1"}]},{name:"cookie-notice",prehideSelectors:["#cookie-notice"],cosmetic:!0,detectCmp:[{visible:"#cookie-notice .cookie-notice-container"}],detectPopup:[{visible:"#cookie-notice"}],optIn:[{click:"#cn-accept-cookie"}],optOut:[{hide:["#cookie-notice"]}]},{name:"cookiealert",intermediate:!1,prehideSelectors:[],runContext:{frame:!0,main:!0},detectCmp:[{exists:".cookie-alert-extended"}],detectPopup:[{visible:".cookie-alert-extended-modal"}],optIn:[{click:"button[data-controller='cookie-alert/extended/button/accept']"},{eval:"document.querySelector('body').removeAttribute('style') || true"}],optOut:[{click:"a[data-controller='cookie-alert/extended/detail-link']"},{click:".cookie-alert-configuration-input:checked",all:!0,optional:!0},{click:"button[data-controller='cookie-alert/extended/button/configuration']"},{eval:"document.querySelector('body').removeAttribute('style') || true"}],test:[{eval:"window.CookieConsent.declined === true"}]},{name:"cookiefirst.com",prehideSelectors:["#cookiefirst-root"],detectCmp:[{exists:"#cookiefirst-root"}],detectPopup:[{visible:"#cookiefirst-root"}],optIn:[{click:"button[data-cookiefirst-action=accept]"}],optOut:[{if:{exists:"button[data-cookiefirst-action=adjust]"},then:[{click:"button[data-cookiefirst-action=adjust]"},{waitForVisible:"[data-cookiefirst-widget=modal]",timeout:1e3},{eval:"document.querySelectorAll('button[data-cookiefirst-accent-color=true][role=checkbox]:not([disabled])').forEach(i => (i.getAttribute('aria-checked') == 'true' && i.click())) || true"},{wait:1e3},{click:"button[data-cookiefirst-action=save]"}],else:[{click:"button[data-cookiefirst-action=reject]"}]}],test:[{eval:"let o = JSON.parse(decodeURIComponent(document.cookie.split(';').find(c => c.indexOf('cookiefirst') !== -1).trim()).split('=')[1]); (o.performance === false && o.functional === false && o.advertising === false) ? true : false"}]},{name:"Cookie Information Banner",prehideSelectors:["#cookie-information-template-wrapper"],detectCmp:[{exists:"#cookie-information-template-wrapper"}],detectPopup:[{visible:"#cookie-information-template-wrapper"}],optIn:[{eval:"CookieInformation.submitAllCategories() || true"}],optOut:[{hide:["#cookie-information-template-wrapper"],comment:"some templates don't hide the banner automatically"},{eval:"CookieInformation.declineAllCategories() || true"}],test:[{eval:"document.cookie.includes('CookieInformationConsent=')"}]},{name:"corona-in-zahlen.de",prehideSelectors:[".cookiealert"],detectCmp:[{exists:".cookiealert"}],detectPopup:[{visible:".cookiealert"}],optOut:[{click:".configurecookies"},{click:".confirmcookies"}],optIn:[{click:".acceptcookies"}]},{name:"crossfit-com",cosmetic:!0,prehideSelectors:['body #modal > div > div[class^="_wrapper_"]'],detectCmp:[{exists:'body #modal > div > div[class^="_wrapper_"]'}],detectPopup:[{visible:'body #modal > div > div[class^="_wrapper_"]'}],optIn:[{click:'button[aria-label="accept cookie policy"]'}],optOut:[{hide:['body #modal > div > div[class^="_wrapper_"]']}]},{name:"dailymotion-us",cosmetic:!0,prehideSelectors:['div[class*="CookiePopup__desktopContainer"]:has(div[class*="CookiePopup"])'],detectCmp:[{exists:'div[class*="CookiePopup__desktopContainer"]'}],detectPopup:[{visible:'div[class*="CookiePopup__desktopContainer"]'}],optIn:[{click:'div[class*="CookiePopup__desktopContainer"] > button > span'}],optOut:[{hide:['div[class*="CookiePopup__desktopContainer"]']}]},{name:"dailymotion.com",runContext:{urlPattern:"^https://(www\\.)?dailymotion\\.com/"},prehideSelectors:['div[class*="Overlay__container"]:has(div[class*="TCF2Popup"])'],detectCmp:[{exists:'div[class*="TCF2Popup"]'}],detectPopup:[{visible:'[class*="TCF2Popup"] a[href^="https://www.dailymotion.com/legal/cookiemanagement"]'}],optIn:[{waitForThenClick:'button[class*="TCF2Popup__button"]:not([class*="TCF2Popup__personalize"])'}],optOut:[{waitForThenClick:'button[class*="TCF2ContinueWithoutAcceptingButton"]'}],test:[{eval:"!!document.cookie.match('dm-euconsent-v2')"}]},{name:"deepl.com",prehideSelectors:[".dl_cookieBanner_container"],detectCmp:[{exists:".dl_cookieBanner_container"}],detectPopup:[{visible:".dl_cookieBanner_container"}],optOut:[{click:".dl_cookieBanner--buttonSelected"}],optIn:[{click:".dl_cookieBanner--buttonAll"}]},{name:"delta.com",runContext:{urlPattern:"^https://www\\.delta\\.com/"},cosmetic:!0,prehideSelectors:["ngc-cookie-banner"],detectCmp:[{exists:"div.cookie-footer-container"}],detectPopup:[{visible:"div.cookie-footer-container"}],optIn:[{click:" button.cookie-close-icon"}],optOut:[{hide:["div.cookie-footer-container"]}]},{name:"dmgmedia-us",prehideSelectors:["#mol-ads-cmp-iframe, div.mol-ads-cmp > form > div"],detectCmp:[{exists:"div.mol-ads-cmp > form > div"}],detectPopup:[{waitForVisible:"div.mol-ads-cmp > form > div"}],optIn:[{waitForThenClick:"button.mol-ads-cmp--btn-primary"}],optOut:[{waitForThenClick:"div.mol-ads-ccpa--message > u > a"},{waitForVisible:".mol-ads-cmp--modal-dialog"},{waitForThenClick:"a.mol-ads-cmp-footer-privacy"},{waitForThenClick:"button.mol-ads-cmp--btn-secondary"}]},{name:"dmgmedia",prehideSelectors:['[data-project="mol-fe-cmp"]'],detectCmp:[{exists:'[data-project="mol-fe-cmp"]'}],detectPopup:[{visible:'[data-project="mol-fe-cmp"]'}],optIn:[{waitForThenClick:'[data-project="mol-fe-cmp"] button[class*=primary]'}],optOut:[{waitForThenClick:'[data-project="mol-fe-cmp"] button[class*=basic]'},{waitForVisible:'[data-project="mol-fe-cmp"] div[class*="tabContent"]'},{waitForThenClick:'[data-project="mol-fe-cmp"] div[class*="toggle"][class*="enabled"]',all:!0},{waitForThenClick:'[data-project="mol-fe-cmp"] button[class*=white]'}]},{name:"Drupal",detectCmp:[{exists:"#drupalorg-crosssite-gdpr"}],detectPopup:[{visible:"#drupalorg-crosssite-gdpr"}],optOut:[{click:".no"}],optIn:[{click:".yes"}]},{name:"WP DSGVO Tools",link:"https://wordpress.org/plugins/shapepress-dsgvo/",prehideSelectors:[".sp-dsgvo"],cosmetic:!0,detectCmp:[{exists:".sp-dsgvo.sp-dsgvo-popup-overlay"}],detectPopup:[{visible:".sp-dsgvo.sp-dsgvo-popup-overlay",check:"any"}],optIn:[{click:".sp-dsgvo-privacy-btn-accept-all",all:!0}],optOut:[{hide:[".sp-dsgvo.sp-dsgvo-popup-overlay"]}],test:[{eval:"!document.cookie.includes('sp_dsgvo_cookie_settings')"}]},{name:"dunelm.com",prehideSelectors:["div[data-testid=cookie-consent-modal-backdrop]"],detectCmp:[{exists:"div[data-testid=cookie-consent-message-contents]"}],detectPopup:[{visible:"div[data-testid=cookie-consent-message-contents]"}],optIn:[{click:'[data-testid="cookie-consent-allow-all"]'}],optOut:[{click:"button[data-testid=cookie-consent-adjust-settings]"},{click:"button[data-testid=cookie-consent-preferences-save]"}],test:[{eval:"document.cookie.includes('cc_functional=0') && document.cookie.includes('cc_targeting=0')"}]},{name:"etsy",prehideSelectors:["#gdpr-single-choice-overlay","#gdpr-privacy-settings"],detectCmp:[{exists:"#gdpr-single-choice-overlay"}],detectPopup:[{visible:"#gdpr-single-choice-overlay"}],optOut:[{click:"button[data-gdpr-open-full-settings]"},{waitForVisible:".gdpr-overlay-body input",timeout:3e3},{wait:1e3},{eval:'document.querySelectorAll(".gdpr-overlay-body input").forEach(toggle => { toggle.checked = false; }) || true'},{eval:"document.querySelector('.gdpr-overlay-view button[data-wt-overlay-close]').click() || true"}],optIn:[{click:"button[data-gdpr-single-choice-accept]"}]},{name:"eu-cookie-compliance-banner",detectCmp:[{exists:".eu-cookie-compliance-banner-info"}],detectPopup:[{exists:".eu-cookie-compliance-popup-open"}],optIn:[{click:".agree-button"}],optOut:[{click:".decline-button,.eu-cookie-compliance-save-preferences-button",optional:!0},{hide:[".eu-cookie-compliance-banner-info","#sliding-popup"]}],test:[{eval:"document.cookie.indexOf('cookie-agreed=2') === -1"}]},{name:"EU Cookie Law",prehideSelectors:[".pea_cook_wrapper,.pea_cook_more_info_popover"],cosmetic:!0,detectCmp:[{exists:".pea_cook_wrapper"}],detectPopup:[{wait:500},{visible:".pea_cook_wrapper"}],optIn:[{click:"#pea_cook_btn"}],optOut:[{hide:[".pea_cook_wrapper"]}],test:[{eval:"!document.cookie.includes('euCookie')"}]},{name:"EZoic",prehideSelectors:["#ez-cookie-dialog-wrapper"],detectCmp:[{exists:"#ez-cookie-dialog-wrapper"}],detectPopup:[{visible:"#ez-cookie-dialog-wrapper"}],optIn:[{click:"#ez-accept-all",optional:!0},{eval:"ezCMP.handleAcceptAllClick()",optional:!0}],optOut:[{wait:500},{click:"#ez-manage-settings"},{waitFor:"#ez-cookie-dialog input[type=checkbox]"},{click:"#ez-cookie-dialog input[type=checkbox][checked]",all:!0},{click:"#ez-save-settings"}],test:[{eval:"!!document.cookie.match(/ezCMPCookieConsent=[^;]+\\|2=0\\|3=0\\|4=0/)"}]},{name:"facebook",runContext:{urlPattern:"^https://([a-z0-9-]+\\.)?facebook\\.com/"},prehideSelectors:['div[data-testid="cookie-policy-manage-dialog"]'],detectCmp:[{exists:'div[data-testid="cookie-policy-manage-dialog"]'}],detectPopup:[{visible:'div[data-testid="cookie-policy-manage-dialog"]'}],optIn:[{waitForThenClick:'button[data-cookiebanner="accept_button"]'},{waitForVisible:'div[data-testid="cookie-policy-manage-dialog"]',check:"none"}],optOut:[{waitForThenClick:'button[data-cookiebanner="accept_only_essential_button"]'},{waitForVisible:'div[data-testid="cookie-policy-manage-dialog"]',check:"none"}]},{name:"funding-choices",prehideSelectors:[".fc-consent-root,.fc-dialog-container,.fc-dialog-overlay,.fc-dialog-content"],detectCmp:[{exists:".fc-consent-root"}],detectPopup:[{exists:".fc-dialog-container"}],optOut:[{click:".fc-cta-do-not-consent,.fc-cta-manage-options"},{click:".fc-preference-consent:checked,.fc-preference-legitimate-interest:checked",all:!0,optional:!0},{click:".fc-confirm-choices",optional:!0}],optIn:[{click:".fc-cta-consent"}]},{name:"geeks-for-geeks",runContext:{urlPattern:"^https://www\\.geeksforgeeks\\.org/"},cosmetic:!0,prehideSelectors:[".cookie-consent"],detectCmp:[{exists:".cookie-consent"}],detectPopup:[{visible:".cookie-consent"}],optIn:[{click:".cookie-consent button.consent-btn"}],optOut:[{hide:[".cookie-consent"]}]},{name:"generic-cosmetic",cosmetic:!0,prehideSelectors:["#js-cookie-banner,.js-cookie-banner,.cookie-banner,#cookie-banner"],detectCmp:[{exists:"#js-cookie-banner,.js-cookie-banner,.cookie-banner,#cookie-banner"}],detectPopup:[{visible:"#js-cookie-banner,.js-cookie-banner,.cookie-banner,#cookie-banner"}],optIn:[],optOut:[{hide:["#js-cookie-banner,.js-cookie-banner,.cookie-banner,#cookie-banner"]}]},{name:"google-consent-standalone",prehideSelectors:[],detectCmp:[{exists:'a[href^="https://policies.google.com/technologies/cookies"'},{exists:'form[action^="https://consent."][action$=".com/save"]'}],detectPopup:[{visible:'a[href^="https://policies.google.com/technologies/cookies"'}],optIn:[{waitForThenClick:'form[action^="https://consent."][action$=".com/save"]:has(input[name=set_eom][value=false]) button'}],optOut:[{waitForThenClick:'form[action^="https://consent."][action$=".com/save"]:has(input[name=set_eom][value=true]) button'}]},{name:"google.com",prehideSelectors:[".HTjtHe#xe7COe"],detectCmp:[{exists:".HTjtHe#xe7COe"},{exists:'.HTjtHe#xe7COe a[href^="https://policies.google.com/technologies/cookies"]'}],detectPopup:[{visible:".HTjtHe#xe7COe button#W0wltc"}],optIn:[{waitForThenClick:".HTjtHe#xe7COe button#L2AGLb"}],optOut:[{waitForThenClick:".HTjtHe#xe7COe button#W0wltc"}],test:[{eval:"!!document.cookie.match(/SOCS=CAE/)"}]},{name:"gov.uk",detectCmp:[{exists:"#global-cookie-message"}],detectPopup:[{exists:"#global-cookie-message"}],optIn:[{click:"button[data-accept-cookies=true]"}],optOut:[{click:"button[data-reject-cookies=true],#reject-cookies"},{click:"button[data-hide-cookie-banner=true],#hide-cookie-decision"}]},{name:"healthline-media",prehideSelectors:["#modal-host > div.no-hash > div.window-wrapper"],detectCmp:[{exists:"#modal-host > div.no-hash > div.window-wrapper, div[data-testid=qualtrics-container]"}],detectPopup:[{exists:"#modal-host > div.no-hash > div.window-wrapper, div[data-testid=qualtrics-container]"}],optIn:[{click:"#modal-host > div.no-hash > div.window-wrapper > div:last-child button"}],optOut:[{if:{exists:'#modal-host > div.no-hash > div.window-wrapper > div:last-child a[href="/privacy-settings"]'},then:[{click:'#modal-host > div.no-hash > div.window-wrapper > div:last-child a[href="/privacy-settings"]'}],else:[{waitForVisible:"div#__next"},{click:"#__next div:nth-child(1) > button:first-child"}]}]},{name:"hl.co.uk",prehideSelectors:[".cookieModalContent","#cookie-banner-overlay"],detectCmp:[{exists:"#cookie-banner-overlay"}],detectPopup:[{exists:"#cookie-banner-overlay"}],optIn:[{click:"#acceptCookieButton"}],optOut:[{click:"#manageCookie"},{hide:[".cookieSettingsModal"]},{waitFor:"#AOCookieToggle"},{click:"#AOCookieToggle[aria-pressed=true]",optional:!0},{waitFor:"#TPCookieToggle"},{click:"#TPCookieToggle[aria-pressed=true]",optional:!0},{click:"#updateCookieButton"}]},{name:"hubspot",detectCmp:[{exists:"#hs-eu-cookie-confirmation"}],detectPopup:[{visible:"#hs-eu-cookie-confirmation"}],optIn:[{click:"#hs-eu-confirmation-button"}],optOut:[{click:"#hs-eu-decline-button"}]},{name:"indeed.com",cosmetic:!0,prehideSelectors:["#CookiePrivacyNotice"],detectCmp:[{exists:"#CookiePrivacyNotice"}],detectPopup:[{visible:"#CookiePrivacyNotice"}],optIn:[{click:"#CookiePrivacyNotice button[data-gnav-element-name=CookiePrivacyNoticeOk]"}],optOut:[{hide:["#CookiePrivacyNotice"]}]},{name:"ionos.de",prehideSelectors:[".privacy-consent--backdrop",".privacy-consent--modal"],detectCmp:[{exists:".privacy-consent--modal"}],detectPopup:[{visible:".privacy-consent--modal"}],optIn:[{click:"#selectAll"}],optOut:[{click:".footer-config-link"},{click:"#confirmSelection"}]},{name:"itopvpn.com",cosmetic:!0,prehideSelectors:[".pop-cookie"],detectCmp:[{exists:".pop-cookie"}],detectPopup:[{exists:".pop-cookie"}],optIn:[{click:"#_pcookie"}],optOut:[{hide:[".pop-cookie"]}]},{name:"iubenda",prehideSelectors:["#iubenda-cs-banner"],detectCmp:[{exists:"#iubenda-cs-banner"}],detectPopup:[{visible:".iubenda-cs-accept-btn"}],optIn:[{click:".iubenda-cs-accept-btn"}],optOut:[{click:".iubenda-cs-customize-btn"},{eval:"document.querySelectorAll('.purposes-item input[type=checkbox]:not([disabled])').forEach(x => {if(x.checked) x.click()}) || true"},{click:"#iubFooterBtn"}],test:[{eval:"!!document.cookie.match(/_iub_cs-\\d+=/)"}]},{name:"johnlewis.com",prehideSelectors:["div[class^=pecr-cookie-banner-]"],detectCmp:[{exists:"div[class^=pecr-cookie-banner-]"}],detectPopup:[{exists:"div[class^=pecr-cookie-banner-]"}],optOut:[{click:"button[data-test^=manage-cookies]"},{wait:"500"},{click:"label[data-test^=toggle][class*=checked]:not([class*=disabled])",all:!0,optional:!0},{click:"button[data-test=save-preferences]"}],optIn:[{click:"button[data-test=allow-all]"}]},{name:"jquery.cookieBar",comment:"https://github.com/kovarp/jquery.cookieBar",prehideSelectors:[".cookie-bar"],cosmetic:!0,detectCmp:[{exists:".cookie-bar .cookie-bar__message,.cookie-bar .cookie-bar__buttons"}],detectPopup:[{visible:".cookie-bar .cookie-bar__message,.cookie-bar .cookie-bar__buttons",check:"any"}],optIn:[{click:".cookie-bar .cookie-bar__btn"}],optOut:[{hide:[".cookie-bar"]}],test:[{visible:".cookie-bar .cookie-bar__message,.cookie-bar .cookie-bar__buttons",check:"none"},{eval:"!document.cookie.includes('cookies-state=accepted')"}]},{name:"justwatch.com",prehideSelectors:[".consent-banner"],detectCmp:[{exists:".consent-banner"}],detectPopup:[{exists:".consent-banner"}],optIn:[{click:".consent-banner__actions button.basic-button.primary"}],optOut:[{click:".consent-banner__actions button.basic-button.secondary"},{waitForThenClick:".consent-modal__footer button.basic-button.secondary"},{waitForThenClick:".consent-modal ion-content > div > a:nth-child(9)"},{click:"label.consent-switch input[type=checkbox]:checked",all:!0,optional:!0},{waitForVisible:".consent-modal__footer button.basic-button.primary"},{click:".consent-modal__footer button.basic-button.primary"}]},{name:"ketch",runContext:{frame:!1,main:!0},intermediate:!1,prehideSelectors:["#lanyard_root div[role='dialog']"],detectCmp:[{exists:"#lanyard_root div[role='dialog']"}],detectPopup:[{visible:"#lanyard_root div[role='dialog']"}],optIn:[{if:{exists:"#lanyard_root button[class='confirmButton']"},then:[{waitForThenClick:"#lanyard_root div[class^='buttons'] > :nth-child(2)"},{click:"#lanyard_root button[class='confirmButton']"}],else:[{waitForThenClick:"#lanyard_root div[class^='buttons'] > :nth-child(2)"}]}],optOut:[{click:"#lanyard_root button[class^='link']",optional:!0},{if:{exists:"#lanyard_root button[class*='confirmButton']"},then:[{waitForThenClick:"#lanyard_root button[class*='rejectButton']"},{click:"#lanyard_root button[class*='confirmButton']"}],else:[{click:"#lanyard_root div[class^='buttons'] > :nth-child(1)",optional:!0},{waitForThenClick:"#lanyard_root input:checked"},{click:"#consentsTab > div:nth-child(2) > div > div[class^='actions'] > button:nth-child(1)"}]}],test:[]},{name:"linkedin.com",prehideSelectors:[".artdeco-global-alert[type=COOKIE_CONSENT]"],detectCmp:[{exists:".artdeco-global-alert[type=COOKIE_CONSENT]"}],detectPopup:[{visible:".artdeco-global-alert[type=COOKIE_CONSENT]"}],optIn:[{waitForVisible:".artdeco-global-alert[type=COOKIE_CONSENT] button[action-type=ACCEPT]"},{wait:500},{waitForThenClick:".artdeco-global-alert[type=COOKIE_CONSENT] button[action-type=ACCEPT]"}],optOut:[{waitForVisible:".artdeco-global-alert[type=COOKIE_CONSENT] button[action-type=DENY]"},{wait:500},{waitForThenClick:".artdeco-global-alert[type=COOKIE_CONSENT] button[action-type=DENY]"}],test:[{waitForVisible:".artdeco-global-alert[type=COOKIE_CONSENT]",check:"none"}]},{name:"macpaw.com",cosmetic:!0,prehideSelectors:['div[data-banner="cookies"]'],detectCmp:[{exists:'div[data-banner="cookies"]'}],detectPopup:[{exists:'div[data-banner="cookies"]'}],optIn:[{click:'button[data-banner-close="cookies"]'}],optOut:[{hide:['div[data-banner="cookies"]']}]},{name:"marksandspencer.com",cosmetic:!0,detectCmp:[{exists:".navigation-cookiebbanner"}],detectPopup:[{visible:".navigation-cookiebbanner"}],optOut:[{hide:[".navigation-cookiebbanner"]}],optIn:[{click:".navigation-cookiebbanner__submit"}]},{name:"mediamarkt.de",prehideSelectors:["div[aria-labelledby=pwa-consent-layer-title]","div[class^=StyledConsentLayerWrapper-]"],detectCmp:[{exists:"div[aria-labelledby^=pwa-consent-layer-title]"}],detectPopup:[{exists:"div[aria-labelledby^=pwa-consent-layer-title]"}],optOut:[{click:"button[data-test^=pwa-consent-layer-deny-all]"}],optIn:[{click:"button[data-test^=pwa-consent-layer-accept-all"}]},{name:"Mediavine",prehideSelectors:['[data-name="mediavine-gdpr-cmp"]'],detectCmp:[{exists:'[data-name="mediavine-gdpr-cmp"]'}],detectPopup:[{wait:500},{visible:'[data-name="mediavine-gdpr-cmp"]'}],optIn:[{waitForThenClick:'[data-name="mediavine-gdpr-cmp"] [format="primary"]'}],optOut:[{waitForThenClick:'[data-name="mediavine-gdpr-cmp"] [data-view="manageSettings"]'},{waitFor:'[data-name="mediavine-gdpr-cmp"] input[type=checkbox]'},{eval:'document.querySelectorAll("[data-name=\\"mediavine-gdpr-cmp\\"] input[type=checkbox]").forEach(x => x.checked && x.click()) || true',optional:!0},{click:'[data-name="mediavine-gdpr-cmp"] [format="secondary"]'}]},{name:"microsoft.com",prehideSelectors:["#wcpConsentBannerCtrl"],detectCmp:[{exists:"#wcpConsentBannerCtrl"}],detectPopup:[{exists:"#wcpConsentBannerCtrl"}],optOut:[{eval:"Array.from(document.querySelectorAll('div > button')).filter(el => el.innerText.match('Reject|Ablehnen'))[0].click() || true"}],optIn:[{eval:"Array.from(document.querySelectorAll('div > button')).filter(el => el.innerText.match('Accept|Annehmen'))[0].click() || true"}],test:[{eval:"!!document.cookie.match('MSCC')"}]},{name:"midway-usa",runContext:{urlPattern:"^https://www\\.midwayusa\\.com/"},cosmetic:!0,prehideSelectors:["#cookie-container"],detectCmp:[{exists:['div[aria-label="Cookie Policy Banner"]']}],detectPopup:[{visible:"#cookie-container"}],optIn:[{click:"button#cookie-btn"}],optOut:[{hide:['div[aria-label="Cookie Policy Banner"]']}]},{name:"moneysavingexpert.com",detectCmp:[{exists:"dialog[data-testid=accept-our-cookies-dialog]"}],detectPopup:[{visible:"dialog[data-testid=accept-our-cookies-dialog]"}],optIn:[{click:"#banner-accept"}],optOut:[{click:"#banner-manage"},{click:"#pc-confirm"}]},{name:"monzo.com",prehideSelectors:[".cookie-alert, cookie-alert__content"],detectCmp:[{exists:'div.cookie-alert[role="dialog"]'},{exists:'a[href*="monzo"]'}],detectPopup:[{visible:".cookie-alert__content"}],optIn:[{click:".js-accept-cookie-policy"}],optOut:[{click:".js-decline-cookie-policy"}]},{name:"Moove",prehideSelectors:["#moove_gdpr_cookie_info_bar"],detectCmp:[{exists:"#moove_gdpr_cookie_info_bar"}],detectPopup:[{visible:"#moove_gdpr_cookie_info_bar"}],optIn:[{waitForThenClick:".moove-gdpr-infobar-allow-all"}],optOut:[{if:{exists:"#moove_gdpr_cookie_info_bar .change-settings-button"},then:[{click:"#moove_gdpr_cookie_info_bar .change-settings-button"},{waitForVisible:"#moove_gdpr_cookie_modal"},{eval:"document.querySelectorAll('#moove_gdpr_cookie_modal input').forEach(i => { if (!i.disabled && i.name !== 'moove_gdpr_strict_cookies') i.checked = false }) || true"},{click:".moove-gdpr-modal-save-settings"}],else:[{hide:["#moove_gdpr_cookie_info_bar"]}]}],test:[{visible:"#moove_gdpr_cookie_info_bar",check:"none"}]},{name:"national-lottery.co.uk",detectCmp:[{exists:".cuk_cookie_consent"}],detectPopup:[{visible:".cuk_cookie_consent",check:"any"}],optOut:[{click:".cuk_cookie_consent_manage_pref"},{click:".cuk_cookie_consent_save_pref"},{click:".cuk_cookie_consent_close"}],optIn:[{click:".cuk_cookie_consent_accept_all"}]},{name:"nba.com",runContext:{urlPattern:"^https://(www\\.)?nba.com/"},cosmetic:!0,prehideSelectors:["#onetrust-banner-sdk"],detectCmp:[{exists:"#onetrust-banner-sdk"}],detectPopup:[{visible:"#onetrust-banner-sdk"}],optIn:[{click:"#onetrust-accept-btn-handler"}],optOut:[{hide:["#onetrust-banner-sdk"]}]},{name:"netflix.de",detectCmp:[{exists:"#cookie-disclosure"}],detectPopup:[{visible:".cookie-disclosure-message",check:"any"}],optIn:[{click:".btn-accept"}],optOut:[{hide:["#cookie-disclosure"]},{click:".btn-reject"}]},{name:"nhs.uk",prehideSelectors:["#nhsuk-cookie-banner"],detectCmp:[{exists:"#nhsuk-cookie-banner"}],detectPopup:[{exists:"#nhsuk-cookie-banner"}],optOut:[{click:"#nhsuk-cookie-banner__link_accept"}],optIn:[{click:"#nhsuk-cookie-banner__link_accept_analytics"}]},{name:"notice-cookie",prehideSelectors:[".button--notice"],cosmetic:!0,detectCmp:[{exists:".notice--cookie"}],detectPopup:[{visible:".notice--cookie"}],optIn:[{click:".button--notice"}],optOut:[{hide:[".notice--cookie"]}]},{name:"nrk.no",cosmetic:!0,prehideSelectors:[".nrk-masthead__info-banner--cookie"],detectCmp:[{exists:".nrk-masthead__info-banner--cookie"}],detectPopup:[{exists:".nrk-masthead__info-banner--cookie"}],optIn:[{click:"div.nrk-masthead__info-banner--cookie button > span:has(+ svg.nrk-close)"}],optOut:[{hide:[".nrk-masthead__info-banner--cookie"]}]},{name:"obi.de",prehideSelectors:[".disc-cp--active"],detectCmp:[{exists:".disc-cp-modal__modal"}],detectPopup:[{visible:".disc-cp-modal__modal"}],optIn:[{click:".js-disc-cp-accept-all"}],optOut:[{click:".js-disc-cp-deny-all"}]},{name:"onlyFans.com",prehideSelectors:["div.b-cookies-informer"],detectCmp:[{exists:"div.b-cookies-informer"}],detectPopup:[{exists:"div.b-cookies-informer"}],optIn:[{click:"div.b-cookies-informer__nav > button:nth-child(2)"}],optOut:[{click:"div.b-cookies-informer__nav > button:nth-child(1)"},{click:'div.b-cookies-informer__switchers > div:nth-child(2) > div[at-attr="checkbox"] > span.b-input-radio__container > input[type="checkbox"]'},{click:"div.b-cookies-informer__nav > button"}]},{name:"osano",prehideSelectors:[".osano-cm-window"],cosmetic:!0,detectCmp:[{exists:".osano-cm-window"}],detectPopup:[{visible:".osano-cm-dialog"}],optIn:[{click:".osano-cm-accept-all",optional:!0}],optOut:[{hide:[".osano-cm-window"]}]},{name:"otto.de",prehideSelectors:[".cookieBanner--visibility"],detectCmp:[{exists:".cookieBanner--visibility"}],detectPopup:[{visible:".cookieBanner__wrapper"}],optIn:[{click:".js_cookieBannerPermissionButton"}],optOut:[{click:".js_cookieBannerProhibitionButton"}]},{name:"paypal-us",prehideSelectors:["#ccpaCookieContent_wrapper, article.ppvx_modal--overpanel"],detectCmp:[{exists:"#ccpaCookieBanner, .privacy-modal-content"}],detectPopup:[{exists:"#ccpaCookieBanner, .privacy-modal-content"}],optIn:[{click:"#acceptAllButton"}],optOut:[{if:{exists:"a#manageCookiesLink"},then:[{click:"a#manageCookiesLink"}],else:[{waitForVisible:".privacy-modal-content #formContent"},{click:"#formContent .cookiepref-11m2iee-checkbox_base input:checked",all:!0,optional:!0},{click:".confirmCookie #submitCookiesBtn"}]}]},{name:"paypal.com",prehideSelectors:["#gdprCookieBanner"],detectCmp:[{exists:"#gdprCookieBanner"}],detectPopup:[{visible:"#gdprCookieContent_wrapper"}],optIn:[{click:"#acceptAllButton"}],optOut:[{wait:200},{click:".gdprCookieBanner_decline-button"}],test:[{wait:500},{eval:"document.cookie.includes('cookie_prefs') === true"}]},{name:"pinetools.com",cosmetic:!0,prehideSelectors:["#aviso_cookies"],detectCmp:[{exists:"#aviso_cookies"}],detectPopup:[{exists:".lang_en #aviso_cookies"}],optIn:[{click:"#aviso_cookies .a_boton_cerrar"}],optOut:[{hide:["#aviso_cookies"]}]},{name:"pmc",cosmetic:!0,prehideSelectors:["#pmc-pp-tou--notice"],detectCmp:[{exists:"#pmc-pp-tou--notice"}],detectPopup:[{visible:"#pmc-pp-tou--notice"}],optIn:[{click:"span.pmc-pp-tou--notice-close-btn"}],optOut:[{hide:["#pmc-pp-tou--notice"]}]},{name:"pornhub.com",runContext:{urlPattern:"^https://(www\\.)?pornhub\\.com/"},cosmetic:!0,prehideSelectors:[".cookiesBanner"],detectCmp:[{exists:".cookiesBanner"}],detectPopup:[{visible:".cookiesBanner"}],optIn:[{click:".cookiesBanner .okButton"}],optOut:[{hide:[".cookiesBanner"]}]},{name:"pornpics.com",cosmetic:!0,prehideSelectors:["#cookie-contract"],detectCmp:[{exists:"#cookie-contract"}],detectPopup:[{visible:"#cookie-contract"}],optIn:[{click:"#cookie-contract .icon-cross"}],optOut:[{hide:["#cookie-contract"]}]},{name:"PrimeBox CookieBar",prehideSelectors:["#cookie-bar"],detectCmp:[{exists:"#cookie-bar .cb-enable,#cookie-bar .cb-disable,#cookie-bar .cb-policy"}],detectPopup:[{visible:"#cookie-bar .cb-enable,#cookie-bar .cb-disable,#cookie-bar .cb-policy",check:"any"}],optIn:[{waitForThenClick:"#cookie-bar .cb-enable"}],optOut:[{click:"#cookie-bar .cb-disable",optional:!0},{hide:["#cookie-bar"]}],test:[{eval:"!document.cookie.includes('cb-enabled=accepted')"}]},{name:"privacymanager.io",prehideSelectors:["#gdpr-consent-tool-wrapper",'iframe[src^="https://cmp-consent-tool.privacymanager.io"]'],runContext:{urlPattern:"^https://cmp-consent-tool\\.privacymanager\\.io/",main:!1,frame:!0},detectCmp:[{exists:"button#save"}],detectPopup:[{visible:"button#save"}],optIn:[{click:"button#save"}],optOut:[{if:{exists:"#denyAll"},then:[{click:"#denyAll"},{waitForThenClick:".okButton"}],else:[{waitForThenClick:"#manageSettings"},{waitFor:".purposes-overview-list"},{waitFor:"button#saveAndExit"},{click:"span[role=checkbox][aria-checked=true]",all:!0,optional:!0},{click:"button#saveAndExit"}]}]},{name:"pubtech",prehideSelectors:["#pubtech-cmp"],detectCmp:[{exists:"#pubtech-cmp"}],detectPopup:[{visible:"#pubtech-cmp #pt-actions"}],optIn:[{if:{exists:"#pt-accept-all"},then:[{click:"#pubtech-cmp #pt-actions #pt-accept-all"}],else:[{click:"#pubtech-cmp #pt-actions button:nth-of-type(2)"}]}],optOut:[{click:"#pubtech-cmp #pt-close"}],test:[{eval:"document.cookie.includes('euconsent-v2') && (document.cookie.match(/.YAAAAAAAAAAA/) || document.cookie.match(/.aAAAAAAAAAAA/) || document.cookie.match(/.YAAACFgAAAAA/)) "}]},{name:"quantcast",prehideSelectors:["#qc-cmp2-main,#qc-cmp2-container"],detectCmp:[{exists:"#qc-cmp2-container"}],detectPopup:[{visible:"#qc-cmp2-ui"}],optOut:[{click:'.qc-cmp2-summary-buttons > button[mode="secondary"]'},{waitFor:"#qc-cmp2-ui"},{click:'.qc-cmp2-toggle-switch > button[aria-checked="true"]',all:!0,optional:!0},{click:'.qc-cmp2-main button[aria-label="REJECT ALL"]',optional:!0},{waitForThenClick:'.qc-cmp2-main button[aria-label="SAVE & EXIT"],.qc-cmp2-buttons-desktop > button[mode="primary"]',timeout:5e3}],optIn:[{click:'.qc-cmp2-summary-buttons > button[mode="primary"]'}]},{name:"reddit.com",runContext:{urlPattern:"^https://www\\.reddit\\.com/"},prehideSelectors:['section:has(a[href^="https://www.reddit.com/policies/cookies"])'],detectCmp:[{exists:'section:has(a[href^="https://www.reddit.com/policies/cookies"])'}],detectPopup:[{visible:'section:has(a[href^="https://www.reddit.com/policies/cookies"])'}],optIn:[{waitForThenClick:"section:has(a[href^=\"https://www.reddit.com/policies/cookies\"]) section[class^='_'] > section:first-child form button"}],optOut:[{waitForThenClick:"section:has(a[href^=\"https://www.reddit.com/policies/cookies\"]) section[class^='_'] > section:last-child form button"}],test:[{eval:"document.cookie.includes('eu_cookie={%22opted%22:true%2C%22nonessential%22:false}')"}]},{name:"samsung.com",runContext:{urlPattern:"^https://www\\.samsung\\.com/"},cosmetic:!0,prehideSelectors:["div.cookie-bar"],detectCmp:[{exists:"div.cookie-bar"}],detectPopup:[{visible:"div.cookie-bar"}],optIn:[{click:"div.cookie-bar__manage > a"}],optOut:[{hide:["div.cookie-bar"]}]},{name:"sibbo",prehideSelectors:["sibbo-cmp-layout"],detectCmp:[{exists:"sibbo-cmp-layout"}],detectPopup:[{visible:"sibbo-cmp-layout"}],optIn:[{click:"sibbo-cmp-layout [data-accept-all]"}],optOut:[{click:'.sibbo-panel__aside__buttons a[data-nav="purposes"]'},{click:'.sibbo-panel__main__header__actions a[data-focusable="reject-all"]'},{if:{exists:"[data-view=purposes] .sibbo-panel__main__footer__actions [data-save-and-exit]"},then:[],else:[{waitFor:'.sibbo-panel__main__footer__actions a[data-focusable="next"]:not(.sibbo-cmp-button--disabled)'},{click:'.sibbo-panel__main__footer__actions a[data-focusable="next"]'},{click:'.sibbo-panel__main div[data-view="purposesLegInt"] a[data-focusable="reject-all"]'}]},{waitFor:".sibbo-panel__main__footer__actions [data-save-and-exit]:not(.sibbo-cmp-button--disabled)"},{click:".sibbo-panel__main__footer__actions [data-save-and-exit]:not(.sibbo-cmp-button--disabled)"}],test:[{eval:"!!window.localStorage.getItem('euconsent-v2')"}]},{name:"similarweb.com",cosmetic:!0,prehideSelectors:[".app-cookies-notification"],detectCmp:[{exists:".app-cookies-notification"}],detectPopup:[{exists:".app-layout .app-cookies-notification"}],optIn:[{click:"button.app-cookies-notification__dismiss"}],optOut:[{hide:[".app-layout .app-cookies-notification"]}]},{name:"Sirdata",prehideSelectors:["#sd-cmp"],detectCmp:[{exists:"#sd-cmp"}],detectPopup:[{visible:"#sd-cmp"}],optIn:[{waitForThenClick:"#sd-cmp .sd-cmp-3cRQ2"}],optOut:[{waitForThenClick:"#sd-cmp .sd-cmp-1pO44"}],test:[{eval:"document.cookie.includes('euconsent-v2')"}]},{name:"snigel",detectCmp:[{exists:".snigel-cmp-framework"}],detectPopup:[{visible:".snigel-cmp-framework"}],optOut:[{click:"#sn-b-custom"},{click:"#sn-b-save"}],test:[{eval:"!!document.cookie.match('snconsent')"}],optIn:[{click:".snigel-cmp-framework #accept-choices"}]},{name:"steampowered.com",detectCmp:[{exists:".cookiepreferences_popup"},{visible:".cookiepreferences_popup"}],detectPopup:[{visible:".cookiepreferences_popup"}],optOut:[{click:"#rejectAllButton"}],optIn:[{click:"#acceptAllButton"}],test:[{wait:1e3},{eval:"JSON.parse(decodeURIComponent(document.cookie.split(';').find(s => s.trim().startsWith('cookieSettings')).split('=')[1])).preference_state === 2"}]},{name:"takealot.com",cosmetic:!0,prehideSelectors:['div[class^="cookies-banner-module_cookie-banner_"]'],detectCmp:[{exists:'div[class^="cookies-banner-module_cookie-banner_"]'}],detectPopup:[{exists:'div[class^="cookies-banner-module_cookie-banner_"]'}],optIn:[{click:'button[class*="cookies-banner-module_dismiss-button_"]'}],optOut:[{hide:['div[class^="cookies-banner-module_cookie-banner_"]']}]},{name:"tarteaucitron.js",prehideSelectors:["#tarteaucitronRoot"],detectCmp:[{exists:"#tarteaucitronRoot"}],detectPopup:[{visible:"#tarteaucitronRoot #tarteaucitronAlertSmall,#tarteaucitronRoot #tarteaucitronAlertBig",check:"any"}],optIn:[{eval:"tarteaucitron.userInterface.respondAll(true) || true"}],optOut:[{eval:"tarteaucitron.userInterface.respondAll(false) || true"}],test:[{eval:"document.cookie.match(/tarteaucitron=[^;]*/)[0].includes('false')",comment:"sometimes there are required categories, so we check that at least something is false"}]},{name:"Tealium",prehideSelectors:["#__tealiumGDPRecModal,#__tealiumGDPRcpPrefs,#consent-layer"],detectCmp:[{visible:"#__tealiumGDPRecModal"},{eval:"typeof window.utag !== 'undefined' && typeof utag.gdpr === 'object'"}],detectPopup:[{visible:"#__tealiumGDPRecModal"}],optOut:[{waitForThenClick:"#cm-acceptNone,.js-accept-essential-cookies",timeout:1e3},{eval:"utag.gdpr.setConsentValue(false) || true"}],optIn:[{hide:["#__tealiumGDPRecModal"]},{eval:"utag.gdpr.setConsentValue(true) || true"}],test:[{eval:"utag.gdpr.getConsentState() !== 1"}]},{name:"Termly",prehideSelectors:["#termly-code-snippet-support"],detectCmp:[{exists:"#termly-code-snippet-support"}],detectPopup:[{visible:"#termly-code-snippet-support div"}],optIn:[{waitForThenClick:'[data-tid="banner-accept"]'}],optOut:[{if:{exists:'[data-tid="banner-decline"]'},then:[{click:'[data-tid="banner-decline"]'}],else:[{click:".t-preference-button"},{wait:500},{if:{exists:".t-declineAllButton"},then:[{click:".t-declineAllButton"}],else:[{waitForThenClick:".t-preference-modal input[type=checkbox][checked]:not([disabled])",all:!0},{waitForThenClick:".t-saveButton"}]}]}]},{name:"Test page cosmetic CMP",cosmetic:!0,prehideSelectors:["#privacy-test-page-cmp-test-prehide"],detectCmp:[{exists:"#privacy-test-page-cmp-test-banner"}],detectPopup:[{visible:"#privacy-test-page-cmp-test-banner"}],optIn:[{waitFor:"#accept-all"},{click:"#accept-all"}],optOut:[{hide:["#privacy-test-page-cmp-test-banner"]}],test:[{wait:500},{eval:"window.results.results[0] === 'banner_hidden'"}]},{name:"Test page CMP",prehideSelectors:["#reject-all"],detectCmp:[{exists:"#privacy-test-page-cmp-test"}],detectPopup:[{visible:"#privacy-test-page-cmp-test"}],optIn:[{waitFor:"#accept-all"},{click:"#accept-all"}],optOut:[{waitFor:"#reject-all"},{click:"#reject-all"}],test:[{eval:"window.results.results[0] === 'button_clicked'"}]},{name:"thalia.de",prehideSelectors:[".consent-banner-box"],detectCmp:[{exists:"consent-banner[component=consent-banner]"}],detectPopup:[{visible:".consent-banner-box"}],optIn:[{click:".button-zustimmen"}],optOut:[{click:"button[data-consent=disagree]"}]},{name:"thefreedictionary.com",prehideSelectors:["#cmpBanner"],detectCmp:[{exists:"#cmpBanner"}],detectPopup:[{visible:"#cmpBanner"}],optIn:[{eval:"cmpUi.allowAll() || true"}],optOut:[{eval:"cmpUi.showPurposes() || cmpUi.rejectAll() || true"}]},{name:"theverge",runContext:{frame:!1,main:!0,urlPattern:"^https://(www)?\\.theverge\\.com"},intermediate:!1,prehideSelectors:[".duet--cta--cookie-banner"],detectCmp:[{exists:".duet--cta--cookie-banner"}],detectPopup:[{visible:".duet--cta--cookie-banner"}],optIn:[{click:".duet--cta--cookie-banner button.tracking-12",all:!1}],optOut:[{click:".duet--cta--cookie-banner button.tracking-12 > span"}],test:[{eval:"document.cookie.includes('_duet_gdpr_acknowledged=1')"}]},{name:"tidbits-com",cosmetic:!0,prehideSelectors:["#eu_cookie_law_widget-2"],detectCmp:[{exists:"#eu_cookie_law_widget-2"}],detectPopup:[{visible:"#eu_cookie_law_widget-2"}],optIn:[{click:"#eu-cookie-law form > input.accept"}],optOut:[{hide:["#eu_cookie_law_widget-2"]}]},{name:"tractor-supply",runContext:{urlPattern:"^https://www\\.tractorsupply\\.com/"},cosmetic:!0,prehideSelectors:[".tsc-cookie-banner"],detectCmp:[{exists:".tsc-cookie-banner"}],detectPopup:[{visible:".tsc-cookie-banner"}],optIn:[{click:"#cookie-banner-cancel"}],optOut:[{hide:[".tsc-cookie-banner"]}]},{name:"trader-joes-com",cosmetic:!0,prehideSelectors:['div.aem-page > div[class^="CookiesAlert_cookiesAlert__"]'],detectCmp:[{exists:'div.aem-page > div[class^="CookiesAlert_cookiesAlert__"]'}],detectPopup:[{visible:'div.aem-page > div[class^="CookiesAlert_cookiesAlert__"]'}],optIn:[{click:'div[class^="CookiesAlert_cookiesAlert__container__"] button'}],optOut:[{hide:['div.aem-page > div[class^="CookiesAlert_cookiesAlert__"]']}]},{name:"true-car",runContext:{urlPattern:"^https://www\\.truecar\\.com/"},cosmetic:!0,prehideSelectors:[['div[aria-labelledby="cookie-banner-heading"]']],detectCmp:[{exists:'div[aria-labelledby="cookie-banner-heading"]'}],detectPopup:[{visible:'div[aria-labelledby="cookie-banner-heading"]'}],optIn:[{click:'div[aria-labelledby="cookie-banner-heading"] > button[aria-label="Close"]'}],optOut:[{hide:['div[aria-labelledby="cookie-banner-heading"]']}]},{name:"truyo",prehideSelectors:["#truyo-consent-module"],detectCmp:[{exists:"#truyo-cookieBarContent"}],detectPopup:[{visible:"#truyo-consent-module"}],optIn:[{click:"button#acceptAllCookieButton"}],optOut:[{click:"button#declineAllCookieButton"}]},{name:"tumblr-com",cosmetic:!0,prehideSelectors:["#cmp-app-container"],detectCmp:[{exists:"#cmp-app-container"}],detectPopup:[{visible:"#cmp-app-container"}],optIn:[{click:"#tumblr #cmp-app-container div.components-modal__frame > iframe > html body > div > div > div.cmp__dialog-footer > div > button.components-button.white-space-normal.is-primary"}],optOut:[{hide:["#cmp-app-container"]}]},{name:"twitter",runContext:{urlPattern:"^https://([a-z0-9-]+\\.)?twitter\\.com/"},prehideSelectors:['[data-testid="BottomBar"]'],detectCmp:[{exists:'[data-testid="BottomBar"] div'}],detectPopup:[{visible:'[data-testid="BottomBar"] div'}],optIn:[{waitForThenClick:'[data-testid="BottomBar"] > div:has(>div:first-child>div:last-child>span[role=button]) > div:last-child > div[role=button]:first-child'}],optOut:[{waitForThenClick:'[data-testid="BottomBar"] > div:has(>div:first-child>div:last-child>span[role=button]) > div:last-child > div[role=button]:last-child'}],TODOtest:[{eval:"document.cookie.includes('d_prefs=MjoxLGNvbnNlbnRfdmVyc2lvbjoy')"}]},{name:"UK Cookie Consent",prehideSelectors:["#catapult-cookie-bar"],cosmetic:!0,detectCmp:[{exists:"#catapult-cookie-bar"}],detectPopup:[{exists:".has-cookie-bar #catapult-cookie-bar"}],optIn:[{click:"#catapultCookie"}],optOut:[{hide:["#catapult-cookie-bar"]}],test:[{eval:"!document.cookie.includes('catAccCookies')"}]},{name:"urbanarmorgear-com",cosmetic:!0,prehideSelectors:['div[class^="Layout__CookieBannerContainer-"]'],detectCmp:[{exists:'div[class^="Layout__CookieBannerContainer-"]'}],detectPopup:[{visible:'div[class^="Layout__CookieBannerContainer-"]'}],optIn:[{click:'button[class^="CookieBanner__AcceptButton"]'}],optOut:[{hide:['div[class^="Layout__CookieBannerContainer-"]']}]},{name:"usercentrics-api",detectCmp:[{exists:"#usercentrics-root"}],detectPopup:[{eval:"typeof UC_UI === 'object'"}],optIn:[{eval:"!!UC_UI.acceptAllConsents()"},{eval:"!!UC_UI.closeCMP()"},{eval:"UC_UI.areAllConsentsAccepted() === true"}],optOut:[{eval:"!!UC_UI.closeCMP()"},{eval:"!!UC_UI.denyAllConsents()"}],test:[{eval:"UC_UI.areAllConsentsAccepted() === false"}]},{name:"usercentrics-button",detectCmp:[{exists:"#usercentrics-button"}],detectPopup:[{visible:"#usercentrics-button #uc-btn-accept-banner"}],optIn:[{click:"#usercentrics-button #uc-btn-accept-banner"}],optOut:[{click:"#usercentrics-button #uc-btn-deny-banner"}],test:[{eval:"JSON.parse(localStorage.getItem('usercentrics')).consents.every(c => c.isEssential || !c.consentStatus)"}]},{name:"uswitch.com",prehideSelectors:["#cookie-banner-wrapper"],detectCmp:[{exists:"#cookie-banner-wrapper"}],detectPopup:[{visible:"#cookie-banner-wrapper"}],optIn:[{click:"#cookie_banner_accept_mobile"}],optOut:[{click:"#cookie_banner_save"}]},{name:"vodafone.de",runContext:{urlPattern:"^https://www\\.vodafone\\.de/"},prehideSelectors:[".dip-consent,.dip-consent-container"],detectCmp:[{exists:".dip-consent-container"}],detectPopup:[{visible:".dip-consent-content"}],optOut:[{click:'.dip-consent-btn[tabindex="2"]'}],optIn:[{click:'.dip-consent-btn[tabindex="1"]'}]},{name:"waitrose.com",prehideSelectors:["div[aria-labelledby=CookieAlertModalHeading]","section[data-test=initial-waitrose-cookie-consent-banner]","section[data-test=cookie-consent-modal]"],detectCmp:[{exists:"section[data-test=initial-waitrose-cookie-consent-banner]"}],detectPopup:[{visible:"section[data-test=initial-waitrose-cookie-consent-banner]"}],optIn:[{click:"button[data-test=accept-all]"}],optOut:[{click:"button[data-test=manage-cookies]"},{wait:200},{eval:"Array.from(document.querySelectorAll('label[id$=cookies-deny-label]')).forEach(e => e.click()) || true"},{click:"button[data-test=submit]"}],test:[{eval:"document.cookie.includes('wtr_cookies_advertising=0') && document.cookie.includes('wtr_cookies_analytics=0')"}]},{name:"wetransfer.com",detectCmp:[{exists:".welcome__cookie-notice"}],detectPopup:[{visible:".welcome__cookie-notice"}],optIn:[{click:".welcome__button--accept"}],optOut:[{click:".welcome__button--decline"}]},{name:"whitepages.com",runContext:{urlPattern:"^https://www\\.whitepages\\.com/"},cosmetic:!0,prehideSelectors:[".cookie-wrapper, .cookie-overlay"],detectCmp:[{exists:".cookie-wrapper"}],detectPopup:[{visible:".cookie-overlay"}],optIn:[{click:'button[aria-label="Got it"]'}],optOut:[{hide:[".cookie-wrapper"]}]},{name:"woo-commerce-com",prehideSelectors:[".wccom-comp-privacy-banner .wccom-privacy-banner"],detectCmp:[{exists:".wccom-comp-privacy-banner .wccom-privacy-banner"}],detectPopup:[{exists:".wccom-comp-privacy-banner .wccom-privacy-banner"}],optIn:[{click:".wccom-privacy-banner__content-buttons button.is-primary"}],optOut:[{click:".wccom-privacy-banner__content-buttons button.is-secondary"},{waitForThenClick:"input[type=checkbox][checked]:not([disabled])",all:!0},{click:"div.wccom-modal__footer > button"}]},{name:"WP Cookie Notice for GDPR",comment:"https://wordpress.org/plugins/gdpr-cookie-consent/",prehideSelectors:["#gdpr-cookie-consent-bar"],detectCmp:[{exists:"#gdpr-cookie-consent-bar"}],detectPopup:[{visible:"#gdpr-cookie-consent-bar"}],optIn:[{waitForThenClick:"#gdpr-cookie-consent-bar #cookie_action_accept"}],optOut:[{waitForThenClick:"#gdpr-cookie-consent-bar #cookie_action_reject"}],test:[{eval:"document.cookie.includes('wpl_viewed_cookie=no')"}]},{name:"wpcc",cosmetic:!0,prehideSelectors:[".wpcc-container"],detectCmp:[{exists:".wpcc-container"}],detectPopup:[{exists:".wpcc-container .wpcc-message"}],optIn:[{click:".wpcc-compliance .wpcc-btn"}],optOut:[{hide:[".wpcc-container"]}]},{name:"xhamster-eu",prehideSelectors:[".cookies-modal"],detectCmp:[{exists:".cookies-modal"}],detectPopup:[{exists:".cookies-modal"}],optIn:[{click:"button.cmd-button-accept-all"}],optOut:[{click:"button.cmd-button-reject-all"}]},{name:"xhamster-us",runContext:{urlPattern:"^https://(www\\.)?xhamster\\d?\\.com"},cosmetic:!0,prehideSelectors:[".cookie-announce"],detectCmp:[{exists:".cookie-announce"}],detectPopup:[{visible:".cookie-announce .announce-text"}],optIn:[{click:".cookie-announce button.xh-button"}],optOut:[{hide:[".cookie-announce"]}]},{name:"xing.com",detectCmp:[{exists:"div[class^=cookie-consent-CookieConsent]"}],detectPopup:[{exists:"div[class^=cookie-consent-CookieConsent]"}],optIn:[{click:"#consent-accept-button"}],optOut:[{click:"#consent-settings-button"},{click:".consent-banner-button-accept-overlay"}],test:[{eval:"document.cookie.includes('userConsent=%7B%22marketing%22%3Afalse')"}]},{name:"xnxx-com",cosmetic:!0,prehideSelectors:["#cookies-use-alert"],detectCmp:[{exists:"#cookies-use-alert"}],detectPopup:[{visible:"#cookies-use-alert"}],optIn:[{click:"#cookies-use-alert .close"}],optOut:[{hide:["#cookies-use-alert"]}]},{name:"youporn.com",cosmetic:!0,prehideSelectors:[".euCookieModal, #js_euCookieModal"],detectCmp:[{exists:".euCookieModal"}],detectPopup:[{exists:".euCookieModal, #js_euCookieModal"}],optIn:[{click:'button[name="user_acceptCookie"]'}],optOut:[{hide:[".euCookieModal"]}]},{name:"youtube-desktop",prehideSelectors:["tp-yt-iron-overlay-backdrop.opened","ytd-consent-bump-v2-lightbox"],detectCmp:[{exists:"ytd-consent-bump-v2-lightbox tp-yt-paper-dialog"},{exists:'ytd-consent-bump-v2-lightbox tp-yt-paper-dialog a[href^="https://consent.youtube.com/"]'}],detectPopup:[{visible:"ytd-consent-bump-v2-lightbox tp-yt-paper-dialog"}],optIn:[{waitForThenClick:"ytd-consent-bump-v2-lightbox .eom-buttons .eom-button-row:first-child ytd-button-renderer:last-child #button,ytd-consent-bump-v2-lightbox .eom-buttons .eom-button-row:first-child ytd-button-renderer:last-child button"},{wait:500}],optOut:[{waitForThenClick:"ytd-consent-bump-v2-lightbox .eom-buttons .eom-button-row:first-child ytd-button-renderer:first-child #button,ytd-consent-bump-v2-lightbox .eom-buttons .eom-button-row:first-child ytd-button-renderer:first-child button"},{wait:500}],test:[{wait:500},{eval:"!!document.cookie.match(/SOCS=CAE/)"}]},{name:"youtube-mobile",prehideSelectors:[".consent-bump-v2-lightbox"],detectCmp:[{exists:"ytm-consent-bump-v2-renderer"}],detectPopup:[{visible:"ytm-consent-bump-v2-renderer"}],optIn:[{waitForThenClick:"ytm-consent-bump-v2-renderer .privacy-terms + .one-col-dialog-buttons c3-material-button:first-child button, ytm-consent-bump-v2-renderer .privacy-terms + .one-col-dialog-buttons ytm-button-renderer:first-child button"},{wait:500}],optOut:[{waitForThenClick:"ytm-consent-bump-v2-renderer .privacy-terms + .one-col-dialog-buttons c3-material-button:nth-child(2) button, ytm-consent-bump-v2-renderer .privacy-terms + .one-col-dialog-buttons ytm-button-renderer:nth-child(2) button"},{wait:500}],test:[{wait:500},{eval:"!!document.cookie.match(/SOCS=CAE/)"}]}],A={"didomi.io":{detectors:[{presentMatcher:{target:{selector:"#didomi-host, #didomi-notice"},type:"css"},showingMatcher:{target:{selector:"body.didomi-popup-open, .didomi-notice-banner"},type:"css"}}],methods:[{action:{target:{selector:".didomi-popup-notice-buttons .didomi-button:not(.didomi-button-highlight), .didomi-notice-banner .didomi-learn-more-button"},type:"click"},name:"OPEN_OPTIONS"},{action:{actions:[{retries:50,target:{selector:"#didomi-purpose-cookies"},type:"waitcss",waitTime:50},{consents:[{description:"Share (everything) with others",falseAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-share_whith_others]:first-child"},type:"click"},trueAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-share_whith_others]:last-child"},type:"click"},type:"X"},{description:"Information storage and access",falseAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-cookies]:first-child"},type:"click"},trueAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-cookies]:last-child"},type:"click"},type:"D"},{description:"Content selection, offers and marketing",falseAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-CL-T1Rgm7]:first-child"},type:"click"},trueAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-CL-T1Rgm7]:last-child"},type:"click"},type:"E"},{description:"Analytics",falseAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-analytics]:first-child"},type:"click"},trueAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-analytics]:last-child"},type:"click"},type:"B"},{description:"Analytics",falseAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-M9NRHJe3G]:first-child"},type:"click"},trueAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-M9NRHJe3G]:last-child"},type:"click"},type:"B"},{description:"Ad and content selection",falseAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-advertising_personalization]:first-child"},type:"click"},trueAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-advertising_personalization]:last-child"},type:"click"},type:"F"},{description:"Ad and content selection",falseAction:{parent:{childFilter:{target:{selector:"#didomi-purpose-pub-ciblee"}},selector:".didomi-consent-popup-data-processing, .didomi-components-accordion-label-container"},target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-pub-ciblee]:first-child"},type:"click"},trueAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-pub-ciblee]:last-child"},type:"click"},type:"F"},{description:"Ad and content selection - basics",falseAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-q4zlJqdcD]:first-child"},type:"click"},trueAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-q4zlJqdcD]:last-child"},type:"click"},type:"F"},{description:"Ad and content selection - partners and subsidiaries",falseAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-partenaire-cAsDe8jC]:first-child"},type:"click"},trueAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-partenaire-cAsDe8jC]:last-child"},type:"click"},type:"F"},{description:"Ad and content selection - social networks",falseAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-p4em9a8m]:first-child"},type:"click"},trueAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-p4em9a8m]:last-child"},type:"click"},type:"F"},{description:"Ad and content selection - others",falseAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-autres-pub]:first-child"},type:"click"},trueAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-autres-pub]:last-child"},type:"click"},type:"F"},{description:"Social networks",falseAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-reseauxsociaux]:first-child"},type:"click"},trueAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-reseauxsociaux]:last-child"},type:"click"},type:"A"},{description:"Social networks",falseAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-social_media]:first-child"},type:"click"},trueAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-social_media]:last-child"},type:"click"},type:"A"},{description:"Content selection",falseAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-content_personalization]:first-child"},type:"click"},trueAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-content_personalization]:last-child"},type:"click"},type:"E"},{description:"Ad delivery",falseAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-ad_delivery]:first-child"},type:"click"},trueAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-ad_delivery]:last-child"},type:"click"},type:"F"}],type:"consent"},{action:{consents:[{matcher:{childFilter:{target:{selector:":not(.didomi-components-radio__option--selected)"}},type:"css"},trueAction:{target:{selector:":nth-child(2)"},type:"click"},falseAction:{target:{selector:":first-child"},type:"click"},type:"X"}],type:"consent"},target:{selector:".didomi-components-radio"},type:"foreach"}],type:"list"},name:"DO_CONSENT"},{action:{parent:{selector:".didomi-consent-popup-footer .didomi-consent-popup-actions"},target:{selector:".didomi-components-button:first-child"},type:"click"},name:"SAVE_CONSENT"}]},oil:{detectors:[{presentMatcher:{target:{selector:".as-oil-content-overlay"},type:"css"},showingMatcher:{target:{selector:".as-oil-content-overlay"},type:"css"}}],methods:[{action:{actions:[{target:{selector:".as-js-advanced-settings"},type:"click"},{retries:"10",target:{selector:".as-oil-cpc__purpose-container"},type:"waitcss",waitTime:"250"}],type:"list"},name:"OPEN_OPTIONS"},{action:{actions:[{consents:[{matcher:{parent:{selector:".as-oil-cpc__purpose-container",textFilter:["Information storage and access","Opbevaring af og adgang til oplysninger på din enhed"]},target:{selector:"input"},type:"checkbox"},toggleAction:{parent:{selector:".as-oil-cpc__purpose-container",textFilter:["Information storage and access","Opbevaring af og adgang til oplysninger på din enhed"]},target:{selector:".as-oil-cpc__switch"},type:"click"},type:"D"},{matcher:{parent:{selector:".as-oil-cpc__purpose-container",textFilter:["Personlige annoncer","Personalisation"]},target:{selector:"input"},type:"checkbox"},toggleAction:{parent:{selector:".as-oil-cpc__purpose-container",textFilter:["Personlige annoncer","Personalisation"]},target:{selector:".as-oil-cpc__switch"},type:"click"},type:"E"},{matcher:{parent:{selector:".as-oil-cpc__purpose-container",textFilter:["Annoncevalg, levering og rapportering","Ad selection, delivery, reporting"]},target:{selector:"input"},type:"checkbox"},toggleAction:{parent:{selector:".as-oil-cpc__purpose-container",textFilter:["Annoncevalg, levering og rapportering","Ad selection, delivery, reporting"]},target:{selector:".as-oil-cpc__switch"},type:"click"},type:"F"},{matcher:{parent:{selector:".as-oil-cpc__purpose-container",textFilter:["Personalisering af indhold","Content selection, delivery, reporting"]},target:{selector:"input"},type:"checkbox"},toggleAction:{parent:{selector:".as-oil-cpc__purpose-container",textFilter:["Personalisering af indhold","Content selection, delivery, reporting"]},target:{selector:".as-oil-cpc__switch"},type:"click"},type:"E"},{matcher:{parent:{childFilter:{target:{selector:".as-oil-cpc__purpose-header",textFilter:["Måling","Measurement"]}},selector:".as-oil-cpc__purpose-container"},target:{selector:"input"},type:"checkbox"},toggleAction:{parent:{childFilter:{target:{selector:".as-oil-cpc__purpose-header",textFilter:["Måling","Measurement"]}},selector:".as-oil-cpc__purpose-container"},target:{selector:".as-oil-cpc__switch"},type:"click"},type:"B"},{matcher:{parent:{selector:".as-oil-cpc__purpose-container",textFilter:"Google"},target:{selector:"input"},type:"checkbox"},toggleAction:{parent:{selector:".as-oil-cpc__purpose-container",textFilter:"Google"},target:{selector:".as-oil-cpc__switch"},type:"click"},type:"F"}],type:"consent"}],type:"list"},name:"DO_CONSENT"},{action:{target:{selector:".as-oil__btn-optin"},type:"click"},name:"SAVE_CONSENT"},{action:{target:{selector:"div.as-oil"},type:"hide"},name:"HIDE_CMP"}]},optanon:{detectors:[{presentMatcher:{target:{selector:"#optanon-menu, .optanon-alert-box-wrapper"},type:"css"},showingMatcher:{target:{displayFilter:!0,selector:".optanon-alert-box-wrapper"},type:"css"}}],methods:[{action:{actions:[{target:{selector:".optanon-alert-box-wrapper .optanon-toggle-display, a[onclick*='OneTrust.ToggleInfoDisplay()'], a[onclick*='Optanon.ToggleInfoDisplay()']"},type:"click"}],type:"list"},name:"OPEN_OPTIONS"},{action:{actions:[{target:{selector:".preference-menu-item #Your-privacy"},type:"click"},{target:{selector:"#optanon-vendor-consent-text"},type:"click"},{action:{consents:[{matcher:{target:{selector:"input"},type:"checkbox"},toggleAction:{target:{selector:"label"},type:"click"},type:"X"}],type:"consent"},target:{selector:"#optanon-vendor-consent-list .vendor-item"},type:"foreach"},{target:{selector:".vendor-consent-back-link"},type:"click"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-performance"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-performance"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"B"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-functional"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-functional"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"E"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-advertising"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-advertising"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"F"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-social"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-social"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"B"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Social Media Cookies"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Social Media Cookies"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"B"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Personalisation"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Personalisation"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"E"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Site monitoring cookies"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Site monitoring cookies"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"B"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Third party privacy-enhanced content"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Third party privacy-enhanced content"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"X"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Performance & Advertising Cookies"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Performance & Advertising Cookies"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"F"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Information storage and access"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Information storage and access"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"D"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Ad selection, delivery, reporting"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Ad selection, delivery, reporting"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"F"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Content selection, delivery, reporting"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Content selection, delivery, reporting"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"E"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Measurement"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Measurement"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"B"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Recommended Cookies"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Recommended Cookies"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"X"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Unclassified Cookies"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Unclassified Cookies"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"X"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Analytical Cookies"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Analytical Cookies"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"B"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Marketing Cookies"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Marketing Cookies"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"F"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Personalization"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Personalization"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"E"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Ad Selection, Delivery & Reporting"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Ad Selection, Delivery & Reporting"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"F"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Content Selection, Delivery & Reporting"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Content Selection, Delivery & Reporting"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"E"}],type:"consent"}],type:"list"},type:"ifcss"}],type:"list"},name:"DO_CONSENT"},{action:{parent:{selector:".optanon-save-settings-button"},target:{selector:".optanon-white-button-middle"},type:"click"},name:"SAVE_CONSENT"},{action:{actions:[{target:{selector:"#optanon-popup-wrapper"},type:"hide"},{target:{selector:"#optanon-popup-bg"},type:"hide"},{target:{selector:".optanon-alert-box-wrapper"},type:"hide"}],type:"list"},name:"HIDE_CMP"}]},quantcast2:{detectors:[{presentMatcher:{target:{selector:"[data-tracking-opt-in-overlay]"},type:"css"},showingMatcher:{target:{selector:"[data-tracking-opt-in-overlay] [data-tracking-opt-in-learn-more]"},type:"css"}}],methods:[{action:{target:{selector:"[data-tracking-opt-in-overlay] [data-tracking-opt-in-learn-more]"},type:"click"},name:"OPEN_OPTIONS"},{action:{actions:[{type:"wait",waitTime:500},{action:{actions:[{target:{selector:"div",textFilter:["Information storage and access"]},trueAction:{consents:[{matcher:{target:{selector:"input"},type:"checkbox"},toggleAction:{target:{selector:"label"},type:"click"},type:"D"}],type:"consent"},type:"ifcss"},{target:{selector:"div",textFilter:["Personalization"]},trueAction:{consents:[{matcher:{target:{selector:"input"},type:"checkbox"},toggleAction:{target:{selector:"label"},type:"click"},type:"F"}],type:"consent"},type:"ifcss"},{target:{selector:"div",textFilter:["Ad selection, delivery, reporting"]},trueAction:{consents:[{matcher:{target:{selector:"input"},type:"checkbox"},toggleAction:{target:{selector:"label"},type:"click"},type:"F"}],type:"consent"},type:"ifcss"},{target:{selector:"div",textFilter:["Content selection, delivery, reporting"]},trueAction:{consents:[{matcher:{target:{selector:"input"},type:"checkbox"},toggleAction:{target:{selector:"label"},type:"click"},type:"E"}],type:"consent"},type:"ifcss"},{target:{selector:"div",textFilter:["Measurement"]},trueAction:{consents:[{matcher:{target:{selector:"input"},type:"checkbox"},toggleAction:{target:{selector:"label"},type:"click"},type:"B"}],type:"consent"},type:"ifcss"},{target:{selector:"div",textFilter:["Other Partners"]},trueAction:{consents:[{matcher:{target:{selector:"input"},type:"checkbox"},toggleAction:{target:{selector:"label"},type:"click"},type:"X"}],type:"consent"},type:"ifcss"}],type:"list"},parent:{childFilter:{target:{selector:"input"}},selector:"[data-tracking-opt-in-overlay] > div > div"},target:{childFilter:{target:{selector:"input"}},selector:":scope > div"},type:"foreach"}],type:"list"},name:"DO_CONSENT"},{action:{target:{selector:"[data-tracking-opt-in-overlay] [data-tracking-opt-in-save]"},type:"click"},name:"SAVE_CONSENT"}]},springer:{detectors:[{presentMatcher:{parent:null,target:{selector:".cmp-app_gdpr"},type:"css"},showingMatcher:{parent:null,target:{displayFilter:!0,selector:".cmp-popup_popup"},type:"css"}}],methods:[{action:{actions:[{target:{selector:".cmp-intro_rejectAll"},type:"click"},{type:"wait",waitTime:250},{target:{selector:".cmp-purposes_purposeItem:not(.cmp-purposes_selectedPurpose)"},type:"click"}],type:"list"},name:"OPEN_OPTIONS"},{action:{consents:[{matcher:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Przechowywanie informacji na urządzeniu lub dostęp do nich",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch .cmp-switch_isSelected"},type:"css"},toggleAction:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Przechowywanie informacji na urządzeniu lub dostęp do nich",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch:not(.cmp-switch_isSelected)"},type:"click"},type:"D"},{matcher:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Wybór podstawowych reklam",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch .cmp-switch_isSelected"},type:"css"},toggleAction:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Wybór podstawowych reklam",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch:not(.cmp-switch_isSelected)"},type:"click"},type:"F"},{matcher:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Tworzenie profilu spersonalizowanych reklam",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch .cmp-switch_isSelected"},type:"css"},toggleAction:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Tworzenie profilu spersonalizowanych reklam",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch:not(.cmp-switch_isSelected)"},type:"click"},type:"F"},{matcher:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Wybór spersonalizowanych reklam",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch .cmp-switch_isSelected"},type:"css"},toggleAction:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Wybór spersonalizowanych reklam",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch:not(.cmp-switch_isSelected)"},type:"click"},type:"E"},{matcher:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Tworzenie profilu spersonalizowanych treści",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch .cmp-switch_isSelected"},type:"css"},toggleAction:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Tworzenie profilu spersonalizowanych treści",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch:not(.cmp-switch_isSelected)"},type:"click"},type:"E"},{matcher:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Wybór spersonalizowanych treści",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch .cmp-switch_isSelected"},type:"css"},toggleAction:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Wybór spersonalizowanych treści",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch:not(.cmp-switch_isSelected)"},type:"click"},type:"B"},{matcher:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Pomiar wydajności reklam",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch .cmp-switch_isSelected"},type:"css"},toggleAction:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Pomiar wydajności reklam",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch:not(.cmp-switch_isSelected)"},type:"click"},type:"B"},{matcher:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Pomiar wydajności treści",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch .cmp-switch_isSelected"},type:"css"},toggleAction:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Pomiar wydajności treści",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch:not(.cmp-switch_isSelected)"},type:"click"},type:"B"},{matcher:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Stosowanie badań rynkowych w celu generowania opinii odbiorców",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch .cmp-switch_isSelected"},type:"css"},toggleAction:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Stosowanie badań rynkowych w celu generowania opinii odbiorców",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch:not(.cmp-switch_isSelected)"},type:"click"},type:"X"},{matcher:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Opracowywanie i ulepszanie produktów",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch .cmp-switch_isSelected"},type:"css"},toggleAction:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Opracowywanie i ulepszanie produktów",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch:not(.cmp-switch_isSelected)"},type:"click"},type:"X"}],type:"consent"},name:"DO_CONSENT"},{action:{target:{selector:".cmp-details_save"},type:"click"},name:"SAVE_CONSENT"}]},wordpressgdpr:{detectors:[{presentMatcher:{parent:null,target:{selector:".wpgdprc-consent-bar"},type:"css"},showingMatcher:{parent:null,target:{displayFilter:!0,selector:".wpgdprc-consent-bar"},type:"css"}}],methods:[{action:{parent:null,target:{selector:".wpgdprc-consent-bar .wpgdprc-consent-bar__settings",textFilter:null},type:"click"},name:"OPEN_OPTIONS"},{action:{actions:[{target:{selector:".wpgdprc-consent-modal .wpgdprc-button",textFilter:"Eyeota"},type:"click"},{consents:[{description:"Eyeota Cookies",matcher:{parent:{selector:".wpgdprc-consent-modal__description",textFilter:"Eyeota"},target:{selector:"input"},type:"checkbox"},toggleAction:{parent:{selector:".wpgdprc-consent-modal__description",textFilter:"Eyeota"},target:{selector:"label"},type:"click"},type:"X"}],type:"consent"},{target:{selector:".wpgdprc-consent-modal .wpgdprc-button",textFilter:"Advertising"},type:"click"},{consents:[{description:"Advertising Cookies",matcher:{parent:{selector:".wpgdprc-consent-modal__description",textFilter:"Advertising"},target:{selector:"input"},type:"checkbox"},toggleAction:{parent:{selector:".wpgdprc-consent-modal__description",textFilter:"Advertising"},target:{selector:"label"},type:"click"},type:"F"}],type:"consent"}],type:"list"},name:"DO_CONSENT"},{action:{parent:null,target:{selector:".wpgdprc-button",textFilter:"Save my settings"},type:"click"},name:"SAVE_CONSENT"}]}},P={autoconsent:S,consentomatic:A},O=Object.freeze({__proto__:null,autoconsent:S,consentomatic:A,default:P});const I=new class{constructor(t,c=null,i=null){this.id=e(),this.rules=[],this.foundCmp=null,this.state={lifecycle:"loading",prehideOn:!1,findCmpAttempts:0,detectedCmps:[],detectedPopups:[],selfTest:null},o.sendContentMessage=t,this.sendContentMessage=t,this.rules=[...w],this.updateState({lifecycle:"loading"}),c?this.initialize(c,i):(i&&this.parseRules(i),t({type:"init",url:window.location.href}),this.updateState({lifecycle:"waitingForInitResponse"}))}initialize(e,t){if(this.config=e,e.enabled){if(t&&this.parseRules(t),this.rules=function(e,t){return e.filter((e=>(!t.disabledCmps||!t.disabledCmps.includes(e.name))&&(t.enableCosmeticRules||!e.isCosmetic)))}(this.rules,e),e.enablePrehide)if(document.documentElement)this.prehideElements();else{const e=()=>{window.removeEventListener("DOMContentLoaded",e),this.prehideElements()};window.addEventListener("DOMContentLoaded",e)}if("loading"===document.readyState){const e=()=>{window.removeEventListener("DOMContentLoaded",e),this.start()};window.addEventListener("DOMContentLoaded",e)}else this.start();this.updateState({lifecycle:"initialized"})}}parseRules(e){Object.keys(e.consentomatic).forEach((t=>{this.addConsentomaticCMP(t,e.consentomatic[t])})),e.autoconsent.forEach((e=>{this.addCMP(e)}))}addCMP(e){this.rules.push(function(e){return new y(e)}(e))}addConsentomaticCMP(e,t){this.rules.push(new x(`com_${e}`,t))}start(){window.requestIdleCallback?window.requestIdleCallback((()=>this._start()),{timeout:500}):this._start()}async _start(){this.updateState({lifecycle:"started"});const e=await this.findCmp(this.config.detectRetries);if(this.updateState({detectedCmps:e.map((e=>e.name))}),0===e.length)return this.config.enablePrehide&&this.undoPrehide(),this.updateState({lifecycle:"nothingDetected"}),!1;this.updateState({lifecycle:"cmpDetected"});let t=await this.detectPopups(e.filter((e=>!e.isCosmetic)));if(0===t.length&&(t=await this.detectPopups(e.filter((e=>e.isCosmetic)))),0===t.length)return this.config.enablePrehide&&this.undoPrehide(),!1;if(this.updateState({lifecycle:"openPopupDetected"}),t.length>1){const e={msg:"Found multiple CMPs, check the detection rules.",cmps:t.map((e=>e.name))};this.sendContentMessage({type:"autoconsentError",details:e})}return this.foundCmp=t[0],"optOut"===this.config.autoAction?await this.doOptOut():"optIn"!==this.config.autoAction||await this.doOptIn()}async findCmp(e){this.updateState({findCmpAttempts:this.state.findCmpAttempts+1});const t=[];for(const o of this.rules)try{if(!o.checkRunContext())continue;await o.detectCmp()&&(this.sendContentMessage({type:"cmpDetected",url:location.href,cmp:o.name}),t.push(o))}catch(e){}return 0===t.length&&e>0?new Promise((t=>{setTimeout((async()=>{const o=this.findCmp(e-1);t(o)}),500)})):t}async detectPopups(e){const t=[],o=e.map((e=>this.waitForPopup(e).then((o=>{o&&(this.updateState({detectedPopups:this.state.detectedPopups.concat([e.name])}),this.sendContentMessage({type:"popupFound",cmp:e.name,url:location.href}),t.push(e))})).catch((()=>null))));return await Promise.all(o),t}async doOptOut(){let e;return this.updateState({lifecycle:"runningOptOut"}),e=!!this.foundCmp&&await this.foundCmp.optOut(),this.config.enablePrehide&&this.undoPrehide(),this.sendContentMessage({type:"optOutResult",cmp:this.foundCmp?this.foundCmp.name:"none",result:e,scheduleSelfTest:this.foundCmp&&this.foundCmp.hasSelfTest,url:location.href}),e&&!this.foundCmp.isIntermediate?(this.sendContentMessage({type:"autoconsentDone",cmp:this.foundCmp.name,isCosmetic:this.foundCmp.isCosmetic,url:location.href}),this.updateState({lifecycle:"done"})):this.updateState({lifecycle:e?"optOutSucceeded":"optOutFailed"}),e}async doOptIn(){let e;return this.updateState({lifecycle:"runningOptIn"}),e=!!this.foundCmp&&await this.foundCmp.optIn(),this.config.enablePrehide&&this.undoPrehide(),this.sendContentMessage({type:"optInResult",cmp:this.foundCmp?this.foundCmp.name:"none",result:e,scheduleSelfTest:!1,url:location.href}),e&&!this.foundCmp.isIntermediate?(this.sendContentMessage({type:"autoconsentDone",cmp:this.foundCmp.name,isCosmetic:this.foundCmp.isCosmetic,url:location.href}),this.updateState({lifecycle:"done"})):this.updateState({lifecycle:e?"optInSucceeded":"optInFailed"}),e}async doSelfTest(){let e;return e=!!this.foundCmp&&await this.foundCmp.test(),this.sendContentMessage({type:"selfTestResult",cmp:this.foundCmp?this.foundCmp.name:"none",result:e,url:location.href}),this.updateState({selfTest:e}),e}async waitForPopup(e,t=5,o=500){const c=await e.detectPopup();return!c&&t>0?new Promise((c=>setTimeout((()=>c(this.waitForPopup(e,t-1,o))),o))):c}prehideElements(){const e=this.rules.reduce(((e,t)=>t.prehideSelectors?[...e,...t.prehideSelectors]:e),["#didomi-popup,.didomi-popup-container,.didomi-popup-notice,.didomi-consent-popup-preferences,#didomi-notice,.didomi-popup-backdrop,.didomi-screen-medium"]);return this.updateState({prehideOn:!0}),function(e){return i(c("autoconsent-prehide"),e,"opacity")}(e)}undoPrehide(){return this.updateState({prehideOn:!1}),function(){const e=c("autoconsent-prehide");return e&&e.remove(),!!e}()}updateState(e){Object.assign(this.state,e),this.sendContentMessage({type:"report",instanceId:this.id,url:window.location.href,mainFrame:window.top===window.self,state:this.state})}async receiveMessageCallback(e){switch(e.type){case"initResp":this.initialize(e.config,e.rules);break;case"optIn":await this.doOptIn();break;case"optOut":await this.doOptOut();break;case"selfTest":await this.doSelfTest();break;case"evalResp":!function(e,t){const c=o.pending.get(e);c?(o.pending.delete(e),c.timer&&window.clearTimeout(c.timer),c.resolve(t)):console.warn("no eval #",e)}(e.id,e.result)}}}((e=>{window.webkit.messageHandlers[e.type]&&window.webkit.messageHandlers[e.type].postMessage(e).then((e=>{I.receiveMessageCallback(e)}))}),null,O);window.autoconsentMessageCallback=e=>{I.receiveMessageCallback(e)}}(); +!function(){"use strict";function e(){return crypto&&void 0!==crypto.randomUUID?crypto.randomUUID():Math.random().toString()}var t=class{constructor(e,t=1e3){this.id=e,this.promise=new Promise(((e,t)=>{this.resolve=e,this.reject=t})),this.timer=window.setTimeout((()=>{this.reject(new Error("timeout"))}),t)}},o={pending:new Map,sendContentMessage:null};function c(e="autoconsent-css-rules"){const t=`style#${e}`,o=document.querySelector(t);if(o&&o instanceof HTMLStyleElement)return o;{const t=document.head||document.getElementsByTagName("head")[0]||document.documentElement,o=document.createElement("style");return o.id=e,t.appendChild(o),o}}function i(e,t,o="display"){const c="opacity"===o?"opacity: 0":"display: none",i=`${t.join(",")} { ${c} !important; z-index: -1 !important; pointer-events: none !important; } `;return e instanceof HTMLStyleElement&&(e.innerText+=i,t.length>0)}async function n(e,t,o){const c=await e();return!c&&t>0?new Promise((c=>{setTimeout((async()=>{c(n(e,t-1,o))}),o)})):Promise.resolve(c)}function a(e){if(!e)return!1;if(null!==e.offsetParent)return!0;{const t=window.getComputedStyle(e);if("fixed"===t.position&&"none"!==t.display)return!0}return!1}function s(c){return function(c){const i=e();o.sendContentMessage({type:"eval",id:i,code:c});const n=new t(i);return o.pending.set(n.id,n),n.promise}(c).catch((e=>!1))}function r(e,t=!1){const o=k(e);return o.length>0&&(t?o.forEach((e=>e.click())):o[0].click()),o.length>0}function p(e){return k(e).length>0}function l(e,t){const o=k(e),c=new Array(o.length);return o.forEach(((e,t)=>{c[t]=a(e)})),"none"===t?c.every((e=>!e)):0!==c.length&&("any"===t?c.some((e=>e)):c.every((e=>e)))}function d(e,t=1e4){return n((()=>k(e).length>0),Math.ceil(t/200),200)}async function u(e,t=1e4,o=!1){return await d(e,t),r(e,o)}function m(e){return new Promise((t=>{setTimeout((()=>{t(!0)}),e)}))}function h(e,t=document){if(e.startsWith("aria/"))return[];if(e.startsWith("xpath/")){const o=e.slice(6),c=document.evaluate(o,t,null,XPathResult.ANY_TYPE,null);let i=null;const n=[];for(;i=c.iterateNext();)n.push(i);return n}return e.startsWith("text/")||e.startsWith("pierce/")?[]:t.shadowRoot?Array.from(t.shadowRoot.querySelectorAll(e)):Array.from(t.querySelectorAll(e))}function k(e){return"string"==typeof e?h(e):function(e){let t,o=document;for(const c of e){if(t=h(c,o),0===t.length)return[];o=t[0]}return t}(e)}var b={main:!0,frame:!1,urlPattern:""},g=class{constructor(e){this.runContext=b,this.name=e}get hasSelfTest(){throw new Error("Not Implemented")}get isIntermediate(){throw new Error("Not Implemented")}get isCosmetic(){throw new Error("Not Implemented")}checkRunContext(){const e={...b,...this.runContext},t=window.top===window;return!(t&&!e.main)&&(!(!t&&!e.frame)&&!(e.urlPattern&&!window.location.href.match(e.urlPattern)))}detectCmp(){throw new Error("Not Implemented")}async detectPopup(){return!1}optOut(){throw new Error("Not Implemented")}optIn(){throw new Error("Not Implemented")}openCmp(){throw new Error("Not Implemented")}async test(){return Promise.resolve(!0)}};async function y(e){const t=[];if(e.exists&&t.push(p(e.exists)),e.visible&&t.push(l(e.visible,e.check)),e.eval){const o=s(e.eval);t.push(o)}var o,a;if(e.waitFor&&t.push(d(e.waitFor,e.timeout)),e.waitForVisible&&t.push(function(e,t=1e4,o="any"){return n((()=>l(e,o)),Math.ceil(t/200),200)}(e.waitForVisible,e.timeout,e.check)),e.click&&t.push(r(e.click,e.all)),e.waitForThenClick&&t.push(u(e.waitForThenClick,e.timeout,e.all)),e.wait&&t.push(m(e.wait)),e.hide&&t.push((o=e.hide,a=e.method,i(c(),o,a))),e.if){if(!e.if.exists&&!e.if.visible)return console.error("invalid conditional rule",e.if),!1;await y(e.if)?t.push(w(e.then)):e.else&&t.push(w(e.else))}if(e.any){for(const t of e.any)if(await y(t))return!0;return!1}if(0===t.length)return!1;return(await Promise.all(t)).reduce(((e,t)=>e&&t),!0)}async function w(e){for(const t of e){if(!await y(t)&&!t.optional)return!1}return!0}var _=class extends g{constructor(e){super(e.name),this.config=e,this.runContext=e.runContext||b}get hasSelfTest(){return!!this.config.test}get isIntermediate(){return!!this.config.intermediate}get isCosmetic(){return!!this.config.cosmetic}get prehideSelectors(){return this.config.prehideSelectors}async detectCmp(){return!!this.config.detectCmp&&async function(e){const t=e.map((e=>y(e)));return(await Promise.all(t)).every((e=>!!e))}(this.config.detectCmp)}async detectPopup(){return!!this.config.detectPopup&&w(this.config.detectPopup)}async optOut(){return!!this.config.optOut&&w(this.config.optOut)}async optIn(){return!!this.config.optIn&&w(this.config.optIn)}async openCmp(){return!!this.config.openCmp&&w(this.config.openCmp)}async test(){return this.hasSelfTest?w(this.config.test):super.test()}},v="#truste-show-consent",f="#truste-consent-track";var C=[new class extends g{constructor(){super("TrustArc-top"),this.prehideSelectors=[".trustarc-banner-container",`.truste_popframe,.truste_overlay,.truste_box_overlay,${f}`],this.runContext={main:!0,frame:!1},this._shortcutButton=null,this._optInDone=!1}get hasSelfTest(){return!1}get isIntermediate(){return!this._optInDone&&!this._shortcutButton}get isCosmetic(){return!1}async detectCmp(){const e=p(`${v},${f}`);return e&&(this._shortcutButton=document.querySelector("#truste-consent-required")),e}async detectPopup(){return l(`#truste-consent-content,#trustarc-banner-overlay,${f}`,"all")}openFrame(){r(v)}async optOut(){return this._shortcutButton?(this._shortcutButton.click(),!0):(i(c(),[".truste_popframe",".truste_overlay",".truste_box_overlay",f]),r(v),setTimeout((()=>{c().remove()}),1e4),!0)}async optIn(){return this._optInDone=!0,r("#truste-consent-button")}async openCmp(){return!0}async test(){return await s("window && window.truste && window.truste.eu.bindMap.prefCookie === '0'")}},new class extends g{constructor(){super("TrustArc-frame"),this.runContext={main:!1,frame:!0,urlPattern:"^https://consent-pref\\.trustarc\\.com/\\?"}}get hasSelfTest(){return!1}get isIntermediate(){return!1}get isCosmetic(){return!1}async detectCmp(){return!0}async detectPopup(){return l("#defaultpreferencemanager","any")&&l(".mainContent","any")}async navigateToSettings(){return await n((async()=>p(".shp")||l(".advance","any")||p(".switch span:first-child")),10,500),p(".shp")&&r(".shp"),await d(".prefPanel",5e3),l(".advance","any")&&r(".advance"),await n((()=>l(".switch span:first-child","any")),5,1e3)}async optOut(){return await n((()=>"complete"===document.readyState),20,100),await d(".mainContent[aria-hidden=false]",5e3),!!r(".rejectAll")||(p(".prefPanel")&&await d('.prefPanel[style="visibility: visible;"]',3e3),r("#catDetails0")?(r(".submit"),!0):(r(".required")||(await this.navigateToSettings(),r(".switch span:nth-child(1):not(.active)",!0),r(".submit"),d("#gwt-debug-close_id",3e5).then((()=>{r("#gwt-debug-close_id")}))),!0))}async optIn(){return r(".call")||(await this.navigateToSettings(),r(".switch span:nth-child(2)",!0),r(".submit"),d("#gwt-debug-close_id",3e5).then((()=>{r("#gwt-debug-close_id")}))),!0}},new class extends g{constructor(){super("Cybotcookiebot"),this.prehideSelectors=["#CybotCookiebotDialog,#dtcookie-container,#cookiebanner,#cb-cookieoverlay"]}get hasSelfTest(){return!0}get isIntermediate(){return!1}get isCosmetic(){return!1}async detectCmp(){return p("#CybotCookiebotDialogBodyLevelButtonPreferences")}async detectPopup(){return p("#CybotCookiebotDialog,#dtcookie-container,#cookiebanner,#cb-cookiebanner")}async optOut(){return r(".cookie-alert-extended-detail-link")?(await d(".cookie-alert-configuration",2e3),r(".cookie-alert-configuration-input:checked",!0),r(".cookie-alert-extended-button-secondary"),!0):p("#dtcookie-container")?r(".h-dtcookie-decline"):(r(".cookiebot__button--settings")||r("#CybotCookiebotDialogBodyButtonDecline")||(r(".cookiebanner__link--details"),r('.CybotCookiebotDialogBodyLevelButton:checked:enabled,input[id*="CybotCookiebotDialogBodyLevelButton"]:checked:enabled',!0),r("#CybotCookiebotDialogBodyButtonDecline"),r("input[id^=CybotCookiebotDialogBodyLevelButton]:checked",!0),p("#CybotCookiebotDialogBodyButtonAcceptSelected")?r("#CybotCookiebotDialogBodyButtonAcceptSelected"):r("#CybotCookiebotDialogBodyLevelButtonAccept,#CybotCookiebotDialogBodyButtonAccept,#CybotCookiebotDialogBodyLevelButtonLevelOptinAllowallSelection",!0),await s("window.CookieConsent.hasResponse !== true")&&(await s("window.Cookiebot.dialog.submitConsent()"),await m(500)),p("#cb-confirmedSettings")&&await s("endCookieProcess()")),!0)}async optIn(){return p("#dtcookie-container")?r(".h-dtcookie-accept"):(r(".CybotCookiebotDialogBodyLevelButton:not(:checked):enabled",!0),r("#CybotCookiebotDialogBodyLevelButtonAccept"),r("#CybotCookiebotDialogBodyButtonAccept"),!0)}async test(){return s("window.CookieConsent.declined === true")}},new class extends g{constructor(){super("Sourcepoint-frame"),this.prehideSelectors=["div[id^='sp_message_container_'],.message-overlay","#sp_privacy_manager_container"],this.ccpaNotice=!1,this.ccpaPopup=!1,this.runContext={main:!1,frame:!0}}get hasSelfTest(){return!1}get isIntermediate(){return!1}get isCosmetic(){return!1}async detectCmp(){const e=new URL(location.href);return e.searchParams.has("message_id")&&"ccpa-notice.sp-prod.net"===e.hostname?(this.ccpaNotice=!0,!0):"ccpa-pm.sp-prod.net"===e.hostname?(this.ccpaPopup=!0,!0):("/index.html"===e.pathname||"/privacy-manager/index.html"===e.pathname)&&(e.searchParams.has("message_id")||e.searchParams.has("requestUUID")||e.searchParams.has("consentUUID"))}async detectPopup(){return!!this.ccpaNotice||(this.ccpaPopup?await d(".priv-save-btn",2e3):(await d(".sp_choice_type_11,.sp_choice_type_12,.sp_choice_type_13,.sp_choice_type_ACCEPT_ALL",2e3),!p(".sp_choice_type_9")))}async optIn(){return await d(".sp_choice_type_11,.sp_choice_type_ACCEPT_ALL",2e3),!!r(".sp_choice_type_11")||!!r(".sp_choice_type_ACCEPT_ALL")}isManagerOpen(){return"/privacy-manager/index.html"===location.pathname}async optOut(){if(this.ccpaPopup){const e=document.querySelectorAll(".priv-purpose-container .sp-switch-arrow-block a.neutral.on .right");for(const t of e)t.click();const t=document.querySelectorAll(".priv-purpose-container .sp-switch-arrow-block a.switch-bg.on");for(const e of t)e.click();return r(".priv-save-btn")}if(!this.isManagerOpen()){if(!await d(".sp_choice_type_12,.sp_choice_type_13"))return!1;if(!p(".sp_choice_type_12"))return r(".sp_choice_type_13");r(".sp_choice_type_12"),await n((()=>this.isManagerOpen()),200,100)}await d(".type-modal",2e4);try{const e=".sp_choice_type_REJECT_ALL",t=".reject-toggle",o=await Promise.race([d(e,2e3).then((e=>e?0:-1)),d(t,2e3).then((e=>e?1:-1)),d(".pm-features",2e3).then((e=>e?2:-1))]);if(0===o)return await m(1e3),r(e);1===o?r(t):2===o&&(await d(".pm-features",1e4),r(".checked > span",!0),r(".chevron"))}catch(e){}return r(".sp_choice_type_SAVE_AND_EXIT")}},new class extends g{constructor(){super("consentmanager.net"),this.prehideSelectors=["#cmpbox,#cmpbox2"],this.apiAvailable=!1}get hasSelfTest(){return this.apiAvailable}get isIntermediate(){return!1}get isCosmetic(){return!1}async detectCmp(){return this.apiAvailable=await s('window.__cmp && typeof __cmp("getCMPData") === "object"'),!!this.apiAvailable||p("#cmpbox")}async detectPopup(){return this.apiAvailable?(await m(500),await s("!__cmp('consentStatus').userChoiceExists")):l("#cmpbox .cmpmore","any")}async optOut(){return await m(500),this.apiAvailable?await s("__cmp('setConsent', 0)"):!!r(".cmpboxbtnno")||(p(".cmpwelcomeprpsbtn")?(r(".cmpwelcomeprpsbtn > a[aria-checked=true]",!0),r(".cmpboxbtnsave"),!0):(r(".cmpboxbtncustom"),await d(".cmptblbox",2e3),r(".cmptdchoice > a[aria-checked=true]",!0),r(".cmpboxbtnyescustomchoices"),!0))}async optIn(){return this.apiAvailable?await s("__cmp('setConsent', 1)"):r(".cmpboxbtnyes")}async test(){if(this.apiAvailable)return await s("__cmp('consentStatus').userChoiceExists")}},new class extends g{constructor(){super("Evidon")}get hasSelfTest(){return!1}get isIntermediate(){return!1}get isCosmetic(){return!1}async detectCmp(){return p("#_evidon_banner")}async detectPopup(){return l("#_evidon_banner","any")}async optOut(){return r("#_evidon-decline-button")||(i(c(),["#evidon-prefdiag-overlay","#evidon-prefdiag-background"]),r("#_evidon-option-button"),await d("#evidon-prefdiag-overlay",5e3),r("#evidon-prefdiag-decline")),!0}async optIn(){return r("#_evidon-accept-button")}},new class extends g{constructor(){super("Onetrust"),this.prehideSelectors=["#onetrust-banner-sdk,#onetrust-consent-sdk,.onetrust-pc-dark-filter,.js-consent-banner"],this.runContext={urlPattern:"^(?!.*https://www\\.nba\\.com/)"}}get hasSelfTest(){return!0}get isIntermediate(){return!1}get isCosmetic(){return!1}async detectCmp(){return p("#onetrust-banner-sdk")}async detectPopup(){return l("#onetrust-banner-sdk","all")}async optOut(){return p("#onetrust-pc-btn-handler")?r("#onetrust-pc-btn-handler"):r(".ot-sdk-show-settings,button.js-cookie-settings"),await d("#onetrust-consent-sdk",2e3),await m(1e3),r("#onetrust-consent-sdk input.category-switch-handler:checked,.js-editor-toggle-state:checked",!0),await m(1e3),await d(".save-preference-btn-handler,.js-consent-save",2e3),r(".save-preference-btn-handler,.js-consent-save"),await n((()=>l("#onetrust-banner-sdk","none")),10,500),!0}async optIn(){return r("#onetrust-accept-btn-handler,.js-accept-cookies")}async test(){return await s("window.OnetrustActiveGroups.split(',').filter(s => s.length > 0).length <= 1")}},new class extends g{constructor(){super("Klaro"),this.prehideSelectors=[".klaro"],this.settingsOpen=!1}get hasSelfTest(){return!0}get isIntermediate(){return!1}get isCosmetic(){return!1}async detectCmp(){return p(".klaro > .cookie-modal")?(this.settingsOpen=!0,!0):p(".klaro > .cookie-notice")}async detectPopup(){return l(".klaro > .cookie-notice,.klaro > .cookie-modal","any")}async optOut(){return!!r(".klaro .cn-decline")||(this.settingsOpen||(r(".klaro .cn-learn-more"),await d(".klaro > .cookie-modal",2e3),this.settingsOpen=!0),!!r(".klaro .cn-decline")||(r(".cm-purpose:not(.cm-toggle-all) > input:not(.half-checked)",!0),r(".cm-btn-accept")))}async optIn(){return!!r(".klaro .cm-btn-accept-all")||(this.settingsOpen?(r(".cm-purpose:not(.cm-toggle-all) > input.half-checked",!0),r(".cm-btn-accept")):r(".klaro .cookie-notice .cm-btn-success"))}async test(){return await s("klaro.getManager().config.services.every(c => c.required || !klaro.getManager().consents[c.name])")}},new class extends g{constructor(){super("Uniconsent")}get prehideSelectors(){return[".unic",".modal:has(.unic)"]}get hasSelfTest(){return!0}get isIntermediate(){return!1}get isCosmetic(){return!1}async detectCmp(){return p(".unic .unic-box,.unic .unic-bar")}async detectPopup(){return l(".unic .unic-box,.unic .unic-bar","any")}async optOut(){if(await d(".unic button",1e3),document.querySelectorAll(".unic button").forEach((e=>{const t=e.textContent;(t.includes("Manage Options")||t.includes("Optionen verwalten"))&&e.click()})),await d(".unic input[type=checkbox]",1e3)){await d(".unic button",1e3),document.querySelectorAll(".unic input[type=checkbox]").forEach((e=>{e.checked&&e.click()}));for(const e of document.querySelectorAll(".unic button")){const t=e.textContent;for(const o of["Confirm Choices","Save Choices","Auswahl speichern"])if(t.includes(o))return e.click(),await m(500),!0}}return!1}async optIn(){return u(".unic #unic-agree")}async test(){await m(1e3);return!p(".unic .unic-box,.unic .unic-bar")}},new class extends g{constructor(){super("Conversant"),this.prehideSelectors=[".cmp-root"]}get hasSelfTest(){return!0}get isIntermediate(){return!1}get isCosmetic(){return!1}async detectCmp(){return p(".cmp-root .cmp-receptacle")}async detectPopup(){return l(".cmp-root .cmp-receptacle","any")}async optOut(){if(!await u(".cmp-main-button:not(.cmp-main-button--primary)"))return!1;if(!await d(".cmp-view-tab-tabs"))return!1;await u(".cmp-view-tab-tabs > :first-child"),await u(".cmp-view-tab-tabs > .cmp-view-tab--active:first-child");for(const e of Array.from(document.querySelectorAll(".cmp-accordion-item"))){e.querySelector(".cmp-accordion-item-title").click(),await n((()=>!!e.querySelector(".cmp-accordion-item-content.cmp-active")),10,50);const t=e.querySelector(".cmp-accordion-item-content.cmp-active");t.querySelectorAll(".cmp-toggle-actions .cmp-toggle-deny:not(.cmp-toggle-deny--active)").forEach((e=>e.click())),t.querySelectorAll(".cmp-toggle-actions .cmp-toggle-checkbox:not(.cmp-toggle-checkbox--active)").forEach((e=>e.click()))}return await r(".cmp-main-button:not(.cmp-main-button--primary)"),!0}async optIn(){return u(".cmp-main-button.cmp-main-button--primary")}async test(){return document.cookie.includes("cmp-data=0")}},new class extends g{constructor(){super("tiktok.com"),this.runContext={urlPattern:"tiktok"}}get hasSelfTest(){return!0}get isIntermediate(){return!1}get isCosmetic(){return!1}getShadowRoot(){const e=document.querySelector("tiktok-cookie-banner");return e?e.shadowRoot:null}async detectCmp(){return p("tiktok-cookie-banner")}async detectPopup(){return a(this.getShadowRoot().querySelector(".tiktok-cookie-banner"))}async optOut(){const e=this.getShadowRoot().querySelector(".button-wrapper button:first-child");return!!e&&(e.click(),!0)}async optIn(){const e=this.getShadowRoot().querySelector(".button-wrapper button:last-child");return!!e&&(e.click(),!0)}async test(){const e=document.cookie.match(/cookie-consent=([^;]+)/);if(!e)return!1;const t=JSON.parse(decodeURIComponent(e[1]));return Object.values(t).every((e=>"boolean"!=typeof e||!1===e))}},new class extends g{constructor(){super("airbnb"),this.runContext={urlPattern:"^https://(www\\.)?airbnb\\.[^/]+/"},this.prehideSelectors=["div[data-testid=main-cookies-banner-container]",'div:has(> div:first-child):has(> div:last-child):has(> section [data-testid="strictly-necessary-cookies"])']}get hasSelfTest(){return!0}get isIntermediate(){return!1}get isCosmetic(){return!1}async detectCmp(){return p("div[data-testid=main-cookies-banner-container]")}async detectPopup(){return l("div[data-testid=main-cookies-banner-container","any")}async optOut(){let e;for(await u("div[data-testid=main-cookies-banner-container] button._snbhip0");e=document.querySelector("[data-testid=modal-container] button[aria-checked=true]:not([disabled])");)e.click();return u("button[data-testid=save-btn]")}async optIn(){return u("div[data-testid=main-cookies-banner-container] button._148dgdpk")}async test(){return await n((()=>!!document.cookie.match("OptanonAlertBoxClosed")),20,200)}}],x=class e{static setBase(t){e.base=t}static findElement(t,o=null,c=!1){let i=null;return i=null!=o?Array.from(o.querySelectorAll(t.selector)):null!=e.base?Array.from(e.base.querySelectorAll(t.selector)):Array.from(document.querySelectorAll(t.selector)),null!=t.textFilter&&(i=i.filter((e=>{const o=e.textContent.toLowerCase();if(Array.isArray(t.textFilter)){let e=!1;for(const c of t.textFilter)if(-1!==o.indexOf(c.toLowerCase())){e=!0;break}return e}if(null!=t.textFilter)return-1!==o.indexOf(t.textFilter.toLowerCase())}))),null!=t.styleFilters&&(i=i.filter((e=>{const o=window.getComputedStyle(e);let c=!0;for(const e of t.styleFilters){const t=o[e.option];c=e.negated?c&&t!==e.value:c&&t===e.value}return c}))),null!=t.displayFilter&&(i=i.filter((e=>t.displayFilter?0!==e.offsetHeight:0===e.offsetHeight))),null!=t.iframeFilter&&(i=i.filter((()=>t.iframeFilter?window.location!==window.parent.location:window.location===window.parent.location))),null!=t.childFilter&&(i=i.filter((o=>{const c=e.base;e.setBase(o);const i=e.find(t.childFilter);return e.setBase(c),null!=i.target}))),c?i:(i.length>1&&console.warn("Multiple possible targets: ",i,t,o),i[0])}static find(t,o=!1){const c=[];if(null!=t.parent){const i=e.findElement(t.parent,null,o);if(null!=i){if(i instanceof Array)return i.forEach((i=>{const n=e.findElement(t.target,i,o);n instanceof Array?n.forEach((e=>{c.push({parent:i,target:e})})):c.push({parent:i,target:n})})),c;{const n=e.findElement(t.target,i,o);n instanceof Array?n.forEach((e=>{c.push({parent:i,target:e})})):c.push({parent:i,target:n})}}}else{const i=e.findElement(t.target,null,o);i instanceof Array?i.forEach((e=>{c.push({parent:null,target:e})})):c.push({parent:null,target:i})}return 0===c.length&&c.push({parent:null,target:null}),o?c:(1!==c.length&&console.warn("Multiple results found, even though multiple false",c),c[0])}};x.base=null;var S=x;function P(e){const t=S.find(e);return"css"===e.type?!!t.target:"checkbox"===e.type?!!t.target&&t.target.checked:void 0}async function A(e,t){switch(e.type){case"click":return async function(e){const t=S.find(e);null!=t.target&&t.target.click();return F(O)}(e);case"list":return async function(e,t){for(const o of e.actions)await A(o,t)}(e,t);case"consent":return async function(e,t){for(const o of e.consents){const e=-1!==t.indexOf(o.type);if(o.matcher&&o.toggleAction){P(o.matcher)!==e&&await A(o.toggleAction)}else e?await A(o.trueAction):await A(o.falseAction)}}(e,t);case"ifcss":return async function(e,t){const o=S.find(e);o.target?e.falseAction&&await A(e.falseAction,t):e.trueAction&&await A(e.trueAction,t)}(e,t);case"waitcss":return async function(e){await new Promise((t=>{let o=e.retries||10;const c=e.waitTime||250,i=()=>{const n=S.find(e);(e.negated&&n.target||!e.negated&&!n.target)&&o>0?(o-=1,setTimeout(i,c)):t()};i()}))}(e);case"foreach":return async function(e,t){const o=S.find(e,!0),c=S.base;for(const c of o)c.target&&(S.setBase(c.target),await A(e.action,t));S.setBase(c)}(e,t);case"hide":return async function(e){const t=S.find(e);t.target&&t.target.classList.add("Autoconsent-Hidden")}(e);case"slide":return async function(e){const t=S.find(e),o=S.find(e.dragTarget);if(t.target){const e=t.target.getBoundingClientRect(),c=o.target.getBoundingClientRect();let i=c.top-e.top,n=c.left-e.left;"y"===this.config.axis.toLowerCase()&&(n=0),"x"===this.config.axis.toLowerCase()&&(i=0);const a=window.screenX+e.left+e.width/2,s=window.screenY+e.top+e.height/2,r=e.left+e.width/2,p=e.top+e.height/2,l=document.createEvent("MouseEvents");l.initMouseEvent("mousedown",!0,!0,window,0,a,s,r,p,!1,!1,!1,!1,0,t.target);const d=document.createEvent("MouseEvents");d.initMouseEvent("mousemove",!0,!0,window,0,a+n,s+i,r+n,p+i,!1,!1,!1,!1,0,t.target);const u=document.createEvent("MouseEvents");u.initMouseEvent("mouseup",!0,!0,window,0,a+n,s+i,r+n,p+i,!1,!1,!1,!1,0,t.target),t.target.dispatchEvent(l),await this.waitTimeout(10),t.target.dispatchEvent(d),await this.waitTimeout(10),t.target.dispatchEvent(u)}}(e);case"close":return async function(){window.close()}();case"wait":return async function(e){await F(e.waitTime)}(e);case"eval":return async function(e){return console.log("eval!",e.code),new Promise((t=>{try{e.async?(window.eval(e.code),setTimeout((()=>{t(window.eval("window.__consentCheckResult"))}),e.timeout||250)):t(window.eval(e.code))}catch(o){console.warn("eval error",o,e.code),t(!1)}}))}(e);default:throw"Unknown action type: "+e.type}}var O=0;function F(e){return new Promise((t=>{setTimeout((()=>{t()}),e)}))}var I=[{name:"192.com",detectCmp:[{exists:".ont-cookies"}],detectPopup:[{visible:".ont-cookies"}],optIn:[{click:".ont-btn-main.ont-cookies-btn.js-ont-btn-ok2"}],optOut:[{click:".ont-cookes-btn-manage"},{click:".ont-btn-main.ont-cookies-btn.js-ont-btn-choose"}],test:[{eval:"document.cookie.includes('CC_ADVERTISING=NO') && document.cookie.includes('CC_ANALYTICS=NO')"}]},{name:"1password-com",cosmetic:!0,prehideSelectors:['footer #footer-root [aria-label="Cookie Consent"]'],detectCmp:[{exists:'footer #footer-root [aria-label="Cookie Consent"]'}],detectPopup:[{visible:'footer #footer-root [aria-label="Cookie Consent"]'}],optIn:[{click:'footer #footer-root [aria-label="Cookie Consent"] button'}],optOut:[{hide:['footer #footer-root [aria-label="Cookie Consent"]']}]},{name:"Adroll",prehideSelectors:["#adroll_consent_container"],detectCmp:[{exists:"#adroll_consent_container"}],detectPopup:[{visible:"#adroll_consent_container"}],optIn:[{waitForThenClick:"#adroll_consent_accept"}],optOut:[{waitForThenClick:"#adroll_consent_reject"}],test:[{eval:"!document.cookie.includes('__adroll_fpc')"}]},{name:"affinity.serif.com",detectCmp:[{exists:".c-cookie-banner button[data-qa='allow-all-cookies']"}],detectPopup:[{visible:".c-cookie-banner"}],optIn:[{click:'button[data-qa="allow-all-cookies"]'}],optOut:[{click:'button[data-qa="manage-cookies"]'},{waitFor:'.c-cookie-banner ~ [role="dialog"]'},{waitForThenClick:'.c-cookie-banner ~ [role="dialog"] input[type="checkbox"][value="true"]',all:!0},{click:'.c-cookie-banner ~ [role="dialog"] .c-modal__action button'}],test:[{wait:500},{eval:"document.cookie.includes('serif_manage_cookies_viewed') && !document.cookie.includes('serif_allow_analytics')"}]},{name:"agolde.com",cosmetic:!0,prehideSelectors:["#modal-1 div[data-micromodal-close]"],detectCmp:[{exists:"#modal-1 div[aria-labelledby=modal-1-title]"}],detectPopup:[{exists:"#modal-1 div[data-micromodal-close]"}],optIn:[{click:'button[aria-label="Close modal"]'}],optOut:[{hide:["#modal-1 div[data-micromodal-close]"]}]},{name:"altium.com",cosmetic:!0,prehideSelectors:[".altium-privacy-bar"],detectCmp:[{exists:".altium-privacy-bar"}],detectPopup:[{exists:".altium-privacy-bar"}],optIn:[{click:"a.altium-privacy-bar__btn"}],optOut:[{hide:[".altium-privacy-bar"]}]},{name:"amazon.com",prehideSelectors:['span[data-action="sp-cc"][data-sp-cc*="rejectAllAction"]'],detectCmp:[{exists:'span[data-action="sp-cc"][data-sp-cc*="rejectAllAction"]'}],detectPopup:[{visible:'span[data-action="sp-cc"][data-sp-cc*="rejectAllAction"]'}],optIn:[{waitForVisible:"#sp-cc-accept"},{wait:500},{click:"#sp-cc-accept"}],optOut:[{waitForVisible:"#sp-cc-rejectall-link"},{wait:500},{click:"#sp-cc-rejectall-link"}]},{name:"aquasana.com",cosmetic:!0,prehideSelectors:["#consent-tracking"],detectCmp:[{exists:"#consent-tracking"}],detectPopup:[{exists:"#consent-tracking"}],optIn:[{click:"#accept_consent"}],optOut:[{hide:["#consent-tracking"]}]},{name:"arzt-auskunft.de",prehideSelectors:["#cookiescript_injected"],detectCmp:[{exists:"#cookiescript_injected"}],detectPopup:[{visible:"#cookiescript_injected"}],optOut:[{click:"#cookiescript_reject"}],optIn:[{click:"#cookiescript_accept"}]},{name:"athlinks-com",runContext:{urlPattern:"^https://(www\\.)?athlinks\\.com/"},cosmetic:!0,prehideSelectors:["#footer-container ~ div"],detectCmp:[{exists:"#footer-container ~ div"}],detectPopup:[{visible:"#footer-container > div"}],optIn:[{click:"#footer-container ~ div button"}],optOut:[{hide:["#footer-container ~ div"]}]},{name:"ausopen.com",cosmetic:!0,detectCmp:[{exists:".gdpr-popup__message"}],detectPopup:[{visible:".gdpr-popup__message"}],optOut:[{hide:[".gdpr-popup__message"]}],optIn:[{click:".gdpr-popup__message button"}]},{name:"automattic-cmp-optout",prehideSelectors:['form[class*="cookie-banner"][method="post"]'],detectCmp:[{exists:'form[class*="cookie-banner"][method="post"]'}],detectPopup:[{visible:'form[class*="cookie-banner"][method="post"]'}],optIn:[{click:'a[class*="accept-all-button"]'}],optOut:[{click:'form[class*="cookie-banner"] div[class*="simple-options"] a[class*="customize-button"]'},{waitForThenClick:"input[type=checkbox][checked]:not([disabled])",all:!0},{click:'a[class*="accept-selection-button"]'}]},{name:"aws.amazon.com",prehideSelectors:["#awsccc-cb-content","#awsccc-cs-container","#awsccc-cs-modalOverlay","#awsccc-cs-container-inner"],detectCmp:[{exists:"#awsccc-cb-content"}],detectPopup:[{visible:"#awsccc-cb-content"}],optIn:[{click:"button[data-id=awsccc-cb-btn-accept"}],optOut:[{click:"button[data-id=awsccc-cb-btn-customize]"},{waitFor:"input[aria-checked]"},{click:"input[aria-checked=true]",all:!0,optional:!0},{click:"button[data-id=awsccc-cs-btn-save]"}]},{name:"axeptio",prehideSelectors:[".axeptio_widget"],detectCmp:[{exists:".axeptio_widget"}],detectPopup:[{visible:".axeptio_widget"}],optIn:[{waitFor:".axeptio-widget--open"},{click:"button#axeptio_btn_acceptAll"}],optOut:[{waitFor:".axeptio-widget--open"},{click:"button#axeptio_btn_dismiss"}],test:[{eval:"document.cookie.includes('axeptio_authorized_vendors=%2C%2C')"}]},{name:"baden-wuerttemberg.de",prehideSelectors:[".cookie-alert.t-dark"],cosmetic:!0,detectCmp:[{exists:".cookie-alert.t-dark"}],detectPopup:[{visible:".cookie-alert.t-dark"}],optIn:[{click:".cookie-alert__form input:not([disabled]):not([checked])"},{click:".cookie-alert__button button"}],optOut:[{hide:[".cookie-alert.t-dark"]}]},{name:"bbb.org",runContext:{urlPattern:"^https://www\\.bbb\\.org/"},cosmetic:!0,prehideSelectors:['div[aria-label="use of cookies on bbb.org"]'],detectCmp:[{exists:'div[aria-label="use of cookies on bbb.org"]'}],detectPopup:[{visible:'div[aria-label="use of cookies on bbb.org"]'}],optIn:[{click:'div[aria-label="use of cookies on bbb.org"] button.bds-button-unstyled span.visually-hidden'}],optOut:[{hide:['div[aria-label="use of cookies on bbb.org"]']}]},{name:"bing.com",prehideSelectors:["#bnp_container"],detectCmp:[{exists:"#bnp_cookie_banner"}],detectPopup:[{visible:"#bnp_cookie_banner"}],optIn:[{click:"#bnp_btn_accept"}],optOut:[{click:"#bnp_btn_preference"},{click:"#mcp_savesettings"}],test:[{eval:"document.cookie.includes('AL=0') && document.cookie.includes('AD=0') && document.cookie.includes('SM=0')"}]},{name:"borlabs",detectCmp:[{exists:"._brlbs-block-content"}],detectPopup:[{visible:"._brlbs-bar-wrap,._brlbs-box-wrap"}],optIn:[{click:"a[data-cookie-accept-all]"}],optOut:[{click:"a[data-cookie-individual]"},{waitForVisible:".cookie-preference"},{click:"input[data-borlabs-cookie-checkbox]:checked",all:!0,optional:!0},{click:"#CookiePrefSave"},{wait:500}],prehideSelectors:["#BorlabsCookieBox"],test:[{eval:"!JSON.parse(decodeURIComponent(document.cookie.split(';').find(c => c.indexOf('borlabs-cookie') !== -1).split('=', 2)[1])).consents.statistics"}]},{name:"bundesregierung.de",prehideSelectors:[".bpa-cookie-banner"],detectCmp:[{exists:".bpa-cookie-banner"}],detectPopup:[{visible:".bpa-cookie-banner .bpa-module-full-hero"}],optIn:[{click:".bpa-accept-all-button"}],optOut:[{wait:500,comment:"click is not immediately recognized"},{waitForThenClick:".bpa-close-button"}],test:[{eval:"document.cookie.match('cookie-allow-tracking=0')"}]},{name:"burpee.com",cosmetic:!0,prehideSelectors:["#notice-cookie-block"],detectCmp:[{exists:"#notice-cookie-block"}],detectPopup:[{exists:"#html-body #notice-cookie-block"}],optIn:[{click:"#btn-cookie-allow"}],optOut:[{hide:["#html-body #notice-cookie-block","#notice-cookie"]}]},{name:"canva.com",prehideSelectors:['div[role="dialog"] a[data-anchor-id="cookie-policy"]'],detectCmp:[{exists:'div[role="dialog"] a[data-anchor-id="cookie-policy"]'}],detectPopup:[{exists:'div[role="dialog"] a[data-anchor-id="cookie-policy"]'}],optIn:[{click:'div[role="dialog"] button:nth-child(1)'}],optOut:[{if:{exists:'div[role="dialog"] button:nth-child(3)'},then:[{click:'div[role="dialog"] button:nth-child(2)'}],else:[{click:'div[role="dialog"] button:nth-child(2)'},{waitFor:'div[role="dialog"] a[data-anchor-id="privacy-policy"]'},{click:'div[role="dialog"] button:nth-child(2)'},{click:'div[role="dialog"] div:last-child button:only-child'}]}],test:[{eval:"!document.cookie.includes('gtm_fpc_engagement_event')"}]},{name:"cc_banner",cosmetic:!0,prehideSelectors:[".cc_banner-wrapper"],detectCmp:[{exists:".cc_banner-wrapper"}],detectPopup:[{visible:".cc_banner"}],optIn:[{click:".cc_btn_accept_all"}],optOut:[{hide:[".cc_banner-wrapper"]}]},{comment:"https://www.civicuk.com/cookie-control/",name:"civic-cookie-control",prehideSelectors:["#ccc-module,#ccc-overlay"],detectCmp:[{exists:"#ccc-module"}],detectPopup:[{visible:"#ccc"},{visible:"#ccc-module"}],optOut:[{click:"#ccc-reject-settings"}],optIn:[{click:"#ccc-recommended-settings"}]},{name:"click.io",prehideSelectors:["#cl-consent"],detectCmp:[{exists:"#cl-consent"}],detectPopup:[{visible:"#cl-consent"}],optIn:[{waitForThenClick:'#cl-consent [data-role="b_agree"]'}],optOut:[{waitFor:'#cl-consent [data-role="b_options"]'},{wait:500},{click:'#cl-consent [data-role="b_options"]'},{waitFor:'.cl-consent-popup.cl-consent-visible [data-role="alloff"]'},{click:'.cl-consent-popup.cl-consent-visible [data-role="alloff"]',all:!0},{click:'[data-role="b_save"]'}],test:[{eval:"document.cookie.includes('__lxG__consent__v2_daisybit=')",comment:"TODO: this only checks if we interacted at all"}]},{name:"clinch",intermediate:!1,runContext:{frame:!1,main:!0},prehideSelectors:[".consent-modal[role=dialog]"],detectCmp:[{exists:".consent-modal[role=dialog]"}],detectPopup:[{visible:".consent-modal[role=dialog]"}],optIn:[{click:"#consent_agree"}],optOut:[{click:"#manage_cookie_preferences"},{click:"#cookie_consent_preferences input:checked",all:!0,optional:!0},{click:"#consent_save"}],test:[{eval:"document.cookie.includes('ctc_rejected=1')"}]},{name:"clustrmaps.com",runContext:{urlPattern:"^https://(www\\.)?clustrmaps\\.com/"},cosmetic:!0,prehideSelectors:["#gdpr-cookie-message"],detectCmp:[{exists:"#gdpr-cookie-message"}],detectPopup:[{visible:"#gdpr-cookie-message"}],optIn:[{click:"button#gdpr-cookie-accept"}],optOut:[{hide:["#gdpr-cookie-message"]}]},{name:"coinbase",intermediate:!1,runContext:{frame:!0,main:!0,urlPattern:"^https://(www|help)\\.coinbase\\.com"},prehideSelectors:[],detectCmp:[{exists:"div[class^=CookieBannerContent__Container]"}],detectPopup:[{visible:"div[class^=CookieBannerContent__Container]"}],optIn:[{click:"div[class^=CookieBannerContent__CTA] :nth-last-child(1)"}],optOut:[{click:"button[class^=CookieBannerContent__Settings]"},{click:"div[class^=CookiePreferencesModal__CategoryContainer] input:checked",all:!0,optional:!0},{click:"div[class^=CookiePreferencesModal__ButtonContainer] > button"}],test:[{eval:"JSON.parse(decodeURIComponent(document.cookie.match(/cm_(eu|default)_preferences=([0-9a-zA-Z\\{\\}\\[\\]%:]*);?/)[2])).consent.length <= 1"}]},{name:"Complianz banner",prehideSelectors:["#cmplz-cookiebanner-container"],detectCmp:[{exists:"#cmplz-cookiebanner-container .cmplz-cookiebanner"}],detectPopup:[{visible:"#cmplz-cookiebanner-container .cmplz-cookiebanner",check:"any"}],optIn:[{waitForThenClick:".cmplz-cookiebanner .cmplz-accept"}],optOut:[{waitForThenClick:".cmplz-cookiebanner .cmplz-deny"}],test:[{eval:"document.cookie.includes('cmplz_banner-status=dismissed')"}]},{name:"Complianz categories",prehideSelectors:['.cc-type-categories[aria-describedby="cookieconsent:desc"]'],detectCmp:[{exists:'.cc-type-categories[aria-describedby="cookieconsent:desc"]'}],detectPopup:[{visible:'.cc-type-categories[aria-describedby="cookieconsent:desc"]'}],optIn:[{click:".cc-accept-all",optional:!0},{click:".cc-allow",optional:!0},{click:".cc-dismiss",optional:!0}],optOut:[{click:".cc-dismiss"}],test:[{eval:"!!document.cookie.match(/cmplz_[^=]+=deny/)"}]},{name:"Complianz notice",prehideSelectors:['.cc-type-info[aria-describedby="cookieconsent:desc"]'],cosmetic:!0,detectCmp:[{exists:'.cc-type-info[aria-describedby="cookieconsent:desc"]'}],detectPopup:[{visible:'.cc-type-info[aria-describedby="cookieconsent:desc"]'}],optIn:[{click:".cc-accept-all",optional:!0},{click:".cc-allow",optional:!0},{click:".cc-dismiss",optional:!0}],optOut:[{hide:['[aria-describedby="cookieconsent:desc"]']}]},{name:"Complianz optin",prehideSelectors:['.cc-type-opt-in[aria-describedby="cookieconsent:desc"]'],detectCmp:[{exists:'.cc-type-opt-in[aria-describedby="cookieconsent:desc"]'}],detectPopup:[{visible:'.cc-type-opt-in[aria-describedby="cookieconsent:desc"]'}],optIn:[{click:".cc-accept-all",optional:!0},{click:".cc-allow",optional:!0},{click:".cc-dismiss",optional:!0}],optOut:[{click:".cc-settings"},{waitForVisible:'[aria-label="cookies preferences popup"]'},{click:'[aria-label="cookies preferences popup"] input[type=checkbox]:not([disabled]):checked',all:!0,optional:!0},{click:'[aria-label="cookies preferences popup"] [aria-label="Accept Selected"], [aria-label="cookies preferences popup"] [aria-label="Save my choice"], .cc-btn-accept-selected, .cc-deny',optional:!0}],test:[{eval:"!!document.cookie.match(/cookieconsent_preferences_disabled=[^;]+/)"}]},{name:"cookie-law-info",prehideSelectors:["#cookie-law-info-bar"],detectCmp:[{exists:"#cookie-law-info-bar"}],detectPopup:[{visible:"#cookie-law-info-bar"}],optIn:[{click:'[data-cli_action="accept_all"]'}],optOut:[{hide:["#cookie-law-info-bar"]},{eval:"CLI.disableAllCookies() || CLI.reject_close() || true"}],test:[{eval:"document.cookie.indexOf('cookielawinfo-checkbox-non-necessary=yes') === -1"}]},{name:"cookie-manager-popup",cosmetic:!1,runContext:{main:!0,frame:!1},intermediate:!1,detectCmp:[{exists:"#notice-cookie-block #allow-functional-cookies, #notice-cookie-block #btn-cookie-settings"}],detectPopup:[{visible:"#notice-cookie-block"}],optIn:[{click:"#btn-cookie-allow"}],optOut:[{if:{exists:"#allow-functional-cookies"},then:[{click:"#allow-functional-cookies"}],else:[{waitForThenClick:"#btn-cookie-settings"},{waitForVisible:".modal-body"},{click:'.modal-body input:checked, .switch[data-switch="on"]',all:!0,optional:!0},{click:'[role="dialog"] .modal-footer button'}]}],prehideSelectors:["#btn-cookie-settings"],test:[{eval:"JSON.parse(document.cookie.split(';').find(c => c.trim().startsWith('CookieLevel')).split('=')[1]).social === false"}]},{name:"cookie-notice",prehideSelectors:["#cookie-notice"],cosmetic:!0,detectCmp:[{visible:"#cookie-notice .cookie-notice-container"}],detectPopup:[{visible:"#cookie-notice"}],optIn:[{click:"#cn-accept-cookie"}],optOut:[{hide:["#cookie-notice"]}]},{name:"cookiealert",intermediate:!1,prehideSelectors:[],runContext:{frame:!0,main:!0},detectCmp:[{exists:".cookie-alert-extended"}],detectPopup:[{visible:".cookie-alert-extended-modal"}],optIn:[{click:"button[data-controller='cookie-alert/extended/button/accept']"},{eval:"document.querySelector('body').removeAttribute('style') || true"}],optOut:[{click:"a[data-controller='cookie-alert/extended/detail-link']"},{click:".cookie-alert-configuration-input:checked",all:!0,optional:!0},{click:"button[data-controller='cookie-alert/extended/button/configuration']"},{eval:"document.querySelector('body').removeAttribute('style') || true"}],test:[{eval:"window.CookieConsent.declined === true"}]},{name:"cookiefirst.com",prehideSelectors:["#cookiefirst-root"],detectCmp:[{exists:"#cookiefirst-root"}],detectPopup:[{visible:"#cookiefirst-root"}],optIn:[{click:"button[data-cookiefirst-action=accept]"}],optOut:[{if:{exists:"button[data-cookiefirst-action=adjust]"},then:[{click:"button[data-cookiefirst-action=adjust]"},{waitForVisible:"[data-cookiefirst-widget=modal]",timeout:1e3},{eval:"document.querySelectorAll('button[data-cookiefirst-accent-color=true][role=checkbox]:not([disabled])').forEach(i => (i.getAttribute('aria-checked') == 'true' && i.click())) || true"},{wait:1e3},{click:"button[data-cookiefirst-action=save]"}],else:[{click:"button[data-cookiefirst-action=reject]"}]}],test:[{eval:"let o = JSON.parse(decodeURIComponent(document.cookie.split(';').find(c => c.indexOf('cookiefirst') !== -1).trim()).split('=')[1]); (o.performance === false && o.functional === false && o.advertising === false) ? true : false"}]},{name:"Cookie Information Banner",prehideSelectors:["#cookie-information-template-wrapper"],detectCmp:[{exists:"#cookie-information-template-wrapper"}],detectPopup:[{visible:"#cookie-information-template-wrapper"}],optIn:[{eval:"CookieInformation.submitAllCategories() || true"}],optOut:[{hide:["#cookie-information-template-wrapper"],comment:"some templates don't hide the banner automatically"},{eval:"CookieInformation.declineAllCategories() || true"}],test:[{eval:"document.cookie.includes('CookieInformationConsent=')"}]},{name:"corona-in-zahlen.de",prehideSelectors:[".cookiealert"],detectCmp:[{exists:".cookiealert"}],detectPopup:[{visible:".cookiealert"}],optOut:[{click:".configurecookies"},{click:".confirmcookies"}],optIn:[{click:".acceptcookies"}]},{name:"crossfit-com",cosmetic:!0,prehideSelectors:['body #modal > div > div[class^="_wrapper_"]'],detectCmp:[{exists:'body #modal > div > div[class^="_wrapper_"]'}],detectPopup:[{visible:'body #modal > div > div[class^="_wrapper_"]'}],optIn:[{click:'button[aria-label="accept cookie policy"]'}],optOut:[{hide:['body #modal > div > div[class^="_wrapper_"]']}]},{name:"dailymotion-us",cosmetic:!0,prehideSelectors:['div[class*="CookiePopup__desktopContainer"]:has(div[class*="CookiePopup"])'],detectCmp:[{exists:'div[class*="CookiePopup__desktopContainer"]'}],detectPopup:[{visible:'div[class*="CookiePopup__desktopContainer"]'}],optIn:[{click:'div[class*="CookiePopup__desktopContainer"] > button > span'}],optOut:[{hide:['div[class*="CookiePopup__desktopContainer"]']}]},{name:"dailymotion.com",runContext:{urlPattern:"^https://(www\\.)?dailymotion\\.com/"},prehideSelectors:['div[class*="Overlay__container"]:has(div[class*="TCF2Popup"])'],detectCmp:[{exists:'div[class*="TCF2Popup"]'}],detectPopup:[{visible:'[class*="TCF2Popup"] a[href^="https://www.dailymotion.com/legal/cookiemanagement"]'}],optIn:[{waitForThenClick:'button[class*="TCF2Popup__button"]:not([class*="TCF2Popup__personalize"])'}],optOut:[{waitForThenClick:'button[class*="TCF2ContinueWithoutAcceptingButton"]'}],test:[{eval:"!!document.cookie.match('dm-euconsent-v2')"}]},{name:"deepl.com",prehideSelectors:[".dl_cookieBanner_container"],detectCmp:[{exists:".dl_cookieBanner_container"}],detectPopup:[{visible:".dl_cookieBanner_container"}],optOut:[{click:".dl_cookieBanner--buttonSelected"}],optIn:[{click:".dl_cookieBanner--buttonAll"}]},{name:"delta.com",runContext:{urlPattern:"^https://www\\.delta\\.com/"},cosmetic:!0,prehideSelectors:["ngc-cookie-banner"],detectCmp:[{exists:"div.cookie-footer-container"}],detectPopup:[{visible:"div.cookie-footer-container"}],optIn:[{click:" button.cookie-close-icon"}],optOut:[{hide:["div.cookie-footer-container"]}]},{name:"dmgmedia-us",prehideSelectors:["#mol-ads-cmp-iframe, div.mol-ads-cmp > form > div"],detectCmp:[{exists:"div.mol-ads-cmp > form > div"}],detectPopup:[{waitForVisible:"div.mol-ads-cmp > form > div"}],optIn:[{waitForThenClick:"button.mol-ads-cmp--btn-primary"}],optOut:[{waitForThenClick:"div.mol-ads-ccpa--message > u > a"},{waitForVisible:".mol-ads-cmp--modal-dialog"},{waitForThenClick:"a.mol-ads-cmp-footer-privacy"},{waitForThenClick:"button.mol-ads-cmp--btn-secondary"}]},{name:"dmgmedia",prehideSelectors:['[data-project="mol-fe-cmp"]'],detectCmp:[{exists:'[data-project="mol-fe-cmp"]'}],detectPopup:[{visible:'[data-project="mol-fe-cmp"]'}],optIn:[{waitForThenClick:'[data-project="mol-fe-cmp"] button[class*=primary]'}],optOut:[{waitForThenClick:'[data-project="mol-fe-cmp"] button[class*=basic]'},{waitForVisible:'[data-project="mol-fe-cmp"] div[class*="tabContent"]'},{waitForThenClick:'[data-project="mol-fe-cmp"] div[class*="toggle"][class*="enabled"]',all:!0},{waitForThenClick:'[data-project="mol-fe-cmp"] button[class*=white]'}]},{name:"Drupal",detectCmp:[{exists:"#drupalorg-crosssite-gdpr"}],detectPopup:[{visible:"#drupalorg-crosssite-gdpr"}],optOut:[{click:".no"}],optIn:[{click:".yes"}]},{name:"WP DSGVO Tools",link:"https://wordpress.org/plugins/shapepress-dsgvo/",prehideSelectors:[".sp-dsgvo"],cosmetic:!0,detectCmp:[{exists:".sp-dsgvo.sp-dsgvo-popup-overlay"}],detectPopup:[{visible:".sp-dsgvo.sp-dsgvo-popup-overlay",check:"any"}],optIn:[{click:".sp-dsgvo-privacy-btn-accept-all",all:!0}],optOut:[{hide:[".sp-dsgvo.sp-dsgvo-popup-overlay"]}],test:[{eval:"!document.cookie.includes('sp_dsgvo_cookie_settings')"}]},{name:"dunelm.com",prehideSelectors:["div[data-testid=cookie-consent-modal-backdrop]"],detectCmp:[{exists:"div[data-testid=cookie-consent-message-contents]"}],detectPopup:[{visible:"div[data-testid=cookie-consent-message-contents]"}],optIn:[{click:'[data-testid="cookie-consent-allow-all"]'}],optOut:[{click:"button[data-testid=cookie-consent-adjust-settings]"},{click:"button[data-testid=cookie-consent-preferences-save]"}],test:[{eval:"document.cookie.includes('cc_functional=0') && document.cookie.includes('cc_targeting=0')"}]},{name:"etsy",prehideSelectors:["#gdpr-single-choice-overlay","#gdpr-privacy-settings"],detectCmp:[{exists:"#gdpr-single-choice-overlay"}],detectPopup:[{visible:"#gdpr-single-choice-overlay"}],optOut:[{click:"button[data-gdpr-open-full-settings]"},{waitForVisible:".gdpr-overlay-body input",timeout:3e3},{wait:1e3},{eval:'document.querySelectorAll(".gdpr-overlay-body input").forEach(toggle => { toggle.checked = false; }) || true'},{eval:"document.querySelector('.gdpr-overlay-view button[data-wt-overlay-close]').click() || true"}],optIn:[{click:"button[data-gdpr-single-choice-accept]"}]},{name:"eu-cookie-compliance-banner",detectCmp:[{exists:".eu-cookie-compliance-banner-info"}],detectPopup:[{exists:".eu-cookie-compliance-popup-open"}],optIn:[{click:".agree-button"}],optOut:[{click:".decline-button,.eu-cookie-compliance-save-preferences-button",optional:!0},{hide:[".eu-cookie-compliance-banner-info","#sliding-popup"]}],test:[{eval:"document.cookie.indexOf('cookie-agreed=2') === -1"}]},{name:"EU Cookie Law",prehideSelectors:[".pea_cook_wrapper,.pea_cook_more_info_popover"],cosmetic:!0,detectCmp:[{exists:".pea_cook_wrapper"}],detectPopup:[{wait:500},{visible:".pea_cook_wrapper"}],optIn:[{click:"#pea_cook_btn"}],optOut:[{hide:[".pea_cook_wrapper"]}],test:[{eval:"!document.cookie.includes('euCookie')"}]},{name:"EZoic",prehideSelectors:["#ez-cookie-dialog-wrapper"],detectCmp:[{exists:"#ez-cookie-dialog-wrapper"}],detectPopup:[{visible:"#ez-cookie-dialog-wrapper"}],optIn:[{click:"#ez-accept-all",optional:!0},{eval:"ezCMP.handleAcceptAllClick()",optional:!0}],optOut:[{wait:500},{click:"#ez-manage-settings"},{waitFor:"#ez-cookie-dialog input[type=checkbox]"},{click:"#ez-cookie-dialog input[type=checkbox][checked]",all:!0},{click:"#ez-save-settings"}],test:[{eval:"!!document.cookie.match(/ezCMPCookieConsent=[^;]+\\|2=0\\|3=0\\|4=0/)"}]},{name:"facebook",runContext:{urlPattern:"^https://([a-z0-9-]+\\.)?facebook\\.com/"},prehideSelectors:['div[data-testid="cookie-policy-manage-dialog"]'],detectCmp:[{exists:'div[data-testid="cookie-policy-manage-dialog"]'}],detectPopup:[{visible:'div[data-testid="cookie-policy-manage-dialog"]'}],optIn:[{waitForThenClick:'button[data-cookiebanner="accept_button"]'},{waitForVisible:'div[data-testid="cookie-policy-manage-dialog"]',check:"none"}],optOut:[{waitForThenClick:'button[data-cookiebanner="accept_only_essential_button"]'},{waitForVisible:'div[data-testid="cookie-policy-manage-dialog"]',check:"none"}]},{name:"funding-choices",prehideSelectors:[".fc-consent-root,.fc-dialog-container,.fc-dialog-overlay,.fc-dialog-content"],detectCmp:[{exists:".fc-consent-root"}],detectPopup:[{exists:".fc-dialog-container"}],optOut:[{click:".fc-cta-do-not-consent,.fc-cta-manage-options"},{click:".fc-preference-consent:checked,.fc-preference-legitimate-interest:checked",all:!0,optional:!0},{click:".fc-confirm-choices",optional:!0}],optIn:[{click:".fc-cta-consent"}]},{name:"geeks-for-geeks",runContext:{urlPattern:"^https://www\\.geeksforgeeks\\.org/"},cosmetic:!0,prehideSelectors:[".cookie-consent"],detectCmp:[{exists:".cookie-consent"}],detectPopup:[{visible:".cookie-consent"}],optIn:[{click:".cookie-consent button.consent-btn"}],optOut:[{hide:[".cookie-consent"]}]},{name:"generic-cosmetic",cosmetic:!0,prehideSelectors:["#js-cookie-banner,.js-cookie-banner,.cookie-banner,#cookie-banner"],detectCmp:[{exists:"#js-cookie-banner,.js-cookie-banner,.cookie-banner,#cookie-banner"}],detectPopup:[{visible:"#js-cookie-banner,.js-cookie-banner,.cookie-banner,#cookie-banner"}],optIn:[],optOut:[{hide:["#js-cookie-banner,.js-cookie-banner,.cookie-banner,#cookie-banner"]}]},{name:"google-consent-standalone",prehideSelectors:[],detectCmp:[{exists:'a[href^="https://policies.google.com/technologies/cookies"'},{exists:'form[action^="https://consent."][action$=".com/save"]'}],detectPopup:[{visible:'a[href^="https://policies.google.com/technologies/cookies"'}],optIn:[{waitForThenClick:'form[action^="https://consent."][action$=".com/save"]:has(input[name=set_eom][value=false]) button'}],optOut:[{waitForThenClick:'form[action^="https://consent."][action$=".com/save"]:has(input[name=set_eom][value=true]) button'}]},{name:"google.com",prehideSelectors:[".HTjtHe#xe7COe"],detectCmp:[{exists:".HTjtHe#xe7COe"},{exists:'.HTjtHe#xe7COe a[href^="https://policies.google.com/technologies/cookies"]'}],detectPopup:[{visible:".HTjtHe#xe7COe button#W0wltc"}],optIn:[{waitForThenClick:".HTjtHe#xe7COe button#L2AGLb"}],optOut:[{waitForThenClick:".HTjtHe#xe7COe button#W0wltc"}],test:[{eval:"!!document.cookie.match(/SOCS=CAE/)"}]},{name:"gov.uk",detectCmp:[{exists:"#global-cookie-message"}],detectPopup:[{exists:"#global-cookie-message"}],optIn:[{click:"button[data-accept-cookies=true]"}],optOut:[{click:"button[data-reject-cookies=true],#reject-cookies"},{click:"button[data-hide-cookie-banner=true],#hide-cookie-decision"}]},{name:"healthline-media",prehideSelectors:["#modal-host > div.no-hash > div.window-wrapper"],detectCmp:[{exists:"#modal-host > div.no-hash > div.window-wrapper, div[data-testid=qualtrics-container]"}],detectPopup:[{exists:"#modal-host > div.no-hash > div.window-wrapper, div[data-testid=qualtrics-container]"}],optIn:[{click:"#modal-host > div.no-hash > div.window-wrapper > div:last-child button"}],optOut:[{if:{exists:'#modal-host > div.no-hash > div.window-wrapper > div:last-child a[href="/privacy-settings"]'},then:[{click:'#modal-host > div.no-hash > div.window-wrapper > div:last-child a[href="/privacy-settings"]'}],else:[{waitForVisible:"div#__next"},{click:"#__next div:nth-child(1) > button:first-child"}]}]},{name:"hl.co.uk",prehideSelectors:[".cookieModalContent","#cookie-banner-overlay"],detectCmp:[{exists:"#cookie-banner-overlay"}],detectPopup:[{exists:"#cookie-banner-overlay"}],optIn:[{click:"#acceptCookieButton"}],optOut:[{click:"#manageCookie"},{hide:[".cookieSettingsModal"]},{waitFor:"#AOCookieToggle"},{click:"#AOCookieToggle[aria-pressed=true]",optional:!0},{waitFor:"#TPCookieToggle"},{click:"#TPCookieToggle[aria-pressed=true]",optional:!0},{click:"#updateCookieButton"}]},{name:"hubspot",detectCmp:[{exists:"#hs-eu-cookie-confirmation"}],detectPopup:[{visible:"#hs-eu-cookie-confirmation"}],optIn:[{click:"#hs-eu-confirmation-button"}],optOut:[{click:"#hs-eu-decline-button"}]},{name:"indeed.com",cosmetic:!0,prehideSelectors:["#CookiePrivacyNotice"],detectCmp:[{exists:"#CookiePrivacyNotice"}],detectPopup:[{visible:"#CookiePrivacyNotice"}],optIn:[{click:"#CookiePrivacyNotice button[data-gnav-element-name=CookiePrivacyNoticeOk]"}],optOut:[{hide:["#CookiePrivacyNotice"]}]},{name:"ionos.de",prehideSelectors:[".privacy-consent--backdrop",".privacy-consent--modal"],detectCmp:[{exists:".privacy-consent--modal"}],detectPopup:[{visible:".privacy-consent--modal"}],optIn:[{click:"#selectAll"}],optOut:[{click:".footer-config-link"},{click:"#confirmSelection"}]},{name:"itopvpn.com",cosmetic:!0,prehideSelectors:[".pop-cookie"],detectCmp:[{exists:".pop-cookie"}],detectPopup:[{exists:".pop-cookie"}],optIn:[{click:"#_pcookie"}],optOut:[{hide:[".pop-cookie"]}]},{name:"iubenda",prehideSelectors:["#iubenda-cs-banner"],detectCmp:[{exists:"#iubenda-cs-banner"}],detectPopup:[{visible:".iubenda-cs-accept-btn"}],optIn:[{click:".iubenda-cs-accept-btn"}],optOut:[{click:".iubenda-cs-customize-btn"},{eval:"document.querySelectorAll('.purposes-item input[type=checkbox]:not([disabled])').forEach(x => {if(x.checked) x.click()}) || true"},{click:"#iubFooterBtn"}],test:[{eval:"!!document.cookie.match(/_iub_cs-\\d+=/)"}]},{name:"johnlewis.com",prehideSelectors:["div[class^=pecr-cookie-banner-]"],detectCmp:[{exists:"div[class^=pecr-cookie-banner-]"}],detectPopup:[{exists:"div[class^=pecr-cookie-banner-]"}],optOut:[{click:"button[data-test^=manage-cookies]"},{wait:"500"},{click:"label[data-test^=toggle][class*=checked]:not([class*=disabled])",all:!0,optional:!0},{click:"button[data-test=save-preferences]"}],optIn:[{click:"button[data-test=allow-all]"}]},{name:"jquery.cookieBar",comment:"https://github.com/kovarp/jquery.cookieBar",prehideSelectors:[".cookie-bar"],cosmetic:!0,detectCmp:[{exists:".cookie-bar .cookie-bar__message,.cookie-bar .cookie-bar__buttons"}],detectPopup:[{visible:".cookie-bar .cookie-bar__message,.cookie-bar .cookie-bar__buttons",check:"any"}],optIn:[{click:".cookie-bar .cookie-bar__btn"}],optOut:[{hide:[".cookie-bar"]}],test:[{visible:".cookie-bar .cookie-bar__message,.cookie-bar .cookie-bar__buttons",check:"none"},{eval:"!document.cookie.includes('cookies-state=accepted')"}]},{name:"justwatch.com",prehideSelectors:[".consent-banner"],detectCmp:[{exists:".consent-banner .consent-banner__actions"}],detectPopup:[{visible:".consent-banner .consent-banner__actions"}],optIn:[{click:".consent-banner__actions button.basic-button.primary"}],optOut:[{click:".consent-banner__actions button.basic-button.secondary"},{waitForThenClick:".consent-modal__footer button.basic-button.secondary"},{waitForThenClick:".consent-modal ion-content > div > a:nth-child(9)"},{click:"label.consent-switch input[type=checkbox]:checked",all:!0,optional:!0},{waitForVisible:".consent-modal__footer button.basic-button.primary"},{click:".consent-modal__footer button.basic-button.primary"}]},{name:"ketch",runContext:{frame:!1,main:!0},intermediate:!1,prehideSelectors:["#lanyard_root div[role='dialog']"],detectCmp:[{exists:"#lanyard_root div[role='dialog']"}],detectPopup:[{visible:"#lanyard_root div[role='dialog']"}],optIn:[{if:{exists:"#lanyard_root button[class='confirmButton']"},then:[{waitForThenClick:"#lanyard_root div[class^='buttons'] > :nth-child(2)"},{click:"#lanyard_root button[class='confirmButton']"}],else:[{waitForThenClick:"#lanyard_root div[class^='buttons'] > :nth-child(2)"}]}],optOut:[{click:"#lanyard_root button[class^='link']",optional:!0},{if:{exists:"#lanyard_root button[class*='confirmButton']"},then:[{waitForThenClick:"#lanyard_root button[class*='rejectButton']"},{click:"#lanyard_root button[class*='confirmButton']"}],else:[{click:"#lanyard_root div[class^='buttons'] > :nth-child(1)",optional:!0},{waitForThenClick:"#lanyard_root input:checked"},{click:"#consentsTab > div:nth-child(2) > div > div[class^='actions'] > button:nth-child(1)"}]}],test:[]},{name:"kleinanzeigen-de",runContext:{urlPattern:"^https?://(www\\.)?kleinanzeigen\\.de"},prehideSelectors:["#gdpr-banner-container"],detectCmp:[{any:[{exists:"#gdpr-banner-container #gdpr-banner [data-testid=gdpr-banner-cmp-button]"},{exists:"#ConsentManagementPage"}]}],detectPopup:[{any:[{visible:"#gdpr-banner-container #gdpr-banner [data-testid=gdpr-banner-cmp-button]"},{visible:"#ConsentManagementPage"}]}],optIn:[{if:{exists:"#gdpr-banner-container #gdpr-banner"},then:[{click:"#gdpr-banner-container #gdpr-banner [data-testid=gdpr-banner-accept]"}],else:[{click:"#ConsentManagementPage .Button-primary"}]}],optOut:[{if:{exists:"#gdpr-banner-container #gdpr-banner"},then:[{click:"#gdpr-banner-container #gdpr-banner [data-testid=gdpr-banner-cmp-button]"}],else:[{click:"#ConsentManagementPage .Button-secondary"}]}]},{name:"linkedin.com",prehideSelectors:[".artdeco-global-alert[type=COOKIE_CONSENT]"],detectCmp:[{exists:".artdeco-global-alert[type=COOKIE_CONSENT]"}],detectPopup:[{visible:".artdeco-global-alert[type=COOKIE_CONSENT]"}],optIn:[{waitForVisible:".artdeco-global-alert[type=COOKIE_CONSENT] button[action-type=ACCEPT]"},{wait:500},{waitForThenClick:".artdeco-global-alert[type=COOKIE_CONSENT] button[action-type=ACCEPT]"}],optOut:[{waitForVisible:".artdeco-global-alert[type=COOKIE_CONSENT] button[action-type=DENY]"},{wait:500},{waitForThenClick:".artdeco-global-alert[type=COOKIE_CONSENT] button[action-type=DENY]"}],test:[{waitForVisible:".artdeco-global-alert[type=COOKIE_CONSENT]",check:"none"}]},{name:"macpaw.com",cosmetic:!0,prehideSelectors:['div[data-banner="cookies"]'],detectCmp:[{exists:'div[data-banner="cookies"]'}],detectPopup:[{exists:'div[data-banner="cookies"]'}],optIn:[{click:'button[data-banner-close="cookies"]'}],optOut:[{hide:['div[data-banner="cookies"]']}]},{name:"marksandspencer.com",cosmetic:!0,detectCmp:[{exists:".navigation-cookiebbanner"}],detectPopup:[{visible:".navigation-cookiebbanner"}],optOut:[{hide:[".navigation-cookiebbanner"]}],optIn:[{click:".navigation-cookiebbanner__submit"}]},{name:"mediamarkt.de",prehideSelectors:["div[aria-labelledby=pwa-consent-layer-title]","div[class^=StyledConsentLayerWrapper-]"],detectCmp:[{exists:"div[aria-labelledby^=pwa-consent-layer-title]"}],detectPopup:[{exists:"div[aria-labelledby^=pwa-consent-layer-title]"}],optOut:[{click:"button[data-test^=pwa-consent-layer-deny-all]"}],optIn:[{click:"button[data-test^=pwa-consent-layer-accept-all"}]},{name:"Mediavine",prehideSelectors:['[data-name="mediavine-gdpr-cmp"]'],detectCmp:[{exists:'[data-name="mediavine-gdpr-cmp"]'}],detectPopup:[{wait:500},{visible:'[data-name="mediavine-gdpr-cmp"]'}],optIn:[{waitForThenClick:'[data-name="mediavine-gdpr-cmp"] [format="primary"]'}],optOut:[{waitForThenClick:'[data-name="mediavine-gdpr-cmp"] [data-view="manageSettings"]'},{waitFor:'[data-name="mediavine-gdpr-cmp"] input[type=checkbox]'},{eval:'document.querySelectorAll("[data-name=\\"mediavine-gdpr-cmp\\"] input[type=checkbox]").forEach(x => x.checked && x.click()) || true',optional:!0},{click:'[data-name="mediavine-gdpr-cmp"] [format="secondary"]'}]},{name:"microsoft.com",prehideSelectors:["#wcpConsentBannerCtrl"],detectCmp:[{exists:"#wcpConsentBannerCtrl"}],detectPopup:[{exists:"#wcpConsentBannerCtrl"}],optOut:[{eval:"Array.from(document.querySelectorAll('div > button')).filter(el => el.innerText.match('Reject|Ablehnen'))[0].click() || true"}],optIn:[{eval:"Array.from(document.querySelectorAll('div > button')).filter(el => el.innerText.match('Accept|Annehmen'))[0].click() || true"}],test:[{eval:"!!document.cookie.match('MSCC')"}]},{name:"midway-usa",runContext:{urlPattern:"^https://www\\.midwayusa\\.com/"},cosmetic:!0,prehideSelectors:["#cookie-container"],detectCmp:[{exists:['div[aria-label="Cookie Policy Banner"]']}],detectPopup:[{visible:"#cookie-container"}],optIn:[{click:"button#cookie-btn"}],optOut:[{hide:['div[aria-label="Cookie Policy Banner"]']}]},{name:"moneysavingexpert.com",detectCmp:[{exists:"dialog[data-testid=accept-our-cookies-dialog]"}],detectPopup:[{visible:"dialog[data-testid=accept-our-cookies-dialog]"}],optIn:[{click:"#banner-accept"}],optOut:[{click:"#banner-manage"},{click:"#pc-confirm"}]},{name:"monzo.com",prehideSelectors:[".cookie-alert, cookie-alert__content"],detectCmp:[{exists:'div.cookie-alert[role="dialog"]'},{exists:'a[href*="monzo"]'}],detectPopup:[{visible:".cookie-alert__content"}],optIn:[{click:".js-accept-cookie-policy"}],optOut:[{click:".js-decline-cookie-policy"}]},{name:"Moove",prehideSelectors:["#moove_gdpr_cookie_info_bar"],detectCmp:[{exists:"#moove_gdpr_cookie_info_bar"}],detectPopup:[{visible:"#moove_gdpr_cookie_info_bar"}],optIn:[{waitForThenClick:".moove-gdpr-infobar-allow-all"}],optOut:[{if:{exists:"#moove_gdpr_cookie_info_bar .change-settings-button"},then:[{click:"#moove_gdpr_cookie_info_bar .change-settings-button"},{waitForVisible:"#moove_gdpr_cookie_modal"},{eval:"document.querySelectorAll('#moove_gdpr_cookie_modal input').forEach(i => { if (!i.disabled && i.name !== 'moove_gdpr_strict_cookies') i.checked = false }) || true"},{click:".moove-gdpr-modal-save-settings"}],else:[{hide:["#moove_gdpr_cookie_info_bar"]}]}],test:[{visible:"#moove_gdpr_cookie_info_bar",check:"none"}]},{name:"national-lottery.co.uk",detectCmp:[{exists:".cuk_cookie_consent"}],detectPopup:[{visible:".cuk_cookie_consent",check:"any"}],optOut:[{click:".cuk_cookie_consent_manage_pref"},{click:".cuk_cookie_consent_save_pref"},{click:".cuk_cookie_consent_close"}],optIn:[{click:".cuk_cookie_consent_accept_all"}]},{name:"nba.com",runContext:{urlPattern:"^https://(www\\.)?nba.com/"},cosmetic:!0,prehideSelectors:["#onetrust-banner-sdk"],detectCmp:[{exists:"#onetrust-banner-sdk"}],detectPopup:[{visible:"#onetrust-banner-sdk"}],optIn:[{click:"#onetrust-accept-btn-handler"}],optOut:[{hide:["#onetrust-banner-sdk"]}]},{name:"netflix.de",detectCmp:[{exists:"#cookie-disclosure"}],detectPopup:[{visible:".cookie-disclosure-message",check:"any"}],optIn:[{click:".btn-accept"}],optOut:[{hide:["#cookie-disclosure"]},{click:".btn-reject"}]},{name:"nhs.uk",prehideSelectors:["#nhsuk-cookie-banner"],detectCmp:[{exists:"#nhsuk-cookie-banner"}],detectPopup:[{exists:"#nhsuk-cookie-banner"}],optOut:[{click:"#nhsuk-cookie-banner__link_accept"}],optIn:[{click:"#nhsuk-cookie-banner__link_accept_analytics"}]},{name:"notice-cookie",prehideSelectors:[".button--notice"],cosmetic:!0,detectCmp:[{exists:".notice--cookie"}],detectPopup:[{visible:".notice--cookie"}],optIn:[{click:".button--notice"}],optOut:[{hide:[".notice--cookie"]}]},{name:"nrk.no",cosmetic:!0,prehideSelectors:[".nrk-masthead__info-banner--cookie"],detectCmp:[{exists:".nrk-masthead__info-banner--cookie"}],detectPopup:[{exists:".nrk-masthead__info-banner--cookie"}],optIn:[{click:"div.nrk-masthead__info-banner--cookie button > span:has(+ svg.nrk-close)"}],optOut:[{hide:[".nrk-masthead__info-banner--cookie"]}]},{name:"obi.de",prehideSelectors:[".disc-cp--active"],detectCmp:[{exists:".disc-cp-modal__modal"}],detectPopup:[{visible:".disc-cp-modal__modal"}],optIn:[{click:".js-disc-cp-accept-all"}],optOut:[{click:".js-disc-cp-deny-all"}]},{name:"onlyFans.com",prehideSelectors:["div.b-cookies-informer"],detectCmp:[{exists:"div.b-cookies-informer"}],detectPopup:[{exists:"div.b-cookies-informer"}],optIn:[{click:"div.b-cookies-informer__nav > button:nth-child(2)"}],optOut:[{click:"div.b-cookies-informer__nav > button:nth-child(1)"},{click:'div.b-cookies-informer__switchers > div:nth-child(2) > div[at-attr="checkbox"] > span.b-input-radio__container > input[type="checkbox"]'},{click:"div.b-cookies-informer__nav > button"}]},{name:"osano",prehideSelectors:[".osano-cm-window"],cosmetic:!0,detectCmp:[{exists:".osano-cm-window"}],detectPopup:[{visible:".osano-cm-dialog"}],optIn:[{click:".osano-cm-accept-all",optional:!0}],optOut:[{hide:[".osano-cm-window"]}]},{name:"otto.de",prehideSelectors:[".cookieBanner--visibility"],detectCmp:[{exists:".cookieBanner--visibility"}],detectPopup:[{visible:".cookieBanner__wrapper"}],optIn:[{click:".js_cookieBannerPermissionButton"}],optOut:[{click:".js_cookieBannerProhibitionButton"}]},{name:"paypal-us",prehideSelectors:["#ccpaCookieContent_wrapper, article.ppvx_modal--overpanel"],detectCmp:[{exists:"#ccpaCookieBanner, .privacy-modal-content"}],detectPopup:[{exists:"#ccpaCookieBanner, .privacy-modal-content"}],optIn:[{click:"#acceptAllButton"}],optOut:[{if:{exists:"a#manageCookiesLink"},then:[{click:"a#manageCookiesLink"}],else:[{waitForVisible:".privacy-modal-content #formContent"},{click:"#formContent .cookiepref-11m2iee-checkbox_base input:checked",all:!0,optional:!0},{click:".confirmCookie #submitCookiesBtn"}]}]},{name:"paypal.com",prehideSelectors:["#gdprCookieBanner"],detectCmp:[{exists:"#gdprCookieBanner"}],detectPopup:[{visible:"#gdprCookieContent_wrapper"}],optIn:[{click:"#acceptAllButton"}],optOut:[{wait:200},{click:".gdprCookieBanner_decline-button"}],test:[{wait:500},{eval:"document.cookie.includes('cookie_prefs') === true"}]},{name:"pinetools.com",cosmetic:!0,prehideSelectors:["#aviso_cookies"],detectCmp:[{exists:"#aviso_cookies"}],detectPopup:[{exists:".lang_en #aviso_cookies"}],optIn:[{click:"#aviso_cookies .a_boton_cerrar"}],optOut:[{hide:["#aviso_cookies"]}]},{name:"pmc",cosmetic:!0,prehideSelectors:["#pmc-pp-tou--notice"],detectCmp:[{exists:"#pmc-pp-tou--notice"}],detectPopup:[{visible:"#pmc-pp-tou--notice"}],optIn:[{click:"span.pmc-pp-tou--notice-close-btn"}],optOut:[{hide:["#pmc-pp-tou--notice"]}]},{name:"pornhub.com",runContext:{urlPattern:"^https://(www\\.)?pornhub\\.com/"},cosmetic:!0,prehideSelectors:[".cookiesBanner"],detectCmp:[{exists:".cookiesBanner"}],detectPopup:[{visible:".cookiesBanner"}],optIn:[{click:".cookiesBanner .okButton"}],optOut:[{hide:[".cookiesBanner"]}]},{name:"pornpics.com",cosmetic:!0,prehideSelectors:["#cookie-contract"],detectCmp:[{exists:"#cookie-contract"}],detectPopup:[{visible:"#cookie-contract"}],optIn:[{click:"#cookie-contract .icon-cross"}],optOut:[{hide:["#cookie-contract"]}]},{name:"PrimeBox CookieBar",prehideSelectors:["#cookie-bar"],detectCmp:[{exists:"#cookie-bar .cb-enable,#cookie-bar .cb-disable,#cookie-bar .cb-policy"}],detectPopup:[{visible:"#cookie-bar .cb-enable,#cookie-bar .cb-disable,#cookie-bar .cb-policy",check:"any"}],optIn:[{waitForThenClick:"#cookie-bar .cb-enable"}],optOut:[{click:"#cookie-bar .cb-disable",optional:!0},{hide:["#cookie-bar"]}],test:[{eval:"!document.cookie.includes('cb-enabled=accepted')"}]},{name:"privacymanager.io",prehideSelectors:["#gdpr-consent-tool-wrapper",'iframe[src^="https://cmp-consent-tool.privacymanager.io"]'],runContext:{urlPattern:"^https://cmp-consent-tool\\.privacymanager\\.io/",main:!1,frame:!0},detectCmp:[{exists:"button#save"}],detectPopup:[{visible:"button#save"}],optIn:[{click:"button#save"}],optOut:[{if:{exists:"#denyAll"},then:[{click:"#denyAll"},{waitForThenClick:".okButton"}],else:[{waitForThenClick:"#manageSettings"},{waitFor:".purposes-overview-list"},{waitFor:"button#saveAndExit"},{click:"span[role=checkbox][aria-checked=true]",all:!0,optional:!0},{click:"button#saveAndExit"}]}]},{name:"pubtech",prehideSelectors:["#pubtech-cmp"],detectCmp:[{exists:"#pubtech-cmp"}],detectPopup:[{visible:"#pubtech-cmp #pt-actions"}],optIn:[{if:{exists:"#pt-accept-all"},then:[{click:"#pubtech-cmp #pt-actions #pt-accept-all"}],else:[{click:"#pubtech-cmp #pt-actions button:nth-of-type(2)"}]}],optOut:[{click:"#pubtech-cmp #pt-close"}],test:[{eval:"document.cookie.includes('euconsent-v2') && (document.cookie.match(/.YAAAAAAAAAAA/) || document.cookie.match(/.aAAAAAAAAAAA/) || document.cookie.match(/.YAAACFgAAAAA/)) "}]},{name:"quantcast",prehideSelectors:["#qc-cmp2-main,#qc-cmp2-container"],detectCmp:[{exists:"#qc-cmp2-container"}],detectPopup:[{visible:"#qc-cmp2-ui"}],optOut:[{click:'.qc-cmp2-summary-buttons > button[mode="secondary"]'},{waitFor:"#qc-cmp2-ui"},{click:'.qc-cmp2-toggle-switch > button[aria-checked="true"]',all:!0,optional:!0},{click:'.qc-cmp2-main button[aria-label="REJECT ALL"]',optional:!0},{waitForThenClick:'.qc-cmp2-main button[aria-label="SAVE & EXIT"],.qc-cmp2-buttons-desktop > button[mode="primary"]',timeout:5e3}],optIn:[{click:'.qc-cmp2-summary-buttons > button[mode="primary"]'}]},{name:"reddit.com",runContext:{urlPattern:"^https://www\\.reddit\\.com/"},prehideSelectors:['section:has(a[href^="https://www.reddit.com/policies/cookies"])'],detectCmp:[{exists:'section:has(a[href^="https://www.reddit.com/policies/cookies"])'}],detectPopup:[{visible:'section:has(a[href^="https://www.reddit.com/policies/cookies"])'}],optIn:[{waitForThenClick:"section:has(a[href^=\"https://www.reddit.com/policies/cookies\"]) section[class^='_'] > section:first-child form button"}],optOut:[{waitForThenClick:"section:has(a[href^=\"https://www.reddit.com/policies/cookies\"]) section[class^='_'] > section:last-child form button"}],test:[{eval:"document.cookie.includes('eu_cookie={%22opted%22:true%2C%22nonessential%22:false}')"}]},{name:"samsung.com",runContext:{urlPattern:"^https://www\\.samsung\\.com/"},cosmetic:!0,prehideSelectors:["div.cookie-bar"],detectCmp:[{exists:"div.cookie-bar"}],detectPopup:[{visible:"div.cookie-bar"}],optIn:[{click:"div.cookie-bar__manage > a"}],optOut:[{hide:["div.cookie-bar"]}]},{name:"sibbo",prehideSelectors:["sibbo-cmp-layout"],detectCmp:[{exists:"sibbo-cmp-layout"}],detectPopup:[{visible:"sibbo-cmp-layout"}],optIn:[{click:"sibbo-cmp-layout [data-accept-all]"}],optOut:[{click:'.sibbo-panel__aside__buttons a[data-nav="purposes"]'},{click:'.sibbo-panel__main__header__actions a[data-focusable="reject-all"]'},{if:{exists:"[data-view=purposes] .sibbo-panel__main__footer__actions [data-save-and-exit]"},then:[],else:[{waitFor:'.sibbo-panel__main__footer__actions a[data-focusable="next"]:not(.sibbo-cmp-button--disabled)'},{click:'.sibbo-panel__main__footer__actions a[data-focusable="next"]'},{click:'.sibbo-panel__main div[data-view="purposesLegInt"] a[data-focusable="reject-all"]'}]},{waitFor:".sibbo-panel__main__footer__actions [data-save-and-exit]:not(.sibbo-cmp-button--disabled)"},{click:".sibbo-panel__main__footer__actions [data-save-and-exit]:not(.sibbo-cmp-button--disabled)"}],test:[{eval:"!!window.localStorage.getItem('euconsent-v2')"}]},{name:"similarweb.com",cosmetic:!0,prehideSelectors:[".app-cookies-notification"],detectCmp:[{exists:".app-cookies-notification"}],detectPopup:[{exists:".app-layout .app-cookies-notification"}],optIn:[{click:"button.app-cookies-notification__dismiss"}],optOut:[{hide:[".app-layout .app-cookies-notification"]}]},{name:"Sirdata",prehideSelectors:["#sd-cmp"],detectCmp:[{exists:"#sd-cmp"}],detectPopup:[{visible:"#sd-cmp"}],optIn:[{waitForThenClick:"#sd-cmp .sd-cmp-3cRQ2"}],optOut:[{waitForThenClick:"#sd-cmp .sd-cmp-1pO44"}],test:[{eval:"document.cookie.includes('euconsent-v2')"}]},{name:"snigel",detectCmp:[{exists:".snigel-cmp-framework"}],detectPopup:[{visible:".snigel-cmp-framework"}],optOut:[{click:"#sn-b-custom"},{click:"#sn-b-save"}],test:[{eval:"!!document.cookie.match('snconsent')"}],optIn:[{click:".snigel-cmp-framework #accept-choices"}]},{name:"steampowered.com",detectCmp:[{exists:".cookiepreferences_popup"},{visible:".cookiepreferences_popup"}],detectPopup:[{visible:".cookiepreferences_popup"}],optOut:[{click:"#rejectAllButton"}],optIn:[{click:"#acceptAllButton"}],test:[{wait:1e3},{eval:"JSON.parse(decodeURIComponent(document.cookie.split(';').find(s => s.trim().startsWith('cookieSettings')).split('=')[1])).preference_state === 2"}]},{name:"takealot.com",cosmetic:!0,prehideSelectors:['div[class^="cookies-banner-module_cookie-banner_"]'],detectCmp:[{exists:'div[class^="cookies-banner-module_cookie-banner_"]'}],detectPopup:[{exists:'div[class^="cookies-banner-module_cookie-banner_"]'}],optIn:[{click:'button[class*="cookies-banner-module_dismiss-button_"]'}],optOut:[{hide:['div[class^="cookies-banner-module_cookie-banner_"]']}]},{name:"tarteaucitron.js",prehideSelectors:["#tarteaucitronRoot"],detectCmp:[{exists:"#tarteaucitronRoot"}],detectPopup:[{visible:"#tarteaucitronRoot #tarteaucitronAlertSmall,#tarteaucitronRoot #tarteaucitronAlertBig",check:"any"}],optIn:[{eval:"tarteaucitron.userInterface.respondAll(true) || true"}],optOut:[{eval:"tarteaucitron.userInterface.respondAll(false) || true"}],test:[{eval:"document.cookie.match(/tarteaucitron=[^;]*/)[0].includes('false')",comment:"sometimes there are required categories, so we check that at least something is false"}]},{name:"Tealium",prehideSelectors:["#__tealiumGDPRecModal,#__tealiumGDPRcpPrefs,#consent-layer"],detectCmp:[{visible:"#__tealiumGDPRecModal"},{eval:"typeof window.utag !== 'undefined' && typeof utag.gdpr === 'object'"}],detectPopup:[{visible:"#__tealiumGDPRecModal"}],optOut:[{waitForThenClick:"#cm-acceptNone,.js-accept-essential-cookies",timeout:1e3},{eval:"utag.gdpr.setConsentValue(false) || true"}],optIn:[{hide:["#__tealiumGDPRecModal"]},{eval:"utag.gdpr.setConsentValue(true) || true"}],test:[{eval:"utag.gdpr.getConsentState() !== 1"}]},{name:"Termly",prehideSelectors:["#termly-code-snippet-support"],detectCmp:[{exists:"#termly-code-snippet-support"}],detectPopup:[{visible:"#termly-code-snippet-support div"}],optIn:[{waitForThenClick:'[data-tid="banner-accept"]'}],optOut:[{if:{exists:'[data-tid="banner-decline"]'},then:[{click:'[data-tid="banner-decline"]'}],else:[{click:".t-preference-button"},{wait:500},{if:{exists:".t-declineAllButton"},then:[{click:".t-declineAllButton"}],else:[{waitForThenClick:".t-preference-modal input[type=checkbox][checked]:not([disabled])",all:!0},{waitForThenClick:".t-saveButton"}]}]}]},{name:"Test page cosmetic CMP",cosmetic:!0,prehideSelectors:["#privacy-test-page-cmp-test-prehide"],detectCmp:[{exists:"#privacy-test-page-cmp-test-banner"}],detectPopup:[{visible:"#privacy-test-page-cmp-test-banner"}],optIn:[{waitFor:"#accept-all"},{click:"#accept-all"}],optOut:[{hide:["#privacy-test-page-cmp-test-banner"]}],test:[{wait:500},{eval:"window.results.results[0] === 'banner_hidden'"}]},{name:"Test page CMP",prehideSelectors:["#reject-all"],detectCmp:[{exists:"#privacy-test-page-cmp-test"}],detectPopup:[{visible:"#privacy-test-page-cmp-test"}],optIn:[{waitFor:"#accept-all"},{click:"#accept-all"}],optOut:[{waitFor:"#reject-all"},{click:"#reject-all"}],test:[{eval:"window.results.results[0] === 'button_clicked'"}]},{name:"thalia.de",prehideSelectors:[".consent-banner-box"],detectCmp:[{exists:"consent-banner[component=consent-banner]"}],detectPopup:[{visible:".consent-banner-box"}],optIn:[{click:".button-zustimmen"}],optOut:[{click:"button[data-consent=disagree]"}]},{name:"thefreedictionary.com",prehideSelectors:["#cmpBanner"],detectCmp:[{exists:"#cmpBanner"}],detectPopup:[{visible:"#cmpBanner"}],optIn:[{eval:"cmpUi.allowAll() || true"}],optOut:[{eval:"cmpUi.showPurposes() || cmpUi.rejectAll() || true"}]},{name:"theverge",runContext:{frame:!1,main:!0,urlPattern:"^https://(www)?\\.theverge\\.com"},intermediate:!1,prehideSelectors:[".duet--cta--cookie-banner"],detectCmp:[{exists:".duet--cta--cookie-banner"}],detectPopup:[{visible:".duet--cta--cookie-banner"}],optIn:[{click:".duet--cta--cookie-banner button.tracking-12",all:!1}],optOut:[{click:".duet--cta--cookie-banner button.tracking-12 > span"}],test:[{eval:"document.cookie.includes('_duet_gdpr_acknowledged=1')"}]},{name:"tidbits-com",cosmetic:!0,prehideSelectors:["#eu_cookie_law_widget-2"],detectCmp:[{exists:"#eu_cookie_law_widget-2"}],detectPopup:[{visible:"#eu_cookie_law_widget-2"}],optIn:[{click:"#eu-cookie-law form > input.accept"}],optOut:[{hide:["#eu_cookie_law_widget-2"]}]},{name:"tractor-supply",runContext:{urlPattern:"^https://www\\.tractorsupply\\.com/"},cosmetic:!0,prehideSelectors:[".tsc-cookie-banner"],detectCmp:[{exists:".tsc-cookie-banner"}],detectPopup:[{visible:".tsc-cookie-banner"}],optIn:[{click:"#cookie-banner-cancel"}],optOut:[{hide:[".tsc-cookie-banner"]}]},{name:"trader-joes-com",cosmetic:!0,prehideSelectors:['div.aem-page > div[class^="CookiesAlert_cookiesAlert__"]'],detectCmp:[{exists:'div.aem-page > div[class^="CookiesAlert_cookiesAlert__"]'}],detectPopup:[{visible:'div.aem-page > div[class^="CookiesAlert_cookiesAlert__"]'}],optIn:[{click:'div[class^="CookiesAlert_cookiesAlert__container__"] button'}],optOut:[{hide:['div.aem-page > div[class^="CookiesAlert_cookiesAlert__"]']}]},{name:"true-car",runContext:{urlPattern:"^https://www\\.truecar\\.com/"},cosmetic:!0,prehideSelectors:[['div[aria-labelledby="cookie-banner-heading"]']],detectCmp:[{exists:'div[aria-labelledby="cookie-banner-heading"]'}],detectPopup:[{visible:'div[aria-labelledby="cookie-banner-heading"]'}],optIn:[{click:'div[aria-labelledby="cookie-banner-heading"] > button[aria-label="Close"]'}],optOut:[{hide:['div[aria-labelledby="cookie-banner-heading"]']}]},{name:"truyo",prehideSelectors:["#truyo-consent-module"],detectCmp:[{exists:"#truyo-cookieBarContent"}],detectPopup:[{visible:"#truyo-consent-module"}],optIn:[{click:"button#acceptAllCookieButton"}],optOut:[{click:"button#declineAllCookieButton"}]},{name:"tumblr-com",cosmetic:!0,prehideSelectors:["#cmp-app-container"],detectCmp:[{exists:"#cmp-app-container"}],detectPopup:[{visible:"#cmp-app-container"}],optIn:[{click:"#tumblr #cmp-app-container div.components-modal__frame > iframe > html body > div > div > div.cmp__dialog-footer > div > button.components-button.white-space-normal.is-primary"}],optOut:[{hide:["#cmp-app-container"]}]},{name:"twitch.tv",runContext:{urlPattern:"^https?://(www\\.)?twitch\\.tv"},prehideSelectors:["div:has(> .consent-banner .consent-banner__content--gdpr-v2),.ReactModalPortal:has([data-a-target=consent-modal-save])"],detectCmp:[{exists:".consent-banner .consent-banner__content--gdpr-v2"}],detectPopup:[{visible:".consent-banner .consent-banner__content--gdpr-v2"}],optIn:[{click:'button[data-a-target="consent-banner-accept"]'}],optOut:[{hide:["div:has(> .consent-banner .consent-banner__content--gdpr-v2)"]},{click:'button[data-a-target="consent-banner-manage-preferences"]'},{waitFor:"input[type=checkbox][data-a-target=tw-checkbox]"},{click:"input[type=checkbox][data-a-target=tw-checkbox][checked]:not([disabled])",all:!0,optional:!0},{waitForThenClick:"[data-a-target=consent-modal-save]"},{waitForVisible:".ReactModalPortal:has([data-a-target=consent-modal-save])",check:"none"}]},{name:"twitter",runContext:{urlPattern:"^https://([a-z0-9-]+\\.)?twitter\\.com/"},prehideSelectors:['[data-testid="BottomBar"]'],detectCmp:[{exists:'[data-testid="BottomBar"] div'}],detectPopup:[{visible:'[data-testid="BottomBar"] div'}],optIn:[{waitForThenClick:'[data-testid="BottomBar"] > div:has(>div:first-child>div:last-child>span[role=button]) > div:last-child > div[role=button]:first-child'}],optOut:[{waitForThenClick:'[data-testid="BottomBar"] > div:has(>div:first-child>div:last-child>span[role=button]) > div:last-child > div[role=button]:last-child'}],TODOtest:[{eval:"document.cookie.includes('d_prefs=MjoxLGNvbnNlbnRfdmVyc2lvbjoy')"}]},{name:"ubuntu.com",prehideSelectors:["dialog.cookie-policy"],detectCmp:[{any:[{exists:"dialog.cookie-policy header"},{exists:'xpath///*[@id="modal"]/div/header'}]}],detectPopup:[{any:[{visible:"dialog header"},{visible:'xpath///*[@id="modal"]/div/header'}]}],optIn:[{any:[{waitForThenClick:"#cookie-policy-button-accept"},{waitForThenClick:'xpath///*[@id="cookie-policy-button-accept"]'}]}],optOut:[{any:[{waitForThenClick:"button.p-button"},{waitForThenClick:'xpath///*[@id="cookie-policy-content"]/p[4]/button[2]'}]},{waitForThenClick:".p-switch__input:checked",optional:!0,all:!0},{any:[{waitForThenClick:"div > button"},{waitForThenClick:'xpath///*[@id="modal"]/div/button'}]}],test:[{eval:"document.cookie === '_cookies_accepted=essential'"}]},{name:"UK Cookie Consent",prehideSelectors:["#catapult-cookie-bar"],cosmetic:!0,detectCmp:[{exists:"#catapult-cookie-bar"}],detectPopup:[{exists:".has-cookie-bar #catapult-cookie-bar"}],optIn:[{click:"#catapultCookie"}],optOut:[{hide:["#catapult-cookie-bar"]}],test:[{eval:"!document.cookie.includes('catAccCookies')"}]},{name:"urbanarmorgear-com",cosmetic:!0,prehideSelectors:['div[class^="Layout__CookieBannerContainer-"]'],detectCmp:[{exists:'div[class^="Layout__CookieBannerContainer-"]'}],detectPopup:[{visible:'div[class^="Layout__CookieBannerContainer-"]'}],optIn:[{click:'button[class^="CookieBanner__AcceptButton"]'}],optOut:[{hide:['div[class^="Layout__CookieBannerContainer-"]']}]},{name:"usercentrics-api",detectCmp:[{exists:"#usercentrics-root"}],detectPopup:[{eval:"typeof UC_UI === 'object'"},{exists:["#usercentrics-root","[data-testid=uc-container]"]}],optIn:[{eval:"!!UC_UI.acceptAllConsents()"},{eval:"!!UC_UI.closeCMP()"},{eval:"UC_UI.areAllConsentsAccepted() === true"}],optOut:[{eval:"!!UC_UI.closeCMP()"},{eval:"!!UC_UI.denyAllConsents()"}],test:[{eval:"UC_UI.areAllConsentsAccepted() === false"}]},{name:"usercentrics-button",detectCmp:[{exists:"#usercentrics-button"}],detectPopup:[{visible:"#usercentrics-button #uc-btn-accept-banner"}],optIn:[{click:"#usercentrics-button #uc-btn-accept-banner"}],optOut:[{click:"#usercentrics-button #uc-btn-deny-banner"}],test:[{eval:"JSON.parse(localStorage.getItem('usercentrics')).consents.every(c => c.isEssential || !c.consentStatus)"}]},{name:"uswitch.com",prehideSelectors:["#cookie-banner-wrapper"],detectCmp:[{exists:"#cookie-banner-wrapper"}],detectPopup:[{visible:"#cookie-banner-wrapper"}],optIn:[{click:"#cookie_banner_accept_mobile"}],optOut:[{click:"#cookie_banner_save"}]},{name:"vodafone.de",runContext:{urlPattern:"^https://www\\.vodafone\\.de/"},prehideSelectors:[".dip-consent,.dip-consent-container"],detectCmp:[{exists:".dip-consent-container"}],detectPopup:[{visible:".dip-consent-content"}],optOut:[{click:'.dip-consent-btn[tabindex="2"]'}],optIn:[{click:'.dip-consent-btn[tabindex="1"]'}]},{name:"waitrose.com",prehideSelectors:["div[aria-labelledby=CookieAlertModalHeading]","section[data-test=initial-waitrose-cookie-consent-banner]","section[data-test=cookie-consent-modal]"],detectCmp:[{exists:"section[data-test=initial-waitrose-cookie-consent-banner]"}],detectPopup:[{visible:"section[data-test=initial-waitrose-cookie-consent-banner]"}],optIn:[{click:"button[data-test=accept-all]"}],optOut:[{click:"button[data-test=manage-cookies]"},{wait:200},{eval:"Array.from(document.querySelectorAll('label[id$=cookies-deny-label]')).forEach(e => e.click()) || true"},{click:"button[data-test=submit]"}],test:[{eval:"document.cookie.includes('wtr_cookies_advertising=0') && document.cookie.includes('wtr_cookies_analytics=0')"}]},{name:"wetransfer.com",detectCmp:[{exists:".welcome__cookie-notice"}],detectPopup:[{visible:".welcome__cookie-notice"}],optIn:[{click:".welcome__button--accept"}],optOut:[{click:".welcome__button--decline"}]},{name:"whitepages.com",runContext:{urlPattern:"^https://www\\.whitepages\\.com/"},cosmetic:!0,prehideSelectors:[".cookie-wrapper, .cookie-overlay"],detectCmp:[{exists:".cookie-wrapper"}],detectPopup:[{visible:".cookie-overlay"}],optIn:[{click:'button[aria-label="Got it"]'}],optOut:[{hide:[".cookie-wrapper"]}]},{name:"woo-commerce-com",prehideSelectors:[".wccom-comp-privacy-banner .wccom-privacy-banner"],detectCmp:[{exists:".wccom-comp-privacy-banner .wccom-privacy-banner"}],detectPopup:[{exists:".wccom-comp-privacy-banner .wccom-privacy-banner"}],optIn:[{click:".wccom-privacy-banner__content-buttons button.is-primary"}],optOut:[{click:".wccom-privacy-banner__content-buttons button.is-secondary"},{waitForThenClick:"input[type=checkbox][checked]:not([disabled])",all:!0},{click:"div.wccom-modal__footer > button"}]},{name:"WP Cookie Notice for GDPR",comment:"https://wordpress.org/plugins/gdpr-cookie-consent/",prehideSelectors:["#gdpr-cookie-consent-bar"],detectCmp:[{exists:"#gdpr-cookie-consent-bar"}],detectPopup:[{visible:"#gdpr-cookie-consent-bar"}],optIn:[{waitForThenClick:"#gdpr-cookie-consent-bar #cookie_action_accept"}],optOut:[{waitForThenClick:"#gdpr-cookie-consent-bar #cookie_action_reject"}],test:[{eval:"document.cookie.includes('wpl_viewed_cookie=no')"}]},{name:"wpcc",cosmetic:!0,prehideSelectors:[".wpcc-container"],detectCmp:[{exists:".wpcc-container"}],detectPopup:[{exists:".wpcc-container .wpcc-message"}],optIn:[{click:".wpcc-compliance .wpcc-btn"}],optOut:[{hide:[".wpcc-container"]}]},{name:"xhamster-eu",prehideSelectors:[".cookies-modal"],detectCmp:[{exists:".cookies-modal"}],detectPopup:[{exists:".cookies-modal"}],optIn:[{click:"button.cmd-button-accept-all"}],optOut:[{click:"button.cmd-button-reject-all"}]},{name:"xhamster-us",runContext:{urlPattern:"^https://(www\\.)?xhamster\\d?\\.com"},cosmetic:!0,prehideSelectors:[".cookie-announce"],detectCmp:[{exists:".cookie-announce"}],detectPopup:[{visible:".cookie-announce .announce-text"}],optIn:[{click:".cookie-announce button.xh-button"}],optOut:[{hide:[".cookie-announce"]}]},{name:"xing.com",detectCmp:[{exists:"div[class^=cookie-consent-CookieConsent]"}],detectPopup:[{exists:"div[class^=cookie-consent-CookieConsent]"}],optIn:[{click:"#consent-accept-button"}],optOut:[{click:"#consent-settings-button"},{click:".consent-banner-button-accept-overlay"}],test:[{eval:"document.cookie.includes('userConsent=%7B%22marketing%22%3Afalse')"}]},{name:"xnxx-com",cosmetic:!0,prehideSelectors:["#cookies-use-alert"],detectCmp:[{exists:"#cookies-use-alert"}],detectPopup:[{visible:"#cookies-use-alert"}],optIn:[{click:"#cookies-use-alert .close"}],optOut:[{hide:["#cookies-use-alert"]}]},{name:"youporn.com",cosmetic:!0,prehideSelectors:[".euCookieModal, #js_euCookieModal"],detectCmp:[{exists:".euCookieModal"}],detectPopup:[{exists:".euCookieModal, #js_euCookieModal"}],optIn:[{click:'button[name="user_acceptCookie"]'}],optOut:[{hide:[".euCookieModal"]}]},{name:"youtube-desktop",prehideSelectors:["tp-yt-iron-overlay-backdrop.opened","ytd-consent-bump-v2-lightbox"],detectCmp:[{exists:"ytd-consent-bump-v2-lightbox tp-yt-paper-dialog"},{exists:'ytd-consent-bump-v2-lightbox tp-yt-paper-dialog a[href^="https://consent.youtube.com/"]'}],detectPopup:[{visible:"ytd-consent-bump-v2-lightbox tp-yt-paper-dialog"}],optIn:[{waitForThenClick:"ytd-consent-bump-v2-lightbox .eom-buttons .eom-button-row:first-child ytd-button-renderer:last-child #button,ytd-consent-bump-v2-lightbox .eom-buttons .eom-button-row:first-child ytd-button-renderer:last-child button"},{wait:500}],optOut:[{waitForThenClick:"ytd-consent-bump-v2-lightbox .eom-buttons .eom-button-row:first-child ytd-button-renderer:first-child #button,ytd-consent-bump-v2-lightbox .eom-buttons .eom-button-row:first-child ytd-button-renderer:first-child button"},{wait:500}],test:[{wait:500},{eval:"!!document.cookie.match(/SOCS=CAE/)"}]},{name:"youtube-mobile",prehideSelectors:[".consent-bump-v2-lightbox"],detectCmp:[{exists:"ytm-consent-bump-v2-renderer"}],detectPopup:[{visible:"ytm-consent-bump-v2-renderer"}],optIn:[{waitForThenClick:"ytm-consent-bump-v2-renderer .privacy-terms + .one-col-dialog-buttons c3-material-button:first-child button, ytm-consent-bump-v2-renderer .privacy-terms + .one-col-dialog-buttons ytm-button-renderer:first-child button"},{wait:500}],optOut:[{waitForThenClick:"ytm-consent-bump-v2-renderer .privacy-terms + .one-col-dialog-buttons c3-material-button:nth-child(2) button, ytm-consent-bump-v2-renderer .privacy-terms + .one-col-dialog-buttons ytm-button-renderer:nth-child(2) button"},{wait:500}],test:[{wait:500},{eval:"!!document.cookie.match(/SOCS=CAE/)"}]}],T={"didomi.io":{detectors:[{presentMatcher:{target:{selector:"#didomi-host, #didomi-notice"},type:"css"},showingMatcher:{target:{selector:"body.didomi-popup-open, .didomi-notice-banner"},type:"css"}}],methods:[{action:{target:{selector:".didomi-popup-notice-buttons .didomi-button:not(.didomi-button-highlight), .didomi-notice-banner .didomi-learn-more-button"},type:"click"},name:"OPEN_OPTIONS"},{action:{actions:[{retries:50,target:{selector:"#didomi-purpose-cookies"},type:"waitcss",waitTime:50},{consents:[{description:"Share (everything) with others",falseAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-share_whith_others]:first-child"},type:"click"},trueAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-share_whith_others]:last-child"},type:"click"},type:"X"},{description:"Information storage and access",falseAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-cookies]:first-child"},type:"click"},trueAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-cookies]:last-child"},type:"click"},type:"D"},{description:"Content selection, offers and marketing",falseAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-CL-T1Rgm7]:first-child"},type:"click"},trueAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-CL-T1Rgm7]:last-child"},type:"click"},type:"E"},{description:"Analytics",falseAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-analytics]:first-child"},type:"click"},trueAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-analytics]:last-child"},type:"click"},type:"B"},{description:"Analytics",falseAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-M9NRHJe3G]:first-child"},type:"click"},trueAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-M9NRHJe3G]:last-child"},type:"click"},type:"B"},{description:"Ad and content selection",falseAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-advertising_personalization]:first-child"},type:"click"},trueAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-advertising_personalization]:last-child"},type:"click"},type:"F"},{description:"Ad and content selection",falseAction:{parent:{childFilter:{target:{selector:"#didomi-purpose-pub-ciblee"}},selector:".didomi-consent-popup-data-processing, .didomi-components-accordion-label-container"},target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-pub-ciblee]:first-child"},type:"click"},trueAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-pub-ciblee]:last-child"},type:"click"},type:"F"},{description:"Ad and content selection - basics",falseAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-q4zlJqdcD]:first-child"},type:"click"},trueAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-q4zlJqdcD]:last-child"},type:"click"},type:"F"},{description:"Ad and content selection - partners and subsidiaries",falseAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-partenaire-cAsDe8jC]:first-child"},type:"click"},trueAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-partenaire-cAsDe8jC]:last-child"},type:"click"},type:"F"},{description:"Ad and content selection - social networks",falseAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-p4em9a8m]:first-child"},type:"click"},trueAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-p4em9a8m]:last-child"},type:"click"},type:"F"},{description:"Ad and content selection - others",falseAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-autres-pub]:first-child"},type:"click"},trueAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-autres-pub]:last-child"},type:"click"},type:"F"},{description:"Social networks",falseAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-reseauxsociaux]:first-child"},type:"click"},trueAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-reseauxsociaux]:last-child"},type:"click"},type:"A"},{description:"Social networks",falseAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-social_media]:first-child"},type:"click"},trueAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-social_media]:last-child"},type:"click"},type:"A"},{description:"Content selection",falseAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-content_personalization]:first-child"},type:"click"},trueAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-content_personalization]:last-child"},type:"click"},type:"E"},{description:"Ad delivery",falseAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-ad_delivery]:first-child"},type:"click"},trueAction:{target:{selector:".didomi-components-radio__option[aria-describedby=didomi-purpose-ad_delivery]:last-child"},type:"click"},type:"F"}],type:"consent"},{action:{consents:[{matcher:{childFilter:{target:{selector:":not(.didomi-components-radio__option--selected)"}},type:"css"},trueAction:{target:{selector:":nth-child(2)"},type:"click"},falseAction:{target:{selector:":first-child"},type:"click"},type:"X"}],type:"consent"},target:{selector:".didomi-components-radio"},type:"foreach"}],type:"list"},name:"DO_CONSENT"},{action:{parent:{selector:".didomi-consent-popup-footer .didomi-consent-popup-actions"},target:{selector:".didomi-components-button:first-child"},type:"click"},name:"SAVE_CONSENT"}]},oil:{detectors:[{presentMatcher:{target:{selector:".as-oil-content-overlay"},type:"css"},showingMatcher:{target:{selector:".as-oil-content-overlay"},type:"css"}}],methods:[{action:{actions:[{target:{selector:".as-js-advanced-settings"},type:"click"},{retries:"10",target:{selector:".as-oil-cpc__purpose-container"},type:"waitcss",waitTime:"250"}],type:"list"},name:"OPEN_OPTIONS"},{action:{actions:[{consents:[{matcher:{parent:{selector:".as-oil-cpc__purpose-container",textFilter:["Information storage and access","Opbevaring af og adgang til oplysninger på din enhed"]},target:{selector:"input"},type:"checkbox"},toggleAction:{parent:{selector:".as-oil-cpc__purpose-container",textFilter:["Information storage and access","Opbevaring af og adgang til oplysninger på din enhed"]},target:{selector:".as-oil-cpc__switch"},type:"click"},type:"D"},{matcher:{parent:{selector:".as-oil-cpc__purpose-container",textFilter:["Personlige annoncer","Personalisation"]},target:{selector:"input"},type:"checkbox"},toggleAction:{parent:{selector:".as-oil-cpc__purpose-container",textFilter:["Personlige annoncer","Personalisation"]},target:{selector:".as-oil-cpc__switch"},type:"click"},type:"E"},{matcher:{parent:{selector:".as-oil-cpc__purpose-container",textFilter:["Annoncevalg, levering og rapportering","Ad selection, delivery, reporting"]},target:{selector:"input"},type:"checkbox"},toggleAction:{parent:{selector:".as-oil-cpc__purpose-container",textFilter:["Annoncevalg, levering og rapportering","Ad selection, delivery, reporting"]},target:{selector:".as-oil-cpc__switch"},type:"click"},type:"F"},{matcher:{parent:{selector:".as-oil-cpc__purpose-container",textFilter:["Personalisering af indhold","Content selection, delivery, reporting"]},target:{selector:"input"},type:"checkbox"},toggleAction:{parent:{selector:".as-oil-cpc__purpose-container",textFilter:["Personalisering af indhold","Content selection, delivery, reporting"]},target:{selector:".as-oil-cpc__switch"},type:"click"},type:"E"},{matcher:{parent:{childFilter:{target:{selector:".as-oil-cpc__purpose-header",textFilter:["Måling","Measurement"]}},selector:".as-oil-cpc__purpose-container"},target:{selector:"input"},type:"checkbox"},toggleAction:{parent:{childFilter:{target:{selector:".as-oil-cpc__purpose-header",textFilter:["Måling","Measurement"]}},selector:".as-oil-cpc__purpose-container"},target:{selector:".as-oil-cpc__switch"},type:"click"},type:"B"},{matcher:{parent:{selector:".as-oil-cpc__purpose-container",textFilter:"Google"},target:{selector:"input"},type:"checkbox"},toggleAction:{parent:{selector:".as-oil-cpc__purpose-container",textFilter:"Google"},target:{selector:".as-oil-cpc__switch"},type:"click"},type:"F"}],type:"consent"}],type:"list"},name:"DO_CONSENT"},{action:{target:{selector:".as-oil__btn-optin"},type:"click"},name:"SAVE_CONSENT"},{action:{target:{selector:"div.as-oil"},type:"hide"},name:"HIDE_CMP"}]},optanon:{detectors:[{presentMatcher:{target:{selector:"#optanon-menu, .optanon-alert-box-wrapper"},type:"css"},showingMatcher:{target:{displayFilter:!0,selector:".optanon-alert-box-wrapper"},type:"css"}}],methods:[{action:{actions:[{target:{selector:".optanon-alert-box-wrapper .optanon-toggle-display, a[onclick*='OneTrust.ToggleInfoDisplay()'], a[onclick*='Optanon.ToggleInfoDisplay()']"},type:"click"}],type:"list"},name:"OPEN_OPTIONS"},{action:{actions:[{target:{selector:".preference-menu-item #Your-privacy"},type:"click"},{target:{selector:"#optanon-vendor-consent-text"},type:"click"},{action:{consents:[{matcher:{target:{selector:"input"},type:"checkbox"},toggleAction:{target:{selector:"label"},type:"click"},type:"X"}],type:"consent"},target:{selector:"#optanon-vendor-consent-list .vendor-item"},type:"foreach"},{target:{selector:".vendor-consent-back-link"},type:"click"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-performance"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-performance"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"B"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-functional"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-functional"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"E"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-advertising"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-advertising"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"F"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-social"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-social"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"B"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Social Media Cookies"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Social Media Cookies"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"B"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Personalisation"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Personalisation"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"E"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Site monitoring cookies"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Site monitoring cookies"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"B"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Third party privacy-enhanced content"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Third party privacy-enhanced content"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"X"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Performance & Advertising Cookies"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Performance & Advertising Cookies"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"F"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Information storage and access"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Information storage and access"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"D"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Ad selection, delivery, reporting"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Ad selection, delivery, reporting"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"F"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Content selection, delivery, reporting"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Content selection, delivery, reporting"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"E"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Measurement"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Measurement"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"B"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Recommended Cookies"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Recommended Cookies"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"X"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Unclassified Cookies"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Unclassified Cookies"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"X"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Analytical Cookies"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Analytical Cookies"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"B"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Marketing Cookies"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Marketing Cookies"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"F"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Personalization"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Personalization"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"E"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Ad Selection, Delivery & Reporting"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Ad Selection, Delivery & Reporting"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"F"}],type:"consent"}],type:"list"},type:"ifcss"},{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Content Selection, Delivery & Reporting"},trueAction:{actions:[{parent:{selector:"#optanon-menu, .optanon-menu"},target:{selector:".menu-item-necessary",textFilter:"Content Selection, Delivery & Reporting"},type:"click"},{consents:[{matcher:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status input"},type:"checkbox"},toggleAction:{parent:{selector:"#optanon-popup-body-right"},target:{selector:".optanon-status label"},type:"click"},type:"E"}],type:"consent"}],type:"list"},type:"ifcss"}],type:"list"},name:"DO_CONSENT"},{action:{parent:{selector:".optanon-save-settings-button"},target:{selector:".optanon-white-button-middle"},type:"click"},name:"SAVE_CONSENT"},{action:{actions:[{target:{selector:"#optanon-popup-wrapper"},type:"hide"},{target:{selector:"#optanon-popup-bg"},type:"hide"},{target:{selector:".optanon-alert-box-wrapper"},type:"hide"}],type:"list"},name:"HIDE_CMP"}]},quantcast2:{detectors:[{presentMatcher:{target:{selector:"[data-tracking-opt-in-overlay]"},type:"css"},showingMatcher:{target:{selector:"[data-tracking-opt-in-overlay] [data-tracking-opt-in-learn-more]"},type:"css"}}],methods:[{action:{target:{selector:"[data-tracking-opt-in-overlay] [data-tracking-opt-in-learn-more]"},type:"click"},name:"OPEN_OPTIONS"},{action:{actions:[{type:"wait",waitTime:500},{action:{actions:[{target:{selector:"div",textFilter:["Information storage and access"]},trueAction:{consents:[{matcher:{target:{selector:"input"},type:"checkbox"},toggleAction:{target:{selector:"label"},type:"click"},type:"D"}],type:"consent"},type:"ifcss"},{target:{selector:"div",textFilter:["Personalization"]},trueAction:{consents:[{matcher:{target:{selector:"input"},type:"checkbox"},toggleAction:{target:{selector:"label"},type:"click"},type:"F"}],type:"consent"},type:"ifcss"},{target:{selector:"div",textFilter:["Ad selection, delivery, reporting"]},trueAction:{consents:[{matcher:{target:{selector:"input"},type:"checkbox"},toggleAction:{target:{selector:"label"},type:"click"},type:"F"}],type:"consent"},type:"ifcss"},{target:{selector:"div",textFilter:["Content selection, delivery, reporting"]},trueAction:{consents:[{matcher:{target:{selector:"input"},type:"checkbox"},toggleAction:{target:{selector:"label"},type:"click"},type:"E"}],type:"consent"},type:"ifcss"},{target:{selector:"div",textFilter:["Measurement"]},trueAction:{consents:[{matcher:{target:{selector:"input"},type:"checkbox"},toggleAction:{target:{selector:"label"},type:"click"},type:"B"}],type:"consent"},type:"ifcss"},{target:{selector:"div",textFilter:["Other Partners"]},trueAction:{consents:[{matcher:{target:{selector:"input"},type:"checkbox"},toggleAction:{target:{selector:"label"},type:"click"},type:"X"}],type:"consent"},type:"ifcss"}],type:"list"},parent:{childFilter:{target:{selector:"input"}},selector:"[data-tracking-opt-in-overlay] > div > div"},target:{childFilter:{target:{selector:"input"}},selector:":scope > div"},type:"foreach"}],type:"list"},name:"DO_CONSENT"},{action:{target:{selector:"[data-tracking-opt-in-overlay] [data-tracking-opt-in-save]"},type:"click"},name:"SAVE_CONSENT"}]},springer:{detectors:[{presentMatcher:{parent:null,target:{selector:".cmp-app_gdpr"},type:"css"},showingMatcher:{parent:null,target:{displayFilter:!0,selector:".cmp-popup_popup"},type:"css"}}],methods:[{action:{actions:[{target:{selector:".cmp-intro_rejectAll"},type:"click"},{type:"wait",waitTime:250},{target:{selector:".cmp-purposes_purposeItem:not(.cmp-purposes_selectedPurpose)"},type:"click"}],type:"list"},name:"OPEN_OPTIONS"},{action:{consents:[{matcher:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Przechowywanie informacji na urządzeniu lub dostęp do nich",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch .cmp-switch_isSelected"},type:"css"},toggleAction:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Przechowywanie informacji na urządzeniu lub dostęp do nich",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch:not(.cmp-switch_isSelected)"},type:"click"},type:"D"},{matcher:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Wybór podstawowych reklam",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch .cmp-switch_isSelected"},type:"css"},toggleAction:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Wybór podstawowych reklam",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch:not(.cmp-switch_isSelected)"},type:"click"},type:"F"},{matcher:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Tworzenie profilu spersonalizowanych reklam",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch .cmp-switch_isSelected"},type:"css"},toggleAction:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Tworzenie profilu spersonalizowanych reklam",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch:not(.cmp-switch_isSelected)"},type:"click"},type:"F"},{matcher:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Wybór spersonalizowanych reklam",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch .cmp-switch_isSelected"},type:"css"},toggleAction:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Wybór spersonalizowanych reklam",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch:not(.cmp-switch_isSelected)"},type:"click"},type:"E"},{matcher:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Tworzenie profilu spersonalizowanych treści",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch .cmp-switch_isSelected"},type:"css"},toggleAction:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Tworzenie profilu spersonalizowanych treści",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch:not(.cmp-switch_isSelected)"},type:"click"},type:"E"},{matcher:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Wybór spersonalizowanych treści",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch .cmp-switch_isSelected"},type:"css"},toggleAction:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Wybór spersonalizowanych treści",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch:not(.cmp-switch_isSelected)"},type:"click"},type:"B"},{matcher:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Pomiar wydajności reklam",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch .cmp-switch_isSelected"},type:"css"},toggleAction:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Pomiar wydajności reklam",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch:not(.cmp-switch_isSelected)"},type:"click"},type:"B"},{matcher:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Pomiar wydajności treści",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch .cmp-switch_isSelected"},type:"css"},toggleAction:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Pomiar wydajności treści",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch:not(.cmp-switch_isSelected)"},type:"click"},type:"B"},{matcher:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Stosowanie badań rynkowych w celu generowania opinii odbiorców",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch .cmp-switch_isSelected"},type:"css"},toggleAction:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Stosowanie badań rynkowych w celu generowania opinii odbiorców",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch:not(.cmp-switch_isSelected)"},type:"click"},type:"X"},{matcher:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Opracowywanie i ulepszanie produktów",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch .cmp-switch_isSelected"},type:"css"},toggleAction:{parent:{selector:".cmp-purposes_detailHeader",textFilter:"Opracowywanie i ulepszanie produktów",childFilter:{target:{selector:".cmp-switch_switch"}}},target:{selector:".cmp-switch_switch:not(.cmp-switch_isSelected)"},type:"click"},type:"X"}],type:"consent"},name:"DO_CONSENT"},{action:{target:{selector:".cmp-details_save"},type:"click"},name:"SAVE_CONSENT"}]},wordpressgdpr:{detectors:[{presentMatcher:{parent:null,target:{selector:".wpgdprc-consent-bar"},type:"css"},showingMatcher:{parent:null,target:{displayFilter:!0,selector:".wpgdprc-consent-bar"},type:"css"}}],methods:[{action:{parent:null,target:{selector:".wpgdprc-consent-bar .wpgdprc-consent-bar__settings",textFilter:null},type:"click"},name:"OPEN_OPTIONS"},{action:{actions:[{target:{selector:".wpgdprc-consent-modal .wpgdprc-button",textFilter:"Eyeota"},type:"click"},{consents:[{description:"Eyeota Cookies",matcher:{parent:{selector:".wpgdprc-consent-modal__description",textFilter:"Eyeota"},target:{selector:"input"},type:"checkbox"},toggleAction:{parent:{selector:".wpgdprc-consent-modal__description",textFilter:"Eyeota"},target:{selector:"label"},type:"click"},type:"X"}],type:"consent"},{target:{selector:".wpgdprc-consent-modal .wpgdprc-button",textFilter:"Advertising"},type:"click"},{consents:[{description:"Advertising Cookies",matcher:{parent:{selector:".wpgdprc-consent-modal__description",textFilter:"Advertising"},target:{selector:"input"},type:"checkbox"},toggleAction:{parent:{selector:".wpgdprc-consent-modal__description",textFilter:"Advertising"},target:{selector:"label"},type:"click"},type:"F"}],type:"consent"}],type:"list"},name:"DO_CONSENT"},{action:{parent:null,target:{selector:".wpgdprc-button",textFilter:"Save my settings"},type:"click"},name:"SAVE_CONSENT"}]}},E={autoconsent:I,consentomatic:T},B=Object.freeze({__proto__:null,autoconsent:I,consentomatic:T,default:E});const M=new class{constructor(t,c=null,i=null){if(this.id=e(),this.rules=[],this.foundCmp=null,this.state={lifecycle:"loading",prehideOn:!1,findCmpAttempts:0,detectedCmps:[],detectedPopups:[],selfTest:null},o.sendContentMessage=t,this.sendContentMessage=t,this.rules=[...C],this.updateState({lifecycle:"loading"}),c)this.initialize(c,i);else{i&&this.parseRules(i);t({type:"init",url:window.location.href}),this.updateState({lifecycle:"waitingForInitResponse"})}}initialize(e,t){if(this.config=e,e.enabled){if(t&&this.parseRules(t),this.rules=function(e,t){return e.filter((e=>(!t.disabledCmps||!t.disabledCmps.includes(e.name))&&(t.enableCosmeticRules||!e.isCosmetic)))}(this.rules,e),e.enablePrehide)if(document.documentElement)this.prehideElements();else{const e=()=>{window.removeEventListener("DOMContentLoaded",e),this.prehideElements()};window.addEventListener("DOMContentLoaded",e)}if("loading"===document.readyState){const e=()=>{window.removeEventListener("DOMContentLoaded",e),this.start()};window.addEventListener("DOMContentLoaded",e)}else this.start();this.updateState({lifecycle:"initialized"})}}parseRules(e){Object.keys(e.consentomatic).forEach((t=>{this.addConsentomaticCMP(t,e.consentomatic[t])})),e.autoconsent.forEach((e=>{this.addCMP(e)}))}addCMP(e){this.rules.push(function(e){return new _(e)}(e))}addConsentomaticCMP(e,t){this.rules.push(new class{constructor(e,t){this.name=e,this.config=t,this.methods=new Map,this.runContext=b,this.isCosmetic=!1,t.methods.forEach((e=>{e.action&&this.methods.set(e.name,e.action)})),this.hasSelfTest=!1}get isIntermediate(){return!1}checkRunContext(){return!0}async detectCmp(){return this.config.detectors.map((e=>P(e.presentMatcher))).some((e=>!!e))}async detectPopup(){return this.config.detectors.map((e=>P(e.showingMatcher))).some((e=>!!e))}async executeAction(e,t){return!this.methods.has(e)||A(this.methods.get(e),t)}async optOut(){return await this.executeAction("HIDE_CMP"),await this.executeAction("OPEN_OPTIONS"),await this.executeAction("HIDE_CMP"),await this.executeAction("DO_CONSENT",[]),await this.executeAction("SAVE_CONSENT"),!0}async optIn(){return await this.executeAction("HIDE_CMP"),await this.executeAction("OPEN_OPTIONS"),await this.executeAction("HIDE_CMP"),await this.executeAction("DO_CONSENT",["D","A","B","E","F","X"]),await this.executeAction("SAVE_CONSENT"),!0}async openCmp(){return await this.executeAction("HIDE_CMP"),await this.executeAction("OPEN_OPTIONS"),!0}async test(){return!0}}(`com_${e}`,t))}start(){window.requestIdleCallback?window.requestIdleCallback((()=>this._start()),{timeout:500}):this._start()}async _start(){this.updateState({lifecycle:"started"});const e=await this.findCmp(this.config.detectRetries);if(this.updateState({detectedCmps:e.map((e=>e.name))}),0===e.length)return this.config.enablePrehide&&this.undoPrehide(),this.updateState({lifecycle:"nothingDetected"}),!1;this.updateState({lifecycle:"cmpDetected"});let t=await this.detectPopups(e.filter((e=>!e.isCosmetic)));if(0===t.length&&(t=await this.detectPopups(e.filter((e=>e.isCosmetic)))),0===t.length)return this.config.enablePrehide&&this.undoPrehide(),!1;if(this.updateState({lifecycle:"openPopupDetected"}),t.length>1){const e={msg:"Found multiple CMPs, check the detection rules.",cmps:t.map((e=>e.name))};this.sendContentMessage({type:"autoconsentError",details:e})}return this.foundCmp=t[0],"optOut"===this.config.autoAction?await this.doOptOut():"optIn"!==this.config.autoAction||await this.doOptIn()}async findCmp(e){this.updateState({findCmpAttempts:this.state.findCmpAttempts+1});const t=[];for(const e of this.rules)try{if(!e.checkRunContext())continue;await e.detectCmp()&&(this.sendContentMessage({type:"cmpDetected",url:location.href,cmp:e.name}),t.push(e))}catch(e){}return 0===t.length&&e>0?(await m(500),this.findCmp(e-1)):t}async detectPopups(e){const t=[],o=e.map((e=>this.waitForPopup(e).then((o=>{o&&(this.updateState({detectedPopups:this.state.detectedPopups.concat([e.name])}),this.sendContentMessage({type:"popupFound",cmp:e.name,url:location.href}),t.push(e))})).catch((()=>null))));return await Promise.all(o),t}async doOptOut(){let e;return this.updateState({lifecycle:"runningOptOut"}),e=!!this.foundCmp&&await this.foundCmp.optOut(),this.config.enablePrehide&&this.undoPrehide(),this.sendContentMessage({type:"optOutResult",cmp:this.foundCmp?this.foundCmp.name:"none",result:e,scheduleSelfTest:this.foundCmp&&this.foundCmp.hasSelfTest,url:location.href}),e&&!this.foundCmp.isIntermediate?(this.sendContentMessage({type:"autoconsentDone",cmp:this.foundCmp.name,isCosmetic:this.foundCmp.isCosmetic,url:location.href}),this.updateState({lifecycle:"done"})):this.updateState({lifecycle:e?"optOutSucceeded":"optOutFailed"}),e}async doOptIn(){let e;return this.updateState({lifecycle:"runningOptIn"}),e=!!this.foundCmp&&await this.foundCmp.optIn(),this.config.enablePrehide&&this.undoPrehide(),this.sendContentMessage({type:"optInResult",cmp:this.foundCmp?this.foundCmp.name:"none",result:e,scheduleSelfTest:!1,url:location.href}),e&&!this.foundCmp.isIntermediate?(this.sendContentMessage({type:"autoconsentDone",cmp:this.foundCmp.name,isCosmetic:this.foundCmp.isCosmetic,url:location.href}),this.updateState({lifecycle:"done"})):this.updateState({lifecycle:e?"optInSucceeded":"optInFailed"}),e}async doSelfTest(){let e;return e=!!this.foundCmp&&await this.foundCmp.test(),this.sendContentMessage({type:"selfTestResult",cmp:this.foundCmp?this.foundCmp.name:"none",result:e,url:location.href}),this.updateState({selfTest:e}),e}async waitForPopup(e,t=5,o=500){const c=await e.detectPopup();return!c&&t>0?(await m(o),this.waitForPopup(e,t-1,o)):c}prehideElements(){const e=this.rules.reduce(((e,t)=>t.prehideSelectors?[...e,...t.prehideSelectors]:e),["#didomi-popup,.didomi-popup-container,.didomi-popup-notice,.didomi-consent-popup-preferences,#didomi-notice,.didomi-popup-backdrop,.didomi-screen-medium"]);return this.updateState({prehideOn:!0}),setTimeout((()=>{this.config.enablePrehide&&this.state.prehideOn&&!["runningOptOut","runningOptIn"].includes(this.state.lifecycle)&&this.undoPrehide()}),this.config.prehideTimeout||2e3),function(e){return i(c("autoconsent-prehide"),e,"opacity")}(e)}undoPrehide(){return this.updateState({prehideOn:!1}),function(){const e=c("autoconsent-prehide");return e&&e.remove(),!!e}()}updateState(e){Object.assign(this.state,e),this.sendContentMessage({type:"report",instanceId:this.id,url:window.location.href,mainFrame:window.top===window.self,state:this.state})}async receiveMessageCallback(e){switch(e.type){case"initResp":this.initialize(e.config,e.rules);break;case"optIn":await this.doOptIn();break;case"optOut":await this.doOptOut();break;case"selfTest":await this.doSelfTest();break;case"evalResp":!function(e,t){const c=o.pending.get(e);c?(o.pending.delete(e),c.timer&&window.clearTimeout(c.timer),c.resolve(t)):console.warn("no eval #",e)}(e.id,e.result)}}}((e=>{window.webkit.messageHandlers[e.type]&&window.webkit.messageHandlers[e.type].postMessage(e).then((e=>{M.receiveMessageCallback(e)}))}),null,B);window.autoconsentMessageCallback=e=>{M.receiveMessageCallback(e)}}(); diff --git a/DuckDuckGo/AutofillLoginDetailsView.swift b/DuckDuckGo/AutofillLoginDetailsView.swift index 0fb1ddc001..589d858324 100644 --- a/DuckDuckGo/AutofillLoginDetailsView.swift +++ b/DuckDuckGo/AutofillLoginDetailsView.swift @@ -22,14 +22,30 @@ import DuckUI import DesignResourcesKit // swiftlint:disable file_length +// swiftlint:disable type_body_length struct AutofillLoginDetailsView: View { @ObservedObject var viewModel: AutofillLoginDetailsViewModel @State private var actionSheetConfirmDeletePresented: Bool = false - + var body: some View { listWithBackground + .alert(isPresented: $viewModel.isShowingAddressUpdateConfirmAlert) { + let btnLabel = Text(viewModel.toggleConfirmationAlert.button) + let btnAction = viewModel.togglePrivateEmailStatus + let button = Alert.Button.default(btnLabel, action: btnAction) + let cancelBtnLabel = Text(UserText.autofillCancel) + let cancelBtnAction = { viewModel.refreshprivateEmailStatusBool() } + let cancelButton = Alert.Button.cancel(cancelBtnLabel, action: cancelBtnAction) + return Alert( + title: Text(viewModel.toggleConfirmationAlert.title), + message: Text(viewModel.toggleConfirmationAlert.message), + primaryButton: button, + secondaryButton: cancelButton) + } + } + @ViewBuilder private var listWithBackground: some View { @@ -61,6 +77,7 @@ struct AutofillLoginDetailsView: View { viewModel.selectedCell = nil })) .listStyle(.insetGrouped) + .animation(.easeInOut) } private var editingContentView: some View { @@ -72,7 +89,7 @@ struct AutofillLoginDetailsView: View { autoCapitalizationType: .words, disableAutoCorrection: false) } - + Section { editableCell(UserText.autofillLoginDetailsUsername, subtitle: $viewModel.username, @@ -117,30 +134,12 @@ struct AutofillLoginDetailsView: View { AutofillLoginDetailsHeaderView(viewModel: viewModel.headerViewModel) } - Section { - CopyableCell(title: UserText.autofillLoginDetailsUsername, - subtitle: viewModel.usernameDisplayString, - selectedCell: $viewModel.selectedCell, - actionTitle: UserText.autofillCopyPrompt(for: UserText.autofillLoginDetailsUsername), - action: { viewModel.copyToPasteboard(.username) }, - buttonImageName: "Copy-24", - buttonAccessibilityLabel: UserText.autofillCopyPrompt(for: UserText.autofillLoginDetailsUsername), - buttonAction: { viewModel.copyToPasteboard(.username) }) - - CopyableCell(title: UserText.autofillLoginDetailsPassword, - subtitle: viewModel.userVisiblePassword, - selectedCell: $viewModel.selectedCell, - isMonospaced: true, - actionTitle: viewModel.isPasswordHidden ? UserText.autofillShowPassword : UserText.autofillHidePassword, - action: { viewModel.isPasswordHidden.toggle() }, - secondaryActionTitle: UserText.autofillCopyPrompt(for: UserText.autofillLoginDetailsPassword), - secondaryAction: { viewModel.copyToPasteboard(.password) }, - buttonImageName: "Copy-24", - buttonAccessibilityLabel: UserText.autofillCopyPrompt(for: UserText.autofillLoginDetailsPassword), - buttonAction: { viewModel.copyToPasteboard(.password) }) + if viewModel.usernameIsPrivateEmail { + privateEmailCredentialsSection() + } else { + credentialsSection() } - Section { CopyableCell(title: UserText.autofillLoginDetailsAddress, subtitle: viewModel.address, @@ -169,6 +168,72 @@ struct AutofillLoginDetailsView: View { } } } + + private func credentialsSection() -> some View { + Section { + usernameCell() + passwordCell() + } + } + + @ViewBuilder + private func privateEmailCredentialsSection() -> some View { + + // If the user is not signed in, we should show the cells separately + the footer message + if !viewModel.isSignedIn { + Section { + usernameCell() + } footer: { + if !viewModel.isSignedIn { + if #available(iOS 15, *) { + var attributedString: AttributedString { + let text = String(format: UserText.autofillSignInToManageEmail, UserText.autofillEnableEmailProtection) + var attributedString = AttributedString(text) + if let range = attributedString.range(of: UserText.autofillEnableEmailProtection) { + attributedString[range].foregroundColor = Color(ThemeManager.shared.currentTheme.buttonTintColor) + } + return attributedString + } + Text(attributedString) + .font(.footnote) + .lineLimit(nil) + .multilineTextAlignment(.leading) + .fixedSize(horizontal: false, vertical: true) + } else { + Text(String(format: UserText.autofillSignInToManageEmail, UserText.autofillEnableEmailProtection)) + .font(.footnote) + .lineLimit(nil) + .multilineTextAlignment(.leading) + .fixedSize(horizontal: false, vertical: true) + } + } + } + .onTapGesture { + viewModel.openPrivateEmailURL() + } + + Section { + passwordCell() + } + + // If signed in, we only show the separate sections if the email is manageable + } else if viewModel.shouldAllowManagePrivateAddress { + Group { + Section { + usernameCell() + privateEmailCell() + } + Section { + passwordCell() + } + }.transition(.opacity) + + } else { + Section { + credentialsSection() + }.transition(.opacity) + } + } private func editableCell(_ title: String, subtitle: Binding, @@ -234,43 +299,59 @@ struct AutofillLoginDetailsView: View { } .listRowBackground(Color(designSystemColor: .surface)) } -} -struct ClearTextField: View { - var placeholderText: String - @Binding var text: String - var autoCapitalizationType: UITextAutocapitalizationType = .none - var disableAutoCorrection = true - var keyboardType: UIKeyboardType = .default - var secure = false + private func usernameCell() -> some View { + CopyableCell(title: UserText.autofillLoginDetailsUsername, + subtitle: viewModel.usernameDisplayString, + selectedCell: $viewModel.selectedCell, + actionTitle: UserText.autofillCopyPrompt(for: UserText.autofillLoginDetailsUsername), + action: { viewModel.copyToPasteboard(.username) }, + buttonImageName: "Copy-24", + buttonAccessibilityLabel: UserText.autofillCopyPrompt(for: UserText.autofillLoginDetailsUsername), + buttonAction: { viewModel.copyToPasteboard(.username) }) + + } + + private func passwordCell() -> some View { + CopyableCell(title: UserText.autofillLoginDetailsPassword, + subtitle: viewModel.userVisiblePassword, + selectedCell: $viewModel.selectedCell, + isMonospaced: true, + actionTitle: viewModel.isPasswordHidden ? UserText.autofillShowPassword : UserText.autofillHidePassword, + action: { viewModel.isPasswordHidden.toggle() }, + secondaryActionTitle: UserText.autofillCopyPrompt(for: UserText.autofillLoginDetailsPassword), + secondaryAction: { viewModel.copyToPasteboard(.password) }, + buttonImageName: "Copy-24", + buttonAccessibilityLabel: UserText.autofillCopyPrompt(for: UserText.autofillLoginDetailsPassword), + buttonAction: { viewModel.copyToPasteboard(.password) }) + } + + + private func privateEmailCell() -> some View { - @State private var closeButtonVisible = false - - var body: some View { HStack { - TextField(placeholderText, text: $text) { editing in - closeButtonVisible = editing - } onCommit: { - closeButtonVisible = false + VStack(alignment: .leading, spacing: 3) { + Text("Duck Address").label4Style() + Text(viewModel.privateEmailMessage) + .font(.footnote) + .label4Style(design: .default, foregroundColorLight: .gray50, foregroundColorDark: .gray30) + + } + Spacer(minLength: Constants.textFieldImageSize) + if viewModel.privateEmailStatus == .active || viewModel.privateEmailStatus == .inactive { + Toggle("", isOn: $viewModel.privateEmailStatusBool) + .frame(width: 80) + .toggleStyle(SwitchToggleStyle(tint: Color(ThemeManager.shared.currentTheme.buttonTintColor))) + } else { + Image("Alert-Color-16") + .resizable() + .frame(width: 20, height: 20) + .padding(EdgeInsets(top: 8, leading: 0, bottom: 8, trailing: 0)) + } - .autocapitalization(autoCapitalizationType) - .disableAutocorrection(disableAutoCorrection) - .keyboardType(keyboardType) - .label4Style(design: secure && text.count > 0 ? .monospaced : .default) - - Spacer() - Image("Clear-16") - .opacity(closeButtonOpacity) - .onTapGesture { self.text = "" } - } - } - - private var closeButtonOpacity: Double { - if text == "" || !closeButtonVisible { - return 0 } - return 1 } + } private struct MultilineTextEditor: View { @@ -517,3 +598,5 @@ private struct Constants { static let textFieldTapSize: CGFloat = 44 static let insets = EdgeInsets(top: 0, leading: 16, bottom: 0, trailing: 16) } + +// swiftlint:enable type_body_length diff --git a/DuckDuckGo/AutofillLoginDetailsViewController.swift b/DuckDuckGo/AutofillLoginDetailsViewController.swift index 073d901eaf..4a2328481f 100644 --- a/DuckDuckGo/AutofillLoginDetailsViewController.swift +++ b/DuckDuckGo/AutofillLoginDetailsViewController.swift @@ -74,12 +74,26 @@ class AutofillLoginDetailsViewController: UIViewController { self.authenticationNotRequired = authenticationNotRequired super.init(nibName: nil, bundle: nil) self.viewModel.delegate = self - } required init?(coder: NSCoder) { fatalError("init(coder:) has not been implemented") } + + var account: SecureVaultModels.WebsiteAccount? { + get { + viewModel.account + } + set { + if let newValue { + viewModel.updateData(with: newValue) + } else if viewModel.viewMode == .view { + navigationController?.dismiss(animated: true) + } else { + viewModel.viewMode = .new + } + } + } override func viewDidLoad() { super.viewDidLoad() @@ -198,7 +212,8 @@ class AutofillLoginDetailsViewController: UIViewController { viewModel.$title, viewModel.$username, viewModel.$password, - viewModel.$address) + viewModel.$address, + viewModel.$notes) .receive(on: DispatchQueue.main) .sink { [weak self] _ in self?.setupNavigationBar() diff --git a/DuckDuckGo/AutofillLoginDetailsViewModel.swift b/DuckDuckGo/AutofillLoginDetailsViewModel.swift index 9b507c91d2..21d1c7fd34 100644 --- a/DuckDuckGo/AutofillLoginDetailsViewModel.swift +++ b/DuckDuckGo/AutofillLoginDetailsViewModel.swift @@ -17,11 +17,15 @@ // limitations under the License. // +// swiftlint:disable file_length + import Foundation import BrowserServicesKit import Common import SwiftUI import Core +import DesignResourcesKit +import SecureStorage protocol AutofillLoginDetailsViewModelDelegate: AnyObject { func autofillLoginDetailsViewModelDidSave() @@ -30,6 +34,14 @@ protocol AutofillLoginDetailsViewModelDelegate: AnyObject { func autofillLoginDetailsViewModelDismiss() } +struct ConfirmationAlert { + var title: String + var message: String + var button: String +} + +// swiftlint:disable type_body_length + final class AutofillLoginDetailsViewModel: ObservableObject { enum ViewMode { case edit @@ -43,9 +55,15 @@ final class AutofillLoginDetailsViewModel: ObservableObject { case address case notes } + + enum Constants { + static let privateEmailURL = URL(string: "https://duckduckgo.com/email")! + } weak var delegate: AutofillLoginDetailsViewModelDelegate? var account: SecureVaultModels.WebsiteAccount? + var emailManager: EmailManager + private let tld: TLD private let autofillDomainNameUrlMatcher = AutofillDomainNameUrlMatcher() private let autofillDomainNameUrlSort = AutofillDomainNameUrlSort() @@ -68,6 +86,64 @@ final class AutofillLoginDetailsViewModel: ObservableObject { } } } + + // MARK: Private Emaill Address Variables + @Published var privateEmailRequestInProgress: Bool = false + @Published var usernameIsPrivateEmail: Bool = false + @Published var hasValidPrivateEmail: Bool = false + @Published var privateEmailStatus: EmailAliasStatus = .unknown + @Published var privateEmailStatusBool: Bool = false { + didSet { + let status = privateEmailStatus == .active ? true : false + if status != privateEmailStatusBool { + isShowingAddressUpdateConfirmAlert = true + } + } + } + @Published var isShowingAddressUpdateConfirmAlert: Bool = false + @Published var isSignedIn: Bool = false + + var userDuckAddress: String { + return emailManager.userEmail ?? "" + } + + var privateEmailMessage: String { + var message: String + if isSignedIn { + switch privateEmailStatus { + case .error: + message = UserText.autofillPrivateEmailMessageError + case .active: + message = UserText.autofillPrivateEmailMessageActive + case .inactive: + message = UserText.autofillPrivateEmailMessageDeactivated + case .notFound: + message = "" + default: + message = UserText.autofillPrivateEmailMessageDeactivated + } + } else { + message = UserText.autofillSignInToManageEmail + } + return message + } + + var toggleConfirmationAlert: ConfirmationAlert { + if privateEmailStatus == .active { + return ConfirmationAlert(title: UserText.autofillEmailDeactivateConfirmTitle, + message: String(format: UserText.autofillEmailDeactivateConfirmContent, username), + button: UserText.autofillDeactivate) + } + return ConfirmationAlert(title: UserText.autofillEmailActivateConfirmTitle, + message: String(format: UserText.autofillEmailActivateConfirmContent, username), + button: UserText.autofillActivate) + } + + var shouldAllowManagePrivateAddress: Bool { + return hasValidPrivateEmail && isSignedIn && (privateEmailStatus != .notFound) + } + + private var previousUsername: String = "" private var passwordData: Data { password.data(using: .utf8)! @@ -87,11 +163,11 @@ final class AutofillLoginDetailsViewModel: ObservableObject { var shouldShowSaveButton: Bool { guard viewMode == .new else { return false } - return !username.isEmpty || !password.isEmpty || !address.isEmpty || !title.isEmpty + return !username.isEmpty || !password.isEmpty || !address.isEmpty || !title.isEmpty || !notes.isEmpty } var websiteIsValidUrl: Bool { - account?.domain.toTrimmedURL != nil + account?.domain?.toTrimmedURL != nil } var userVisiblePassword: String { @@ -103,10 +179,14 @@ final class AutofillLoginDetailsViewModel: ObservableObject { AutofillInterfaceEmailTruncator.truncateEmail(username, maxLength: 36) } - internal init(account: SecureVaultModels.WebsiteAccount? = nil, tld: TLD) { + internal init(account: SecureVaultModels.WebsiteAccount? = nil, + tld: TLD, + emailManager: EmailManager = EmailManager()) { self.account = account self.tld = tld self.headerViewModel = AutofillLoginDetailsHeaderViewModel() + self.emailManager = emailManager + self.emailManager.requestDelegate = self if let account = account { self.updateData(with: account) AppDependencyProvider.shared.autofillLoginSession.lastAccessedAccount = account @@ -115,10 +195,10 @@ final class AutofillLoginDetailsViewModel: ObservableObject { } } - private func updateData(with account: SecureVaultModels.WebsiteAccount) { + func updateData(with account: SecureVaultModels.WebsiteAccount) { self.account = account - username = account.username - address = account.domain + username = account.username ?? "" + address = account.domain ?? "" title = account.title ?? "" notes = account.notes ?? "" headerViewModel.updateData(with: account, @@ -126,6 +206,15 @@ final class AutofillLoginDetailsViewModel: ObservableObject { autofillDomainNameUrlMatcher: autofillDomainNameUrlMatcher, autofillDomainNameUrlSort: autofillDomainNameUrlSort) setupPassword(with: account) + + // Determine Private Email Status when required + usernameIsPrivateEmail = emailManager.isPrivateEmail(email: username) + if emailManager.isSignedIn { + isSignedIn = true + if usernameIsPrivateEmail { + Task { try? await getPrivateEmailStatus() } + } + } } func toggleEditMode() { @@ -136,6 +225,7 @@ final class AutofillLoginDetailsViewModel: ObservableObject { updateData(with: account) } } else { + previousUsername = username viewMode = .edit } } @@ -172,30 +262,31 @@ final class AutofillLoginDetailsViewModel: ObservableObject { private func setupPassword(with account: SecureVaultModels.WebsiteAccount) { do { if let accountID = account.id, let accountIdInt = Int64(accountID) { - let vault = try SecureVaultFactory.default.makeVault(errorReporter: SecureVaultErrorReporter.shared) + let vault = try AutofillSecureVaultFactory.makeVault(errorReporter: SecureVaultErrorReporter.shared) if let credential = try vault.websiteCredentialsFor(accountId: accountIdInt) { - self.password = String(data: credential.password, encoding: .utf8) ?? "" + self.password = credential.password.flatMap { String(data: $0, encoding: .utf8) } ?? "" } } } catch { - Pixel.fire(pixel: .secureVaultError) + Pixel.fire(pixel: .secureVaultError, error: error) } } + // swiftlint:disable:next cyclomatic_complexity func save() { - guard let vault = try? SecureVaultFactory.default.makeVault(errorReporter: SecureVaultErrorReporter.shared) else { + guard let vault = try? AutofillSecureVaultFactory.makeVault(errorReporter: SecureVaultErrorReporter.shared) else { return } - + switch viewMode { case .edit: guard let accountID = account?.id else { assertionFailure("Trying to save edited account, but the account doesn't exist") return } - + do { if let accountIdInt = Int64(accountID), var credential = try vault.websiteCredentialsFor(accountId: accountIdInt) { @@ -204,15 +295,17 @@ final class AutofillLoginDetailsViewModel: ObservableObject { credential.account.domain = autofillDomainNameUrlMatcher.normalizeUrlForWeb(address) credential.account.notes = notes credential.password = passwordData - - try vault.storeWebsiteCredentials(credential) + + _ = try vault.storeWebsiteCredentials(credential) delegate?.autofillLoginDetailsViewModelDidSave() // Refetch after save to get updated properties like "lastUpdated" if let newCredential = try vault.websiteCredentialsFor(accountId: accountIdInt) { self.updateData(with: newCredential.account) } + viewMode = .view + } } catch let error { handleSecureVaultError(error) @@ -225,6 +318,10 @@ final class AutofillLoginDetailsViewModel: ObservableObject { let credentials = SecureVaultModels.WebsiteCredentials(account: account, password: passwordData) do { + guard try !vault.hasAccountFor(username: account.username, domain: account.domain) else { + delegate?.autofillLoginDetailsViewModelDidAttemptToSaveDuplicateLogin() + return + } let id = try vault.storeWebsiteCredentials(credentials) delegate?.autofillLoginDetailsViewModelDidSave() @@ -241,7 +338,7 @@ final class AutofillLoginDetailsViewModel: ObservableObject { } private func handleSecureVaultError(_ error: Error) { - if case SecureVaultError.duplicateRecord = error { + if case SecureStorageError.duplicateRecord = error { delegate?.autofillLoginDetailsViewModelDidAttemptToSaveDuplicateLogin() } else { Pixel.fire(pixel: .secureVaultError, error: error) @@ -257,13 +354,96 @@ final class AutofillLoginDetailsViewModel: ObservableObject { } func openUrl() { - guard let url = account?.domain.toTrimmedURL else { return } + guard let url = account?.domain?.toTrimmedURL else { return } LaunchTabNotification.postLaunchTabNotification(urlString: url.absoluteString) delegate?.autofillLoginDetailsViewModelDismiss() } + + func openPrivateEmailURL() { + LaunchTabNotification.postLaunchTabNotification(urlString: Constants.privateEmailURL.absoluteString) + delegate?.autofillLoginDetailsViewModelDismiss() + } + + func togglePrivateEmailStatus() { + Task { try await togglePrivateEmailStatus() } + } + + private func getPrivateEmailStatus() async throws { + guard emailManager.isSignedIn else { + throw AliasRequestError.signedOut + } + + guard username != "", + emailManager.isPrivateEmail(email: username) else { + throw AliasRequestError.notFound + } + + do { + setLoadingStatus(true) + let result = try await emailManager.getStatusFor(email: username) + setLoadingStatus(false) + setPrivateEmailStatus(result) + } catch { + setLoadingStatus(false) + setPrivateEmailStatus(.error) + } + } + + private func togglePrivateEmailStatus() async throws { + guard emailManager.isSignedIn else { + throw AliasRequestError.signedOut + } + + guard username != "", + emailManager.isPrivateEmail(email: username) else { + throw AliasRequestError.notFound + } + do { + setLoadingStatus(true) + var result: EmailAliasStatus + if privateEmailStatus == .active { + result = try await emailManager.setStatusFor(email: username, active: false) + } else { + result = try await emailManager.setStatusFor(email: username, active: true) + } + setPrivateEmailStatus(result) + setLoadingStatus(false) + } catch { + setLoadingStatus(false) + setPrivateEmailStatus(.error) + } + + } + + func refreshprivateEmailStatusBool() { + privateEmailStatusBool = privateEmailStatus == .active ? true : false + } + + @MainActor + private func setPrivateEmailStatus(_ status: EmailAliasStatus) { + hasValidPrivateEmail = true + privateEmailStatus = status + privateEmailStatusBool = status == .active ? true : false + } + + @MainActor + private func setLoadingStatus(_ status: Bool) { + if status == true { + privateEmailRequestInProgress = true + } else { + privateEmailRequestInProgress = false + } + + } + + @objc func showLoader() { + privateEmailRequestInProgress = true + } } +// swiftlint:enable type_body_length + final class AutofillLoginDetailsHeaderViewModel: ObservableObject { private var dateFormatter: DateFormatter = { let dateFormatter = DateFormatter() @@ -272,7 +452,6 @@ final class AutofillLoginDetailsHeaderViewModel: ObservableObject { return dateFormatter }() - @Published var title: String = "" @Published var subtitle: String = "" @Published var domain: String = "" @@ -281,8 +460,10 @@ final class AutofillLoginDetailsHeaderViewModel: ObservableObject { func updateData(with account: SecureVaultModels.WebsiteAccount, tld: TLD, autofillDomainNameUrlMatcher: AutofillDomainNameUrlMatcher, autofillDomainNameUrlSort: AutofillDomainNameUrlSort) { self.title = account.name(tld: tld, autofillDomainNameUrlMatcher: autofillDomainNameUrlMatcher) self.subtitle = UserText.autofillLoginDetailsLastUpdated(for: (dateFormatter.string(from: account.lastUpdated))) - self.domain = account.domain - self.preferredFakeFaviconLetter = account.faviconLetter(tld: tld, autofillDomainNameUrlSort: autofillDomainNameUrlSort) + self.domain = account.domain ?? "" + self.preferredFakeFaviconLetter = account.firstTLDLetter(tld: tld, autofillDomainNameUrlSort: autofillDomainNameUrlSort) } } + +extension AutofillLoginDetailsViewModel: EmailManagerRequestDelegate {} diff --git a/DuckDuckGo/AutofillLoginListItemViewModel.swift b/DuckDuckGo/AutofillLoginListItemViewModel.swift index 8a0b0bfb8a..cd68bd66e2 100644 --- a/DuckDuckGo/AutofillLoginListItemViewModel.swift +++ b/DuckDuckGo/AutofillLoginListItemViewModel.swift @@ -39,8 +39,8 @@ final class AutofillLoginListItemViewModel: Identifiable, Hashable { self.account = account self.tld = tld self.title = account.name(tld: tld, autofillDomainNameUrlMatcher: autofillDomainNameUrlMatcher) - self.subtitle = account.username - self.preferredFaviconLetter = account.faviconLetter(tld: tld, autofillDomainNameUrlSort: autofillDomainNameUrlSort) + self.subtitle = account.username ?? "" + self.preferredFaviconLetter = account.firstTLDLetter(tld: tld, autofillDomainNameUrlSort: autofillDomainNameUrlSort) fetchImage() } diff --git a/DuckDuckGo/AutofillLoginListViewModel.swift b/DuckDuckGo/AutofillLoginListViewModel.swift index 336a60fd12..ae9642b488 100644 --- a/DuckDuckGo/AutofillLoginListViewModel.swift +++ b/DuckDuckGo/AutofillLoginListViewModel.swift @@ -65,7 +65,7 @@ final class AutofillLoginListViewModel: ObservableObject { private var appSettings: AppSettings private let tld: TLD private var currentTabUrl: URL? - private let secureVault: SecureVault? + private let secureVault: (any AutofillSecureVault)? private var cachedDeletedCredentials: SecureVaultModels.WebsiteCredentials? private let autofillDomainNameUrlMatcher = AutofillDomainNameUrlMatcher() private let autofillDomainNameUrlSort = AutofillDomainNameUrlSort() @@ -89,7 +89,7 @@ final class AutofillLoginListViewModel: ObservableObject { } } - init(appSettings: AppSettings, tld: TLD, secureVault: SecureVault?, currentTabUrl: URL? = nil) { + init(appSettings: AppSettings, tld: TLD, secureVault: (any AutofillSecureVault)?, currentTabUrl: URL? = nil) { self.appSettings = appSettings self.tld = tld self.secureVault = secureVault @@ -171,8 +171,8 @@ final class AutofillLoginListViewModel: ObservableObject { if let query = query, query.count > 0 { filteredAccounts = filteredAccounts.filter { account in if !account.name(tld: tld, autofillDomainNameUrlMatcher: autofillDomainNameUrlMatcher).lowercased().contains(query.lowercased()) && - !account.domain.lowercased().contains(query.lowercased()) && - !account.username.lowercased().contains(query.lowercased()) { + !(account.domain ?? "").lowercased().contains(query.lowercased()) && + !(account.username ?? "").lowercased().contains(query.lowercased()) { return false } return true @@ -203,7 +203,11 @@ final class AutofillLoginListViewModel: ObservableObject { } let suggestedAccounts = accounts.filter { account in - return autofillDomainNameUrlMatcher.isMatchingForAutofill(currentSite: currentUrl.absoluteString, savedSite: account.domain, tld: tld) + return autofillDomainNameUrlMatcher.isMatchingForAutofill( + currentSite: currentUrl.absoluteString, + savedSite: account.domain ?? "", + tld: tld + ) } let sortedSuggestions = suggestedAccounts.sorted(by: { @@ -300,7 +304,7 @@ final class AutofillLoginListViewModel: ObservableObject { try secureVault.deleteWebsiteCredentialsFor(accountId: accountIdInt) return true } catch { - Pixel.fire(pixel: .secureVaultError) + Pixel.fire(pixel: .secureVaultError, error: error) return false } } @@ -319,7 +323,7 @@ final class AutofillLoginListViewModel: ObservableObject { clearUndoCache() updateData() } catch { - Pixel.fire(pixel: .secureVaultError) + Pixel.fire(pixel: .secureVaultError, error: error) } } } diff --git a/DuckDuckGo/AutofillLoginPromptViewModel.swift b/DuckDuckGo/AutofillLoginPromptViewModel.swift index 598ce35dc9..da3a3e551a 100644 --- a/DuckDuckGo/AutofillLoginPromptViewModel.swift +++ b/DuckDuckGo/AutofillLoginPromptViewModel.swift @@ -46,10 +46,10 @@ struct AccountViewModel: Hashable { let account: SecureVaultModels.WebsiteAccount var displayString: String { - if account.username.count > 0 { - return AutofillInterfaceEmailTruncator.truncateEmail(account.username, maxLength: 36) + if let username = account.username, username.count > 0 { + return AutofillInterfaceEmailTruncator.truncateEmail(username, maxLength: 36) } else { - return UserText.autofillLoginPromptPasswordButtonTitle(for: account.domain) + return UserText.autofillLoginPromptPasswordButtonTitle(for: account.domain ?? "") } } diff --git a/DuckDuckGo/AutofillLoginSettingsListViewController.swift b/DuckDuckGo/AutofillLoginSettingsListViewController.swift index cb4dcb235c..b7d1664b4d 100644 --- a/DuckDuckGo/AutofillLoginSettingsListViewController.swift +++ b/DuckDuckGo/AutofillLoginSettingsListViewController.swift @@ -22,6 +22,7 @@ import Combine import Core import BrowserServicesKit import Common +import DDGSync import DesignResourcesKit // swiftlint:disable file_length type_body_length @@ -37,12 +38,15 @@ final class AutofillLoginSettingsListViewController: UIViewController { } weak var delegate: AutofillLoginSettingsListViewControllerDelegate? + weak var detailsViewController: AutofillLoginDetailsViewController? private let viewModel: AutofillLoginListViewModel private let emptyView = AutofillItemsEmptyView() private let lockedView = AutofillItemsLockedView() private let emptySearchView = AutofillEmptySearchView() private let noAuthAvailableView = AutofillNoAuthAvailableView() private let tld: TLD = AppDependencyProvider.shared.storageCache.tld + private let syncService: DDGSyncing + private var syncUpdatesCancellable: AnyCancellable? private lazy var addBarButtonItem: UIBarButtonItem = { UIBarButtonItem(image: UIImage(named: "Add-24"), @@ -96,13 +100,28 @@ final class AutofillLoginSettingsListViewController: UIViewController { constant: (tableView.frame.height / 2)) }() - init(appSettings: AppSettings, currentTabUrl: URL? = nil) { - let secureVault = try? SecureVaultFactory.default.makeVault(errorReporter: SecureVaultErrorReporter.shared) + init(appSettings: AppSettings, currentTabUrl: URL? = nil, syncService: DDGSyncing, syncDataProviders: SyncDataProviders) { + let secureVault = try? AutofillSecureVaultFactory.makeVault(errorReporter: SecureVaultErrorReporter.shared) if secureVault == nil { os_log("Failed to make vault") } self.viewModel = AutofillLoginListViewModel(appSettings: appSettings, tld: tld, secureVault: secureVault, currentTabUrl: currentTabUrl) + self.syncService = syncService super.init(nibName: nil, bundle: nil) + + syncUpdatesCancellable = syncDataProviders.credentialsAdapter.syncDidCompletePublisher + .receive(on: DispatchQueue.main) + .sink { [weak self] _ in + self?.viewModel.updateData() + self?.tableView.reloadData() + if let detailsViewController = self?.detailsViewController, let accountId = detailsViewController.account?.id.flatMap(Int64.init) { + do { + detailsViewController.account = try secureVault?.websiteCredentialsFor(accountId: accountId)?.account + } catch { + Pixel.fire(pixel: .secureVaultError, error: error) + } + } + } } required init?(coder: NSCoder) { @@ -169,6 +188,7 @@ final class AutofillLoginSettingsListViewController: UIViewController { detailsController.delegate = self let detailsNavigationController = UINavigationController(rootViewController: detailsController) navigationController?.present(detailsNavigationController, animated: true) + detailsViewController = detailsController } func makeAccountDetailsScreen(_ account: SecureVaultModels.WebsiteAccount) -> AutofillLoginDetailsViewController { @@ -177,12 +197,14 @@ final class AutofillLoginSettingsListViewController: UIViewController { tld: tld, authenticationNotRequired: viewModel.authenticationNotRequired) detailsController.delegate = self + detailsViewController = detailsController return detailsController } func showAccountDetails(_ account: SecureVaultModels.WebsiteAccount, animated: Bool = true) { let detailsController = makeAccountDetailsScreen(account) navigationController?.pushViewController(detailsController, animated: animated) + detailsViewController = detailsController } private func setupCancellables() { @@ -239,6 +261,8 @@ final class AutofillLoginSettingsListViewController: UIViewController { if error != .noAuthAvailable { self.delegate?.autofillLoginSettingsListViewControllerDidFinish(self) } + } else { + self.syncService.scheduler.requestSyncImmediately() } } } @@ -252,6 +276,7 @@ final class AutofillLoginSettingsListViewController: UIViewController { presentationLocation: .withoutBottomBar, onAction: { self.viewModel.undoLastDelete() + self.syncService.scheduler.notifyDataChanged() }, onDidDismiss: { self.viewModel.clearUndoCache() NotificationCenter.default.post(name: FireproofFaviconUpdater.deleteFireproofFaviconNotification, @@ -501,7 +526,7 @@ extension AutofillLoginSettingsListViewController: UITableViewDataSource { case .credentials(_, let items): if editingStyle == .delete { let title = items[indexPath.row].title - let domain = items[indexPath.row].account.domain + let domain = items[indexPath.row].account.domain ?? "" let accountId = items[indexPath.row].account.id let tableContentToDelete = viewModel.tableContentsToDelete(accountId: accountId) @@ -520,6 +545,7 @@ extension AutofillLoginSettingsListViewController: UITableViewDataSource { presentDeleteConfirmation(for: title, domain: domain) } + syncService.scheduler.notifyDataChanged() } default: break @@ -578,6 +604,7 @@ extension AutofillLoginSettingsListViewController: AutofillLoginDetailsViewContr func autofillLoginDetailsViewControllerDidSave(_ controller: AutofillLoginDetailsViewController, account: SecureVaultModels.WebsiteAccount?) { viewModel.updateData() tableView.reloadData() + syncService.scheduler.notifyDataChanged() if let account = account { showAccountDetails(account) @@ -590,7 +617,8 @@ extension AutofillLoginSettingsListViewController: AutofillLoginDetailsViewContr if deletedSuccessfully { viewModel.updateData() tableView.reloadData() - presentDeleteConfirmation(for: title, domain: account.domain) + syncService.scheduler.notifyDataChanged() + presentDeleteConfirmation(for: title, domain: account.domain ?? "") } } } diff --git a/DuckDuckGo/Base.lproj/Feedback.storyboard b/DuckDuckGo/Base.lproj/Feedback.storyboard index 0c22f78964..a9b59c7cc8 100644 --- a/DuckDuckGo/Base.lproj/Feedback.storyboard +++ b/DuckDuckGo/Base.lproj/Feedback.storyboard @@ -1,9 +1,9 @@ - + - + @@ -14,7 +14,7 @@ - + @@ -30,11 +30,11 @@ - + - +