Last active
January 8, 2024 19:21
-
-
Save dhyegocalota/048744248173c1c3847d507d5c85a3aa to your computer and use it in GitHub Desktop.
2024.01.03 | Snapshot | Tracking Codes of ThriftyTraveler.com/Premium
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <html> | |
| <head> | |
| <!-- Start of Google 1 --> | |
| <script> | |
| (function (w, d, s, l, i) { | |
| w[l] = w[l] || []; | |
| w[l].push({ "gtm.start": new Date().getTime(), event: "gtm.js" }); | |
| var f = d.getElementsByTagName(s)[0], | |
| j = d.createElement(s), | |
| dl = l != "dataLayer" ? "&l=" + l : ""; | |
| j.async = true; | |
| j.src = "https://www.googletagmanager.com/gtm.js?id=" + i + dl; | |
| f.parentNode.insertBefore(j, f); | |
| })(window, document, "script", "dataLayer", "GTM-KNJLNSQ"); | |
| </script> | |
| <!-- End of Google 1 --> | |
| <!-- Start of AdThrive 1 --> | |
| <script> | |
| !(function () { | |
| "use strict"; | |
| var t = new URL(window.location.href), | |
| e = Array.from(t.searchParams.entries()).map( | |
| (t) => `${t[0]}=${t[1]}` | |
| ); | |
| const a = (t) => t.replace(/\s/g, ""), | |
| r = async (t) => { | |
| const e = { sha256Hash: "", sha1Hash: "" }; | |
| if ( | |
| !("msCrypto" in window) && | |
| "https:" === location.protocol && | |
| "crypto" in window && | |
| "TextEncoder" in window | |
| ) { | |
| const a = new TextEncoder().encode(t), | |
| [r, o] = await Promise.all([n("SHA-256", a), n("SHA-1", a)]); | |
| (e.sha256Hash = r), (e.sha1Hash = o); | |
| } | |
| return e; | |
| }, | |
| n = async (t, e) => { | |
| const a = await crypto.subtle.digest(t, e); | |
| return Array.from(new Uint8Array(a)) | |
| .map((t) => ("00" + t.toString(16)).slice(-2)) | |
| .join(""); | |
| }; | |
| function o(t) { | |
| let e = !0; | |
| return ( | |
| Object.keys(t).forEach((a) => { | |
| 0 === t[a].length && (e = !1); | |
| }), | |
| e | |
| ); | |
| } | |
| function s() { | |
| e.splice(i, 1); | |
| var a = "?" + e.join("&") + t.hash; | |
| history.replaceState(null, "", a); | |
| } | |
| for (var i = 0; i < e.length; i++) { | |
| var c = "adt_ei", | |
| l = decodeURIComponent(e[i]); | |
| if (0 === l.indexOf(c)) { | |
| var h = l.split(c + "=")[1]; | |
| if ( | |
| ((t) => { | |
| const e = t.match( | |
| /((?=([a-zA-Z0-9._!#$%+^&*()[\]<>-]+))\2@[a-zA-Z0-9._-]+\.[a-zA-Z0-9._-]+)/gi | |
| ); | |
| return e ? e[0] : ""; | |
| })(a(h.toLowerCase())) | |
| ) { | |
| r(h).then((t) => { | |
| if (o(t)) { | |
| var e = { value: t, created: Date.now() }; | |
| localStorage.setItem(c, JSON.stringify(e)), | |
| localStorage.setItem("adt_emsrc", "url"); | |
| } | |
| s(); | |
| }); | |
| break; | |
| } | |
| s(); | |
| break; | |
| } | |
| } | |
| })(); | |
| </script> | |
| <script data-no-optimize="1" data-cfasync="false"> | |
| window.adthriveCLS = { | |
| enabledLocations: ["Content", "Recipe"], | |
| injectedSlots: [], | |
| injectedFromPlugin: true, | |
| branch: "f562f85", | |
| bucket: "prod", | |
| }; | |
| window.adthriveCLS.siteAds = { | |
| siteId: "5f172f9e14feb56cb94c4c3f", | |
| siteName: "Thrifty Traveler", | |
| betaTester: false, | |
| targeting: [ | |
| { value: "5f172f9e14feb56cb94c4c3f", key: "siteId" }, | |
| { value: "6233884dc12ab37088fe50cf", key: "organizationId" }, | |
| { value: "Thrifty Traveler", key: "siteName" }, | |
| { value: "AdThrive Edge", key: "service" }, | |
| { value: "on", key: "bidding" }, | |
| { value: ["Travel"], key: "verticals" }, | |
| ], | |
| breakpoints: { tablet: 768, desktop: 1024 }, | |
| adUnits: [ | |
| { | |
| sequence: 1, | |
| targeting: [{ value: ["Sidebar"], key: "location" }], | |
| devices: ["desktop"], | |
| name: "Sidebar_1", | |
| sticky: false, | |
| location: "Sidebar", | |
| dynamic: { | |
| pageSelector: "", | |
| spacing: 0, | |
| max: 1, | |
| lazy: false, | |
| lazyMax: null, | |
| elementSelector: "#secondary > *", | |
| skip: 1, | |
| classNames: [], | |
| position: "beforebegin", | |
| every: 1, | |
| enabled: true, | |
| }, | |
| adSizes: [ | |
| [160, 600], | |
| [336, 280], | |
| [320, 50], | |
| [300, 600], | |
| [250, 250], | |
| [1, 1], | |
| [320, 100], | |
| [300, 1050], | |
| [300, 50], | |
| [300, 420], | |
| [300, 250], | |
| ], | |
| priority: 299, | |
| autosize: true, | |
| }, | |
| { | |
| sequence: 9, | |
| targeting: [ | |
| { value: ["Sidebar"], key: "location" }, | |
| { value: true, key: "sticky" }, | |
| ], | |
| devices: ["desktop"], | |
| name: "Sidebar_9", | |
| sticky: true, | |
| location: "Sidebar", | |
| dynamic: { | |
| pageSelector: "", | |
| spacing: 0, | |
| max: 1, | |
| lazy: false, | |
| lazyMax: null, | |
| elementSelector: "#secondary", | |
| skip: 0, | |
| classNames: [], | |
| position: "beforeend", | |
| every: 1, | |
| enabled: true, | |
| }, | |
| adSizes: [ | |
| [160, 600], | |
| [336, 280], | |
| [320, 50], | |
| [300, 600], | |
| [250, 250], | |
| [1, 1], | |
| [320, 100], | |
| [300, 1050], | |
| [300, 50], | |
| [300, 420], | |
| [300, 250], | |
| ], | |
| priority: 291, | |
| autosize: true, | |
| }, | |
| { | |
| sequence: null, | |
| targeting: [{ value: ["Content"], key: "location" }], | |
| devices: ["desktop"], | |
| name: "Content", | |
| sticky: false, | |
| location: "Content", | |
| dynamic: { | |
| pageSelector: "body.single, body.page:not(.home)", | |
| spacing: 1, | |
| max: 5, | |
| lazy: true, | |
| lazyMax: 20, | |
| elementSelector: ".entry-content > p+p", | |
| skip: 4, | |
| classNames: [], | |
| position: "afterend", | |
| every: 1, | |
| enabled: true, | |
| }, | |
| adSizes: [ | |
| [728, 90], | |
| [336, 280], | |
| [320, 50], | |
| [468, 60], | |
| [970, 90], | |
| [250, 250], | |
| [1, 1], | |
| [320, 100], | |
| [970, 250], | |
| [1, 2], | |
| [300, 50], | |
| [300, 300], | |
| [552, 334], | |
| [728, 250], | |
| [300, 250], | |
| ], | |
| priority: 199, | |
| autosize: true, | |
| }, | |
| { | |
| sequence: null, | |
| targeting: [{ value: ["Content"], key: "location" }], | |
| devices: ["tablet"], | |
| name: "Content", | |
| sticky: false, | |
| location: "Content", | |
| dynamic: { | |
| pageSelector: "body.single, body.page:not(.home)", | |
| spacing: 0.7, | |
| max: 5, | |
| lazy: true, | |
| lazyMax: 20, | |
| elementSelector: ".entry-content > p+p", | |
| skip: 4, | |
| classNames: [], | |
| position: "afterend", | |
| every: 1, | |
| enabled: true, | |
| }, | |
| adSizes: [ | |
| [728, 90], | |
| [336, 280], | |
| [320, 50], | |
| [468, 60], | |
| [970, 90], | |
| [250, 250], | |
| [1, 1], | |
| [320, 100], | |
| [970, 250], | |
| [1, 2], | |
| [300, 50], | |
| [300, 300], | |
| [552, 334], | |
| [728, 250], | |
| [300, 250], | |
| ], | |
| priority: 199, | |
| autosize: true, | |
| }, | |
| { | |
| sequence: null, | |
| targeting: [{ value: ["Content"], key: "location" }], | |
| devices: ["phone"], | |
| name: "Content", | |
| sticky: false, | |
| location: "Content", | |
| dynamic: { | |
| pageSelector: "body.single, body.page:not(.home)", | |
| spacing: 1, | |
| max: 6, | |
| lazy: true, | |
| lazyMax: 20, | |
| elementSelector: ".entry-content > p+p", | |
| skip: 4, | |
| classNames: [], | |
| position: "afterend", | |
| every: 1, | |
| enabled: true, | |
| }, | |
| adSizes: [ | |
| [1, 1], | |
| [1, 2], | |
| [250, 250], | |
| [300, 50], | |
| [300, 250], | |
| [300, 300], | |
| [320, 50], | |
| [320, 100], | |
| [336, 280], | |
| [468, 60], | |
| [552, 334], | |
| [728, 90], | |
| [728, 250], | |
| [970, 90], | |
| [970, 250], | |
| ], | |
| priority: 199, | |
| autosize: true, | |
| }, | |
| { | |
| sequence: null, | |
| targeting: [{ value: ["Content"], key: "location" }], | |
| devices: ["desktop"], | |
| name: "Content", | |
| sticky: false, | |
| location: "Content", | |
| dynamic: { | |
| pageSelector: "body.archive", | |
| spacing: 0, | |
| max: 1, | |
| lazy: false, | |
| lazyMax: null, | |
| elementSelector: "article.grid", | |
| skip: 0, | |
| classNames: [], | |
| position: "afterend", | |
| every: 1, | |
| enabled: true, | |
| }, | |
| adSizes: [ | |
| [728, 90], | |
| [336, 280], | |
| [320, 50], | |
| [468, 60], | |
| [970, 90], | |
| [250, 250], | |
| [1, 1], | |
| [320, 100], | |
| [970, 250], | |
| [1, 2], | |
| [300, 50], | |
| [300, 300], | |
| [552, 334], | |
| [728, 250], | |
| [300, 250], | |
| ], | |
| priority: 199, | |
| autosize: true, | |
| }, | |
| { | |
| sequence: null, | |
| targeting: [{ value: ["Below Post"], key: "location" }], | |
| devices: ["desktop"], | |
| name: "Below_Post", | |
| sticky: false, | |
| location: "Below Post", | |
| dynamic: { | |
| pageSelector: "body.single, body.page:not(.home)", | |
| spacing: 0, | |
| max: 0, | |
| lazy: true, | |
| lazyMax: 1, | |
| elementSelector: ".entry-content", | |
| skip: 0, | |
| classNames: [], | |
| position: "beforeend", | |
| every: 1, | |
| enabled: true, | |
| }, | |
| adSizes: [ | |
| [120, 240], | |
| [250, 250], | |
| [300, 250], | |
| [320, 50], | |
| [320, 100], | |
| [468, 60], | |
| [728, 90], | |
| [1, 1], | |
| ], | |
| priority: 99, | |
| autosize: true, | |
| }, | |
| { | |
| sequence: null, | |
| targeting: [{ value: ["Below Post"], key: "location" }], | |
| devices: ["phone", "tablet"], | |
| name: "Below_Post", | |
| sticky: false, | |
| location: "Below Post", | |
| dynamic: { | |
| pageSelector: "body.single, body.page:not(.home)", | |
| spacing: 0, | |
| max: 0, | |
| lazy: true, | |
| lazyMax: 1, | |
| elementSelector: ".entry-content", | |
| skip: 0, | |
| classNames: [], | |
| position: "beforeend", | |
| every: 1, | |
| enabled: true, | |
| }, | |
| adSizes: [ | |
| [728, 90], | |
| [336, 280], | |
| [320, 50], | |
| [468, 60], | |
| [250, 250], | |
| [1, 1], | |
| [320, 100], | |
| [300, 250], | |
| [970, 250], | |
| [728, 250], | |
| ], | |
| priority: 99, | |
| autosize: true, | |
| }, | |
| { | |
| sequence: null, | |
| targeting: [ | |
| { value: ["Footer"], key: "location" }, | |
| { value: true, key: "sticky" }, | |
| ], | |
| devices: ["tablet", "phone", "desktop"], | |
| name: "Footer", | |
| sticky: true, | |
| location: "Footer", | |
| dynamic: { | |
| pageSelector: "body:not(.archive)", | |
| spacing: 0, | |
| max: 1, | |
| lazy: false, | |
| lazyMax: null, | |
| elementSelector: "body", | |
| skip: 0, | |
| classNames: [], | |
| position: "beforeend", | |
| every: 1, | |
| enabled: true, | |
| }, | |
| adSizes: [ | |
| [320, 50], | |
| [320, 100], | |
| [728, 90], | |
| [970, 90], | |
| [468, 60], | |
| [1, 1], | |
| [300, 50], | |
| ], | |
| priority: -1, | |
| autosize: true, | |
| }, | |
| ], | |
| adDensityLayout: { | |
| mobile: { adDensity: 0.26, onePerViewport: true }, | |
| pageOverrides: [ | |
| { | |
| mobile: { adDensity: 0.3, onePerViewport: false }, | |
| pageSelector: "body.archive", | |
| desktop: { adDensity: 0.3, onePerViewport: false }, | |
| }, | |
| { | |
| mobile: { adDensity: 0.3, onePerViewport: false }, | |
| pageSelector: "body.home", | |
| desktop: { adDensity: 0.3, onePerViewport: false }, | |
| }, | |
| ], | |
| desktop: { adDensity: 0.26, onePerViewport: true }, | |
| }, | |
| adDensityEnabled: true, | |
| siteExperiments: [], | |
| adTypes: { | |
| sponsorTileDesktop: true, | |
| nativeDesktopContent: true, | |
| outstreamDesktop: true, | |
| nativeBelowPostDesktop: true, | |
| miniscroller: false, | |
| animatedFooter: true, | |
| largeFormatsMobile: false, | |
| nativeMobileContent: true, | |
| inRecipeRecommendationMobile: true, | |
| nativeMobileRecipe: true, | |
| expandableFooter: true, | |
| nativeDesktopSidebar: true, | |
| sponsorTileMobile: true, | |
| interscroller: false, | |
| nativeDesktopRecipe: true, | |
| outstreamMobile: true, | |
| nativeHeaderDesktop: true, | |
| nativeHeaderMobile: true, | |
| nativeBelowPostMobile: true, | |
| largeFormatsDesktop: false, | |
| inRecipeRecommendationDesktop: true, | |
| }, | |
| adOptions: { | |
| theTradeDesk: true, | |
| rtbhouse: true, | |
| verizon: true, | |
| undertone: true, | |
| sidebarConfig: { | |
| dynamicStickySidebar: { | |
| minHeight: 1200, | |
| enabled: false, | |
| blockedSelectors: [], | |
| }, | |
| }, | |
| concert: false, | |
| footerCloseButton: true, | |
| teads: true, | |
| pmp: true, | |
| thirtyThreeAcross: false, | |
| sharethrough: true, | |
| removeVideoTitleWrapper: false, | |
| pubMatic: true, | |
| roundel: true, | |
| infiniteScroll: false, | |
| yahoossp: true, | |
| improvedigital: true, | |
| spa: false, | |
| stickyContainerConfig: { | |
| recipeDesktop: { minHeight: null, enabled: false }, | |
| blockedSelectors: [], | |
| stickyHeaderSelectors: [], | |
| content: { minHeight: null, enabled: false }, | |
| recipeMobile: { minHeight: null, enabled: false }, | |
| }, | |
| sonobi: true, | |
| yieldmo: true, | |
| footerSelector: "", | |
| amazonUAM: true, | |
| gamMCMEnabled: true, | |
| gamMCMChildNetworkCode: "21958179616", | |
| rubicon: true, | |
| conversant: true, | |
| resetdigital: true, | |
| openx: true, | |
| mobileHeaderHeight: 1, | |
| unruly: true, | |
| mediaGrid: true, | |
| bRealTime: true, | |
| gumgum: true, | |
| comscoreFooter: false, | |
| desktopInterstitial: false, | |
| footerCloseButtonDesktop: true, | |
| ozone: false, | |
| isAutoOptimized: false, | |
| adform: true, | |
| comscoreTAL: true, | |
| targetaff: false, | |
| advancePlaylistOptions: { | |
| playlistPlayer: { enabled: true }, | |
| relatedPlayer: { enabled: true, applyToFirst: false }, | |
| }, | |
| kargo: true, | |
| liveRampATS: true, | |
| footerCloseButtonMobile: true, | |
| interstitialBlockedPageSelectors: "", | |
| allowSmallerAdSizes: true, | |
| comscore: "Travel", | |
| mobileInterstitial: false, | |
| tripleLift: true, | |
| sensitiveCategories: [ | |
| "alc", | |
| "cbd", | |
| "conl", | |
| "dat", | |
| "drg", | |
| "gamv", | |
| "ske", | |
| "wtl", | |
| ], | |
| liveRamp: true, | |
| mobileInterstitialBlockedPageSelectors: "", | |
| adthriveEmailIdentity: true, | |
| criteo: true, | |
| nativo: true, | |
| infiniteScrollOptions: { selector: "", heightThreshold: 0 }, | |
| siteAttributes: { | |
| mobileHeaderSelectors: [], | |
| desktopHeaderSelectors: [], | |
| }, | |
| dynamicContentSlotLazyLoading: true, | |
| clsOptimizedAds: true, | |
| colossus: true, | |
| aidem: false, | |
| verticals: ["Travel"], | |
| inImage: false, | |
| advancePlaylist: true, | |
| delayLoading: true, | |
| inImageZone: null, | |
| appNexus: true, | |
| liveRampId: "", | |
| infiniteScrollRefresh: false, | |
| indexExchange: true, | |
| }, | |
| videoPlayers: { | |
| contextual: { | |
| autoplayCollapsibleEnabled: true, | |
| overrideEmbedLocation: true, | |
| defaultPlayerType: "collapse", | |
| }, | |
| videoEmbed: "wordpress", | |
| footerSelector: ".site-footer", | |
| contentSpecificPlaylists: [], | |
| players: [ | |
| { | |
| devices: ["desktop", "mobile"], | |
| description: "", | |
| id: 4068190, | |
| title: "Stationary related player - desktop and mobile", | |
| type: "stationaryRelated", | |
| enabled: true, | |
| playerId: "mMeXX9Cu", | |
| }, | |
| { | |
| pageSelector: "", | |
| devices: ["desktop"], | |
| description: "", | |
| elementSelector: ".entry-content > *", | |
| skip: 0, | |
| id: 4068191, | |
| position: "afterend", | |
| title: "Sticky related player - desktop", | |
| type: "stickyRelated", | |
| enabled: true, | |
| playerId: "mMeXX9Cu", | |
| }, | |
| { | |
| pageSelector: "", | |
| devices: ["mobile"], | |
| mobileLocation: "bottom-right", | |
| description: "", | |
| elementSelector: ".entry-content > *", | |
| skip: 0, | |
| id: 4068192, | |
| position: "afterend", | |
| title: "Sticky related player - mobile", | |
| type: "stickyRelated", | |
| enabled: true, | |
| playerId: "mMeXX9Cu", | |
| }, | |
| { | |
| playlistId: "tpqVWZjj", | |
| pageSelector: "body.single", | |
| devices: ["desktop"], | |
| description: "", | |
| skip: 0, | |
| title: "LATEST VIDEOS", | |
| type: "stickyPlaylist", | |
| enabled: false, | |
| footerSelector: ".site-footer", | |
| elementSelector: ".entry-content > *", | |
| id: 4068193, | |
| position: "afterend", | |
| saveVideoCloseState: false, | |
| shuffle: true, | |
| playerId: "4HVwnTqu", | |
| }, | |
| { | |
| playlistId: "tpqVWZjj", | |
| pageSelector: "body.single", | |
| devices: ["mobile"], | |
| mobileLocation: "bottom-right", | |
| description: "", | |
| skip: 0, | |
| title: "LATEST VIDEOS", | |
| type: "stickyPlaylist", | |
| enabled: false, | |
| footerSelector: ".site-footer", | |
| elementSelector: ".entry-content > *", | |
| id: 4068194, | |
| position: "afterend", | |
| saveVideoCloseState: false, | |
| shuffle: true, | |
| playerId: "4HVwnTqu", | |
| }, | |
| ], | |
| partners: { | |
| theTradeDesk: true, | |
| unruly: true, | |
| mediaGrid: true, | |
| undertone: true, | |
| gumgum: true, | |
| adform: true, | |
| pmp: true, | |
| kargo: true, | |
| thirtyThreeAcross: false, | |
| stickyOutstream: { | |
| desktop: { enabled: false }, | |
| blockedPageSelectors: "", | |
| mobileLocation: null, | |
| allowOnHomepage: false, | |
| mobile: { enabled: false }, | |
| saveVideoCloseState: false, | |
| mobileHeaderSelector: "", | |
| allowForPageWithStickyPlayer: { enabled: false }, | |
| }, | |
| sharethrough: true, | |
| tripleLift: true, | |
| pubMatic: true, | |
| roundel: true, | |
| yahoossp: true, | |
| criteo: true, | |
| improvedigital: true, | |
| colossus: true, | |
| aidem: false, | |
| yieldmo: true, | |
| amazonUAM: true, | |
| rubicon: true, | |
| appNexus: true, | |
| resetdigital: true, | |
| openx: true, | |
| indexExchange: true, | |
| }, | |
| }, | |
| }; | |
| </script> | |
| <script data-no-optimize="1" data-cfasync="false"> | |
| (function (w, d) { | |
| w.adthrive = w.adthrive || {}; | |
| w.adthrive.cmd = w.adthrive.cmd || []; | |
| w.adthrive.plugin = "adthrive-ads-3.5.6"; | |
| w.adthrive.host = "ads.adthrive.com"; | |
| w.adthrive.integration = "plugin"; | |
| var commitParam = | |
| w.adthriveCLS && | |
| w.adthriveCLS.bucket !== "prod" && | |
| w.adthriveCLS.branch | |
| ? "&commit=" + w.adthriveCLS.branch | |
| : ""; | |
| var s = d.createElement("script"); | |
| s.async = true; | |
| s.referrerpolicy = "no-referrer-when-downgrade"; | |
| s.src = | |
| "https://" + | |
| w.adthrive.host + | |
| "/sites/5f172f9e14feb56cb94c4c3f/ads.min.js?referrer=" + | |
| w.encodeURIComponent(w.location.href) + | |
| commitParam + | |
| "&cb=" + | |
| (Math.floor(Math.random() * 100) + 1) + | |
| ""; | |
| var n = d.getElementsByTagName("script")[0]; | |
| n.parentNode.insertBefore(s, n); | |
| })(window, document); | |
| </script> | |
| <link rel="dns-prefetch" href="https://ads.adthrive.com/" /> | |
| <link rel="preconnect" href="https://ads.adthrive.com/" /> | |
| <link rel="preconnect" href="https://ads.adthrive.com/" crossorigin /> | |
| <!-- End of AdThrive 1 --> | |
| <!-- Start of Meta 1 --> | |
| <script type="text/javascript"> | |
| !(function (f, b, e, v, n, t, s) { | |
| if (f.fbq) return; | |
| n = f.fbq = function () { | |
| n.callMethod | |
| ? n.callMethod.apply(n, arguments) | |
| : n.queue.push(arguments); | |
| }; | |
| if (!f._fbq) f._fbq = n; | |
| n.push = n; | |
| n.loaded = !0; | |
| n.version = "2.0"; | |
| n.queue = []; | |
| t = b.createElement(e); | |
| t.async = !0; | |
| t.src = v; | |
| s = b.getElementsByTagName(e)[0]; | |
| s.parentNode.insertBefore(t, s); | |
| })( | |
| window, | |
| document, | |
| "script", | |
| "https://connect.facebook.net/en_US/fbevents.js?v=next" | |
| ); | |
| </script> | |
| <script type="text/javascript"> | |
| var url = window.location.origin + "?ob=open-bridge"; | |
| fbq("set", "openbridge", "1398286217144760", url); | |
| </script> | |
| <script type="text/javascript"> | |
| fbq( | |
| "init", | |
| "1398286217144760", | |
| {}, | |
| { | |
| agent: "wordpress-6.3.2-3.0.14", | |
| } | |
| ); | |
| </script> | |
| <script type="text/javascript"> | |
| fbq("track", "PageView", []); | |
| </script> | |
| <noscript> | |
| <img | |
| height="1" | |
| width="1" | |
| style="display: none" | |
| alt="fbpx" | |
| src="https://www.facebook.com/tr?id=1398286217144760&ev=PageView&noscript=1" | |
| /> | |
| </noscript> | |
| <!-- End of Meta 1 --> | |
| <!-- Start of AdThrive 2 --> | |
| <script | |
| data-no-optimize="1" | |
| data-cfasync="false" | |
| id="cls-disable-ads-f562f85" | |
| > | |
| "use strict"; | |
| var cls_disable_ads = (function (n) { | |
| function h(a, b) { | |
| var c = "function" === typeof Symbol && a[Symbol.iterator]; | |
| if (!c) return a; | |
| a = c.call(a); | |
| var d, | |
| e = []; | |
| try { | |
| for (; (void 0 === b || 0 < b--) && !(d = a.next()).done; ) | |
| e.push(d.value); | |
| } catch (l) { | |
| var f = { error: l }; | |
| } finally { | |
| try { | |
| d && !d.done && (c = a["return"]) && c.call(a); | |
| } finally { | |
| if (f) throw f.error; | |
| } | |
| } | |
| return e; | |
| } | |
| function k(a, b, c) { | |
| if (c || 2 === arguments.length) | |
| for (var d = 0, e = b.length, f; d < e; d++) | |
| (!f && d in b) || | |
| (f || (f = Array.prototype.slice.call(b, 0, d)), (f[d] = b[d])); | |
| return a.concat(f || Array.prototype.slice.call(b)); | |
| } | |
| window.adthriveCLS.buildDate = "2024-01-02"; | |
| var D = new ((function () { | |
| function a() {} | |
| a.prototype.info = function (b, c) { | |
| for (var d = [], e = 2; e < arguments.length; e++) | |
| d[e - 2] = arguments[e]; | |
| this.call.apply(this, k([console.info, b, c], h(d), !1)); | |
| }; | |
| a.prototype.warn = function (b, c) { | |
| for (var d = [], e = 2; e < arguments.length; e++) | |
| d[e - 2] = arguments[e]; | |
| this.call.apply(this, k([console.warn, b, c], h(d), !1)); | |
| }; | |
| a.prototype.error = function (b, c) { | |
| for (var d = [], e = 2; e < arguments.length; e++) | |
| d[e - 2] = arguments[e]; | |
| this.call.apply(this, k([console.error, b, c], h(d), !1)); | |
| this.sendErrorLogToCommandQueue.apply(this, k([b, c], h(d), !1)); | |
| }; | |
| a.prototype.event = function (b, c) { | |
| for (var d, e = 2; e < arguments.length; e++); | |
| "debug" === | |
| (null === (d = window.adthriveCLS) || void 0 === d | |
| ? void 0 | |
| : d.bucket) && this.info(b, c); | |
| }; | |
| a.prototype.sendErrorLogToCommandQueue = function (b, c) { | |
| for (var d = [], e = 2; e < arguments.length; e++) | |
| d[e - 2] = arguments[e]; | |
| window.adthrive = window.adthrive || {}; | |
| window.adthrive.cmd = window.adthrive.cmd || []; | |
| window.adthrive.cmd.push( | |
| function () { | |
| void 0 !== window.adthrive.logError && | |
| "function" === typeof window.adthrive.logError && | |
| window.adthrive.logError(b, c, d); | |
| }.bind(b, c, d) | |
| ); | |
| }; | |
| a.prototype.call = function (b, c, d) { | |
| for (var e = [], f = 3; f < arguments.length; f++) | |
| e[f - 3] = arguments[f]; | |
| f = ["%c".concat(c, "::").concat(d, " ")]; | |
| var l = ["color: #999; font-weight: bold;"]; | |
| 0 < e.length && "string" === typeof e[0] && f.push(e.shift()); | |
| l.push.apply(l, k([], h(e), !1)); | |
| try { | |
| Function.prototype.apply.call( | |
| b, | |
| console, | |
| k([f.join("")], h(l), !1) | |
| ); | |
| } catch (C) { | |
| console.error(C); | |
| } | |
| }; | |
| return a; | |
| })())(), | |
| g; | |
| (function (a) { | |
| a.amznbid = "amznbid"; | |
| a.amzniid = "amzniid"; | |
| a.amznp = "amznp"; | |
| a.amznsz = "amznsz"; | |
| })(g || (g = {})); | |
| var m; | |
| (function (a) { | |
| a.ThirtyThreeAcross = "33across"; | |
| a.AppNexus = "appnexus"; | |
| a.Amazon = "amazon"; | |
| a.Colossus = "colossus"; | |
| a.ColossusServer = "col_ss"; | |
| a.Conversant = "conversant"; | |
| a.Concert = "concert"; | |
| a.Criteo = "criteo"; | |
| a.GumGum = "gumgum"; | |
| a.ImproveDigital = "improvedigital"; | |
| a.ImproveDigitalServer = "improve_ss"; | |
| a.IndexExchange = "ix"; | |
| a.Kargo = "kargo"; | |
| a.KargoServer = "krgo_ss"; | |
| a.MediaGrid = "grid"; | |
| a.MediaGridVideo = "gridvid"; | |
| a.Nativo = "nativo"; | |
| a.OpenX = "openx"; | |
| a.Ogury = "ogury"; | |
| a.OpenXServer = "opnx_ss"; | |
| a.Ozone = "ozone"; | |
| a.Pubmatic = "pubmatic"; | |
| a.PubmaticServer = "pubm_ss"; | |
| a.ResetDigital = "resetdigital"; | |
| a.Roundel = "roundel"; | |
| a.Rtbhouse = "rtbhouse"; | |
| a.Rubicon = "rubicon"; | |
| a.RubiconServer = "rubi_ss"; | |
| a.Sharethrough = "sharethrough"; | |
| a.Teads = "teads"; | |
| a.Triplelift = "triplelift"; | |
| a.TripleliftServer = "tripl_ss"; | |
| a.TTD = "ttd"; | |
| a.Undertone = "undertone"; | |
| a.UndertoneServer = "under_ss"; | |
| a.Unruly = "unruly"; | |
| a.YahooSSP = "yahoossp"; | |
| a.YahooSSPServer = "yah_ss"; | |
| a.Verizon = "verizon"; | |
| a.Yieldmo = "yieldmo"; | |
| })(m || (m = {})); | |
| var q; | |
| (function (a) { | |
| a.Prebid = "prebid"; | |
| a.GAM = "gam"; | |
| a.Amazon = "amazon"; | |
| a.Marmalade = "marmalade"; | |
| a.Floors = "floors"; | |
| a.CMP = "cmp"; | |
| a.Optable = "optable"; | |
| })(q || (q = {})); | |
| var r; | |
| (function (a) { | |
| a.cm = "cm"; | |
| a.fbrap = "fbrap"; | |
| a.rapml = "rapml"; | |
| })(r || (r = {})); | |
| var t; | |
| (function (a) { | |
| a.lazy = "lazy"; | |
| a.raptive = "raptive"; | |
| a.refresh = "refresh"; | |
| a.session = "session"; | |
| a.crossDomain = "crossdomain"; | |
| a.highSequence = "highsequence"; | |
| a.lazyBidPool = "lazyBidPool"; | |
| })(t || (t = {})); | |
| var u; | |
| (function (a) { | |
| a.lazy = "l"; | |
| a.raptive = "rapml"; | |
| a.refresh = "r"; | |
| a.session = "s"; | |
| a.crossdomain = "c"; | |
| a.highsequence = "hs"; | |
| a.lazyBidPool = "lbp"; | |
| })(u || (u = {})); | |
| var v; | |
| (function (a) { | |
| a.Version = "Version"; | |
| a.SharingNotice = "SharingNotice"; | |
| a.SaleOptOutNotice = "SaleOptOutNotice"; | |
| a.SharingOptOutNotice = "SharingOptOutNotice"; | |
| a.TargetedAdvertisingOptOutNotice = "TargetedAdvertisingOptOutNotice"; | |
| a.SensitiveDataProcessingOptOutNotice = | |
| "SensitiveDataProcessingOptOutNotice"; | |
| a.SensitiveDataLimitUseNotice = "SensitiveDataLimitUseNotice"; | |
| a.SaleOptOut = "SaleOptOut"; | |
| a.SharingOptOut = "SharingOptOut"; | |
| a.TargetedAdvertisingOptOut = "TargetedAdvertisingOptOut"; | |
| a.SensitiveDataProcessing = "SensitiveDataProcessing"; | |
| a.KnownChildSensitiveDataConsents = "KnownChildSensitiveDataConsents"; | |
| a.PersonalDataConsents = "PersonalDataConsents"; | |
| a.MspaCoveredTransaction = "MspaCoveredTransaction"; | |
| a.MspaOptOutOptionMode = "MspaOptOutOptionMode"; | |
| a.MspaServiceProviderMode = "MspaServiceProviderMode"; | |
| a.SubSectionType = "SubsectionType"; | |
| a.Gpc = "Gpc"; | |
| })(v || (v = {})); | |
| var w; | |
| (function (a) { | |
| a[(a.NA = 0)] = "NA"; | |
| a[(a.OptedOut = 1)] = "OptedOut"; | |
| a[(a.OptedIn = 2)] = "OptedIn"; | |
| })(w || (w = {})); | |
| var x; | |
| (function (a) { | |
| a.AdDensity = "addensity"; | |
| a.AdLayout = "adlayout"; | |
| a.FooterCloseButton = "footerclose"; | |
| a.Interstitial = "interstitial"; | |
| a.RemoveVideoTitleWrapper = "removevideotitlewrapper"; | |
| a.StickyOutstream = "stickyoutstream"; | |
| a.StickyOutstreamOnStickyPlayer = "sospp"; | |
| a.VideoAdvancePlaylistRelatedPlayer = "videoadvanceplaylistrp"; | |
| a.MobileStickyPlayerPosition = "mspp"; | |
| })(x || (x = {})); | |
| var y; | |
| (function (a) { | |
| a.Desktop = "desktop"; | |
| a.Mobile = "mobile"; | |
| })(y || (y = {})); | |
| var z; | |
| (function (a) { | |
| a.Video_Collapse_Autoplay_SoundOff = | |
| "Video_Collapse_Autoplay_SoundOff"; | |
| a.Video_Individual_Autoplay_SOff = "Video_Individual_Autoplay_SOff"; | |
| a.Video_Coll_SOff_Smartphone = "Video_Coll_SOff_Smartphone"; | |
| a.Video_In_Post_ClicktoPlay_SoundOn = | |
| "Video_In-Post_ClicktoPlay_SoundOn"; | |
| })(z || (z = {})); | |
| var A; | |
| (A || (A = {})).None = "none"; | |
| var B; | |
| (function (a) { | |
| a.Default = "default"; | |
| a.AZ_Animals = "5daf495ed42c8605cfc74b0b"; | |
| a.Natashas_Kitchen = "55bccc97303edab84afd77e2"; | |
| a.RecipeTin_Eats = "55cb7e3b4bc841bd0c4ea577"; | |
| a.Sallys_Baking_Recipes = "566aefa94856897050ee7303"; | |
| a.Spend_With_Pennies = "541917f5a90318f9194874cf"; | |
| })(B || (B = {})); | |
| g = (function () { | |
| function a() { | |
| this._timeOrigin = 0; | |
| } | |
| a.prototype.resetTimeOrigin = function () { | |
| this._timeOrigin = window.performance.now(); | |
| }; | |
| a.prototype.now = function () { | |
| try { | |
| return Math.round(window.performance.now() - this._timeOrigin); | |
| } catch (b) { | |
| return 0; | |
| } | |
| }; | |
| return a; | |
| })(); | |
| window.adthrive.windowPerformance = | |
| window.adthrive.windowPerformance || new g(); | |
| g = window.adthrive.windowPerformance; | |
| g.now.bind(g); | |
| var p = function (a) { | |
| var b = window.location.href; | |
| return a.some(function (c) { | |
| return new RegExp(c, "i").test(b); | |
| }); | |
| }; | |
| g = (function () { | |
| function a(b) { | |
| this.adthrive = b; | |
| this.video = this.recipe = this.content = this.all = !1; | |
| this.locations = new Set(); | |
| this.reasons = new Set(); | |
| if ( | |
| this.urlHasEmail(window.location.href) || | |
| this.urlHasEmail(window.document.referrer) | |
| ) | |
| (this.all = !0), this.reasons.add("all_email"); | |
| try { | |
| this.checkCommandQueue(), | |
| null !== document.querySelector(".tag-novideo") && | |
| ((this.video = !0), | |
| this.locations.add("Video"), | |
| this.reasons.add("video_tag")); | |
| } catch (c) { | |
| D.error("ClsDisableAds", "checkCommandQueue", c); | |
| } | |
| } | |
| a.prototype.checkCommandQueue = function () { | |
| var b = this; | |
| this.adthrive && | |
| this.adthrive.cmd && | |
| this.adthrive.cmd.forEach(function (c) { | |
| c = c.toString(); | |
| var d = b.extractAPICall(c, "disableAds"); | |
| d && b.disableAllAds(b.extractPatterns(d)); | |
| (d = b.extractAPICall(c, "disableContentAds")) && | |
| b.disableContentAds(b.extractPatterns(d)); | |
| (c = b.extractAPICall(c, "disablePlaylistPlayers")) && | |
| b.disablePlaylistPlayers(b.extractPatterns(c)); | |
| }); | |
| }; | |
| a.prototype.extractPatterns = function (b) { | |
| b = b.match(/["'](.*?)['"]/g); | |
| if (null !== b) | |
| return b.map(function (c) { | |
| return c.replace(/["']/g, ""); | |
| }); | |
| }; | |
| a.prototype.extractAPICall = function (b, c) { | |
| b = b.match(new RegExp(c + "\\((.*?)\\)", "g")); | |
| return null !== b ? b[0] : !1; | |
| }; | |
| a.prototype.disableAllAds = function (b) { | |
| if (!b || p(b)) (this.all = !0), this.reasons.add("all_page"); | |
| }; | |
| a.prototype.disableContentAds = function (b) { | |
| if (!b || p(b)) | |
| (this.recipe = this.content = !0), | |
| this.locations.add("Content"), | |
| this.locations.add("Recipe"), | |
| this.reasons.add("content_plugin"); | |
| }; | |
| a.prototype.disablePlaylistPlayers = function (b) { | |
| if (!b || p(b)) | |
| (this.video = !0), | |
| this.locations.add("Video"), | |
| this.reasons.add("video_page"); | |
| }; | |
| a.prototype.urlHasEmail = function (b) { | |
| return b | |
| ? null !== | |
| /([A-Z0-9._%+-]+(@|%(25)*40)[A-Z0-9.-]+\.[A-Z]{2,})/i.exec(b) | |
| : !1; | |
| }; | |
| return a; | |
| })(); | |
| if ((m = window.adthriveCLS)) m.disableAds = new g(window.adthrive); | |
| n.ClsDisableAds = g; | |
| Object.defineProperty(n, "__esModule", { value: !0 }); | |
| return n; | |
| })({}); | |
| </script> | |
| <!-- End of AdThrive 2 --> | |
| </head> | |
| <body> | |
| <!-- Start of Custom Script: Add email and couponId query params to .premium-btn HTML elements --> | |
| <script> | |
| function buildAppUrls() { | |
| const email = | |
| new URLSearchParams(window.location.search).get("email") || ""; | |
| const couponId = | |
| new URLSearchParams(window.location.search).get("couponId") || ""; | |
| const emailParam = email.length > 0 ? "&email=" + email : ""; | |
| const couponParam = couponId.length > 0 ? "&couponId=" + couponId : ""; | |
| const premiumPlusLink = | |
| document.querySelectorAll(".premium-btn")[0].href; | |
| document.querySelectorAll(".premium-btn")[0].href = | |
| premiumPlusLink + emailParam + couponParam; | |
| } | |
| window.onload = window.addEventListener("load", function () { | |
| buildAppUrls(); | |
| }); | |
| </script> | |
| <!-- End of Custom Script: Add email and couponId query params to .premium-btn HTML elements --> | |
| <!-- Start of ActiveCampaign 1 --> | |
| <script type="text/javascript"> | |
| (function (e, t, o, n, p, r, i) { | |
| e.visitorGlobalObjectAlias = n; | |
| e[e.visitorGlobalObjectAlias] = | |
| e[e.visitorGlobalObjectAlias] || | |
| function () { | |
| (e[e.visitorGlobalObjectAlias].q = | |
| e[e.visitorGlobalObjectAlias].q || []).push(arguments); | |
| }; | |
| e[e.visitorGlobalObjectAlias].l = new Date().getTime(); | |
| r = t.createElement("script"); | |
| r.src = o; | |
| r.async = true; | |
| i = t.getElementsByTagName("script")[0]; | |
| i.parentNode.insertBefore(r, i); | |
| })( | |
| window, | |
| document, | |
| "https://diffuser-cdn.app-us1.com/diffuser/diffuser.js", | |
| "vgo" | |
| ); | |
| vgo("setAccount", "475217867"); | |
| vgo("setTrackByDefault", true); | |
| vgo("process"); | |
| </script> | |
| <!-- End of ActiveCampaign 1 --> | |
| <!-- Start of AdThrive 3 --> | |
| <script | |
| data-no-optimize="1" | |
| data-cfasync="false" | |
| id="cls-insertion-f562f85" | |
| > | |
| "use strict"; | |
| (function () { | |
| function x(c, a) { | |
| function b() { | |
| this.constructor = c; | |
| } | |
| if ("function" !== typeof a && null !== a) | |
| throw new TypeError( | |
| "Class extends value " + | |
| String(a) + | |
| " is not a constructor or null" | |
| ); | |
| S(c, a); | |
| c.prototype = | |
| null === a | |
| ? Object.create(a) | |
| : ((b.prototype = a.prototype), new b()); | |
| } | |
| function Y(c, a) { | |
| var b = {}, | |
| d; | |
| for (d in c) | |
| Object.prototype.hasOwnProperty.call(c, d) && | |
| 0 > a.indexOf(d) && | |
| (b[d] = c[d]); | |
| if (null != c && "function" === typeof Object.getOwnPropertySymbols) { | |
| var e = 0; | |
| for (d = Object.getOwnPropertySymbols(c); e < d.length; e++) | |
| 0 > a.indexOf(d[e]) && | |
| Object.prototype.propertyIsEnumerable.call(c, d[e]) && | |
| (b[d[e]] = c[d[e]]); | |
| } | |
| return b; | |
| } | |
| function J(c, a, b, d) { | |
| var e = arguments.length, | |
| f = | |
| 3 > e | |
| ? a | |
| : null === d | |
| ? (d = Object.getOwnPropertyDescriptor(a, b)) | |
| : d, | |
| g; | |
| if ( | |
| "object" === typeof Reflect && | |
| "function" === typeof Reflect.decorate | |
| ) | |
| f = Reflect.decorate(c, a, b, d); | |
| else | |
| for (var h = c.length - 1; 0 <= h; h--) | |
| if ((g = c[h])) | |
| f = (3 > e ? g(f) : 3 < e ? g(a, b, f) : g(a, b)) || f; | |
| return 3 < e && f && Object.defineProperty(a, b, f), f; | |
| } | |
| function E(c, a) { | |
| if ( | |
| "object" === typeof Reflect && | |
| "function" === typeof Reflect.metadata | |
| ) | |
| return Reflect.metadata(c, a); | |
| } | |
| function Q(c) { | |
| var a = "function" === typeof Symbol && Symbol.iterator, | |
| b = a && c[a], | |
| d = 0; | |
| if (b) return b.call(c); | |
| if (c && "number" === typeof c.length) | |
| return { | |
| next: function () { | |
| c && d >= c.length && (c = void 0); | |
| return { value: c && c[d++], done: !c }; | |
| }, | |
| }; | |
| throw new TypeError( | |
| a ? "Object is not iterable." : "Symbol.iterator is not defined." | |
| ); | |
| } | |
| function u(c, a) { | |
| var b = "function" === typeof Symbol && c[Symbol.iterator]; | |
| if (!b) return c; | |
| c = b.call(c); | |
| var d, | |
| e = []; | |
| try { | |
| for (; (void 0 === a || 0 < a--) && !(d = c.next()).done; ) | |
| e.push(d.value); | |
| } catch (g) { | |
| var f = { error: g }; | |
| } finally { | |
| try { | |
| d && !d.done && (b = c["return"]) && b.call(c); | |
| } finally { | |
| if (f) throw f.error; | |
| } | |
| } | |
| return e; | |
| } | |
| function C(c, a, b) { | |
| if (b || 2 === arguments.length) | |
| for (var d = 0, e = a.length, f; d < e; d++) | |
| (!f && d in a) || | |
| (f || (f = Array.prototype.slice.call(a, 0, d)), (f[d] = a[d])); | |
| return c.concat(f || Array.prototype.slice.call(a)); | |
| } | |
| function T(c, a) { | |
| void 0 === a && (a = {}); | |
| a = a.insertAt; | |
| if (c && "undefined" !== typeof document) { | |
| var b = document.head || document.getElementsByTagName("head")[0], | |
| d = document.createElement("style"); | |
| d.type = "text/css"; | |
| "top" === a | |
| ? b.firstChild | |
| ? b.insertBefore(d, b.firstChild) | |
| : b.appendChild(d) | |
| : b.appendChild(d); | |
| d.styleSheet | |
| ? (d.styleSheet.cssText = c) | |
| : d.appendChild(document.createTextNode(c)); | |
| } | |
| } | |
| window.adthriveCLS.buildDate = "2024-01-02"; | |
| var S = function (c, a) { | |
| S = | |
| Object.setPrototypeOf || | |
| ({ __proto__: [] } instanceof Array && | |
| function (b, d) { | |
| b.__proto__ = d; | |
| }) || | |
| function (b, d) { | |
| for (var e in d) | |
| Object.prototype.hasOwnProperty.call(d, e) && (b[e] = d[e]); | |
| }; | |
| return S(c, a); | |
| }, | |
| z = function () { | |
| z = | |
| Object.assign || | |
| function (c) { | |
| for (var a, b = 1, d = arguments.length; b < d; b++) { | |
| a = arguments[b]; | |
| for (var e in a) | |
| Object.prototype.hasOwnProperty.call(a, e) && (c[e] = a[e]); | |
| } | |
| return c; | |
| }; | |
| return z.apply(this, arguments); | |
| }, | |
| q = new ((function () { | |
| function c() {} | |
| c.prototype.info = function (a, b) { | |
| for (var d = [], e = 2; e < arguments.length; e++) | |
| d[e - 2] = arguments[e]; | |
| this.call.apply(this, C([console.info, a, b], u(d), !1)); | |
| }; | |
| c.prototype.warn = function (a, b) { | |
| for (var d = [], e = 2; e < arguments.length; e++) | |
| d[e - 2] = arguments[e]; | |
| this.call.apply(this, C([console.warn, a, b], u(d), !1)); | |
| }; | |
| c.prototype.error = function (a, b) { | |
| for (var d = [], e = 2; e < arguments.length; e++) | |
| d[e - 2] = arguments[e]; | |
| this.call.apply(this, C([console.error, a, b], u(d), !1)); | |
| this.sendErrorLogToCommandQueue.apply(this, C([a, b], u(d), !1)); | |
| }; | |
| c.prototype.event = function (a, b) { | |
| for (var d, e = 2; e < arguments.length; e++); | |
| "debug" === | |
| (null === (d = window.adthriveCLS) || void 0 === d | |
| ? void 0 | |
| : d.bucket) && this.info(a, b); | |
| }; | |
| c.prototype.sendErrorLogToCommandQueue = function (a, b) { | |
| for (var d = [], e = 2; e < arguments.length; e++) | |
| d[e - 2] = arguments[e]; | |
| window.adthrive = window.adthrive || {}; | |
| window.adthrive.cmd = window.adthrive.cmd || []; | |
| window.adthrive.cmd.push( | |
| function () { | |
| void 0 !== window.adthrive.logError && | |
| "function" === typeof window.adthrive.logError && | |
| window.adthrive.logError(a, b, d); | |
| }.bind(a, b, d) | |
| ); | |
| }; | |
| c.prototype.call = function (a, b, d) { | |
| for (var e = [], f = 3; f < arguments.length; f++) | |
| e[f - 3] = arguments[f]; | |
| f = ["%c".concat(b, "::").concat(d, " ")]; | |
| var g = ["color: #999; font-weight: bold;"]; | |
| 0 < e.length && "string" === typeof e[0] && f.push(e.shift()); | |
| g.push.apply(g, C([], u(e), !1)); | |
| try { | |
| Function.prototype.apply.call( | |
| a, | |
| console, | |
| C([f.join("")], u(g), !1) | |
| ); | |
| } catch (h) { | |
| console.error(h); | |
| } | |
| }; | |
| return c; | |
| })())(), | |
| w = function (c, a) { | |
| return null == c || c !== c ? a : c; | |
| }, | |
| qa = function (c) { | |
| var a = c.clientWidth; | |
| getComputedStyle && | |
| ((c = getComputedStyle(c, null)), | |
| (a -= | |
| parseFloat(c.paddingLeft || "0") + | |
| parseFloat(c.paddingRight || "0"))); | |
| return a; | |
| }, | |
| Z = function (c) { | |
| var a = c.offsetHeight, | |
| b = c.offsetWidth, | |
| d = c.getBoundingClientRect(), | |
| e = document.body, | |
| f = document.documentElement; | |
| c = Math.round( | |
| d.top + | |
| (window.pageYOffset || f.scrollTop || e.scrollTop) - | |
| (f.clientTop || e.clientTop || 0) | |
| ); | |
| d = Math.round( | |
| d.left + | |
| (window.pageXOffset || f.scrollLeft || e.scrollLeft) - | |
| (f.clientLeft || e.clientLeft || 0) | |
| ); | |
| return { | |
| top: c, | |
| left: d, | |
| bottom: c + a, | |
| right: d + b, | |
| width: b, | |
| height: a, | |
| }; | |
| }, | |
| G = function () { | |
| var c = navigator.userAgent, | |
| a = | |
| /Tablet|iPad|Playbook|Nook|webOS|Kindle|Android (?!.*Mobile).*Safari|CrOS/i.test( | |
| c | |
| ); | |
| return /Mobi|iP(hone|od)|Opera Mini/i.test(c) && !a; | |
| }, | |
| ra = function (c) { | |
| void 0 === c && (c = document); | |
| return (c === document ? document.body : c).getBoundingClientRect() | |
| .top; | |
| }, | |
| sa = function (c) { | |
| return c.includes(",") ? c.split(",") : [c]; | |
| }, | |
| ta = function (c) { | |
| void 0 === c && (c = document); | |
| c = c.querySelectorAll("article"); | |
| return 0 === c.length | |
| ? null | |
| : (c = Array.from(c).reduce(function (a, b) { | |
| return b.offsetHeight > a.offsetHeight ? b : a; | |
| })) && c.offsetHeight > 1.5 * window.innerHeight | |
| ? c | |
| : null; | |
| }, | |
| ua = function (c, a, b) { | |
| void 0 === b && (b = document); | |
| var d = ta(b), | |
| e = d ? [d] : [], | |
| f = []; | |
| c.forEach(function (h) { | |
| var k = Array.from(b.querySelectorAll(h.elementSelector)).slice( | |
| 0, | |
| h.skip | |
| ); | |
| sa(h.elementSelector).forEach(function (l) { | |
| var n = b.querySelectorAll(l); | |
| l = function (r) { | |
| var m = n[r]; | |
| if ( | |
| a.map.some(function (t) { | |
| return t.el.isEqualNode(m); | |
| }) | |
| ) | |
| return "continue"; | |
| (r = m && m.parentElement) && r !== document.body | |
| ? e.push(r) | |
| : e.push(m); | |
| -1 === k.indexOf(m) && f.push({ dynamicAd: h, element: m }); | |
| }; | |
| for (var p = 0; p < n.length; p++) l(p); | |
| }); | |
| }); | |
| var g = ra(b); | |
| c = f.sort(function (h, k) { | |
| return ( | |
| h.element.getBoundingClientRect().top - | |
| g - | |
| (k.element.getBoundingClientRect().top - g) | |
| ); | |
| }); | |
| return [e, c]; | |
| }, | |
| va = function (c, a, b) { | |
| void 0 === b && (b = document); | |
| a = u(ua(c, a, b), 2); | |
| c = a[0]; | |
| a = a[1]; | |
| if (0 === c.length) throw Error("No Main Content Elements Found"); | |
| return [ | |
| Array.from(c).reduce(function (d, e) { | |
| return e.offsetHeight > d.offsetHeight ? e : d; | |
| }) || document.body, | |
| a, | |
| ]; | |
| }, | |
| A; | |
| (function (c) { | |
| c.amznbid = "amznbid"; | |
| c.amzniid = "amzniid"; | |
| c.amznp = "amznp"; | |
| c.amznsz = "amznsz"; | |
| })(A || (A = {})); | |
| var H; | |
| (function (c) { | |
| c.ThirtyThreeAcross = "33across"; | |
| c.AppNexus = "appnexus"; | |
| c.Amazon = "amazon"; | |
| c.Colossus = "colossus"; | |
| c.ColossusServer = "col_ss"; | |
| c.Conversant = "conversant"; | |
| c.Concert = "concert"; | |
| c.Criteo = "criteo"; | |
| c.GumGum = "gumgum"; | |
| c.ImproveDigital = "improvedigital"; | |
| c.ImproveDigitalServer = "improve_ss"; | |
| c.IndexExchange = "ix"; | |
| c.Kargo = "kargo"; | |
| c.KargoServer = "krgo_ss"; | |
| c.MediaGrid = "grid"; | |
| c.MediaGridVideo = "gridvid"; | |
| c.Nativo = "nativo"; | |
| c.OpenX = "openx"; | |
| c.Ogury = "ogury"; | |
| c.OpenXServer = "opnx_ss"; | |
| c.Ozone = "ozone"; | |
| c.Pubmatic = "pubmatic"; | |
| c.PubmaticServer = "pubm_ss"; | |
| c.ResetDigital = "resetdigital"; | |
| c.Roundel = "roundel"; | |
| c.Rtbhouse = "rtbhouse"; | |
| c.Rubicon = "rubicon"; | |
| c.RubiconServer = "rubi_ss"; | |
| c.Sharethrough = "sharethrough"; | |
| c.Teads = "teads"; | |
| c.Triplelift = "triplelift"; | |
| c.TripleliftServer = "tripl_ss"; | |
| c.TTD = "ttd"; | |
| c.Undertone = "undertone"; | |
| c.UndertoneServer = "under_ss"; | |
| c.Unruly = "unruly"; | |
| c.YahooSSP = "yahoossp"; | |
| c.YahooSSPServer = "yah_ss"; | |
| c.Verizon = "verizon"; | |
| c.Yieldmo = "yieldmo"; | |
| })(H || (H = {})); | |
| var aa; | |
| (function (c) { | |
| c.Prebid = "prebid"; | |
| c.GAM = "gam"; | |
| c.Amazon = "amazon"; | |
| c.Marmalade = "marmalade"; | |
| c.Floors = "floors"; | |
| c.CMP = "cmp"; | |
| c.Optable = "optable"; | |
| })(aa || (aa = {})); | |
| var ba; | |
| (function (c) { | |
| c.cm = "cm"; | |
| c.fbrap = "fbrap"; | |
| c.rapml = "rapml"; | |
| })(ba || (ba = {})); | |
| var ca; | |
| (function (c) { | |
| c.lazy = "lazy"; | |
| c.raptive = "raptive"; | |
| c.refresh = "refresh"; | |
| c.session = "session"; | |
| c.crossDomain = "crossdomain"; | |
| c.highSequence = "highsequence"; | |
| c.lazyBidPool = "lazyBidPool"; | |
| })(ca || (ca = {})); | |
| var da; | |
| (function (c) { | |
| c.lazy = "l"; | |
| c.raptive = "rapml"; | |
| c.refresh = "r"; | |
| c.session = "s"; | |
| c.crossdomain = "c"; | |
| c.highsequence = "hs"; | |
| c.lazyBidPool = "lbp"; | |
| })(da || (da = {})); | |
| var ea; | |
| (function (c) { | |
| c.Version = "Version"; | |
| c.SharingNotice = "SharingNotice"; | |
| c.SaleOptOutNotice = "SaleOptOutNotice"; | |
| c.SharingOptOutNotice = "SharingOptOutNotice"; | |
| c.TargetedAdvertisingOptOutNotice = "TargetedAdvertisingOptOutNotice"; | |
| c.SensitiveDataProcessingOptOutNotice = | |
| "SensitiveDataProcessingOptOutNotice"; | |
| c.SensitiveDataLimitUseNotice = "SensitiveDataLimitUseNotice"; | |
| c.SaleOptOut = "SaleOptOut"; | |
| c.SharingOptOut = "SharingOptOut"; | |
| c.TargetedAdvertisingOptOut = "TargetedAdvertisingOptOut"; | |
| c.SensitiveDataProcessing = "SensitiveDataProcessing"; | |
| c.KnownChildSensitiveDataConsents = "KnownChildSensitiveDataConsents"; | |
| c.PersonalDataConsents = "PersonalDataConsents"; | |
| c.MspaCoveredTransaction = "MspaCoveredTransaction"; | |
| c.MspaOptOutOptionMode = "MspaOptOutOptionMode"; | |
| c.MspaServiceProviderMode = "MspaServiceProviderMode"; | |
| c.SubSectionType = "SubsectionType"; | |
| c.Gpc = "Gpc"; | |
| })(ea || (ea = {})); | |
| var fa; | |
| (function (c) { | |
| c[(c.NA = 0)] = "NA"; | |
| c[(c.OptedOut = 1)] = "OptedOut"; | |
| c[(c.OptedIn = 2)] = "OptedIn"; | |
| })(fa || (fa = {})); | |
| var F; | |
| (function (c) { | |
| c.AdDensity = "addensity"; | |
| c.AdLayout = "adlayout"; | |
| c.FooterCloseButton = "footerclose"; | |
| c.Interstitial = "interstitial"; | |
| c.RemoveVideoTitleWrapper = "removevideotitlewrapper"; | |
| c.StickyOutstream = "stickyoutstream"; | |
| c.StickyOutstreamOnStickyPlayer = "sospp"; | |
| c.VideoAdvancePlaylistRelatedPlayer = "videoadvanceplaylistrp"; | |
| c.MobileStickyPlayerPosition = "mspp"; | |
| })(F || (F = {})); | |
| var M; | |
| (function (c) { | |
| c.Desktop = "desktop"; | |
| c.Mobile = "mobile"; | |
| })(M || (M = {})); | |
| var L; | |
| (function (c) { | |
| c.Video_Collapse_Autoplay_SoundOff = | |
| "Video_Collapse_Autoplay_SoundOff"; | |
| c.Video_Individual_Autoplay_SOff = "Video_Individual_Autoplay_SOff"; | |
| c.Video_Coll_SOff_Smartphone = "Video_Coll_SOff_Smartphone"; | |
| c.Video_In_Post_ClicktoPlay_SoundOn = | |
| "Video_In-Post_ClicktoPlay_SoundOn"; | |
| })(L || (L = {})); | |
| var ha; | |
| (ha || (ha = {})).None = "none"; | |
| var ia; | |
| (function (c) { | |
| c.Default = "default"; | |
| c.AZ_Animals = "5daf495ed42c8605cfc74b0b"; | |
| c.Natashas_Kitchen = "55bccc97303edab84afd77e2"; | |
| c.RecipeTin_Eats = "55cb7e3b4bc841bd0c4ea577"; | |
| c.Sallys_Baking_Recipes = "566aefa94856897050ee7303"; | |
| c.Spend_With_Pennies = "541917f5a90318f9194874cf"; | |
| })(ia || (ia = {})); | |
| var wa = function (c, a) { | |
| var b = c.adDensityEnabled; | |
| c = c.adDensityLayout.pageOverrides.find(function (d) { | |
| return ( | |
| !!document.querySelector(d.pageSelector) && | |
| (d[a].onePerViewport || "number" === typeof d[a].adDensity) | |
| ); | |
| }); | |
| return b ? !c : !0; | |
| }; | |
| A = (function () { | |
| function c() { | |
| this._timeOrigin = 0; | |
| } | |
| c.prototype.resetTimeOrigin = function () { | |
| this._timeOrigin = window.performance.now(); | |
| }; | |
| c.prototype.now = function () { | |
| try { | |
| return Math.round(window.performance.now() - this._timeOrigin); | |
| } catch (a) { | |
| return 0; | |
| } | |
| }; | |
| return c; | |
| })(); | |
| window.adthrive.windowPerformance = | |
| window.adthrive.windowPerformance || new A(); | |
| A = window.adthrive.windowPerformance; | |
| var U = A.now.bind(A), | |
| xa = function (c) { | |
| void 0 === c && (c = window.location.search); | |
| var a = 0 === c.indexOf("?") ? 1 : 0; | |
| return c | |
| .slice(a) | |
| .split("&") | |
| .reduce(function (b, d) { | |
| d = u(d.split("="), 2); | |
| b.set(d[0], d[1]); | |
| return b; | |
| }, new Map()); | |
| }, | |
| ja = function (c) { | |
| try { | |
| return { valid: !0, elements: document.querySelectorAll(c) }; | |
| } catch (a) { | |
| return z({ valid: !1 }, a); | |
| } | |
| }, | |
| V = function (c) { | |
| return "" === c ? { valid: !0 } : ja(c); | |
| }, | |
| ya = function (c) { | |
| var a = c.reduce(function (b, d) { | |
| return d.weight ? d.weight + b : b; | |
| }, 0); | |
| return ( | |
| 0 < c.length && | |
| c.every(function (b) { | |
| var d = b.value; | |
| b = b.weight; | |
| return !( | |
| void 0 === d || | |
| null === d || | |
| ("number" === typeof d && isNaN(d)) || | |
| !b | |
| ); | |
| }) && | |
| 100 === a | |
| ); | |
| }, | |
| za = ["siteId", "siteName", "adOptions", "breakpoints", "adUnits"], | |
| Aa = function (c) { | |
| var a = {}, | |
| b = xa().get(c); | |
| if (b) | |
| try { | |
| var d = decodeURIComponent(b); | |
| a = JSON.parse(d); | |
| q.event( | |
| "ExperimentOverridesUtil", | |
| "getExperimentOverrides", | |
| c, | |
| a | |
| ); | |
| } catch (e) {} | |
| return a; | |
| }, | |
| Ba = (function (c) { | |
| function a(b) { | |
| var d = c.call(this) || this; | |
| d._featureRollouts = b.enabled | |
| ? b.siteAds.featureRollouts || {} | |
| : {}; | |
| return d; | |
| } | |
| x(a, c); | |
| return a; | |
| })( | |
| (function () { | |
| function c() { | |
| this._featureRollouts = {}; | |
| } | |
| Object.defineProperty(c.prototype, "siteFeatureRollouts", { | |
| get: function () { | |
| return this._featureRollouts; | |
| }, | |
| enumerable: !1, | |
| configurable: !0, | |
| }); | |
| c.prototype.isRolloutEnabled = function (a) { | |
| return this._featureRollouts && this._featureRollouts[a] | |
| ? this._featureRollouts[a].enabled | |
| : !1; | |
| }; | |
| return c; | |
| })() | |
| ), | |
| ka = (function () { | |
| function c() { | |
| this._clsGlobalData = window.adthriveCLS; | |
| } | |
| Object.defineProperty(c.prototype, "enabled", { | |
| get: function () { | |
| var a; | |
| if ( | |
| (a = !!this._clsGlobalData && !!this._clsGlobalData.siteAds) | |
| ) | |
| a: { | |
| a = this._clsGlobalData.siteAds; | |
| var b = void 0; | |
| void 0 === b && (b = za); | |
| if (a) { | |
| for (var d = 0; d < b.length; d++) | |
| if (!a[b[d]]) { | |
| a = !1; | |
| break a; | |
| } | |
| a = !0; | |
| } else a = !1; | |
| } | |
| return a; | |
| }, | |
| enumerable: !1, | |
| configurable: !0, | |
| }); | |
| Object.defineProperty(c.prototype, "error", { | |
| get: function () { | |
| return !(!this._clsGlobalData || !this._clsGlobalData.error); | |
| }, | |
| enumerable: !1, | |
| configurable: !0, | |
| }); | |
| Object.defineProperty(c.prototype, "siteAds", { | |
| get: function () { | |
| return this._clsGlobalData.siteAds; | |
| }, | |
| set: function (a) { | |
| this._clsGlobalData.siteAds = a; | |
| }, | |
| enumerable: !1, | |
| configurable: !0, | |
| }); | |
| Object.defineProperty(c.prototype, "disableAds", { | |
| get: function () { | |
| return this._clsGlobalData.disableAds; | |
| }, | |
| set: function (a) { | |
| this._clsGlobalData.disableAds = a; | |
| }, | |
| enumerable: !1, | |
| configurable: !0, | |
| }); | |
| Object.defineProperty(c.prototype, "enabledLocations", { | |
| get: function () { | |
| return this._clsGlobalData.enabledLocations; | |
| }, | |
| set: function (a) { | |
| this._clsGlobalData.enabledLocations = a; | |
| }, | |
| enumerable: !1, | |
| configurable: !0, | |
| }); | |
| Object.defineProperty(c.prototype, "injectedFromPlugin", { | |
| get: function () { | |
| return this._clsGlobalData.injectedFromPlugin; | |
| }, | |
| set: function (a) { | |
| this._clsGlobalData.injectedFromPlugin = a; | |
| }, | |
| enumerable: !1, | |
| configurable: !0, | |
| }); | |
| Object.defineProperty(c.prototype, "injectedFromSiteAds", { | |
| get: function () { | |
| return this._clsGlobalData.injectedFromSiteAds; | |
| }, | |
| set: function (a) { | |
| this._clsGlobalData.injectedFromSiteAds = a; | |
| }, | |
| enumerable: !1, | |
| configurable: !0, | |
| }); | |
| c.prototype.overwriteInjectedSlots = function (a) { | |
| this._clsGlobalData.injectedSlots = a; | |
| }; | |
| c.prototype.setInjectedSlots = function (a) { | |
| this._clsGlobalData.injectedSlots = | |
| this._clsGlobalData.injectedSlots || []; | |
| this._clsGlobalData.injectedSlots.push(a); | |
| }; | |
| Object.defineProperty(c.prototype, "injectedSlots", { | |
| get: function () { | |
| return this._clsGlobalData.injectedSlots; | |
| }, | |
| enumerable: !1, | |
| configurable: !0, | |
| }); | |
| c.prototype.setInjectedVideoSlots = function (a) { | |
| this._clsGlobalData.injectedVideoSlots = | |
| this._clsGlobalData.injectedVideoSlots || []; | |
| this._clsGlobalData.injectedVideoSlots.push(a); | |
| }; | |
| Object.defineProperty(c.prototype, "injectedVideoSlots", { | |
| get: function () { | |
| return this._clsGlobalData.injectedVideoSlots; | |
| }, | |
| enumerable: !1, | |
| configurable: !0, | |
| }); | |
| c.prototype.setInjectedScripts = function (a) { | |
| this._clsGlobalData.injectedScripts = | |
| this._clsGlobalData.injectedScripts || []; | |
| this._clsGlobalData.injectedScripts.push(a); | |
| }; | |
| Object.defineProperty(c.prototype, "getInjectedScripts", { | |
| get: function () { | |
| return this._clsGlobalData.injectedScripts; | |
| }, | |
| enumerable: !1, | |
| configurable: !0, | |
| }); | |
| c.prototype.setExperiment = function (a, b, d) { | |
| void 0 === d && (d = !1); | |
| this._clsGlobalData.experiments = | |
| this._clsGlobalData.experiments || {}; | |
| this._clsGlobalData.siteExperiments = | |
| this._clsGlobalData.siteExperiments || {}; | |
| (d | |
| ? this._clsGlobalData.siteExperiments | |
| : this._clsGlobalData.experiments)[a] = b; | |
| }; | |
| c.prototype.getExperiment = function (a, b) { | |
| void 0 === b && (b = !1); | |
| return ( | |
| (b = b | |
| ? this._clsGlobalData.siteExperiments | |
| : this._clsGlobalData.experiments) && b[a] | |
| ); | |
| }; | |
| c.prototype.setWeightedChoiceExperiment = function (a, b, d) { | |
| void 0 === d && (d = !1); | |
| this._clsGlobalData.experimentsWeightedChoice = | |
| this._clsGlobalData.experimentsWeightedChoice || {}; | |
| this._clsGlobalData.siteExperimentsWeightedChoice = | |
| this._clsGlobalData.siteExperimentsWeightedChoice || {}; | |
| (d | |
| ? this._clsGlobalData.siteExperimentsWeightedChoice | |
| : this._clsGlobalData.experimentsWeightedChoice)[a] = b; | |
| }; | |
| c.prototype.getWeightedChoiceExperiment = function (a, b) { | |
| var d, e; | |
| void 0 === b && (b = !1); | |
| return ( | |
| (b = b | |
| ? null === (d = this._clsGlobalData) || void 0 === d | |
| ? void 0 | |
| : d.siteExperimentsWeightedChoice | |
| : null === (e = this._clsGlobalData) || void 0 === e | |
| ? void 0 | |
| : e.experimentsWeightedChoice) && b[a] | |
| ); | |
| }; | |
| Object.defineProperty(c.prototype, "branch", { | |
| get: function () { | |
| return this._clsGlobalData.branch; | |
| }, | |
| enumerable: !1, | |
| configurable: !0, | |
| }); | |
| Object.defineProperty(c.prototype, "bucket", { | |
| get: function () { | |
| return this._clsGlobalData.bucket; | |
| }, | |
| enumerable: !1, | |
| configurable: !0, | |
| }); | |
| Object.defineProperty(c.prototype, "videoDisabledFromPlugin", { | |
| get: function () { | |
| return this._clsGlobalData.videoDisabledFromPlugin; | |
| }, | |
| set: function (a) { | |
| this._clsGlobalData.videoDisabledFromPlugin = a; | |
| }, | |
| enumerable: !1, | |
| configurable: !0, | |
| }); | |
| Object.defineProperty(c.prototype, "targetDensityLog", { | |
| get: function () { | |
| return this._clsGlobalData.targetDensityLog; | |
| }, | |
| set: function (a) { | |
| this._clsGlobalData.targetDensityLog = a; | |
| }, | |
| enumerable: !1, | |
| configurable: !0, | |
| }); | |
| c.prototype.shouldHalveIOSDensity = function () { | |
| var a = new Ba(this), | |
| b = void 0; | |
| void 0 === b && (b = navigator.userAgent); | |
| return ( | |
| /iP(hone|od|ad)/i.test(b) && | |
| a.isRolloutEnabled("iOS-Resolution") | |
| ); | |
| }; | |
| c.prototype.getTargetDensity = function (a) { | |
| return this.shouldHalveIOSDensity() ? a / 2 : a; | |
| }; | |
| Object.defineProperty(c.prototype, "removeVideoTitleWrapper", { | |
| get: function () { | |
| return this._clsGlobalData.siteAds.adOptions | |
| .removeVideoTitleWrapper; | |
| }, | |
| enumerable: !1, | |
| configurable: !0, | |
| }); | |
| return c; | |
| })(), | |
| Ca = (function () { | |
| function c() {} | |
| c.getScrollTop = function () { | |
| return ( | |
| (window.pageYOffset || document.documentElement.scrollTop) - | |
| (document.documentElement.clientTop || 0) | |
| ); | |
| }; | |
| c.getScrollBottom = function () { | |
| return ( | |
| this.getScrollTop() + | |
| (document.documentElement.clientHeight || 0) | |
| ); | |
| }; | |
| c.shufflePlaylist = function (a) { | |
| for (var b = a.length, d, e; 0 !== b; ) | |
| (e = Math.floor(Math.random() * a.length)), | |
| --b, | |
| (d = a[b]), | |
| (a[b] = a[e]), | |
| (a[e] = d); | |
| return a; | |
| }; | |
| c.isMobileLandscape = function () { | |
| return window.matchMedia( | |
| "(orientation: landscape) and (max-height: 480px)" | |
| ).matches; | |
| }; | |
| c.playerViewable = function (a) { | |
| a = a.getBoundingClientRect(); | |
| return this.isMobileLandscape() | |
| ? window.innerHeight > a.top + a.height / 2 && | |
| 0 < a.top + a.height / 2 | |
| : window.innerHeight > a.top + a.height / 2; | |
| }; | |
| c.createQueryString = function (a) { | |
| return Object.keys(a) | |
| .map(function (b) { | |
| return "".concat(b, "=").concat(a[b]); | |
| }) | |
| .join("&"); | |
| }; | |
| c.createEncodedQueryString = function (a) { | |
| return Object.keys(a) | |
| .map(function (b) { | |
| return "".concat(b, "=").concat(encodeURIComponent(a[b])); | |
| }) | |
| .join("&"); | |
| }; | |
| c.setMobileLocation = function (a) { | |
| a = a || "bottom-right"; | |
| "top-left" === a | |
| ? (a = "adthrive-collapse-top-left") | |
| : "top-right" === a | |
| ? (a = "adthrive-collapse-top-right") | |
| : "bottom-left" === a | |
| ? (a = "adthrive-collapse-bottom-left") | |
| : "bottom-right" === a | |
| ? (a = "adthrive-collapse-bottom-right") | |
| : "top-center" === a && | |
| (a = G() | |
| ? "adthrive-collapse-top-center" | |
| : "adthrive-collapse-bottom-right"); | |
| return a; | |
| }; | |
| c.addMaxResolutionQueryParam = function (a) { | |
| var b = G() ? "320" : "1280"; | |
| b = "max_resolution=".concat(b); | |
| var d = u(String(a).split("?"), 2); | |
| a = d[0]; | |
| b = (d = d[1]) ? d + "&".concat(b) : b; | |
| return "".concat(a, "?").concat(b); | |
| }; | |
| return c; | |
| })(), | |
| Da = (function () { | |
| return function (c) { | |
| this._clsOptions = c; | |
| this.removeVideoTitleWrapper = w( | |
| this._clsOptions.siteAds.adOptions.removeVideoTitleWrapper, | |
| !1 | |
| ); | |
| c = this._clsOptions.siteAds.videoPlayers; | |
| this.footerSelector = w(c && c.footerSelector, ""); | |
| this.players = w( | |
| c && | |
| c.players.map(function (a) { | |
| a.mobileLocation = Ca.setMobileLocation(a.mobileLocation); | |
| return a; | |
| }), | |
| [] | |
| ); | |
| this.contextualSettings = c && c.contextual; | |
| }; | |
| })(), | |
| Ea = (function () { | |
| return function (c) { | |
| this.contextualPlayerAdded = | |
| this.playlistPlayerAdded = | |
| this.mobileStickyPlayerOnPage = | |
| !1; | |
| this.footerSelector = ""; | |
| this.removeVideoTitleWrapper = !1; | |
| this.videoAdOptions = new Da(c); | |
| this.players = this.videoAdOptions.players; | |
| this.contextualSettings = this.videoAdOptions.contextualSettings; | |
| this.removeVideoTitleWrapper = | |
| this.videoAdOptions.removeVideoTitleWrapper; | |
| this.footerSelector = this.videoAdOptions.footerSelector; | |
| }; | |
| })(); | |
| H = (function () { | |
| return function () {}; | |
| })(); | |
| var I = (function (c) { | |
| function a(b) { | |
| var d = c.call(this) || this; | |
| d._probability = b; | |
| return d; | |
| } | |
| x(a, c); | |
| a.prototype.get = function () { | |
| if (0 > this._probability || 1 < this._probability) | |
| throw Error("Invalid probability: ".concat(this._probability)); | |
| return Math.random() < this._probability; | |
| }; | |
| return a; | |
| })(H); | |
| A = (function () { | |
| function c() { | |
| this._clsOptions = new ka(); | |
| this.shouldUseCoreExperimentsConfig = !1; | |
| } | |
| c.prototype.setExperimentKey = function (a) { | |
| void 0 === a && (a = !1); | |
| this._clsOptions.setExperiment(this.abgroup, this.result, a); | |
| }; | |
| return c; | |
| })(); | |
| var Fa = (function (c) { | |
| function a() { | |
| var b = c.call(this) || this; | |
| b._result = !1; | |
| b._choices = [{ choice: !0 }, { choice: !1 }]; | |
| b.key = "RemoveLargeSize"; | |
| b.abgroup = "smhd100"; | |
| b._result = b.run(); | |
| b.setExperimentKey(); | |
| return b; | |
| } | |
| x(a, c); | |
| Object.defineProperty(a.prototype, "result", { | |
| get: function () { | |
| return this._result; | |
| }, | |
| enumerable: !1, | |
| configurable: !0, | |
| }); | |
| a.prototype.run = function () { | |
| return new I(0.1).get(); | |
| }; | |
| return a; | |
| })(A), | |
| la = function (c, a, b, d, e, f) { | |
| c = Math.round(f - e); | |
| a = []; | |
| e = []; | |
| a.push( | |
| "(", | |
| b | |
| .map(function () { | |
| return "%o"; | |
| }) | |
| .join(", "), | |
| ")" | |
| ); | |
| e.push.apply(e, C([], u(b), !1)); | |
| void 0 !== d && (a.push(" => %o"), e.push(d)); | |
| a.push(" %c(".concat(c, "ms)")); | |
| e.push("color: #999;"); | |
| }, | |
| ma = function (c, a, b) { | |
| var d = void 0 !== b.get ? b.get : b.value; | |
| return function () { | |
| for (var e = [], f = 0; f < arguments.length; f++) | |
| e[f] = arguments[f]; | |
| try { | |
| var g = U(), | |
| h = d.apply(this, e); | |
| if (h instanceof Promise) | |
| return h | |
| .then(function (l) { | |
| var n = U(); | |
| la(c, a, e, l, g, n); | |
| return Promise.resolve(l); | |
| }) | |
| .catch(function (l) { | |
| l.logged || (q.error(c, a, l), (l.logged = !0)); | |
| throw l; | |
| }); | |
| var k = U(); | |
| la(c, a, e, h, g, k); | |
| return h; | |
| } catch (l) { | |
| throw (l.logged || (q.error(c, a, l), (l.logged = !0)), l); | |
| } | |
| }; | |
| }, | |
| N = function (c, a) { | |
| void 0 === a && (a = !1); | |
| return function (b) { | |
| var d, | |
| e = Object.getOwnPropertyNames(b.prototype) | |
| .filter(function (p) { | |
| return a || 0 !== p.indexOf("_"); | |
| }) | |
| .map(function (p) { | |
| return [p, Object.getOwnPropertyDescriptor(b.prototype, p)]; | |
| }); | |
| try { | |
| for (var f = Q(e), g = f.next(); !g.done; g = f.next()) { | |
| var h = u(g.value, 2), | |
| k = h[0], | |
| l = h[1]; | |
| void 0 !== l && "function" === typeof l.value | |
| ? (b.prototype[k] = ma(c, k, l)) | |
| : void 0 !== l && | |
| void 0 !== l.get && | |
| "function" === typeof l.get && | |
| Object.defineProperty( | |
| b.prototype, | |
| k, | |
| z(z({}, l), { get: ma(c, k, l) }) | |
| ); | |
| } | |
| } catch (p) { | |
| var n = { error: p }; | |
| } finally { | |
| try { | |
| g && !g.done && (d = f.return) && d.call(f); | |
| } finally { | |
| if (n) throw n.error; | |
| } | |
| } | |
| }; | |
| }, | |
| Ga = (function (c) { | |
| function a() { | |
| var b = c.call(this) || this; | |
| b._result = !1; | |
| b.key = "MaxContent"; | |
| b.abgroup = "conmax99"; | |
| b._choices = [{ choice: !0 }, { choice: !1 }]; | |
| b.weight = 0.02; | |
| b._result = b.run(); | |
| b.setExperimentKey(); | |
| return b; | |
| } | |
| x(a, c); | |
| Object.defineProperty(a.prototype, "result", { | |
| get: function () { | |
| return this._result; | |
| }, | |
| enumerable: !1, | |
| configurable: !0, | |
| }); | |
| a.prototype.run = function () { | |
| return new I(this.weight).get(); | |
| }; | |
| return (a = J( | |
| [N("MaxContentExperiment"), E("design:paramtypes", [])], | |
| a | |
| )); | |
| })(A), | |
| Ha = (function (c) { | |
| function a(b) { | |
| var d = c.call(this) || this; | |
| d._result = !1; | |
| d.key = "ParallaxAdsExperiment"; | |
| d.abgroup = "parallax"; | |
| d._choices = [{ choice: !0 }, { choice: !1 }]; | |
| d.weight = 0.5; | |
| G() && | |
| b.largeFormatsMobile && | |
| ((d._result = d.run()), d.setExperimentKey()); | |
| return d; | |
| } | |
| x(a, c); | |
| Object.defineProperty(a.prototype, "result", { | |
| get: function () { | |
| return this._result; | |
| }, | |
| enumerable: !1, | |
| configurable: !0, | |
| }); | |
| a.prototype.run = function () { | |
| return new I(this.weight).get(); | |
| }; | |
| return (a = J( | |
| [N("ParallaxAdsExperiment"), E("design:paramtypes", [Object])], | |
| a | |
| )); | |
| })(A), | |
| Ia = (function (c) { | |
| function a() { | |
| var b = c.call(this) || this; | |
| b._result = !1; | |
| b._choices = [{ choice: !0 }, { choice: !1 }]; | |
| b.key = "mrsf"; | |
| b.abgroup = "mrsf"; | |
| G() && ((b._result = b.run()), b.setExperimentKey()); | |
| return b; | |
| } | |
| x(a, c); | |
| Object.defineProperty(a.prototype, "result", { | |
| get: function () { | |
| return this._result; | |
| }, | |
| enumerable: !1, | |
| configurable: !0, | |
| }); | |
| a.prototype.run = function () { | |
| return new I(1).get(); | |
| }; | |
| return a; | |
| })(A), | |
| Ja = [ | |
| [728, 90], | |
| [300, 250], | |
| [300, 600], | |
| [320, 50], | |
| [970, 250], | |
| [160, 600], | |
| [300, 1050], | |
| [336, 280], | |
| [970, 90], | |
| [300, 50], | |
| [320, 100], | |
| [468, 60], | |
| [250, 250], | |
| [120, 240], | |
| [1, 1], | |
| [300, 300], | |
| [552, 334], | |
| [300, 420], | |
| [728, 250], | |
| [320, 300], | |
| [300, 390], | |
| ], | |
| Ka = [ | |
| [300, 600], | |
| [160, 600], | |
| ], | |
| La = new Map([ | |
| ["Footer", 1], | |
| ["Header", 2], | |
| ["Sidebar", 3], | |
| ["Content", 4], | |
| ["Recipe", 5], | |
| ["Sidebar_sticky", 6], | |
| ["Below Post", 7], | |
| ]), | |
| Ma = function (c) { | |
| return Ja.filter(function (a) { | |
| a = u(a, 2); | |
| var b = a[0], | |
| d = a[1]; | |
| return c.some(function (e) { | |
| e = u(e, 2); | |
| var f = e[1]; | |
| return b === e[0] && d === f; | |
| }); | |
| }); | |
| }, | |
| Na = function (c, a, b, d, e) { | |
| a = u(a, 2); | |
| var f = a[0], | |
| g = a[1], | |
| h = c.location; | |
| a = c.sequence; | |
| return "Footer" === h | |
| ? !("phone" === b && 320 === f && 100 === g) | |
| : "Header" === h | |
| ? !(100 < g && d.result) | |
| : "Recipe" === h | |
| ? !( | |
| e.result && | |
| "phone" === b && | |
| ((300 === f && 390 === g) || (320 === f && 300 === g)) | |
| ) | |
| : "Sidebar" === h | |
| ? ((b = c.adSizes.some(function (k) { | |
| return 300 >= u(k, 2)[1]; | |
| })), | |
| (d = 300 < g) && !b | |
| ? !0 | |
| : 9 === a | |
| ? !0 | |
| : a && 5 >= a | |
| ? d | |
| ? c.sticky | |
| : !0 | |
| : !d) | |
| : !0; | |
| }, | |
| Oa = function (c, a) { | |
| var b = c.location; | |
| c = c.sticky; | |
| if ("Recipe" === b && a) { | |
| var d = a.recipeMobile; | |
| a = a.recipeDesktop; | |
| if ( | |
| (G() && (null === d || void 0 === d ? 0 : d.enabled)) || | |
| (!G() && (null === a || void 0 === a ? 0 : a.enabled)) | |
| ) | |
| return !0; | |
| } | |
| return "Footer" === b || c; | |
| }, | |
| Pa = function (c, a) { | |
| var b = a.adUnits, | |
| d = a.adTypes ? new Ha(a.adTypes).result : !1, | |
| e = new Fa(), | |
| f = new Ga(), | |
| g = new Ia(); | |
| return b | |
| .filter(function (h) { | |
| return void 0 !== h.dynamic && h.dynamic.enabled; | |
| }) | |
| .map(function (h) { | |
| var k = h.location.replace(/\s+/g, "_"), | |
| l = "Sidebar" === k ? 0 : 2; | |
| return { | |
| auctionPriority: La.get(k) || 8, | |
| location: k, | |
| sequence: w(h.sequence, 1), | |
| sizes: Ma(h.adSizes) | |
| .filter(function (n) { | |
| return Na(h, n, c, e, g); | |
| }) | |
| .concat(d && "Content" === h.location ? Ka : []), | |
| devices: h.devices, | |
| pageSelector: w(h.dynamic.pageSelector, "").trim(), | |
| elementSelector: w(h.dynamic.elementSelector, "").trim(), | |
| position: w(h.dynamic.position, "beforebegin"), | |
| max: | |
| f.result && "Content" === h.location | |
| ? 99 | |
| : Math.floor(w(h.dynamic.max, 0)), | |
| spacing: w(h.dynamic.spacing, 0), | |
| skip: Math.floor(w(h.dynamic.skip, 0)), | |
| every: Math.max(Math.floor(w(h.dynamic.every, 1)), 1), | |
| classNames: h.dynamic.classNames || [], | |
| sticky: Oa(h, a.adOptions.stickyContainerConfig), | |
| stickyOverlapSelector: w(h.stickyOverlapSelector, "").trim(), | |
| autosize: h.autosize, | |
| special: w(h.targeting, []) | |
| .filter(function (n) { | |
| return "special" === n.key; | |
| }) | |
| .reduce(function (n, p) { | |
| return n.concat.apply(n, C([], u(p.value), !1)); | |
| }, []), | |
| lazy: w(h.dynamic.lazy, !1), | |
| lazyMax: w(h.dynamic.lazyMax, l), | |
| lazyMaxDefaulted: | |
| 0 === h.dynamic.lazyMax ? !1 : !h.dynamic.lazyMax, | |
| name: h.name, | |
| }; | |
| }); | |
| }, | |
| W = function (c, a) { | |
| var b = qa(a), | |
| d = c.sticky && "Sidebar" === c.location; | |
| return c.sizes.filter(function (e) { | |
| var f = d ? e[1] <= window.innerHeight - 100 : !0; | |
| return (c.autosize ? e[0] <= b || 320 >= e[0] : !0) && f; | |
| }); | |
| }, | |
| Qa = (function () { | |
| return function (c) { | |
| this.clsOptions = c; | |
| this.enabledLocations = [ | |
| "Below_Post", | |
| "Content", | |
| "Recipe", | |
| "Sidebar", | |
| ]; | |
| }; | |
| })(), | |
| Ra = function (c) { | |
| var a = document.body; | |
| c = "adthrive-device-".concat(c); | |
| if (!a.classList.contains(c)) | |
| try { | |
| a.classList.add(c); | |
| } catch (b) { | |
| q.error("BodyDeviceClassComponent", "init", { | |
| message: b.message, | |
| }), | |
| (a = "classList" in document.createElement("_")), | |
| q.error("BodyDeviceClassComponent", "init.support", { | |
| support: a, | |
| }); | |
| } | |
| }, | |
| Sa = function (c, a, b, d) { | |
| void 0 === b && (b = 1200); | |
| void 0 === d && (d = 25); | |
| return Math.min( | |
| Math.max(Math.floor((c - a.offsetTop) / (b + 10)) - 2, 1), | |
| d | |
| ); | |
| }, | |
| Ta = function (c) { | |
| if (c && c.length) { | |
| for (var a = 0, b = 0; b < c.length; b++) { | |
| var d = V(c[b]); | |
| if (d.valid && d.elements && d.elements[0]) { | |
| a = Z(d.elements[0]).height; | |
| break; | |
| } | |
| } | |
| return a; | |
| } | |
| }, | |
| Ua = function (c) { | |
| return T( | |
| '\n .adthrive-device-phone .adthrive-sticky-content {\n height: 450px !important;\n margin-bottom: 100px !important;\n }\n .adthrive-content.adthrive-sticky {\n position: -webkit-sticky;\n position: sticky !important;\n top: 42px !important;\n margin-top: 42px !important;\n }\n .adthrive-content.adthrive-sticky:after {\n content: "\u2014 Advertisement. Scroll down to continue. \u2014";\n font-size: 10pt;\n margin-top: 5px;\n margin-bottom: 5px;\n display:block;\n color: #888;\n }\n .adthrive-sticky-container {\n position: relative;\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n align-items: center;\n min-height:'.concat( | |
| c ? c : 400, | |
| "px !important;\n margin: 10px 0 10px 0;\n background-color: #FAFAFA;\n padding-bottom:0px;\n }\n " | |
| ) | |
| ); | |
| }, | |
| Va = function (c, a) { | |
| a = null !== a && void 0 !== a ? a : 5; | |
| T( | |
| "\n .adthrive-ad.adthrive-sticky-sidebar {\n position: relative;\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n align-items: center;\n min-height: " | |
| .concat( | |
| null !== c && void 0 !== c ? c : 1200, | |
| "px !important;\n padding-bottom: 0px;\n margin: 10px 0 10px 0;\n }\n .adthrive-ad.adthrive-sticky-sidebar > div {\n flex-basis: unset;\n position: sticky !important;\n top: " | |
| ) | |
| .concat(a, "px;\n }\n ") | |
| ); | |
| }, | |
| X = function (c) { | |
| return c.some(function (a) { | |
| return null !== document.querySelector(a); | |
| }); | |
| }, | |
| Wa = (function (c) { | |
| function a() { | |
| var b = c.call(this) || this; | |
| b._result = !1; | |
| b.abgroup = "essa"; | |
| b.key = "EnhancedStickySidebarAds"; | |
| b._choices = [{ choice: !0 }, { choice: !1 }]; | |
| b.weight = 0.9; | |
| b._result = b.run(); | |
| b.setExperimentKey(); | |
| return b; | |
| } | |
| x(a, c); | |
| Object.defineProperty(a.prototype, "result", { | |
| get: function () { | |
| return this._result; | |
| }, | |
| enumerable: !1, | |
| configurable: !0, | |
| }); | |
| a.prototype.run = function () { | |
| return new I(this.weight).get(); | |
| }; | |
| return (a = J( | |
| [ | |
| N("EnhancedStickySidebarAdsExperiment"), | |
| E("design:paramtypes", []), | |
| ], | |
| a | |
| )); | |
| })(A), | |
| Xa = (function (c) { | |
| function a() { | |
| var b = c.call(this) || this; | |
| b._result = !1; | |
| b._choices = [{ choice: !0 }, { choice: !1 }]; | |
| b.key = "RemoveRecipeCap"; | |
| b.abgroup = "rrc"; | |
| b._result = b.run(); | |
| b.setExperimentKey(); | |
| return b; | |
| } | |
| x(a, c); | |
| Object.defineProperty(a.prototype, "result", { | |
| get: function () { | |
| return this._result; | |
| }, | |
| enumerable: !1, | |
| configurable: !0, | |
| }); | |
| a.prototype.run = function () { | |
| return new I(1).get(); | |
| }; | |
| return a; | |
| })(A), | |
| O = (function (c) { | |
| function a(b, d) { | |
| void 0 === b && (b = []); | |
| var e = c.call(this) || this; | |
| e._choices = b; | |
| e._default = d; | |
| return e; | |
| } | |
| x(a, c); | |
| a.fromArray = function (b, d) { | |
| return new a( | |
| b.map(function (e) { | |
| e = u(e, 2); | |
| return { choice: e[0], weight: e[1] }; | |
| }), | |
| d | |
| ); | |
| }; | |
| a.prototype.addChoice = function (b, d) { | |
| this._choices.push({ choice: b, weight: d }); | |
| }; | |
| a.prototype.get = function () { | |
| var b, | |
| d = 100 * Math.random(), | |
| e = 0; | |
| try { | |
| for ( | |
| var f = Q(this._choices), g = f.next(); | |
| !g.done; | |
| g = f.next() | |
| ) { | |
| var h = g.value, | |
| k = h.choice; | |
| e += h.weight; | |
| if (e >= d) return k; | |
| } | |
| } catch (n) { | |
| var l = { error: n }; | |
| } finally { | |
| try { | |
| g && !g.done && (b = f.return) && b.call(f); | |
| } finally { | |
| if (l) throw l.error; | |
| } | |
| } | |
| return this._default; | |
| }; | |
| Object.defineProperty(a.prototype, "totalWeight", { | |
| get: function () { | |
| return this._choices.reduce(function (b, d) { | |
| return b + d.weight; | |
| }, 0); | |
| }, | |
| enumerable: !1, | |
| configurable: !0, | |
| }); | |
| return a; | |
| })(H), | |
| Ya = function (c) { | |
| for (var a = 5381, b = c.length; b; ) | |
| a = (33 * a) ^ c.charCodeAt(--b); | |
| return a >>> 0; | |
| }, | |
| R = new ((function () { | |
| function c() { | |
| var a = this; | |
| this.name = "StorageHandler"; | |
| this.disable = !1; | |
| this.removeLocalStorageValue = function (b) { | |
| window.localStorage.removeItem( | |
| "adthrive_".concat(b.toLowerCase()) | |
| ); | |
| }; | |
| this.getLocalStorageValue = function (b, d, e, f, g) { | |
| void 0 === d && (d = !0); | |
| void 0 === e && (e = !0); | |
| if (a.disable) return null; | |
| try { | |
| var h = window.localStorage.getItem( | |
| "" | |
| .concat(d ? "adthrive_" : "") | |
| .concat(e ? b.toLowerCase() : b) | |
| ); | |
| if (h) { | |
| var k = JSON.parse(h), | |
| l = void 0 !== f && Date.now() - k.created >= f; | |
| if (k && !l) | |
| return ( | |
| g && a.setLocalStorageValue(b, k.value, d), k.value | |
| ); | |
| } | |
| } catch (n) {} | |
| return null; | |
| }; | |
| this.setLocalStorageValue = function (b, d, e) { | |
| void 0 === e && (e = !0); | |
| try { | |
| e = e ? "adthrive_" : ""; | |
| var f = { value: d, created: Date.now() }; | |
| window.localStorage.setItem( | |
| "".concat(e).concat(b.toLowerCase()), | |
| JSON.stringify(f) | |
| ); | |
| } catch (g) {} | |
| }; | |
| this.isValidABGroupLocalStorageValue = function (b) { | |
| return ( | |
| void 0 !== b && | |
| null !== b && | |
| !("number" === typeof b && isNaN(b)) | |
| ); | |
| }; | |
| this.getOrSetLocalStorageValue = function (b, d, e, f, g, h, k) { | |
| void 0 === f && (f = !0); | |
| void 0 === g && (g = !0); | |
| void 0 === k && (k = !0); | |
| e = a.getLocalStorageValue(b, k, f, e, g); | |
| if (null !== e) return e; | |
| d = d(); | |
| a.setLocalStorageValue(b, d, k); | |
| h && h(d); | |
| return d; | |
| }; | |
| this.getOrSetABGroupLocalStorageValue = function (b, d, e, f, g) { | |
| var h; | |
| void 0 === f && (f = !0); | |
| e = a.getLocalStorageValue("abgroup", !0, !0, e, f); | |
| if ( | |
| null !== e && | |
| ((f = e[b]), a.isValidABGroupLocalStorageValue(f)) | |
| ) | |
| return f; | |
| d = d(); | |
| b = z(z({}, e), ((h = {}), (h[b] = d), h)); | |
| a.setLocalStorageValue("abgroup", b); | |
| g && g(); | |
| return d; | |
| }; | |
| } | |
| c.prototype.init = function () {}; | |
| return c; | |
| })())(), | |
| na = function () { | |
| return function (c, a, b) { | |
| var d = b.value; | |
| d && | |
| (b.value = function () { | |
| for (var e = this, f = [], g = 0; g < arguments.length; g++) | |
| f[g] = arguments[g]; | |
| g = Array.isArray(this._choices) | |
| ? Ya(JSON.stringify(this._choices)).toString(16) | |
| : null; | |
| var h = this._expConfigABGroup | |
| ? this._expConfigABGroup | |
| : this.abgroup; | |
| h = h | |
| ? h.toLowerCase() | |
| : this.key | |
| ? this.key.toLowerCase() | |
| : ""; | |
| g = g ? "".concat(h, "_").concat(g) : h; | |
| g = this.localStoragePrefix | |
| ? "".concat(this.localStoragePrefix, "-").concat(g) | |
| : g; | |
| h = R.getLocalStorageValue("branch"); | |
| !1 === (h && h.enabled) && R.removeLocalStorageValue(g); | |
| return R.getOrSetABGroupLocalStorageValue( | |
| g, | |
| function () { | |
| return d.apply(e, f); | |
| }, | |
| 864e5 | |
| ); | |
| }); | |
| }; | |
| }; | |
| H = (function (c) { | |
| function a() { | |
| var b = (null !== c && c.apply(this, arguments)) || this; | |
| b._resultValidator = function () { | |
| return !0; | |
| }; | |
| return b; | |
| } | |
| x(a, c); | |
| a.prototype._isValidResult = function (b) { | |
| var d = this; | |
| return c.prototype._isValidResult.call(this, b, function () { | |
| return d._resultValidator(b) || "control" === b; | |
| }); | |
| }; | |
| a.prototype.run = function () { | |
| if (!this.enabled) | |
| return ( | |
| q.error( | |
| "CLSWeightedChoiceSiteExperiment", | |
| "run", | |
| "() => %o", | |
| "No experiment config found. Defaulting to control." | |
| ), | |
| "control" | |
| ); | |
| if (!this._mappedChoices || 0 === this._mappedChoices.length) | |
| return ( | |
| q.error( | |
| "CLSWeightedChoiceSiteExperiment", | |
| "run", | |
| "() => %o", | |
| "No experiment variants found. Defaulting to control." | |
| ), | |
| "control" | |
| ); | |
| var b = new O(this._mappedChoices).get(); | |
| if (this._isValidResult(b)) return b; | |
| q.error( | |
| "CLSWeightedChoiceSiteExperiment", | |
| "run", | |
| "() => %o", | |
| "Invalid result from experiment choices. Defaulting to control." | |
| ); | |
| return "control"; | |
| }; | |
| return a; | |
| })( | |
| (function () { | |
| function c() {} | |
| Object.defineProperty(c.prototype, "enabled", { | |
| get: function () { | |
| return void 0 !== this.experimentConfig; | |
| }, | |
| enumerable: !1, | |
| configurable: !0, | |
| }); | |
| c.prototype._isValidResult = function (a, b) { | |
| void 0 === b && | |
| (b = function () { | |
| return !0; | |
| }); | |
| return b() && R.isValidABGroupLocalStorageValue(a); | |
| }; | |
| return c; | |
| })() | |
| ); | |
| var oa = (function () { | |
| function c(a) { | |
| var b = this, | |
| d, | |
| e; | |
| this.siteExperiments = []; | |
| this._clsOptions = a; | |
| this._device = G() ? "mobile" : "desktop"; | |
| this.siteExperiments = | |
| null !== | |
| (e = | |
| null === (d = this._clsOptions.siteAds.siteExperiments) || | |
| void 0 === d | |
| ? void 0 | |
| : d.filter(function (f) { | |
| var g = f.key; | |
| var h = b._device; | |
| if (f) { | |
| var k = !!f.enabled, | |
| l = | |
| null == f.dateStart || | |
| Date.now() >= f.dateStart, | |
| n = null == f.dateEnd || Date.now() <= f.dateEnd, | |
| p = | |
| null === f.selector || | |
| ("" !== f.selector && | |
| !!document.querySelector(f.selector)), | |
| r = "mobile" === f.platform && "mobile" === h; | |
| h = "desktop" === f.platform && "desktop" === h; | |
| r = | |
| null === f.platform || | |
| "all" === f.platform || | |
| r || | |
| h; | |
| (h = | |
| "bernoulliTrial" === f.experimentType | |
| ? 1 === f.variants.length | |
| : ya(f.variants)) || | |
| q.error( | |
| "SiteTest", | |
| "validateSiteExperiment", | |
| "experiment presented invalid choices for key:", | |
| f.key, | |
| f.variants | |
| ); | |
| f = k && l && n && p && r && h; | |
| } else f = !1; | |
| a: switch (((k = b._clsOptions.siteAds), g)) { | |
| case F.AdDensity: | |
| var m = wa(k, b._device); | |
| break a; | |
| case F.StickyOutstream: | |
| var t, v; | |
| m = (g = | |
| null === | |
| (v = | |
| null === | |
| (t = | |
| null === (m = k.videoPlayers) || | |
| void 0 === m | |
| ? void 0 | |
| : m.partners) || void 0 === t | |
| ? void 0 | |
| : t.stickyOutstream) || void 0 === v | |
| ? void 0 | |
| : v.blockedPageSelectors) | |
| ? !document.querySelector(g) | |
| : !0; | |
| break a; | |
| case F.Interstitial: | |
| m = (m = | |
| k.adOptions.interstitialBlockedPageSelectors) | |
| ? !document.querySelector(m) | |
| : !0; | |
| break a; | |
| default: | |
| m = !0; | |
| } | |
| return f && m; | |
| })) && void 0 !== e | |
| ? e | |
| : []; | |
| } | |
| c.prototype.getSiteExperimentByKey = function (a) { | |
| var b = this.siteExperiments.filter(function (f) { | |
| return f.key.toLowerCase() === a.toLowerCase(); | |
| })[0], | |
| d = Aa("at_site_features"), | |
| e = | |
| typeof ((null === b || void 0 === b ? 0 : b.variants[1]) | |
| ? null === b || void 0 === b | |
| ? void 0 | |
| : b.variants[1].value | |
| : null === b || void 0 === b | |
| ? void 0 | |
| : b.variants[0].value) === typeof d[a]; | |
| b && | |
| d[a] && | |
| e && | |
| (b.variants = [ | |
| { displayName: "test", value: d[a], weight: 100, id: 0 }, | |
| ]); | |
| return b; | |
| }; | |
| return c; | |
| })(), | |
| Za = (function (c) { | |
| function a(b) { | |
| var d = c.call(this) || this; | |
| d._choices = []; | |
| d._mappedChoices = []; | |
| d._result = ""; | |
| d._resultValidator = function (e) { | |
| return "string" === typeof e; | |
| }; | |
| d.key = F.AdLayout; | |
| d.abgroup = F.AdLayout; | |
| d._clsSiteExperiments = new oa(b); | |
| d.experimentConfig = d._clsSiteExperiments.getSiteExperimentByKey( | |
| d.key | |
| ); | |
| d.enabled && | |
| d.experimentConfig && | |
| ((d._choices = d.experimentConfig.variants), | |
| (d._mappedChoices = d._mapChoices()), | |
| (d._result = d.run()), | |
| b.setWeightedChoiceExperiment(d.abgroup, d._result, !0)); | |
| return d; | |
| } | |
| x(a, c); | |
| Object.defineProperty(a.prototype, "result", { | |
| get: function () { | |
| return this._result; | |
| }, | |
| enumerable: !1, | |
| configurable: !0, | |
| }); | |
| a.prototype.run = function () { | |
| if (!this.enabled) | |
| return ( | |
| q.error( | |
| "CLSAdLayoutSiteExperiment", | |
| "run", | |
| "() => %o", | |
| "No experiment config found. Defaulting to empty class name." | |
| ), | |
| "" | |
| ); | |
| var b = new O(this._mappedChoices).get(); | |
| if (this._isValidResult(b)) return b; | |
| q.error( | |
| "CLSAdLayoutSiteExperiment", | |
| "run", | |
| "() => %o", | |
| "Invalid result from experiment choices. Defaulting to empty class name." | |
| ); | |
| return ""; | |
| }; | |
| a.prototype._mapChoices = function () { | |
| return this._choices.map(function (b) { | |
| return { weight: b.weight, choice: b.value }; | |
| }); | |
| }; | |
| J( | |
| [ | |
| na(), | |
| E("design:type", Function), | |
| E("design:paramtypes", []), | |
| E("design:returntype", void 0), | |
| ], | |
| a.prototype, | |
| "run", | |
| null | |
| ); | |
| return a; | |
| })(H), | |
| $a = (function (c) { | |
| function a(b) { | |
| var d = c.call(this) || this; | |
| d._choices = []; | |
| d._mappedChoices = []; | |
| d._result = "control"; | |
| d._resultValidator = function (e) { | |
| return "number" === typeof e; | |
| }; | |
| d.key = F.AdDensity; | |
| d.abgroup = F.AdDensity; | |
| d._clsSiteExperiments = new oa(b); | |
| d.experimentConfig = d._clsSiteExperiments.getSiteExperimentByKey( | |
| d.key | |
| ); | |
| d.enabled && | |
| d.experimentConfig && | |
| ((d._choices = d.experimentConfig.variants), | |
| (d._mappedChoices = d._mapChoices()), | |
| (d._result = d.run()), | |
| b.setWeightedChoiceExperiment(d.abgroup, d._result, !0)); | |
| return d; | |
| } | |
| x(a, c); | |
| Object.defineProperty(a.prototype, "result", { | |
| get: function () { | |
| return this._result; | |
| }, | |
| enumerable: !1, | |
| configurable: !0, | |
| }); | |
| a.prototype.run = function () { | |
| if (!this.enabled) | |
| return ( | |
| q.error( | |
| "CLSTargetAdDensitySiteExperiment", | |
| "run", | |
| "() => %o", | |
| "No experiment config found. Defaulting to control." | |
| ), | |
| "control" | |
| ); | |
| var b = new O(this._mappedChoices).get(); | |
| if (this._isValidResult(b)) return b; | |
| q.error( | |
| "CLSTargetAdDensitySiteExperiment", | |
| "run", | |
| "() => %o", | |
| "Invalid result from experiment choices. Defaulting to control." | |
| ); | |
| return "control"; | |
| }; | |
| a.prototype._mapChoices = function () { | |
| return this._choices.map(function (b) { | |
| var d = b.value; | |
| return { | |
| weight: b.weight, | |
| choice: "number" === typeof d ? (d || 0) / 100 : "control", | |
| }; | |
| }); | |
| }; | |
| J( | |
| [ | |
| na(), | |
| E("design:type", Function), | |
| E("design:paramtypes", []), | |
| E("design:returntype", void 0), | |
| ], | |
| a.prototype, | |
| "run", | |
| null | |
| ); | |
| return a; | |
| })(H), | |
| ab = (function (c) { | |
| function a() { | |
| var b = c.call(this) || this; | |
| b._result = !1; | |
| b.abgroup = "scae"; | |
| b.key = "StickyContainerAds"; | |
| b._choices = [{ choice: !0 }, { choice: !1 }]; | |
| b.weight = 0.99; | |
| b._result = b.run(); | |
| b.setExperimentKey(); | |
| return b; | |
| } | |
| x(a, c); | |
| Object.defineProperty(a.prototype, "result", { | |
| get: function () { | |
| return this._result; | |
| }, | |
| enumerable: !1, | |
| configurable: !0, | |
| }); | |
| a.prototype.run = function () { | |
| return new I(this.weight).get(); | |
| }; | |
| return (a = J( | |
| [N("StickyContainerAdsExperiment"), E("design:paramtypes", [])], | |
| a | |
| )); | |
| })(A), | |
| bb = (function (c) { | |
| function a() { | |
| var b = c.call(this) || this; | |
| b._result = !1; | |
| b.abgroup = "scre"; | |
| b.key = "StickyContainerRecipe"; | |
| b._choices = [{ choice: !0 }, { choice: !1 }]; | |
| b.weight = 0.99; | |
| b._result = b.run(); | |
| b.setExperimentKey(); | |
| return b; | |
| } | |
| x(a, c); | |
| Object.defineProperty(a.prototype, "result", { | |
| get: function () { | |
| return this._result; | |
| }, | |
| enumerable: !1, | |
| configurable: !0, | |
| }); | |
| a.prototype.run = function () { | |
| return new I(this.weight).get(); | |
| }; | |
| return (a = J( | |
| [ | |
| N("StickyContainerRecipeExperiment"), | |
| E("design:paramtypes", []), | |
| ], | |
| a | |
| )); | |
| })(A), | |
| cb = (function () { | |
| function c(a) { | |
| this.key = "DynamicSidebarSlotsMinHeight"; | |
| this.abgroup = "dssmh"; | |
| this._result = 2700; | |
| this._choices = [ | |
| { choice: 1800, weight: 10 }, | |
| { choice: 2100, weight: 10 }, | |
| { choice: 2400, weight: 10 }, | |
| { choice: 2700, weight: 60 }, | |
| { choice: 3e3, weight: 10 }, | |
| ]; | |
| this._isValidResult = function (b) { | |
| return "number" === typeof b; | |
| }; | |
| this._result = this.run(); | |
| a.setWeightedChoiceExperiment(this.abgroup, this._result, !1); | |
| } | |
| Object.defineProperty(c.prototype, "result", { | |
| get: function () { | |
| return this._result; | |
| }, | |
| enumerable: !1, | |
| configurable: !0, | |
| }); | |
| c.prototype.run = function () { | |
| var a = new O(this._choices).get(); | |
| if (this._isValidResult(a)) return a; | |
| q.error( | |
| "setWeightedChoiceExperiment", | |
| "run", | |
| "() => %o", | |
| "Invalid result from experiment choices. Defaulting to 0." | |
| ); | |
| return 0; | |
| }; | |
| return c; | |
| })(), | |
| db = (function () { | |
| function c(a) { | |
| this.key = "DynamicSidebarSlotsCap"; | |
| this.abgroup = "dssc"; | |
| this._result = 25; | |
| this._choices = [ | |
| { choice: 25, weight: 25 }, | |
| { choice: 50, weight: 25 }, | |
| { choice: 75, weight: 25 }, | |
| { choice: 100, weight: 25 }, | |
| ]; | |
| this._isValidResult = function (b) { | |
| return "number" === typeof b; | |
| }; | |
| this._result = this.run(); | |
| a.setWeightedChoiceExperiment(this.abgroup, this._result, !1); | |
| } | |
| Object.defineProperty(c.prototype, "result", { | |
| get: function () { | |
| return this._result; | |
| }, | |
| enumerable: !1, | |
| configurable: !0, | |
| }); | |
| c.prototype.run = function () { | |
| var a = new O(this._choices).get(); | |
| if (this._isValidResult(a)) return a; | |
| q.error( | |
| "DynamicSidebarSlotsCapCLSExperiment", | |
| "run", | |
| "() => %o", | |
| "Invalid result from experiment choices. Defaulting to 0." | |
| ); | |
| return 0; | |
| }; | |
| return c; | |
| })(), | |
| fb = (function () { | |
| function c(a, b) { | |
| this._clsOptions = a; | |
| this._adInjectionMap = b; | |
| this._mainContentHeight = this._recipeCount = 0; | |
| this._mainContentDiv = null; | |
| this._totalAvailableElements = []; | |
| this._minDivHeight = 250; | |
| this._densityDevice = M.Desktop; | |
| this._pubLog = { | |
| onePerViewport: !1, | |
| targetDensity: 0, | |
| targetDensityUnits: 0, | |
| combinedMax: 0, | |
| }; | |
| this._densityMax = 0.99; | |
| this._smallerIncrementAttempts = 0; | |
| this._absoluteMinimumSpacingByDevice = 250; | |
| this._usedAbsoluteMinimum = !1; | |
| this._infPageEndOffset = 0; | |
| this.locationMaxLazySequence = new Map([["Recipe", 5]]); | |
| this.locationToMinHeight = { | |
| Below_Post: "250px", | |
| Content: "250px", | |
| Recipe: "250px", | |
| Sidebar: "250px", | |
| }; | |
| b = this._clsOptions.siteAds.breakpoints; | |
| var d = b.tablet; | |
| var e = window.innerWidth; | |
| b = e >= b.desktop ? "desktop" : e >= d ? "tablet" : "phone"; | |
| this._device = b; | |
| this._config = new Qa(a); | |
| this._clsOptions.enabledLocations = this._config.enabledLocations; | |
| this._clsTargetAdDensitySiteExperiment = this._clsOptions.siteAds | |
| .siteExperiments | |
| ? new $a(this._clsOptions) | |
| : null; | |
| this._dynamicSidebarSlotsMinHeightExperiment = new cb( | |
| this._clsOptions | |
| ); | |
| this._dynamicSidebarSlotsCapExperiment = new db(this._clsOptions); | |
| this._stickyContainerAdsExperiment = new ab(); | |
| this._stickyContainerRecipeExperiment = new bb(); | |
| this._enhancedStickySidebarAdsExperiment = new Wa(); | |
| this._removeRecipeCapExperiment = new Xa(); | |
| } | |
| c.prototype.start = function () { | |
| var a = this, | |
| b, | |
| d, | |
| e, | |
| f, | |
| g, | |
| h, | |
| k; | |
| try { | |
| Ra(this._device); | |
| var l = new Za(this._clsOptions); | |
| if (l.enabled) { | |
| var n = l.result, | |
| p = n.startsWith(".") ? n.substring(1) : n; | |
| if (/^[-_a-zA-Z]+[-_a-zA-Z0-9]*$/.test(p)) | |
| try { | |
| document.body.classList.add(p); | |
| } catch (B) { | |
| q.error( | |
| "ClsDynamicAdsInjector", | |
| "start", | |
| "Uncaught CSS Class error: ".concat(B) | |
| ); | |
| } | |
| else | |
| q.error( | |
| "ClsDynamicAdsInjector", | |
| "start", | |
| "Invalid class name: ".concat(p) | |
| ); | |
| } | |
| var r = this._clsOptions.siteAds.adOptions, | |
| m = | |
| (null === | |
| (b = this._dynamicSidebarSlotsMinHeightExperiment) || | |
| void 0 === b | |
| ? void 0 | |
| : b.result) || | |
| (null === | |
| (e = | |
| null === (d = r.sidebarConfig) || void 0 === d | |
| ? void 0 | |
| : d.dynamicStickySidebar) || void 0 === e | |
| ? void 0 | |
| : e.minHeight), | |
| t = r.siteAttributes, | |
| v = G() | |
| ? null === t || void 0 === t | |
| ? void 0 | |
| : t.mobileHeaderSelectors | |
| : null === t || void 0 === t | |
| ? void 0 | |
| : t.desktopHeaderSelectors, | |
| y = Ta(v); | |
| Va(m, y); | |
| var D = Pa(this._device, this._clsOptions.siteAds) | |
| .filter(function (B) { | |
| return a._locationEnabled(B); | |
| }) | |
| .filter(function (B) { | |
| return B.devices.includes(a._device); | |
| }) | |
| .filter(function (B) { | |
| return ( | |
| 0 === B.pageSelector.length || | |
| null !== document.querySelector(B.pageSelector) | |
| ); | |
| }), | |
| P = this.inject(D); | |
| (null === | |
| (g = | |
| null === | |
| (f = | |
| this._clsOptions.siteAds.adOptions | |
| .stickyContainerConfig) || void 0 === f | |
| ? void 0 | |
| : f.content) || void 0 === g | |
| ? 0 | |
| : g.enabled) && | |
| this._stickyContainerAdsExperiment.result && | |
| !X( | |
| this._clsOptions.siteAds.adOptions.stickyContainerConfig | |
| .blockedSelectors || [] | |
| ) && | |
| Ua( | |
| null === | |
| (k = | |
| null === | |
| (h = | |
| this._clsOptions.siteAds.adOptions | |
| .stickyContainerConfig) || void 0 === h | |
| ? void 0 | |
| : h.content) || void 0 === k | |
| ? void 0 | |
| : k.minHeight | |
| ); | |
| P.forEach(function (B) { | |
| return a._clsOptions.setInjectedSlots(B); | |
| }); | |
| } catch (B) { | |
| q.error("ClsDynamicAdsInjector", "start", B); | |
| } | |
| }; | |
| c.prototype.inject = function (a, b) { | |
| void 0 === b && (b = document); | |
| this._densityDevice = | |
| "desktop" === this._device ? M.Desktop : M.Mobile; | |
| this._overrideDefaultAdDensitySettingsWithSiteExperiment(); | |
| var d = this._clsOptions.siteAds, | |
| e = w(d.adDensityEnabled, !0), | |
| f = d.adDensityLayout && e; | |
| d = a.filter(function (g) { | |
| return f ? "Content" !== g.location : g; | |
| }); | |
| a = a.filter(function (g) { | |
| return f ? "Content" === g.location : null; | |
| }); | |
| return C( | |
| C([], u(d.length ? this._injectNonDensitySlots(d, b) : []), !1), | |
| u(a.length ? this._injectDensitySlots(a, b) : []), | |
| !1 | |
| ); | |
| }; | |
| c.prototype._injectNonDensitySlots = function (a, b) { | |
| var d, | |
| e = this, | |
| f, | |
| g, | |
| h, | |
| k, | |
| l, | |
| n, | |
| p; | |
| void 0 === b && (b = document); | |
| var r = [], | |
| m = [], | |
| t = | |
| (null === | |
| (g = | |
| null === | |
| (f = | |
| this._clsOptions.siteAds.adOptions.sidebarConfig) || | |
| void 0 === f | |
| ? void 0 | |
| : f.dynamicStickySidebar) || void 0 === g | |
| ? void 0 | |
| : g.enabled) && | |
| this._enhancedStickySidebarAdsExperiment.result; | |
| this._stickyContainerRecipeExperiment.result && | |
| a.some(function (K) { | |
| return "Recipe" === K.location && K.sticky; | |
| }) && | |
| !X( | |
| (null === | |
| (h = | |
| this._clsOptions.siteAds.adOptions | |
| .stickyContainerConfig) || void 0 === h | |
| ? void 0 | |
| : h.blockedSelectors) || [] | |
| ) && | |
| ((f = this._clsOptions.siteAds.adOptions.stickyContainerConfig), | |
| (f = | |
| "phone" === this._device | |
| ? null === | |
| (k = | |
| null === f || void 0 === f | |
| ? void 0 | |
| : f.recipeMobile) || void 0 === k | |
| ? void 0 | |
| : k.minHeight | |
| : null === | |
| (l = | |
| null === f || void 0 === f | |
| ? void 0 | |
| : f.recipeDesktop) || void 0 === l | |
| ? void 0 | |
| : l.minHeight), | |
| T( | |
| "\n .adthrive-recipe.adthrive-sticky {\n position: -webkit-sticky;\n position: sticky !important;\n top: 42px !important;\n margin-top: 42px !important;\n }\n .adthrive-recipe-sticky-container {\n position: relative;\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n align-items: center;\n min-height:".concat( | |
| f ? f : 400, | |
| "px !important;\n margin: 10px 0 10px 0;\n background-color: #FAFAFA;\n padding-bottom:0px;\n }\n " | |
| ) | |
| )); | |
| try { | |
| for (var v = Q(a), y = v.next(); !y.done; y = v.next()) { | |
| var D = y.value, | |
| P = | |
| "Sidebar" === D.location && 9 === D.sequence && D.sticky, | |
| B = | |
| (null === | |
| (p = | |
| null === | |
| (n = | |
| this._clsOptions.siteAds.adOptions | |
| .sidebarConfig) || void 0 === n | |
| ? void 0 | |
| : n.dynamicStickySidebar) || void 0 === p | |
| ? void 0 | |
| : p.blockedSelectors) || [], | |
| eb = X(B); | |
| t && P | |
| ? eb | |
| ? this._insertNonDensityAds(D, r, m, b) | |
| : this._insertDynamicStickySidebarAds(D, r, m, b) | |
| : this._insertNonDensityAds(D, r, m, b); | |
| } | |
| } catch (K) { | |
| var pa = { error: K }; | |
| } finally { | |
| try { | |
| y && !y.done && (d = v.return) && d.call(v); | |
| } finally { | |
| if (pa) throw pa.error; | |
| } | |
| } | |
| m.forEach(function (K) { | |
| K.element.style.minHeight = e.locationToMinHeight[K.location]; | |
| }); | |
| return r; | |
| }; | |
| c.prototype._injectDensitySlots = function (a, b) { | |
| void 0 === b && (b = document); | |
| try { | |
| this._calculateMainContentHeightAndAllElements(a, b); | |
| } catch (h) { | |
| return []; | |
| } | |
| var d = this._getDensitySettings(a, b); | |
| a = d.onePerViewport; | |
| var e = d.targetAll, | |
| f = d.targetDensityUnits, | |
| g = d.combinedMax; | |
| d = d.numberOfUnits; | |
| this._absoluteMinimumSpacingByDevice = a | |
| ? window.innerHeight | |
| : this._absoluteMinimumSpacingByDevice; | |
| if (!d) return []; | |
| this._adInjectionMap.filterUsed(); | |
| this._findElementsForAds(d, a, e, g, f, b); | |
| return this._insertAds(); | |
| }; | |
| c.prototype._overrideDefaultAdDensitySettingsWithSiteExperiment = | |
| function () { | |
| var a; | |
| if ( | |
| null === (a = this._clsTargetAdDensitySiteExperiment) || | |
| void 0 === a | |
| ? 0 | |
| : a.enabled | |
| ) | |
| (a = this._clsTargetAdDensitySiteExperiment.result), | |
| "number" === typeof a && | |
| ((this._clsOptions.siteAds.adDensityEnabled = !0), | |
| (this._clsOptions.siteAds.adDensityLayout[ | |
| this._densityDevice | |
| ].adDensity = a)); | |
| }; | |
| c.prototype._getDensitySettings = function (a, b) { | |
| void 0 === b && (b = document); | |
| var d = this._clsOptions.siteAds.adDensityLayout, | |
| e = this._determineOverrides(d.pageOverrides); | |
| e = e.length ? e[0] : d[this._densityDevice]; | |
| d = this._clsOptions.getTargetDensity(e.adDensity); | |
| e = e.onePerViewport; | |
| var f = this._shouldTargetAllEligible(d), | |
| g = this._getTargetDensityUnits(d, f); | |
| a = this._getCombinedMax(a, b); | |
| b = Math.min.apply( | |
| Math, | |
| C( | |
| [], | |
| u( | |
| C( | |
| [this._totalAvailableElements.length, g], | |
| u(0 < a ? [a] : []), | |
| !1 | |
| ) | |
| ), | |
| !1 | |
| ) | |
| ); | |
| this._pubLog = { | |
| onePerViewport: e, | |
| targetDensity: d, | |
| targetDensityUnits: g, | |
| combinedMax: a, | |
| }; | |
| return { | |
| onePerViewport: e, | |
| targetAll: f, | |
| targetDensityUnits: g, | |
| combinedMax: a, | |
| numberOfUnits: b, | |
| }; | |
| }; | |
| c.prototype._determineOverrides = function (a) { | |
| var b = this; | |
| return a | |
| .filter(function (d) { | |
| var e = V(d.pageSelector); | |
| return ( | |
| "" === d.pageSelector || (e.elements && e.elements.length) | |
| ); | |
| }) | |
| .map(function (d) { | |
| return d[b._densityDevice]; | |
| }); | |
| }; | |
| c.prototype._shouldTargetAllEligible = function (a) { | |
| return a === this._densityMax; | |
| }; | |
| c.prototype._getTargetDensityUnits = function (a, b) { | |
| return b | |
| ? this._totalAvailableElements.length | |
| : Math.floor( | |
| (a * this._mainContentHeight) / (1 - a) / this._minDivHeight | |
| ) - this._recipeCount; | |
| }; | |
| c.prototype._getCombinedMax = function (a, b) { | |
| void 0 === b && (b = document); | |
| return w( | |
| a | |
| .filter(function (d) { | |
| try { | |
| var e = b.querySelector(d.elementSelector); | |
| } catch (f) {} | |
| return e; | |
| }) | |
| .map(function (d) { | |
| return ( | |
| Number(d.max) + Number(d.lazyMaxDefaulted ? 0 : d.lazyMax) | |
| ); | |
| }) | |
| .sort(function (d, e) { | |
| return e - d; | |
| })[0], | |
| 0 | |
| ); | |
| }; | |
| c.prototype._elementLargerThanMainContent = function (a) { | |
| return ( | |
| a.offsetHeight >= this._mainContentHeight && | |
| 1 < this._totalAvailableElements.length | |
| ); | |
| }; | |
| c.prototype._elementDisplayNone = function (a) { | |
| var b = window.getComputedStyle(a, null).display; | |
| return (b && "none" === b) || "none" === a.style.display; | |
| }; | |
| c.prototype._isBelowMaxes = function (a, b) { | |
| return ( | |
| this._adInjectionMap.map.length < a && | |
| this._adInjectionMap.map.length < b | |
| ); | |
| }; | |
| c.prototype._findElementsForAds = function (a, b, d, e, f, g) { | |
| var h = this; | |
| void 0 === g && (g = document); | |
| this._clsOptions.targetDensityLog = { | |
| onePerViewport: b, | |
| combinedMax: e, | |
| targetDensityUnits: f, | |
| targetDensityPercentage: this._pubLog.targetDensity, | |
| mainContentHeight: this._mainContentHeight, | |
| recipeCount: this._recipeCount, | |
| numberOfEls: this._totalAvailableElements.length, | |
| }; | |
| var k = function (l) { | |
| var n; | |
| try { | |
| for ( | |
| var p = Q(h._totalAvailableElements), r = p.next(); | |
| !r.done; | |
| r = p.next() | |
| ) { | |
| var m = r.value, | |
| t = m.dynamicAd, | |
| v = m.element; | |
| h._logDensityInfo(v, t.elementSelector, l); | |
| if ( | |
| !( | |
| (!d && h._elementLargerThanMainContent(v)) || | |
| h._elementDisplayNone(v) | |
| ) | |
| ) | |
| if (h._isBelowMaxes(e, f)) | |
| h._checkElementSpacing({ | |
| dynamicAd: t, | |
| element: v, | |
| insertEvery: l, | |
| targetAll: d, | |
| target: g, | |
| }); | |
| else break; | |
| } | |
| } catch (D) { | |
| var y = { error: D }; | |
| } finally { | |
| try { | |
| r && !r.done && (n = p.return) && n.call(p); | |
| } finally { | |
| if (y) throw y.error; | |
| } | |
| } | |
| !h._usedAbsoluteMinimum && | |
| 5 > h._smallerIncrementAttempts && | |
| (++h._smallerIncrementAttempts, k(h._getSmallerIncrement(l))); | |
| }; | |
| a = this._getInsertEvery(a, b, f); | |
| k(a); | |
| }; | |
| c.prototype._getSmallerIncrement = function (a) { | |
| a *= 0.6; | |
| a <= this._absoluteMinimumSpacingByDevice && | |
| ((a = this._absoluteMinimumSpacingByDevice), | |
| (this._usedAbsoluteMinimum = !0)); | |
| return a; | |
| }; | |
| c.prototype._insertDynamicStickySidebarAds = function (a, b, d, e) { | |
| void 0 === e && (e = document); | |
| var f = this.getElements(a.elementSelector, e).item(a.skip); | |
| if (null !== f) | |
| for ( | |
| var g = this._repeatDynamicStickySidebar(a, f), | |
| h = function (n) { | |
| var p = g[n], | |
| r = "".concat(p.location, "_").concat(p.sequence); | |
| if ( | |
| b.some(function (y) { | |
| return y.name === r; | |
| }) | |
| ) | |
| return "continue"; | |
| var m = k.getDynamicElementId(p), | |
| t = "adthrive-".concat( | |
| a.location.replace("_", "-").toLowerCase() | |
| ), | |
| v = "".concat(t, "-").concat(p.sequence); | |
| n = C( | |
| [ | |
| n !== g.length - 1 ? "adthrive-sticky-sidebar" : "", | |
| t, | |
| v, | |
| ], | |
| u(a.classNames), | |
| !1 | |
| ); | |
| if ((m = k.addAd(f, m, p.position, n))) | |
| (n = W(p, m)), | |
| n.length && | |
| (b.push({ | |
| clsDynamicAd: a, | |
| dynamicAd: p, | |
| element: m, | |
| sizes: n, | |
| name: r, | |
| infinite: e !== document, | |
| }), | |
| d.push({ location: p.location, element: m })); | |
| }, | |
| k = this, | |
| l = 0; | |
| l < g.length; | |
| l++ | |
| ) | |
| h(l); | |
| }; | |
| c.prototype._insertNonDensityAds = function (a, b, d, e) { | |
| void 0 === e && (e = document); | |
| var f = 0, | |
| g = 0, | |
| h = 0; | |
| 0 < a.spacing && (g = f = window.innerHeight * a.spacing); | |
| for ( | |
| var k = this._repeatDynamicAds(a), | |
| l = this.getElements(a.elementSelector, e), | |
| n = function (m) { | |
| if (h + 1 > k.length) return "break"; | |
| var t = l[m]; | |
| if (0 < f) { | |
| m = Z(t).bottom; | |
| if (m <= g) return "continue"; | |
| g = m + f; | |
| } | |
| m = k[h]; | |
| var v = "".concat(m.location, "_").concat(m.sequence); | |
| b.some(function (B) { | |
| return B.name === v; | |
| }) && (h += 1); | |
| var y = p.getDynamicElementId(m), | |
| D = "adthrive-".concat( | |
| a.location.replace("_", "-").toLowerCase() | |
| ), | |
| P = "".concat(D, "-").concat(a.sequence); | |
| D = C( | |
| [ | |
| "Sidebar" === a.location && | |
| a.sticky && | |
| a.sequence && | |
| 5 >= a.sequence | |
| ? "adthrive-sticky-sidebar" | |
| : "", | |
| p._stickyContainerRecipeExperiment.result && | |
| "Recipe" === a.location && | |
| a.sticky | |
| ? "adthrive-recipe-sticky-container" | |
| : "", | |
| D, | |
| P, | |
| ], | |
| u(a.classNames), | |
| !1 | |
| ); | |
| if ((t = p.addAd(t, y, a.position, D))) | |
| (y = W(m, t)), | |
| y.length && | |
| (b.push({ | |
| clsDynamicAd: a, | |
| dynamicAd: m, | |
| element: t, | |
| sizes: y, | |
| name: v, | |
| infinite: e !== document, | |
| }), | |
| d.push({ location: m.location, element: t }), | |
| "Recipe" === a.location && ++p._recipeCount, | |
| (h += 1)); | |
| }, | |
| p = this, | |
| r = a.skip; | |
| r < l.length && "break" !== n(r); | |
| r += a.every | |
| ); | |
| }; | |
| c.prototype._insertAds = function () { | |
| var a = this, | |
| b = []; | |
| this._adInjectionMap.filterUsed(); | |
| this._adInjectionMap.map.forEach(function (d, e) { | |
| var f = d.el, | |
| g = d.dynamicAd; | |
| d = d.target; | |
| e = Number(g.sequence) + e; | |
| var h = g.max; | |
| h = g.lazy && e > h; | |
| g.sequence = e; | |
| g.lazy = h; | |
| if ((f = a._addContentAd(f, g, d))) (g.used = !0), b.push(f); | |
| }); | |
| return b; | |
| }; | |
| c.prototype._getInsertEvery = function (a, b, d) { | |
| this._moreAvailableElementsThanUnitsToInject(d, a) | |
| ? ((this._usedAbsoluteMinimum = !1), | |
| (a = this._useWiderSpacing(d, a))) | |
| : ((this._usedAbsoluteMinimum = !0), | |
| (a = this._useSmallestSpacing(b))); | |
| return b && window.innerHeight > a ? window.innerHeight : a; | |
| }; | |
| c.prototype._useWiderSpacing = function (a, b) { | |
| return this._mainContentHeight / Math.min(a, b); | |
| }; | |
| c.prototype._useSmallestSpacing = function (a) { | |
| return a && | |
| window.innerHeight > this._absoluteMinimumSpacingByDevice | |
| ? window.innerHeight | |
| : this._absoluteMinimumSpacingByDevice; | |
| }; | |
| c.prototype._moreAvailableElementsThanUnitsToInject = function ( | |
| a, | |
| b | |
| ) { | |
| return ( | |
| this._totalAvailableElements.length > a || | |
| this._totalAvailableElements.length > b | |
| ); | |
| }; | |
| c.prototype._logDensityInfo = function (a, b, d) { | |
| a = this._pubLog; | |
| a.onePerViewport; | |
| a.targetDensity; | |
| a.combinedMax; | |
| }; | |
| c.prototype._checkElementSpacing = function (a) { | |
| var b = a.dynamicAd, | |
| d = a.element, | |
| e = a.insertEvery, | |
| f = a.targetAll; | |
| a = a.target; | |
| a = void 0 === a ? document : a; | |
| (this._isFirstAdInjected() || | |
| this._hasProperSpacing(d, b, f, e)) && | |
| this._markSpotForContentAd(d, z({}, b), a); | |
| }; | |
| c.prototype._isFirstAdInjected = function () { | |
| return !this._adInjectionMap.map.length; | |
| }; | |
| c.prototype._markSpotForContentAd = function (a, b, d) { | |
| void 0 === d && (d = document); | |
| this._adInjectionMap.add( | |
| a, | |
| this._getElementCoords( | |
| a, | |
| "beforebegin" === b.position || "afterbegin" === b.position | |
| ), | |
| b, | |
| d | |
| ); | |
| this._adInjectionMap.sort(); | |
| }; | |
| c.prototype._hasProperSpacing = function (a, b, d, e) { | |
| var f = | |
| "beforebegin" === b.position || "afterbegin" === b.position; | |
| b = "beforeend" === b.position || "afterbegin" === b.position; | |
| d = d || this._isElementFarEnoughFromOtherAdElements(a, e, f); | |
| f = b || this._isElementNotInRow(a, f); | |
| a = -1 === a.id.indexOf("AdThrive_".concat("Below_Post")); | |
| return d && f && a; | |
| }; | |
| c.prototype._isElementFarEnoughFromOtherAdElements = function ( | |
| a, | |
| b, | |
| d | |
| ) { | |
| a = this._getElementCoords(a, d); | |
| var e = !1; | |
| for ( | |
| d = 0; | |
| d < this._adInjectionMap.map.length && | |
| !((e = | |
| this._adInjectionMap.map[d + 1] && | |
| this._adInjectionMap.map[d + 1].coords), | |
| (e = | |
| a - b > this._adInjectionMap.map[d].coords && | |
| (!e || a + b < e))); | |
| d++ | |
| ); | |
| return e; | |
| }; | |
| c.prototype._isElementNotInRow = function (a, b) { | |
| var d = a.previousElementSibling, | |
| e = a.nextElementSibling; | |
| return (b = b | |
| ? (!d && e) || (d && a.tagName !== d.tagName) | |
| ? e | |
| : d | |
| : e) && 0 === a.getBoundingClientRect().height | |
| ? !0 | |
| : b | |
| ? a.getBoundingClientRect().top !== | |
| b.getBoundingClientRect().top | |
| : !0; | |
| }; | |
| c.prototype._calculateMainContentHeightAndAllElements = function ( | |
| a, | |
| b | |
| ) { | |
| void 0 === b && (b = document); | |
| a = u(va(a, this._adInjectionMap, b), 2); | |
| b = a[1]; | |
| this._mainContentDiv = a[0]; | |
| this._totalAvailableElements = b; | |
| a = this._mainContentDiv; | |
| b = void 0; | |
| void 0 === b && (b = "div #comments, section .comments"); | |
| this._mainContentHeight = (b = a.querySelector(b)) | |
| ? a.offsetHeight - b.offsetHeight | |
| : a.offsetHeight; | |
| }; | |
| c.prototype._getElementCoords = function (a, b) { | |
| void 0 === b && (b = !1); | |
| a = a.getBoundingClientRect(); | |
| return (b ? a.top : a.bottom) + window.scrollY; | |
| }; | |
| c.prototype._addContentAd = function (a, b, d) { | |
| var e, f; | |
| void 0 === d && (d = document); | |
| var g = null, | |
| h = "adthrive-".concat( | |
| b.location.replace("_", "-").toLowerCase() | |
| ), | |
| k = "".concat(h, "-").concat(b.sequence), | |
| l = | |
| (null === | |
| (f = | |
| null === | |
| (e = | |
| this._clsOptions.siteAds.adOptions | |
| .stickyContainerConfig) || void 0 === e | |
| ? void 0 | |
| : e.content) || void 0 === f | |
| ? 0 | |
| : f.enabled) && this._stickyContainerAdsExperiment.result | |
| ? "adthrive-sticky-container" | |
| : ""; | |
| if ( | |
| (a = this.addAd( | |
| a, | |
| this.getDynamicElementId(b), | |
| b.position, | |
| C([l, h, k], u(b.classNames), !1) | |
| )) | |
| ) | |
| (e = W(b, a)), | |
| e.length && | |
| ((a.style.minHeight = this.locationToMinHeight[b.location]), | |
| (g = "".concat(b.location, "_").concat(b.sequence)), | |
| (g = { | |
| clsDynamicAd: b, | |
| dynamicAd: b, | |
| element: a, | |
| sizes: e, | |
| name: g, | |
| infinite: d !== document, | |
| })); | |
| return g; | |
| }; | |
| c.prototype.getDynamicElementId = function (a) { | |
| return "" | |
| .concat("AdThrive", "_") | |
| .concat(a.location, "_") | |
| .concat(a.sequence, "_") | |
| .concat(this._device); | |
| }; | |
| c.prototype.getElements = function (a, b) { | |
| void 0 === b && (b = document); | |
| return b.querySelectorAll(a); | |
| }; | |
| c.prototype.addAd = function (a, b, d, e) { | |
| void 0 === e && (e = []); | |
| document.getElementById(b) || | |
| ((e = '<div id="' | |
| .concat(b, '" class="adthrive-ad ') | |
| .concat(e.join(" "), '"></div>')), | |
| a.insertAdjacentHTML(d, e)); | |
| return document.getElementById(b); | |
| }; | |
| c.prototype._repeatDynamicAds = function (a) { | |
| var b = [], | |
| d = | |
| this._removeRecipeCapExperiment.result && | |
| "Recipe" === a.location | |
| ? 99 | |
| : this.locationMaxLazySequence.get(a.location), | |
| e = a.lazy ? w(d, 0) : 0; | |
| d = a.max; | |
| var f = a.lazyMax; | |
| e = Math.max( | |
| d, | |
| 0 === e && a.lazy | |
| ? d + f | |
| : Math.min(Math.max(e - a.sequence + 1, 0), d + f) | |
| ); | |
| for (f = 0; f < e; f++) { | |
| var g = Number(a.sequence) + f, | |
| h = a.lazy && f >= d; | |
| b.push(z(z({}, a), { sequence: g, lazy: h })); | |
| } | |
| return b; | |
| }; | |
| c.prototype._repeatSpecificDynamicAds = function (a, b, d) { | |
| void 0 === d && (d = 0); | |
| for (var e = [], f = 0; f < b; f++) { | |
| var g = d + f; | |
| e.push(z(z({}, a), { sequence: g })); | |
| } | |
| return e; | |
| }; | |
| c.prototype._repeatDynamicStickySidebar = function (a, b) { | |
| var d, e, f, g; | |
| if ("Sidebar" !== a.location || 9 !== a.sequence || !a.sticky) | |
| return [a]; | |
| if (b) { | |
| var h = | |
| (null === | |
| (d = this._dynamicSidebarSlotsMinHeightExperiment) || | |
| void 0 === d | |
| ? void 0 | |
| : d.result) || | |
| (null === | |
| (f = | |
| null === | |
| (e = | |
| this._clsOptions.siteAds.adOptions.sidebarConfig) || | |
| void 0 === e | |
| ? void 0 | |
| : e.dynamicStickySidebar) || void 0 === f | |
| ? void 0 | |
| : f.minHeight); | |
| d = a.stickyOverlapSelector | |
| ? (null === | |
| (g = document.querySelector(a.stickyOverlapSelector)) || | |
| void 0 === g | |
| ? void 0 | |
| : g.offsetTop) || document.body.scrollHeight | |
| : document.body.scrollHeight; | |
| b = Sa(d, b, h, this._dynamicSidebarSlotsCapExperiment.result); | |
| return this._repeatSpecificDynamicAds(a, b, 9).map(function ( | |
| k | |
| ) { | |
| 9 !== k.sequence && (k.lazy = !0); | |
| return k; | |
| }); | |
| } | |
| return [a]; | |
| }; | |
| c.prototype._locationEnabled = function (a) { | |
| a = this._clsOptions.enabledLocations.includes(a.location); | |
| var b = | |
| (this._clsOptions.disableAds && | |
| this._clsOptions.disableAds.all) || | |
| document.body.classList.contains("adthrive-disable-all"), | |
| d = | |
| !document.body.classList.contains( | |
| "adthrive-disable-content" | |
| ) && | |
| !this._clsOptions.disableAds.reasons.has("content_plugin"); | |
| return a && !b && d; | |
| }; | |
| return c; | |
| })(), | |
| gb = (function (c) { | |
| function a(b, d) { | |
| var e = c.call(this, b, "ClsVideoInsertion") || this; | |
| e._videoConfig = b; | |
| e._clsOptions = d; | |
| e._IN_POST_SELECTOR = ".adthrive-video-player"; | |
| e._WRAPPER_BAR_HEIGHT = 36; | |
| e._playersAddedFromPlugin = []; | |
| d.removeVideoTitleWrapper && (e._WRAPPER_BAR_HEIGHT = 0); | |
| return e; | |
| } | |
| x(a, c); | |
| a.prototype.init = function () { | |
| this._initializePlayers(); | |
| }; | |
| a.prototype._wrapJWPlayerWithCLS = function (b, d, e) { | |
| void 0 === e && (e = 0); | |
| return b.parentNode | |
| ? ((d = this._createGenericCLSWrapper( | |
| 0.5625 * b.offsetWidth, | |
| d, | |
| e | |
| )), | |
| b.parentNode.insertBefore(d, b), | |
| d.appendChild(b), | |
| d) | |
| : null; | |
| }; | |
| a.prototype._createGenericCLSWrapper = function (b, d, e) { | |
| var f = document.createElement("div"); | |
| f.id = "cls-video-container-".concat(d); | |
| f.className = "adthrive"; | |
| f.style.minHeight = "".concat(b + e, "px"); | |
| return f; | |
| }; | |
| a.prototype._getTitleHeight = function (b) { | |
| b.innerText = "Title"; | |
| b.style.visibility = "hidden"; | |
| document.body.appendChild(b); | |
| var d = window.getComputedStyle(b), | |
| e = parseInt(d.height, 10), | |
| f = parseInt(d.marginTop, 10); | |
| d = parseInt(d.marginBottom, 10); | |
| document.body.removeChild(b); | |
| return Math.min(e + d + f, 50); | |
| }; | |
| a.prototype._initializePlayers = function () { | |
| var b = document.querySelectorAll(this._IN_POST_SELECTOR); | |
| b.length && this._initializeRelatedPlayers(b); | |
| this._shouldRunAutoplayPlayers() && | |
| this._determineAutoplayPlayers(); | |
| }; | |
| a.prototype._createStationaryRelatedPlayer = function (b, d) { | |
| var e = "mobile" === this._device ? [400, 225] : [640, 360], | |
| f = L.Video_In_Post_ClicktoPlay_SoundOn; | |
| d && | |
| b.mediaId && | |
| ((d = this._wrapJWPlayerWithCLS(d, b.mediaId)), | |
| this._playersAddedFromPlugin.push(b.mediaId), | |
| d && | |
| this._clsOptions.setInjectedVideoSlots({ | |
| playerId: b.playerId, | |
| playerName: f, | |
| playerSize: e, | |
| element: d, | |
| type: "stationaryRelated", | |
| })); | |
| }; | |
| a.prototype._createStickyRelatedPlayer = function (b, d) { | |
| var e = "mobile" === this._device ? [400, 225] : [640, 360], | |
| f = L.Video_Individual_Autoplay_SOff; | |
| this._stickyRelatedOnPage = !0; | |
| this._videoConfig.mobileStickyPlayerOnPage = | |
| "mobile" === this._device; | |
| if (d && b.position && b.mediaId) { | |
| var g = document.createElement("div"); | |
| d.insertAdjacentElement(b.position, g); | |
| d = document.createElement("h3"); | |
| d.style.margin = "10px 0"; | |
| d = this._getTitleHeight(d); | |
| d = this._wrapJWPlayerWithCLS( | |
| g, | |
| b.mediaId, | |
| this._WRAPPER_BAR_HEIGHT + d | |
| ); | |
| this._playersAddedFromPlugin.push(b.mediaId); | |
| d && | |
| this._clsOptions.setInjectedVideoSlots({ | |
| playlistId: b.playlistId, | |
| playerId: b.playerId, | |
| playerSize: e, | |
| playerName: f, | |
| element: g, | |
| type: "stickyRelated", | |
| }); | |
| } | |
| }; | |
| a.prototype._createPlaylistPlayer = function (b, d) { | |
| var e = b.playlistId, | |
| f = | |
| "mobile" === this._device | |
| ? L.Video_Coll_SOff_Smartphone | |
| : L.Video_Collapse_Autoplay_SoundOff, | |
| g = "mobile" === this._device ? [400, 225] : [640, 360]; | |
| this._videoConfig.mobileStickyPlayerOnPage = !0; | |
| var h = document.createElement("div"); | |
| d.insertAdjacentElement(b.position, h); | |
| d = this._wrapJWPlayerWithCLS(h, e, this._WRAPPER_BAR_HEIGHT); | |
| this._playersAddedFromPlugin.push("playlist-".concat(e)); | |
| d && | |
| this._clsOptions.setInjectedVideoSlots({ | |
| playlistId: b.playlistId, | |
| playerId: b.playerId, | |
| playerSize: g, | |
| playerName: f, | |
| element: h, | |
| type: "stickyPlaylist", | |
| }); | |
| }; | |
| a.prototype._isVideoAllowedOnPage = function () { | |
| var b = this._clsOptions.disableAds; | |
| if (b && b.video) { | |
| var d = ""; | |
| b.reasons.has("video_tag") | |
| ? (d = "video tag") | |
| : b.reasons.has("video_plugin") | |
| ? (d = "video plugin") | |
| : b.reasons.has("video_page") && (d = "command queue"); | |
| q.error( | |
| d ? "ClsVideoInsertionMigrated" : "ClsVideoInsertion", | |
| "isVideoAllowedOnPage", | |
| Error("DBP: Disabled by publisher via ".concat(d || "other")) | |
| ); | |
| return !1; | |
| } | |
| return this._clsOptions.videoDisabledFromPlugin ? !1 : !0; | |
| }; | |
| return a; | |
| })( | |
| (function (c) { | |
| function a(b, d) { | |
| var e = c.call(this) || this; | |
| e._videoConfig = b; | |
| e._component = d; | |
| e._stickyRelatedOnPage = !1; | |
| e._contextualMediaIds = []; | |
| b = void 0; | |
| void 0 === b && (b = navigator.userAgent); | |
| b = /Windows NT|Macintosh/i.test(b); | |
| e._device = b ? "desktop" : "mobile"; | |
| e._potentialPlayerMap = e.setPotentialPlayersMap(); | |
| return e; | |
| } | |
| x(a, c); | |
| a.prototype.setPotentialPlayersMap = function () { | |
| var b = this._videoConfig.players || [], | |
| d = this._filterPlayerMap(); | |
| b = b.filter(function (e) { | |
| return "stationaryRelated" === e.type && e.enabled; | |
| }); | |
| d.stationaryRelated = b; | |
| return (this._potentialPlayerMap = d); | |
| }; | |
| a.prototype._filterPlayerMap = function () { | |
| var b = this, | |
| d = this._videoConfig.players, | |
| e = { | |
| stickyRelated: [], | |
| stickyPlaylist: [], | |
| stationaryRelated: [], | |
| }; | |
| return d && d.length | |
| ? d | |
| .filter(function (f) { | |
| var g; | |
| return null === (g = f.devices) || void 0 === g | |
| ? void 0 | |
| : g.includes(b._device); | |
| }) | |
| .reduce(function (f, g) { | |
| f[g.type] || | |
| (q.event( | |
| b._component, | |
| "constructor", | |
| "Unknown Video Player Type detected", | |
| g.type | |
| ), | |
| (f[g.type] = [])); | |
| g.enabled && f[g.type].push(g); | |
| return f; | |
| }, e) | |
| : e; | |
| }; | |
| a.prototype._checkPlayerSelectorOnPage = function (b) { | |
| var d = this; | |
| b = this._potentialPlayerMap[b].map(function (e) { | |
| return { | |
| player: e, | |
| playerElement: d._getPlacementElement(e), | |
| }; | |
| }); | |
| return b.length ? b[0] : { player: null, playerElement: null }; | |
| }; | |
| a.prototype._getOverrideElement = function (b, d, e) { | |
| b && d | |
| ? ((e = document.createElement("div")), | |
| d.insertAdjacentElement(b.position, e)) | |
| : ((d = this._checkPlayerSelectorOnPage("stickyPlaylist")), | |
| (b = d.player), | |
| (d = d.playerElement), | |
| b && | |
| d && | |
| ((e = document.createElement("div")), | |
| d.insertAdjacentElement(b.position, e))); | |
| return e; | |
| }; | |
| a.prototype._shouldOverrideElement = function (b) { | |
| b = b.getAttribute("override-embed"); | |
| return "true" === b || "false" === b | |
| ? "true" === b | |
| : this._videoConfig.contextualSettings | |
| ? this._videoConfig.contextualSettings.overrideEmbedLocation | |
| : !1; | |
| }; | |
| a.prototype._checkPageSelector = function (b, d, e) { | |
| void 0 === e && (e = []); | |
| return b && d && 0 === e.length | |
| ? ("/" !== window.location.pathname && | |
| q.event( | |
| "VideoUtils", | |
| "getPlacementElement", | |
| Error("PSNF: ".concat(b, " does not exist on the page")) | |
| ), | |
| !1) | |
| : !0; | |
| }; | |
| a.prototype._getElementSelector = function (b, d, e) { | |
| if (d && d.length > e) return d[e]; | |
| q.event( | |
| "VideoUtils", | |
| "getPlacementElement", | |
| Error("ESNF: ".concat(b, " does not exist on the page")) | |
| ); | |
| return null; | |
| }; | |
| a.prototype._getPlacementElement = function (b) { | |
| var d = b.pageSelector, | |
| e = b.elementSelector; | |
| b = b.skip; | |
| var f = V(d), | |
| g = f.valid, | |
| h = f.elements; | |
| f = Y(f, ["valid", "elements"]); | |
| var k = ja(e), | |
| l = k.valid, | |
| n = k.elements; | |
| k = Y(k, ["valid", "elements"]); | |
| return "" === d || g | |
| ? l | |
| ? this._checkPageSelector(d, g, h) | |
| ? this._getElementSelector(e, n, b) || null | |
| : null | |
| : (q.error( | |
| "VideoUtils", | |
| "getPlacementElement", | |
| Error("".concat(e, " is not a valid selector")), | |
| k | |
| ), | |
| null) | |
| : (q.error( | |
| "VideoUtils", | |
| "getPlacementElement", | |
| Error("".concat(d, " is not a valid selector")), | |
| f | |
| ), | |
| null); | |
| }; | |
| a.prototype._getEmbeddedPlayerType = function (b) { | |
| ((b = b.getAttribute("data-player-type")) && "default" !== b) || | |
| (b = this._videoConfig.contextualSettings | |
| ? this._videoConfig.contextualSettings.defaultPlayerType | |
| : "static"); | |
| this._stickyRelatedOnPage && (b = "static"); | |
| return b; | |
| }; | |
| a.prototype._getUnusedMediaId = function (b) { | |
| return (b = b.getAttribute("data-video-id")) && | |
| !this._contextualMediaIds.includes(b) | |
| ? (this._contextualMediaIds.push(b), b) | |
| : !1; | |
| }; | |
| a.prototype._createRelatedPlayer = function (b, d, e) { | |
| "collapse" === d | |
| ? this._createCollapsePlayer(b, e) | |
| : "static" === d && this._createStaticPlayer(b, e); | |
| }; | |
| a.prototype._createCollapsePlayer = function (b, d) { | |
| var e = this._checkPlayerSelectorOnPage("stickyRelated"), | |
| f = e.player; | |
| e = e.playerElement; | |
| var g = f ? f : this._potentialPlayerMap.stationaryRelated[0]; | |
| g && g.playerId | |
| ? (this._shouldOverrideElement(d) && | |
| (d = this._getOverrideElement(f, e, d)), | |
| (d = | |
| document.querySelector( | |
| "#cls-video-container-".concat(b, " > div") | |
| ) || d), | |
| this._createStickyRelatedPlayer( | |
| z(z({}, g), { mediaId: b }), | |
| d | |
| )) | |
| : q.error( | |
| this._component, | |
| "_createCollapsePlayer", | |
| "No video player found" | |
| ); | |
| }; | |
| a.prototype._createStaticPlayer = function (b, d) { | |
| this._potentialPlayerMap.stationaryRelated.length && | |
| this._potentialPlayerMap.stationaryRelated[0].playerId | |
| ? this._createStationaryRelatedPlayer( | |
| z(z({}, this._potentialPlayerMap.stationaryRelated[0]), { | |
| mediaId: b, | |
| }), | |
| d | |
| ) | |
| : q.error( | |
| this._component, | |
| "_createStaticPlayer", | |
| "No video player found" | |
| ); | |
| }; | |
| a.prototype._shouldRunAutoplayPlayers = function () { | |
| return this._isVideoAllowedOnPage() && | |
| (this._potentialPlayerMap.stickyRelated.length || | |
| this._potentialPlayerMap.stickyPlaylist.length) | |
| ? !0 | |
| : !1; | |
| }; | |
| a.prototype._determineAutoplayPlayers = function () { | |
| var b = this._component, | |
| d = "VideoManagerComponent" === b, | |
| e = this._config; | |
| if (this._stickyRelatedOnPage) | |
| q.event( | |
| b, | |
| "stickyRelatedOnPage", | |
| (d && { | |
| device: e && e.context.device, | |
| isDesktop: this._device, | |
| }) || | |
| {} | |
| ); | |
| else { | |
| var f = this._checkPlayerSelectorOnPage("stickyPlaylist"), | |
| g = f.player; | |
| f = f.playerElement; | |
| g && g.playerId && g.playlistId && f | |
| ? this._createPlaylistPlayer(g, f) | |
| : q.event( | |
| b, | |
| "noStickyPlaylist", | |
| (d && { | |
| vendor: "none", | |
| device: e && e.context.device, | |
| isDesktop: this._device, | |
| }) || | |
| {} | |
| ); | |
| } | |
| }; | |
| a.prototype._initializeRelatedPlayers = function (b) { | |
| for (var d = 0; d < b.length; d++) { | |
| var e = b[d], | |
| f = e.offsetParent, | |
| g = this._getEmbeddedPlayerType(e); | |
| f && | |
| (f = this._getUnusedMediaId(e)) && | |
| this._createRelatedPlayer(f, g, e); | |
| } | |
| }; | |
| return a; | |
| })( | |
| (function () { | |
| function c() {} | |
| Object.defineProperty(c.prototype, "enabled", { | |
| get: function () { | |
| return !0; | |
| }, | |
| enumerable: !1, | |
| configurable: !0, | |
| }); | |
| return c; | |
| })() | |
| ) | |
| ), | |
| hb = (function (c) { | |
| function a() { | |
| return (null !== c && c.apply(this, arguments)) || this; | |
| } | |
| x(a, c); | |
| return a; | |
| })( | |
| (function () { | |
| function c() { | |
| this._map = []; | |
| } | |
| c.prototype.add = function (a, b, d, e) { | |
| void 0 === e && (e = document); | |
| this._map.push({ el: a, coords: b, dynamicAd: d, target: e }); | |
| }; | |
| Object.defineProperty(c.prototype, "map", { | |
| get: function () { | |
| return this._map; | |
| }, | |
| enumerable: !1, | |
| configurable: !0, | |
| }); | |
| c.prototype.sort = function () { | |
| this._map.sort(function (a, b) { | |
| return a.coords - b.coords; | |
| }); | |
| }; | |
| c.prototype.filterUsed = function () { | |
| this._map = this._map.filter(function (a) { | |
| return !a.dynamicAd.used; | |
| }); | |
| }; | |
| c.prototype.reset = function () { | |
| this._map = []; | |
| }; | |
| return c; | |
| })() | |
| ); | |
| try { | |
| (function () { | |
| var c = new ka(); | |
| c && | |
| c.enabled && | |
| (new fb(c, new hb()).start(), new gb(new Ea(c), c).init()); | |
| })(); | |
| } catch (c) { | |
| q.error("CLS", "pluginsertion-iife", c), | |
| window.adthriveCLS && (window.adthriveCLS.injectedFromPlugin = !1); | |
| } | |
| })(); | |
| </script> | |
| <script data-no-optimize="1" data-cfasync="false"> | |
| (function () { | |
| var clsElements = document.querySelectorAll("script[id^='cls-']"); | |
| window.adthriveCLS && clsElements && clsElements.length === 0 | |
| ? (window.adthriveCLS.injectedFromPlugin = false) | |
| : ""; | |
| })(); | |
| </script> | |
| <!-- End of AdThrive 3 --> | |
| <!-- Start of WPMU Dev 1 --> | |
| <script type="text/javascript"> | |
| var _paq = _paq || []; | |
| _paq.push(["trackPageView"]); | |
| (function () { | |
| var u = "https://stats1.wpmudev.com/"; | |
| _paq.push(["setTrackerUrl", u + "track/"]); | |
| _paq.push(["setSiteId", "111364"]); | |
| var d = document, | |
| g = d.createElement("script"), | |
| s = d.getElementsByTagName("script")[0]; | |
| g.type = "text/javascript"; | |
| g.async = true; | |
| g.defer = true; | |
| g.src = "https://stats.wpmucdn.com/analytics.js"; | |
| s.parentNode.insertBefore(g, s); | |
| })(); | |
| </script> | |
| <!-- End of WPMU Dev 1 --> | |
| <!-- Start of Contact Form 1 --> | |
| <script type="text/javascript"> | |
| document.addEventListener( | |
| "wpcf7mailsent", | |
| function (event) { | |
| if ("fb_pxl_code" in event.detail.apiResponse) { | |
| eval(event.detail.apiResponse.fb_pxl_code); | |
| } | |
| }, | |
| false | |
| ); | |
| </script> | |
| <div id="fb-pxl-ajax-code"></div> | |
| <!-- End of Contact Form 1 --> | |
| <!-- Start of AdThrive 4 --> | |
| <script> | |
| !(function () { | |
| "use strict"; | |
| !(function (e) { | |
| if (-1 === e.cookie.indexOf("__adblocker")) { | |
| e.cookie = | |
| "__adblocker=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/"; | |
| var t = new XMLHttpRequest(); | |
| t.open("GET", "https://ads.adthrive.com/abd/abd.js", !0), | |
| (t.onreadystatechange = function () { | |
| if (XMLHttpRequest.DONE === t.readyState) | |
| if (200 === t.status) { | |
| var a = e.createElement("script"); | |
| (a.innerHTML = t.responseText), | |
| e.getElementsByTagName("head")[0].appendChild(a); | |
| } else { | |
| var n = new Date(); | |
| n.setTime(n.getTime() + 3e5), | |
| (e.cookie = | |
| "__adblocker=true; expires=" + | |
| n.toUTCString() + | |
| "; path=/"); | |
| } | |
| }), | |
| t.send(); | |
| } | |
| })(document); | |
| })(); | |
| </script> | |
| <!-- End of AdThrive 4 --> | |
| <!-- Start of CafeMedia 1 --> | |
| <script> | |
| !(function () { | |
| "use strict"; | |
| var e; | |
| (e = document), | |
| (function () { | |
| var t, n; | |
| function r() { | |
| var t = e.createElement("script"); | |
| (t.src = | |
| "https://cafemedia-com.videoplayerhub.com/galleryplayer.js"), | |
| e.head.appendChild(t); | |
| } | |
| function a() { | |
| var t = e.cookie.match( | |
| "(^|[^;]+)\\s*__adblocker\\s*=\\s*([^;]+)" | |
| ); | |
| return t && t.pop(); | |
| } | |
| function c() { | |
| clearInterval(n); | |
| } | |
| return { | |
| init: function () { | |
| var e; | |
| "true" === (t = a()) | |
| ? r() | |
| : ((e = 0), | |
| (n = setInterval(function () { | |
| (100 !== e && "false" !== t) || c(), | |
| "true" === t && (r(), c()), | |
| (t = a()), | |
| e++; | |
| }, 50))); | |
| }, | |
| }; | |
| })().init(); | |
| })(); | |
| </script> | |
| <!-- End of CafeMedia 1 --> | |
| </body> | |
| </html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment