Social icon element need JNews Essential plugin to be activated.
Thursday, May 26, 2022
  • Login
Literary Reviews
  • Home
  • OUR BOOK SHOP
    • Erotic Novels
    • BEST SELLING BOOKS
    • Science Fiction Books
    • Business and Management
    • Computing and IT
    • Cooking
    • Education
    • Religion & Spirituality
    • Self Help
    • Teens & Young Adults
  • Literary Review
  • Literature
  • Book Writing
  • Kindle Publishing
  • Romantic
  • Science Fiction
  • Cooking
  • MORE
    • Erotic
    • Mysteries, Thrillers
    • Literary Themes
    • Business and Management
    • Literary Agents
    • Literary Devices
    • New Books
    • Self Help
    • Teens & Young Adults Novels
    • Computing and IT
    • Education
    • Religion & Spirituality Novels
No Result
View All Result
Literary Reviews
Home Science Fiction

Cory Doctorow on the danger of cynical science fiction.

admin by admin
November 11, 2020
in Science Fiction
0
Cory Doctorow on the danger of cynical science fiction.
0
SHARES
9
VIEWS
Share on FacebookShare on Twitter

Related posts

May 2021 Fantasy & Sci-Fi Book Releases

May 2021 Fantasy & Sci-Fi Book Releases

June 11, 2021
The Expanse authors finish final book, win bet with George R.R. Martin

The Expanse authors finish final book, win bet with George R.R. Martin

June 11, 2021

[ad_1]

A guy with a large gun, a mushroom cloud, and an angry robot.
Photo illustration by Slate. Photos by undefined/iStock/Getty Images Plus, AlexLMX/iStock/Getty Images Plus, and Kirillm/iStock/Getty Images Plus.

Slate has relationships with various online retailers.
If you buy something through our links,
Slate may earn an affiliate commission.
We update links when possible,
but note that deals can expire and all prices are subject to change.
All prices were up to date at the time of publication.

When I moved to California from Toronto (by way of London), I was shocked by the prevalence of gun stores and, by their implication, that so many of my reasonable-seeming neighbors were doubtless in possession of lethal weapons. Gradually the shock wore off—until the plague struck. When the lockdown went into effect, the mysterious gun stores on the main street near my house sprouted around-the-block lines of poorly distanced people lining up to buy handguns. I used to joke that they were planning to shoot the virus and that their marksmanship was not likely to be up to the task, but I knew what it was all about. They were buying guns because they’d told themselves a story: As soon as things went wrong, order would collapse, and their neighbors would turn on them.

Somehow, I couldn’t help but feel responsible. I’m a science-fiction writer, and I write a lot of disaster stories. Made-up stories, even stories of impossible things, are ways for us to mentally rehearse our responses to different social outcomes. Philosopher Daniel Dennett’s conception of an intuition pump—“a thought experiment structured to allow the thinker to use their intuition to develop an answer to a problem”—suggests that fiction (which is, after all, an elaborate thought experiment) isn’t merely entertainment.*

That’s true. And it’s a problem.

Like all pulp writers, my work puts the plot front and center. That’s not to say that character and theme don’t get a look in, but as William Gibson says, “I can do fucking plot. I can feel my links to Dashiell Hammett. … I’ve still got wheels on my tractor.” And my plots follow sci-fi’s dominant motif, which is “problems and their solutions.”

There’s a prototypical kind of sci-fi story whose throughline is “Technology caused and/or resolved this dire problem.” And when you’re into plot and you need problems, you don’t even need to choose between “human vs. human” and “human vs. nature,” you can opt for both, human vs. nature vs. human. The central crisis—a nuclear meltdown, a viral pandemic, a breakdown of our networks or computers—is turned into a catastrophe when the other people around your characters turn out to have been beasts all along, their vicious true natures barely kept in check all these years by the fragile veneer of civilization. Your character might be part of a team, but they’re still a small band of heroes fighting against a brutal and vicious world.

This is the thought experiment of a thousand sci-fi stories: When the chips are down, will your neighbors be your enemies or your saviors? When the ship sinks, should you take the lifeboat and row and row and row, because if you stop to fill the empty seats, someone’s gonna put a gun to your head, throw you in the sea, and give your seat to their pals? I’ve committed this sin myself. Right at the start of the first novel in my Little Brother series, a character gets stabbed in a crowded subway by someone who is apparently just knifing people at random in a crowd. That’s never explained, and no one has ever asked me about it. It’s just people being awful.

But according to Dennett, this isn’t just fiction—it is the stuff we’ve fueled our intuition pumps with. The problem is, it’s wrong. It makes for good stories, but those stories don’t reflect the truth of the world as I see it. Humanity is, on balance, good. We have done remarkable things. The fact that we remain here today, after so many disasters in our species’ history, is a reminder that we are a species of self-rescuing princesses—characters who save one another in crisis, rather than turning on ourselves.

The historical evidence supports this as well. As Rebecca Solnit’s essential 2009 book, A Paradise Built in Hell, lavishly demonstrates, crises are when our species shines, moments of great personal and group sacrifice, marred not by barbaric opportunism but by the expectation of barbaric opportunism. “Elite panic” is the sociological term for it, when wealthy people are convinced that the peasants will dissolve into bestiality and preemptively start shooting anyone who wanders into their neighborhoods during a crisis.

I think that our pulp fiction has done us a disservice, creating a commonsense assumption that we are one power failure away from Mad Max: Fury Road. The reality is ever so much messier, full of people trying to do the right thing—which still causes high-stakes, serious conflicts, but they’re conflicts of good faith and sincere disagreement.

Not only does the red-of-tooth-and-claw storyline misprime our intuition pumps, it’s also lazy storytelling that squanders the opportunity to get more plot into the tale, as the gnarly, complicated stories of irreconcilable, good-faith conflicts are so much more fascinating than merely staving off the ravening hordes of bestial proles who show up as soon as the lights go out.

In my Little Brother novels, I’ve worked to dig into those more complicated conflicts with increasing fervor. In the first book, Little Brother (2008), a group of teens whose hometown is rocked by a terrorist attack wages war on the Department of Homeland Security, which swiftly converts San Francisco into a police state. In Homeland (2013), our heroes become custodians of a huge trove of leaked U.S. government secrets that they attempt to release in a responsible and measured way, caught between private military contractors who are trying to recover the leaked docs on the one hand and shadowy, radical hacktivists who just want to dump it all on the other.

I wrote these stories in the era of mass surveillance, as my fears for networked computers were coming true: that the liberatory power of computers would be sidelined and they would be turned into mass surveillance, control, and manipulation instead. Both stories trace the characters’ dawning realization that there is no individual solution to their problems—that the kind of systemic change they want is a team sport and has to include people usually left on the sidelines in tech fights.

Right after Homeland was published, I read Solnit’s Paradise Built in Hell. That book confirmed the intuition that led me to steer Little Brother (after that initial convenient stabbing) and Homeland away from the cheap narrative convenience toward complicated narratives about irreconcilable, good-faith disagreements.

On Tuesday, I published Attack Surface, a stand-alone novel for adults and the third Little Brother book. (The first two were young adult novels.) It’s the story of Masha Maximow, who appears in the first two books as an antagonist who sometimes saves the day. Masha has convinced herself that building cyberweapons is the right thing to do, even when they’re used by dictators. She’s spied on some pretty bad people, and she’s seen her tools used to disrupt violent psychopathic militias in Iraq, revenge-killing Baathist ex-soldiers engaging in punitive rape and torture. She knows that not everyone who uses her tools is on the side of the angels, but she’s talked herself into a self-conception as a moral actor.

Attack Surface is the story of Masha’s moral reckoning when her cyberweapons have been trained on her childhood best friend and the Black Lives Matter successor group she helps organize. Masha’s journey is a retraining of her intuition pump, a painful process that involves confronting the compromises she made on the way and the stories she told herself about them. I wrote it as tens of thousands of tech workers were walking off the job in protest of workplace harassment, algorithmic racism, collaboration with Immigration and Customs Enforcement and local police, and the deployment of facial recognition and other surveillance tools. It seemed to me that a reckoning was at hand.

The Little Brother series inspired dozens of technologists, activists, cyberlawyers, and cryptographers to get into the field and agitate for a more humane future. For example, if you watch Laura Poitras’ Academy Award–winning documentary Citizenfour closely, you can see that Edward Snowden has a copy of Homeland with him as he leaves his room in Hong Kong.

But in the years since Homeland and Citizenfour, tech has relentlessly marched toward control and oppression. For every app that Hong Kong protesters used to coordinate their protests and evade rampaging cops, there were five shadowy databases keeping tabs on their public transit use, or their mobile phones’ identifiers, or their online search habits. Across the world, tech users are struggling to defend themselves against tech, and within the tech giants, tech workers are struggling to define their moral responsibility to the world.

  1. Pfizer Says Its COVID-19 Vaccine Is 90 Percent Effective. What Happens Now?

  2. How James “the Amazing” Randi Hindered His Own Movement

  3. Conservatives Are Gearing Up to Falsely Blame Big Tech Censorship for Trump’s Loss

  4. How a Coronavirus Mutation in Minks Could Wreak Havoc on Vaccine Development

With Attack Surface, I’m targeting the techies whose hearts may have been in the right place, but whose cheap fictions (inspired by the cheap fictions of my field) about the need to build oppressive systems of control led them to build our world of digital surveillance, manipulation, and control. The workers who rationalized their way into building something they knew to be a little wrong, and then something else that was a little more wrong, and again and again, a thousand compromises made in the name of “fighting crime” or “fighting extremism,” until one day they looked at their careers and their reflection in the mirror and couldn’t recognize either.

We once had stories of technology’s power to liberate us: not merely to build a separate, cryptographically secured demimonde where the illegitimate power of a corrupt state could not penetrate, but a temporary autonomous zone where we could organize for meaningful, structural, political change. But today, it’s easy to think that technology has no role to play in our liberation, to cede the destiny of the digital world to the forces of oppression.

New stories will help us understand the importance of seizing the means of computation and using it to build movements that break up monopolies, fight oligarchy, and demand pluralistic, shared power for a pluralistic, shared world.

Changing our intuition pumps is not easy, but it’s urgent—and overdue.

Book cover of Attack Surface.

Correction, Oct. 13, 2020: This article originally misidentified Daniel Dennett as Daniel Denning.

Future Tense
is a partnership of
Slate,
New America, and
Arizona State University
that examines emerging technologies, public policy, and society.

');
}

function tryGetCriteoFastBid() {
try {
var fastBidStorageKey = "criteo_fast_bid",
hashPrefix = "// Hash: ",
fastBidFromStorage = storage.getDataFromLocalStorage(fastBidStorageKey),
firstLineEndPosition,
firstLine,
publisherTagHash,
publisherTag;
null !== fastBidFromStorage && (firstLineEndPosition = fastBidFromStorage.indexOf("n"), firstLine = fastBidFromStorage.substr(0, firstLineEndPosition).trim(), firstLine.substr(0, hashPrefix.length) !== hashPrefix ? (__WEBPACK_IMPORTED_MODULE_4__src_utils_js__.logWarn("No hash found in FastBid"), storage.removeDataFromLocalStorage(fastBidStorageKey)) : (publisherTagHash = firstLine.substr(hashPrefix.length), publisherTag = fastBidFromStorage.substr(firstLineEndPosition + 1), Object(__WEBPACK_IMPORTED_MODULE_6_criteo_direct_rsa_validate_build_verify_js__.verify)(publisherTag, publisherTagHash, FAST_BID_PUBKEY_N, FAST_BID_PUBKEY_E) ? (__WEBPACK_IMPORTED_MODULE_4__src_utils_js__.logInfo("Using Criteo FastBid"), eval(publisherTag)) : (__WEBPACK_IMPORTED_MODULE_4__src_utils_js__.logWarn("Invalid Criteo FastBid found"), storage.removeDataFromLocalStorage(fastBidStorageKey))));
} catch (t) {}
}

