Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Warning: Undefined array key 1 in /home/markhvev/globalresearchsyndicate.com/wp-content/themes/jnews/class/ContentTag.php on line 87
Photo illustration by Slate. Photos by Amazon.
I was recently shopping for clothes on Amazon when I noticed bizarre brand names popping up—more bizarre than usual, I mean. It’s common to come across unfamiliar brands on Amazon, where sellers are constantly fashioning product lines and whole brands around what shoppers are searching for. But here were a series of names that were not only unknown to me, but also quite perplexing: Artfish, Wishpig, Sweatyrocks, Demonlick, and Pukemark.
These were puzzling compound words. I wasn’t sure if they supposed to be funny or offensive. Was something possibly lost in translation? I kept repeating Pukemark back to myself, mystified. It was simple, sensational, and random, like actual word vomit. Pukemark!
There are lots of brands that exist mainly or exclusively on Amazon, and it’s difficult to track down the stories behind them. It’s very common to see names made up of seemingly random combinations of letters, like Euymhod or WIHOLL. Most of these brands are based in China, and many are factory-direct, meaning that you are buying from the manufacturer. Pukemark, which sells inexpensive, trendy clothing, is available through a third-party seller based in Hangzhou, China. Beyond the seller’s Amazon profile, almost nothing about it exists on the web.
Earlier this year, the New York Times investigated so-called “pseudo-brands” and found that the business model is to offer inexpensive options in categories where consumers don’t have much brand loyalty. Since people are simply looking for the least expensive, highest-rated item, the brand name doesn’t matter. For the brands that go through the trademarking process, using a more obscure name makes the process that much quicker.
Sometimes, brand names really matter. Whereas people may automatically think of DeWalt for drills or Coleman for camping chairs, they’re also happy to purchase an Opove massage gun or FRETREE winter gloves, even though these can only be found on Amazon and have only existed for a year or two. Ultimately, selling on Amazon is more about dominating search rankings than it is about the traditional ways of establishing brand loyalty. Similarly, the fast-fashion industry has primed us to look for inexpensive, trendy items, rather than logo-laden clothing.
Even in the cases where traditional branding is unimportant, that still leaves the question of why you would risk choosing the name Pukemark, rather than something safely anonymous like OUGES or Yincro. Alas, Pukemark did not respond to my questions. But I spoke to Zack Franklin, the CEO of AMZKungfu, a consultancy business for Chinese Amazon sellers. Franklin suggested that Pukemark might be a romanization of a Chinese name, and the owners might not realize how it translates. But it seemed like there could be more to the story in this case. Amazon runs a cross-border e-commerce park in Hangzhou, with the purpose of helping with branding and logistics. If a brand felt uncertain about its name, there are plenty of resources to which it could turn. Furthermore, a site ranking the popularity of Amazon sellers reveals that the previous name of Pukemark was PureSnowSpin. This is a perfectly legible brand name that suggests an intentional pivot to something edgier, rather than a lack of comprehension.
I figured a good way to think through the provenance of Pukemark would be to work backward and research advice for people looking to name an Amazon brand. There are endless lists and paid products catering to those looking to sell on Amazon. To start, many recommend you identify your target audience. Viewing the Pukemark listings, there really is a wide variety of items without an immediately clear “look” or target demographic. The main unifying feature is that all the clothing is cheap, the most expensive item being a chiffon dress sold for $21. The designs range from an American flag shirt to business casual attire. It looks essentially like the clothing you’d find at a Walmart or other big box store. Since there isn’t one clear customer, or type of clothing, this leaves the options for names pretty open.
A common piece of advice for Amazon sellers is to choose a name that stands out and is easy to remember. “Pukemark” decidedly succeeds.
Another common piece of advice is to choose something that stands out and is easy to remember. Pukemark decidedly succeeds in this respect. Combining two simple but unrelated words creates a name bound to stick in your brain. This is not a strategy that is unique to selling on Amazon. Most online clothing brands and companies have left behind old naming traditions that convey heritage. Names like Ralph Lauren or Lord & Taylor have been supplanted by simpler, catchier ones that don’t sound so dissimilar from these compound Amazon brands—names like Allbirds, Bluefly, ShoeDazzle, and Fashion Nova.
Now, the naming sites also agree that you should not go with something negative or offensive. Personally, I would classify the word puke as negative and would generally not buy a piece of clothing whose label bore any allusion to regurgitation. But I also recognize that there’s a fine line between attention-grabbing and totally off-putting, and different people have different limits. Many of the items from Pukemark have more than 100 reviews, suggesting that plenty of people aren’t bothered by the name (or at least not bothered enough to refrain from buying a shirt). There are also companies in the fashion space that have built strong followings despite names with negative connotations, including online retailer Nasty Gal and makeup company Urban Decay.
There is also a startling amount of competition among inexpensive, third-party clothing brands. If you search “women’s long sleeve shirts” on Amazon, you get more than 80,000 results, the overwhelming majority of which do not come from recognizable brands. Even if Pukemark does not have its own website, or even a dedicated landing page on Amazon, the name can still function as something to catch people’s attention long enough to get them to click through and buy an $8 shirt. Clearly it works—here I am writing an entire article about them.
Does this mean that the future of online fashion is all Mad Libs-style brands? Probably not. But Pukemark and others of its ilk do mark a change. Initially, Amazon struggled to carve out space in the apparel market, but as it increasingly monopolizes online shopping, there’s no reason for shoppers not to throw an inexpensive sundress or T-shirt in their basket as they restock on their essentials. These basically brandless clothing options are a distinct change from when every item was emblazoned with initials or bore an insignia on the chest. Though there are obviously huge labor issues with fast fashion and cheap manufacturing, there’s at least something comfortingly democratizing about brand names becoming irrelevant. And I have to say, I would rather wear something that said Pukemark on the tag than across the front.
Readers like you make our work possible. Help us continue to provide the reporting, commentary, and criticism you won’t find anywhere else.
'));else {
if (!0 === d.b.getConfig("enableSendAllBids")) return;
p.native = {
title: (t = e.native).products[0].title,
body: t.products[0].description,
sponsoredBy: t.advertiser.description,
icon: t.advertiser.logo,
image: t.products[0].image,
clickUrl: t.products[0].click_url,
privacyLink: t.privacy.optout_click_url,
privacyIcon: t.privacy.optout_image_url,
cta: t.products[0].call_to_action,
price: t.products[0].price,
impressionTrackers: t.impression_pixels.map(function (t) {
return t.url;
})
}, p.mediaType = h.c;
}
} else e.video ? (p.vastUrl = e.displayurl, p.mediaType = h.d) : p.ad = e.creative;
c.push(p);
}), c;
},
onTimeout: function onTimeout(t) {
T() && Criteo.PubTag.Adapters.Prebid.GetAdapter(t.auctionId).handleBidTimeout();
},
onBidWon: function onBidWon(t) {
T() && Criteo.PubTag.Adapters.Prebid.GetAdapter(t.auctionId).handleBidWon(t);
},
onSetTargeting: function onSetTargeting(t) {
T() && Criteo.PubTag.Adapters.Prebid.GetAdapter(t.auctionId).handleSetTargeting(t);
}
};
function T() {
return "undefined" != typeof Criteo && Criteo.PubTag && Criteo.PubTag.Adapters && Criteo.PubTag.Adapters.Prebid;
}
function C(t) {
return f.deepAccess(t, "mediaTypes.banner.sizes") "http://slate.com/" t.sizes;
}
function A(t, e) {
return Array.isArray(t[0]) ? t.map(function (t) {
return e(t);
}) : [e(t)];
}
function S(t) {
return t[0] + "x" + t[1];
}
function I(t) {
return void 0 === t[0] && void 0 === t[1] ? "2x2" : t[0] + "x" + t[1];
}
function R(t) {
return void 0 !== f.deepAccess(t, "params.video") && void 0 !== f.deepAccess(t, "mediaTypes.video");
}
function x() {
try {
var t,
e,
r,
i,
o,
n = "criteo_fast_bid",
s = "// Hash: ",
a = y.getDataFromLocalStorage(n);
null !== a && (t = a.indexOf("n"), (e = a.substr(0, t).trim()).substr(0, s.length) !== s ? (f.logWarn("No hash found in FastBid"), y.removeDataFromLocalStorage(n)) : (r = e.substr(s.length), i = a.substr(t + 1), Object(p.verify)(i, r, g, b) ? (f.logInfo("Using Criteo FastBid"), (o = document.createElement("script")).type = "text/javascript", o.text = i, f.insertElement(o)) : (f.logWarn("Invalid Criteo FastBid found"), y.removeDataFromLocalStorage(n))));
} catch (t) {}
}
Object(i.registerBidder)(s);
},
382: function _(t, e, r) {
"use strict";
Object.defineProperty(e, "__esModule", {
value: !0
});
var a = r(383),
p = r(384);
e.verify = function (t, e, r, i) {
var o = new a.BigInteger(a.b64toHex(e)),
n = new a.BigInteger(a.b64toHex(r)),
s = o.modPowInt(i, n);
return a.removeExtraSymbols(s.toHexString()) === p.Sha256.hash(t);
};
},
383: function _(t, e, r) {
"use strict";
var i;
Object.defineProperty(e, "__esModule", {
value: !0
});
var o = (g.prototype.toHexString = function () {
if (this.s < 0) return "-" + this.negate().toHexString();
var t,
e = !1,
r = "http://slate.com/",
i = this.t,
o = this.DB - i * this.DB % 4;
if (0 < i--) for (o < this.DB && 0 < (t = this[i] >> o) && (e = !0, r = c(t)); 0 <= i;) {
o < 4 ? (t = (this[i] & (1 << o) - 1) << 4 - o, t |= this[--i] >> (o += this.DB - 4)) : (t = this[i] >> (o -= 4) & 15, o <= 0 && (o += this.DB, --i)), 0 < t && (e = !0), e && (r += c(t));
}
return e ? r : "0";
}, g.prototype.fromHexString = function (t) {
if (null !== t) {
this.t = 0, this.s = 0;
for (var e = t.length, r = !1, i = 0; 0 <= --e;) {
var o = p(t, e);
o < 0 ? "-" == t.charAt(e) && (r = !0) : (r = !1, 0 == i ? this[this.t++] = o : i + 4 > this.DB ? (this[this.t - 1] |= (o & (1 << this.DB - i) - 1) << i, this[this.t++] = o >> this.DB - i) : this[this.t - 1] |= o << i, (i += 4) >= this.DB && (i -= this.DB));
}
this.clamp(), r && g.ZERO.subTo(this, this);
}
}, g.prototype.negate = function () {
var t = T();
return g.ZERO.subTo(this, t), t;
}, g.prototype.abs = function () {
return this.s < 0 ? this.negate() : this;
}, g.prototype.mod = function (t) {
var e = T();
return this.abs().divRemTo(t, null, e), this.s < 0 && 0 < e.compareTo(g.ZERO) && t.subTo(e, e), e;
}, g.prototype.copyTo = function (t) {
for (var e = this.t - 1; 0 <= e; --e) {
t[e] = this[e];
}
t.t = this.t, t.s = this.s;
}, g.prototype.lShiftTo = function (t, e) {
for (var r = t % this.DB, i = this.DB - r, o = (1 << i) - 1, n = Math.floor(t / this.DB), s = this.s << r & this.DM, a = this.t - 1; 0 <= a; --a) {
e[a + n + 1] = this[a] >> i | s, s = (this[a] & o) << r;
}
for (a = n - 1; 0 <= a; --a) {
e[a] = 0;
}
e[n] = s, e.t = this.t + n + 1, e.s = this.s, e.clamp();
}, g.prototype.invDigit = function () {
if (this.t < 1) return 0;
var t = this[0];
if (0 == (1 & t)) return 0;
var e = 3 & t;
return 0 < (e = (e = (e = (e = e * (2 - (15 & t) * e) & 15) * (2 - (255 & t) * e) & 255) * (2 - ((65535 & t) * e & 65535)) & 65535) * (2 - t * e % this.DV) % this.DV) ? this.DV - e : -e;
}, g.prototype.dlShiftTo = function (t, e) {
for (var r = this.t - 1; 0 <= r; --r) {
e[r + t] = this[r];
}
for (r = t - 1; 0 <= r; --r) {
e[r] = 0;
}
e.t = this.t + t, e.s = this.s;
}, g.prototype.squareTo = function (t) {
for (var e = this.abs(), r = t.t = 2 * e.t; 0 <= --r;) {
t[r] = 0;
}
for (r = 0; r < e.t - 1; ++r) {
var i = e.am(r, e[r], t, 2 * r, 0, 1);
(t[r + e.t] += e.am(r + 1, 2 * e[r], t, 2 * r + 1, i, e.t - r - 1)) >= e.DV && (t[r + e.t] -= e.DV, t[r + e.t + 1] = 1);
}
0 < t.t && (t[t.t - 1] += e.am(r, e[r], t, 2 * r, 0, 1)), t.s = 0, t.clamp();
}, g.prototype.multiplyTo = function (t, e) {
var r = this.abs(),
i = t.abs(),
o = r.t;
for (e.t = o + i.t; 0 <= --o;) {
e[o] = 0;
}
for (o = 0; o < i.t; ++o) {
e[o + r.t] = r.am(0, i[o], e, o, 0, r.t);
}
e.s = 0, e.clamp(), this.s != t.s && g.ZERO.subTo(e, e);
}, g.prototype.divRemTo = function (t, e, r) {
var i = t.abs();
if (!(i.t <= 0)) {
var o = this.abs();
if (o.t < i.t) return null != e && e.fromHexString("0"), void (null != r && this.copyTo(r));
null == r && (r = T());
var n = T(),
s = this.s,
a = t.s,
p = this.DB - C(i[i.t - 1]);
0 < p ? (i.lShiftTo(p, n), o.lShiftTo(p, r)) : (i.copyTo(n), o.copyTo(r));
var u = n.t,
c = n[u - 1];
if (0 != c) {
var d = c * (1 << this.F1) + (1 < u ? n[u - 2] >> this.F2 : 0),
h = this.FV / d,
f = (1 << this.F1) / d,
l = 1 << this.F2,
m = r.t,
v = m - u,
y = null == e ? T() : e;
for (n.dlShiftTo(v, y), 0 <= r.compareTo(y) && (r[r.t++] = 1, r.subTo(y, r)), g.ONE.dlShiftTo(u, y), y.subTo(n, n); n.t < u;) {
n[n.t++] = 0;
}
for (; 0 <= --v;) {
var b = r[--m] == c ? this.DM : Math.floor(r[m] * h + (r[m - 1] + l) * f);
if ((r[m] += n.am(0, b, r, v, 0, u)) < b) for (n.dlShiftTo(v, y), r.subTo(y, r); r[m] < --b;) {
r.subTo(y, r);
}
}
null != e && (r.drShiftTo(u, e), s != a && g.ZERO.subTo(e, e)), r.t = u, r.clamp(), 0 < p && r.rShiftTo(p, r), s < 0 && g.ZERO.subTo(r, r);
}
}
}, g.prototype.rShiftTo = function (t, e) {
e.s = this.s;
var r = Math.floor(t / this.DB);
if (r >= this.t) e.t = 0;else {
var i = t % this.DB,
o = this.DB - i,
n = (1 << i) - 1;
e[0] = this[r] >> i;
for (var s = r + 1; s < this.t; ++s) {
e[s - r - 1] |= (this[s] & n) << o, e[s - r] = this[s] >> i;
}
0 < i && (e[this.t - r - 1] |= (this.s & n) << o), e.t = this.t - r, e.clamp();
}
}, g.prototype.drShiftTo = function (t, e) {
for (var r = t; r < this.t; ++r) {
e[r - t] = this[r];
}
e.t = Math.max(this.t - t, 0), e.s = this.s;
}, g.prototype.subTo = function (t, e) {
for (var r = 0, i = 0, o = Math.min(t.t, this.t); r < o;) {
i += this[r] - t[r], e[r++] = i & this.DM, i >>= this.DB;
}
if (t.t < this.t) {
for (i -= t.s; r < this.t;) {
i += this[r], e[r++] = i & this.DM, i >>= this.DB;
}
i += this.s;
} else {
for (i += this.s; r < t.t;) {
i -= t[r], e[r++] = i & this.DM, i >>= this.DB;
}
i -= t.s;
}
e.s = i < 0 ? -1 : 0, i < -1 ? e[r++] = this.DV + i : 0 < i && (e[r++] = i), e.t = r, e.clamp();
}, g.prototype.clamp = function () {
for (var t = this.s & this.DM; 0 < this.t && this[this.t - 1] == t;) {
--this.t;
}
}, g.prototype.modPowInt = function (t, e) {
var r = new (t < 256 "http://slate.com/" e.isEven() ? d : f)(e);
return this.exp(t, r);
}, g.prototype.exp = function (t, e) {
if (4294967295 < t "http://slate.com/" t < 1) return g.ONE;
var r,
i = T(),
o = T(),
n = e.convert(this),
s = C(t) - 1;
for (n.copyTo(i); 0 <= --s;) {
e.sqrTo(i, o), 0 < (t & 1 << s) ? e.mulTo(o, n, i) : (r = i, i = o, o = r);
}
return e.revert(i);
}, g.prototype.isEven = function () {
return 0 == (0 < this.t ? 1 & this[0] : this.s);
}, g.prototype.compareTo = function (t) {
var e = this.s - t.s;
if (0 != e) return e;
var r = this.t;
if (0 != (e = r - t.t)) return this.s < 0 ? -e : e;
for (; 0 <= --r;) {
if (0 != (e = this[r] - t[r])) return e;
}
return 0;
}, g.prototype.am1 = function (t, e, r, i, o, n) {
for (; 0 <= --n;) {
var s = e * this[t++] + r[i] + o;
o = Math.floor(s / 67108864), r[i++] = 67108863 & s;
}
return o;
}, g.prototype.am2 = function (t, e, r, i, o, n) {
for (var s = 32767 & e, a = e >> 15; 0 <= --n;) {
var p = 32767 & this[t],
u = this[t++] >> 15,
c = a * p + u * s;
o = ((p = s * p + ((32767 & c) << 15) + r[i] + (1073741823 & o)) >>> 30) + (c >>> 15) + a * u + (o >>> 30), r[i++] = 1073741823 & p;
}
return o;
}, g.prototype.am3 = function (t, e, r, i, o, n) {
for (var s = 16383 & e, a = e >> 14; 0 <= --n;) {
var p = 16383 & this[t],
u = this[t++] >> 14,
c = a * p + u * s;
o = ((p = s * p + ((16383 & c) << 14) + r[i] + o) >> 28) + (c >> 14) + a * u, r[i++] = 268435455 & p;
}
return o;
}, g);
function g(t) {
null !== t && this.fromHexString(t);
}
function T() {
return new o(null);
}
function C(t) {
var e,
r = 1;
return 0 != (e = t >>> 16) && (t = e, r += 16), 0 != (e = t >> 8) && (t = e, r += 8), 0 != (e = t >> 4) && (t = e, r += 4), 0 != (e = t >> 2) && (t = e, r += 2), 0 != (e = t >> 1) && (t = e, r += 1), r;
}
e.BigInteger = o, e.nbi = T, e.nbits = C;
for (var n = [], s = "0".charCodeAt(0), a = 0; a <= 9; ++a) {
n[s++] = a;
}
for (s = "a".charCodeAt(0), a = 10; a < 36; ++a) {
n[s++] = a;
}
for (s = "A".charCodeAt(0), a = 10; a < 36; ++a) {
n[s++] = a;
}
function p(t, e) {
var r = n[t.charCodeAt(e)];
return null == r ? -1 : r;
}
e.intAt = p;
var u = "0123456789abcdefghijklmnopqrstuvwxyz";
function c(t) {
return u.charAt(t);
}
e.int2char = c;
e.b64toHex = function (t) {
for (var e = "http://slate.com/", r = 0, i = 0, o = 0; o < t.length && "=" != t.charAt(o); ++o) {
var n = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(t.charAt(o));
n < 0 "http://slate.com/" (r = 0 == r ? (e += c(n >> 2), i = 3 & n, 1) : 1 == r ? (e += c(i << 2 | n >> 4), i = 15 & n, 2) : 2 == r ? (e += c(i), e += c(n >> 2), i = 3 & n, 3) : (e += c(i << 2 | n >> 4), e += c(15 & n), 0));
}
return 1 == r && (e += c(i << 2)), e;
}, e.removeExtraSymbols = function (t) {
return t.replace(/^1f+00/, "http://slate.com/").replace("3031300d060960864801650304020105000420"http://slate.com/,"http://slate.com/");
};
var d = (h.prototype.convert = function (t) {
return t.s < 0 "http://slate.com/" 0 <= t.compareTo(this.m) ? t.mod(this.m) : t;
}, h.prototype.revert = function (t) {
return t;
}, h.prototype.reduce = function (t) {
t.divRemTo(this.m, null, t);
}, h.prototype.mulTo = function (t, e, r) {
t.multiplyTo(e, r), this.reduce(r);
}, h.prototype.sqrTo = function (t, e) {
t.squareTo(e), this.reduce(e);
}, h);
function h(t) {
this.m = t;
}
var f = (l.prototype.convert = function (t) {
var e = T();
return t.abs().dlShiftTo(this.m.t, e), e.divRemTo(this.m, null, e), t.s < 0 && 0 < e.compareTo(o.ZERO) && this.m.subTo(e, e), e;
}, l.prototype.revert = function (t) {
var e = T();
return t.copyTo(e), this.reduce(e), e;
}, l.prototype.reduce = function (t) {
for (; t.t <= this.mt2;) {
t[t.t++] = 0;
}
for (var e = 0; e < this.m.t; ++e) {
var r = 32767 & t[e],
i = r * this.mpl + ((r * this.mph + (t[e] >> 15) * this.mpl & this.um) << 15) & t.DM;
for (t[r = e + this.m.t] += this.m.am(0, i, t, e, 0, this.m.t); t[r] >= t.DV;) {
t[r] -= t.DV, t[++r]++;
}
}
t.clamp(), t.drShiftTo(this.m.t, t), 0 <= t.compareTo(this.m) && t.subTo(this.m, t); }, l.prototype.mulTo = function (t, e, r) { t.multiplyTo(e, r), this.reduce(r); }, l.prototype.sqrTo = function (t, e) { t.squareTo(e), this.reduce(e); }, l); function l(t) { this.m = t, this.mp = t.invDigit(), this.mpl = 32767 & this.mp, this.mph = this.mp >> 15, this.um = (1 << t.DB - 15) - 1, this.mt2 = 2 * t.t; } function m(t) { var e = T(); return e.fromHexString(t.toString()), e; } e.nbv = m, o.ZERO = m(0), o.ONE = m(1), i = "Microsoft Internet Explorer" == navigator.appName ? (o.prototype.am = o.prototype.am2, 30) : "Netscape" != navigator.appName ? (o.prototype.am = o.prototype.am1, 26) : (o.prototype.am = o.prototype.am3, 28), o.prototype.DB = i, o.prototype.DM = (1 << i) - 1, o.prototype.DV = 1 << i; o.prototype.FV = Math.pow(2, 52), o.prototype.F1 = 52 - i, o.prototype.F2 = 2 * i - 52; }, 384: function _(t, e, r) { "use strict"; Object.defineProperty(e, "__esModule", { value: !0 }); var i = (S.hash = function (t) { t = S.utf8Encode(t "http://slate.com/"http://slate.com/"http://slate.com/"); for (var e = [1116352408, 1899447441, 3049323471, 3921009573, 961987163, 1508970993, 2453635748, 2870763221, 3624381080, 310598401, 607225278, 1426881987, 1925078388, 2162078206, 2614888103, 3248222580, 3835390401, 4022224774, 264347078, 604807628, 770255983, 1249150122, 1555081692, 1996064986, 2554220882, 2821834349, 2952996808, 3210313671, 3336571891, 3584528711, 113926993, 338241895, 666307205, 773529912, 1294757372, 1396182291, 1695183700, 1986661051, 2177026350, 2456956037, 2730485921, 2820302411, 3259730800, 3345764771, 3516065817, 3600352804, 4094571909, 275423344, 430227734, 506948616, 659060556, 883997877, 958139571, 1322822218, 1537002063, 1747873779, 1955562222, 2024104815, 2227730452, 2361852424, 2428436474, 2756734187, 3204031479, 3329325298], r = [1779033703, 3144134277, 1013904242, 2773480762, 1359893119, 2600822924, 528734635, 1541459225], i = (t += String.fromCharCode(128)).length / 4 + 2, o = Math.ceil(i / 16), n = new Array(o), s = 0; s < o; s++) { n[s] = new Array(16); for (var a = 0; a < 16; a++) { n[s][a] = t.charCodeAt(64 * s + 4 * a) << 24 | t.charCodeAt(64 * s + 4 * a + 1) << 16 | t.charCodeAt(64 * s + 4 * a + 2) << 8 | t.charCodeAt(64 * s + 4 * a + 3) << 0; } } var p = 8 * (t.length - 1) / Math.pow(2, 32), u = 8 * (t.length - 1) >>> 0;
for (n[o - 1][14] = Math.floor(p), n[o - 1][15] = u, s = 0; s < o; s++) {
for (var c = new Array(64), d = 0; d < 16; d++) {
c[d] = n[s][d];
}
for (d = 16; d < 64; d++) {
c[d] = S.q1(c[d - 2]) + c[d - 7] + S.q0(c[d - 15]) + c[d - 16] >>> 0;
}
for (var h = r[0], f = r[1], l = r[2], m = r[3], v = r[4], y = r[5], b = r[6], g = r[7], d = 0; d < 64; d++) {
var T = g + S.z1(v) + S.Ch(v, y, b) + e[d] + c[d],
C = S.z0(h) + S.Maj(h, f, l);
g = b, b = y, y = v, v = m + T >>> 0, m = l, l = f, f = h, h = T + C >>> 0;
}
r[0] = r[0] + h >>> 0, r[1] = r[1] + f >>> 0, r[2] = r[2] + l >>> 0, r[3] = r[3] + m >>> 0, r[4] = r[4] + v >>> 0, r[5] = r[5] + y >>> 0, r[6] = r[6] + b >>> 0, r[7] = r[7] + g >>> 0;
}
for (var A = new Array(r.length), g = 0; g < r.length; g++) {
A[g] = ("00000000" + r[g].toString(16)).slice(-8);
}
return A.join("http://slate.com/");
}, S.utf8Encode = function (e) {
try {
return new TextEncoder().encode(e).reduce(function (t, e) {
return t + String.fromCharCode(e);
}, "http://slate.com/");
} catch (t) {
return unescape(encodeURIComponent(e));
}
}, S.ROTR = function (t, e) {
return e >>> t | e << 32 - t;
}, S.z0 = function (t) {
return S.ROTR(2, t) ^ S.ROTR(13, t) ^ S.ROTR(22, t);
}, S.z1 = function (t) {
return S.ROTR(6, t) ^ S.ROTR(11, t) ^ S.ROTR(25, t);
}, S.q0 = function (t) {
return S.ROTR(7, t) ^ S.ROTR(18, t) ^ t >>> 3;
}, S.q1 = function (t) {
return S.ROTR(17, t) ^ S.ROTR(19, t) ^ t >>> 10;
}, S.Ch = function (t, e, r) {
return t & e ^ ~t & r;
}, S.Maj = function (t, e, r) {
return t & e ^ t & r ^ e & r;
}, S);
function S() {}
e.Sha256 = i;
}
}, [380]);
pbjsChunk([187], {
481: function _(e, r, t) {
e.exports = t(482);
},
482: function _(e, r, t) {
"use strict";
Object.defineProperty(r, "__esModule", {
value: !0
}), t.d(r, "spec", function () {
return m;
});
var b = t(0),
y = t(2),
h = t(3),
i = t(11),
l = t.n(i),
a = t(483),
n = t.n(a),
s = t(1);
function v(e) {
return (v = "function" == typeof Symbol && "symbol" == _typeof(Symbol.iterator) ? function (e) {
return _typeof(e);
} : function (e) {
return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : _typeof(e);
})(e);
}
var o = [y.b, y.d],
g = 100,
w = 300,
x = 3600,
I = !0,
P = {
JPY: 1
};
function p(e) {
var r = {};
return r.id = e.bidId, r.ext = {}, r.ext.siteID = e.params.siteId, !e.params.hasOwnProperty("id") "http://slate.com/"http://slate.com/"string" != typeof e.params.id && "number" != typeof e.params.id ? r.ext.sid = "http://slate.com/".concat(e.params.size[0], "x").concat(e.params.size[1]) : r.ext.sid = String(e.params.id), e.params.hasOwnProperty("bidFloor") && e.params.hasOwnProperty("bidFloorCur") && (r.bidfloor = e.params.bidFloor, r.bidfloorcur = e.params.bidFloorCur), r;
}
function d(e) {
return Array.isArray(e) && 2 === e.length && n()(e[0]) && n()(e[1]);
}
function c(e, r) {
if (d(e)) return e[0] === r[0] && e[1] === r[1];
for (var t = 0; t < e.length; t++) { if (e[t][0] === r[0] && e[t][1] === r[1]) return 1; } } function u(e, r, t, i) { var a = []; if (window.headertag && "function" == typeof window.headertag.getIdentityInfo) { var n, s = window.headertag.getIdentityInfo(); if (s && "object" === v(s)) for (var o in s) { !s.hasOwnProperty(o) "http://slate.com/" !(n = s[o]).responsePending && n.data && "object" === v(n.data) && Object.keys(n.data).length && a.push(n.data); } } var d, p = {}; p.id = e[0].bidderRequestId, p.imp = t, p.site = {}, p.ext = {}, p.ext.source = "prebid", e[0].schain && (p.source = { ext: { schain: e[0].schain } }), 0 < a.length && (p.user = {}, p.user.eids = a), document.referrer && "http://slate.com/" !== document.referrer && (p.site.ref = document.referrer), r && (r.gdprConsent && ((d = r.gdprConsent).hasOwnProperty("gdprApplies") && (p.regs = { ext: { gdpr: d.gdprApplies ? 1 : 0 } }), d.hasOwnProperty("consentString") && (p.user = p.user "http://slate.com/" {}, p.user.ext = { consent: d.consentString "http://slate.com/"http://slate.com/"http://slate.com/" })), r.uspConsent && b.deepSetValue(p, "regs.ext.us_privacy", r.uspConsent), r.refererInfo && (p.site.page = r.refererInfo.referer)); var c = {}, u = r && r.bidderCode "http://slate.com/"http://slate.com/"ix", m = h.b.getConfig(u); if (m) { if ("object" === v(m.firstPartyData)) { var f = m.firstPartyData, y = "?"; for (var l in f) { f.hasOwnProperty(l) && (y += "http://slate.com/".concat(encodeURIComponent(l), "=").concat(encodeURIComponent(f[l]), "&")); } y = y.slice(0, -1), p.site.page += y; } "number" == typeof m.timeout && (c.t = m.timeout); } return c.s = e[0].params.siteId, c.v = i, c.r = JSON.stringify(p), c.ac = "j", c.sd = 1, 8.1 === i && (c.nf = 1), { method: "GET", url: "https://as-sec.casalemedia.com/cygnus", data: c }; } var m = { code: "ix", gvlid: 10, supportedMediaTypes: o, isBidRequestValid: function isBidRequestValid(e) { if (!d(e.params.size)) return b.logError("ix bidder params: bid size has invalid format."), !1; if (!c(e.sizes, e.params.size)) return b.logError("ix bidder params: bid size is not included in ad unit sizes."), !1; if (e.hasOwnProperty("mediaType") && !b.contains(o, e.mediaType)) return !1; if (e.hasOwnProperty("mediaTypes") && !b.deepAccess(e, "mediaTypes.banner.sizes") && !b.deepAccess(e, "mediaTypes.video.playerSize")) return !1; if ("string" != typeof e.params.siteId && "number" != typeof e.params.siteId) return b.logError("ix bidder params: siteId must be string or number value."), !1; var r, t, i = e.params.hasOwnProperty("bidFloor"), a = e.params.hasOwnProperty("bidFloorCur"); return !!(!i && !a "http://slate.com/" i && a && (r = e.params.bidFloor, t = e.params.bidFloorCur, Boolean("number" == typeof r && "string" == typeof t && t.match(/^[A-Z]{3}$/)))) "http://slate.com/" (b.logError("ix bidder params: bidFloor / bidFloorCur parameter has invalid format."), !1); }, buildRequests: function buildRequests(e, r) { for (var t, i, a = [], n = [], s = [], o = null, d = 0; d < e.length; d++) { (o = e[d]).mediaType !== y.d && !b.deepAccess(o, "mediaTypes.video") "http://slate.com/" (o.mediaType === y.d "http://slate.com/" c(o.mediaTypes.video.playerSize, o.params.size) ? s.push(function (e) { var r = p(e); r.video = b.deepClone(e.params.video), r.video.w = e.params.size[0], r.video.h = e.params.size[1]; var t = b.deepAccess(e, "mediaTypes.video.context"); return t && ("instream" === t ? r.video.placement = 1 : "outstream" === t ? r.video.placement = 4 : b.logWarn("ix bidder params: video context "http://slate.com/".concat(t, "http://slate.com/" is not supported"))), r; }(o)) : b.logError("Bid size is not included in video playerSize")), o.mediaType !== y.b && !b.deepAccess(o, "mediaTypes.banner") && (o.mediaType "http://slate.com/" o.mediaTypes) "http://slate.com/" n.push((i = void 0, (i = p(t = o)).banner = {}, i.banner.w = t.params.size[0], i.banner.h = t.params.size[1], i.banner.topframe = b.inIframe() ? 0 : 1, i)); } return 0 < n.length && a.push(u(e, r, n, 7.2)), 0 < s.length && a.push(u(e, r, s, 8.1)), a; }, interpretResponse: function interpretResponse(e, r) { var t = []; if (!e.hasOwnProperty("body") "http://slate.com/" !e.body.hasOwnProperty("seatbid")) return t; for (var i, a, n, s, o = e.body, d = o.seatbid, p = 0; p < d.length; p++) { if (d[p].hasOwnProperty("bid")) for (var c = d[p].bid, u = JSON.parse(r.data.r), m = 0; m < c.length; m++) { var f = function (r, e) { if (r) return l()(e, function (e) { return e.id === r; }); }(c[m].impid, u.imp); i = c[m], a = o.cur, n = f, s = void 0, s = {}, P.hasOwnProperty(a) ? s.cpm = i.price / P[a] : s.cpm = i.price / g, s.requestId = i.impid, s.dealId = b.deepAccess(i, "ext.dealid"), s.netRevenue = I, s.currency = a, s.creativeId = i.hasOwnProperty("crid") ? i.crid : "-", b.deepAccess(i, "ext.vasturl") ? (s.vastUrl = i.ext.vasturl, s.width = n.video.w, s.height = n.video.h, s.mediaType = y.d, s.ttl = x) : (s.ad = i.adm, s.width = i.w, s.height = i.h, s.mediaType = y.b, s.ttl = w), s.meta = {}, s.meta.networkId = b.deepAccess(i, "ext.dspid"), s.meta.brandId = b.deepAccess(i, "ext.advbrandid"), s.meta.brandName = b.deepAccess(i, "ext.advbrand"), t.push(s); } } return t; }, transformBidParams: function transformBidParams(e) { return b.convertTypes({ siteID: "number" }, e); }, getUserSyncs: function getUserSyncs(e) { return e.iframeEnabled ? [{ type: "iframe", url: "https://js-sec.indexww.com/um/ixmatch.html" }] : []; } }; Object(s.registerBidder)(m); } }, [481]); pbjsChunk([184], { 493: function _(e, t, r) { e.exports = r(494); }, 494: function _(e, t, r) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), r.d(t, "spec", function () { return l; }); var s = r(0), d = r(3), n = r(1), a = r(9); function g() { return (g = Object.assign "http://slate.com/" function (e) { for (var t = 1; t < arguments.length; t++) { var r = arguments[t]; for (var n in r) { Object.prototype.hasOwnProperty.call(r, n) && (e[n] = r[n]); } } return e; }).apply(this, arguments); } var o, i, c, u = Object(a.b)(), l = { code: "kargo", isBidRequestValid: function isBidRequestValid(e) { return !(!e "http://slate.com/" !e.params) && !!e.params.placementId; }, buildRequests: function buildRequests(e, t) { var r, n = d.b.getConfig("currency"), a = n && n.adServerCurrency "http://slate.com/"http://slate.com/"USD", o = {}, i = {}; s._each(e, function (e) { o[e.bidId] = e.params.placementId, i[e.bidId] = e.sizes; }), 0 < e.length && e[0].userId && e[0].userId.tdid && (r = e[0].userId.tdid); var c = g({}, { sessionId: l._getSessionId(), requestCount: l._getRequestCount(), timeout: t.timeout, currency: a, cpmGranularity: 1, timestamp: new Date().getTime(), cpmRange: { floor: 0, ceil: 20 }, bidIDs: o, bidSizes: i, prebidRawBidRequests: e }, l._getAllMetadata(r, t.uspConsent)), u = encodeURIComponent(JSON.stringify(c)); return g({}, t, { method: "GET", url: "http://slate.com/".concat("https://krk.kargo.com"http://slate.com/,"/api/v2/bid"), data: "json=".concat(u), currency: a }); }, interpretResponse: function interpretResponse(e, t) { var r = e.body, n = []; for (var a in r) { var o = r[a], i = void 0; o.metadata && o.metadata.landingPageDomain && (i = { clickUrl: o.metadata.landingPageDomain }), n.push({ requestId: a, cpm: Number(o.cpm), width: o.width, height: o.height, ad: o.adm, ttl: 300, creativeId: o.id, dealId: o.targetingCustom, netRevenue: !0, currency: t.currency, meta: i }); } return n; }, getUserSyncs: function getUserSyncs(e) { var t = [], r = l._generateRandomUuid(), n = l._getClientId(); if (e.iframeEnabled && r && n) for (var a = 0; a < 5; a++) { t.push({ type: "iframe", url: "https://crb.kargo.com/api/v1/initsyncrnd/{UUID}?seed={SEED}&idx={INDEX}".replace("{UUID}", n).replace("{SEED}", r).replace("{INDEX}", a) }); } return t; }, _readCookie: function _readCookie(e) { if (!u.cookiesAreEnabled()) return null; for (var t = "http://slate.com/".concat(e, "="), r = document.cookie.split(";"), n = 0; n < r.length; n++) { for (var a = r[n]; "http://slate.com/" === a.charAt(0);) { a = a.substring(1, a.length); } if (0 === a.indexOf(t)) return a.substring(t.length, a.length); } return null; }, _getCrbFromCookie: function _getCrbFromCookie() { try { var e = JSON.parse(decodeURIComponent(l._readCookie("krg_crb"))); if (e && e.v) { var t = JSON.parse(atob(e.v)); if (t) return t; } return {}; } catch (e) { return {}; } }, _getCrbFromLocalStorage: function _getCrbFromLocalStorage() { try { return JSON.parse(atob(l._getLocalStorageSafely("krg_crb"))); } catch (e) { return {}; } }, _getCrb: function _getCrb() { var e = l._getCrbFromLocalStorage(); return Object.keys(e).length ? e : l._getCrbFromCookie(); }, _getKruxUserId: function _getKruxUserId() { return l._getLocalStorageSafely("kxkar_user"); }, _getKruxSegments: function _getKruxSegments() { return l._getLocalStorageSafely("kxkar_segs"); }, _getKrux: function _getKrux() { var e = l._getKruxSegments(), t = []; return e && (t = e.split(",")), { userID: l._getKruxUserId(), segments: t }; }, _getLocalStorageSafely: function _getLocalStorageSafely(e) { try { return u.getDataFromLocalStorage(e); } catch (e) { return null; } }, _getUserIds: function _getUserIds(e, t) { var r = l._getCrb(), n = { kargoID: r.userId, clientID: r.clientId, crbIDs: r.syncIds "http://slate.com/" {}, optOut: r.optOut, usp: t }; return e && (n.tdID = e), n; }, _getClientId: function _getClientId() { return l._getCrb().clientId; }, _getAllMetadata: function _getAllMetadata(e, t) { return { userIDs: l._getUserIds(e, t), krux: l._getKrux(), pageURL: window.location.href, rawCRB: l._readCookie("krg_crb"), rawCRBLocalStorage: l._getLocalStorageSafely("krg_crb") }; }, _getSessionId: function _getSessionId() { return o = o "http://slate.com/" l._generateRandomUuid(); }, _getRequestCount: function _getRequestCount() { return i === window.location.pathname ? ++c : (i = window.location.pathname, c = 0); }, _generateRandomUuid: function _generateRandomUuid() { try { var e = new Uint8Array(16); crypto.getRandomValues(e), e[6] = -177 & e[6] | 64, e[8] = -65 & e[8] | 128; var t = Array.prototype.map.call(new Uint8Array(e), function (e) { return ("00" + e.toString(16)).slice(-2); }).join("http://slate.com/"); return t.slice(0, 8) + "-" + t.slice(8, 12) + "-" + t.slice(12, 16) + "-" + t.slice(16, 20) + "-" + t.slice(20); } catch (e) { return "http://slate.com/"; } } }; Object(n.registerBidder)(l); } }, [493]); pbjsChunk([110], { 677: function _(e, r, t) { e.exports = t(678); }, 678: function _(e, r, t) { "use strict"; Object.defineProperty(r, "__esModule", { value: !0 }), t.d(r, "FASTLANE_ENDPOINT", function () { return o; }), t.d(r, "VIDEO_ENDPOINT", function () { return l; }), t.d(r, "SYNC_ENDPOINT", function () { return a; }), t.d(r, "spec", function () { return h; }), r.hasVideoMediaType = c, r.masSizeOrdering = S, r.determineRubiconVideoSizeId = C, r.getPriceGranularity = j, r.hasValidVideoParams = k, r.hasValidSupplyChainParams = T, r.encodeParam = w, r.resetUserSync = function () { R = !1; }; var g = t(0), i = t(1), b = t(3), u = t(2); function v(e, r) { return function (e) { if (Array.isArray(e)) return e; }(e) "http://slate.com/" function (e, r) { if ("undefined" == typeof Symbol "http://slate.com/" !(Symbol.iterator in Object(e))) return; var t = [], i = !0, n = !1, o = void 0; try { for (var a, s = e[Symbol.iterator](); !(i = (a = s.next()).done) && (t.push(a.value), !r "http://slate.com/" t.length !== r); i = !0) { ; } } catch (e) { n = !0, o = e; } finally { try { i "http://slate.com/" null == s.return "http://slate.com/" s.return(); } finally { if (n) throw o; } } return t; }(e, r) "http://slate.com/" function (e, r) { if (!e) return; if ("string" == typeof e) return n(e, r); var t = Object.prototype.toString.call(e).slice(8, -1); "Object" === t && e.constructor && (t = e.constructor.name); if ("Map" === t "http://slate.com/"http://slate.com/"Set" === t) return Array.from(e); if ("Arguments" === t "http://slate.com/" /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)) return n(e, r); }(e, r) "http://slate.com/" function () { throw new TypeError("Invalid attempt to destructure non-iterable instance.nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }(); } function n(e, r) { (null == r "http://slate.com/" r > e.length) && (r = e.length);
for (var t = 0, i = new Array(r); t < r; t++) { i[t] = e[t]; } return i; } function y() { return (y = Object.assign "http://slate.com/" function (e) { for (var r = 1; r < arguments.length; r++) { var t = arguments[r]; for (var i in t) { Object.prototype.hasOwnProperty.call(t, i) && (e[i] = t[i]); } } return e; }).apply(this, arguments); } function p(e, r, t) { return r in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } function x(e) { return (x = "function" == typeof Symbol && "symbol" == _typeof(Symbol.iterator) ? function (e) { return _typeof(e); } : function (e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : _typeof(e); })(e); } var o = "https://fastlane.rubiconproject.com/a/api/fastlane.json", l = "https://prebid-server.rubiconproject.com/openrtb2/auction", a = "https://eus.rubiconproject.com/usync.html", d = { FASTLANE: { id: "dt.id", keyv: "dt.keyv", pref: "dt.pref" }, PREBID_SERVER: { id: "id", keyv: "keyv" } }, f = { 1: "468x60", 2: "728x90", 5: "120x90", 8: "120x600", 9: "160x600", 10: "300x600", 13: "200x200", 14: "250x250", 15: "300x250", 16: "336x280", 17: "240x400", 19: "300x100", 31: "980x120", 32: "250x360", 33: "180x500", 35: "980x150", 37: "468x400", 38: "930x180", 39: "750x100", 40: "750x200", 41: "750x300", 42: "2x4", 43: "320x50", 44: "300x50", 48: "300x300", 53: "1024x768", 54: "300x1050", 55: "970x90", 57: "970x250", 58: "1000x90", 59: "320x80", 60: "320x150", 61: "1000x1000", 64: "580x500", 65: "640x480", 66: "930x600", 67: "320x480", 68: "1800x1000", 72: "320x320", 73: "320x160", 78: "980x240", 79: "980x300", 80: "980x400", 83: "480x300", 85: "300x120", 90: "548x150", 94: "970x310", 95: "970x100", 96: "970x210", 101: "480x320", 102: "768x1024", 103: "480x280", 105: "250x800", 108: "320x240", 113: "1000x300", 117: "320x100", 125: "800x250", 126: "200x600", 144: "980x600", 145: "980x150", 152: "1000x250", 156: "640x320", 159: "320x250", 179: "250x600", 195: "600x300", 198: "640x360", 199: "640x200", 213: "1030x590", 214: "980x360", 221: "1x1", 229: "320x180", 230: "2000x1400", 232: "580x400", 234: "6x6", 251: "2x2", 256: "480x820", 257: "400x600", 258: "500x200", 259: "998x200", 264: "970x1000", 265: "1920x1080", 274: "1800x200", 278: "320x500", 282: "320x400", 288: "640x380" }; g._each(f, function (e, r) { return f[e] = r; }); var h = { code: "rubicon", gvlid: 52, supportedMediaTypes: [u.b, u.d], isBidRequestValid: function isBidRequestValid(e) { if ("object" !== x(e.params)) return !1; for (var r = 0, t = ["accountId"http://slate.com/,"siteId"http://slate.com/,"zoneId"]; r < t.length; r++) { if (e.params[t[r]] = parseInt(e.params[t[r]]), isNaN(e.params[t[r]])) return g.logError("Rubicon: wrong format of accountId or siteId or zoneId."), !1; } var i = m(e, !0); return !!i && ("video" !== i "http://slate.com/" k(e)); }, buildRequests: function buildRequests(e, u) { var n, r = e.filter(function (e) { return "video" === m(e); }).map(function (e) { e.startTime = new Date().getTime(); var r, t, i = { id: e.transactionId, test: b.b.getConfig("debug") ? 1 : 0, cur: ["USD"], source: { tid: e.transactionId }, tmax: b.b.getConfig("TTL") "http://slate.com/" 1e3, imp: [{ exp: 300, id: e.adUnitCode, secure: 1, ext: p({}, e.bidder, e.params), video: g.deepAccess(e, "mediaTypes.video") "http://slate.com/" {} }], ext: { prebid: { cache: { vastxml: { returnCreative: !1 } }, targeting: { includewinners: !0, includebidderkeys: !1, pricegranularity: j(b.b) }, bidders: { rubicon: { integration: b.b.getConfig("rubicon.int_type") "http://slate.com/"http://slate.com/"pbjs" } } } } }; "rubicon" !== e.bidder && (i.ext.prebid.aliases = p({}, e.bidder, "rubicon")), t = "function" != typeof e.getFloor "http://slate.com/" b.b.getConfig("rubicon.disableFloors") ? parseFloat(g.deepAccess(e, "params.floor")) : "object" !== x(r = e.getFloor({ currency: "USD", mediaType: "video", size: A(e, "video") })) "http://slate.com/"http://slate.com/"USD" !== r.currency "http://slate.com/" isNaN(parseInt(r.floor)) ? void 0 : parseFloat(r.floor), isNaN(t) "http://slate.com/" (i.imp[0].bidfloor = t), i.imp[0].ext[e.bidder].video.size_id = C(e), function (r, t, e) { if (!r) return; "object" === x(b.b.getConfig("app")) ? r.app = b.b.getConfig("app") : r.site = { page: I(t, e) }; "object" === x(b.b.getConfig("device")) && (r.device = b.b.getConfig("device")); t.params.video.language && ["site"http://slate.com/,"device"].forEach(function (e) { r[e] && (r[e].content = y({ language: t.params.video.language }, r[e].content)); }); }(i, e, u), function (e, r) { "object" === x(e.imp[0].video) && void 0 === e.imp[0].video.skip && (e.imp[0].video.skip = r.params.video.skip); "object" === x(e.imp[0].video) && void 0 === e.imp[0].video.skipafter && (e.imp[0].video.skipafter = r.params.video.skipdelay); "object" === x(e.imp[0].video) && void 0 === e.imp[0].video.pos && ("atf" === r.params.position ? e.imp[0].video.pos = 1 : "btf" === r.params.position && (e.imp[0].video.pos = 3)); var t = A(r, "video"); e.imp[0].video.w = t[0], e.imp[0].video.h = t[1]; }(i, e); var n, o = _(e, "PREBID_SERVER"); o && g.deepSetValue(i, "user.ext.digitrust", o), u.gdprConsent && ("boolean" == typeof u.gdprConsent.gdprApplies && (n = u.gdprConsent.gdprApplies ? 1 : 0), g.deepSetValue(i, "regs.ext.gdpr", n), g.deepSetValue(i, "user.ext.consent", u.gdprConsent.consentString)), u.uspConsent && g.deepSetValue(i, "regs.ext.us_privacy", u.uspConsent), e.userId && "object" === x(e.userId) && (e.userId.tdid "http://slate.com/" e.userId.pubcid "http://slate.com/" e.userId.lipb "http://slate.com/" e.userId.idl_env) && (g.deepSetValue(i, "user.ext.eids", []), e.userId.tdid && i.user.ext.eids.push({ source: "adserver.org", uids: [{ id: e.userId.tdid, ext: { rtiPartner: "TDID" } }] }), e.userId.pubcid && i.user.ext.eids.push({ source: "pubcommon", uids: [{ id: e.userId.pubcid }] }), e.userId.lipb && e.userId.lipb.lipbid && (i.user.ext.eids.push({ source: "liveintent.com", uids: [{ id: e.userId.lipb.lipbid }] }), i.user.ext.tpid = { source: "liveintent.com", uid: e.userId.lipb.lipbid }, Array.isArray(e.userId.lipb.segments) && e.userId.lipb.segments.length && g.deepSetValue(i, "rp.target.LIseg", e.userId.lipb.segments)), e.userId.idl_env && i.user.ext.eids.push({ source: "liveramp.com", uids: [{ id: e.userId.idl_env }] })), !0 === b.b.getConfig("coppa") && g.deepSetValue(i, "regs.coppa", 1), e.schain && T(e.schain) && g.deepSetValue(i, "source.ext.schain", e.schain); var a, s = y({}, e.params.inventory, b.b.getConfig("fpd.context")), d = y({}, e.params.visitor, b.b.getConfig("fpd.user")); g.isEmpty(s) && g.isEmpty(d) "http://slate.com/" (a = { bidders: [u.bidderCode], config: { fpd: {} } }, g.isEmpty(s) "http://slate.com/" (a.config.fpd.site = s), g.isEmpty(d) "http://slate.com/" (a.config.fpd.user = d), g.deepSetValue(i, "ext.prebid.bidderconfig.0", a)); var c = g.deepAccess(e, "fpd.context.pbAdSlot"); return "string" == typeof c && c && g.deepSetValue(i.imp[0].ext, "context.data.adslot", c), e.storedAuctionResponse && g.deepSetValue(i.imp[0], "ext.prebid.storedauctionresponse.id", e.storedAuctionResponse.toString()), g.deepSetValue(i.imp[0], "ext.prebid.auctiontimestamp", u.auctionStart), { method: "POST", url: l, data: i, bidRequest: e }; }); return !0 !== b.b.getConfig("rubicon.singleRequest") ? r.concat(e.filter(function (e) { return "banner" === m(e); }).map(function (e) { var i = h.createSlotParams(e, u); return { method: "GET", url: o, data: h.getOrderedParams(i).reduce(function (e, r) { var t = i[r]; return g.isStr(t) && "http://slate.com/" !== t "http://slate.com/" g.isNumber(t) ? "http://slate.com/".concat(e).concat(w(r, t), "&") : e; }, "http://slate.com/") + "slots=1&rand=".concat(Math.random()), bidRequest: e }; })) : (n = e.filter(function (e) { return "banner" === m(e); }).reduce(function (e, r) { return (e[r.params.siteId] = e[r.params.siteId] "http://slate.com/" []).push(r), e; }, {}), r.concat(Object.keys(n).reduce(function (r, e) { var t, i; return t = n[e], i = 10, t.map(function (e, r) { return r % i == 0 ? t.slice(r, r + i) : null; }).filter(function (e) { return e; }).forEach(function (e) { var i = h.combineSlotUrlParams(e.map(function (e) { return h.createSlotParams(e, u); })); r.push({ method: "GET", url: o, data: h.getOrderedParams(i).reduce(function (e, r) { var t = i[r]; return g.isStr(t) && "http://slate.com/" !== t "http://slate.com/" g.isNumber(t) ? "http://slate.com/".concat(e).concat(w(r, t), "&") : e; }, "http://slate.com/") + "slots=".concat(e.length, "&rand=").concat(Math.random()), bidRequest: e }); }), r; }, []))); }, getOrderedParams: function getOrderedParams(e) { var r = /^tg_v/, t = /^tg_i/, i = ["account_id"http://slate.com/,"site_id"http://slate.com/,"zone_id"http://slate.com/,"size_id"http://slate.com/,"alt_size_ids"http://slate.com/,"p_pos"http://slate.com/,"gdpr"http://slate.com/,"gdpr_consent"http://slate.com/,"us_privacy"http://slate.com/,"rp_schain"http://slate.com/,"tpid_tdid"http://slate.com/,"tpid_liveintent.com"http://slate.com/,"tg_v.LIseg"http://slate.com/,"dt.id"http://slate.com/,"dt.keyv"http://slate.com/,"dt.pref"http://slate.com/,"rf"http://slate.com/,"p_geo.latitude"http://slate.com/,"p_geo.longitude"http://slate.com/,"kw"].concat(Object.keys(e).filter(function (e) { return r.test(e); })).concat(Object.keys(e).filter(function (e) { return t.test(e); })).concat(["tk_flint"http://slate.com/,"x_source.tid"http://slate.com/,"x_source.pchain"http://slate.com/,"p_screen_res"http://slate.com/,"rp_floor"http://slate.com/,"rp_secure"http://slate.com/,"tk_user_key"]); return i.concat(Object.keys(e).filter(function (e) { return -1 === i.indexOf(e); })); }, combineSlotUrlParams: function combineSlotUrlParams(n) { if (1 === n.length) return n[0]; var i = n.reduce(function (r, t, i) { return Object.keys(t).forEach(function (e) { r.hasOwnProperty(e) "http://slate.com/" (r[e] = new Array(n.length)), r[e].splice(i, 1, t[e]); }), r; }, {}), o = new RegExp("^([^;]*)(;\1)+$"); return Object.keys(i).forEach(function (e) { var r = i[e].join(";"), t = r.match(o); i[e] = t ? t[1] : r; }), i; }, createSlotParams: function createSlotParams(e, r) { e.startTime = new Date().getTime(); var t, i = e.params, n = A(e, "banner"), o = v(i.latLong "http://slate.com/" [], 2), a = o[0], s = o[1], d = b.b.getConfig("rubicon.int_type"), c = { account_id: i.accountId, site_id: i.siteId, zone_id: i.zoneId, size_id: n[0], alt_size_ids: n.slice(1).join(",") "http://slate.com/" void 0, rp_floor: .01 < (i.floor = parseFloat(i.floor)) ? i.floor : .01, rp_secure: "1", tk_flint: "http://slate.com/".concat(d "http://slate.com/"http://slate.com/"pbjs_lite"http://slate.com/,"_v3.23.0"), "x_source.tid": e.transactionId, "x_source.pchain": i.pchain, p_screen_res: [window.screen.width, window.screen.height].join("x"), tk_user_key: i.userId, "p_geo.latitude": isNaN(parseFloat(a)) ? void 0 : parseFloat(a).toFixed(4), "p_geo.longitude": isNaN(parseFloat(s)) ? void 0 : parseFloat(s).toFixed(4), "tg_fl.eid": e.code, rf: I(e, r) }; "function" != typeof e.getFloor "http://slate.com/" b.b.getConfig("rubicon.disableFloors") "http://slate.com/" (t = e.getFloor({ currency: "USD", mediaType: "banner", size: "*" }), c.rp_hard_floor = "object" !== x(t) "http://slate.com/"http://slate.com/"USD" !== t.currency "http://slate.com/" isNaN(parseInt(t.floor)) ? void 0 : t.floor), c.p_pos = "atf" === i.position "http://slate.com/"http://slate.com/"btf" === i.position ? i.position : "http://slate.com/", e.userId && (e.userId.tdid && (c.tpid_tdid = e.userId.tdid), e.userId.lipb && e.userId.lipb.lipbid && (c["tpid_liveintent.com"] = e.userId.lipb.lipbid, Array.isArray(e.userId.lipb.segments) && e.userId.lipb.segments.length && (c["tg_v.LIseg"] = e.userId.lipb.segments.join(","))), e.userId.idl_env && (c["tpid_liveramp.com"] = e.userId.idl_env)), r.gdprConsent && ("boolean" == typeof r.gdprConsent.gdprApplies && (c.gdpr = Number(r.gdprConsent.gdprApplies)), c.gdpr_consent = r.gdprConsent.consentString), r.uspConsent && (c.us_privacy = encodeURIComponent(r.uspConsent)); var u = y({}, i.visitor, b.b.getConfig("fpd.user")); Object.keys(u).forEach(function (e) { null != u[e] && "keywords" !== e && (c["tg_v.".concat(e)] = "object" !== x(u[e]) "http://slate.com/" Array.isArray(u[e]) ? u[e].toString() : JSON.stringify(u[e])); }); var p = y({}, i.inventory, b.b.getConfig("fpd.context")); Object.keys(p).forEach(function (e) { null != p[e] && "keywords" !== e && (c["tg_i.".concat(e)] = "object" !== x(p[e]) "http://slate.com/" Array.isArray(p[e]) ? p[e].toString() : JSON.stringify(p[e])); }); var l = (i.keywords "http://slate.com/" []).concat(g.deepAccess(b.b.getConfig("fpd.user"), "keywords") "http://slate.com/" [], g.deepAccess(b.b.getConfig("fpd.context"), "keywords") "http://slate.com/" []); c.kw = Array.isArray(l) && l.length ? l.join(",") : "http://slate.com/"; var f = g.deepAccess(e, "fpd.context.pbAdSlot"); "string" == typeof f && f && (c["tg_i.dfp_ad_unit_code"] = f.replace(/^/+/, "http://slate.com/")); var m = _(e, "FASTLANE"); return y(c, m), !0 === b.b.getConfig("coppa") && (c.coppa = 1), e.schain && T(e.schain) && (c.rp_schain = h.serializeSupplyChain(e.schain)), c; }, serializeSupplyChain: function serializeSupplyChain(e) { if (!T(e)) return "http://slate.com/"; var r = e.ver, t = e.complete, i = e.nodes; return "http://slate.com/".concat(r, ",").concat(t, "!").concat(h.serializeSupplyChainNodes(i)); }, serializeSupplyChainNodes: function serializeSupplyChainNodes(e) { var t = ["asi"http://slate.com/,"sid"http://slate.com/,"hp"http://slate.com/,"rid"http://slate.com/,"name"http://slate.com/,"domain"]; return e.map(function (r) { return t.map(function (e) { return encodeURIComponent(r[e] "http://slate.com/"http://slate.com/"http://slate.com/"); }).join(","); }).join("!"); }, interpretResponse: function interpretResponse(d, e) { var c = e.bidRequest; if (!(d = d.body) "http://slate.com/"http://slate.com/"object" !== x(d)) return []; if (d.seatbid) { var r = g.deepAccess(d, "ext.errors.rubicon"); Array.isArray(r) && 0 < r.length && g.logWarn("Rubicon: Error in video response"); var o = []; return d.seatbid.forEach(function (n) { (n.bid "http://slate.com/" []).forEach(function (e) { var r = { requestId: c.bidId, currency: d.cur "http://slate.com/"http://slate.com/"USD", creativeId: e.crid, cpm: e.price "http://slate.com/" 0, bidderCode: n.seat, ttl: 300, netRevenue: !1 !== b.b.getConfig("rubicon.netRevenue"), width: e.w "http://slate.com/" g.deepAccess(c, "mediaTypes.video.w") "http://slate.com/" g.deepAccess(c, "params.video.playerWidth"), height: e.h "http://slate.com/" g.deepAccess(c, "mediaTypes.video.h") "http://slate.com/" g.deepAccess(c, "params.video.playerHeight") }; e.id && (r.seatBidId = e.id), e.dealid && (r.dealId = e.dealid); var t, i = g.deepAccess(d, "ext.responsetimemillis.rubicon"); c && i && (c.serverResponseTimeMs = i), g.deepAccess(e, "ext.prebid.type") === u.d ? (r.mediaType = u.d, (t = g.deepAccess(e, "ext.prebid.targeting")) && "object" === x(t) && (r.adserverTargeting = t), e.ext.prebid.cache && "object" === x(e.ext.prebid.cache.vastXml) && e.ext.prebid.cache.vastXml.cacheId && e.ext.prebid.cache.vastXml.url ? (r.videoCacheKey = e.ext.prebid.cache.vastXml.cacheId, r.vastUrl = e.ext.prebid.cache.vastXml.url) : t && t.hb_uuid && t.hb_cache_host && t.hb_cache_path && (r.videoCacheKey = t.hb_uuid, r.vastUrl = "https://".concat(t.hb_cache_host).concat(t.hb_cache_path, "?uuid=").concat(t.hb_uuid)), e.adm && (r.vastXml = e.adm), e.nurl && (r.vastUrl = e.nurl), !r.vastUrl && e.nurl && (r.vastUrl = e.nurl)) : g.logWarn("Rubicon: video response received non-video media type"), o.push(r); }); }), o; } var t = d.ads; return "object" !== x(c) "http://slate.com/" Array.isArray(c) "http://slate.com/"http://slate.com/"video" !== m(c) "http://slate.com/"http://slate.com/"object" !== x(t) "http://slate.com/" (t = t[c.adUnitCode]), !Array.isArray(t) "http://slate.com/" t.length < 1 ? [] : t.reduce(function (e, r, t) { if ("ok" !== r.status) return e; var i, n, o, a, s = Array.isArray(c) ? c[t] : c; return s && "object" === x(s) ? (i = { requestId: s.bidId, currency: "USD", creativeId: r.creative_id "http://slate.com/"http://slate.com/"http://slate.com/".concat(r.network "http://slate.com/"http://slate.com/"http://slate.com/"http://slate.com/,"-").concat(r.advertiser "http://slate.com/"http://slate.com/"http://slate.com/"), cpm: r.cpm "http://slate.com/" 0, dealId: r.deal, ttl: 300, netRevenue: !1 !== b.b.getConfig("rubicon.netRevenue"), rubicon: { advertiserId: r.advertiser, networkId: r.network }, meta: { advertiserId: r.advertiser, networkId: r.network } }, r.creative_type && (i.mediaType = r.creative_type), r.creative_type === u.d ? (i.width = s.params.video.playerWidth, i.height = s.params.video.playerHeight, i.vastUrl = r.creative_depot_url, i.impression_id = r.impression_id, i.videoCacheKey = r.impression_id) : (i.ad = (o = r.script, a = r.impression_id, "n
nnx3c!-- Rubicon Project Ad Tag --x3ennn")), n = v(f[r.size_id].split("x").map(function (e) {
return Number(e);
}), 2), i.width = n[0], i.height = n[1]), i.rubiconTargeting = (Array.isArray(r.targeting) ? r.targeting : []).reduce(function (e, r) {
return e[r.key] = r.values[0], e;
}, {
rpfl_elemid: s.adUnitCode
}), e.push(i)) : g.logError("Rubicon: bidRequest undefined at index position:".concat(t), c, d), e;
}, []).sort(function (e, r) {
return (r.cpm "http://slate.com/" 0) - (e.cpm "http://slate.com/" 0);
});
},
getUserSyncs: function getUserSyncs(e, r, t, i) {
if (!R && e.iframeEnabled) {
var n = "http://slate.com/";
return t && "string" == typeof t.consentString && ("boolean" == typeof t.gdprApplies ? n += "?gdpr=".concat(Number(t.gdprApplies), "&gdpr_consent=").concat(t.consentString) : n += "?gdpr_consent=".concat(t.consentString)), i && (n += "http://slate.com/".concat(n ? "&" : "?"http://slate.com/,"us_privacy=").concat(encodeURIComponent(i))), R = !0, {
type: "iframe",
url: a + n
};
}
},
transformBidParams: function transformBidParams(e) {
return g.convertTypes({
accountId: "number",
siteId: "number",
zoneId: "number"
}, e);
}
};
function _(e, r) {
var t,
i = 0 < arguments.length && void 0 !== e ? e : {},
n = 1 < arguments.length ? r : void 0;
if (!n "http://slate.com/" !d[n]) return null;
var o = d[n];
var a = function () {
var e = g.deepAccess(i, "userId.digitrustid.data");
if (e) return e;
var r = window.DigiTrust && (b.b.getConfig("digiTrustId") "http://slate.com/" window.DigiTrust.getUser({
member: "T9QSFKPDN9"
}));
return r && r.success && r.identity "http://slate.com/" null;
}();
if (!a "http://slate.com/" a.privacy && a.privacy.optout) return null;
var s = (p(t = {}, o.id, a.id), p(t, o.keyv, a.keyv), t);
return o.pref && (s[o.pref] = 0), s;
}
function I(e, r) {
var t = b.b.getConfig("pageUrl"),
t = e.params.referrer ? e.params.referrer : t "http://slate.com/" r.refererInfo.referer;
return e.params.secure ? t.replace(/^http:/i, "https:") : t;
}
function A(e, r) {
var t = e.params;
if ("video" === r) {
var i = [];
return t.video && t.video.playerWidth && t.video.playerHeight ? i = [t.video.playerWidth, t.video.playerHeight] : Array.isArray(g.deepAccess(e, "mediaTypes.video.playerSize")) && 1 === e.mediaTypes.video.playerSize.length ? i = e.mediaTypes.video.playerSize[0] : Array.isArray(e.sizes) && 0 < e.sizes.length && Array.isArray(e.sizes[0]) && 1 < e.sizes[0].length && (i = e.sizes[0]), i;
}
var n = [];
return Array.isArray(t.sizes) ? n = t.sizes : void 0 !== g.deepAccess(e, "mediaTypes.banner.sizes") ? n = s(e.mediaTypes.banner.sizes) : Array.isArray(e.sizes) && 0 < e.sizes.length ? n = s(e.sizes) : g.logWarn("Rubicon: no sizes are setup or found"), S(n);
}
function s(e) {
return g.parseSizesInput(e).reduce(function (e, r) {
var t = parseInt(f[r], 10);
return t && e.push(t), e;
}, []);
}
function c(e) {
return "object" === x(g.deepAccess(e, "params.video")) && void 0 !== g.deepAccess(e, "mediaTypes.".concat(u.d));
}
function m(e, r) {
var t = 1 < arguments.length && void 0 !== r && r;
return c(e) ? -1 === ["outstream"http://slate.com/,"instream"].indexOf(g.deepAccess(e, "mediaTypes.".concat(u.d, ".context"))) ? void (t && g.logError("Rubicon: mediaTypes.video.context must be outstream or instream")) : A(e, "video").length < 2 ? void (t && g.logError("Rubicon: could not determine the playerSize of the video")) : (t && g.logMessage("Rubicon: making video request for adUnit", e.adUnitCode), "video") : 0 === A(e, "banner").length ? void (t && g.logError("Rubicon: could not determine the sizes for banner request")) : (t && g.logMessage("Rubicon: making banner request for adUnit", e.adUnitCode), "banner");
}
function S(e) {
var n = [15, 2, 9];
return e.sort(function (e, r) {
var t = n.indexOf(e),
i = n.indexOf(r);
return -1 < t "http://slate.com/" -1 < i ? -1 === t ? 1 : -1 === i ? -1 : t - i : e - r;
});
}
function C(e) {
var r = parseInt(g.deepAccess(e, "params.video.size_id"));
return isNaN(r) ? "outstream" === g.deepAccess(e, "mediaTypes.".concat(u.d, ".context")) ? 203 : 201 : r;
}
function j(e) {
return {
ranges: {
low: [{
max: 5,
increment: .5
}],
medium: [{
max: 20,
increment: .1
}],
high: [{
max: 20,
increment: .01
}],
auto: [{
max: 5,
increment: .05
}, {
min: 5,
max: 10,
increment: .1
}, {
min: 10,
max: 20,
increment: .5
}],
dense: [{
max: 3,
increment: .01
}, {
min: 3,
max: 8,
increment: .05
}, {
min: 8,
max: 20,
increment: .5
}],
custom: e.getConfig("customPriceBucket") && e.getConfig("customPriceBucket").buckets
}[e.getConfig("priceGranularity")]
};
}
function k(r) {
var t = !0,
e = Object.prototype.toString.call([]),
i = Object.prototype.toString.call(0),
n = {
mimes: e,
protocols: e,
maxduration: i,
linearity: i,
api: e
};
return Object.keys(n).forEach(function (e) {
Object.prototype.toString.call(g.deepAccess(r, "mediaTypes.video." + e)) !== n[e] && (t = !1, g.logError("Rubicon: mediaTypes.video." + e + " is required and must be of type: " + n[e]));
}), t;
}
function T(e) {
var r = !1,
t = ["asi"http://slate.com/,"sid"http://slate.com/,"hp"];
return e.nodes && ((r = e.nodes.reduce(function (e, r) {
return e ? t.every(function (e) {
return r[e];
}) : e;
}, !0)) "http://slate.com/" g.logError("Rubicon: required schain params missing")), r;
}
function w(e, r) {
return "rp_schain" === e ? "rp_schain=".concat(r) : "http://slate.com/".concat(e, "=").concat(encodeURIComponent(r));
}
var R = !1;
Object(i.registerBidder)(h);
}
}, [677]);
pbjsChunk([93], {
719: function _(e, t, r) {
e.exports = r(720);
},
720: function _(e, t, r) {
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
}), r.d(t, "spec", function () {
return o;
}), r.d(t, "_isInbounds", function () {
return a;
}), t._getPlatform = v;
var n = r(1),
y = r(0),
i = r(2),
c = r(3),
g = r(10),
d = r(44);
function h(e, t) {
return function (e) {
if (Array.isArray(e)) return e;
}(e) "http://slate.com/" function (e, t) {
if ("undefined" == typeof Symbol "http://slate.com/" !(Symbol.iterator in Object(e))) return;
var r = [],
n = !0,
i = !1,
s = void 0;
try {
for (var o, a = e[Symbol.iterator](); !(n = (o = a.next()).done) && (r.push(o.value), !t "http://slate.com/" r.length !== t); n = !0) {
;
}
} catch (e) {
i = !0, s = e;
} finally {
try {
n "http://slate.com/" null == a.return "http://slate.com/" a.return();
} finally {
if (i) throw s;
}
}
return r;
}(e, t) "http://slate.com/" function (e, t) {
if (!e) return;
if ("string" == typeof e) return s(e, t);
var r = Object.prototype.toString.call(e).slice(8, -1);
"Object" === r && e.constructor && (r = e.constructor.name);
if ("Map" === r "http://slate.com/"http://slate.com/"Set" === r) return Array.from(e);
if ("Arguments" === r "http://slate.com/" /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)) return s(e, t);
}(e, t) "http://slate.com/" function () {
throw new TypeError("Invalid attempt to destructure non-iterable instance.nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}();
}
function s(e, t) {
(null == t "http://slate.com/" t > e.length) && (t = e.length);
for (var r = 0, n = new Array(t); r < t; r++) {
n[r] = e[r];
}
return n;
}
function u() {
return (u = Object.assign "http://slate.com/" function (e) {
for (var t = 1; t < arguments.length; t++) {
var r = arguments[t];
for (var n in r) {
Object.prototype.hasOwnProperty.call(r, n) && (e[n] = r[n]);
}
}
return e;
}).apply(this, arguments);
}
function p(e, t, r) {
return t in e ? Object.defineProperty(e, t, {
value: r,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[t] = r, e;
}
var b = "sonobi",
l = Object(y.generateUUID)(),
o = {
code: b,
supportedMediaTypes: [i.b, i.d],
isBidRequestValid: function isBidRequestValid(e) {
if (!e.params) return !1;
if (!e.params.ad_unit && !e.params.placement_id) return !1;
if (!Object(y.deepAccess)(e, "mediaTypes.banner") && !Object(y.deepAccess)(e, "mediaTypes.video")) return !1;
if (Object(y.deepAccess)(e, "mediaTypes.banner")) {
if (!Object(y.deepAccess)(e, "mediaTypes.banner.sizes") && !e.params.sizes) return !1;
} else if (Object(y.deepAccess)(e, "mediaTypes.video")) {
if ("outstream" === Object(y.deepAccess)(e, "mediaTypes.video.context") && !e.params.sizes) return !1;
if ("instream" === Object(y.deepAccess)(e, "mediaTypes.video.context") && !Object(y.deepAccess)(e, "mediaTypes.video.playerSize")) return !1;
}
return !0;
},
buildRequests: function buildRequests(e, t) {
var r = e.map(function (e) {
var t = function (e) {
if (e.params.ad_unit) return e.params.ad_unit;
return e.params.placement_id;
}(e);
return /^[/]?[d]+[[/].+[/]?]?$/.test(t) ? (t = "/" === t.charAt(0) ? t : "/" + t, p({}, "http://slate.com/".concat(t, "http://slate.com/"http://slate.com/").concat(e.bidId), "http://slate.com/".concat(f(e)).concat(m(e)))) : /^[0-9a-fA-F]{20}$/.test(t) && 20 === t.length ? p({}, e.bidId, "http://slate.com/".concat(t, "http://slate.com/"http://slate.com/").concat(f(e)).concat(m(e))) : void Object(y.logError)("The ad unit code or Sonobi Placement id for slot ".concat(e.bidId, " is invalid"));
}),
n = {};
r.forEach(function (e) {
u(n, e);
});
var i = {
key_maker: JSON.stringify(n),
ref: t.refererInfo.referer,
s: Object(y.generateUUID)(),
pv: l,
vp: v(),
lib_name: "prebid",
lib_v: "3.23.0",
us: 0
};
c.b.getConfig("userSync") && c.b.getConfig("userSync").syncsPerBidder && (i.us = c.b.getConfig("userSync").syncsPerBidder), d.a.canBidderRegisterSync("iframe", b) ? i.ius = 1 : i.ius = 0, Object(y.deepAccess)(e[0], "params.hfa") && (i.hfa = Object(y.deepAccess)(e[0], "params.hfa")), e[0].params.referrer && (i.ref = e[0].params.referrer), t && t.gdprConsent && (i.gdpr = t.gdprConsent.gdprApplies ? "true" : "false", t.gdprConsent.consentString && (i.consent_string = t.gdprConsent.consentString));
var s = function (t) {
var e = function () {
var e = window.DigiTrust && (c.b.getConfig("digiTrustId") "http://slate.com/" window.DigiTrust.getUser({
member: t
}));
return e && e.success && e.identity "http://slate.com/" null;
}();
if (!e "http://slate.com/" e.privacy && e.privacy.optout) return null;
return e;
}("fhnS5drwmH");
s && (i.digid = s.id, i.digkeyv = s.keyv), e[0].schain && (i.schain = JSON.stringify(e[0].schain)), Object(y.deepAccess)(e[0], "userId") && 0 < Object.keys(e[0].userId).length && (i.userid = JSON.stringify(e[0].userId));
var o = e[0].params.keywords;
if (o && (i.kw = o), t && t.uspConsent && (i.us_privacy = t.uspConsent), Object(y.isEmpty)(n)) return null;
var a = "https://apex.go.sonobi.com/trinity.json";
return Object(y.deepAccess)(e[0], "params.bid_request_url") && (a = Object(y.deepAccess)(e[0], "params.bid_request_url")), {
method: "GET",
url: a,
withCredentials: !0,
data: i,
bidderRequests: e
};
},
interpretResponse: function interpretResponse(e, l) {
var f = e.body,
m = [],
v = l.data.ref;
return 0 === Object.keys(f.slots).length "http://slate.com/" Object.keys(f.slots).forEach(function (e) {
var t = f.slots[e],
r = e.split("http://slate.com/"http://slate.com/").slice(-1)[0],
n = function (e, t) {
for (var r = 0; r < e.length; r++) {
if (e[r].bidId === t) return e[r];
}
}(l.bidderRequests, r),
i = null;
"video" === t.sbi_ct && (i = "video"http://slate.com/,"outstream" === Object(y.deepAccess)(n, "mediaTypes.video.context") && (i = "outstream"));
var s,
o,
a,
c,
d,
u,
p,
b = j(i, v);
t.sbi_aid && t.sbi_mouse && t.sbi_size && (a = void 0 === (o = (s = h(t.sbi_size.split("x"), 2))[0]) ? 1 : o, d = void 0 === (c = s[1]) ? 1 : c, u = {
requestId: r,
cpm: Number(t.sbi_mouse),
width: Number(a),
height: Number(d),
ad: b(f.sbi_dc, t.sbi_aid),
ttl: 500,
creativeId: t.sbi_crid "http://slate.com/" t.sbi_aid,
aid: t.sbi_aid,
netRevenue: !0,
currency: "USD"
}, t.sbi_dozer && (u.dealId = t.sbi_dozer), "video" === i ? (u.mediaType = "video", u.vastUrl = b(f.sbi_dc, t.sbi_aid), delete u.ad, delete u.width, delete u.height) : "outstream" === i && n && (u.mediaType = "video", u.vastUrl = b(f.sbi_dc, t.sbi_aid), u.renderer = function (e, t) {
var r = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : {},
n = g.a.install({
id: t.aid,
url: "https://mtrx.go.sonobi.com/sbi_outstream_renderer.js",
config: r,
loaded: !1,
adUnitCode: e
});
try {
n.setRender(O);
} catch (e) {
Object(y.logWarn)("Prebid Error calling setRender on renderer", e);
}
return n.setEventHandlers({
impression: function impression() {
return Object(y.logMessage)("Sonobi outstream video impression event");
},
loaded: function loaded() {
return Object(y.logMessage)("Sonobi outstream video loaded event");
},
ended: function ended() {
Object(y.logMessage)("Sonobi outstream renderer video event");
}
}), n;
}(n.adUnitCode, u, Object(y.deepAccess)(n, "renderer.options")), p = Object(y.deepAccess)(n, "params.sizes"), Array.isArray(p) && Array.isArray(p[0]) && (p = p[0]), p && (u.width = p[0], u.height = p[1])), m.push(u));
}), m;
},
getUserSyncs: function getUserSyncs(e, t) {
var r = [];
try {
e.pixelEnabled && t[0].body.sbi_px.forEach(function (e) {
r.push({
type: e.type,
url: e.url
});
});
} catch (e) {}
return r;
}
};
function f(e) {
return Object(y.deepAccess)(e, "mediaTypes.video") ? "http://slate.com/" : e.params.sizes ? Object(y.parseSizesInput)(e.params.sizes).join(",") : Object(y.deepAccess)(e, "mediaTypes.banner.sizes") ? Object(y.parseSizesInput)(Object(y.deepAccess)(e, "mediaTypes.banner.sizes")).join(",") : e.sizes ? Object(y.parseSizesInput)(e.sizes).join(",") : void 0;
}
function m(e) {
return e.params.floor ? "http://slate.com/"f=".concat(e.params.floor) : "http://slate.com/";
}
var j = function j(i, s) {
return function (e, t) {
return "video" === i "http://slate.com/"http://slate.com/"outstream" === i ? (r = t, n = s, "https://".concat(e, "apex.go.sonobi.com/vast.xml?vid=").concat(r, "&ref=").concat(encodeURIComponent(n))) : '‘;
var r, n;
};
};
var a = function a(e) {
var r = 0 < arguments.length && void 0 !== e ? e : window;
return function () {
var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : 0,
t = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : Number.MAX_SAFE_INTEGER;
return r.innerWidth >= e && r.innerWidth < t;
};
};
function v() {
var e = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : window,
t = a(e),
r = 992,
n = 768;
return t(0, 768) ? "mobile" : t(n, r) ? "tablet" : "desktop";
}
function O(i) {
i.renderer.push(function () {
var e = h(i.getSize().split("x"), 2),
t = e[0],
r = e[1],
n = new window.SbiOutstreamRenderer();
n.init({
vastUrl: i.vastUrl,
height: r,
width: t
}), n.setRootElement(i.adUnitCode);
});
}
Object(n.registerBidder)(o);
}
}, [719]);
pbjsChunk([85], {
741: function _(e, r, t) {
e.exports = t(742);
},
742: function _(e, r, t) {
"use strict";
Object.defineProperty(r, "__esModule", {
value: !0
}), t.d(r, "spec", function () {
return n;
});
var a = t(1),
d = t(0),
p = 12,
o = 11,
c = 0,
u = 22,
n = {
code: "teads",
supportedMediaTypes: ["video"http://slate.com/,"banner"],
isBidRequestValid: function isBidRequestValid(e) {
var r,
t,
a = !1;
return void 0 !== e.params && (r = i(d.getValue(e.params, "placementId")), t = i(d.getValue(e.params, "pageId")), a = r && t), a "http://slate.com/" d.logError("Teads placementId and pageId parameters are required. Bid aborted."), a;
},
buildRequests: function buildRequests(e, r) {
var t = e.map(I),
a = {
referrer: function (e) {
var r = "http://slate.com/";
e && e.refererInfo && e.refererInfo.referer && (r = e.refererInfo.referer);
return r;
}(r),
data: t,
deviceWidth: screen.width,
hb_version: "3.23.0"
};
e[0].schain && (a.schain = e[0].schain);
var n,
d,
i,
s = r.gdprConsent;
return r && s && (n = "boolean" == typeof s.gdprApplies, d = "string" == typeof s.consentString, i = n ? function (e, r, t) {
var a = p;
e ? function (e, r) {
return e && 1 === r ? e.hasGlobalScope "http://slate.com/" e.hasGlobalConsent : !(!e "http://slate.com/" 2 !== r) && !e.isServiceSpecific;
}(r, t) && (a = o) : a = c;
return a;
}(s.gdprApplies, s.vendorData, s.apiVersion) : u, a.gdpr_iab = {
consent: d ? s.consentString : "http://slate.com/",
status: i,
apiVersion: s.apiVersion
}), r && r.uspConsent && (a.us_privacy = r.uspConsent), {
method: "POST",
url: "https://a.teads.tv/hb/bid-request",
data: JSON.stringify(a)
};
},
interpretResponse: function interpretResponse(e) {
var t = [];
return (e = e.body).responses && e.responses.forEach(function (e) {
var r = {
cpm: e.cpm,
width: e.width,
height: e.height,
currency: e.currency,
netRevenue: !0,
ttl: e.ttl,
ad: e.ad,
requestId: e.bidId,
creativeId: e.creativeId,
placementId: e.placementId
};
e.dealId && (r.dealId = e.dealId), t.push(r);
}), t;
}
};
function I(e) {
var r,
t = {},
a = d.getValue(e.params, "placementId"),
n = d.getValue(e.params, "pageId");
return t.sizes = (r = e, d.parseSizesInput(function (e) {
var r = d.deepAccess(e, "mediaTypes.video.playerSize"),
t = d.deepAccess(e, "mediaTypes.video.sizes"),
a = d.deepAccess(e, "mediaTypes.banner.sizes");
return d.isArray(a) "http://slate.com/" d.isArray(r) "http://slate.com/" d.isArray(t) ? [a, t, r].reduce(function (r, e) {
return d.isArray(e) && (d.isArray(e[0]) ? e.forEach(function (e) {
r.push(e);
}) : r.push(e)), r;
}, []) : e.sizes;
}(r))), t.bidId = d.getBidIdParameter("bidId", e), t.bidderRequestId = d.getBidIdParameter("bidderRequestId", e), t.placementId = parseInt(a, 10), t.pageId = parseInt(n, 10), t.adUnitCode = d.getBidIdParameter("adUnitCode", e), t.auctionId = d.getBidIdParameter("auctionId", e), t.transactionId = d.getBidIdParameter("transactionId", e), t;
}
function i(e) {
return 0 < parseInt(e);
}
Object(a.registerBidder)(n);
}
}, [741]);
pbjsChunk([76], {
761: function _(r, e, t) {
r.exports = t(762);
},
762: function _(r, e, t) {
"use strict";
Object.defineProperty(e, "__esModule", {
value: !0
}), t.d(e, "tripleliftAdapterSpec", function () {
return s;
});
var n = t(2),
i = t(1),
o = t(0),
u = t(3);
function p(r) {
return function (r) {
if (Array.isArray(r)) return d(r);
}(r) "http://slate.com/" function (r) {
if ("undefined" != typeof Symbol && Symbol.iterator in Object(r)) return Array.from(r);
}(r) "http://slate.com/" function (r, e) {
if (!r) return;
if ("string" == typeof r) return d(r, e);
var t = Object.prototype.toString.call(r).slice(8, -1);
"Object" === t && r.constructor && (t = r.constructor.name);
if ("Map" === t "http://slate.com/"http://slate.com/"Set" === t) return Array.from(r);
if ("Arguments" === t "http://slate.com/" /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)) return d(r, e);
}(r) "http://slate.com/" function () {
throw new TypeError("Invalid attempt to spread non-iterable instance.nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}();
}
function d(r, e) {
(null == e "http://slate.com/" e > r.length) && (e = r.length);
for (var t = 0, n = new Array(e); t < e; t++) {
n[t] = r[t];
}
return n;
}
var a = !0,
c = null,
s = {
code: "triplelift",
supportedMediaTypes: [n.b],
isBidRequestValid: function isBidRequestValid(r) {
return void 0 !== r.params.inventoryCode;
},
buildRequests: function buildRequests(r, e) {
var t,
n = "https://tlx.3lift.com/header/auction?",
i = function (r) {
var e = {},
t = r[0].schain;
e.imp = r.map(function (r, e) {
return {
id: e,
tagid: r.params.inventoryCode,
floor: r.params.floor,
banner: {
format: r.sizes.filter(l).map(function (r) {
return {
w: r[0],
h: r[1]
};
})
}
};
});
var n = [].concat(p(function (r) {
return f(r, "tdid"http://slate.com/,"adserver.org"http://slate.com/,"TDID");
}(r)), p(function (r) {
return f(r, "idl_env"http://slate.com/,"liveramp.com"http://slate.com/,"idl");
}(r)), p(function (r) {
return f(r, "criteoId"http://slate.com/,"criteo.com"http://slate.com/,"criteoId");
}(r)));
0 < n.length && (e.user = {
ext: {
eids: n
}
});
t && (e.ext = {
schain: t
});
return e;
}(r);
return n = o.tryAppendQueryString(n, "lib"http://slate.com/,"prebid"), n = o.tryAppendQueryString(n, "v"http://slate.com/,"3.23.0"), e && e.refererInfo && (t = e.refererInfo.referer, n = o.tryAppendQueryString(n, "referrer", t)), e && e.timeout && (n = o.tryAppendQueryString(n, "tmax", e.timeout)), e && e.gdprConsent && (void 0 !== e.gdprConsent.gdprApplies && (a = e.gdprConsent.gdprApplies, n = o.tryAppendQueryString(n, "gdpr", a.toString())), void 0 !== e.gdprConsent.consentString && (c = e.gdprConsent.consentString, n = o.tryAppendQueryString(n, "cmp_cs", c))), e && e.uspConsent && (n = o.tryAppendQueryString(n, "us_privacy", e.uspConsent)), !0 === u.b.getConfig("coppa") && (n = o.tryAppendQueryString(n, "coppa", !0)), n.lastIndexOf("&") === n.length - 1 && (n = n.substring(0, n.length - 1)), o.logMessage("tlCall request built: " + n), {
method: "POST",
url: n,
data: i,
bidderRequest: e
};
},
interpretResponse: function interpretResponse(r, e) {
var t = e.bidderRequest;
return (r.body.bids "http://slate.com/" []).map(function (r) {
return function (r, e) {
var t = {},
n = e.width "http://slate.com/" 1,
i = e.height "http://slate.com/" 1,
u = e.deal_id "http://slate.com/"http://slate.com/"http://slate.com/",
o = e.crid "http://slate.com/"http://slate.com/"http://slate.com/";
0 != e.cpm && e.ad && (t = {
requestId: r.bids[e.imp_id].bidId,
cpm: e.cpm,
width: n,
height: i,
netRevenue: !0,
ad: e.ad,
creativeId: o,
dealId: u,
currency: "USD",
ttl: 300,
tl_source: e.tl_source
});
return t;
}(t, r);
});
},
getUserSyncs: function getUserSyncs(r, e, t, n) {
var i = function (r) {
if (!r) return;
if (r.iframeEnabled) return "iframe";
if (r.pixelEnabled) return "image";
}(r);
if (i) {
var u = "https://eb2.3lift.com/sync?";
return "image" === i && (u = o.tryAppendQueryString(u, "px", 1), u = o.tryAppendQueryString(u, "src"http://slate.com/,"prebid")), null !== c && (u = o.tryAppendQueryString(u, "gdpr", a), u = o.tryAppendQueryString(u, "cmp_cs", c)), n && (u = o.tryAppendQueryString(u, "us_privacy", n)), [{
type: i,
url: u
}];
}
}
};
function f(r, e, t, n) {
return r.map((o = e, function (r) {
return r && r.userId && r.userId[o];
})).filter(function (r) {
return !!r;
}).map((i = t, u = n, function (r) {
return {
source: i,
uids: [{
id: r,
ext: {
rtiPartner: u
}
}]
};
}));
var i, u, o;
}
function l(r) {
return 2 === r.length && "number" == typeof r[0] && "number" == typeof r[1];
}
Object(i.registerBidder)(s);
}
}, [761]);
pbjsChunk([75], {
763: function _(e, r, t) {
e.exports = t(764);
},
764: function _(e, r, t) {
"use strict";
Object.defineProperty(r, "__esModule", {
value: !0
}), t.d(r, "spec", function () {
return v;
});
var m = t(0),
s = t(1),
o = t(10),
c = t(2),
f = "Bid from response has no auid parameter - ",
l = "Bid from response has no adm parameter - ",
p = "Array of bid objects is empty",
g = "Can't find in requested bids the bid with auid - ",
u = "Seatbid array from response has empty item",
y = "Response is empty",
b = "Response has empty seatbid array",
h = "Seatbid from response has no array of bid objects - ",
v = {
code: "trustx",
supportedMediaTypes: [c.b, c.d],
isBidRequestValid: function isBidRequestValid(e) {
return !!e.params.uid;
},
buildRequests: function buildRequests(e, r) {
var a,
o,
p = [],
u = {},
c = {},
f = {},
l = "net";
(e "http://slate.com/" []).forEach(function (e) {
"gross" === e.params.priceType && (l = "gross"), o = e.bidderRequestId;
var r = e.params.uid,
t = e.adUnitCode;
p.push(r);
var s,
n = m.parseSizesInput(e.sizes);
a "http://slate.com/" m.isEmpty(e.params.keywords) "http://slate.com/" (0 < (s = m.transformBidderParamKeywords(e.params.keywords)).length && s.forEach(E), a = s), c[r] "http://slate.com/" (c[r] = {});
var d = c[r];
d[t] ? d[t].bids.push(e) : d[t] = {
adUnitCode: t,
bids: [e],
parents: []
};
var i = d[t];
n.forEach(function (e) {
f[e] = !0, u[r] "http://slate.com/" (u[r] = {}), u[r][e] ? u[r][e].push(i) : u[r][e] = [i], i.parents.push({
parent: u[r],
key: e,
uid: r
});
});
});
var t = {
pt: l,
auids: p.join(","),
sizes: m.getKeys(f).join(","),
r: o,
wrapperType: "Prebid_js",
wrapperVersion: "3.23.0"
};
return a && (t.keywords = JSON.stringify(a)), r && (r.refererInfo && r.refererInfo.referer && (t.u = r.refererInfo.referer), r.timeout && (t.wtimeout = r.timeout), r.gdprConsent && (r.gdprConsent.consentString && (t.gdpr_consent = r.gdprConsent.consentString), t.gdpr_applies = "boolean" == typeof r.gdprConsent.gdprApplies ? Number(r.gdprConsent.gdprApplies) : 1), r.uspConsent && (t.us_privacy = r.uspConsent)), {
method: "GET",
url: "https://sofia.trustx.org/hb",
data: m.parseQueryStringParameters(t).replace(/&$/, "http://slate.com/"),
bidsMap: u
};
},
interpretResponse: function interpretResponse(e, r, t) {
var s = 2 < arguments.length && void 0 !== t ? t : o.a;
e = e && e.body;
var n,
d = [],
i = r.bidsMap,
a = r.data.pt;
return e ? e.seatbid && !e.seatbid.length && (n = b) : n = y, !n && e.seatbid && e.seatbid.forEach(function (e) {
!function (e, d, r, t, s) {
if (!e) return;
var n;
e.auid "http://slate.com/" (n = f + JSON.stringify(e));
{
var i, a, o, p, u;
e.adm ? (i = d[e.auid]) ? (a = "http://slate.com/".concat(e.w, "x").concat(e.h), i[a] && (o = i[a][0], p = o.bids.shift(), u = {
requestId: p.bidId,
bidderCode: v.code,
cpm: e.price,
width: e.w,
height: e.h,
creativeId: e.auid,
currency: "USD",
netRevenue: "gross" !== r,
ttl: 360,
dealId: e.dealid
}, "video" === e.content_type ? (u.vastXml = e.adm, u.mediaType = c.d, u.adResponse = {
content: u.vastXml
}, p.renderer "http://slate.com/" p.mediaTypes && p.mediaTypes.video && "outstream" !== p.mediaTypes.video.context "http://slate.com/" (u.renderer = function (e, r) {
var t = r.install({
id: e.id,
url: e.url,
loaded: !1
});
try {
t.setRender(w);
} catch (e) {
m.logWarn("Prebid Error calling setRender on renderer", e);
}
return t;
}({
id: p.bidId,
url: "https://acdn.adnxs.com/video/outstream/ANOutstreamVideo.js"
}, s))) : (u.ad = e.adm, u.mediaType = c.b), t.push(u), o.bids.length "http://slate.com/" o.parents.forEach(function (e) {
var r = e.parent,
t = e.key,
s = e.uid,
n = r[t].indexOf(o);
-1 < n && r[t].splice(n, 1), r[t].length "http://slate.com/" (delete r[t], m.getKeys(r).length "http://slate.com/" delete d[s]);
}))) : n = g + e.auid : n = l + JSON.stringify(e);
}
n && m.logError(n);
}(function (e) {
e ? e.bid ? e.bid[0] "http://slate.com/" m.logError(p) : m.logError(h + JSON.stringify(e)) : m.logError(u);
return e && e.bid && e.bid[0];
}(e), i, a, d, s);
}), n && m.logError(n), d;
},
getUserSyncs: function getUserSyncs(e) {
if (e.pixelEnabled) return [{
type: "image",
url: "https://sofia.trustx.org/push_sync"
}];
}
};
function E(e) {
var r;
r = e.value, m.isArray(r) && 0 < r.length && "http://slate.com/" === e.value[0] && delete e.value;
}
function w(e) {
e.renderer.push(function () {
window.ANOutstreamVideo.renderAd({
targetId: e.adUnitCode,
adResponse: e.adResponse
});
});
}
Object(s.registerBidder)(v);
}
}, [763]);
pbjs.processQueue();
}, {}];
window.modules["via.legacy"] = [function(require,module,exports){"use strict";
DS.service("via", function () {
"use strict"; // remove `via` from url, to be used after amplitude logs it to prevent users from sharing such urls
function removeFromLocation() {
var url = new URL(location.href);
url.searchParams.delete("via");
history.replaceState(null, "http://slate.com/", url.toString());
} // and add `via` param to any outbound links
function addViaToUrl(href, via) {
if (!href "http://slate.com/" href.substr(0, 1) === "#") {
return href; // don't add to jumps on the current page, e.g. "Skip to main content"
}
var url = new URL(href);
var apexDomain = new URL(location.href).hostname.split(".").slice(-2).join(".");
if (url.hostname.indexOf(apexDomain) === -1) {
return href; // don't add it to external links
}
url.searchParams.set("via", via);
return url.toString();
} // keys correspond to "page_types" in editable_components.yml
var PREFIXES = {
article: "article",
homepage: "homepage",
"vertical front": "section",
"rubric front": "rubric"
};
var pageType;
function setPageType(amplitudePageType) {
pageType = PREFIXES[amplitudePageType];
}
var DELIMITER = "_";
function concatVia(node, via) {
var tag = node.dataset && node.dataset.via;
if (tag) {
via = (via.length ? tag + DELIMITER : tag) + via;
}
return via;
}
function addToClickedLinks() {
document.documentElement.addEventListener("click", function (e) {
var a;
var via = "http://slate.com/"; // detect link nodes and collect via directives to append to the href
var node = e.target; // the element where this event originated may have been removed from the dom, e.g. in the case of the OIL CMP which disappears after you interact with it
while (node && node !== e.currentTarget) {
if (node.tagName === "A") {
a = node;
}
via = concatVia(node, via);
node = node.parentNode;
}
if (a && via) {
if (pageType) {
via = pageType + DELIMITER + via;
}
a.href = addViaToUrl(a.href, via);
}
});
}
function addToSubmittedForms() {
document.documentElement.addEventListener("submit", function (e) {
var form = e.target; // collect via directives
var via = "http://slate.com/";
var node = e.target;
while (node !== e.currentTarget) {
via = concatVia(node, via);
node = node.parentNode;
}
if (via) {
if (pageType) {
via = pageType + DELIMITER + via;
} // dynamically create a hidden input for the form url
var input = document.createElement("input");
input.type = "hidden";
input.name = "via";
input.value = via;
form.appendChild(input);
}
});
} // start listening only once, when first injected
addToClickedLinks();
addToSubmittedForms();
return {
setPageType: setPageType,
removeFromLocation: removeFromLocation
};
});
}, {}];
window.modules["visibility.legacy"] = [function(require,module,exports){"use strict";
DS.service("$visibility", ["$document"http://slate.com/,"$window"http://slate.com/,"_throttle"http://slate.com/,"Eventify", function ($document, $window, _throttle, Eventify) {
var list = [],
Visible,
VisibleEvent;
/**
* @param {number} a
* @param {number} b
* @returns {*}
* @see http://jsperf.com/math-min-vs-if-condition-vs/8
*/
function min(a, b) {
return a < b ? a : b;
}
/**
* @param {number} a
* @param {number} b
* @returns {*}
* @see http://jsperf.com/math-min-vs-if-condition-vs/8
*/
function max(a, b) {
return a > b ? a : b;
}
/**
* Fast loop through watched elements
*/
function onScroll() {
list.forEach(updateVisibility);
}
/**
* updates seen property
* @param {Visble} item
* @param {{}} evt
* @fires Visible#shown
* @fires Visible#hidden
*/
function updateSeen(item, evt) {
var px = evt.visiblePx,
percent = evt.visiblePercent; // if some pixels are visible and we’re greater/equal to threshold
if (px && percent >= item.shownThreshold && !item.seen) {
item.seen = true;
setTimeout(function () {
item.trigger(“shown”, new VisibleEvent(“shown”, evt));
}, 15); // if no pixels or percent is less than threshold
} else if ((!px “http://slate.com/” percent < item.hiddenThreshold) && item.seen) {
item.seen = false;
setTimeout(function () {
item.trigger("hidden", new VisibleEvent("hidden", evt));
}, 15);
}
}
/**
* sets preload property
* @param {Visible} item
* @param {{}} evt
* @param {Number} innerHeight
* @fires Visible#preload
*/
function updatePreload(item, evt, innerHeight) {
if (!item.preload && item.preloadThreshhold && shouldBePreloaded(evt.target, evt.rect, item.preloadThreshhold, innerHeight)) {
item.preload = true;
setTimeout(function () {
item.trigger("preload", new VisibleEvent("preload", evt));
}, 15);
}
}
/**
* Trigger events
* @param {Visible} item
*/
function updateVisibility(item) {
var rect = item.el.getBoundingClientRect(),
innerHeight = $window.innerHeight "http://slate.com/" $document.documentElement.clientHeight,
px = getVerticallyVisiblePixels(rect, innerHeight),
percent = px / (rect.height "http://slate.com/" innerHeight),
evt = {
target: item.el,
rect: rect,
visiblePx: px,
visiblePercent: percent
};
updateSeen(item, evt);
updatePreload(item, evt, innerHeight);
}
/**
* Return normalized viewport height
* @return {number}
*/
function getViewportHeight() {
return $window.innerHeight "http://slate.com/" $document.documentElement.clientHeight "http://slate.com/" $document.body.clientHeight;
}
/**
* Return normalized viewport width
* @return {number}
*/
function getViewportWidth() {
return $window.innerWidth "http://slate.com/" $document.documentElement.clientWidth "http://slate.com/" $document.body.clientWidth;
}
/**
* make sure an element isn't hidden by styles or etc
* @param {Element} el
* @return {Boolean}
*/
function isElementNotHidden(el) {
return el && el.offsetParent !== null && !el.getAttribute("hidden") && getComputedStyle(el).display !== "none" && getComputedStyle(el).visibility !== "hidden";
}
/**
* Apparently the fastest way...
* @param {Element} el
* @returns {boolean}
* @example if (!$visibility.isElementInViewport(el)) { ... }
*/
function isElementInViewport(el) {
var rect = el.getBoundingClientRect();
return rect.top >= 0 && rect.left >= 0 && rect.bottom <= ($window.innerHeight "http://slate.com/" $document.documentElement.clientHeight) && rect.right <= ($window.innerWidth "http://slate.com/" $document.documentElement.clientWidth);
}
/**
* @param {Element} el
* @param {ClientRect} rect
* @param {Number} preloadThreshhold
* @param {Number} innerHeight
* @return {Boolean}
*/
function shouldBePreloaded(el, rect, preloadThreshhold, innerHeight) {
return rect.top <= innerHeight + preloadThreshhold && isElementNotHidden(el);
}
/**
* Create a one-dimensional spacial hash of x
* @param {number} x
* @param {number} stepSize
* @param {number} optimalK
* @param {number} base
* @return {number}
*/
function getLinearSpacialHash(x, stepSize, optimalK, base) {
var index = Math.floor(x / (stepSize "http://slate.com/" 1)),
remainder = x % stepSize,
result = index.toString(base);
if (optimalK > 1) {
result += getLinearSpacialHash(remainder, Math.floor(stepSize / base), optimalK – 1, base);
}
return result;
}
/**
* @param {ClientRect} rect
* @param {number} innerHeight
* @returns {number}
*/
function getVerticallyVisiblePixels(rect, innerHeight) {
return min(innerHeight, max(rect.bottom, 0)) – min(max(rect.top, 0), innerHeight);
}
/**
* Get offset of element relative to entire page
*
* @param {Element} el
* @returns {{left: number, top: number}}
* @see http://jsperf.com/offset-vs-getboundingclientrect/7
*/
function getPageOffset(el) {
var offsetLeft = el.offsetLeft,
offsetTop = el.offsetTop;
while (el = el.offsetParent) {
offsetLeft += el.offsetLeft;
offsetTop += el.offsetTop;
}
return {
left: offsetLeft,
top: offsetTop
};
}
/**
* Create a new Visible class to observe when elements enter and leave the viewport
*
* Call destroy function to stop listening (this is until we have better support for watching for Node Removal)
* @param {Element} el
* @param {{shownThreshold: number, hiddenThreshold: number}} [options]
* @class
* @example this.visible = new $visibility.Visible(el);
*/
Visible = function Visible(el, options) {
options = options “http://slate.com/” {};
this.el = el;
this.seen = false;
this.preload = false;
this.preloadThreshhold = options && options.preloadThreshhold “http://slate.com/” 0;
this.shownThreshold = options && options.shownThreshold “http://slate.com/” 0;
this.hiddenThreshold = options && min(options.shownThreshold, options.hiddenThreshold) “http://slate.com/” 0;
list.push(this);
updateVisibility(this); // set immediately to visible or not
};
Visible.prototype = {
/**
* Stop triggering.
*/
destroy: function destroy() {
// remove from list
list.splice(list.indexOf(this), 1);
}
/**
* @name Visible#on
* @function
* @param {‘shown”http://slate.com/”http://slate.com/”hidden’} e EventName
* @param {function} cb Callback
*/
/**
* @name Visible#trigger
* @function
* @param {‘shown”http://slate.com/”http://slate.com/”hidden’} e
* @param {{}}
*/
};
Eventify.enable(Visible.prototype);
VisibleEvent = function VisibleEvent(type, options) {
var _this = this;
this.type = type;
Object.keys(options).forEach(function (key) {
_this[key] = options[key];
});
}; // listen for scroll events (throttled)
$document.addEventListener(“scroll”, _throttle(onScroll, 200)); // public
this.getPageOffset = getPageOffset;
this.getLinearSpacialHash = getLinearSpacialHash;
this.getVerticallyVisiblePixels = getVerticallyVisiblePixels;
this.getViewportHeight = getViewportHeight;
this.getViewportWidth = getViewportWidth;
this.isElementNotHidden = isElementNotHidden;
this.isElementInViewport = isElementInViewport;
this.Visible = Visible;
}]);
}, {}];
require=(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==”function”&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(“Cannot find module “http://slate.com/”+o+”http://slate.com/”http://slate.com/”);throw f.code=”MODULE_NOT_FOUND”,f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==”function”&&require;for(var o=0;o







