{"version":3,"file":"discourse-adplugin.js","names":["define","_exports","_component","_object","_computed","_service","_ajax","_ajaxError","_slotPosition","Object","defineProperty","value","default","AdComponent","dt7948","g","this","prototype","service","router","i","session","or","currentCategoryId","currentCategorySlug","alias","topicTagsDisableAds","isRestrictedCategory","currentRouteName","_impressionId","_clickTracked","_handleAdClick","trackClick","topicListTag","currentRoute","attributes","__type","id","n","computed","isPersonalMessage","parent","archetype","showToGroups","currentUser","show_to_groups","showOnCurrentPage","siteSettings","no_ads_for_categories","split","includes","toString","no_ads_for_tags","no_ads_for_personal_messages","no_ads_for_restricted_categories","isNthPost","get","isNthTopicListItem","didInsertElement","super","arguments","colspan","element","setAttribute","startVisibilityTracking","startClickTracking","ad_plugin_enable_tracking","addEventListener","trackImpression","payload","buildImpressionPayload","response","ajax","type","data","JSON","stringify","contentType","e","throwAjaxError","url","navigator","sendBeacon","site","isTesting","formData","FormData","append","csrfToken","catch","console","error","window","_observer","IntersectionObserver","entries","isIntersecting","disconnect","observe","willDestroyElement","removeEventListener","_helper","_utils","_adComponent","_adbutlerAd","_amazonProductLinks","_carbonadsAd","_googleAdsense","_googleDfpAd","_houseAd","_component2","_templateFactory","slotContenders","AD_COMPONENTS","adConfig","create","settingPrefix","enabledSetting","nthPost","desktop","mobile","displayCounts","houseAds","allAds","placement","indexNumber","postNumber","types","placeUnderscored","replace","settings","adsForSlot","adAvailable","keys","creatives","length","isBlank","notPlacingBetweenTopics","canBePlacedInBetweenTopics","parseInt","after_nth_topic","after_nth_post","push","forEach","adNetwork","config","name","settingNames","enabledNetworkSettingName","_isNetworkAvailable","currentPostNumber","positionToPlace","_shouldPlaceAdInSlot","mobileView","undefined","AdSlot","c","availableAdTypes","adComponentNames","houseAdsSkipped","house_ads_frequency","networkNames","filter","x","adComponents","map","setComponentTemplate","createTemplateFactory","block","moduleName","scope","array","isStrictMode","tagName","_runloop","_rsvp","_environment","_loadScript","_loaded","_promise","_c","AdbutlerAd","divs","publisherId","init","dimensions","configKey","className","dimClassName","set","zoneId","divId","adbutler_publisher_id","_triggerAds","adserverHostname","adbutler_adserver_hostname","resolve","scriptTag","then","loadAdbutler","abkw","AdButler","ads","handler","opt","register","place","pop","keywords","domain","click","bind","scheduleOnce","showAdbutlerAds","show_adbutler_ads","showAd","showAfterPost","adbutler_nth_post","ad_plugin_impression","ad_type","ad_types","adbutler","ad_plugin_house_ad_id","_template","_discourseI18n","AmazonProductLinks","and","amazon_topic_list_top_src_code","amazon_topic_list_top_ad_width_code","amazon_topic_list_top_ad_height_code","amazon_mobile_topic_list_top_src_code","amazon_mobile_topic_list_top_ad_width_code","amazon_mobile_topic_list_top_ad_height_code","amazon_topic_above_post_stream_src_code","amazon_topic_above_post_stream_ad_width_code","amazon_topic_above_post_stream_ad_height_code","amazon_mobile_topic_above_post_stream_src_code","amazon_mobile_topic_above_post_stream_ad_width_code","amazon_mobile_topic_above_post_stream_ad_height_code","amazon_topic_above_suggested_src_code","amazon_topic_above_suggested_ad_width_code","amazon_topic_above_suggested_ad_height_code","amazon_mobile_topic_above_suggested_src_code","amazon_mobile_topic_above_suggested_ad_width_code","amazon_mobile_topic_above_suggested_ad_height_code","amazon_post_bottom_src_code","amazon_post_bottom_ad_width_code","amazon_post_bottom_ad_height_code","amazon_mobile_post_bottom_src_code","amazon_mobile_post_bottom_ad_width_code","amazon_mobile_post_bottom_ad_height_code","adWrapperStyle","trustHTML","amazon_width","amazon_height","adWrapperStyleMobile","mobile_amazon_width","mobile_amazon_height","adTitleStyleMobile","userInput","user_input","userInputMobile","user_input_mobile","showAmazonAds","show_amazon_ads","amazon_nth_post_code","amazon","i18n","CarbonadsAd","serve_id","carbonads_serve_id","carbonads_placement","showCarbonAds","show_carbon_ads","carbon","_concatClass","renderCounts","DESKTOP_SETTINGS","code","sizes","MOBILE_SETTINGS","GoogleAdsense","loadedGoogletag","publisher_id","ad_width","ad_height","adRequested","size","startsWith","w","substring","trim","isNaN","parseAdWidth","h","parseAdHeight","adsense_publisher_code","adsenseSrc","document","location","protocol","loadAdsense","isDestroyed","isDestroying","adsbygoogle","ex","isResponsive","isFluid","classForSlot","autoAdFormat","adInsStyle","showAdsenseAds","show_adsense_ads","adsense_nth_post_code","adsense","_object2","nextSlotNum","splitHeightInt","valueParse","final","keyParse","word","key","targeting_keys","targeting_values","defineSlot","isMobile","width","height","categoryTarget","dfp_publisher_id","ad","dfp_publisher_id_mobile","googletag","key_array","value_array","adSlot","setTargeting","custom_targeting","addService","pubads","GoogleDfpAd","lastAdRefresh","sizeObj","getWidthAndHeight","slotNum","adUnitClass","showDfpAds","show_dfp_ads","dfp_nth_post_code","shouldRefreshAd","Date","updated","slot","categorySlug","cmd","refresh","on","_initGoogleDFP","dfpSrc","log","enableSingleRequest","disableInitialLoad","setForceSafeFrame","enableServices","loadGoogle","display","dfp","willRender","cleanup","destroySlots","adIndex","topic_list_top","topic_above_post_stream","topic_above_suggested","post_bottom","topic_list_between","HouseAd","adHtml","currentAd","event","link","target","closest","href","colspanAttribute","showAfterTopicListItem","chooseAdHtml","filteredAds","adsNamesForSlot","adName","hasCategoryScope","category_ids","hasRouteScope","ad_plugin_routes_enabled","routes","matchesCategory","matchesRoute","html","refreshAd","house","adNames","Math","floor","random","_adSlot","_templateOnly","PostBottomAd","DiscourseAdplugin","shouldRender","args","context","index","every","currentIndexPosition","_pluginApi","PLUGIN_ID","initialize","container","lookup","admin","withPluginApi","api","setAdminPluginIcon","addAdminPluginConfigurationNav","label","route","_site","_postBottomAd","renderAfterWrapperOutlet","customizePost","messageBus","channel","subscribe","houseAdsSettings","currentProp"],"sources":["discourse/plugins/discourse-adplugin/discourse/components/ad-component.js","discourse/plugins/discourse-adplugin/discourse/components/ad-slot.js","discourse/plugins/discourse-adplugin/discourse/components/adbutler-ad.js","discourse/plugins/discourse-adplugin/discourse/components/amazon-product-links.js","discourse/plugins/discourse-adplugin/discourse/components/carbonads-ad.js","discourse/plugins/discourse-adplugin/discourse/components/google-adsense.js","discourse/plugins/discourse-adplugin/discourse/components/google-dfp-ad.js","discourse/plugins/discourse-adplugin/discourse/components/house-ad.js","discourse/plugins/discourse-adplugin/discourse/components/post-bottom-ad.js","discourse/plugins/discourse-adplugin/discourse/connectors/after-topic-list-item/discourse-adplugin.js","discourse/plugins/discourse-adplugin/discourse/connectors/discovery-list-container-top/discourse-adplugin.js","discourse/plugins/discourse-adplugin/discourse/connectors/topic-above-post-stream/discourse-adplugin.js","discourse/plugins/discourse-adplugin/discourse/connectors/topic-above-suggested/discourse-adplugin.js","discourse/plugins/discourse-adplugin/discourse/helpers/slot-position.js","discourse/plugins/discourse-adplugin/discourse/initializers/adplugin-admin-plugin-configuration-nav.js","discourse/plugins/discourse-adplugin/discourse/initializers/initialize-ad-plugin.js"],"sourcesContent":["define(\"discourse/plugins/discourse-adplugin/discourse/components/ad-component\", [\"exports\", \"@ember/component\", \"@ember/object\", \"@ember/object/computed\", \"@ember/service\", \"discourse/lib/ajax\", \"discourse/lib/ajax-error\", \"discourse/plugins/discourse-adplugin/discourse/helpers/slot-position\"], function (_exports, _component, _object, _computed, _service, _ajax, _ajaxError, _slotPosition) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  /* eslint-disable ember/no-classic-components, ember/require-tagless-components */\n\n  class AdComponent extends _component.default {\n    static {\n      dt7948.g(this.prototype, \"router\", [_service.service]);\n    }\n    #router = (dt7948.i(this, \"router\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"session\", [_service.service]);\n    }\n    #session = (dt7948.i(this, \"session\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"currentCategoryId\", [(0, _computed.or)(\"router.currentRoute.attributes.category.id\", \"router.currentRoute.parent.attributes.category_id\")]);\n    }\n    #currentCategoryId = (dt7948.i(this, \"currentCategoryId\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"currentCategorySlug\", [(0, _computed.or)(\"router.currentRoute.attributes.category.slug\", \"router.currentRoute.parent.attributes.category.slug\")]);\n    }\n    #currentCategorySlug = (dt7948.i(this, \"currentCategorySlug\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"topicTagsDisableAds\", [(0, _computed.alias)(\"router.currentRoute.parent.attributes.tags_disable_ads\")]);\n    }\n    #topicTagsDisableAds = (dt7948.i(this, \"topicTagsDisableAds\"), void 0); // Server needs to compute this in case hidden tags are being used.\n    static {\n      dt7948.g(this.prototype, \"isRestrictedCategory\", [(0, _computed.or)(\"router.currentRoute.attributes.category.read_restricted\", \"router.currentRoute.parent.attributes.category.read_restricted\")]);\n    }\n    #isRestrictedCategory = (dt7948.i(this, \"isRestrictedCategory\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"currentRouteName\", [(0, _computed.alias)(\"router.currentRoute.name\")]);\n    }\n    #currentRouteName = (dt7948.i(this, \"currentRouteName\"), void 0);\n    _impressionId = null;\n    _clickTracked = false;\n    _handleAdClick = () => {\n      this.trackClick();\n    };\n    get topicListTag() {\n      if (this.router?.currentRoute?.attributes?.__type === \"tag\" && this.router?.currentRoute?.attributes?.id) {\n        return this.router?.currentRoute?.attributes?.id;\n      }\n    }\n    static {\n      dt7948.n(this.prototype, \"topicListTag\", [(0, _object.computed)(\"router.currentRoute.attributes.__type\", \"router.currentRoute.attributes.id\")]);\n    }\n    get isPersonalMessage() {\n      return this.router?.currentRoute?.parent?.attributes?.archetype === \"private_message\";\n    }\n    static {\n      dt7948.n(this.prototype, \"isPersonalMessage\", [(0, _object.computed)(\"router.currentRoute.parent.attributes.archetype\")]);\n    }\n    get showToGroups() {\n      if (!this.currentUser) {\n        return true;\n      }\n      return this.currentUser.show_to_groups;\n    }\n    static {\n      dt7948.n(this.prototype, \"showToGroups\", [_object.computed]);\n    }\n    get showOnCurrentPage() {\n      return !this.topicTagsDisableAds && (!this.currentCategoryId || !this.siteSettings.no_ads_for_categories || !this.siteSettings.no_ads_for_categories.split(\"|\").includes(this.currentCategoryId.toString())) && (!this.topicListTag || !this.siteSettings.no_ads_for_tags || !this.siteSettings.no_ads_for_tags.split(\"|\").includes(this.topicListTag)) && (!this.isPersonalMessage || !this.siteSettings.no_ads_for_personal_messages) && (!this.isRestrictedCategory || !this.siteSettings.no_ads_for_restricted_categories);\n    }\n    static {\n      dt7948.n(this.prototype, \"showOnCurrentPage\", [(0, _object.computed)(\"currentCategoryId\", \"topicTagsDisableAds\", \"topicListTag\", \"isPersonalMessage\", \"isRestrictedCategory\")]);\n    }\n    isNthPost(n) {\n      return (0, _slotPosition.isNthPost)(n, this.get(\"postNumber\"));\n    }\n    isNthTopicListItem(n) {\n      return (0, _slotPosition.isNthTopicListItem)(n, this.get(\"indexNumber\"));\n    }\n    didInsertElement() {\n      super.didInsertElement?.(...arguments);\n      if (this.colspan && this.element) {\n        this.element.setAttribute(\"colspan\", this.colspan);\n      }\n      if (!this.get(\"showAd\")) {\n        return;\n      }\n      this.startVisibilityTracking();\n      this.startClickTracking();\n    }\n    startClickTracking() {\n      if (!this.siteSettings.ad_plugin_enable_tracking) {\n        return;\n      }\n      this.element.addEventListener(\"click\", this._handleAdClick);\n    }\n    async trackImpression() {\n      const payload = this.buildImpressionPayload?.();\n      if (!payload) {\n        return;\n      }\n      try {\n        const response = await (0, _ajax.ajax)(\"/ad_plugin/ad_impressions\", {\n          type: \"POST\",\n          data: JSON.stringify(payload),\n          contentType: \"application/json; charset=utf-8\"\n        });\n        this._impressionId = response.id;\n      } catch (e) {\n        (0, _ajaxError.throwAjaxError)(e);\n      }\n    }\n    trackClick() {\n      if (!this._impressionId || this._clickTracked) {\n        return;\n      }\n      this._clickTracked = true;\n      const url = `/ad_plugin/ad_impressions/${this._impressionId}`;\n      if (navigator.sendBeacon && !this.site?.isTesting) {\n        const formData = new FormData();\n        formData.append(\"authenticity_token\", this.session.csrfToken);\n        navigator.sendBeacon(url, formData);\n      } else {\n        (0, _ajax.ajax)(url, {\n          type: \"PATCH\",\n          contentType: \"application/json; charset=utf-8\"\n        }).catch(e => {\n          // eslint-disable-next-line no-console\n          console.error(\"Failed to track ad click:\", e);\n        });\n      }\n    }\n    startVisibilityTracking() {\n      if (!this.siteSettings.ad_plugin_enable_tracking) {\n        return;\n      }\n      if (\"IntersectionObserver\" in window) {\n        this._observer = new IntersectionObserver(entries => {\n          if (entries[0].isIntersecting) {\n            this.trackImpression();\n            this._observer.disconnect();\n          }\n        });\n        this._observer.observe(this.element);\n      } else {\n        this.trackImpression();\n      }\n    }\n    willDestroyElement() {\n      super.willDestroyElement?.(...arguments);\n      if (this._observer) {\n        this._observer.disconnect();\n      }\n      if (this.element) {\n        this.element.removeEventListener(\"click\", this._handleAdClick);\n      }\n    }\n  }\n  _exports.default = AdComponent;\n});","define(\"discourse/plugins/discourse-adplugin/discourse/components/ad-slot\", [\"exports\", \"@ember/helper\", \"@ember/object\", \"@ember/service\", \"@ember/utils\", \"@ember-decorators/component\", \"discourse/plugins/discourse-adplugin/discourse/helpers/slot-position\", \"discourse/plugins/discourse-adplugin/discourse/components/ad-component\", \"discourse/plugins/discourse-adplugin/discourse/components/adbutler-ad\", \"discourse/plugins/discourse-adplugin/discourse/components/amazon-product-links\", \"discourse/plugins/discourse-adplugin/discourse/components/carbonads-ad\", \"discourse/plugins/discourse-adplugin/discourse/components/google-adsense\", \"discourse/plugins/discourse-adplugin/discourse/components/google-dfp-ad\", \"discourse/plugins/discourse-adplugin/discourse/components/house-ad\", \"@ember/component\", \"@ember/template-factory\"], function (_exports, _helper, _object, _service, _utils, _component, _slotPosition, _adComponent, _adbutlerAd, _amazonProductLinks, _carbonadsAd, _googleAdsense, _googleDfpAd, _houseAd, _component2, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  _exports.slotContenders = slotContenders;\n  const AD_COMPONENTS = {\n    \"house-ad\": _houseAd.default,\n    \"google-adsense\": _googleAdsense.default,\n    \"google-dfp-ad\": _googleDfpAd.default,\n    \"amazon-product-links\": _amazonProductLinks.default,\n    \"carbonads-ad\": _carbonadsAd.default,\n    \"adbutler-ad\": _adbutlerAd.default\n  };\n  const adConfig = _object.default.create({\n    \"google-adsense\": {\n      settingPrefix: \"adsense\",\n      enabledSetting: \"adsense_publisher_code\",\n      nthPost: \"adsense_nth_post_code\"\n    },\n    \"google-dfp-ad\": {\n      settingPrefix: \"dfp\",\n      enabledSetting: \"dfp_publisher_id\",\n      nthPost: \"dfp_nth_post_code\"\n    },\n    \"amazon-product-links\": {\n      settingPrefix: \"amazon\",\n      enabledSetting: false,\n      nthPost: \"amazon_nth_post_code\",\n      desktop: {\n        \"topic-list-top\": \"amazon_topic_list_top_src_code\",\n        \"post-bottom\": \"amazon_post_bottom_src_code\",\n        \"topic-above-post-stream\": \"amazon_topic_above_post_stream_src_code\",\n        \"topic-above-suggested\": \"amazon_topic_above_suggested_src_code\"\n      },\n      mobile: {\n        \"topic-list-top\": \"amazon_mobile_topic_list_top_src_code\",\n        \"post-bottom\": \"amazon_mobile_post_bottom_src_code\",\n        \"topic-above-post-stream\": \"amazon_mobile_topic_above_post_stream_src_code\",\n        \"topic-above-suggested\": \"amazon_mobile_topic_above_suggested_src_code\"\n      }\n    },\n    \"carbonads-ad\": {\n      settingPrefix: \"carbonads\",\n      enabledSetting: \"carbonads_serve_id\",\n      desktop: {\n        \"topic-list-top\": \"carbonads_topic_list_top_enabled\",\n        \"post-bottom\": false,\n        \"topic-above-post-stream\": \"carbonads_above_post_stream_enabled\",\n        \"topic-above-suggested\": false\n      }\n    },\n    \"adbutler-ad\": {\n      settingPrefix: \"adbutler\",\n      enabledSetting: \"adbutler_publisher_id\",\n      desktop: {\n        \"topic-list-top\": \"adbutler_topic_list_top_zone_id\",\n        \"post-bottom\": \"adbutler_post_bottom_zone_id\",\n        \"topic-above-post-stream\": \"adbutler_topic_above_post_stream_zone_id\",\n        \"topic-above-suggested\": \"adbutler_topic_above_suggested_zone_id\"\n      },\n      mobile: {\n        \"topic-list-top\": \"adbutler_mobile_topic_list_top_zone_id\",\n        \"post-bottom\": \"adbutler_mobile_post_bottom_zone_id\",\n        \"topic-above-post-stream\": \"adbutler_mobile_topic_above_post_stream_zone_id\",\n        \"topic-above-suggested\": \"adbutler_mobile_topic_above_suggested_zone_id\"\n      }\n    }\n  });\n  const displayCounts = {\n    houseAds: 0,\n    allAds: 0\n  };\n  function _isNetworkAvailable(siteSettings, enabledNetworkSettingName) {\n    // False means there's no setting to enable or disable this ad network.\n    // Assume it's always enabled.\n    if (enabledNetworkSettingName === false) {\n      return true;\n    } else {\n      return enabledNetworkSettingName && !(0, _utils.isBlank)(siteSettings[enabledNetworkSettingName]);\n    }\n  }\n  function _shouldPlaceAdInSlot(siteSettings, currentPostNumber, positionToPlace) {\n    return !currentPostNumber || !positionToPlace || (0, _slotPosition.isNthPost)(parseInt(siteSettings[positionToPlace], 10), currentPostNumber);\n  }\n  function slotContenders(site, siteSettings, placement, indexNumber, postNumber) {\n    let types = [];\n    const houseAds = site.get(\"house_creatives\"),\n      placeUnderscored = placement.replace(/-/g, \"_\");\n    if (houseAds && houseAds.settings) {\n      const adsForSlot = houseAds.settings[placeUnderscored];\n      const adAvailable = Object.keys(houseAds.creatives).length > 0 && !(0, _utils.isBlank)(adsForSlot);\n      // postNumber and indexNumber are both null for topic-list-top, topic-above-post-stream,\n      // and topic-above-suggested placements. Assume we want to place an ad outside the topic list.\n      const notPlacingBetweenTopics = !postNumber && !indexNumber;\n      const canBePlacedInBetweenTopics = placeUnderscored === \"topic_list_between\" && (0, _slotPosition.isNthTopicListItem)(parseInt(houseAds.settings.after_nth_topic, 10), indexNumber);\n      if (adAvailable && (notPlacingBetweenTopics || canBePlacedInBetweenTopics || (0, _slotPosition.isNthPost)(parseInt(houseAds.settings.after_nth_post, 10), postNumber))) {\n        types.push(\"house-ad\");\n      }\n    }\n    Object.keys(adConfig).forEach(adNetwork => {\n      const config = adConfig[adNetwork];\n      let settingNames = null,\n        name;\n      if (_isNetworkAvailable(siteSettings, config.enabledSetting) && _shouldPlaceAdInSlot(siteSettings, postNumber, config.nthPost)) {\n        if (site.mobileView) {\n          settingNames = config.mobile || config.desktop;\n        } else {\n          settingNames = config.desktop;\n        }\n        if (settingNames) {\n          name = settingNames[placement];\n        }\n        if (name === undefined) {\n          // follows naming convention: prefix_(mobile_)_{placement}_code\n          name = `${config.settingPrefix}_${site.mobileView ? \"mobile_\" : \"\"}${placeUnderscored}_code`;\n        }\n        if (name !== false && siteSettings[name] !== false && !(0, _utils.isBlank)(siteSettings[name])) {\n          types.push(adNetwork);\n        }\n      }\n    });\n    return types;\n  }\n  const AdSlot = dt7948.c(class AdSlot extends _adComponent.default {\n    static {\n      dt7948.g(this.prototype, \"router\", [_service.service]);\n    }\n    #router = (dt7948.i(this, \"router\"), void 0);\n    /**\n    * For a given ad placement and optionally a post number if in between posts,\n    * list all ad network names that are configured to show there.\n    */\n    get availableAdTypes() {\n      return slotContenders(this.site, this.siteSettings, this.placement, this.indexNumber, this.postNumber);\n    }\n    /**\n    * Returns a list of the names of ad components that should be rendered\n    * in the given ad placement. It handles alternating between house ads\n    * and other ad networks.\n    *\n    * Depends on `router.currentRoute` so that we refresh ads when navigating around.\n    */\n    static {\n      dt7948.n(this.prototype, \"availableAdTypes\", [(0, _object.computed)(\"placement\", \"postNumber\", \"indexNumber\")]);\n    }\n    get adComponentNames() {\n      if (!this.availableAdTypes.includes(\"house-ad\") || this.availableAdTypes.length === 1) {\n        // Current behaviour is to allow multiple ads from different networks\n        // to show in the same place. We could change this to choose one somehow.\n        return this.availableAdTypes;\n      }\n      const houseAds = this.site.get(\"house_creatives\");\n      let houseAdsSkipped = false;\n      if (houseAds.settings.house_ads_frequency === 100) {\n        // house always wins\n        return [\"house-ad\"];\n      } else if (houseAds.settings.house_ads_frequency > 0) {\n        // show house ads the given percent of the time\n        if (displayCounts.allAds === 0 || 100 * displayCounts.houseAds / displayCounts.allAds < houseAds.settings.house_ads_frequency) {\n          displayCounts.houseAds += 1;\n          displayCounts.allAds += 1;\n          return [\"house-ad\"];\n        } else {\n          houseAdsSkipped = true;\n        }\n      }\n      const networkNames = this.availableAdTypes.filter(x => x !== \"house-ad\");\n      if (houseAdsSkipped) {\n        displayCounts.allAds += networkNames.length;\n      }\n      return networkNames;\n    }\n    static {\n      dt7948.n(this.prototype, \"adComponentNames\", [(0, _object.computed)(\"placement\", \"availableAdTypes\", \"router.currentRoute\")]);\n    }\n    get adComponents() {\n      return this.adComponentNames.map(name => AD_COMPONENTS[name]);\n    }\n    static {\n      (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n      /*\n        {{#each this.adComponents as |Ad|}}\n        {{! Trick to force full destroy/re-render of component when route changes }}\n        {{#each (array this.router.currentRoute)}}\n          <Ad\n            @placement={{this.placement}}\n            @category={{this.category}}\n            @postNumber={{this.postNumber}}\n            @indexNumber={{this.indexNumber}}\n            @tagName={{this.childTagName}}\n            @colspan={{this.colspan}}\n          />\n        {{/each}}\n      {{/each}}\n      */\n      {\n        \"id\": \"bbqp3S2l\",\n        \"block\": \"[[[42,[28,[31,1],[[28,[31,1],[[30,0,[\\\"adComponents\\\"]]],null]],null],null,[[[42,[28,[31,1],[[28,[31,1],[[28,[32,0],[[30,0,[\\\"router\\\",\\\"currentRoute\\\"]]],null]],null]],null],null,[[[1,\\\"    \\\"],[8,[30,1],null,[[\\\"@placement\\\",\\\"@category\\\",\\\"@postNumber\\\",\\\"@indexNumber\\\",\\\"@tagName\\\",\\\"@colspan\\\"],[[30,0,[\\\"placement\\\"]],[30,0,[\\\"category\\\"]],[30,0,[\\\"postNumber\\\"]],[30,0,[\\\"indexNumber\\\"]],[30,0,[\\\"childTagName\\\"]],[30,0,[\\\"colspan\\\"]]]],null],[1,\\\"\\\\n\\\"]],[]],null]],[1]],null]],[\\\"Ad\\\"],[\\\"each\\\",\\\"-track-array\\\"]]\",\n        \"moduleName\": \"/var/www/discourse/frontend/discourse/discourse/plugins/discourse-adplugin/discourse/components/ad-slot.js\",\n        \"scope\": () => [_helper.array],\n        \"isStrictMode\": true\n      }), this);\n    }\n  }, [(0, _component.tagName)(\"\")]);\n  var _default = _exports.default = AdSlot;\n});","define(\"discourse/plugins/discourse-adplugin/discourse/components/adbutler-ad\", [\"exports\", \"@ember/object\", \"@ember/runloop\", \"rsvp\", \"discourse/lib/environment\", \"discourse/lib/load-script\", \"discourse/plugins/discourse-adplugin/discourse/components/ad-component\", \"@ember/component\", \"@ember/template-factory\"], function (_exports, _object, _runloop, _rsvp, _environment, _loadScript, _adComponent, _component, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  let _loaded = false,\n    _promise = null,\n    _c = 0;\n  function loadAdbutler(adserverHostname) {\n    if (_loaded) {\n      return _rsvp.default.resolve();\n    }\n    if (_promise) {\n      return _promise;\n    }\n    _promise = (0, _loadScript.default)(\"https://\" + adserverHostname + \"/app.js\", {\n      scriptTag: true\n    }).then(function () {\n      _loaded = true;\n    });\n    return _promise;\n  }\n  class AdbutlerAd extends _adComponent.default {\n    divs = null;\n    publisherId = null;\n    init() {\n      let dimensions = [728, 90];\n      let configKey = \"adbutler_\";\n      let className = \"adbutler-\";\n      let dimClassName = \"adbutler-ad\";\n      this.set(\"divs\", []);\n      if (this.site.mobileView) {\n        dimensions = [320, 50];\n        configKey += \"mobile_\";\n        className += \"mobile-\";\n        dimClassName = \"adbutler-mobile-ad\";\n      }\n      configKey += this.get(\"placement\").replace(/-/g, \"_\") + \"_zone_id\";\n      this.set(\"configKey\", configKey);\n      className += this.get(\"placement\");\n      this.set(\"className\", className + \" \" + dimClassName);\n      let zoneId = this.siteSettings[configKey];\n      this.set(\"zoneId\", zoneId);\n      let divId = \"placement-\" + zoneId + \"-\" + _c;\n      this.set(\"divId\", divId);\n      let publisherId = this.siteSettings.adbutler_publisher_id;\n      this.set(\"publisherId\", publisherId);\n      _c++;\n      this.divs.push({\n        divId,\n        publisherId,\n        zoneId,\n        dimensions\n      });\n      super.init();\n    }\n    _triggerAds() {\n      if ((0, _environment.isTesting)()) {\n        return; // Don't load external JS during tests\n      }\n      const adserverHostname = this.siteSettings.adbutler_adserver_hostname;\n      loadAdbutler(adserverHostname).then(function () {\n        if (this.divs.length > 0) {\n          let abkw = window.abkw || \"\";\n          window.AdButler.ads.push({\n            handler: function (opt) {\n              window.AdButler.register(opt.place.publisherId, opt.place.zoneId, opt.place.dimensions, opt.place.divId, opt);\n            },\n            opt: {\n              place: this.divs.pop(),\n              keywords: abkw,\n              domain: adserverHostname,\n              click: \"CLICK_MACRO_PLACEHOLDER\"\n            }\n          });\n        }\n      }.bind(this));\n    }\n    didInsertElement() {\n      super.didInsertElement();\n      (0, _runloop.scheduleOnce)(\"afterRender\", this, this._triggerAds);\n    }\n    get showAdbutlerAds() {\n      if (!this.currentUser) {\n        return true;\n      }\n      return this.currentUser.show_adbutler_ads;\n    }\n    static {\n      dt7948.n(this.prototype, \"showAdbutlerAds\", [_object.computed]);\n    }\n    get showAd() {\n      return this.publisherId && this.showAdbutlerAds && this.showToGroups && this.showAfterPost && this.showOnCurrentPage;\n    }\n    static {\n      dt7948.n(this.prototype, \"showAd\", [(0, _object.computed)(\"publisherId\", \"showAdbutlerAds\", \"showToGroups\", \"showAfterPost\", \"showOnCurrentPage\")]);\n    }\n    get showAfterPost() {\n      if (!this.postNumber) {\n        return true;\n      }\n      return this.isNthPost(parseInt(this.siteSettings.adbutler_nth_post, 10));\n    }\n    static {\n      dt7948.n(this.prototype, \"showAfterPost\", [(0, _object.computed)(\"postNumber\")]);\n    }\n    buildImpressionPayload() {\n      return {\n        ad_plugin_impression: {\n          ad_type: this.site.ad_types.adbutler,\n          ad_plugin_house_ad_id: null,\n          placement: this.placement\n        }\n      };\n    }\n    static {\n      (0, _component.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n      /*\n        {{#if this.showAd}}\n        <div id={{this.divId}} class={{this.className}}></div>\n      {{/if}}\n      */\n      {\n        \"id\": \"Kz4V35Hi\",\n        \"block\": \"[[[41,[30,0,[\\\"showAd\\\"]],[[[1,\\\"  \\\"],[10,0],[15,1,[30,0,[\\\"divId\\\"]]],[15,0,[30,0,[\\\"className\\\"]]],[12],[13],[1,\\\"\\\\n\\\"]],[]],null]],[],[\\\"if\\\"]]\",\n        \"moduleName\": \"/var/www/discourse/frontend/discourse/discourse/plugins/discourse-adplugin/discourse/components/adbutler-ad.js\",\n        \"isStrictMode\": true\n      }), this);\n    }\n  }\n  _exports.default = AdbutlerAd;\n});","define(\"discourse/plugins/discourse-adplugin/discourse/components/amazon-product-links\", [\"exports\", \"@ember/object\", \"@ember/object/computed\", \"@ember/template\", \"@ember-decorators/component\", \"discourse-i18n\", \"discourse/plugins/discourse-adplugin/discourse/components/ad-component\", \"@ember/component\", \"@ember/template-factory\"], function (_exports, _object, _computed, _template, _component, _discourseI18n, _adComponent, _component2, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const AmazonProductLinks = dt7948.c(class AmazonProductLinks extends _adComponent.default {\n    static {\n      dt7948.g(this.prototype, \"showAd\", [(0, _computed.and)(\"showAmazonAds\", \"showToGroups\", \"showAfterPost\", \"showOnCurrentPage\")]);\n    }\n    #showAd = (dt7948.i(this, \"showAd\"), void 0);\n    init() {\n      const data = {\n        \"topic-list-top\": {},\n        \"topic-above-post-stream\": {},\n        \"topic-above-suggested\": {},\n        \"post-bottom\": {}\n      };\n      const mobileView = this.site.get(\"mobileView\");\n      const placement = this.get(\"placement\");\n      if (!mobileView && this.siteSettings.amazon_topic_list_top_src_code) {\n        data[\"topic-list-top\"][\"user_input\"] = this.siteSettings.amazon_topic_list_top_src_code;\n        data[\"topic-list-top\"][\"amazon_width\"] = parseInt(this.siteSettings.amazon_topic_list_top_ad_width_code, 10);\n        data[\"topic-list-top\"][\"amazon_height\"] = parseInt(this.siteSettings.amazon_topic_list_top_ad_height_code, 10);\n      }\n      if (mobileView && this.siteSettings.amazon_mobile_topic_list_top_src_code) {\n        data[\"topic-list-top\"][\"user_input_mobile\"] = this.siteSettings.amazon_mobile_topic_list_top_src_code;\n        data[\"topic-list-top\"][\"mobile_amazon_width\"] = parseInt(this.siteSettings.amazon_mobile_topic_list_top_ad_width_code, 10);\n        data[\"topic-list-top\"][\"mobile_amazon_height\"] = parseInt(this.siteSettings.amazon_mobile_topic_list_top_ad_height_code, 10);\n      }\n      if (!mobileView && this.siteSettings.amazon_topic_above_post_stream_src_code) {\n        data[\"topic-above-post-stream\"][\"user_input\"] = this.siteSettings.amazon_topic_above_post_stream_src_code;\n        data[\"topic-above-post-stream\"][\"amazon_width\"] = parseInt(this.siteSettings.amazon_topic_above_post_stream_ad_width_code, 10);\n        data[\"topic-above-post-stream\"][\"amazon_height\"] = parseInt(this.siteSettings.amazon_topic_above_post_stream_ad_height_code, 10);\n      }\n      if (mobileView && this.siteSettings.amazon_mobile_topic_above_post_stream_src_code) {\n        data[\"topic-above-post-stream\"][\"user_input_mobile\"] = this.siteSettings.amazon_mobile_topic_above_post_stream_src_code;\n        data[\"topic-above-post-stream\"][\"mobile_amazon_width\"] = parseInt(this.siteSettings.amazon_mobile_topic_above_post_stream_ad_width_code, 10);\n        data[\"topic-above-post-stream\"][\"mobile_amazon_height\"] = parseInt(this.siteSettings.amazon_mobile_topic_above_post_stream_ad_height_code, 10);\n      }\n      if (!mobileView && this.siteSettings.amazon_topic_above_suggested_src_code) {\n        data[\"topic-above-suggested\"][\"user_input\"] = this.siteSettings.amazon_topic_above_suggested_src_code;\n        data[\"topic-above-suggested\"][\"amazon_width\"] = parseInt(this.siteSettings.amazon_topic_above_suggested_ad_width_code, 10);\n        data[\"topic-above-suggested\"][\"amazon_height\"] = parseInt(this.siteSettings.amazon_topic_above_suggested_ad_height_code, 10);\n      }\n      if (mobileView && this.siteSettings.amazon_mobile_topic_above_suggested_src_code) {\n        data[\"topic-above-suggested\"][\"user_input_mobile\"] = this.siteSettings.amazon_mobile_topic_above_suggested_src_code;\n        data[\"topic-above-suggested\"][\"mobile_amazon_width\"] = parseInt(this.siteSettings.amazon_mobile_topic_above_suggested_ad_width_code, 10);\n        data[\"topic-above-suggested\"][\"mobile_amazon_height\"] = parseInt(this.siteSettings.amazon_mobile_topic_above_suggested_ad_height_code, 10);\n      }\n      if (!mobileView && this.siteSettings.amazon_post_bottom_src_code) {\n        data[\"post-bottom\"][\"user_input\"] = this.siteSettings.amazon_post_bottom_src_code;\n        data[\"post-bottom\"][\"amazon_width\"] = parseInt(this.siteSettings.amazon_post_bottom_ad_width_code, 10);\n        data[\"post-bottom\"][\"amazon_height\"] = parseInt(this.siteSettings.amazon_post_bottom_ad_height_code, 10);\n      }\n      if (mobileView && this.siteSettings.amazon_mobile_post_bottom_src_code) {\n        data[\"post-bottom\"][\"user_input_mobile\"] = this.siteSettings.amazon_mobile_post_bottom_src_code;\n        data[\"post-bottom\"][\"mobile_amazon_width\"] = parseInt(this.siteSettings.amazon_mobile_post_bottom_ad_width_code, 10);\n        data[\"post-bottom\"][\"mobile_amazon_height\"] = parseInt(this.siteSettings.amazon_mobile_post_bottom_ad_height_code, 10);\n      }\n      this.set(\"user_input\", data[placement][\"user_input\"]);\n      this.set(\"amazon_width\", data[placement][\"amazon_width\"]);\n      this.set(\"amazon_height\", data[placement][\"amazon_height\"]);\n      this.set(\"user_input_mobile\", data[placement][\"user_input_mobile\"]);\n      this.set(\"mobile_amazon_height\", data[placement][\"mobile_amazon_height\"]);\n      this.set(\"mobile_amazon_width\", data[placement][\"mobile_amazon_width\"]);\n      super.init();\n    }\n    get adWrapperStyle() {\n      return (0, _template.trustHTML)(`width: ${this.amazon_width}px; height: ${this.amazon_height}px;`);\n    }\n    static {\n      dt7948.n(this.prototype, \"adWrapperStyle\", [(0, _object.computed)(\"amazon_width\", \"amazon_height\")]);\n    }\n    get adWrapperStyleMobile() {\n      return (0, _template.trustHTML)(`width: ${this.mobile_amazon_width}px; height: ${this.mobile_amazon_height}px;`);\n    }\n    static {\n      dt7948.n(this.prototype, \"adWrapperStyleMobile\", [(0, _object.computed)(\"mobile_amazon_width\", \"mobile_amazon_height\")]);\n    }\n    get adTitleStyleMobile() {\n      return (0, _template.trustHTML)(`width: ${this.mobile_amazon_width}px;`);\n    }\n    static {\n      dt7948.n(this.prototype, \"adTitleStyleMobile\", [(0, _object.computed)(\"mobile_amazon_width\")]);\n    }\n    get userInput() {\n      return (0, _template.trustHTML)(`${this.user_input}`);\n    }\n    static {\n      dt7948.n(this.prototype, \"userInput\", [(0, _object.computed)(\"user_input\")]);\n    }\n    get userInputMobile() {\n      return (0, _template.trustHTML)(`${this.user_input_mobile}`);\n    }\n    static {\n      dt7948.n(this.prototype, \"userInputMobile\", [(0, _object.computed)(\"user_input_mobile\")]);\n    }\n    get showAmazonAds() {\n      if (!this.currentUser) {\n        return true;\n      }\n      return this.currentUser.show_amazon_ads;\n    }\n    static {\n      dt7948.n(this.prototype, \"showAmazonAds\", [_object.computed]);\n    }\n    get showAfterPost() {\n      if (!this.postNumber) {\n        return true;\n      }\n      return this.isNthPost(parseInt(this.siteSettings.amazon_nth_post_code, 10));\n    }\n    static {\n      dt7948.n(this.prototype, \"showAfterPost\", [(0, _object.computed)(\"postNumber\")]);\n    }\n    buildImpressionPayload() {\n      return {\n        ad_plugin_impression: {\n          ad_type: this.site.ad_types.amazon,\n          ad_plugin_house_ad_id: null,\n          placement: this.placement\n        }\n      };\n    }\n    static {\n      (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n      /*\n        <div class=\"amazon-product-links\" ...attributes>\n        {{#if this.showAd}}\n          {{#if this.site.mobileView}}\n            <div\n              class=\"amazon-product-links-label\"\n              style={{this.adTitleStyleMobile}}\n            ><h2>{{i18n \"adplugin.advertisement_label\"}}</h2></div>\n            <iframe\n              style={{this.adWrapperStyleMobile}}\n              marginwidth=\"0\"\n              marginheight=\"0\"\n              scrolling=\"no\"\n              frameborder=\"0\"\n              src={{this.userInputMobile}}\n              title={{i18n \"adplugin.advertisement_label\"}}\n            >\n            </iframe>\n          {{else}}\n            <div class=\"amazon-product-links-label\"><h2>{{i18n\n                  \"adplugin.advertisement_label\"\n                }}</h2></div>\n            <div class=\"container\" align=\"center\">\n              <iframe\n                style={{this.adWrapperStyle}}\n                marginwidth=\"0\"\n                marginheight=\"0\"\n                scrolling=\"no\"\n                frameborder=\"0\"\n                src={{this.userInput}}\n                title={{i18n \"adplugin.advertisement_label\"}}\n              >\n              </iframe>\n            </div>\n          {{/if}}\n        {{/if}}\n      </div>\n      */\n      {\n        \"id\": \"OWspQcjC\",\n        \"block\": \"[[[11,0],[24,0,\\\"amazon-product-links\\\"],[17,1],[12],[1,\\\"\\\\n\\\"],[41,[30,0,[\\\"showAd\\\"]],[[[41,[30,0,[\\\"site\\\",\\\"mobileView\\\"]],[[[1,\\\"      \\\"],[10,0],[14,0,\\\"amazon-product-links-label\\\"],[15,5,[30,0,[\\\"adTitleStyleMobile\\\"]]],[12],[10,\\\"h2\\\"],[12],[1,[28,[32,0],[\\\"adplugin.advertisement_label\\\"],null]],[13],[13],[1,\\\"\\\\n      \\\"],[10,\\\"iframe\\\"],[15,5,[30,0,[\\\"adWrapperStyleMobile\\\"]]],[14,\\\"marginwidth\\\",\\\"0\\\"],[14,\\\"marginheight\\\",\\\"0\\\"],[14,\\\"scrolling\\\",\\\"no\\\"],[14,\\\"frameborder\\\",\\\"0\\\"],[15,\\\"src\\\",[30,0,[\\\"userInputMobile\\\"]]],[15,\\\"title\\\",[28,[32,0],[\\\"adplugin.advertisement_label\\\"],null]],[12],[1,\\\"\\\\n      \\\"],[13],[1,\\\"\\\\n\\\"]],[]],[[[1,\\\"      \\\"],[10,0],[14,0,\\\"amazon-product-links-label\\\"],[12],[10,\\\"h2\\\"],[12],[1,[28,[32,0],[\\\"adplugin.advertisement_label\\\"],null]],[13],[13],[1,\\\"\\\\n      \\\"],[10,0],[14,0,\\\"container\\\"],[14,\\\"align\\\",\\\"center\\\"],[12],[1,\\\"\\\\n        \\\"],[10,\\\"iframe\\\"],[15,5,[30,0,[\\\"adWrapperStyle\\\"]]],[14,\\\"marginwidth\\\",\\\"0\\\"],[14,\\\"marginheight\\\",\\\"0\\\"],[14,\\\"scrolling\\\",\\\"no\\\"],[14,\\\"frameborder\\\",\\\"0\\\"],[15,\\\"src\\\",[30,0,[\\\"userInput\\\"]]],[15,\\\"title\\\",[28,[32,0],[\\\"adplugin.advertisement_label\\\"],null]],[12],[1,\\\"\\\\n        \\\"],[13],[1,\\\"\\\\n      \\\"],[13],[1,\\\"\\\\n\\\"]],[]]]],[]],null],[13]],[\\\"&attrs\\\"],[\\\"if\\\"]]\",\n        \"moduleName\": \"/var/www/discourse/frontend/discourse/discourse/plugins/discourse-adplugin/discourse/components/amazon-product-links.js\",\n        \"scope\": () => [_discourseI18n.i18n],\n        \"isStrictMode\": true\n      }), this);\n    }\n  }, [(0, _component.tagName)(\"\")]);\n  var _default = _exports.default = AmazonProductLinks;\n});","define(\"discourse/plugins/discourse-adplugin/discourse/components/carbonads-ad\", [\"exports\", \"@ember/object\", \"@ember/template\", \"discourse/plugins/discourse-adplugin/discourse/components/ad-component\", \"@ember/component\", \"@ember/template-factory\"], function (_exports, _object, _template, _adComponent, _component, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  class CarbonadsAd extends _adComponent.default {\n    serve_id = null;\n    placement = null;\n    init() {\n      this.set(\"serve_id\", this.siteSettings.carbonads_serve_id);\n      this.set(\"placement\", this.siteSettings.carbonads_placement);\n      super.init();\n    }\n    get url() {\n      return (0, _template.trustHTML)(`//cdn.carbonads.com/carbon.js?serve=${this.serve_id}&placement=${this.placement}`);\n    }\n    static {\n      dt7948.n(this.prototype, \"url\", [(0, _object.computed)(\"serve_id\", \"placement\")]);\n    }\n    get showCarbonAds() {\n      if (!this.currentUser) {\n        return true;\n      }\n      return this.currentUser.show_carbon_ads;\n    }\n    static {\n      dt7948.n(this.prototype, \"showCarbonAds\", [_object.computed]);\n    }\n    get showAd() {\n      return this.placement && this.serve_id && this.showCarbonAds && this.showToGroups && this.showOnCurrentPage;\n    }\n    static {\n      dt7948.n(this.prototype, \"showAd\", [(0, _object.computed)(\"placement\", \"serve_id\", \"showCarbonAds\", \"showToGroups\", \"showOnCurrentPage\")]);\n    }\n    buildImpressionPayload() {\n      return {\n        ad_plugin_impression: {\n          ad_type: this.site.ad_types.carbon,\n          ad_plugin_house_ad_id: null,\n          placement: this.placement\n        }\n      };\n    }\n    static {\n      (0, _component.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n      /*\n        {{#if this.showAd}}\n        {{! template-lint-disable no-forbidden-elements }}\n        <script src={{this.url}} id=\"_carbonads_js\" async type=\"text/javascript\">\n        </script>\n      {{/if}}\n      */\n      {\n        \"id\": \"HgJWA4bP\",\n        \"block\": \"[[[41,[30,0,[\\\"showAd\\\"]],[[[1,\\\"  \\\"],[10,\\\"script\\\"],[15,\\\"src\\\",[30,0,[\\\"url\\\"]]],[14,1,\\\"_carbonads_js\\\"],[14,\\\"async\\\",\\\"\\\"],[14,4,\\\"text/javascript\\\"],[12],[1,\\\"\\\\n  \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null]],[],[\\\"if\\\"]]\",\n        \"moduleName\": \"/var/www/discourse/frontend/discourse/discourse/plugins/discourse-adplugin/discourse/components/carbonads-ad.js\",\n        \"isStrictMode\": true\n      }), this);\n    }\n  }\n  _exports.default = CarbonadsAd;\n});","define(\"discourse/plugins/discourse-adplugin/discourse/components/google-adsense\", [\"exports\", \"@ember/object\", \"@ember/runloop\", \"@ember/template\", \"@ember-decorators/component\", \"rsvp\", \"discourse/helpers/concat-class\", \"discourse/lib/environment\", \"discourse/lib/load-script\", \"discourse-i18n\", \"discourse/plugins/discourse-adplugin/discourse/components/ad-component\", \"@ember/component\", \"@ember/template-factory\"], function (_exports, _object, _runloop, _template, _component, _rsvp, _concatClass, _environment, _loadScript, _discourseI18n, _adComponent, _component2, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  let _loaded = false,\n    _promise = null,\n    renderCounts = {};\n  function parseAdWidth(value) {\n    if (value === \"responsive\") {\n      return \"auto\";\n    }\n    if (value.startsWith(\"fluid\")) {\n      return \"fluid\";\n    }\n    const w = parseInt(value.substring(0, 3).trim(), 10);\n    if (isNaN(w)) {\n      return \"auto\";\n    } else {\n      return `${w}px`;\n    }\n  }\n  function parseAdHeight(value) {\n    if (value === \"responsive\") {\n      return \"auto\";\n    }\n    if (value.startsWith(\"fluid\")) {\n      return \"fluid\";\n    }\n    const h = parseInt(value.substring(4, 7).trim(), 10);\n    if (isNaN(h)) {\n      return \"auto\";\n    } else {\n      return `${h}px`;\n    }\n  }\n  function loadAdsense() {\n    if (_loaded) {\n      return _rsvp.default.resolve();\n    }\n    if (_promise) {\n      return _promise;\n    }\n    const adsenseSrc = (\"https:\" === document.location.protocol ? \"https:\" : \"http:\") + \"//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js\";\n    _promise = (0, _loadScript.default)(adsenseSrc, {\n      scriptTag: true\n    }).then(function () {\n      _loaded = true;\n    });\n    return _promise;\n  }\n  const DESKTOP_SETTINGS = {\n    \"topic-list-top\": {\n      code: \"adsense_topic_list_top_code\",\n      sizes: \"adsense_topic_list_top_ad_sizes\"\n    },\n    \"topic-above-post-stream\": {\n      code: \"adsense_topic_above_post_stream_code\",\n      sizes: \"adsense_topic_above_post_stream_ad_sizes\"\n    },\n    \"topic-above-suggested\": {\n      code: \"adsense_topic_above_suggested_code\",\n      sizes: \"adsense_topic_above_suggested_ad_sizes\"\n    },\n    \"post-bottom\": {\n      code: \"adsense_post_bottom_code\",\n      sizes: \"adsense_post_bottom_ad_sizes\"\n    }\n  };\n  const MOBILE_SETTINGS = {\n    \"topic-list-top\": {\n      code: \"adsense_mobile_topic_list_top_code\",\n      sizes: \"adsense_mobile_topic_list_top_ad_size\"\n    },\n    \"topic-above-post-stream\": {\n      code: \"adsense_mobile_topic_above_post_stream_code\",\n      sizes: \"adsense_mobile_topic_above_post_stream_ad_size\"\n    },\n    \"topic-above-suggested\": {\n      code: \"adsense_mobile_topic_above_suggested_code\",\n      sizes: \"adsense_mobile_topic_above_suggested_ad_size\"\n    },\n    \"post-bottom\": {\n      code: \"adsense_mobile_post_bottom_code\",\n      sizes: \"adsense_mobile_post_bottom_ad_size\"\n    }\n  };\n  const GoogleAdsense = dt7948.c(class GoogleAdsense extends _adComponent.default {\n    loadedGoogletag = false;\n    publisher_id = null;\n    ad_width = null;\n    ad_height = null;\n    adRequested = false;\n    init() {\n      let config, size;\n      const placement = this.get(\"placement\");\n      if (this.site.mobileView) {\n        config = MOBILE_SETTINGS[placement];\n      } else {\n        config = DESKTOP_SETTINGS[placement];\n      }\n      if (!renderCounts[placement]) {\n        renderCounts[placement] = 0;\n      }\n      const sizes = (this.siteSettings[config.sizes] || \"\").split(\"|\");\n      if (sizes.length === 1) {\n        size = sizes[0];\n      } else {\n        size = sizes[renderCounts[placement] % sizes.length];\n        renderCounts[placement] += 1;\n      }\n      this.set(\"ad_width\", parseAdWidth(size));\n      this.set(\"ad_height\", parseAdHeight(size));\n      this.set(\"ad_code\", this.siteSettings[config.code]);\n      this.set(\"publisher_id\", this.siteSettings.adsense_publisher_code);\n      super.init();\n    }\n    async _triggerAds() {\n      if ((0, _environment.isTesting)()) {\n        return; // Don't load external JS during tests\n      }\n      this.set(\"adRequested\", true);\n      await loadAdsense();\n      if (this.isDestroyed || this.isDestroying) {\n        // Component removed from DOM before script loaded\n        return;\n      }\n      try {\n        const adsbygoogle = window.adsbygoogle ||= [];\n        adsbygoogle.push({}); // ask AdSense to fill one ad unit\n      } catch (ex) {\n        // eslint-disable-next-line no-console\n        console.error(\"Adsense error:\", ex);\n      }\n    }\n    didInsertElement() {\n      super.didInsertElement();\n      if (!this.get(\"showAd\")) {\n        return;\n      }\n      (0, _runloop.scheduleOnce)(\"afterRender\", this, this._triggerAds);\n    }\n    get isResponsive() {\n      return [\"auto\", \"fluid\"].includes(this.ad_width);\n    }\n    static {\n      dt7948.n(this.prototype, \"isResponsive\", [(0, _object.computed)(\"ad_width\")]);\n    }\n    get isFluid() {\n      return this.ad_width === \"fluid\";\n    }\n    static {\n      dt7948.n(this.prototype, \"isFluid\", [(0, _object.computed)(\"ad_width\")]);\n    }\n    get classForSlot() {\n      return this.showAd ? (0, _template.trustHTML)(`adsense-${this.placement}`) : \"\";\n    }\n    static {\n      dt7948.n(this.prototype, \"classForSlot\", [(0, _object.computed)(\"placement\", \"showAd\")]);\n    }\n    get autoAdFormat() {\n      return this.isResponsive ? (0, _template.trustHTML)(this.isFluid ? \"fluid\" : \"auto\") : false;\n    }\n    static {\n      dt7948.n(this.prototype, \"autoAdFormat\", [(0, _object.computed)(\"isResponsive\", \"isFluid\")]);\n    }\n    get adWrapperStyle() {\n      return (0, _template.trustHTML)(this.isResponsive ? \"\" : `width: ${this.ad_width}; height: ${this.ad_height};`);\n    }\n    static {\n      dt7948.n(this.prototype, \"adWrapperStyle\", [(0, _object.computed)(\"ad_width\", \"ad_height\", \"isResponsive\")]);\n    }\n    get adInsStyle() {\n      return (0, _template.trustHTML)(`display: ${this.isResponsive ? \"block\" : \"inline-block\"}; ${this.adWrapperStyle}`);\n    }\n    static {\n      dt7948.n(this.prototype, \"adInsStyle\", [(0, _object.computed)(\"adWrapperStyle\", \"isResponsive\")]);\n    }\n    get showAdsenseAds() {\n      if (!this.currentUser) {\n        return true;\n      }\n      return this.currentUser.show_adsense_ads;\n    }\n    static {\n      dt7948.n(this.prototype, \"showAdsenseAds\", [_object.computed]);\n    }\n    get showAd() {\n      return this.publisher_id && this.showAdsenseAds && this.showToGroups && this.showAfterPost && this.showOnCurrentPage;\n    }\n    static {\n      dt7948.n(this.prototype, \"showAd\", [(0, _object.computed)(\"publisher_id\", \"showAdsenseAds\", \"showToGroups\", \"showAfterPost\", \"showOnCurrentPage\")]);\n    }\n    get showAfterPost() {\n      if (!this.postNumber) {\n        return true;\n      }\n      return this.isNthPost(parseInt(this.siteSettings.adsense_nth_post_code, 10));\n    }\n    static {\n      dt7948.n(this.prototype, \"showAfterPost\", [(0, _object.computed)(\"postNumber\")]);\n    }\n    buildImpressionPayload() {\n      return {\n        ad_plugin_impression: {\n          ad_type: this.site.ad_types.adsense,\n          ad_plugin_house_ad_id: null,\n          placement: this.placement\n        }\n      };\n    }\n    static {\n      (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n      /*\n        <div\n        class={{concatClass\n          \"google-adsense\"\n          this.classForSlot\n          (if this.isResponsive \"adsense-responsive\")\n        }}\n        ...attributes\n      >\n        {{#if this.showAd}}\n          <div class=\"google-adsense-label\"><h2>{{i18n\n                \"adplugin.advertisement_label\"\n              }}</h2></div>\n          <div\n            class=\"google-adsense-content\"\n            id={{if this.isResponsive \"google-adsense__responsive\"}}\n            style={{this.adWrapperStyle}}\n          >\n            <ins\n              class=\"adsbygoogle\"\n              style={{this.adInsStyle}}\n              data-ad-client=\"ca-pub-{{this.publisher_id}}\"\n              data-ad-slot={{this.ad_code}}\n              data-ad-format={{this.autoAdFormat}}\n            >\n            </ins>\n          </div>\n        {{/if}}\n      </div>\n      */\n      {\n        \"id\": \"EDdi2imb\",\n        \"block\": \"[[[11,0],[16,0,[28,[32,0],[\\\"google-adsense\\\",[30,0,[\\\"classForSlot\\\"]],[52,[30,0,[\\\"isResponsive\\\"]],\\\"adsense-responsive\\\"]],null]],[17,1],[12],[1,\\\"\\\\n\\\"],[41,[30,0,[\\\"showAd\\\"]],[[[1,\\\"    \\\"],[10,0],[14,0,\\\"google-adsense-label\\\"],[12],[10,\\\"h2\\\"],[12],[1,[28,[32,1],[\\\"adplugin.advertisement_label\\\"],null]],[13],[13],[1,\\\"\\\\n    \\\"],[10,0],[14,0,\\\"google-adsense-content\\\"],[15,1,[52,[30,0,[\\\"isResponsive\\\"]],\\\"google-adsense__responsive\\\"]],[15,5,[30,0,[\\\"adWrapperStyle\\\"]]],[12],[1,\\\"\\\\n      \\\"],[10,\\\"ins\\\"],[14,0,\\\"adsbygoogle\\\"],[15,5,[30,0,[\\\"adInsStyle\\\"]]],[15,\\\"data-ad-client\\\",[29,[\\\"ca-pub-\\\",[30,0,[\\\"publisher_id\\\"]]]]],[15,\\\"data-ad-slot\\\",[30,0,[\\\"ad_code\\\"]]],[15,\\\"data-ad-format\\\",[30,0,[\\\"autoAdFormat\\\"]]],[12],[1,\\\"\\\\n      \\\"],[13],[1,\\\"\\\\n    \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null],[13]],[\\\"&attrs\\\"],[\\\"if\\\"]]\",\n        \"moduleName\": \"/var/www/discourse/frontend/discourse/discourse/plugins/discourse-adplugin/discourse/components/google-adsense.js\",\n        \"scope\": () => [_concatClass.default, _discourseI18n.i18n],\n        \"isStrictMode\": true\n      }), this);\n    }\n  }, [(0, _component.tagName)(\"\")]);\n  var _default = _exports.default = GoogleAdsense;\n});","define(\"discourse/plugins/discourse-adplugin/discourse/components/google-dfp-ad\", [\"exports\", \"@ember/object\", \"@ember/object/computed\", \"@ember/template\", \"@ember-decorators/component\", \"@ember-decorators/object\", \"rsvp\", \"discourse/helpers/concat-class\", \"discourse/lib/environment\", \"discourse/lib/load-script\", \"discourse-i18n\", \"discourse/plugins/discourse-adplugin/discourse/components/ad-component\", \"@ember/component\", \"@ember/template-factory\"], function (_exports, _object, _computed, _template, _component, _object2, _rsvp, _concatClass, _environment, _loadScript, _discourseI18n, _adComponent, _component2, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  let _loaded = false,\n    _promise = null,\n    ads = {},\n    nextSlotNum = 1,\n    renderCounts = {};\n  function getNextSlotNum() {\n    return nextSlotNum++;\n  }\n  function splitWidthInt(value) {\n    let str = value.substring(0, 3);\n    return str.trim();\n  }\n  function splitHeightInt(value) {\n    let str = value.substring(4, 7);\n    return str.trim();\n  }\n  // This creates an array for the values of the custom targeting key\n  function valueParse(value) {\n    let final = value.replace(/ /g, \"\");\n    final = final.replace(/['\"]+/g, \"\");\n    final = final.split(\",\");\n    return final;\n  }\n  // This creates an array for the key of the custom targeting key\n  function keyParse(word) {\n    let key = word;\n    key = key.replace(/['\"]+/g, \"\");\n    key = key.split(\"\\n\");\n    return key;\n  }\n  // This should call adslot.setTargeting(key for that location, value for that location)\n  function custom_targeting(key_array, value_array, adSlot) {\n    for (let i = 0; i < key_array.length; i++) {\n      if (key_array[i]) {\n        adSlot.setTargeting(key_array[i], valueParse(value_array[i]));\n      }\n    }\n  }\n  const DESKTOP_SETTINGS = {\n    \"topic-list-top\": {\n      code: \"dfp_topic_list_top_code\",\n      sizes: \"dfp_topic_list_top_ad_sizes\",\n      targeting_keys: \"dfp_target_topic_list_top_key_code\",\n      targeting_values: \"dfp_target_topic_list_top_value_code\"\n    },\n    \"topic-above-post-stream\": {\n      code: \"dfp_topic_above_post_stream_code\",\n      sizes: \"dfp_topic_above_post_stream_ad_sizes\",\n      targeting_keys: \"dfp_target_topic_above_post_stream_key_code\",\n      targeting_values: \"dfp_target_topic_above_post_stream_value_code\"\n    },\n    \"topic-above-suggested\": {\n      code: \"dfp_topic_above_suggested_code\",\n      sizes: \"dfp_topic_above_suggested_ad_sizes\",\n      targeting_keys: \"dfp_target_topic_above_suggested_key_code\",\n      targeting_values: \"dfp_target_topic_above_suggested_value_code\"\n    },\n    \"post-bottom\": {\n      code: \"dfp_post_bottom_code\",\n      sizes: \"dfp_post_bottom_ad_sizes\",\n      targeting_keys: \"dfp_target_post_bottom_key_code\",\n      targeting_values: \"dfp_target_post_bottom_value_code\"\n    }\n  };\n  const MOBILE_SETTINGS = {\n    \"topic-list-top\": {\n      code: \"dfp_mobile_topic_list_top_code\",\n      sizes: \"dfp_mobile_topic_list_top_ad_sizes\",\n      targeting_keys: \"dfp_target_topic_list_top_key_code\",\n      targeting_values: \"dfp_target_topic_list_top_value_code\"\n    },\n    \"topic-above-post-stream\": {\n      code: \"dfp_mobile_topic_above_post_stream_code\",\n      sizes: \"dfp_mobile_topic_above_post_stream_ad_sizes\",\n      targeting_keys: \"dfp_target_topic_above_post_stream_key_code\",\n      targeting_values: \"dfp_target_topic_above_post_stream_value_code\"\n    },\n    \"topic-above-suggested\": {\n      code: \"dfp_mobile_topic_above_suggested_code\",\n      sizes: \"dfp_mobile_topic_above_suggested_ad_sizes\",\n      targeting_keys: \"dfp_target_topic_above_suggested_key_code\",\n      targeting_values: \"dfp_target_topic_above_suggested_value_code\"\n    },\n    \"post-bottom\": {\n      code: \"dfp_mobile_post_bottom_code\",\n      sizes: \"dfp_mobile_post_bottom_ad_sizes\",\n      targeting_keys: \"dfp_target_post_bottom_key_code\",\n      targeting_values: \"dfp_target_post_bottom_value_code\"\n    }\n  };\n  function getWidthAndHeight(placement, settings, isMobile) {\n    let config, size;\n    if (isMobile) {\n      config = MOBILE_SETTINGS[placement];\n    } else {\n      config = DESKTOP_SETTINGS[placement];\n    }\n    if (!renderCounts[placement]) {\n      renderCounts[placement] = 0;\n    }\n    const sizes = (settings[config.sizes] || \"\").split(\"|\");\n    if (sizes.length === 1) {\n      size = sizes[0];\n    } else {\n      size = sizes[renderCounts[placement] % sizes.length];\n      renderCounts[placement] += 1;\n    }\n    if (size === \"fluid\") {\n      return {\n        width: \"fluid\",\n        height: \"fluid\"\n      };\n    }\n    const sizeObj = {\n      width: parseInt(splitWidthInt(size), 10),\n      height: parseInt(splitHeightInt(size), 10)\n    };\n    if (!isNaN(sizeObj.width) && !isNaN(sizeObj.height)) {\n      return sizeObj;\n    }\n  }\n  function defineSlot(divId, placement, settings, isMobile, width, height, categoryTarget) {\n    if (!settings.dfp_publisher_id) {\n      return;\n    }\n    if (ads[divId]) {\n      return ads[divId];\n    }\n    let ad, config, publisherId;\n    if (isMobile) {\n      publisherId = settings.dfp_publisher_id_mobile || settings.dfp_publisher_id;\n      config = MOBILE_SETTINGS[placement];\n    } else {\n      publisherId = settings.dfp_publisher_id;\n      config = DESKTOP_SETTINGS[placement];\n    }\n    ad = window.googletag.defineSlot(\"/\" + publisherId + \"/\" + settings[config.code], [width, height], divId);\n    custom_targeting(keyParse(settings[config.targeting_keys]), keyParse(settings[config.targeting_values]), ad);\n    if (categoryTarget) {\n      ad.setTargeting(\"discourse-category\", categoryTarget);\n    }\n    ad.addService(window.googletag.pubads());\n    ads[divId] = {\n      ad,\n      width,\n      height\n    };\n    return ads[divId];\n  }\n  function destroySlot(divId) {\n    if (ads[divId] && window.googletag) {\n      window.googletag.destroySlots([ads[divId].ad]);\n      delete ads[divId];\n    }\n  }\n  function loadGoogle() {\n    /**\n    * Refer to this article for help:\n    * https://support.google.com/admanager/answer/4578089?hl=en\n    */\n    if (_loaded) {\n      return _rsvp.default.resolve();\n    }\n    if (_promise) {\n      return _promise;\n    }\n    // The boilerplate code\n    let dfpSrc = (\"https:\" === document.location.protocol ? \"https:\" : \"http:\") + \"//securepubads.g.doubleclick.net/tag/js/gpt.js\";\n    _promise = (0, _loadScript.default)(dfpSrc, {\n      scriptTag: true\n    }).then(function () {\n      _loaded = true;\n      if (window.googletag === undefined) {\n        // eslint-disable-next-line no-console\n        console.log(\"googletag is undefined!\");\n      }\n      window.googletag.cmd.push(function () {\n        // Infinite scroll requires SRA:\n        window.googletag.pubads().enableSingleRequest();\n        // we always use refresh() to fetch the ads:\n        window.googletag.pubads().disableInitialLoad();\n        // Improve CSP compatibility (https://developers.google.com/publisher-tag/guides/content-security-policy)\n        window.googletag.pubads().setForceSafeFrame(true);\n        window.googletag.enableServices();\n      });\n    });\n    window.googletag = window.googletag || {\n      cmd: []\n    };\n    return _promise;\n  }\n  const GoogleDfpAd = dt7948.c(class GoogleDfpAd extends _adComponent.default {\n    loadedGoogletag = false;\n    lastAdRefresh = null;\n    static {\n      dt7948.g(this.prototype, \"width\", [(0, _computed.alias)(\"size.width\")]);\n    }\n    #width = (dt7948.i(this, \"width\"), void 0);\n    static {\n      dt7948.g(this.prototype, \"height\", [(0, _computed.alias)(\"size.height\")]);\n    }\n    #height = (dt7948.i(this, \"height\"), void 0);\n    get size() {\n      return getWidthAndHeight(this.get(\"placement\"), this.siteSettings, this.site.mobileView);\n    }\n    static {\n      dt7948.n(this.prototype, \"size\", [_object.computed]);\n    }\n    get publisherId() {\n      if (this.site?.mobileView) {\n        return this.siteSettings?.dfp_publisher_id_mobile || this.siteSettings?.dfp_publisher_id;\n      } else {\n        return this.siteSettings?.dfp_publisher_id;\n      }\n    }\n    static {\n      dt7948.n(this.prototype, \"publisherId\", [(0, _object.computed)(\"siteSettings.dfp_publisher_id\", \"siteSettings.dfp_publisher_id_mobile\", \"site.mobileView\")]);\n    }\n    get divId() {\n      let slotNum = getNextSlotNum();\n      if (this.postNumber) {\n        return `div-gpt-ad-${slotNum}-${this.placement}-${this.postNumber}`;\n      } else {\n        return `div-gpt-ad-${slotNum}-${this.placement}`;\n      }\n    }\n    static {\n      dt7948.n(this.prototype, \"divId\", [(0, _object.computed)(\"placement\", \"postNumber\")]);\n    }\n    get adUnitClass() {\n      return this.showAd ? `dfp-ad-${this.placement}` : \"\";\n    }\n    static {\n      dt7948.n(this.prototype, \"adUnitClass\", [(0, _object.computed)(\"placement\", \"showAd\")]);\n    }\n    get adWrapperStyle() {\n      if (this.width !== \"fluid\") {\n        return (0, _template.trustHTML)(`width: ${this.width}px; height: ${this.height}px;`);\n      }\n    }\n    static {\n      dt7948.n(this.prototype, \"adWrapperStyle\", [(0, _object.computed)(\"width\", \"height\")]);\n    }\n    get adTitleStyleMobile() {\n      if (this.width !== \"fluid\") {\n        return (0, _template.trustHTML)(`width: ${this.width}px;`);\n      }\n    }\n    static {\n      dt7948.n(this.prototype, \"adTitleStyleMobile\", [(0, _object.computed)(\"width\")]);\n    }\n    get showAd() {\n      return this.publisherId && this.showDfpAds && this.showToGroups && this.showAfterPost && this.showOnCurrentPage && this.size;\n    }\n    static {\n      dt7948.n(this.prototype, \"showAd\", [(0, _object.computed)(\"publisherId\", \"showDfpAds\", \"showToGroups\", \"showAfterPost\", \"showOnCurrentPage\", \"size\")]);\n    }\n    get showDfpAds() {\n      if (!this.currentUser) {\n        return true;\n      }\n      return this.currentUser.show_dfp_ads;\n    }\n    static {\n      dt7948.n(this.prototype, \"showDfpAds\", [_object.computed]);\n    }\n    get showAfterPost() {\n      if (!this.postNumber) {\n        return true;\n      }\n      return this.isNthPost(parseInt(this.siteSettings.dfp_nth_post_code, 10));\n    }\n    // 3 second delay between calls to refresh ads in a component.\n    // Ember often calls updated() more than once, and *sometimes*\n    // updated() is called after _initGoogleDFP().\n    static {\n      dt7948.n(this.prototype, \"showAfterPost\", [(0, _object.computed)(\"postNumber\")]);\n    }\n    shouldRefreshAd() {\n      const lastAdRefresh = this.get(\"lastAdRefresh\");\n      if (!lastAdRefresh) {\n        return true;\n      }\n      return new Date() - lastAdRefresh > 3000;\n    }\n    updated() {\n      if (!this.shouldRefreshAd()) {\n        return;\n      }\n      let slot = ads[this.get(\"divId\")];\n      if (!(slot && slot.ad)) {\n        return;\n      }\n      let ad = slot.ad,\n        categorySlug = this.get(\"currentCategorySlug\");\n      if (this.get(\"loadedGoogletag\")) {\n        this.set(\"lastAdRefresh\", new Date());\n        window.googletag.cmd.push(() => {\n          ad.setTargeting(\"discourse-category\", categorySlug || \"0\");\n          window.googletag.pubads().refresh([ad]);\n        });\n      }\n    }\n    static {\n      dt7948.n(this.prototype, \"updated\", [(0, _object2.on)(\"didUpdate\")]);\n    }\n    _initGoogleDFP() {\n      if ((0, _environment.isTesting)()) {\n        return; // Don't load external JS during tests\n      }\n      if (!this.get(\"showAd\")) {\n        return;\n      }\n      loadGoogle().then(() => {\n        this.set(\"loadedGoogletag\", true);\n        this.set(\"lastAdRefresh\", new Date());\n        window.googletag.cmd.push(() => {\n          let slot = defineSlot(this.get(\"divId\"), this.get(\"placement\"), this.siteSettings, this.site.mobileView, this.get(\"width\"), this.get(\"height\"), this.get(\"currentCategorySlug\") || \"0\");\n          if (slot && slot.ad) {\n            // Display has to be called before refresh\n            // and after the slot div is in the page.\n            window.googletag.display(this.get(\"divId\"));\n            window.googletag.pubads().refresh([slot.ad]);\n          }\n        });\n      });\n    }\n    static {\n      dt7948.n(this.prototype, \"_initGoogleDFP\", [(0, _object2.on)(\"didInsertElement\")]);\n    }\n    buildImpressionPayload() {\n      return {\n        ad_plugin_impression: {\n          ad_type: this.site.ad_types.dfp,\n          ad_plugin_house_ad_id: null,\n          placement: this.placement\n        }\n      };\n    }\n    willRender() {\n      super.willRender(...arguments);\n      if (!this.get(\"showAd\")) {\n        return;\n      }\n    }\n    cleanup() {\n      destroySlot(this.get(\"divId\"));\n    }\n    static {\n      dt7948.n(this.prototype, \"cleanup\", [(0, _object2.on)(\"willDestroyElement\")]);\n    }\n    static {\n      (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n      /*\n        <div class={{concatClass \"google-dfp-ad\" this.adUnitClass}} ...attributes>\n        {{#if this.showAd}}\n          {{#if this.site.mobileView}}\n            <div class=\"google-dfp-ad-label\" style={{this.adTitleStyleMobile}}><h2\n              >{{i18n \"adplugin.advertisement_label\"}}</h2></div>\n            <div\n              id={{this.divId}}\n              style={{this.adWrapperStyle}}\n              class=\"dfp-ad-unit\"\n              align=\"center\"\n            ></div>\n          {{else}}\n            <div class=\"google-dfp-ad-label\"><h2>{{i18n\n                  \"adplugin.advertisement_label\"\n                }}</h2></div>\n            <div\n              id={{this.divId}}\n              style={{this.adWrapperStyle}}\n              class=\"dfp-ad-unit\"\n              align=\"center\"\n            ></div>\n          {{/if}}\n        {{/if}}\n      </div>\n      */\n      {\n        \"id\": \"T21Ej47X\",\n        \"block\": \"[[[11,0],[16,0,[28,[32,0],[\\\"google-dfp-ad\\\",[30,0,[\\\"adUnitClass\\\"]]],null]],[17,1],[12],[1,\\\"\\\\n\\\"],[41,[30,0,[\\\"showAd\\\"]],[[[41,[30,0,[\\\"site\\\",\\\"mobileView\\\"]],[[[1,\\\"      \\\"],[10,0],[14,0,\\\"google-dfp-ad-label\\\"],[15,5,[30,0,[\\\"adTitleStyleMobile\\\"]]],[12],[10,\\\"h2\\\"],[12],[1,[28,[32,1],[\\\"adplugin.advertisement_label\\\"],null]],[13],[13],[1,\\\"\\\\n      \\\"],[10,0],[15,1,[30,0,[\\\"divId\\\"]]],[15,5,[30,0,[\\\"adWrapperStyle\\\"]]],[14,0,\\\"dfp-ad-unit\\\"],[14,\\\"align\\\",\\\"center\\\"],[12],[13],[1,\\\"\\\\n\\\"]],[]],[[[1,\\\"      \\\"],[10,0],[14,0,\\\"google-dfp-ad-label\\\"],[12],[10,\\\"h2\\\"],[12],[1,[28,[32,1],[\\\"adplugin.advertisement_label\\\"],null]],[13],[13],[1,\\\"\\\\n      \\\"],[10,0],[15,1,[30,0,[\\\"divId\\\"]]],[15,5,[30,0,[\\\"adWrapperStyle\\\"]]],[14,0,\\\"dfp-ad-unit\\\"],[14,\\\"align\\\",\\\"center\\\"],[12],[13],[1,\\\"\\\\n\\\"]],[]]]],[]],null],[13]],[\\\"&attrs\\\"],[\\\"if\\\"]]\",\n        \"moduleName\": \"/var/www/discourse/frontend/discourse/discourse/plugins/discourse-adplugin/discourse/components/google-dfp-ad.js\",\n        \"scope\": () => [_concatClass.default, _discourseI18n.i18n],\n        \"isStrictMode\": true\n      }), this);\n    }\n  }, [(0, _component.tagName)(\"\")]);\n  var _default = _exports.default = GoogleDfpAd;\n});","define(\"discourse/plugins/discourse-adplugin/discourse/components/house-ad\", [\"exports\", \"@ember/object\", \"@ember/template\", \"@ember/utils\", \"@ember-decorators/component\", \"discourse/helpers/concat-class\", \"discourse/plugins/discourse-adplugin/discourse/components/ad-component\", \"@ember/component\", \"@ember/template-factory\"], function (_exports, _object, _template, _utils, _component, _concatClass, _adComponent, _component2, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const adIndex = {\n    topic_list_top: null,\n    topic_above_post_stream: null,\n    topic_above_suggested: null,\n    post_bottom: null,\n    topic_list_between: null\n  };\n  const HouseAd = dt7948.c(class HouseAd extends _adComponent.default {\n    adHtml = \"\";\n    currentAd = null;\n    _handleAdClick = event => {\n      // For house ads, only track clicks on <a> tags\n      const link = event.target.closest(\"a\");\n      if (link && link.href) {\n        this.trackClick();\n      }\n    };\n    get colspanAttribute() {\n      return this.tagName === \"td\" ? \"5\" : null;\n    }\n    static {\n      dt7948.n(this.prototype, \"colspanAttribute\", [_object.computed]);\n    }\n    get adUnitClass() {\n      return this.showAd ? `house-${this.placement}` : \"\";\n    }\n    static {\n      dt7948.n(this.prototype, \"adUnitClass\", [(0, _object.computed)(\"placement\", \"showAd\")]);\n    }\n    get showAd() {\n      return this.showToGroups && (this.showAfterPost || this.showAfterTopicListItem) && this.showOnCurrentPage;\n    }\n    static {\n      dt7948.n(this.prototype, \"showAd\", [(0, _object.computed)(\"showToGroups\", \"showAfterPost\", \"showAfterTopicListItem\", \"showOnCurrentPage\")]);\n    }\n    get showAfterPost() {\n      if (!this.postNumber && this.placement !== \"topic-list-between\") {\n        return true;\n      }\n      return this.isNthPost(parseInt(this.site.get(\"house_creatives.settings.after_nth_post\"), 10));\n    }\n    static {\n      dt7948.n(this.prototype, \"showAfterPost\", [(0, _object.computed)(\"postNumber\", \"placement\")]);\n    }\n    get showAfterTopicListItem() {\n      if (this.placement !== \"topic-list-between\") {\n        return true;\n      }\n      return this.isNthTopicListItem(parseInt(this.site.get(\"house_creatives.settings.after_nth_topic\"), 10));\n    }\n    static {\n      dt7948.n(this.prototype, \"showAfterTopicListItem\", [(0, _object.computed)(\"placement\")]);\n    }\n    chooseAdHtml() {\n      const houseAds = this.site.get(\"house_creatives\"),\n        placement = this.get(\"placement\").replace(/-/g, \"_\"),\n        adNames = this.adsNamesForSlot(placement);\n      // filter out ads that should not be shown on the current page\n      const filteredAds = adNames.filter(adName => {\n        const ad = houseAds.creatives[adName];\n        if (!ad) {\n          return false;\n        }\n        const hasCategoryScope = ad.category_ids?.length > 0;\n        const hasRouteScope = this.siteSettings.ad_plugin_routes_enabled && ad.routes?.length > 0;\n        // Global ad: no scopes\n        if (!hasCategoryScope && !hasRouteScope) {\n          return true;\n        }\n        // Scoped ad: match category or route\n        const matchesCategory = hasCategoryScope && ad.category_ids.includes(this.currentCategoryId);\n        const matchesRoute = hasRouteScope && ad.routes.includes(this.currentRouteName);\n        return matchesCategory || matchesRoute;\n      });\n      if (filteredAds.length > 0) {\n        if (!adIndex[placement]) {\n          adIndex[placement] = 0;\n        }\n        let ad = houseAds.creatives[filteredAds[adIndex[placement]]] || \"\";\n        adIndex[placement] = (adIndex[placement] + 1) % filteredAds.length;\n        this.currentAd = ad || null;\n        return ad.html;\n      }\n      this.currentAd = null;\n    }\n    adsNamesForSlot(placement) {\n      const houseAds = this.site.get(\"house_creatives\");\n      if (!houseAds || !houseAds.settings) {\n        return [];\n      }\n      const adsForSlot = houseAds.settings[placement];\n      if (Object.keys(houseAds.creatives).length > 0 && !(0, _utils.isBlank)(adsForSlot)) {\n        return adsForSlot.split(\"|\");\n      } else {\n        return [];\n      }\n    }\n    refreshAd() {\n      this.set(\"adHtml\", this.chooseAdHtml());\n    }\n    buildImpressionPayload() {\n      return {\n        ad_plugin_impression: {\n          ad_type: this.site.ad_types.house,\n          ad_plugin_house_ad_id: this.currentAd?.id,\n          placement: this.placement\n        }\n      };\n    }\n    didInsertElement() {\n      super.didInsertElement(...arguments);\n      if (!this.get(\"showAd\")) {\n        return;\n      }\n      if (adIndex.topic_list_top === null) {\n        // start at a random spot in the ad inventory\n        const houseAds = this.site.get(\"house_creatives\");\n        Object.keys(adIndex).forEach(placement => {\n          const adNames = this.adsNamesForSlot(placement);\n          if (adNames.length === 0) {\n            return;\n          }\n          // filter out ads that should not be shown on the current page\n          const filteredAds = adNames.filter(adName => {\n            const ad = houseAds.creatives[adName];\n            if (!ad) {\n              return false;\n            }\n            const hasCategoryScope = ad.category_ids?.length > 0;\n            const hasRouteScope = this.siteSettings.ad_plugin_routes_enabled && ad.routes?.length > 0;\n            if (!hasCategoryScope && !hasRouteScope) {\n              return true;\n            }\n            const matchesCategory = hasCategoryScope && ad.category_ids.includes(this.currentCategoryId);\n            const matchesRoute = hasRouteScope && ad.routes.includes(this.currentRouteName);\n            return matchesCategory || matchesRoute;\n          });\n          adIndex[placement] = Math.floor(Math.random() * filteredAds.length);\n        });\n      }\n      this.refreshAd();\n    }\n    static {\n      (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n      /*\n        <div class={{concatClass \"house-creative\" this.adUnitClass}} ...attributes>\n        {{#if this.showAd}}\n          {{trustHTML this.adHtml}}\n        {{/if}}\n      </div>\n      */\n      {\n        \"id\": \"XqTOJd3Z\",\n        \"block\": \"[[[11,0],[16,0,[28,[32,0],[\\\"house-creative\\\",[30,0,[\\\"adUnitClass\\\"]]],null]],[17,1],[12],[1,\\\"\\\\n\\\"],[41,[30,0,[\\\"showAd\\\"]],[[[1,\\\"    \\\"],[1,[28,[32,1],[[30,0,[\\\"adHtml\\\"]]],null]],[1,\\\"\\\\n\\\"]],[]],null],[13]],[\\\"&attrs\\\"],[\\\"if\\\"]]\",\n        \"moduleName\": \"/var/www/discourse/frontend/discourse/discourse/plugins/discourse-adplugin/discourse/components/house-ad.js\",\n        \"scope\": () => [_concatClass.default, _template.trustHTML],\n        \"isStrictMode\": true\n      }), this);\n    }\n  }, [(0, _component.tagName)(\"\")]);\n  var _default = _exports.default = HouseAd;\n});","define(\"discourse/plugins/discourse-adplugin/discourse/components/post-bottom-ad\", [\"exports\", \"discourse/plugins/discourse-adplugin/discourse/components/ad-slot\", \"@ember/component\", \"@ember/template-factory\", \"@ember/component/template-only\"], function (_exports, _adSlot, _component, _templateFactory, _templateOnly) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const PostBottomAd = (0, _component.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n  /*\n    <AdSlot\n    @placement=\"post-bottom\"\n    @category={{@model.topic.category.slug}}\n    @postNumber={{@model.post_number}}\n  />\n  */\n  {\n    \"id\": \"8XP+aVdx\",\n    \"block\": \"[[[8,[32,0],null,[[\\\"@placement\\\",\\\"@category\\\",\\\"@postNumber\\\"],[\\\"post-bottom\\\",[30,1,[\\\"topic\\\",\\\"category\\\",\\\"slug\\\"]],[30,1,[\\\"post_number\\\"]]]],null]],[\\\"@model\\\"],[]]\",\n    \"moduleName\": \"/var/www/discourse/frontend/discourse/discourse/plugins/discourse-adplugin/discourse/components/post-bottom-ad.js\",\n    \"scope\": () => [_adSlot.default],\n    \"isStrictMode\": true\n  }), (0, _templateOnly.default)(undefined, \"post-bottom-ad:PostBottomAd\"));\n  var _default = _exports.default = PostBottomAd;\n});","define(\"discourse/plugins/discourse-adplugin/discourse/connectors/after-topic-list-item/discourse-adplugin\", [\"exports\", \"@ember/component\", \"@ember-decorators/component\", \"discourse/plugins/discourse-adplugin/discourse/components/ad-slot\", \"@ember/template-factory\"], function (_exports, _component, _component2, _adSlot, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  /* eslint-disable ember/no-classic-components */\n  const DiscourseAdplugin = dt7948.c(class DiscourseAdplugin extends _component.default {\n    static shouldRender(args, context) {\n      return args.index && (0, _adSlot.slotContenders)(context.site, context.siteSettings, \"topic-list-between\", args.index).length > 0;\n    }\n    static {\n      (0, _component.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n      /*\n        <tr class=\"after-topic-list-item-outlet discourse-adplugin\" ...attributes>\n        <AdSlot\n          @placement=\"topic-list-between\"\n          @category={{this.category.slug}}\n          @indexNumber={{this.index}}\n          @childTagName=\"td\"\n          @colspan=\"5\"\n        />\n      </tr>\n      */\n      {\n        \"id\": \"u+9v6vMr\",\n        \"block\": \"[[[11,\\\"tr\\\"],[24,0,\\\"after-topic-list-item-outlet discourse-adplugin\\\"],[17,1],[12],[1,\\\"\\\\n  \\\"],[8,[32,0],null,[[\\\"@placement\\\",\\\"@category\\\",\\\"@indexNumber\\\",\\\"@childTagName\\\",\\\"@colspan\\\"],[\\\"topic-list-between\\\",[30,0,[\\\"category\\\",\\\"slug\\\"]],[30,0,[\\\"index\\\"]],\\\"td\\\",\\\"5\\\"]],null],[1,\\\"\\\\n\\\"],[13]],[\\\"&attrs\\\"],[]]\",\n        \"moduleName\": \"/var/www/discourse/frontend/discourse/discourse/plugins/discourse-adplugin/discourse/connectors/after-topic-list-item/discourse-adplugin.js\",\n        \"scope\": () => [_adSlot.default],\n        \"isStrictMode\": true\n      }), this);\n    }\n  }, [(0, _component2.tagName)(\"\")]);\n  var _default = _exports.default = DiscourseAdplugin;\n});","define(\"discourse/plugins/discourse-adplugin/discourse/connectors/discovery-list-container-top/discourse-adplugin\", [\"exports\", \"@ember/component\", \"@ember-decorators/component\", \"discourse/plugins/discourse-adplugin/discourse/components/ad-slot\", \"@ember/template-factory\"], function (_exports, _component, _component2, _adSlot, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  /* eslint-disable ember/no-classic-components */\n  const DiscourseAdplugin = dt7948.c(class DiscourseAdplugin extends _component.default {\n    static {\n      (0, _component.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n      /*\n        <span\n        class=\"discovery-list-container-top-outlet discourse-adplugin\"\n        ...attributes\n      >\n        <AdSlot @placement=\"topic-list-top\" @category={{this.category.slug}} />\n      </span>\n      */\n      {\n        \"id\": \"3f3JOrTv\",\n        \"block\": \"[[[11,1],[24,0,\\\"discovery-list-container-top-outlet discourse-adplugin\\\"],[17,1],[12],[1,\\\"\\\\n  \\\"],[8,[32,0],null,[[\\\"@placement\\\",\\\"@category\\\"],[\\\"topic-list-top\\\",[30,0,[\\\"category\\\",\\\"slug\\\"]]]],null],[1,\\\"\\\\n\\\"],[13]],[\\\"&attrs\\\"],[]]\",\n        \"moduleName\": \"/var/www/discourse/frontend/discourse/discourse/plugins/discourse-adplugin/discourse/connectors/discovery-list-container-top/discourse-adplugin.js\",\n        \"scope\": () => [_adSlot.default],\n        \"isStrictMode\": true\n      }), this);\n    }\n  }, [(0, _component2.tagName)(\"\")]);\n  var _default = _exports.default = DiscourseAdplugin;\n});","define(\"discourse/plugins/discourse-adplugin/discourse/connectors/topic-above-post-stream/discourse-adplugin\", [\"exports\", \"@ember/component\", \"@ember-decorators/component\", \"discourse/plugins/discourse-adplugin/discourse/components/ad-slot\", \"@ember/template-factory\"], function (_exports, _component, _component2, _adSlot, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  /* eslint-disable ember/no-classic-components */\n  const DiscourseAdplugin = dt7948.c(class DiscourseAdplugin extends _component.default {\n    static {\n      (0, _component.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n      /*\n        <div\n        class=\"topic-above-post-stream-outlet discourse-adplugin\"\n        ...attributes\n      >\n        <AdSlot\n          @placement=\"topic-above-post-stream\"\n          @category={{this.model.category.slug}}\n        />\n      </div>\n      */\n      {\n        \"id\": \"yAElMKre\",\n        \"block\": \"[[[11,0],[24,0,\\\"topic-above-post-stream-outlet discourse-adplugin\\\"],[17,1],[12],[1,\\\"\\\\n  \\\"],[8,[32,0],null,[[\\\"@placement\\\",\\\"@category\\\"],[\\\"topic-above-post-stream\\\",[30,0,[\\\"model\\\",\\\"category\\\",\\\"slug\\\"]]]],null],[1,\\\"\\\\n\\\"],[13]],[\\\"&attrs\\\"],[]]\",\n        \"moduleName\": \"/var/www/discourse/frontend/discourse/discourse/plugins/discourse-adplugin/discourse/connectors/topic-above-post-stream/discourse-adplugin.js\",\n        \"scope\": () => [_adSlot.default],\n        \"isStrictMode\": true\n      }), this);\n    }\n  }, [(0, _component2.tagName)(\"\")]);\n  var _default = _exports.default = DiscourseAdplugin;\n});","define(\"discourse/plugins/discourse-adplugin/discourse/connectors/topic-above-suggested/discourse-adplugin\", [\"exports\", \"@ember/component\", \"@ember-decorators/component\", \"discourse/plugins/discourse-adplugin/discourse/components/ad-slot\", \"@ember/template-factory\"], function (_exports, _component, _component2, _adSlot, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  /* eslint-disable ember/no-classic-components */\n  const DiscourseAdplugin = dt7948.c(class DiscourseAdplugin extends _component.default {\n    static {\n      (0, _component.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n      /*\n        <div class=\"topic-above-suggested-outlet discourse-adplugin\" ...attributes>\n        <AdSlot\n          @placement=\"topic-above-suggested\"\n          @category={{this.model.category.slug}}\n        />\n      </div>\n      */\n      {\n        \"id\": \"Af2ikCJ9\",\n        \"block\": \"[[[11,0],[24,0,\\\"topic-above-suggested-outlet discourse-adplugin\\\"],[17,1],[12],[1,\\\"\\\\n  \\\"],[8,[32,0],null,[[\\\"@placement\\\",\\\"@category\\\"],[\\\"topic-above-suggested\\\",[30,0,[\\\"model\\\",\\\"category\\\",\\\"slug\\\"]]]],null],[1,\\\"\\\\n\\\"],[13]],[\\\"&attrs\\\"],[]]\",\n        \"moduleName\": \"/var/www/discourse/frontend/discourse/discourse/plugins/discourse-adplugin/discourse/connectors/topic-above-suggested/discourse-adplugin.js\",\n        \"scope\": () => [_adSlot.default],\n        \"isStrictMode\": true\n      }), this);\n    }\n  }, [(0, _component2.tagName)(\"\")]);\n  var _default = _exports.default = DiscourseAdplugin;\n});","define(\"discourse/plugins/discourse-adplugin/discourse/helpers/slot-position\", [\"exports\"], function (_exports) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.isNthPost = isNthPost;\n  _exports.isNthTopicListItem = isNthTopicListItem;\n  function isNthPost(every, currentPostNumber) {\n    if (every && every > 0) {\n      return currentPostNumber % every === 0;\n    } else {\n      return false;\n    }\n  }\n  function isNthTopicListItem(every, currentIndexPosition) {\n    if (every && every > 0 && currentIndexPosition > 0) {\n      return (currentIndexPosition + 1) % every === 0;\n    } else {\n      return false;\n    }\n  }\n});","define(\"discourse/plugins/discourse-adplugin/discourse/initializers/adplugin-admin-plugin-configuration-nav\", [\"exports\", \"discourse/lib/plugin-api\"], function (_exports, _pluginApi) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const PLUGIN_ID = \"discourse-adplugin\";\n  var _default = _exports.default = {\n    name: \"adplugin-admin-plugin-configuration-nav\",\n    initialize(container) {\n      const currentUser = container.lookup(\"service:current-user\");\n      if (!currentUser?.admin) {\n        return;\n      }\n      (0, _pluginApi.withPluginApi)(api => {\n        api.setAdminPluginIcon(PLUGIN_ID, \"rectangle-ad\");\n        api.addAdminPluginConfigurationNav(PLUGIN_ID, [{\n          label: \"admin.adplugin.house_ads.title\",\n          route: \"adminPlugins.show.houseAds\"\n        }]);\n      });\n    }\n  };\n});","define(\"discourse/plugins/discourse-adplugin/discourse/initializers/initialize-ad-plugin\", [\"exports\", \"discourse/lib/plugin-api\", \"discourse/models/site\", \"discourse/plugins/discourse-adplugin/discourse/components/post-bottom-ad\", \"@ember/component\", \"@ember/template-factory\", \"@ember/component/template-only\"], function (_exports, _pluginApi, _site, _postBottomAd, _component, _templateFactory, _templateOnly) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _exports.default = {\n    name: \"initialize-ad-plugin\",\n    initialize(container) {\n      (0, _pluginApi.withPluginApi)(api => {\n        customizePost(api);\n      });\n      const messageBus = container.lookup(\"service:message-bus\");\n      const currentUser = container.lookup(\"service:current-user\");\n      const channel = currentUser ? \"/site/house-creatives/logged-in\" : \"/site/house-creatives/anonymous\";\n      messageBus.subscribe(channel, function (houseAdsSettings) {\n        _site.default.currentProp(\"house_creatives\", houseAdsSettings);\n      });\n    }\n  };\n  function customizePost(api) {\n    api.renderAfterWrapperOutlet(\"post-article\", (0, _component.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n    /*\n      <div class=\"ad-connector\">\n      <PostBottomAd @model={{@post}} />\n    </div>\n    */\n    {\n      \"id\": \"eoe0F9jq\",\n      \"block\": \"[[[10,0],[14,0,\\\"ad-connector\\\"],[12],[1,\\\"\\\\n  \\\"],[8,[32,0],null,[[\\\"@model\\\"],[[30,1]]],null],[1,\\\"\\\\n\\\"],[13]],[\\\"@post\\\"],[]]\",\n      \"moduleName\": \"/var/www/discourse/frontend/discourse/discourse/plugins/discourse-adplugin/discourse/initializers/initialize-ad-plugin.js\",\n      \"scope\": () => [_postBottomAd.default],\n      \"isStrictMode\": true\n    }), (0, _templateOnly.default)(undefined, undefined)));\n  }\n});"],"mappings":"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","ignoreList":[]}