how it changed Walter Tevis’ 1983 novel, which is not a true story.

how it changed Walter Tevis’ 1983 novel, which is not a true story.

  • November 26, 2020
  • 0 comments

Left, the cover of The Queen’s Gambit by Walter Tevis. Right, Anya Taylor-Joy as Beth Harmon. In the corner, a tearaway logo reads “Page to Screen.”
Photo illustration by Slate. Photos by Amazon and Netflix.

Walter Tevis’ 1983 novel The Queen’s Gambit is on the New York Times best-seller list, thanks to what Netflix calls its “biggest limited scripted series ever.” But what will fans of the blockbuster show find when they crack open the book that inspired it over Thanksgiving weekend?

Many of the lines of dialogue familiar to viewers are straight out of Tevis’ story, and the general plot—chess prodigy overcomes addiction to rise to the top of her field—remains the same. But along with skipping those loooooong passages describing chess moves, writer and director Scott Frank makes a few changes to Tevis’ novel.

Below, we’ve rounded up the most significant differences. Needless to say, spoilers follow.

The Battle of the Sexes

Aaron Bady argued recently in the Los Angeles Review of Books that one of biggest pleasures of Netflix’s The Queen’s Gambit is that things keep almost going wrong and then being fine. One contributor to the comfortable feeling the show provokes is the way that the sexism of the chess world never quite seems to affect Beth: She gets a “surrogate family and community” out of her chess career, even though the male-dominated world of Cold War-era chess seems like an improbable place for a teenage girl to thrive.

The novel’s gender dynamics are not so pleasant. When young Beth is about to play the high school boys at their chess club, they stare at her, and she feels their animosity and responds by feeling “a hatred as black as night” rising. At her first tournament, she beats one boy who is so angry about it that he swears at her and doesn’t shake her hand. At that tournament, even Harry Beltik—played on the show by Harry Melling as first smug, and ultimately soft and weepy—is hostile to her in the book. After they find out they’ll be playing each other the next day, he says to her as she’s leaving: “Tomorrow.” Later on, she thinks, “When he stepped toward her as she was leaving, some part of her had thought he would hit her.”

And when Harry comes to her house and trains her, only to have her pass him by, he doesn’t take it with wounded sadness, as the Beltik of the show does. He’s furious. During the game when they realize she’s far beyond him, he “glares” at her, and she can feel his anger. He stops coming to her bed that night. On the show, he leaves her while begging her to stop drinking; in the book, he leaves after a conversation memorable mostly for its brevity, and the implication is that he can’t handle playing second fiddle. And when she talks to Benny Watts on the phone from Russia, to get advice about her final match with Borgov, it’s only Benny on the other end—no magical reappearance for Harry.

Beth’s Addiction

On the show, Beth goes out with a friend and gets drunk the night before her second match with Borgov in Paris. She wakes up late and loses the match because of this lapse in judgment. In the book, she takes three pills the night before that match, but wakes up “refreshed,” feeling “confident, smart, and ready.” She plays well (“her best chess,” she thinks), but Borgov beats her anyway. In the aftermath of that match, on the show, Beth decides not to return to New York and reunite with Benny, and the choice between “drinking” and “Benny” is something Benny articulates outright. In the book, Benny has little reaction to her decision, beyond sounding “irritated” and warning her not to quit chess out of discouragement; the bender comes later. (More on Benny in a bit.)

Extraordinary Coincidences

The bender that ruins Beth’s match with Borgov is just one example of the way the show takes the subtler twists and turns of the book’s plot and dials them up a few notches, leaning on Beth’s addiction as a driving force. The show also relies heavily on coincidence in a way the book does not. Consider the way Beth unites with her old friend Jolene in the story’s last act, as Beth gets sober to train for her trip to Russia. In the show, Jolene shows up randomly at Beth’s front door, right when she’s needed. In the book, Beth realizes she needs help to get her head right and has an epiphany that it’s Jolene who could help her do it. She calls the orphanage to track her friend down.

Same goes for the handsome player D.L. Townes, who shows up again toward the end of the show, sent to Moscow to photograph Beth for a newspaper. In the book, he appears at her first tournament and becomes an early lust object for the young player, but after she sees him at another tournament when she’s about 17, there’s no third encounter; Townes just never reappears again.

Jolene

The most striking change the show makes to the characterization of Beth’s friend Jolene has to do with the girls’ time in the orphanage together. In Tevis’ novel, when Jolene is 13 and Beth is nine, Jolene comes to Beth’s bed in the middle of the night and tries to get Beth to engage in mutual masturbation.  When Beth, “terrified” by the situation, says no, Jolene goes away, but she’s angry about it. For a while, the two are enemies; when Jolene calls Beth “cracker” in the hallway, she means it not as a term of endearment, but a curse. Beth, for her part, responds by hissing the n-word. A Black orphan who tries to seduce her younger friend? A white heroine who uses the n-word as a weapon? None of this is in the show, surely too fraught for the escapist fantasy Netflix has created.

In the book, Beth thinks about Jolene periodically, while in the show, she’s absent from the middle of the story. Jolene appears when Beth visualizes what she wants to become: “a truly professional woman and the finest chess player in the world, traveling confidently by herself in the first-class cabins of airplanes, tall, perfectly dressed, good-looking and poised—a kind of white Jolene.” She often thinks she might send Jolene a note, but doesn’t.

In the book, Jolene gets a scholarship in physical education to attend university, and when she reunites with her old friend, she helps Beth get through her withdrawal from alcohol and pills by training her in the university gym, putting her through her paces in weightlifting, calisthenics, and—as seen in the show—handball. But she doesn’t give Beth money to go to Russia, and the show’s conversation about her not being a “guardian angel” never happens. In fact, though the book’s Jolene has helped Beth get her head straight, when Beth tries to call her from the airport on the way to Russia, she’s not home.

Benny Watts

Benny, the show’s string-bean trickster, seems to be a composite of a few players from Tevis’ book. In the novel, Beth sees an older chess player at one point at a tournament, holding court in a hotel lobby just as Benny does in the show. This man—who is not Benny—is wearing a black knit cap with a knife at his waist; he’s a “pirate” who looks like “someone out of Treasure Island.” He leaves an intense impression on Beth, because of his authoritative approach to chess. When she finally meets the real Benny, Beth reflects that he looks “as American as Huckleberry Finn,” though “cheerful and sly,” in an untrustworthy way. He’s got “flat straw-colored hair,” and later he grows it down to his shoulders. He’s “pale and thin and very calm.”

On the show, Beth’s relationship with Benny is the most romantic one she has, but in the novel, Beth doesn’t sigh and say “So that’s what that’s supposed to be like!” after having sex with Benny. “Making love had been all right,” she thinks, “though not as exciting as she had hoped.” There’s a distance to Benny, and she gets furious when he goes to play a poker game the day after they have sex, and she realizes he probably planned it out that way. “His behavior was like his chess game: smooth and easy on the surface but tricky and infuriating beneath,” she thinks to herself. “The cool son of a bitch. It was quick sex with her, and then off to the boys. He had probably planned it that way for a week. Tactics and strategy. She could have killed him.”

But all is not lost for Benny-Beth shippers turning to the Tevis book for a fix. Flying to Russia alone, Beth wishes Benny were there:

She missed Benny’s quick and sober mind, his judgment and tenacity, his knowledge of chess and his knowledge of her. He would be in the seat beside her, and they could talk chess, and in Moscow after her games they would analyze the play and then plan for the next opponent. They would eat their meals together in the hotel, the way she had done with Mrs. Wheatley. They could see Moscow, and whenever they wanted to they could make love at their hotel.

The novel leaves the door open for Benny and Beth to come together again, after she beats Borgov and flies home, as triumphant on the page as she is onscreen.