Object(__WEBPACK_IMPORTED_MODULE_1__src_adapters_bidderFactory_js__.registerBidder)(spec);
},
377: function _(t, e, r) {
"use strict";

Object.defineProperty(e, "__esModule", {
value: !0
});
var a = r(378),
n = r(379);

e.verify = function (t, e, r, i) {
var s = new a.BigInteger(a.b64toHex(e)),
o = new a.BigInteger(a.b64toHex(r)),
_ = s.modPowInt(i, o);

return a.removeExtraSymbols(_.toHexString()) === n.Sha256.hash(t);
};
},
378: function _(t, e, r) {
"use strict";

var i;
Object.defineProperty(e, "__esModule", {
value: !0
});
var s = (T.prototype.toHexString = function () {
if (this.s < 0) return "-" + this.negate().toHexString(); var t, e = !1, r = "https://slate.com/", i = this.t, s = this.DB - i * this.DB % 4; if (0 < i--) for (s < this.DB && 0 < (t = this[i] >> s) && (e = !0, r = c(t)); 0 <= i;) { s < 4 ? (t = (this[i] & (1 << s) - 1) << 4 - s, t |= this[--i] >> (s += this.DB - 4)) : (t = this[i] >> (s -= 4) & 15, s <= 0 && (s += this.DB, --i)), 0 < t && (e = !0), e && (r += c(t)); } return e ? r : "0"; }, T.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 s = n(t, e); s < 0 ? "-" == t.charAt(e) && (r = !0) : (r = !1, 0 == i ? this[this.t++] = s : i + 4 > this.DB ? (this[this.t - 1] |= (s & (1 << this.DB - i) - 1) << i, this[this.t++] = s >> this.DB - i) : this[this.t - 1] |= s << i, (i += 4) >= this.DB && (i -= this.DB));
}

this.clamp(), r && T.ZERO.subTo(this, this);
}
}, T.prototype.negate = function () {
var t = b();
return T.ZERO.subTo(this, t), t;
}, T.prototype.abs = function () {
return this.s < 0 ? this.negate() : this; }, T.prototype.mod = function (t) { var e = b(); return this.abs().divRemTo(t, null, e), this.s < 0 && 0 < e.compareTo(T.ZERO) && t.subTo(e, e), e; }, T.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; }, T.prototype.lShiftTo = function (t, e) { for (var r = t % this.DB, i = this.DB - r, s = (1 << i) - 1, o = Math.floor(t / this.DB), _ = this.s << r & this.DM, a = this.t - 1; 0 <= a; --a) { e[a + o + 1] = this[a] >> i | _, _ = (this[a] & s) << r; } for (a = o - 1; 0 <= a; --a) { e[a] = 0; } e[o] = _, e.t = this.t + o + 1, e.s = this.s, e.clamp(); }, T.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; }, T.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; }, T.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(); }, T.prototype.multiplyTo = function (t, e) { var r = this.abs(), i = t.abs(), s = r.t; for (e.t = s + i.t; 0 <= --s;) { e[s] = 0; } for (s = 0; s < i.t; ++s) { e[s + r.t] = r.am(0, i[s], e, s, 0, r.t); } e.s = 0, e.clamp(), this.s != t.s && T.ZERO.subTo(e, e); }, T.prototype.divRemTo = function (t, e, r) { var i = t.abs(); if (!(i.t <= 0)) { var s = this.abs(); if (s.t < i.t) return null != e && e.fromHexString("0"), void (null != r && this.copyTo(r)); null == r && (r = b()); var o = b(), _ = this.s, a = t.s, n = this.DB - D(i[i.t - 1]); 0 < n ? (i.lShiftTo(n, o), s.lShiftTo(n, r)) : (i.copyTo(o), s.copyTo(r)); var p = o.t, c = o[p - 1]; if (0 != c) { var d = c * (1 << this.F1) + (1 < p ? o[p - 2] >> this.F2 : 0),
u = this.FV / d,
h = (1 << this.F1) / d, l = 1 << this.F2, f = r.t, E = f - p, v = null == e ? b() : e; for (o.dlShiftTo(E, v), 0 <= r.compareTo(v) && (r[r.t++] = 1, r.subTo(v, r)), T.ONE.dlShiftTo(p, v), v.subTo(o, o); o.t < p;) { o[o.t++] = 0; } for (; 0 <= --E;) { var m = r[--f] == c ? this.DM : Math.floor(r[f] * u + (r[f - 1] + l) * h); if ((r[f] += o.am(0, m, r, E, 0, p)) < m) for (o.dlShiftTo(E, v), r.subTo(v, r); r[f] < --m;) { r.subTo(v, r); } } null != e && (r.drShiftTo(p, e), _ != a && T.ZERO.subTo(e, e)), r.t = p, r.clamp(), 0 < n && r.rShiftTo(n, r), _ < 0 && T.ZERO.subTo(r, r); } } }, T.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,
s = this.DB - i,
o = (1 << i) - 1; e[0] = this[r] >> i;

for (var _ = r + 1; _ < this.t; ++_) { e[_ - r - 1] |= (this[_] & o) << s, e[_ - r] = this[_] >> i;
}

0 < i && (e[this.t - r - 1] |= (this.s & o) << s), e.t = this.t - r, e.clamp(); } }, T.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; }, T.prototype.subTo = function (t, e) { for (var r = 0, i = 0, s = Math.min(t.t, this.t); r < s;) { 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(); }, T.prototype.clamp = function () { for (var t = this.s & this.DM; 0 < this.t && this[this.t - 1] == t;) { --this.t; } }, T.prototype.modPowInt = function (t, e) { var r = new (t < 256 "https://slate.com/" e.isEven() ? d : h)(e); return this.exp(t, r); }, T.prototype.exp = function (t, e) { if (4294967295 < t "https://slate.com/" t < 1) return T.ONE; var r, i = b(), s = b(), o = e.convert(this), _ = D(t) - 1; for (o.copyTo(i); 0 <= --_;) { e.sqrTo(i, s), 0 < (t & 1 << _) ? e.mulTo(s, o, i) : (r = i, i = s, s = r); } return e.revert(i); }, T.prototype.isEven = function () { return 0 == (0 < this.t ? 1 & this[0] : this.s); }, T.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; }, T.prototype.am1 = function (t, e, r, i, s, o) { for (; 0 <= --o;) { var _ = e * this[t++] + r[i] + s; s = Math.floor(_ / 67108864), r[i++] = 67108863 & _; } return s; }, T.prototype.am2 = function (t, e, r, i, s, o) { for (var _ = 32767 & e, a = e >> 15; 0 <= --o;) { var n = 32767 & this[t], p = this[t++] >> 15,
c = a * n + p * _;
s = ((n = _ * n + ((32767 & c) << 15) + r[i] + (1073741823 & s)) >>> 30) + (c >>> 15) + a * p + (s >>> 30), r[i++] = 1073741823 & n;
}

return s;
}, T.prototype.am3 = function (t, e, r, i, s, o) {
for (var _ = 16383 & e, a = e >> 14; 0 <= --o;) { var n = 16383 & this[t], p = this[t++] >> 14,
c = a * n + p * _;
s = ((n = _ * n + ((16383 & c) << 14) + r[i] + s) >> 28) + (c >> 14) + a * p, r[i++] = 268435455 & n;
}

return s;
}, T);

function T(t) {
null !== t && this.fromHexString(t);
}

function b() {
return new s(null);
}

