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
On Sept. 1, Larry Krakow, a butcher from Queens, was cutting meat at his job at a mom-and-pop shop on Long Island, when his phone started “dinging like crazy.” Something was up, but Krakow, who moonlights as a progressive blogger and is a member of dozens of left-leaning political groups on Facebook, had no idea how surreal things would get. By that evening he and a number of other freelance writers were accused of serving as unwitting participants in a Russian disinformation operation. Journalists swarmed his inbox, and within days, much of the writing portfolio he had spent the previous few months building had disappeared from the internet.
According to Facebook, Twitter, and the FBI, peacedata.net, a website to which Krakow had just submitted his 10th freelance contribution, was a Russian cutout, possibly an operation of the infamous Internet Research Agency. While both companies credited the FBI for the initial tip, Facebook and Twitter differed slightly in their attribution, with Twitter writing, “we can reliably attribute [Peace Data] to Russian state actors.” Facebook pointed directly to the IRA, a troll farm funded by a Putin crony perhaps best known for manufacturing fake American social media accounts—and even organizing protests attended by actual Americans—during the 2016 election in order to sow political and cultural discord and help elect Donald Trump. The two social media companies took down a handful of accounts and suppressed links and posts referencing Peace Data. After initially denying the allegations, Peace Data soon ceased publishing.
Early reporting has focused on Peace Data as another failed volley in the disinformation wars, part of Russia’s demonstrated interest in disrupting American democracy. Contributors for Peace Data have been painted variously as rubes, unwitting Russian agents, or desperate freelancers out for a paycheck. Some have told journalists that their writing was steered in a certain pro-Russian direction.
My perception of Peace Data is different, both in its potential as a foreign adversary and what it says about digital media. This summer, someone presenting himself as an editor of the site emailed me, asking that I freelance. I passed, but after the site’s purported Russian origins were exposed, I looked closely at its output, wondering how my writing might have figured into any of its propagandistic aims. Then I spoke with several writers, like Krakow, who did take Peace Data up on its offer.
Rather than a threat to the placid ecosystem of American journalism, the picture of Peace Data that emerged highlights some of digital media’s great flaws—including the tendency of beat journalists to quickly run with whatever embargoed information government authorities and large tech companies offer. Rather than an advanced propaganda operation, Peace Data was something much less sophisticated and more familiar: a content farm.
In the past, Facebook’s investigations into IRA activity have produced far more information than was included in its latest release. A 2018 report, for example, portrayed a broad campaign of dozens of suspect accounts and included screenshots of numerous fraudulent posts and ads. This time around, there has been almost no evidence released to back up the claim that Peace Data was an IRA or Russian operation. When asked, Facebook and the FBI declined to provide any technical data or other information that could firm up the attribution. If all of it is true, if the FBI was able to uncover an IRA operation in its apparently early stages, it seems that the U.S. intelligence community is able to keep a very close eye on Putin’s favorite troll shop. But Facebook and the FBI alike seem to be withholding information, perhaps in order to protect valuable sources and investigative methods.
Whatever Peace Data was, the site was hardly a sturdy foothold into spreading chaos on a mass scale. To start, it had almost no audience. According to Facebook’s report, Peace Data had 13 Facebook accounts and two Pages on the platform. The English-language Page had slightly more than 200 followers, while a related Arabic-language page had nearly 14,000. Peace Data had paid $480 in Facebook advertising to promote its content. Its Twitter numbers were similarly modest.
Whatever Peace Data was, the site was hardly a sturdy foothold into spreading chaos on a mass scale.
That Facebook would highlight its actions in this case is peculiar. The same report, for example, also discusses what appeared to be a much broader campaign of political misinformation and what Facebook calls “coordinated inauthentic behavior” by a separate network focused on Venezuela, Mexico, and Bolivia. That network involved dozens of accounts, hundreds of thousands of followers, and $3.6 million in spending on Facebook ads.
On the other hand, Peace Data, whose posts date to December 2019, holds interest as the first attributed IRA operation of the 2020 election cycle. It also might reflect a certain Russian modus operandi, in which websites and social media accounts are slowly built up over time, with a record of “normal” posting adding to their patina of authenticity. It’s unclear whether Peace Data was in this stage or simply never got traction with reading audiences.
As for Peace Data’s content, the characterization of the site as propagandistic left-wing agitprop are off. While peacedata.net was somewhat low-rent in appearance, much of its content was garden-variety left-wing material: criticisms of American policing, militarism, inequality, and other topics that one might expect to find on, say, Democracy Now! or AlterNet. In his own articles, Krakow wrote critically about Trump’s authoritarianism, the blinkered concerns of mainstream media, issues affecting working people, militarized police in Portland, and corruption built into the CARES Act. While Peace Data published content on subjects—Belarus and NATO, for instance—potentially near and dear to the Kremlin’s heart, it was not a fawning admirer of Russia or Trump.
“The site has an independent and very left-wing character,” said Melody Benjamin, a Peace Data contributor who pointed to the site’s articles on prison abolition and anti-imperialism.
As a journalistic outfit, Peace Data was clearly lacking. It cribbed articles and videos from other sites without consent. It didn’t break news. And its editors didn’t do any editing. The four Peace Data contributors I spoke with said that their articles were published almost verbatim, with practically no editorial input at all, belying accusations of Russian manipulation.
“They did not change a single word,” said Awkword, a digital strategist, activist, and hip-hop artist who contributed an article about Mike Schmidt, the new, progressive district attorney for Multnomah County, Oregon, which contains Portland. “They did not come up with the topic. I did.”
Samantha Lile, a freelance writer from Missouri who writes for a range of companies, e-commerce blogs, and business sites, said that an editor at Peace Data suggested the topic of recent attacks on the press. The site then published her article, which focused on attacks against the press in the U.S. but also included historical references to Soviet repression of free speech. They even paid her in advance; contributors I spoke with received anywhere from $30 to $250, always via PayPal. While Peace Data contacted many of its contributors directly via Twitter, email, or LinkedIn, the site also recruited writers for low rates through gig-work platforms like Upwork and Guru.com.
Lile’s only complaint is that her Peace Data editor stopped responding to emails.
“They gave me really good feedback, but then she just vanished,” said Lile.
I had my own inklings. It was late July when a man calling himself Thomas Degas emailed me about writing for peacedata.net, where he served as managing editor. His message, which came from an account with Protonmail, an encrypted email service based in Switzerland, called Peace Data “a young independent nonprofit dedicated to exposure of war crimes and unmasking the corrupt world elites.” The message was impersonal, mostly grammatically correct, and written in a couple different font sizes, indicating that parts of it had been cut and pasted from other documents. I responded with my fee and asked for more information about the site. He never provided it, instead replying with an offer of $200 for 1,000 words. Sensing a vague air of grift, I decided to stop replying.
While it may be a minor player in the geopolitical information wars, Peace Data calls into question what a legitimate publisher is and how social networks should treat them. Awkword, who said he’d want “transparency and truthfulness” in a publication, also said that it did not matter in the end where a publication is based or the source of its funding. “They’re posting articles telling the truth,” he said. “And they’re posting opinions from leftists. So I support that.” (According to Graphika’s report, Peace Data’s most commonly used sources of cribbed content were Mint Press News and the World Socialist Web Site.)
“They gave me really good feedback, but then [my editor] just vanished.”
— Peace Data contributor Samantha Lile
For Larry Krakow, working with Peace Data “has been a great relationship,” with most of his communications going through an editor named Alex Lacusta.
What Peace Data offered, apparently, was an outlet for unknown and early-career writers looking to air leftist opinions and general dissatisfaction with the state of the country. Krakow, for instance, turned to writing earlier this year after he contracted COVID-19. He saw it as a way to find his writing voice, which he says is rooted in a working-class perspective.
“I launched my blog because I’m fed up of the way things are going,” said Krakow, explaining that while he goes after both major parties, he’s “extra critical of Donald Trump.” He hopes to one day get out of cutting meat in order to write full-time. He cites popular independent, leftist media personalities like Kyle Kulinski and Jimmy Dore as models.
While Peace Data did not seem to uphold the tenets of respectable journalism, its influence—and its malicious intent—is hard to gauge even in retrospect. Could basically truthful articles on Portland’s street violence or Americans losing health care be used as a pretext for some grander kind of social manipulation, akin to what the IRA allegedly attempted to achieve in the 2016 election? It seems unlikely. Peace Data’s content certainly looks benign compared to the vast right-wing social media ecosystem and the misinformation it traffics in, from Trump on down to the various minor demagogues who churn out podcasts, articles, and posts in support of his administration.
As for Peace Data’s abuse of the social networks’ rules, it’s obvious that any state-backed disinformation campaign should be banned from a platform that asks users to use their real identities and bars coordinated disinformation. But it’s unclear why the companies are less punitive when domestic actors cross these lines. Conservative websites like the Daily Wire, for example, have been caught violating Facebook’s rules against “coordinated inauthentic behavior” by creating large networks of misleading Pages, yet suffered no consequences. (Following critical reporting on the practice, all Daily Wire-managed pages are now marked as such.)
One irony of Peace Data’s brief existence was that it did get involved in a misinformation fiasco, but it had almost nothing to do with Peace Data itself. Instead, it concerned a right-wing journalist who has been denounced for publishing misleading material but whose social-media following seems only to grow: Andy Ngo.
In July, Awkword interviewed Mike Schmidt, an old friend who happened to be the new DA of Multnomah County, Oregon, for his web series. During the interview, Schmidt told Awkword that as DA he would prosecute violent felonies committed at protests but he wouldn’t prosecute people for exercising their First Amendment rights. Ngo quickly picked up on Schmidt’s remarks and misconstrued them, tweeting that Schmidt wouldn’t prosecute violent felonies. Ngo and hundreds of his followers then deluged Schmidt and Awkword with false tweets painting the new DA as collaborating with a dangerous “Antifa militant.”
And so, it followed that when Awkword was contacted by a Peace Data editor, he decided he had something to write about. He wrote an article describing the saga and how people like Ngo use their large platforms to spread harmful misinformation.
Later, reflecting on the incident, Awkword said, “I think it’s incredibly ironic that the media site that I wrote an article for on the spreading of disinformation in this Black Mirror era has now been identified or labeled as spreading disinformation.”
Despite Peace Data’s obfuscations—the editors’ excuses and disavowals, the fictional identities, the hasty shutdown of the entire site—the contributors I talked to stand by their work. They don’t like being lied to, but they made their contributions in good faith and feel that they are authentic expressions of their left-wing beliefs.
Now, however, they wonder if their associations with Peace Data will affect their writing careers. They also question what it means to contribute to a publication whose authenticity, its very existence, remains murky.
When I asked Krakow whether he thought Alex, his editor, was a real person, he said he wasn’t sure. “I think there’s no way of knowing,” he said. “But at this point, I personally really don’t care because this whole process was about self-expression. I could care less who the person is on the other end who’s hitting the upload button.”
Lile expressed discomfort about the lack of clarity around the whole situation, including the dearth of evidence. “I just have to wonder if there’s more to it,” she said.
More answers seem long in coming. A few days after being publicly unmasked as a potential Russian operation, Peace Data ceased publishing and scrubbed its archives. The articles that its writers had proudly contributed are now only available as cached search results and screenshots in a Facebook company report on the dangers of Russian misinformation.
Under the headline “Fucking awesome,” Peace Data now features a cartoon depicting a large guillotine hovering over the soon-to-be-separated heads of Jeff Bezos, Mark Zuckerberg, and Jack Dorsey. Above the cartoon is a brief statement in defense of the site’s purported mission. One line stands out, both for its second-hand rhetoric and its clunky wording. It says, simply: “We gave a voice to the voiceless people.”
Future Tense
is a partnership of
Slate,
New America, and
Arizona State University
that examines emerging technologies, public policy, and society.
'));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