');
}

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 = "", 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 || e.isEven() ? d : h)(e); return this.exp(t, r); }, T.prototype.exp = function (t, e) { if (4294967295 < t || 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 = "", r = 0, i = 0, s = 0; s < t.length && "=" != t.charAt(s); ++s) { var o = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(t.charAt(s)); o < 0 || (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/, "").replace("3031300d060960864801650304020105000420"https://r.search.yahoo.com/,""); }; var d = (u.prototype.convert = function (t) { return t.s < 0 || 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 || ""); 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(""); }, y.utf8Encode = function (e) { try { return new TextEncoder().encode(e).reduce(function (t, e) { return t + String.fromCharCode(e); }, ""); } 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([218], {
501: function _(e, r, t) {
e.exports = t(502);
},
502: function _(e, r, t) {
"use strict";

Object.defineProperty(r, "__esModule", {
value: !0
}), t.d(r, "spec", function () {
return c;
});
var F = t(0),
j = t(2),
B = t(3),
i = t(10),
l = t.n(i),
n = t(503),
s = t.n(n),
a = t(1);

function J(e) {
return function (e) {
if (Array.isArray(e)) return o(e);
}(e) || function (e) {
if ("undefined" != typeof Symbol && Symbol.iterator in Object(e)) return Array.from(e);
}(e) || 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 || "Set" === t) return Array.from(e);
if ("Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)) return o(e, r);
}(e) || 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 || r > e.length) && (r = e.length);

for (var t = 0, i = new Array(r); t < r; t++) { i[t] = e[t]; } return i; } function d(r, e) { var t, i = Object.keys(r); return Object.getOwnPropertySymbols && (t = Object.getOwnPropertySymbols(r), e && (t = t.filter(function (e) { return Object.getOwnPropertyDescriptor(r, e).enumerable; })), i.push.apply(i, t)), i; } function M(n) { for (var e = 1; e < arguments.length; e++) { var s = null != arguments[e] ? arguments[e] : {}; e % 2 ? d(Object(s), !0).forEach(function (e) { var r, t, i; r = n, i = s[t = e], t in r ? Object.defineProperty(r, t, { value: i, enumerable: !0, configurable: !0, writable: !0 }) : r[t] = i; }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(n, Object.getOwnPropertyDescriptors(s)) : d(Object(s)).forEach(function (e) { Object.defineProperty(n, e, Object.getOwnPropertyDescriptor(s, e)); }); } return n; } function N(e) { return (N = "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 p = [j.b, j.d], f = 100, g = 300, b = 3600, h = !0, v = { JPY: 1 }; function C(e) { var r = {}; return r.id = e.bidId, r.ext = {}, r.ext.siteID = e.params.siteId, !e.params.hasOwnProperty("id") || "string" != typeof e.params.id && "number" != typeof e.params.id ? r.ext.sid = "".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 m(e) { return Array.isArray(e) && 2 === e.length && s()(e[0]) && s()(e[1]); } function T(e, r) { if (m(e)) return e[0] === r[0] && e[1] === r[1]; for (var t = 0; t < e.length; t++) { if (e[t][0] === r[0] && e[t][1] === r[1]) return 1; } } function A(e, r, t, i) { var n = [], s = "https://htlb.casalemedia.com/cygnus", a = {}, o = e[0].userId; if (o && "object" === N(o) && o.idl_env && function (e, r, t, i, n, s) { if (t) return r[n] = 1, e.push({ source: i, uids: [{ id: t, ext: { rtiPartner: s } }] }); F.logWarn("Tried to add a user ID from Prebid, the ID received was null"); }(n, a, o.idl_env, "liveramp.com"https://r.search.yahoo.com/,"LiveRampIp"https://r.search.yahoo.com/,"idl"), window.headertag && "function" == typeof window.headertag.getIdentityInfo) { var d, p = window.headertag.getIdentityInfo(); if (p && "object" === N(p)) for (var m in p) { p.hasOwnProperty(m) && (a.hasOwnProperty(m) || !(d = p[m]).responsePending && d.data && "object" === N(d.data) && Object.keys(d.data).length && n.push(d.data)); } } var c, u = {}; u.id = e[0].bidderRequestId, u.site = {}, u.ext = {}, u.ext.source = "prebid", u.ext.ixdiag = {}, e[0].schain && (u.source = { ext: { schain: e[0].schain } }), 0 < n.length && (u.user = {}, u.user.eids = n), document.referrer && "" !== document.referrer && (u.site.ref = document.referrer), r && (r.gdprConsent && ((c = r.gdprConsent).hasOwnProperty("gdprApplies") && (u.regs = { ext: { gdpr: c.gdprApplies ? 1 : 0 } }), c.hasOwnProperty("consentString") && (u.user = u.user || {}, u.user.ext = { consent: c.consentString || "" })), r.uspConsent && F.deepSetValue(u, "regs.ext.us_privacy", r.uspConsent), r.refererInfo && (u.site.page = r.refererInfo.referer)); var y = {}, l = r && r.bidderCode || "ix", f = B.b.getConfig(l); if (f) { if ("object" === N(f.firstPartyData)) { var g = f.firstPartyData, b = "?"; for (var h in g) { g.hasOwnProperty(h) && (b += "".concat(encodeURIComponent(h), "=").concat(encodeURIComponent(g[h]), "&")); } b = b.slice(0, -1), u.site.page += b; } "number" == typeof f.timeout && (y.t = f.timeout), "boolean" == typeof f.detectMissingSizes ? u.ext.ixdiag.dms = f.detectMissingSizes : u.ext.ixdiag.dms = !0; } y.s = e[0].params.siteId, y.v = i, y.ac = "j", y.sd = 1, 8.1 === i && (y.nf = 1); var v = [], O = { method: "GET", url: s, data: y }, x = new Blob(["".concat(O.url).concat(F.parseQueryStringParameters(M(M({}, O.data), {}, { r: JSON.stringify(u) })))]).size, I = x, w = 0, P = 0, S = 0; u.ext.ixdiag.msd = 0, u.ext.ixdiag.msi = 0, u.imp = []; for (var z, j, C, T, A, E = 0, D = Object.keys(t), R = []; E < D.length && v.length < 4;) { t[D[E]].hasOwnProperty("missingCount") && (S = t[D[E]].missingCount), function (e, r) { var t = new Blob([encodeURIComponent(JSON.stringify(e))]).size; if (t < r) return; for (; r < t;) { e.hasOwnProperty("missingImps") && 0 < e.missingImps.length ? e.missingImps.pop() : e.hasOwnProperty("ixImps") && 0 < e.ixImps.length && e.ixImps.pop(), t = new Blob([encodeURIComponent(JSON.stringify(e))]).size; } }(t[D[E]], 8e3 - x), t[D[E]].hasOwnProperty("missingImps") && (P = t[D[E]].missingImps.length), (I += new Blob([encodeURIComponent(JSON.stringify(t[D[E]]))]).size) < 8e3 ? ((z = u.imp).push.apply(z, J(t[D[E]].ixImps)), u.ext.ixdiag.msd += S, u.ext.ixdiag.msi += P, t[D[E]].hasOwnProperty("missingImps") && R.push.apply(R, J(t[D[E]].missingImps)), E++) : (C = F.deepClone(y), (j = u.imp).push.apply(j, J(R)), u.ext.ixdiag.sn = w, C.sn = w, w++, C.r = JSON.stringify(u), v.push({ method: "GET", url: s, data: C }), R = [], I = x, u.imp = [], P = S = 0, u.ext.ixdiag.msd = 0, u.ext.ixdiag.msi = 0); } return x < I && I < 8e3 && v.length < 4 && (A = F.deepClone(y), (T = u.imp).push.apply(T, J(R)), 0 < v.length && (u.ext.ixdiag.sn = w, A.sn = w), A.r = JSON.stringify(u), v.push({ method: "GET", url: s, data: A })), v; } function E(e, r) { for (var t = 0; t < e.length; t++) { if (r[0] == e[t][0] && r[1] == e[t][1]) return e.splice(t, 1), 1; } } var c = { code: "ix", gvlid: 10, supportedMediaTypes: p, isBidRequestValid: function isBidRequestValid(e) { if (!m(e.params.size)) return F.logError("ix bidder params: bid size has invalid format."), !1; if (!T(e.sizes, e.params.size)) return F.logError("ix bidder params: bid size is not included in ad unit sizes."), !1; if (e.hasOwnProperty("mediaType") && !F.contains(p, e.mediaType)) return !1; if (e.hasOwnProperty("mediaTypes") && !F.deepAccess(e, "mediaTypes.banner.sizes") && !F.deepAccess(e, "mediaTypes.video.playerSize")) return !1; if ("string" != typeof e.params.siteId && "number" != typeof e.params.siteId) return F.logError("ix bidder params: siteId must be string or number value."), !1; var r, t, i = e.params.hasOwnProperty("bidFloor"), n = e.params.hasOwnProperty("bidFloorCur"); return !!(!i && !n || i && n && (r = e.params.bidFloor, t = e.params.bidFloorCur, Boolean("number" == typeof r && "string" == typeof t && t.match(/^[A-Z]{3}$/)))) || (F.logError("ix bidder params: bidFloor / bidFloorCur parameter has invalid format."), !1); }, buildRequests: function buildRequests(e, r) { for (var t, i, n, s, a, o, d, p, m, c, u, y, l, f = [], g = {}, b = {}, h = null, v = {}, O = M(M({}, { detectMissingSizes: !0 }), B.b.getConfig("ix")), x = 0; x < e.length; x++) { (h = e[x]).mediaType !== j.d && !F.deepAccess(h, "mediaTypes.video") || (h.mediaType === j.d || T(h.mediaTypes.video.playerSize, h.params.size) ? (b.hasOwnProperty(h.transactionId) || (b[h.transactionId] = {}), b[h.transactionId].hasOwnProperty("ixImps") || (b[h.transactionId].ixImps = []), b[h.transactionId].ixImps.push(function (e) { var r = C(e); r.video = F.deepClone(e.params.video), r.video.w = e.params.size[0], r.video.h = e.params.size[1]; var t = F.deepAccess(e, "mediaTypes.video.context"); return t && ("instream" === t ? r.video.placement = 1 : "outstream" === t ? r.video.placement = 4 : F.logWarn("ix bidder params: video context '".concat(t, "' is not supported"))), r; }(h))) : F.logError("Bid size is not included in video playerSize")), h.mediaType !== j.b && !F.deepAccess(h, "mediaTypes.banner") && (h.mediaType || h.mediaTypes) || (c = void 0, (c = C(m = h)).banner = {}, c.banner.w = m.params.size[0], c.banner.h = m.params.size[1], c.banner.topframe = F.inIframe() ? 0 : 1, t = c, g.hasOwnProperty(h.transactionId) || (g[h.transactionId] = {}), g[h.transactionId].hasOwnProperty("ixImps") || (g[h.transactionId].ixImps = []), g[h.transactionId].ixImps.push(t), O.hasOwnProperty("detectMissingSizes") && O.detectMissingSizes && (n = v, s = t, p = d = o = a = void 0, p = (i = h).transactionId, n.hasOwnProperty(p) ? (a = [], n[p].hasOwnProperty("missingSizes") && (a = n[p].missingSizes), E(a, i.params.size), n[p].missingSizes = a) : F.deepAccess(i, "mediaTypes.banner.sizes") && (E(o = F.deepClone(i.mediaTypes.banner.sizes), i.params.size), d = { missingSizes: o, impression: s }, n[p] = d))); } for (var I in v) { if (v.hasOwnProperty(I)) { var w = v[I].missingSizes; g.hasOwnProperty(I) || (g[I] = {}), g[I].hasOwnProperty("missingImps") || (g[I].missingImps = [], g[I].missingCount = 0); for (var P = v[I].impression, S = 0; S < w.length; S++) { var z = (u = P, y = w[S], l = void 0, (l = F.deepClone(u)).ext.sid = "".concat(y[0], "x").concat(y[1]), l.banner.w = y[0], l.banner.h = y[1], l); g[I].missingImps.push(z), g[I].missingCount++; } } } return 0 < Object.keys(g).length && f.push.apply(f, J(A(e, r, g, 7.2))), 0 < Object.keys(b).length && f.push.apply(f, J(A(e, r, b, 8.1))), f; }, interpretResponse: function interpretResponse(e, r) { var t = []; if (!e.hasOwnProperty("body") || !e.body.hasOwnProperty("seatbid")) return t; for (var i, n, s, a, 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 y = function (r, e) { if (r) return l()(e, function (e) { return e.id === r; }); }(m[u].impid, c.imp); i = m[u], n = o.cur, s = y, a = void 0, a = {}, v.hasOwnProperty(n) ? a.cpm = i.price / v[n] : a.cpm = i.price / f, a.requestId = i.impid, a.dealId = F.deepAccess(i, "ext.dealid"), a.netRevenue = h, a.currency = n, a.creativeId = i.hasOwnProperty("crid") ? i.crid : "-", F.deepAccess(i, "ext.vasturl") ? (a.vastUrl = i.ext.vasturl, a.width = s.video.w, a.height = s.video.h, a.mediaType = j.d, a.ttl = b) : (a.ad = i.adm, a.width = i.w, a.height = i.h, a.mediaType = j.b, a.ttl = g), a.meta = {}, a.meta.networkId = F.deepAccess(i, "ext.dspid"), a.meta.brandId = F.deepAccess(i, "ext.advbrandid"), a.meta.brandName = F.deepAccess(i, "ext.advbrand"), i.adomain && 0 < i.adomain.length && (a.meta.advertiserDomains = i.adomain), t.push(a); } } return t; }, transformBidParams: function transformBidParams(e) { return F.convertTypes({ siteID: "number" }, e); }, getUserSyncs: function getUserSyncs(e) { return e.iframeEnabled ? [{ type: "iframe", url: "https://js-sec.indexww.com/um/ixmatch.html" }] : []; } }; Object(a.registerBidder)(c); } }, [501]); pbjsChunk([213], { 517: function _(e, t, r) { e.exports = r(518); }, 518: 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 || 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 || !e.params) && !!e.params.placementId; }, buildRequests: function buildRequests(e, t) { var r, n = d.b.getConfig("currency"), a = n && n.adServerCurrency || "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: "".concat("https://krk.kargo.com"https://r.search.yahoo.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 = "".concat(e, "="), r = document.cookie.split(";"), n = 0; n < r.length; n++) { for (var a = r[n]; " " === 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 || {}, 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 || 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(""); return t.slice(0, 8) + "-" + t.slice(8, 12) + "-" + t.slice(12, 16) + "-" + t.slice(16, 20) + "-" + t.slice(20); } catch (e) { return ""; } } }; Object(n.registerBidder)(l); } }, [517]); pbjsChunk([128], { 727: function _(e, r, t) { e.exports = t(728); }, 728: function _(e, r, t) { "use strict"; Object.defineProperty(r, "__esModule", { value: !0 }), t.d(r, "spec", function () { return A; }), r.hasVideoMediaType = s, t.d(r, "resetRubiConf", function () { return c; }), r.masSizeOrdering = d, r.determineRubiconVideoSizeId = f, r.getPriceGranularity = C, r.hasValidVideoParams = I, r.hasValidSupplyChainParams = k, r.encodeParam = w, r.resetUserSync = function () { z = !1; }; var g = t(0), i = t(1), v = t(3), p = t(2), n = t(10), b = t.n(n); function y(e, r) { return function (e) { if (Array.isArray(e)) return e; }(e) || function (e, r) { if ("undefined" == typeof Symbol || !(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 || t.length !== r); i = !0) { ; } } catch (e) { n = !0, o = e; } finally { try { i || null == s.return || s.return(); } finally { if (n) throw o; } } return t; }(e, r) || 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 || "Set" === t) return Array.from(e); if ("Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)) return o(e, r); }(e, r) || 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 || r > e.length) && (r = e.length);

for (var t = 0, i = new Array(r); t < r; t++) { i[t] = e[t]; } return i; } function x() { return (x = Object.assign || 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 l(e, r, t) { return r in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } function h(e) { return (h = "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 _ = {}; v.b.getConfig("rubicon", function (e) { g.mergeDeep(_, e.rubicon); }); var u = { 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" }; g._each(u, function (e, r) { return u[e] = r; }); var A = { code: "rubicon", gvlid: 52, supportedMediaTypes: [p.b, p.d], isBidRequestValid: function isBidRequestValid(e) { if ("object" !== h(e.params)) return !1; for (var r = 0, t = ["accountId"https://r.search.yahoo.com/,"siteId"https://r.search.yahoo.com/,"zoneId"]; r < t.length; r++) { if (e.params[t[r]] = parseInt(e.params[t[r]]), isNaN(e.params[t[r]])) return g.logError("Rubicon: wrong format of accountId or siteId or zoneId."), !1; } var i = m(e, !0); return !!i && ("video" !== i || I(e)); }, buildRequests: function buildRequests(e, u) { 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: v.b.getConfig("debug") ? 1 : 0, cur: ["USD"], source: { tid: t.transactionId }, tmax: u.timeout, imp: [{ exp: v.b.getConfig("s2sConfig.defaultTtl"), id: t.adUnitCode, secure: 1, ext: l({}, t.bidder, t.params), video: g.deepAccess(t, "mediaTypes.video") || {} }], ext: { prebid: { cache: { vastxml: { returnCreative: !0 === _.returnVast } }, targeting: { includewinners: !0, includebidderkeys: !1, pricegranularity: C(v.b) }, bidders: { rubicon: { integration: _.int_type || "pbjs" } } } } }; if ("rubicon" !== t.bidder && (n.ext.prebid.aliases = l({}, t.bidder, "rubicon")), "function" != typeof t.getFloor || _.disableFloors) e = parseFloat(g.deepAccess(t, "params.floor"));else { try { r = t.getFloor({ currency: "USD", mediaType: "video", size: j(t, "video") }); } catch (e) { g.logError("Rubicon: getFloor threw an error: ", e); } e = "object" !== h(r) || "USD" !== r.currency || isNaN(parseInt(r.floor)) ? void 0 : parseFloat(r.floor); } isNaN(e) || (n.imp[0].bidfloor = e), n.imp[0].ext[t.bidder].video.size_id = f(t), function (r, t, e) { if (!r) return; "object" === h(v.b.getConfig("app")) ? r.app = v.b.getConfig("app") : r.site = { page: S(t, e) }; "object" === h(v.b.getConfig("device")) && (r.device = v.b.getConfig("device")); t.params.video.language && ["site"https://r.search.yahoo.com/,"device"].forEach(function (e) { r[e] && (r[e].content = x({ language: t.params.video.language }, r[e].content)); }); }(n, t, u), function (e, r) { "object" === h(e.imp[0].video) && void 0 === e.imp[0].video.skip && (e.imp[0].video.skip = r.params.video.skip); "object" === h(e.imp[0].video) && void 0 === e.imp[0].video.skipafter && (e.imp[0].video.skipafter = r.params.video.skipdelay); "object" === h(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 = j(r, "video"); e.imp[0].video.w = t[0], e.imp[0].video.h = t[1]; }(n, t), u.gdprConsent && ("boolean" == typeof u.gdprConsent.gdprApplies && (i = u.gdprConsent.gdprApplies ? 1 : 0), g.deepSetValue(n, "regs.ext.gdpr", i), g.deepSetValue(n, "user.ext.consent", u.gdprConsent.consentString)), u.uspConsent && g.deepSetValue(n, "regs.ext.us_privacy", u.uspConsent); var o = g.deepAccess(u, "bids.0.userIdAsEids"); o && o.length && g.deepSetValue(n, "user.ext.eids", o); var a = v.b.getConfig("user.id"); a && g.deepSetValue(n, "user.id", a), !0 === v.b.getConfig("coppa") && g.deepSetValue(n, "regs.coppa", 1), t.schain && k(t.schain) && g.deepSetValue(n, "source.ext.schain", t.schain); var s, c = x({}, t.params.inventory, v.b.getConfig("fpd.context")), d = x({}, t.params.visitor, v.b.getConfig("fpd.user")); g.isEmpty(c) && g.isEmpty(d) || (s = { bidders: [u.bidderCode], config: { fpd: {} } }, g.isEmpty(c) || (s.config.fpd.site = c), g.isEmpty(d) || (s.config.fpd.user = d), g.deepSetValue(n, "ext.prebid.bidderconfig.0", s)); var p = g.deepAccess(t, "fpd.context.pbAdSlot"); return "string" == typeof p && p && g.deepSetValue(n.imp[0].ext, "context.data.pbadslot", p), ["name"https://r.search.yahoo.com/,"adSlot"].forEach(function (e) { var r = g.deepAccess(t, "fpd.context.adserver.".concat(e)); "string" == typeof r && r && g.deepSetValue(n.imp[0].ext, "context.data.adserver.".concat(e.toLowerCase()), r); }), t.storedAuctionResponse && g.deepSetValue(n.imp[0], "ext.prebid.storedauctionresponse.id", t.storedAuctionResponse.toString()), g.deepSetValue(n.imp[0], "ext.prebid.auctiontimestamp", u.auctionStart), { method: "POST", url: "https://".concat(_.videoHost || "prebid-server"https://r.search.yahoo.com/,".rubiconproject.com/openrtb2/auction"), data: n, bidRequest: t }; }); return !0 !== _.singleRequest ? r.concat(e.filter(function (e) { return "banner" === m(e); }).map(function (e) { var i = A.createSlotParams(e, u); return { method: "GET", url: "https://".concat(_.bannerHost || "fastlane"https://r.search.yahoo.com/,".rubiconproject.com/a/api/fastlane.json"), data: A.getOrderedParams(i).reduce(function (e, r) { var t = i[r]; return g.isStr(t) && "" !== t || g.isNumber(t) ? "".concat(e).concat(w(r, t), "&") : e; }, "") + "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] || []).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 = A.combineSlotUrlParams(e.map(function (e) { return A.createSlotParams(e, u); })); r.push({ method: "GET", url: "https://".concat(_.bannerHost || "fastlane"https://r.search.yahoo.com/,".rubiconproject.com/a/api/fastlane.json"), data: A.getOrderedParams(i).reduce(function (e, r) { var t = i[r]; return g.isStr(t) && "" !== t || g.isNumber(t) ? "".concat(e).concat(w(r, t), "&") : e; }, "") + "slots=".concat(e.length, "&rand=").concat(Math.random()), bidRequest: e }); }), r; }, []))); }, getOrderedParams: function getOrderedParams(e) { var r = /^tg_v/, t = /^tg_i/, i = /^eid_|^tpid_/, n = ["account_id"https://r.search.yahoo.com/,"site_id"https://r.search.yahoo.com/,"zone_id"https://r.search.yahoo.com/,"size_id"https://r.search.yahoo.com/,"alt_size_ids"https://r.search.yahoo.com/,"p_pos"https://r.search.yahoo.com/,"gdpr"https://r.search.yahoo.com/,"gdpr_consent"https://r.search.yahoo.com/,"us_privacy"https://r.search.yahoo.com/,"rp_schain"].concat(Object.keys(e).filter(function (e) { return i.test(e); })).concat(["x_liverampidl"https://r.search.yahoo.com/,"ppuid"https://r.search.yahoo.com/,"rf"https://r.search.yahoo.com/,"p_geo.latitude"https://r.search.yahoo.com/,"p_geo.longitude"https://r.search.yahoo.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://r.search.yahoo.com/,"x_source.tid"https://r.search.yahoo.com/,"x_source.pchain"https://r.search.yahoo.com/,"p_screen_res"https://r.search.yahoo.com/,"rp_floor"https://r.search.yahoo.com/,"rp_secure"https://r.search.yahoo.com/,"tk_user_key"]); return n.concat(Object.keys(e).filter(function (e) { return -1 === n.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) || (r[e] = new Array(n.length)), r[e].splice(i, 1, t[e]); }), r; }, {}), o = new RegExp("^([^;]*)(;\1)+$"); return Object.keys(i).forEach(function (e) { var r = i[e].join(";"), t = r.match(o); i[e] = t ? t[1] : r; }), i; }, createSlotParams: function createSlotParams(e, r) { e.startTime = new Date().getTime(); var t, i = e.params, n = j(e, "banner"), o = y(i.latLong || [], 2), a = o[0], s = o[1], c = { account_id: i.accountId, site_id: i.siteId, zone_id: i.zoneId, size_id: n[0], alt_size_ids: n.slice(1).join(",") || void 0, rp_floor: .01 < (i.floor = parseFloat(i.floor)) ? i.floor : .01, rp_secure: "1", tk_flint: "".concat(_.int_type || "pbjs_lite"https://r.search.yahoo.com/,"_v4.17.0"), "x_source.tid": e.transactionId, "x_source.pchain": i.pchain, p_screen_res: [window.screen.width, window.screen.height].join("x"), tk_user_key: i.userId, "p_geo.latitude": isNaN(parseFloat(a)) ? void 0 : parseFloat(a).toFixed(4), "p_geo.longitude": isNaN(parseFloat(s)) ? void 0 : parseFloat(s).toFixed(4), "tg_fl.eid": e.code, rf: S(e, r) }; if ("function" == typeof e.getFloor && !_.disableFloors) { try { t = e.getFloor({ currency: "USD", mediaType: "banner", size: "*" }); } catch (e) { g.logError("Rubicon: getFloor threw an error: ", e); } c.rp_hard_floor = "object" !== h(t) || "USD" !== t.currency || isNaN(parseInt(t.floor)) ? void 0 : t.floor; } c.p_pos = "atf" === i.position || "btf" === i.position ? i.position : ""; var d = v.b.getConfig("user.id"); d && (c.ppuid = d), e.userIdAsEids && e.userIdAsEids.forEach(function (r) { try { var e; "adserver.org" === r.source ? (c.tpid_tdid = r.uids[0].id, c["eid_adserver.org"] = r.uids[0].id) : "liveintent.com" === r.source ? (c["tpid_liveintent.com"] = r.uids[0].id, c["eid_liveintent.com"] = r.uids[0].id, r.ext && Array.isArray(r.ext.segments) && r.ext.segments.length && (c["tg_v.LIseg"] = r.ext.segments.join(","))) : "liveramp.com" === r.source ? c.x_liverampidl = r.uids[0].id : "sharedid.org" === r.source ? c["eid_sharedid.org"] = "".concat(r.uids[0].id, "^").concat(r.uids[0].atype, "^").concat(r.uids[0].ext && r.uids[0].ext.third || "") : "id5-sync.com" === r.source ? c["eid_id5-sync.com"] = "".concat(r.uids[0].id, "^").concat(r.uids[0].atype, "^").concat(r.ext && r.ext.linkType || "") : c["eid_".concat(r.source)] = "".concat(r.uids[0].id, "^").concat(r.uids[0].atype || ""), c.ppuid || (e = b()(r.uids, function (e) { return e.ext && "ppuid" === e.ext.stype; })) && e.id && (c.ppuid = e.id); } catch (e) { g.logWarn("Rubicon: error reading eid:", r, e); } }), r.gdprConsent && ("boolean" == typeof r.gdprConsent.gdprApplies && (c.gdpr = Number(r.gdprConsent.gdprApplies)), c.gdpr_consent = r.gdprConsent.consentString), r.uspConsent && (c.us_privacy = encodeURIComponent(r.uspConsent)); var p = x({}, i.visitor, v.b.getConfig("fpd.user")); Object.keys(p).forEach(function (e) { null != p[e] && "keywords" !== e && (c["tg_v.".concat(e)] = "object" !== h(p[e]) || Array.isArray(p[e]) ? p[e].toString() : JSON.stringify(p[e])); }); var u = x({}, i.inventory, v.b.getConfig("fpd.context")); Object.keys(u).forEach(function (e) { null != u[e] && "keywords" !== e && (c["tg_i.".concat(e)] = "object" !== h(u[e]) || Array.isArray(u[e]) ? u[e].toString() : JSON.stringify(u[e])); }); var l = (i.keywords || []).concat(g.deepAccess(v.b.getConfig("fpd.user"), "keywords") || [], g.deepAccess(v.b.getConfig("fpd.context"), "keywords") || []); c.kw = Array.isArray(l) && l.length ? l.join(",") : ""; var m = g.deepAccess(e, "fpd.context.pbAdSlot"); "string" == typeof m && m && (c["tg_i.pbadslot"] = m.replace(/^/+/, "")); var f = g.deepAccess(e, "fpd.context.adServer.adSlot"); return "string" == typeof f && f && (c["tg_i.dfp_ad_unit_code"] = f.replace(/^/+/, "")), !0 === v.b.getConfig("coppa") && (c.coppa = 1), e.schain && k(e.schain) && (c.rp_schain = A.serializeSupplyChain(e.schain)), c; }, serializeSupplyChain: function serializeSupplyChain(e) { if (!k(e)) return ""; var r = e.ver, t = e.complete, i = e.nodes; return "".concat(r, ",").concat(t, "!").concat(A.serializeSupplyChainNodes(i)); }, serializeSupplyChainNodes: function serializeSupplyChainNodes(e) { var t = ["asi"https://r.search.yahoo.com/,"sid"https://r.search.yahoo.com/,"hp"https://r.search.yahoo.com/,"rid"https://r.search.yahoo.com/,"name"https://r.search.yahoo.com/,"domain"]; return e.map(function (r) { return t.map(function (e) { return encodeURIComponent(r[e] || ""); }).join(","); }).join("!"); }, interpretResponse: function interpretResponse(c, e) { var d = e.bidRequest; if (!(c = c.body) || "object" !== h(c)) return []; if (c.seatbid) { var r = g.deepAccess(c, "ext.errors.rubicon"); Array.isArray(r) && 0 < r.length && g.logWarn("Rubicon: Error in video response"); var o = []; return c.seatbid.forEach(function (n) { (n.bid || []).forEach(function (e) { var r = { requestId: d.bidId, currency: c.cur || "USD", creativeId: e.crid, cpm: e.price || 0, bidderCode: n.seat, ttl: 300, netRevenue: !1 !== _.netRevenue, width: e.w || g.deepAccess(d, "mediaTypes.video.w") || g.deepAccess(d, "params.video.playerWidth"), height: e.h || g.deepAccess(d, "mediaTypes.video.h") || g.deepAccess(d, "params.video.playerHeight") }; e.id && (r.seatBidId = e.id), e.dealid && (r.dealId = e.dealid), e.adomain && g.deepSetValue(r, "meta.advertiserDomains", Array.isArray(e.adomain) ? e.adomain : [e.adomain]), g.deepAccess(e, "ext.bidder.rp.advid") && g.deepSetValue(r, "meta.advertiserId", e.ext.bidder.rp.advid); var t, i = g.deepAccess(c, "ext.responsetimemillis.rubicon"); d && i && (d.serverResponseTimeMs = i), g.deepAccess(e, "ext.prebid.type") === p.d ? (r.mediaType = p.d, g.deepSetValue(r, "meta.mediaType", p.d), (t = g.deepAccess(e, "ext.prebid.targeting")) && "object" === h(t) && (r.adserverTargeting = t), e.ext.prebid.cache && "object" === h(e.ext.prebid.cache.vastXml) && e.ext.prebid.cache.vastXml.cacheId && e.ext.prebid.cache.vastXml.url ? (r.videoCacheKey = e.ext.prebid.cache.vastXml.cacheId, r.vastUrl = e.ext.prebid.cache.vastXml.url) : t && t.hb_uuid && t.hb_cache_host && t.hb_cache_path && (r.videoCacheKey = t.hb_uuid, r.vastUrl = "https://".concat(t.hb_cache_host).concat(t.hb_cache_path, "?uuid=").concat(t.hb_uuid)), e.adm && (r.vastXml = e.adm), e.nurl && (r.vastUrl = e.nurl), !r.vastUrl && e.nurl && (r.vastUrl = e.nurl)) : g.logWarn("Rubicon: video response received non-video media type"), o.push(r); }); }), o; } var t = c.ads; return "object" !== h(d) || Array.isArray(d) || "video" !== m(d) || "object" !== h(t) || (t = t[d.adUnitCode]), !Array.isArray(t) || 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" === h(s) ? (i = { requestId: s.bidId, currency: "USD", creativeId: r.creative_id || "".concat(r.network || ""https://r.search.yahoo.com/,"-").concat(r.advertiser || ""), cpm: r.cpm || 0, dealId: r.deal, ttl: 300, netRevenue: !1 !== _.netRevenue, rubicon: { advertiserId: r.advertiser, networkId: r.network }, meta: { advertiserId: r.advertiser, networkId: r.network, mediaType: p.b } }, r.creative_type && (i.mediaType = r.creative_type), r.adomain && (i.meta.advertiserDomains = Array.isArray(r.adomain) ? r.adomain : [r.adomain]), r.creative_type === p.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 = y(u[r.size_id].split("x").map(function (e) {
return Number(e);
}), 2), i.width = n[0], i.height = n[1]), i.rubiconTargeting = (Array.isArray(r.targeting) ? r.targeting : []).reduce(function (e, r) {
return e[r.key] = r.values[0], e;
}, {
rpfl_elemid: s.adUnitCode
}), e.push(i)) : g.logError("Rubicon: bidRequest undefined at index position:".concat(t), d, c), e;
}, []).sort(function (e, r) {
return (r.cpm || 0) - (e.cpm || 0);
});
},
getUserSyncs: function getUserSyncs(e, r, t, i) {
if (!z && e.iframeEnabled) {
var n = "";
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 += "".concat(n ? "&" : "?"https://r.search.yahoo.com/,"us_privacy=").concat(encodeURIComponent(i))), z = !0, {
type: "iframe",
url: "https://".concat(_.syncHost || "eus"https://r.search.yahoo.com/,".rubiconproject.com/usync.html") + n
};
}
},
transformBidParams: function transformBidParams(e) {
return g.convertTypes({
accountId: "number",
siteId: "number",
zoneId: "number"
}, e);
}
};

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

function j(e, r) {
var t = e.params;

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

for (var t = 0, n = new Array(r); t < r; t++) { n[t] = e[t]; } return n; } var l = !0, y = null, m = { gvlid: 28, code: "triplelift", supportedMediaTypes: [n.b, n.d], isBidRequestValid: function isBidRequestValid(e) { 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) })) || "USD" !== t.currency || isNaN(parseFloat(t.floor)) || (r = parseFloat(t.floor))); } return null !== r ? r : e.params.floor; }(e) }; return b(e) ? t.video = function (e) { var r = d(d({}, e.params.video), e.mediaTypes.video); r.w || (r.w = r.playerSize[0][0]); r.h || (r.h = r.playerSize[0][1]); "instream" === r.context && (r.placement = 1); return delete r.playerSize, r; }(e) : e.mediaTypes.banner && (t.banner = { format: S(e.sizes) }), t; }); var i = [].concat(f(function (e) { return v(e, "tdid"https://r.search.yahoo.com/,"adserver.org"https://r.search.yahoo.com/,"TDID"); }(e)), f(function (e) { return v(e, "idl_env"https://r.search.yahoo.com/,"liveramp.com"https://r.search.yahoo.com/,"idl"); }(e)), f(function (e) { return v(e, "criteoId"https://r.search.yahoo.com/,"criteo.com"https://r.search.yahoo.com/,"criteoId"); }(e))); 0 < i.length && (r.user = { ext: { eids: i } }); var o = function (e, r) { var t = {}; u.isEmpty(e) || (t.schain = d({}, e)); u.isEmpty(r) || (t.fpd = d({}, r)); return t; }(t, n); u.isEmpty(o) || (r.ext = o); return r; }(e); return n = u.tryAppendQueryString(n, "lib"https://r.search.yahoo.com/,"prebid"), n = u.tryAppendQueryString(n, "v"https://r.search.yahoo.com/,"4.17.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 && (l = r.gdprConsent.gdprApplies, n = u.tryAppendQueryString(n, "gdpr", l.toString())), void 0 !== r.gdprConsent.consentString && (y = r.gdprConsent.consentString, n = u.tryAppendQueryString(n, "cmp_cs", y))), 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 || []).map(function (e) { return function (e, r) { var t = {}, n = r.width || 1, i = r.height || 1, o = r.deal_id || "", u = r.crid || "", 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: {} }, b(a) && (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://r.search.yahoo.com/,"prebid")), null !== y && (o = u.tryAppendQueryString(o, "gdpr", l), o = u.tryAppendQueryString(o, "cmp_cs", y)), n && (o = u.tryAppendQueryString(o, "us_privacy", n)), [{ type: i, url: o }]; } } }; function b(e) { return e.mediaTypes.video && e.mediaTypes.video.context && "instream" === e.mediaTypes.video.context.toLowerCase(); } function g(r, t) { u.isEmpty(t) || 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); } }, [823]); 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, "", url.toString()); } // and add `via` param to any outbound links function addViaToUrl(href, via) { if (!href || 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 = ""; // 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 = ""; 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://r.search.yahoo.com/,"$window"https://r.search.yahoo.com/,"_throttle"https://r.search.yahoo.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 || 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 || $document.documentElement.clientHeight, px = getVerticallyVisiblePixels(rect, innerHeight), percent = px / (rect.height || 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 || $document.documentElement.clientHeight || $document.body.clientHeight; } /** * Return normalized viewport width * @return {number} */ function getViewportWidth() { return $window.innerWidth || $document.documentElement.clientWidth || $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 || $document.documentElement.clientHeight) && rect.right <= ($window.innerWidth || $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 || 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 || {};
this.el = el;
this.seen = false;
this.preload = false;
this.preloadThreshhold = options && options.preloadThreshhold || 0;
this.shownThreshold = options && options.shownThreshold || 0;
this.hiddenThreshold = options && min(options.shownThreshold, options.hiddenThreshold) || 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’|’hidden’} e EventName
* @param {function} cb Callback
*/

/**
* @name Visible#trigger
* @function
* @param {‘shown’|’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 ‘”+o+”‘”);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” || n === “Set”) return Array.from(o); if (n === “Arguments” || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }

function _arrayLikeToArray(arr, len) { if (len == null || 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 "".concat(name, "" on "").concat(elementTag, """), 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://r.search.yahoo.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 || {}; window.process.env = window.process.env || {}; if (!window.process.env.NODE_ENV) { window.process.env.NODE_ENV = ''; } // 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(); // ]]

Source Article