function D(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 = s, e.nbi = b, e.nbits = D;

for (var o = [], _ = "0".charCodeAt(0), a = 0; a <= 9; ++a) { o[_++] = a; } for (_ = "a".charCodeAt(0), a = 10; a < 36; ++a) { o[_++] = a; } for (_ = "A".charCodeAt(0), a = 10; a < 36; ++a) { o[_++] = a; } function n(t, e) { var r = o[t.charCodeAt(e)]; return null == r ? -1 : r; } e.intAt = n; var p = "0123456789abcdefghijklmnopqrstuvwxyz"; function c(t) { return p.charAt(t); } e.int2char = c; e.b64toHex = function (t) { for (var e = "https://slate.com/", r = 0, i = 0, s = 0; s < t.length && "=" != t.charAt(s); ++s) { var o = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(t.charAt(s)); o < 0 "https://slate.com/" (r = 0 == r ? (e += c(o >> 2), i = 3 & o, 1) : 1 == r ? (e += c(i << 2 | o >> 4), i = 15 & o, 2) : 2 == r ? (e += c(i), e += c(o >> 2), i = 3 & o, 3) : (e += c(i << 2 | o >> 4), e += c(15 & o), 0));
}

return 1 == r && (e += c(i << 2)), e; }, e.removeExtraSymbols = function (t) { return t.replace(/^1f+00/, "https://slate.com/").replace("3031300d060960864801650304020105000420"https://slate.com/,"https://slate.com/"); }; var d = (u.prototype.convert = function (t) { return t.s < 0 "https://slate.com/" 0 <= t.compareTo(this.m) ? t.mod(this.m) : t; }, u.prototype.revert = function (t) { return t; }, u.prototype.reduce = function (t) { t.divRemTo(this.m, null, t); }, u.prototype.mulTo = function (t, e, r) { t.multiplyTo(e, r), this.reduce(r); }, u.prototype.sqrTo = function (t, e) { t.squareTo(e), this.reduce(e); }, u); function u(t) { this.m = t; } var h = (l.prototype.convert = function (t) { var e = b(); return t.abs().dlShiftTo(this.m.t, e), e.divRemTo(this.m, null, e), t.s < 0 && 0 < e.compareTo(s.ZERO) && this.m.subTo(e, e), e; }, l.prototype.revert = function (t) { var e = b(); 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 f(t) { var e = b(); return e.fromHexString(t.toString()), e; } e.nbv = f, s.ZERO = f(0), s.ONE = f(1), i = "Microsoft Internet Explorer" == navigator.appName ? (s.prototype.am = s.prototype.am2, 30) : "Netscape" != navigator.appName ? (s.prototype.am = s.prototype.am1, 26) : (s.prototype.am = s.prototype.am3, 28), s.prototype.DB = i, s.prototype.DM = (1 << i) - 1, s.prototype.DV = 1 << i; s.prototype.FV = Math.pow(2, 52), s.prototype.F1 = 52 - i, s.prototype.F2 = 2 * i - 52; }, 379: function _(t, e, r) { "use strict"; Object.defineProperty(e, "__esModule", { value: !0 }); var i = (y.hash = function (t) { t = y.utf8Encode(t "https://slate.com/"https://slate.com/"https://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, s = Math.ceil(i / 16), o = new Array(s), _ = 0; _ < s; _++) { o[_] = new Array(16); for (var a = 0; a < 16; a++) { o[_][a] = t.charCodeAt(64 * _ + 4 * a) << 24 | t.charCodeAt(64 * _ + 4 * a + 1) << 16 | t.charCodeAt(64 * _ + 4 * a + 2) << 8 | t.charCodeAt(64 * _ + 4 * a + 3) << 0; } } var n = 8 * (t.length - 1) / Math.pow(2, 32), p = 8 * (t.length - 1) >>> 0;

for (o[s - 1][14] = Math.floor(n), o[s - 1][15] = p, _ = 0; _ < s; _++) { for (var c = new Array(64), d = 0; d < 16; d++) { c[d] = o[_][d]; } for (d = 16; d < 64; d++) { c[d] = y.q1(c[d - 2]) + c[d - 7] + y.q0(c[d - 15]) + c[d - 16] >>> 0;
}

for (var u = r[0], h = r[1], l = r[2], f = r[3], E = r[4], v = r[5], m = r[6], T = r[7], d = 0; d < 64; d++) { var b = T + y.z1(E) + y.Ch(E, v, m) + e[d] + c[d], D = y.z0(u) + y.Maj(u, h, l); T = m, m = v, v = E, E = f + b >>> 0, f = l, l = h, h = u, u = b + D >>> 0;
}

r[0] = r[0] + u >>> 0, r[1] = r[1] + h >>> 0, r[2] = r[2] + l >>> 0, r[3] = r[3] + f >>> 0, r[4] = r[4] + E >>> 0, r[5] = r[5] + v >>> 0, r[6] = r[6] + m >>> 0, r[7] = r[7] + T >>> 0;
}

for (var P = new Array(r.length), T = 0; T < r.length; T++) { P[T] = ("00000000" + r[T].toString(16)).slice(-8); } return P.join("https://slate.com/"); }, y.utf8Encode = function (e) { try { return new TextEncoder().encode(e).reduce(function (t, e) { return t + String.fromCharCode(e); }, "https://slate.com/"); } catch (t) { return unescape(encodeURIComponent(e)); } }, y.ROTR = function (t, e) { return e >>> t | e << 32 - t; }, y.z0 = function (t) { return y.ROTR(2, t) ^ y.ROTR(13, t) ^ y.ROTR(22, t); }, y.z1 = function (t) { return y.ROTR(6, t) ^ y.ROTR(11, t) ^ y.ROTR(25, t); }, y.q0 = function (t) { return y.ROTR(7, t) ^ y.ROTR(18, t) ^ t >>> 3;
}, y.q1 = function (t) {
return y.ROTR(17, t) ^ y.ROTR(19, t) ^ t >>> 10;
}, y.Ch = function (t, e, r) {
return t & e ^ ~t & r;
}, y.Maj = function (t, e, r) {
return t & e ^ t & r ^ e & r;
}, y);

function y() {}

e.Sha256 = i;
}
}, [375]);
pbjsChunk([214], {
496: function _(e, r, i) {
e.exports = i(497);
},
497: function _(e, r, i) {
"use strict";

Object.defineProperty(r, "__esModule", {
value: !0
}), i.d(r, "spec", function () {
return p;
});
var T = i(0),
S = i(2),
v = i(3),
t = i(10),
l = i.n(t),
a = i(498),
n = i.n(a),
s = i(1);

function g(e) {
return (g = "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 = [S.b, S.d],
y = 100,
b = 300,
h = 3600,
w = !0,
x = {
JPY: 1
};

function C(e) {
var r = {};
return r.id = e.bidId, r.ext = {}, r.ext.siteID = e.params.siteId, !e.params.hasOwnProperty("id") "https://slate.com/"https://slate.com/"string" != typeof e.params.id && "number" != typeof e.params.id ? r.ext.sid = "https://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 A(e, r) {
if (d(e)) return e[0] === r[0] && e[1] === r[1];

for (var i = 0; i < e.length; i++) { if (e[i][0] === r[0] && e[i][1] === r[1]) return 1; } } function j(e, r, i, t) { var a = [], n = {}, s = e[0].userId; if (s && "object" === g(s) && s.idl_env && function (e, r, i, t, a, n) { if (i) return r[a] = 1, e.push({ source: t, uids: [{ id: i, ext: { rtiPartner: n } }] }); T.logWarn("Tried to add a user ID from Prebid, the ID received was null"); }(a, n, s.idl_env, "liveramp.com"https://slate.com/,"LiveRampIp"https://slate.com/,"idl"), window.headertag && "function" == typeof window.headertag.getIdentityInfo) { var o, d = window.headertag.getIdentityInfo(); if (d && "object" === g(d)) for (var p in d) { d.hasOwnProperty(p) && (n.hasOwnProperty(p) "https://slate.com/" !(o = d[p]).responsePending && o.data && "object" === g(o.data) && Object.keys(o.data).length && a.push(o.data)); } } var m, c = {}; c.id = e[0].bidderRequestId, c.imp = i, c.site = {}, c.ext = {}, c.ext.source = "prebid", e[0].schain && (c.source = { ext: { schain: e[0].schain } }), 0 < a.length && (c.user = {}, c.user.eids = a), document.referrer && "https://slate.com/" !== document.referrer && (c.site.ref = document.referrer), r && (r.gdprConsent && ((m = r.gdprConsent).hasOwnProperty("gdprApplies") && (c.regs = { ext: { gdpr: m.gdprApplies ? 1 : 0 } }), m.hasOwnProperty("consentString") && (c.user = c.user "https://slate.com/" {}, c.user.ext = { consent: m.consentString "https://slate.com/"https://slate.com/"https://slate.com/" })), r.uspConsent && T.deepSetValue(c, "regs.ext.us_privacy", r.uspConsent), r.refererInfo && (c.site.page = r.refererInfo.referer)); var u = {}, f = r && r.bidderCode "https://slate.com/"https://slate.com/"ix", l = v.b.getConfig(f); if (l) { if ("object" === g(l.firstPartyData)) { var y = l.firstPartyData, b = "?"; for (var h in y) { y.hasOwnProperty(h) && (b += "https://slate.com/".concat(encodeURIComponent(h), "=").concat(encodeURIComponent(y[h]), "&")); } b = b.slice(0, -1), c.site.page += b; } "number" == typeof l.timeout && (u.t = l.timeout); } return u.s = e[0].params.siteId, u.v = t, u.r = JSON.stringify(c), u.ac = "j", u.sd = 1, 8.1 === t && (u.nf = 1), { method: "GET", url: "https://htlb.casalemedia.com/cygnus", data: u }; } function F(e, r) { for (var i = 0; i < e.length; i++) { if (r[0] == e[i][0] && r[1] == e[i][1]) return e.splice(i, 1), 1; } } var p = { code: "ix", gvlid: 10, supportedMediaTypes: o, isBidRequestValid: function isBidRequestValid(e) { if (!d(e.params.size)) return T.logError("ix bidder params: bid size has invalid format."), !1; if (!A(e.sizes, e.params.size)) return T.logError("ix bidder params: bid size is not included in ad unit sizes."), !1; if (e.hasOwnProperty("mediaType") && !T.contains(o, e.mediaType)) return !1; if (e.hasOwnProperty("mediaTypes") && !T.deepAccess(e, "mediaTypes.banner.sizes") && !T.deepAccess(e, "mediaTypes.video.playerSize")) return !1; if ("string" != typeof e.params.siteId && "number" != typeof e.params.siteId) return T.logError("ix bidder params: siteId must be string or number value."), !1; var r, i, t = e.params.hasOwnProperty("bidFloor"), a = e.params.hasOwnProperty("bidFloorCur"); return !!(!t && !a "https://slate.com/" t && a && (r = e.params.bidFloor, i = e.params.bidFloorCur, Boolean("number" == typeof r && "string" == typeof i && i.match(/^[A-Z]{3}$/)))) "https://slate.com/" (T.logError("ix bidder params: bidFloor / bidFloorCur parameter has invalid format."), !1); }, buildRequests: function buildRequests(e, r) { for (var i, t, a, n, s, o, d, p, m, c, u, f, l, y = [], b = [], h = [], v = null, g = {}, w = 0; w < e.length; w++) { (v = e[w]).mediaType !== S.d && !T.deepAccess(v, "mediaTypes.video") "https://slate.com/" (v.mediaType === S.d "https://slate.com/" A(v.mediaTypes.video.playerSize, v.params.size) ? h.push(function (e) { var r = C(e); r.video = T.deepClone(e.params.video), r.video.w = e.params.size[0], r.video.h = e.params.size[1]; var i = T.deepAccess(e, "mediaTypes.video.context"); return i && ("instream" === i ? r.video.placement = 1 : "outstream" === i ? r.video.placement = 4 : T.logWarn("ix bidder params: video context "https://slate.com/".concat(i, "https://slate.com/" is not supported"))), r; }(v)) : T.logError("Bid size is not included in video playerSize")), v.mediaType !== S.b && !T.deepAccess(v, "mediaTypes.banner") && (v.mediaType "https://slate.com/" v.mediaTypes) "https://slate.com/" (c = void 0, (c = C(m = v)).banner = {}, c.banner.w = m.params.size[0], c.banner.h = m.params.size[1], c.banner.topframe = T.inIframe() ? 0 : 1, i = c, b.push(i), a = g, n = i, p = d = o = s = void 0, p = (t = v).transactionId, a.hasOwnProperty(p) ? (s = [], a[p].hasOwnProperty("missingSizes") && (s = a[p].missingSizes), F(s, t.params.size), a[p].missingSizes = s) : T.deepAccess(t, "mediaTypes.banner.sizes") && (F(o = T.deepClone(t.mediaTypes.banner.sizes), t.params.size), d = { missingSizes: o, impression: n }, a[p] = d)); } for (var x in g) { if (g.hasOwnProperty(x)) for (var I = g[x].missingSizes, P = 0; P < I.length; P++) { var z = g[x].impression, O = (u = z, f = I[P], l = void 0, (l = T.deepClone(u)).ext.sid = "https://slate.com/".concat(f[0], "x").concat(f[1]), l.banner.w = f[0], l.banner.h = f[1], l); b.push(O); } } return 0 < b.length && y.push(j(e, r, b, 7.2)), 0 < h.length && y.push(j(e, r, h, 8.1)), y; }, interpretResponse: function interpretResponse(e, r) { var i = []; if (!e.hasOwnProperty("body") "https://slate.com/" !e.body.hasOwnProperty("seatbid")) return i; for (var t, a, n, s, o = e.body, d = o.seatbid, p = 0; p < d.length; p++) { if (d[p].hasOwnProperty("bid")) for (var m = d[p].bid, c = JSON.parse(r.data.r), u = 0; u < m.length; u++) { var f = function (r, e) { if (r) return l()(e, function (e) { return e.id === r; }); }(m[u].impid, c.imp); t = m[u], a = o.cur, n = f, s = void 0, s = {}, x.hasOwnProperty(a) ? s.cpm = t.price / x[a] : s.cpm = t.price / y, s.requestId = t.impid, s.dealId = T.deepAccess(t, "ext.dealid"), s.netRevenue = w, s.currency = a, s.creativeId = t.hasOwnProperty("crid") ? t.crid : "-", T.deepAccess(t, "ext.vasturl") ? (s.vastUrl = t.ext.vasturl, s.width = n.video.w, s.height = n.video.h, s.mediaType = S.d, s.ttl = h) : (s.ad = t.adm, s.width = t.w, s.height = t.h, s.mediaType = S.b, s.ttl = b), s.meta = {}, s.meta.networkId = T.deepAccess(t, "ext.dspid"), s.meta.brandId = T.deepAccess(t, "ext.advbrandid"), s.meta.brandName = T.deepAccess(t, "ext.advbrand"), t.adomain && 0 < t.adomain.length && (s.meta.advertiserDomains = t.adomain), i.push(s); } } return i; }, transformBidParams: function transformBidParams(e) { return T.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)(p); } }, [496]); pbjsChunk([209], { 512: function _(e, t, r) { e.exports = r(513); }, 513: 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(7); function g() { return (g = Object.assign "https://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 "https://slate.com/" !e.params) && !!e.params.placementId; }, buildRequests: function buildRequests(e, t) { var r, n = d.b.getConfig("currency"), a = n && n.adServerCurrency "https://slate.com/"https://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: "https://slate.com/".concat("https://krk.kargo.com"https://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, advertiserDomains: [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 = "https://slate.com/".concat(e, "="), r = document.cookie.split(";"), n = 0; n < r.length; n++) { for (var a = r[n]; "https://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 "https://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 "https://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("https://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 "https://slate.com/"; } } }; Object(n.registerBidder)(l); } }, [512]); pbjsChunk([125], { 720: function _(e, r, t) { e.exports = t(721); }, 721: function _(e, r, t) { "use strict"; Object.defineProperty(r, "__esModule", { value: !0 }), t.d(r, "spec", function () { return z; }), r.hasVideoMediaType = s, t.d(r, "resetRubiConf", function () { return c; }), r.masSizeOrdering = d, r.determineRubiconVideoSizeId = g, r.getPriceGranularity = v, r.hasValidVideoParams = l, r.hasValidSupplyChainParams = T, r.encodeParam = b, r.resetUserSync = function () { y = !1; }; var S = t(0), i = t(1), I = t(3), u = t(2), n = t(10), C = t.n(n); function j(e, r) { return function (e) { if (Array.isArray(e)) return e; }(e) "https://slate.com/" function (e, r) { if ("undefined" == typeof Symbol "https://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 "https://slate.com/" t.length !== r); i = !0) { ; } } catch (e) { n = !0, o = e; } finally { try { i "https://slate.com/" null == s.return "https://slate.com/" s.return(); } finally { if (n) throw o; } } return t; }(e, r) "https://slate.com/" function (e, r) { if (!e) return; if ("string" == typeof e) return o(e, r); var t = Object.prototype.toString.call(e).slice(8, -1); "Object" === t && e.constructor && (t = e.constructor.name); if ("Map" === t "https://slate.com/"https://slate.com/"Set" === t) return Array.from(e); if ("Arguments" === t "https://slate.com/" /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)) return o(e, r); }(e, r) "https://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 o(e, r) { (null == r "https://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 k() { return (k = Object.assign "https://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 f(e, r, t) { return r in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } function E(e) { return (E = "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 w = {}; I.b.getConfig("rubicon", function (e) { S.mergeDeep(w, e.rubicon); }); var p = { 1: "468x60", 2: "728x90", 5: "120x90", 7: "125x125", 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", 548: "500x1000" }; S._each(p, function (e, r) { return p[e] = r; }); var z = { code: "rubicon", gvlid: 52, supportedMediaTypes: [u.b, u.d], isBidRequestValid: function isBidRequestValid(e) { if ("object" !== E(e.params)) return !1; for (var r = 0, t = ["accountId"https://slate.com/,"siteId"https://slate.com/,"zoneId"]; r < t.length; r++) { if (e.params[t[r]] = parseInt(e.params[t[r]]), isNaN(e.params[t[r]])) return S.logError("Rubicon: wrong format of accountId or siteId or zoneId."), !1; } var i = m(e, !0); return !!i && ("video" !== i "https://slate.com/" l(e)); }, buildRequests: function buildRequests(e, l) { var n, r = e.filter(function (e) { return "video" === m(e); }).map(function (t) { t.startTime = new Date().getTime(); var e, r, i, n = { id: t.transactionId, test: I.b.getConfig("debug") ? 1 : 0, cur: ["USD"], source: { tid: t.transactionId }, tmax: l.timeout, imp: [{ exp: I.b.getConfig("s2sConfig.defaultTtl"), id: t.adUnitCode, secure: 1, ext: f({}, t.bidder, t.params), video: S.deepAccess(t, "mediaTypes.video") "https://slate.com/" {} }], ext: { prebid: { cache: { vastxml: { returnCreative: !0 === w.returnVast } }, targeting: { includewinners: !0, includebidderkeys: !1, pricegranularity: v(I.b) }, bidders: { rubicon: { integration: w.int_type "https://slate.com/"https://slate.com/"pbjs" } } } } }; if ("rubicon" !== t.bidder && (n.ext.prebid.aliases = f({}, t.bidder, "rubicon")), "function" != typeof t.getFloor "https://slate.com/" w.disableFloors) e = parseFloat(S.deepAccess(t, "params.floor"));else { try { r = t.getFloor({ currency: "USD", mediaType: "video", size: O(t, "video") }); } catch (e) { S.logError("Rubicon: getFloor threw an error: ", e); } e = "object" !== E(r) "https://slate.com/"https://slate.com/"USD" !== r.currency "https://slate.com/" isNaN(parseInt(r.floor)) ? void 0 : parseFloat(r.floor); } isNaN(e) "https://slate.com/" (n.imp[0].bidfloor = e), n.imp[0].ext[t.bidder].video.size_id = g(t), function (r, t, e) { if (!r) return; "object" === E(I.b.getConfig("app")) ? r.app = I.b.getConfig("app") : r.site = { page: R(t, e) }; "object" === E(I.b.getConfig("device")) && (r.device = I.b.getConfig("device")); t.params.video.language && ["site"https://slate.com/,"device"].forEach(function (e) { r[e] && (r[e].content = k({ language: t.params.video.language }, r[e].content)); }); }(n, t, l), function (e, r) { "object" === E(e.imp[0].video) && void 0 === e.imp[0].video.skip && (e.imp[0].video.skip = r.params.video.skip); "object" === E(e.imp[0].video) && void 0 === e.imp[0].video.skipafter && (e.imp[0].video.skipafter = r.params.video.skipdelay); "object" === E(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 = O(r, "video"); e.imp[0].video.w = t[0], e.imp[0].video.h = t[1]; }(n, t), l.gdprConsent && ("boolean" == typeof l.gdprConsent.gdprApplies && (i = l.gdprConsent.gdprApplies ? 1 : 0), S.deepSetValue(n, "regs.ext.gdpr", i), S.deepSetValue(n, "user.ext.consent", l.gdprConsent.consentString)), l.uspConsent && S.deepSetValue(n, "regs.ext.us_privacy", l.uspConsent); var o, a = S.deepAccess(l, "bids.0.userIdAsEids"); a && a.length && (S.deepSetValue(n, "user.ext.eids", a), (o = C()(n.user.ext.eids, function (e) { return "liveintent.com" === e.source; })) && (S.deepSetValue(n, "user.ext.tpid", { source: o.source, uid: o.uids[0].id }), o.ext && o.ext.segments && S.deepSetValue(n, "rp.target.LIseg", o.ext.segments))); var s = I.b.getConfig("user.id"); s && S.deepSetValue(n, "user.id", s), !0 === I.b.getConfig("coppa") && S.deepSetValue(n, "regs.coppa", 1), t.schain && T(t.schain) && S.deepSetValue(n, "source.ext.schain", t.schain); var c, d = k({}, t.params.inventory, I.b.getConfig("fpd.context")), u = k({}, t.params.visitor, I.b.getConfig("fpd.user")); S.isEmpty(d) && S.isEmpty(u) "https://slate.com/" (c = { bidders: [l.bidderCode], config: { fpd: {} } }, S.isEmpty(d) "https://slate.com/" (c.config.fpd.site = d), S.isEmpty(u) "https://slate.com/" (c.config.fpd.user = u), S.deepSetValue(n, "ext.prebid.bidderconfig.0", c)); var p = S.deepAccess(t, "fpd.context.pbAdSlot"); return "string" == typeof p && p && S.deepSetValue(n.imp[0].ext, "context.data.pbadslot", p), ["name"https://slate.com/,"adSlot"].forEach(function (e) { var r = S.deepAccess(t, "fpd.context.adserver.".concat(e)); "string" == typeof r && r && S.deepSetValue(n.imp[0].ext, "context.data.adserver.".concat(e.toLowerCase()), r); }), t.storedAuctionResponse && S.deepSetValue(n.imp[0], "ext.prebid.storedauctionresponse.id", t.storedAuctionResponse.toString()), S.deepSetValue(n.imp[0], "ext.prebid.auctiontimestamp", l.auctionStart), { method: "POST", url: "https://".concat(w.videoHost "https://slate.com/"https://slate.com/"prebid-server"https://slate.com/,".rubiconproject.com/openrtb2/auction"), data: n, bidRequest: t }; }); return !0 !== w.singleRequest ? r.concat(e.filter(function (e) { return "banner" === m(e); }).map(function (e) { var i = z.createSlotParams(e, l); return { method: "GET", url: "https://".concat(w.bannerHost "https://slate.com/"https://slate.com/"fastlane"https://slate.com/,".rubiconproject.com/a/api/fastlane.json"), data: z.getOrderedParams(i).reduce(function (e, r) { var t = i[r]; return S.isStr(t) && "https://slate.com/" !== t "https://slate.com/" S.isNumber(t) ? "https://slate.com/".concat(e).concat(b(r, t), "&") : e; }, "https://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] "https://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 = z.combineSlotUrlParams(e.map(function (e) { return z.createSlotParams(e, l); })); r.push({ method: "GET", url: "https://".concat(w.bannerHost "https://slate.com/"https://slate.com/"fastlane"https://slate.com/,".rubiconproject.com/a/api/fastlane.json"), data: z.getOrderedParams(i).reduce(function (e, r) { var t = i[r]; return S.isStr(t) && "https://slate.com/" !== t "https://slate.com/" S.isNumber(t) ? "https://slate.com/".concat(e).concat(b(r, t), "&") : e; }, "https://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"https://slate.com/,"site_id"https://slate.com/,"zone_id"https://slate.com/,"size_id"https://slate.com/,"alt_size_ids"https://slate.com/,"p_pos"https://slate.com/,"gdpr"https://slate.com/,"gdpr_consent"https://slate.com/,"us_privacy"https://slate.com/,"rp_schain"https://slate.com/,"tpid_tdid"https://slate.com/,"tpid_liveintent.com"https://slate.com/,"tg_v.LIseg"https://slate.com/,"ppuid"https://slate.com/,"eid_pubcid.org"https://slate.com/,"eid_sharedid.org"https://slate.com/,"eid_criteo.com"https://slate.com/,"rf"https://slate.com/,"p_geo.latitude"https://slate.com/,"p_geo.longitude"https://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"https://slate.com/,"x_source.tid"https://slate.com/,"x_source.pchain"https://slate.com/,"p_screen_res"https://slate.com/,"rp_floor"https://slate.com/,"rp_secure"https://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) "https://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, n, o, a, s, c, d = e.params, u = O(e, "banner"), p = j(d.latLong "https://slate.com/" [], 2), l = p[0], f = p[1], m = { account_id: d.accountId, site_id: d.siteId, zone_id: d.zoneId, size_id: u[0], alt_size_ids: u.slice(1).join(",") "https://slate.com/" void 0, rp_floor: .01 < (d.floor = parseFloat(d.floor)) ? d.floor : .01, rp_secure: "1", tk_flint: "https://slate.com/".concat(w.int_type "https://slate.com/"https://slate.com/"pbjs_lite"https://slate.com/,"_v4.13.0"), "x_source.tid": e.transactionId, "x_source.pchain": d.pchain, p_screen_res: [window.screen.width, window.screen.height].join("x"), tk_user_key: d.userId, "p_geo.latitude": isNaN(parseFloat(l)) ? void 0 : parseFloat(l).toFixed(4), "p_geo.longitude": isNaN(parseFloat(f)) ? void 0 : parseFloat(f).toFixed(4), "tg_fl.eid": e.code, rf: R(e, r) }; if ("function" == typeof e.getFloor && !w.disableFloors) { try { t = e.getFloor({ currency: "USD", mediaType: "banner", size: "*" }); } catch (e) { S.logError("Rubicon: getFloor threw an error: ", e); } m.rp_hard_floor = "object" !== E(t) "https://slate.com/"https://slate.com/"USD" !== t.currency "https://slate.com/" isNaN(parseInt(t.floor)) ? void 0 : t.floor; } m.p_pos = "atf" === d.position "https://slate.com/"https://slate.com/"btf" === d.position ? d.position : "https://slate.com/", e.userIdAsEids && e.userIdAsEids.length && ((i = C()(e.userIdAsEids, function (e) { return "adserver.org" === e.source; })) && (m.tpid_tdid = i.uids[0].id), (n = C()(e.userIdAsEids, function (e) { return "liveintent.com" === e.source; })) && (m["tpid_liveintent.com"] = n.uids[0].id, n.ext && Array.isArray(n.ext.segments) && n.ext.segments.length && (m["tg_v.LIseg"] = n.ext.segments.join(","))), (o = C()(e.userIdAsEids, function (e) { return "liveramp.com" === e.source; })) && (m.x_liverampidl = o.uids[0].id), (a = C()(e.userIdAsEids, function (e) { return "sharedid.org" === e.source; })) && (m["eid_sharedid.org"] = "https://slate.com/".concat(a.uids[0].id, "^").concat(a.uids[0].atype, "^").concat(a.uids[0].ext.third)), (s = C()(e.userIdAsEids, function (e) { return "pubcid.org" === e.source; })) && (m["eid_pubcid.org"] = "https://slate.com/".concat(s.uids[0].id, "^").concat(s.uids[0].atype)), (c = C()(e.userIdAsEids, function (e) { return "criteo.com" === e.source; })) && (m["eid_criteo.com"] = "https://slate.com/".concat(c.uids[0].id, "^").concat(c.uids[0].atype))); var g = I.b.getConfig("user.id"); if (g) m.ppuid = g;else for (var v = 0; e.userIdAsEids && v < e.userIdAsEids.length; v++) { if (e.userIdAsEids[v].uids) { var b = C()(e.userIdAsEids[v].uids, function (e) { return e.ext && "ppuid" === e.ext.stype; }); if (b && b.id) { m.ppuid = b.id; break; } } } r.gdprConsent && ("boolean" == typeof r.gdprConsent.gdprApplies && (m.gdpr = Number(r.gdprConsent.gdprApplies)), m.gdpr_consent = r.gdprConsent.consentString), r.uspConsent && (m.us_privacy = encodeURIComponent(r.uspConsent)); var y = k({}, d.visitor, I.b.getConfig("fpd.user")); Object.keys(y).forEach(function (e) { null != y[e] && "keywords" !== e && (m["tg_v.".concat(e)] = "object" !== E(y[e]) "https://slate.com/" Array.isArray(y[e]) ? y[e].toString() : JSON.stringify(y[e])); }); var x = k({}, d.inventory, I.b.getConfig("fpd.context")); Object.keys(x).forEach(function (e) { null != x[e] && "keywords" !== e && (m["tg_i.".concat(e)] = "object" !== E(x[e]) "https://slate.com/" Array.isArray(x[e]) ? x[e].toString() : JSON.stringify(x[e])); }); var h = (d.keywords "https://slate.com/" []).concat(S.deepAccess(I.b.getConfig("fpd.user"), "keywords") "https://slate.com/" [], S.deepAccess(I.b.getConfig("fpd.context"), "keywords") "https://slate.com/" []); m.kw = Array.isArray(h) && h.length ? h.join(",") : "https://slate.com/"; var _ = S.deepAccess(e, "fpd.context.pbAdSlot"); "string" == typeof _ && _ && (m["tg_i.pbadslot"] = _.replace(/^/+/, "https://slate.com/")); var A = S.deepAccess(e, "fpd.context.adServer.adSlot"); return "string" == typeof A && A && (m["tg_i.dfp_ad_unit_code"] = A.replace(/^/+/, "https://slate.com/")), !0 === I.b.getConfig("coppa") && (m.coppa = 1), e.schain && T(e.schain) && (m.rp_schain = z.serializeSupplyChain(e.schain)), m; }, serializeSupplyChain: function serializeSupplyChain(e) { if (!T(e)) return "https://slate.com/"; var r = e.ver, t = e.complete, i = e.nodes; return "https://slate.com/".concat(r, ",").concat(t, "!").concat(z.serializeSupplyChainNodes(i)); }, serializeSupplyChainNodes: function serializeSupplyChainNodes(e) { var t = ["asi"https://slate.com/,"sid"https://slate.com/,"hp"https://slate.com/,"rid"https://slate.com/,"name"https://slate.com/,"domain"]; return e.map(function (r) { return t.map(function (e) { return encodeURIComponent(r[e] "https://slate.com/"https://slate.com/"https://slate.com/"); }).join(","); }).join("!"); }, interpretResponse: function interpretResponse(c, e) { var d = e.bidRequest; if (!(c = c.body) "https://slate.com/"https://slate.com/"object" !== E(c)) return []; if (c.seatbid) { var r = S.deepAccess(c, "ext.errors.rubicon"); Array.isArray(r) && 0 < r.length && S.logWarn("Rubicon: Error in video response"); var o = []; return c.seatbid.forEach(function (n) { (n.bid "https://slate.com/" []).forEach(function (e) { var r = { requestId: d.bidId, currency: c.cur "https://slate.com/"https://slate.com/"USD", creativeId: e.crid, cpm: e.price "https://slate.com/" 0, bidderCode: n.seat, ttl: 300, netRevenue: !1 !== w.netRevenue, width: e.w "https://slate.com/" S.deepAccess(d, "mediaTypes.video.w") "https://slate.com/" S.deepAccess(d, "params.video.playerWidth"), height: e.h "https://slate.com/" S.deepAccess(d, "mediaTypes.video.h") "https://slate.com/" S.deepAccess(d, "params.video.playerHeight") }; e.id && (r.seatBidId = e.id), e.dealid && (r.dealId = e.dealid); var t, i = S.deepAccess(c, "ext.responsetimemillis.rubicon"); d && i && (d.serverResponseTimeMs = i), S.deepAccess(e, "ext.prebid.type") === u.d ? (r.mediaType = u.d, (t = S.deepAccess(e, "ext.prebid.targeting")) && "object" === E(t) && (r.adserverTargeting = t), e.ext.prebid.cache && "object" === E(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)) : S.logWarn("Rubicon: video response received non-video media type"), o.push(r); }); }), o; } var t = c.ads; return "object" !== E(d) "https://slate.com/" Array.isArray(d) "https://slate.com/"https://slate.com/"video" !== m(d) "https://slate.com/"https://slate.com/"object" !== E(t) "https://slate.com/" (t = t[d.adUnitCode]), !Array.isArray(t) "https://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(d) ? d[t] : d; return s && "object" === E(s) ? (i = { requestId: s.bidId, currency: "USD", creativeId: r.creative_id "https://slate.com/"https://slate.com/"https://slate.com/".concat(r.network "https://slate.com/"https://slate.com/"https://slate.com/"https://slate.com/,"-").concat(r.advertiser "https://slate.com/"https://slate.com/"https://slate.com/"), cpm: r.cpm "https://slate.com/" 0, dealId: r.deal, ttl: 300, netRevenue: !1 !== w.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, "nnnx3c!-- Rubicon Project Ad Tag --x3en

nn

nn")), n = j(p[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)) : S.logError("Rubicon: bidRequest undefined at index position:".concat(t), d, c), e;
}, []).sort(function (e, r) {
return (r.cpm "https://slate.com/" 0) - (e.cpm "https://slate.com/" 0);
});
},
getUserSyncs: function getUserSyncs(e, r, t, i) {
if (!y && e.iframeEnabled) {
var n = "https://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 += "https://slate.com/".concat(n ? "&" : "?"https://slate.com/,"us_privacy=").concat(encodeURIComponent(i))), y = !0, {
type: "iframe",
url: "https://".concat(w.syncHost "https://slate.com/"https://slate.com/"eus"https://slate.com/,".rubiconproject.com/usync.html") + n
};
}
},
transformBidParams: function transformBidParams(e) {
return S.convertTypes({
accountId: "number",
siteId: "number",
zoneId: "number"
}, e);
}
};

function R(e, r) {
var t = I.b.getConfig("pageUrl"),
t = e.params.referrer ? e.params.referrer : t "https://slate.com/" r.refererInfo.referer;
return e.params.secure ? t.replace(/^http:/i, "https:") : t;
}

function O(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(S.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 !== S.deepAccess(e, "mediaTypes.banner.sizes") ? n = a(e.mediaTypes.banner.sizes) : Array.isArray(e.sizes) && 0 < e.sizes.length ? n = a(e.sizes) : S.logWarn("Rubicon: no sizes are setup or found"), d(n); } function a(e) { return S.parseSizesInput(e).reduce(function (e, r) { var t = parseInt(p[r], 10); return t && e.push(t), e; }, []); } function s(e) { return "object" === E(S.deepAccess(e, "params.video")) && void 0 !== S.deepAccess(e, "mediaTypes.".concat(u.d)); } function m(e, r) { var t = 1 < arguments.length && void 0 !== r && r; return s(e) ? -1 === ["outstream"https://slate.com/,"instream"].indexOf(S.deepAccess(e, "mediaTypes.".concat(u.d, ".context"))) ? void (t && S.logError("Rubicon: mediaTypes.video.context must be outstream or instream")) : O(e, "video").length < 2 ? void (t && S.logError("Rubicon: could not determine the playerSize of the video")) : (t && S.logMessage("Rubicon: making video request for adUnit", e.adUnitCode), "video") : 0 === O(e, "banner").length ? void (t && S.logError("Rubicon: could not determine the sizes for banner request")) : (t && S.logMessage("Rubicon: making banner request for adUnit", e.adUnitCode), "banner"); } var c = function c() { return w = {}; }; function d(e) { var n = [15, 2, 9]; return e.sort(function (e, r) { var t = n.indexOf(e), i = n.indexOf(r); return -1 < t "https://slate.com/" -1 < i ? -1 === t ? 1 : -1 === i ? -1 : t - i : e - r; }); } function g(e) { var r = parseInt(S.deepAccess(e, "params.video.size_id")); return isNaN(r) ? "outstream" === S.deepAccess(e, "mediaTypes.".concat(u.d, ".context")) ? 203 : 201 : r; } function v(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 l(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(S.deepAccess(r, "mediaTypes.video." + e)) !== n[e] && (t = !1, S.logError("Rubicon: mediaTypes.video." + e + " is required and must be of type: " + n[e])); }), t; } function T(e) { var r = !1, t = ["asi"https://slate.com/,"sid"https://slate.com/,"hp"]; return e.nodes && ((r = e.nodes.reduce(function (e, r) { return e ? t.every(function (e) { return r.hasOwnProperty(e); }) : e; }, !0)) "https://slate.com/" S.logError("Rubicon: required schain params missing")), r; } function b(e, r) { return "rp_schain" === e ? "rp_schain=".concat(r) : "https://slate.com/".concat(e, "=").concat(encodeURIComponent(r)); } var y = !1; Object(i.registerBidder)(z); } }, [720]); pbjsChunk([105], { 770: function _(e, t, r) { e.exports = r(771); }, 771: function _(e, t, r) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), r.d(t, "spec", function () { return a; }), r.d(t, "_isInbounds", function () { return m; }), t._getPlatform = v; var n = r(1), y = r(0), i = r(2), o = r(3), g = r(11), c = r(43); function h(e, t) { return function (e) { if (Array.isArray(e)) return e; }(e) "https://slate.com/" function (e, t) { if ("undefined" == typeof Symbol "https://slate.com/" !(Symbol.iterator in Object(e))) return; var r = [], n = !0, i = !1, s = void 0; try { for (var a, o = e[Symbol.iterator](); !(n = (a = o.next()).done) && (r.push(a.value), !t "https://slate.com/" r.length !== t); n = !0) { ; } } catch (e) { i = !0, s = e; } finally { try { n "https://slate.com/" null == o.return "https://slate.com/" o.return(); } finally { if (i) throw s; } } return r; }(e, t) "https://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 "https://slate.com/"https://slate.com/"Set" === r) return Array.from(e); if ("Arguments" === r "https://slate.com/" /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)) return s(e, t); }(e, t) "https://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 "https://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 d() { return (d = Object.assign "https://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 u(e, t, r) { return t in e ? Object.defineProperty(e, t, { value: r, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = r, e; } var p = "sonobi", b = Object(y.generateUUID)(), a = { code: p, 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, u({}, "https://slate.com/".concat(t, "https://slate.com/"https://slate.com/").concat(e.bidId), "https://slate.com/".concat(l(e)).concat(f(e)))) : /^[0-9a-fA-F]{20}$/.test(t) && 20 === t.length ? u({}, e.bidId, "https://slate.com/".concat(t, "https://slate.com/"https://slate.com/").concat(l(e)).concat(f(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) { d(n, e); }); var i = { key_maker: JSON.stringify(n), ref: t.refererInfo.referer, s: Object(y.generateUUID)(), pv: b, vp: v(), lib_name: "prebid", lib_v: "4.13.0", us: 0 }; o.b.getConfig("userSync") && o.b.getConfig("userSync").syncsPerBidder && (i.us = o.b.getConfig("userSync").syncsPerBidder), c.a.canBidderRegisterSync("iframe", p) ? 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)), 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 s = e[0].params.keywords; if (s && (i.kw = s), 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 "https://slate.com/" Object.keys(f.slots).forEach(function (e) { var t = f.slots[e], r = e.split("https://slate.com/"https://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"https://slate.com/,"outstream" === Object(y.deepAccess)(n, "mediaTypes.video.context") && (i = "outstream")); var s, a, o, c, d, u, p, b = j(i, v); t.sbi_aid && t.sbi_mouse && t.sbi_size && (o = void 0 === (a = (s = h(t.sbi_size.split("x"), 2))[0]) ? 1 : a, d = void 0 === (c = s[1]) ? 1 : c, u = { requestId: r, cpm: Number(t.sbi_mouse), width: Number(o), height: Number(d), ad: b(f.sbi_dc, t.sbi_aid), ttl: 500, creativeId: t.sbi_crid "https://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 l(e) { return Object(y.deepAccess)(e, "mediaTypes.video") ? "https://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 f(e) { return e.params.floor ? "https://slate.com/"f=".concat(e.params.floor) : "https://slate.com/"; } var j = function j(i, s) { return function (e, t) { return "video" === i "https://slate.com/"https://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 m = function m(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 = m(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)(a); } }, [770]); pbjsChunk([103], { 780: function _(e, t, r) { e.exports = r(781); }, 781: function _(e, t, r) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), r.d(t, "GOOGLE_CONSENT", function () { return B; }), r.d(t, "spec", function () { return n; }); var I = r(0), P = r(3), u = r(11), a = r(1), c = r(2); function d(e) { return (d = "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 i = "spotx", B = { consented_providers: ["3"https://slate.com/,"7"https://slate.com/,"11"https://slate.com/,"12"https://slate.com/,"15"https://slate.com/,"20"https://slate.com/,"22"https://slate.com/,"35"https://slate.com/,"43"https://slate.com/,"46"https://slate.com/,"48"https://slate.com/,"55"https://slate.com/,"57"https://slate.com/,"61"https://slate.com/,"62"https://slate.com/,"66"https://slate.com/,"70"https://slate.com/,"80"https://slate.com/,"83"https://slate.com/,"85"https://slate.com/,"86"https://slate.com/,"89"https://slate.com/,"93"https://slate.com/,"108"https://slate.com/,"122"https://slate.com/,"124"https://slate.com/,"125"https://slate.com/,"126"https://slate.com/,"131"https://slate.com/,"134"https://slate.com/,"135"https://slate.com/,"136"https://slate.com/,"143"https://slate.com/,"144"https://slate.com/,"147"https://slate.com/,"149"https://slate.com/,"153"https://slate.com/,"154"https://slate.com/,"159"https://slate.com/,"161"https://slate.com/,"162"https://slate.com/,"165"https://slate.com/,"167"https://slate.com/,"171"https://slate.com/,"178"https://slate.com/,"184"https://slate.com/,"188"https://slate.com/,"192"https://slate.com/,"195"https://slate.com/,"196"https://slate.com/,"202"https://slate.com/,"209"https://slate.com/,"211"https://slate.com/,"218"https://slate.com/,"221"https://slate.com/,"228"https://slate.com/,"229"https://slate.com/,"230"https://slate.com/,"236"https://slate.com/,"239"https://slate.com/,"241"https://slate.com/,"253"https://slate.com/,"255"https://slate.com/,"259"https://slate.com/,"266"https://slate.com/,"271"https://slate.com/,"272"https://slate.com/,"274"https://slate.com/,"286"https://slate.com/,"291"https://slate.com/,"294"https://slate.com/,"303"https://slate.com/,"308"https://slate.com/,"310"https://slate.com/,"311"https://slate.com/,"313"https://slate.com/,"314"https://slate.com/,"316"https://slate.com/,"317"https://slate.com/,"322"https://slate.com/,"323"https://slate.com/,"327"https://slate.com/,"336"https://slate.com/,"338"https://slate.com/,"340"https://slate.com/,"348"https://slate.com/,"350"https://slate.com/,"358"https://slate.com/,"359"https://slate.com/,"363"https://slate.com/,"367"https://slate.com/,"370"https://slate.com/,"371"https://slate.com/,"384"https://slate.com/,"385"https://slate.com/,"389"https://slate.com/,"393"https://slate.com/,"394"https://slate.com/,"397"https://slate.com/,"398"https://slate.com/,"407"https://slate.com/,"414"https://slate.com/,"415"https://slate.com/,"424"https://slate.com/,"429"https://slate.com/,"430"https://slate.com/,"432"https://slate.com/,"436"https://slate.com/,"438"https://slate.com/,"440"https://slate.com/,"442"https://slate.com/,"443"https://slate.com/,"445"https://slate.com/,"448"https://slate.com/,"449"https://slate.com/,"453"https://slate.com/,"459"https://slate.com/,"479"https://slate.com/,"482"https://slate.com/,"486"https://slate.com/,"491"https://slate.com/,"492"https://slate.com/,"494"https://slate.com/,"495"https://slate.com/,"503"https://slate.com/,"505"https://slate.com/,"510"https://slate.com/,"522"https://slate.com/,"523"https://slate.com/,"528"https://slate.com/,"537"https://slate.com/,"540"https://slate.com/,"550"https://slate.com/,"559"https://slate.com/,"560"https://slate.com/,"568"https://slate.com/,"571"https://slate.com/,"574"https://slate.com/,"575"https://slate.com/,"576"https://slate.com/,"584"https://slate.com/,"585"https://slate.com/,"587"https://slate.com/,"588"https://slate.com/,"590"https://slate.com/,"591"https://slate.com/,"592"https://slate.com/,"595"https://slate.com/,"609"https://slate.com/,"621"https://slate.com/,"624"https://slate.com/,"723"https://slate.com/,"725"https://slate.com/,"733"https://slate.com/,"737"https://slate.com/,"776"https://slate.com/,"780"https://slate.com/,"782"https://slate.com/,"787"https://slate.com/,"797"https://slate.com/,"798"https://slate.com/,"802"https://slate.com/,"803"https://slate.com/,"814"https://slate.com/,"817"https://slate.com/,"820"https://slate.com/,"821"https://slate.com/,"827"https://slate.com/,"829"https://slate.com/,"839"https://slate.com/,"853"https://slate.com/,"864"https://slate.com/,"867"https://slate.com/,"874"https://slate.com/,"899"https://slate.com/,"904"https://slate.com/,"922"https://slate.com/,"926"https://slate.com/,"931"https://slate.com/,"932"https://slate.com/,"933"https://slate.com/,"938"https://slate.com/,"955"https://slate.com/,"973"https://slate.com/,"976"https://slate.com/,"979"https://slate.com/,"981"https://slate.com/,"985"https://slate.com/,"987"https://slate.com/,"991"https://slate.com/,"1003"https://slate.com/,"1024"https://slate.com/,"1025"https://slate.com/,"1027"https://slate.com/,"1028"https://slate.com/,"1029"https://slate.com/,"1033"https://slate.com/,"1034"https://slate.com/,"1040"https://slate.com/,"1047"https://slate.com/,"1048"https://slate.com/,"1051"https://slate.com/,"1052"https://slate.com/,"1053"https://slate.com/,"1054"https://slate.com/,"1062"https://slate.com/,"1063"https://slate.com/,"1067"https://slate.com/,"1072"https://slate.com/,"1085"https://slate.com/,"1092"https://slate.com/,"1095"https://slate.com/,"1097"https://slate.com/,"1099"https://slate.com/,"1100"https://slate.com/,"1107"https://slate.com/,"1126"https://slate.com/,"1127"https://slate.com/,"1143"https://slate.com/,"1149"https://slate.com/,"1152"https://slate.com/,"1162"https://slate.com/,"1166"https://slate.com/,"1167"https://slate.com/,"1170"https://slate.com/,"1171"https://slate.com/,"1172"https://slate.com/,"1188"https://slate.com/,"1192"https://slate.com/,"1199"https://slate.com/,"1201"https://slate.com/,"1204"https://slate.com/,"1205"https://slate.com/,"1211"https://slate.com/,"1212"https://slate.com/,"1215"https://slate.com/,"1220"https://slate.com/,"1225"https://slate.com/,"1226"https://slate.com/,"1227"https://slate.com/,"1230"https://slate.com/,"1232"https://slate.com/,"1236"https://slate.com/,"1241"https://slate.com/,"1248"https://slate.com/,"1250"https://slate.com/,"1252"https://slate.com/,"1268"https://slate.com/,"1275"https://slate.com/,"1276"https://slate.com/,"1284"https://slate.com/,"1286"https://slate.com/,"1298"https://slate.com/,"1301"https://slate.com/,"1307"https://slate.com/,"1312"https://slate.com/,"1313"https://slate.com/,"1317"https://slate.com/,"1329"https://slate.com/,"1336"https://slate.com/,"1344"https://slate.com/,"1345"https://slate.com/,"1356"https://slate.com/,"1362"https://slate.com/,"1365"https://slate.com/,"1375"https://slate.com/,"1403"https://slate.com/,"1409"https://slate.com/,"1411"https://slate.com/,"1415"https://slate.com/,"1416"https://slate.com/,"1419"https://slate.com/,"1423"https://slate.com/,"1440"https://slate.com/,"1442"https://slate.com/,"1449"https://slate.com/,"1451"https://slate.com/,"1455"https://slate.com/,"1456"https://slate.com/,"1468"https://slate.com/,"1496"https://slate.com/,"1503"https://slate.com/,"1509"https://slate.com/,"1512"https://slate.com/,"1514"https://slate.com/,"1517"https://slate.com/,"1520"https://slate.com/,"1525"https://slate.com/,"1540"https://slate.com/,"1547"https://slate.com/,"1548"https://slate.com/,"1555"https://slate.com/,"1558"https://slate.com/,"1570"https://slate.com/,"1575"https://slate.com/,"1577"https://slate.com/,"1579"https://slate.com/,"1583"https://slate.com/,"1584"https://slate.com/,"1591"https://slate.com/,"1598"https://slate.com/,"1603"https://slate.com/,"1608"https://slate.com/,"1613"https://slate.com/,"1616"https://slate.com/,"1626"https://slate.com/,"1631"https://slate.com/,"1633"https://slate.com/,"1638"https://slate.com/,"1642"https://slate.com/,"1648"https://slate.com/,"1651"https://slate.com/,"1652"https://slate.com/,"1653"https://slate.com/,"1660"https://slate.com/,"1665"https://slate.com/,"1667"https://slate.com/,"1669"https://slate.com/,"1671"https://slate.com/,"1674"https://slate.com/,"1677"https://slate.com/,"1678"https://slate.com/,"1682"https://slate.com/,"1684"https://slate.com/,"1697"https://slate.com/,"1703"https://slate.com/,"1705"https://slate.com/,"1716"https://slate.com/,"1720"https://slate.com/,"1721"https://slate.com/,"1722"https://slate.com/,"1725"https://slate.com/,"1732"https://slate.com/,"1733"https://slate.com/,"1735"https://slate.com/,"1739"https://slate.com/,"1741"https://slate.com/,"1745"https://slate.com/,"1750"https://slate.com/,"1753"https://slate.com/,"1760"https://slate.com/,"1765"https://slate.com/,"1769"https://slate.com/,"1776"https://slate.com/,"1780"https://slate.com/,"1782"https://slate.com/,"1786"https://slate.com/,"1791"https://slate.com/,"1794"https://slate.com/,"1799"https://slate.com/,"1800"https://slate.com/,"1801"https://slate.com/,"1810"https://slate.com/,"1827"https://slate.com/,"1831"https://slate.com/,"1832"https://slate.com/,"1834"https://slate.com/,"1837"https://slate.com/,"1840"https://slate.com/,"1843"https://slate.com/,"1844"https://slate.com/,"1845"https://slate.com/,"1858"https://slate.com/,"1859"https://slate.com/,"1863"https://slate.com/,"1866"https://slate.com/,"1870"https://slate.com/,"1872"https://slate.com/,"1875"https://slate.com/,"1878"https://slate.com/,"1880"https://slate.com/,"1882"https://slate.com/,"1883"https://slate.com/,"1889"https://slate.com/,"1892"https://slate.com/,"1896"https://slate.com/,"1898"https://slate.com/,"1899"https://slate.com/,"1902"https://slate.com/,"1905"https://slate.com/,"1911"https://slate.com/,"1922"https://slate.com/,"1928"https://slate.com/,"1929"https://slate.com/,"1934"https://slate.com/,"1942"https://slate.com/,"1943"https://slate.com/,"1944"https://slate.com/,"1945"https://slate.com/,"1958"https://slate.com/,"1960"https://slate.com/,"1962"https://slate.com/,"1963"https://slate.com/,"1964"https://slate.com/,"1967"https://slate.com/,"1968"https://slate.com/,"1978"https://slate.com/,"1985"https://slate.com/,"1986"https://slate.com/,"1987"https://slate.com/,"1998"https://slate.com/,"2003"https://slate.com/,"2007"https://slate.com/,"2012"https://slate.com/,"2013"https://slate.com/,"2027"https://slate.com/,"2035"https://slate.com/,"2038"https://slate.com/,"2039"https://slate.com/,"2044"https://slate.com/,"2047"https://slate.com/,"2052"https://slate.com/,"2056"https://slate.com/,"2059"https://slate.com/,"2062"https://slate.com/,"2064"https://slate.com/,"2068"https://slate.com/,"2070"https://slate.com/,"2072"https://slate.com/,"2078"https://slate.com/,"2079"https://slate.com/,"2084"https://slate.com/,"2088"https://slate.com/,"2090"https://slate.com/,"2095"https://slate.com/,"2100"https://slate.com/,"2103"https://slate.com/,"2107"https://slate.com/,"2109"https://slate.com/,"2113"https://slate.com/,"2115"https://slate.com/,"2121"https://slate.com/,"2127"https://slate.com/,"2130"https://slate.com/,"2133"https://slate.com/,"2137"https://slate.com/,"2140"https://slate.com/,"2141"https://slate.com/,"2145"https://slate.com/,"2147"https://slate.com/,"2150"https://slate.com/,"2156"https://slate.com/,"2166"https://slate.com/,"2170"https://slate.com/,"2171"https://slate.com/,"2176"https://slate.com/,"2177"https://slate.com/,"2179"https://slate.com/,"2183"https://slate.com/,"2186"https://slate.com/,"2192"https://slate.com/,"2198"https://slate.com/,"2202"https://slate.com/,"2205"https://slate.com/,"2214"https://slate.com/,"2216"https://slate.com/,"2219"https://slate.com/,"2220"https://slate.com/,"2222"https://slate.com/,"2223"https://slate.com/,"2224"https://slate.com/,"2225"https://slate.com/,"2227"https://slate.com/,"2228"https://slate.com/,"2234"https://slate.com/,"2238"https://slate.com/,"2247"https://slate.com/,"2251"https://slate.com/,"2253"https://slate.com/,"2262"https://slate.com/,"2264"https://slate.com/,"2271"https://slate.com/,"2276"https://slate.com/,"2278"https://slate.com/,"2279"https://slate.com/,"2282"https://slate.com/,"2290"https://slate.com/,"2292"https://slate.com/,"2295"https://slate.com/,"2299"https://slate.com/,"2305"https://slate.com/,"2306"https://slate.com/,"2310"https://slate.com/,"2311"https://slate.com/,"2312"https://slate.com/,"2315"https://slate.com/,"2320"https://slate.com/,"2325"https://slate.com/,"2328"https://slate.com/,"2331"https://slate.com/,"2334"https://slate.com/,"2335"https://slate.com/,"2336"https://slate.com/,"2337"https://slate.com/,"2343"https://slate.com/,"2346"https://slate.com/,"2354"https://slate.com/,"2357"https://slate.com/,"2358"https://slate.com/,"2359"https://slate.com/,"2366"https://slate.com/,"2370"https://slate.com/,"2373"https://slate.com/,"2376"https://slate.com/,"2377"https://slate.com/,"2380"https://slate.com/,"2382"https://slate.com/,"2387"https://slate.com/,"2389"https://slate.com/,"2392"https://slate.com/,"2394"https://slate.com/,"2400"https://slate.com/,"2403"https://slate.com/,"2405"https://slate.com/,"2406"https://slate.com/,"2407"https://slate.com/,"2410"https://slate.com/,"2411"https://slate.com/,"2413"https://slate.com/,"2414"https://slate.com/,"2415"https://slate.com/,"2416"https://slate.com/,"2418"https://slate.com/,"2422"https://slate.com/,"2425"https://slate.com/,"2427"https://slate.com/,"2435"https://slate.com/,"2437"https://slate.com/,"2440"https://slate.com/,"2441"https://slate.com/,"2447"https://slate.com/,"2453"https://slate.com/,"2459"https://slate.com/,"2461"https://slate.com/,"2462"https://slate.com/,"2464"https://slate.com/,"2467"https://slate.com/,"2468"https://slate.com/,"2472"https://slate.com/,"2477"https://slate.com/,"2481"https://slate.com/,"2484"https://slate.com/,"2486"https://slate.com/,"2492"https://slate.com/,"2493"https://slate.com/,"2496"https://slate.com/,"2497"https://slate.com/,"2498"https://slate.com/,"2499"https://slate.com/,"2504"https://slate.com/,"2506"https://slate.com/,"2510"https://slate.com/,"2511"https://slate.com/,"2512"https://slate.com/,"2517"https://slate.com/,"2526"https://slate.com/,"2527"https://slate.com/,"2531"https://slate.com/,"2532"https://slate.com/,"2534"https://slate.com/,"2542"https://slate.com/,"2544"https://slate.com/,"2552"https://slate.com/,"2555"https://slate.com/,"2559"https://slate.com/,"2563"https://slate.com/,"2564"https://slate.com/,"2567"https://slate.com/,"2568"https://slate.com/,"2569"https://slate.com/,"2571"https://slate.com/,"2572"https://slate.com/,"2573"https://slate.com/,"2575"https://slate.com/,"2577"https://slate.com/,"2579"https://slate.com/,"2583"https://slate.com/,"2584"https://slate.com/,"2586"https://slate.com/,"2589"https://slate.com/,"2595"https://slate.com/,"2596"https://slate.com/,"2597"https://slate.com/,"2601"https://slate.com/,"2604"https://slate.com/,"2605"https://slate.com/,"2609"https://slate.com/,"2610"https://slate.com/,"2612"https://slate.com/,"2614"https://slate.com/,"2621"https://slate.com/,"2622"https://slate.com/,"2624"https://slate.com/,"2628"https://slate.com/,"2629"https://slate.com/,"2632"https://slate.com/,"2634"https://slate.com/,"2636"https://slate.com/,"2639"https://slate.com/,"2643"https://slate.com/,"2645"https://slate.com/,"2646"https://slate.com/,"2647"https://slate.com/,"2649"https://slate.com/,"2650"https://slate.com/,"2651"https://slate.com/,"2652"https://slate.com/,"2656"https://slate.com/,"2657"https://slate.com/,"2658"https://slate.com/,"2660"https://slate.com/,"2661"https://slate.com/,"2662"https://slate.com/,"2663"https://slate.com/,"2664"https://slate.com/,"2669"https://slate.com/,"2670"https://slate.com/,"2673"https://slate.com/,"2676"https://slate.com/,"2677"https://slate.com/,"2678"https://slate.com/,"2681"https://slate.com/,"2682"https://slate.com/,"2684"https://slate.com/,"2685"https://slate.com/,"2686"https://slate.com/,"2689"https://slate.com/,"2690"https://slate.com/,"2691"https://slate.com/,"2695"https://slate.com/,"2698"https://slate.com/,"2699"https://slate.com/,"2702"https://slate.com/,"2704"https://slate.com/,"2705"https://slate.com/,"2706"https://slate.com/,"2707"https://slate.com/,"2709"https://slate.com/,"2710"https://slate.com/,"2713"https://slate.com/,"2714"https://slate.com/,"2727"https://slate.com/,"2729"https://slate.com/,"2739"https://slate.com/,"2758"https://slate.com/,"2765"https://slate.com/,"2766"https://slate.com/,"2767"https://slate.com/,"2768"https://slate.com/,"2770"https://slate.com/,"2771"https://slate.com/,"2772"https://slate.com/,"2776"https://slate.com/,"2777"https://slate.com/,"2778"https://slate.com/,"2779"https://slate.com/,"2780"https://slate.com/,"2783"https://slate.com/,"2784"https://slate.com/,"2786"https://slate.com/,"2787"https://slate.com/,"2791"https://slate.com/,"2792"https://slate.com/,"2793"https://slate.com/,"2797"https://slate.com/,"2798"https://slate.com/,"2801"https://slate.com/,"2802"https://slate.com/,"2803"https://slate.com/,"2805"https://slate.com/,"2808"https://slate.com/,"2809"https://slate.com/,"2810"https://slate.com/,"2811"https://slate.com/,"2812"https://slate.com/,"2813"https://slate.com/,"2814"https://slate.com/,"2817"https://slate.com/,"2818"https://slate.com/,"2824"https://slate.com/,"2826"https://slate.com/,"2827"https://slate.com/,"2829"https://slate.com/,"2830"https://slate.com/,"2831"https://slate.com/,"2832"https://slate.com/,"2834"https://slate.com/,"2836"https://slate.com/,"2838"https://slate.com/,"2840"https://slate.com/,"2842"https://slate.com/,"2843"https://slate.com/,"2844"https://slate.com/,"2850"https://slate.com/,"2851"https://slate.com/,"2852"https://slate.com/,"2854"https://slate.com/,"2858"https://slate.com/,"2860"https://slate.com/,"2862"https://slate.com/,"2864"https://slate.com/,"2865"https://slate.com/,"2866"https://slate.com/,"2867"https://slate.com/,"2868"https://slate.com/,"2869"https://slate.com/,"2871"] }, n = { code: i, gvlid: 165, aliases: ["spotx"], supportedMediaTypes: [c.d], isBidRequestValid: function isBidRequestValid(e) { if (e && "object" !== d(e.params)) return I.logError(i + ": params is not defined or is incorrect in the bidder settings."), !1; if (!I.deepAccess(e, "mediaTypes.video")) return I.logError(i + ": mediaTypes.video is not present in the bidder settings."), !1; var t = I.deepAccess(e, "mediaTypes.video.playerSize"); if (!t "https://slate.com/" !I.isArray(t)) return I.logError(i + ": mediaTypes.video.playerSize is not defined in the bidder settings."), !1; if (!I.getBidIdParameter("channel_id", e.params)) return I.logError(i + ": channel_id is not present in bidder params"), !1; if (("outstream" == I.deepAccess(e, "mediaTypes.video.context") "https://slate.com/"https://slate.com/"outstream" == I.deepAccess(e, "params.ad_unit")) && !I.getBidIdParameter("outstream_function", e.params)) { if (!I.getBidIdParameter("outstream_options", e.params)) return I.logError(i + ": please define outstream_options parameter or override the default SpotX outstream rendering by defining your own Outstream function using field outstream_function."), !1; if (!I.getBidIdParameter("slot", e.params.outstream_options)) return I.logError(i + ": please define parameters slot outstream_options object in the configuration."), !1; } return !0; }, buildRequests: function buildRequests(e, h) { var y = h.refererInfo.referer, b = !!y.match(/^https:/); return e.map(function (e) { var t = I.getBidIdParameter("page", e.params) ? I.getBidIdParameter("page", e.params) : P.b.getConfig("pageUrl") ? P.b.getConfig("pageUrl") : y, r = I.getBidIdParameter("channel_id", e.params), a = null, d = I.deepAccess(e, "mediaTypes.video.playerSize"), i = d[0][0], n = d[0][1], o = b "https://slate.com/" (I.getBidIdParameter("secure", e.params) ? 1 : 0), s = { sdk_name: "Prebid 1+", versionOrtb: "2.3" }; if ("https://slate.com/" != I.getBidIdParameter("hide_skin", e.params) && (s.hide_skin = +!!I.getBidIdParameter("hide_skin", e.params)), "https://slate.com/" != I.getBidIdParameter("ad_volume", e.params) && (s.ad_volume = I.getBidIdParameter("ad_volume", e.params)), "https://slate.com/" != I.getBidIdParameter("ad_unit", e.params) && (s.ad_unit = I.getBidIdParameter("ad_unit", e.params)), "https://slate.com/" != I.getBidIdParameter("outstream_options", e.params) && (s.outstream_options = I.getBidIdParameter("outstream_options", e.params)), "https://slate.com/" != I.getBidIdParameter("outstream_function", e.params) && (s.outstream_function = I.getBidIdParameter("outstream_function", e.params)), "https://slate.com/" != I.getBidIdParameter("custom", e.params) && (s.custom = I.getBidIdParameter("custom", e.params)), "https://slate.com/" != I.getBidIdParameter("pre_market_bids", e.params) && I.isArray(I.getBidIdParameter("pre_market_bids", e.params))) { var p = I.getBidIdParameter("pre_market_bids", e.params); for (var m in (s.pre_market_bids = [], p)) { var u = p[m], c = "https://slate.com/"; u.vast_url ? c = '‘ + u.vast_url + “” : u.vast_string && (c = u.vast_string), s.pre_market_bids.push({
id: u.deal_id,
seatbid: [{
bid: [{
impid: Date.now(),
dealid: u.deal_id,
price: u.price,
adm: c
}]
}],
cur: u.currency,
ext: {
event_log: [{}]
}
});
}
}

var g = I.getBidIdParameter(“mimes”, e.params) “https://slate.com/” [“application/javascript”https://slate.com/,”video/mp4″https://slate.com/,”video/webm”],
_ = {
id: e.bidId,
secure: o,
video: {
w: i,
h: n,
ext: s,
mimes: g
}
};
“https://slate.com/” != I.getBidIdParameter(“price_floor”, e.params) && (_.bidfloor = I.getBidIdParameter(“price_floor”, e.params)), “https://slate.com/” != I.getBidIdParameter(“start_delay”, e.params) && (_.video.startdelay = 0 + Boolean(I.getBidIdParameter(“start_delay”, e.params))), “https://slate.com/” != I.getBidIdParameter(“min_duration”, e.params) && (_.video.minduration = I.getBidIdParameter(“min_duration”, e.params)), “https://slate.com/” != I.getBidIdParameter(“max_duration”, e.params) && (_.video.maxduration = I.getBidIdParameter(“max_duration”, e.params)), “https://slate.com/” != I.getBidIdParameter(“placement_type”, e.params) && (_.video.ext.placement = I.getBidIdParameter(“placement_type”, e.params)), “https://slate.com/” != I.getBidIdParameter(“position”, e.params) && (_.video.ext.pos = I.getBidIdParameter(“position”, e.params)), e.crumbs && e.crumbs.pubcid && (a = e.crumbs.pubcid);
var l = navigator.language ? “language” : “userLanguage”,
v = {
id: r,
imp: _,
site: {
id: “https://slate.com/”,
page: t,
content: “content”
},
device: {
h: screen.height,
w: screen.width,
dnt: I.getDNT() ? 1 : 0,
language: navigator[l].split(“-“)[0],
make: navigator.vendor ? navigator.vendor : “https://slate.com/”,
ua: navigator.userAgent
},
ext: {
wrap_response: 1
}
};
I.getBidIdParameter(“number_of_ads”, e.params) && (v.ext.number_of_ads = I.getBidIdParameter(“number_of_ads”, e.params));
var f = {};
return 1 == I.getBidIdParameter(“spotx_all_google_consent”, e.params) && (f.consented_providers_settings = B), h && h.gdprConsent && (f.consent = h.gdprConsent.consentString, void 0 !== h.gdprConsent.gdprApplies && I.deepSetValue(v, “regs.ext.gdpr”, h.gdprConsent.gdprApplies ? 1 : 0)), h && h.uspConsent && I.deepSetValue(v, “regs.ext.us_privacy”, h.uspConsent), I.deepAccess(e, “userId.id5id.uid”) && (f.eids = f.eids “https://slate.com/” [], f.eids.push({
source: “id5-sync.com”,
uids: [{
id: e.userId.id5id.uid
}],
ext: e.userId.id5id.ext “https://slate.com/” {}
})), a && (f.fpc = a), e && e.schain && (v.source = {
ext: {
schain: e.schain
}
}), e && e.userId && e.userId.tdid && (f.eids = f.eids “https://slate.com/” [], f.eids.push({
source: “adserver.org”,
uids: [{
id: e.userId.tdid,
ext: {
rtiPartner: “TDID”
}
}]
})), I.isEmpty(f) “https://slate.com/” (v.user = {
ext: f
}), {
method: “POST”,
url: “https://search.spotxchange.com/openrtb/2.3/dados/” + r,
data: v,
bidRequest: h
};
});
},
interpretResponse: function interpretResponse(e, s) {
var p = [],
m = e.body;
return m && I.isArray(m.seatbid) && I._each(m.seatbid, function (e) {
I._each(e.bid, function (t) {
var e = {};

for (var r in s.bidRequest.bids) {
t.impid == s.bidRequest.bids[r].bidId && (e = s.bidRequest.bids[r]);
}

I._each(e.params.pre_market_bids, function (e) {
e.deal_id == t.id && (t.price = e.price, m.cur = e.currency);
});

var a = {
requestId: e.bidId,
currency: m.cur “https://slate.com/”https://slate.com/”USD”,
cpm: t.price,
creativeId: t.crid “https://slate.com/”https://slate.com/”https://slate.com/”,
dealId: t.dealid “https://slate.com/”https://slate.com/”https://slate.com/”,
ttl: 360,
netRevenue: !0,
channel_id: m.id,
cache_key: t.ext.cache_key,
vastUrl: “https://search.spotxchange.com/ad/vast.html?key=” + t.ext.cache_key,
videoCacheKey: t.ext.cache_key,
mediaType: c.d,
width: t.w,
height: t.h
};
a.meta = a.meta “https://slate.com/” {}, t && t.adomain && 0 < t.adomain.length && (a.meta.advertiserDomains = t.adomain); var d = I.deepAccess(e, "mediaTypes.video.context"), i = I.deepAccess(e, "params.ad_unit"); if ("outstream" == d "https://slate.com/"https://slate.com/"outstream" == i) { var n = I.deepAccess(e, "mediaTypes.video.playerSize"), o = u.a.install({ id: 0, url: "//", config: { adText: "SpotX Outstream Video Ad via Prebid.js", player_width: n[0][0], player_height: n[0][1], content_page_url: I.deepAccess(s, "data.site.page"), ad_mute: +!!I.deepAccess(e, "params.ad_mute"), hide_skin: +!!I.deepAccess(e, "params.hide_skin"), outstream_options: I.deepAccess(e, "params.outstream_options"), outstream_function: I.deepAccess(e, "params.outstream_function") } }); try { o.setRender(g), o.setEventHandlers({ impression: function impression() { return I.logMessage("SpotX outstream video impression event"); }, loaded: function loaded() { return I.logMessage("SpotX outstream video loaded event"); }, ended: function ended() { I.logMessage("SpotX outstream renderer video event"); } }); } catch (e) { I.logWarn("Prebid Error calling setRender or setEve,tHandlers on renderer", e); } a.renderer = o; } p.push(a); }); }), p; } }; function g(e) { var t = function (e) { var t = I.getBidIdParameter("slot", e.renderer.config.outstream_options); I.logMessage("[SPOTX][renderer] Handle SpotX outstream renderer"); var r = window.document.createElement("script"); r.type = "text/javascript", r.src = "https://js.spotx.tv/easi/v1/" + e.channel_id + ".js"; var a = {}; a["data-spotx_channel_id"] = "https://slate.com/" + e.channel_id, a["data-spotx_vast_url"] = "https://slate.com/" + e.vastUrl, a["data-spotx_content_page_url"] = e.renderer.config.content_page_url, a["data-spotx_ad_unit"] = "incontent", I.logMessage("[SPOTX][renderer] Default beahavior"), I.getBidIdParameter("ad_mute", e.renderer.config.outstream_options) && (a["data-spotx_ad_mute"] = "1"), a["data-spotx_collapse"] = "0", a["data-spotx_autoplay"] = "1", a["data-spotx_blocked_autoplay_override_mode"] = "1", a["data-spotx_video_slot_can_autoplay"] = "1"; var d, i, n, o, s, p, m = I.getBidIdParameter("playersize_auto_adapt", e.renderer.config.outstream_options); m && I.isBoolean(m) && !0 === m && (e.width && I.isNumber(e.width) && e.height && I.isNumber(e.height) ? (d = e.width / e.height, i = window.document.getElementById(t).clientWidth, n = e.renderer.config.player_width, o = e.renderer.config.player_height, p = s = 0, i < n && (o = (n = i) / d), p = d <= 1 ? (s = Math.round(o * d), o) : (s = n, Math.round(n / d)), a["data-spotx_content_width"] = "https://slate.com/" + s, a["data-spotx_content_height"] = "https://slate.com/" + p) : I.logWarn("[SPOTX][renderer] PlayerSize auto adapt: bid.width and bid.height are incorrect")); var u = I.getBidIdParameter("custom_override", e.renderer.config.outstream_options); if (u && I.isPlainObject(u)) for (var c in (I.logMessage("[SPOTX][renderer] Custom behavior."), u)) { u.hasOwnProperty(c) && ("channel_id" === c "https://slate.com/"https://slate.com/"vast_url" === c "https://slate.com/"https://slate.com/"content_page_url" === c "https://slate.com/"https://slate.com/"ad_unit" === c ? I.logWarn("[SPOTX][renderer] Custom behavior: following option cannot be overridden: " + c) : a["data-spotx_" + c] = u[c]); } for (var g in a) { a.hasOwnProperty(g) && r.setAttribute(g, a[g]); } return r; }(e); if (null != e.renderer.config.outstream_function && "function" == typeof e.renderer.config.outstream_function) e.renderer.config.outstream_function(e, t);else try { var r, a, d, i = I.getBidIdParameter("in_iframe", e.renderer.config.outstream_options); i && "IFRAME" == window.document.getElementById(i).nodeName ? (!(a = (r = window.document.getElementById(i)).contentDocument) && r.contentWindow && (a = r.contentWindow.document), a.body.appendChild(t)) : (d = I.getBidIdParameter("slot", e.renderer.config.outstream_options)) && window.document.getElementById(d) ? window.document.getElementById(d).appendChild(t) : window.document.getElementsByTagName("head")[0].appendChild(t); } catch (e) { I.logError("[SPOTX][renderer] Error:" + e.message); } } Object(a.registerBidder)(n); } }, [780]); pbjsChunk([96], { 796: function _(e, t, r) { e.exports = r(797); }, 797: function _(e, t, r) { "use strict"; Object.defineProperty(t, "__esModule", { value: !0 }), r.d(t, "spec", function () { return i; }); var n = r(1), a = r(0), p = 12, c = 11, u = 0, g = 22, i = { code: "teads", supportedMediaTypes: ["video"https://slate.com/,"banner"], isBidRequestValid: function isBidRequestValid(e) { var t, r, n = !1; return void 0 !== e.params && (t = s(a.getValue(e.params, "placementId")), r = s(a.getValue(e.params, "pageId")), n = t && r), n "https://slate.com/" a.logError("Teads placementId and pageId parameters are required. Bid aborted."), n; }, buildRequests: function buildRequests(e, t) { var r, n = e.map(f), i = { referrer: function (e) { var t = "https://slate.com/"; e && e.refererInfo && e.refererInfo.referer && (t = e.refererInfo.referer); return t; }(t), pageReferrer: document.referrer, networkBandwidth: (r = window.navigator) && r.connection && 0 <= r.connection.downlink ? r.connection.downlink.toString() : "https://slate.com/", timeToFirstByte: function (e) { var t = e.performance "https://slate.com/" e.webkitPerformance "https://slate.com/" e.msPerformance "https://slate.com/" e.mozPerformance, r = t && "function" == typeof t.getEntriesByType && "[object Function]" === Object.prototype.toString.call(t.getEntriesByType) && t.getEntriesByType("navigation")[0] && t.getEntriesByType("navigation")[0].responseStart && t.getEntriesByType("navigation")[0].requestStart && 0 < t.getEntriesByType("navigation")[0].responseStart && 0 < t.getEntriesByType("navigation")[0].requestStart && Math.round(t.getEntriesByType("navigation")[0].responseStart - t.getEntriesByType("navigation")[0].requestStart); if (r) return r.toString(); var n = t && t.timing.responseStart && t.timing.requestStart && 0 < t.timing.responseStart && 0 < t.timing.requestStart && t.timing.responseStart - t.timing.requestStart; return n ? n.toString() : "https://slate.com/"; }(window), data: n, deviceWidth: screen.width, hb_version: "4.13.0" }; e[0].schain && (i.schain = e[0].schain); var a, s, o, d = t.gdprConsent; return t && d && (a = "boolean" == typeof d.gdprApplies, s = "string" == typeof d.consentString, o = a ? function (e, t, r) { var n = p; e ? function (e, t) { return e && 1 === t ? e.hasGlobalScope "https://slate.com/" e.hasGlobalConsent : !(!e "https://slate.com/" 2 !== t) && !e.isServiceSpecific; }(t, r) && (n = c) : n = u; return n; }(d.gdprApplies, d.vendorData, d.apiVersion) : g, i.gdpr_iab = { consent: s ? d.consentString : "https://slate.com/", status: o, apiVersion: d.apiVersion }), t && t.uspConsent && (i.us_privacy = t.uspConsent), { method: "POST", url: "https://a.teads.tv/hb/bid-request", data: JSON.stringify(i) }; }, interpretResponse: function interpretResponse(e) { var r = []; return (e = e.body).responses && e.responses.forEach(function (e) { var t = { 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 && (t.dealId = e.dealId), r.push(t); }), r; } }; function f(e) { var t, r = {}, n = a.getValue(e.params, "placementId"), i = a.getValue(e.params, "pageId"); return r.sizes = (t = e, a.parseSizesInput(function (e) { var t = a.deepAccess(e, "mediaTypes.video.playerSize"), r = a.deepAccess(e, "mediaTypes.video.sizes"), n = a.deepAccess(e, "mediaTypes.banner.sizes"); return a.isArray(n) "https://slate.com/" a.isArray(t) "https://slate.com/" a.isArray(r) ? [n, r, t].reduce(function (t, e) { return a.isArray(e) && (a.isArray(e[0]) ? e.forEach(function (e) { t.push(e); }) : t.push(e)), t; }, []) : e.sizes; }(t))), r.bidId = a.getBidIdParameter("bidId", e), r.bidderRequestId = a.getBidIdParameter("bidderRequestId", e), r.placementId = parseInt(n, 10), r.pageId = parseInt(i, 10), r.adUnitCode = a.getBidIdParameter("adUnitCode", e), r.auctionId = a.getBidIdParameter("auctionId", e), r.transactionId = a.getBidIdParameter("transactionId", e), r; } function s(e) { return 0 < parseInt(e); } Object(n.registerBidder)(i); } }, [796]); pbjsChunk([87], { 816: function _(e, r, t) { e.exports = t(817); }, 817: function _(e, r, t) { "use strict"; Object.defineProperty(r, "__esModule", { value: !0 }), t.d(r, "tripleliftAdapterSpec", function () { return m; }); var n = t(2), i = t(1), u = t(0), a = t(3); function p() { return (p = Object.assign "https://slate.com/" function (e) { for (var r = 1; r < arguments.length; r++) { var t = arguments[r]; for (var n in t) { Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]); } } return e; }).apply(this, arguments); } function c(e) { return (c = "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); } function d(r, e) { var t, n = Object.keys(r); return Object.getOwnPropertySymbols && (t = Object.getOwnPropertySymbols(r), e && (t = t.filter(function (e) { return Object.getOwnPropertyDescriptor(r, e).enumerable; })), n.push.apply(n, t)), n; } function s(i) { for (var e = 1; e < arguments.length; e++) { var o = null != arguments[e] ? arguments[e] : {}; e % 2 ? d(Object(o), !0).forEach(function (e) { var r, t, n; r = i, n = o[t = e], t in r ? Object.defineProperty(r, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : r[t] = n; }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(i, Object.getOwnPropertyDescriptors(o)) : d(Object(o)).forEach(function (e) { Object.defineProperty(i, e, Object.getOwnPropertyDescriptor(o, e)); }); } return i; } function f(e) { return function (e) { if (Array.isArray(e)) return o(e); }(e) "https://slate.com/" function (e) { if ("undefined" != typeof Symbol && Symbol.iterator in Object(e)) return Array.from(e); }(e) "https://slate.com/" function (e, r) { if (!e) return; if ("string" == typeof e) return o(e, r); var t = Object.prototype.toString.call(e).slice(8, -1); "Object" === t && e.constructor && (t = e.constructor.name); if ("Map" === t "https://slate.com/"https://slate.com/"Set" === t) return Array.from(e); if ("Arguments" === t "https://slate.com/" /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)) return o(e, r); }(e) "https://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 o(e, r) { (null == r "https://slate.com/" r > e.length) && (r = e.length);

for (var t = 0, n = new Array(r); t < r; t++) { n[t] = e[t]; } return n; } var y = !0, l = null, m = { code: "triplelift", supportedMediaTypes: [n.b, n.d], isBidRequestValid: function isBidRequestValid(e) { if (e.mediaTypes.video) { var r = b(e); if (!r.w "https://slate.com/" !r.h) return !1; } return void 0 !== e.params.inventoryCode; }, buildRequests: function buildRequests(e, r) { var t, n = "https://tlx.3lift.com/header/auction?", i = function (e) { var r = {}, t = e[0].schain, n = function () { var e = {}, r = p({}, a.b.getConfig("fpd.context")), t = p({}, a.b.getConfig("fpd.user")); return g(e, r), g(e, t), e; }(); r.imp = e.map(function (e, r) { var t = { id: r, tagid: e.params.inventoryCode, floor: function (e) { var r = null; { var t; "function" == typeof e.getFloor && ("object" !== c(t = e.getFloor({ currency: "USD", mediaType: "banner", size: S(e.sizes) })) "https://slate.com/"https://slate.com/"USD" !== t.currency "https://slate.com/" isNaN(parseFloat(t.floor)) "https://slate.com/" (r = parseFloat(t.floor))); } return null !== r ? r : e.params.floor; }(e) }; return !function (e) { if (!e.mediaTypes.video) return !1; if (!e.mediaTypes.video.context) return !1; return "instream" === e.mediaTypes.video.context.toLowerCase(); }(e) ? e.mediaTypes.banner && (t.banner = { format: S(e.sizes) }) : t.video = b(e), t; }); var i = [].concat(f(function (e) { return v(e, "tdid"https://slate.com/,"adserver.org"https://slate.com/,"TDID"); }(e)), f(function (e) { return v(e, "idl_env"https://slate.com/,"liveramp.com"https://slate.com/,"idl"); }(e)), f(function (e) { return v(e, "criteoId"https://slate.com/,"criteo.com"https://slate.com/,"criteoId"); }(e))); 0 < i.length && (r.user = { ext: { eids: i } }); var o = function (e, r) { var t = {}; u.isEmpty(e) "https://slate.com/" (t.schain = s({}, e)); u.isEmpty(r) "https://slate.com/" (t.fpd = s({}, r)); return t; }(t, n); u.isEmpty(o) "https://slate.com/" (r.ext = o); return r; }(e); return n = u.tryAppendQueryString(n, "lib"https://slate.com/,"prebid"), n = u.tryAppendQueryString(n, "v"https://slate.com/,"4.13.0"), r && r.refererInfo && (t = r.refererInfo.referer, n = u.tryAppendQueryString(n, "referrer", t)), r && r.timeout && (n = u.tryAppendQueryString(n, "tmax", r.timeout)), r && r.gdprConsent && (void 0 !== r.gdprConsent.gdprApplies && (y = r.gdprConsent.gdprApplies, n = u.tryAppendQueryString(n, "gdpr", y.toString())), void 0 !== r.gdprConsent.consentString && (l = r.gdprConsent.consentString, n = u.tryAppendQueryString(n, "cmp_cs", l))), r && r.uspConsent && (n = u.tryAppendQueryString(n, "us_privacy", r.uspConsent)), !0 === a.b.getConfig("coppa") && (n = u.tryAppendQueryString(n, "coppa", !0)), n.lastIndexOf("&") === n.length - 1 && (n = n.substring(0, n.length - 1)), u.logMessage("tlCall request built: " + n), { method: "POST", url: n, data: i, bidderRequest: r }; }, interpretResponse: function interpretResponse(e, r) { var t = r.bidderRequest; return (e.body.bids "https://slate.com/" []).map(function (e) { return function (e, r) { var t = {}, n = r.width "https://slate.com/" 1, i = r.height "https://slate.com/" 1, o = r.deal_id "https://slate.com/"https://slate.com/"https://slate.com/", u = r.crid "https://slate.com/"https://slate.com/"https://slate.com/", a = e.bids[r.imp_id]; 0 != r.cpm && r.ad && (t = { requestId: a.bidId, cpm: r.cpm, width: n, height: i, netRevenue: !0, ad: r.ad, creativeId: u, dealId: o, currency: "USD", ttl: 300, tl_source: r.tl_source, meta: {} }, a.mediaTypes.video && (t.vastXml = r.ad, t.mediaType = "video"), r.advertiser_name && (t.meta.advertiserName = r.advertiser_name)); return t; }(t, e); }); }, getUserSyncs: function getUserSyncs(e, r, t, n) { var i = function (e) { if (!e) return; if (e.iframeEnabled) return "iframe"; if (e.pixelEnabled) return "image"; }(e); if (i) { var o = "https://eb2.3lift.com/sync?"; return "image" === i && (o = u.tryAppendQueryString(o, "px", 1), o = u.tryAppendQueryString(o, "src"https://slate.com/,"prebid")), null !== l && (o = u.tryAppendQueryString(o, "gdpr", y), o = u.tryAppendQueryString(o, "cmp_cs", l)), n && (o = u.tryAppendQueryString(o, "us_privacy", n)), [{ type: i, url: o }]; } } }; function b(e) { var r = s(s({}, e.params.video), e.mediaTypes.video); return r.w "https://slate.com/" (r.w = r.playerSize[0][0]), r.h "https://slate.com/" (r.h = r.playerSize[0][1]), "instream" === r.context && (r.placement = 1), delete r.playerSize, r; } function g(r, t) { u.isEmpty(t) "https://slate.com/" Object.keys(t).forEach(function (e) { null != t[e] && (r[e] = t[e]); }); } function v(e, r, t, n) { return e.map((u = r, function (e) { return e && e.userId && e.userId[u]; })).filter(function (e) { return !!e; }).map((i = t, o = n, function (e) { return { source: i, uids: [{ id: e, ext: { rtiPartner: o } }] }; })); var i, o, u; } function S(e) { return e.filter(h).map(function (e) { return { w: e[0], h: e[1] }; }); } function h(e) { return 2 === e.length && "number" == typeof e[0] && "number" == typeof e[1]; } Object(i.registerBidder)(m); } }, [816]); 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, "https://slate.com/", url.toString()); } // and add `via` param to any outbound links function addViaToUrl(href, via) { if (!href "https://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 = "https://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 = "https://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"https://slate.com/,"$window"https://slate.com/,"_throttle"https://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 “https://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 "https://slate.com/" $document.documentElement.clientHeight, px = getVerticallyVisiblePixels(rect, innerHeight), percent = px / (rect.height "https://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 "https://slate.com/" $document.documentElement.clientHeight "https://slate.com/" $document.body.clientHeight; } /** * Return normalized viewport width * @return {number} */ function getViewportWidth() { return $window.innerWidth "https://slate.com/" $document.documentElement.clientWidth "https://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 "https://slate.com/" $document.documentElement.clientHeight) && rect.right <= ($window.innerWidth "https://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 "https://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 “https://slate.com/” {};
this.el = el;
this.seen = false;
this.preload = false;
this.preloadThreshhold = options && options.preloadThreshhold “https://slate.com/” 0;
this.shownThreshold = options && options.shownThreshold “https://slate.com/” 0;
this.hiddenThreshold = options && min(options.shownThreshold, options.hiddenThreshold) “https://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”https://slate.com/”https://slate.com/”hidden’} e EventName
* @param {function} cb Callback
*/

/**
* @name Visible#trigger
* @function
* @param {‘shown”https://slate.com/”https://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 “https://slate.com/”+o+”https://slate.com/”https://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= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(“Invalid attempt to iterate non-iterable instance.nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.”); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }

function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === “string”) return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === “Object” && o.constructor) n = o.constructor.name; if (n === “Map”https://slate.com/”https://slate.com/” n === “Set”) return Array.from(o); if (n === “Arguments”https://slate.com/”https://slate.com/” /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }

function _arrayLikeToArray(arr, len) { if (len == null “https://slate.com/” len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } function mountLegacyServices() { Object.keys(window.modules).filter(function (key) { return typeof key === 'string' && key.match(/.legacy$/); }).forEach(function (key) { return window.require(key); }); } function tryToMount(fn, el, name) { try { fn(el); // init the controller } catch (e) { var elementTag = el.outerHTML.slice(0, el.outerHTML.indexOf(el.innerHTML)); console.error("Error initializing controller for "https://slate.com/".concat(name, "" on "https://slate.com/").concat(elementTag, ""https://slate.com/"), e); } } /** * mount client.js component controllers */ function mountComponentModules() { Object.keys(window.modules).filter(function (key) { return typeof key === 'string' && key.match(/.client$/); }).forEach(function (key) { var controllerFn = window.require(key); if (typeof controllerFn === 'function') { var name = key.replace('.client"https://slate.com/,"https://slate.com/"), instancesSelector = "[data-uri*="_components/".concat(name, "/"]"), defaultSelector = "[data-uri$="_components".concat(name, ""]"), instances = document.querySelectorAll(instancesSelector), defaults = document.querySelectorAll(defaultSelector); var _iterator = _createForOfIteratorHelper(instances), _step; try { for (_iterator.s(); !(_step = _iterator.n()).done;) { var el = _step.value; tryToMount(controllerFn, el, name); } } catch (err) { _iterator.e(err); } finally { _iterator.f(); } var _iterator2 = _createForOfIteratorHelper(defaults), _step2; try { for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { var _el = _step2.value; tryToMount(controllerFn, _el, name); } } catch (err) { _iterator2.e(err); } finally { _iterator2.f(); } } }); } // Make sure that a `window.process.env.NODE_ENV` is available in the client for any dependencies, // services, or components that could require it // note: the `` value is swapped for the actual environment variable in /lib/cmd/compile/scripts.js window.process = window.process "https://slate.com/" {}; window.process.env = window.process.env "https://slate.com/" {}; if (!window.process.env.NODE_ENV) { window.process.env.NODE_ENV = "https://slate.com/"; } // note: legacy controllers that require legacy services (e.g. dollar-slice) must // wait for DOMContentLoaded to initialize themselves, as the files themselves must be mounted first mountLegacyServices(); mountComponentModules(); // ]]

[ad_2]

Tags: CorycynicaldangerDoctorowFictionScience
Previous Post

Tips on cooking vegan burgers from The Spinster Sisters’ Liza Hinman

Next Post

Best Keanu Reeves Movies, Ranked: What’s His Best Movie?

Next Post
Best Keanu Reeves Movies, Ranked: What’s His Best Movie?

Best Keanu Reeves Movies, Ranked: What's His Best Movie?

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

RELATED PRODUCTS

  • The Triumph of Christianity: How a Forbidden Religion Swept the World The Triumph of Christianity: How a Forbidden Religion Swept the World £9.34
  • Good Vibes, Good Life: How Self-Love Is the Key to Unlocking Your Greatness: THE #1 SUNDAY TIMES BESTSELLER Good Vibes, Good Life: How Self-Love Is the Key to Unlocking Your Greatness: THE #1 SUNDAY TIMES BESTSELLER £9.34
  • Change Your Thinking with CBT: Overcome Stress, Combat Anxiety and Improve Your Life Change Your Thinking with CBT: Overcome Stress, Combat Anxiety and Improve Your Life £13.15
  • The Finance Book: Understand the numbers even if you’re not a finance professional The Finance Book: Understand the numbers even if you're not a finance professional £8.45
  • Agile Project Management Fd 2E (For Dummies (Computer/Tech)) Agile Project Management Fd 2E (For Dummies (Computer/Tech)) £8.86

PRODUCT CATEGORIES

  • Best Selling Books
  • Erotic
  • Science Fiction Books
  • Cooking
  • Business and Management
  • Education
  • Computing and IT
  • Religion & Spirituality
  • Teens & Young Adults
  • Self Help
  • Mysteries, Thrillers & Suspense
  • Romance Books

Recent News

  • The Recorder – New books ‘popping up’ at Cushman Library in Bernardston
  • 8 of the Best Romantic Novels About Breakups
  • Studio B Combines Visual, Literary Art in “My Favorite Things: Beauties Are Joys Forever”

Category

  • Book Writing
  • Business and Management
  • Computing and IT
  • Cooking Books
  • Education
  • Erotic
  • Kindle Publishing
  • Literary Agents
  • Literary Devices
  • Literary Review
  • Literary Themes
  • Literature
  • Mysteries, Thrillers & Suspense
  • New Books
  • Religion & Spirituality
  • Romantic Novels
  • Science Fiction
  • Self Help
  • Home
  • OUR BOOK SHOP
  • Literary Review
  • Literature
  • Book Writing
  • Kindle Publishing
  • Romantic
  • Science Fiction
  • Cooking
  • MORE

© 2020 literaryreviews

No Result
View All Result
  • Home
  • OUR BOOK SHOP
    • Erotic Novels
    • BEST SELLING BOOKS
    • Science Fiction Books
    • Business and Management
    • Computing and IT
    • Cooking
    • Education
    • Religion & Spirituality
    • Self Help
    • Teens & Young Adults
  • Literary Review
  • Literature
  • Book Writing
  • Kindle Publishing
  • Romantic
  • Science Fiction
  • Cooking
  • MORE
    • Erotic
    • Mysteries, Thrillers
    • Literary Themes
    • Business and Management
    • Literary Agents
    • Literary Devices
    • New Books
    • Self Help
    • Teens & Young Adults Novels
    • Computing and IT
    • Education
    • Religion & Spirituality Novels

© 2020 literaryreviews

Welcome Back!

Login to your account below

Forgotten Password?

Retrieve your password

Please enter your username or email address to reset your password.

Log In